Annotation of gcc/cp-parse.c, revision 1.1

1.1     ! root        1: 
        !             2: /*  A Bison parser, made from cp-parse.y  */
        !             3: 
        !             4: #define YYBISON 1  /* Identify Bison output.  */
        !             5: 
        !             6: #define        IDENTIFIER      258
        !             7: #define        TYPENAME        259
        !             8: #define        SCOPED_TYPENAME 260
        !             9: #define        SCSPEC  261
        !            10: #define        TYPESPEC        262
        !            11: #define        TYPE_QUAL       263
        !            12: #define        CONSTANT        264
        !            13: #define        STRING  265
        !            14: #define        ELLIPSIS        266
        !            15: #define        SIZEOF  267
        !            16: #define        ENUM    268
        !            17: #define        IF      269
        !            18: #define        ELSE    270
        !            19: #define        WHILE   271
        !            20: #define        DO      272
        !            21: #define        FOR     273
        !            22: #define        SWITCH  274
        !            23: #define        CASE    275
        !            24: #define        DEFAULT 276
        !            25: #define        BREAK   277
        !            26: #define        CONTINUE        278
        !            27: #define        RETURN  279
        !            28: #define        GOTO    280
        !            29: #define        ASM     281
        !            30: #define        TYPEOF  282
        !            31: #define        ALIGNOF 283
        !            32: #define        HEADOF  284
        !            33: #define        CLASSOF 285
        !            34: #define        ATTRIBUTE       286
        !            35: #define        AGGR    287
        !            36: #define        VISSPEC 288
        !            37: #define        DELETE  289
        !            38: #define        NEW     290
        !            39: #define        OVERLOAD        291
        !            40: #define        THIS    292
        !            41: #define        OPERATOR        293
        !            42: #define        DYNAMIC 294
        !            43: #define        POINTSAT_LEFT_RIGHT     295
        !            44: #define        LEFT_RIGHT      296
        !            45: #define        TEMPLATE        297
        !            46: #define        SCOPE   298
        !            47: #define        START_DECLARATOR        299
        !            48: #define        EMPTY   300
        !            49: #define        TYPENAME_COLON  301
        !            50: #define        ASSIGN  302
        !            51: #define        RANGE   303
        !            52: #define        OROR    304
        !            53: #define        ANDAND  305
        !            54: #define        MIN_MAX 306
        !            55: #define        EQCOMPARE       307
        !            56: #define        ARITHCOMPARE    308
        !            57: #define        LSHIFT  309
        !            58: #define        RSHIFT  310
        !            59: #define        UNARY   311
        !            60: #define        PLUSPLUS        312
        !            61: #define        MINUSMINUS      313
        !            62: #define        HYPERUNARY      314
        !            63: #define        PAREN_STAR_PAREN        315
        !            64: #define        POINTSAT        316
        !            65: #define        POINTSAT_STAR   317
        !            66: #define        DOT_STAR        318
        !            67: #define        RAISE   319
        !            68: #define        RAISES  320
        !            69: #define        RERAISE 321
        !            70: #define        TRY     322
        !            71: #define        EXCEPT  323
        !            72: #define        CATCH   324
        !            73: #define        THROW   325
        !            74: #define        ANSI_TRY        326
        !            75: #define        ANSI_THROW      327
        !            76: #define        TYPENAME_ELLIPSIS       328
        !            77: #define        PTYPENAME       329
        !            78: #define        PRE_PARSED_FUNCTION_DECL        330
        !            79: #define        EXTERN_LANG_STRING      331
        !            80: #define        ALL     332
        !            81: #define        PRE_PARSED_CLASS_DECL   333
        !            82: #define        TYPENAME_DEFN   334
        !            83: #define        IDENTIFIER_DEFN 335
        !            84: #define        PTYPENAME_DEFN  336
        !            85: #define        END_OF_SAVED_INPUT      337
        !            86: 
        !            87: #line 42 "cp-parse.y"
        !            88: 
        !            89: #ifdef GATHER_STATISTICS
        !            90: #undef YYDEBUG
        !            91: #define YYDEBUG 1
        !            92: #endif
        !            93: 
        !            94: #include "config.h"
        !            95: 
        !            96: #include <stdio.h>
        !            97: #include <errno.h>
        !            98: 
        !            99: #include "tree.h"
        !           100: #include "input.h"
        !           101: #include "cp-lex.h"
        !           102: #include "cp-tree.h"
        !           103: #include "assert.h"
        !           104: 
        !           105: extern tree void_list_node;
        !           106: 
        !           107: #ifndef errno
        !           108: extern int errno;
        !           109: #endif
        !           110: 
        !           111: extern int end_of_file;
        !           112: 
        !           113: void yyerror ();
        !           114: 
        !           115: /* Like YYERROR but do call yyerror.  */
        !           116: #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
        !           117: 
        !           118: static void position_after_white_space ();
        !           119: 
        !           120: /* The elements of `ridpointers' are identifier nodes
        !           121:    for the reserved type names and storage classes.
        !           122:    It is indexed by a RID_... value.  */
        !           123: 
        !           124: tree ridpointers[(int) RID_MAX];
        !           125: #define NORID RID_UNUSED
        !           126: 
        !           127: /* Contains error message to give if user tries to declare
        !           128:    a variable where one does not belong.  */
        !           129: static char *stmt_decl_msg = 0;
        !           130: 
        !           131: /* Nonzero if we have an `extern "C"' acting as an extern specifier.  */
        !           132: 
        !           133: static int have_extern_spec;
        !           134: 
        !           135: void yyhook ();
        !           136: 
        !           137: /* Cons up an empty parameter list.  */
        !           138: #ifdef __GNUC__
        !           139: __inline
        !           140: #endif
        !           141: static tree
        !           142: empty_parms ()
        !           143: {
        !           144:   tree parms;
        !           145: 
        !           146:   if (strict_prototype)
        !           147:     parms = void_list_node;
        !           148:   else
        !           149:     parms = NULL_TREE;
        !           150:   return parms;
        !           151: }
        !           152: 
        !           153: #line 110 "cp-parse.y"
        !           154: typedef union {long itype; tree ttype; enum tree_code code; } YYSTYPE;
        !           155: #line 262 "cp-parse.y"
        !           156: 
        !           157: /* the declaration found for the last IDENTIFIER token read in.
        !           158:    yylex must look this up to detect typedefs, which get token type TYPENAME,
        !           159:    so it is left around in case the identifier is not a typedef but is
        !           160:    used in a context which makes it a reference to a variable.  */
        !           161: tree lastiddecl;
        !           162: 
        !           163: /* Back-door communication channel to the lexer.  */
        !           164: extern int looking_for_typename;
        !           165: 
        !           166: tree make_pointer_declarator (), make_reference_declarator ();
        !           167: 
        !           168: void reinit_parse_for_function ();
        !           169: void reinit_parse_for_method ();
        !           170: 
        !           171: /* List of types and structure classes of the current declaration.  */
        !           172: tree current_declspecs;
        !           173: 
        !           174: /* When defining an aggregate, this is the most recent one being defined.  */
        !           175: static tree current_aggr;
        !           176: 
        !           177: int undeclared_variable_notice;        /* 1 if we explained undeclared var errors.  */
        !           178: 
        !           179: int yylex ();
        !           180: 
        !           181: #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
        !           182: 
        !           183: #ifndef YYLTYPE
        !           184: typedef
        !           185:   struct yyltype
        !           186:     {
        !           187:       int timestamp;
        !           188:       int first_line;
        !           189:       int first_column;
        !           190:       int last_line;
        !           191:       int last_column;
        !           192:       char *text;
        !           193:    }
        !           194:   yyltype;
        !           195: 
        !           196: #define YYLTYPE yyltype
        !           197: #endif
        !           198: 
        !           199: #include <stdio.h>
        !           200: 
        !           201: #ifndef __STDC__
        !           202: #define const
        !           203: #endif
        !           204: 
        !           205: 
        !           206: 
        !           207: #define        YYFINAL         1219
        !           208: #define        YYFLAG          -32768
        !           209: #define        YYNTBASE        107
        !           210: 
        !           211: #define YYTRANSLATE(x) ((unsigned)(x) <= 337 ? yytranslate[x] : 293)
        !           212: 
        !           213: static const char yytranslate[] = {     0,
        !           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,     2,     2,     2,     2,     2,     2,     2,     2,
        !           217:      2,     2,   105,     2,     2,     2,    70,    58,     2,    80,
        !           218:    101,    68,    66,    48,    67,    78,    69,     2,     2,     2,
        !           219:      2,     2,     2,     2,     2,     2,     2,    52,   102,    62,
        !           220:     50,    63,    51,     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:     81,     2,   106,    57,     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,    47,    56,   103,   104,     2,     2,     2,     2,
        !           227:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        !           228:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        !           229:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        !           230:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        !           231:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        !           232:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        !           233:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        !           234:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        !           235:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        !           236:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        !           237:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        !           238:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        !           239:      2,     2,     2,     2,     2,     1,     2,     3,     4,     5,
        !           240:      6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
        !           241:     16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
        !           242:     26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
        !           243:     36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
        !           244:     46,    49,    53,    54,    55,    59,    60,    61,    64,    65,
        !           245:     71,    72,    73,    74,    75,    76,    77,    79,    82,    83,
        !           246:     84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
        !           247:     94,    95,    96,    97,    98,    99,   100
        !           248: };
        !           249: 
        !           250: static const short yyprhs[] = {     0,
        !           251:      0,     1,     3,     4,     7,    10,    11,    12,    14,    16,
        !           252:     18,    20,    26,    31,    35,    40,    45,    47,    48,    54,
        !           253:     56,    60,    63,    68,    72,    74,    78,    80,    84,    85,
        !           254:     91,    92,    98,    99,   105,   106,   112,   116,   120,   127,
        !           255:    135,   140,   142,   144,   146,   148,   150,   153,   157,   161,
        !           256:    165,   169,   172,   175,   178,   181,   183,   187,   192,   196,
        !           257:    202,   207,   211,   215,   218,   222,   226,   229,   236,   243,
        !           258:    248,   253,   255,   262,   267,   271,   278,   283,   287,   290,
        !           259:    293,   295,   299,   304,   307,   311,   312,   313,   315,   319,
        !           260:    322,   326,   328,   333,   336,   342,   346,   348,   350,   352,
        !           261:    354,   356,   358,   360,   362,   364,   367,   369,   372,   375,
        !           262:    378,   382,   386,   388,   391,   394,   398,   403,   405,   407,
        !           263:    408,   409,   411,   415,   417,   419,   420,   427,   428,   430,
        !           264:    431,   434,   436,   438,   440,   442,   444,   446,   448,   450,
        !           265:    454,   458,   460,   463,   466,   469,   472,   475,   480,   483,
        !           266:    488,   492,   499,   504,   510,   520,   530,   537,   544,   548,
        !           267:    551,   556,   562,   564,   569,   577,   582,   587,   592,   594,
        !           268:    598,   602,   606,   610,   614,   618,   622,   626,   630,   634,
        !           269:    638,   642,   646,   650,   654,   658,   662,   668,   672,   676,
        !           270:    680,   683,   685,   687,   689,   691,   695,   699,   700,   705,
        !           271:    706,   713,   716,   721,   724,   728,   731,   734,   736,   741,
        !           272:    746,   749,   752,   755,   758,   764,   768,   774,   778,   785,
        !           273:    790,   792,   797,   800,   806,   807,   809,   811,   814,   816,
        !           274:    819,   820,   823,   826,   829,   833,   837,   841,   845,   848,
        !           275:    851,   853,   855,   858,   861,   863,   866,   869,   873,   875,
        !           276:    877,   880,   883,   885,   887,   890,   893,   895,   898,   901,
        !           277:    905,   907,   910,   912,   914,   916,   918,   923,   928,   930,
        !           278:    932,   934,   936,   938,   942,   944,   948,   949,   954,   955,
        !           279:    963,   968,   969,   977,   982,   983,   991,   996,   997,  1004,
        !           280:   1006,  1010,  1012,  1017,  1022,  1024,  1028,  1030,  1033,  1037,
        !           281:   1042,  1044,  1046,  1050,  1055,  1062,  1066,  1072,  1073,  1081,
        !           282:   1086,  1087,  1094,  1098,  1101,  1106,  1108,  1109,  1111,  1112,
        !           283:   1114,  1116,  1119,  1125,  1128,  1131,  1134,  1137,  1140,  1143,
        !           284:   1146,  1150,  1154,  1157,  1158,  1162,  1163,  1167,  1170,  1172,
        !           285:   1174,  1175,  1177,  1180,  1182,  1186,  1188,  1191,  1195,  1197,
        !           286:   1199,  1201,  1204,  1207,  1209,  1210,  1212,  1217,  1221,  1223,
        !           287:   1226,  1229,  1233,  1239,  1245,  1249,  1253,  1257,  1261,  1265,
        !           288:   1271,  1277,  1281,  1285,  1289,  1293,  1295,  1298,  1301,  1305,
        !           289:   1309,  1310,  1312,  1316,  1320,  1326,  1330,  1333,  1336,  1340,
        !           290:   1346,  1350,  1353,  1356,  1358,  1362,  1364,  1368,  1371,  1374,
        !           291:   1375,  1377,  1380,  1382,  1385,  1386,  1389,  1390,  1393,  1399,
        !           292:   1405,  1409,  1415,  1420,  1424,  1428,  1434,  1436,  1438,  1444,
        !           293:   1448,  1452,  1454,  1460,  1466,  1470,  1476,  1481,  1485,  1489,
        !           294:   1491,  1493,  1497,  1501,  1507,  1513,  1517,  1523,  1527,  1531,
        !           295:   1535,  1540,  1544,  1546,  1548,  1551,  1554,  1557,  1560,  1564,
        !           296:   1568,  1572,  1576,  1584,  1592,  1598,  1606,  1610,  1618,  1626,
        !           297:   1632,  1640,  1644,  1646,  1650,  1653,  1655,  1659,  1663,  1666,
        !           298:   1668,  1672,  1676,  1679,  1685,  1689,  1694,  1698,  1703,  1706,
        !           299:   1710,  1713,  1717,  1722,  1726,  1731,  1737,  1743,  1745,  1747,
        !           300:   1750,  1753,  1756,  1757,  1759,  1762,  1765,  1770,  1775,  1776,
        !           301:   1783,  1785,  1787,  1790,  1791,  1796,  1798,  1799,  1800,  1808,
        !           302:   1809,  1810,  1820,  1821,  1822,  1823,  1833,  1834,  1835,  1836,
        !           303:   1846,  1847,  1854,  1855,  1861,  1862,  1870,  1871,  1876,  1879,
        !           304:   1882,  1885,  1889,  1896,  1905,  1916,  1929,  1933,  1936,  1939,
        !           305:   1941,  1944,  1948,  1955,  1960,  1967,  1972,  1976,  1977,  1985,
        !           306:   1988,  1989,  1995,  1999,  2001,  2004,  2008,  2012,  2015,  2018,
        !           307:   2020,  2021,  2026,  2029,  2033,  2037,  2038,  2039,  2044,  2045,
        !           308:   2046,  2051,  2052,  2057,  2058,  2060,  2061,  2062,  2071,  2075,
        !           309:   2080,  2085,  2089,  2094,  2101,  2108,  2109,  2111,  2112,  2114,
        !           310:   2116,  2117,  2119,  2121,  2125,  2130,  2132,  2136,  2137,  2139,
        !           311:   2143,  2146,  2148,  2150,  2153,  2156,  2158,  2162,  2166,  2172,
        !           312:   2176,  2182,  2186,  2190,  2192,  2194,  2197,  2199,  2200,  2201,
        !           313:   2203,  2204,  2207,  2212,  2214,  2216,  2218,  2221,  2224,  2227,
        !           314:   2229,  2231,  2233,  2237,  2239,  2243,  2246,  2249,  2252,  2255,
        !           315:   2258,  2261,  2264,  2267,  2270,  2273,  2276,  2279,  2282,  2285,
        !           316:   2288,  2291,  2294,  2297,  2300,  2303,  2306,  2309,  2312,  2316,
        !           317:   2319,  2322,  2325,  2329,  2332,  2336,  2339,  2342,  2346
        !           318: };
        !           319: 
        !           320: static const short yyrhs[] = {    -1,
        !           321:    108,     0,     0,   109,   112,     0,   108,   112,     0,     0,
        !           322:      0,   127,     0,   126,     0,   120,     0,   118,     0,    26,
        !           323:     80,   162,   101,   102,     0,   113,    47,   108,   103,     0,
        !           324:    113,    47,   103,     0,   113,   110,   127,   111,     0,   113,
        !           325:    110,   126,   111,     0,    94,     0,     0,    42,    62,   115,
        !           326:    116,    63,     0,   117,     0,   116,    48,   117,     0,   195,
        !           327:    136,     0,   195,   137,    52,   206,     0,   195,    46,   206,
        !           328:      0,   281,     0,    36,   119,   102,     0,     3,     0,   119,
        !           329:     48,     3,     0,     0,   114,   196,    47,   121,   102,     0,
        !           330:      0,   114,   197,    47,   122,   102,     0,     0,   114,   196,
        !           331:     52,   123,   102,     0,     0,   114,   197,    52,   124,   102,
        !           332:      0,   114,   196,   102,     0,   114,   197,   102,     0,   114,
        !           333:    225,   287,   177,   184,   125,     0,   114,   168,   167,   287,
        !           334:    177,   184,   125,     0,   114,   170,   167,   125,     0,    47,
        !           335:      0,    52,     0,   102,     0,    50,     0,    24,     0,   176,
        !           336:    102,     0,   170,   176,   102,     0,   170,   167,   102,     0,
        !           337:    168,   175,   102,     0,   168,   167,   102,     0,   170,   102,
        !           338:      0,   168,   102,     0,     1,   102,     0,     1,   103,     0,
        !           339:    102,     0,   128,   132,   235,     0,   128,   131,   132,   235,
        !           340:      0,   128,   163,   235,     0,   128,   131,   102,   163,   235,
        !           341:      0,   128,   131,   163,   235,     0,   168,   167,     1,     0,
        !           342:    170,   225,     1,     0,   225,     1,     0,   168,   167,   287,
        !           343:      0,   170,   225,   287,     0,   225,   287,     0,     4,    80,
        !           344:    279,   101,   220,   287,     0,   228,    80,   279,   101,   220,
        !           345:    287,     0,     4,    41,   220,   287,     0,   228,    41,   220,
        !           346:    287,     0,    93,     0,   168,    80,   279,   101,   220,   287,
        !           347:      0,   168,    41,   220,   287,     0,   168,   167,   287,     0,
        !           348:    170,    80,   279,   101,   220,   287,     0,   170,    41,   220,
        !           349:    287,     0,   170,   167,   287,     0,   225,   287,     0,    24,
        !           350:      3,     0,   130,     0,   130,    50,   188,     0,   130,    80,
        !           351:    152,   101,     0,   130,    41,     0,    52,   133,   134,     0,
        !           352:      0,     0,   135,     0,   134,    48,   135,     0,   134,     1,
        !           353:      0,    80,   152,   101,     0,    41,     0,   136,    80,   152,
        !           354:    101,     0,   136,    41,     0,   226,   136,    80,   152,   101,
        !           355:      0,   226,   136,    41,     0,     3,     0,     4,     0,    92,
        !           356:      0,    98,     0,    97,     0,    99,     0,     3,     0,     4,
        !           357:      0,    92,     0,   104,   136,     0,   292,     0,   139,     3,
        !           358:      0,   139,     4,     0,   139,   292,     0,   139,   226,     3,
        !           359:      0,   139,   226,   292,     0,    41,     0,   104,    41,     0,
        !           360:     41,    51,     0,   141,   142,   148,     0,    92,    62,   144,
        !           361:     63,     0,    47,     0,    52,     0,     0,     0,   145,     0,
        !           362:    144,    48,   145,     0,   217,     0,   155,     0,     0,    96,
        !           363:    203,   147,   208,   209,   103,     0,     0,   146,     0,     0,
        !           364:    146,   149,     0,    67,     0,    66,     0,    72,     0,    73,
        !           365:      0,   105,     0,   152,     0,   155,     0,   155,     0,   152,
        !           366:     48,   155,     0,   152,    48,     1,     0,   156,     0,    68,
        !           367:    154,     0,    58,   154,     0,   104,   154,     0,   150,   154,
        !           368:      0,    12,   153,     0,    12,    80,   217,   101,     0,    28,
        !           369:    153,     0,    28,    80,   217,   101,     0,   160,   159,   217,
        !           370:      0,   160,   159,   173,    80,   152,   101,     0,   160,   159,
        !           371:    173,    41,     0,   160,   159,   217,    50,   188,     0,   160,
        !           372:    159,    80,   171,   218,   101,    81,   221,   106,     0,   160,
        !           373:    159,    80,   219,   218,   101,    81,   221,   106,     0,   160,
        !           374:    159,    80,   171,   218,   101,     0,   160,   159,    80,   219,
        !           375:    218,   101,     0,   160,   159,    46,     0,   161,   154,     0,
        !           376:    161,    81,   106,   154,     0,   161,    81,   151,   106,   154,
        !           377:      0,   153,     0,    80,   217,   101,   155,     0,    80,   217,
        !           378:    101,    47,   189,   193,   103,     0,    29,    80,   151,   101,
        !           379:      0,    30,    80,   151,   101,     0,    30,    80,     4,   101,
        !           380:      0,   154,     0,   155,    66,   155,     0,   155,    67,   155,
        !           381:      0,   155,    68,   155,     0,   155,    69,   155,     0,   155,
        !           382:     70,   155,     0,   155,    64,   155,     0,   155,    65,   155,
        !           383:      0,   155,    61,   155,     0,   155,    62,   155,     0,   155,
        !           384:     63,   155,     0,   155,    60,   155,     0,   155,    59,   155,
        !           385:      0,   155,    58,   155,     0,   155,    56,   155,     0,   155,
        !           386:     57,   155,     0,   155,    55,   155,     0,   155,    54,   155,
        !           387:      0,   155,    51,   274,    52,   155,     0,   155,    50,   155,
        !           388:      0,   155,    49,   155,     0,   156,    79,   155,     0,   165,
        !           389:    155,     0,     3,     0,   292,     0,     9,     0,   162,     0,
        !           390:     80,   151,   101,     0,    80,     1,   101,     0,     0,    80,
        !           391:    157,   236,   101,     0,     0,   156,    80,   152,   101,   158,
        !           392:    149,     0,   156,    41,     0,   156,    81,   151,   106,     0,
        !           393:    164,   138,     0,   164,   226,   138,     0,   156,    72,     0,
        !           394:    156,    73,     0,    37,     0,     8,    80,   152,   101,     0,
        !           395:    173,    80,   152,   101,     0,   173,    41,     0,    43,     3,
        !           396:      0,    43,   292,     0,   226,   138,     0,   226,   138,    80,
        !           397:    152,   101,     0,   226,   138,    41,     0,   164,   138,    80,
        !           398:    152,   101,     0,   164,   138,    41,     0,   164,   226,   138,
        !           399:     80,   152,   101,     0,   164,   226,   138,    41,     0,    35,
        !           400:      0,    35,    47,   152,   103,     0,    35,    39,     0,    35,
        !           401:     39,    80,   162,   101,     0,     0,    43,     0,    34,     0,
        !           402:     43,   161,     0,    10,     0,   162,    10,     0,     0,   156,
        !           403:     78,     0,   156,    76,     0,   156,    77,     0,   168,   175,
        !           404:    102,     0,   168,   167,   102,     0,   170,   176,   102,     0,
        !           405:    170,   167,   102,     0,   168,   102,     0,   170,   102,     0,
        !           406:    223,     0,   225,     0,    44,   223,     0,    44,   225,     0,
        !           407:    173,     0,   170,   173,     0,   173,   169,     0,   170,   173,
        !           408:    169,     0,   174,     0,     6,     0,   169,   174,     0,   169,
        !           409:      6,     0,     8,     0,     6,     0,   170,     8,     0,   170,
        !           410:      6,     0,   173,     0,   219,   173,     0,   173,   172,     0,
        !           411:    219,   173,   172,     0,   174,     0,   172,   174,     0,   190,
        !           412:      0,     7,     0,     4,     0,   228,     0,    27,    80,   151,
        !           413:    101,     0,    27,    80,   217,   101,     0,   140,     0,     7,
        !           414:      0,     8,     0,   190,     0,   178,     0,   175,    48,   180,
        !           415:      0,   182,     0,   176,    48,   180,     0,     0,    26,    80,
        !           416:    162,   101,     0,     0,   167,   287,   177,   184,    50,   179,
        !           417:    188,     0,   167,   287,   177,   184,     0,     0,   167,   287,
        !           418:    177,   184,    50,   181,   188,     0,   167,   287,   177,   184,
        !           419:      0,     0,   225,   287,   177,   184,    50,   183,   188,     0,
        !           420:    225,   287,   177,   184,     0,     0,    31,    80,    80,   185,
        !           421:    101,   101,     0,   186,     0,   185,    48,   186,     0,     3,
        !           422:      0,     3,    80,     9,   101,     0,     3,    80,   187,   101,
        !           423:      0,     3,     0,   187,    48,     3,     0,   155,     0,    47,
        !           424:    103,     0,    47,   189,   103,     0,    47,   189,    48,   103,
        !           425:      0,     1,     0,   188,     0,   189,    48,   188,     0,    81,
        !           426:    155,   106,   188,     0,   189,    48,    20,   155,    52,   188,
        !           427:      0,   136,    52,   188,     0,   189,    48,   136,    52,   188,
        !           428:      0,     0,    13,   136,    47,   191,   215,   194,   103,     0,
        !           429:     13,   136,    47,   103,     0,     0,    13,    47,   192,   215,
        !           430:    194,   103,     0,    13,    47,   103,     0,    13,   136,     0,
        !           431:    202,   208,   209,   103,     0,   202,     0,     0,    48,     0,
        !           432:      0,    48,     0,    32,     0,    39,    32,     0,    39,    80,
        !           433:    162,   101,    32,     0,   195,     6,     0,   195,     7,     0,
        !           434:    195,     8,     0,   195,    32,     0,   195,   136,     0,   195,
        !           435:    141,     0,   195,    46,     0,   195,   141,    47,     0,   195,
        !           436:    141,    52,     0,   195,   137,     0,     0,   196,   199,   203,
        !           437:      0,     0,   197,   200,   203,     0,   195,    47,     0,   201,
        !           438:      0,   198,     0,     0,    52,     0,    52,   204,     0,   205,
        !           439:      0,   204,    48,   205,     0,   206,     0,   207,   206,     0,
        !           440:    141,   143,   148,     0,   136,     0,    33,     0,     6,     0,
        !           441:    207,    33,     0,   207,     6,     0,    47,     0,     0,   210,
        !           442:      0,   209,    33,    52,   210,     0,   209,    33,    52,     0,
        !           443:    211,     0,   210,   211,     0,   210,   102,     0,   168,   212,
        !           444:    102,     0,   168,    80,   279,   101,   102,     0,   168,    80,
        !           445:    279,   101,   103,     0,   168,    41,   102,     0,   168,    41,
        !           446:    103,     0,   170,   212,   102,     0,   170,   167,   102,     0,
        !           447:    170,   212,   103,     0,   170,    80,   279,   101,   102,     0,
        !           448:    170,    80,   279,   101,   103,     0,   170,    41,   102,     0,
        !           449:    170,    41,   103,     0,    52,   155,   102,     0,    52,   155,
        !           450:    103,     0,     1,     0,   129,    52,     0,   129,    47,     0,
        !           451:    225,   287,   102,     0,   225,   287,   103,     0,     0,   213,
        !           452:      0,   212,    48,   214,     0,   167,   287,   177,     0,   167,
        !           453:    287,   177,    50,   188,     0,     3,    52,   155,     0,    46,
        !           454:    155,     0,    52,   155,     0,   167,   287,   177,     0,   167,
        !           455:    287,   177,    50,   188,     0,     3,    52,   155,     0,    46,
        !           456:    155,     0,    52,   155,     0,   216,     0,   215,    48,   216,
        !           457:      0,   136,     0,   136,    50,   155,     0,   171,   218,     0,
        !           458:    219,   218,     0,     0,   229,     0,    44,   229,     0,     8,
        !           459:      0,   219,     8,     0,     0,   220,     8,     0,     0,   222,
        !           460:    151,     0,   223,    80,   152,   101,   220,     0,   223,    80,
        !           461:    279,   101,   220,     0,   223,    41,   220,     0,   223,    80,
        !           462:      1,   101,   220,     0,   223,    81,   221,   106,     0,   223,
        !           463:     81,   106,     0,    80,   224,   101,     0,    80,    68,   220,
        !           464:    223,   101,     0,    75,     0,   231,     0,    80,    58,   220,
        !           465:    223,   101,     0,    68,   220,   223,     0,    58,   220,   223,
        !           466:      0,     4,     0,   224,    80,   152,   101,   220,     0,   224,
        !           467:     80,   279,   101,   220,     0,   224,    41,   220,     0,   224,
        !           468:     80,     1,   101,   220,     0,   224,    81,   221,   106,     0,
        !           469:    224,    81,   106,     0,    80,   224,   101,     0,    75,     0,
        !           470:    231,     0,    68,   220,   223,     0,    58,   220,   223,     0,
        !           471:    225,    80,   152,   101,   220,     0,   225,    80,   279,   101,
        !           472:    220,     0,   225,    41,   220,     0,   225,    80,     1,   101,
        !           473:    220,     0,    80,   225,   101,     0,    68,   220,   225,     0,
        !           474:     58,   220,   225,     0,   225,    81,   221,   106,     0,   225,
        !           475:     81,   106,     0,     3,     0,   292,     0,   104,     4,     0,
        !           476:    104,     3,     0,   104,    92,     0,    41,   136,     0,    41,
        !           477:     51,   136,     0,   104,    41,   136,     0,   226,   283,   225,
        !           478:      0,   226,   283,     4,     0,   226,   283,     4,    80,   152,
        !           479:    101,   220,     0,   226,   283,     4,    80,   279,   101,   220,
        !           480:      0,   226,   283,     4,    41,   220,     0,   226,   283,     4,
        !           481:     80,     1,   101,   220,     0,   226,   283,    92,     0,   226,
        !           482:    283,    92,    80,   152,   101,   220,     0,   226,   283,    92,
        !           483:     80,   279,   101,   220,     0,   226,   283,    92,    41,   220,
        !           484:      0,   226,   283,    92,    80,     1,   101,   220,     0,    43,
        !           485:    283,   225,     0,   227,     0,   140,    43,   285,     0,     4,
        !           486:     43,     0,     5,     0,    80,   229,   101,     0,    68,   220,
        !           487:    229,     0,    68,   220,     0,    75,     0,    80,   230,   101,
        !           488:      0,    58,   220,   229,     0,    58,   220,     0,   229,    80,
        !           489:    279,   101,   220,     0,   229,    41,   220,     0,   229,    81,
        !           490:    221,   106,     0,   229,    81,   106,     0,    80,   279,   101,
        !           491:    220,     0,    41,   220,     0,    81,   221,   106,     0,    81,
        !           492:    106,     0,   226,    68,   220,     0,   226,    68,   220,   229,
        !           493:      0,   226,    58,   220,     0,   226,    58,   220,   229,     0,
        !           494:    226,   283,    68,   220,   223,     0,   226,   283,    58,   220,
        !           495:    223,     0,   239,     0,   233,     0,   232,   239,     0,   232,
        !           496:    233,     0,     1,   102,     0,     0,   236,     0,     1,   236,
        !           497:      0,    47,   103,     0,    47,   234,   232,   103,     0,    47,
        !           498:    234,     1,   103,     0,     0,    14,    80,   151,   101,   238,
        !           499:    239,     0,   236,     0,   166,     0,   151,   102,     0,     0,
        !           500:    237,    15,   240,   239,     0,   237,     0,     0,     0,    16,
        !           501:    241,    80,   151,   101,   242,   239,     0,     0,     0,    17,
        !           502:    243,   239,    16,   244,    80,   151,   101,   102,     0,     0,
        !           503:      0,     0,   271,   245,   274,   102,   246,   274,   101,   247,
        !           504:    239,     0,     0,     0,     0,   272,   248,   274,   102,   249,
        !           505:    274,   101,   250,   239,     0,     0,    19,    80,   151,   101,
        !           506:    251,   239,     0,     0,    20,   151,    52,   252,   239,     0,
        !           507:      0,    20,   151,    53,   151,    52,   253,   239,     0,     0,
        !           508:     21,    52,   254,   239,     0,    22,   102,     0,    23,   102,
        !           509:      0,    24,   102,     0,    24,   151,   102,     0,    26,   273,
        !           510:     80,   162,   101,   102,     0,    26,   273,    80,   162,    52,
        !           511:    275,   101,   102,     0,    26,   273,    80,   162,    52,   275,
        !           512:     52,   275,   101,   102,     0,    26,   273,    80,   162,    52,
        !           513:    275,    52,   275,    52,   278,   101,   102,     0,    25,   136,
        !           514:    102,     0,   258,   239,     0,   258,   103,     0,   102,     0,
        !           515:     90,   102,     0,    90,   151,   102,     0,    88,   288,    80,
        !           516:    152,   101,   102,     0,    88,   288,    41,   102,     0,    82,
        !           517:    288,    80,   152,   101,   102,     0,    82,   288,    41,   102,
        !           518:      0,    82,   136,   102,     0,     0,   257,    86,   136,    47,
        !           519:    255,   265,   103,     0,   257,     1,     0,     0,   261,   262,
        !           520:    262,   256,   269,     0,   257,    84,   290,     0,   257,     0,
        !           521:    259,   103,     0,   259,   232,   103,     0,   259,     1,   103,
        !           522:      0,     3,    52,     0,    92,    52,     0,    46,     0,     0,
        !           523:     85,    47,   260,   234,     0,   263,   103,     0,   263,   232,
        !           524:    103,     0,   263,     1,   103,     0,     0,     0,    89,    47,
        !           525:    264,   234,     0,     0,     0,   265,   288,   266,   236,     0,
        !           526:      0,   265,    21,   267,   236,     0,     0,   136,     0,     0,
        !           527:      0,   269,    87,    80,   217,   268,   101,   270,   236,     0,
        !           528:     18,    80,   102,     0,    18,    80,   151,   102,     0,    18,
        !           529:     80,    47,   103,     0,    18,    80,   166,     0,    18,    80,
        !           530:      1,   102,     0,    18,    80,    47,   234,   232,   103,     0,
        !           531:     18,    80,    47,   234,     1,   103,     0,     0,     8,     0,
        !           532:      0,   151,     0,     1,     0,     0,   276,     0,   277,     0,
        !           533:    276,    48,   277,     0,    10,    80,   151,   101,     0,    10,
        !           534:      0,   278,    48,    10,     0,     0,   280,     0,   280,    48,
        !           535:     11,     0,   280,    11,     0,    11,     0,    91,     0,   280,
        !           536:     91,     0,   280,    52,     0,   281,     0,   281,    50,   188,
        !           537:      0,   280,    48,   281,     0,   280,    48,   281,    50,   188,
        !           538:      0,   280,    48,   286,     0,   280,    48,   286,    50,   188,
        !           539:      0,   168,   284,   282,     0,   170,   284,   282,     0,   218,
        !           540:      0,   225,     0,    44,   225,     0,   220,     0,     0,     0,
        !           541:    282,     0,     0,    83,   290,     0,    90,    80,   291,   101,
        !           542:      0,    95,     0,     3,     0,     4,     0,    43,     3,     0,
        !           543:     43,     4,     0,   226,     3,     0,   228,     0,   217,     0,
        !           544:    288,     0,   290,    48,   288,     0,   289,     0,   291,    48,
        !           545:    289,     0,    38,    68,     0,    38,    69,     0,    38,    70,
        !           546:      0,    38,    66,     0,    38,    67,     0,    38,    58,     0,
        !           547:     38,    56,     0,    38,    57,     0,    38,   104,     0,    38,
        !           548:     48,     0,    38,    61,     0,    38,    62,     0,    38,    63,
        !           549:      0,    38,    60,     0,    38,    49,     0,    38,    50,     0,
        !           550:     38,    64,     0,    38,    65,     0,    38,    72,     0,    38,
        !           551:     73,     0,    38,    55,     0,    38,    54,     0,    38,   105,
        !           552:      0,    38,    51,    52,     0,    38,    59,     0,    38,    76,
        !           553:      0,    38,    77,     0,    38,    40,   220,     0,    38,    41,
        !           554:      0,    38,    81,   106,     0,    38,    35,     0,    38,    34,
        !           555:      0,    38,   171,   218,     0,    38,     1,     0
        !           556: };
        !           557: 
        !           558: #if YYDEBUG != 0
        !           559: static const short yyrline[] = { 0,
        !           560:    291,   292,   300,   302,   303,   307,   310,   314,   317,   319,
        !           561:    321,   322,   327,   329,   331,   334,   339,   344,   347,   351,
        !           562:    354,   358,   371,   378,   385,   388,   391,   393,   397,   403,
        !           563:    403,   406,   406,   409,   409,   422,   422,   427,   432,   455,
        !           564:    476,   486,   487,   488,   489,   490,   493,   499,   502,   507,
        !           565:    513,   520,   522,   540,   541,   542,   545,   559,   572,   575,
        !           566:    578,   581,   583,   585,   589,   595,   600,   605,   610,   615,
        !           567:    620,   625,   631,   641,   650,   657,   666,   675,   682,   691,
        !           568:    699,   701,   703,   705,   709,   718,   741,   744,   746,   747,
        !           569:    750,   757,   764,   768,   770,   774,   780,   782,   783,   786,
        !           570:    788,   789,   792,   794,   795,   799,   800,   801,   803,   805,
        !           571:    807,   809,   813,   815,   817,   821,   831,   836,   840,   841,
        !           572:    845,   850,   853,   857,   860,   863,   896,   911,   914,   918,
        !           573:    921,   925,   927,   929,   931,   933,   937,   940,   943,   946,
        !           574:    948,   952,   958,   960,   962,   964,   969,   982,   984,  1017,
        !           575:   1020,  1022,  1024,  1026,  1032,  1049,  1052,  1056,  1059,  1063,
        !           576:   1079,  1090,  1106,  1108,  1111,  1126,  1128,  1130,  1141,  1143,
        !           577:   1145,  1147,  1149,  1151,  1153,  1155,  1157,  1159,  1161,  1163,
        !           578:   1165,  1167,  1169,  1171,  1173,  1175,  1177,  1179,  1181,  1187,
        !           579:   1190,  1205,  1208,  1223,  1224,  1226,  1228,  1230,  1238,  1250,
        !           580:   1256,  1263,  1270,  1320,  1322,  1338,  1340,  1344,  1367,  1405,
        !           581:   1407,  1409,  1438,  1445,  1447,  1449,  1451,  1454,  1457,  1459,
        !           582:   1501,  1503,  1505,  1507,  1511,  1514,  1518,  1520,  1528,  1530,
        !           583:   1534,  1543,  1558,  1564,  1567,  1574,  1582,  1585,  1592,  1597,
        !           584:   1604,  1606,  1607,  1609,  1617,  1620,  1622,  1624,  1628,  1632,
        !           585:   1634,  1636,  1644,  1647,  1649,  1651,  1662,  1665,  1667,  1669,
        !           586:   1673,  1676,  1684,  1685,  1686,  1687,  1688,  1692,  1696,  1701,
        !           587:   1702,  1703,  1706,  1708,  1711,  1713,  1716,  1719,  1727,  1734,
        !           588:   1736,  1744,  1749,  1750,  1755,  1762,  1764,  1774,  1777,  1782,
        !           589:   1783,  1787,  1790,  1797,  1802,  1805,  1809,  1811,  1816,  1819,
        !           590:   1822,  1828,  1831,  1834,  1836,  1838,  1840,  1844,  1848,  1852,
        !           591:   1855,  1858,  1862,  1865,  1869,  1895,  1910,  1912,  1915,  1917,
        !           592:   1921,  1922,  1924,  1926,  1929,  1932,  1935,  1940,  1943,  1945,
        !           593:   1947,  1952,  1956,  1961,  1966,  1973,  1978,  1987,  1992,  1992,
        !           594:   1994,  1997,  1999,  2003,  2005,  2009,  2014,  2020,  2022,  2025,
        !           595:   2034,  2038,  2064,  2073,  2099,  2102,  2104,  2106,  2109,  2112,
        !           596:   2115,  2120,  2169,  2171,  2175,  2177,  2181,  2184,  2186,  2190,
        !           597:   2192,  2196,  2198,  2202,  2204,  2208,  2213,  2215,  2217,  2219,
        !           598:   2225,  2228,  2229,  2240,  2244,  2247,  2250,  2253,  2258,  2261,
        !           599:   2263,  2265,  2267,  2275,  2277,  2281,  2284,  2288,  2291,  2295,
        !           600:   2298,  2299,  2303,  2306,  2310,  2313,  2321,  2323,  2327,  2330,
        !           601:   2332,  2334,  2336,  2338,  2340,  2342,  2344,  2346,  2347,  2349,
        !           602:   2351,  2353,  2356,  2359,  2361,  2363,  2365,  2367,  2369,  2371,
        !           603:   2373,  2374,  2376,  2383,  2386,  2388,  2390,  2392,  2394,  2396,
        !           604:   2398,  2400,  2402,  2406,  2409,  2415,  2417,  2419,  2424,  2430,
        !           605:   2433,  2442,  2444,  2446,  2448,  2450,  2453,  2455,  2457,  2459,
        !           606:   2461,  2463,  2467,  2469,  2481,  2484,  2499,  2504,  2506,  2508,
        !           607:   2510,  2512,  2514,  2516,  2518,  2520,  2522,  2524,  2526,  2528,
        !           608:   2530,  2534,  2542,  2549,  2556,  2565,  2573,  2586,  2588,  2589,
        !           609:   2590,  2593,  2600,  2612,  2615,  2618,  2620,  2625,  2632,  2638,
        !           610:   2641,  2644,  2649,  2662,  2666,  2669,  2673,  2677,  2681,  2685,
        !           611:   2690,  2693,  2699,  2704,  2707,  2713,  2720,  2724,  2727,  2734,
        !           612:   2750,  2758,  2762,  2812,  2812,  2894,  2894,  2910,  2910,  2914,
        !           613:   2918,  2921,  2926,  2933,  2942,  2951,  2960,  2966,  2968,  2972,
        !           614:   2976,  2977,  2978,  2981,  2984,  2987,  2990,  2993,  3006,  3035,
        !           615:   3045,  3059,  3087,  3119,  3131,  3139,  3144,  3151,  3159,  3161,
        !           616:   3168,  3170,  3170,  3178,  3183,  3190,  3191,  3193,  3193,  3196,
        !           617:   3217,  3233,  3252,  3269,  3272,  3274,  3277,  3296,  3314,  3317,
        !           618:   3319,  3323,  3326,  3328,  3330,  3336,  3341,  3347,  3350,  3351,
        !           619:   3357,  3359,  3362,  3364,  3368,  3373,  3376,  3385,  3392,  3397,
        !           620:   3402,  3406,  3410,  3414,  3418,  3432,  3435,  3437,  3439,  3441,
        !           621:   3443,  3451,  3467,  3472,  3473,  3474,  3478,  3482,  3486,  3498,
        !           622:   3506,  3509,  3511,  3515,  3518,  3520,  3522,  3524,  3526,  3528,
        !           623:   3531,  3536,  3538,  3545,  3547,  3554,  3557,  3559,  3561,  3563,
        !           624:   3565,  3567,  3569,  3571,  3573,  3575,  3577,  3579,  3581,  3583,
        !           625:   3585,  3594,  3596,  3598,  3600,  3602,  3604,  3606,  3608,  3610,
        !           626:   3612,  3624,  3636,  3667,  3679,  3691,  3704,  3720,  3724
        !           627: };
        !           628: 
        !           629: static const char * const yytname[] = {   "$","error","$illegal.","IDENTIFIER",
        !           630: "TYPENAME","SCOPED_TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING",
        !           631: "ELLIPSIS","SIZEOF","ENUM","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT",
        !           632: "BREAK","CONTINUE","RETURN","GOTO","ASM","TYPEOF","ALIGNOF","HEADOF","CLASSOF",
        !           633: "ATTRIBUTE","AGGR","VISSPEC","DELETE","NEW","OVERLOAD","THIS","OPERATOR","DYNAMIC",
        !           634: "POINTSAT_LEFT_RIGHT","LEFT_RIGHT","TEMPLATE","SCOPE","START_DECLARATOR","EMPTY",
        !           635: "TYPENAME_COLON","'{'","','","ASSIGN","'='","'?'","':'","RANGE","OROR","ANDAND",
        !           636: "'|'","'^'","'&'","MIN_MAX","EQCOMPARE","ARITHCOMPARE","'<'","'>'","LSHIFT",
        !           637: "RSHIFT","'+'","'-'","'*'","'/'","'%'","UNARY","PLUSPLUS","MINUSMINUS","HYPERUNARY",
        !           638: "PAREN_STAR_PAREN","POINTSAT","POINTSAT_STAR","'.'","DOT_STAR","'('","'['","RAISE",
        !           639: "RAISES","RERAISE","TRY","EXCEPT","CATCH","THROW","ANSI_TRY","ANSI_THROW","TYPENAME_ELLIPSIS",
        !           640: "PTYPENAME","PRE_PARSED_FUNCTION_DECL","EXTERN_LANG_STRING","ALL","PRE_PARSED_CLASS_DECL",
        !           641: "TYPENAME_DEFN","IDENTIFIER_DEFN","PTYPENAME_DEFN","END_OF_SAVED_INPUT","')'",
        !           642: "';'","'}'","'~'","'!'","']'","program","extdefs","@1",".hush_warning",".warning_ok",
        !           643: "extdef","extern_lang_string","template_header","@2","template_parm_list","template_parm",
        !           644: "overloaddef","ov_identifiers","template_def","@3","@4","@5","@6","fn_tmpl_end",
        !           645: "datadef","fndef","fn.def1","fn.def2","return_id","return_init","base_init",
        !           646: ".set_base_init","member_init_list","member_init","identifier","identifier_defn",
        !           647: "identifier_or_opname","wrapper","template_type","template_type_name","tmpl.1",
        !           648: "tmpl.2","template_arg_list","template_arg","template_instantiate_once","@7",
        !           649: "template_instantiation","template_instantiate_some","unop","expr","nonnull_exprlist",
        !           650: "unary_expr","cast_expr","expr_no_commas","primary","@8","@9","new",".scope",
        !           651: "delete","string","nodecls","object","object_star","decl","declarator","typed_declspecs",
        !           652: "reserved_declspecs","declmods","typed_typespecs","reserved_typespecquals","typespec",
        !           653: "typespecqual_reserved","initdecls","notype_initdecls","maybeasm","initdcl0",
        !           654: "@10","initdcl","@11","notype_initdcl0","@12","maybe_attribute","attribute_list",
        !           655: "attrib","identifiers","init","initlist","structsp","@13","@14","maybecomma",
        !           656: "maybecomma_warn","aggr","named_class_head_sans_basetype","named_class_head_sans_basetype_defn",
        !           657: "named_class_head","@15","@16","unnamed_class_head","class_head","maybe_base_class_list",
        !           658: "base_class_list","base_class","base_class.1","base_class_visibility_list","LC",
        !           659: "opt.component_decl_list","component_decl_list","component_decl","components",
        !           660: "component_declarator0","component_declarator","enumlist","enumerator","typename",
        !           661: "absdcl","nonempty_type_quals","type_quals","nonmomentary_expr","@17","after_type_declarator",
        !           662: "after_type_declarator_no_typename","notype_declarator","scoped_id","TYPENAME_SCOPE",
        !           663: "scoped_typename","absdcl1","abs_member_declarator","after_type_member_declarator",
        !           664: "stmts","errstmt",".pushlevel","compstmt_or_error","compstmt","simple_if","@18",
        !           665: "stmt","@19","@20","@21","@22","@23","@24","@25","@26","@27","@28","@29","@30",
        !           666: "@31","@32","@33","@34","@35","try","label_colon","try_head","@36","ansi_try",
        !           667: "ansi_dummy","ansi_try_head","@37","except_stmts","@38","@39","optional_identifier",
        !           668: "ansi_except_stmts","@40","forhead.1","forhead.2","maybe_type_qual","xexpr",
        !           669: "asm_operands","nonnull_asm_operands","asm_operand","asm_clobbers","parmlist",
        !           670: "parms","parm","abs_or_notype_decl","see_typename","dont_see_typename","try_for_typename",
        !           671: "bad_parm","maybe_raises","raise_identifier","ansi_raise_identifier","raise_identifiers",
        !           672: "ansi_raise_identifiers","operator_name",""
        !           673: };
        !           674: #endif
        !           675: 
        !           676: static const short yyr1[] = {     0,
        !           677:    107,   107,   109,   108,   108,   110,   111,   112,   112,   112,
        !           678:    112,   112,   112,   112,   112,   112,   113,   115,   114,   116,
        !           679:    116,   117,   117,   117,   117,   118,   119,   119,   121,   120,
        !           680:    122,   120,   123,   120,   124,   120,   120,   120,   120,   120,
        !           681:    120,   125,   125,   125,   125,   125,   126,   126,   126,   126,
        !           682:    126,   126,   126,   126,   126,   126,   127,   127,   127,   127,
        !           683:    127,   127,   127,   127,   128,   128,   128,   128,   128,   128,
        !           684:    128,   128,   129,   129,   129,   129,   129,   129,   129,   130,
        !           685:    131,   131,   131,   131,   132,   133,   134,   134,   134,   134,
        !           686:    135,   135,   135,   135,   135,   135,   136,   136,   136,   137,
        !           687:    137,   137,   138,   138,   138,   138,   138,   138,   138,   138,
        !           688:    138,   138,   139,   139,   139,   140,   141,   142,   142,   142,
        !           689:    143,   144,   144,   145,   145,   147,   146,   148,   148,   149,
        !           690:    149,   150,   150,   150,   150,   150,   151,   151,   152,   152,
        !           691:    152,   153,   153,   153,   153,   153,   153,   153,   153,   153,
        !           692:    153,   153,   153,   153,   153,   153,   153,   153,   153,   153,
        !           693:    153,   153,   154,   154,   154,   154,   154,   154,   155,   155,
        !           694:    155,   155,   155,   155,   155,   155,   155,   155,   155,   155,
        !           695:    155,   155,   155,   155,   155,   155,   155,   155,   155,   155,
        !           696:    155,   156,   156,   156,   156,   156,   156,   157,   156,   158,
        !           697:    156,   156,   156,   156,   156,   156,   156,   156,   156,   156,
        !           698:    156,   156,   156,   156,   156,   156,   156,   156,   156,   156,
        !           699:    159,   159,   159,   159,   160,   160,   161,   161,   162,   162,
        !           700:    163,   164,   164,   165,   166,   166,   166,   166,   166,   166,
        !           701:    167,   167,   167,   167,   168,   168,   168,   168,   169,   169,
        !           702:    169,   169,   170,   170,   170,   170,   171,   171,   171,   171,
        !           703:    172,   172,   173,   173,   173,   173,   173,   173,   173,   174,
        !           704:    174,   174,   175,   175,   176,   176,   177,   177,   179,   178,
        !           705:    178,   181,   180,   180,   183,   182,   182,   184,   184,   185,
        !           706:    185,   186,   186,   186,   187,   187,   188,   188,   188,   188,
        !           707:    188,   189,   189,   189,   189,   189,   189,   191,   190,   190,
        !           708:    192,   190,   190,   190,   190,   190,   193,   193,   194,   194,
        !           709:    195,   195,   195,   195,   195,   195,   195,   196,   196,   196,
        !           710:    196,   196,   197,   199,   198,   200,   198,   201,   202,   202,
        !           711:    203,   203,   203,   204,   204,   205,   205,   206,   206,   207,
        !           712:    207,   207,   207,   208,   209,   209,   209,   209,   210,   210,
        !           713:    210,   211,   211,   211,   211,   211,   211,   211,   211,   211,
        !           714:    211,   211,   211,   211,   211,   211,   211,   211,   211,   211,
        !           715:    212,   212,   212,   213,   213,   213,   213,   213,   214,   214,
        !           716:    214,   214,   214,   215,   215,   216,   216,   217,   217,   218,
        !           717:    218,   218,   219,   219,   220,   220,   222,   221,   223,   223,
        !           718:    223,   223,   223,   223,   223,   223,   223,   223,   223,   223,
        !           719:    223,   223,   224,   224,   224,   224,   224,   224,   224,   224,
        !           720:    224,   224,   224,   225,   225,   225,   225,   225,   225,   225,
        !           721:    225,   225,   225,   225,   225,   225,   225,   225,   225,   225,
        !           722:    225,   225,   225,   225,   225,   225,   225,   225,   225,   225,
        !           723:    225,   225,   226,   226,   227,   228,   229,   229,   229,   229,
        !           724:    229,   229,   229,   229,   229,   229,   229,   229,   229,   229,
        !           725:    229,   230,   230,   230,   230,   231,   231,   232,   232,   232,
        !           726:    232,   233,   234,   235,   235,   236,   236,   236,   238,   237,
        !           727:    239,   239,   239,   240,   239,   239,   241,   242,   239,   243,
        !           728:    244,   239,   245,   246,   247,   239,   248,   249,   250,   239,
        !           729:    251,   239,   252,   239,   253,   239,   254,   239,   239,   239,
        !           730:    239,   239,   239,   239,   239,   239,   239,   239,   239,   239,
        !           731:    239,   239,   239,   239,   239,   239,   239,   255,   239,   239,
        !           732:    256,   239,   239,   239,   257,   257,   257,   258,   258,   258,
        !           733:    260,   259,   261,   261,   261,   262,   264,   263,   265,   266,
        !           734:    265,   267,   265,   268,   268,   269,   270,   269,   271,   271,
        !           735:    271,   272,   272,   272,   272,   273,   273,   274,   274,   274,
        !           736:    275,   275,   276,   276,   277,   278,   278,   279,   279,   279,
        !           737:    279,   279,   279,   279,   279,   280,   280,   280,   280,   280,
        !           738:    280,   281,   281,   282,   282,   282,   283,   284,   285,   286,
        !           739:    287,   287,   287,   288,   288,   288,   288,   288,   288,   288,
        !           740:    289,   290,   290,   291,   291,   292,   292,   292,   292,   292,
        !           741:    292,   292,   292,   292,   292,   292,   292,   292,   292,   292,
        !           742:    292,   292,   292,   292,   292,   292,   292,   292,   292,   292,
        !           743:    292,   292,   292,   292,   292,   292,   292,   292,   292
        !           744: };
        !           745: 
        !           746: static const short yyr2[] = {     0,
        !           747:      0,     1,     0,     2,     2,     0,     0,     1,     1,     1,
        !           748:      1,     5,     4,     3,     4,     4,     1,     0,     5,     1,
        !           749:      3,     2,     4,     3,     1,     3,     1,     3,     0,     5,
        !           750:      0,     5,     0,     5,     0,     5,     3,     3,     6,     7,
        !           751:      4,     1,     1,     1,     1,     1,     2,     3,     3,     3,
        !           752:      3,     2,     2,     2,     2,     1,     3,     4,     3,     5,
        !           753:      4,     3,     3,     2,     3,     3,     2,     6,     6,     4,
        !           754:      4,     1,     6,     4,     3,     6,     4,     3,     2,     2,
        !           755:      1,     3,     4,     2,     3,     0,     0,     1,     3,     2,
        !           756:      3,     1,     4,     2,     5,     3,     1,     1,     1,     1,
        !           757:      1,     1,     1,     1,     1,     2,     1,     2,     2,     2,
        !           758:      3,     3,     1,     2,     2,     3,     4,     1,     1,     0,
        !           759:      0,     1,     3,     1,     1,     0,     6,     0,     1,     0,
        !           760:      2,     1,     1,     1,     1,     1,     1,     1,     1,     3,
        !           761:      3,     1,     2,     2,     2,     2,     2,     4,     2,     4,
        !           762:      3,     6,     4,     5,     9,     9,     6,     6,     3,     2,
        !           763:      4,     5,     1,     4,     7,     4,     4,     4,     1,     3,
        !           764:      3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
        !           765:      3,     3,     3,     3,     3,     3,     5,     3,     3,     3,
        !           766:      2,     1,     1,     1,     1,     3,     3,     0,     4,     0,
        !           767:      6,     2,     4,     2,     3,     2,     2,     1,     4,     4,
        !           768:      2,     2,     2,     2,     5,     3,     5,     3,     6,     4,
        !           769:      1,     4,     2,     5,     0,     1,     1,     2,     1,     2,
        !           770:      0,     2,     2,     2,     3,     3,     3,     3,     2,     2,
        !           771:      1,     1,     2,     2,     1,     2,     2,     3,     1,     1,
        !           772:      2,     2,     1,     1,     2,     2,     1,     2,     2,     3,
        !           773:      1,     2,     1,     1,     1,     1,     4,     4,     1,     1,
        !           774:      1,     1,     1,     3,     1,     3,     0,     4,     0,     7,
        !           775:      4,     0,     7,     4,     0,     7,     4,     0,     6,     1,
        !           776:      3,     1,     4,     4,     1,     3,     1,     2,     3,     4,
        !           777:      1,     1,     3,     4,     6,     3,     5,     0,     7,     4,
        !           778:      0,     6,     3,     2,     4,     1,     0,     1,     0,     1,
        !           779:      1,     2,     5,     2,     2,     2,     2,     2,     2,     2,
        !           780:      3,     3,     2,     0,     3,     0,     3,     2,     1,     1,
        !           781:      0,     1,     2,     1,     3,     1,     2,     3,     1,     1,
        !           782:      1,     2,     2,     1,     0,     1,     4,     3,     1,     2,
        !           783:      2,     3,     5,     5,     3,     3,     3,     3,     3,     5,
        !           784:      5,     3,     3,     3,     3,     1,     2,     2,     3,     3,
        !           785:      0,     1,     3,     3,     5,     3,     2,     2,     3,     5,
        !           786:      3,     2,     2,     1,     3,     1,     3,     2,     2,     0,
        !           787:      1,     2,     1,     2,     0,     2,     0,     2,     5,     5,
        !           788:      3,     5,     4,     3,     3,     5,     1,     1,     5,     3,
        !           789:      3,     1,     5,     5,     3,     5,     4,     3,     3,     1,
        !           790:      1,     3,     3,     5,     5,     3,     5,     3,     3,     3,
        !           791:      4,     3,     1,     1,     2,     2,     2,     2,     3,     3,
        !           792:      3,     3,     7,     7,     5,     7,     3,     7,     7,     5,
        !           793:      7,     3,     1,     3,     2,     1,     3,     3,     2,     1,
        !           794:      3,     3,     2,     5,     3,     4,     3,     4,     2,     3,
        !           795:      2,     3,     4,     3,     4,     5,     5,     1,     1,     2,
        !           796:      2,     2,     0,     1,     2,     2,     4,     4,     0,     6,
        !           797:      1,     1,     2,     0,     4,     1,     0,     0,     7,     0,
        !           798:      0,     9,     0,     0,     0,     9,     0,     0,     0,     9,
        !           799:      0,     6,     0,     5,     0,     7,     0,     4,     2,     2,
        !           800:      2,     3,     6,     8,    10,    12,     3,     2,     2,     1,
        !           801:      2,     3,     6,     4,     6,     4,     3,     0,     7,     2,
        !           802:      0,     5,     3,     1,     2,     3,     3,     2,     2,     1,
        !           803:      0,     4,     2,     3,     3,     0,     0,     4,     0,     0,
        !           804:      4,     0,     4,     0,     1,     0,     0,     8,     3,     4,
        !           805:      4,     3,     4,     6,     6,     0,     1,     0,     1,     1,
        !           806:      0,     1,     1,     3,     4,     1,     3,     0,     1,     3,
        !           807:      2,     1,     1,     2,     2,     1,     3,     3,     5,     3,
        !           808:      5,     3,     3,     1,     1,     2,     1,     0,     0,     1,
        !           809:      0,     2,     4,     1,     1,     1,     2,     2,     2,     1,
        !           810:      1,     1,     3,     1,     3,     2,     2,     2,     2,     2,
        !           811:      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        !           812:      2,     2,     2,     2,     2,     2,     2,     2,     3,     2,
        !           813:      2,     2,     3,     2,     3,     2,     2,     3,     2
        !           814: };
        !           815: 
        !           816: static const short yydefact[] = {     3,
        !           817:      0,     0,     0,   443,   265,   466,   254,   264,   253,     0,
        !           818:      0,     0,   321,     0,     0,     0,     0,     0,   405,   405,
        !           819:    405,     0,     0,    72,    17,    56,     0,     5,     6,     0,
        !           820:     11,    10,     9,     8,   231,   269,   120,     0,     0,   245,
        !           821:      0,   275,   263,     0,   334,   336,   340,   339,   316,     0,
        !           822:    405,   463,   266,   444,     4,    54,    55,   405,   465,   598,
        !           823:     97,    98,   311,    99,   314,     0,   225,    27,     0,   669,
        !           824:    265,   403,   667,   666,   405,   664,   645,   650,   651,     0,
        !           825:    657,   656,   642,   643,   641,   660,   649,   646,   647,   648,
        !           826:    652,   653,   639,   640,   636,   637,   638,   654,   655,   661,
        !           827:    662,     0,   644,   658,   269,   400,   257,     0,   266,   322,
        !           828:      0,     0,   448,    18,   617,     0,     0,     0,     0,     0,
        !           829:      0,   225,   446,   445,     0,   447,     3,     0,   265,     0,
        !           830:      0,   334,   336,   621,     0,    86,    81,   231,     0,     0,
        !           831:    619,   118,   119,   128,   422,     0,   405,   405,   417,     0,
        !           832:     53,     0,     0,   273,   241,   242,   405,   418,   265,   256,
        !           833:    255,    52,     0,   246,     0,     0,   250,   270,   271,   247,
        !           834:    249,   272,     0,    47,   324,   325,   326,   327,   330,   338,
        !           835:     99,   101,   100,   102,   328,   333,   329,   341,   341,   354,
        !           836:      0,    64,   405,     0,   407,     0,     0,    67,     0,   405,
        !           837:    598,   621,   602,   603,   618,   618,     0,   599,   606,   313,
        !           838:      0,   308,   229,     0,   192,   403,   194,   225,   225,     0,
        !           839:      0,   227,   208,   226,   225,   133,   132,   225,   134,   135,
        !           840:      0,   225,   136,   225,     0,   137,   163,   169,   138,   142,
        !           841:      0,   225,   195,     0,   225,   400,   257,     0,   400,     0,
        !           842:    193,     0,    26,   663,   659,   665,   405,     0,   405,   405,
        !           843:    470,   598,   407,   668,   401,   259,   261,   404,   258,     0,
        !           844:    449,     0,   406,   462,   440,   439,   438,     0,   122,   125,
        !           845:    124,   450,    14,     0,     7,     7,   621,     0,    29,    33,
        !           846:     37,    31,    35,    38,   277,    80,    87,    84,     0,   225,
        !           847:    231,     0,     0,     0,   493,    57,   494,    59,   464,   341,
        !           848:    129,   116,   243,   244,     0,     0,   405,   405,   430,     0,
        !           849:      0,   431,    62,    51,    65,     0,    50,   405,     0,   407,
        !           850:      0,    49,   248,    48,    63,    66,   252,   251,   621,   276,
        !           851:    331,   332,   342,   335,   337,   376,   225,     0,   381,   381,
        !           852:      0,     0,   359,   621,   436,     0,   253,     0,   139,   245,
        !           853:      0,   442,     0,   225,   625,   626,     0,   624,     0,   630,
        !           854:    632,   622,     0,     0,   288,   452,   457,   451,   621,     0,
        !           855:     70,   400,   400,   405,   601,   400,   605,   604,     0,   396,
        !           856:    319,   394,   310,     0,   230,     0,   225,     0,     0,   147,
        !           857:    142,     0,     0,   149,   225,   225,   212,     0,   228,   213,
        !           858:    144,   143,     0,     0,     0,     0,   145,   146,   267,     0,
        !           859:    225,   225,     0,   225,   225,   225,   225,   225,   225,   225,
        !           860:    225,   225,   225,   225,   225,   225,   225,   225,   225,   225,
        !           861:    202,   206,   207,   233,   234,   232,   225,   225,   225,   221,
        !           862:      0,   225,   160,   103,   104,   113,   105,     0,   204,     0,
        !           863:      0,   107,   191,   398,   211,   225,   268,   399,   104,   105,
        !           864:    214,    28,   479,   402,   473,   469,     0,     0,     0,     0,
        !           865:    481,     0,   405,   598,   407,   262,   260,     0,     0,    20,
        !           866:      0,    25,   225,   117,    13,    16,    15,   277,    46,    42,
        !           867:     45,    43,    44,    41,     0,     0,     0,     0,   288,    98,
        !           868:     92,   225,     0,    88,     0,     0,   301,     0,   297,    82,
        !           869:      0,     0,    58,    61,   495,   496,     0,   126,   421,   420,
        !           870:      0,     0,   405,   405,     0,   405,     0,   407,   415,   288,
        !           871:    274,   411,     0,     0,     0,   414,     0,   405,   405,   277,
        !           872:    351,   350,   349,   121,   343,   344,   346,     0,     0,   378,
        !           873:    377,   443,   405,   225,   225,   598,   621,     0,   382,   405,
        !           874:    598,   621,     0,     0,   315,   361,   360,    79,   405,   405,
        !           875:    405,   441,   408,   627,   628,   629,     0,   631,   634,     0,
        !           876:      0,     0,   287,   405,     0,   405,     0,    71,   405,   405,
        !           877:      0,   405,   405,   598,   614,   615,   612,   613,   621,   600,
        !           878:    608,   620,   610,   607,   225,   320,     0,   319,    12,     0,
        !           879:      0,     0,     0,   265,     0,   197,   196,     0,   225,   141,
        !           880:    140,   189,   188,   590,   589,     0,   186,   185,   183,   184,
        !           881:    182,   181,   180,   177,   178,   179,   175,   176,   170,   171,
        !           882:    172,   173,   174,   190,     0,     0,   223,   225,   159,     0,
        !           883:    257,   151,   225,     0,   115,   114,   106,   218,   225,   108,
        !           884:    109,     0,   110,   205,     0,   216,   225,   472,   468,   405,
        !           885:    405,   467,   471,   405,   480,   475,     0,   477,     0,   323,
        !           886:      0,    19,   330,   328,   333,   123,   288,    30,    34,    32,
        !           887:     36,     0,     0,    90,     0,    94,   225,     0,   192,   265,
        !           888:    225,   298,     0,   302,     0,    83,    60,     0,   192,     0,
        !           889:    507,   510,     0,     0,   225,     0,     0,     0,   225,     0,
        !           890:    586,   560,     0,     0,     0,     0,   225,     0,   540,     0,
        !           891:    502,     0,     0,     0,   489,   501,   506,   488,     0,   225,
        !           892:      0,   566,     0,   513,   517,     0,     0,     0,     0,     0,
        !           893:    429,   425,     0,     0,     0,   428,     0,   281,   405,   405,
        !           894:    405,   413,     0,     0,   288,   128,     0,   353,   352,   347,
        !           895:    374,   375,   225,   365,   366,   621,   387,   388,     0,   277,
        !           896:      0,   362,   372,   373,   621,     0,   368,   277,   367,   369,
        !           897:      0,   379,   380,   437,   434,   435,   633,     0,   623,     0,
        !           898:      0,   285,   455,     0,     0,     0,   460,     0,     0,     0,
        !           899:    621,   616,   473,   469,   405,    68,     0,     0,   397,   395,
        !           900:    312,     0,   209,   148,   150,   166,   168,   167,   199,     0,
        !           901:    164,   225,   200,   203,     0,     0,   400,   400,   153,   225,
        !           902:      0,   161,   225,     0,   111,   112,   220,   225,   210,     0,
        !           903:    484,   482,   478,   405,   476,    21,    24,     0,     0,    39,
        !           904:     91,    89,     0,    96,   225,     0,     0,     0,   299,   492,
        !           905:    498,   558,   225,     0,   225,     0,   225,     0,   527,   529,
        !           906:    530,   531,     0,     0,   587,     0,   625,   626,     0,     0,
        !           907:    561,     0,   567,   541,     0,   559,   503,   239,   621,     0,
        !           908:    240,     0,     0,   621,     0,   497,   491,   490,   504,   550,
        !           909:      0,     0,   539,   538,     0,   555,     0,   566,     0,   563,
        !           910:      0,     0,     0,     0,   419,   416,   433,   432,   405,   405,
        !           911:    405,   427,   279,   412,   409,   410,   487,   486,   284,   348,
        !           912:    345,   386,    74,   405,   384,   443,   225,   225,   621,   383,
        !           913:     77,   405,     0,   635,   278,     0,     0,   405,   405,   405,
        !           914:    405,   405,   405,    69,   609,   611,   309,   317,   187,   130,
        !           915:      0,   222,     0,     0,     0,   154,   162,   217,     0,   215,
        !           916:    485,   483,   474,    23,    40,    93,     0,     0,   306,   225,
        !           917:    300,     0,   303,     0,   225,     0,     0,   493,   579,     0,
        !           918:    582,     0,   523,   225,   225,   532,   537,     0,   547,     0,
        !           919:    225,   493,     0,   225,   493,   542,   236,   277,   235,   238,
        !           920:    237,   277,   225,   553,     0,   557,   556,   551,   565,   564,
        !           921:      0,     0,     0,   426,   423,   424,     0,   282,   363,   364,
        !           922:    621,     0,   225,   392,   393,   277,   370,   371,   621,   292,
        !           923:      0,   290,   286,   456,   453,   454,   461,   458,   459,     0,
        !           924:      0,   130,   201,   224,   157,   158,   152,   219,    95,   304,
        !           925:      0,     0,   499,     0,   511,   583,   581,     0,   580,   521,
        !           926:    225,     0,   528,     0,   546,     0,   562,   544,     0,   568,
        !           927:    505,   548,   576,   514,   518,   127,   280,     0,    73,   385,
        !           928:    391,   389,    76,     0,     0,     0,   165,   131,   407,   407,
        !           929:      0,   307,   225,   508,     0,     0,     0,   225,   524,   525,
        !           930:    591,     0,     0,     0,   569,   552,     0,     0,   283,     0,
        !           931:    295,     0,     0,   291,   289,     0,     0,   305,   500,   225,
        !           932:    225,   585,   584,   522,   225,     0,     0,   592,   593,   533,
        !           933:    545,   543,     0,     0,     0,     0,   390,   293,     0,   294,
        !           934:    155,   156,   509,     0,   526,   225,   591,     0,     0,   572,
        !           935:    549,   570,     0,   515,   519,   296,     0,     0,     0,   534,
        !           936:    594,     0,     0,   574,   225,   225,   512,   595,     0,     0,
        !           937:    573,   571,   575,     0,   516,   520,   596,     0,   535,   577,
        !           938:      0,     0,     0,   597,   536,   578,     0,     0,     0
        !           939: };
        !           940: 
        !           941: static const short yydefgoto[] = {  1217,
        !           942:      1,     2,   128,   496,    28,    29,    30,   272,   489,   490,
        !           943:     31,    69,    32,   505,   507,   506,   508,   504,    33,    34,
        !           944:     35,   348,   137,   138,   139,   297,   513,   514,   553,   186,
        !           945:    459,   460,    36,    37,   144,   776,   278,   279,   311,   756,
        !           946:    312,  1073,   234,   740,   236,   237,   238,   239,   240,   415,
        !           947:    980,   451,   241,   242,   243,   140,   244,   245,   741,   339,
        !           948:    742,   170,   743,   246,   266,   402,   267,   153,    41,   375,
        !           949:    154,  1047,   340,  1108,    42,   967,   593,  1061,  1062,  1143,
        !           950:    714,   715,    43,   394,   211,  1071,   617,    44,    45,    46,
        !           951:     47,   188,   189,    48,    49,   344,   555,   556,   557,   558,
        !           952:    191,   351,   352,   353,   568,   569,   960,   391,   392,   281,
        !           953:    605,   249,   115,   363,   364,   155,   321,   156,   250,    52,
        !           954:    109,   265,   479,   158,   744,   745,   527,   306,   746,   747,
        !           955:   1123,   748,  1033,   884,  1150,   885,  1125,   932,  1137,  1195,
        !           956:    933,  1138,  1196,  1128,  1091,  1155,  1015,  1135,  1103,   749,
        !           957:    750,   751,  1022,   752,   928,   753,  1025,  1163,  1193,  1192,
        !           958:   1204,  1136,  1213,   754,   755,   896,   636,  1157,  1158,  1159,
        !           959:   1208,   480,   208,   209,   607,   199,   382,   309,   613,   198,
        !           960:    371,   589,   372,   590,   251
        !           961: };
        !           962: 
        !           963: static const short yypact[] = {   196,
        !           964:   1953,  4724,   235,-32768,   489,-32768,-32768,-32768,-32768,   130,
        !           965:     26,   156,-32768,   250,  3128,   219,   133,   211,-32768,-32768,
        !           966: -32768,  4851,   273,-32768,-32768,-32768,   276,-32768,   380,  6174,
        !           967: -32768,-32768,-32768,-32768,   421,   403,   619,  1470,  5959,   862,
        !           968:    127,-32768,-32768,  1245,-32768,-32768,-32768,-32768,   477,   913,
        !           969: -32768,-32768,   341,-32768,-32768,-32768,-32768,-32768,-32768,  1851,
        !           970: -32768,-32768,   484,-32768,   559,   585,  5526,-32768,   173,-32768,
        !           971: -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   578,
        !           972: -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
        !           973: -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
        !           974: -32768,   517,-32768,-32768,-32768,  1367,   963,  1394,-32768,-32768,
        !           975:    585,    99,-32768,-32768,   678,  4851,  4769,  4769,   656,   403,
        !           976:    348,  5526,-32768,-32768,    99,-32768,   601,   942,   656,   785,
        !           977:   6118,   190,   192,   731,   685,-32768,   574,    22,   227,   227,
        !           978: -32768,-32768,-32768,   615,   656,  5260,-32768,-32768,-32768,  5341,
        !           979: -32768,   370,   240,-32768,   597,   604,-32768,-32768,   690,-32768,
        !           980: -32768,-32768,   613,   862,   241,  1660,-32768,-32768,-32768,  1047,
        !           981: -32768,-32768,   785,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
        !           982:    273,-32768,-32768,-32768,-32768,-32768,   623,   665,   665,-32768,
        !           983:   4838,-32768,-32768,  3218,   621,   106,   650,    49,  5155,-32768,
        !           984:   1851,   230,-32768,-32768,-32768,   892,   631,   345,   686,-32768,
        !           985:     99,   638,-32768,    66,-32768,   684,-32768,  5762,  5836,   706,
        !           986:    710,-32768,-32768,   576,  5607,-32768,-32768,  5607,-32768,-32768,
        !           987:   4148,  5607,-32768,  5607,   691,   705,-32768,-32768,  6336,  1065,
        !           988:    761,  5202,   788,    90,  5607,  1367,   469,   702,  6244,   205,
        !           989: -32768,   802,-32768,   678,-32768,-32768,-32768,  1214,-32768,-32768,
        !           990: -32768,  6223,   700,-32768,   612,   963,-32768,-32768,   963,    79,
        !           991: -32768,  1788,-32768,-32768,   604,   604,-32768,    35,-32768,  3213,
        !           992: -32768,-32768,-32768,  4677,-32768,-32768,   582,   383,-32768,-32768,
        !           993: -32768,-32768,-32768,-32768,   784,-32768,   223,-32768,  4229,  5607,
        !           994: -32768,   227,   227,   766,   713,-32768,-32768,-32768,-32768,   665,
        !           995: -32768,-32768,   597,   604,  3716,  3716,-32768,-32768,-32768,  5422,
        !           996:    385,-32768,-32768,-32768,    49,   785,-32768,-32768,  3323,   711,
        !           997:   5503,-32768,  1047,-32768,-32768,    49,-32768,-32768,   582,-32768,
        !           998: -32768,-32768,   263,-32768,-32768,-32768,  5607,   648,  1731,  1833,
        !           999:     38,  1562,-32768,   731,   678,   717,   684,     0,  6382,   628,
        !          1000:    721,-32768,   718,  5607,-32768,   656,   405,-32768,   822,-32768,
        !          1001: -32768,   779,  1464,   750,   800,   656,   273,-32768,   230,   735,
        !          1002: -32768,   509,   509,-32768,-32768,  1348,-32768,-32768,  4229,   782,
        !          1003:    790,-32768,-32768,    99,-32768,   740,  5607,   684,  4148,-32768,
        !          1004:   1158,   416,  4148,-32768,  5607,  5688,-32768,   460,-32768,-32768,
        !          1005: -32768,-32768,   744,   745,   766,   748,-32768,-32768,-32768,  4553,
        !          1006:   5607,  5607,  4310,  5607,  5607,  5607,  5607,  5607,  5607,  5607,
        !          1007:   5607,  5607,  5607,  5607,  5607,  5607,  5607,  5607,  5607,  5607,
        !          1008: -32768,-32768,-32768,-32768,-32768,-32768,  5607,  5607,  5607,   440,
        !          1009:   1644,  4634,-32768,-32768,   656,   799,   273,   283,   461,   396,
        !          1010:    205,-32768,-32768,-32768,-32768,  5607,-32768,-32768,-32768,-32768,
        !          1011:    540,-32768,   678,   612,  1182,  1182,   197,   457,   751,   753,
        !          1012: -32768,   755,-32768,  1851,   756,-32768,   963,   825,   199,-32768,
        !          1013:   1841,-32768,  5526,-32768,-32768,-32768,-32768,   784,-32768,-32768,
        !          1014: -32768,-32768,-32768,-32768,   762,   764,   770,   771,   800,   656,
        !          1015: -32768,  5607,   544,-32768,   571,    99,-32768,  3743,  6382,-32768,
        !          1016:     44,   227,-32768,-32768,-32768,-32768,  2933,-32768,   597,   597,
        !          1017:   3716,  3716,-32768,-32768,   459,-32768,  3428,   757,-32768,   800,
        !          1018: -32768,   678,   773,   222,   775,-32768,   777,-32768,-32768,   784,
        !          1019: -32768,-32768,-32768,-32768,   840,-32768,-32768,   298,  6305,-32768,
        !          1020: -32768,   839,   278,  5607,  5607,  6015,   582,   282,-32768,   515,
        !          1021:   6015,    -2,   204,   841,-32768,-32768,-32768,   309,-32768,-32768,
        !          1022: -32768,-32768,-32768,-32768,-32768,-32768,   106,-32768,-32768,   243,
        !          1023:    585,   824,   842,-32768,  3533,-32768,  3638,-32768,-32768,   133,
        !          1024:   3657,-32768,-32768,  5879,-32768,   604,-32768,-32768,   230,-32768,
        !          1025:    856,-32768,   857,-32768,  5607,    99,   805,   790,-32768,   338,
        !          1026:    808,   809,   811,    34,   815,-32768,-32768,   817,  5283,-32768,
        !          1027:   6382,  6382,  6382,-32768,-32768,   861,  2042,  6417,  3310,  3279,
        !          1028:   3383,  3084,  2114,  1830,  1830,  1830,   812,   812,   652,   652,
        !          1029: -32768,-32768,-32768,-32768,   347,   823,   843,  5607,-32768,  1464,
        !          1030:    998,   871,  5607,   828,-32768,-32768,-32768,-32768,  5607,-32768,
        !          1031:    656,    70,-32768,   588,   366,-32768,  5607,   612,   612,-32768,
        !          1032: -32768,-32768,-32768,-32768,-32768,   678,   834,-32768,   830,-32768,
        !          1033:   1788,-32768,   846,   215,   888,-32768,   800,-32768,-32768,-32768,
        !          1034: -32768,   383,   368,-32768,   223,-32768,  5607,   602,   889,   462,
        !          1035:   5607,-32768,   890,-32768,    19,-32768,-32768,   321,   899,   872,
        !          1036: -32768,-32768,   873,   876,  5607,   905,   865,   875,  5364,    99,
        !          1037:    956,-32768,   213,   926,   106,   931,  5445,   455,-32768,   877,
        !          1038: -32768,  2290,  6071,  2234,-32768,-32768,   967,-32768,  2127,  4996,
        !          1039:   2408,-32768,  2513,-32768,-32768,   477,   463,   481,  3716,  3716,
        !          1040: -32768,   678,   885,   377,   891,-32768,   883,   940,-32768,-32768,
        !          1041: -32768,-32768,  3716,  3716,   800,   615,   263,-32768,-32768,-32768,
        !          1042: -32768,-32768,  5607,-32768,-32768,   230,  6382,  6382,   896,   590,
        !          1043:   1984,-32768,-32768,-32768,   230,   897,-32768,   687,-32768,-32768,
        !          1044:   4894,-32768,-32768,   678,   678,   678,-32768,  1464,-32768,    86,
        !          1045:    919,-32768,   678,   900,   389,   903,   678,   906,   390,   908,
        !          1046:    230,   604,    82,    82,   197,-32768,  4229,  4229,  6382,-32768,
        !          1047: -32768,   909,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  4067,
        !          1048: -32768,  5607,-32768,-32768,   585,   100,  1367,  6244,-32768,  5607,
        !          1049:   4229,-32768,  5607,   415,-32768,-32768,-32768,  5607,-32768,   420,
        !          1050:   1182,  1182,   678,-32768,-32768,-32768,-32768,   140,   383,-32768,
        !          1051: -32768,-32768,   433,-32768,  5607,  6283,  4229,  3824,-32768,-32768,
        !          1052: -32768,-32768,  5607,   933,  5099,  3905,  5607,   707,-32768,-32768,
        !          1053: -32768,-32768,   915,   916,-32768,   939,   918,    15,   921,   616,
        !          1054: -32768,   617,-32768,-32768,   922,-32768,-32768,-32768,   645,   313,
        !          1055: -32768,   925,   317,   622,   929,-32768,-32768,-32768,-32768,-32768,
        !          1056:    106,    99,-32768,-32768,   659,-32768,  2618,-32768,   673,-32768,
        !          1057:   2723,  4391,  4391,  4838,-32768,-32768,   597,   597,-32768,-32768,
        !          1058: -32768,-32768,-32768,   678,   678,   678,   597,   597,   971,-32768,
        !          1059: -32768,  6382,-32768,   675,   978,   981,  5607,  5607,   582,-32768,
        !          1060: -32768,   679,  4782,-32768,-32768,  1033,  4229,-32768,-32768,-32768,
        !          1061: -32768,-32768,-32768,-32768,-32768,-32768,-32768,   990,  6402,   615,
        !          1062:    122,-32768,   944,   946,   447,-32768,-32768,-32768,   458,-32768,
        !          1063:    612,   612,   678,-32768,-32768,-32768,   487,  4229,-32768,  5607,
        !          1064: -32768,   988,-32768,   947,  5607,  1025,   948,   949,-32768,   954,
        !          1065: -32768,   957,-32768,  5607,  5099,-32768,-32768,   585,-32768,   966,
        !          1066:   5607,-32768,   968,  5607,-32768,-32768,-32768,   784,-32768,-32768,
        !          1067: -32768,   784,  5099,   779,  1018,-32768,-32768,-32768,-32768,-32768,
        !          1068:    972,   973,    58,   678,   678,   678,  4229,-32768,-32768,-32768,
        !          1069:    230,  4229,  5607,  6382,  6382,   784,-32768,-32768,   230,   989,
        !          1070:    498,-32768,-32768,   678,   678,   678,   678,   678,   678,  3986,
        !          1071:    970,   615,-32768,-32768,   995,   996,-32768,-32768,-32768,-32768,
        !          1072:   6360,  4229,-32768,   984,-32768,-32768,-32768,  3038,-32768,-32768,
        !          1073:   5099,  1036,-32768,    77,-32768,   524,-32768,-32768,   525,-32768,
        !          1074: -32768,-32768,-32768,-32768,-32768,-32768,-32768,  4229,-32768,-32768,
        !          1075:   6382,  1039,-32768,   548,  1033,   992,-32768,-32768,-32768,-32768,
        !          1076:   4229,-32768,  5099,-32768,  1014,   692,  2828,  5099,-32768,-32768,
        !          1077:   1085,   994,   997,  1005,-32768,  1013,  4472,  4472,-32768,  4229,
        !          1078: -32768,  1007,   526,-32768,-32768,  1003,  1010,-32768,-32768,  5099,
        !          1079:   5607,-32768,-32768,-32768,  5099,  1031,   312,  1069,-32768,-32768,
        !          1080: -32768,-32768,   255,  1038,  1012,  1020,-32768,-32768,  1116,-32768,
        !          1081: -32768,-32768,-32768,  1023,-32768,  5607,  1085,  1027,  1085,-32768,
        !          1082: -32768,-32768,  1464,-32768,-32768,-32768,  1037,  1032,   331,-32768,
        !          1083: -32768,   766,   766,    99,  5099,  5099,-32768,-32768,  1130,  1048,
        !          1084: -32768,-32768,-32768,  1052,-32768,-32768,-32768,   527,-32768,-32768,
        !          1085:   1145,  1054,   766,-32768,-32768,-32768,  1157,  1160,-32768
        !          1086: };
        !          1087: 
        !          1088: static const short yypgoto[] = {-32768,
        !          1089:   1035,-32768,-32768,   878,  1156,-32768,-32768,-32768,-32768,   474,
        !          1090: -32768,-32768,-32768,-32768,-32768,-32768,-32768,  -650,  1040,  1043,
        !          1091: -32768,-32768,-32768,-32768,  1028,-32768,-32768,   468,    -7,   676,
        !          1092:   -227,-32768,    -4,   -29,-32768,-32768,-32768,   683,  -908,-32768,
        !          1093:    407,   112,-32768,   -46,   454,   583,  -192,   781,  -164,-32768,
        !          1094: -32768,-32768,-32768,  -177,   -60,   -81,-32768,-32768,   300,    24,
        !          1095:   1041,  1034,  1133,    -8,   923,    -1,     6,   449,   -34,  -265,
        !          1096: -32768,-32768,   870,-32768,-32768,-32768,  -456,-32768,    85,-32768,
        !          1097:   -273,   357,   -12,-32768,-32768,-32768,   586,  -247,  1192,  1194,
        !          1098: -32768,-32768,-32768,-32768,-32768,  -157,-32768,   448,  -527,-32768,
        !          1099:    470,   293,   432,  -332,   887,-32768,-32768,   847,   627,   -63,
        !          1100:    -90,     2,  1435,  -261,-32768,  -127,   924,   986,   324,-32768,
        !          1101:     11,  -143,-32768,  -107,  -712,  -717,  -257,   -91,  -131,-32768,
        !          1102: -32768,   431,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
        !          1103: -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
        !          1104: -32768,-32768,-32768,-32768,   318,-32768,-32768,-32768,-32768,-32768,
        !          1105: -32768,-32768,-32768,-32768,-32768,-32768,  -888,    83,-32768,    75,
        !          1106: -32768,     5,-32768,  -248,  -304,     3,  1050,-32768,-32768,    13,
        !          1107:   -552,   451,   343,-32768,  1150
        !          1108: };
        !          1109: 
        !          1110: 
        !          1111: #define        YYLAST          6487
        !          1112: 
        !          1113: 
        !          1114: static const short yytable[] = {    40,
        !          1115:     40,   482,    65,   248,   165,   214,   106,   307,   307,   113,
        !          1116:    105,    53,    53,   107,   187,   264,   108,   120,   313,   577,
        !          1117:    235,   116,   471,   492,   491,   520,   917,   172,    40,   509,
        !          1118:    780,   345,   411,   120,   807,   412,   185,   164,   927,   417,
        !          1119:    931,   418,   322,  1041,  1042,   171,   409,   420,   308,   453,
        !          1120:    270,   870,   702,   401,   401,   105,   303,    59,    40,   540,
        !          1121:    401,   152,   163,   401,   207,   247,   878,   401,   547,   401,
        !          1122:    574,  1072,   855,   136,   374,   395,    59,   401,   608,  -277,
        !          1123:    196,   612,   493,   768,     4,   119,   395,   197,   395,   273,
        !          1124:    574,   420,   454,   455,   172,   395,  -277,   494,  -277,   797,
        !          1125:    580,    61,    62,   105,   271,    66,   269,    15,   365,   366,
        !          1126:      6,   120,   120,   120,   474,   614,   -98,   282,   478,    15,
        !          1127:    247,   879,   600,   301,    19,   120,    40,    15,  1131,   164,
        !          1128:    456,   395,    61,    62,   837,    61,    62,   611,    53,   602,
        !          1129:    575,   120,    61,    62,   716,   120,   295,   420,   367,   603,
        !          1130:   -277,   172,   528,   287,   288,   464,   261,   172,   468,   331,
        !          1131:   1106,   604,   263,  1072,   325,   867,   396,   416,   120,   171,
        !          1132:    307,   307,   525,    23,   173,   338,    63,  1132,   336,   488,
        !          1133:    900,   457,   902,   112,   414,    27,   965,   529,   530,    40,
        !          1134:     64,   120,   360,   458,   120,    -1,   105,    23,   361,    40,
        !          1135:    368,   105,   982,   390,   164,   380,   370,   454,   469,   917,
        !          1136:    523,   524,   322,   917,   381,   897,   898,     6,   995,   522,
        !          1137:    252,    64,  1074,   689,    64,    61,   510,   304,   174,   247,
        !          1138:    409,   181,   697,   674,   172,    67,   289,   273,   292,   120,
        !          1139:    869,   290,    15,   293,   105,   456,   691,   269,  1165,  1166,
        !          1140:    110,   791,    68,   172,   680,   367,   172,   365,   366,     6,
        !          1141:     40,   692,   -22,   511,   681,    61,    62,   105,   551,   420,
        !          1142:     40,   486,   114,   305,   253,  1180,   767,   -22,   123,   124,
        !          1143:     61,    62,    40,   628,   775,    61,    62,   326,   173,   515,
        !          1144:    808,   291,   120,   294,    53,   552,   470,   367,   111,   498,
        !          1145:     61,    62,   512,   778,   181,   799,   800,   368,   458,   588,
        !          1146:    120,   120,   196,   554,   181,   120,   125,   583,   949,   197,
        !          1147:    172,   120,   770,   666,    51,    51,   120,   360,   112,   791,
        !          1148:    779,   678,   679,   545,   122,   621,    56,    57,   338,   622,
        !          1149:    994,   327,   334,   809,   120,    51,    23,   172,   164,   368,
        !          1150:     40,   550,   414,    51,   181,   385,   414,  1181,   623,   625,
        !          1151:    326,   157,   157,  1177,   173,   171,   578,   126,   105,    64,
        !          1152:    323,   107,   567,   572,    64,  1127,   635,   120,   120,   784,
        !          1153:    785,   200,  1199,   792,    40,   420,   390,   662,   193,   181,
        !          1154:    307,   598,   386,  -621,   420,  -621,   387,   247,   670,   671,
        !          1155:   -621,   247,   656,   757,   758,   664,   499,   584,   585,   917,
        !          1156:    802,   803,  1178,   420,  1029,   420,  -621,  -621,  1031,  -621,
        !          1157:    201,  -621,   880,   881,   420,   536,   127,   194,   195,   500,
        !          1158:    717,  1200,   501,    15,   502,   388,   420,   420,   833,    51,
        !          1159:     51,    51,   492,   491,   135,   141,   105,   843,   277,   661,
        !          1160:    667,    51,   196,   157,   157,   120,   465,   474,   322,   197,
        !          1161:    478,   187,   420,   322,   537,   538,   859,   420,   871,   157,
        !          1162:    852,   324,   136,   157,   172,   168,   169,   940,   657,   105,
        !          1163:    420,    10,    40,   694,   503,   539,   658,    23,   687,   969,
        !          1164:    972,   247,   486,   222,   420,   466,   157,   483,   401,   536,
        !          1165:     13,   668,   408,   328,    59,   420,   906,    16,   708,   465,
        !          1166:    713,     4,   119,   -98,    51,   988,   122,    61,    62,   369,
        !          1167:    990,   328,    51,   190,   955,   360,   120,   120,   554,    58,
        !          1168:    810,    59,   955,   996,   420,   360,   484,   485,   537,   538,
        !          1169:    669,   765,   329,   330,   704,  1115,    15,  1077,   466,   600,
        !          1170:   1141,    19,   601,   975,   976,   113,  1142,   682,  1078,   761,
        !          1171:    329,   330,   113,   935,    40,   112,   602,   461,    60,    40,
        !          1172:    789,   420,   420,  1169,  1211,   796,   603,   986,   407,   790,
        !          1173:    676,   936,   120,   261,   798,   477,   210,  1079,   604,   263,
        !          1174:    -85,   705,   113,   360,   213,   360,   120,   370,  1116,   816,
        !          1175:     23,   820,    40,   999,  1003,   212,    64,    51,   390,   222,
        !          1176:   1182,   706,    27,    15,   298,   374,   793,   794,   408,   677,
        !          1177:    516,   826,   256,   299,  1133,  1134,  1170,  1212,   857,   255,
        !          1178:    577,   937,   938,   167,   168,   169,   -75,   328,   157,   157,
        !          1179:     10,   -75,   874,   157,   193,   947,   948,   358,   172,   157,
        !          1180:    707,   847,   483,   300,    51,   105,  1020,  1023,   107,    13,
        !          1181:    987,   848,   193,   554,   196,   142,    16,   858,   465,   341,
        !          1182:    143,   197,   157,   157,   342,    51,   329,   330,   888,   678,
        !          1183:    679,   875,   893,   194,   195,   273,   105,   296,   401,    40,
        !          1184:    905,   484,   485,  1063,   560,  1021,  1024,   515,    59,   561,
        !          1185:    120,   194,   195,   283,   196,    51,    51,   466,   913,    51,
        !          1186:    310,   197,   374,  -422,   332,  -422,   343,   991,   992,   438,
        !          1187:    439,   440,   894,  -242,  1080,   899,   362,   196,   120,   373,
        !          1188:    120,   384,    59,   -78,   197,   389,  -422,   120,   -78,  -422,
        !          1189:    393,   164,   360,   370,   588,   370,  1027,   554,   360,   360,
        !          1190:   1088,   360,   420,   521,   120,   120,   983,   984,  1013,  1014,
        !          1191:    880,  1036,   540,   397,  1097,   909,   912,  1100,   120,   120,
        !          1192:   -422,   193,  -422,  1107,   880,  1039,  1049,  1050,  1110,  -422,
        !          1193:   1057,  1058,   544,   672,   981,   405,   120,     4,   145,   406,
        !          1194:   1112,   419,  -422,   880,  1152,   450,  1003,   395,   953,    40,
        !          1195:    400,   404,   467,   105,   472,   481,   107,   961,  1122,   374,
        !          1196:    194,   195,   305,   196,   959,   526,   546,   579,   120,   120,
        !          1197:    197,   581,    15,   582,   586,    17,   587,    19,   146,   591,
        !          1198:    592,   615,   713,   974,  1139,   599,  1004,   616,   554,  1010,
        !          1199:   1012,   619,   147,   105,   626,   627,   269,  1148,   629,   665,
        !          1200:    620,   683,   148,   684,   157,   157,   690,  1146,  1147,   149,
        !          1201:    685,   688,   766,   698,   150,   699,  1167,   167,   168,   169,
        !          1202:   1002,   700,   701,   769,    10,   771,    23,   436,   437,   438,
        !          1203:    439,   440,   772,   360,   360,   635,   635,   777,    27,   157,
        !          1204:    783,   812,   801,    13,   157,    71,     6,   160,     8,   161,
        !          1205:     16,   655,   280,   811,    10,   827,   828,   831,   834,   835,
        !          1206:    369,   836,   842,   192,  1035,   838,   120,   839,    12,   675,
        !          1207:    851,  1028,   845,    13,    51,   360,  1032,   825,   844,   360,
        !          1208:     16,   370,    40,   853,   864,   865,  -621,   181,  -621,   868,
        !          1209:    -97,   877,     3,  -621,     4,     5,     6,     7,     8,     9,
        !          1210:    882,   883,   886,   193,    10,   887,   889,  1094,  1084,  -621,
        !          1211:   -621,    40,  -621,   895,  -621,   703,   890,  1092,    12,   168,
        !          1212:    169,  1056,   901,    13,   359,    10,   891,   903,   907,    15,
        !          1213:     16,   919,    17,    23,    19,   939,    50,    50,   942,   943,
        !          1214:    764,   941,   194,   195,    13,   196,   954,   962,   966,    20,
        !          1215:    968,    16,   197,   970,   168,   169,   971,   121,   973,    21,
        !          1216:     10,   977,  1005,   360,  -621,   134,  1016,  1017,  1018,   -97,
        !          1217:   1048,    22,  1019,  1026,   166,   463,  1030,  1052,   516,    13,
        !          1218:    880,   360,  1053,    23,    24,  1060,    16,  1070,   849,  1082,
        !          1219:   1085,    38,    38,    26,  1075,    27,  1076,  1083,   815,  1086,
        !          1220:    819,  1087,   337,   168,   169,  1089,   369,  1090,   369,    10,
        !          1221:   1201,  1202,  1002,  1109,  1102,   157,   157,  1095,  1114,  1098,
        !          1222:    130,  1113,  1117,  1104,  1105,  1119,  1120,   850,    13,   519,
        !          1223:    359,  1216,   157,   157,  1124,    16,   360,  1130,  1140,   360,
        !          1224:    635,   635,  1145,  1151,  1156,  1160,   157,   157,  1161,  1164,
        !          1225:    205,   274,   275,   276,  1174,   441,  1162,  1168,  1171,   359,
        !          1226:   1176,   846,  1184,    50,   157,  1172,  1179,  1183,  1186,  1194,
        !          1227:   1185,   360,   854,  1187,    51,   360,   360,   559,  1190,  1188,
        !          1228:    860,   314,  1198,    39,    39,   121,   442,   443,  1197,  1207,
        !          1229:    444,   445,   446,   447,   448,   449,    51,    51,   360,  1209,
        !          1230:     54,    54,  1210,   360,  1214,  1215,  1218,    55,   120,  1219,
        !          1231:    873,   284,   131,   497,   866,   302,   695,   285,    38,   519,
        !          1232:    286,    54,   872,   370,   918,   696,   354,   359,   105,    54,
        !          1233:    924,   107,   950,  1118,   378,  1011,  1203,    54,    54,   273,
        !          1234:    910,   487,   206,   360,   360,   541,   978,   333,   441,  1144,
        !          1235:    631,   632,   633,   832,   637,   638,   639,   640,   641,   642,
        !          1236:    643,   644,   645,   646,   647,   648,   649,   650,   651,   652,
        !          1237:    653,   132,   257,   133,   951,   934,  1043,   654,   359,   442,
        !          1238:    443,   349,   963,   444,   205,   446,   573,   448,   449,   259,
        !          1239:    618,   205,   830,   535,   369,  1038,   359,    61,    62,   260,
        !          1240:    175,   176,   177,  1191,   257,   383,   261,    51,   964,  1189,
        !          1241:     39,   262,   263,  1034,     0,    54,    54,    54,     0,    50,
        !          1242:      0,   259,     0,   280,     0,     0,   178,    54,     0,    54,
        !          1243:     54,   260,     0,     0,     0,     0,    51,     0,   261,     0,
        !          1244:    179,   180,   359,   262,   263,    54,     0,     0,   519,    54,
        !          1245:    275,   276,   205,   985,     0,   121,     0,     0,     0,     0,
        !          1246:      0,   989,   205,     0,     0,  1006,   378,   359,     0,     0,
        !          1247:      0,     0,    54,   350,    38,     0,   206,     0,   997,     0,
        !          1248:      0,     0,     0,   206,     0,     0,   181,   354,     0,     0,
        !          1249:     54,   182,   183,   184,   787,   788,     0,     0,    54,     0,
        !          1250:      4,   129,     6,     7,     8,     9,     0,   918,   610,     0,
        !          1251:     10,   918,     0,     0,     0,     0,     0,   606,   606,   205,
        !          1252:      0,   606,     0,   410,    12,   359,     0,   359,     0,    13,
        !          1253:      0,     0,     0,     0,     0,    15,    16,     0,   600,     0,
        !          1254:     19,   601,   349,   462,   206,   829,     0,    71,     6,   462,
        !          1255:      8,   268,     0,     0,   206,   602,    10,   257,     0,   841,
        !          1256:    258,     0,     0,     0,     0,   603,    39,     0,     0,     0,
        !          1257:     12,     0,   261,     0,   259,    13,   205,   604,   263,     0,
        !          1258:      0,     0,    16,    54,   260,     0,     0,     0,   359,    23,
        !          1259:      0,   261,     0,     0,     0,  1093,   262,   263,     0,   359,
        !          1260:      0,    27,     0,     0,   117,   118,     0,   359,     0,     0,
        !          1261:      0,   206,     0,  1101,    54,    54,     0,    71,     6,    54,
        !          1262:      8,    72,     4,   145,  1096,    54,    10,  1099,     0,     0,
        !          1263:     54,     0,     0,     0,   350,    23,   369,   359,     0,     0,
        !          1264:     12,   876,   202,     0,     0,    13,     0,     0,    54,    54,
        !          1265:      0,    54,    16,     0,     0,     0,     0,    15,     0,   254,
        !          1266:     17,     0,    19,   146,     0,     0,   275,   276,   206,     0,
        !          1267:      0,  1129,     0,     0,   205,     0,     0,   147,     0,     0,
        !          1268:      0,    54,    54,     0,     0,    54,     0,   148,     0,     0,
        !          1269:      0,     0,     0,     0,   149,     0,     0,     0,     0,   150,
        !          1270:      0,   121,     0,  1149,     0,    23,   121,   918,  1154,     0,
        !          1271:      0,    23,   346,   952,     4,   129,     6,     7,     8,     9,
        !          1272:      0,   151,     0,    27,    10,     0,     0,   205,     0,     0,
        !          1273:   1173,   315,   316,     0,     0,  1175,   822,     0,    12,   121,
        !          1274:      0,     0,     0,    13,  -356,     0,     0,     0,     0,    15,
        !          1275:     16,     0,    17,     0,    19,     0,   205,   519,   519,   673,
        !          1276:    462,   205,     0,   347,     0,     0,   206,     0,     0,    20,
        !          1277:    519,     0,   979,     0,     0,  1205,  1206,   355,     0,    21,
        !          1278:    359,   519,     0,     0,   379,   205,     0,   205,   359,     0,
        !          1279:      0,    22,     0,     0,   205,     0,     0,    71,     6,     0,
        !          1280:      8,    72,     0,    23,     0,   359,    10,   519,   519,     0,
        !          1281:    335,     0,     0,   576,  -356,    27,     0,     0,     0,   206,
        !          1282:     12,     0,     0,     0,     0,    13,     0,     0,     0,     0,
        !          1283:     54,    54,    16,  -621,     0,  -621,     0,     0,     0,   659,
        !          1284:   -621,   473,     0,   475,   476,     0,     0,     0,   206,     0,
        !          1285:    193,     0,     0,   206,     0,     0,  -621,  -621,     0,  -621,
        !          1286:      0,  -621,     0,     0,     0,    54,     0,     0,     0,     0,
        !          1287:     54,     0,     0,   660,     0,     0,     0,   206,   914,   206,
        !          1288:      0,   205,     0,   562,   145,    23,   206,  1054,  1055,   194,
        !          1289:    195,     0,   196,     0,   275,   276,     0,   519,     0,   197,
        !          1290:     54,   531,   532,    54,     0,     0,     0,     0,   275,   276,
        !          1291:      0,  -242,   542,     0,     0,     0,     0,     0,    15,     0,
        !          1292:      0,   563,     0,    19,   146,     0,   564,     0,   519,     0,
        !          1293:   1081,     0,   565,     0,     0,     0,   354,     0,   147,     0,
        !          1294:      0,    71,     6,     7,     8,     9,     0,     0,   148,     0,
        !          1295:     10,   359,     0,     0,   359,   149,     0,     0,   275,   276,
        !          1296:    566,     0,     0,     0,    12,     0,     0,     0,   609,    13,
        !          1297:      0,   856,    23,   206,     0,     0,    16,   519,     0,     0,
        !          1298:      0,     0,   519,  1111,    27,   562,   159,     6,   160,     8,
        !          1299:    161,   349,     0,    61,    62,    10,   175,   176,   177,     0,
        !          1300:    519,     0,     0,     0,    71,     6,     7,     8,     9,    12,
        !          1301:      0,   203,   519,    10,    13,     0,     0,     0,     0,     0,
        !          1302:     15,    16,   178,   570,     0,    19,   146,    12,   564,    23,
        !          1303:      0,     0,    13,     0,   565,     0,   693,   180,   519,    16,
        !          1304:    147,    54,    54,   434,   435,   436,   437,   438,   439,   440,
        !          1305:    148,   519,     0,     0,     0,     0,     0,   149,    54,    54,
        !          1306:      0,     0,   571,     0,     0,     0,     0,   686,     0,   354,
        !          1307:    519,     0,    54,    54,    23,     0,     0,     0,     0,     0,
        !          1308:      0,     0,   181,   350,     0,     0,    27,   182,   183,   184,
        !          1309:     54,   204,    23,     0,     0,     0,     0,     0,   354,     0,
        !          1310:     54,     0,    -2,     3,     0,     4,     5,     6,     7,     8,
        !          1311:      9,     0,     0,     0,     0,    10,     0,   759,   760,     0,
        !          1312:    762,     0,    54,    54,   349,     0,     0,     0,    11,    12,
        !          1313:      0,     0,   773,   774,    13,     0,   956,   145,    14,     0,
        !          1314:     15,    16,     0,    17,    18,    19,     0,   786,     0,     0,
        !          1315:      0,     0,     0,   349,   795,     0,     0,     0,     0,     0,
        !          1316:     20,     0,     0,   804,   805,   806,     0,     0,     0,     0,
        !          1317:     21,    15,     0,     0,    17,     0,    19,   146,   813,   957,
        !          1318:    817,     0,    22,   821,   473,   958,   823,   824,     0,     0,
        !          1319:      0,   147,     0,     0,    23,    24,    25,     0,     0,     0,
        !          1320:      0,   148,     0,     0,    26,     0,    27,     0,   149,     0,
        !          1321:      0,     0,     0,   150,     0,     0,   350,     0,     0,     0,
        !          1322:      0,     0,     0,     0,     0,    23,     0,     0,     0,     0,
        !          1323:      0,     0,     0,    54,     0,     0,     0,    27,     0,     0,
        !          1324:      0,     0,     0,     0,     0,   350,   425,   426,   427,   428,
        !          1325:    429,   430,   431,   432,   433,   434,   435,   436,   437,   438,
        !          1326:    439,   440,    54,     0,   861,   862,     0,     0,   863,     0,
        !          1327:      0,     0,     0,     0,     0,     0,     0,   920,     0,  -554,
        !          1328:   -554,  -554,  -554,  -554,  -554,  -554,  -554,     0,  -554,  -554,
        !          1329:   -554,  -554,  -554,  -554,  -554,  -554,  -554,  -554,  -554,  -554,
        !          1330:   -554,  -554,  -554,  -554,  -554,  -554,  -554,     0,  -554,     0,
        !          1331:   -554,  -554,     0,  -554,  -554,  -554,     0,     0,     0,  -554,
        !          1332:      0,     0,  -554,  -554,   431,   432,   433,   434,   435,   436,
        !          1333:    437,   438,   439,   440,  -554,     0,     0,     0,     0,     0,
        !          1334:      0,     0,  -554,  -554,  -554,     0,     0,     0,  -554,  -554,
        !          1335:      0,     0,     0,   944,   945,   946,  -554,     0,  -554,     0,
        !          1336:    921,  -554,   922,     0,  -554,  -554,  -554,     0,  -554,     0,
        !          1337:      0,     0,     0,     0,     0,     0,     0,     0,  -554,  -554,
        !          1338:   -554,  -554,     0,     0,   915,     0,   719,   129,     6,     7,
        !          1339:      8,   357,   217,   213,     0,   218,    10,   720,     0,   721,
        !          1340:    722,   723,   724,   725,   726,   727,   728,   729,   730,   731,
        !          1341:     12,   219,   220,   221,     0,    13,     0,   222,  -225,     0,
        !          1342:    223,    15,    16,     0,     0,     0,   224,     0,     0,   732,
        !          1343:    305,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        !          1344:      0,   225,     4,   145,     0,     0,     0,     0,   993,   226,
        !          1345:    227,   228,     0,     0,     0,   229,   230,     0,     0,     0,
        !          1346:      0,     0,     0,   231,     0,   733,     0,     0,   734,     0,
        !          1347:      0,   735,   736,   737,     0,   738,     0,    15,     0,     0,
        !          1348:     17,     0,    19,   146,     0,   739,   916,   232,   233,     0,
        !          1349:      0,     0,     0,     0,     0,     0,     0,   147,     0,     0,
        !          1350:      0,     0,     0,     0,     0,     0,     0,   148,     0,     0,
        !          1351:      0,     0,     0,     0,   149,     0,     0,     0,     0,   150,
        !          1352:      0,     0,     0,  1044,  1045,  1046,     0,     0,     0,     0,
        !          1353:      0,    23,     0,     0,     0,     0,     0,     0,  1051,     0,
        !          1354:      0,   908,     0,    27,     0,     0,  1059,     0,     0,     0,
        !          1355:      0,     0,  1064,  1065,  1066,  1067,  1068,  1069,   925,     0,
        !          1356:    719,   129,     6,     7,     8,   357,   217,   213,     0,   218,
        !          1357:     10,   720,     0,   721,   722,   723,   724,   725,   726,   727,
        !          1358:    728,   729,   730,   731,    12,   219,   220,   221,     0,    13,
        !          1359:      0,   222,  -225,     0,   223,    15,    16,     0,     0,     0,
        !          1360:    224,     0,     0,   732,   305,     0,     0,     0,     0,     0,
        !          1361:      0,     0,     0,     0,     0,   225,     0,     0,     0,     0,
        !          1362:      0,     0,     0,   226,   227,   228,     0,     0,     0,   229,
        !          1363:    230,     0,     0,     0,     0,     0,     0,   231,     0,   733,
        !          1364:      0,     0,   734,     0,     0,   735,   736,   737,     0,   738,
        !          1365:      0,     0,     0,     0,     0,     0,     0,     0,     0,   739,
        !          1366:    926,   232,   233,   929,     0,   719,   129,     6,     7,     8,
        !          1367:    357,   217,   213,     0,   218,    10,   720,     0,   721,   722,
        !          1368:    723,   724,   725,   726,   727,   728,   729,   730,   731,    12,
        !          1369:    219,   220,   221,     0,    13,     0,   222,  -225,     0,   223,
        !          1370:     15,    16,     0,     0,     0,   224,     0,     0,   732,   305,
        !          1371:      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        !          1372:    225,     0,     0,     0,     0,     0,     0,     0,   226,   227,
        !          1373:    228,     0,     0,     0,   229,   230,     0,     0,     0,     0,
        !          1374:      0,     0,   231,     0,   733,     0,     0,   734,     0,     0,
        !          1375:    735,   736,   737,     0,   738,     0,     0,     0,     0,     0,
        !          1376:      0,     0,     0,     0,   739,   930,   232,   233,   915,     0,
        !          1377:    719,   129,     6,     7,     8,   357,   217,   213,     0,   218,
        !          1378:     10,   720,     0,   721,   722,   723,   724,   725,   726,   727,
        !          1379:    728,   729,   730,   731,    12,   219,   220,   221,     0,    13,
        !          1380:      0,   222,  -225,     0,   223,    15,    16,     0,     0,     0,
        !          1381:    224,     0,     0,   732,   305,     0,     0,     0,     0,     0,
        !          1382:      0,     0,     0,     0,     0,   225,     0,     0,     0,     0,
        !          1383:      0,     0,     0,   226,   227,   228,     0,     0,     0,   229,
        !          1384:    230,     0,     0,     0,     0,     0,     0,   231,     0,   733,
        !          1385:      0,     0,   734,     0,     0,   735,   736,   737,     0,   738,
        !          1386:      0,     0,     0,     0,     0,     0,     0,     0,     0,   739,
        !          1387:   1037,   232,   233,   915,     0,   719,   129,     6,     7,     8,
        !          1388:    357,   217,   213,     0,   218,    10,   720,     0,   721,   722,
        !          1389:    723,   724,   725,   726,   727,   728,   729,   730,   731,    12,
        !          1390:    219,   220,   221,     0,    13,     0,   222,  -225,     0,   223,
        !          1391:     15,    16,     0,     0,     0,   224,     0,     0,   732,   305,
        !          1392:      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        !          1393:    225,     0,     0,     0,     0,     0,     0,     0,   226,   227,
        !          1394:    228,     0,     0,     0,   229,   230,     0,     0,     0,     0,
        !          1395:      0,     0,   231,     0,   733,     0,     0,   734,     0,     0,
        !          1396:    735,   736,   737,     0,   738,     0,     0,     0,     0,     0,
        !          1397:      0,     0,     0,     0,   739,  1040,   232,   233,   915,     0,
        !          1398:    719,   129,     6,     7,     8,   357,   217,   213,     0,   218,
        !          1399:     10,   720,     0,   721,   722,   723,   724,   725,   726,   727,
        !          1400:    728,   729,   730,   731,    12,   219,   220,   221,     0,    13,
        !          1401:      0,   222,  -225,     0,   223,    15,    16,     0,     0,     0,
        !          1402:    224,     0,     0,   732,   305,     0,     0,     0,     0,     0,
        !          1403:      0,     0,     0,     0,     0,   225,     0,     0,     0,     0,
        !          1404:      0,     0,     0,   226,   227,   228,     0,     0,     0,   229,
        !          1405:    230,     0,     0,     0,     0,     0,     0,   231,     0,   733,
        !          1406:      0,     0,   734,     0,     0,   735,   736,   737,     0,   738,
        !          1407:      0,     0,     0,     0,     0,     0,     0,     0,     0,   739,
        !          1408:   1153,   232,   233,   718,     0,   719,   129,     6,     7,     8,
        !          1409:    357,   217,   213,     0,   218,    10,   720,     0,   721,   722,
        !          1410:    723,   724,   725,   726,   727,   728,   729,   730,   731,    12,
        !          1411:    219,   220,   221,     0,    13,     0,   222,  -225,     0,   223,
        !          1412:     15,    16,     0,     0,     0,   224,     0,     0,   732,   305,
        !          1413:      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        !          1414:    225,     0,     0,     0,     0,     0,     0,     0,   226,   227,
        !          1415:    228,     0,     0,     0,   229,   230,     0,     0,     0,     0,
        !          1416:      0,     0,   231,     0,   733,     0,     0,   734,     0,     0,
        !          1417:    735,   736,   737,     0,   738,     0,     0,     0,     0,     0,
        !          1418:      0,     0,     0,     0,   739,     0,   232,   233,  1126,     0,
        !          1419:    719,   129,     6,     7,     8,   357,   217,   213,     0,   218,
        !          1420:     10,   720,     0,   721,   722,   723,   724,   725,   726,   727,
        !          1421:    728,   729,   730,   731,    12,   219,   220,   221,     0,    13,
        !          1422:      0,   222,  -225,     0,   223,    15,    16,     0,     0,     0,
        !          1423:    224,     0,     0,   732,   305,     0,     0,     0,     0,     0,
        !          1424:      0,     0,     0,     0,     0,   225,     0,     0,     0,     0,
        !          1425:      0,     0,     0,   226,   227,   228,     0,     0,     0,   229,
        !          1426:    230,     0,     0,     0,     0,     0,     0,   231,     0,   733,
        !          1427:      0,     0,   734,     0,     0,   735,   736,   737,    70,   738,
        !          1428:      0,    71,     6,     0,     8,    72,     0,     0,     0,   739,
        !          1429:     10,   232,   233,   430,   431,   432,   433,   434,   435,   436,
        !          1430:    437,   438,   439,   440,    12,     0,     0,     0,     0,    13,
        !          1431:      0,    73,    74,     0,     0,     0,    16,    75,    76,     0,
        !          1432:      0,     0,     0,     0,     0,    77,    78,    79,    80,     0,
        !          1433:      0,    81,    82,    83,    84,    85,    86,    87,    88,    89,
        !          1434:     90,    91,    92,    93,    94,    95,    96,    97,     0,    98,
        !          1435:     99,     0,     0,   100,   101,     0,     0,     0,   102,     0,
        !          1436:      0,     0,     0,     0,     0,     0,     0,     0,   356,    23,
        !          1437:    215,   129,     6,     7,     8,   357,   217,   213,   203,   218,
        !          1438:     10,   103,   104,     0,     0,     0,     0,     0,     0,     0,
        !          1439:      0,     0,     0,     0,    12,   219,   220,   221,     0,    13,
        !          1440:      0,   222,  -225,     0,   223,    15,    16,     0,     0,     0,
        !          1441:    224,   421,   422,   423,     0,     0,   424,   425,   426,   427,
        !          1442:    428,   429,   430,   431,   432,   225,   434,   435,   436,   437,
        !          1443:    438,   439,   440,   226,   227,   228,     0,     0,     0,   229,
        !          1444:    230,     0,     0,     0,     0,     0,     0,   231,     0,     0,
        !          1445:      0,     0,     0,     0,     0,     0,     0,     0,   204,    23,
        !          1446:      0,     0,     0,     0,     0,     0,     0,     0,  -598,     0,
        !          1447:      0,   232,   233,   543,     0,   215,   129,     6,     7,     8,
        !          1448:    357,   217,   213,   203,   218,    10,   428,   429,   430,   431,
        !          1449:    432,   433,   434,   435,   436,   437,   438,   439,   440,    12,
        !          1450:    219,   220,   221,     0,    13,     0,   222,  -225,     0,   223,
        !          1451:     15,    16,     0,     0,     0,   224,   427,   428,   429,   430,
        !          1452:    431,   432,   433,   434,   435,   436,   437,   438,   439,   440,
        !          1453:    225,     0,     0,     0,     0,     0,     0,     0,   226,   227,
        !          1454:    228,     0,     0,     0,   229,   230,     0,     0,     0,     0,
        !          1455:      0,     0,   231,     0,     0,     0,     0,     0,     0,     0,
        !          1456:      0,     0,     0,   204,    23,     0,     0,     0,     0,     0,
        !          1457:      0,     0,     0,  -598,     0,     0,   232,   233,   763,     0,
        !          1458:    215,   129,     6,     7,     8,   357,   217,   213,   203,   218,
        !          1459:     10,   429,   430,   431,   432,   433,   434,   435,   436,   437,
        !          1460:    438,   439,   440,     0,    12,   219,   220,   221,     0,    13,
        !          1461:      0,   222,  -225,     0,   223,    15,    16,     0,     0,     0,
        !          1462:    224,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        !          1463:      0,     0,     0,     0,     0,   225,     0,     0,     0,     0,
        !          1464:      0,     0,     0,   226,   227,   228,     0,     0,     0,   229,
        !          1465:    230,     0,     0,     0,     0,     0,     0,   231,     0,     0,
        !          1466:      0,     0,     0,     0,     0,     0,     0,     0,   204,    23,
        !          1467:      0,     0,     0,     0,     0,     0,     0,     0,  -598,     0,
        !          1468:      0,   232,   233,   814,     0,   215,   129,     6,     7,     8,
        !          1469:    357,   217,   213,   203,   218,    10,     0,     0,     0,     0,
        !          1470:      0,     0,     0,     0,     0,     0,     0,     0,     0,    12,
        !          1471:    219,   220,   221,     0,    13,     0,   222,  -225,     0,   223,
        !          1472:     15,    16,     0,     0,     0,   224,     0,     0,     0,     0,
        !          1473:      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        !          1474:    225,     0,     0,     0,     0,     0,     0,     0,   226,   227,
        !          1475:    228,     0,     0,     0,   229,   230,     0,     0,     0,     0,
        !          1476:      0,     0,   231,     0,     0,     0,     0,     0,     0,     0,
        !          1477:      0,     0,     0,   204,    23,     0,     0,     0,     0,     0,
        !          1478:      0,     0,     0,  -598,     0,     0,   232,   233,   818,     0,
        !          1479:    215,   129,     6,     7,     8,   357,   217,   213,   203,   218,
        !          1480:     10,     0,     0,     0,     0,     0,     0,     0,     0,     4,
        !          1481:    119,     0,     0,     0,    12,   219,   220,   221,     0,    13,
        !          1482:      0,   222,  -225,     0,   223,    15,    16,     0,     0,     0,
        !          1483:    224,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        !          1484:      0,     0,     0,     0,    15,   225,     0,   600,     0,    19,
        !          1485:      0,     0,     0,   226,   227,   228,     0,     0,     0,   229,
        !          1486:    230,     0,     0,     0,   602,     0,     0,   231,     4,   145,
        !          1487:      0,     0,     0,   273,   603,     0,     0,     0,   204,    23,
        !          1488:      0,   261,     0,     0,     0,     0,   604,   263,  -598,     0,
        !          1489:      0,   232,   233,   517,     0,   709,   710,     6,    23,     8,
        !          1490:    398,   217,   213,    15,   218,    10,    17,     0,    19,     0,
        !          1491:     27,     0,     0,     0,     0,     0,     0,     0,     0,    12,
        !          1492:    219,   220,   221,   147,    13,     0,   222,  -225,     0,   223,
        !          1493:     15,    16,     0,   148,     0,   224,     0,     0,     0,   518,
        !          1494:    149,     0,     0,     0,     0,   150,     0,     0,     0,     0,
        !          1495:    225,     0,     0,     0,     0,     0,     0,    23,   226,   227,
        !          1496:    228,     0,     0,     0,   229,   230,     0,     0,     0,    27,
        !          1497:      0,     0,   231,   711,   517,     0,   709,   710,     6,     0,
        !          1498:      8,   398,   217,   213,   181,   218,    10,     0,     0,     0,
        !          1499:      0,     0,     0,  1000,     0,   712,   232,   233,     0,     0,
        !          1500:     12,   219,   220,   221,     0,    13,     0,   222,  -225,     0,
        !          1501:    223,    15,    16,     0,     0,     0,   224,     0,     0,     0,
        !          1502:    518,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        !          1503:      0,   225,     0,     0,     0,     0,     0,     0,     0,   226,
        !          1504:    227,   228,     0,     0,     0,   229,   230,     0,     0,     0,
        !          1505:      0,     0,     0,   231,     0,  1007,     0,   215,   129,     6,
        !          1506:      7,     8,   357,   217,   213,   181,   218,    10,     0,     0,
        !          1507:      0,     0,     0,     0,     0,     0,  1001,   232,   233,     0,
        !          1508:      0,    12,   219,   220,   221,     0,    13,     0,   222,  -225,
        !          1509:      0,   223,    15,    16,     0,     0,     0,   224,     0,     0,
        !          1510:      0,  1008,     0,     0,     0,     0,     0,     0,     0,     0,
        !          1511:      0,     0,   225,     0,     0,     0,     0,     0,     0,     0,
        !          1512:    226,   227,   228,     0,     0,     0,   229,   230,     0,     0,
        !          1513:      0,     0,     0,     0,   231,     0,   517,     0,   709,   710,
        !          1514:      6,     0,     8,   398,   217,   213,    23,   218,    10,     0,
        !          1515:      0,     0,     0,     0,     0,  1000,  1009,     0,   232,   233,
        !          1516:      0,     0,    12,   219,   220,   221,     0,    13,     0,   222,
        !          1517:   -225,     0,   223,    15,    16,     0,     0,     0,   224,     0,
        !          1518:      0,     0,   518,     0,     0,     0,     0,     0,     0,     0,
        !          1519:      0,     0,     0,   225,     0,     0,     0,     0,     0,     0,
        !          1520:      0,   226,   227,   228,     0,     0,     0,   229,   230,     0,
        !          1521:      0,     0,     0,     0,     0,   231,     0,   517,     0,   709,
        !          1522:    710,     6,     0,     8,   398,   217,   213,   181,   218,    10,
        !          1523:      0,     0,     0,     0,     0,     0,     0,     0,  -318,   232,
        !          1524:    233,     0,     0,    12,   219,   220,   221,     0,    13,     0,
        !          1525:    222,  -225,     0,   223,    15,    16,     0,     0,     0,   224,
        !          1526:      0,     0,     0,   518,     0,     0,     0,     0,     0,     0,
        !          1527:      0,     0,     0,     0,   225,     0,     0,     0,     0,     0,
        !          1528:      0,     0,   226,   227,   228,     0,     0,     0,   229,   230,
        !          1529:      0,     0,     0,     0,     0,     0,   231,   711,   413,     0,
        !          1530:    215,   129,     6,     0,     8,   216,   217,   213,   181,   218,
        !          1531:     10,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        !          1532:    232,   233,     0,     0,    12,   219,   220,   221,     0,    13,
        !          1533:      0,   222,  -225,     0,   223,    15,    16,     0,     0,     0,
        !          1534:    224,     0,     0,     0,  -198,     0,     0,     0,     0,     0,
        !          1535:      0,     0,     0,     0,     0,   225,     0,     0,     0,     0,
        !          1536:      0,     0,     0,   226,   227,   228,     0,     0,     0,   229,
        !          1537:    230,     0,     0,     0,     0,     0,     0,   231,     0,   517,
        !          1538:      0,   215,   129,     6,     0,     8,   398,   217,   213,    23,
        !          1539:    218,    10,     0,     0,     0,     0,     0,     0,     0,     0,
        !          1540:      0,   232,   233,     0,     0,    12,   219,   220,   221,     0,
        !          1541:     13,     0,   222,  -225,     0,   223,    15,    16,     0,     0,
        !          1542:      0,   224,     0,     0,     0,   518,     0,     0,     0,     0,
        !          1543:      0,     0,     0,     0,     0,     0,   225,     0,     0,     0,
        !          1544:      0,     0,     0,     0,   226,   227,   228,     0,     0,     0,
        !          1545:    229,   230,     0,     0,     0,     0,     0,     0,   231,     0,
        !          1546:    634,     0,   215,   129,     6,     0,     8,   398,   217,   213,
        !          1547:     23,   218,    10,     0,     0,     0,     0,     0,     0,     0,
        !          1548:      0,     0,   232,   233,     0,     0,    12,   219,   220,   221,
        !          1549:      0,    13,     0,   222,  -225,     0,   223,    15,    16,     0,
        !          1550:      0,     0,   224,     0,     0,     0,     0,     0,     0,     0,
        !          1551:      0,  -588,     0,     0,     0,     0,     0,   225,     0,     0,
        !          1552:      0,     0,     0,     0,     0,   226,   227,   228,     0,     0,
        !          1553:      0,   229,   230,     0,     0,     0,     0,     0,     0,   231,
        !          1554:      0,   634,     0,   215,   129,     6,     0,     8,   398,   217,
        !          1555:    213,    23,   218,    10,     0,     0,     0,     0,     0,     0,
        !          1556:      0,     0,     0,   232,   233,     0,     0,    12,   219,   220,
        !          1557:    221,     0,    13,     0,   222,  -225,     0,   223,    15,    16,
        !          1558:      0,     0,     0,   224,     0,     0,     0,     0,     0,     0,
        !          1559:      0,     0,     0,     0,     0,     0,     0,     0,   225,     0,
        !          1560:      0,     0,     0,     0,     0,     0,   226,   227,   228,     0,
        !          1561:      0,     0,   229,   230,     0,     0,     0,     0,     0,     0,
        !          1562:    231,     0,   634,     0,   215,   129,     6,     0,     8,   398,
        !          1563:    217,   213,    23,   218,    10,     0,     0,     0,     0,     0,
        !          1564:      0,     0,  -588,     0,   232,   233,     0,     0,    12,   219,
        !          1565:    220,   221,     0,    13,     0,   222,  -225,     0,   223,    15,
        !          1566:     16,     0,     0,     0,   224,     0,     0,     0,     0,     0,
        !          1567:      0,     0,     0,     0,     0,     0,     0,     0,     0,   225,
        !          1568:      0,     0,     0,     0,     0,     0,     0,   226,   227,   228,
        !          1569:      0,     0,     0,   229,   230,     0,     0,     0,     0,     0,
        !          1570:      0,   231,     0,   630,     0,   215,   129,     6,     0,     8,
        !          1571:    398,   217,   213,    23,   218,    10,     0,     0,     0,     0,
        !          1572:      0,     0,  -588,     0,     0,   232,   233,     0,     0,    12,
        !          1573:    219,   220,   221,     0,    13,     0,   222,  -225,     0,   223,
        !          1574:     15,    16,     0,     0,     0,   224,     0,     0,     0,     0,
        !          1575:      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        !          1576:    225,     0,     0,     0,     0,     0,     0,     0,   226,   227,
        !          1577:    228,     0,     0,     0,   229,   230,     0,     0,     0,     0,
        !          1578:      0,     0,   231,     0,     0,     0,   215,   129,     6,     0,
        !          1579:      8,   398,   217,   213,    23,   218,    10,     0,     0,     0,
        !          1580:      0,     0,     0,     0,     0,     0,   232,   233,     0,     0,
        !          1581:     12,   219,   220,   221,     0,    13,     0,   222,     0,     0,
        !          1582:    223,    15,    16,     0,     0,     0,   224,     3,     0,     4,
        !          1583:      5,     6,     7,     8,     9,     0,     0,     0,     0,    10,
        !          1584:      0,   225,     0,     0,     0,     0,     0,     0,     0,   226,
        !          1585:    227,   228,    11,    12,     0,   229,   230,     0,    13,     0,
        !          1586:      0,     0,    14,   231,    15,    16,     0,    17,    18,    19,
        !          1587:      0,     0,     0,     0,     3,    23,     4,     5,     6,     7,
        !          1588:      8,     9,     0,     0,    20,     0,    10,   232,   233,   663,
        !          1589:      0,     0,     0,     0,    21,     0,     0,     0,     0,    11,
        !          1590:     12,     0,     0,     0,     0,    13,    22,     0,     0,    14,
        !          1591:      0,    15,    16,     0,    17,    18,    19,     0,    23,    24,
        !          1592:     25,     4,   119,     0,     0,     0,   273,     0,    26,   495,
        !          1593:     27,    20,   346,     0,     4,   129,     6,     7,     8,     9,
        !          1594:      0,    21,     0,     0,    10,     0,     0,     0,     0,     0,
        !          1595:      0,     0,     0,    22,     0,     0,    15,     0,    12,    17,
        !          1596:      0,    19,     0,    13,  -357,    23,    24,    25,     0,    15,
        !          1597:     16,     0,    17,     0,    19,    26,    20,    27,     0,     0,
        !          1598:      0,     0,     0,   347,     0,     0,    21,     0,   346,    20,
        !          1599:      4,   129,     6,     7,     8,     9,     0,     0,    22,    21,
        !          1600:     10,     0,     0,     4,   119,     0,     0,     0,     0,     0,
        !          1601:     23,    22,     0,     0,    12,     0,     0,     0,     0,    13,
        !          1602:   -355,     0,    27,    23,     0,    15,    16,     0,    17,     0,
        !          1603:     19,     0,     0,   576,  -357,    27,     0,     0,    15,   347,
        !          1604:      0,    17,     0,    19,   346,    20,     4,   129,     6,     7,
        !          1605:      8,     9,     0,     0,     0,    21,    10,     0,    20,     0,
        !          1606:      0,     0,     0,     0,     0,     0,     0,    22,    21,     0,
        !          1607:     12,     0,     0,     0,     0,    13,  -358,     0,     0,    23,
        !          1608:     22,    15,    16,     0,    17,     0,    19,     0,     0,     0,
        !          1609:   -355,    27,    23,     0,     0,   347,     0,     0,     0,     0,
        !          1610:      0,    20,     0,     0,    27,     0,     0,     0,     0,     0,
        !          1611:      0,    21,     0,     0,     0,     0,     0,     0,     0,     0,
        !          1612:      0,     0,     0,    22,     0,     0,     0,     0,     0,     0,
        !          1613:      0,     0,     0,     0,     0,    23,     0,     0,     0,     0,
        !          1614:      0,     0,     0,     0,     0,     0,  -358,    27,   719,   129,
        !          1615:      6,     7,     8,   357,   217,   213,     0,   218,    10,   720,
        !          1616:      0,   721,   722,   723,   724,   725,   726,   727,   728,   729,
        !          1617:    730,   731,    12,   219,   220,   221,     0,    13,     0,   222,
        !          1618:      0,     0,   223,    15,    16,     0,     0,     0,   224,     0,
        !          1619:      0,   732,   305,     0,     0,     0,     0,     0,     0,     0,
        !          1620:      0,     0,     0,   225,     0,     0,     0,     0,     0,     0,
        !          1621:      0,   226,   227,   228,     0,     0,     0,   229,   230,     0,
        !          1622:      0,     0,     0,     0,     0,   231,     0,   733,     0,     0,
        !          1623:    734,     0,     0,   735,   736,   737,     0,   738,     0,     0,
        !          1624:      0,     0,     0,     0,     0,     0,     0,   739,   923,   232,
        !          1625:    233,   719,   129,     6,     7,     8,   357,   217,   213,     0,
        !          1626:    218,    10,   720,     0,   721,   722,   723,   724,   725,   726,
        !          1627:    727,   728,   729,   730,   731,    12,   219,   220,   221,     0,
        !          1628:     13,     0,   222,     0,     0,   223,    15,    16,     0,     0,
        !          1629:      0,   224,     0,     0,   732,   305,     0,     0,     0,     0,
        !          1630:      0,     0,     0,     0,     0,     0,   225,     4,   376,     0,
        !          1631:      0,     0,     0,     0,   226,   227,   228,     0,     0,     0,
        !          1632:    229,   230,     0,     0,     0,     0,     0,     0,   231,     0,
        !          1633:    733,     0,     0,   734,     0,     0,   735,   736,   737,     0,
        !          1634:    738,     0,    15,     0,     0,    17,     0,    19,     0,     0,
        !          1635:    739,     0,   232,   233,   215,   129,     6,     0,     8,   398,
        !          1636:    217,   213,    20,   218,    10,     0,     0,     0,     0,     0,
        !          1637:      0,     0,    21,     0,     0,     0,     0,     0,    12,   219,
        !          1638:    220,   221,     0,    13,    22,   222,     0,     0,   223,    15,
        !          1639:     16,     0,     0,     0,   224,     0,   377,     0,     0,     0,
        !          1640:      0,     0,     0,     0,     0,     0,     0,     0,    27,   225,
        !          1641:      0,     0,     4,   145,     0,     0,     0,   226,   227,   228,
        !          1642:      0,     0,     0,   229,   230,     0,     0,     0,     0,     0,
        !          1643:      0,   231,   452,     0,     0,   215,   129,     6,     0,     8,
        !          1644:    398,   217,   213,    23,   218,    10,     0,    15,     0,     0,
        !          1645:     17,     0,    19,     0,     0,   232,   233,     0,     0,    12,
        !          1646:    219,   220,   221,     0,    13,     0,   222,   147,     0,   223,
        !          1647:     15,    16,     0,     0,     0,   224,     0,   148,     0,   840,
        !          1648:      0,     0,     0,     0,   149,     0,     0,     0,     0,   150,
        !          1649:    225,     0,     0,     4,   119,     0,     0,     0,   226,   227,
        !          1650:    228,    23,     0,     0,   229,   230,     0,     0,     0,     0,
        !          1651:      0,     0,   231,    27,     0,     0,   215,   129,     6,     0,
        !          1652:      8,   398,   217,   213,    23,   218,    10,     0,    15,     0,
        !          1653:      0,    17,     0,    19,     0,     0,   232,   233,     0,     0,
        !          1654:     12,   219,   220,   221,     0,    13,     0,   222,   317,     0,
        !          1655:    223,    15,    16,     0,     0,     0,   224,     0,   318,     0,
        !          1656:      0,     0,     0,     0,     0,   319,     0,     0,     0,     0,
        !          1657:    320,   225,     0,     0,     4,   119,     0,     0,     0,   226,
        !          1658:    227,   228,    23,     0,     0,   229,   230,     0,     0,     0,
        !          1659:      0,     0,     0,   231,    27,     0,     0,   215,   129,     6,
        !          1660:      0,     8,   398,   217,   213,    23,   218,    10,     0,    15,
        !          1661:      0,     0,    17,     0,    19,   892,     0,   232,   233,     0,
        !          1662:      0,    12,   219,   220,   221,     0,    13,     0,   222,   533,
        !          1663:      0,   223,    15,    16,     0,     0,     0,   224,     0,   534,
        !          1664:      0,     0,     0,     0,     0,     0,   319,     0,     0,     0,
        !          1665:      0,   320,   225,     0,     0,     4,   376,     0,     0,     0,
        !          1666:    226,   227,   228,    23,     0,     0,   229,   230,     0,     0,
        !          1667:      0,     0,     0,     0,   231,    27,     0,     0,   215,   129,
        !          1668:      6,     0,     8,   216,   217,   213,    23,   218,    10,     0,
        !          1669:     15,     0,     0,    17,     0,    19,   904,     0,   232,   233,
        !          1670:      0,     0,    12,   219,   220,   221,     0,    13,     0,   222,
        !          1671:    548,     0,   223,    15,    16,     0,     0,     0,   224,     0,
        !          1672:    549,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        !          1673:      0,     0,    22,   225,     0,     0,     0,     0,     0,     0,
        !          1674:      0,   226,   227,   228,   377,     0,     0,   229,   230,     0,
        !          1675:      0,     0,     0,     0,     0,   231,    27,     0,     0,   215,
        !          1676:    129,     6,     0,     8,   398,   217,   213,    23,   218,    10,
        !          1677:      0,     0,     0,     0,     0,     0,     0,     0,     0,   232,
        !          1678:    233,     0,     0,    12,   219,   220,   221,     0,    13,     0,
        !          1679:    222,     0,     0,   223,    15,    16,     0,     0,     0,   224,
        !          1680:      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        !          1681:      0,     0,     0,     0,   225,     0,     0,     0,     0,     0,
        !          1682:      0,     0,   226,   227,   228,     0,     0,     0,   229,   230,
        !          1683:      0,     0,     0,     0,     0,     0,   231,     0,     0,     0,
        !          1684:    215,   624,     6,     0,     8,   398,   217,   213,    23,   218,
        !          1685:     10,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        !          1686:    232,   233,     0,     0,    12,   219,   220,   221,     0,    13,
        !          1687:      0,   222,     0,     0,   223,    15,    16,     0,     0,     0,
        !          1688:    224,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        !          1689:      0,     0,     0,     0,     0,   225,     0,     0,     0,     0,
        !          1690:      0,     0,     0,   226,   227,   228,     0,     0,     0,   229,
        !          1691:    230,     0,     0,     0,   215,   129,     6,   231,     8,   398,
        !          1692:    217,   213,     0,   218,    10,     0,     0,     0,     0,    23,
        !          1693:      0,     0,     0,     0,     0,     0,     0,     0,    12,   219,
        !          1694:      0,   232,   233,    13,     0,   222,     0,     0,   223,    15,
        !          1695:     16,     0,     0,     0,   224,     0,     0,     0,     0,     0,
        !          1696:      0,     0,     0,     0,     0,     0,     0,     0,     0,   225,
        !          1697:      0,     0,     0,     0,     0,     0,     0,   226,   227,   228,
        !          1698:      0,     0,     0,   229,   230,     0,     0,     0,   215,   129,
        !          1699:      6,   399,     8,   398,   217,   213,     0,   218,    10,     0,
        !          1700:      0,     0,     0,    23,     0,     0,     0,     0,     0,     0,
        !          1701:      0,     0,    12,   219,     0,   232,   233,    13,     0,   222,
        !          1702:      0,     0,   223,    15,    16,     0,     0,     0,   224,     0,
        !          1703:      0,     4,   129,     6,     7,     8,     9,     0,     0,   203,
        !          1704:      0,    10,     0,   225,     0,     0,     0,     0,     0,     0,
        !          1705:      0,   226,   227,   228,     0,    12,     0,   229,   230,     0,
        !          1706:     13,     0,     0,     0,     0,   403,    15,    16,     0,   600,
        !          1707:      0,    19,     0,     0,     0,     0,     0,    23,     0,     0,
        !          1708:      0,     0,     0,     0,     0,     0,   602,     0,     0,   232,
        !          1709:    233,     0,     0,     0,     0,     0,   603,     0,     0,     0,
        !          1710:      0,     0,     0,   261,     0,     0,     0,     0,   604,   263,
        !          1711:      0,     4,   159,     6,   160,     8,   161,     0,     0,   204,
        !          1712:     23,    10,     0,     0,     0,     0,     0,     0,     0,     0,
        !          1713:      0,     0,    27,     0,     0,    12,     0,     0,     0,     0,
        !          1714:     13,     0,     0,     0,     0,     0,    15,    16,     0,    17,
        !          1715:      0,    19,   146,     0,     0,     0,     0,     0,     0,     0,
        !          1716:      0,     0,     0,     0,     0,     0,   147,     4,   129,     6,
        !          1717:      7,     8,     9,     0,     0,   203,   148,    10,     0,     0,
        !          1718:      0,     0,     0,   149,     0,     0,     0,     0,   150,     0,
        !          1719:      0,    12,     0,     0,     0,     0,    13,     0,     0,     0,
        !          1720:     23,     0,    15,    16,     0,    17,     0,    19,     0,     0,
        !          1721:    162,     0,    27,     0,     0,     0,     0,     0,     0,     0,
        !          1722:      0,     0,   317,     4,   159,     6,   160,     8,   161,     0,
        !          1723:      0,     0,   318,    10,     0,     0,     0,     0,     0,   319,
        !          1724:      0,     0,     0,     0,   320,     0,     0,    12,     0,     0,
        !          1725:      0,     0,    13,     0,     0,   204,    23,     0,    15,    16,
        !          1726:      0,    17,     0,    19,   146,     0,     0,     0,    27,     0,
        !          1727:      4,   159,     6,   160,     8,   161,     0,     0,   147,     0,
        !          1728:     10,     0,     0,     0,     0,     0,     0,     0,   148,     0,
        !          1729:      0,     0,     0,     0,    12,   149,     0,     0,     0,    13,
        !          1730:    150,     0,     0,     0,     0,    15,    16,     0,    17,     0,
        !          1731:     19,   146,    23,     0,     0,     0,     0,     0,     0,     0,
        !          1732:      0,     0,   911,     0,    27,   147,     4,   129,     6,     7,
        !          1733:      8,     9,     0,     0,     0,   148,    10,     0,     0,     0,
        !          1734:      0,     0,   149,     0,     0,     0,     0,   150,     0,     0,
        !          1735:     12,     0,     0,     0,     0,    13,     0,     0,     0,    23,
        !          1736:      0,    15,    16,     0,    17,     0,    19,     0,     0,     0,
        !          1737:      0,    27,     0,     0,     0,     0,   129,     6,     7,     8,
        !          1738:      9,    20,     0,   203,     0,    10,     0,     0,     0,     0,
        !          1739:      0,    21,     0,     0,     0,     0,     0,    71,     6,    12,
        !          1740:      8,   268,     0,    22,    13,     0,    10,     0,     0,     0,
        !          1741:      0,    16,     0,   257,     0,    23,     0,     0,     0,     0,
        !          1742:     12,     0,     0,     0,     0,    13,     0,    27,     0,     0,
        !          1743:    259,     0,    16,     0,   257,     0,     0,   258,     0,     0,
        !          1744:    260,     0,     0,     0,     0,     0,     0,   261,     0,     0,
        !          1745:      0,   259,   262,   263,     0,     0,     0,     0,     0,     0,
        !          1746:      0,   260,     0,   204,    23,     0,     0,     0,   261,     0,
        !          1747:      0,     0,     0,   262,   263,     0,     0,     0,     0,     0,
        !          1748:      0,   421,   422,   423,     0,    23,   424,   425,   426,   427,
        !          1749:    428,   429,   430,   431,   432,   433,   434,   435,   436,   437,
        !          1750:    438,   439,   440,   421,   422,   423,     0,     0,   424,   425,
        !          1751:    426,   427,   428,   429,   430,   431,   432,   433,   434,   435,
        !          1752:    436,   437,   438,   439,   440,     0,     0,     0,     0,     0,
        !          1753:      0,     0,     0,  -139,   421,   422,   423,     0,   998,   424,
        !          1754:    425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
        !          1755:    435,   436,   437,   438,   439,   440,   781,   782,   421,   422,
        !          1756:    423,  1121,     0,   424,   425,   426,   427,   428,   429,   430,
        !          1757:    431,   432,   433,   434,   435,   436,   437,   438,   439,   440,
        !          1758:    421,   422,   423,     0,     0,   424,   425,   426,   427,   428,
        !          1759:    429,   430,   431,   432,   433,   434,   435,   436,   437,   438,
        !          1760:    439,   440,   423,     0,     0,   424,   425,   426,   427,   428,
        !          1761:    429,   430,   431,   432,   433,   434,   435,   436,   437,   438,
        !          1762:    439,   440,   426,   427,   428,   429,   430,   431,   432,   433,
        !          1763:    434,   435,   436,   437,   438,   439,   440
        !          1764: };
        !          1765: 
        !          1766: static const short yycheck[] = {     1,
        !          1767:      2,   263,    10,    67,    39,    66,    15,   139,   140,    17,
        !          1768:     15,     1,     2,    15,    44,   106,    15,    22,   146,   352,
        !          1769:     67,    19,   250,   272,   272,   299,   744,    40,    30,   295,
        !          1770:    558,   189,   225,    38,   587,   228,    44,    39,   751,   232,
        !          1771:    753,   234,   150,   932,   933,    40,   224,    48,   140,   242,
        !          1772:    111,   702,   509,   218,   219,    60,   138,    43,    60,   325,
        !          1773:    225,    38,    39,   228,    60,    67,    48,   232,   330,   234,
        !          1774:     33,   980,     3,    52,    26,    10,    43,   242,   383,    31,
        !          1775:     83,   386,    48,   540,     3,     4,    10,    90,    10,     8,
        !          1776:     33,    48,     3,     4,   107,    10,    48,    63,    50,   102,
        !          1777:    101,     3,     4,   108,   112,    80,   108,    38,     3,     4,
        !          1778:      5,   116,   117,   118,   258,   389,   102,   125,   262,    38,
        !          1779:    122,   103,    41,   102,    43,   130,   128,    38,    52,   131,
        !          1780:     41,    10,     3,     4,   101,     3,     4,   386,   128,    58,
        !          1781:    103,   146,     3,     4,   101,   150,   134,    48,    43,    68,
        !          1782:    102,   164,   310,   130,   131,   246,    75,   170,   249,   157,
        !          1783:    103,    80,    81,  1072,   152,   693,   101,   231,   173,   164,
        !          1784:    302,   303,   304,    92,    48,   170,    47,   101,   166,   101,
        !          1785:    733,    92,   735,    51,   231,   104,   101,   315,   316,   191,
        !          1786:     92,   196,   194,   104,   199,     0,   201,    92,   194,   201,
        !          1787:     95,   206,   103,   211,   206,   201,   196,     3,     4,   927,
        !          1788:    302,   303,   320,   931,   202,     3,     4,     5,   869,   301,
        !          1789:     48,    92,   101,   485,    92,     3,     4,     1,   102,   231,
        !          1790:    408,    92,   498,   461,   247,    80,    47,     8,    47,   244,
        !          1791:    697,    52,    38,    52,   249,    41,    48,   249,  1137,  1138,
        !          1792:     32,    48,     3,   266,    58,    43,   269,     3,     4,     5,
        !          1793:    262,    63,    48,    41,    68,     3,     4,   272,     6,    48,
        !          1794:    272,   266,    62,    47,   102,    21,   538,    63,     3,     4,
        !          1795:      3,     4,   284,   415,   550,     3,     4,    48,    48,   297,
        !          1796:     48,   102,   297,   102,   284,    33,    92,    43,    80,   287,
        !          1797:      3,     4,    80,     6,    92,   102,   103,    95,   104,   373,
        !          1798:    315,   316,    83,   343,    92,   320,    41,   364,   775,    90,
        !          1799:    333,   326,   101,    41,     1,     2,   331,   329,    51,    48,
        !          1800:     33,   475,   476,   329,    62,   399,   102,   103,   333,   403,
        !          1801:    868,   102,   102,   101,   349,    22,    92,   360,   350,    95,
        !          1802:    352,   339,   399,    30,    92,    11,   403,   103,   405,   406,
        !          1803:     48,    38,    39,    52,    48,   360,   354,    92,   373,    92,
        !          1804:      1,   373,   349,   350,    92,  1088,   423,   382,   383,   102,
        !          1805:    103,    41,    52,   102,   386,    48,   394,   451,    41,    92,
        !          1806:    522,   379,    48,    24,    48,    26,    52,   399,     3,     4,
        !          1807:     31,   403,   449,   531,   532,   452,    24,     3,     4,  1127,
        !          1808:    102,   103,   101,    48,   102,    48,    47,    48,   102,    50,
        !          1809:     80,    52,   102,   103,    48,    41,    47,    80,    81,    47,
        !          1810:    522,   101,    50,    38,    52,    91,    48,    48,   101,   116,
        !          1811:    117,   118,   691,   691,    24,    43,   451,   101,   101,   451,
        !          1812:    458,   128,    83,   130,   131,   460,    41,   601,   566,    90,
        !          1813:    604,   491,    48,   571,    80,    81,   101,    48,   101,   146,
        !          1814:    663,   102,    52,   150,   487,     7,     8,   101,    39,   484,
        !          1815:     48,    13,   484,   491,   102,   101,    47,    92,   484,   101,
        !          1816:    101,   493,   487,    34,    48,    80,   173,    41,   663,    41,
        !          1817:     32,    41,    43,    41,    43,    48,    52,    39,   516,    41,
        !          1818:    518,     3,     4,    52,   191,   101,    62,     3,     4,   196,
        !          1819:    101,    41,   199,    47,   790,   527,   531,   532,   558,    41,
        !          1820:    591,    43,   798,   101,    48,   537,    80,    81,    80,    81,
        !          1821:     80,   537,    80,    81,     1,    48,    38,   101,    80,    41,
        !          1822:      3,    43,    44,   827,   828,   563,     9,   101,   101,   101,
        !          1823:     80,    81,   570,   101,   566,    51,    58,   244,    80,   571,
        !          1824:    566,    48,    48,    48,    48,   571,    68,   851,     3,   567,
        !          1825:     41,   101,   587,    75,   572,   262,   103,   101,    80,    81,
        !          1826:     47,    48,   600,   595,    10,   597,   601,   587,   101,   595,
        !          1827:     92,   597,   604,   877,   878,    47,    92,   284,   616,    34,
        !          1828:   1163,    41,   104,    38,    41,    26,   102,   103,    43,    80,
        !          1829:    297,   609,   106,    50,   101,   101,   101,   101,    41,    52,
        !          1830:    963,   759,   760,     6,     7,     8,    47,    41,   315,   316,
        !          1831:     13,    52,    41,   320,    41,   773,   774,   194,   661,   326,
        !          1832:     80,   660,    41,    80,   331,   660,    41,    41,   660,    32,
        !          1833:    853,   660,    41,   693,    83,    47,    39,    80,    41,    47,
        !          1834:     52,    90,   349,   350,    52,   352,    80,    81,   725,   823,
        !          1835:    824,    80,   729,    80,    81,     8,   691,     3,   853,   691,
        !          1836:    737,    80,    81,   967,    47,    80,    80,   705,    43,    52,
        !          1837:    705,    80,    81,   103,    83,   382,   383,    80,   743,   386,
        !          1838:     96,    90,    26,    24,   102,    26,    52,   861,   862,    68,
        !          1839:     69,    70,   730,   102,   998,   733,   106,    83,   733,    80,
        !          1840:    735,   101,    43,    47,    90,    50,    47,   742,    52,    50,
        !          1841:    103,   743,   744,   733,   808,   735,   102,   777,   750,   751,
        !          1842:   1008,   753,    48,   300,   759,   760,   847,   848,    52,    53,
        !          1843:    102,   103,  1028,    80,  1022,   742,   743,  1025,   773,   774,
        !          1844:     81,    41,    83,  1047,   102,   103,   102,   103,  1052,    90,
        !          1845:    102,   103,   329,   460,   845,    80,   791,     3,     4,    80,
        !          1846:   1056,   101,   103,   102,   103,    35,  1070,    10,   786,   801,
        !          1847:    218,   219,   101,   808,     3,   106,   808,   795,  1082,    26,
        !          1848:     80,    81,    47,    83,   791,   103,   106,   101,   823,   824,
        !          1849:     90,   101,    38,   106,     3,    41,    48,    43,    44,    80,
        !          1850:     31,    50,   840,   821,  1108,   101,   883,    48,   868,   886,
        !          1851:    887,   102,    58,   848,   101,   101,   848,  1121,   101,    51,
        !          1852:    397,   101,    68,   101,   531,   532,    32,  1119,  1120,    75,
        !          1853:    106,   106,   106,   102,    80,   102,  1140,     6,     7,     8,
        !          1854:    878,   102,   102,   101,    13,   101,    92,    66,    67,    68,
        !          1855:     69,    70,   106,   885,   886,   932,   933,    48,   104,   566,
        !          1856:     52,    50,    52,    32,   571,     4,     5,     6,     7,     8,
        !          1857:     39,   448,   122,    80,    13,    50,    50,   103,   101,   101,
        !          1858:    587,   101,    52,     1,   922,   101,   921,   101,    27,   466,
        !          1859:     50,   909,    80,    32,   601,   927,   914,   604,   106,   931,
        !          1860:     39,   921,   934,   106,   101,   106,    24,    92,    26,    52,
        !          1861:     52,    52,     1,    31,     3,     4,     5,     6,     7,     8,
        !          1862:     52,    80,    80,    41,    13,    80,    52,  1018,  1005,    47,
        !          1863:     48,   963,    50,     8,    52,   512,   102,  1014,    27,     7,
        !          1864:      8,   959,    47,    32,   194,    13,   102,    47,   102,    38,
        !          1865:     39,    15,    41,    92,    43,   101,     1,     2,   106,    50,
        !          1866:    537,   101,    80,    81,    32,    83,   101,   101,    80,    58,
        !          1867:    101,    39,    90,   101,     7,     8,   101,    22,   101,    68,
        !          1868:     13,   103,    80,  1015,   102,    30,   102,   102,    80,   102,
        !          1869:     50,    80,   102,   102,    39,   245,   102,    50,   705,    32,
        !          1870:    102,  1033,    52,    92,    93,     3,    39,    48,    41,    52,
        !          1871:     16,     1,     2,   102,   101,   104,   101,   101,   595,   102,
        !          1872:    597,   103,     6,     7,     8,   102,   733,   101,   735,    13,
        !          1873:   1192,  1193,  1070,  1051,    47,   742,   743,   102,    80,   102,
        !          1874:     30,  1059,   103,   102,   102,    81,    81,    80,    32,   299,
        !          1875:    300,  1213,   759,   760,   101,    39,  1088,    52,    50,  1091,
        !          1876:   1137,  1138,   101,    80,    10,   102,   773,   774,   102,    87,
        !          1877:     60,   116,   117,   118,  1151,    41,   102,   101,   106,   329,
        !          1878:     80,   658,   101,   128,   791,   106,    48,    80,     3,  1183,
        !          1879:    101,  1123,   669,   101,   801,  1127,  1128,   347,   102,  1176,
        !          1880:    677,   146,   101,     1,     2,   150,    72,    73,   102,    10,
        !          1881:     76,    77,    78,    79,    80,    81,   823,   824,  1150,   102,
        !          1882:      1,     2,   101,  1155,    10,   102,     0,     2,  1163,     0,
        !          1883:    707,   127,    30,   286,   691,   138,   491,   128,   128,   389,
        !          1884:    128,    22,   705,  1163,   744,   493,   191,   397,  1183,    30,
        !          1885:    750,  1183,   776,  1072,   199,   886,  1194,    38,    39,     8,
        !          1886:    742,   269,    60,  1195,  1196,   326,   840,   164,    41,  1115,
        !          1887:    420,   421,   422,   618,   424,   425,   426,   427,   428,   429,
        !          1888:    430,   431,   432,   433,   434,   435,   436,   437,   438,   439,
        !          1889:    440,    30,    41,    30,   777,   756,   934,   447,   448,    72,
        !          1890:     73,   191,   801,    76,   194,    78,   350,    80,    81,    58,
        !          1891:    394,   201,   616,   320,   921,   928,   466,     3,     4,    68,
        !          1892:      6,     7,     8,  1179,    41,   206,    75,   934,   808,  1177,
        !          1893:    128,    80,    81,   921,    -1,   116,   117,   118,    -1,   284,
        !          1894:     -1,    58,    -1,   493,    -1,    -1,    32,   128,    -1,   130,
        !          1895:    131,    68,    -1,    -1,    -1,    -1,   963,    -1,    75,    -1,
        !          1896:     46,    47,   512,    80,    81,   146,    -1,    -1,   518,   150,
        !          1897:    315,   316,   262,   850,    -1,   320,    -1,    -1,    -1,    -1,
        !          1898:     -1,   858,   272,    -1,    -1,   885,   331,   537,    -1,    -1,
        !          1899:     -1,    -1,   173,   191,   284,    -1,   194,    -1,   875,    -1,
        !          1900:     -1,    -1,    -1,   201,    -1,    -1,    92,   352,    -1,    -1,
        !          1901:    191,    97,    98,    99,   564,   565,    -1,    -1,   199,    -1,
        !          1902:      3,     4,     5,     6,     7,     8,    -1,   927,    11,    -1,
        !          1903:     13,   931,    -1,    -1,    -1,    -1,    -1,   382,   383,   329,
        !          1904:     -1,   386,    -1,   224,    27,   595,    -1,   597,    -1,    32,
        !          1905:     -1,    -1,    -1,    -1,    -1,    38,    39,    -1,    41,    -1,
        !          1906:     43,    44,   352,   244,   262,   615,    -1,     4,     5,   250,
        !          1907:      7,     8,    -1,    -1,   272,    58,    13,    41,    -1,   629,
        !          1908:     44,    -1,    -1,    -1,    -1,    68,   284,    -1,    -1,    -1,
        !          1909:     27,    -1,    75,    -1,    58,    32,   386,    80,    81,    -1,
        !          1910:     -1,    -1,    39,   284,    68,    -1,    -1,    -1,   658,    92,
        !          1911:     -1,    75,    -1,    -1,    -1,  1015,    80,    81,    -1,   669,
        !          1912:     -1,   104,    -1,    -1,    20,    21,    -1,   677,    -1,    -1,
        !          1913:     -1,   329,    -1,  1033,   315,   316,    -1,     4,     5,   320,
        !          1914:      7,     8,     3,     4,  1021,   326,    13,  1024,    -1,    -1,
        !          1915:    331,    -1,    -1,    -1,   352,    92,  1163,   707,    -1,    -1,
        !          1916:     27,   711,    58,    -1,    -1,    32,    -1,    -1,   349,   350,
        !          1917:     -1,   352,    39,    -1,    -1,    -1,    -1,    38,    -1,    75,
        !          1918:     41,    -1,    43,    44,    -1,    -1,   531,   532,   386,    -1,
        !          1919:     -1,  1091,    -1,    -1,   484,    -1,    -1,    58,    -1,    -1,
        !          1920:     -1,   382,   383,    -1,    -1,   386,    -1,    68,    -1,    -1,
        !          1921:     -1,    -1,    -1,    -1,    75,    -1,    -1,    -1,    -1,    80,
        !          1922:     -1,   566,    -1,  1123,    -1,    92,   571,  1127,  1128,    -1,
        !          1923:     -1,    92,     1,   783,     3,     4,     5,     6,     7,     8,
        !          1924:     -1,   102,    -1,   104,    13,    -1,    -1,   537,    -1,    -1,
        !          1925:   1150,   147,   148,    -1,    -1,  1155,   601,    -1,    27,   604,
        !          1926:     -1,    -1,    -1,    32,    33,    -1,    -1,    -1,    -1,    38,
        !          1927:     39,    -1,    41,    -1,    43,    -1,   566,   827,   828,   460,
        !          1928:    461,   571,    -1,    52,    -1,    -1,   484,    -1,    -1,    58,
        !          1929:    840,    -1,   842,    -1,    -1,  1195,  1196,   193,    -1,    68,
        !          1930:    850,   851,    -1,    -1,   200,   595,    -1,   597,   858,    -1,
        !          1931:     -1,    80,    -1,    -1,   604,    -1,    -1,     4,     5,    -1,
        !          1932:      7,     8,    -1,    92,    -1,   875,    13,   877,   878,    -1,
        !          1933:      1,    -1,    -1,   102,   103,   104,    -1,    -1,    -1,   537,
        !          1934:     27,    -1,    -1,    -1,    -1,    32,    -1,    -1,    -1,    -1,
        !          1935:    531,   532,    39,    24,    -1,    26,    -1,    -1,    -1,    46,
        !          1936:     31,   257,    -1,   259,   260,    -1,    -1,    -1,   566,    -1,
        !          1937:     41,    -1,    -1,   571,    -1,    -1,    47,    48,    -1,    50,
        !          1938:     -1,    52,    -1,    -1,    -1,   566,    -1,    -1,    -1,    -1,
        !          1939:    571,    -1,    -1,    80,    -1,    -1,    -1,   595,   743,   597,
        !          1940:     -1,   691,    -1,     3,     4,    92,   604,   957,   958,    80,
        !          1941:     81,    -1,    83,    -1,   759,   760,    -1,   967,    -1,    90,
        !          1942:    601,   317,   318,   604,    -1,    -1,    -1,    -1,   773,   774,
        !          1943:     -1,   102,   328,    -1,    -1,    -1,    -1,    -1,    38,    -1,
        !          1944:     -1,    41,    -1,    43,    44,    -1,    46,    -1,   998,    -1,
        !          1945:   1000,    -1,    52,    -1,    -1,    -1,   801,    -1,    58,    -1,
        !          1946:     -1,     4,     5,     6,     7,     8,    -1,    -1,    68,    -1,
        !          1947:     13,  1021,    -1,    -1,  1024,    75,    -1,    -1,   823,   824,
        !          1948:     80,    -1,    -1,    -1,    27,    -1,    -1,    -1,   384,    32,
        !          1949:     -1,   672,    92,   691,    -1,    -1,    39,  1047,    -1,    -1,
        !          1950:     -1,    -1,  1052,  1053,   104,     3,     4,     5,     6,     7,
        !          1951:      8,   801,    -1,     3,     4,    13,     6,     7,     8,    -1,
        !          1952:   1070,    -1,    -1,    -1,     4,     5,     6,     7,     8,    27,
        !          1953:     -1,    11,  1082,    13,    32,    -1,    -1,    -1,    -1,    -1,
        !          1954:     38,    39,    32,    41,    -1,    43,    44,    27,    46,    92,
        !          1955:     -1,    -1,    32,    -1,    52,    -1,    46,    47,  1108,    39,
        !          1956:     58,   742,   743,    64,    65,    66,    67,    68,    69,    70,
        !          1957:     68,  1121,    -1,    -1,    -1,    -1,    -1,    75,   759,   760,
        !          1958:     -1,    -1,    80,    -1,    -1,    -1,    -1,   483,    -1,   934,
        !          1959:   1140,    -1,   773,   774,    92,    -1,    -1,    -1,    -1,    -1,
        !          1960:     -1,    -1,    92,   801,    -1,    -1,   104,    97,    98,    99,
        !          1961:    791,    91,    92,    -1,    -1,    -1,    -1,    -1,   963,    -1,
        !          1962:    801,    -1,     0,     1,    -1,     3,     4,     5,     6,     7,
        !          1963:      8,    -1,    -1,    -1,    -1,    13,    -1,   533,   534,    -1,
        !          1964:    536,    -1,   823,   824,   934,    -1,    -1,    -1,    26,    27,
        !          1965:     -1,    -1,   548,   549,    32,    -1,     3,     4,    36,    -1,
        !          1966:     38,    39,    -1,    41,    42,    43,    -1,   563,    -1,    -1,
        !          1967:     -1,    -1,    -1,   963,   570,    -1,    -1,    -1,    -1,    -1,
        !          1968:     58,    -1,    -1,   579,   580,   581,    -1,    -1,    -1,    -1,
        !          1969:     68,    38,    -1,    -1,    41,    -1,    43,    44,   594,    46,
        !          1970:    596,    -1,    80,   599,   600,    52,   602,   603,    -1,    -1,
        !          1971:     -1,    58,    -1,    -1,    92,    93,    94,    -1,    -1,    -1,
        !          1972:     -1,    68,    -1,    -1,   102,    -1,   104,    -1,    75,    -1,
        !          1973:     -1,    -1,    -1,    80,    -1,    -1,   934,    -1,    -1,    -1,
        !          1974:     -1,    -1,    -1,    -1,    -1,    92,    -1,    -1,    -1,    -1,
        !          1975:     -1,    -1,    -1,   934,    -1,    -1,    -1,   104,    -1,    -1,
        !          1976:     -1,    -1,    -1,    -1,    -1,   963,    55,    56,    57,    58,
        !          1977:     59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
        !          1978:     69,    70,   963,    -1,   680,   681,    -1,    -1,   684,    -1,
        !          1979:     -1,    -1,    -1,    -1,    -1,    -1,    -1,     1,    -1,     3,
        !          1980:      4,     5,     6,     7,     8,     9,    10,    -1,    12,    13,
        !          1981:     14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
        !          1982:     24,    25,    26,    27,    28,    29,    30,    -1,    32,    -1,
        !          1983:     34,    35,    -1,    37,    38,    39,    -1,    -1,    -1,    43,
        !          1984:     -1,    -1,    46,    47,    61,    62,    63,    64,    65,    66,
        !          1985:     67,    68,    69,    70,    58,    -1,    -1,    -1,    -1,    -1,
        !          1986:     -1,    -1,    66,    67,    68,    -1,    -1,    -1,    72,    73,
        !          1987:     -1,    -1,    -1,   769,   770,   771,    80,    -1,    82,    -1,
        !          1988:     84,    85,    86,    -1,    88,    89,    90,    -1,    92,    -1,
        !          1989:     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   102,   103,
        !          1990:    104,   105,    -1,    -1,     1,    -1,     3,     4,     5,     6,
        !          1991:      7,     8,     9,    10,    -1,    12,    13,    14,    -1,    16,
        !          1992:     17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
        !          1993:     27,    28,    29,    30,    -1,    32,    -1,    34,    35,    -1,
        !          1994:     37,    38,    39,    -1,    -1,    -1,    43,    -1,    -1,    46,
        !          1995:     47,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        !          1996:     -1,    58,     3,     4,    -1,    -1,    -1,    -1,   864,    66,
        !          1997:     67,    68,    -1,    -1,    -1,    72,    73,    -1,    -1,    -1,
        !          1998:     -1,    -1,    -1,    80,    -1,    82,    -1,    -1,    85,    -1,
        !          1999:     -1,    88,    89,    90,    -1,    92,    -1,    38,    -1,    -1,
        !          2000:     41,    -1,    43,    44,    -1,   102,   103,   104,   105,    -1,
        !          2001:     -1,    -1,    -1,    -1,    -1,    -1,    -1,    58,    -1,    -1,
        !          2002:     -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,    -1,    -1,
        !          2003:     -1,    -1,    -1,    -1,    75,    -1,    -1,    -1,    -1,    80,
        !          2004:     -1,    -1,    -1,   939,   940,   941,    -1,    -1,    -1,    -1,
        !          2005:     -1,    92,    -1,    -1,    -1,    -1,    -1,    -1,   954,    -1,
        !          2006:     -1,   102,    -1,   104,    -1,    -1,   962,    -1,    -1,    -1,
        !          2007:     -1,    -1,   968,   969,   970,   971,   972,   973,     1,    -1,
        !          2008:      3,     4,     5,     6,     7,     8,     9,    10,    -1,    12,
        !          2009:     13,    14,    -1,    16,    17,    18,    19,    20,    21,    22,
        !          2010:     23,    24,    25,    26,    27,    28,    29,    30,    -1,    32,
        !          2011:     -1,    34,    35,    -1,    37,    38,    39,    -1,    -1,    -1,
        !          2012:     43,    -1,    -1,    46,    47,    -1,    -1,    -1,    -1,    -1,
        !          2013:     -1,    -1,    -1,    -1,    -1,    58,    -1,    -1,    -1,    -1,
        !          2014:     -1,    -1,    -1,    66,    67,    68,    -1,    -1,    -1,    72,
        !          2015:     73,    -1,    -1,    -1,    -1,    -1,    -1,    80,    -1,    82,
        !          2016:     -1,    -1,    85,    -1,    -1,    88,    89,    90,    -1,    92,
        !          2017:     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   102,
        !          2018:    103,   104,   105,     1,    -1,     3,     4,     5,     6,     7,
        !          2019:      8,     9,    10,    -1,    12,    13,    14,    -1,    16,    17,
        !          2020:     18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
        !          2021:     28,    29,    30,    -1,    32,    -1,    34,    35,    -1,    37,
        !          2022:     38,    39,    -1,    -1,    -1,    43,    -1,    -1,    46,    47,
        !          2023:     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        !          2024:     58,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    67,
        !          2025:     68,    -1,    -1,    -1,    72,    73,    -1,    -1,    -1,    -1,
        !          2026:     -1,    -1,    80,    -1,    82,    -1,    -1,    85,    -1,    -1,
        !          2027:     88,    89,    90,    -1,    92,    -1,    -1,    -1,    -1,    -1,
        !          2028:     -1,    -1,    -1,    -1,   102,   103,   104,   105,     1,    -1,
        !          2029:      3,     4,     5,     6,     7,     8,     9,    10,    -1,    12,
        !          2030:     13,    14,    -1,    16,    17,    18,    19,    20,    21,    22,
        !          2031:     23,    24,    25,    26,    27,    28,    29,    30,    -1,    32,
        !          2032:     -1,    34,    35,    -1,    37,    38,    39,    -1,    -1,    -1,
        !          2033:     43,    -1,    -1,    46,    47,    -1,    -1,    -1,    -1,    -1,
        !          2034:     -1,    -1,    -1,    -1,    -1,    58,    -1,    -1,    -1,    -1,
        !          2035:     -1,    -1,    -1,    66,    67,    68,    -1,    -1,    -1,    72,
        !          2036:     73,    -1,    -1,    -1,    -1,    -1,    -1,    80,    -1,    82,
        !          2037:     -1,    -1,    85,    -1,    -1,    88,    89,    90,    -1,    92,
        !          2038:     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   102,
        !          2039:    103,   104,   105,     1,    -1,     3,     4,     5,     6,     7,
        !          2040:      8,     9,    10,    -1,    12,    13,    14,    -1,    16,    17,
        !          2041:     18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
        !          2042:     28,    29,    30,    -1,    32,    -1,    34,    35,    -1,    37,
        !          2043:     38,    39,    -1,    -1,    -1,    43,    -1,    -1,    46,    47,
        !          2044:     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        !          2045:     58,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    67,
        !          2046:     68,    -1,    -1,    -1,    72,    73,    -1,    -1,    -1,    -1,
        !          2047:     -1,    -1,    80,    -1,    82,    -1,    -1,    85,    -1,    -1,
        !          2048:     88,    89,    90,    -1,    92,    -1,    -1,    -1,    -1,    -1,
        !          2049:     -1,    -1,    -1,    -1,   102,   103,   104,   105,     1,    -1,
        !          2050:      3,     4,     5,     6,     7,     8,     9,    10,    -1,    12,
        !          2051:     13,    14,    -1,    16,    17,    18,    19,    20,    21,    22,
        !          2052:     23,    24,    25,    26,    27,    28,    29,    30,    -1,    32,
        !          2053:     -1,    34,    35,    -1,    37,    38,    39,    -1,    -1,    -1,
        !          2054:     43,    -1,    -1,    46,    47,    -1,    -1,    -1,    -1,    -1,
        !          2055:     -1,    -1,    -1,    -1,    -1,    58,    -1,    -1,    -1,    -1,
        !          2056:     -1,    -1,    -1,    66,    67,    68,    -1,    -1,    -1,    72,
        !          2057:     73,    -1,    -1,    -1,    -1,    -1,    -1,    80,    -1,    82,
        !          2058:     -1,    -1,    85,    -1,    -1,    88,    89,    90,    -1,    92,
        !          2059:     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   102,
        !          2060:    103,   104,   105,     1,    -1,     3,     4,     5,     6,     7,
        !          2061:      8,     9,    10,    -1,    12,    13,    14,    -1,    16,    17,
        !          2062:     18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
        !          2063:     28,    29,    30,    -1,    32,    -1,    34,    35,    -1,    37,
        !          2064:     38,    39,    -1,    -1,    -1,    43,    -1,    -1,    46,    47,
        !          2065:     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        !          2066:     58,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    67,
        !          2067:     68,    -1,    -1,    -1,    72,    73,    -1,    -1,    -1,    -1,
        !          2068:     -1,    -1,    80,    -1,    82,    -1,    -1,    85,    -1,    -1,
        !          2069:     88,    89,    90,    -1,    92,    -1,    -1,    -1,    -1,    -1,
        !          2070:     -1,    -1,    -1,    -1,   102,    -1,   104,   105,     1,    -1,
        !          2071:      3,     4,     5,     6,     7,     8,     9,    10,    -1,    12,
        !          2072:     13,    14,    -1,    16,    17,    18,    19,    20,    21,    22,
        !          2073:     23,    24,    25,    26,    27,    28,    29,    30,    -1,    32,
        !          2074:     -1,    34,    35,    -1,    37,    38,    39,    -1,    -1,    -1,
        !          2075:     43,    -1,    -1,    46,    47,    -1,    -1,    -1,    -1,    -1,
        !          2076:     -1,    -1,    -1,    -1,    -1,    58,    -1,    -1,    -1,    -1,
        !          2077:     -1,    -1,    -1,    66,    67,    68,    -1,    -1,    -1,    72,
        !          2078:     73,    -1,    -1,    -1,    -1,    -1,    -1,    80,    -1,    82,
        !          2079:     -1,    -1,    85,    -1,    -1,    88,    89,    90,     1,    92,
        !          2080:     -1,     4,     5,    -1,     7,     8,    -1,    -1,    -1,   102,
        !          2081:     13,   104,   105,    60,    61,    62,    63,    64,    65,    66,
        !          2082:     67,    68,    69,    70,    27,    -1,    -1,    -1,    -1,    32,
        !          2083:     -1,    34,    35,    -1,    -1,    -1,    39,    40,    41,    -1,
        !          2084:     -1,    -1,    -1,    -1,    -1,    48,    49,    50,    51,    -1,
        !          2085:     -1,    54,    55,    56,    57,    58,    59,    60,    61,    62,
        !          2086:     63,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
        !          2087:     73,    -1,    -1,    76,    77,    -1,    -1,    -1,    81,    -1,
        !          2088:     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     1,    92,
        !          2089:      3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
        !          2090:     13,   104,   105,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        !          2091:     -1,    -1,    -1,    -1,    27,    28,    29,    30,    -1,    32,
        !          2092:     -1,    34,    35,    -1,    37,    38,    39,    -1,    -1,    -1,
        !          2093:     43,    49,    50,    51,    -1,    -1,    54,    55,    56,    57,
        !          2094:     58,    59,    60,    61,    62,    58,    64,    65,    66,    67,
        !          2095:     68,    69,    70,    66,    67,    68,    -1,    -1,    -1,    72,
        !          2096:     73,    -1,    -1,    -1,    -1,    -1,    -1,    80,    -1,    -1,
        !          2097:     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    91,    92,
        !          2098:     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,
        !          2099:     -1,   104,   105,     1,    -1,     3,     4,     5,     6,     7,
        !          2100:      8,     9,    10,    11,    12,    13,    58,    59,    60,    61,
        !          2101:     62,    63,    64,    65,    66,    67,    68,    69,    70,    27,
        !          2102:     28,    29,    30,    -1,    32,    -1,    34,    35,    -1,    37,
        !          2103:     38,    39,    -1,    -1,    -1,    43,    57,    58,    59,    60,
        !          2104:     61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
        !          2105:     58,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    67,
        !          2106:     68,    -1,    -1,    -1,    72,    73,    -1,    -1,    -1,    -1,
        !          2107:     -1,    -1,    80,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        !          2108:     -1,    -1,    -1,    91,    92,    -1,    -1,    -1,    -1,    -1,
        !          2109:     -1,    -1,    -1,   101,    -1,    -1,   104,   105,     1,    -1,
        !          2110:      3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
        !          2111:     13,    59,    60,    61,    62,    63,    64,    65,    66,    67,
        !          2112:     68,    69,    70,    -1,    27,    28,    29,    30,    -1,    32,
        !          2113:     -1,    34,    35,    -1,    37,    38,    39,    -1,    -1,    -1,
        !          2114:     43,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        !          2115:     -1,    -1,    -1,    -1,    -1,    58,    -1,    -1,    -1,    -1,
        !          2116:     -1,    -1,    -1,    66,    67,    68,    -1,    -1,    -1,    72,
        !          2117:     73,    -1,    -1,    -1,    -1,    -1,    -1,    80,    -1,    -1,
        !          2118:     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    91,    92,
        !          2119:     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,
        !          2120:     -1,   104,   105,     1,    -1,     3,     4,     5,     6,     7,
        !          2121:      8,     9,    10,    11,    12,    13,    -1,    -1,    -1,    -1,
        !          2122:     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    27,
        !          2123:     28,    29,    30,    -1,    32,    -1,    34,    35,    -1,    37,
        !          2124:     38,    39,    -1,    -1,    -1,    43,    -1,    -1,    -1,    -1,
        !          2125:     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        !          2126:     58,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    67,
        !          2127:     68,    -1,    -1,    -1,    72,    73,    -1,    -1,    -1,    -1,
        !          2128:     -1,    -1,    80,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        !          2129:     -1,    -1,    -1,    91,    92,    -1,    -1,    -1,    -1,    -1,
        !          2130:     -1,    -1,    -1,   101,    -1,    -1,   104,   105,     1,    -1,
        !          2131:      3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
        !          2132:     13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,
        !          2133:      4,    -1,    -1,    -1,    27,    28,    29,    30,    -1,    32,
        !          2134:     -1,    34,    35,    -1,    37,    38,    39,    -1,    -1,    -1,
        !          2135:     43,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        !          2136:     -1,    -1,    -1,    -1,    38,    58,    -1,    41,    -1,    43,
        !          2137:     -1,    -1,    -1,    66,    67,    68,    -1,    -1,    -1,    72,
        !          2138:     73,    -1,    -1,    -1,    58,    -1,    -1,    80,     3,     4,
        !          2139:     -1,    -1,    -1,     8,    68,    -1,    -1,    -1,    91,    92,
        !          2140:     -1,    75,    -1,    -1,    -1,    -1,    80,    81,   101,    -1,
        !          2141:     -1,   104,   105,     1,    -1,     3,     4,     5,    92,     7,
        !          2142:      8,     9,    10,    38,    12,    13,    41,    -1,    43,    -1,
        !          2143:    104,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    27,
        !          2144:     28,    29,    30,    58,    32,    -1,    34,    35,    -1,    37,
        !          2145:     38,    39,    -1,    68,    -1,    43,    -1,    -1,    -1,    47,
        !          2146:     75,    -1,    -1,    -1,    -1,    80,    -1,    -1,    -1,    -1,
        !          2147:     58,    -1,    -1,    -1,    -1,    -1,    -1,    92,    66,    67,
        !          2148:     68,    -1,    -1,    -1,    72,    73,    -1,    -1,    -1,   104,
        !          2149:     -1,    -1,    80,    81,     1,    -1,     3,     4,     5,    -1,
        !          2150:      7,     8,     9,    10,    92,    12,    13,    -1,    -1,    -1,
        !          2151:     -1,    -1,    -1,    20,    -1,   103,   104,   105,    -1,    -1,
        !          2152:     27,    28,    29,    30,    -1,    32,    -1,    34,    35,    -1,
        !          2153:     37,    38,    39,    -1,    -1,    -1,    43,    -1,    -1,    -1,
        !          2154:     47,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        !          2155:     -1,    58,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
        !          2156:     67,    68,    -1,    -1,    -1,    72,    73,    -1,    -1,    -1,
        !          2157:     -1,    -1,    -1,    80,    -1,     1,    -1,     3,     4,     5,
        !          2158:      6,     7,     8,     9,    10,    92,    12,    13,    -1,    -1,
        !          2159:     -1,    -1,    -1,    -1,    -1,    -1,   103,   104,   105,    -1,
        !          2160:     -1,    27,    28,    29,    30,    -1,    32,    -1,    34,    35,
        !          2161:     -1,    37,    38,    39,    -1,    -1,    -1,    43,    -1,    -1,
        !          2162:     -1,    47,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        !          2163:     -1,    -1,    58,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        !          2164:     66,    67,    68,    -1,    -1,    -1,    72,    73,    -1,    -1,
        !          2165:     -1,    -1,    -1,    -1,    80,    -1,     1,    -1,     3,     4,
        !          2166:      5,    -1,     7,     8,     9,    10,    92,    12,    13,    -1,
        !          2167:     -1,    -1,    -1,    -1,    -1,    20,   102,    -1,   104,   105,
        !          2168:     -1,    -1,    27,    28,    29,    30,    -1,    32,    -1,    34,
        !          2169:     35,    -1,    37,    38,    39,    -1,    -1,    -1,    43,    -1,
        !          2170:     -1,    -1,    47,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        !          2171:     -1,    -1,    -1,    58,    -1,    -1,    -1,    -1,    -1,    -1,
        !          2172:     -1,    66,    67,    68,    -1,    -1,    -1,    72,    73,    -1,
        !          2173:     -1,    -1,    -1,    -1,    -1,    80,    -1,     1,    -1,     3,
        !          2174:      4,     5,    -1,     7,     8,     9,    10,    92,    12,    13,
        !          2175:     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,   104,
        !          2176:    105,    -1,    -1,    27,    28,    29,    30,    -1,    32,    -1,
        !          2177:     34,    35,    -1,    37,    38,    39,    -1,    -1,    -1,    43,
        !          2178:     -1,    -1,    -1,    47,    -1,    -1,    -1,    -1,    -1,    -1,
        !          2179:     -1,    -1,    -1,    -1,    58,    -1,    -1,    -1,    -1,    -1,
        !          2180:     -1,    -1,    66,    67,    68,    -1,    -1,    -1,    72,    73,
        !          2181:     -1,    -1,    -1,    -1,    -1,    -1,    80,    81,     1,    -1,
        !          2182:      3,     4,     5,    -1,     7,     8,     9,    10,    92,    12,
        !          2183:     13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        !          2184:    104,   105,    -1,    -1,    27,    28,    29,    30,    -1,    32,
        !          2185:     -1,    34,    35,    -1,    37,    38,    39,    -1,    -1,    -1,
        !          2186:     43,    -1,    -1,    -1,    47,    -1,    -1,    -1,    -1,    -1,
        !          2187:     -1,    -1,    -1,    -1,    -1,    58,    -1,    -1,    -1,    -1,
        !          2188:     -1,    -1,    -1,    66,    67,    68,    -1,    -1,    -1,    72,
        !          2189:     73,    -1,    -1,    -1,    -1,    -1,    -1,    80,    -1,     1,
        !          2190:     -1,     3,     4,     5,    -1,     7,     8,     9,    10,    92,
        !          2191:     12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        !          2192:     -1,   104,   105,    -1,    -1,    27,    28,    29,    30,    -1,
        !          2193:     32,    -1,    34,    35,    -1,    37,    38,    39,    -1,    -1,
        !          2194:     -1,    43,    -1,    -1,    -1,    47,    -1,    -1,    -1,    -1,
        !          2195:     -1,    -1,    -1,    -1,    -1,    -1,    58,    -1,    -1,    -1,
        !          2196:     -1,    -1,    -1,    -1,    66,    67,    68,    -1,    -1,    -1,
        !          2197:     72,    73,    -1,    -1,    -1,    -1,    -1,    -1,    80,    -1,
        !          2198:      1,    -1,     3,     4,     5,    -1,     7,     8,     9,    10,
        !          2199:     92,    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        !          2200:     -1,    -1,   104,   105,    -1,    -1,    27,    28,    29,    30,
        !          2201:     -1,    32,    -1,    34,    35,    -1,    37,    38,    39,    -1,
        !          2202:     -1,    -1,    43,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        !          2203:     -1,    52,    -1,    -1,    -1,    -1,    -1,    58,    -1,    -1,
        !          2204:     -1,    -1,    -1,    -1,    -1,    66,    67,    68,    -1,    -1,
        !          2205:     -1,    72,    73,    -1,    -1,    -1,    -1,    -1,    -1,    80,
        !          2206:     -1,     1,    -1,     3,     4,     5,    -1,     7,     8,     9,
        !          2207:     10,    92,    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,
        !          2208:     -1,    -1,    -1,   104,   105,    -1,    -1,    27,    28,    29,
        !          2209:     30,    -1,    32,    -1,    34,    35,    -1,    37,    38,    39,
        !          2210:     -1,    -1,    -1,    43,    -1,    -1,    -1,    -1,    -1,    -1,
        !          2211:     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    58,    -1,
        !          2212:     -1,    -1,    -1,    -1,    -1,    -1,    66,    67,    68,    -1,
        !          2213:     -1,    -1,    72,    73,    -1,    -1,    -1,    -1,    -1,    -1,
        !          2214:     80,    -1,     1,    -1,     3,     4,     5,    -1,     7,     8,
        !          2215:      9,    10,    92,    12,    13,    -1,    -1,    -1,    -1,    -1,
        !          2216:     -1,    -1,   102,    -1,   104,   105,    -1,    -1,    27,    28,
        !          2217:     29,    30,    -1,    32,    -1,    34,    35,    -1,    37,    38,
        !          2218:     39,    -1,    -1,    -1,    43,    -1,    -1,    -1,    -1,    -1,
        !          2219:     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    58,
        !          2220:     -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    67,    68,
        !          2221:     -1,    -1,    -1,    72,    73,    -1,    -1,    -1,    -1,    -1,
        !          2222:     -1,    80,    -1,     1,    -1,     3,     4,     5,    -1,     7,
        !          2223:      8,     9,    10,    92,    12,    13,    -1,    -1,    -1,    -1,
        !          2224:     -1,    -1,   101,    -1,    -1,   104,   105,    -1,    -1,    27,
        !          2225:     28,    29,    30,    -1,    32,    -1,    34,    35,    -1,    37,
        !          2226:     38,    39,    -1,    -1,    -1,    43,    -1,    -1,    -1,    -1,
        !          2227:     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        !          2228:     58,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    67,
        !          2229:     68,    -1,    -1,    -1,    72,    73,    -1,    -1,    -1,    -1,
        !          2230:     -1,    -1,    80,    -1,    -1,    -1,     3,     4,     5,    -1,
        !          2231:      7,     8,     9,    10,    92,    12,    13,    -1,    -1,    -1,
        !          2232:     -1,    -1,    -1,    -1,    -1,    -1,   104,   105,    -1,    -1,
        !          2233:     27,    28,    29,    30,    -1,    32,    -1,    34,    -1,    -1,
        !          2234:     37,    38,    39,    -1,    -1,    -1,    43,     1,    -1,     3,
        !          2235:      4,     5,     6,     7,     8,    -1,    -1,    -1,    -1,    13,
        !          2236:     -1,    58,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,
        !          2237:     67,    68,    26,    27,    -1,    72,    73,    -1,    32,    -1,
        !          2238:     -1,    -1,    36,    80,    38,    39,    -1,    41,    42,    43,
        !          2239:     -1,    -1,    -1,    -1,     1,    92,     3,     4,     5,     6,
        !          2240:      7,     8,    -1,    -1,    58,    -1,    13,   104,   105,   106,
        !          2241:     -1,    -1,    -1,    -1,    68,    -1,    -1,    -1,    -1,    26,
        !          2242:     27,    -1,    -1,    -1,    -1,    32,    80,    -1,    -1,    36,
        !          2243:     -1,    38,    39,    -1,    41,    42,    43,    -1,    92,    93,
        !          2244:     94,     3,     4,    -1,    -1,    -1,     8,    -1,   102,   103,
        !          2245:    104,    58,     1,    -1,     3,     4,     5,     6,     7,     8,
        !          2246:     -1,    68,    -1,    -1,    13,    -1,    -1,    -1,    -1,    -1,
        !          2247:     -1,    -1,    -1,    80,    -1,    -1,    38,    -1,    27,    41,
        !          2248:     -1,    43,    -1,    32,    33,    92,    93,    94,    -1,    38,
        !          2249:     39,    -1,    41,    -1,    43,   102,    58,   104,    -1,    -1,
        !          2250:     -1,    -1,    -1,    52,    -1,    -1,    68,    -1,     1,    58,
        !          2251:      3,     4,     5,     6,     7,     8,    -1,    -1,    80,    68,
        !          2252:     13,    -1,    -1,     3,     4,    -1,    -1,    -1,    -1,    -1,
        !          2253:     92,    80,    -1,    -1,    27,    -1,    -1,    -1,    -1,    32,
        !          2254:     33,    -1,   104,    92,    -1,    38,    39,    -1,    41,    -1,
        !          2255:     43,    -1,    -1,   102,   103,   104,    -1,    -1,    38,    52,
        !          2256:     -1,    41,    -1,    43,     1,    58,     3,     4,     5,     6,
        !          2257:      7,     8,    -1,    -1,    -1,    68,    13,    -1,    58,    -1,
        !          2258:     -1,    -1,    -1,    -1,    -1,    -1,    -1,    80,    68,    -1,
        !          2259:     27,    -1,    -1,    -1,    -1,    32,    33,    -1,    -1,    92,
        !          2260:     80,    38,    39,    -1,    41,    -1,    43,    -1,    -1,    -1,
        !          2261:    103,   104,    92,    -1,    -1,    52,    -1,    -1,    -1,    -1,
        !          2262:     -1,    58,    -1,    -1,   104,    -1,    -1,    -1,    -1,    -1,
        !          2263:     -1,    68,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        !          2264:     -1,    -1,    -1,    80,    -1,    -1,    -1,    -1,    -1,    -1,
        !          2265:     -1,    -1,    -1,    -1,    -1,    92,    -1,    -1,    -1,    -1,
        !          2266:     -1,    -1,    -1,    -1,    -1,    -1,   103,   104,     3,     4,
        !          2267:      5,     6,     7,     8,     9,    10,    -1,    12,    13,    14,
        !          2268:     -1,    16,    17,    18,    19,    20,    21,    22,    23,    24,
        !          2269:     25,    26,    27,    28,    29,    30,    -1,    32,    -1,    34,
        !          2270:     -1,    -1,    37,    38,    39,    -1,    -1,    -1,    43,    -1,
        !          2271:     -1,    46,    47,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        !          2272:     -1,    -1,    -1,    58,    -1,    -1,    -1,    -1,    -1,    -1,
        !          2273:     -1,    66,    67,    68,    -1,    -1,    -1,    72,    73,    -1,
        !          2274:     -1,    -1,    -1,    -1,    -1,    80,    -1,    82,    -1,    -1,
        !          2275:     85,    -1,    -1,    88,    89,    90,    -1,    92,    -1,    -1,
        !          2276:     -1,    -1,    -1,    -1,    -1,    -1,    -1,   102,   103,   104,
        !          2277:    105,     3,     4,     5,     6,     7,     8,     9,    10,    -1,
        !          2278:     12,    13,    14,    -1,    16,    17,    18,    19,    20,    21,
        !          2279:     22,    23,    24,    25,    26,    27,    28,    29,    30,    -1,
        !          2280:     32,    -1,    34,    -1,    -1,    37,    38,    39,    -1,    -1,
        !          2281:     -1,    43,    -1,    -1,    46,    47,    -1,    -1,    -1,    -1,
        !          2282:     -1,    -1,    -1,    -1,    -1,    -1,    58,     3,     4,    -1,
        !          2283:     -1,    -1,    -1,    -1,    66,    67,    68,    -1,    -1,    -1,
        !          2284:     72,    73,    -1,    -1,    -1,    -1,    -1,    -1,    80,    -1,
        !          2285:     82,    -1,    -1,    85,    -1,    -1,    88,    89,    90,    -1,
        !          2286:     92,    -1,    38,    -1,    -1,    41,    -1,    43,    -1,    -1,
        !          2287:    102,    -1,   104,   105,     3,     4,     5,    -1,     7,     8,
        !          2288:      9,    10,    58,    12,    13,    -1,    -1,    -1,    -1,    -1,
        !          2289:     -1,    -1,    68,    -1,    -1,    -1,    -1,    -1,    27,    28,
        !          2290:     29,    30,    -1,    32,    80,    34,    -1,    -1,    37,    38,
        !          2291:     39,    -1,    -1,    -1,    43,    -1,    92,    -1,    -1,    -1,
        !          2292:     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   104,    58,
        !          2293:     -1,    -1,     3,     4,    -1,    -1,    -1,    66,    67,    68,
        !          2294:     -1,    -1,    -1,    72,    73,    -1,    -1,    -1,    -1,    -1,
        !          2295:     -1,    80,    81,    -1,    -1,     3,     4,     5,    -1,     7,
        !          2296:      8,     9,    10,    92,    12,    13,    -1,    38,    -1,    -1,
        !          2297:     41,    -1,    43,    -1,    -1,   104,   105,    -1,    -1,    27,
        !          2298:     28,    29,    30,    -1,    32,    -1,    34,    58,    -1,    37,
        !          2299:     38,    39,    -1,    -1,    -1,    43,    -1,    68,    -1,    47,
        !          2300:     -1,    -1,    -1,    -1,    75,    -1,    -1,    -1,    -1,    80,
        !          2301:     58,    -1,    -1,     3,     4,    -1,    -1,    -1,    66,    67,
        !          2302:     68,    92,    -1,    -1,    72,    73,    -1,    -1,    -1,    -1,
        !          2303:     -1,    -1,    80,   104,    -1,    -1,     3,     4,     5,    -1,
        !          2304:      7,     8,     9,    10,    92,    12,    13,    -1,    38,    -1,
        !          2305:     -1,    41,    -1,    43,    -1,    -1,   104,   105,    -1,    -1,
        !          2306:     27,    28,    29,    30,    -1,    32,    -1,    34,    58,    -1,
        !          2307:     37,    38,    39,    -1,    -1,    -1,    43,    -1,    68,    -1,
        !          2308:     -1,    -1,    -1,    -1,    -1,    75,    -1,    -1,    -1,    -1,
        !          2309:     80,    58,    -1,    -1,     3,     4,    -1,    -1,    -1,    66,
        !          2310:     67,    68,    92,    -1,    -1,    72,    73,    -1,    -1,    -1,
        !          2311:     -1,    -1,    -1,    80,   104,    -1,    -1,     3,     4,     5,
        !          2312:     -1,     7,     8,     9,    10,    92,    12,    13,    -1,    38,
        !          2313:     -1,    -1,    41,    -1,    43,   102,    -1,   104,   105,    -1,
        !          2314:     -1,    27,    28,    29,    30,    -1,    32,    -1,    34,    58,
        !          2315:     -1,    37,    38,    39,    -1,    -1,    -1,    43,    -1,    68,
        !          2316:     -1,    -1,    -1,    -1,    -1,    -1,    75,    -1,    -1,    -1,
        !          2317:     -1,    80,    58,    -1,    -1,     3,     4,    -1,    -1,    -1,
        !          2318:     66,    67,    68,    92,    -1,    -1,    72,    73,    -1,    -1,
        !          2319:     -1,    -1,    -1,    -1,    80,   104,    -1,    -1,     3,     4,
        !          2320:      5,    -1,     7,     8,     9,    10,    92,    12,    13,    -1,
        !          2321:     38,    -1,    -1,    41,    -1,    43,   102,    -1,   104,   105,
        !          2322:     -1,    -1,    27,    28,    29,    30,    -1,    32,    -1,    34,
        !          2323:     58,    -1,    37,    38,    39,    -1,    -1,    -1,    43,    -1,
        !          2324:     68,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        !          2325:     -1,    -1,    80,    58,    -1,    -1,    -1,    -1,    -1,    -1,
        !          2326:     -1,    66,    67,    68,    92,    -1,    -1,    72,    73,    -1,
        !          2327:     -1,    -1,    -1,    -1,    -1,    80,   104,    -1,    -1,     3,
        !          2328:      4,     5,    -1,     7,     8,     9,    10,    92,    12,    13,
        !          2329:     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   104,
        !          2330:    105,    -1,    -1,    27,    28,    29,    30,    -1,    32,    -1,
        !          2331:     34,    -1,    -1,    37,    38,    39,    -1,    -1,    -1,    43,
        !          2332:     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        !          2333:     -1,    -1,    -1,    -1,    58,    -1,    -1,    -1,    -1,    -1,
        !          2334:     -1,    -1,    66,    67,    68,    -1,    -1,    -1,    72,    73,
        !          2335:     -1,    -1,    -1,    -1,    -1,    -1,    80,    -1,    -1,    -1,
        !          2336:      3,     4,     5,    -1,     7,     8,     9,    10,    92,    12,
        !          2337:     13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        !          2338:    104,   105,    -1,    -1,    27,    28,    29,    30,    -1,    32,
        !          2339:     -1,    34,    -1,    -1,    37,    38,    39,    -1,    -1,    -1,
        !          2340:     43,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        !          2341:     -1,    -1,    -1,    -1,    -1,    58,    -1,    -1,    -1,    -1,
        !          2342:     -1,    -1,    -1,    66,    67,    68,    -1,    -1,    -1,    72,
        !          2343:     73,    -1,    -1,    -1,     3,     4,     5,    80,     7,     8,
        !          2344:      9,    10,    -1,    12,    13,    -1,    -1,    -1,    -1,    92,
        !          2345:     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    27,    28,
        !          2346:     -1,   104,   105,    32,    -1,    34,    -1,    -1,    37,    38,
        !          2347:     39,    -1,    -1,    -1,    43,    -1,    -1,    -1,    -1,    -1,
        !          2348:     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    58,
        !          2349:     -1,    -1,    -1,    -1,    -1,    -1,    -1,    66,    67,    68,
        !          2350:     -1,    -1,    -1,    72,    73,    -1,    -1,    -1,     3,     4,
        !          2351:      5,    80,     7,     8,     9,    10,    -1,    12,    13,    -1,
        !          2352:     -1,    -1,    -1,    92,    -1,    -1,    -1,    -1,    -1,    -1,
        !          2353:     -1,    -1,    27,    28,    -1,   104,   105,    32,    -1,    34,
        !          2354:     -1,    -1,    37,    38,    39,    -1,    -1,    -1,    43,    -1,
        !          2355:     -1,     3,     4,     5,     6,     7,     8,    -1,    -1,    11,
        !          2356:     -1,    13,    -1,    58,    -1,    -1,    -1,    -1,    -1,    -1,
        !          2357:     -1,    66,    67,    68,    -1,    27,    -1,    72,    73,    -1,
        !          2358:     32,    -1,    -1,    -1,    -1,    80,    38,    39,    -1,    41,
        !          2359:     -1,    43,    -1,    -1,    -1,    -1,    -1,    92,    -1,    -1,
        !          2360:     -1,    -1,    -1,    -1,    -1,    -1,    58,    -1,    -1,   104,
        !          2361:    105,    -1,    -1,    -1,    -1,    -1,    68,    -1,    -1,    -1,
        !          2362:     -1,    -1,    -1,    75,    -1,    -1,    -1,    -1,    80,    81,
        !          2363:     -1,     3,     4,     5,     6,     7,     8,    -1,    -1,    91,
        !          2364:     92,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        !          2365:     -1,    -1,   104,    -1,    -1,    27,    -1,    -1,    -1,    -1,
        !          2366:     32,    -1,    -1,    -1,    -1,    -1,    38,    39,    -1,    41,
        !          2367:     -1,    43,    44,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        !          2368:     -1,    -1,    -1,    -1,    -1,    -1,    58,     3,     4,     5,
        !          2369:      6,     7,     8,    -1,    -1,    11,    68,    13,    -1,    -1,
        !          2370:     -1,    -1,    -1,    75,    -1,    -1,    -1,    -1,    80,    -1,
        !          2371:     -1,    27,    -1,    -1,    -1,    -1,    32,    -1,    -1,    -1,
        !          2372:     92,    -1,    38,    39,    -1,    41,    -1,    43,    -1,    -1,
        !          2373:    102,    -1,   104,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        !          2374:     -1,    -1,    58,     3,     4,     5,     6,     7,     8,    -1,
        !          2375:     -1,    -1,    68,    13,    -1,    -1,    -1,    -1,    -1,    75,
        !          2376:     -1,    -1,    -1,    -1,    80,    -1,    -1,    27,    -1,    -1,
        !          2377:     -1,    -1,    32,    -1,    -1,    91,    92,    -1,    38,    39,
        !          2378:     -1,    41,    -1,    43,    44,    -1,    -1,    -1,   104,    -1,
        !          2379:      3,     4,     5,     6,     7,     8,    -1,    -1,    58,    -1,
        !          2380:     13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,    -1,
        !          2381:     -1,    -1,    -1,    -1,    27,    75,    -1,    -1,    -1,    32,
        !          2382:     80,    -1,    -1,    -1,    -1,    38,    39,    -1,    41,    -1,
        !          2383:     43,    44,    92,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        !          2384:     -1,    -1,   102,    -1,   104,    58,     3,     4,     5,     6,
        !          2385:      7,     8,    -1,    -1,    -1,    68,    13,    -1,    -1,    -1,
        !          2386:     -1,    -1,    75,    -1,    -1,    -1,    -1,    80,    -1,    -1,
        !          2387:     27,    -1,    -1,    -1,    -1,    32,    -1,    -1,    -1,    92,
        !          2388:     -1,    38,    39,    -1,    41,    -1,    43,    -1,    -1,    -1,
        !          2389:     -1,   104,    -1,    -1,    -1,    -1,     4,     5,     6,     7,
        !          2390:      8,    58,    -1,    11,    -1,    13,    -1,    -1,    -1,    -1,
        !          2391:     -1,    68,    -1,    -1,    -1,    -1,    -1,     4,     5,    27,
        !          2392:      7,     8,    -1,    80,    32,    -1,    13,    -1,    -1,    -1,
        !          2393:     -1,    39,    -1,    41,    -1,    92,    -1,    -1,    -1,    -1,
        !          2394:     27,    -1,    -1,    -1,    -1,    32,    -1,   104,    -1,    -1,
        !          2395:     58,    -1,    39,    -1,    41,    -1,    -1,    44,    -1,    -1,
        !          2396:     68,    -1,    -1,    -1,    -1,    -1,    -1,    75,    -1,    -1,
        !          2397:     -1,    58,    80,    81,    -1,    -1,    -1,    -1,    -1,    -1,
        !          2398:     -1,    68,    -1,    91,    92,    -1,    -1,    -1,    75,    -1,
        !          2399:     -1,    -1,    -1,    80,    81,    -1,    -1,    -1,    -1,    -1,
        !          2400:     -1,    49,    50,    51,    -1,    92,    54,    55,    56,    57,
        !          2401:     58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
        !          2402:     68,    69,    70,    49,    50,    51,    -1,    -1,    54,    55,
        !          2403:     56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
        !          2404:     66,    67,    68,    69,    70,    -1,    -1,    -1,    -1,    -1,
        !          2405:     -1,    -1,    -1,    48,    49,    50,    51,    -1,   106,    54,
        !          2406:     55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
        !          2407:     65,    66,    67,    68,    69,    70,   102,   103,    49,    50,
        !          2408:     51,    52,    -1,    54,    55,    56,    57,    58,    59,    60,
        !          2409:     61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
        !          2410:     49,    50,    51,    -1,    -1,    54,    55,    56,    57,    58,
        !          2411:     59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
        !          2412:     69,    70,    51,    -1,    -1,    54,    55,    56,    57,    58,
        !          2413:     59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
        !          2414:     69,    70,    56,    57,    58,    59,    60,    61,    62,    63,
        !          2415:     64,    65,    66,    67,    68,    69,    70
        !          2416: };
        !          2417: /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
        !          2418: #line 3 "bison.simple"
        !          2419: 
        !          2420: /* Skeleton output parser for bison,
        !          2421:    Copyright (C) 1984, 1989, 1990 Bob Corbett and Richard Stallman
        !          2422: 
        !          2423:    This program is free software; you can redistribute it and/or modify
        !          2424:    it under the terms of the GNU General Public License as published by
        !          2425:    the Free Software Foundation; either version 1, or (at your option)
        !          2426:    any later version.
        !          2427: 
        !          2428:    This program is distributed in the hope that it will be useful,
        !          2429:    but WITHOUT ANY WARRANTY; without even the implied warranty of
        !          2430:    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        !          2431:    GNU General Public License for more details.
        !          2432: 
        !          2433:    You should have received a copy of the GNU General Public License
        !          2434:    along with this program; if not, write to the Free Software
        !          2435:    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
        !          2436: 
        !          2437: 
        !          2438: #ifndef alloca
        !          2439: #ifdef __GNUC__
        !          2440: #define alloca __builtin_alloca
        !          2441: #else /* not GNU C.  */
        !          2442: #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__)
        !          2443: #include <alloca.h>
        !          2444: #else /* not sparc */
        !          2445: #if defined (MSDOS) && !defined (__TURBOC__)
        !          2446: #include <malloc.h>
        !          2447: #else /* not MSDOS, or __TURBOC__ */
        !          2448: #if defined(_AIX)
        !          2449: #include <malloc.h>
        !          2450:  #pragma alloca
        !          2451: #endif /* not _AIX */
        !          2452: #endif /* not MSDOS, or __TURBOC__ */
        !          2453: #endif /* not sparc.  */
        !          2454: #endif /* not GNU C.  */
        !          2455: #endif /* alloca not defined.  */
        !          2456: 
        !          2457: /* This is the parser code that is written into each bison parser
        !          2458:   when the %semantic_parser declaration is not specified in the grammar.
        !          2459:   It was written by Richard Stallman by simplifying the hairy parser
        !          2460:   used when %semantic_parser is specified.  */
        !          2461: 
        !          2462: /* Note: there must be only one dollar sign in this file.
        !          2463:    It is replaced by the list of actions, each action
        !          2464:    as one case of the switch.  */
        !          2465: 
        !          2466: #define yyerrok                (yyerrstatus = 0)
        !          2467: #define yyclearin      (yychar = YYEMPTY)
        !          2468: #define YYEMPTY                -2
        !          2469: #define YYEOF          0
        !          2470: #define YYACCEPT       return(0)
        !          2471: #define YYABORT        return(1)
        !          2472: #define YYERROR                goto yyerrlab1
        !          2473: /* Like YYERROR except do call yyerror.
        !          2474:    This remains here temporarily to ease the
        !          2475:    transition to the new meaning of YYERROR, for GCC.
        !          2476:    Once GCC version 2 has supplanted version 1, this can go.  */
        !          2477: #define YYFAIL         goto yyerrlab
        !          2478: #define YYRECOVERING()  (!!yyerrstatus)
        !          2479: #define YYBACKUP(token, value) \
        !          2480: do                                                             \
        !          2481:   if (yychar == YYEMPTY && yylen == 1)                         \
        !          2482:     { yychar = (token), yylval = (value);                      \
        !          2483:       yychar1 = YYTRANSLATE (yychar);                          \
        !          2484:       YYPOPSTACK;                                              \
        !          2485:       goto yybackup;                                           \
        !          2486:     }                                                          \
        !          2487:   else                                                         \
        !          2488:     { yyerror ("syntax error: cannot back up"); YYERROR; }     \
        !          2489: while (0)
        !          2490: 
        !          2491: #define YYTERROR       1
        !          2492: #define YYERRCODE      256
        !          2493: 
        !          2494: #ifndef YYPURE
        !          2495: #define YYLEX          yylex()
        !          2496: #endif
        !          2497: 
        !          2498: #ifdef YYPURE
        !          2499: #ifdef YYLSP_NEEDED
        !          2500: #define YYLEX          yylex(&yylval, &yylloc)
        !          2501: #else
        !          2502: #define YYLEX          yylex(&yylval)
        !          2503: #endif
        !          2504: #endif
        !          2505: 
        !          2506: /* If nonreentrant, generate the variables here */
        !          2507: 
        !          2508: #ifndef YYPURE
        !          2509: 
        !          2510: int    yychar;                 /*  the lookahead symbol                */
        !          2511: YYSTYPE        yylval;                 /*  the semantic value of the           */
        !          2512:                                /*  lookahead symbol                    */
        !          2513: 
        !          2514: #ifdef YYLSP_NEEDED
        !          2515: YYLTYPE yylloc;                        /*  location data for the lookahead     */
        !          2516:                                /*  symbol                              */
        !          2517: #endif
        !          2518: 
        !          2519: int yynerrs;                   /*  number of parse errors so far       */
        !          2520: #endif  /* not YYPURE */
        !          2521: 
        !          2522: #if YYDEBUG != 0
        !          2523: int yydebug;                   /*  nonzero means print parse trace     */
        !          2524: /* Since this is uninitialized, it does not stop multiple parsers
        !          2525:    from coexisting.  */
        !          2526: #endif
        !          2527: 
        !          2528: /*  YYINITDEPTH indicates the initial size of the parser's stacks      */
        !          2529: 
        !          2530: #ifndef        YYINITDEPTH
        !          2531: #define YYINITDEPTH 200
        !          2532: #endif
        !          2533: 
        !          2534: /*  YYMAXDEPTH is the maximum size the stacks can grow to
        !          2535:     (effective only if the built-in stack extension method is used).  */
        !          2536: 
        !          2537: #if YYMAXDEPTH == 0
        !          2538: #undef YYMAXDEPTH
        !          2539: #endif
        !          2540: 
        !          2541: #ifndef YYMAXDEPTH
        !          2542: #define YYMAXDEPTH 10000
        !          2543: #endif
        !          2544: 
        !          2545: #if __GNUC__ > 1               /* GNU C and GNU C++ define this.  */
        !          2546: #define __yy_bcopy(FROM,TO,COUNT)      __builtin_memcpy(TO,FROM,COUNT)
        !          2547: #else                          /* not GNU C or C++ */
        !          2548: #ifndef __cplusplus
        !          2549: 
        !          2550: /* This is the most reliable way to avoid incompatibilities
        !          2551:    in available built-in functions on various systems.  */
        !          2552: static void
        !          2553: __yy_bcopy (from, to, count)
        !          2554:      char *from;
        !          2555:      char *to;
        !          2556:      int count;
        !          2557: {
        !          2558:   register char *f = from;
        !          2559:   register char *t = to;
        !          2560:   register int i = count;
        !          2561: 
        !          2562:   while (i-- > 0)
        !          2563:     *t++ = *f++;
        !          2564: }
        !          2565: 
        !          2566: #else /* __cplusplus */
        !          2567: 
        !          2568: /* This is the most reliable way to avoid incompatibilities
        !          2569:    in available built-in functions on various systems.  */
        !          2570: static void
        !          2571: __yy_bcopy (char *from, char *to, int count)
        !          2572: {
        !          2573:   register char *f = from;
        !          2574:   register char *t = to;
        !          2575:   register int i = count;
        !          2576: 
        !          2577:   while (i-- > 0)
        !          2578:     *t++ = *f++;
        !          2579: }
        !          2580: 
        !          2581: #endif
        !          2582: #endif
        !          2583: 
        !          2584: #line 169 "bison.simple"
        !          2585: int
        !          2586: yyparse()
        !          2587: {
        !          2588:   register int yystate;
        !          2589:   register int yyn;
        !          2590:   register short *yyssp;
        !          2591:   register YYSTYPE *yyvsp;
        !          2592:   int yyerrstatus;     /*  number of tokens to shift before error messages enabled */
        !          2593:   int yychar1;         /*  lookahead token as an internal (translated) token number */
        !          2594: 
        !          2595:   short        yyssa[YYINITDEPTH];     /*  the state stack                     */
        !          2596:   YYSTYPE yyvsa[YYINITDEPTH];  /*  the semantic value stack            */
        !          2597: 
        !          2598:   short *yyss = yyssa;         /*  refer to the stacks thru separate pointers */
        !          2599:   YYSTYPE *yyvs = yyvsa;       /*  to allow yyoverflow to reallocate them elsewhere */
        !          2600: 
        !          2601: #ifdef YYLSP_NEEDED
        !          2602:   YYLTYPE yylsa[YYINITDEPTH];  /*  the location stack                  */
        !          2603:   YYLTYPE *yyls = yylsa;
        !          2604:   YYLTYPE *yylsp;
        !          2605: 
        !          2606: #define YYPOPSTACK   (yyvsp--, yysp--, yylsp--)
        !          2607: #else
        !          2608: #define YYPOPSTACK   (yyvsp--, yysp--)
        !          2609: #endif
        !          2610: 
        !          2611:   int yystacksize = YYINITDEPTH;
        !          2612: 
        !          2613: #ifdef YYPURE
        !          2614:   int yychar;
        !          2615:   YYSTYPE yylval;
        !          2616:   int yynerrs;
        !          2617: #ifdef YYLSP_NEEDED
        !          2618:   YYLTYPE yylloc;
        !          2619: #endif
        !          2620: #endif
        !          2621: 
        !          2622:   YYSTYPE yyval;               /*  the variable used to return         */
        !          2623:                                /*  semantic values from the action     */
        !          2624:                                /*  routines                            */
        !          2625: 
        !          2626:   int yylen;
        !          2627: 
        !          2628: #if YYDEBUG != 0
        !          2629:   if (yydebug)
        !          2630:     fprintf(stderr, "Starting parse\n");
        !          2631: #endif
        !          2632: 
        !          2633:   yystate = 0;
        !          2634:   yyerrstatus = 0;
        !          2635:   yynerrs = 0;
        !          2636:   yychar = YYEMPTY;            /* Cause a token to be read.  */
        !          2637: 
        !          2638:   /* Initialize stack pointers.
        !          2639:      Waste one element of value and location stack
        !          2640:      so that they stay on the same level as the state stack.  */
        !          2641: 
        !          2642:   yyssp = yyss - 1;
        !          2643:   yyvsp = yyvs;
        !          2644: #ifdef YYLSP_NEEDED
        !          2645:   yylsp = yyls;
        !          2646: #endif
        !          2647: 
        !          2648: /* Push a new state, which is found in  yystate  .  */
        !          2649: /* In all cases, when you get here, the value and location stacks
        !          2650:    have just been pushed. so pushing a state here evens the stacks.  */
        !          2651: yynewstate:
        !          2652: 
        !          2653:   *++yyssp = yystate;
        !          2654: 
        !          2655:   if (yyssp >= yyss + yystacksize - 1)
        !          2656:     {
        !          2657:       /* Give user a chance to reallocate the stack */
        !          2658:       /* Use copies of these so that the &'s don't force the real ones into memory. */
        !          2659:       YYSTYPE *yyvs1 = yyvs;
        !          2660:       short *yyss1 = yyss;
        !          2661: #ifdef YYLSP_NEEDED
        !          2662:       YYLTYPE *yyls1 = yyls;
        !          2663: #endif
        !          2664: 
        !          2665:       /* Get the current used size of the three stacks, in elements.  */
        !          2666:       int size = yyssp - yyss + 1;
        !          2667: 
        !          2668: #ifdef yyoverflow
        !          2669:       /* Each stack pointer address is followed by the size of
        !          2670:         the data in use in that stack, in bytes.  */
        !          2671:       yyoverflow("parser stack overflow",
        !          2672:                 &yyss1, size * sizeof (*yyssp),
        !          2673:                 &yyvs1, size * sizeof (*yyvsp),
        !          2674: #ifdef YYLSP_NEEDED
        !          2675:                 &yyls1, size * sizeof (*yylsp),
        !          2676: #endif
        !          2677:                 &yystacksize);
        !          2678: 
        !          2679:       yyss = yyss1; yyvs = yyvs1;
        !          2680: #ifdef YYLSP_NEEDED
        !          2681:       yyls = yyls1;
        !          2682: #endif
        !          2683: #else /* no yyoverflow */
        !          2684:       /* Extend the stack our own way.  */
        !          2685:       if (yystacksize >= YYMAXDEPTH)
        !          2686:        {
        !          2687:          yyerror("parser stack overflow");
        !          2688:          return 2;
        !          2689:        }
        !          2690:       yystacksize *= 2;
        !          2691:       if (yystacksize > YYMAXDEPTH)
        !          2692:        yystacksize = YYMAXDEPTH;
        !          2693:       yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
        !          2694:       __yy_bcopy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp));
        !          2695:       yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
        !          2696:       __yy_bcopy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp));
        !          2697: #ifdef YYLSP_NEEDED
        !          2698:       yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
        !          2699:       __yy_bcopy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp));
        !          2700: #endif
        !          2701: #endif /* no yyoverflow */
        !          2702: 
        !          2703:       yyssp = yyss + size - 1;
        !          2704:       yyvsp = yyvs + size - 1;
        !          2705: #ifdef YYLSP_NEEDED
        !          2706:       yylsp = yyls + size - 1;
        !          2707: #endif
        !          2708: 
        !          2709: #if YYDEBUG != 0
        !          2710:       if (yydebug)
        !          2711:        fprintf(stderr, "Stack size increased to %d\n", yystacksize);
        !          2712: #endif
        !          2713: 
        !          2714:       if (yyssp >= yyss + yystacksize - 1)
        !          2715:        YYABORT;
        !          2716:     }
        !          2717: 
        !          2718: #if YYDEBUG != 0
        !          2719:   if (yydebug)
        !          2720:     fprintf(stderr, "Entering state %d\n", yystate);
        !          2721: #endif
        !          2722: 
        !          2723:  yybackup:
        !          2724: 
        !          2725: /* Do appropriate processing given the current state.  */
        !          2726: /* Read a lookahead token if we need one and don't already have one.  */
        !          2727: /* yyresume: */
        !          2728: 
        !          2729:   /* First try to decide what to do without reference to lookahead token.  */
        !          2730: 
        !          2731:   yyn = yypact[yystate];
        !          2732:   if (yyn == YYFLAG)
        !          2733:     goto yydefault;
        !          2734: 
        !          2735:   /* Not known => get a lookahead token if don't already have one.  */
        !          2736: 
        !          2737:   /* yychar is either YYEMPTY or YYEOF
        !          2738:      or a valid token in external form.  */
        !          2739: 
        !          2740:   if (yychar == YYEMPTY)
        !          2741:     {
        !          2742: #if YYDEBUG != 0
        !          2743:       if (yydebug)
        !          2744:        fprintf(stderr, "Reading a token: ");
        !          2745: #endif
        !          2746:       yychar = YYLEX;
        !          2747:     }
        !          2748: 
        !          2749:   /* Convert token to internal form (in yychar1) for indexing tables with */
        !          2750: 
        !          2751:   if (yychar <= 0)             /* This means end of input. */
        !          2752:     {
        !          2753:       yychar1 = 0;
        !          2754:       yychar = YYEOF;          /* Don't call YYLEX any more */
        !          2755: 
        !          2756: #if YYDEBUG != 0
        !          2757:       if (yydebug)
        !          2758:        fprintf(stderr, "Now at end of input.\n");
        !          2759: #endif
        !          2760:     }
        !          2761:   else
        !          2762:     {
        !          2763:       yychar1 = YYTRANSLATE(yychar);
        !          2764: 
        !          2765: #if YYDEBUG != 0
        !          2766:       if (yydebug)
        !          2767:        {
        !          2768:          fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
        !          2769:          /* Give the individual parser a way to print the precise meaning
        !          2770:             of a token, for further debugging info.  */
        !          2771: #ifdef YYPRINT
        !          2772:          YYPRINT (stderr, yychar, yylval);
        !          2773: #endif
        !          2774:          fprintf (stderr, ")\n");
        !          2775:        }
        !          2776: #endif
        !          2777:     }
        !          2778: 
        !          2779:   yyn += yychar1;
        !          2780:   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
        !          2781:     goto yydefault;
        !          2782: 
        !          2783:   yyn = yytable[yyn];
        !          2784: 
        !          2785:   /* yyn is what to do for this token type in this state.
        !          2786:      Negative => reduce, -yyn is rule number.
        !          2787:      Positive => shift, yyn is new state.
        !          2788:        New state is final state => don't bother to shift,
        !          2789:        just return success.
        !          2790:      0, or most negative number => error.  */
        !          2791: 
        !          2792:   if (yyn < 0)
        !          2793:     {
        !          2794:       if (yyn == YYFLAG)
        !          2795:        goto yyerrlab;
        !          2796:       yyn = -yyn;
        !          2797:       goto yyreduce;
        !          2798:     }
        !          2799:   else if (yyn == 0)
        !          2800:     goto yyerrlab;
        !          2801: 
        !          2802:   if (yyn == YYFINAL)
        !          2803:     YYACCEPT;
        !          2804: 
        !          2805:   /* Shift the lookahead token.  */
        !          2806: 
        !          2807: #if YYDEBUG != 0
        !          2808:   if (yydebug)
        !          2809:     fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
        !          2810: #endif
        !          2811: 
        !          2812:   /* Discard the token being shifted unless it is eof.  */
        !          2813:   if (yychar != YYEOF)
        !          2814:     yychar = YYEMPTY;
        !          2815: 
        !          2816:   *++yyvsp = yylval;
        !          2817: #ifdef YYLSP_NEEDED
        !          2818:   *++yylsp = yylloc;
        !          2819: #endif
        !          2820: 
        !          2821:   /* count tokens shifted since error; after three, turn off error status.  */
        !          2822:   if (yyerrstatus) yyerrstatus--;
        !          2823: 
        !          2824:   yystate = yyn;
        !          2825:   goto yynewstate;
        !          2826: 
        !          2827: /* Do the default action for the current state.  */
        !          2828: yydefault:
        !          2829: 
        !          2830:   yyn = yydefact[yystate];
        !          2831:   if (yyn == 0)
        !          2832:     goto yyerrlab;
        !          2833: 
        !          2834: /* Do a reduction.  yyn is the number of a rule to reduce with.  */
        !          2835: yyreduce:
        !          2836:   yylen = yyr2[yyn];
        !          2837:   yyval = yyvsp[1-yylen]; /* implement default value of the action */
        !          2838: 
        !          2839: #if YYDEBUG != 0
        !          2840:   if (yydebug)
        !          2841:     {
        !          2842:       int i;
        !          2843: 
        !          2844:       fprintf (stderr, "Reducing via rule %d (line %d), ",
        !          2845:               yyn, yyrline[yyn]);
        !          2846: 
        !          2847:       /* Print the symboles being reduced, and their result.  */
        !          2848:       for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
        !          2849:        fprintf (stderr, "%s ", yytname[yyrhs[i]]);
        !          2850:       fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
        !          2851:     }
        !          2852: #endif
        !          2853: 
        !          2854: 
        !          2855:   switch (yyn) {
        !          2856: 
        !          2857: case 2:
        !          2858: #line 293 "cp-parse.y"
        !          2859: { finish_file (); ;
        !          2860:     break;}
        !          2861: case 3:
        !          2862: #line 301 "cp-parse.y"
        !          2863: { yyval.ttype = NULL_TREE; ;
        !          2864:     break;}
        !          2865: case 4:
        !          2866: #line 302 "cp-parse.y"
        !          2867: {yyval.ttype = NULL_TREE; ;
        !          2868:     break;}
        !          2869: case 5:
        !          2870: #line 304 "cp-parse.y"
        !          2871: {yyval.ttype = NULL_TREE; ;
        !          2872:     break;}
        !          2873: case 6:
        !          2874: #line 308 "cp-parse.y"
        !          2875: { have_extern_spec = 1; ;
        !          2876:     break;}
        !          2877: case 7:
        !          2878: #line 311 "cp-parse.y"
        !          2879: { have_extern_spec = 0; ;
        !          2880:     break;}
        !          2881: case 8:
        !          2882: #line 316 "cp-parse.y"
        !          2883: { if (pending_inlines) do_pending_inlines (); ;
        !          2884:     break;}
        !          2885: case 9:
        !          2886: #line 318 "cp-parse.y"
        !          2887: { if (pending_inlines) do_pending_inlines (); ;
        !          2888:     break;}
        !          2889: case 10:
        !          2890: #line 320 "cp-parse.y"
        !          2891: { if (pending_inlines) do_pending_inlines (); ;
        !          2892:     break;}
        !          2893: case 12:
        !          2894: #line 323 "cp-parse.y"
        !          2895: { if (pedantic)
        !          2896:                    warning ("ANSI C forbids use of `asm' keyword");
        !          2897:                  if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
        !          2898:                  assemble_asm (yyvsp[-2].ttype); ;
        !          2899:     break;}
        !          2900: case 13:
        !          2901: #line 328 "cp-parse.y"
        !          2902: { pop_lang_context (); ;
        !          2903:     break;}
        !          2904: case 14:
        !          2905: #line 330 "cp-parse.y"
        !          2906: { pop_lang_context (); ;
        !          2907:     break;}
        !          2908: case 15:
        !          2909: #line 332 "cp-parse.y"
        !          2910: { if (pending_inlines) do_pending_inlines ();
        !          2911:                  pop_lang_context (); ;
        !          2912:     break;}
        !          2913: case 16:
        !          2914: #line 335 "cp-parse.y"
        !          2915: { if (pending_inlines) do_pending_inlines ();
        !          2916:                  pop_lang_context (); ;
        !          2917:     break;}
        !          2918: case 17:
        !          2919: #line 341 "cp-parse.y"
        !          2920: { push_lang_context (yyvsp[0].ttype); ;
        !          2921:     break;}
        !          2922: case 18:
        !          2923: #line 346 "cp-parse.y"
        !          2924: { begin_template_parm_list (); ;
        !          2925:     break;}
        !          2926: case 19:
        !          2927: #line 348 "cp-parse.y"
        !          2928: { yyval.ttype = end_template_parm_list (yyvsp[-1].ttype); ;
        !          2929:     break;}
        !          2930: case 20:
        !          2931: #line 353 "cp-parse.y"
        !          2932: { yyval.ttype = process_template_parm (0, yyvsp[0].ttype); ;
        !          2933:     break;}
        !          2934: case 21:
        !          2935: #line 355 "cp-parse.y"
        !          2936: { yyval.ttype = process_template_parm (yyvsp[-2].ttype, yyvsp[0].ttype); ;
        !          2937:     break;}
        !          2938: case 22:
        !          2939: #line 366 "cp-parse.y"
        !          2940: {
        !          2941:                  if ((enum tag_types) TREE_INT_CST_LOW (yyvsp[-1].ttype) != class_type)
        !          2942:                    error ("template type parameter must use keyword `class'");
        !          2943:                  yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE);
        !          2944:                ;
        !          2945:     break;}
        !          2946: case 23:
        !          2947: #line 372 "cp-parse.y"
        !          2948: {
        !          2949:                  if ((enum tag_types) TREE_INT_CST_LOW (yyvsp[-3].ttype) != class_type)
        !          2950:                    error ("template type parameter must use keyword `class'");
        !          2951:                  warning ("restricted template type parameters not yet implemented");
        !          2952:                  yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype);
        !          2953:                ;
        !          2954:     break;}
        !          2955: case 24:
        !          2956: #line 379 "cp-parse.y"
        !          2957: {
        !          2958:                  if ((enum tag_types) TREE_INT_CST_LOW (yyvsp[-2].ttype) != class_type)
        !          2959:                    error ("template type parameter must use keyword `class'");
        !          2960:                  warning ("restricted template type parameters not yet implemented");
        !          2961:                  yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype);
        !          2962:                ;
        !          2963:     break;}
        !          2964: case 27:
        !          2965: #line 392 "cp-parse.y"
        !          2966: { declare_overloaded (yyvsp[0].ttype); ;
        !          2967:     break;}
        !          2968: case 28:
        !          2969: #line 394 "cp-parse.y"
        !          2970: { declare_overloaded (yyvsp[0].ttype); ;
        !          2971:     break;}
        !          2972: case 29:
        !          2973: #line 401 "cp-parse.y"
        !          2974: { yychar = '{'; goto template1; ;
        !          2975:     break;}
        !          2976: case 31:
        !          2977: #line 404 "cp-parse.y"
        !          2978: { yychar = '{'; goto template1; ;
        !          2979:     break;}
        !          2980: case 33:
        !          2981: #line 407 "cp-parse.y"
        !          2982: { yychar = ':'; goto template1; ;
        !          2983:     break;}
        !          2984: case 35:
        !          2985: #line 410 "cp-parse.y"
        !          2986: {
        !          2987:                  yychar = ':';
        !          2988:                template1:
        !          2989:                  if (current_aggr == exception_type_node)
        !          2990:                    error ("template type must define an aggregate or union");
        !          2991:                  /* Maybe pedantic warning for union?
        !          2992:                     How about an enum? :-)  */
        !          2993:                  end_template_decl (yyvsp[-2].ttype, yyvsp[-1].ttype, current_aggr);
        !          2994:                  reinit_parse_for_template (yychar, yyvsp[-2].ttype, yyvsp[-1].ttype);
        !          2995:                  yychar = YYEMPTY;
        !          2996:                ;
        !          2997:     break;}
        !          2998: case 37:
        !          2999: #line 423 "cp-parse.y"
        !          3000: {
        !          3001:                  end_template_decl (yyvsp[-2].ttype, yyvsp[-1].ttype, current_aggr);
        !          3002:                  /* declare $2 as template name with $1 parm list */
        !          3003:                ;
        !          3004:     break;}
        !          3005: case 38:
        !          3006: #line 428 "cp-parse.y"
        !          3007: {
        !          3008:                  end_template_decl (yyvsp[-2].ttype, yyvsp[-1].ttype, current_aggr);
        !          3009:                  /* declare $2 as template name with $1 parm list */
        !          3010:                ;
        !          3011:     break;}
        !          3012: case 39:
        !          3013: #line 435 "cp-parse.y"
        !          3014: {
        !          3015:                  tree d;
        !          3016:                  int momentary;
        !          3017: /*               current_declspecs = $<ttype>0;*/
        !          3018:                  momentary = suspend_momentary ();
        !          3019:                  d = start_decl (yyvsp[-4].ttype, /*current_declspecs*/0, 0, yyvsp[-3].ttype);
        !          3020:                  finish_decl (d, NULL_TREE, yyvsp[-2].ttype);
        !          3021: 
        !          3022: #if 0 /* Need to sort out destructor templates, and not give warnings
        !          3023:          for them.  */
        !          3024:                  if (pedantic)
        !          3025:                    error ("ANSI C forbids data definition with no type or storage class");
        !          3026:                  else if (! flag_traditional && ! have_extern_spec)
        !          3027:                    warning ("data definition has no type or storage class");
        !          3028: #endif
        !          3029:                  end_template_decl (yyvsp[-5].ttype, d, 0);
        !          3030:                  if (yyvsp[0].itype != ';')
        !          3031:                    reinit_parse_for_template (yyvsp[0].itype, yyvsp[-5].ttype, d);
        !          3032:                  resume_momentary (momentary);
        !          3033:                ;
        !          3034:     break;}
        !          3035: case 40:
        !          3036: #line 458 "cp-parse.y"
        !          3037: {
        !          3038:                  tree d;
        !          3039:                  int momentary;
        !          3040: 
        !          3041:                  current_declspecs = yyvsp[-5].ttype;
        !          3042:                  momentary = suspend_momentary ();
        !          3043:                  d = start_decl (yyvsp[-4].ttype, current_declspecs, 0, yyvsp[-3].ttype);
        !          3044:                  finish_decl (d, NULL_TREE, yyvsp[-2].ttype);
        !          3045:                  end_exception_decls ();
        !          3046:                  end_template_decl (yyvsp[-6].ttype, d, 0);
        !          3047:                  if (yyvsp[0].itype != ';')
        !          3048:                    {
        !          3049:                      reinit_parse_for_template (yyvsp[0].itype, yyvsp[-6].ttype, d);
        !          3050:                      yychar = YYEMPTY;
        !          3051:                    }
        !          3052:                  note_list_got_semicolon (yyvsp[-5].ttype);
        !          3053:                  resume_momentary (momentary);
        !          3054:                ;
        !          3055:     break;}
        !          3056: case 41:
        !          3057: #line 477 "cp-parse.y"
        !          3058: {
        !          3059:                  tree d = start_decl (yyvsp[-1].ttype, yyvsp[-2].ttype, 0, NULL_TREE);
        !          3060:                  finish_decl (d, NULL_TREE, NULL_TREE);
        !          3061:                  end_template_decl (yyvsp[-3].ttype, d, 0);
        !          3062:                  if (yyvsp[0].itype != ';')
        !          3063:                    reinit_parse_for_template (yyvsp[0].itype, yyvsp[-3].ttype, d);
        !          3064:                ;
        !          3065:     break;}
        !          3066: case 42:
        !          3067: #line 486 "cp-parse.y"
        !          3068: { yyval.itype = '{'; ;
        !          3069:     break;}
        !          3070: case 43:
        !          3071: #line 487 "cp-parse.y"
        !          3072: { yyval.itype = ':'; ;
        !          3073:     break;}
        !          3074: case 44:
        !          3075: #line 488 "cp-parse.y"
        !          3076: { yyval.itype = ';'; ;
        !          3077:     break;}
        !          3078: case 45:
        !          3079: #line 489 "cp-parse.y"
        !          3080: { yyval.itype = '='; ;
        !          3081:     break;}
        !          3082: case 46:
        !          3083: #line 490 "cp-parse.y"
        !          3084: { yyval.itype = RETURN; ;
        !          3085:     break;}
        !          3086: case 47:
        !          3087: #line 495 "cp-parse.y"
        !          3088: { if (pedantic)
        !          3089:                    error ("ANSI C forbids data definition with no type or storage class");
        !          3090:                  else if (! flag_traditional && ! have_extern_spec)
        !          3091:                    warning ("data definition has no type or storage class"); ;
        !          3092:     break;}
        !          3093: case 48:
        !          3094: #line 500 "cp-parse.y"
        !          3095: {;
        !          3096:     break;}
        !          3097: case 49:
        !          3098: #line 503 "cp-parse.y"
        !          3099: { tree d;
        !          3100:                  d = start_decl (yyvsp[-1].ttype, yyval.ttype, 0, NULL_TREE);
        !          3101:                  finish_decl (d, NULL_TREE, NULL_TREE);
        !          3102:                ;
        !          3103:     break;}
        !          3104: case 50:
        !          3105: #line 508 "cp-parse.y"
        !          3106: {
        !          3107:                  end_exception_decls ();
        !          3108:                  note_list_got_semicolon (yyval.ttype);
        !          3109:                ;
        !          3110:     break;}
        !          3111: case 51:
        !          3112: #line 514 "cp-parse.y"
        !          3113: { tree d;
        !          3114:                  d = start_decl (yyvsp[-1].ttype, yyval.ttype, 0, NULL_TREE);
        !          3115:                  finish_decl (d, NULL_TREE, NULL_TREE);
        !          3116:                  end_exception_decls ();
        !          3117:                  note_list_got_semicolon (yyval.ttype);
        !          3118:                ;
        !          3119:     break;}
        !          3120: case 52:
        !          3121: #line 521 "cp-parse.y"
        !          3122: { error ("empty declaration"); ;
        !          3123:     break;}
        !          3124: case 53:
        !          3125: #line 523 "cp-parse.y"
        !          3126: {
        !          3127:            tree t = yyval.ttype;
        !          3128:            shadow_tag (t);
        !          3129:            if (TREE_CODE (t) == TREE_LIST
        !          3130:                && TREE_PURPOSE (t) == NULL_TREE)
        !          3131:              {
        !          3132:                t = TREE_VALUE (t);
        !          3133:                if (TREE_CODE (t) == RECORD_TYPE)
        !          3134:                  {
        !          3135:                    if (CLASSTYPE_USE_TEMPLATE (t) == 0)
        !          3136:                      CLASSTYPE_USE_TEMPLATE (t) = 2;
        !          3137:                    else if (CLASSTYPE_USE_TEMPLATE (t) == 1)
        !          3138:                      error ("override declaration for already-expanded template");
        !          3139:                  }
        !          3140:              }
        !          3141:            note_list_got_semicolon (yyval.ttype);
        !          3142:          ;
        !          3143:     break;}
        !          3144: case 57:
        !          3145: #line 547 "cp-parse.y"
        !          3146: {
        !          3147:                  finish_function (lineno, 1);
        !          3148:                  /* finish_function performs these three statements:
        !          3149: 
        !          3150:                     expand_end_bindings (getdecls (), 1, 0);
        !          3151:                     poplevel (1, 1, 0);
        !          3152: 
        !          3153:                     expand_end_bindings (0, 0, 0);
        !          3154:                     poplevel (0, 0, 1);
        !          3155:                     */
        !          3156:                  if (yyval.ttype) process_next_inline (yyval.ttype);
        !          3157:                ;
        !          3158:     break;}
        !          3159: case 58:
        !          3160: #line 560 "cp-parse.y"
        !          3161: {
        !          3162:                  finish_function (lineno, 1);
        !          3163:                  /* finish_function performs these three statements:
        !          3164: 
        !          3165:                     expand_end_bindings (getdecls (), 1, 0);
        !          3166:                     poplevel (1, 1, 0);
        !          3167: 
        !          3168:                     expand_end_bindings (0, 0, 0);
        !          3169:                     poplevel (0, 0, 1);
        !          3170:                     */
        !          3171:                  if (yyval.ttype) process_next_inline (yyval.ttype);
        !          3172:                ;
        !          3173:     break;}
        !          3174: case 59:
        !          3175: #line 573 "cp-parse.y"
        !          3176: { finish_function (lineno, 0);
        !          3177:                  if (yyval.ttype) process_next_inline (yyval.ttype); ;
        !          3178:     break;}
        !          3179: case 60:
        !          3180: #line 576 "cp-parse.y"
        !          3181: { finish_function (lineno, 0);
        !          3182:                  if (yyval.ttype) process_next_inline (yyval.ttype); ;
        !          3183:     break;}
        !          3184: case 61:
        !          3185: #line 579 "cp-parse.y"
        !          3186: { finish_function (lineno, 0);
        !          3187:                  if (yyval.ttype) process_next_inline (yyval.ttype); ;
        !          3188:     break;}
        !          3189: case 62:
        !          3190: #line 582 "cp-parse.y"
        !          3191: {;
        !          3192:     break;}
        !          3193: case 63:
        !          3194: #line 584 "cp-parse.y"
        !          3195: {;
        !          3196:     break;}
        !          3197: case 64:
        !          3198: #line 586 "cp-parse.y"
        !          3199: {;
        !          3200:     break;}
        !          3201: case 65:
        !          3202: #line 591 "cp-parse.y"
        !          3203: { if (! start_function (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype, 0))
        !          3204:                    YYERROR1;
        !          3205:                  reinit_parse_for_function ();
        !          3206:                  yyval.ttype = NULL_TREE; ;
        !          3207:     break;}
        !          3208: case 66:
        !          3209: #line 596 "cp-parse.y"
        !          3210: { if (! start_function (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype, 0))
        !          3211:                    YYERROR1;
        !          3212:                  reinit_parse_for_function ();
        !          3213:                  yyval.ttype = NULL_TREE; ;
        !          3214:     break;}
        !          3215: case 67:
        !          3216: #line 601 "cp-parse.y"
        !          3217: { if (! start_function (NULL_TREE, yyval.ttype, yyvsp[0].ttype, 0))
        !          3218:                    YYERROR1;
        !          3219:                  reinit_parse_for_function ();
        !          3220:                  yyval.ttype = NULL_TREE; ;
        !          3221:     break;}
        !          3222: case 68:
        !          3223: #line 606 "cp-parse.y"
        !          3224: { if (! start_function (NULL_TREE, build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype), yyvsp[0].ttype, 0))
        !          3225:                    YYERROR1;
        !          3226:                  reinit_parse_for_function ();
        !          3227:                  yyval.ttype = NULL_TREE; ;
        !          3228:     break;}
        !          3229: case 69:
        !          3230: #line 611 "cp-parse.y"
        !          3231: { if (! start_function (NULL_TREE, build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype), yyvsp[0].ttype, 0))
        !          3232:                    YYERROR1;
        !          3233:                  reinit_parse_for_function ();
        !          3234:                  yyval.ttype = NULL_TREE; ;
        !          3235:     break;}
        !          3236: case 70:
        !          3237: #line 616 "cp-parse.y"
        !          3238: { if (! start_function (NULL_TREE, build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[-1].ttype), yyvsp[0].ttype, 0))
        !          3239:                    YYERROR1;
        !          3240:                  reinit_parse_for_function ();
        !          3241:                  yyval.ttype = NULL_TREE; ;
        !          3242:     break;}
        !          3243: case 71:
        !          3244: #line 621 "cp-parse.y"
        !          3245: { if (! start_function (NULL_TREE, build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[-1].ttype), yyvsp[0].ttype, 0))
        !          3246:                    YYERROR1;
        !          3247:                  reinit_parse_for_function ();
        !          3248:                  yyval.ttype = NULL_TREE; ;
        !          3249:     break;}
        !          3250: case 72:
        !          3251: #line 626 "cp-parse.y"
        !          3252: { start_function (NULL_TREE, TREE_VALUE (yyval.ttype), NULL_TREE, 1);
        !          3253:                  reinit_parse_for_function (); ;
        !          3254:     break;}
        !          3255: case 73:
        !          3256: #line 633 "cp-parse.y"
        !          3257: {
        !          3258:                  tree decl = build_parse_node (CALL_EXPR, TREE_VALUE (yyval.ttype), yyvsp[-3].ttype, yyvsp[-1].ttype);
        !          3259:                  yyval.ttype = start_method (TREE_CHAIN (yyval.ttype), decl, yyvsp[0].ttype);
        !          3260:                  if (! yyval.ttype)
        !          3261:                    YYERROR1;
        !          3262:                  if (yychar == YYEMPTY)
        !          3263:                    yychar = YYLEX;
        !          3264:                  reinit_parse_for_method (yychar, yyval.ttype); ;
        !          3265:     break;}
        !          3266: case 74:
        !          3267: #line 642 "cp-parse.y"
        !          3268: {
        !          3269:                  tree decl = build_parse_node (CALL_EXPR, TREE_VALUE (yyval.ttype), empty_parms (), yyvsp[-1].ttype);
        !          3270:                  yyval.ttype = start_method (TREE_CHAIN (yyval.ttype), decl, yyvsp[0].ttype);
        !          3271:                  if (! yyval.ttype)
        !          3272:                    YYERROR1;
        !          3273:                  if (yychar == YYEMPTY)
        !          3274:                    yychar = YYLEX;
        !          3275:                  reinit_parse_for_method (yychar, yyval.ttype); ;
        !          3276:     break;}
        !          3277: case 75:
        !          3278: #line 651 "cp-parse.y"
        !          3279: { yyval.ttype = start_method (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
        !          3280:                  if (! yyval.ttype)
        !          3281:                    YYERROR1;
        !          3282:                  if (yychar == YYEMPTY)
        !          3283:                    yychar = YYLEX;
        !          3284:                  reinit_parse_for_method (yychar, yyval.ttype); ;
        !          3285:     break;}
        !          3286: case 76:
        !          3287: #line 658 "cp-parse.y"
        !          3288: {
        !          3289:                  tree decl = build_parse_node (CALL_EXPR, TREE_VALUE (yyval.ttype), yyvsp[-3].ttype, yyvsp[-1].ttype);
        !          3290:                  yyval.ttype = start_method (TREE_CHAIN (yyval.ttype), decl, yyvsp[0].ttype);
        !          3291:                  if (! yyval.ttype)
        !          3292:                    YYERROR1;
        !          3293:                  if (yychar == YYEMPTY)
        !          3294:                    yychar = YYLEX;
        !          3295:                  reinit_parse_for_method (yychar, yyval.ttype); ;
        !          3296:     break;}
        !          3297: case 77:
        !          3298: #line 667 "cp-parse.y"
        !          3299: {
        !          3300:                  tree decl = build_parse_node (CALL_EXPR, TREE_VALUE (yyval.ttype), empty_parms (), yyvsp[-1].ttype);
        !          3301:                  yyval.ttype = start_method (TREE_CHAIN (yyval.ttype), decl, yyvsp[0].ttype);
        !          3302:                  if (! yyval.ttype)
        !          3303:                    YYERROR1;
        !          3304:                  if (yychar == YYEMPTY)
        !          3305:                    yychar = YYLEX;
        !          3306:                  reinit_parse_for_method (yychar, yyval.ttype); ;
        !          3307:     break;}
        !          3308: case 78:
        !          3309: #line 676 "cp-parse.y"
        !          3310: { yyval.ttype = start_method (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
        !          3311:                  if (! yyval.ttype)
        !          3312:                    YYERROR1;
        !          3313:                  if (yychar == YYEMPTY)
        !          3314:                    yychar = YYLEX;
        !          3315:                  reinit_parse_for_method (yychar, yyval.ttype); ;
        !          3316:     break;}
        !          3317: case 79:
        !          3318: #line 683 "cp-parse.y"
        !          3319: { yyval.ttype = start_method (NULL_TREE, yyval.ttype, yyvsp[0].ttype);
        !          3320:                  if (! yyval.ttype)
        !          3321:                    YYERROR1;
        !          3322:                  if (yychar == YYEMPTY)
        !          3323:                    yychar = YYLEX;
        !          3324:                  reinit_parse_for_method (yychar, yyval.ttype); ;
        !          3325:     break;}
        !          3326: case 80:
        !          3327: #line 692 "cp-parse.y"
        !          3328: {
        !          3329:                  if (! current_function_parms_stored)
        !          3330:                    store_parm_decls ();
        !          3331:                  yyval.ttype = yyvsp[0].ttype;
        !          3332:                ;
        !          3333:     break;}
        !          3334: case 81:
        !          3335: #line 700 "cp-parse.y"
        !          3336: { store_return_init (yyval.ttype, NULL_TREE); ;
        !          3337:     break;}
        !          3338: case 82:
        !          3339: #line 702 "cp-parse.y"
        !          3340: { store_return_init (yyval.ttype, yyvsp[-1].code); ;
        !          3341:     break;}
        !          3342: case 83:
        !          3343: #line 704 "cp-parse.y"
        !          3344: { store_return_init (yyval.ttype, yyvsp[-1].ttype); ;
        !          3345:     break;}
        !          3346: case 84:
        !          3347: #line 706 "cp-parse.y"
        !          3348: { store_return_init (yyval.ttype, NULL_TREE); ;
        !          3349:     break;}
        !          3350: case 85:
        !          3351: #line 711 "cp-parse.y"
        !          3352: {
        !          3353:                  if (yyvsp[0].itype == 0)
        !          3354:                    error ("no base initializers given following ':'");
        !          3355:                  setup_vtbl_ptr ();
        !          3356:                ;
        !          3357:     break;}
        !          3358: case 86:
        !          3359: #line 720 "cp-parse.y"
        !          3360: {
        !          3361:                  if (! current_function_parms_stored)
        !          3362:                    store_parm_decls ();
        !          3363: 
        !          3364:                  /* Flag that we are processing base and member initializers.  */
        !          3365:                  current_vtable_decl = error_mark_node;
        !          3366: 
        !          3367:                  if (DECL_CONSTRUCTOR_P (current_function_decl))
        !          3368:                    {
        !          3369:                      /* Make a contour for the initializer list.  */
        !          3370:                      pushlevel (0);
        !          3371:                      clear_last_expr ();
        !          3372:                      expand_start_bindings (0);
        !          3373:                    }
        !          3374:                  else if (current_class_type == NULL_TREE)
        !          3375:                    error ("base initializers not allowed for non-member functions");
        !          3376:                  else if (! DECL_CONSTRUCTOR_P (current_function_decl))
        !          3377:                    error ("only constructors take base initializers");
        !          3378:                ;
        !          3379:     break;}
        !          3380: case 87:
        !          3381: #line 743 "cp-parse.y"
        !          3382: { yyval.itype = 0; ;
        !          3383:     break;}
        !          3384: case 88:
        !          3385: #line 745 "cp-parse.y"
        !          3386: { yyval.itype = 1; ;
        !          3387:     break;}
        !          3388: case 91:
        !          3389: #line 751 "cp-parse.y"
        !          3390: {
        !          3391:                  if (current_class_name && pedantic)
        !          3392:                    warning ("old style base class initialization; use `%s (...)'",
        !          3393:                             IDENTIFIER_POINTER (current_class_name));
        !          3394:                  expand_member_init (C_C_D, NULL_TREE, yyvsp[-1].ttype);
        !          3395:                ;
        !          3396:     break;}
        !          3397: case 92:
        !          3398: #line 758 "cp-parse.y"
        !          3399: {
        !          3400:                  if (current_class_name && pedantic)
        !          3401:                    warning ("old style base class initialization; use `%s (...)'",
        !          3402:                             IDENTIFIER_POINTER (current_class_name));
        !          3403:                  expand_member_init (C_C_D, NULL_TREE, void_type_node);
        !          3404:                ;
        !          3405:     break;}
        !          3406: case 93:
        !          3407: #line 765 "cp-parse.y"
        !          3408: {
        !          3409:                  expand_member_init (C_C_D, yyval.ttype, yyvsp[-1].ttype);
        !          3410:                ;
        !          3411:     break;}
        !          3412: case 94:
        !          3413: #line 769 "cp-parse.y"
        !          3414: { expand_member_init (C_C_D, yyval.ttype, void_type_node); ;
        !          3415:     break;}
        !          3416: case 95:
        !          3417: #line 771 "cp-parse.y"
        !          3418: {
        !          3419:                  do_member_init (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype);
        !          3420:                ;
        !          3421:     break;}
        !          3422: case 96:
        !          3423: #line 775 "cp-parse.y"
        !          3424: {
        !          3425:                  do_member_init (yyval.ttype, yyvsp[-1].ttype, void_type_node);
        !          3426:                ;
        !          3427:     break;}
        !          3428: case 106:
        !          3429: #line 799 "cp-parse.y"
        !          3430: { yyval.ttype = build_parse_node (BIT_NOT_EXPR,yyvsp[0].ttype);;
        !          3431:     break;}
        !          3432: case 108:
        !          3433: #line 802 "cp-parse.y"
        !          3434: { yyval.ttype = hack_wrapper (yyval.ttype, NULL_TREE, yyvsp[0].ttype); ;
        !          3435:     break;}
        !          3436: case 109:
        !          3437: #line 804 "cp-parse.y"
        !          3438: { yyval.ttype = hack_wrapper (yyval.ttype, NULL_TREE, yyvsp[0].ttype); ;
        !          3439:     break;}
        !          3440: case 110:
        !          3441: #line 806 "cp-parse.y"
        !          3442: { yyval.ttype = hack_wrapper (yyval.ttype, NULL_TREE, yyvsp[0].ttype); ;
        !          3443:     break;}
        !          3444: case 111:
        !          3445: #line 808 "cp-parse.y"
        !          3446: { yyval.ttype = hack_wrapper (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
        !          3447:     break;}
        !          3448: case 112:
        !          3449: #line 810 "cp-parse.y"
        !          3450: { yyval.ttype = hack_wrapper (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
        !          3451:     break;}
        !          3452: case 113:
        !          3453: #line 814 "cp-parse.y"
        !          3454: { yyval.itype = 0; ;
        !          3455:     break;}
        !          3456: case 114:
        !          3457: #line 816 "cp-parse.y"
        !          3458: { yyval.itype = 1; ;
        !          3459:     break;}
        !          3460: case 115:
        !          3461: #line 818 "cp-parse.y"
        !          3462: { yyval.itype = 2; ;
        !          3463:     break;}
        !          3464: case 116:
        !          3465: #line 823 "cp-parse.y"
        !          3466: {
        !          3467:                  if (yyvsp[0].ttype) 
        !          3468:                    yyval.ttype = yyvsp[0].ttype;
        !          3469:                  else if (yyval.ttype != error_mark_node)
        !          3470:                    yyval.ttype = IDENTIFIER_TYPE_VALUE (yyval.ttype);
        !          3471:                ;
        !          3472:     break;}
        !          3473: case 117:
        !          3474: #line 833 "cp-parse.y"
        !          3475: { yyval.ttype = lookup_template_class (yyval.ttype, yyvsp[-1].ttype); ;
        !          3476:     break;}
        !          3477: case 118:
        !          3478: #line 839 "cp-parse.y"
        !          3479: { yyungetc ('{', 1); yyval.ttype = 0; ;
        !          3480:     break;}
        !          3481: case 119:
        !          3482: #line 840 "cp-parse.y"
        !          3483: { yyungetc (':', 1); yyval.ttype = 0; ;
        !          3484:     break;}
        !          3485: case 120:
        !          3486: #line 842 "cp-parse.y"
        !          3487: { yyval.ttype = instantiate_class_template (yyvsp[0].ttype, 1); ;
        !          3488:     break;}
        !          3489: case 121:
        !          3490: #line 847 "cp-parse.y"
        !          3491: { yyval.ttype = instantiate_class_template (yyvsp[0].ttype, 1); ;
        !          3492:     break;}
        !          3493: case 122:
        !          3494: #line 852 "cp-parse.y"
        !          3495: { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
        !          3496:     break;}
        !          3497: case 123:
        !          3498: #line 854 "cp-parse.y"
        !          3499: { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
        !          3500:     break;}
        !          3501: case 124:
        !          3502: #line 859 "cp-parse.y"
        !          3503: { yyval.ttype = groktypename (yyval.ttype); ;
        !          3504:     break;}
        !          3505: case 126:
        !          3506: #line 865 "cp-parse.y"
        !          3507: {
        !          3508:                  tree t, decl, id, tmpl;
        !          3509: 
        !          3510:                  id = TREE_VALUE (yyvsp[-1].ttype);
        !          3511:                  tmpl = TREE_PURPOSE (IDENTIFIER_TEMPLATE (id));
        !          3512:                  t = xref_tag (DECL_TEMPLATE_INFO (tmpl)->aggr, id, yyvsp[0].ttype);
        !          3513:                  set_current_level_tags_transparency (1);
        !          3514:                  assert (TREE_CODE (t) == RECORD_TYPE);
        !          3515:                  yyval.ttype = t;
        !          3516: 
        !          3517:                  /* Now, put a copy of the decl in global scope, to avoid
        !          3518:                     recursive expansion.  */
        !          3519:                  decl = IDENTIFIER_LOCAL_VALUE (id);
        !          3520:                  if (!decl)
        !          3521:                    decl = IDENTIFIER_CLASS_VALUE (id);
        !          3522:                  /* Now, put a copy of the decl in global scope, to avoid
        !          3523:                     recursive expansion.  */
        !          3524:                   if (decl)
        !          3525:                     {
        !          3526:                      /* Need to copy it to clear the chain pointer,
        !          3527:                         and need to get it into permanent storage.  */
        !          3528:                      extern struct obstack permanent_obstack;
        !          3529:                       assert (TREE_CODE (decl) == TYPE_DECL);
        !          3530:                      push_obstacks (&permanent_obstack, &permanent_obstack);
        !          3531:                       decl = copy_node (decl);
        !          3532:                      if (DECL_LANG_SPECIFIC (decl))
        !          3533:                        copy_lang_decl (decl);
        !          3534:                      pop_obstacks ();
        !          3535:                      pushdecl_top_level (decl);
        !          3536:                    }
        !          3537:                ;
        !          3538:     break;}
        !          3539: case 127:
        !          3540: #line 897 "cp-parse.y"
        !          3541: {
        !          3542:                  extern void end_template_instantiation ();
        !          3543:                  tree id, members;
        !          3544: 
        !          3545:                  yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-1].ttype, 0, 0);
        !          3546: 
        !          3547:                  pop_obstacks ();
        !          3548:                  end_template_instantiation (yyvsp[-5].ttype, yyvsp[-3].ttype);
        !          3549: 
        !          3550:                   /* Now go after the methods & class data.  */
        !          3551:                   instantiate_member_templates (yyvsp[-5].ttype);
        !          3552:                ;
        !          3553:     break;}
        !          3554: case 128:
        !          3555: #line 913 "cp-parse.y"
        !          3556: { yyval.ttype = NULL_TREE; ;
        !          3557:     break;}
        !          3558: case 129:
        !          3559: #line 915 "cp-parse.y"
        !          3560: { yyval.ttype = yyvsp[0].ttype; ;
        !          3561:     break;}
        !          3562: case 130:
        !          3563: #line 920 "cp-parse.y"
        !          3564: { yyval.ttype = NULL_TREE; /* never used from here... */;
        !          3565:     break;}
        !          3566: case 131:
        !          3567: #line 922 "cp-parse.y"
        !          3568: { yyval.ttype = yyvsp[-1].ttype; /*???*/ ;
        !          3569:     break;}
        !          3570: case 132:
        !          3571: #line 926 "cp-parse.y"
        !          3572: { yyval.code = NEGATE_EXPR; ;
        !          3573:     break;}
        !          3574: case 133:
        !          3575: #line 928 "cp-parse.y"
        !          3576: { yyval.code = CONVERT_EXPR; ;
        !          3577:     break;}
        !          3578: case 134:
        !          3579: #line 930 "cp-parse.y"
        !          3580: { yyval.code = PREINCREMENT_EXPR; ;
        !          3581:     break;}
        !          3582: case 135:
        !          3583: #line 932 "cp-parse.y"
        !          3584: { yyval.code = PREDECREMENT_EXPR; ;
        !          3585:     break;}
        !          3586: case 136:
        !          3587: #line 934 "cp-parse.y"
        !          3588: { yyval.code = TRUTH_NOT_EXPR; ;
        !          3589:     break;}
        !          3590: case 137:
        !          3591: #line 938 "cp-parse.y"
        !          3592: { yyval.ttype = build_x_compound_expr (yyval.ttype); ;
        !          3593:     break;}
        !          3594: case 139:
        !          3595: #line 945 "cp-parse.y"
        !          3596: { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
        !          3597:     break;}
        !          3598: case 140:
        !          3599: #line 947 "cp-parse.y"
        !          3600: { chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
        !          3601:     break;}
        !          3602: case 141:
        !          3603: #line 949 "cp-parse.y"
        !          3604: { chainon (yyval.ttype, build_tree_list (NULL_TREE, error_mark_node)); ;
        !          3605:     break;}
        !          3606: case 142:
        !          3607: #line 954 "cp-parse.y"
        !          3608: {
        !          3609:                  if (TREE_CODE (yyval.ttype) == TYPE_EXPR)
        !          3610:                    yyval.ttype = build_component_type_expr (C_C_D, yyval.ttype, NULL_TREE, 1);
        !          3611:                ;
        !          3612:     break;}
        !          3613: case 143:
        !          3614: #line 959 "cp-parse.y"
        !          3615: { yyval.ttype = build_x_indirect_ref (yyvsp[0].ttype, "unary *"); ;
        !          3616:     break;}
        !          3617: case 144:
        !          3618: #line 961 "cp-parse.y"
        !          3619: { yyval.ttype = build_x_unary_op (ADDR_EXPR, yyvsp[0].ttype); ;
        !          3620:     break;}
        !          3621: case 145:
        !          3622: #line 963 "cp-parse.y"
        !          3623: { yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, yyvsp[0].ttype); ;
        !          3624:     break;}
        !          3625: case 146:
        !          3626: #line 965 "cp-parse.y"
        !          3627: { yyval.ttype = build_x_unary_op (yyval.ttype, yyvsp[0].ttype);
        !          3628:                  if (yyvsp[-1].code == NEGATE_EXPR && TREE_CODE (yyvsp[0].ttype) == INTEGER_CST)
        !          3629:                    TREE_NEGATED_INT (yyval.ttype) = 1;
        !          3630:                ;
        !          3631:     break;}
        !          3632: case 147:
        !          3633: #line 970 "cp-parse.y"
        !          3634: { if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF
        !          3635:                      && DECL_BIT_FIELD (TREE_OPERAND (yyvsp[0].ttype, 1)))
        !          3636:                    error ("sizeof applied to a bit-field");
        !          3637:                  /* ANSI says arrays and functions are converted inside comma.
        !          3638:                     But we can't really convert them in build_compound_expr
        !          3639:                     because that would break commas in lvalues.
        !          3640:                     So do the conversion here if operand was a comma.  */
        !          3641:                  if (TREE_CODE (yyvsp[0].ttype) == COMPOUND_EXPR
        !          3642:                      && (TREE_CODE (TREE_TYPE (yyvsp[0].ttype)) == ARRAY_TYPE
        !          3643:                          || TREE_CODE (TREE_TYPE (yyvsp[0].ttype)) == FUNCTION_TYPE))
        !          3644:                    yyvsp[0].ttype = default_conversion (yyvsp[0].ttype);
        !          3645:                  yyval.ttype = c_sizeof (TREE_TYPE (yyvsp[0].ttype)); ;
        !          3646:     break;}
        !          3647: case 148:
        !          3648: #line 983 "cp-parse.y"
        !          3649: { yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ttype)); ;
        !          3650:     break;}
        !          3651: case 149:
        !          3652: #line 985 "cp-parse.y"
        !          3653: { if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF
        !          3654:                      && DECL_BIT_FIELD (TREE_OPERAND (yyvsp[0].ttype, 1)))
        !          3655:                    error ("`__alignof' applied to a bit-field");
        !          3656:                  if (TREE_CODE (yyvsp[0].ttype) == INDIRECT_REF)
        !          3657:                    {
        !          3658:                      tree t = TREE_OPERAND (yyvsp[0].ttype, 0);
        !          3659:                      tree best = t;
        !          3660:                      int bestalign = TYPE_ALIGN (TREE_TYPE (TREE_TYPE (t)));
        !          3661:                      while (TREE_CODE (t) == NOP_EXPR
        !          3662:                             && TREE_CODE (TREE_TYPE (TREE_OPERAND (t, 0))) == POINTER_TYPE)
        !          3663:                        {
        !          3664:                          int thisalign;
        !          3665:                          t = TREE_OPERAND (t, 0);
        !          3666:                          thisalign = TYPE_ALIGN (TREE_TYPE (TREE_TYPE (t)));
        !          3667:                          if (thisalign > bestalign)
        !          3668:                            best = t, bestalign = thisalign;
        !          3669:                        }
        !          3670:                      yyval.ttype = c_alignof (TREE_TYPE (TREE_TYPE (best)));
        !          3671:                    }
        !          3672:                  else
        !          3673:                    {
        !          3674:                      /* ANSI says arrays and fns are converted inside comma.
        !          3675:                         But we can't convert them in build_compound_expr
        !          3676:                         because that would break commas in lvalues.
        !          3677:                         So do the conversion here if operand was a comma.  */
        !          3678:                      if (TREE_CODE (yyvsp[0].ttype) == COMPOUND_EXPR
        !          3679:                          && (TREE_CODE (TREE_TYPE (yyvsp[0].ttype)) == ARRAY_TYPE
        !          3680:                              || TREE_CODE (TREE_TYPE (yyvsp[0].ttype)) == FUNCTION_TYPE))
        !          3681:                        yyvsp[0].ttype = default_conversion (yyvsp[0].ttype);
        !          3682:                      yyval.ttype = c_alignof (TREE_TYPE (yyvsp[0].ttype));
        !          3683:                    }
        !          3684:                ;
        !          3685:     break;}
        !          3686: case 150:
        !          3687: #line 1018 "cp-parse.y"
        !          3688: { yyval.ttype = c_alignof (groktypename (yyvsp[-1].ttype)); ;
        !          3689:     break;}
        !          3690: case 151:
        !          3691: #line 1021 "cp-parse.y"
        !          3692: { yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE, yyval.ttype); ;
        !          3693:     break;}
        !          3694: case 152:
        !          3695: #line 1023 "cp-parse.y"
        !          3696: { yyval.ttype = build_new (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyval.ttype); ;
        !          3697:     break;}
        !          3698: case 153:
        !          3699: #line 1025 "cp-parse.y"
        !          3700: { yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE, yyval.ttype); ;
        !          3701:     break;}
        !          3702: case 154:
        !          3703: #line 1027 "cp-parse.y"
        !          3704: { yyval.ttype = build_new (yyvsp[-3].ttype, yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
        !          3705:     break;}
        !          3706: case 155:
        !          3707: #line 1033 "cp-parse.y"
        !          3708: {
        !          3709:                  tree absdcl, typename;
        !          3710:                  static int gave_warning = 0;
        !          3711: 
        !          3712:                illegal_new_array:
        !          3713:                  absdcl = build_parse_node (ARRAY_REF, yyvsp[-4].ttype, yyvsp[-1].ttype);
        !          3714:                  typename = build_decl_list (yyvsp[-5].ttype, absdcl);
        !          3715:                  warning ("array dimensions with parenthesized type is disallowed in standard C++");
        !          3716:                  if (!gave_warning)
        !          3717:                    {
        !          3718:                      gave_warning++;
        !          3719:                      warning ("  (per grammar in Ellis & Stroustrup [1990], chapter 17)");
        !          3720:                      warning ("  try rewriting, perhaps with a typedef");
        !          3721:                    }
        !          3722:                  yyval.ttype = build_new (yyvsp[-7].ttype, typename, NULL_TREE, yyval.ttype);
        !          3723:                ;
        !          3724:     break;}
        !          3725: case 156:
        !          3726: #line 1050 "cp-parse.y"
        !          3727: { goto illegal_new_array; ;
        !          3728:     break;}
        !          3729: case 157:
        !          3730: #line 1053 "cp-parse.y"
        !          3731: {
        !          3732:                  yyval.ttype = build_new (yyvsp[-4].ttype, build_decl_list (yyvsp[-2].ttype, yyvsp[-1].ttype), NULL_TREE, yyval.ttype);
        !          3733:                ;
        !          3734:     break;}
        !          3735: case 158:
        !          3736: #line 1057 "cp-parse.y"
        !          3737: { yyval.ttype = build_new (yyvsp[-4].ttype, build_decl_list (yyvsp[-2].ttype, yyvsp[-1].ttype), NULL_TREE, yyval.ttype); ;
        !          3738:     break;}
        !          3739: case 159:
        !          3740: #line 1060 "cp-parse.y"
        !          3741: { yyungetc (':', 1);
        !          3742:                  yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE, yyval.ttype); ;
        !          3743:     break;}
        !          3744: case 160:
        !          3745: #line 1064 "cp-parse.y"
        !          3746: { tree expr = stabilize_reference (convert_from_reference (yyvsp[0].ttype));
        !          3747:                  tree type = TREE_TYPE (expr);
        !          3748: 
        !          3749:                  if (integer_zerop (expr))
        !          3750:                    yyval.ttype = build1 (NOP_EXPR, void_type_node, expr);
        !          3751:                  else if (TREE_CODE (type) != POINTER_TYPE)
        !          3752:                    {
        !          3753:                      error ("non-pointer type to `delete'");
        !          3754:                      yyval.ttype = error_mark_node;
        !          3755:                      break;
        !          3756:                    }
        !          3757:                  yyval.ttype = build_delete (type, expr, integer_three_node,
        !          3758:                                     LOOKUP_NORMAL|LOOKUP_HAS_IN_CHARGE,
        !          3759:                                     TYPE_HAS_DESTRUCTOR (TREE_TYPE (type)) ? yyval.ttype : 0, 1);
        !          3760:                ;
        !          3761:     break;}
        !          3762: case 161:
        !          3763: #line 1080 "cp-parse.y"
        !          3764: {
        !          3765:                  tree exp = stabilize_reference (convert_from_reference (yyvsp[0].ttype));
        !          3766:                  tree elt_size = c_sizeof (TREE_TYPE (exp));
        !          3767: 
        !          3768:                  if (yychar == YYEMPTY)
        !          3769:                    yychar = YYLEX;
        !          3770: 
        !          3771:                  yyval.ttype = build_vec_delete (exp, NULL_TREE, elt_size, NULL_TREE,
        !          3772:                                         integer_one_node, integer_two_node);
        !          3773:                ;
        !          3774:     break;}
        !          3775: case 162:
        !          3776: #line 1091 "cp-parse.y"
        !          3777: {
        !          3778:                  tree maxindex = build_binary_op (MINUS_EXPR, yyvsp[-2].ttype,
        !          3779:                                                   integer_one_node);
        !          3780:                  tree exp = stabilize_reference (convert_from_reference (yyvsp[0].ttype));
        !          3781:                  tree elt_size = c_sizeof (TREE_TYPE (exp));
        !          3782: 
        !          3783:                  if (yychar == YYEMPTY)
        !          3784:                    yychar = YYLEX;
        !          3785: 
        !          3786:                  warning ("use of array size with vector delete is anachronistic");
        !          3787:                  yyval.ttype = build_vec_delete (exp, maxindex, elt_size, NULL_TREE,
        !          3788:                                         integer_one_node, integer_two_node);
        !          3789:                ;
        !          3790:     break;}
        !          3791: case 164:
        !          3792: #line 1109 "cp-parse.y"
        !          3793: { tree type = groktypename (yyvsp[-2].ttype);
        !          3794:                  yyval.ttype = build_c_cast (type, yyvsp[0].ttype); ;
        !          3795:     break;}
        !          3796: case 165:
        !          3797: #line 1112 "cp-parse.y"
        !          3798: { tree type = groktypename (yyvsp[-5].ttype);
        !          3799:                  tree init = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype));
        !          3800:                  if (pedantic)
        !          3801:                    warning ("ANSI C forbids constructor-expressions");
        !          3802:                  /* Indicate that this was a GNU C constructor expression.  */
        !          3803:                  TREE_HAS_CONSTRUCTOR (init) = 1;
        !          3804:                  yyval.ttype = digest_init (type, init, 0);
        !          3805:                  if (TREE_CODE (type) == ARRAY_TYPE && TYPE_SIZE (type) == 0)
        !          3806:                    {
        !          3807:                      int failure = complete_array_type (type, yyval.ttype, 1);
        !          3808:                      if (failure)
        !          3809:                        abort ();
        !          3810:                    }
        !          3811:                ;
        !          3812:     break;}
        !          3813: case 166:
        !          3814: #line 1127 "cp-parse.y"
        !          3815: { yyval.ttype = build_headof (yyvsp[-1].ttype); ;
        !          3816:     break;}
        !          3817: case 167:
        !          3818: #line 1129 "cp-parse.y"
        !          3819: { yyval.ttype = build_classof (yyvsp[-1].ttype); ;
        !          3820:     break;}
        !          3821: case 168:
        !          3822: #line 1131 "cp-parse.y"
        !          3823: { if (is_aggr_typedef (yyvsp[-1].ttype, 1))
        !          3824:                    {
        !          3825:                      tree type = IDENTIFIER_TYPE_VALUE (yyvsp[-1].ttype);
        !          3826:                      yyval.ttype = CLASSTYPE_DOSSIER (type);
        !          3827:                    }
        !          3828:                  else
        !          3829:                    yyval.ttype = error_mark_node;
        !          3830:                ;
        !          3831:     break;}
        !          3832: case 170:
        !          3833: #line 1144 "cp-parse.y"
        !          3834: { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
        !          3835:     break;}
        !          3836: case 171:
        !          3837: #line 1146 "cp-parse.y"
        !          3838: { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
        !          3839:     break;}
        !          3840: case 172:
        !          3841: #line 1148 "cp-parse.y"
        !          3842: { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
        !          3843:     break;}
        !          3844: case 173:
        !          3845: #line 1150 "cp-parse.y"
        !          3846: { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
        !          3847:     break;}
        !          3848: case 174:
        !          3849: #line 1152 "cp-parse.y"
        !          3850: { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
        !          3851:     break;}
        !          3852: case 175:
        !          3853: #line 1154 "cp-parse.y"
        !          3854: { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
        !          3855:     break;}
        !          3856: case 176:
        !          3857: #line 1156 "cp-parse.y"
        !          3858: { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
        !          3859:     break;}
        !          3860: case 177:
        !          3861: #line 1158 "cp-parse.y"
        !          3862: { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
        !          3863:     break;}
        !          3864: case 178:
        !          3865: #line 1160 "cp-parse.y"
        !          3866: { yyval.ttype = build_x_binary_op (LT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
        !          3867:     break;}
        !          3868: case 179:
        !          3869: #line 1162 "cp-parse.y"
        !          3870: { yyval.ttype = build_x_binary_op (GT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
        !          3871:     break;}
        !          3872: case 180:
        !          3873: #line 1164 "cp-parse.y"
        !          3874: { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
        !          3875:     break;}
        !          3876: case 181:
        !          3877: #line 1166 "cp-parse.y"
        !          3878: { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
        !          3879:     break;}
        !          3880: case 182:
        !          3881: #line 1168 "cp-parse.y"
        !          3882: { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
        !          3883:     break;}
        !          3884: case 183:
        !          3885: #line 1170 "cp-parse.y"
        !          3886: { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
        !          3887:     break;}
        !          3888: case 184:
        !          3889: #line 1172 "cp-parse.y"
        !          3890: { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
        !          3891:     break;}
        !          3892: case 185:
        !          3893: #line 1174 "cp-parse.y"
        !          3894: { yyval.ttype = build_x_binary_op (TRUTH_ANDIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
        !          3895:     break;}
        !          3896: case 186:
        !          3897: #line 1176 "cp-parse.y"
        !          3898: { yyval.ttype = build_x_binary_op (TRUTH_ORIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
        !          3899:     break;}
        !          3900: case 187:
        !          3901: #line 1178 "cp-parse.y"
        !          3902: { yyval.ttype = build_x_conditional_expr (yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
        !          3903:     break;}
        !          3904: case 188:
        !          3905: #line 1180 "cp-parse.y"
        !          3906: { yyval.ttype = build_modify_expr (yyval.ttype, NOP_EXPR, yyvsp[0].ttype); ;
        !          3907:     break;}
        !          3908: case 189:
        !          3909: #line 1182 "cp-parse.y"
        !          3910: { register tree rval;
        !          3911:                  if (rval = build_opfncall (MODIFY_EXPR, LOOKUP_NORMAL, yyval.ttype, yyvsp[0].ttype, yyvsp[-1].code))
        !          3912:                    yyval.ttype = rval;
        !          3913:                  else
        !          3914:                    yyval.ttype = build_modify_expr (yyval.ttype, yyvsp[-1].code, yyvsp[0].ttype); ;
        !          3915:     break;}
        !          3916: case 190:
        !          3917: #line 1188 "cp-parse.y"
        !          3918: { yyval.ttype = build_m_component_ref (yyval.ttype, build_indirect_ref (yyvsp[0].ttype, 0)); ;
        !          3919:     break;}
        !          3920: case 191:
        !          3921: #line 1191 "cp-parse.y"
        !          3922: { yyval.ttype = build_x_binary_op (MEMBER_REF, yyval.ttype, yyvsp[0].ttype); ;
        !          3923:     break;}
        !          3924: case 192:
        !          3925: #line 1207 "cp-parse.y"
        !          3926: { yyval.ttype = do_identifier (yyval.ttype); ;
        !          3927:     break;}
        !          3928: case 193:
        !          3929: #line 1209 "cp-parse.y"
        !          3930: {
        !          3931:                  tree op = yyval.ttype;
        !          3932:                  if (TREE_CODE (op) != IDENTIFIER_NODE)
        !          3933:                    yyval.ttype = op;
        !          3934:                  else
        !          3935:                    {
        !          3936:                      yyval.ttype = lookup_name (op);
        !          3937:                      if (yyval.ttype == NULL_TREE)
        !          3938:                        {
        !          3939:                          error ("operator %s not defined", operator_name_string (op));
        !          3940:                          yyval.ttype = error_mark_node;
        !          3941:                        }
        !          3942:                    }
        !          3943:                ;
        !          3944:     break;}
        !          3945: case 195:
        !          3946: #line 1225 "cp-parse.y"
        !          3947: { yyval.ttype = combine_strings (yyval.ttype); ;
        !          3948:     break;}
        !          3949: case 196:
        !          3950: #line 1227 "cp-parse.y"
        !          3951: { yyval.ttype = yyvsp[-1].ttype; ;
        !          3952:     break;}
        !          3953: case 197:
        !          3954: #line 1229 "cp-parse.y"
        !          3955: { yyval.ttype = error_mark_node; ;
        !          3956:     break;}
        !          3957: case 198:
        !          3958: #line 1231 "cp-parse.y"
        !          3959: { if (current_function_decl == 0)
        !          3960:                    {
        !          3961:                      error ("braced-group within expression allowed only inside a function");
        !          3962:                      YYERROR;
        !          3963:                    }
        !          3964:                  keep_next_level ();
        !          3965:                  yyval.ttype = expand_start_stmt_expr (); ;
        !          3966:     break;}
        !          3967: case 199:
        !          3968: #line 1239 "cp-parse.y"
        !          3969: { tree rtl_exp;
        !          3970:                  if (pedantic)
        !          3971:                    warning ("ANSI C forbids braced-groups within expressions");
        !          3972:                  rtl_exp = expand_end_stmt_expr (yyvsp[-2].ttype);
        !          3973:                  /* The statements have side effects, so the group does.  */
        !          3974:                  TREE_SIDE_EFFECTS (rtl_exp) = 1;
        !          3975: 
        !          3976:                  /* Make a BIND_EXPR for the BLOCK already made.  */
        !          3977:                  yyval.ttype = build (BIND_EXPR, TREE_TYPE (rtl_exp),
        !          3978:                              NULL_TREE, rtl_exp, yyvsp[-1].ttype);
        !          3979:                ;
        !          3980:     break;}
        !          3981: case 200:
        !          3982: #line 1251 "cp-parse.y"
        !          3983: { /* [eichin:19911016.1902EST] */
        !          3984:                   extern struct pending_template* pending_templates;
        !          3985:                   yyval.ttype = build_x_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype, current_class_decl); 
        !          3986:                   /* here we instantiate_class_template as needed... */
        !          3987:                   if (pending_templates) do_pending_templates ();
        !          3988:                 ;
        !          3989:     break;}
        !          3990: case 201:
        !          3991: #line 1256 "cp-parse.y"
        !          3992: {
        !          3993:                   if (TREE_CODE (yyvsp[-1].ttype) == CALL_EXPR
        !          3994:                       && TREE_TYPE (yyvsp[-1].ttype) != void_type_node)
        !          3995:                    yyval.ttype = require_complete_type (yyvsp[-1].ttype);
        !          3996:                   else
        !          3997:                     yyval.ttype = yyvsp[-1].ttype;
        !          3998:                 ;
        !          3999:     break;}
        !          4000: case 202:
        !          4001: #line 1264 "cp-parse.y"
        !          4002: { 
        !          4003:                 yyval.ttype = build_x_function_call (yyval.ttype, NULL_TREE, current_class_decl);
        !          4004:                 if (TREE_CODE (yyval.ttype) == CALL_EXPR
        !          4005:                     && TREE_TYPE (yyval.ttype) != void_type_node)
        !          4006:                   yyval.ttype = require_complete_type (yyval.ttype);
        !          4007:                 ;
        !          4008:     break;}
        !          4009: case 203:
        !          4010: #line 1271 "cp-parse.y"
        !          4011: {
        !          4012:                do_array:
        !          4013:                  {
        !          4014:                    tree array_expr = yyval.ttype;
        !          4015:                    tree index_exp = yyvsp[-1].ttype;
        !          4016:                    tree type = TREE_TYPE (array_expr);
        !          4017:                    if (type == error_mark_node || index_exp == error_mark_node)
        !          4018:                      yyval.ttype = error_mark_node;
        !          4019:                    else if (type == NULL_TREE)
        !          4020:                      {
        !          4021:                        /* Something has gone very wrong.  Assume we
        !          4022:                           are mistakenly reducing an expression
        !          4023:                           instead of a declaration.  */
        !          4024:                        error ("parser may be lost: is there a '{' missing somewhere?");
        !          4025:                        yyval.ttype = NULL_TREE;
        !          4026:                      }
        !          4027:                    else
        !          4028:                      {
        !          4029:                        if (TREE_CODE (type) == OFFSET_TYPE)
        !          4030:                          type = TREE_TYPE (type);
        !          4031:                        if (TREE_CODE (type) == REFERENCE_TYPE)
        !          4032:                          type = TREE_TYPE (type);
        !          4033: 
        !          4034:                        if (TYPE_LANG_SPECIFIC (type)
        !          4035:                            && TYPE_OVERLOADS_ARRAY_REF (type))
        !          4036:                          yyval.ttype = build_opfncall (ARRAY_REF, LOOKUP_NORMAL, array_expr, index_exp);
        !          4037:                        else if (TREE_CODE (type) == POINTER_TYPE
        !          4038:                                 || TREE_CODE (type) == ARRAY_TYPE)
        !          4039:                          yyval.ttype = build_array_ref (array_expr, index_exp);
        !          4040:                        else
        !          4041:                          {
        !          4042:                            type = TREE_TYPE (index_exp);
        !          4043:                            if (TREE_CODE (type) == OFFSET_TYPE)
        !          4044:                              type = TREE_TYPE (type);
        !          4045:                            if (TREE_CODE (type) == REFERENCE_TYPE)
        !          4046:                              type = TREE_TYPE (type);
        !          4047:                            
        !          4048:                            if (TYPE_LANG_SPECIFIC (type)
        !          4049:                                && TYPE_OVERLOADS_ARRAY_REF (type))
        !          4050:                              error ("array expression backwards");
        !          4051:                            else if (TREE_CODE (type) == POINTER_TYPE
        !          4052:                                     || TREE_CODE (type) == ARRAY_TYPE)
        !          4053:                              yyval.ttype = build_array_ref (index_exp, array_expr);
        !          4054:                            else
        !          4055:                              error("[] applied to non-pointer type");
        !          4056:                          }
        !          4057:                      }
        !          4058:                  }
        !          4059:                ;
        !          4060:     break;}
        !          4061: case 204:
        !          4062: #line 1321 "cp-parse.y"
        !          4063: { yyval.ttype = build_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); ;
        !          4064:     break;}
        !          4065: case 205:
        !          4066: #line 1323 "cp-parse.y"
        !          4067: {
        !          4068:                  tree basetype = yyvsp[-1].ttype;
        !          4069:                  if (is_aggr_typedef (basetype, 1))
        !          4070:                    {
        !          4071:                      basetype = IDENTIFIER_TYPE_VALUE (basetype);
        !          4072: 
        !          4073:                      if (yyval.ttype == error_mark_node)
        !          4074:                        ;
        !          4075:                      else if (binfo_or_else (basetype, TREE_TYPE (yyval.ttype)))
        !          4076:                        yyval.ttype = build_component_ref (build_scoped_ref (yyval.ttype, yyvsp[-1].ttype), yyvsp[0].ttype, NULL_TREE, 1);
        !          4077:                      else
        !          4078:                        yyval.ttype = error_mark_node;
        !          4079:                    }
        !          4080:                  else yyval.ttype = error_mark_node;
        !          4081:                ;
        !          4082:     break;}
        !          4083: case 206:
        !          4084: #line 1339 "cp-parse.y"
        !          4085: { yyval.ttype = build_x_unary_op (POSTINCREMENT_EXPR, yyval.ttype); ;
        !          4086:     break;}
        !          4087: case 207:
        !          4088: #line 1341 "cp-parse.y"
        !          4089: { yyval.ttype = build_x_unary_op (POSTDECREMENT_EXPR, yyval.ttype); ;
        !          4090:     break;}
        !          4091: case 208:
        !          4092: #line 1345 "cp-parse.y"
        !          4093: { if (current_class_decl)
        !          4094:                    {
        !          4095: #ifdef WARNING_ABOUT_CCD
        !          4096:                      TREE_USED (current_class_decl) = 1;
        !          4097: #endif
        !          4098:                      yyval.ttype = current_class_decl;
        !          4099:                    }
        !          4100:                  else if (current_function_decl
        !          4101:                           && DECL_STATIC_FUNCTION_P (current_function_decl))
        !          4102:                    {
        !          4103:                      error ("`this' is unavailable for static member functions");
        !          4104:                      yyval.ttype = error_mark_node;
        !          4105:                    }
        !          4106:                  else
        !          4107:                    {
        !          4108:                      if (current_function_decl)
        !          4109:                        error ("invalid use of `this' in non-member function");
        !          4110:                      else
        !          4111:                        error ("invalid use of `this' at top level");
        !          4112:                      yyval.ttype = error_mark_node;
        !          4113:                    }
        !          4114:                ;
        !          4115:     break;}
        !          4116: case 209:
        !          4117: #line 1368 "cp-parse.y"
        !          4118: {
        !          4119:                  tree type;
        !          4120:                  tree id = yyval.ttype;
        !          4121: 
        !          4122:                  /* This is a C cast in C++'s `functional' notation.  */
        !          4123:                  if (yyvsp[-1].ttype == error_mark_node)
        !          4124:                    {
        !          4125:                      yyval.ttype = error_mark_node;
        !          4126:                      break;
        !          4127:                    }
        !          4128: #if 0
        !          4129:                  if (yyvsp[-1].ttype == NULL_TREE)
        !          4130:                    {
        !          4131:                      error ("cannot cast null list to type `%s'",
        !          4132:                             IDENTIFIER_POINTER (TYPE_NAME (id)));
        !          4133:                      yyval.ttype = error_mark_node;
        !          4134:                      break;
        !          4135:                    }
        !          4136: #endif
        !          4137:                  if (type == error_mark_node)
        !          4138:                    yyval.ttype = error_mark_node;
        !          4139:                  else
        !          4140:                    {
        !          4141:                      if (id == ridpointers[(int) RID_CONST])
        !          4142:                        type = build_type_variant (integer_type_node, 1, 0);
        !          4143:                      else if (id == ridpointers[(int) RID_VOLATILE])
        !          4144:                        type = build_type_variant (integer_type_node, 0, 1);
        !          4145:                      else if (id == ridpointers[(int) RID_FRIEND])
        !          4146:                        {
        !          4147:                          error ("cannot cast expression to `friend' type");
        !          4148:                          yyval.ttype = error_mark_node;
        !          4149:                          break;
        !          4150:                        }
        !          4151:                      else abort ();
        !          4152:                      yyval.ttype = build_c_cast (type, build_compound_expr (yyvsp[-1].ttype));
        !          4153:                    }
        !          4154:                ;
        !          4155:     break;}
        !          4156: case 210:
        !          4157: #line 1406 "cp-parse.y"
        !          4158: { yyval.ttype = build_functional_cast (yyval.ttype, yyvsp[-1].ttype); ;
        !          4159:     break;}
        !          4160: case 211:
        !          4161: #line 1408 "cp-parse.y"
        !          4162: { yyval.ttype = build_functional_cast (yyval.ttype, NULL_TREE); ;
        !          4163:     break;}
        !          4164: case 212:
        !          4165: #line 1410 "cp-parse.y"
        !          4166: {
        !          4167:                do_scoped_id:
        !          4168:                  yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
        !          4169:                  if (yychar == YYEMPTY)
        !          4170:                    yychar = YYLEX;
        !          4171:                  if (! yyval.ttype)
        !          4172:                    {
        !          4173:                      if (yychar == '(' || yychar == LEFT_RIGHT)
        !          4174:                        yyval.ttype = implicitly_declare (yyvsp[0].ttype);
        !          4175:                      else
        !          4176:                        {
        !          4177:                          if (IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) != error_mark_node)
        !          4178:                            error ("undeclared variable `%s' (first use here)",
        !          4179:                                   IDENTIFIER_POINTER (yyvsp[0].ttype));
        !          4180:                          yyval.ttype = error_mark_node;
        !          4181:                          /* Prevent repeated error messages.  */
        !          4182:                          IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) = error_mark_node;
        !          4183:                        }
        !          4184:                    }
        !          4185:                  else
        !          4186:                    {
        !          4187:                      assemble_external (yyval.ttype);
        !          4188:                      TREE_USED (yyval.ttype) = 1;
        !          4189:                    }
        !          4190:                  if (TREE_CODE (yyval.ttype) == CONST_DECL)
        !          4191:                    yyval.ttype = DECL_INITIAL (yyval.ttype);
        !          4192:                    /* XXX CHS - should we set TREE_USED of the constant? */
        !          4193:                ;
        !          4194:     break;}
        !          4195: case 213:
        !          4196: #line 1439 "cp-parse.y"
        !          4197: {
        !          4198:                  if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
        !          4199:                    goto do_scoped_id;
        !          4200:                do_scoped_operator:
        !          4201:                  yyval.ttype = yyvsp[0].ttype;
        !          4202:                ;
        !          4203:     break;}
        !          4204: case 214:
        !          4205: #line 1446 "cp-parse.y"
        !          4206: { yyval.ttype = build_offset_ref (yyval.ttype, yyvsp[0].ttype); ;
        !          4207:     break;}
        !          4208: case 215:
        !          4209: #line 1448 "cp-parse.y"
        !          4210: { yyval.ttype = build_member_call (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
        !          4211:     break;}
        !          4212: case 216:
        !          4213: #line 1450 "cp-parse.y"
        !          4214: { yyval.ttype = build_member_call (yyval.ttype, yyvsp[-1].ttype, NULL_TREE); ;
        !          4215:     break;}
        !          4216: case 217:
        !          4217: #line 1452 "cp-parse.y"
        !          4218: { yyval.ttype = build_method_call (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE,
        !          4219:                                          (LOOKUP_NORMAL|LOOKUP_AGGR)); ;
        !          4220:     break;}
        !          4221: case 218:
        !          4222: #line 1455 "cp-parse.y"
        !          4223: { yyval.ttype = build_method_call (yyval.ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE,
        !          4224:                                          (LOOKUP_NORMAL|LOOKUP_AGGR)); ;
        !          4225:     break;}
        !          4226: case 219:
        !          4227: #line 1458 "cp-parse.y"
        !          4228: { yyval.ttype = build_scoped_method_call (yyval.ttype, yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
        !          4229:     break;}
        !          4230: case 220:
        !          4231: #line 1460 "cp-parse.y"
        !          4232: { yyval.ttype = build_scoped_method_call (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE); ;
        !          4233:     break;}
        !          4234: case 221:
        !          4235: #line 1502 "cp-parse.y"
        !          4236: { yyval.ttype = NULL_TREE; ;
        !          4237:     break;}
        !          4238: case 222:
        !          4239: #line 1504 "cp-parse.y"
        !          4240: { yyval.ttype = yyvsp[-1].ttype; ;
        !          4241:     break;}
        !          4242: case 223:
        !          4243: #line 1506 "cp-parse.y"
        !          4244: { yyval.ttype = void_type_node; ;
        !          4245:     break;}
        !          4246: case 224:
        !          4247: #line 1508 "cp-parse.y"
        !          4248: { yyval.ttype = combine_strings (yyvsp[-1].ttype); ;
        !          4249:     break;}
        !          4250: case 225:
        !          4251: #line 1513 "cp-parse.y"
        !          4252: { yyval.itype = 0; ;
        !          4253:     break;}
        !          4254: case 226:
        !          4255: #line 1515 "cp-parse.y"
        !          4256: { yyval.itype = 1; ;
        !          4257:     break;}
        !          4258: case 227:
        !          4259: #line 1519 "cp-parse.y"
        !          4260: { yyval.ttype = NULL_TREE; ;
        !          4261:     break;}
        !          4262: case 228:
        !          4263: #line 1521 "cp-parse.y"
        !          4264: { if (yyvsp[0].ttype)
        !          4265:                    error ("extra `::' before `delete' ignored");
        !          4266:                  yyval.ttype = error_mark_node;
        !          4267:                ;
        !          4268:     break;}
        !          4269: case 230:
        !          4270: #line 1531 "cp-parse.y"
        !          4271: { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
        !          4272:     break;}
        !          4273: case 231:
        !          4274: #line 1536 "cp-parse.y"
        !          4275: {
        !          4276:                  if (! current_function_parms_stored)
        !          4277:                    store_parm_decls ();
        !          4278:                  setup_vtbl_ptr ();
        !          4279:                ;
        !          4280:     break;}
        !          4281: case 232:
        !          4282: #line 1544 "cp-parse.y"
        !          4283: {
        !          4284:                  if (yyval.ttype == error_mark_node)
        !          4285:                    ;
        !          4286:                  else
        !          4287:                    {
        !          4288:                      tree type = TREE_TYPE (yyval.ttype);
        !          4289: 
        !          4290:                      if (! PROMOTES_TO_AGGR_TYPE (type, REFERENCE_TYPE))
        !          4291:                        {
        !          4292:                          error ("object in '.' expression is not of aggregate type");
        !          4293:                          yyval.ttype = error_mark_node;
        !          4294:                        }
        !          4295:                    }
        !          4296:                ;
        !          4297:     break;}
        !          4298: case 233:
        !          4299: #line 1559 "cp-parse.y"
        !          4300: {
        !          4301:                  yyval.ttype = build_x_arrow (yyval.ttype, 0);
        !          4302:                ;
        !          4303:     break;}
        !          4304: case 235:
        !          4305: #line 1569 "cp-parse.y"
        !          4306: {
        !          4307:                  resume_momentary (yyvsp[-1].itype);
        !          4308:                  note_list_got_semicolon (yyval.ttype);
        !          4309:                ;
        !          4310:     break;}
        !          4311: case 236:
        !          4312: #line 1575 "cp-parse.y"
        !          4313: { tree d;
        !          4314:                  int yes = suspend_momentary ();
        !          4315:                  d = start_decl (yyvsp[-1].ttype, yyval.ttype, 0, NULL_TREE);
        !          4316:                  finish_decl (d, NULL_TREE, NULL_TREE);
        !          4317:                  resume_momentary (yes);
        !          4318:                  note_list_got_semicolon (yyval.ttype);
        !          4319:                ;
        !          4320:     break;}
        !          4321: case 237:
        !          4322: #line 1583 "cp-parse.y"
        !          4323: { resume_momentary (yyvsp[-1].itype); ;
        !          4324:     break;}
        !          4325: case 238:
        !          4326: #line 1586 "cp-parse.y"
        !          4327: { tree d;
        !          4328:                  int yes = suspend_momentary ();
        !          4329:                  d = start_decl (yyvsp[-1].ttype, yyval.ttype, 0, NULL_TREE);
        !          4330:                  finish_decl (d, NULL_TREE, NULL_TREE);
        !          4331:                  resume_momentary (yes);
        !          4332:                ;
        !          4333:     break;}
        !          4334: case 239:
        !          4335: #line 1593 "cp-parse.y"
        !          4336: {
        !          4337:                  shadow_tag (yyval.ttype);
        !          4338:                  note_list_got_semicolon (yyval.ttype);
        !          4339:                ;
        !          4340:     break;}
        !          4341: case 240:
        !          4342: #line 1598 "cp-parse.y"
        !          4343: { warning ("empty declaration"); ;
        !          4344:     break;}
        !          4345: case 243:
        !          4346: #line 1608 "cp-parse.y"
        !          4347: { yyval.ttype = yyvsp[0].ttype; ;
        !          4348:     break;}
        !          4349: case 244:
        !          4350: #line 1610 "cp-parse.y"
        !          4351: { yyval.ttype = yyvsp[0].ttype; ;
        !          4352:     break;}
        !          4353: case 245:
        !          4354: #line 1619 "cp-parse.y"
        !          4355: { yyval.ttype = list_hash_lookup_or_cons (yyval.ttype); ;
        !          4356:     break;}
        !          4357: case 246:
        !          4358: #line 1621 "cp-parse.y"
        !          4359: { yyval.ttype = hash_tree_chain (yyvsp[0].ttype, yyval.ttype); ;
        !          4360:     break;}
        !          4361: case 247:
        !          4362: #line 1623 "cp-parse.y"
        !          4363: { yyval.ttype = hash_tree_chain (yyval.ttype, yyvsp[0].ttype); ;
        !          4364:     break;}
        !          4365: case 248:
        !          4366: #line 1625 "cp-parse.y"
        !          4367: { yyval.ttype = hash_tree_chain (yyvsp[-1].ttype, hash_chainon (yyvsp[0].ttype, yyval.ttype)); ;
        !          4368:     break;}
        !          4369: case 249:
        !          4370: #line 1631 "cp-parse.y"
        !          4371: { yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
        !          4372:     break;}
        !          4373: case 250:
        !          4374: #line 1633 "cp-parse.y"
        !          4375: { yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
        !          4376:     break;}
        !          4377: case 251:
        !          4378: #line 1635 "cp-parse.y"
        !          4379: { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
        !          4380:     break;}
        !          4381: case 252:
        !          4382: #line 1637 "cp-parse.y"
        !          4383: { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
        !          4384:     break;}
        !          4385: case 253:
        !          4386: #line 1646 "cp-parse.y"
        !          4387: { yyval.ttype = IDENTIFIER_AS_LIST (yyval.ttype); ;
        !          4388:     break;}
        !          4389: case 254:
        !          4390: #line 1648 "cp-parse.y"
        !          4391: { yyval.ttype = IDENTIFIER_AS_LIST (yyval.ttype); ;
        !          4392:     break;}
        !          4393: case 255:
        !          4394: #line 1650 "cp-parse.y"
        !          4395: { yyval.ttype = hash_tree_chain (yyvsp[0].ttype, yyval.ttype); ;
        !          4396:     break;}
        !          4397: case 256:
        !          4398: #line 1652 "cp-parse.y"
        !          4399: { yyval.ttype = hash_tree_chain (yyvsp[0].ttype, yyval.ttype); ;
        !          4400:     break;}
        !          4401: case 257:
        !          4402: #line 1664 "cp-parse.y"
        !          4403: { yyval.ttype = get_decl_list (yyval.ttype); ;
        !          4404:     break;}
        !          4405: case 258:
        !          4406: #line 1666 "cp-parse.y"
        !          4407: { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
        !          4408:     break;}
        !          4409: case 259:
        !          4410: #line 1668 "cp-parse.y"
        !          4411: { yyval.ttype = decl_tree_cons (NULL_TREE, yyval.ttype, yyvsp[0].ttype); ;
        !          4412:     break;}
        !          4413: case 260:
        !          4414: #line 1670 "cp-parse.y"
        !          4415: { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[-1].ttype, hash_chainon (yyvsp[0].ttype, yyval.ttype)); ;
        !          4416:     break;}
        !          4417: case 261:
        !          4418: #line 1675 "cp-parse.y"
        !          4419: { yyval.ttype = get_decl_list (yyval.ttype); ;
        !          4420:     break;}
        !          4421: case 262:
        !          4422: #line 1677 "cp-parse.y"
        !          4423: { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
        !          4424:     break;}
        !          4425: case 267:
        !          4426: #line 1689 "cp-parse.y"
        !          4427: { yyval.ttype = TREE_TYPE (yyvsp[-1].ttype);
        !          4428:                  if (pedantic)
        !          4429:                    warning ("ANSI C forbids `typeof'"); ;
        !          4430:     break;}
        !          4431: case 268:
        !          4432: #line 1693 "cp-parse.y"
        !          4433: { yyval.ttype = groktypename (yyvsp[-1].ttype);
        !          4434:                  if (pedantic)
        !          4435:                    warning ("ANSI C forbids `typeof'"); ;
        !          4436:     break;}
        !          4437: case 277:
        !          4438: #line 1718 "cp-parse.y"
        !          4439: { yyval.ttype = NULL_TREE; ;
        !          4440:     break;}
        !          4441: case 278:
        !          4442: #line 1720 "cp-parse.y"
        !          4443: { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype);
        !          4444:                  yyval.ttype = yyvsp[-1].ttype;
        !          4445:                  if (pedantic)
        !          4446:                    warning ("ANSI C forbids use of `asm' keyword");
        !          4447:                ;
        !          4448:     break;}
        !          4449: case 279:
        !          4450: #line 1729 "cp-parse.y"
        !          4451: { current_declspecs = yyvsp[-5].ttype;
        !          4452:                  yyvsp[0].itype = suspend_momentary ();
        !          4453:                  yyval.ttype = start_decl (yyvsp[-4].ttype, current_declspecs, 1, yyvsp[-3].ttype); ;
        !          4454:     break;}
        !          4455: case 280:
        !          4456: #line 1734 "cp-parse.y"
        !          4457: { finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype);
        !          4458:                  yyval.itype = yyvsp[-2].itype; ;
        !          4459:     break;}
        !          4460: case 281:
        !          4461: #line 1737 "cp-parse.y"
        !          4462: { tree d;
        !          4463:                  current_declspecs = yyvsp[-4].ttype;
        !          4464:                  yyval.itype = suspend_momentary ();
        !          4465:                  d = start_decl (yyvsp[-3].ttype, current_declspecs, 0, yyvsp[-2].ttype);
        !          4466:                  finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ;
        !          4467:     break;}
        !          4468: case 282:
        !          4469: #line 1746 "cp-parse.y"
        !          4470: { yyval.ttype = start_decl (yyvsp[-4].ttype, current_declspecs, 1, yyvsp[-3].ttype); ;
        !          4471:     break;}
        !          4472: case 283:
        !          4473: #line 1749 "cp-parse.y"
        !          4474: { finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
        !          4475:     break;}
        !          4476: case 284:
        !          4477: #line 1751 "cp-parse.y"
        !          4478: { tree d = start_decl (yyval.itype, current_declspecs, 0, yyvsp[-2].ttype);
        !          4479:                  finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ;
        !          4480:     break;}
        !          4481: case 285:
        !          4482: #line 1757 "cp-parse.y"
        !          4483: { current_declspecs = yyvsp[-5].ttype;
        !          4484:                  yyvsp[0].itype = suspend_momentary ();
        !          4485:                  yyval.ttype = start_decl (yyvsp[-4].ttype, current_declspecs, 1, yyvsp[-3].ttype); ;
        !          4486:     break;}
        !          4487: case 286:
        !          4488: #line 1762 "cp-parse.y"
        !          4489: { finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype);
        !          4490:                  yyval.itype = yyvsp[-2].itype; ;
        !          4491:     break;}
        !          4492: case 287:
        !          4493: #line 1765 "cp-parse.y"
        !          4494: { tree d;
        !          4495:                  current_declspecs = yyvsp[-4].ttype;
        !          4496:                  yyval.itype = suspend_momentary ();
        !          4497:                  d = start_decl (yyvsp[-3].ttype, current_declspecs, 0, yyvsp[-2].ttype);
        !          4498:                  finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ;
        !          4499:     break;}
        !          4500: case 288:
        !          4501: #line 1776 "cp-parse.y"
        !          4502: { yyval.ttype = NULL_TREE; ;
        !          4503:     break;}
        !          4504: case 289:
        !          4505: #line 1778 "cp-parse.y"
        !          4506: { yyval.ttype = yyvsp[-2].ttype; ;
        !          4507:     break;}
        !          4508: case 292:
        !          4509: #line 1788 "cp-parse.y"
        !          4510: { warning ("`%s' attribute directive ignored",
        !          4511:                   IDENTIFIER_POINTER (yyval.ttype)); ;
        !          4512:     break;}
        !          4513: case 293:
        !          4514: #line 1791 "cp-parse.y"
        !          4515: { /* if not "aligned(1)", then issue warning */
        !          4516:          if (strcmp (IDENTIFIER_POINTER (yyval.ttype), "aligned") != 0
        !          4517:              || TREE_CODE (yyvsp[-1].ttype) != INTEGER_CST
        !          4518:              || TREE_INT_CST_LOW (yyvsp[-1].ttype) != 1)
        !          4519:            warning ("`%s' attribute directive ignored",
        !          4520:                     IDENTIFIER_POINTER (yyval.ttype)); ;
        !          4521:     break;}
        !          4522: case 294:
        !          4523: #line 1798 "cp-parse.y"
        !          4524: { warning ("`%s' attribute directive ignored",
        !          4525:                   IDENTIFIER_POINTER (yyval.ttype)); ;
        !          4526:     break;}
        !          4527: case 295:
        !          4528: #line 1804 "cp-parse.y"
        !          4529: { ;
        !          4530:     break;}
        !          4531: case 296:
        !          4532: #line 1806 "cp-parse.y"
        !          4533: { ;
        !          4534:     break;}
        !          4535: case 298:
        !          4536: #line 1812 "cp-parse.y"
        !          4537: { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, NULL_TREE);
        !          4538:                  TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1;
        !          4539:                  if (pedantic)
        !          4540:                    warning ("ANSI C forbids empty initializer braces"); ;
        !          4541:     break;}
        !          4542: case 299:
        !          4543: #line 1817 "cp-parse.y"
        !          4544: { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-1].ttype));
        !          4545:                  TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
        !          4546:     break;}
        !          4547: case 300:
        !          4548: #line 1820 "cp-parse.y"
        !          4549: { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype));
        !          4550:                  TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
        !          4551:     break;}
        !          4552: case 301:
        !          4553: #line 1823 "cp-parse.y"
        !          4554: { yyval.ttype = NULL_TREE; ;
        !          4555:     break;}
        !          4556: case 302:
        !          4557: #line 1830 "cp-parse.y"
        !          4558: { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
        !          4559:     break;}
        !          4560: case 303:
        !          4561: #line 1832 "cp-parse.y"
        !          4562: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
        !          4563:     break;}
        !          4564: case 304:
        !          4565: #line 1835 "cp-parse.y"
        !          4566: { yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype); ;
        !          4567:     break;}
        !          4568: case 305:
        !          4569: #line 1837 "cp-parse.y"
        !          4570: { yyval.ttype = tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
        !          4571:     break;}
        !          4572: case 306:
        !          4573: #line 1839 "cp-parse.y"
        !          4574: { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[0].ttype); ;
        !          4575:     break;}
        !          4576: case 307:
        !          4577: #line 1841 "cp-parse.y"
        !          4578: { yyval.ttype = tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
        !          4579:     break;}
        !          4580: case 308:
        !          4581: #line 1846 "cp-parse.y"
        !          4582: { yyvsp[0].itype = suspend_momentary ();
        !          4583:                  yyval.ttype = start_enum (yyvsp[-1].ttype); ;
        !          4584:     break;}
        !          4585: case 309:
        !          4586: #line 1849 "cp-parse.y"
        !          4587: { yyval.ttype = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype);
        !          4588:                  resume_momentary (yyvsp[-4].itype);
        !          4589:                  check_for_missing_semicolon (yyvsp[-3].ttype); ;
        !          4590:     break;}
        !          4591: case 310:
        !          4592: #line 1853 "cp-parse.y"
        !          4593: { yyval.ttype = finish_enum (start_enum (yyvsp[-2].ttype), NULL_TREE);
        !          4594:                  check_for_missing_semicolon (yyval.ttype); ;
        !          4595:     break;}
        !          4596: case 311:
        !          4597: #line 1856 "cp-parse.y"
        !          4598: { yyvsp[0].itype = suspend_momentary ();
        !          4599:                  yyval.ttype = start_enum (make_anon_name ()); ;
        !          4600:     break;}
        !          4601: case 312:
        !          4602: #line 1859 "cp-parse.y"
        !          4603: { yyval.ttype = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype);
        !          4604:                  resume_momentary (yyvsp[-5].itype);
        !          4605:                  check_for_missing_semicolon (yyvsp[-3].ttype); ;
        !          4606:     break;}
        !          4607: case 313:
        !          4608: #line 1863 "cp-parse.y"
        !          4609: { yyval.ttype = finish_enum (start_enum (make_anon_name()), NULL_TREE);
        !          4610:                  check_for_missing_semicolon (yyval.ttype); ;
        !          4611:     break;}
        !          4612: case 314:
        !          4613: #line 1866 "cp-parse.y"
        !          4614: { yyval.ttype = xref_tag (enum_type_node, yyvsp[0].ttype, NULL_TREE); ;
        !          4615:     break;}
        !          4616: case 315:
        !          4617: #line 1870 "cp-parse.y"
        !          4618: {
        !          4619:                  int semi;
        !          4620: #if 0
        !          4621:                  /* Need to rework class nesting in the
        !          4622:                     presence of nested classes, etc.  */
        !          4623:                  shadow_tag (CLASSTYPE_AS_LIST (yyval.ttype)); */
        !          4624: #endif
        !          4625:                  semi = yychar == ';';
        !          4626:                  if (semi)
        !          4627:                    note_got_semicolon (yyval.ttype);
        !          4628:                  if (TREE_CODE (yyval.ttype) == ENUMERAL_TYPE)
        !          4629:                    /* $$ = $1 from default rule.  */;
        !          4630:                  else if (CLASSTYPE_DECLARED_EXCEPTION (yyval.ttype))
        !          4631:                    {
        !          4632:                      if (! semi)
        !          4633:                        yyval.ttype = finish_exception (yyval.ttype, yyvsp[-1].ttype);
        !          4634:                      else
        !          4635:                        warning ("empty exception declaration\n");
        !          4636:                    }
        !          4637:                  else
        !          4638:                    yyval.ttype = finish_struct (yyval.ttype, yyvsp[-1].ttype, semi, semi);
        !          4639: 
        !          4640:                  pop_obstacks ();
        !          4641:                  if (! semi)
        !          4642:                    check_for_missing_semicolon (yyval.ttype); ;
        !          4643:     break;}
        !          4644: case 316:
        !          4645: #line 1896 "cp-parse.y"
        !          4646: {
        !          4647: #if 0
        !          4648:   /* It's no longer clear what the following error is supposed to
        !          4649:      accomplish.  If it turns out to be needed, add a comment why.  */
        !          4650:                  if (TYPE_BINFO_BASETYPES (yyval.ttype) && !TYPE_SIZE (yyval.ttype))
        !          4651:                    {
        !          4652:                      error ("incomplete definition of type `%s'",
        !          4653:                             TYPE_NAME_STRING (yyval.ttype));
        !          4654:                      yyval.ttype = error_mark_node;
        !          4655:                    }
        !          4656: #endif
        !          4657:                ;
        !          4658:     break;}
        !          4659: case 320:
        !          4660: #line 1918 "cp-parse.y"
        !          4661: { if (pedantic) warning ("comma at end of enumerator list"); ;
        !          4662:     break;}
        !          4663: case 322:
        !          4664: #line 1923 "cp-parse.y"
        !          4665: { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
        !          4666:     break;}
        !          4667: case 323:
        !          4668: #line 1925 "cp-parse.y"
        !          4669: { yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype); ;
        !          4670:     break;}
        !          4671: case 324:
        !          4672: #line 1927 "cp-parse.y"
        !          4673: { error ("storage class specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype));
        !          4674:                ;
        !          4675:     break;}
        !          4676: case 325:
        !          4677: #line 1930 "cp-parse.y"
        !          4678: { error ("type specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype));
        !          4679:                ;
        !          4680:     break;}
        !          4681: case 326:
        !          4682: #line 1933 "cp-parse.y"
        !          4683: { error ("type qualifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype));
        !          4684:                ;
        !          4685:     break;}
        !          4686: case 327:
        !          4687: #line 1936 "cp-parse.y"
        !          4688: { error ("no body nor ';' separates two class, struct or union declarations");
        !          4689:                ;
        !          4690:     break;}
        !          4691: case 328:
        !          4692: #line 1942 "cp-parse.y"
        !          4693: { aggr1: current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
        !          4694:     break;}
        !          4695: case 329:
        !          4696: #line 1944 "cp-parse.y"
        !          4697: { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
        !          4698:     break;}
        !          4699: case 330:
        !          4700: #line 1946 "cp-parse.y"
        !          4701: { yyungetc (':', 1); goto aggr1; ;
        !          4702:     break;}
        !          4703: case 331:
        !          4704: #line 1948 "cp-parse.y"
        !          4705: { yyungetc ('{', 1);
        !          4706:                aggr2:
        !          4707:                  current_aggr = yyval.ttype;
        !          4708:                  yyval.ttype = yyvsp[-1].ttype; ;
        !          4709:     break;}
        !          4710: case 332:
        !          4711: #line 1953 "cp-parse.y"
        !          4712: { yyungetc (':', 1); goto aggr2; ;
        !          4713:     break;}
        !          4714: case 333:
        !          4715: #line 1958 "cp-parse.y"
        !          4716: { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
        !          4717:     break;}
        !          4718: case 334:
        !          4719: #line 1963 "cp-parse.y"
        !          4720: {
        !          4721:                  yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, NULL_TREE);
        !          4722:                ;
        !          4723:     break;}
        !          4724: case 335:
        !          4725: #line 1967 "cp-parse.y"
        !          4726: {
        !          4727:                  if (yyvsp[0].ttype)
        !          4728:                    yyval.ttype = xref_tag (current_aggr, yyvsp[-2].ttype, yyvsp[0].ttype);
        !          4729:                  else
        !          4730:                    yyval.ttype = yyvsp[-1].ttype;
        !          4731:                ;
        !          4732:     break;}
        !          4733: case 336:
        !          4734: #line 1975 "cp-parse.y"
        !          4735: {
        !          4736:                  yyval.ttype = xref_defn_tag (current_aggr, yyvsp[0].ttype, NULL_TREE);
        !          4737:                ;
        !          4738:     break;}
        !          4739: case 337:
        !          4740: #line 1979 "cp-parse.y"
        !          4741: {
        !          4742:                  if (yyvsp[0].ttype)
        !          4743:                    yyval.ttype = xref_defn_tag (current_aggr, yyvsp[-2].ttype, yyvsp[0].ttype);
        !          4744:                  else
        !          4745:                    yyval.ttype = yyvsp[-1].ttype;
        !          4746:                ;
        !          4747:     break;}
        !          4748: case 338:
        !          4749: #line 1988 "cp-parse.y"
        !          4750: { yyval.ttype = xref_tag (yyval.ttype, make_anon_name (), NULL_TREE);
        !          4751:                  yyungetc ('{', 1); ;
        !          4752:     break;}
        !          4753: case 341:
        !          4754: #line 1996 "cp-parse.y"
        !          4755: { yyval.ttype = NULL_TREE; ;
        !          4756:     break;}
        !          4757: case 342:
        !          4758: #line 1998 "cp-parse.y"
        !          4759: { yyungetc(':', 1); yyval.ttype = NULL_TREE; ;
        !          4760:     break;}
        !          4761: case 343:
        !          4762: #line 2000 "cp-parse.y"
        !          4763: { yyval.ttype = yyvsp[0].ttype; ;
        !          4764:     break;}
        !          4765: case 345:
        !          4766: #line 2006 "cp-parse.y"
        !          4767: { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
        !          4768:     break;}
        !          4769: case 346:
        !          4770: #line 2011 "cp-parse.y"
        !          4771: { if (! is_aggr_typedef (yyval.ttype, 1))
        !          4772:                    yyval.ttype = NULL_TREE;
        !          4773:                  else yyval.ttype = build_tree_list ((tree)visibility_default, yyval.ttype); ;
        !          4774:     break;}
        !          4775: case 347:
        !          4776: #line 2015 "cp-parse.y"
        !          4777: { if (! is_aggr_typedef (yyvsp[0].ttype, 1))
        !          4778:                    yyval.ttype = NULL_TREE;
        !          4779:                  else yyval.ttype = build_tree_list ((tree) yyval.ttype, yyvsp[0].ttype); ;
        !          4780:     break;}
        !          4781: case 350:
        !          4782: #line 2027 "cp-parse.y"
        !          4783: {
        !          4784:                  if (yyval.itype == visibility_protected)
        !          4785:                    {
        !          4786:                      warning ("`protected' visibility not implemented");
        !          4787:                      yyval.itype = visibility_public;
        !          4788:                    }
        !          4789:                ;
        !          4790:     break;}
        !          4791: case 351:
        !          4792: #line 2035 "cp-parse.y"
        !          4793: { if (yyval.ttype != ridpointers[(int)RID_VIRTUAL])
        !          4794:                    sorry ("non-virtual visibility");
        !          4795:                  yyval.itype = visibility_default_virtual; ;
        !          4796:     break;}
        !          4797: case 352:
        !          4798: #line 2039 "cp-parse.y"
        !          4799: { int err = 0;
        !          4800:                  if (yyvsp[0].itype == visibility_protected)
        !          4801:                    {
        !          4802:                      warning ("`protected' visibility not implemented");
        !          4803:                      yyvsp[0].itype = visibility_public;
        !          4804:                      err++;
        !          4805:                    }
        !          4806:                  else if (yyvsp[0].itype == visibility_public)
        !          4807:                    {
        !          4808:                      if (yyvsp[-1].itype == visibility_private)
        !          4809:                        {
        !          4810:                        mixed:
        !          4811:                          error ("base class cannot be public and private");
        !          4812:                        }
        !          4813:                      else if (yyvsp[-1].itype == visibility_default_virtual)
        !          4814:                        yyval.itype = visibility_public_virtual;
        !          4815:                    }
        !          4816:                  else /* $2 == visibility_priavte */
        !          4817:                    {
        !          4818:                      if (yyvsp[-1].itype == visibility_public)
        !          4819:                        goto mixed;
        !          4820:                      else if (yyvsp[-1].itype == visibility_default_virtual)
        !          4821:                        yyval.itype = visibility_private_virtual;
        !          4822:                    }
        !          4823:                ;
        !          4824:     break;}
        !          4825: case 353:
        !          4826: #line 2065 "cp-parse.y"
        !          4827: { if (yyvsp[0].ttype != ridpointers[(int)RID_VIRTUAL])
        !          4828:                    sorry ("non-virtual visibility");
        !          4829:                  if (yyval.itype == visibility_public)
        !          4830:                    yyval.itype = visibility_public_virtual;
        !          4831:                  else if (yyval.itype == visibility_private)
        !          4832:                    yyval.itype = visibility_private_virtual; ;
        !          4833:     break;}
        !          4834: case 354:
        !          4835: #line 2074 "cp-parse.y"
        !          4836: { tree t;
        !          4837:                  push_obstacks_nochange ();
        !          4838:                  end_temporary_allocation ();
        !          4839: 
        !          4840:                  if (! IS_AGGR_TYPE (yyvsp[-1].ttype))
        !          4841:                    {
        !          4842:                      yyvsp[-1].ttype = make_lang_type (RECORD_TYPE);
        !          4843:                      TYPE_NAME (yyvsp[-1].ttype) = get_identifier ("erroneous type");
        !          4844:                    }
        !          4845:                  if (TYPE_SIZE (yyvsp[-1].ttype))
        !          4846:                    duplicate_tag_error (yyvsp[-1].ttype);
        !          4847:                   if (TYPE_SIZE (yyvsp[-1].ttype) || TYPE_BEING_DEFINED (yyvsp[-1].ttype))
        !          4848:                     {
        !          4849:                       t = make_lang_type (TREE_CODE (yyvsp[-1].ttype));
        !          4850:                       pushtag (DECL_NAME (TYPE_NAME (yyvsp[-1].ttype)), t);
        !          4851:                       yyvsp[-1].ttype = t;
        !          4852:                     }
        !          4853:                  pushclass (yyvsp[-1].ttype, 0);
        !          4854:                  TYPE_BEING_DEFINED (yyvsp[-1].ttype) = 1;
        !          4855:                  t = DECL_NAME (TYPE_NAME (yyvsp[-1].ttype));
        !          4856:                  if (IDENTIFIER_TEMPLATE (t))
        !          4857:                    overload_template_name (t, 1);
        !          4858:                ;
        !          4859:     break;}
        !          4860: case 355:
        !          4861: #line 2101 "cp-parse.y"
        !          4862: { yyval.ttype = NULL_TREE; ;
        !          4863:     break;}
        !          4864: case 356:
        !          4865: #line 2103 "cp-parse.y"
        !          4866: { yyval.ttype = build_tree_list ((tree)visibility_default, yyval.ttype); ;
        !          4867:     break;}
        !          4868: case 357:
        !          4869: #line 2105 "cp-parse.y"
        !          4870: { yyval.ttype = chainon (yyval.ttype, build_tree_list ((tree) yyvsp[-2].itype, yyvsp[0].ttype)); ;
        !          4871:     break;}
        !          4872: case 359:
        !          4873: #line 2111 "cp-parse.y"
        !          4874: { if (yyval.ttype == void_type_node) yyval.ttype = NULL_TREE; ;
        !          4875:     break;}
        !          4876: case 360:
        !          4877: #line 2113 "cp-parse.y"
        !          4878: { if (yyvsp[0].ttype != NULL_TREE && yyvsp[0].ttype != void_type_node)
        !          4879:                    yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
        !          4880:     break;}
        !          4881: case 361:
        !          4882: #line 2116 "cp-parse.y"
        !          4883: { if (pedantic)
        !          4884:                    warning ("extra semicolon in struct or union specified"); ;
        !          4885:     break;}
        !          4886: case 362:
        !          4887: #line 2122 "cp-parse.y"
        !          4888: {
        !          4889:                do_components:
        !          4890:                  if (yyvsp[-1].ttype == void_type_node)
        !          4891:                    /* We just got some friends.
        !          4892:                       They have been recorded elsewhere.  */
        !          4893:                    yyval.ttype = NULL_TREE;
        !          4894:                  else if (yyvsp[-1].ttype == NULL_TREE)
        !          4895:                    {
        !          4896:                      tree t = groktypename (build_decl_list (yyval.ttype, NULL_TREE));
        !          4897:                      if (t == NULL_TREE)
        !          4898:                        {
        !          4899:                          error ("error in component specification");
        !          4900:                          yyval.ttype = NULL_TREE;
        !          4901:                        }
        !          4902:                      else if (TREE_CODE (t) == UNION_TYPE)
        !          4903:                        {
        !          4904:                          /* handle anonymous unions */
        !          4905:                          if (CLASSTYPE_METHOD_VEC (t))
        !          4906:                            sorry ("methods in anonymous unions");
        !          4907:                          yyval.ttype = build_lang_field_decl (FIELD_DECL, NULL_TREE, t);
        !          4908:                        }
        !          4909:                      else if (TREE_CODE (t) == ENUMERAL_TYPE)
        !          4910:                        yyval.ttype = grok_enum_decls (t, NULL_TREE);
        !          4911:                      else if (TREE_CODE (t) == RECORD_TYPE)
        !          4912:                        {
        !          4913:                          if (TYPE_LANG_SPECIFIC (t)
        !          4914:                              && CLASSTYPE_DECLARED_EXCEPTION (t))
        !          4915:                            shadow_tag (yyval.ttype);
        !          4916:                          yyval.ttype = NULL_TREE;
        !          4917:                        }
        !          4918:                      else if (t != void_type_node)
        !          4919:                        {
        !          4920:                          error ("empty component declaration");
        !          4921:                          yyval.ttype = NULL_TREE;
        !          4922:                        }
        !          4923:                      else yyval.ttype = NULL_TREE;
        !          4924:                    }
        !          4925:                  else
        !          4926:                    {
        !          4927:                      tree t = TREE_TYPE (yyvsp[-1].ttype);
        !          4928:                      if (TREE_CODE (t) == ENUMERAL_TYPE && TREE_NONLOCAL_FLAG (t))
        !          4929:                        yyval.ttype = grok_enum_decls (t, yyvsp[-1].ttype);
        !          4930:                      else
        !          4931:                        yyval.ttype = yyvsp[-1].ttype;
        !          4932:                    }
        !          4933:                  end_exception_decls ();
        !          4934:                ;
        !          4935:     break;}
        !          4936: case 363:
        !          4937: #line 2170 "cp-parse.y"
        !          4938: { yyval.ttype = groktypefield (yyval.ttype, yyvsp[-2].ttype); ;
        !          4939:     break;}
        !          4940: case 364:
        !          4941: #line 2172 "cp-parse.y"
        !          4942: { error ("missing ';' before right brace");
        !          4943:                  yyungetc ('}', 0);
        !          4944:                  yyval.ttype = groktypefield (yyval.ttype, yyvsp[-2].ttype); ;
        !          4945:     break;}
        !          4946: case 365:
        !          4947: #line 2176 "cp-parse.y"
        !          4948: { yyval.ttype = groktypefield (yyval.ttype, empty_parms ()); ;
        !          4949:     break;}
        !          4950: case 366:
        !          4951: #line 2178 "cp-parse.y"
        !          4952: { error ("missing ';' before right brace");
        !          4953:                  yyungetc ('}', 0);
        !          4954:                  yyval.ttype = groktypefield (yyval.ttype, empty_parms ()); ;
        !          4955:     break;}
        !          4956: case 367:
        !          4957: #line 2182 "cp-parse.y"
        !          4958: { goto do_components; ;
        !          4959:     break;}
        !          4960: case 368:
        !          4961: #line 2185 "cp-parse.y"
        !          4962: { yyval.ttype = grokfield (yyvsp[-1].ttype, yyval.ttype, 0, 0, 0, 0); ;
        !          4963:     break;}
        !          4964: case 369:
        !          4965: #line 2187 "cp-parse.y"
        !          4966: { error ("missing ';' before right brace");
        !          4967:                  yyungetc ('}', 0);
        !          4968:                  goto do_components; ;
        !          4969:     break;}
        !          4970: case 370:
        !          4971: #line 2191 "cp-parse.y"
        !          4972: { yyval.ttype = groktypefield (yyval.ttype, yyvsp[-2].ttype); ;
        !          4973:     break;}
        !          4974: case 371:
        !          4975: #line 2193 "cp-parse.y"
        !          4976: { error ("missing ';' before right brace");
        !          4977:                  yyungetc ('}', 0);
        !          4978:                  yyval.ttype = groktypefield (yyval.ttype, yyvsp[-2].ttype); ;
        !          4979:     break;}
        !          4980: case 372:
        !          4981: #line 2197 "cp-parse.y"
        !          4982: { yyval.ttype = groktypefield (yyval.ttype, empty_parms ()); ;
        !          4983:     break;}
        !          4984: case 373:
        !          4985: #line 2199 "cp-parse.y"
        !          4986: { error ("missing ';' before right brace");
        !          4987:                  yyungetc ('}', 0);
        !          4988:                  yyval.ttype = groktypefield (yyval.ttype, empty_parms ()); ;
        !          4989:     break;}
        !          4990: case 374:
        !          4991: #line 2203 "cp-parse.y"
        !          4992: { yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
        !          4993:     break;}
        !          4994: case 375:
        !          4995: #line 2205 "cp-parse.y"
        !          4996: { error ("missing ';' before right brace");
        !          4997:                  yyungetc ('}', 0);
        !          4998:                  yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
        !          4999:     break;}
        !          5000: case 376:
        !          5001: #line 2209 "cp-parse.y"
        !          5002: { yyval.ttype = NULL_TREE; ;
        !          5003:     break;}
        !          5004: case 377:
        !          5005: #line 2214 "cp-parse.y"
        !          5006: { yyval.ttype = finish_method (yyval.ttype); ;
        !          5007:     break;}
        !          5008: case 378:
        !          5009: #line 2216 "cp-parse.y"
        !          5010: { yyval.ttype = finish_method (yyval.ttype); ;
        !          5011:     break;}
        !          5012: case 379:
        !          5013: #line 2218 "cp-parse.y"
        !          5014: { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[-1].ttype, NULL_TREE, NULL_TREE); ;
        !          5015:     break;}
        !          5016: case 380:
        !          5017: #line 2220 "cp-parse.y"
        !          5018: { error ("missing ';' before right brace");
        !          5019:                  yyungetc ('}', 0);
        !          5020:                  yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[-1].ttype, NULL_TREE, NULL_TREE); ;
        !          5021:     break;}
        !          5022: case 381:
        !          5023: #line 2227 "cp-parse.y"
        !          5024: { yyval.ttype = NULL_TREE; ;
        !          5025:     break;}
        !          5026: case 383:
        !          5027: #line 2230 "cp-parse.y"
        !          5028: {
        !          5029:                  /* In this context, void_type_node encodes
        !          5030:                     friends.  They have been recorded elsewhere.  */
        !          5031:                  if (yyval.ttype == void_type_node)
        !          5032:                    yyval.ttype = yyvsp[0].ttype;
        !          5033:                  else
        !          5034:                    yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
        !          5035:                ;
        !          5036:     break;}
        !          5037: case 384:
        !          5038: #line 2242 "cp-parse.y"
        !          5039: { current_declspecs = yyvsp[-3].ttype;
        !          5040:                  yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype, NULL_TREE, yyvsp[0].ttype); ;
        !          5041:     break;}
        !          5042: case 385:
        !          5043: #line 2245 "cp-parse.y"
        !          5044: { current_declspecs = yyvsp[-5].ttype;
        !          5045:                  yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[-3].ttype, yyvsp[0].ttype, yyvsp[-2].ttype); ;
        !          5046:     break;}
        !          5047: case 386:
        !          5048: #line 2248 "cp-parse.y"
        !          5049: { current_declspecs = yyvsp[-3].ttype;
        !          5050:                  yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[0].ttype); ;
        !          5051:     break;}
        !          5052: case 387:
        !          5053: #line 2251 "cp-parse.y"
        !          5054: { current_declspecs = yyvsp[-2].ttype;
        !          5055:                  yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[0].ttype); ;
        !          5056:     break;}
        !          5057: case 388:
        !          5058: #line 2254 "cp-parse.y"
        !          5059: { current_declspecs = yyvsp[-2].ttype;
        !          5060:                  yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ;
        !          5061:     break;}
        !          5062: case 389:
        !          5063: #line 2260 "cp-parse.y"
        !          5064: { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype, NULL_TREE, yyvsp[0].ttype); ;
        !          5065:     break;}
        !          5066: case 390:
        !          5067: #line 2262 "cp-parse.y"
        !          5068: { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[-3].ttype, yyvsp[0].ttype, yyvsp[-2].ttype); ;
        !          5069:     break;}
        !          5070: case 391:
        !          5071: #line 2264 "cp-parse.y"
        !          5072: { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[0].ttype); ;
        !          5073:     break;}
        !          5074: case 392:
        !          5075: #line 2266 "cp-parse.y"
        !          5076: { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[0].ttype); ;
        !          5077:     break;}
        !          5078: case 393:
        !          5079: #line 2268 "cp-parse.y"
        !          5080: { yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ;
        !          5081:     break;}
        !          5082: case 395:
        !          5083: #line 2278 "cp-parse.y"
        !          5084: { TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
        !          5085:     break;}
        !          5086: case 396:
        !          5087: #line 2283 "cp-parse.y"
        !          5088: { yyval.ttype = build_enumerator (yyval.ttype, NULL_TREE); ;
        !          5089:     break;}
        !          5090: case 397:
        !          5091: #line 2285 "cp-parse.y"
        !          5092: { yyval.ttype = build_enumerator (yyval.ttype, yyvsp[0].ttype); ;
        !          5093:     break;}
        !          5094: case 398:
        !          5095: #line 2290 "cp-parse.y"
        !          5096: { yyval.ttype = build_decl_list (yyval.ttype, yyvsp[0].ttype); ;
        !          5097:     break;}
        !          5098: case 399:
        !          5099: #line 2292 "cp-parse.y"
        !          5100: { yyval.ttype = build_decl_list (yyval.ttype, yyvsp[0].ttype); ;
        !          5101:     break;}
        !          5102: case 400:
        !          5103: #line 2297 "cp-parse.y"
        !          5104: { yyval.ttype = NULL_TREE; ;
        !          5105:     break;}
        !          5106: case 402:
        !          5107: #line 2300 "cp-parse.y"
        !          5108: { yyval.ttype = yyvsp[0].ttype; ;
        !          5109:     break;}
        !          5110: case 403:
        !          5111: #line 2305 "cp-parse.y"
        !          5112: { yyval.ttype = IDENTIFIER_AS_LIST (yyval.ttype); ;
        !          5113:     break;}
        !          5114: case 404:
        !          5115: #line 2307 "cp-parse.y"
        !          5116: { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
        !          5117:     break;}
        !          5118: case 405:
        !          5119: #line 2312 "cp-parse.y"
        !          5120: { yyval.ttype = NULL_TREE; ;
        !          5121:     break;}
        !          5122: case 406:
        !          5123: #line 2314 "cp-parse.y"
        !          5124: { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
        !          5125:     break;}
        !          5126: case 407:
        !          5127: #line 2322 "cp-parse.y"
        !          5128: { yyval.itype = suspend_momentary (); ;
        !          5129:     break;}
        !          5130: case 408:
        !          5131: #line 2323 "cp-parse.y"
        !          5132: { resume_momentary (yyvsp[-1].itype); yyval.ttype = yyvsp[0].ttype; ;
        !          5133:     break;}
        !          5134: case 409:
        !          5135: #line 2329 "cp-parse.y"
        !          5136: { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
        !          5137:     break;}
        !          5138: case 410:
        !          5139: #line 2331 "cp-parse.y"
        !          5140: { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
        !          5141:     break;}
        !          5142: case 411:
        !          5143: #line 2333 "cp-parse.y"
        !          5144: { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[0].ttype); ;
        !          5145:     break;}
        !          5146: case 412:
        !          5147: #line 2335 "cp-parse.y"
        !          5148: { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, NULL_TREE, NULL_TREE); ;
        !          5149:     break;}
        !          5150: case 413:
        !          5151: #line 2337 "cp-parse.y"
        !          5152: { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
        !          5153:     break;}
        !          5154: case 414:
        !          5155: #line 2339 "cp-parse.y"
        !          5156: { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
        !          5157:     break;}
        !          5158: case 415:
        !          5159: #line 2341 "cp-parse.y"
        !          5160: { yyval.ttype = yyvsp[-1].ttype; ;
        !          5161:     break;}
        !          5162: case 416:
        !          5163: #line 2343 "cp-parse.y"
        !          5164: { yyval.ttype = make_pointer_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
        !          5165:     break;}
        !          5166: case 417:
        !          5167: #line 2345 "cp-parse.y"
        !          5168: { see_typename (); ;
        !          5169:     break;}
        !          5170: case 419:
        !          5171: #line 2348 "cp-parse.y"
        !          5172: { yyval.ttype = make_reference_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
        !          5173:     break;}
        !          5174: case 420:
        !          5175: #line 2350 "cp-parse.y"
        !          5176: { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
        !          5177:     break;}
        !          5178: case 421:
        !          5179: #line 2352 "cp-parse.y"
        !          5180: { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
        !          5181:     break;}
        !          5182: case 423:
        !          5183: #line 2358 "cp-parse.y"
        !          5184: { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
        !          5185:     break;}
        !          5186: case 424:
        !          5187: #line 2360 "cp-parse.y"
        !          5188: { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
        !          5189:     break;}
        !          5190: case 425:
        !          5191: #line 2362 "cp-parse.y"
        !          5192: { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[0].ttype); ;
        !          5193:     break;}
        !          5194: case 426:
        !          5195: #line 2364 "cp-parse.y"
        !          5196: { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, NULL_TREE, NULL_TREE); ;
        !          5197:     break;}
        !          5198: case 427:
        !          5199: #line 2366 "cp-parse.y"
        !          5200: { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
        !          5201:     break;}
        !          5202: case 428:
        !          5203: #line 2368 "cp-parse.y"
        !          5204: { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
        !          5205:     break;}
        !          5206: case 429:
        !          5207: #line 2370 "cp-parse.y"
        !          5208: { yyval.ttype = yyvsp[-1].ttype; ;
        !          5209:     break;}
        !          5210: case 430:
        !          5211: #line 2372 "cp-parse.y"
        !          5212: { see_typename (); ;
        !          5213:     break;}
        !          5214: case 432:
        !          5215: #line 2375 "cp-parse.y"
        !          5216: { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
        !          5217:     break;}
        !          5218: case 433:
        !          5219: #line 2377 "cp-parse.y"
        !          5220: { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
        !          5221:     break;}
        !          5222: case 434:
        !          5223: #line 2385 "cp-parse.y"
        !          5224: { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
        !          5225:     break;}
        !          5226: case 435:
        !          5227: #line 2387 "cp-parse.y"
        !          5228: { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
        !          5229:     break;}
        !          5230: case 436:
        !          5231: #line 2389 "cp-parse.y"
        !          5232: { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[0].ttype); ;
        !          5233:     break;}
        !          5234: case 437:
        !          5235: #line 2391 "cp-parse.y"
        !          5236: { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, NULL_TREE, NULL_TREE); ;
        !          5237:     break;}
        !          5238: case 438:
        !          5239: #line 2393 "cp-parse.y"
        !          5240: { yyval.ttype = yyvsp[-1].ttype; ;
        !          5241:     break;}
        !          5242: case 439:
        !          5243: #line 2395 "cp-parse.y"
        !          5244: { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
        !          5245:     break;}
        !          5246: case 440:
        !          5247: #line 2397 "cp-parse.y"
        !          5248: { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
        !          5249:     break;}
        !          5250: case 441:
        !          5251: #line 2399 "cp-parse.y"
        !          5252: { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
        !          5253:     break;}
        !          5254: case 442:
        !          5255: #line 2401 "cp-parse.y"
        !          5256: { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
        !          5257:     break;}
        !          5258: case 443:
        !          5259: #line 2403 "cp-parse.y"
        !          5260: { see_typename (); ;
        !          5261:     break;}
        !          5262: case 444:
        !          5263: #line 2407 "cp-parse.y"
        !          5264: { see_typename (); ;
        !          5265:     break;}
        !          5266: case 445:
        !          5267: #line 2410 "cp-parse.y"
        !          5268: {
        !          5269:                destructor_name:
        !          5270:                  see_typename ();
        !          5271:                  yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype);
        !          5272:                ;
        !          5273:     break;}
        !          5274: case 446:
        !          5275: #line 2416 "cp-parse.y"
        !          5276: { goto destructor_name; ;
        !          5277:     break;}
        !          5278: case 447:
        !          5279: #line 2418 "cp-parse.y"
        !          5280: { goto destructor_name; ;
        !          5281:     break;}
        !          5282: case 448:
        !          5283: #line 2420 "cp-parse.y"
        !          5284: {
        !          5285:                  see_typename ();
        !          5286:                  yyval.ttype = build_parse_node (WRAPPER_EXPR, yyvsp[0].ttype);
        !          5287:                ;
        !          5288:     break;}
        !          5289: case 449:
        !          5290: #line 2425 "cp-parse.y"
        !          5291: {
        !          5292:                  see_typename ();
        !          5293:                  yyval.ttype = build_parse_node (WRAPPER_EXPR,
        !          5294:                                 build_parse_node (COND_EXPR, yyvsp[0].ttype, NULL_TREE, NULL_TREE));
        !          5295:                ;
        !          5296:     break;}
        !          5297: case 450:
        !          5298: #line 2431 "cp-parse.y"
        !          5299: { see_typename ();
        !          5300:                  yyval.ttype = build_parse_node (ANTI_WRAPPER_EXPR, yyvsp[0].ttype); ;
        !          5301:     break;}
        !          5302: case 451:
        !          5303: #line 2434 "cp-parse.y"
        !          5304: { see_typename ();
        !          5305:                  if (TREE_CODE (yyval.ttype) != SCOPE_REF)
        !          5306:                    yyval.ttype = build_push_scope (yyval.ttype, yyvsp[0].ttype);
        !          5307:                  else if (TREE_OPERAND (yyval.ttype, 1) == NULL_TREE)
        !          5308:                    TREE_OPERAND (yyval.ttype, 1) = yyvsp[0].ttype;
        !          5309:                  else
        !          5310:                    yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype);
        !          5311:                ;
        !          5312:     break;}
        !          5313: case 452:
        !          5314: #line 2443 "cp-parse.y"
        !          5315: { yyval.ttype = build_push_scope (yyval.ttype, yyvsp[0].ttype); ;
        !          5316:     break;}
        !          5317: case 453:
        !          5318: #line 2445 "cp-parse.y"
        !          5319: { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype)); ;
        !          5320:     break;}
        !          5321: case 454:
        !          5322: #line 2447 "cp-parse.y"
        !          5323: { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype)); ;
        !          5324:     break;}
        !          5325: case 455:
        !          5326: #line 2449 "cp-parse.y"
        !          5327: { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-2].ttype, empty_parms (), yyvsp[0].ttype)); ;
        !          5328:     break;}
        !          5329: case 456:
        !          5330: #line 2451 "cp-parse.y"
        !          5331: { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, NULL_TREE, NULL_TREE)); ;
        !          5332:     break;}
        !          5333: case 457:
        !          5334: #line 2454 "cp-parse.y"
        !          5335: { yyval.ttype = build_push_scope (yyval.ttype, yyvsp[0].ttype); ;
        !          5336:     break;}
        !          5337: case 458:
        !          5338: #line 2456 "cp-parse.y"
        !          5339: { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype)); ;
        !          5340:     break;}
        !          5341: case 459:
        !          5342: #line 2458 "cp-parse.y"
        !          5343: { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype)); ;
        !          5344:     break;}
        !          5345: case 460:
        !          5346: #line 2460 "cp-parse.y"
        !          5347: { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-2].ttype, empty_parms (), yyvsp[0].ttype)); ;
        !          5348:     break;}
        !          5349: case 461:
        !          5350: #line 2462 "cp-parse.y"
        !          5351: { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, NULL_TREE, NULL_TREE)); ;
        !          5352:     break;}
        !          5353: case 462:
        !          5354: #line 2464 "cp-parse.y"
        !          5355: { yyval.ttype = build_parse_node (SCOPE_REF, NULL_TREE, yyvsp[0].ttype); ;
        !          5356:     break;}
        !          5357: case 463:
        !          5358: #line 2468 "cp-parse.y"
        !          5359: { yyval.ttype = resolve_scope_to_name (NULL_TREE, yyval.ttype); ;
        !          5360:     break;}
        !          5361: case 464:
        !          5362: #line 2470 "cp-parse.y"
        !          5363: {
        !          5364:                   if (yyval.ttype == error_mark_node)
        !          5365:                     /* leave it alone */;
        !          5366:                   else
        !          5367:                    {
        !          5368:                      yyval.ttype = resolve_scope_to_name (NULL_TREE, TYPE_IDENTIFIER (yyval.ttype));
        !          5369:                    }
        !          5370:                   if (yyvsp[0].itype) popclass (1);
        !          5371:                ;
        !          5372:     break;}
        !          5373: case 467:
        !          5374: #line 2501 "cp-parse.y"
        !          5375: { see_typename ();
        !          5376:                  yyval.ttype = yyvsp[-1].ttype; ;
        !          5377:     break;}
        !          5378: case 468:
        !          5379: #line 2505 "cp-parse.y"
        !          5380: { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
        !          5381:     break;}
        !          5382: case 469:
        !          5383: #line 2507 "cp-parse.y"
        !          5384: { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
        !          5385:     break;}
        !          5386: case 470:
        !          5387: #line 2509 "cp-parse.y"
        !          5388: { see_typename (); ;
        !          5389:     break;}
        !          5390: case 471:
        !          5391: #line 2511 "cp-parse.y"
        !          5392: { yyval.ttype = yyvsp[-1].ttype; ;
        !          5393:     break;}
        !          5394: case 472:
        !          5395: #line 2513 "cp-parse.y"
        !          5396: { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
        !          5397:     break;}
        !          5398: case 473:
        !          5399: #line 2515 "cp-parse.y"
        !          5400: { yyval.ttype = make_reference_declarator (yyvsp[0].ttype, NULL_TREE); ;
        !          5401:     break;}
        !          5402: case 474:
        !          5403: #line 2517 "cp-parse.y"
        !          5404: { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
        !          5405:     break;}
        !          5406: case 475:
        !          5407: #line 2519 "cp-parse.y"
        !          5408: { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[0].ttype); ;
        !          5409:     break;}
        !          5410: case 476:
        !          5411: #line 2521 "cp-parse.y"
        !          5412: { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
        !          5413:     break;}
        !          5414: case 477:
        !          5415: #line 2523 "cp-parse.y"
        !          5416: { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
        !          5417:     break;}
        !          5418: case 478:
        !          5419: #line 2525 "cp-parse.y"
        !          5420: { yyval.ttype = build_parse_node (CALL_EXPR, NULL_TREE, yyvsp[-2].ttype, yyvsp[0].ttype); ;
        !          5421:     break;}
        !          5422: case 479:
        !          5423: #line 2527 "cp-parse.y"
        !          5424: { yyval.ttype = build_parse_node (CALL_EXPR, NULL_TREE, empty_parms (), yyvsp[0].ttype); ;
        !          5425:     break;}
        !          5426: case 480:
        !          5427: #line 2529 "cp-parse.y"
        !          5428: { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
        !          5429:     break;}
        !          5430: case 481:
        !          5431: #line 2531 "cp-parse.y"
        !          5432: { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, NULL_TREE); ;
        !          5433:     break;}
        !          5434: case 482:
        !          5435: #line 2536 "cp-parse.y"
        !          5436: { tree t;
        !          5437:                  t = yyval.ttype;
        !          5438:                  while (TREE_OPERAND (t, 1))
        !          5439:                    t = TREE_OPERAND (t, 1);
        !          5440:                  TREE_OPERAND (t, 1) = build_parse_node (INDIRECT_REF, 0);
        !          5441:                ;
        !          5442:     break;}
        !          5443: case 483:
        !          5444: #line 2543 "cp-parse.y"
        !          5445: { tree t;
        !          5446:                  t = yyval.ttype;
        !          5447:                  while (TREE_OPERAND (t, 1))
        !          5448:                    t = TREE_OPERAND (t, 1);
        !          5449:                  TREE_OPERAND (t, 1) = build_parse_node (INDIRECT_REF, yyvsp[0].ttype);
        !          5450:                ;
        !          5451:     break;}
        !          5452: case 484:
        !          5453: #line 2550 "cp-parse.y"
        !          5454: { tree t;
        !          5455:                  t = yyval.ttype;
        !          5456:                  while (TREE_OPERAND (t, 1))
        !          5457:                    t = TREE_OPERAND (t, 1);
        !          5458:                  TREE_OPERAND (t, 1) = build_parse_node (ADDR_EXPR, 0);
        !          5459:                ;
        !          5460:     break;}
        !          5461: case 485:
        !          5462: #line 2557 "cp-parse.y"
        !          5463: { tree t;
        !          5464:                  t = yyval.ttype;
        !          5465:                  while (TREE_OPERAND (t, 1))
        !          5466:                    t = TREE_OPERAND (t, 1);
        !          5467:                  TREE_OPERAND (t, 1) = build_parse_node (ADDR_EXPR, yyvsp[0].ttype);
        !          5468:                ;
        !          5469:     break;}
        !          5470: case 486:
        !          5471: #line 2567 "cp-parse.y"
        !          5472: { tree t;
        !          5473:                  t = yyval.ttype;
        !          5474:                  while (TREE_OPERAND (t, 1))
        !          5475:                    t = TREE_OPERAND (t, 1);
        !          5476:                  TREE_OPERAND (t, 1) = build_parse_node (INDIRECT_REF, yyvsp[0].ttype);
        !          5477:                ;
        !          5478:     break;}
        !          5479: case 487:
        !          5480: #line 2574 "cp-parse.y"
        !          5481: { tree t;
        !          5482:                  t = yyval.ttype;
        !          5483:                  while (TREE_OPERAND (t, 1))
        !          5484:                    t = TREE_OPERAND (t, 1);
        !          5485:                  TREE_OPERAND (t, 1) = build_parse_node (ADDR_EXPR, yyvsp[0].ttype);
        !          5486:                ;
        !          5487:     break;}
        !          5488: case 493:
        !          5489: #line 2601 "cp-parse.y"
        !          5490: {
        !          5491:                  pushlevel (0);
        !          5492:                  clear_last_expr ();
        !          5493:                  push_momentary ();
        !          5494:                  expand_start_bindings (0);
        !          5495:                  stmt_decl_msg = 0;
        !          5496:                ;
        !          5497:     break;}
        !          5498: case 494:
        !          5499: #line 2614 "cp-parse.y"
        !          5500: {;
        !          5501:     break;}
        !          5502: case 496:
        !          5503: #line 2619 "cp-parse.y"
        !          5504: { yyval.ttype = convert (void_type_node, integer_zero_node); ;
        !          5505:     break;}
        !          5506: case 497:
        !          5507: #line 2621 "cp-parse.y"
        !          5508: { pop_implicit_try_blocks (NULL_TREE);
        !          5509:                  expand_end_bindings (getdecls (), kept_level_p (), 1);
        !          5510:                  yyval.ttype = poplevel (kept_level_p (), 1, 0);
        !          5511:                  pop_momentary (); ;
        !          5512:     break;}
        !          5513: case 498:
        !          5514: #line 2626 "cp-parse.y"
        !          5515: { pop_implicit_try_blocks (NULL_TREE);
        !          5516:                  expand_end_bindings (getdecls (), kept_level_p (), 1);
        !          5517:                  yyval.ttype = poplevel (kept_level_p (), 0, 0);
        !          5518:                  pop_momentary (); ;
        !          5519:     break;}
        !          5520: case 499:
        !          5521: #line 2634 "cp-parse.y"
        !          5522: { emit_line_note (input_filename, lineno);
        !          5523:                  expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0);
        !          5524:                  stmt_decl_msg = "if"; ;
        !          5525:     break;}
        !          5526: case 500:
        !          5527: #line 2638 "cp-parse.y"
        !          5528: { stmt_decl_msg = 0; ;
        !          5529:     break;}
        !          5530: case 501:
        !          5531: #line 2643 "cp-parse.y"
        !          5532: { finish_stmt (); ;
        !          5533:     break;}
        !          5534: case 502:
        !          5535: #line 2645 "cp-parse.y"
        !          5536: { if (stmt_decl_msg)
        !          5537:                    error ("declaration after %s invalid", stmt_decl_msg);
        !          5538:                  stmt_decl_msg = 0;
        !          5539:                  finish_stmt (); ;
        !          5540:     break;}
        !          5541: case 503:
        !          5542: #line 2650 "cp-parse.y"
        !          5543: {
        !          5544:                  tree expr = yyvsp[-1].ttype;
        !          5545:                  emit_line_note (input_filename, lineno);
        !          5546:                  /* Do default conversion if safe and possibly important,
        !          5547:                     in case within ({...}).  */
        !          5548:                  if ((TREE_CODE (TREE_TYPE (expr)) == ARRAY_TYPE
        !          5549:                       && lvalue_p (expr))
        !          5550:                      || TREE_CODE (TREE_TYPE (expr)) == FUNCTION_TYPE)
        !          5551:                    expr = default_conversion (expr);
        !          5552:                  cplus_expand_expr_stmt (expr);
        !          5553:                  clear_momentary ();
        !          5554:                  finish_stmt (); ;
        !          5555:     break;}
        !          5556: case 504:
        !          5557: #line 2663 "cp-parse.y"
        !          5558: { expand_start_else ();
        !          5559:                  stmt_decl_msg = "else"; ;
        !          5560:     break;}
        !          5561: case 505:
        !          5562: #line 2666 "cp-parse.y"
        !          5563: { expand_end_cond ();
        !          5564:                  stmt_decl_msg = 0;
        !          5565:                  finish_stmt (); ;
        !          5566:     break;}
        !          5567: case 506:
        !          5568: #line 2670 "cp-parse.y"
        !          5569: { expand_end_cond ();
        !          5570:                  stmt_decl_msg = 0;
        !          5571:                  finish_stmt (); ;
        !          5572:     break;}
        !          5573: case 507:
        !          5574: #line 2674 "cp-parse.y"
        !          5575: { emit_nop ();
        !          5576:                  emit_line_note (input_filename, lineno);
        !          5577:                  expand_start_loop (1); ;
        !          5578:     break;}
        !          5579: case 508:
        !          5580: #line 2678 "cp-parse.y"
        !          5581: { expand_exit_loop_if_false (0, truthvalue_conversion (yyvsp[-1].ttype));
        !          5582:                  stmt_decl_msg = "while"; ;
        !          5583:     break;}
        !          5584: case 509:
        !          5585: #line 2681 "cp-parse.y"
        !          5586: { 
        !          5587:                  expand_end_loop ();
        !          5588:                  stmt_decl_msg = 0;
        !          5589:                  finish_stmt (); ;
        !          5590:     break;}
        !          5591: case 510:
        !          5592: #line 2686 "cp-parse.y"
        !          5593: { emit_nop ();
        !          5594:                  emit_line_note (input_filename, lineno);
        !          5595:                  expand_start_loop_continue_elsewhere (1);
        !          5596:                  stmt_decl_msg = "do"; ;
        !          5597:     break;}
        !          5598: case 511:
        !          5599: #line 2691 "cp-parse.y"
        !          5600: { stmt_decl_msg = 0;
        !          5601:                  expand_loop_continue_here (); ;
        !          5602:     break;}
        !          5603: case 512:
        !          5604: #line 2694 "cp-parse.y"
        !          5605: { emit_line_note (input_filename, lineno);
        !          5606:                  expand_exit_loop_if_false (0, truthvalue_conversion (yyvsp[-2].ttype));
        !          5607:                  expand_end_loop ();
        !          5608:                  clear_momentary ();
        !          5609:                  finish_stmt (); ;
        !          5610:     break;}
        !          5611: case 513:
        !          5612: #line 2700 "cp-parse.y"
        !          5613: { emit_nop ();
        !          5614:                  emit_line_note (input_filename, lineno);
        !          5615:                  if (yyvsp[0].ttype) cplus_expand_expr_stmt (yyvsp[0].ttype);
        !          5616:                  expand_start_loop_continue_elsewhere (1); ;
        !          5617:     break;}
        !          5618: case 514:
        !          5619: #line 2705 "cp-parse.y"
        !          5620: { emit_line_note (input_filename, lineno);
        !          5621:                  if (yyvsp[-1].ttype) expand_exit_loop_if_false (0, truthvalue_conversion (yyvsp[-1].ttype)); ;
        !          5622:     break;}
        !          5623: case 515:
        !          5624: #line 2710 "cp-parse.y"
        !          5625: { push_momentary ();
        !          5626:                  stmt_decl_msg = "for"; ;
        !          5627:     break;}
        !          5628: case 516:
        !          5629: #line 2713 "cp-parse.y"
        !          5630: { emit_line_note (input_filename, lineno);
        !          5631:                  expand_loop_continue_here ();
        !          5632:                  if (yyvsp[-3].ttype) cplus_expand_expr_stmt (yyvsp[-3].ttype);
        !          5633:                  pop_momentary ();
        !          5634:                  expand_end_loop ();
        !          5635:                  stmt_decl_msg = 0;
        !          5636:                  finish_stmt (); ;
        !          5637:     break;}
        !          5638: case 517:
        !          5639: #line 2721 "cp-parse.y"
        !          5640: { emit_nop ();
        !          5641:                  emit_line_note (input_filename, lineno);
        !          5642:                  expand_start_loop_continue_elsewhere (1); ;
        !          5643:     break;}
        !          5644: case 518:
        !          5645: #line 2725 "cp-parse.y"
        !          5646: { emit_line_note (input_filename, lineno);
        !          5647:                  if (yyvsp[-1].ttype) expand_exit_loop_if_false (0, truthvalue_conversion (yyvsp[-1].ttype)); ;
        !          5648:     break;}
        !          5649: case 519:
        !          5650: #line 2730 "cp-parse.y"
        !          5651: { push_momentary ();
        !          5652:                  stmt_decl_msg = "for";
        !          5653:                  yyvsp[0].itype = lineno; ;
        !          5654:     break;}
        !          5655: case 520:
        !          5656: #line 2734 "cp-parse.y"
        !          5657: { emit_line_note (input_filename, yyvsp[-2].itype);
        !          5658:                  expand_loop_continue_here ();
        !          5659:                  if (yyvsp[-3].ttype) cplus_expand_expr_stmt (yyvsp[-3].ttype);
        !          5660:                  pop_momentary ();
        !          5661:                  expand_end_loop ();
        !          5662:                  pop_implicit_try_blocks (NULL_TREE);
        !          5663:                  if (yyvsp[-8].itype)
        !          5664:                    {
        !          5665:                      register keep = yyvsp[-8].itype > 0;
        !          5666:                      if (keep) expand_end_bindings (0, keep, 1);
        !          5667:                      poplevel (keep, 1, 0);
        !          5668:                      pop_momentary ();
        !          5669:                    }
        !          5670:                  stmt_decl_msg = 0;
        !          5671:                  finish_stmt ();
        !          5672:                ;
        !          5673:     break;}
        !          5674: case 521:
        !          5675: #line 2751 "cp-parse.y"
        !          5676: { emit_line_note (input_filename, lineno);
        !          5677:                  c_expand_start_case (yyvsp[-1].ttype);
        !          5678:                  /* Don't let the tree nodes for $3 be discarded by
        !          5679:                     clear_momentary during the parsing of the next stmt.  */
        !          5680:                  push_momentary ();
        !          5681:                  stmt_decl_msg = "switch"; ;
        !          5682:     break;}
        !          5683: case 522:
        !          5684: #line 2758 "cp-parse.y"
        !          5685: { expand_end_case (yyvsp[-3].ttype);
        !          5686:                  pop_momentary ();
        !          5687:                  stmt_decl_msg = 0;
        !          5688:                  finish_stmt (); ;
        !          5689:     break;}
        !          5690: case 523:
        !          5691: #line 2763 "cp-parse.y"
        !          5692: { register tree value = yyvsp[-1].ttype;
        !          5693:                  register tree label
        !          5694:                    = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
        !          5695: 
        !          5696:                  /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
        !          5697:                     Strip such NOP_EXPRs.  */
        !          5698:                  if (TREE_CODE (value) == NOP_EXPR
        !          5699:                      && TREE_TYPE (value) == TREE_TYPE (TREE_OPERAND (value, 0)))
        !          5700:                    value = TREE_OPERAND (value, 0);
        !          5701: 
        !          5702:                  if (TREE_READONLY_DECL_P (value))
        !          5703:                    {
        !          5704:                      value = decl_constant_value (value);
        !          5705:                      /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
        !          5706:                         Strip such NOP_EXPRs.  */
        !          5707:                      if (TREE_CODE (value) == NOP_EXPR
        !          5708:                          && TREE_TYPE (value) == TREE_TYPE (TREE_OPERAND (value, 0)))
        !          5709:                        value = TREE_OPERAND (value, 0);
        !          5710:                    }
        !          5711:                  value = fold (value);
        !          5712: 
        !          5713:                  if (TREE_CODE (value) != INTEGER_CST
        !          5714:                      && value != error_mark_node)
        !          5715:                    {
        !          5716:                      error ("case label does not reduce to an integer constant");
        !          5717:                      value = error_mark_node;
        !          5718:                    }
        !          5719:                  else
        !          5720:                    /* Promote char or short to int.  */
        !          5721:                    value = default_conversion (value);
        !          5722:                  if (value != error_mark_node)
        !          5723:                    {
        !          5724:                      tree duplicate;
        !          5725:                      int success = pushcase (value, label, &duplicate);
        !          5726:                      if (success == 1)
        !          5727:                        error ("case label not within a switch statement");
        !          5728:                      else if (success == 2)
        !          5729:                        {
        !          5730:                          error ("duplicate case value");
        !          5731:                          error_with_decl (duplicate, "this is the first entry for that value");
        !          5732:                        }
        !          5733:                      else if (success == 3)
        !          5734:                        warning ("case value out of range");
        !          5735:                      else if (success == 5)
        !          5736:                        error ("case label within scope of cleanup or variable array");
        !          5737:                    }
        !          5738:                  define_case_label (label);
        !          5739:                ;
        !          5740:     break;}
        !          5741: case 525:
        !          5742: #line 2813 "cp-parse.y"
        !          5743: { register tree value1 = yyvsp[-3].ttype;
        !          5744:                  register tree value2 = yyvsp[-1].ttype;
        !          5745:                  register tree label
        !          5746:                    = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
        !          5747: 
        !          5748:                  if (pedantic)
        !          5749:                    {
        !          5750:                      error ("ANSI C does not allow range expressions in switch statement");
        !          5751:                      value1 = error_mark_node;
        !          5752:                      value2 = error_mark_node;
        !          5753:                      break;
        !          5754:                    }
        !          5755:                  /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
        !          5756:                     Strip such NOP_EXPRs.  */
        !          5757:                  if (TREE_CODE (value1) == NOP_EXPR
        !          5758:                      && TREE_TYPE (value1) == TREE_TYPE (TREE_OPERAND (value1, 0)))
        !          5759:                    value1 = TREE_OPERAND (value1, 0);
        !          5760: 
        !          5761:                  if (TREE_READONLY_DECL_P (value1))
        !          5762:                    {
        !          5763:                      value1 = decl_constant_value (value1);
        !          5764:                      /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
        !          5765:                         Strip such NOP_EXPRs.  */
        !          5766:                      if (TREE_CODE (value1) == NOP_EXPR
        !          5767:                          && TREE_TYPE (value1) == TREE_TYPE (TREE_OPERAND (value1, 0)))
        !          5768:                        value1 = TREE_OPERAND (value1, 0);
        !          5769:                    }
        !          5770:                  value1 = fold (value1);
        !          5771: 
        !          5772:                  /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
        !          5773:                     Strip such NOP_EXPRs.  */
        !          5774:                  if (TREE_CODE (value2) == NOP_EXPR
        !          5775:                      && TREE_TYPE (value2) == TREE_TYPE (TREE_OPERAND (value2, 0)))
        !          5776:                    value2 = TREE_OPERAND (value2, 0);
        !          5777: 
        !          5778:                  if (TREE_READONLY_DECL_P (value2))
        !          5779:                    {
        !          5780:                      value2 = decl_constant_value (value2);
        !          5781:                      /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
        !          5782:                         Strip such NOP_EXPRs.  */
        !          5783:                      if (TREE_CODE (value2) == NOP_EXPR
        !          5784:                          && TREE_TYPE (value2) == TREE_TYPE (TREE_OPERAND (value2, 0)))
        !          5785:                        value2 = TREE_OPERAND (value2, 0);
        !          5786:                    }
        !          5787:                  value2 = fold (value2);
        !          5788: 
        !          5789: 
        !          5790:                  if (TREE_CODE (value1) != INTEGER_CST
        !          5791:                      && value1 != error_mark_node)
        !          5792:                    {
        !          5793:                      error ("case label does not reduce to an integer constant");
        !          5794:                      value1 = error_mark_node;
        !          5795:                    }
        !          5796:                  if (TREE_CODE (value2) != INTEGER_CST
        !          5797:                      && value2 != error_mark_node)
        !          5798:                    {
        !          5799:                      error ("case label does not reduce to an integer constant");
        !          5800:                      value2 = error_mark_node;
        !          5801:                    }
        !          5802:                  if (value1 != error_mark_node
        !          5803:                      && value2 != error_mark_node)
        !          5804:                    {
        !          5805:                      tree duplicate;
        !          5806:                      int success = pushcase_range (value1, value2, label);
        !          5807:                      if (success == 1)
        !          5808:                        error ("case label not within a switch statement");
        !          5809:                      else if (success == 2)
        !          5810:                        {
        !          5811:                          error ("duplicate (or overlapping) case value");
        !          5812:                          error_with_decl (duplicate, "this is the first entry overlapping that value");
        !          5813:                        }
        !          5814:                      else if (success == 3)
        !          5815:                        warning ("case value out of range");
        !          5816:                      else if (success == 4)
        !          5817:                        warning ("empty range specified");
        !          5818:                      else if (success == 5)
        !          5819:                        error ("case label within scope of cleanup or variable array");
        !          5820:                    }
        !          5821:                  define_case_label (label);
        !          5822:                ;
        !          5823:     break;}
        !          5824: case 527:
        !          5825: #line 2895 "cp-parse.y"
        !          5826: {
        !          5827:                  tree duplicate;
        !          5828:                  register tree label
        !          5829:                    = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
        !          5830:                  int success = pushcase (NULL_TREE, label, &duplicate);
        !          5831:                  if (success == 1)
        !          5832:                    error ("default label not within a switch statement");
        !          5833:                  else if (success == 2)
        !          5834:                    {
        !          5835:                      error ("multiple default labels in one switch");
        !          5836:                      error_with_decl (duplicate, "this is the first default label");
        !          5837:                    }
        !          5838:                  define_case_label (NULL_TREE);
        !          5839:                ;
        !          5840:     break;}
        !          5841: case 529:
        !          5842: #line 2911 "cp-parse.y"
        !          5843: { emit_line_note (input_filename, lineno);
        !          5844:                  if ( ! expand_exit_something ())
        !          5845:                    error ("break statement not within loop or switch"); ;
        !          5846:     break;}
        !          5847: case 530:
        !          5848: #line 2915 "cp-parse.y"
        !          5849: { emit_line_note (input_filename, lineno);
        !          5850:                  if (! expand_continue_loop (0))
        !          5851:                    error ("continue statement not within a loop"); ;
        !          5852:     break;}
        !          5853: case 531:
        !          5854: #line 2919 "cp-parse.y"
        !          5855: { emit_line_note (input_filename, lineno);
        !          5856:                  c_expand_return (NULL_TREE); ;
        !          5857:     break;}
        !          5858: case 532:
        !          5859: #line 2922 "cp-parse.y"
        !          5860: { emit_line_note (input_filename, lineno);
        !          5861:                  c_expand_return (yyvsp[-1].ttype);
        !          5862:                  finish_stmt ();
        !          5863:                ;
        !          5864:     break;}
        !          5865: case 533:
        !          5866: #line 2927 "cp-parse.y"
        !          5867: { if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
        !          5868:                  emit_line_note (input_filename, lineno);
        !          5869:                  expand_asm (yyvsp[-2].ttype);
        !          5870:                  finish_stmt ();
        !          5871:                ;
        !          5872:     break;}
        !          5873: case 534:
        !          5874: #line 2934 "cp-parse.y"
        !          5875: { if (TREE_CHAIN (yyvsp[-4].ttype)) yyvsp[-4].ttype = combine_strings (yyvsp[-4].ttype);
        !          5876:                  emit_line_note (input_filename, lineno);
        !          5877:                  c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
        !          5878:                                         yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE],
        !          5879:                                         input_filename, lineno);
        !          5880:                  finish_stmt ();
        !          5881:                ;
        !          5882:     break;}
        !          5883: case 535:
        !          5884: #line 2943 "cp-parse.y"
        !          5885: { if (TREE_CHAIN (yyvsp[-6].ttype)) yyvsp[-6].ttype = combine_strings (yyvsp[-6].ttype);
        !          5886:                  emit_line_note (input_filename, lineno);
        !          5887:                  c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
        !          5888:                                         yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE],
        !          5889:                                         input_filename, lineno);
        !          5890:                  finish_stmt ();
        !          5891:                ;
        !          5892:     break;}
        !          5893: case 536:
        !          5894: #line 2953 "cp-parse.y"
        !          5895: { if (TREE_CHAIN (yyvsp[-8].ttype)) yyvsp[-8].ttype = combine_strings (yyvsp[-8].ttype);
        !          5896:                  emit_line_note (input_filename, lineno);
        !          5897:                  c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
        !          5898:                                         yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE],
        !          5899:                                         input_filename, lineno);
        !          5900:                  finish_stmt ();
        !          5901:                ;
        !          5902:     break;}
        !          5903: case 537:
        !          5904: #line 2961 "cp-parse.y"
        !          5905: { tree decl;
        !          5906:                  emit_line_note (input_filename, lineno);
        !          5907:                  decl = lookup_label (yyvsp[-1].ttype);
        !          5908:                  TREE_USED (decl) = 1;
        !          5909:                  expand_goto (decl); ;
        !          5910:     break;}
        !          5911: case 538:
        !          5912: #line 2967 "cp-parse.y"
        !          5913: { finish_stmt (); ;
        !          5914:     break;}
        !          5915: case 539:
        !          5916: #line 2969 "cp-parse.y"
        !          5917: { error ("label must be followed by statement");
        !          5918:                  yyungetc ('}', 0);
        !          5919:                  finish_stmt (); ;
        !          5920:     break;}
        !          5921: case 540:
        !          5922: #line 2973 "cp-parse.y"
        !          5923: { finish_stmt (); ;
        !          5924:     break;}
        !          5925: case 541:
        !          5926: #line 2976 "cp-parse.y"
        !          5927: { cplus_expand_throw (NULL_TREE); ;
        !          5928:     break;}
        !          5929: case 542:
        !          5930: #line 2977 "cp-parse.y"
        !          5931: { cplus_expand_throw (yyvsp[-1].ttype); ;
        !          5932:     break;}
        !          5933: case 543:
        !          5934: #line 2979 "cp-parse.y"
        !          5935: { cplus_expand_raise (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, 0);
        !          5936:                  finish_stmt (); ;
        !          5937:     break;}
        !          5938: case 544:
        !          5939: #line 2982 "cp-parse.y"
        !          5940: { cplus_expand_raise (yyvsp[-2].ttype, NULL_TREE, NULL_TREE, 0);
        !          5941:                  finish_stmt (); ;
        !          5942:     break;}
        !          5943: case 545:
        !          5944: #line 2985 "cp-parse.y"
        !          5945: { cplus_expand_raise (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, 0);
        !          5946:                  finish_stmt (); ;
        !          5947:     break;}
        !          5948: case 546:
        !          5949: #line 2988 "cp-parse.y"
        !          5950: { cplus_expand_raise (yyvsp[-2].ttype, NULL_TREE, NULL_TREE, 0);
        !          5951:                  finish_stmt (); ;
        !          5952:     break;}
        !          5953: case 547:
        !          5954: #line 2991 "cp-parse.y"
        !          5955: { cplus_expand_reraise (yyvsp[-1].ttype);
        !          5956:                  finish_stmt (); ;
        !          5957:     break;}
        !          5958: case 548:
        !          5959: #line 2994 "cp-parse.y"
        !          5960: {
        !          5961:                  tree decl = cplus_expand_end_try (yyvsp[-3].itype);
        !          5962:                  yyvsp[-2].ttype = current_exception_type;
        !          5963:                  yyvsp[0].ttype = current_exception_decl;
        !          5964:                  yyval.ttype = current_exception_object;
        !          5965:                  cplus_expand_start_except (yyvsp[-1].ttype, decl);
        !          5966:                  pushlevel (0);
        !          5967:                  clear_last_expr ();
        !          5968:                  push_momentary ();
        !          5969:                  expand_start_bindings (0);
        !          5970:                  stmt_decl_msg = 0;
        !          5971:                ;
        !          5972:     break;}
        !          5973: case 549:
        !          5974: #line 3007 "cp-parse.y"
        !          5975: {
        !          5976:                  tree decls = getdecls ();
        !          5977:                  /* If there is a default exception to handle,
        !          5978:                     handle it here.  */
        !          5979:                  if (yyvsp[-1].ttype)
        !          5980:                    {
        !          5981:                      tree decl = build_decl (CPLUS_CATCH_DECL, NULL_TREE, 0);
        !          5982:                      tree block;
        !          5983: 
        !          5984:                      pushlevel (1);
        !          5985:                      expand_start_bindings (0);
        !          5986:                      expand_expr (yyvsp[-1].ttype, 0, 0, 0);
        !          5987:                      expand_end_bindings (0, 1, 0);
        !          5988:                      block = poplevel (1, 0, 0);
        !          5989: 
        !          5990:                      /* This is a catch block.  */
        !          5991:                      TREE_LANG_FLAG_2 (block) = 1;
        !          5992:                      BLOCK_VARS (block) = decl;
        !          5993:                    }
        !          5994: 
        !          5995:                  expand_end_bindings (decls, decls != 0, 1);
        !          5996:                  poplevel (decls != 0, 1, 0);
        !          5997:                  pop_momentary ();
        !          5998:                  current_exception_type = yyvsp[-5].ttype;
        !          5999:                  current_exception_decl = yyvsp[-3].ttype;
        !          6000:                  current_exception_object = yyvsp[-2].ttype;
        !          6001:                  cplus_expand_end_except (yyvsp[-1].ttype);
        !          6002:                ;
        !          6003:     break;}
        !          6004: case 550:
        !          6005: #line 3036 "cp-parse.y"
        !          6006: {
        !          6007:                  cplus_expand_end_try (yyvsp[-1].itype);
        !          6008:                  /* These are the important actions of
        !          6009:                     `cplus_expand_end_except' which we must emulate.  */
        !          6010:                  if (expand_escape_except ())
        !          6011:                    expand_end_except ();
        !          6012:                  expand_end_bindings (0, 0, 1);
        !          6013:                  poplevel (0, 0, 0);
        !          6014:                ;
        !          6015:     break;}
        !          6016: case 551:
        !          6017: #line 3046 "cp-parse.y"
        !          6018: {
        !          6019:                  tree decl = cplus_expand_end_try (yyvsp[-2].itype);
        !          6020:                  yyvsp[-1].ttype = current_exception_type;
        !          6021:                  yyvsp[0].ttype = current_exception_decl;
        !          6022:                  yyval.ttype = current_exception_object;
        !          6023:                  cplus_expand_start_except (NULL, decl);
        !          6024:                  pushlevel (0);
        !          6025:                  clear_last_expr ();
        !          6026:                  push_momentary ();
        !          6027:                  expand_start_bindings (0);
        !          6028:                  stmt_decl_msg = 0;
        !          6029:                ;
        !          6030:     break;}
        !          6031: case 552:
        !          6032: #line 3059 "cp-parse.y"
        !          6033: {
        !          6034:                  tree decls = getdecls ();
        !          6035:                  /* If there is a default exception to handle,
        !          6036:                     handle it here.  */
        !          6037:                  if (yyvsp[0].ttype)
        !          6038:                    {
        !          6039:                      tree decl = build_decl (CPLUS_CATCH_DECL, NULL_TREE, 0);
        !          6040:                      tree block;
        !          6041: 
        !          6042:                      pushlevel (1);
        !          6043:                      expand_start_bindings (0);
        !          6044:                      expand_expr (yyvsp[0].ttype, 0, 0, 0);
        !          6045:                      expand_end_bindings (0, 1, 0);
        !          6046:                      block = poplevel (1, 0, 0);
        !          6047: 
        !          6048:                      /* This is a catch block.  */
        !          6049:                      TREE_LANG_FLAG_2 (block) = 1;
        !          6050:                      BLOCK_VARS (block) = decl;
        !          6051:                    }
        !          6052: 
        !          6053:                  expand_end_bindings (decls, decls != 0, 1);
        !          6054:                  poplevel (decls != 0, 1, 0);
        !          6055:                  pop_momentary ();
        !          6056:                  current_exception_type = yyvsp[-3].ttype;
        !          6057:                  current_exception_decl = yyvsp[-2].ttype;
        !          6058:                  current_exception_object = yyvsp[-1].ttype;
        !          6059:                  cplus_expand_end_except (yyvsp[0].ttype);
        !          6060:                ;
        !          6061:     break;}
        !          6062: case 553:
        !          6063: #line 3088 "cp-parse.y"
        !          6064: { tree name = get_identifier ("(compiler error)");
        !          6065:                  tree orig_ex_type = current_exception_type;
        !          6066:                  tree orig_ex_decl = current_exception_decl;
        !          6067:                  tree orig_ex_obj = current_exception_object;
        !          6068:                  tree decl = cplus_expand_end_try (yyvsp[-2].itype), decls;
        !          6069: 
        !          6070:                  /* Start hidden EXCEPT.  */
        !          6071:                  cplus_expand_start_except (name, decl);
        !          6072:                  pushlevel (0);
        !          6073:                  clear_last_expr ();
        !          6074:                  push_momentary ();
        !          6075:                  expand_start_bindings (0);
        !          6076:                  stmt_decl_msg = 0;
        !          6077: 
        !          6078:                  /* This sets up the reraise.  */
        !          6079:                  cplus_expand_reraise (yyvsp[0].ttype);
        !          6080: 
        !          6081:                  decls = getdecls ();
        !          6082:                  expand_end_bindings (decls, decls != 0, 1);
        !          6083:                  poplevel (decls != 0, 1, 0);
        !          6084:                  pop_momentary ();
        !          6085:                  current_exception_type = orig_ex_type;
        !          6086:                  current_exception_decl = orig_ex_decl;
        !          6087:                  current_exception_object = orig_ex_obj;
        !          6088:                  /* This will reraise for us.  */
        !          6089:                  cplus_expand_end_except (error_mark_node);
        !          6090:                  if (yychar == YYEMPTY)
        !          6091:                    yychar = YYLEX;
        !          6092:                  if (yychar != ';')
        !          6093:                    error ("missing ';' after reraise statement");
        !          6094:                ;
        !          6095:     break;}
        !          6096: case 554:
        !          6097: #line 3120 "cp-parse.y"
        !          6098: { yyerror ("`except' missing after `try' statement");
        !          6099:                  /* Terminate the binding contour started by special
        !          6100:                     code in `.pushlevel'.  Automagically pops off
        !          6101:                     the conditional we started for `try' stmt.  */
        !          6102:                  cplus_expand_end_try (yyvsp[0].itype);
        !          6103:                  expand_end_bindings (0, 0, 1);
        !          6104:                  poplevel (0, 0, 0);
        !          6105:                  pop_momentary ();
        !          6106:                  YYERROR; ;
        !          6107:     break;}
        !          6108: case 555:
        !          6109: #line 3135 "cp-parse.y"
        !          6110: {
        !          6111:                  yyval.itype = 1;
        !          6112:                  pop_implicit_try_blocks (NULL_TREE);
        !          6113:                ;
        !          6114:     break;}
        !          6115: case 556:
        !          6116: #line 3140 "cp-parse.y"
        !          6117: {
        !          6118:                  yyval.itype = 1;
        !          6119:                  pop_implicit_try_blocks (NULL_TREE);
        !          6120:                ;
        !          6121:     break;}
        !          6122: case 557:
        !          6123: #line 3145 "cp-parse.y"
        !          6124: {
        !          6125:                  yyval.itype = 0;
        !          6126:                  pop_implicit_try_blocks (NULL_TREE);
        !          6127:                ;
        !          6128:     break;}
        !          6129: case 558:
        !          6130: #line 3153 "cp-parse.y"
        !          6131: { tree label;
        !          6132:                do_label:
        !          6133:                  label = define_label (input_filename, lineno, yyvsp[-1].ttype);
        !          6134:                  if (label)
        !          6135:                    expand_label (label);
        !          6136:                ;
        !          6137:     break;}
        !          6138: case 559:
        !          6139: #line 3160 "cp-parse.y"
        !          6140: { goto do_label; ;
        !          6141:     break;}
        !          6142: case 560:
        !          6143: #line 3162 "cp-parse.y"
        !          6144: { tree label = define_label (input_filename, lineno, yyvsp[0].ttype);
        !          6145:                  if (label)
        !          6146:                    expand_label (label);
        !          6147:                ;
        !          6148:     break;}
        !          6149: case 561:
        !          6150: #line 3168 "cp-parse.y"
        !          6151: { cplus_expand_start_try (0); ;
        !          6152:     break;}
        !          6153: case 563:
        !          6154: #line 3174 "cp-parse.y"
        !          6155: {
        !          6156:                  yyval.itype = 1;
        !          6157:                  pop_implicit_try_blocks (NULL_TREE);
        !          6158:                ;
        !          6159:     break;}
        !          6160: case 564:
        !          6161: #line 3179 "cp-parse.y"
        !          6162: {
        !          6163:                  yyval.itype = 1;
        !          6164:                  pop_implicit_try_blocks (NULL_TREE);
        !          6165:                ;
        !          6166:     break;}
        !          6167: case 565:
        !          6168: #line 3184 "cp-parse.y"
        !          6169: {
        !          6170:                  yyval.itype = 0;
        !          6171:                  pop_implicit_try_blocks (NULL_TREE);
        !          6172:                ;
        !          6173:     break;}
        !          6174: case 567:
        !          6175: #line 3191 "cp-parse.y"
        !          6176: { cplus_expand_start_try (0); ;
        !          6177:     break;}
        !          6178: case 569:
        !          6179: #line 3195 "cp-parse.y"
        !          6180: { yyval.ttype = NULL_TREE; ;
        !          6181:     break;}
        !          6182: case 570:
        !          6183: #line 3197 "cp-parse.y"
        !          6184: {
        !          6185:                  tree type = lookup_exception_type (current_class_type, current_class_name, yyvsp[0].ttype);
        !          6186:                  if (type == NULL_TREE)
        !          6187:                    {
        !          6188:                      error ("`%s' is not an exception type",
        !          6189:                             IDENTIFIER_POINTER (TREE_VALUE (yyvsp[0].ttype)));
        !          6190:                      current_exception_type = NULL_TREE;
        !          6191:                      TREE_TYPE (current_exception_object) = error_mark_node;
        !          6192:                    }
        !          6193:                  else
        !          6194:                    {
        !          6195:                      current_exception_type = type;
        !          6196:                      /* In-place union.  */
        !          6197:                      TREE_TYPE (current_exception_object) = type;
        !          6198:                    }
        !          6199:                  yyvsp[0].ttype = cplus_expand_start_catch (yyvsp[0].ttype);
        !          6200:                  pushlevel (1);
        !          6201:                  expand_start_bindings (0);
        !          6202:                ;
        !          6203:     break;}
        !          6204: case 571:
        !          6205: #line 3217 "cp-parse.y"
        !          6206: {
        !          6207:                  expand_end_bindings (0, 1, 0);
        !          6208:                  yyvsp[0].ttype = poplevel (1, 0, 0);
        !          6209: 
        !          6210:                  cplus_expand_end_catch (0);
        !          6211: 
        !          6212:                  /* Mark this as a catch block.  */
        !          6213:                  TREE_LANG_FLAG_2 (yyvsp[0].ttype) = 1;
        !          6214:                  if (yyvsp[-2].ttype != error_mark_node)
        !          6215:                    {
        !          6216:                      tree decl = build_decl (CPLUS_CATCH_DECL, DECL_NAME (yyvsp[-2].ttype), 0);
        !          6217:                      DECL_RTL (decl) = DECL_RTL (yyvsp[-2].ttype);
        !          6218:                      TREE_CHAIN (decl) = BLOCK_VARS (yyvsp[0].ttype);
        !          6219:                      BLOCK_VARS (yyvsp[0].ttype) = decl;
        !          6220:                    }
        !          6221:                ;
        !          6222:     break;}
        !          6223: case 572:
        !          6224: #line 3234 "cp-parse.y"
        !          6225: {
        !          6226:                  if (yyvsp[-1].ttype)
        !          6227:                    error ("duplicate default in exception handler");
        !          6228:                  current_exception_type = NULL_TREE;
        !          6229:                  /* Takes it right out of scope.  */
        !          6230:                  TREE_TYPE (current_exception_object) = error_mark_node;
        !          6231: 
        !          6232:                  if (! expand_catch_default ())
        !          6233:                    compiler_error ("default catch botch");
        !          6234: 
        !          6235:                  /* The default exception is handled as the
        !          6236:                     last in the chain of exceptions handled.  */
        !          6237:                  do_pending_stack_adjust ();
        !          6238:                  start_sequence ();
        !          6239:                  yyvsp[-1].ttype = make_node (RTL_EXPR);
        !          6240:                  TREE_TYPE (yyvsp[-1].ttype) = void_type_node;
        !          6241:                ;
        !          6242:     break;}
        !          6243: case 573:
        !          6244: #line 3252 "cp-parse.y"
        !          6245: {
        !          6246:                  do_pending_stack_adjust ();
        !          6247:                  if (! expand_catch (NULL_TREE))
        !          6248:                    compiler_error ("except nesting botch");
        !          6249:                  if (! expand_end_catch ())
        !          6250:                    compiler_error ("except nesting botch");
        !          6251:                  RTL_EXPR_SEQUENCE (yyvsp[-3].ttype) = (struct rtx_def *)get_insns ();
        !          6252:                  if (yyvsp[0].ttype)
        !          6253:                    {
        !          6254:                      /* Mark this block as the default catch block.  */
        !          6255:                      TREE_LANG_FLAG_1 (yyvsp[0].ttype) = 1;
        !          6256:                      TREE_LANG_FLAG_2 (yyvsp[0].ttype) = 1;
        !          6257:                    }
        !          6258:                  end_sequence ();
        !          6259:                ;
        !          6260:     break;}
        !          6261: case 574:
        !          6262: #line 3271 "cp-parse.y"
        !          6263: { yyval.ttype = NULL_TREE; ;
        !          6264:     break;}
        !          6265: case 576:
        !          6266: #line 3276 "cp-parse.y"
        !          6267: { yyval.ttype = NULL_TREE; ;
        !          6268:     break;}
        !          6269: case 577:
        !          6270: #line 3278 "cp-parse.y"
        !          6271: {
        !          6272:                  extern tree ansi_expand_start_catch ();
        !          6273:                  extern tree cplus_exception_name ();
        !          6274:                  tree type = groktypename (yyvsp[-2].ttype);
        !          6275:                  current_exception_type = type;
        !          6276:                  /* In-place union.  */
        !          6277:                  if (yyvsp[-1].ttype)
        !          6278:                    {
        !          6279:                      tree tmp;
        !          6280:                      tmp = pushdecl (build_decl (VAR_DECL, yyvsp[-1].ttype, type));
        !          6281:                      current_exception_object =
        !          6282:                          build1 (INDIRECT_REF, type, tmp);
        !          6283:                     }
        !          6284:                  yyvsp[-2].ttype = ansi_expand_start_catch(type);
        !          6285:                  pushlevel (1);
        !          6286:                  expand_start_bindings (0);
        !          6287:                ;
        !          6288:     break;}
        !          6289: case 578:
        !          6290: #line 3296 "cp-parse.y"
        !          6291: {
        !          6292:                  expand_end_bindings (0, 1, 0);
        !          6293:                  yyvsp[0].ttype = poplevel (1, 0, 0);
        !          6294: 
        !          6295:                  cplus_expand_end_catch (0);
        !          6296: 
        !          6297:                  /* Mark this as a catch block.  */
        !          6298:                  TREE_LANG_FLAG_2 (yyvsp[0].ttype) = 1;
        !          6299:                  if (yyvsp[-4].ttype != error_mark_node)
        !          6300:                    {
        !          6301:                      tree decl = build_decl (CPLUS_CATCH_DECL, DECL_NAME (yyvsp[-4].ttype), 0);
        !          6302:                      DECL_RTL (decl) = DECL_RTL (yyvsp[-4].ttype);
        !          6303:                      TREE_CHAIN (decl) = BLOCK_VARS (yyvsp[0].ttype);
        !          6304:                      BLOCK_VARS (yyvsp[0].ttype) = decl;
        !          6305:                    }
        !          6306:                ;
        !          6307:     break;}
        !          6308: case 579:
        !          6309: #line 3316 "cp-parse.y"
        !          6310: { yyval.ttype = NULL_TREE; ;
        !          6311:     break;}
        !          6312: case 580:
        !          6313: #line 3318 "cp-parse.y"
        !          6314: { yyval.ttype = yyvsp[-1].ttype; ;
        !          6315:     break;}
        !          6316: case 581:
        !          6317: #line 3320 "cp-parse.y"
        !          6318: { yyval.ttype = NULL_TREE; ;
        !          6319:     break;}
        !          6320: case 582:
        !          6321: #line 3325 "cp-parse.y"
        !          6322: { yyval.itype = 0; ;
        !          6323:     break;}
        !          6324: case 583:
        !          6325: #line 3327 "cp-parse.y"
        !          6326: { yyval.itype = 0; ;
        !          6327:     break;}
        !          6328: case 584:
        !          6329: #line 3329 "cp-parse.y"
        !          6330: { yyval.itype = 1; ;
        !          6331:     break;}
        !          6332: case 585:
        !          6333: #line 3331 "cp-parse.y"
        !          6334: { yyval.itype = -1; ;
        !          6335:     break;}
        !          6336: case 586:
        !          6337: #line 3338 "cp-parse.y"
        !          6338: { if (pedantic)
        !          6339:                    warning ("ANSI C forbids use of `asm' keyword");
        !          6340:                  emit_line_note (input_filename, lineno); ;
        !          6341:     break;}
        !          6342: case 587:
        !          6343: #line 3342 "cp-parse.y"
        !          6344: { if (pedantic)
        !          6345:                    warning ("ANSI C forbids use of `asm' keyword");
        !          6346:                  emit_line_note (input_filename, lineno); ;
        !          6347:     break;}
        !          6348: case 588:
        !          6349: #line 3349 "cp-parse.y"
        !          6350: { yyval.ttype = NULL_TREE; ;
        !          6351:     break;}
        !          6352: case 590:
        !          6353: #line 3352 "cp-parse.y"
        !          6354: { yyval.ttype = NULL_TREE; ;
        !          6355:     break;}
        !          6356: case 591:
        !          6357: #line 3358 "cp-parse.y"
        !          6358: { yyval.ttype = NULL_TREE; ;
        !          6359:     break;}
        !          6360: case 594:
        !          6361: #line 3365 "cp-parse.y"
        !          6362: { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
        !          6363:     break;}
        !          6364: case 595:
        !          6365: #line 3370 "cp-parse.y"
        !          6366: { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[-1].ttype); ;
        !          6367:     break;}
        !          6368: case 596:
        !          6369: #line 3375 "cp-parse.y"
        !          6370: { yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, NULL_TREE); ;
        !          6371:     break;}
        !          6372: case 597:
        !          6373: #line 3377 "cp-parse.y"
        !          6374: { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
        !          6375:     break;}
        !          6376: case 598:
        !          6377: #line 3386 "cp-parse.y"
        !          6378: {
        !          6379:                  if (strict_prototype)
        !          6380:                    yyval.ttype = void_list_node;
        !          6381:                  else
        !          6382:                    yyval.ttype = NULL_TREE;
        !          6383:                ;
        !          6384:     break;}
        !          6385: case 599:
        !          6386: #line 3393 "cp-parse.y"
        !          6387: {
        !          6388:                  yyval.ttype = chainon (yyval.ttype, void_list_node);
        !          6389:                  TREE_PARMLIST (yyval.ttype) = 1;
        !          6390:                ;
        !          6391:     break;}
        !          6392: case 600:
        !          6393: #line 3398 "cp-parse.y"
        !          6394: {
        !          6395:                  TREE_PARMLIST (yyval.ttype) = 1;
        !          6396:                ;
        !          6397:     break;}
        !          6398: case 601:
        !          6399: #line 3403 "cp-parse.y"
        !          6400: {
        !          6401:                  TREE_PARMLIST (yyval.ttype) = 1;
        !          6402:                ;
        !          6403:     break;}
        !          6404: case 602:
        !          6405: #line 3407 "cp-parse.y"
        !          6406: {
        !          6407:                  yyval.ttype = NULL_TREE;
        !          6408:                ;
        !          6409:     break;}
        !          6410: case 603:
        !          6411: #line 3411 "cp-parse.y"
        !          6412: {
        !          6413:                  TREE_PARMLIST (yyval.ttype) = 1;
        !          6414:                ;
        !          6415:     break;}
        !          6416: case 604:
        !          6417: #line 3415 "cp-parse.y"
        !          6418: {
        !          6419:                  TREE_PARMLIST (yyval.ttype) = 1;
        !          6420:                ;
        !          6421:     break;}
        !          6422: case 605:
        !          6423: #line 3419 "cp-parse.y"
        !          6424: {
        !          6425:                  /* This helps us recover from really nasty
        !          6426:                     parse errors, for example, a missing right
        !          6427:                     parenthesis.  */
        !          6428:                  yyerror ("possibly missing ')'");
        !          6429:                  yyval.ttype = chainon (yyval.ttype, void_list_node);
        !          6430:                  TREE_PARMLIST (yyval.ttype) = 1;
        !          6431:                  yyungetc (':', 0);
        !          6432:                  yychar = ')';
        !          6433:                ;
        !          6434:     break;}
        !          6435: case 606:
        !          6436: #line 3434 "cp-parse.y"
        !          6437: { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
        !          6438:     break;}
        !          6439: case 607:
        !          6440: #line 3436 "cp-parse.y"
        !          6441: { yyval.ttype = build_tree_list (yyvsp[0].ttype, yyval.ttype); ;
        !          6442:     break;}
        !          6443: case 608:
        !          6444: #line 3438 "cp-parse.y"
        !          6445: { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
        !          6446:     break;}
        !          6447: case 609:
        !          6448: #line 3440 "cp-parse.y"
        !          6449: { yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ;
        !          6450:     break;}
        !          6451: case 610:
        !          6452: #line 3442 "cp-parse.y"
        !          6453: { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
        !          6454:     break;}
        !          6455: case 611:
        !          6456: #line 3444 "cp-parse.y"
        !          6457: { yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ;
        !          6458:     break;}
        !          6459: case 612:
        !          6460: #line 3465 "cp-parse.y"
        !          6461: { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[0].ttype);
        !          6462:                  see_typename (); ;
        !          6463:     break;}
        !          6464: case 613:
        !          6465: #line 3468 "cp-parse.y"
        !          6466: { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[0].ttype);
        !          6467:                  see_typename (); ;
        !          6468:     break;}
        !          6469: case 616:
        !          6470: #line 3475 "cp-parse.y"
        !          6471: { yyval.ttype = yyvsp[0].ttype; ;
        !          6472:     break;}
        !          6473: case 617:
        !          6474: #line 3479 "cp-parse.y"
        !          6475: { see_typename (); ;
        !          6476:     break;}
        !          6477: case 618:
        !          6478: #line 3483 "cp-parse.y"
        !          6479: { dont_see_typename (); ;
        !          6480:     break;}
        !          6481: case 619:
        !          6482: #line 3487 "cp-parse.y"
        !          6483: {
        !          6484:          if (yyvsp[-1].ttype == error_mark_node)
        !          6485:             yyval.itype = 0;
        !          6486:           else
        !          6487:             {
        !          6488:               yyval.itype = 1;
        !          6489:               pushclass (yyvsp[-1].ttype, 1);
        !          6490:             }
        !          6491:         ;
        !          6492:     break;}
        !          6493: case 620:
        !          6494: #line 3500 "cp-parse.y"
        !          6495: {
        !          6496:                  warning ("type specifier omitted for parameter");
        !          6497:                  yyval.ttype = build_tree_list (TREE_PURPOSE (TREE_VALUE (yyvsp[-2].ttype)), yyval.ttype);
        !          6498:                ;
        !          6499:     break;}
        !          6500: case 621:
        !          6501: #line 3508 "cp-parse.y"
        !          6502: { yyval.ttype = NULL_TREE; ;
        !          6503:     break;}
        !          6504: case 622:
        !          6505: #line 3510 "cp-parse.y"
        !          6506: { yyval.ttype = yyvsp[0].ttype; ;
        !          6507:     break;}
        !          6508: case 623:
        !          6509: #line 3512 "cp-parse.y"
        !          6510: { yyval.ttype = yyvsp[-1].ttype; ;
        !          6511:     break;}
        !          6512: case 624:
        !          6513: #line 3517 "cp-parse.y"
        !          6514: { yyval.ttype = void_list_node; ;
        !          6515:     break;}
        !          6516: case 625:
        !          6517: #line 3519 "cp-parse.y"
        !          6518: { yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
        !          6519:     break;}
        !          6520: case 626:
        !          6521: #line 3521 "cp-parse.y"
        !          6522: { yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
        !          6523:     break;}
        !          6524: case 627:
        !          6525: #line 3523 "cp-parse.y"
        !          6526: { yyval.ttype = build_decl_list (void_type_node, yyvsp[0].ttype); ;
        !          6527:     break;}
        !          6528: case 628:
        !          6529: #line 3525 "cp-parse.y"
        !          6530: { yyval.ttype = build_decl_list (void_type_node, yyvsp[0].ttype); ;
        !          6531:     break;}
        !          6532: case 629:
        !          6533: #line 3527 "cp-parse.y"
        !          6534: { yyval.ttype = build_decl_list (yyval.ttype, yyvsp[0].ttype); ;
        !          6535:     break;}
        !          6536: case 631:
        !          6537: #line 3533 "cp-parse.y"
        !          6538: { yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
        !          6539:     break;}
        !          6540: case 633:
        !          6541: #line 3539 "cp-parse.y"
        !          6542: {
        !          6543:                  TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype;
        !          6544:                  yyval.ttype = yyvsp[0].ttype;
        !          6545:                ;
        !          6546:     break;}
        !          6547: case 635:
        !          6548: #line 3548 "cp-parse.y"
        !          6549: {
        !          6550:                  TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype;
        !          6551:                  yyval.ttype = yyvsp[0].ttype;
        !          6552:                ;
        !          6553:     break;}
        !          6554: case 636:
        !          6555: #line 3556 "cp-parse.y"
        !          6556: { yyval.ttype = ansi_opname[MULT_EXPR]; ;
        !          6557:     break;}
        !          6558: case 637:
        !          6559: #line 3558 "cp-parse.y"
        !          6560: { yyval.ttype = ansi_opname[TRUNC_DIV_EXPR]; ;
        !          6561:     break;}
        !          6562: case 638:
        !          6563: #line 3560 "cp-parse.y"
        !          6564: { yyval.ttype = ansi_opname[TRUNC_MOD_EXPR]; ;
        !          6565:     break;}
        !          6566: case 639:
        !          6567: #line 3562 "cp-parse.y"
        !          6568: { yyval.ttype = ansi_opname[PLUS_EXPR]; ;
        !          6569:     break;}
        !          6570: case 640:
        !          6571: #line 3564 "cp-parse.y"
        !          6572: { yyval.ttype = ansi_opname[MINUS_EXPR]; ;
        !          6573:     break;}
        !          6574: case 641:
        !          6575: #line 3566 "cp-parse.y"
        !          6576: { yyval.ttype = ansi_opname[BIT_AND_EXPR]; ;
        !          6577:     break;}
        !          6578: case 642:
        !          6579: #line 3568 "cp-parse.y"
        !          6580: { yyval.ttype = ansi_opname[BIT_IOR_EXPR]; ;
        !          6581:     break;}
        !          6582: case 643:
        !          6583: #line 3570 "cp-parse.y"
        !          6584: { yyval.ttype = ansi_opname[BIT_XOR_EXPR]; ;
        !          6585:     break;}
        !          6586: case 644:
        !          6587: #line 3572 "cp-parse.y"
        !          6588: { yyval.ttype = ansi_opname[BIT_NOT_EXPR]; ;
        !          6589:     break;}
        !          6590: case 645:
        !          6591: #line 3574 "cp-parse.y"
        !          6592: { yyval.ttype = ansi_opname[COMPOUND_EXPR]; ;
        !          6593:     break;}
        !          6594: case 646:
        !          6595: #line 3576 "cp-parse.y"
        !          6596: { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
        !          6597:     break;}
        !          6598: case 647:
        !          6599: #line 3578 "cp-parse.y"
        !          6600: { yyval.ttype = ansi_opname[LT_EXPR]; ;
        !          6601:     break;}
        !          6602: case 648:
        !          6603: #line 3580 "cp-parse.y"
        !          6604: { yyval.ttype = ansi_opname[GT_EXPR]; ;
        !          6605:     break;}
        !          6606: case 649:
        !          6607: #line 3582 "cp-parse.y"
        !          6608: { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
        !          6609:     break;}
        !          6610: case 650:
        !          6611: #line 3584 "cp-parse.y"
        !          6612: { yyval.ttype = ansi_assopname[yyvsp[0].code]; ;
        !          6613:     break;}
        !          6614: case 651:
        !          6615: #line 3586 "cp-parse.y"
        !          6616: {
        !          6617:                  yyval.ttype = ansi_opname [MODIFY_EXPR];
        !          6618:                  if (current_class_type)
        !          6619:                    {
        !          6620:                      TYPE_HAS_ASSIGNMENT (current_class_type) = 1;
        !          6621:                      TYPE_GETS_ASSIGNMENT (current_class_type) = 1;
        !          6622:                    }
        !          6623:                ;
        !          6624:     break;}
        !          6625: case 652:
        !          6626: #line 3595 "cp-parse.y"
        !          6627: { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
        !          6628:     break;}
        !          6629: case 653:
        !          6630: #line 3597 "cp-parse.y"
        !          6631: { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
        !          6632:     break;}
        !          6633: case 654:
        !          6634: #line 3599 "cp-parse.y"
        !          6635: { yyval.ttype = ansi_opname[POSTINCREMENT_EXPR]; ;
        !          6636:     break;}
        !          6637: case 655:
        !          6638: #line 3601 "cp-parse.y"
        !          6639: { yyval.ttype = ansi_opname[PREDECREMENT_EXPR]; ;
        !          6640:     break;}
        !          6641: case 656:
        !          6642: #line 3603 "cp-parse.y"
        !          6643: { yyval.ttype = ansi_opname[TRUTH_ANDIF_EXPR]; ;
        !          6644:     break;}
        !          6645: case 657:
        !          6646: #line 3605 "cp-parse.y"
        !          6647: { yyval.ttype = ansi_opname[TRUTH_ORIF_EXPR]; ;
        !          6648:     break;}
        !          6649: case 658:
        !          6650: #line 3607 "cp-parse.y"
        !          6651: { yyval.ttype = ansi_opname[TRUTH_NOT_EXPR]; ;
        !          6652:     break;}
        !          6653: case 659:
        !          6654: #line 3609 "cp-parse.y"
        !          6655: { yyval.ttype = ansi_opname[COND_EXPR]; ;
        !          6656:     break;}
        !          6657: case 660:
        !          6658: #line 3611 "cp-parse.y"
        !          6659: { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
        !          6660:     break;}
        !          6661: case 661:
        !          6662: #line 3613 "cp-parse.y"
        !          6663: { yyval.ttype = ansi_opname[COMPONENT_REF];
        !          6664:                  if (current_class_type)
        !          6665:                    {
        !          6666:                      tree t = current_class_type;
        !          6667:                      while (t)
        !          6668:                        {
        !          6669:                          TYPE_OVERLOADS_ARROW (t) = 1;
        !          6670:                          t = TYPE_NEXT_VARIANT (t);
        !          6671:                        }
        !          6672:                    }
        !          6673:                ;
        !          6674:     break;}
        !          6675: case 662:
        !          6676: #line 3625 "cp-parse.y"
        !          6677: { yyval.ttype = ansi_opname[MEMBER_REF];
        !          6678:                  if (current_class_type)
        !          6679:                    {
        !          6680:                      tree t = current_class_type;
        !          6681:                      while (t)
        !          6682:                        {
        !          6683:                          TYPE_OVERLOADS_ARROW (t) = 1;
        !          6684:                          t = TYPE_NEXT_VARIANT (t);
        !          6685:                        }
        !          6686:                    }
        !          6687:                ;
        !          6688:     break;}
        !          6689: case 663:
        !          6690: #line 3637 "cp-parse.y"
        !          6691: {
        !          6692:                  if (yychar == YYEMPTY)
        !          6693:                    yychar = YYLEX;
        !          6694:                  if (yychar == '(' || yychar == LEFT_RIGHT)
        !          6695:                    {
        !          6696:                      yyval.ttype = ansi_opname[METHOD_CALL_EXPR];
        !          6697:                      if (current_class_type)
        !          6698:                        {
        !          6699:                          tree t = current_class_type;
        !          6700:                          while (t)
        !          6701:                            {
        !          6702:                              TYPE_OVERLOADS_METHOD_CALL_EXPR (t) = 1;
        !          6703:                              t = TYPE_NEXT_VARIANT (t);
        !          6704:                            }
        !          6705:                        }
        !          6706:                    }
        !          6707:                  else
        !          6708:                    {
        !          6709:                      yyval.ttype = build_parse_node (CALL_EXPR, ansi_opname[COMPONENT_REF], void_list_node, yyvsp[0].ttype);
        !          6710:                      if (current_class_type)
        !          6711:                        {
        !          6712:                          tree t = current_class_type;
        !          6713:                          while (t)
        !          6714:                            {
        !          6715:                              TYPE_OVERLOADS_ARROW (t) = 1;
        !          6716:                              t = TYPE_NEXT_VARIANT (t);
        !          6717:                            }
        !          6718:                        }
        !          6719:                    }
        !          6720:                ;
        !          6721:     break;}
        !          6722: case 664:
        !          6723: #line 3668 "cp-parse.y"
        !          6724: { yyval.ttype = ansi_opname[CALL_EXPR];
        !          6725:                  if (current_class_type)
        !          6726:                    {
        !          6727:                      tree t = current_class_type;
        !          6728:                      while (t)
        !          6729:                        {
        !          6730:                          TYPE_OVERLOADS_CALL_EXPR (t) = 1;
        !          6731:                          t = TYPE_NEXT_VARIANT (t);
        !          6732:                        }
        !          6733:                    }
        !          6734:                ;
        !          6735:     break;}
        !          6736: case 665:
        !          6737: #line 3680 "cp-parse.y"
        !          6738: { yyval.ttype = ansi_opname[ARRAY_REF];
        !          6739:                  if (current_class_type)
        !          6740:                    {
        !          6741:                      tree t = current_class_type;
        !          6742:                      while (t)
        !          6743:                        {
        !          6744:                          TYPE_OVERLOADS_ARRAY_REF (t) = 1;
        !          6745:                          t = TYPE_NEXT_VARIANT (t);
        !          6746:                        }
        !          6747:                    }
        !          6748:                ;
        !          6749:     break;}
        !          6750: case 666:
        !          6751: #line 3692 "cp-parse.y"
        !          6752: {
        !          6753:                  yyval.ttype = ansi_opname[NEW_EXPR];
        !          6754:                  if (current_class_type)
        !          6755:                    {
        !          6756:                      tree t = current_class_type;
        !          6757:                      while (t)
        !          6758:                        {
        !          6759:                          TREE_GETS_NEW (t) = 1;
        !          6760:                          t = TYPE_NEXT_VARIANT (t);
        !          6761:                        }
        !          6762:                    }
        !          6763:                ;
        !          6764:     break;}
        !          6765: case 667:
        !          6766: #line 3705 "cp-parse.y"
        !          6767: {
        !          6768:                  yyval.ttype = ansi_opname[DELETE_EXPR];
        !          6769:                  if (current_class_type)
        !          6770:                    {
        !          6771:                      tree t = current_class_type;
        !          6772:                      while (t)
        !          6773:                        {
        !          6774:                          TREE_GETS_DELETE (t) = 1;
        !          6775:                          t = TYPE_NEXT_VARIANT (t);
        !          6776:                        }
        !          6777:                    }
        !          6778:                ;
        !          6779:     break;}
        !          6780: case 668:
        !          6781: #line 3721 "cp-parse.y"
        !          6782: {
        !          6783:                  yyval.ttype = build1 (TYPE_EXPR, yyvsp[-1].ttype, yyvsp[0].ttype);
        !          6784:                ;
        !          6785:     break;}
        !          6786: case 669:
        !          6787: #line 3725 "cp-parse.y"
        !          6788: { yyval.ttype = ansi_opname[ERROR_MARK]; ;
        !          6789:     break;}
        !          6790: }
        !          6791:    /* the action file gets copied in in place of this dollarsign */
        !          6792: #line 440 "bison.simple"
        !          6793: 
        !          6794:   yyvsp -= yylen;
        !          6795:   yyssp -= yylen;
        !          6796: #ifdef YYLSP_NEEDED
        !          6797:   yylsp -= yylen;
        !          6798: #endif
        !          6799: 
        !          6800: #if YYDEBUG != 0
        !          6801:   if (yydebug)
        !          6802:     {
        !          6803:       short *ssp1 = yyss - 1;
        !          6804:       fprintf (stderr, "state stack now");
        !          6805:       while (ssp1 != yyssp)
        !          6806:        fprintf (stderr, " %d", *++ssp1);
        !          6807:       fprintf (stderr, "\n");
        !          6808:     }
        !          6809: #endif
        !          6810: 
        !          6811:   *++yyvsp = yyval;
        !          6812: 
        !          6813: #ifdef YYLSP_NEEDED
        !          6814:   yylsp++;
        !          6815:   if (yylen == 0)
        !          6816:     {
        !          6817:       yylsp->first_line = yylloc.first_line;
        !          6818:       yylsp->first_column = yylloc.first_column;
        !          6819:       yylsp->last_line = (yylsp-1)->last_line;
        !          6820:       yylsp->last_column = (yylsp-1)->last_column;
        !          6821:       yylsp->text = 0;
        !          6822:     }
        !          6823:   else
        !          6824:     {
        !          6825:       yylsp->last_line = (yylsp+yylen-1)->last_line;
        !          6826:       yylsp->last_column = (yylsp+yylen-1)->last_column;
        !          6827:     }
        !          6828: #endif
        !          6829: 
        !          6830:   /* Now "shift" the result of the reduction.
        !          6831:      Determine what state that goes to,
        !          6832:      based on the state we popped back to
        !          6833:      and the rule number reduced by.  */
        !          6834: 
        !          6835:   yyn = yyr1[yyn];
        !          6836: 
        !          6837:   yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
        !          6838:   if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
        !          6839:     yystate = yytable[yystate];
        !          6840:   else
        !          6841:     yystate = yydefgoto[yyn - YYNTBASE];
        !          6842: 
        !          6843:   goto yynewstate;
        !          6844: 
        !          6845: yyerrlab:   /* here on detecting error */
        !          6846: 
        !          6847:   if (! yyerrstatus)
        !          6848:     /* If not already recovering from an error, report this error.  */
        !          6849:     {
        !          6850:       ++yynerrs;
        !          6851: 
        !          6852: #ifdef YYERROR_VERBOSE
        !          6853:       yyn = yypact[yystate];
        !          6854: 
        !          6855:       if (yyn > YYFLAG && yyn < YYLAST)
        !          6856:        {
        !          6857:          int size = 0;
        !          6858:          char *msg;
        !          6859:          int x, count;
        !          6860: 
        !          6861:          count = 0;
        !          6862:          for (x = 0; x < (sizeof(yytname) / sizeof(char *)); x++)
        !          6863:            if (yycheck[x + yyn] == x)
        !          6864:              size += strlen(yytname[x]) + 15, count++;
        !          6865:          msg = (char *) malloc(size + 15);
        !          6866:          if (msg != 0)
        !          6867:            {
        !          6868:              strcpy(msg, "parse error");
        !          6869: 
        !          6870:              if (count < 5)
        !          6871:                {
        !          6872:                  count = 0;
        !          6873:                  for (x = 0; x < (sizeof(yytname) / sizeof(char *)); x++)
        !          6874:                    if (yycheck[x + yyn] == x)
        !          6875:                      {
        !          6876:                        strcat(msg, count == 0 ? ", expecting `" : " or `");
        !          6877:                        strcat(msg, yytname[x]);
        !          6878:                        strcat(msg, "'");
        !          6879:                        count++;
        !          6880:                      }
        !          6881:                }
        !          6882:              yyerror(msg);
        !          6883:              free(msg);
        !          6884:            }
        !          6885:          else
        !          6886:            yyerror ("parse error; also virtual memory exceeded");
        !          6887:        }
        !          6888:       else
        !          6889: #endif /* YYERROR_VERBOSE */
        !          6890:        yyerror("parse error");
        !          6891:     }
        !          6892: 
        !          6893: yyerrlab1:   /* here on error raised explicitly by an action */
        !          6894: 
        !          6895:   if (yyerrstatus == 3)
        !          6896:     {
        !          6897:       /* if just tried and failed to reuse lookahead token after an error, discard it.  */
        !          6898: 
        !          6899:       /* return failure if at end of input */
        !          6900:       if (yychar == YYEOF)
        !          6901:        YYABORT;
        !          6902: 
        !          6903: #if YYDEBUG != 0
        !          6904:       if (yydebug)
        !          6905:        fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
        !          6906: #endif
        !          6907: 
        !          6908:       yychar = YYEMPTY;
        !          6909:     }
        !          6910: 
        !          6911:   /* Else will try to reuse lookahead token
        !          6912:      after shifting the error token.  */
        !          6913: 
        !          6914:   yyerrstatus = 3;             /* Each real token shifted decrements this */
        !          6915: 
        !          6916:   goto yyerrhandle;
        !          6917: 
        !          6918: yyerrdefault:  /* current state does not do anything special for the error token. */
        !          6919: 
        !          6920: #if 0
        !          6921:   /* This is wrong; only states that explicitly want error tokens
        !          6922:      should shift them.  */
        !          6923:   yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
        !          6924:   if (yyn) goto yydefault;
        !          6925: #endif
        !          6926: 
        !          6927: yyerrpop:   /* pop the current state because it cannot handle the error token */
        !          6928: 
        !          6929:   if (yyssp == yyss) YYABORT;
        !          6930:   yyvsp--;
        !          6931:   yystate = *--yyssp;
        !          6932: #ifdef YYLSP_NEEDED
        !          6933:   yylsp--;
        !          6934: #endif
        !          6935: 
        !          6936: #if YYDEBUG != 0
        !          6937:   if (yydebug)
        !          6938:     {
        !          6939:       short *ssp1 = yyss - 1;
        !          6940:       fprintf (stderr, "Error: state stack now");
        !          6941:       while (ssp1 != yyssp)
        !          6942:        fprintf (stderr, " %d", *++ssp1);
        !          6943:       fprintf (stderr, "\n");
        !          6944:     }
        !          6945: #endif
        !          6946: 
        !          6947: yyerrhandle:
        !          6948: 
        !          6949:   yyn = yypact[yystate];
        !          6950:   if (yyn == YYFLAG)
        !          6951:     goto yyerrdefault;
        !          6952: 
        !          6953:   yyn += YYTERROR;
        !          6954:   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
        !          6955:     goto yyerrdefault;
        !          6956: 
        !          6957:   yyn = yytable[yyn];
        !          6958:   if (yyn < 0)
        !          6959:     {
        !          6960:       if (yyn == YYFLAG)
        !          6961:        goto yyerrpop;
        !          6962:       yyn = -yyn;
        !          6963:       goto yyreduce;
        !          6964:     }
        !          6965:   else if (yyn == 0)
        !          6966:     goto yyerrpop;
        !          6967: 
        !          6968:   if (yyn == YYFINAL)
        !          6969:     YYACCEPT;
        !          6970: 
        !          6971: #if YYDEBUG != 0
        !          6972:   if (yydebug)
        !          6973:     fprintf(stderr, "Shifting error token, ");
        !          6974: #endif
        !          6975: 
        !          6976:   *++yyvsp = yylval;
        !          6977: #ifdef YYLSP_NEEDED
        !          6978:   *++yylsp = yylloc;
        !          6979: #endif
        !          6980: 
        !          6981:   yystate = yyn;
        !          6982:   goto yynewstate;
        !          6983: }
        !          6984: #line 3728 "cp-parse.y"
        !          6985: 
        !          6986: 
        !          6987: #if YYDEBUG != 0
        !          6988: db_yyerror (s, yyps, yychar)
        !          6989:      char *s;
        !          6990:      short *yyps;
        !          6991:      int yychar;
        !          6992: {
        !          6993:   FILE *yyout;
        !          6994:   char buf[1024];
        !          6995:   int st;
        !          6996: 
        !          6997:   yyerror (s);
        !          6998:   printf ("State is %d, input token number is %d.\n", *yyps, yychar);
        !          6999: 
        !          7000: #ifdef PARSE_OUTPUT
        !          7001:   if (*yyps < 1) fatal ("Cannot start from here");
        !          7002:   else if ((yyout = fopen (PARSE_OUTPUT, "r")) == NULL)
        !          7003:     error ("cannot open file %s", PARSE_OUTPUT);
        !          7004:   else
        !          7005:     {
        !          7006:       printf ("That is to say,\n\n");
        !          7007:       while (fgets(buf, sizeof (buf)-1, yyout))
        !          7008:        {
        !          7009:          if (buf[0] != 's') continue;
        !          7010:          st = atoi (buf+6);
        !          7011:          if (st != *yyps) continue;
        !          7012:          printf ("%s", buf);
        !          7013:          while (fgets (buf, sizeof (buf)-1, yyout))
        !          7014:            {
        !          7015:              if (buf[0] == 's') break;
        !          7016:              printf ("%s", buf);
        !          7017:            }
        !          7018:          break;
        !          7019:        }
        !          7020:       printf ("With the token %s\n", yytname[YYTRANSLATE (yychar)]);
        !          7021:       fclose (yyout);
        !          7022:     }
        !          7023: #endif
        !          7024: }
        !          7025: #endif
        !          7026: 
        !          7027: void
        !          7028: yyerror (string)
        !          7029:      char *string;
        !          7030: {
        !          7031:   extern int end_of_file;
        !          7032:   extern char *token_buffer;
        !          7033:   extern int input_redirected ();
        !          7034:   char buf[200];
        !          7035: 
        !          7036:   strcpy (buf, string);
        !          7037: 
        !          7038:   /* We can't print string and character constants well
        !          7039:      because the token_buffer contains the result of processing escapes.  */
        !          7040:   if (end_of_file)
        !          7041:     strcat (buf, input_redirected ()
        !          7042:            ? " at end of saved text"
        !          7043:            : " at end of input");
        !          7044:   else if (token_buffer[0] == 0)
        !          7045:     strcat (buf, " at null character");
        !          7046:   else if (token_buffer[0] == '"')
        !          7047:     strcat (buf, " before string constant");
        !          7048:   else if (token_buffer[0] == '\'')
        !          7049:     strcat (buf, " before character constant");
        !          7050:   else if (token_buffer[0] < 040 || (unsigned char) token_buffer[0] >= 0177)
        !          7051:     sprintf (buf + strlen (buf), " before character 0%o",
        !          7052:             (unsigned char) token_buffer[0]);
        !          7053:   else
        !          7054:     strcat (buf, " before `%s'");
        !          7055: 
        !          7056:   error (buf, token_buffer);
        !          7057: }
        !          7058: 
        !          7059: static
        !          7060: #ifdef __GNUC__
        !          7061: __inline
        !          7062: #endif
        !          7063: void
        !          7064: yyprint (file, yychar, yylval)
        !          7065:      FILE *file;
        !          7066:      int yychar;
        !          7067:      YYSTYPE yylval;
        !          7068: {
        !          7069:   tree t;
        !          7070:   switch (yychar)
        !          7071:     {
        !          7072:     case IDENTIFIER:
        !          7073:     case TYPENAME:
        !          7074:     case TYPESPEC:
        !          7075:     case PTYPENAME:
        !          7076:     case IDENTIFIER_DEFN:
        !          7077:     case TYPENAME_DEFN:
        !          7078:     case PTYPENAME_DEFN:
        !          7079:     case TYPENAME_COLON:
        !          7080:     case TYPENAME_ELLIPSIS:
        !          7081:     case SCOPED_TYPENAME:
        !          7082:     case SCSPEC:
        !          7083:       t = yylval.ttype;
        !          7084:     print_id:
        !          7085:       assert (TREE_CODE (t) == IDENTIFIER_NODE);
        !          7086:       if (IDENTIFIER_POINTER (t))
        !          7087:          fprintf (file, " `%s'", IDENTIFIER_POINTER (t));
        !          7088:       break;
        !          7089:     case AGGR:
        !          7090:       if (yylval.ttype == class_type_node)
        !          7091:        fprintf (file, " `class'");
        !          7092:       else if (yylval.ttype == record_type_node)
        !          7093:        fprintf (file, " `struct'");
        !          7094:       else if (yylval.ttype == union_type_node)
        !          7095:        fprintf (file, " `union'");
        !          7096:       else if (yylval.ttype == enum_type_node)
        !          7097:        fprintf (file, " `enum'");
        !          7098:       else
        !          7099:        abort ();
        !          7100:       break;
        !          7101:     case PRE_PARSED_CLASS_DECL:
        !          7102:       t = yylval.ttype;
        !          7103:       assert (TREE_CODE (t) == TREE_LIST);
        !          7104:       t = TREE_VALUE (t);
        !          7105:       goto print_id;
        !          7106:     }
        !          7107: }
        !          7108: 
        !          7109: static int *reduce_count;
        !          7110: int *token_count;
        !          7111: 
        !          7112: #define REDUCE_LENGTH (sizeof (yyr2) / sizeof (yyr2[0]))
        !          7113: #define TOKEN_LENGTH (256 + sizeof (yytname) / sizeof (yytname[0]))
        !          7114: 
        !          7115: int *
        !          7116: init_parse ()
        !          7117: {
        !          7118: #ifdef GATHER_STATISTICS
        !          7119:   reduce_count = (int *)malloc (sizeof (int) * (REDUCE_LENGTH + 1));
        !          7120:   bzero (reduce_count, sizeof (int) * (REDUCE_LENGTH + 1));
        !          7121:   reduce_count += 1;
        !          7122:   token_count = (int *)malloc (sizeof (int) * (TOKEN_LENGTH + 1));
        !          7123:   bzero (token_count, sizeof (int) * (TOKEN_LENGTH + 1));
        !          7124:   token_count += 1;
        !          7125: #endif
        !          7126:   return token_count;
        !          7127: }
        !          7128: 
        !          7129: #ifdef GATHER_STATISTICS
        !          7130: void
        !          7131: yyhook (yyn)
        !          7132:      int yyn;
        !          7133: {
        !          7134:   reduce_count[yyn] += 1;
        !          7135: }
        !          7136: #endif
        !          7137: 
        !          7138: static int
        !          7139: reduce_cmp (p, q)
        !          7140:      int *p, *q;
        !          7141: {
        !          7142:   return reduce_count[*q] - reduce_count[*p];
        !          7143: }
        !          7144: 
        !          7145: static int
        !          7146: token_cmp (p, q)
        !          7147:      int *p, *q;
        !          7148: {
        !          7149:   return token_count[*q] - token_count[*p];
        !          7150: }
        !          7151: 
        !          7152: void
        !          7153: print_parse_statistics ()
        !          7154: {
        !          7155: #if YYDEBUG != 0
        !          7156:   int i;
        !          7157:   int maxlen = REDUCE_LENGTH;
        !          7158:   unsigned *sorted;
        !          7159:   
        !          7160:   if (reduce_count[-1] == 0)
        !          7161:     return;
        !          7162: 
        !          7163:   if (TOKEN_LENGTH > REDUCE_LENGTH)
        !          7164:     maxlen = TOKEN_LENGTH;
        !          7165:   sorted = (unsigned *) alloca (sizeof (int) * maxlen);
        !          7166: 
        !          7167:   for (i = 0; i < TOKEN_LENGTH; i++)
        !          7168:     sorted[i] = i;
        !          7169:   qsort (sorted, TOKEN_LENGTH, sizeof (int), token_cmp);
        !          7170:   for (i = 0; i < TOKEN_LENGTH; i++)
        !          7171:     {
        !          7172:       int index = sorted[i];
        !          7173:       if (token_count[index] == 0)
        !          7174:        break;
        !          7175:       if (token_count[index] < token_count[-1])
        !          7176:        break;
        !          7177:       fprintf (stderr, "token %d, `%s', count = %d\n",
        !          7178:               index, yytname[YYTRANSLATE (index)], token_count[index]);
        !          7179:     }
        !          7180:   fprintf (stderr, "\n");
        !          7181:   for (i = 0; i < REDUCE_LENGTH; i++)
        !          7182:     sorted[i] = i;
        !          7183:   qsort (sorted, REDUCE_LENGTH, sizeof (int), reduce_cmp);
        !          7184:   for (i = 0; i < REDUCE_LENGTH; i++)
        !          7185:     {
        !          7186:       int index = sorted[i];
        !          7187:       if (reduce_count[index] == 0)
        !          7188:        break;
        !          7189:       if (reduce_count[index] < reduce_count[-1])
        !          7190:        break;
        !          7191:       fprintf (stderr, "rule %d, line %d, count = %d\n",
        !          7192:               index, yyrline[index], reduce_count[index]);
        !          7193:     }
        !          7194:   fprintf (stderr, "\n");
        !          7195: #endif
        !          7196: }
        !          7197: 
        !          7198: 
        !          7199: /* Sets the value of the 'yydebug' varable to VALUE.
        !          7200:    This is a function so we don't have to have YYDEBUG defined
        !          7201:    in order to build the compiler.  */
        !          7202: void
        !          7203: set_yydebug (value)
        !          7204:      int value;
        !          7205: {
        !          7206: #if YYDEBUG != 0
        !          7207:   yydebug = value;
        !          7208: #else
        !          7209:   warning ("YYDEBUG not defined.");
        !          7210: #endif
        !          7211: }
        !          7212: 
        !          7213: #ifdef SPEW_DEBUG
        !          7214: const char *
        !          7215: debug_yytranslate (value)
        !          7216:     int value;
        !          7217: {
        !          7218: #if YYDEBUG != 0
        !          7219:   return yytname[YYTRANSLATE (value)];
        !          7220: #else
        !          7221:   return "YYDEBUG not defined.";
        !          7222: #endif
        !          7223: }
        !          7224: 
        !          7225: #endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.