home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 4 / FreshFish_May-June1994.bin / bbs / gnu / gcc-2.5.8-src.lha / src / amiga / gcc-2.5.8 / cp-parse.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-02-22  |  301.3 KB  |  7,450 lines

  1.  
  2. /*  A Bison parser, made from cp-parse.y with Bison version GNU Bison version 1.22
  3.   */
  4.  
  5. #define YYBISON 1  /* Identify Bison output.  */
  6.  
  7. #define    IDENTIFIER    258
  8. #define    TYPENAME    259
  9. #define    SCOPED_TYPENAME    260
  10. #define    SCSPEC    261
  11. #define    TYPESPEC    262
  12. #define    TYPE_QUAL    263
  13. #define    CONSTANT    264
  14. #define    STRING    265
  15. #define    ELLIPSIS    266
  16. #define    SIZEOF    267
  17. #define    ENUM    268
  18. #define    IF    269
  19. #define    ELSE    270
  20. #define    WHILE    271
  21. #define    DO    272
  22. #define    FOR    273
  23. #define    SWITCH    274
  24. #define    CASE    275
  25. #define    DEFAULT    276
  26. #define    BREAK    277
  27. #define    CONTINUE    278
  28. #define    RETURN    279
  29. #define    GOTO    280
  30. #define    ASM_KEYWORD    281
  31. #define    GCC_ASM_KEYWORD    282
  32. #define    TYPEOF    283
  33. #define    ALIGNOF    284
  34. #define    HEADOF    285
  35. #define    CLASSOF    286
  36. #define    ATTRIBUTE    287
  37. #define    EXTENSION    288
  38. #define    LABEL    289
  39. #define    AGGR    290
  40. #define    VISSPEC    291
  41. #define    DELETE    292
  42. #define    NEW    293
  43. #define    OVERLOAD    294
  44. #define    THIS    295
  45. #define    OPERATOR    296
  46. #define    LEFT_RIGHT    297
  47. #define    TEMPLATE    298
  48. #define    TYPEID    299
  49. #define    DYNAMIC_CAST    300
  50. #define    SCOPE    301
  51. #define    START_DECLARATOR    302
  52. #define    EMPTY    303
  53. #define    TYPENAME_COLON    304
  54. #define    ASSIGN    305
  55. #define    RANGE    306
  56. #define    OROR    307
  57. #define    ANDAND    308
  58. #define    MIN_MAX    309
  59. #define    EQCOMPARE    310
  60. #define    ARITHCOMPARE    311
  61. #define    LSHIFT    312
  62. #define    RSHIFT    313
  63. #define    UNARY    314
  64. #define    PLUSPLUS    315
  65. #define    MINUSMINUS    316
  66. #define    HYPERUNARY    317
  67. #define    PAREN_STAR_PAREN    318
  68. #define    POINTSAT    319
  69. #define    POINTSAT_STAR    320
  70. #define    DOT_STAR    321
  71. #define    RAISE    322
  72. #define    RAISES    323
  73. #define    RERAISE    324
  74. #define    TRY    325
  75. #define    EXCEPT    326
  76. #define    CATCH    327
  77. #define    THROW    328
  78. #define    ANSI_TRY    329
  79. #define    ANSI_THROW    330
  80. #define    TYPENAME_ELLIPSIS    331
  81. #define    PTYPENAME    332
  82. #define    PRE_PARSED_FUNCTION_DECL    333
  83. #define    EXTERN_LANG_STRING    334
  84. #define    ALL    335
  85. #define    PRE_PARSED_CLASS_DECL    336
  86. #define    TYPENAME_DEFN    337
  87. #define    IDENTIFIER_DEFN    338
  88. #define    PTYPENAME_DEFN    339
  89. #define    END_OF_SAVED_INPUT    340
  90.  
  91. #line 42 "cp-parse.y"
  92.  
  93. #if defined(GATHER_STATISTICS) || defined(SPEW_DEBUG)
  94. #undef YYDEBUG
  95. #define YYDEBUG 1
  96. #endif
  97.  
  98. #include "config.h"
  99.  
  100. #include <stdio.h>
  101. #include <errno.h>
  102.  
  103. #include "tree.h"
  104. #include "input.h"
  105. #include "flags.h"
  106. #include "cp-lex.h"
  107. #include "cp-tree.h"
  108.  
  109. /* Since parsers are distinct for each language, put the language string
  110.    definition here.  (fnf) */
  111. char *language_string = "GNU C++";
  112.  
  113. extern tree void_list_node;
  114. extern struct obstack permanent_obstack;
  115.  
  116. #ifndef errno
  117. extern int errno;
  118. #endif
  119.  
  120. extern int end_of_file;
  121.  
  122. void yyerror ();
  123.  
  124. /* Like YYERROR but do call yyerror.  */
  125. #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
  126.  
  127. static void position_after_white_space ();
  128.  
  129. /* Contains the statement keyword (if/while/do) to include in an
  130.    error message if the user supplies an empty conditional expression.  */
  131. static char *cond_stmt_keyword;
  132.  
  133. /* Nonzero if we have an `extern "C"' acting as an extern specifier.  */
  134. int have_extern_spec;
  135. int used_extern_spec;
  136.  
  137. void yyhook ();
  138.  
  139. /* Cons up an empty parameter list.  */
  140. #ifdef __GNUC__
  141. __inline
  142. #endif
  143. static tree
  144. empty_parms ()
  145. {
  146.   tree parms;
  147.  
  148.   if (strict_prototype)
  149.     parms = void_list_node;
  150.   else
  151.     parms = NULL_TREE;
  152.   return parms;
  153. }
  154.  
  155. #line 108 "cp-parse.y"
  156. typedef union {long itype; tree ttype; char *strtype; enum tree_code code; } YYSTYPE;
  157. #line 269 "cp-parse.y"
  158.  
  159. /* List of types and structure classes of the current declaration.  */
  160. static tree current_declspecs;
  161.  
  162. /* When defining an aggregate, this is the most recent one being defined.  */
  163. static tree current_aggr;
  164.  
  165. /* Tell yyparse how to print a token's value, if yydebug is set.  */
  166.  
  167. #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
  168. extern void yyprint ();
  169. extern tree combine_strings        PROTO((tree));
  170. extern tree truthvalue_conversion    PROTO((tree));
  171.  
  172. #ifndef YYLTYPE
  173. typedef
  174.   struct yyltype
  175.     {
  176.       int timestamp;
  177.       int first_line;
  178.       int first_column;
  179.       int last_line;
  180.       int last_column;
  181.       char *text;
  182.    }
  183.   yyltype;
  184.  
  185. #define YYLTYPE yyltype
  186. #endif
  187.  
  188. #include <stdio.h>
  189.  
  190. #ifndef __cplusplus
  191. #ifndef __STDC__
  192. #define const
  193. #endif
  194. #endif
  195.  
  196.  
  197.  
  198. #define    YYFINAL        1340
  199. #define    YYFLAG        -32768
  200. #define    YYNTBASE    110
  201.  
  202. #define YYTRANSLATE(x) ((unsigned)(x) <= 340 ? yytranslate[x] : 311)
  203.  
  204. static const char yytranslate[] = {     0,
  205.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  206.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  207.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  208.      2,     2,   108,     2,     2,     2,    73,    61,     2,    83,
  209.    104,    71,    69,    51,    70,    81,    72,     2,     2,     2,
  210.      2,     2,     2,     2,     2,     2,     2,    55,   105,    65,
  211.     53,    66,    54,     2,     2,     2,     2,     2,     2,     2,
  212.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  213.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  214.     84,     2,   109,    60,     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,    50,    59,   106,   107,     2,     2,     2,     2,
  218.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  219.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  220.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  221.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  222.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  223.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  224.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  225.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  226.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  227.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  228.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  229.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  230.      2,     2,     2,     2,     2,     1,     2,     3,     4,     5,
  231.      6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
  232.     16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
  233.     26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
  234.     36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
  235.     46,    47,    48,    49,    52,    56,    57,    58,    62,    63,
  236.     64,    67,    68,    74,    75,    76,    77,    78,    79,    80,
  237.     82,    85,    86,    87,    88,    89,    90,    91,    92,    93,
  238.     94,    95,    96,    97,    98,    99,   100,   101,   102,   103
  239. };
  240.  
  241. #if YYDEBUG != 0
  242. static const short yyprhs[] = {     0,
  243.      0,     1,     3,     4,     7,    10,    11,    12,    14,    16,
  244.     18,    20,    22,    24,    30,    35,    39,    44,    49,    51,
  245.     52,    58,    60,    64,    67,    72,    76,    78,    82,    84,
  246.     88,    89,    95,    96,   102,   103,   109,   110,   116,   120,
  247.    124,   131,   139,   144,   148,   152,   154,   156,   158,   160,
  248.    162,   165,   169,   173,   177,   181,   184,   187,   190,   193,
  249.    195,   199,   204,   208,   214,   219,   223,   227,   230,   234,
  250.    238,   241,   248,   255,   260,   265,   267,   274,   279,   283,
  251.    290,   295,   299,   302,   305,   307,   311,   316,   319,   323,
  252.    324,   325,   327,   331,   334,   338,   340,   345,   348,   353,
  253.    356,   361,   364,   370,   374,   376,   378,   380,   382,   384,
  254.    386,   388,   390,   392,   395,   397,   401,   406,   411,   413,
  255.    415,   416,   417,   419,   423,   425,   427,   428,   435,   436,
  256.    438,   439,   442,   444,   446,   448,   450,   452,   454,   456,
  257.    458,   462,   464,   468,   469,   471,   473,   474,   483,   485,
  258.    486,   490,   496,   502,   505,   508,   513,   518,   520,   522,
  259.    526,   530,   532,   533,   537,   540,   543,   546,   549,   552,
  260.    555,   560,   563,   568,   572,   579,   586,   593,   603,   608,
  261.    616,   622,   631,   641,   651,   658,   668,   675,   685,   689,
  262.    696,   699,   704,   710,   712,   717,   725,   730,   735,   740,
  263.    742,   746,   750,   754,   758,   762,   766,   770,   774,   778,
  264.    782,   786,   790,   794,   798,   802,   806,   810,   816,   820,
  265.    824,   828,   831,   833,   835,   837,   839,   843,   847,   848,
  266.    853,   854,   861,   864,   869,   872,   876,   879,   882,   884,
  267.    889,   894,   897,   905,   910,   915,   921,   925,   928,   931,
  268.    934,   940,   944,   950,   954,   961,   966,   971,   978,   980,
  269.    985,   986,   988,   990,   993,   995,   998,   999,  1002,  1005,
  270.   1008,  1012,  1016,  1020,  1024,  1027,  1030,  1032,  1034,  1037,
  271.   1040,  1042,  1045,  1048,  1052,  1054,  1056,  1059,  1062,  1064,
  272.   1066,  1069,  1072,  1074,  1077,  1080,  1084,  1086,  1089,  1091,
  273.   1093,  1095,  1097,  1102,  1107,  1109,  1111,  1113,  1115,  1117,
  274.   1121,  1123,  1127,  1128,  1133,  1134,  1142,  1147,  1148,  1156,
  275.   1161,  1162,  1170,  1175,  1176,  1183,  1185,  1189,  1191,  1196,
  276.   1205,  1207,  1211,  1213,  1216,  1220,  1225,  1227,  1229,  1233,
  277.   1238,  1245,  1249,  1255,  1256,  1264,  1269,  1270,  1277,  1281,
  278.   1284,  1289,  1291,  1292,  1294,  1295,  1297,  1299,  1302,  1305,
  279.   1308,  1311,  1314,  1317,  1320,  1324,  1328,  1331,  1332,  1336,
  280.   1337,  1341,  1344,  1346,  1348,  1349,  1351,  1354,  1356,  1360,
  281.   1362,  1364,  1367,  1370,  1373,  1377,  1379,  1381,  1383,  1386,
  282.   1389,  1391,  1392,  1394,  1399,  1403,  1405,  1408,  1411,  1415,
  283.   1421,  1427,  1431,  1435,  1439,  1443,  1447,  1453,  1459,  1463,
  284.   1467,  1471,  1475,  1477,  1480,  1483,  1487,  1491,  1492,  1494,
  285.   1498,  1503,  1510,  1515,  1520,  1524,  1529,  1536,  1541,  1546,
  286.   1550,  1552,  1556,  1558,  1562,  1565,  1568,  1569,  1571,  1574,
  287.   1576,  1579,  1580,  1583,  1584,  1587,  1593,  1599,  1603,  1609,
  288.   1614,  1618,  1622,  1628,  1630,  1632,  1638,  1642,  1646,  1648,
  289.   1654,  1660,  1664,  1670,  1675,  1679,  1683,  1685,  1687,  1691,
  290.   1695,  1701,  1707,  1711,  1717,  1721,  1725,  1729,  1734,  1738,
  291.   1740,  1742,  1745,  1748,  1751,  1755,  1759,  1767,  1775,  1781,
  292.   1789,  1793,  1801,  1809,  1815,  1823,  1827,  1829,  1832,  1835,
  293.   1838,  1840,  1843,  1847,  1851,  1854,  1856,  1860,  1864,  1867,
  294.   1873,  1877,  1882,  1886,  1891,  1894,  1898,  1901,  1906,  1912,
  295.   1917,  1923,  1929,  1935,  1937,  1939,  1942,  1945,  1948,  1949,
  296.   1950,  1952,  1954,  1957,  1961,  1963,  1966,  1970,  1976,  1982,
  297.   1983,  1984,  1991,  1993,  1996,  1998,  2000,  2002,  2005,  2006,
  298.   2011,  2013,  2014,  2015,  2022,  2023,  2024,  2032,  2033,  2034,
  299.   2035,  2046,  2047,  2048,  2049,  2060,  2061,  2069,  2070,  2076,
  300.   2077,  2085,  2086,  2091,  2094,  2097,  2100,  2104,  2111,  2120,
  301.   2131,  2144,  2149,  2153,  2156,  2159,  2161,  2164,  2168,  2175,
  302.   2180,  2187,  2192,  2196,  2197,  2205,  2208,  2209,  2215,  2219,
  303.   2221,  2224,  2228,  2232,  2235,  2238,  2240,  2241,  2246,  2249,
  304.   2253,  2257,  2258,  2259,  2264,  2265,  2266,  2271,  2272,  2277,
  305.   2278,  2280,  2281,  2282,  2291,  2295,  2300,  2305,  2309,  2314,
  306.   2321,  2328,  2329,  2331,  2332,  2334,  2336,  2337,  2339,  2341,
  307.   2345,  2350,  2352,  2356,  2357,  2359,  2363,  2366,  2368,  2370,
  308.   2373,  2376,  2378,  2382,  2386,  2392,  2396,  2402,  2406,  2410,
  309.   2412,  2414,  2417,  2419,  2420,  2422,  2423,  2426,  2431,  2433,
  310.   2435,  2437,  2440,  2443,  2446,  2448,  2450,  2452,  2456,  2458,
  311.   2462,  2465,  2468,  2471,  2474,  2477,  2480,  2483,  2486,  2489,
  312.   2492,  2495,  2498,  2501,  2504,  2507,  2510,  2513,  2516,  2519,
  313.   2522,  2525,  2528,  2531,  2535,  2538,  2541,  2544,  2547,  2551,
  314.   2554,  2557,  2561
  315. };
  316.  
  317. static const short yyrhs[] = {    -1,
  318.    111,     0,     0,   112,   116,     0,   111,   116,     0,     0,
  319.      0,    26,     0,    27,     0,   131,     0,   130,     0,   124,
  320.      0,   122,     0,   115,    83,   174,   104,   105,     0,   117,
  321.     50,   111,   106,     0,   117,    50,   106,     0,   117,   113,
  322.    131,   114,     0,   117,   113,   130,   114,     0,    97,     0,
  323.      0,    43,    65,   119,   120,    66,     0,   121,     0,   120,
  324.     51,   121,     0,   207,   140,     0,   207,   141,    55,   219,
  325.      0,   207,    49,   219,     0,   300,     0,    39,   123,   105,
  326.      0,     3,     0,   123,    51,     3,     0,     0,   118,   208,
  327.     50,   125,   105,     0,     0,   118,   209,    50,   126,   105,
  328.      0,     0,   118,   208,    55,   127,   105,     0,     0,   118,
  329.    209,    55,   128,   105,     0,   118,   208,   105,     0,   118,
  330.    209,   105,     0,   118,   238,   305,   189,   196,   129,     0,
  331.    118,   180,   179,   305,   189,   196,   129,     0,   118,   182,
  332.    179,   129,     0,   118,     1,   106,     0,   118,     1,   105,
  333.      0,    50,     0,    55,     0,   105,     0,    53,     0,    24,
  334.      0,   188,   105,     0,   182,   188,   105,     0,   182,   179,
  335.    105,     0,   180,   187,   105,     0,   180,   179,   105,     0,
  336.    182,   105,     0,   180,   105,     0,     1,   105,     0,     1,
  337.    106,     0,   105,     0,   132,   136,   251,     0,   132,   135,
  338.    136,   251,     0,   132,   175,   251,     0,   132,   135,   105,
  339.    175,   251,     0,   132,   135,   175,   251,     0,   180,   179,
  340.      1,     0,   182,   238,     1,     0,   238,     1,     0,   180,
  341.    179,   305,     0,   182,   238,   305,     0,   238,   305,     0,
  342.      4,    83,   298,   104,   233,   305,     0,   241,    83,   298,
  343.    104,   233,   305,     0,     4,    42,   233,   305,     0,   241,
  344.     42,   233,   305,     0,    96,     0,   180,    83,   298,   104,
  345.    233,   305,     0,   180,    42,   233,   305,     0,   180,   179,
  346.    305,     0,   182,    83,   298,   104,   233,   305,     0,   182,
  347.     42,   233,   305,     0,   182,   179,   305,     0,   238,   305,
  348.      0,    24,     3,     0,   134,     0,   134,    53,   200,     0,
  349.    134,    83,   163,   104,     0,   134,    42,     0,    55,   137,
  350.    138,     0,     0,     0,   139,     0,   138,    51,   139,     0,
  351.    138,     1,     0,    83,   163,   104,     0,    42,     0,   140,
  352.     83,   163,   104,     0,   140,    42,     0,   144,    83,   163,
  353.    104,     0,   144,    42,     0,   241,    83,   163,   104,     0,
  354.    241,    42,     0,   239,   140,    83,   163,   104,     0,   239,
  355.    140,    42,     0,     3,     0,     4,     0,    95,     0,   101,
  356.      0,   100,     0,   102,     0,     3,     0,     4,     0,    95,
  357.      0,   107,   140,     0,   310,     0,   144,   145,   151,     0,
  358.     95,    65,   147,    66,     0,     4,    65,   147,    66,     0,
  359.     50,     0,    55,     0,     0,     0,   148,     0,   147,    51,
  360.    148,     0,   230,     0,   167,     0,     0,    99,   215,   150,
  361.    221,   222,   106,     0,     0,   149,     0,     0,   149,   152,
  362.      0,    70,     0,    69,     0,    75,     0,    76,     0,   108,
  363.      0,   163,     0,   167,     0,    42,     0,    83,   154,   104,
  364.      0,    42,     0,    83,   158,   104,     0,     0,   158,     0,
  365.      1,     0,     0,   183,   179,   305,   189,   196,    53,   159,
  366.    200,     0,   154,     0,     0,    50,   160,   106,     0,    50,
  367.    160,   248,   245,   106,     0,    50,   160,   248,     1,   106,
  368.      0,   160,   258,     0,    50,   106,     0,    50,   248,   245,
  369.    106,     0,    50,   248,     1,   106,     0,   258,     0,   167,
  370.      0,   163,    51,   167,     0,   163,    51,     1,     0,   168,
  371.      0,     0,    33,   165,   166,     0,    71,   166,     0,    61,
  372.    166,     0,   107,   166,     0,   153,   166,     0,    58,   140,
  373.      0,    12,   164,     0,    12,    83,   230,   104,     0,    29,
  374.    164,     0,    29,    83,   230,   104,     0,   172,   171,   230,
  375.      0,   172,   171,    83,   163,   104,   230,     0,   172,   171,
  376.    185,    83,   163,   104,     0,   172,   171,   185,    83,   185,
  377.    104,     0,   172,   171,    83,   163,   104,   185,    83,   163,
  378.    104,     0,   172,   171,   185,    42,     0,   172,   171,    83,
  379.    163,   104,   185,    42,     0,   172,   171,   230,    53,   200,
  380.      0,   172,   171,    83,   163,   104,   230,    53,   200,     0,
  381.    172,   171,    83,   183,   231,   104,    84,   234,   109,     0,
  382.    172,   171,    83,   232,   231,   104,    84,   234,   109,     0,
  383.    172,   171,    83,   183,   231,   104,     0,   172,   171,    83,
  384.    163,   104,    83,   183,   231,   104,     0,   172,   171,    83,
  385.    232,   231,   104,     0,   172,   171,    83,   163,   104,    83,
  386.    232,   231,   104,     0,   172,   171,    49,     0,   172,   171,
  387.     83,   163,   104,    49,     0,   173,   166,     0,   173,    84,
  388.    109,   166,     0,   173,    84,   154,   109,   166,     0,   164,
  389.      0,    83,   230,   104,   167,     0,    83,   230,   104,    50,
  390.    201,   205,   106,     0,    30,    83,   154,   104,     0,    31,
  391.     83,   154,   104,     0,    31,    83,     4,   104,     0,   166,
  392.      0,   167,    69,   167,     0,   167,    70,   167,     0,   167,
  393.     71,   167,     0,   167,    72,   167,     0,   167,    73,   167,
  394.      0,   167,    67,   167,     0,   167,    68,   167,     0,   167,
  395.     64,   167,     0,   167,    65,   167,     0,   167,    66,   167,
  396.      0,   167,    63,   167,     0,   167,    62,   167,     0,   167,
  397.     61,   167,     0,   167,    59,   167,     0,   167,    60,   167,
  398.      0,   167,    58,   167,     0,   167,    57,   167,     0,   167,
  399.     54,   293,    55,   167,     0,   167,    53,   167,     0,   167,
  400.     52,   167,     0,   168,    82,   167,     0,   177,   167,     0,
  401.      3,     0,   310,     0,     9,     0,   174,     0,    83,   154,
  402.    104,     0,    83,     1,   104,     0,     0,    83,   169,   252,
  403.    104,     0,     0,   168,    83,   163,   104,   170,   152,     0,
  404.    168,    42,     0,   168,    84,   154,   109,     0,   176,   142,
  405.      0,   176,   239,   142,     0,   168,    75,     0,   168,    76,
  406.      0,    40,     0,     8,    83,   163,   104,     0,   185,    83,
  407.    163,   104,     0,   185,    42,     0,    45,    65,   230,    66,
  408.     83,   154,   104,     0,    44,    83,   154,   104,     0,    44,
  409.     83,   230,   104,     0,    46,   185,    83,   163,   104,     0,
  410.     46,   185,    42,     0,    46,     3,     0,    46,   310,     0,
  411.    239,   142,     0,   239,   142,    83,   163,   104,     0,   239,
  412.    142,    42,     0,   176,   142,    83,   163,   104,     0,   176,
  413.    142,    42,     0,   176,   239,   142,    83,   163,   104,     0,
  414.    176,   239,   142,    42,     0,   176,   107,     7,    42,     0,
  415.    176,     7,    46,   107,     7,    42,     0,    38,     0,    38,
  416.     50,   163,   106,     0,     0,    46,     0,    37,     0,    46,
  417.    173,     0,    10,     0,   174,    10,     0,     0,   168,    81,
  418.      0,   168,    79,     0,   168,    80,     0,   180,   187,   105,
  419.      0,   180,   179,   105,     0,   182,   188,   105,     0,   182,
  420.    179,   105,     0,   180,   105,     0,   182,   105,     0,   236,
  421.      0,   238,     0,    47,   236,     0,    47,   238,     0,   185,
  422.      0,   182,   185,     0,   185,   181,     0,   182,   185,   181,
  423.      0,   186,     0,     6,     0,   181,   186,     0,   181,     6,
  424.      0,     8,     0,     6,     0,   182,     8,     0,   182,     6,
  425.      0,   185,     0,   232,   185,     0,   185,   184,     0,   232,
  426.    185,   184,     0,   186,     0,   184,   186,     0,   202,     0,
  427.      7,     0,     4,     0,   241,     0,    28,    83,   154,   104,
  428.      0,    28,    83,   230,   104,     0,   143,     0,     7,     0,
  429.      8,     0,   202,     0,   190,     0,   187,    51,   192,     0,
  430.    194,     0,   188,    51,   192,     0,     0,   115,    83,   174,
  431.    104,     0,     0,   179,   305,   189,   196,    53,   191,   200,
  432.      0,   179,   305,   189,   196,     0,     0,   179,   305,   189,
  433.    196,    53,   193,   200,     0,   179,   305,   189,   196,     0,
  434.      0,   238,   305,   189,   196,    53,   195,   200,     0,   238,
  435.    305,   189,   196,     0,     0,    32,    83,    83,   197,   104,
  436.    104,     0,   198,     0,   197,    51,   198,     0,     3,     0,
  437.      3,    83,     9,   104,     0,     3,    83,     3,    51,     9,
  438.     51,     9,   104,     0,   140,     0,   199,    51,   140,     0,
  439.    167,     0,    50,   106,     0,    50,   201,   106,     0,    50,
  440.    201,    51,   106,     0,     1,     0,   200,     0,   201,    51,
  441.    200,     0,    84,   167,   109,   200,     0,   201,    51,    20,
  442.    167,    55,   200,     0,   140,    55,   200,     0,   201,    51,
  443.    140,    55,   200,     0,     0,    13,   140,    50,   203,   228,
  444.    206,   106,     0,    13,   140,    50,   106,     0,     0,    13,
  445.     50,   204,   228,   206,   106,     0,    13,    50,   106,     0,
  446.     13,   140,     0,   214,   221,   222,   106,     0,   214,     0,
  447.      0,    51,     0,     0,    51,     0,    35,     0,   207,     6,
  448.      0,   207,     7,     0,   207,     8,     0,   207,    35,     0,
  449.    207,   140,     0,   207,   144,     0,   207,    49,     0,   207,
  450.    144,    50,     0,   207,   144,    55,     0,   207,   141,     0,
  451.      0,   208,   211,   215,     0,     0,   209,   212,   215,     0,
  452.    207,    50,     0,   213,     0,   210,     0,     0,    55,     0,
  453.     55,   216,     0,   217,     0,   216,    51,   217,     0,   219,
  454.      0,   218,     0,   220,   219,     0,   220,   218,     0,   219,
  455.      5,     0,   144,   146,   151,     0,   140,     0,    36,     0,
  456.      6,     0,   220,    36,     0,   220,     6,     0,    50,     0,
  457.      0,   223,     0,   222,    36,    55,   223,     0,   222,    36,
  458.     55,     0,   224,     0,   223,   224,     0,   223,   105,     0,
  459.    180,   225,   105,     0,   180,    83,   298,   104,   105,     0,
  460.    180,    83,   298,   104,   106,     0,   180,    42,   105,     0,
  461.    180,    42,   106,     0,   182,   225,   105,     0,   182,   179,
  462.    105,     0,   182,   225,   106,     0,   182,    83,   298,   104,
  463.    105,     0,   182,    83,   298,   104,   106,     0,   182,    42,
  464.    105,     0,   182,    42,   106,     0,    55,   167,   105,     0,
  465.     55,   167,   106,     0,     1,     0,   133,    55,     0,   133,
  466.     50,     0,   238,   305,   105,     0,   238,   305,   106,     0,
  467.      0,   226,     0,   225,    51,   227,     0,   179,   305,   189,
  468.    196,     0,   179,   305,   189,   196,    53,   200,     0,     3,
  469.     55,   167,   196,     0,     4,    55,   167,   196,     0,    55,
  470.    167,   196,     0,   179,   305,   189,   196,     0,   179,   305,
  471.    189,   196,    53,   200,     0,     3,    55,   167,   196,     0,
  472.      4,    55,   167,   196,     0,    55,   167,   196,     0,   229,
  473.      0,   228,    51,   229,     0,   140,     0,   140,    53,   167,
  474.      0,   183,   231,     0,   232,   231,     0,     0,   242,     0,
  475.     47,   242,     0,     8,     0,   232,     8,     0,     0,   233,
  476.      8,     0,     0,   235,   154,     0,   236,    83,   163,   104,
  477.    233,     0,   236,    83,   298,   104,   233,     0,   236,    42,
  478.    233,     0,   236,    83,     1,   104,   233,     0,   236,    84,
  479.    234,   109,     0,   236,    84,   109,     0,    83,   237,   104,
  480.      0,    83,    71,   233,   236,   104,     0,    78,     0,   244,
  481.      0,    83,    61,   233,   236,   104,     0,    71,   233,   236,
  482.      0,    61,   233,   236,     0,     4,     0,   237,    83,   163,
  483.    104,   233,     0,   237,    83,   298,   104,   233,     0,   237,
  484.     42,   233,     0,   237,    83,     1,   104,   233,     0,   237,
  485.     84,   234,   109,     0,   237,    84,   109,     0,    83,   237,
  486.    104,     0,    78,     0,   244,     0,    71,   233,   236,     0,
  487.     61,   233,   236,     0,   238,    83,   163,   104,   233,     0,
  488.    238,    83,   298,   104,   233,     0,   238,    42,   233,     0,
  489.    238,    83,     1,   104,   233,     0,    83,   238,   104,     0,
  490.     71,   233,   238,     0,    61,   233,   238,     0,   238,    84,
  491.    234,   109,     0,   238,    84,   109,     0,     3,     0,   310,
  492.      0,   107,     4,     0,   107,     3,     0,   107,    95,     0,
  493.    239,   302,   238,     0,   239,   302,     4,     0,   239,   302,
  494.      4,    83,   163,   104,   233,     0,   239,   302,     4,    83,
  495.    298,   104,   233,     0,   239,   302,     4,    42,   233,     0,
  496.    239,   302,     4,    83,     1,   104,   233,     0,   239,   302,
  497.     95,     0,   239,   302,    95,    83,   163,   104,   233,     0,
  498.    239,   302,    95,    83,   298,   104,   233,     0,   239,   302,
  499.     95,    42,   233,     0,   239,   302,    95,    83,     1,   104,
  500.    233,     0,    46,   302,   238,     0,   240,     0,     3,    46,
  501.      0,   143,    46,     0,     4,    46,     0,     5,     0,   143,
  502.      5,     0,    83,   242,   104,     0,    71,   233,   242,     0,
  503.     71,   233,     0,    78,     0,    83,   243,   104,     0,    61,
  504.    233,   242,     0,    61,   233,     0,   242,    83,   298,   104,
  505.    233,     0,   242,    42,   233,     0,   242,    84,   234,   109,
  506.      0,   242,    84,   109,     0,    83,   298,   104,   233,     0,
  507.     42,   233,     0,    84,   234,   109,     0,    84,   109,     0,
  508.    239,   302,    71,   233,     0,   239,   302,    71,   233,   242,
  509.      0,   239,   302,    61,   233,     0,   239,   302,    61,   233,
  510.    242,     0,   239,   302,    71,   233,   236,     0,   239,   302,
  511.     61,   233,   236,     0,   257,     0,   246,     0,   245,   257,
  512.      0,   245,   246,     0,     1,   105,     0,     0,     0,   249,
  513.      0,   250,     0,   249,   250,     0,    34,   199,   105,     0,
  514.    252,     0,     1,   252,     0,    50,   247,   106,     0,    50,
  515.    247,   248,   245,   106,     0,    50,   247,   248,     1,   106,
  516.      0,     0,     0,    14,   254,   247,   156,   255,   161,     0,
  517.    252,     0,   247,   258,     0,   252,     0,   258,     0,   178,
  518.      0,   154,   105,     0,     0,   253,    15,   259,   161,     0,
  519.    253,     0,     0,     0,    16,   260,   247,   156,   261,   162,
  520.      0,     0,     0,    17,   262,   256,    16,   263,   155,   105,
  521.      0,     0,     0,     0,   290,   264,   247,   157,   105,   265,
  522.    293,   104,   266,   162,     0,     0,     0,     0,   291,   267,
  523.    247,   157,   105,   268,   293,   104,   269,   162,     0,     0,
  524.     19,   247,    83,   158,   104,   270,   161,     0,     0,    20,
  525.    167,    55,   271,   257,     0,     0,    20,   167,    56,   167,
  526.     55,   272,   257,     0,     0,    21,    55,   273,   257,     0,
  527.     22,   105,     0,    23,   105,     0,    24,   105,     0,    24,
  528.    154,   105,     0,   115,   292,    83,   174,   104,   105,     0,
  529.    115,   292,    83,   174,    55,   294,   104,   105,     0,   115,
  530.    292,    83,   174,    55,   294,    55,   294,   104,   105,     0,
  531.    115,   292,    83,   174,    55,   294,    55,   294,    55,   297,
  532.    104,   105,     0,    25,    71,   154,   105,     0,    25,   140,
  533.    105,     0,   277,   257,     0,   277,   106,     0,   105,     0,
  534.     93,   105,     0,    93,   154,   105,     0,    91,   306,    83,
  535.    163,   104,   105,     0,    91,   306,    42,   105,     0,    85,
  536.    306,    83,   163,   104,   105,     0,    85,   306,    42,   105,
  537.      0,    85,   140,   105,     0,     0,   276,    89,   140,    50,
  538.    274,   284,   106,     0,   276,     1,     0,     0,   280,   281,
  539.    281,   275,   288,     0,   276,    87,   308,     0,   276,     0,
  540.    278,   106,     0,   278,   245,   106,     0,   278,     1,   106,
  541.      0,     3,    55,     0,    95,    55,     0,    49,     0,     0,
  542.     88,    50,   279,   247,     0,   282,   106,     0,   282,   245,
  543.    106,     0,   282,     1,   106,     0,     0,     0,    92,    50,
  544.    283,   247,     0,     0,     0,   284,   306,   285,   252,     0,
  545.      0,   284,    21,   286,   252,     0,     0,   140,     0,     0,
  546.      0,   288,    90,    83,   230,   287,   104,   289,   252,     0,
  547.     18,    83,   105,     0,    18,    83,   154,   105,     0,    18,
  548.     83,    50,   106,     0,    18,    83,   178,     0,    18,    83,
  549.      1,   105,     0,    18,    83,    50,   247,   245,   106,     0,
  550.     18,    83,    50,   247,     1,   106,     0,     0,     8,     0,
  551.      0,   154,     0,     1,     0,     0,   295,     0,   296,     0,
  552.    295,    51,   296,     0,    10,    83,   154,   104,     0,    10,
  553.      0,   297,    51,    10,     0,     0,   299,     0,   299,    51,
  554.     11,     0,   299,    11,     0,    11,     0,    94,     0,   299,
  555.     94,     0,   299,    55,     0,   300,     0,   300,    53,   200,
  556.      0,   299,    51,   300,     0,   299,    51,   300,    53,   200,
  557.      0,   299,    51,   304,     0,   299,    51,   304,    53,   200,
  558.      0,   180,   303,   301,     0,   182,   303,   301,     0,   231,
  559.      0,   238,     0,    47,   238,     0,   233,     0,     0,   301,
  560.      0,     0,    86,   308,     0,    93,    83,   309,   104,     0,
  561.     98,     0,     3,     0,     4,     0,    46,     3,     0,    46,
  562.      4,     0,   239,     3,     0,   241,     0,   230,     0,   306,
  563.      0,   308,    51,   306,     0,   307,     0,   309,    51,   307,
  564.      0,    41,    71,     0,    41,    72,     0,    41,    73,     0,
  565.     41,    69,     0,    41,    70,     0,    41,    61,     0,    41,
  566.     59,     0,    41,    60,     0,    41,   107,     0,    41,    51,
  567.      0,    41,    64,     0,    41,    65,     0,    41,    66,     0,
  568.     41,    63,     0,    41,    52,     0,    41,    53,     0,    41,
  569.     67,     0,    41,    68,     0,    41,    75,     0,    41,    76,
  570.      0,    41,    58,     0,    41,    57,     0,    41,   108,     0,
  571.     41,    54,    55,     0,    41,    62,     0,    41,    79,     0,
  572.     41,    80,     0,    41,    42,     0,    41,    84,   109,     0,
  573.     41,    38,     0,    41,    37,     0,    41,   183,   231,     0,
  574.     41,     1,     0
  575. };
  576.  
  577. #endif
  578.  
  579. #if YYDEBUG != 0
  580. static const short yyrline[] = { 0,
  581.    285,   286,   300,   302,   303,   307,   312,   316,   319,   322,
  582.    325,   327,   329,   330,   333,   335,   337,   340,   345,   350,
  583.    353,   357,   360,   364,   377,   384,   391,   394,   399,   401,
  584.    405,   411,   411,   414,   414,   417,   417,   430,   430,   435,
  585.    440,   455,   478,   487,   488,   491,   492,   493,   494,   495,
  586.    498,   504,   507,   512,   518,   525,   527,   545,   546,   547,
  587.    550,   564,   577,   580,   583,   586,   588,   590,   594,   600,
  588.    605,   610,   615,   620,   625,   630,   636,   646,   655,   662,
  589.    671,   680,   687,   696,   704,   706,   708,   710,   714,   727,
  590.    750,   753,   755,   756,   759,   766,   773,   777,   779,   781,
  591.    783,   785,   787,   791,   797,   799,   800,   803,   805,   806,
  592.    809,   811,   812,   816,   817,   820,   849,   852,   856,   860,
  593.    861,   865,   870,   873,   877,   880,   883,   916,   932,   935,
  594.    939,   942,   946,   948,   950,   952,   954,   958,   961,   964,
  595.    969,   973,   978,   982,   985,   986,   990,  1009,  1016,  1021,
  596.   1033,  1040,  1046,  1052,  1059,  1062,  1064,  1066,  1069,  1072,
  597.   1074,  1078,  1085,  1088,  1091,  1093,  1095,  1097,  1104,  1115,
  598.   1135,  1137,  1139,  1142,  1144,  1146,  1148,  1151,  1153,  1155,
  599.   1157,  1159,  1167,  1177,  1180,  1182,  1184,  1186,  1189,  1191,
  600.   1194,  1196,  1200,  1206,  1208,  1211,  1226,  1228,  1230,  1241,
  601.   1243,  1245,  1247,  1249,  1251,  1253,  1255,  1257,  1259,  1261,
  602.   1263,  1265,  1267,  1269,  1271,  1273,  1275,  1277,  1279,  1281,
  603.   1288,  1291,  1308,  1311,  1328,  1329,  1331,  1333,  1335,  1343,
  604.   1358,  1363,  1370,  1377,  1380,  1382,  1384,  1393,  1398,  1421,
  605.   1465,  1467,  1470,  1473,  1475,  1478,  1480,  1482,  1521,  1528,
  606.   1530,  1532,  1534,  1549,  1564,  1566,  1569,  1576,  1625,  1627,
  607.   1634,  1637,  1641,  1643,  1651,  1653,  1657,  1670,  1671,  1677,
  608.   1680,  1687,  1695,  1698,  1705,  1710,  1717,  1719,  1720,  1722,
  609.   1730,  1733,  1735,  1737,  1741,  1745,  1750,  1752,  1763,  1767,
  610.   1769,  1772,  1787,  1790,  1792,  1794,  1798,  1801,  1809,  1810,
  611.   1811,  1812,  1813,  1817,  1821,  1826,  1827,  1828,  1831,  1833,
  612.   1836,  1838,  1841,  1844,  1848,  1856,  1858,  1867,  1873,  1874,
  613.   1880,  1888,  1890,  1901,  1904,  1909,  1911,  1916,  1922,  1933,
  614.   1948,  1951,  1955,  1957,  1962,  1965,  1968,  1974,  1977,  1980,
  615.   1982,  1984,  1986,  1990,  1994,  1998,  2001,  2004,  2008,  2011,
  616.   2015,  2070,  2085,  2087,  2090,  2092,  2096,  2097,  2099,  2101,
  617.   2103,  2107,  2110,  2112,  2114,  2120,  2124,  2129,  2134,  2141,
  618.   2146,  2155,  2160,  2160,  2162,  2165,  2167,  2171,  2173,  2177,
  619.   2182,  2186,  2190,  2196,  2205,  2219,  2222,  2224,  2228,  2254,
  620.   2263,  2289,  2292,  2294,  2296,  2301,  2304,  2317,  2320,  2326,
  621.   2328,  2332,  2334,  2338,  2341,  2344,  2348,  2350,  2354,  2356,
  622.   2360,  2362,  2366,  2371,  2373,  2375,  2377,  2383,  2386,  2387,
  623.   2398,  2403,  2407,  2411,  2415,  2421,  2425,  2428,  2431,  2434,
  624.   2443,  2445,  2449,  2452,  2457,  2460,  2465,  2468,  2469,  2473,
  625.   2476,  2480,  2483,  2491,  2493,  2497,  2500,  2502,  2504,  2506,
  626.   2508,  2510,  2512,  2514,  2516,  2517,  2519,  2521,  2523,  2526,
  627.   2529,  2531,  2533,  2535,  2537,  2539,  2541,  2543,  2544,  2546,
  628.   2553,  2556,  2558,  2560,  2562,  2564,  2566,  2568,  2570,  2572,
  629.   2576,  2579,  2585,  2587,  2589,  2598,  2600,  2602,  2604,  2606,
  630.   2609,  2611,  2613,  2615,  2617,  2619,  2623,  2636,  2638,  2655,
  631.   2658,  2659,  2680,  2685,  2687,  2689,  2691,  2693,  2695,  2697,
  632.   2699,  2701,  2703,  2705,  2707,  2709,  2711,  2715,  2723,  2730,
  633.   2737,  2746,  2754,  2767,  2769,  2770,  2771,  2774,  2781,  2791,
  634.   2793,  2798,  2800,  2803,  2817,  2820,  2823,  2828,  2833,  2840,
  635.   2843,  2847,  2849,  2852,  2859,  2862,  2865,  2868,  2881,  2884,
  636.   2890,  2897,  2902,  2905,  2911,  2915,  2918,  2924,  2929,  2932,
  637.   2937,  2947,  2951,  2954,  2960,  2971,  2978,  2985,  3036,  3036,
  638.   3116,  3116,  3132,  3132,  3136,  3140,  3143,  3148,  3155,  3164,
  639.   3173,  3182,  3185,  3191,  3193,  3197,  3201,  3202,  3203,  3206,
  640.   3209,  3212,  3215,  3218,  3230,  3259,  3269,  3282,  3310,  3341,
  641.   3353,  3361,  3366,  3373,  3381,  3383,  3390,  3392,  3392,  3400,
  642.   3405,  3412,  3413,  3415,  3415,  3418,  3439,  3455,  3474,  3492,
  643.   3495,  3497,  3500,  3517,  3535,  3538,  3540,  3544,  3547,  3549,
  644.   3551,  3557,  3560,  3564,  3567,  3568,  3574,  3576,  3579,  3581,
  645.   3585,  3590,  3593,  3602,  3609,  3614,  3619,  3623,  3630,  3634,
  646.   3638,  3652,  3655,  3657,  3659,  3661,  3663,  3671,  3687,  3692,
  647.   3693,  3694,  3698,  3702,  3720,  3728,  3731,  3733,  3737,  3740,
  648.   3742,  3744,  3746,  3748,  3750,  3753,  3758,  3760,  3767,  3769,
  649.   3776,  3779,  3781,  3783,  3785,  3787,  3789,  3791,  3793,  3795,
  650.   3797,  3799,  3801,  3803,  3805,  3807,  3816,  3818,  3820,  3822,
  651.   3824,  3826,  3828,  3830,  3832,  3834,  3846,  3858,  3870,  3882,
  652.   3910,  3941,  3943
  653. };
  654.  
  655. static const char * const yytname[] = {   "$","error","$illegal.","IDENTIFIER",
  656. "TYPENAME","SCOPED_TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING",
  657. "ELLIPSIS","SIZEOF","ENUM","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT",
  658. "BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","GCC_ASM_KEYWORD","TYPEOF",
  659. "ALIGNOF","HEADOF","CLASSOF","ATTRIBUTE","EXTENSION","LABEL","AGGR","VISSPEC",
  660. "DELETE","NEW","OVERLOAD","THIS","OPERATOR","LEFT_RIGHT","TEMPLATE","TYPEID",
  661. "DYNAMIC_CAST","SCOPE","START_DECLARATOR","EMPTY","TYPENAME_COLON","'{'","','",
  662. "ASSIGN","'='","'?'","':'","RANGE","OROR","ANDAND","'|'","'^'","'&'","MIN_MAX",
  663. "EQCOMPARE","ARITHCOMPARE","'<'","'>'","LSHIFT","RSHIFT","'+'","'-'","'*'","'/'",
  664. "'%'","UNARY","PLUSPLUS","MINUSMINUS","HYPERUNARY","PAREN_STAR_PAREN","POINTSAT",
  665. "POINTSAT_STAR","'.'","DOT_STAR","'('","'['","RAISE","RAISES","RERAISE","TRY",
  666. "EXCEPT","CATCH","THROW","ANSI_TRY","ANSI_THROW","TYPENAME_ELLIPSIS","PTYPENAME",
  667. "PRE_PARSED_FUNCTION_DECL","EXTERN_LANG_STRING","ALL","PRE_PARSED_CLASS_DECL",
  668. "TYPENAME_DEFN","IDENTIFIER_DEFN","PTYPENAME_DEFN","END_OF_SAVED_INPUT","')'",
  669. "';'","'}'","'~'","'!'","']'","program","extdefs","@1",".hush_warning",".warning_ok",
  670. "asm_keyword","extdef","extern_lang_string","template_header","@2","template_parm_list",
  671. "template_parm","overloaddef","ov_identifiers","template_def","@3","@4","@5",
  672. "@6","fn_tmpl_end","datadef","fndef","fn.def1","fn.def2","return_id","return_init",
  673. "base_init",".set_base_init","member_init_list","member_init","identifier","identifier_defn",
  674. "identifier_or_opname","template_type","template_type_name","tmpl.1","tmpl.2",
  675. "template_arg_list","template_arg","template_instantiate_once","@7","template_instantiation",
  676. "template_instantiate_some","unop","expr","paren_expr_or_null","paren_cond_or_null",
  677. "xcond","condition","@8",".kindof_pushlevel","partially_scoped_stmt","already_scoped_stmt",
  678. "nonnull_exprlist","unary_expr","@9","cast_expr","expr_no_commas","primary",
  679. "@10","@11","new",".scope","delete","string","nodecls","object","object_star",
  680. "decl","declarator","typed_declspecs","reserved_declspecs","declmods","typed_typespecs",
  681. "reserved_typespecquals","typespec","typespecqual_reserved","initdecls","notype_initdecls",
  682. "maybeasm","initdcl0","@12","initdcl","@13","notype_initdcl0","@14","maybe_attribute",
  683. "attribute_list","attrib","identifiers_or_typenames","init","initlist","structsp",
  684. "@15","@16","maybecomma","maybecomma_warn","aggr","named_class_head_sans_basetype",
  685. "named_class_head_sans_basetype_defn","named_class_head","@17","@18","unnamed_class_head",
  686. "class_head","maybe_base_class_list","base_class_list","base_class","scoped_base_class",
  687. "base_class.1","base_class_visibility_list","left_curly","opt.component_decl_list",
  688. "component_decl_list","component_decl","components","component_declarator0",
  689. "component_declarator","enumlist","enumerator","typename","absdcl","nonempty_type_quals",
  690. "type_quals","nonmomentary_expr","@19","after_type_declarator","after_type_declarator_no_typename",
  691. "notype_declarator","id_scope","typename_scope","scoped_typename","absdcl1",
  692. "abs_member_declarator","after_type_member_declarator","stmts","errstmt",".pushlevel",
  693. "maybe_label_decls","label_decls","label_decl","compstmt_or_error","compstmt",
  694. "simple_if","@20","@21","implicitly_scoped_stmt","stmt","simple_stmt","@22",
  695. "@23","@24","@25","@26","@27","@28","@29","@30","@31","@32","@33","@34","@35",
  696. "@36","@37","@38","try","label_colon","try_head","@39","ansi_try","ansi_dummy",
  697. "ansi_try_head","@40","except_stmts","@41","@42","optional_identifier","ansi_except_stmts",
  698. "@43","forhead.1","forhead.2","maybe_type_qual","xexpr","asm_operands","nonnull_asm_operands",
  699. "asm_operand","asm_clobbers","parmlist","parms","parm","abs_or_notype_decl",
  700. "see_typename","dont_see_typename","bad_parm","maybe_raises","raise_identifier",
  701. "ansi_raise_identifier","raise_identifiers","ansi_raise_identifiers","operator_name",
  702. ""
  703. };
  704. #endif
  705.  
  706. static const short yyr1[] = {     0,
  707.    110,   110,   112,   111,   111,   113,   114,   115,   115,   116,
  708.    116,   116,   116,   116,   116,   116,   116,   116,   117,   119,
  709.    118,   120,   120,   121,   121,   121,   121,   122,   123,   123,
  710.    125,   124,   126,   124,   127,   124,   128,   124,   124,   124,
  711.    124,   124,   124,   124,   124,   129,   129,   129,   129,   129,
  712.    130,   130,   130,   130,   130,   130,   130,   130,   130,   130,
  713.    131,   131,   131,   131,   131,   131,   131,   131,   132,   132,
  714.    132,   132,   132,   132,   132,   132,   133,   133,   133,   133,
  715.    133,   133,   133,   134,   135,   135,   135,   135,   136,   137,
  716.    138,   138,   138,   138,   139,   139,   139,   139,   139,   139,
  717.    139,   139,   139,   139,   140,   140,   140,   141,   141,   141,
  718.    142,   142,   142,   142,   142,   143,   144,   144,   145,   145,
  719.    145,   146,   147,   147,   148,   148,   150,   149,   151,   151,
  720.    152,   152,   153,   153,   153,   153,   153,   154,   154,   155,
  721.    155,   156,   156,   157,   157,   157,   159,   158,   158,   160,
  722.    161,   161,   161,   161,   162,   162,   162,   162,   163,   163,
  723.    163,   164,   165,   164,   164,   164,   164,   164,   164,   164,
  724.    164,   164,   164,   164,   164,   164,   164,   164,   164,   164,
  725.    164,   164,   164,   164,   164,   164,   164,   164,   164,   164,
  726.    164,   164,   164,   166,   166,   166,   166,   166,   166,   167,
  727.    167,   167,   167,   167,   167,   167,   167,   167,   167,   167,
  728.    167,   167,   167,   167,   167,   167,   167,   167,   167,   167,
  729.    167,   167,   168,   168,   168,   168,   168,   168,   169,   168,
  730.    170,   168,   168,   168,   168,   168,   168,   168,   168,   168,
  731.    168,   168,   168,   168,   168,   168,   168,   168,   168,   168,
  732.    168,   168,   168,   168,   168,   168,   168,   168,   171,   171,
  733.    172,   172,   173,   173,   174,   174,   175,   176,   176,   177,
  734.    178,   178,   178,   178,   178,   178,   179,   179,   179,   179,
  735.    180,   180,   180,   180,   181,   181,   181,   181,   182,   182,
  736.    182,   182,   183,   183,   183,   183,   184,   184,   185,   185,
  737.    185,   185,   185,   185,   185,   186,   186,   186,   187,   187,
  738.    188,   188,   189,   189,   191,   190,   190,   193,   192,   192,
  739.    195,   194,   194,   196,   196,   197,   197,   198,   198,   198,
  740.    199,   199,   200,   200,   200,   200,   200,   201,   201,   201,
  741.    201,   201,   201,   203,   202,   202,   204,   202,   202,   202,
  742.    202,   202,   205,   205,   206,   206,   207,   207,   207,   207,
  743.    207,   208,   208,   208,   208,   208,   209,   211,   210,   212,
  744.    210,   213,   214,   214,   215,   215,   215,   216,   216,   217,
  745.    217,   217,   217,   218,   219,   219,   220,   220,   220,   220,
  746.    221,   222,   222,   222,   222,   223,   223,   223,   224,   224,
  747.    224,   224,   224,   224,   224,   224,   224,   224,   224,   224,
  748.    224,   224,   224,   224,   224,   224,   224,   225,   225,   225,
  749.    226,   226,   226,   226,   226,   227,   227,   227,   227,   227,
  750.    228,   228,   229,   229,   230,   230,   231,   231,   231,   232,
  751.    232,   233,   233,   235,   234,   236,   236,   236,   236,   236,
  752.    236,   236,   236,   236,   236,   236,   236,   236,   236,   237,
  753.    237,   237,   237,   237,   237,   237,   237,   237,   237,   237,
  754.    238,   238,   238,   238,   238,   238,   238,   238,   238,   238,
  755.    238,   238,   238,   238,   238,   238,   238,   238,   238,   238,
  756.    238,   238,   238,   238,   238,   238,   239,   239,   239,   240,
  757.    241,   241,   242,   242,   242,   242,   242,   242,   242,   242,
  758.    242,   242,   242,   242,   242,   242,   242,   243,   243,   243,
  759.    243,   244,   244,   245,   245,   245,   245,   246,   247,   248,
  760.    248,   249,   249,   250,   251,   251,   252,   252,   252,   254,
  761.    255,   253,   256,   256,   257,   257,   258,   258,   259,   258,
  762.    258,   260,   261,   258,   262,   263,   258,   264,   265,   266,
  763.    258,   267,   268,   269,   258,   270,   258,   271,   258,   272,
  764.    258,   273,   258,   258,   258,   258,   258,   258,   258,   258,
  765.    258,   258,   258,   258,   258,   258,   258,   258,   258,   258,
  766.    258,   258,   258,   274,   258,   258,   275,   258,   258,   258,
  767.    276,   276,   276,   277,   277,   277,   279,   278,   280,   280,
  768.    280,   281,   283,   282,   284,   285,   284,   286,   284,   287,
  769.    287,   288,   289,   288,   290,   290,   290,   291,   291,   291,
  770.    291,   292,   292,   293,   293,   293,   294,   294,   295,   295,
  771.    296,   297,   297,   298,   298,   298,   298,   298,   298,   298,
  772.    298,   299,   299,   299,   299,   299,   299,   300,   300,   301,
  773.    301,   301,   302,   303,   304,   305,   305,   305,   306,   306,
  774.    306,   306,   306,   306,   306,   307,   308,   308,   309,   309,
  775.    310,   310,   310,   310,   310,   310,   310,   310,   310,   310,
  776.    310,   310,   310,   310,   310,   310,   310,   310,   310,   310,
  777.    310,   310,   310,   310,   310,   310,   310,   310,   310,   310,
  778.    310,   310,   310
  779. };
  780.  
  781. static const short yyr2[] = {     0,
  782.      0,     1,     0,     2,     2,     0,     0,     1,     1,     1,
  783.      1,     1,     1,     5,     4,     3,     4,     4,     1,     0,
  784.      5,     1,     3,     2,     4,     3,     1,     3,     1,     3,
  785.      0,     5,     0,     5,     0,     5,     0,     5,     3,     3,
  786.      6,     7,     4,     3,     3,     1,     1,     1,     1,     1,
  787.      2,     3,     3,     3,     3,     2,     2,     2,     2,     1,
  788.      3,     4,     3,     5,     4,     3,     3,     2,     3,     3,
  789.      2,     6,     6,     4,     4,     1,     6,     4,     3,     6,
  790.      4,     3,     2,     2,     1,     3,     4,     2,     3,     0,
  791.      0,     1,     3,     2,     3,     1,     4,     2,     4,     2,
  792.      4,     2,     5,     3,     1,     1,     1,     1,     1,     1,
  793.      1,     1,     1,     2,     1,     3,     4,     4,     1,     1,
  794.      0,     0,     1,     3,     1,     1,     0,     6,     0,     1,
  795.      0,     2,     1,     1,     1,     1,     1,     1,     1,     1,
  796.      3,     1,     3,     0,     1,     1,     0,     8,     1,     0,
  797.      3,     5,     5,     2,     2,     4,     4,     1,     1,     3,
  798.      3,     1,     0,     3,     2,     2,     2,     2,     2,     2,
  799.      4,     2,     4,     3,     6,     6,     6,     9,     4,     7,
  800.      5,     8,     9,     9,     6,     9,     6,     9,     3,     6,
  801.      2,     4,     5,     1,     4,     7,     4,     4,     4,     1,
  802.      3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
  803.      3,     3,     3,     3,     3,     3,     3,     5,     3,     3,
  804.      3,     2,     1,     1,     1,     1,     3,     3,     0,     4,
  805.      0,     6,     2,     4,     2,     3,     2,     2,     1,     4,
  806.      4,     2,     7,     4,     4,     5,     3,     2,     2,     2,
  807.      5,     3,     5,     3,     6,     4,     4,     6,     1,     4,
  808.      0,     1,     1,     2,     1,     2,     0,     2,     2,     2,
  809.      3,     3,     3,     3,     2,     2,     1,     1,     2,     2,
  810.      1,     2,     2,     3,     1,     1,     2,     2,     1,     1,
  811.      2,     2,     1,     2,     2,     3,     1,     2,     1,     1,
  812.      1,     1,     4,     4,     1,     1,     1,     1,     1,     3,
  813.      1,     3,     0,     4,     0,     7,     4,     0,     7,     4,
  814.      0,     7,     4,     0,     6,     1,     3,     1,     4,     8,
  815.      1,     3,     1,     2,     3,     4,     1,     1,     3,     4,
  816.      6,     3,     5,     0,     7,     4,     0,     6,     3,     2,
  817.      4,     1,     0,     1,     0,     1,     1,     2,     2,     2,
  818.      2,     2,     2,     2,     3,     3,     2,     0,     3,     0,
  819.      3,     2,     1,     1,     0,     1,     2,     1,     3,     1,
  820.      1,     2,     2,     2,     3,     1,     1,     1,     2,     2,
  821.      1,     0,     1,     4,     3,     1,     2,     2,     3,     5,
  822.      5,     3,     3,     3,     3,     3,     5,     5,     3,     3,
  823.      3,     3,     1,     2,     2,     3,     3,     0,     1,     3,
  824.      4,     6,     4,     4,     3,     4,     6,     4,     4,     3,
  825.      1,     3,     1,     3,     2,     2,     0,     1,     2,     1,
  826.      2,     0,     2,     0,     2,     5,     5,     3,     5,     4,
  827.      3,     3,     5,     1,     1,     5,     3,     3,     1,     5,
  828.      5,     3,     5,     4,     3,     3,     1,     1,     3,     3,
  829.      5,     5,     3,     5,     3,     3,     3,     4,     3,     1,
  830.      1,     2,     2,     2,     3,     3,     7,     7,     5,     7,
  831.      3,     7,     7,     5,     7,     3,     1,     2,     2,     2,
  832.      1,     2,     3,     3,     2,     1,     3,     3,     2,     5,
  833.      3,     4,     3,     4,     2,     3,     2,     4,     5,     4,
  834.      5,     5,     5,     1,     1,     2,     2,     2,     0,     0,
  835.      1,     1,     2,     3,     1,     2,     3,     5,     5,     0,
  836.      0,     6,     1,     2,     1,     1,     1,     2,     0,     4,
  837.      1,     0,     0,     6,     0,     0,     7,     0,     0,     0,
  838.     10,     0,     0,     0,    10,     0,     7,     0,     5,     0,
  839.      7,     0,     4,     2,     2,     2,     3,     6,     8,    10,
  840.     12,     4,     3,     2,     2,     1,     2,     3,     6,     4,
  841.      6,     4,     3,     0,     7,     2,     0,     5,     3,     1,
  842.      2,     3,     3,     2,     2,     1,     0,     4,     2,     3,
  843.      3,     0,     0,     4,     0,     0,     4,     0,     4,     0,
  844.      1,     0,     0,     8,     3,     4,     4,     3,     4,     6,
  845.      6,     0,     1,     0,     1,     1,     0,     1,     1,     3,
  846.      4,     1,     3,     0,     1,     3,     2,     1,     1,     2,
  847.      2,     1,     3,     3,     5,     3,     5,     3,     3,     1,
  848.      1,     2,     1,     0,     1,     0,     2,     4,     1,     1,
  849.      1,     2,     2,     2,     1,     1,     1,     3,     1,     3,
  850.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  851.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  852.      2,     2,     2,     3,     2,     2,     2,     2,     3,     2,
  853.      2,     3,     2
  854. };
  855.  
  856. static const short yydefact[] = {     3,
  857.      0,     0,     0,   480,   301,   501,   290,   300,   289,     0,
  858.      8,     9,     0,   357,     0,     0,     0,   442,   442,   442,
  859.      0,     0,    76,    19,    60,     0,     0,     5,     6,     0,
  860.     13,    12,    11,    10,   267,   305,   121,     0,     0,   281,
  861.      0,   311,   299,     0,   368,   370,   374,   373,   352,     0,
  862.    442,   497,   302,   481,     4,    58,    59,   498,   442,   500,
  863.    261,   644,   105,   106,   347,   107,   350,   261,    29,     0,
  864.    713,   301,   440,   711,   710,   708,   690,   695,   696,     0,
  865.    702,   701,   687,   688,   686,   705,   694,   691,   692,   693,
  866.    697,   698,   684,   685,   681,   682,   683,   699,   700,   706,
  867.    707,     0,   689,   703,   305,   437,   293,     0,   302,    20,
  868.    663,     0,     0,     0,     0,     0,     0,   261,   483,   482,
  869.    484,     0,     3,     0,     0,   301,     0,     0,   368,   370,
  870.    666,     0,    90,    85,   267,     0,     0,   502,   499,   119,
  871.    120,   129,   459,     0,   442,   442,   454,     0,    57,     0,
  872.      0,   309,   277,   278,   442,   455,   301,   292,   291,    56,
  873.      0,   282,     0,     0,   286,   306,   307,   283,   285,   308,
  874.      0,    51,   106,   358,   359,   360,   361,   364,   372,   107,
  875.    109,   108,   110,   362,   367,   363,   375,   375,   391,     0,
  876.     68,   442,     0,   444,     0,     0,    71,     0,   442,   644,
  877.    666,   223,   440,   225,   265,   261,   261,     0,     0,   163,
  878.    263,   239,     0,     0,   262,     0,   261,   134,   133,   261,
  879.    135,   136,     0,   261,   137,     0,   123,   261,   194,   200,
  880.    126,   162,     0,   261,   226,     0,   261,   437,   293,   125,
  881.    437,     0,   224,   648,   649,   664,   664,     0,   645,   652,
  882.    349,     0,   344,     0,   138,   139,     0,     0,    28,   704,
  883.    709,   442,     0,   442,   442,   506,   644,   444,   712,   438,
  884.    295,   297,   441,   294,     0,   443,   496,   477,   476,   475,
  885.      0,     0,    16,     0,     7,     7,    45,    44,   666,     0,
  886.     31,    35,    39,    33,    37,    40,   313,    84,    91,    88,
  887.      0,   261,   267,     0,     0,     0,   529,    61,   535,    63,
  888.    375,   130,   116,   279,   280,     0,     0,   442,   442,   467,
  889.      0,     0,   468,    66,    55,    69,     0,    54,   442,     0,
  890.    444,     0,    53,   284,    52,    67,    70,   288,   287,   666,
  891.    312,   365,   366,   376,   369,   371,   413,   261,     0,   418,
  892.    418,     0,     0,   396,   666,   473,     0,   289,     0,   159,
  893.    281,     0,   479,     0,   261,   670,   671,     0,   669,     0,
  894.      0,   675,   677,   667,     0,     0,   324,   486,   491,   485,
  895.    666,     0,    74,   261,     0,     0,   170,   162,     0,     0,
  896.    172,   261,   261,   261,   261,     0,   248,     0,   264,     0,
  897.    249,   169,   166,   165,     0,     0,     0,     0,   167,   261,
  898.    118,   168,   261,   261,     0,   261,   261,   261,   261,   261,
  899.    261,   261,   261,   261,   261,   261,   261,   261,   261,   261,
  900.    261,   261,   233,   237,   238,   269,   270,   268,   261,   261,
  901.    261,   259,     0,   261,   191,   266,   111,   112,     0,   113,
  902.      0,   235,     0,   115,   222,   435,   242,   261,   436,   111,
  903.    112,   113,     0,   250,   437,   437,   442,   647,   437,   651,
  904.    650,     0,   433,   355,   431,   346,     0,   303,     0,   304,
  905.     30,   515,   439,   509,   505,     0,   442,     0,     0,     0,
  906.    517,     0,   442,   644,   444,   298,   296,     0,    22,     0,
  907.     27,   117,     0,    15,    18,    17,   313,    50,    46,    49,
  908.     47,    48,    43,     0,     0,     0,     0,   324,   105,   106,
  909.     96,   261,     0,    92,     0,   121,     0,     0,   337,     0,
  910.    333,    86,     0,     0,    62,    65,   536,   530,   127,   458,
  911.    457,     0,     0,   442,   442,     0,   442,     0,   444,   452,
  912.    324,   310,   448,     0,     0,     0,   451,     0,   442,   442,
  913.    313,   388,   387,   386,   122,   377,   378,   381,   380,     0,
  914.      0,   415,   414,   480,   459,   442,   261,   644,   666,     0,
  915.    419,   301,   442,   644,   666,     0,     0,   351,   398,   397,
  916.     83,   442,   442,   442,   478,   445,   672,   673,   674,     0,
  917.    676,   679,     0,     0,     0,   323,   442,     0,   442,     0,
  918.     75,   442,     0,     0,     0,     0,   301,     0,   164,     0,
  919.      0,     0,   247,   261,   228,   227,     0,   261,   124,   220,
  920.    219,   636,   635,     0,   217,   216,   214,   215,   213,   212,
  921.    211,   208,   209,   210,   206,   207,   201,   202,   203,   204,
  922.    205,   221,     0,     0,   261,   189,   261,   293,   174,   261,
  923.      0,     0,     0,   114,   254,   261,   236,     0,   252,   261,
  924.      0,   442,   442,   644,   660,   661,   658,   659,   666,   646,
  925.    654,   665,   656,   653,   261,   356,     0,   355,   161,   160,
  926.    508,   504,     0,   503,   507,   442,   516,   511,     0,   513,
  927.      0,     0,    21,   364,   362,   367,    14,   324,    32,    36,
  928.     34,    38,     0,     0,    94,     0,    98,   261,   100,   261,
  929.      0,   102,   261,   223,   301,   261,   334,     0,   338,     0,
  930.     87,    64,     0,   537,     0,   531,   532,     0,     0,     0,
  931.      0,     0,   466,   462,     0,     0,     0,   465,     0,   317,
  932.    442,   442,   442,   450,     0,     0,   324,   129,     0,   384,
  933.    390,   389,   383,   382,   411,   412,   261,   261,   402,   403,
  934.    666,   324,     0,   313,     0,   399,   409,   410,   666,     0,
  935.    405,   313,   404,   406,     0,   416,   417,   474,   471,   472,
  936.    678,     0,   668,     0,     0,   321,   489,     0,     0,     0,
  937.    494,     0,     0,     0,   666,   240,   171,   173,   197,   199,
  938.    198,   244,   245,     0,     0,   230,     0,   195,   261,   231,
  939.    234,     0,     0,   437,   437,   179,   261,     0,   192,   261,
  940.      0,   257,     0,   256,   261,   241,     0,   662,   509,   505,
  941.    442,    72,     0,     0,   434,   432,   348,     0,   442,   442,
  942.    514,   442,   512,    23,    26,     0,     0,    41,    95,    93,
  943.      0,     0,   104,   261,     0,     0,     0,     0,   335,   331,
  944.      0,     0,   223,   540,   552,   555,     0,   529,   261,     0,
  945.      0,     0,   261,     0,   606,     0,     0,     0,     0,   261,
  946.      0,   586,   632,     0,   547,     0,     0,     0,   525,   545,
  947.    551,   524,   546,     0,   261,     0,   612,     0,   558,   562,
  948.    533,     0,   456,   453,   470,   469,   442,   442,   442,   464,
  949.    315,   449,   446,   447,   523,   522,   320,   385,   379,   324,
  950.    324,    78,   425,   442,   324,   480,   459,   261,   666,   420,
  951.     81,   442,     0,   680,   314,     0,     0,   442,   442,   442,
  952.    442,   442,   442,    73,   261,   246,   353,   218,   131,   260,
  953.      0,     0,     0,     0,     0,   181,   193,     0,   253,     0,
  954.    251,     0,   655,   657,   345,   520,   518,   510,    25,    42,
  955.     97,    99,     0,   101,     0,   342,   261,   336,     0,   339,
  956.      0,   534,   528,   539,   604,   529,   529,   529,     0,     0,
  957.      0,   572,   574,   575,   576,     0,   261,     0,   670,   671,
  958.      0,     0,   607,     0,   613,   587,     0,   605,   633,     0,
  959.    548,   275,   666,     0,   276,     0,     0,   666,     0,   538,
  960.    527,   526,   549,   596,     0,     0,   585,   584,     0,   601,
  961.      0,   612,     0,   609,     0,   529,   529,     0,   463,   460,
  962.    461,     0,   318,   423,   424,   400,   401,   666,   421,   261,
  963.    261,   324,   313,   407,   408,   666,   328,     0,   326,   322,
  964.    490,   487,   488,   495,   492,   493,     0,     0,     0,   131,
  965.    232,   190,     0,   293,   175,   185,   187,   176,   177,   258,
  966.    255,   442,   442,   521,   519,   103,   340,     0,     0,   332,
  967.      0,     0,   261,   543,     0,     0,   529,   625,     0,   628,
  968.    261,   568,   261,   261,   577,     0,   583,   593,     0,   261,
  969.    529,     0,   261,   529,   588,     0,   272,   313,   271,   274,
  970.    273,   313,   150,   599,     0,   603,   602,   597,   611,   610,
  971.      0,     0,   128,   316,     0,    77,     0,   324,   324,   430,
  972.    324,    80,     0,     0,     0,   243,   196,   132,   437,   437,
  973.    180,   261,     0,   444,   444,   520,   518,     0,   343,   142,
  974.    261,   541,   553,   544,   556,   629,   627,     0,   626,   149,
  975.      0,     0,   261,     0,   573,   582,   592,     0,   608,   590,
  976.      0,   614,     0,   150,   261,   550,   594,   622,   146,     0,
  977.    145,     0,   319,   422,   428,   429,   426,     0,     0,   327,
  978.    325,     0,     0,     0,   182,     0,     0,   341,     0,   150,
  979.    261,     0,     0,     0,   566,   666,   569,   570,     0,     0,
  980.    637,     0,   530,   154,   615,   598,   559,   563,     0,     0,
  981.    329,   186,   188,   178,   183,   184,   143,   542,   530,   554,
  982.    158,   140,   261,     0,   631,   630,   150,   313,   261,   591,
  983.    589,     0,     0,   638,   639,   578,   151,     0,     0,     0,
  984.      0,     0,   427,     0,   155,     0,     0,   557,   567,   324,
  985.    571,   261,   637,     0,     0,     0,     0,   618,   595,   616,
  986.      0,     0,     0,     0,     0,     0,   141,     0,     0,     0,
  987.    579,   640,   153,   152,     0,     0,   620,   560,   564,     0,
  988.    157,   156,   147,   641,     0,     0,   619,   617,   621,     0,
  989.    261,   261,   330,     0,   642,     0,   580,   623,   561,   565,
  990.    148,     0,     0,     0,   643,   581,   624,     0,     0,     0
  991. };
  992.  
  993. static const short yydefgoto[] = {  1338,
  994.      1,     2,   124,   505,   893,    28,    29,    30,   275,   498,
  995.    499,    31,    70,    32,   514,   516,   515,   517,   513,    33,
  996.     34,    35,   349,   134,   135,   136,   299,   523,   524,   564,
  997.    185,   452,    36,    37,   142,   758,   226,   227,   312,   738,
  998.    313,  1081,   228,   894,  1254,  1172,  1200,  1201,  1324,  1195,
  999.   1196,  1250,   255,   229,   394,   230,   256,   232,   407,   959,
  1000.    443,   233,   234,   235,   137,   236,   237,   895,   340,   896,
  1001.    168,   897,   238,   271,   389,   272,   151,    41,   377,   152,
  1002.   1052,   341,  1145,    42,   947,   606,  1068,  1069,   871,   729,
  1003.    730,    43,   477,   252,  1079,   687,    44,    45,    46,    47,
  1004.    187,   188,    48,    49,   345,   566,   567,   568,   569,   570,
  1005.    190,   352,   353,   354,   580,   581,   940,   474,   475,   240,
  1006.    675,   241,   111,   364,   365,   153,   322,   154,   242,    52,
  1007.    109,   270,   489,   156,   898,   899,   538,   735,   736,   737,
  1008.    308,   900,   901,   996,  1220,  1105,   902,   903,  1133,   997,
  1009.   1221,   998,  1222,  1046,  1271,  1321,  1047,  1272,  1322,  1257,
  1010.   1183,  1259,  1114,  1235,  1198,   904,   905,   906,  1121,   907,
  1011.   1042,   908,  1124,  1269,  1306,  1305,  1320,  1236,  1334,   909,
  1012.    910,  1020,   634,  1263,  1264,  1265,  1326,   490,   249,   250,
  1013.    677,   112,   465,   683,   197,   373,   602,   374,   603,   243
  1014. };
  1015.  
  1016. static const short yypact[] = {    77,
  1017.   2324,  5489,   459,    73,   779,-32768,-32768,-32768,-32768,    70,
  1018. -32768,-32768,    19,-32768,   179,  2429,   122,-32768,-32768,-32768,
  1019.   1334,   144,-32768,-32768,-32768,   130,   159,-32768,   223,  2541,
  1020. -32768,-32768,-32768,-32768,   258,   100,   372,  1744,  6807,   986,
  1021.     71,-32768,-32768,  1231,-32768,-32768,-32768,-32768,   235,  1577,
  1022. -32768,-32768,   143,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  1023.   6418,   654,-32768,-32768,   252,-32768,   363,  6418,-32768,   187,
  1024. -32768,   314,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   369,
  1025. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  1026. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  1027. -32768,   388,-32768,-32768,   481,  1127,  1081,  1339,-32768,-32768,
  1028.    456,  1334,   796,   796,   570,   462,   272,  6418,-32768,-32768,
  1029. -32768,   611,   546,  2116,   665,   570,  5500,  6948,   210,   376,
  1030.    704,   738,-32768,   700,   347,   204,   204,-32768,-32768,-32768,
  1031. -32768,   610,   570,    60,-32768,-32768,-32768,  1546,-32768,  2193,
  1032.    218,-32768,   423,   506,-32768,-32768,  1764,-32768,-32768,-32768,
  1033.    615,   986,   220,  1670,-32768,-32768,-32768,  1055,-32768,-32768,
  1034.   5500,-32768,   314,-32768,-32768,-32768,-32768,-32768,-32768,   144,
  1035. -32768,-32768,-32768,-32768,-32768,   385,   730,   730,-32768,  1357,
  1036. -32768,-32768,  2002,   680,   497,   713,   529,  1804,-32768,   654,
  1037.    148,    73,   720,-32768,-32768,  6624,  6701,   732,   752,-32768,
  1038. -32768,-32768,   765,   787,   910,   132,  6499,-32768,-32768,  6499,
  1039. -32768,-32768,  4944,  6499,-32768,   519,-32768,  6499,-32768,-32768,
  1040.   5567,  1424,   828,  6091,   892,   108,  6499,  1127,   397,-32768,
  1041.   7007,    53,-32768,-32768,-32768,-32768,   983,   804,   245,   859,
  1042. -32768,   132,   819,   806,   880,  7157,   853,   951,-32768,-32768,
  1043. -32768,-32768,  1506,-32768,-32768,-32768,  6962,   868,-32768,   530,
  1044.   1081,-32768,-32768,  1081,  1196,-32768,-32768,   506,   506,-32768,
  1045.    561,    41,-32768,  2525,-32768,-32768,-32768,-32768,   417,   343,
  1046. -32768,-32768,-32768,-32768,-32768,-32768,   637,-32768,   511,-32768,
  1047.   5025,  6499,-32768,   204,   204,   932,-32768,-32768,-32768,-32768,
  1048.    730,-32768,-32768,   423,   506,  1211,  1211,-32768,-32768,-32768,
  1049.   4165,   307,-32768,-32768,-32768,   529,  5500,-32768,-32768,  4101,
  1050.    877,  2168,-32768,  1055,-32768,-32768,   529,-32768,-32768,   417,
  1051. -32768,-32768,-32768,    80,-32768,-32768,-32768,  6499,   924,   471,
  1052.   6745,    56,  4444,-32768,   704,   456,   893,   720,   243,  7245,
  1053.    329,   896,-32768,   904,  6499,    73,   570,   851,-32768,   100,
  1054.   1006,-32768,-32768,   964,  1881,   934,   995,   570,   144,-32768,
  1055.    148,   928,-32768,  6499,   720,  4944,-32768,  1367,   377,  4944,
  1056. -32768,  6499,  6580,  6499,  6418,  1881,-32768,   717,-32768,   442,
  1057. -32768,-32768,-32768,-32768,   941,   956,   932,   960,-32768,  6418,
  1058. -32768,-32768,  6499,  6499,  5106,  6499,  6499,  6499,  6499,  6499,
  1059.   6499,  6499,  6499,  6499,  6499,  6499,  6499,  6499,  6499,  6499,
  1060.   6499,  6499,-32768,-32768,-32768,-32768,-32768,-32768,  6499,  6499,
  1061.   6499,  1003,   823,  5430,-32768,-32768,    73,   570,   990,   144,
  1062.    121,   447,    53,-32768,-32768,-32768,-32768,  6499,-32768,-32768,
  1063. -32768,-32768,   132,   503,   629,   629,-32768,-32768,   691,-32768,
  1064. -32768,  5025,  1016,  1020,-32768,-32768,   132,-32768,  5349,-32768,
  1065. -32768,   456,   530,  1051,  1051,    73,-32768,   440,   973,   992,
  1066. -32768,   991,-32768,   654,   994,-32768,  1081,   589,-32768,  1608,
  1067. -32768,-32768,  1000,-32768,-32768,-32768,   637,-32768,-32768,-32768,
  1068. -32768,-32768,-32768,  1002,  1015,  1031,  1032,   995,    73,   570,
  1069. -32768,  6499,   333,-32768,   558,   763,   132,   737,-32768,  4533,
  1070.   7245,-32768,   271,   204,-32768,-32768,-32768,    31,-32768,   423,
  1071.    423,  1211,  1211,-32768,-32768,   521,-32768,  4209,  1034,-32768,
  1072.    995,-32768,   456,  1007,   311,  1043,-32768,  1040,-32768,-32768,
  1073.    637,-32768,-32768,-32768,-32768,  1100,-32768,-32768,  1150,   305,
  1074.   7084,-32768,-32768,    58,    34,   775,  6499,  6852,   417,   225,
  1075. -32768,  7012,   838,  6852,   435,   142,  1101,-32768,-32768,-32768,
  1076.    897,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   497,
  1077. -32768,-32768,   321,   611,  1074,  1105,-32768,  4317,-32768,  4425,
  1078. -32768,-32768,   352,  1056,  1057,  1059,   184,  1060,-32768,  1061,
  1079.   1063,  1106,-32768,  6499,-32768,-32768,  1067,  6175,-32768,  7245,
  1080.   7245,-32768,-32768,  1118,  7281,  7296,  2383,  2711,  4053,  1953,
  1081.   2068,  1448,  1448,  1448,   953,   953,   895,   895,-32768,-32768,
  1082. -32768,-32768,   355,  1072,  6499,-32768,  6418,   709,  1131,  6499,
  1083.   1076,  1079,  1145,-32768,-32768,  6499,   739,   367,-32768,  6499,
  1084.   2293,-32768,-32768,  1856,-32768,   506,-32768,-32768,   148,-32768,
  1085.   1137,-32768,  1140,-32768,  6499,   132,  1090,  1020,-32768,  7245,
  1086.    530,   530,   788,-32768,-32768,-32768,-32768,   456,  1093,-32768,
  1087.   1097,  1196,-32768,  1104,   640,  1157,-32768,   995,-32768,-32768,
  1088. -32768,-32768,   343,   400,-32768,   511,-32768,  6499,-32768,  6499,
  1089.    801,-32768,  6499,   722,   900,  6499,-32768,  1162,-32768,    67,
  1090. -32768,-32768,   132,-32768,  3669,  1184,-32768,   235,   534,   601,
  1091.   1211,  1211,-32768,   456,  1117,   480,  1121,-32768,  1113,  1174,
  1092. -32768,-32768,-32768,-32768,  1211,  1211,   995,   610,    80,-32768,
  1093. -32768,-32768,-32768,  1150,-32768,-32768,  6499,  6499,-32768,-32768,
  1094.    148,  7134,  1125,   908,  1026,-32768,-32768,-32768,   148,  1126,
  1095. -32768,   926,-32768,-32768,  1419,-32768,-32768,   456,   456,   456,
  1096. -32768,  1881,-32768,    59,  1153,-32768,   456,  1129,   483,  1138,
  1097.    456,  1139,   516,  1142,   148,-32768,-32768,-32768,-32768,-32768,
  1098. -32768,-32768,-32768,  1158,   520,-32768,  4860,-32768,  6499,-32768,
  1099. -32768,   113,   540,  1127,  7007,-32768,  6499,  5025,-32768,  6499,
  1100.   1240,-32768,   568,-32768,  6499,-32768,   575,   506,  2047,  2047,
  1101. -32768,-32768,  5025,  5025,  7245,-32768,-32768,  1144,-32768,-32768,
  1102.    456,-32768,-32768,-32768,-32768,   136,   343,-32768,-32768,-32768,
  1103.    579,   606,-32768,  6499,   635,  7062,  5025,  4617,-32768,-32768,
  1104.    277,   901,   884,-32768,-32768,-32768,  1165,-32768,  6499,  1198,
  1105.   1146,  1151,  6256,   232,-32768,   533,  1209,   497,  1210,  6337,
  1106.    818,-32768,  1253,  1159,-32768,  2157,  6903,  2805,-32768,-32768,
  1107.   1247,-32768,-32768,  2662,  5667,  2913,-32768,  3021,-32768,-32768,
  1108. -32768,  1357,-32768,-32768,   423,   423,-32768,-32768,-32768,-32768,
  1109. -32768,   456,   456,   456,   423,   423,  1217,-32768,-32768,  7134,
  1110.   7134,-32768,-32768,   929,   995,   886,   949,  6499,   417,-32768,
  1111. -32768,   944,  5562,-32768,-32768,  1260,  5025,-32768,-32768,-32768,
  1112. -32768,-32768,-32768,-32768,  6499,-32768,  1222,  7265,   610,-32768,
  1113.   2758,  1170,  1172,   660,    49,-32768,-32768,  1235,-32768,   663,
  1114. -32768,  2301,-32768,-32768,-32768,  1051,  1051,   456,-32768,-32768,
  1115. -32768,-32768,   672,-32768,  5025,-32768,  6499,-32768,  1224,-32768,
  1116.    132,-32768,-32768,-32768,-32768,-32768,-32768,   932,  4698,  1200,
  1117.   7179,-32768,-32768,-32768,-32768,  1179,  6499,  1182,    83,   197,
  1118.   1183,   811,-32768,   826,-32768,-32768,  1187,-32768,-32768,  1215,
  1119. -32768,-32768,   510,   318,-32768,  1188,   348,   843,  1195,-32768,
  1120. -32768,-32768,-32768,-32768,   497,   132,-32768,-32768,   946,-32768,
  1121.   3129,-32768,   970,-32768,  3237,-32768,-32768,    62,   456,   456,
  1122.    456,  5025,-32768,-32768,-32768,-32768,-32768,   148,  1248,  6499,
  1123.   6499,  7134,   637,-32768,-32768,   148,  1220,   689,-32768,-32768,
  1124.    456,   456,   456,   456,   456,   456,  1204,  4779,  1203,   610,
  1125. -32768,-32768,  1881,   799,  1261,  1229,  1232,-32768,-32768,-32768,
  1126. -32768,-32768,-32768,   530,   530,-32768,-32768,  7201,  5025,-32768,
  1127.    850,   850,  5985,-32768,  1299,  1218,  1216,-32768,  1219,-32768,
  1128.   6418,-32768,  6499,  5773,-32768,  1223,-32768,-32768,  1225,  6499,
  1129. -32768,  1236,  6499,-32768,-32768,   611,-32768,   637,-32768,-32768,
  1130. -32768,   637,  1279,   964,  1286,-32768,-32768,-32768,-32768,-32768,
  1131.   5187,  5187,-32768,-32768,  5025,-32768,  5025,  7134,  7134,-32768,
  1132.    995,-32768,   814,  1260,  1238,-32768,-32768,-32768,  1127,  7007,
  1133. -32768,  6499,  5025,-32768,-32768,  2047,  2047,  5025,-32768,-32768,
  1134.   6418,-32768,-32768,-32768,-32768,-32768,-32768,  3777,-32768,-32768,
  1135.   1244,  5500,  5773,  7223,-32768,-32768,-32768,   706,-32768,-32768,
  1136.    707,-32768,    38,-32768,  5985,-32768,-32768,-32768,-32768,  1249,
  1137. -32768,  1251,-32768,-32768,-32768,-32768,  1287,  1302,  1255,-32768,
  1138. -32768,  1262,  1268,   710,-32768,  1264,  1267,-32768,  1273,  1279,
  1139.   5879,   857,   980,  3345,-32768,   417,-32768,-32768,  1277,  1278,
  1140.   1368,  1281,    44,-32768,-32768,  1294,-32768,-32768,  5025,  1378,
  1141. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,    48,-32768,
  1142. -32768,-32768,  6499,  1283,-32768,-32768,  1279,   637,  5773,-32768,
  1143. -32768,  1306,   195,  1340,-32768,-32768,-32768,  3885,   547,  1307,
  1144.   5268,  5268,-32768,  1343,-32768,  3993,  1292,-32768,-32768,   995,
  1145. -32768,  6499,  1368,  1296,  1368,   993,  3453,-32768,-32768,-32768,
  1146.   1881,  1298,  1300,  1390,  1013,  3561,-32768,  1353,  1303,   379,
  1147. -32768,-32768,-32768,-32768,   932,   932,   132,-32768,-32768,  1304,
  1148. -32768,-32768,-32768,-32768,  1400,  1308,-32768,-32768,-32768,  1317,
  1149.   5879,  5879,-32768,  5025,-32768,   715,-32768,-32768,-32768,-32768,
  1150. -32768,  1401,  1325,   932,-32768,-32768,-32768,  1431,  1433,-32768
  1151. };
  1152.  
  1153. static const short yypgoto[] = {-32768,
  1154.   1312,-32768,-32768,  1152,    20,  1435,-32768,-32768,-32768,-32768,
  1155.    747,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  -671,  1315,
  1156.   1329,-32768,-32768,-32768,-32768,  1321,-32768,-32768,   741,    -8,
  1157.    958,  -225,   145,   -24,-32768,-32768,  1341,  1062,  -900,-32768,
  1158.    703,   389,-32768,   -27,-32768,   368,   334, -1041,-32768,   281,
  1159.   -799,  -230,  -161,   919,-32768,  -149,  1114,  -162,-32768,-32768,
  1160. -32768,-32768,  -180,  -114,  -108,-32768,-32768,   472,   -32,   771,
  1161.   1316,  1295,    -3,  1205,    -1,    36,   581,   -28,  -283,-32768,
  1162. -32768,  1164,-32768,-32768,-32768,  -502,-32768,   332,-32768,  -270,
  1163.    675,   -10,-32768,-32768,-32768,   805,  -252,  1459,  1464,-32768,
  1164. -32768,-32768,-32768,-32768,  -154,-32768,   742,   927,  -530,-32768,
  1165.    758,   597,   725,  -335,  1161,-32768,-32768,  1036,   836,   -42,
  1166.    -94,    12,  1709,  -243,-32768,  -105,  1202,   726,  1018,-32768,
  1167.      2,  -217,-32768,  -111,  -798,  -808,  -826, -1146,-32768,   793,
  1168.   -104,  -127,-32768,-32768,-32768,-32768,  -851,  -944,-32768,-32768,
  1169. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  1170. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  1171.    505,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  1172. -32768,-32768,  -144,   268,-32768,   267,-32768,    -9,-32768,  -256,
  1173.   -182,   -46,  1310,-32768,   -50,  -576,   766,   524,-32768,  1638
  1174. };
  1175.  
  1176.  
  1177. #define    YYLAST        7369
  1178.  
  1179.  
  1180. static const short yytable[] = {    40,
  1181.     40,    67,    53,    53,   198,   150,   161,   282,   309,   309,
  1182.    163,   269,   106,   518,   107,   713,   464,   590,   501,   186,
  1183.     27,    27,   500,   791,   492,   257,   305,   108,    40,   170,
  1184.    532,   359,   310,   346,   399,   184,   323,   162,   314,   764,
  1185.    254,   858,   551,   388,   388,   483,  1032,   446,   750,   488,
  1186.    446,  1000,   248,  1038,   388,   460,   461,   388,  1080,   239,
  1187.     40,   388,     4,   143,   733,   388,   239,   403,   446,  1181,
  1188.    404,   388,    63,    64,   409,   169,    -1,   733,   412,    60,
  1189.    297,   733,    63,   173,   445,   562,  1268,   558,   768,  1031,
  1190.    457,   587,  1231,    16,   289,   290,   170,   587,    61,   326,
  1191.     16,    68,  1276,    58,   138,    18,   274,  1041,   332,  1045,
  1192.    447,   448,   767,   337,   449,   563,   239,   868,    58,    65,
  1193.    145,   171,    40,    63,    64,    53,   162,   663,    58,  1219,
  1194.    146,   458,   119,   120,    63,    64,   734,   147,    63,   173,
  1195.    533,  1232,   148,   456,   503,   139,   459,   462,    16,  1267,
  1196.    383,   170,  1089,  1275,    22,   276,   539,   170,  1174,   463,
  1197.    105,   588,   945,   479,    66,   116,    26,  1143,   555,  1101,
  1198.   1102,  1103,   869,   855,   180,   172,   309,   309,   537,  1080,
  1199.    408,    69,   116,   362,   199,   980,   110,  -105,    40,  1032,
  1200.    382,   361,   775,  1032,   534,   406,   372,   169,    40,   535,
  1201.    536,   684,   450,   339,   306,   857,   105,   402,   118,   323,
  1202.    540,   541,   681,   400,   451,    66,   376,   399,   960,  1141,
  1203.   1142,   239,   613,   708,   121,   200,    66,   667,   170,    60,
  1204.    180,   388,  1031,   195,    63,    64,  1031,   258,   507,   274,
  1205.    196,   122,    60,   473,   619,   162,   783,   784,    61,  1283,
  1206.   1234,   701,   105,   307,   927,   468,   116,   116,   116,   291,
  1207.    170,    61,  1185,   170,   292,    40,   691,   692,   327,   933,
  1208.    171,   116,   123,    40,   526,   775,  1251,   757,   653,   627,
  1209.   1178,   132,    40,   678,   189,    53,   682,   810,   116,   561,
  1210.    525,   259,   116,   479,  1189,   469,   668,  1192,  1284,   470,
  1211.    528,  -106,  1007,    27,   591,   749,   496,    63,   173,  1012,
  1212.    761,  1014,   133,   192,   293,   116,   376,   579,   585,   565,
  1213.    556,   479,   328,   170,   335,   979,    66,   991,   361,   776,
  1214.    611,  1227,   601,   715,   165,   166,   167,   596,   471,   370,
  1215.    762,    10,   116,   614,   105,   376,   593,   615,   547,   162,
  1216.    170,    40,   621,   622,   193,   194,   376,   251,   406,   105,
  1217.    714,   479,   406,    14,   616,   618,   508,   620,   327,   339,
  1218.    457,   792,  1032,   107,   731,   280,  1251,  1251,    61,  1224,
  1219.    116,   992,   -89,   716,   239,   105,   746,   633,   239,   548,
  1220.    549,   105,   509,   239,   107,   510,   169,   511,   171,   180,
  1221.    659,   133,   479,   166,   167,   479,   309,  1281,   239,    10,
  1222.    550,   458,   253,   654,   752,  1031,   661,   479,   457,   105,
  1223.   1248,   140,  1129,   260,   793,   294,   141,  1054,  1055,   732,
  1224.    295,    14,  1059,  1315,   342,  1032,   739,   740,   457,   343,
  1225.    693,   658,   664,   370,  1032,   501,   799,   512,   803,   500,
  1226.    479,   303,  1131,   483,   664,   806,   488,  1279,   820,   458,
  1227.    116,   116,   815,   276,   329,   116,   323,    40,   473,  1287,
  1228.    836,   116,   323,   574,   575,   186,   116,  1296,  1031,   458,
  1229.    296,   493,  1316,   623,   699,   138,   170,  1031,   665,   794,
  1230.    935,   705,    40,   822,   116,   823,   261,   388,   935,   366,
  1231.    367,     6,   195,   859,   833,   330,   331,   139,   837,   196,
  1232.    829,    16,   576,   519,   520,     6,    18,   144,   721,   105,
  1233.    195,   728,   494,   495,   624,   577,   376,   196,   774,   666,
  1234.    479,   145,   496,   479,   782,  1009,  1010,     6,   747,   781,
  1235.    105,   146,   368,   694,   669,   565,   361,   192,   147,   366,
  1236.    367,     6,   521,   578,    11,    12,   861,   966,   862,  1150,
  1237.   -313,   865,   547,    56,    57,    22,   479,  1288,   773,   410,
  1238.    479,   493,   973,   974,   780,   329,    40,    26,   368,  -313,
  1239.    376,  -313,    40,   918,   411,   670,   949,   105,   193,   194,
  1240.    479,    22,   368,   522,   369,   195,   986,   990,   800,   717,
  1241.    804,   372,   196,   548,   549,   180,   361,   590,   361,   116,
  1242.    116,   410,   494,   495,  1127,    60,   330,   331,   479,   952,
  1243.    205,   691,   692,   956,   743,   479,   502,   180,   842,   479,
  1244.    369,     4,   115,  -313,    61,   915,   916,   913,   105,   702,
  1245.    718,    22,   329,   961,   369,  1205,  1206,   170,  1207,   925,
  1246.    926,   283,  1289,   824,   703,   239,   479,    72,     6,     7,
  1247.      8,     9,    11,    12,   244,   964,    10,   388,   825,    16,
  1248.    262,   969,    40,   970,    18,   671,  1070,   473,   971,   565,
  1249.    967,    13,   981,   330,   331,   479,   116,   116,    14,   672,
  1250.    -24,   526,  1290,     4,   126,     6,     7,     8,     9,   673,
  1251.     40,   680,   983,    10,   914,   -24,   266,   525,   311,   982,
  1252.    479,   674,   268,   479,  1097,   166,   167,   528,    13,   333,
  1253.    932,    10,   479,    22,   870,    14,    50,    50,   941,   962,
  1254.    963,    16,   262,   361,   565,    26,    18,   671,   984,  1154,
  1255.    298,   300,   939,    14,   370,   192,   117,   245,    22,   601,
  1256.    826,   672,   301,   211,   954,   131,   479,   479,  1094,  1095,
  1257.    479,   673,   398,  1088,   164,  1332,  1091,    58,   266,   287,
  1258.    288,    38,    38,   674,   268,  1096,  -105,  1298,   722,  1151,
  1259.    834,  1144,   302,    40,   344,    22,   193,   194,   363,   195,
  1260.    107,   827,  1155,   376,   972,   375,   196,    26,     4,   115,
  1261.    127,   376,   384,   276,   719,   166,   167,   990,   728,  1229,
  1262.   1230,    10,   140,  1244,   392,   116,  1208,   141,  1333,   723,
  1263.     59,   835,  1209,   274,    60,   965,    72,     6,  1169,     8,
  1264.     73,   565,   246,    14,   393,    10,    16,   277,   278,   279,
  1265.   1161,    18,   863,    61,   551,   720,   105,   395,   849,    50,
  1266.     13,   396,  1119,   597,   598,  1006,    19,    14,   850,   989,
  1267.    370,    62,  1017,  1023,  1026,   442,    20,  1122,  1027,   315,
  1268.   1104,   656,  1018,   117,  1203,  1008,  1204,  1011,    21,   769,
  1269.    770,  1162,   118,   864,   192,   116,   116,   372,  1063,   372,
  1270.     22,  1170,  1215,  1120,    38,   162,   361,  1218,  1252,   116,
  1271.    116,   446,    26,   361,   361,   657,   361,   467,  1123,   478,
  1272.     40,   472,   397,    72,     6,   355,     8,    22,  1085,   116,
  1273.   1216,  1217,    10,   380,   476,   193,   194,  1077,   195,    58,
  1274.    479,    58,  1171,    11,    12,   196,   105,    13,   995,  1253,
  1275.   1060,    40,   777,   778,    14,    60,   211,  -278,  1094,  1095,
  1276.     16,    11,    12,   481,  -106,   398,   480,   -79,  1188,  1084,
  1277.    350,  1191,   -79,   246,    61,   430,   431,   432,  1273,   105,
  1278.    246,  1109,  1128,   572,  1280,   -82,   491,  1132,   573,  1116,
  1279.    -82,   307,  1100,   116,   116,   557,    72,     6,   158,     8,
  1280.    159,   165,   166,   167,    60,    10,   592,   361,    10,   594,
  1281.   1214,   786,   787,  1061,    22,   993,   994,  1146,   599,    50,
  1282.     13,  1193,   595,    61,   600,  1152,   604,    14,    51,    51,
  1283.     14,   428,   429,   430,   431,   432,   605,  1135,   936,   937,
  1284.    370,   612,   370,  1056,  1057,   662,   372,   246,    51,   361,
  1285.    116,   278,   279,   361,   625,   246,   117,    51,  1064,  1065,
  1286.    993,  1136,   655,  1331,    38,   155,   155,   380,   276,   626,
  1287.    338,   166,   167,   628,  1212,  1213,    16,    10,   685,   989,
  1288.    686,    18,   144,   170,   993,  1139,   695,    22,   355,  1159,
  1289.    938,   107,   376,  1180,   993,  1255,   145,   166,   167,    14,
  1290.   1329,  1330,   262,    10,  1160,   696,   146,   993,  1303,   697,
  1291.    246,   361,   700,   147,   707,   105,   709,  1182,   148,   239,
  1292.    751,   264,   361,  1180,  1180,    14,   116,   993,  1311,   710,
  1293.     22,   265,   108,   350,   387,   391,  1292,  1293,   266,    51,
  1294.     51,    51,    26,   267,   268,   711,   712,  1182,  1182,   239,
  1295.    239,    51,   748,  1180,   155,   155,   753,   376,   754,  1226,
  1296.    759,   376,   108,   108,   760,   785,   795,   796,   274,   807,
  1297.    808,   155,   809,   811,   812,   155,   813,  1182,   262,   239,
  1298.    816,   814,   819,   263,   231,  1258,   361,  1317,  1318,   370,
  1299.    821,   361,   108,   828,   830,   831,   832,   264,   155,   843,
  1300.    676,   676,   844,   361,   676,   847,   852,   265,   180,    72,
  1301.      6,     7,     8,     9,   266,   853,  1337,    51,    10,   267,
  1302.    268,   856,   371,     4,   143,    51,   867,   733,   276,   361,
  1303.    917,   920,   361,    13,   919,  1277,   921,   105,   934,   942,
  1304.     14,   231,   948,    63,   173,   946,   174,   175,   176,   246,
  1305.    955,   950,   951,   633,   633,   953,   968,   999,  1307,   975,
  1306.   1003,    16,  1002,   453,  1299,  1004,    18,   361,  1013,  1015,
  1307.   1019,  1033,  1067,  1021,   246,   177,   361,   278,   279,  1053,
  1308.    372,   145,  1078,  1086,   361,  1087,  1090,   376,  1099,   178,
  1309.    179,   146,  1111,  1115,   487,   361,  1117,  1118,   147,   107,
  1310.     22,  1125,  1130,   148,   361,    39,    39,  1126,  1319,   993,
  1311.   1147,    51,  1153,   117,   105,    22,   360,  1156,  1157,   117,
  1312.    116,   116,  1164,  1163,  1175,  1165,   527,    26,   246,   361,
  1313.    361,  1177,  1176,  1179,   128,   180,   116,  1186,  1194,  1187,
  1314.    181,   182,   183,   155,   155,  1197,     4,   115,   155,  1239,
  1315.   1190,  1211,    72,     6,   155,     8,   273,  1225,   246,    51,
  1316.    455,    10,  1240,  1237,   246,  1238,   247,   347,  1241,     4,
  1317.    126,     6,     7,     8,     9,  1242,    13,   155,   155,    10,
  1318.     51,  1243,  1245,    14,    16,  1246,  1247,  1262,   246,    18,
  1319.    246,  1260,  1261,  1270,    13,  1266,  1274,  1278,  1282,  1291,
  1320.   1285,    14,  -392,  1294,    19,  1297,   838,    16,  1310,   117,
  1321.   1301,  1308,    18,  1309,    20,  1313,  1314,  1323,   433,  1325,
  1322.   1335,   348,  1327,   370,   531,   360,    21,    19,    39,   347,
  1323.   1328,     4,   126,     6,     7,     8,     9,    20,    22,  1336,
  1324.   1339,    10,  1340,    22,   284,   105,    55,   506,   285,    21,
  1325.     26,   434,   435,   360,   246,   436,    13,   438,   854,   440,
  1326.    441,    22,   286,    14,  -395,   304,   860,   706,   281,    16,
  1327.    928,   571,  -392,    26,    18,   433,   278,   279,  1158,  1173,
  1328.   1110,   629,   246,   348,  1233,  1202,  1024,   334,   497,    19,
  1329.    278,   279,    51,    51,   351,  1210,    51,   247,   129,    20,
  1330.    552,   957,   848,   130,   247,   912,   763,   360,   434,   435,
  1331.    929,    21,   436,   437,   438,   439,   440,   441,  1048,   943,
  1332.    355,   586,   688,    22,   426,   427,   428,   429,   430,   431,
  1333.    432,   846,   546,   231,  -395,    26,   630,   631,   911,   635,
  1334.    636,   637,   638,   639,   640,   641,   642,   643,   644,   645,
  1335.    646,   647,   648,   649,   650,   651,  1138,   262,     4,   115,
  1336.   1300,  1302,   652,   360,     0,   350,   466,   944,  1134,   155,
  1337.    155,   247,     0,     0,   278,   279,   264,     0,     0,   247,
  1338.      0,   360,     0,     0,     0,     0,   265,   191,    39,     0,
  1339.      0,     0,     0,   266,     0,   531,    16,     0,   267,   268,
  1340.      0,    18,   690,     0,     0,   155,     0,     0,     0,     0,
  1341.   -666,   155,  -666,  -666,     0,     0,   318,     0,  -666,     0,
  1342.     63,   173,     0,   174,   175,   176,   319,   371,   192,     0,
  1343.      0,     0,  1028,   320,   247,     0,  -666,  -666,   321,  -666,
  1344.      0,  -666,     0,     0,     0,   360,     0,   355,    54,    54,
  1345.     22,     0,   177,   531,     0,     0,     0,   351,     0,     0,
  1346.      0,     0,    26,     0,     0,     0,   704,   179,    54,   193,
  1347.    194,   360,   195,     0,     0,     0,     0,    54,   355,   196,
  1348.    336,     0,     0,     0,     0,    54,    54,     0,     0,     0,
  1349.      0,  -666,   350,     0,     0,     0,     0,     0,    51,     0,
  1350.    772,   841,     0,  -666,     0,  -666,  -666,   380,     0,     0,
  1351.      0,  -666,   180,     0,     0,     0,     0,   181,   182,   183,
  1352.      0,   192,     0,   350,     0,     0,     0,     0,     0,  -666,
  1353.   -666,   360,  -666,   360,  -666,     0,     0,   113,   114,     0,
  1354.      0,     0,     0,   527,     0,     0,     0,   360,     0,     0,
  1355.      0,   818,     0,     0,     0,     0,     4,   143,     0,    54,
  1356.     54,    54,   193,   194,     0,   195,     0,     0,   155,   155,
  1357.      0,    54,   196,   247,    54,    54,     0,   201,   360,     0,
  1358.    360,     0,   155,   155,  -278,     0,     0,     0,     0,   360,
  1359.      0,    54,     0,   360,    16,    54,     0,  -459,   247,    18,
  1360.    144,     0,   155,     0,     0,     0,     0,     0,   845,     0,
  1361.      0,     0,    51,     0,   145,  -459,     4,   378,    54,    60,
  1362.      0,     0,     0,  -459,   146,     0,  -459,     0,  -459,     0,
  1363.      0,   147,     0,     0,     0,     0,   148,    54,    61,     0,
  1364.      0,   360,     0,   360,     0,    54,   360,     0,    22,   866,
  1365.      0,     0,   247,     0,    16,     0,     0,  -459,   149,    18,
  1366.     26,     0,   401,   316,   317,     0,    51,    51,     4,   126,
  1367.      6,     7,     8,     9,    19,     0,   244,     0,    10,     0,
  1368.      0,     0,   247,   454,    20,     0,     0,     0,   247,   454,
  1369.    930,   931,     0,    13,    72,     6,    21,     8,    73,     0,
  1370.     14,   278,   279,    10,     0,     0,    16,   262,   379,     0,
  1371.    356,    18,   247,   371,   247,   371,     0,   381,    13,     0,
  1372.     26,     0,     0,   155,   155,    14,   672,     0,     0,     0,
  1373.      0,    54,     0,     0,     0,     0,   673,     0,     0,    51,
  1374.    531,     0,   958,   266,     0,     0,     0,     0,   674,   268,
  1375.    360,   531,     0,     0,     0,     0,     0,     0,   360,   245,
  1376.     22,     0,     0,    54,    54,     0,   531,   531,    54,     0,
  1377.     51,     0,    26,     0,    54,     0,     0,     0,   247,    54,
  1378.    482,     0,   484,   485,     0,    22,     0,   360,     0,     0,
  1379.    531,   531,     0,     0,     0,     0,     0,    54,    54,    51,
  1380.     54,     0,  1001,     0,     0,     0,   247,     0,     0,     0,
  1381.      0,     0,   357,     0,   202,   126,     6,     7,     8,   358,
  1382.    204,   205,   244,   206,    10,   422,   423,   424,   425,   426,
  1383.    427,   428,   429,   430,   431,   432,   542,   543,     0,    13,
  1384.    207,   208,   209,     0,   210,     0,    14,   553,   211,  -261,
  1385.      0,   212,    16,     0,     0,   213,   214,   215,     0,     4,
  1386.    115,  1062,   371,     0,   276,     0,     0,     0,     0,   216,
  1387.    531,     0,   217,     0,     0,     0,     0,     0,     0,     0,
  1388.    218,   219,   220,     0,     0,     0,   221,   222,     0,   351,
  1389.      0,     0,     0,     0,   223,     0,     0,    16,   262,     0,
  1390.    454,     0,    18,     0,     0,   245,    22,     0,   531,     0,
  1391.   1098,     0,    54,    54,     0,  -644,    54,   672,   224,   225,
  1392.      0,     0,     0,     0,     0,     0,     3,   673,     4,     5,
  1393.      6,     7,     8,     9,   266,     0,     0,     0,    10,   674,
  1394.    268,   423,   424,   425,   426,   427,   428,   429,   430,   431,
  1395.    432,    22,     0,    13,     0,     0,     0,     0,     0,     0,
  1396.     14,     0,     0,    26,     0,     0,    16,     0,     0,     4,
  1397.    143,    18,     0,     0,     0,   531,     0,     0,     0,     0,
  1398.      4,   378,     0,  1148,  1149,   679,    19,     0,     0,    54,
  1399.     54,     0,     0,    51,    51,     0,    20,     0,     0,     0,
  1400.      0,   531,     0,   324,     0,     0,     0,    16,    21,   155,
  1401.      0,   698,    18,   144,     0,     0,   351,     0,    16,     0,
  1402.     22,    23,   531,    18,     0,    54,  -666,   145,  -666,  -666,
  1403.     25,    54,    26,     0,  -666,     0,  1184,   146,   559,     0,
  1404.      0,     0,     0,   360,   147,     0,   360,   351,   560,   148,
  1405.      0,     0,  -666,  -666,     0,  -666,     0,  -666,     0,     0,
  1406.     21,    22,   741,   742,     0,   744,     0,     0,   531,     0,
  1407.    531,  1022,   379,    26,     0,     0,     0,   755,   756,     0,
  1408.      0,     0,     0,     0,    26,   360,   531,     0,   195,     0,
  1409.      0,   531,     0,     0,   771,   196,   371,     0,     0,     0,
  1410.      0,   779,     0,     0,     0,     4,   115,   325,     0,     0,
  1411.    788,   789,   790,     4,   378,     0,     0,     0,    54,     0,
  1412.      0,    54,     0,     0,     0,   797,     0,   801,     0,     0,
  1413.    805,     0,     0,    -2,     3,     0,     4,     5,     6,     7,
  1414.      8,     9,     0,    16,   262,     0,    10,     0,    18,     0,
  1415.      0,    16,     0,     0,     0,     0,    18,     0,     0,    11,
  1416.     12,    13,   531,   672,     0,     0,     0,     0,    14,     0,
  1417.      0,  1092,    15,   673,    16,     0,    17,     0,     0,    18,
  1418.    266,  1093,     0,     0,     0,   674,   268,     0,    54,    54,
  1419.    839,   840,     0,    21,    19,     0,     0,    22,     0,     0,
  1420.      0,     0,    54,    54,    20,   379,     0,     0,     0,    26,
  1421.      0,     0,     0,     0,   851,     0,    21,    26,     0,     0,
  1422.      0,     0,    54,     0,     0,     0,     0,     0,    22,    23,
  1423.     24,     0,    54,     0,     0,     0,     0,     0,    25,    71,
  1424.     26,     0,    72,     6,     0,     8,    73,   531,     0,     0,
  1425.      0,    10,   419,   420,   421,   422,   423,   424,   425,   426,
  1426.    427,   428,   429,   430,   431,   432,    13,     0,     0,   922,
  1427.    923,   924,     0,    14,     0,    74,    75,     0,     0,     0,
  1428.     76,     0,     0,     0,     0,     0,    54,    54,     0,    77,
  1429.     78,    79,    80,     0,     0,    81,    82,    83,    84,    85,
  1430.     86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
  1431.     96,    97,     0,    98,    99,     0,     0,   100,   101,     0,
  1432.      0,     0,   102,     0,     0,     0,     0,     0,     0,     0,
  1433.      0,     0,     0,    22,     0,     3,     0,     4,     5,     6,
  1434.      7,     8,     9,    54,    54,   103,   104,    10,     0,     0,
  1435.      0,   125,     0,     4,   126,     6,     7,     8,     9,    54,
  1436.     11,    12,    13,    10,     0,     0,     0,   976,   977,    14,
  1437.    978,     0,     0,    15,     0,    16,     0,    17,    13,     0,
  1438.     18,     0,     0,     0,     0,    14,     0,     0,     0,     0,
  1439.     54,    16,     0,     0,     0,    19,    18,     0,     0,     0,
  1440.      0,     0,     0,     0,     0,    20,     0,     0,     0,     0,
  1441.      0,    19,     0,     0,     0,     0,     0,    21,     0,    54,
  1442.      0,    20,     0,     0,     0,     0,     0,     0,     0,    22,
  1443.     23,    24,     0,    21,     0,  1049,  1050,  1051,     0,    25,
  1444.    504,    26,     0,     0,     0,    22,     0,     0,     0,     0,
  1445.      0,     0,  1058,     0,     0,     0,     0,    26,     0,     0,
  1446.   1066,     0,     0,     0,     0,     0,  1071,  1072,  1073,  1074,
  1447.   1075,  1076,  1034,     0,  -600,  -600,  -600,  -600,  -600,  -600,
  1448.   -600,  -600,     0,  -600,  -600,  -600,  -600,  -600,  -600,  -600,
  1449.   -600,  -600,  -600,  -600,  -600,  -600,  -600,  -600,  -600,  -600,
  1450.   -600,  -600,  -600,     0,  -600,     0,  -600,     0,  -600,  -600,
  1451.      0,  -600,  -600,     0,     0,  -600,  -600,  -600,     0,     0,
  1452.   -600,  -600,     0,     0,     0,     0,     0,     0,     0,  -600,
  1453.      0,     0,  -600,     0,     0,     0,     0,     0,     0,     0,
  1454.   -600,  -600,  -600,     0,     0,     0,  -600,  -600,     0,     0,
  1455.      0,     0,     0,     0,  -600,     0,  -600,     0,  1035,  -600,
  1456.   1036,     0,  -600,  -600,  -600,     0,  -600,     0,     0,     0,
  1457.      0,    72,     6,     0,     8,    73,  -600,  -600,  -600,  -600,
  1458.     10,   420,   421,   422,   423,   424,   425,   426,   427,   428,
  1459.    429,   430,   431,   432,     0,    13,     0,     0,     0,     0,
  1460.      0,     0,    14,     0,     0,     0,     0,     0,     0,     0,
  1461.   1166,  1167,     0,    54,    54,  1029,  1082,   873,   126,     6,
  1462.      7,     8,   358,   204,   205,     0,   206,    10,   874,    54,
  1463.    875,   876,   877,   878,   879,   880,   881,   882,   883,   884,
  1464.     11,    12,    13,   207,   208,   209,     0,   210,     0,    14,
  1465.   1083,   211,  -261,     0,   212,    16,     0,     0,   213,   214,
  1466.    215,     0,    22,   885,   307,     0,     0,     0,     0,     0,
  1467.      0,     0,   216,     0,     0,   217,     0,     0,     0,     0,
  1468.      0,     0,     0,   218,   219,   220,     0,     0,     0,   221,
  1469.    222,     0,     0,     0,     0,     0,     0,   223,     0,   886,
  1470.      0,     0,   887,     0,     0,   888,   889,   890,     0,   891,
  1471.      0,     0,     0,     0,     0,     0,     0,     0,     0,   892,
  1472.   1030,   224,   225,  1039,     0,   873,   126,     6,     7,     8,
  1473.    358,   204,   205,     0,   206,    10,   874,     0,   875,   876,
  1474.    877,   878,   879,   880,   881,   882,   883,   884,    11,    12,
  1475.     13,   207,   208,   209,     0,   210,     0,    14,     0,   211,
  1476.   -261,     0,   212,    16,     0,     0,   213,   214,   215,     0,
  1477.      0,   885,   307,     0,     0,     0,     0,     0,     0,     0,
  1478.    216,     0,     0,   217,     0,     0,     0,     0,     0,     0,
  1479.      0,   218,   219,   220,     0,     0,     0,   221,   222,     0,
  1480.      0,     0,     0,     0,     0,   223,     0,   886,     0,     0,
  1481.    887,     0,     0,   888,   889,   890,     0,   891,     0,     0,
  1482.      0,     0,     0,     0,     0,     0,     0,   892,  1040,   224,
  1483.    225,  1043,     0,   873,   126,     6,     7,     8,   358,   204,
  1484.    205,     0,   206,    10,   874,     0,   875,   876,   877,   878,
  1485.    879,   880,   881,   882,   883,   884,    11,    12,    13,   207,
  1486.    208,   209,     0,   210,     0,    14,     0,   211,  -261,     0,
  1487.    212,    16,     0,     0,   213,   214,   215,     0,     0,   885,
  1488.    307,     0,     0,     0,     0,     0,     0,     0,   216,     0,
  1489.      0,   217,     0,     0,     0,     0,     0,     0,     0,   218,
  1490.    219,   220,     0,     0,     0,   221,   222,     0,     0,     0,
  1491.      0,     0,     0,   223,     0,   886,     0,     0,   887,     0,
  1492.      0,   888,   889,   890,     0,   891,     0,     0,     0,     0,
  1493.      0,     0,     0,     0,     0,   892,  1044,   224,   225,  1029,
  1494.      0,   873,   126,     6,     7,     8,   358,   204,   205,     0,
  1495.    206,    10,   874,     0,   875,   876,   877,   878,   879,   880,
  1496.    881,   882,   883,   884,    11,    12,    13,   207,   208,   209,
  1497.      0,   210,     0,    14,     0,   211,  -261,     0,   212,    16,
  1498.      0,     0,   213,   214,   215,     0,     0,   885,   307,     0,
  1499.      0,     0,     0,     0,     0,     0,   216,     0,     0,   217,
  1500.      0,     0,     0,     0,     0,     0,     0,   218,   219,   220,
  1501.      0,     0,     0,   221,   222,     0,     0,     0,     0,     0,
  1502.      0,   223,     0,   886,     0,     0,   887,     0,     0,   888,
  1503.    889,   890,     0,   891,     0,     0,     0,     0,     0,     0,
  1504.      0,     0,     0,   892,  1137,   224,   225,  1029,     0,   873,
  1505.    126,     6,     7,     8,   358,   204,   205,     0,   206,    10,
  1506.    874,     0,   875,   876,   877,   878,   879,   880,   881,   882,
  1507.    883,   884,    11,    12,    13,   207,   208,   209,     0,   210,
  1508.      0,    14,     0,   211,  -261,     0,   212,    16,     0,     0,
  1509.    213,   214,   215,     0,     0,   885,   307,     0,     0,     0,
  1510.      0,     0,     0,     0,   216,     0,     0,   217,     0,     0,
  1511.      0,     0,     0,     0,     0,   218,   219,   220,     0,     0,
  1512.      0,   221,   222,     0,     0,     0,     0,     0,     0,   223,
  1513.      0,   886,     0,     0,   887,     0,     0,   888,   889,   890,
  1514.      0,   891,     0,     0,     0,     0,     0,     0,     0,     0,
  1515.      0,   892,  1140,   224,   225,  1029,     0,   873,   126,     6,
  1516.      7,     8,   358,   204,   205,     0,   206,    10,   874,     0,
  1517.    875,   876,   877,   878,   879,   880,   881,   882,   883,   884,
  1518.     11,    12,    13,   207,   208,   209,     0,   210,     0,    14,
  1519.      0,   211,  -261,     0,   212,    16,     0,     0,   213,   214,
  1520.    215,     0,     0,   885,   307,     0,     0,     0,     0,     0,
  1521.      0,     0,   216,     0,     0,   217,     0,     0,     0,     0,
  1522.      0,     0,     0,   218,   219,   220,     0,     0,     0,   221,
  1523.    222,     0,     0,     0,     0,     0,     0,   223,     0,   886,
  1524.      0,     0,   887,     0,     0,   888,   889,   890,     0,   891,
  1525.      0,     0,     0,     0,     0,     0,     0,     0,     0,   892,
  1526.   1256,   224,   225,  1029,     0,   873,   126,     6,     7,     8,
  1527.    358,   204,   205,     0,   206,    10,   874,     0,   875,   876,
  1528.    877,   878,   879,   880,   881,   882,   883,   884,    11,    12,
  1529.     13,   207,   208,   209,     0,   210,     0,    14,     0,   211,
  1530.   -261,     0,   212,    16,     0,     0,   213,   214,   215,     0,
  1531.      0,   885,   307,     0,     0,     0,     0,     0,     0,     0,
  1532.    216,     0,     0,   217,     0,     0,     0,     0,     0,     0,
  1533.      0,   218,   219,   220,     0,     0,     0,   221,   222,     0,
  1534.      0,     0,     0,     0,     0,   223,     0,   886,     0,     0,
  1535.    887,     0,     0,   888,   889,   890,     0,   891,     0,     0,
  1536.      0,     0,     0,     0,     0,     0,     0,   892,  1304,   224,
  1537.    225,  1029,     0,   873,   126,     6,     7,     8,   358,   204,
  1538.    205,     0,   206,    10,   874,     0,   875,   876,   877,   878,
  1539.    879,   880,   881,   882,   883,   884,    11,    12,    13,   207,
  1540.    208,   209,     0,   210,     0,    14,     0,   211,  -261,     0,
  1541.    212,    16,     0,     0,   213,   214,   215,     0,     0,   885,
  1542.    307,     0,     0,     0,     0,     0,     0,     0,   216,     0,
  1543.      0,   217,     0,     0,     0,     0,     0,     0,     0,   218,
  1544.    219,   220,     0,     0,     0,   221,   222,     0,     0,     0,
  1545.      0,     0,     0,   223,     0,   886,     0,     0,   887,     0,
  1546.      0,   888,   889,   890,     0,   891,     0,     0,     0,     0,
  1547.      0,     0,     0,     0,     0,   892,  1312,   224,   225,   872,
  1548.      0,   873,   126,     6,     7,     8,   358,   204,   205,     0,
  1549.    206,    10,   874,     0,   875,   876,   877,   878,   879,   880,
  1550.    881,   882,   883,   884,    11,    12,    13,   207,   208,   209,
  1551.      0,   210,     0,    14,     0,   211,  -261,     0,   212,    16,
  1552.      0,     0,   213,   214,   215,     0,     0,   885,   307,     0,
  1553.      0,     0,     0,     0,     0,     0,   216,     0,     0,   217,
  1554.      0,     0,     0,     0,     0,     0,     0,   218,   219,   220,
  1555.      0,     0,     0,   221,   222,     0,     0,     0,     0,     0,
  1556.      0,   223,     0,   886,     0,     0,   887,     0,     0,   888,
  1557.    889,   890,     0,   891,     0,     0,     0,     0,     0,     0,
  1558.      0,     0,     0,   892,     0,   224,   225,  1223,     0,   873,
  1559.    126,     6,     7,     8,   358,   204,   205,     0,   206,    10,
  1560.    874,     0,   875,   876,   877,   878,   879,   880,   881,   882,
  1561.    883,   884,    11,    12,    13,   207,   208,   209,     0,   210,
  1562.      0,    14,     0,   211,  -261,     0,   212,    16,     0,     0,
  1563.    213,   214,   215,     0,     0,   885,   307,     0,     0,     0,
  1564.      0,     0,     0,     0,   216,     0,     0,   217,     0,     0,
  1565.      0,     0,     0,     0,     0,   218,   219,   220,     0,     0,
  1566.      0,   221,   222,     0,     0,     0,     0,     0,     0,   223,
  1567.      0,   886,     0,     0,   887,     0,     0,   888,   889,   890,
  1568.      0,   891,     0,     0,     0,     0,     0,     0,     0,     0,
  1569.      0,   892,     0,   224,   225,  1286,     0,   873,   126,     6,
  1570.      7,     8,   358,   204,   205,     0,   206,    10,   874,     0,
  1571.    875,   876,   877,   878,   879,   880,   881,   882,   883,   884,
  1572.     11,    12,    13,   207,   208,   209,     0,   210,     0,    14,
  1573.      0,   211,  -261,     0,   212,    16,     0,     0,   213,   214,
  1574.    215,     0,     0,   885,   307,     0,     0,     0,     0,     0,
  1575.      0,     0,   216,     0,     0,   217,     0,     0,     0,     0,
  1576.      0,     0,     0,   218,   219,   220,     0,     0,     0,   221,
  1577.    222,     0,     0,     0,     0,     0,     0,   223,     0,   886,
  1578.      0,     0,   887,     0,     0,   888,   889,   890,     0,   891,
  1579.      0,     0,     0,     0,     0,     0,     0,     0,     0,   892,
  1580.      0,   224,   225,  1295,     0,   873,   126,     6,     7,     8,
  1581.    358,   204,   205,     0,   206,    10,   874,     0,   875,   876,
  1582.    877,   878,   879,   880,   881,   882,   883,   884,    11,    12,
  1583.     13,   207,   208,   209,     0,   210,     0,    14,     0,   211,
  1584.   -261,     0,   212,    16,     0,     0,   213,   214,   215,     0,
  1585.      0,   885,   307,     0,     0,     0,     0,     0,     0,     0,
  1586.    216,     0,     0,   217,     0,     0,     0,     0,     0,     0,
  1587.      0,   218,   219,   220,     0,     0,     0,   221,   222,     0,
  1588.      0,     0,     0,     0,     0,   223,     0,   886,     0,     0,
  1589.    887,     0,     0,   888,   889,   890,     0,   891,     0,     0,
  1590.      0,     0,     0,     0,     0,     0,     0,   892,     0,   224,
  1591.    225,   554,     0,   202,   126,     6,     7,     8,   358,   204,
  1592.    205,   244,   206,    10,   421,   422,   423,   424,   425,   426,
  1593.    427,   428,   429,   430,   431,   432,     0,     0,    13,   207,
  1594.    208,   209,     0,   210,     0,    14,     0,   211,  -261,     0,
  1595.    212,    16,     0,     0,   213,   214,   215,     0,     0,     0,
  1596.      0,     0,     0,     0,     0,     0,     0,     0,   216,     0,
  1597.      0,   217,     0,     0,     0,     0,     0,     4,   115,   218,
  1598.    219,   220,     0,     0,     0,   221,   222,     0,     0,     0,
  1599.      0,     0,     0,   223,     0,     0,     0,     0,     0,     0,
  1600.      0,     0,     0,     0,   245,    22,     0,     0,     0,     0,
  1601.      0,     0,     0,     0,  -644,    16,     0,   224,   225,   745,
  1602.     18,   202,   126,     6,     7,     8,   358,   204,   205,   244,
  1603.    206,    10,     0,     0,     0,   544,     0,     0,     0,     0,
  1604.      0,     0,     0,     0,     0,   545,    13,   207,   208,   209,
  1605.      0,   210,   320,    14,     0,   211,  -261,   321,   212,    16,
  1606.      0,     0,   213,   214,   215,     0,     0,     0,     0,    22,
  1607.      0,     0,     0,     0,     0,     0,   216,     0,     0,   217,
  1608.      0,    26,     0,     0,     0,     0,     0,   218,   219,   220,
  1609.      0,     0,     0,   221,   222,     0,     0,     0,     0,     0,
  1610.      0,   223,     0,     0,     0,     0,     0,     0,     0,     0,
  1611.      0,     0,   245,    22,     0,     0,     0,     0,     0,     0,
  1612.      0,     0,  -644,     0,     0,   224,   225,   798,     0,   202,
  1613.    126,     6,     7,     8,   358,   204,   205,   244,   206,    10,
  1614.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  1615.      0,     0,     0,     0,    13,   207,   208,   209,     0,   210,
  1616.      0,    14,     0,   211,  -261,     0,   212,    16,     0,     0,
  1617.    213,   214,   215,     0,     0,     0,     0,     0,     0,     0,
  1618.      0,     0,     0,     0,   216,     0,     0,   217,     0,     0,
  1619.      0,     0,     0,     0,     0,   218,   219,   220,     0,     0,
  1620.      0,   221,   222,     0,     0,     0,     0,     0,     0,   223,
  1621.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  1622.    245,    22,     0,     0,     0,     0,     0,     0,     0,     0,
  1623.   -644,     0,     0,   224,   225,   802,     0,   202,   126,     6,
  1624.      7,     8,   358,   204,   205,   244,   206,    10,     0,     0,
  1625.      0,     0,     0,     0,   347,     0,     4,   126,     6,     7,
  1626.      8,     9,    13,   207,   208,   209,    10,   210,     0,    14,
  1627.      0,   211,  -261,     0,   212,    16,     0,     0,   213,   214,
  1628.    215,    13,     0,     0,     0,     0,     0,     0,    14,  -393,
  1629.      0,     0,   216,     0,    16,   217,     0,     0,     0,    18,
  1630.      0,     0,     0,   218,   219,   220,     0,     0,   348,   221,
  1631.    222,     0,     0,     0,    19,     0,     0,   223,     0,     0,
  1632.      0,     0,     0,     0,    20,     0,     0,     0,   245,    22,
  1633.      0,     0,     0,     0,     0,     0,    21,     0,  -644,     0,
  1634.      0,   224,   225,   529,     0,   724,   725,     6,    22,     8,
  1635.    385,   204,   205,     0,   206,    10,     0,     0,   589,  -393,
  1636.     26,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  1637.     13,   207,   208,   209,     0,   210,     0,    14,     0,   211,
  1638.   -261,     0,   212,    16,     0,     0,   213,   214,   215,     0,
  1639.      0,     0,   530,     0,     0,     0,     0,     0,     0,     0,
  1640.    216,     0,     0,   217,     0,     0,     0,     0,     0,     0,
  1641.      0,   218,   219,   220,     0,     0,     0,   221,   222,     0,
  1642.      0,     0,     0,     0,     0,   223,   726,   529,     0,   724,
  1643.    725,     6,     0,     8,   385,   204,   205,   180,   206,    10,
  1644.      0,     0,     0,     0,     0,     0,   987,     0,   727,   224,
  1645.    225,     0,     0,     0,    13,   207,   208,   209,     0,   210,
  1646.      0,    14,     0,   211,  -261,     0,   212,    16,     0,     0,
  1647.    213,   214,   215,     0,     0,     0,   530,     0,     0,     0,
  1648.      0,     0,     0,     0,   216,     0,     0,   217,     0,     0,
  1649.      0,     0,     0,     0,     0,   218,   219,   220,     0,     0,
  1650.      0,   221,   222,     0,     0,     0,     0,     0,  1106,   223,
  1651.    202,   126,     6,     7,     8,   358,   204,   205,     0,   206,
  1652.     10,   180,     0,     0,     0,     0,     0,     0,     0,     0,
  1653.      0,     0,   988,   224,   225,    13,   207,   208,   209,     0,
  1654.    210,     0,    14,     0,   211,  -261,     0,   212,    16,     0,
  1655.      0,   213,   214,   215,     0,     0,     0,  1107,     0,     0,
  1656.      0,     0,     0,     0,     0,   216,     0,     0,   217,     0,
  1657.      0,     0,     0,     0,     0,     0,   218,   219,   220,     0,
  1658.      0,     0,   221,   222,     0,     0,     0,     0,     0,   529,
  1659.    223,   724,   725,     6,     0,     8,   385,   204,   205,     0,
  1660.    206,    10,    22,     0,     0,     0,     0,     0,   987,     0,
  1661.      0,     0,  1108,     0,   224,   225,    13,   207,   208,   209,
  1662.      0,   210,     0,    14,     0,   211,  -261,     0,   212,    16,
  1663.      0,     0,   213,   214,   215,     0,     0,     0,   530,     0,
  1664.      0,     0,     0,     0,     0,     0,   216,     0,     0,   217,
  1665.      0,     0,     0,     0,     0,     0,     0,   218,   219,   220,
  1666.      0,     0,     0,   221,   222,     0,     0,     0,     0,     0,
  1667.    529,   223,   724,   725,     6,     0,     8,   385,   204,   205,
  1668.      0,   206,    10,   180,     0,     0,     0,     0,     0,     0,
  1669.      0,     0,     0,     0,  -354,   224,   225,    13,   207,   208,
  1670.    209,     0,   210,     0,    14,     0,   211,  -261,     0,   212,
  1671.     16,     0,     0,   213,   214,   215,     0,     0,     0,   530,
  1672.      0,     0,     0,     0,     0,     0,     0,   216,     0,     0,
  1673.    217,     0,     0,     0,     0,     0,     0,     0,   218,   219,
  1674.    220,     0,     0,     0,   221,   222,     0,     0,     0,     0,
  1675.      0,     0,   223,   726,   405,     0,   202,   126,     6,     0,
  1676.      8,   203,   204,   205,   180,   206,    10,     0,     0,     0,
  1677.      0,     0,     0,     0,     0,     0,   224,   225,     0,     0,
  1678.      0,    13,   207,   208,   209,     0,   210,     0,    14,     0,
  1679.    211,  -261,     0,   212,    16,     0,     0,   213,   214,   215,
  1680.      0,     0,     0,  -229,     0,     0,     0,     0,     0,     0,
  1681.      0,   216,     0,     0,   217,     0,     0,     0,     0,     0,
  1682.      0,     0,   218,   219,   220,     0,     0,     0,   221,   222,
  1683.      0,     0,     0,     0,     0,   529,   223,   202,   126,     6,
  1684.      0,     8,   385,   204,   205,     0,   206,    10,    22,     0,
  1685.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  1686.    224,   225,    13,   207,   208,   209,     0,   210,     0,    14,
  1687.      0,   211,  -261,     0,   212,    16,     0,     0,   213,   214,
  1688.    215,     0,     0,     0,   530,     0,     0,     0,     0,     0,
  1689.      0,     0,   216,     0,     0,   217,     0,     0,     0,     0,
  1690.      0,     0,     0,   218,   219,   220,     0,     0,     0,   221,
  1691.    222,     0,     0,     0,     0,     0,   632,   223,   202,   126,
  1692.      6,     0,     8,   385,   204,   205,     0,   206,    10,    22,
  1693.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  1694.      0,   224,   225,    13,   207,   208,   209,     0,   210,     0,
  1695.     14,     0,   211,  -261,     0,   212,    16,     0,     0,   213,
  1696.    214,   215,     0,     0,     0,     0,     0,     0,     0,     0,
  1697.   -634,     0,     0,   216,     0,     0,   217,     0,     0,     0,
  1698.      0,     0,     0,     0,   218,   219,   220,     0,     0,     0,
  1699.    221,   222,     0,     0,     0,     0,     0,  1199,   223,   202,
  1700.    126,     6,     0,     8,   203,   204,   205,     0,   206,    10,
  1701.     22,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  1702.      0,     0,   224,   225,    13,   207,   208,   209,     0,   210,
  1703.      0,    14,     0,   211,  -261,     0,   212,    16,     0,     0,
  1704.    213,   214,   215,     0,     0,     0,     0,     0,     0,     0,
  1705.      0,     0,     0,     0,   216,     0,     0,   217,     0,     0,
  1706.      0,     0,     0,     0,     0,   218,   219,   220,     0,     0,
  1707.      0,   221,   222,     0,     0,     0,     0,     0,   632,   223,
  1708.    202,   126,     6,     0,     8,   385,   204,   205,     0,   206,
  1709.     10,    22,     0,     0,     0,     0,     0,     0,     0,     0,
  1710.      0,  -144,     0,   224,   225,    13,   207,   208,   209,     0,
  1711.    210,     0,    14,     0,   211,  -261,     0,   212,    16,     0,
  1712.      0,   213,   214,   215,     0,     0,     0,     0,     0,     0,
  1713.      0,     0,     0,     0,     0,   216,     0,     0,   217,     0,
  1714.      0,     0,     0,     0,     0,     0,   218,   219,   220,     0,
  1715.      0,     0,   221,   222,     0,     0,     0,     0,     0,   689,
  1716.    223,   202,   126,     6,     0,     8,   385,   204,   205,     0,
  1717.    206,    10,    22,     0,     0,     0,     0,     0,     0,     0,
  1718.      0,  -634,     0,     0,   224,   225,    13,   207,   208,   209,
  1719.      0,   210,     0,    14,     0,   211,  -261,     0,   212,    16,
  1720.      0,     0,   213,   214,   215,     0,     0,     0,     0,     0,
  1721.      0,     0,     0,     0,     0,     0,   216,     0,     0,   217,
  1722.      0,     0,     0,     0,     0,     0,     0,   218,   219,   220,
  1723.      0,     0,     0,   221,   222,     0,     0,     0,     0,     0,
  1724.      0,   223,   202,   126,     6,     0,     8,   385,   204,   205,
  1725.      0,   206,    10,    22,     0,     0,     0,     0,     0,     0,
  1726.      0,     0,     0,     0,     0,   224,   225,    13,   207,   208,
  1727.    209,     0,   210,     0,    14,     0,   211,     0,     0,   212,
  1728.     16,     0,     0,   213,   214,   215,     0,     0,     0,     0,
  1729.      0,     0,     0,     0,     0,     0,     0,   216,     0,     3,
  1730.    217,     4,     5,     6,     7,     8,     9,     0,   218,   219,
  1731.    220,    10,     4,   143,   221,   222,     0,     0,     0,     0,
  1732.      0,     0,   223,     0,    11,    12,    13,     0,     0,     0,
  1733.      0,     0,     0,    14,    22,     0,     0,    15,     0,    16,
  1734.      0,    17,     0,     0,    18,     0,   224,   225,   660,     0,
  1735.     16,     0,     0,     0,     0,    18,   144,     0,     0,    19,
  1736.      0,     0,     0,     0,     0,     0,     0,     0,     0,    20,
  1737.    145,     0,   347,     0,     4,   126,     6,     7,     8,     9,
  1738.    146,    21,     0,     0,    10,     0,     0,   147,     0,     0,
  1739.      0,     0,   148,    22,    23,    24,     0,     0,     0,    13,
  1740.      0,     0,     0,    25,    22,    26,    14,  -394,     0,     0,
  1741.      0,     0,    16,     0,     0,     0,    26,    18,     0,     0,
  1742.      0,     0,     0,     0,     0,     0,   348,     0,   413,   414,
  1743.    415,     0,    19,   416,   417,   418,   419,   420,   421,   422,
  1744.    423,   424,    20,   426,   427,   428,   429,   430,   431,   432,
  1745.      0,     0,     0,     0,    21,     0,     0,     0,     0,     0,
  1746.      0,     0,     0,     0,     0,     0,    22,     0,     0,     0,
  1747.      0,     0,     0,     0,     0,     0,   589,  -394,    26,   873,
  1748.    126,     6,     7,     8,   358,   204,   205,     0,   206,    10,
  1749.    874,     0,   875,   876,   877,   878,   879,   880,   881,   882,
  1750.    883,   884,    11,    12,    13,   207,   208,   209,     0,   210,
  1751.      0,    14,     0,   211,     0,     0,   212,    16,     0,     0,
  1752.    213,   214,   215,     0,     0,   885,   307,     0,     0,     0,
  1753.      0,     0,     0,     0,   216,     0,     0,   217,     0,     0,
  1754.      0,     0,     0,     0,     0,   218,   219,   220,     0,     0,
  1755.      0,   221,   222,     0,     0,     0,     0,     0,     0,   223,
  1756.      0,   886,     0,     0,   887,     0,     0,   888,   889,   890,
  1757.      0,   891,     0,     0,     0,     0,     0,     0,     0,     0,
  1758.      0,   892,  1037,   224,   225,   873,   126,     6,     7,     8,
  1759.    358,   204,   205,     0,   206,    10,   874,     0,   875,   876,
  1760.    877,   878,   879,   880,   881,   882,   883,   884,    11,    12,
  1761.     13,   207,   208,   209,     0,   210,     0,    14,     0,   211,
  1762.      0,     0,   212,    16,     0,     0,   213,   214,   215,     0,
  1763.      0,   885,   307,     0,     0,     0,     0,     0,     0,     0,
  1764.    216,     0,     0,   217,     0,     0,     0,     0,     0,     0,
  1765.      0,   218,   219,   220,     0,     0,     0,   221,   222,     0,
  1766.      0,     0,     0,     0,     0,   223,     0,   886,     0,     0,
  1767.    887,     0,     0,   888,   889,   890,     0,   891,     0,     0,
  1768.      0,     0,     0,     0,     0,     0,     0,   892,     0,   224,
  1769.    225,   873,   126,     6,     7,     8,   358,   204,   205,     0,
  1770.    206,    10,   874,     0,   875,   876,   877,   878,   879,   880,
  1771.    881,   882,   883,   884,    11,    12,    13,   207,   208,   209,
  1772.      0,   210,     0,    14,     0,   211,     0,     0,   212,    16,
  1773.      0,     0,   213,   214,   215,     0,     0,   885,  1249,     0,
  1774.      0,     0,     0,     0,     0,     0,   216,     0,     0,   217,
  1775.      0,     0,     0,     0,     0,     0,     0,   218,   219,   220,
  1776.      0,     0,     0,   221,   222,     0,     0,     0,     0,     0,
  1777.      0,   223,     0,   886,     0,     0,   887,     0,     0,   888,
  1778.    889,   890,     0,   891,     0,     0,     0,     0,     0,     0,
  1779.      0,     0,     0,   892,     0,   224,   225,   873,   126,     6,
  1780.      7,     8,   358,   204,   205,     0,   206,    10,   874,     0,
  1781.    875,   876,   877,   878,   879,   880,   881,   882,   883,   884,
  1782.     11,    12,    13,   207,   208,   209,     0,   210,     0,    14,
  1783.      0,   211,     0,     0,   212,    16,     0,     0,   213,   214,
  1784.    215,     0,     0,   885,     0,     0,     0,     0,     0,     0,
  1785.      0,     0,   216,     0,     0,   217,     0,     0,     0,     0,
  1786.      0,     0,     0,   218,   219,   220,     0,     0,     0,   221,
  1787.    222,     0,     0,     0,     0,     0,     0,   223,     0,   886,
  1788.      0,     0,   887,     0,     0,   888,   889,   890,     0,   891,
  1789.      0,     0,     0,     0,     0,     0,     0,     0,     0,   892,
  1790.      0,   224,   225,   202,   126,     6,     0,     8,   385,   204,
  1791.    205,     0,   206,    10,     0,     0,     0,     0,     0,     0,
  1792.      0,     0,     0,     0,     0,     0,     0,     0,    13,   207,
  1793.    208,   209,     0,   210,     0,    14,     0,   211,     0,     0,
  1794.    212,    16,     0,     0,   213,   214,   215,     0,     0,     0,
  1795.      0,     0,     0,     0,     0,     0,     0,     0,   216,     0,
  1796.      0,   217,     0,     0,     0,     0,     0,     0,     0,   218,
  1797.    219,   220,     0,     0,     0,   221,   222,     0,     0,     0,
  1798.      0,     0,     0,   223,   444,     0,     0,   202,   126,     6,
  1799.      0,     8,   385,   204,   205,    22,   206,    10,     0,     0,
  1800.      0,     0,     0,     0,     0,     0,     0,   224,   225,     0,
  1801.      0,     0,    13,   207,   208,   209,     0,   210,     0,    14,
  1802.      0,   211,     0,     0,   212,    16,     0,     0,   213,   214,
  1803.    215,     0,     0,     0,   817,     0,     0,     0,     0,     0,
  1804.      0,     0,   216,     0,     0,   217,     0,     0,     0,     0,
  1805.      0,     0,     0,   218,   219,   220,     0,     0,     0,   221,
  1806.    222,     0,     0,     0,     0,     0,     0,   223,   202,   126,
  1807.      6,     0,     8,   385,   204,   205,     0,   206,    10,    22,
  1808.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  1809.      0,   224,   225,    13,   207,   208,   209,     0,   210,     0,
  1810.     14,     0,   211,     0,     0,   212,    16,     0,     0,   213,
  1811.    214,   215,     0,     0,     0,     0,     0,     0,     0,     0,
  1812.      0,     0,     0,   216,     0,     0,   217,     0,     0,     0,
  1813.      0,     0,     0,     0,   218,   219,   220,     0,     0,     0,
  1814.    221,   222,     0,     0,     0,     0,     0,     0,   223,   202,
  1815.    126,     6,     0,     8,   385,   204,   205,     0,   206,    10,
  1816.     22,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  1817.   1005,     0,   224,   225,    13,   207,   208,   209,     0,   210,
  1818.      0,    14,     0,   211,     0,     0,   212,    16,     0,     0,
  1819.    213,   214,   215,     0,     0,     0,     0,     0,     0,     0,
  1820.      0,     0,     0,     0,   216,     0,     0,   217,     0,     0,
  1821.      0,     0,     0,     0,     0,   218,   219,   220,     0,     0,
  1822.      0,   221,   222,     0,     0,     0,     0,     0,     0,   223,
  1823.    202,   126,     6,     0,     8,   203,   204,   205,     0,   206,
  1824.     10,    22,     0,     0,     0,     0,     0,     0,     0,     0,
  1825.      0,  1016,     0,   224,   225,    13,   207,   208,   209,     0,
  1826.    210,     0,    14,     0,   211,     0,     0,   212,    16,     0,
  1827.      0,   213,   214,   215,     0,     0,     0,     0,     0,     0,
  1828.      0,     0,     0,     0,     0,   216,     0,     0,   217,     0,
  1829.      0,     0,     0,     0,     0,     0,   218,   219,   220,     0,
  1830.      0,     0,   221,   222,     0,     0,     0,     0,     0,     0,
  1831.    223,   202,   126,     6,     0,     8,   385,   204,   205,     0,
  1832.    206,    10,    22,     0,     0,     0,     0,     0,     0,     0,
  1833.      0,     0,     0,     0,   224,   225,    13,   207,   208,   209,
  1834.      0,   210,     0,    14,     0,   211,     0,     0,   212,    16,
  1835.      0,     0,   213,   214,   215,     0,     0,     0,     0,     0,
  1836.      0,     0,     0,     0,     0,     0,   216,     0,     0,   217,
  1837.      0,     0,     0,     0,     0,     0,     0,   218,   219,   220,
  1838.      0,     0,     0,   221,   222,     0,     0,     0,     0,     0,
  1839.      0,   223,   202,   617,     6,     0,     8,   385,   204,   205,
  1840.      0,   206,    10,    22,     0,     0,     0,     0,     0,     0,
  1841.      0,     0,     0,     0,     0,   224,   225,    13,   207,   208,
  1842.    209,     0,   210,     0,    14,     0,   211,     0,     0,   212,
  1843.     16,     0,     0,   213,   214,   215,   202,   126,     6,     0,
  1844.      8,   385,   204,   205,     0,   206,    10,   216,     0,     0,
  1845.    217,     0,     0,     0,     0,     0,     0,     0,   218,   219,
  1846.    220,    13,   207,     0,   221,   222,   210,     0,    14,     0,
  1847.    211,     0,   223,   212,    16,     0,     0,   213,   214,   215,
  1848.      0,     0,     0,     0,    22,     0,     0,     0,     0,     0,
  1849.      0,   216,     0,     0,   217,     0,   224,   225,     0,     0,
  1850.      0,     0,   218,   219,   220,     0,     0,     0,   221,   222,
  1851.      0,     0,     0,   202,   126,     6,   386,     8,   385,   204,
  1852.    205,     0,   206,    10,     0,     0,     0,     0,    22,     0,
  1853.      0,     0,     0,     0,     0,     0,     0,     0,    13,   207,
  1854.    224,   225,     0,   210,     0,    14,     0,   211,     0,     0,
  1855.    212,    16,     0,     0,   213,   214,   215,   574,   582,     6,
  1856.    158,     8,   159,     0,     0,     0,     0,    10,   216,     0,
  1857.      0,   217,     0,     0,     0,     0,     0,     0,     0,   218,
  1858.    219,   220,    13,     0,     0,   221,   222,     0,     0,    14,
  1859.      0,     0,     0,   390,     0,    16,   583,     0,     0,     0,
  1860.     18,   144,     0,     0,     0,    22,     0,     0,     0,   577,
  1861.      0,     0,     0,     0,     0,   145,     0,   224,   225,     4,
  1862.    157,     6,   158,     8,   159,   146,     0,     0,     0,    10,
  1863.      0,     0,   147,     0,     0,     0,     0,   584,     0,     0,
  1864.      0,     0,     0,     0,    13,     0,     0,     0,     0,    22,
  1865.      0,    14,     0,     0,     0,     0,     0,    16,     0,     0,
  1866.      0,    26,    18,   144,     4,   126,     6,     7,     8,     9,
  1867.      0,     0,   244,     0,    10,     0,     0,   145,     0,     0,
  1868.      0,     0,     0,     0,     0,     0,     0,   146,     0,    13,
  1869.      0,     0,     0,     0,   147,     0,    14,     0,     0,   148,
  1870.      0,     0,    16,     0,     0,     0,     0,    18,     0,     0,
  1871.      0,    22,     0,     0,     0,     4,   157,     6,   158,     8,
  1872.    159,   160,   318,    26,     0,    10,     0,     0,     0,     0,
  1873.      0,     0,   319,     0,     0,     0,     0,     0,     0,   320,
  1874.     13,     0,     0,     0,   321,     0,     0,    14,     0,     0,
  1875.      0,     0,     0,    16,     0,   245,    22,     0,    18,   144,
  1876.      4,   157,     6,   158,     8,   159,     0,     0,    26,     0,
  1877.     10,     0,     0,   145,   486,   126,     6,     7,     8,     9,
  1878.      0,     0,   244,   146,    10,    13,     0,     0,     0,     0,
  1879.    147,     0,    14,     0,     0,   148,     0,     0,    16,    13,
  1880.      0,     0,     0,    18,   144,     0,    14,    22,     0,     0,
  1881.      0,     0,     0,   262,     0,     0,     0,  1025,   145,    26,
  1882.     72,     6,     0,     8,   273,     0,     0,     0,   146,    10,
  1883.      0,     0,   264,     0,     0,   147,     0,     0,     0,     0,
  1884.    148,     0,   265,     0,    13,     0,     0,  -459,  -459,   266,
  1885.      0,    14,    22,  -459,   267,   268,     0,     0,   262,     0,
  1886.      0,     0,     0,   263,    26,   245,    22,    60,     0,     0,
  1887.      0,  -459,     0,     0,  -459,     0,   768,   264,     0,     0,
  1888.      0,     0,     0,     0,     0,     0,    61,   265,     0,     0,
  1889.      0,     0,     0,     0,   266,     0,     0,     0,     0,   267,
  1890.    268,     0,     0,     0,     0,  -459,     0,  -459,     0,     0,
  1891.      0,    22,     0,     0,  -459,     0,     0,     0,     0,     0,
  1892.      0,     0,     0,   413,   414,   415,     0,  -459,   416,   417,
  1893.    418,   419,   420,   421,   422,   423,   424,   425,   426,   427,
  1894.    428,   429,   430,   431,   432,   413,   414,   415,     0,     0,
  1895.    416,   417,   418,   419,   420,   421,   422,   423,   424,   425,
  1896.    426,   427,   428,   429,   430,   431,   432,     0,     0,     0,
  1897.      0,     0,     0,     0,     0,   605,     0,     0,     0,     0,
  1898.    985,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  1899.      0,     0,     0,     0,     0,   413,   414,   415,   765,   766,
  1900.    416,   417,   418,   419,   420,   421,   422,   423,   424,   425,
  1901.    426,   427,   428,   429,   430,   431,   432,  -159,   413,   414,
  1902.    415,     0,     0,   416,   417,   418,   419,   420,   421,   422,
  1903.    423,   424,   425,   426,   427,   428,   429,   430,   431,   432,
  1904.    413,   414,   415,  1112,  1113,   416,   417,   418,   419,   420,
  1905.    421,   422,   423,   424,   425,   426,   427,   428,   429,   430,
  1906.    431,   432,   413,   414,   415,  1168,     0,   416,   417,   418,
  1907.    419,   420,   421,   422,   423,   424,   425,   426,   427,   428,
  1908.    429,   430,   431,   432,   413,   414,   415,  1228,     0,   416,
  1909.    417,   418,   419,   420,   421,   422,   423,   424,   425,   426,
  1910.    427,   428,   429,   430,   431,   432,   413,   414,   415,     0,
  1911.      0,   416,   417,   418,   419,   420,   421,   422,   423,   424,
  1912.    425,   426,   427,   428,   429,   430,   431,   432,   415,     0,
  1913.      0,   416,   417,   418,   419,   420,   421,   422,   423,   424,
  1914.    425,   426,   427,   428,   429,   430,   431,   432,   417,   418,
  1915.    419,   420,   421,   422,   423,   424,   425,   426,   427,   428,
  1916.    429,   430,   431,   432,   418,   419,   420,   421,   422,   423,
  1917.    424,   425,   426,   427,   428,   429,   430,   431,   432
  1918. };
  1919.  
  1920. static const short yycheck[] = {     1,
  1921.      2,    10,     1,     2,    51,    38,    39,   122,   136,   137,
  1922.     39,   106,    16,   297,    16,   518,   242,   353,   275,    44,
  1923.      1,     2,   275,   600,   268,    68,   135,    16,    30,    40,
  1924.    301,   193,   137,   188,   215,    44,   148,    39,   144,   570,
  1925.     68,   713,   326,   206,   207,   263,   898,    10,   551,   267,
  1926.     10,   878,    62,   905,   217,     3,     4,   220,   959,    61,
  1927.     62,   224,     3,     4,    34,   228,    68,   217,    10,  1111,
  1928.    220,   234,     3,     4,   224,    40,     0,    34,   228,    46,
  1929.    131,    34,     3,     4,   234,     6,  1233,   331,    55,   898,
  1930.     42,    36,    55,    41,   127,   128,   107,    36,    65,   150,
  1931.     41,    83,  1249,    46,     5,    46,   108,   906,   155,   908,
  1932.      3,     4,    55,   164,     7,    36,   118,    51,    46,    50,
  1933.     61,    51,   124,     3,     4,   124,   128,     7,    46,  1171,
  1934.     71,    83,     3,     4,     3,     4,   106,    78,     3,     4,
  1935.    302,   104,    83,   238,   104,    46,   241,    95,    41,   106,
  1936.    201,   162,   104,   106,    95,     8,   311,   168,  1103,   107,
  1937.     16,   106,   104,    51,    95,    21,   107,   106,   330,   996,
  1938.    997,   998,   106,   704,    95,   105,   304,   305,   306,  1080,
  1939.    223,     3,    38,   193,    42,   857,    65,   105,   190,  1041,
  1940.    200,   193,    51,  1045,   303,   223,   195,   162,   200,   304,
  1941.    305,   472,    95,   168,     1,   708,    62,   216,    65,   321,
  1942.    316,   317,   469,   215,   107,    95,   197,   398,   106,  1046,
  1943.   1047,   223,   384,   507,    95,    83,    95,   453,   239,    46,
  1944.     95,   394,  1041,    86,     3,     4,  1045,    51,   289,   241,
  1945.     93,    83,    46,   252,   394,   247,   105,   106,    65,    55,
  1946.   1195,   495,   108,    50,   757,    11,   112,   113,   114,    50,
  1947.    271,    65,  1114,   274,    55,   267,   484,   485,    51,   772,
  1948.     51,   127,    50,   275,   299,    51,  1221,   561,   440,   407,
  1949.   1107,    24,   284,   466,    50,   284,   469,   104,   144,   340,
  1950.    299,   105,   148,    51,  1121,    51,   458,  1124,   104,    55,
  1951.    299,   105,    71,   284,   355,   549,   271,     3,     4,   886,
  1952.      6,   888,    55,    42,   105,   171,   297,   350,   351,   344,
  1953.    330,    51,   105,   334,   105,   856,    95,    51,   330,   105,
  1954.    381,  1183,   375,     1,     6,     7,     8,   365,    94,   195,
  1955.     36,    13,   198,   386,   200,   326,   104,   390,    42,   351,
  1956.    361,   353,   395,   396,    83,    84,   337,   106,   386,   215,
  1957.    522,    51,   390,    35,   392,   393,    24,   395,    51,   334,
  1958.     42,    51,  1224,   375,   104,   104,  1321,  1322,    65,  1178,
  1959.    236,   105,    50,    51,   386,   241,   548,   415,   390,    83,
  1960.     84,   247,    50,   395,   396,    53,   361,    55,    51,    95,
  1961.    443,    55,    51,     7,     8,    51,   534,  1259,   410,    13,
  1962.    104,    83,    50,   441,   104,  1224,   444,    51,    42,   275,
  1963.   1220,    50,   105,    55,   104,    50,    55,   930,   931,   534,
  1964.     55,    35,   935,    55,    50,  1287,   542,   543,    42,    55,
  1965.    487,   443,   451,   299,  1296,   702,   608,   105,   610,   702,
  1966.     51,   105,   105,   671,   463,   104,   674,  1257,   104,    83,
  1967.    316,   317,   624,     8,    42,   321,   578,   469,   477,  1268,
  1968.    104,   327,   584,     3,     4,   500,   332,  1276,  1287,    83,
  1969.    105,    42,   104,    42,   494,     5,   497,  1296,    42,   604,
  1970.    774,   500,   494,   655,   350,   657,   109,   660,   782,     3,
  1971.      4,     5,    86,   104,   666,    83,    84,    46,   670,    93,
  1972.    660,    41,    42,     3,     4,     5,    46,    47,   527,   375,
  1973.     86,   530,    83,    84,    83,    55,   507,    93,   579,    83,
  1974.     51,    61,   497,    51,   585,     3,     4,     5,   548,   105,
  1975.    396,    71,    46,   104,    42,   570,   548,    42,    78,     3,
  1976.      4,     5,    42,    83,    26,    27,   718,   828,   720,  1062,
  1977.     32,   723,    42,   105,   106,    95,    51,    21,   578,    51,
  1978.     51,    42,   843,   844,   584,    42,   578,   107,    46,    51,
  1979.    561,    53,   584,   104,    66,    83,   104,   443,    83,    84,
  1980.     51,    95,    46,    83,    98,    86,   867,   868,   608,    42,
  1981.    610,   600,    93,    83,    84,    95,   608,   943,   610,   465,
  1982.    466,    51,    83,    84,   105,    46,    83,    84,    51,   104,
  1983.     10,   839,   840,   104,   104,    51,    66,    95,   679,    51,
  1984.     98,     3,     4,   105,    65,   741,   742,   104,   494,    51,
  1985.     83,    95,    42,   104,    98,  1148,  1149,   658,  1151,   755,
  1986.    756,   106,   106,   657,    66,   657,    51,     4,     5,     6,
  1987.      7,     8,    26,    27,    11,   827,    13,   830,   657,    41,
  1988.     42,   104,   674,   835,    46,    47,   947,   686,   104,   704,
  1989.    830,    28,   104,    83,    84,    51,   542,   543,    35,    61,
  1990.     51,   716,  1269,     3,     4,     5,     6,     7,     8,    71,
  1991.    702,    11,   864,    13,   104,    66,    78,   716,    99,   104,
  1992.     51,    83,    84,    51,   985,     7,     8,   716,    28,   105,
  1993.    771,    13,    51,    95,   733,    35,     1,     2,   779,   824,
  1994.    825,    41,    42,   735,   759,   107,    46,    47,   104,    51,
  1995.      3,    42,   775,    35,   600,    42,    21,    94,    95,   792,
  1996.     42,    61,    53,    37,   805,    30,    51,    51,   976,   977,
  1997.     51,    71,    46,   104,    39,    51,   104,    46,    78,   105,
  1998.    106,     1,     2,    83,    84,   104,    55,  1280,    42,  1063,
  1999.     42,  1052,    83,   785,    55,    95,    83,    84,   109,    86,
  2000.    792,    83,   104,   774,   841,    83,    93,   107,     3,     4,
  2001.     30,   782,    83,     8,    42,     7,     8,  1078,   817,   104,
  2002.    104,    13,    50,   104,    83,   671,     3,    55,   104,    83,
  2003.     42,    83,     9,   825,    46,   827,     4,     5,  1099,     7,
  2004.      8,   856,    62,    35,    83,    13,    41,   112,   113,   114,
  2005.     42,    46,    42,    65,  1128,    83,   702,    83,    61,   124,
  2006.     28,    65,    42,     3,     4,   883,    61,    35,    71,   868,
  2007.    716,    83,   890,   896,   897,    38,    71,    42,   897,   144,
  2008.    998,    49,    55,   148,  1145,   884,  1147,   886,    83,   105,
  2009.    106,    83,    65,    83,    42,   741,   742,   886,   939,   888,
  2010.     95,    42,  1163,    83,   124,   897,   898,  1168,    42,   755,
  2011.    756,    10,   107,   905,   906,    83,   908,   104,    83,   104,
  2012.    912,    53,     3,     4,     5,   190,     7,    95,   961,   775,
  2013.   1164,  1165,    13,   198,   106,    83,    84,   955,    86,    46,
  2014.     51,    46,    83,    26,    27,    93,   792,    28,    55,    83,
  2015.     55,   943,   105,   106,    35,    46,    37,   105,  1166,  1167,
  2016.     41,    26,    27,     3,    55,    46,   104,    50,  1120,   961,
  2017.    190,  1123,    55,   193,    65,    71,    72,    73,  1239,   825,
  2018.    200,   999,  1023,    50,  1258,    50,   109,  1028,    55,  1007,
  2019.     55,    50,   991,   839,   840,   109,     4,     5,     6,     7,
  2020.      8,     6,     7,     8,    46,    13,   104,   999,    13,   104,
  2021.   1162,   105,   106,    55,    95,   105,   106,  1058,     3,   284,
  2022.     28,  1126,   109,    65,    51,  1066,    83,    35,     1,     2,
  2023.     35,    69,    70,    71,    72,    73,    32,  1036,     3,     4,
  2024.    886,   104,   888,   105,   106,    46,  1035,   267,    21,  1041,
  2025.    896,   316,   317,  1045,   104,   275,   321,    30,   105,   106,
  2026.    105,   106,    50,  1324,   284,    38,    39,   332,     8,   104,
  2027.      6,     7,     8,   104,  1159,  1160,    41,    13,    53,  1078,
  2028.     51,    46,    47,  1084,   105,   106,   104,    95,   353,  1083,
  2029.     55,  1083,  1063,  1111,   105,   106,    61,     7,     8,    35,
  2030.   1321,  1322,    42,    13,  1083,   104,    71,   105,   106,   109,
  2031.    330,  1103,   109,    78,   105,   961,   105,  1111,    83,  1111,
  2032.    104,    61,  1114,  1141,  1142,    35,   972,   105,   106,   105,
  2033.     95,    71,  1111,   353,   206,   207,  1271,  1272,    78,   112,
  2034.    113,   114,   107,    83,    84,   105,   105,  1141,  1142,  1141,
  2035.   1142,   124,   109,  1171,   127,   128,   104,  1128,   109,  1182,
  2036.     51,  1132,  1141,  1142,     5,    55,    83,    53,  1160,   104,
  2037.    104,   144,   104,   104,   104,   148,   104,  1171,    42,  1171,
  2038.    104,    66,    55,    47,    61,  1226,  1178,  1305,  1306,  1035,
  2039.    109,  1183,  1171,    53,   109,   107,    42,    61,   171,    53,
  2040.    465,   466,    53,  1195,   469,   106,   104,    71,    95,     4,
  2041.      5,     6,     7,     8,    78,   109,  1334,   190,    13,    83,
  2042.     84,    55,   195,     3,     4,   198,    55,    34,     8,  1221,
  2043.    104,   109,  1224,    28,   104,  1253,    53,  1083,   104,   104,
  2044.     35,   118,   104,     3,     4,    83,     6,     7,     8,   469,
  2045.     83,   104,   104,  1271,  1272,   104,     7,    83,  1291,   106,
  2046.    105,    41,    55,   236,  1282,   105,    46,  1259,    50,    50,
  2047.      8,    15,     3,   105,   494,    35,  1268,   542,   543,    53,
  2048.   1269,    61,    51,   104,  1276,   104,    42,  1258,    55,    49,
  2049.     50,    71,    83,   105,   267,  1287,   105,   105,    78,  1291,
  2050.     95,   105,   105,    83,  1296,     1,     2,    83,  1307,   105,
  2051.     53,   284,    83,   578,  1160,    95,   193,   104,   106,   584,
  2052.   1166,  1167,    84,    53,    16,    84,   299,   107,   548,  1321,
  2053.   1322,   106,   105,   105,    30,    95,  1182,   105,    50,   105,
  2054.    100,   101,   102,   316,   317,    50,     3,     4,   321,    53,
  2055.    105,   104,     4,     5,   327,     7,     8,   104,   578,   332,
  2056.    237,    13,    51,   105,   584,   105,    62,     1,   104,     3,
  2057.      4,     5,     6,     7,     8,   104,    28,   350,   351,    13,
  2058.    353,   104,   109,    35,    41,   109,   104,    10,   608,    46,
  2059.    610,   105,   105,    90,    28,   105,     9,   105,    83,    83,
  2060.     51,    35,    36,    51,    61,   104,   671,    41,     9,   674,
  2061.    105,   104,    46,   104,    71,    53,   104,   104,    42,    10,
  2062.     10,    55,   105,  1269,   301,   302,    83,    61,   124,     1,
  2063.    104,     3,     4,     5,     6,     7,     8,    71,    95,   105,
  2064.      0,    13,     0,    95,   123,  1291,     2,   286,   124,    83,
  2065.    107,    75,    76,   330,   674,    79,    28,    81,   702,    83,
  2066.     84,    95,   124,    35,    36,   135,   716,   500,   118,    41,
  2067.    758,   348,   106,   107,    46,    42,   741,   742,  1080,  1102,
  2068.    999,   410,   702,    55,  1194,  1142,   896,   162,   274,    61,
  2069.    755,   756,   465,   466,   190,  1154,   469,   193,    30,    71,
  2070.    327,   817,   688,    30,   200,   738,   570,   384,    75,    76,
  2071.    759,    83,    79,    80,    81,    82,    83,    84,   912,   785,
  2072.    785,   351,   477,    95,    67,    68,    69,    70,    71,    72,
  2073.     73,   686,   321,   410,   106,   107,   413,   414,   736,   416,
  2074.    417,   418,   419,   420,   421,   422,   423,   424,   425,   426,
  2075.    427,   428,   429,   430,   431,   432,  1042,    42,     3,     4,
  2076.   1283,  1285,   439,   440,    -1,   785,   247,   792,  1035,   542,
  2077.    543,   267,    -1,    -1,   839,   840,    61,    -1,    -1,   275,
  2078.     -1,   458,    -1,    -1,    -1,    -1,    71,     1,   284,    -1,
  2079.     -1,    -1,    -1,    78,    -1,   472,    41,    -1,    83,    84,
  2080.     -1,    46,   479,    -1,    -1,   578,    -1,    -1,    -1,    -1,
  2081.     24,   584,    26,    27,    -1,    -1,    61,    -1,    32,    -1,
  2082.      3,     4,    -1,     6,     7,     8,    71,   600,    42,    -1,
  2083.     -1,    -1,   897,    78,   330,    -1,    50,    51,    83,    53,
  2084.     -1,    55,    -1,    -1,    -1,   522,    -1,   912,     1,     2,
  2085.     95,    -1,    35,   530,    -1,    -1,    -1,   353,    -1,    -1,
  2086.     -1,    -1,   107,    -1,    -1,    -1,    49,    50,    21,    83,
  2087.     84,   548,    86,    -1,    -1,    -1,    -1,    30,   943,    93,
  2088.      1,    -1,    -1,    -1,    -1,    38,    39,    -1,    -1,    -1,
  2089.     -1,   105,   912,    -1,    -1,    -1,    -1,    -1,   671,    -1,
  2090.    577,   674,    -1,    24,    -1,    26,    27,   972,    -1,    -1,
  2091.     -1,    32,    95,    -1,    -1,    -1,    -1,   100,   101,   102,
  2092.     -1,    42,    -1,   943,    -1,    -1,    -1,    -1,    -1,    50,
  2093.     51,   608,    53,   610,    55,    -1,    -1,    19,    20,    -1,
  2094.     -1,    -1,    -1,   716,    -1,    -1,    -1,   624,    -1,    -1,
  2095.     -1,   628,    -1,    -1,    -1,    -1,     3,     4,    -1,   112,
  2096.    113,   114,    83,    84,    -1,    86,    -1,    -1,   741,   742,
  2097.     -1,   124,    93,   469,   127,   128,    -1,    59,   655,    -1,
  2098.    657,    -1,   755,   756,   105,    -1,    -1,    -1,    -1,   666,
  2099.     -1,   144,    -1,   670,    41,   148,    -1,    24,   494,    46,
  2100.     47,    -1,   775,    -1,    -1,    -1,    -1,    -1,   685,    -1,
  2101.     -1,    -1,   785,    -1,    61,    42,     3,     4,   171,    46,
  2102.     -1,    -1,    -1,    50,    71,    -1,    53,    -1,    55,    -1,
  2103.     -1,    78,    -1,    -1,    -1,    -1,    83,   190,    65,    -1,
  2104.     -1,   718,    -1,   720,    -1,   198,   723,    -1,    95,   726,
  2105.     -1,    -1,   548,    -1,    41,    -1,    -1,    84,   105,    46,
  2106.    107,    -1,   215,   145,   146,    -1,   839,   840,     3,     4,
  2107.      5,     6,     7,     8,    61,    -1,    11,    -1,    13,    -1,
  2108.     -1,    -1,   578,   236,    71,    -1,    -1,    -1,   584,   242,
  2109.    767,   768,    -1,    28,     4,     5,    83,     7,     8,    -1,
  2110.     35,  1166,  1167,    13,    -1,    -1,    41,    42,    95,    -1,
  2111.    192,    46,   608,   886,   610,   888,    -1,   199,    28,    -1,
  2112.    107,    -1,    -1,   896,   897,    35,    61,    -1,    -1,    -1,
  2113.     -1,   284,    -1,    -1,    -1,    -1,    71,    -1,    -1,   912,
  2114.    817,    -1,   819,    78,    -1,    -1,    -1,    -1,    83,    84,
  2115.    827,   828,    -1,    -1,    -1,    -1,    -1,    -1,   835,    94,
  2116.     95,    -1,    -1,   316,   317,    -1,   843,   844,   321,    -1,
  2117.    943,    -1,   107,    -1,   327,    -1,    -1,    -1,   674,   332,
  2118.    262,    -1,   264,   265,    -1,    95,    -1,   864,    -1,    -1,
  2119.    867,   868,    -1,    -1,    -1,    -1,    -1,   350,   351,   972,
  2120.    353,    -1,   879,    -1,    -1,    -1,   702,    -1,    -1,    -1,
  2121.     -1,    -1,     1,    -1,     3,     4,     5,     6,     7,     8,
  2122.      9,    10,    11,    12,    13,    63,    64,    65,    66,    67,
  2123.     68,    69,    70,    71,    72,    73,   318,   319,    -1,    28,
  2124.     29,    30,    31,    -1,    33,    -1,    35,   329,    37,    38,
  2125.     -1,    40,    41,    -1,    -1,    44,    45,    46,    -1,     3,
  2126.      4,   938,  1035,    -1,     8,    -1,    -1,    -1,    -1,    58,
  2127.    947,    -1,    61,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2128.     69,    70,    71,    -1,    -1,    -1,    75,    76,    -1,   785,
  2129.     -1,    -1,    -1,    -1,    83,    -1,    -1,    41,    42,    -1,
  2130.    453,    -1,    46,    -1,    -1,    94,    95,    -1,   985,    -1,
  2131.    987,    -1,   465,   466,    -1,   104,   469,    61,   107,   108,
  2132.     -1,    -1,    -1,    -1,    -1,    -1,     1,    71,     3,     4,
  2133.      5,     6,     7,     8,    78,    -1,    -1,    -1,    13,    83,
  2134.     84,    64,    65,    66,    67,    68,    69,    70,    71,    72,
  2135.     73,    95,    -1,    28,    -1,    -1,    -1,    -1,    -1,    -1,
  2136.     35,    -1,    -1,   107,    -1,    -1,    41,    -1,    -1,     3,
  2137.      4,    46,    -1,    -1,    -1,  1052,    -1,    -1,    -1,    -1,
  2138.      3,     4,    -1,  1060,  1061,   467,    61,    -1,    -1,   542,
  2139.    543,    -1,    -1,  1166,  1167,    -1,    71,    -1,    -1,    -1,
  2140.     -1,  1078,    -1,     1,    -1,    -1,    -1,    41,    83,  1182,
  2141.     -1,   493,    46,    47,    -1,    -1,   912,    -1,    41,    -1,
  2142.     95,    96,  1099,    46,    -1,   578,    24,    61,    26,    27,
  2143.    105,   584,   107,    -1,    32,    -1,  1113,    71,    61,    -1,
  2144.     -1,    -1,    -1,  1120,    78,    -1,  1123,   943,    71,    83,
  2145.     -1,    -1,    50,    51,    -1,    53,    -1,    55,    -1,    -1,
  2146.     83,    95,   544,   545,    -1,   547,    -1,    -1,  1145,    -1,
  2147.   1147,   105,    95,   107,    -1,    -1,    -1,   559,   560,    -1,
  2148.     -1,    -1,    -1,    -1,   107,  1162,  1163,    -1,    86,    -1,
  2149.     -1,  1168,    -1,    -1,   576,    93,  1269,    -1,    -1,    -1,
  2150.     -1,   583,    -1,    -1,    -1,     3,     4,   105,    -1,    -1,
  2151.    592,   593,   594,     3,     4,    -1,    -1,    -1,   671,    -1,
  2152.     -1,   674,    -1,    -1,    -1,   607,    -1,   609,    -1,    -1,
  2153.    612,    -1,    -1,     0,     1,    -1,     3,     4,     5,     6,
  2154.      7,     8,    -1,    41,    42,    -1,    13,    -1,    46,    -1,
  2155.     -1,    41,    -1,    -1,    -1,    -1,    46,    -1,    -1,    26,
  2156.     27,    28,  1239,    61,    -1,    -1,    -1,    -1,    35,    -1,
  2157.     -1,    61,    39,    71,    41,    -1,    43,    -1,    -1,    46,
  2158.     78,    71,    -1,    -1,    -1,    83,    84,    -1,   741,   742,
  2159.    672,   673,    -1,    83,    61,    -1,    -1,    95,    -1,    -1,
  2160.     -1,    -1,   755,   756,    71,    95,    -1,    -1,    -1,   107,
  2161.     -1,    -1,    -1,    -1,   696,    -1,    83,   107,    -1,    -1,
  2162.     -1,    -1,   775,    -1,    -1,    -1,    -1,    -1,    95,    96,
  2163.     97,    -1,   785,    -1,    -1,    -1,    -1,    -1,   105,     1,
  2164.    107,    -1,     4,     5,    -1,     7,     8,  1324,    -1,    -1,
  2165.     -1,    13,    60,    61,    62,    63,    64,    65,    66,    67,
  2166.     68,    69,    70,    71,    72,    73,    28,    -1,    -1,   751,
  2167.    752,   753,    -1,    35,    -1,    37,    38,    -1,    -1,    -1,
  2168.     42,    -1,    -1,    -1,    -1,    -1,   839,   840,    -1,    51,
  2169.     52,    53,    54,    -1,    -1,    57,    58,    59,    60,    61,
  2170.     62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
  2171.     72,    73,    -1,    75,    76,    -1,    -1,    79,    80,    -1,
  2172.     -1,    -1,    84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2173.     -1,    -1,    -1,    95,    -1,     1,    -1,     3,     4,     5,
  2174.      6,     7,     8,   896,   897,   107,   108,    13,    -1,    -1,
  2175.     -1,     1,    -1,     3,     4,     5,     6,     7,     8,   912,
  2176.     26,    27,    28,    13,    -1,    -1,    -1,   849,   850,    35,
  2177.    852,    -1,    -1,    39,    -1,    41,    -1,    43,    28,    -1,
  2178.     46,    -1,    -1,    -1,    -1,    35,    -1,    -1,    -1,    -1,
  2179.    943,    41,    -1,    -1,    -1,    61,    46,    -1,    -1,    -1,
  2180.     -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,    -1,
  2181.     -1,    61,    -1,    -1,    -1,    -1,    -1,    83,    -1,   972,
  2182.     -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    95,
  2183.     96,    97,    -1,    83,    -1,   917,   918,   919,    -1,   105,
  2184.    106,   107,    -1,    -1,    -1,    95,    -1,    -1,    -1,    -1,
  2185.     -1,    -1,   934,    -1,    -1,    -1,    -1,   107,    -1,    -1,
  2186.    942,    -1,    -1,    -1,    -1,    -1,   948,   949,   950,   951,
  2187.    952,   953,     1,    -1,     3,     4,     5,     6,     7,     8,
  2188.      9,    10,    -1,    12,    13,    14,    15,    16,    17,    18,
  2189.     19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
  2190.     29,    30,    31,    -1,    33,    -1,    35,    -1,    37,    38,
  2191.     -1,    40,    41,    -1,    -1,    44,    45,    46,    -1,    -1,
  2192.     49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    58,
  2193.     -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2194.     69,    70,    71,    -1,    -1,    -1,    75,    76,    -1,    -1,
  2195.     -1,    -1,    -1,    -1,    83,    -1,    85,    -1,    87,    88,
  2196.     89,    -1,    91,    92,    93,    -1,    95,    -1,    -1,    -1,
  2197.     -1,     4,     5,    -1,     7,     8,   105,   106,   107,   108,
  2198.     13,    61,    62,    63,    64,    65,    66,    67,    68,    69,
  2199.     70,    71,    72,    73,    -1,    28,    -1,    -1,    -1,    -1,
  2200.     -1,    -1,    35,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2201.   1092,  1093,    -1,  1166,  1167,     1,    49,     3,     4,     5,
  2202.      6,     7,     8,     9,    10,    -1,    12,    13,    14,  1182,
  2203.     16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
  2204.     26,    27,    28,    29,    30,    31,    -1,    33,    -1,    35,
  2205.     83,    37,    38,    -1,    40,    41,    -1,    -1,    44,    45,
  2206.     46,    -1,    95,    49,    50,    -1,    -1,    -1,    -1,    -1,
  2207.     -1,    -1,    58,    -1,    -1,    61,    -1,    -1,    -1,    -1,
  2208.     -1,    -1,    -1,    69,    70,    71,    -1,    -1,    -1,    75,
  2209.     76,    -1,    -1,    -1,    -1,    -1,    -1,    83,    -1,    85,
  2210.     -1,    -1,    88,    -1,    -1,    91,    92,    93,    -1,    95,
  2211.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   105,
  2212.    106,   107,   108,     1,    -1,     3,     4,     5,     6,     7,
  2213.      8,     9,    10,    -1,    12,    13,    14,    -1,    16,    17,
  2214.     18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
  2215.     28,    29,    30,    31,    -1,    33,    -1,    35,    -1,    37,
  2216.     38,    -1,    40,    41,    -1,    -1,    44,    45,    46,    -1,
  2217.     -1,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2218.     58,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    -1,
  2219.     -1,    69,    70,    71,    -1,    -1,    -1,    75,    76,    -1,
  2220.     -1,    -1,    -1,    -1,    -1,    83,    -1,    85,    -1,    -1,
  2221.     88,    -1,    -1,    91,    92,    93,    -1,    95,    -1,    -1,
  2222.     -1,    -1,    -1,    -1,    -1,    -1,    -1,   105,   106,   107,
  2223.    108,     1,    -1,     3,     4,     5,     6,     7,     8,     9,
  2224.     10,    -1,    12,    13,    14,    -1,    16,    17,    18,    19,
  2225.     20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
  2226.     30,    31,    -1,    33,    -1,    35,    -1,    37,    38,    -1,
  2227.     40,    41,    -1,    -1,    44,    45,    46,    -1,    -1,    49,
  2228.     50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    58,    -1,
  2229.     -1,    61,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    69,
  2230.     70,    71,    -1,    -1,    -1,    75,    76,    -1,    -1,    -1,
  2231.     -1,    -1,    -1,    83,    -1,    85,    -1,    -1,    88,    -1,
  2232.     -1,    91,    92,    93,    -1,    95,    -1,    -1,    -1,    -1,
  2233.     -1,    -1,    -1,    -1,    -1,   105,   106,   107,   108,     1,
  2234.     -1,     3,     4,     5,     6,     7,     8,     9,    10,    -1,
  2235.     12,    13,    14,    -1,    16,    17,    18,    19,    20,    21,
  2236.     22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
  2237.     -1,    33,    -1,    35,    -1,    37,    38,    -1,    40,    41,
  2238.     -1,    -1,    44,    45,    46,    -1,    -1,    49,    50,    -1,
  2239.     -1,    -1,    -1,    -1,    -1,    -1,    58,    -1,    -1,    61,
  2240.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    69,    70,    71,
  2241.     -1,    -1,    -1,    75,    76,    -1,    -1,    -1,    -1,    -1,
  2242.     -1,    83,    -1,    85,    -1,    -1,    88,    -1,    -1,    91,
  2243.     92,    93,    -1,    95,    -1,    -1,    -1,    -1,    -1,    -1,
  2244.     -1,    -1,    -1,   105,   106,   107,   108,     1,    -1,     3,
  2245.      4,     5,     6,     7,     8,     9,    10,    -1,    12,    13,
  2246.     14,    -1,    16,    17,    18,    19,    20,    21,    22,    23,
  2247.     24,    25,    26,    27,    28,    29,    30,    31,    -1,    33,
  2248.     -1,    35,    -1,    37,    38,    -1,    40,    41,    -1,    -1,
  2249.     44,    45,    46,    -1,    -1,    49,    50,    -1,    -1,    -1,
  2250.     -1,    -1,    -1,    -1,    58,    -1,    -1,    61,    -1,    -1,
  2251.     -1,    -1,    -1,    -1,    -1,    69,    70,    71,    -1,    -1,
  2252.     -1,    75,    76,    -1,    -1,    -1,    -1,    -1,    -1,    83,
  2253.     -1,    85,    -1,    -1,    88,    -1,    -1,    91,    92,    93,
  2254.     -1,    95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2255.     -1,   105,   106,   107,   108,     1,    -1,     3,     4,     5,
  2256.      6,     7,     8,     9,    10,    -1,    12,    13,    14,    -1,
  2257.     16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
  2258.     26,    27,    28,    29,    30,    31,    -1,    33,    -1,    35,
  2259.     -1,    37,    38,    -1,    40,    41,    -1,    -1,    44,    45,
  2260.     46,    -1,    -1,    49,    50,    -1,    -1,    -1,    -1,    -1,
  2261.     -1,    -1,    58,    -1,    -1,    61,    -1,    -1,    -1,    -1,
  2262.     -1,    -1,    -1,    69,    70,    71,    -1,    -1,    -1,    75,
  2263.     76,    -1,    -1,    -1,    -1,    -1,    -1,    83,    -1,    85,
  2264.     -1,    -1,    88,    -1,    -1,    91,    92,    93,    -1,    95,
  2265.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   105,
  2266.    106,   107,   108,     1,    -1,     3,     4,     5,     6,     7,
  2267.      8,     9,    10,    -1,    12,    13,    14,    -1,    16,    17,
  2268.     18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
  2269.     28,    29,    30,    31,    -1,    33,    -1,    35,    -1,    37,
  2270.     38,    -1,    40,    41,    -1,    -1,    44,    45,    46,    -1,
  2271.     -1,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2272.     58,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    -1,
  2273.     -1,    69,    70,    71,    -1,    -1,    -1,    75,    76,    -1,
  2274.     -1,    -1,    -1,    -1,    -1,    83,    -1,    85,    -1,    -1,
  2275.     88,    -1,    -1,    91,    92,    93,    -1,    95,    -1,    -1,
  2276.     -1,    -1,    -1,    -1,    -1,    -1,    -1,   105,   106,   107,
  2277.    108,     1,    -1,     3,     4,     5,     6,     7,     8,     9,
  2278.     10,    -1,    12,    13,    14,    -1,    16,    17,    18,    19,
  2279.     20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
  2280.     30,    31,    -1,    33,    -1,    35,    -1,    37,    38,    -1,
  2281.     40,    41,    -1,    -1,    44,    45,    46,    -1,    -1,    49,
  2282.     50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    58,    -1,
  2283.     -1,    61,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    69,
  2284.     70,    71,    -1,    -1,    -1,    75,    76,    -1,    -1,    -1,
  2285.     -1,    -1,    -1,    83,    -1,    85,    -1,    -1,    88,    -1,
  2286.     -1,    91,    92,    93,    -1,    95,    -1,    -1,    -1,    -1,
  2287.     -1,    -1,    -1,    -1,    -1,   105,   106,   107,   108,     1,
  2288.     -1,     3,     4,     5,     6,     7,     8,     9,    10,    -1,
  2289.     12,    13,    14,    -1,    16,    17,    18,    19,    20,    21,
  2290.     22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
  2291.     -1,    33,    -1,    35,    -1,    37,    38,    -1,    40,    41,
  2292.     -1,    -1,    44,    45,    46,    -1,    -1,    49,    50,    -1,
  2293.     -1,    -1,    -1,    -1,    -1,    -1,    58,    -1,    -1,    61,
  2294.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    69,    70,    71,
  2295.     -1,    -1,    -1,    75,    76,    -1,    -1,    -1,    -1,    -1,
  2296.     -1,    83,    -1,    85,    -1,    -1,    88,    -1,    -1,    91,
  2297.     92,    93,    -1,    95,    -1,    -1,    -1,    -1,    -1,    -1,
  2298.     -1,    -1,    -1,   105,    -1,   107,   108,     1,    -1,     3,
  2299.      4,     5,     6,     7,     8,     9,    10,    -1,    12,    13,
  2300.     14,    -1,    16,    17,    18,    19,    20,    21,    22,    23,
  2301.     24,    25,    26,    27,    28,    29,    30,    31,    -1,    33,
  2302.     -1,    35,    -1,    37,    38,    -1,    40,    41,    -1,    -1,
  2303.     44,    45,    46,    -1,    -1,    49,    50,    -1,    -1,    -1,
  2304.     -1,    -1,    -1,    -1,    58,    -1,    -1,    61,    -1,    -1,
  2305.     -1,    -1,    -1,    -1,    -1,    69,    70,    71,    -1,    -1,
  2306.     -1,    75,    76,    -1,    -1,    -1,    -1,    -1,    -1,    83,
  2307.     -1,    85,    -1,    -1,    88,    -1,    -1,    91,    92,    93,
  2308.     -1,    95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2309.     -1,   105,    -1,   107,   108,     1,    -1,     3,     4,     5,
  2310.      6,     7,     8,     9,    10,    -1,    12,    13,    14,    -1,
  2311.     16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
  2312.     26,    27,    28,    29,    30,    31,    -1,    33,    -1,    35,
  2313.     -1,    37,    38,    -1,    40,    41,    -1,    -1,    44,    45,
  2314.     46,    -1,    -1,    49,    50,    -1,    -1,    -1,    -1,    -1,
  2315.     -1,    -1,    58,    -1,    -1,    61,    -1,    -1,    -1,    -1,
  2316.     -1,    -1,    -1,    69,    70,    71,    -1,    -1,    -1,    75,
  2317.     76,    -1,    -1,    -1,    -1,    -1,    -1,    83,    -1,    85,
  2318.     -1,    -1,    88,    -1,    -1,    91,    92,    93,    -1,    95,
  2319.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   105,
  2320.     -1,   107,   108,     1,    -1,     3,     4,     5,     6,     7,
  2321.      8,     9,    10,    -1,    12,    13,    14,    -1,    16,    17,
  2322.     18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
  2323.     28,    29,    30,    31,    -1,    33,    -1,    35,    -1,    37,
  2324.     38,    -1,    40,    41,    -1,    -1,    44,    45,    46,    -1,
  2325.     -1,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2326.     58,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    -1,
  2327.     -1,    69,    70,    71,    -1,    -1,    -1,    75,    76,    -1,
  2328.     -1,    -1,    -1,    -1,    -1,    83,    -1,    85,    -1,    -1,
  2329.     88,    -1,    -1,    91,    92,    93,    -1,    95,    -1,    -1,
  2330.     -1,    -1,    -1,    -1,    -1,    -1,    -1,   105,    -1,   107,
  2331.    108,     1,    -1,     3,     4,     5,     6,     7,     8,     9,
  2332.     10,    11,    12,    13,    62,    63,    64,    65,    66,    67,
  2333.     68,    69,    70,    71,    72,    73,    -1,    -1,    28,    29,
  2334.     30,    31,    -1,    33,    -1,    35,    -1,    37,    38,    -1,
  2335.     40,    41,    -1,    -1,    44,    45,    46,    -1,    -1,    -1,
  2336.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    58,    -1,
  2337.     -1,    61,    -1,    -1,    -1,    -1,    -1,     3,     4,    69,
  2338.     70,    71,    -1,    -1,    -1,    75,    76,    -1,    -1,    -1,
  2339.     -1,    -1,    -1,    83,    -1,    -1,    -1,    -1,    -1,    -1,
  2340.     -1,    -1,    -1,    -1,    94,    95,    -1,    -1,    -1,    -1,
  2341.     -1,    -1,    -1,    -1,   104,    41,    -1,   107,   108,     1,
  2342.     46,     3,     4,     5,     6,     7,     8,     9,    10,    11,
  2343.     12,    13,    -1,    -1,    -1,    61,    -1,    -1,    -1,    -1,
  2344.     -1,    -1,    -1,    -1,    -1,    71,    28,    29,    30,    31,
  2345.     -1,    33,    78,    35,    -1,    37,    38,    83,    40,    41,
  2346.     -1,    -1,    44,    45,    46,    -1,    -1,    -1,    -1,    95,
  2347.     -1,    -1,    -1,    -1,    -1,    -1,    58,    -1,    -1,    61,
  2348.     -1,   107,    -1,    -1,    -1,    -1,    -1,    69,    70,    71,
  2349.     -1,    -1,    -1,    75,    76,    -1,    -1,    -1,    -1,    -1,
  2350.     -1,    83,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2351.     -1,    -1,    94,    95,    -1,    -1,    -1,    -1,    -1,    -1,
  2352.     -1,    -1,   104,    -1,    -1,   107,   108,     1,    -1,     3,
  2353.      4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
  2354.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2355.     -1,    -1,    -1,    -1,    28,    29,    30,    31,    -1,    33,
  2356.     -1,    35,    -1,    37,    38,    -1,    40,    41,    -1,    -1,
  2357.     44,    45,    46,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2358.     -1,    -1,    -1,    -1,    58,    -1,    -1,    61,    -1,    -1,
  2359.     -1,    -1,    -1,    -1,    -1,    69,    70,    71,    -1,    -1,
  2360.     -1,    75,    76,    -1,    -1,    -1,    -1,    -1,    -1,    83,
  2361.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2362.     94,    95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2363.    104,    -1,    -1,   107,   108,     1,    -1,     3,     4,     5,
  2364.      6,     7,     8,     9,    10,    11,    12,    13,    -1,    -1,
  2365.     -1,    -1,    -1,    -1,     1,    -1,     3,     4,     5,     6,
  2366.      7,     8,    28,    29,    30,    31,    13,    33,    -1,    35,
  2367.     -1,    37,    38,    -1,    40,    41,    -1,    -1,    44,    45,
  2368.     46,    28,    -1,    -1,    -1,    -1,    -1,    -1,    35,    36,
  2369.     -1,    -1,    58,    -1,    41,    61,    -1,    -1,    -1,    46,
  2370.     -1,    -1,    -1,    69,    70,    71,    -1,    -1,    55,    75,
  2371.     76,    -1,    -1,    -1,    61,    -1,    -1,    83,    -1,    -1,
  2372.     -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,    94,    95,
  2373.     -1,    -1,    -1,    -1,    -1,    -1,    83,    -1,   104,    -1,
  2374.     -1,   107,   108,     1,    -1,     3,     4,     5,    95,     7,
  2375.      8,     9,    10,    -1,    12,    13,    -1,    -1,   105,   106,
  2376.    107,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2377.     28,    29,    30,    31,    -1,    33,    -1,    35,    -1,    37,
  2378.     38,    -1,    40,    41,    -1,    -1,    44,    45,    46,    -1,
  2379.     -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2380.     58,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    -1,
  2381.     -1,    69,    70,    71,    -1,    -1,    -1,    75,    76,    -1,
  2382.     -1,    -1,    -1,    -1,    -1,    83,    84,     1,    -1,     3,
  2383.      4,     5,    -1,     7,     8,     9,    10,    95,    12,    13,
  2384.     -1,    -1,    -1,    -1,    -1,    -1,    20,    -1,   106,   107,
  2385.    108,    -1,    -1,    -1,    28,    29,    30,    31,    -1,    33,
  2386.     -1,    35,    -1,    37,    38,    -1,    40,    41,    -1,    -1,
  2387.     44,    45,    46,    -1,    -1,    -1,    50,    -1,    -1,    -1,
  2388.     -1,    -1,    -1,    -1,    58,    -1,    -1,    61,    -1,    -1,
  2389.     -1,    -1,    -1,    -1,    -1,    69,    70,    71,    -1,    -1,
  2390.     -1,    75,    76,    -1,    -1,    -1,    -1,    -1,     1,    83,
  2391.      3,     4,     5,     6,     7,     8,     9,    10,    -1,    12,
  2392.     13,    95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2393.     -1,    -1,   106,   107,   108,    28,    29,    30,    31,    -1,
  2394.     33,    -1,    35,    -1,    37,    38,    -1,    40,    41,    -1,
  2395.     -1,    44,    45,    46,    -1,    -1,    -1,    50,    -1,    -1,
  2396.     -1,    -1,    -1,    -1,    -1,    58,    -1,    -1,    61,    -1,
  2397.     -1,    -1,    -1,    -1,    -1,    -1,    69,    70,    71,    -1,
  2398.     -1,    -1,    75,    76,    -1,    -1,    -1,    -1,    -1,     1,
  2399.     83,     3,     4,     5,    -1,     7,     8,     9,    10,    -1,
  2400.     12,    13,    95,    -1,    -1,    -1,    -1,    -1,    20,    -1,
  2401.     -1,    -1,   105,    -1,   107,   108,    28,    29,    30,    31,
  2402.     -1,    33,    -1,    35,    -1,    37,    38,    -1,    40,    41,
  2403.     -1,    -1,    44,    45,    46,    -1,    -1,    -1,    50,    -1,
  2404.     -1,    -1,    -1,    -1,    -1,    -1,    58,    -1,    -1,    61,
  2405.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    69,    70,    71,
  2406.     -1,    -1,    -1,    75,    76,    -1,    -1,    -1,    -1,    -1,
  2407.      1,    83,     3,     4,     5,    -1,     7,     8,     9,    10,
  2408.     -1,    12,    13,    95,    -1,    -1,    -1,    -1,    -1,    -1,
  2409.     -1,    -1,    -1,    -1,   106,   107,   108,    28,    29,    30,
  2410.     31,    -1,    33,    -1,    35,    -1,    37,    38,    -1,    40,
  2411.     41,    -1,    -1,    44,    45,    46,    -1,    -1,    -1,    50,
  2412.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    58,    -1,    -1,
  2413.     61,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    69,    70,
  2414.     71,    -1,    -1,    -1,    75,    76,    -1,    -1,    -1,    -1,
  2415.     -1,    -1,    83,    84,     1,    -1,     3,     4,     5,    -1,
  2416.      7,     8,     9,    10,    95,    12,    13,    -1,    -1,    -1,
  2417.     -1,    -1,    -1,    -1,    -1,    -1,   107,   108,    -1,    -1,
  2418.     -1,    28,    29,    30,    31,    -1,    33,    -1,    35,    -1,
  2419.     37,    38,    -1,    40,    41,    -1,    -1,    44,    45,    46,
  2420.     -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,    -1,
  2421.     -1,    58,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,
  2422.     -1,    -1,    69,    70,    71,    -1,    -1,    -1,    75,    76,
  2423.     -1,    -1,    -1,    -1,    -1,     1,    83,     3,     4,     5,
  2424.     -1,     7,     8,     9,    10,    -1,    12,    13,    95,    -1,
  2425.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2426.    107,   108,    28,    29,    30,    31,    -1,    33,    -1,    35,
  2427.     -1,    37,    38,    -1,    40,    41,    -1,    -1,    44,    45,
  2428.     46,    -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,
  2429.     -1,    -1,    58,    -1,    -1,    61,    -1,    -1,    -1,    -1,
  2430.     -1,    -1,    -1,    69,    70,    71,    -1,    -1,    -1,    75,
  2431.     76,    -1,    -1,    -1,    -1,    -1,     1,    83,     3,     4,
  2432.      5,    -1,     7,     8,     9,    10,    -1,    12,    13,    95,
  2433.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2434.     -1,   107,   108,    28,    29,    30,    31,    -1,    33,    -1,
  2435.     35,    -1,    37,    38,    -1,    40,    41,    -1,    -1,    44,
  2436.     45,    46,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2437.     55,    -1,    -1,    58,    -1,    -1,    61,    -1,    -1,    -1,
  2438.     -1,    -1,    -1,    -1,    69,    70,    71,    -1,    -1,    -1,
  2439.     75,    76,    -1,    -1,    -1,    -1,    -1,     1,    83,     3,
  2440.      4,     5,    -1,     7,     8,     9,    10,    -1,    12,    13,
  2441.     95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2442.     -1,    -1,   107,   108,    28,    29,    30,    31,    -1,    33,
  2443.     -1,    35,    -1,    37,    38,    -1,    40,    41,    -1,    -1,
  2444.     44,    45,    46,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2445.     -1,    -1,    -1,    -1,    58,    -1,    -1,    61,    -1,    -1,
  2446.     -1,    -1,    -1,    -1,    -1,    69,    70,    71,    -1,    -1,
  2447.     -1,    75,    76,    -1,    -1,    -1,    -1,    -1,     1,    83,
  2448.      3,     4,     5,    -1,     7,     8,     9,    10,    -1,    12,
  2449.     13,    95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2450.     -1,   105,    -1,   107,   108,    28,    29,    30,    31,    -1,
  2451.     33,    -1,    35,    -1,    37,    38,    -1,    40,    41,    -1,
  2452.     -1,    44,    45,    46,    -1,    -1,    -1,    -1,    -1,    -1,
  2453.     -1,    -1,    -1,    -1,    -1,    58,    -1,    -1,    61,    -1,
  2454.     -1,    -1,    -1,    -1,    -1,    -1,    69,    70,    71,    -1,
  2455.     -1,    -1,    75,    76,    -1,    -1,    -1,    -1,    -1,     1,
  2456.     83,     3,     4,     5,    -1,     7,     8,     9,    10,    -1,
  2457.     12,    13,    95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2458.     -1,   104,    -1,    -1,   107,   108,    28,    29,    30,    31,
  2459.     -1,    33,    -1,    35,    -1,    37,    38,    -1,    40,    41,
  2460.     -1,    -1,    44,    45,    46,    -1,    -1,    -1,    -1,    -1,
  2461.     -1,    -1,    -1,    -1,    -1,    -1,    58,    -1,    -1,    61,
  2462.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    69,    70,    71,
  2463.     -1,    -1,    -1,    75,    76,    -1,    -1,    -1,    -1,    -1,
  2464.     -1,    83,     3,     4,     5,    -1,     7,     8,     9,    10,
  2465.     -1,    12,    13,    95,    -1,    -1,    -1,    -1,    -1,    -1,
  2466.     -1,    -1,    -1,    -1,    -1,   107,   108,    28,    29,    30,
  2467.     31,    -1,    33,    -1,    35,    -1,    37,    -1,    -1,    40,
  2468.     41,    -1,    -1,    44,    45,    46,    -1,    -1,    -1,    -1,
  2469.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    58,    -1,     1,
  2470.     61,     3,     4,     5,     6,     7,     8,    -1,    69,    70,
  2471.     71,    13,     3,     4,    75,    76,    -1,    -1,    -1,    -1,
  2472.     -1,    -1,    83,    -1,    26,    27,    28,    -1,    -1,    -1,
  2473.     -1,    -1,    -1,    35,    95,    -1,    -1,    39,    -1,    41,
  2474.     -1,    43,    -1,    -1,    46,    -1,   107,   108,   109,    -1,
  2475.     41,    -1,    -1,    -1,    -1,    46,    47,    -1,    -1,    61,
  2476.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    71,
  2477.     61,    -1,     1,    -1,     3,     4,     5,     6,     7,     8,
  2478.     71,    83,    -1,    -1,    13,    -1,    -1,    78,    -1,    -1,
  2479.     -1,    -1,    83,    95,    96,    97,    -1,    -1,    -1,    28,
  2480.     -1,    -1,    -1,   105,    95,   107,    35,    36,    -1,    -1,
  2481.     -1,    -1,    41,    -1,    -1,    -1,   107,    46,    -1,    -1,
  2482.     -1,    -1,    -1,    -1,    -1,    -1,    55,    -1,    52,    53,
  2483.     54,    -1,    61,    57,    58,    59,    60,    61,    62,    63,
  2484.     64,    65,    71,    67,    68,    69,    70,    71,    72,    73,
  2485.     -1,    -1,    -1,    -1,    83,    -1,    -1,    -1,    -1,    -1,
  2486.     -1,    -1,    -1,    -1,    -1,    -1,    95,    -1,    -1,    -1,
  2487.     -1,    -1,    -1,    -1,    -1,    -1,   105,   106,   107,     3,
  2488.      4,     5,     6,     7,     8,     9,    10,    -1,    12,    13,
  2489.     14,    -1,    16,    17,    18,    19,    20,    21,    22,    23,
  2490.     24,    25,    26,    27,    28,    29,    30,    31,    -1,    33,
  2491.     -1,    35,    -1,    37,    -1,    -1,    40,    41,    -1,    -1,
  2492.     44,    45,    46,    -1,    -1,    49,    50,    -1,    -1,    -1,
  2493.     -1,    -1,    -1,    -1,    58,    -1,    -1,    61,    -1,    -1,
  2494.     -1,    -1,    -1,    -1,    -1,    69,    70,    71,    -1,    -1,
  2495.     -1,    75,    76,    -1,    -1,    -1,    -1,    -1,    -1,    83,
  2496.     -1,    85,    -1,    -1,    88,    -1,    -1,    91,    92,    93,
  2497.     -1,    95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2498.     -1,   105,   106,   107,   108,     3,     4,     5,     6,     7,
  2499.      8,     9,    10,    -1,    12,    13,    14,    -1,    16,    17,
  2500.     18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
  2501.     28,    29,    30,    31,    -1,    33,    -1,    35,    -1,    37,
  2502.     -1,    -1,    40,    41,    -1,    -1,    44,    45,    46,    -1,
  2503.     -1,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2504.     58,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    -1,
  2505.     -1,    69,    70,    71,    -1,    -1,    -1,    75,    76,    -1,
  2506.     -1,    -1,    -1,    -1,    -1,    83,    -1,    85,    -1,    -1,
  2507.     88,    -1,    -1,    91,    92,    93,    -1,    95,    -1,    -1,
  2508.     -1,    -1,    -1,    -1,    -1,    -1,    -1,   105,    -1,   107,
  2509.    108,     3,     4,     5,     6,     7,     8,     9,    10,    -1,
  2510.     12,    13,    14,    -1,    16,    17,    18,    19,    20,    21,
  2511.     22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
  2512.     -1,    33,    -1,    35,    -1,    37,    -1,    -1,    40,    41,
  2513.     -1,    -1,    44,    45,    46,    -1,    -1,    49,    50,    -1,
  2514.     -1,    -1,    -1,    -1,    -1,    -1,    58,    -1,    -1,    61,
  2515.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    69,    70,    71,
  2516.     -1,    -1,    -1,    75,    76,    -1,    -1,    -1,    -1,    -1,
  2517.     -1,    83,    -1,    85,    -1,    -1,    88,    -1,    -1,    91,
  2518.     92,    93,    -1,    95,    -1,    -1,    -1,    -1,    -1,    -1,
  2519.     -1,    -1,    -1,   105,    -1,   107,   108,     3,     4,     5,
  2520.      6,     7,     8,     9,    10,    -1,    12,    13,    14,    -1,
  2521.     16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
  2522.     26,    27,    28,    29,    30,    31,    -1,    33,    -1,    35,
  2523.     -1,    37,    -1,    -1,    40,    41,    -1,    -1,    44,    45,
  2524.     46,    -1,    -1,    49,    -1,    -1,    -1,    -1,    -1,    -1,
  2525.     -1,    -1,    58,    -1,    -1,    61,    -1,    -1,    -1,    -1,
  2526.     -1,    -1,    -1,    69,    70,    71,    -1,    -1,    -1,    75,
  2527.     76,    -1,    -1,    -1,    -1,    -1,    -1,    83,    -1,    85,
  2528.     -1,    -1,    88,    -1,    -1,    91,    92,    93,    -1,    95,
  2529.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   105,
  2530.     -1,   107,   108,     3,     4,     5,    -1,     7,     8,     9,
  2531.     10,    -1,    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,
  2532.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
  2533.     30,    31,    -1,    33,    -1,    35,    -1,    37,    -1,    -1,
  2534.     40,    41,    -1,    -1,    44,    45,    46,    -1,    -1,    -1,
  2535.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    58,    -1,
  2536.     -1,    61,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    69,
  2537.     70,    71,    -1,    -1,    -1,    75,    76,    -1,    -1,    -1,
  2538.     -1,    -1,    -1,    83,    84,    -1,    -1,     3,     4,     5,
  2539.     -1,     7,     8,     9,    10,    95,    12,    13,    -1,    -1,
  2540.     -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,   108,    -1,
  2541.     -1,    -1,    28,    29,    30,    31,    -1,    33,    -1,    35,
  2542.     -1,    37,    -1,    -1,    40,    41,    -1,    -1,    44,    45,
  2543.     46,    -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,
  2544.     -1,    -1,    58,    -1,    -1,    61,    -1,    -1,    -1,    -1,
  2545.     -1,    -1,    -1,    69,    70,    71,    -1,    -1,    -1,    75,
  2546.     76,    -1,    -1,    -1,    -1,    -1,    -1,    83,     3,     4,
  2547.      5,    -1,     7,     8,     9,    10,    -1,    12,    13,    95,
  2548.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2549.     -1,   107,   108,    28,    29,    30,    31,    -1,    33,    -1,
  2550.     35,    -1,    37,    -1,    -1,    40,    41,    -1,    -1,    44,
  2551.     45,    46,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2552.     -1,    -1,    -1,    58,    -1,    -1,    61,    -1,    -1,    -1,
  2553.     -1,    -1,    -1,    -1,    69,    70,    71,    -1,    -1,    -1,
  2554.     75,    76,    -1,    -1,    -1,    -1,    -1,    -1,    83,     3,
  2555.      4,     5,    -1,     7,     8,     9,    10,    -1,    12,    13,
  2556.     95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2557.    105,    -1,   107,   108,    28,    29,    30,    31,    -1,    33,
  2558.     -1,    35,    -1,    37,    -1,    -1,    40,    41,    -1,    -1,
  2559.     44,    45,    46,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2560.     -1,    -1,    -1,    -1,    58,    -1,    -1,    61,    -1,    -1,
  2561.     -1,    -1,    -1,    -1,    -1,    69,    70,    71,    -1,    -1,
  2562.     -1,    75,    76,    -1,    -1,    -1,    -1,    -1,    -1,    83,
  2563.      3,     4,     5,    -1,     7,     8,     9,    10,    -1,    12,
  2564.     13,    95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2565.     -1,   105,    -1,   107,   108,    28,    29,    30,    31,    -1,
  2566.     33,    -1,    35,    -1,    37,    -1,    -1,    40,    41,    -1,
  2567.     -1,    44,    45,    46,    -1,    -1,    -1,    -1,    -1,    -1,
  2568.     -1,    -1,    -1,    -1,    -1,    58,    -1,    -1,    61,    -1,
  2569.     -1,    -1,    -1,    -1,    -1,    -1,    69,    70,    71,    -1,
  2570.     -1,    -1,    75,    76,    -1,    -1,    -1,    -1,    -1,    -1,
  2571.     83,     3,     4,     5,    -1,     7,     8,     9,    10,    -1,
  2572.     12,    13,    95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2573.     -1,    -1,    -1,    -1,   107,   108,    28,    29,    30,    31,
  2574.     -1,    33,    -1,    35,    -1,    37,    -1,    -1,    40,    41,
  2575.     -1,    -1,    44,    45,    46,    -1,    -1,    -1,    -1,    -1,
  2576.     -1,    -1,    -1,    -1,    -1,    -1,    58,    -1,    -1,    61,
  2577.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    69,    70,    71,
  2578.     -1,    -1,    -1,    75,    76,    -1,    -1,    -1,    -1,    -1,
  2579.     -1,    83,     3,     4,     5,    -1,     7,     8,     9,    10,
  2580.     -1,    12,    13,    95,    -1,    -1,    -1,    -1,    -1,    -1,
  2581.     -1,    -1,    -1,    -1,    -1,   107,   108,    28,    29,    30,
  2582.     31,    -1,    33,    -1,    35,    -1,    37,    -1,    -1,    40,
  2583.     41,    -1,    -1,    44,    45,    46,     3,     4,     5,    -1,
  2584.      7,     8,     9,    10,    -1,    12,    13,    58,    -1,    -1,
  2585.     61,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    69,    70,
  2586.     71,    28,    29,    -1,    75,    76,    33,    -1,    35,    -1,
  2587.     37,    -1,    83,    40,    41,    -1,    -1,    44,    45,    46,
  2588.     -1,    -1,    -1,    -1,    95,    -1,    -1,    -1,    -1,    -1,
  2589.     -1,    58,    -1,    -1,    61,    -1,   107,   108,    -1,    -1,
  2590.     -1,    -1,    69,    70,    71,    -1,    -1,    -1,    75,    76,
  2591.     -1,    -1,    -1,     3,     4,     5,    83,     7,     8,     9,
  2592.     10,    -1,    12,    13,    -1,    -1,    -1,    -1,    95,    -1,
  2593.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
  2594.    107,   108,    -1,    33,    -1,    35,    -1,    37,    -1,    -1,
  2595.     40,    41,    -1,    -1,    44,    45,    46,     3,     4,     5,
  2596.      6,     7,     8,    -1,    -1,    -1,    -1,    13,    58,    -1,
  2597.     -1,    61,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    69,
  2598.     70,    71,    28,    -1,    -1,    75,    76,    -1,    -1,    35,
  2599.     -1,    -1,    -1,    83,    -1,    41,    42,    -1,    -1,    -1,
  2600.     46,    47,    -1,    -1,    -1,    95,    -1,    -1,    -1,    55,
  2601.     -1,    -1,    -1,    -1,    -1,    61,    -1,   107,   108,     3,
  2602.      4,     5,     6,     7,     8,    71,    -1,    -1,    -1,    13,
  2603.     -1,    -1,    78,    -1,    -1,    -1,    -1,    83,    -1,    -1,
  2604.     -1,    -1,    -1,    -1,    28,    -1,    -1,    -1,    -1,    95,
  2605.     -1,    35,    -1,    -1,    -1,    -1,    -1,    41,    -1,    -1,
  2606.     -1,   107,    46,    47,     3,     4,     5,     6,     7,     8,
  2607.     -1,    -1,    11,    -1,    13,    -1,    -1,    61,    -1,    -1,
  2608.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    71,    -1,    28,
  2609.     -1,    -1,    -1,    -1,    78,    -1,    35,    -1,    -1,    83,
  2610.     -1,    -1,    41,    -1,    -1,    -1,    -1,    46,    -1,    -1,
  2611.     -1,    95,    -1,    -1,    -1,     3,     4,     5,     6,     7,
  2612.      8,   105,    61,   107,    -1,    13,    -1,    -1,    -1,    -1,
  2613.     -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    78,
  2614.     28,    -1,    -1,    -1,    83,    -1,    -1,    35,    -1,    -1,
  2615.     -1,    -1,    -1,    41,    -1,    94,    95,    -1,    46,    47,
  2616.      3,     4,     5,     6,     7,     8,    -1,    -1,   107,    -1,
  2617.     13,    -1,    -1,    61,     3,     4,     5,     6,     7,     8,
  2618.     -1,    -1,    11,    71,    13,    28,    -1,    -1,    -1,    -1,
  2619.     78,    -1,    35,    -1,    -1,    83,    -1,    -1,    41,    28,
  2620.     -1,    -1,    -1,    46,    47,    -1,    35,    95,    -1,    -1,
  2621.     -1,    -1,    -1,    42,    -1,    -1,    -1,   105,    61,   107,
  2622.      4,     5,    -1,     7,     8,    -1,    -1,    -1,    71,    13,
  2623.     -1,    -1,    61,    -1,    -1,    78,    -1,    -1,    -1,    -1,
  2624.     83,    -1,    71,    -1,    28,    -1,    -1,    26,    27,    78,
  2625.     -1,    35,    95,    32,    83,    84,    -1,    -1,    42,    -1,
  2626.     -1,    -1,    -1,    47,   107,    94,    95,    46,    -1,    -1,
  2627.     -1,    50,    -1,    -1,    53,    -1,    55,    61,    -1,    -1,
  2628.     -1,    -1,    -1,    -1,    -1,    -1,    65,    71,    -1,    -1,
  2629.     -1,    -1,    -1,    -1,    78,    -1,    -1,    -1,    -1,    83,
  2630.     84,    -1,    -1,    -1,    -1,    84,    -1,    86,    -1,    -1,
  2631.     -1,    95,    -1,    -1,    93,    -1,    -1,    -1,    -1,    -1,
  2632.     -1,    -1,    -1,    52,    53,    54,    -1,   106,    57,    58,
  2633.     59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
  2634.     69,    70,    71,    72,    73,    52,    53,    54,    -1,    -1,
  2635.     57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
  2636.     67,    68,    69,    70,    71,    72,    73,    -1,    -1,    -1,
  2637.     -1,    -1,    -1,    -1,    -1,    32,    -1,    -1,    -1,    -1,
  2638.    109,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2639.     -1,    -1,    -1,    -1,    -1,    52,    53,    54,   105,   106,
  2640.     57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
  2641.     67,    68,    69,    70,    71,    72,    73,    51,    52,    53,
  2642.     54,    -1,    -1,    57,    58,    59,    60,    61,    62,    63,
  2643.     64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
  2644.     52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
  2645.     62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
  2646.     72,    73,    52,    53,    54,    55,    -1,    57,    58,    59,
  2647.     60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
  2648.     70,    71,    72,    73,    52,    53,    54,    55,    -1,    57,
  2649.     58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
  2650.     68,    69,    70,    71,    72,    73,    52,    53,    54,    -1,
  2651.     -1,    57,    58,    59,    60,    61,    62,    63,    64,    65,
  2652.     66,    67,    68,    69,    70,    71,    72,    73,    54,    -1,
  2653.     -1,    57,    58,    59,    60,    61,    62,    63,    64,    65,
  2654.     66,    67,    68,    69,    70,    71,    72,    73,    58,    59,
  2655.     60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
  2656.     70,    71,    72,    73,    59,    60,    61,    62,    63,    64,
  2657.     65,    66,    67,    68,    69,    70,    71,    72,    73
  2658. };
  2659. /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
  2660. #line 3 "/usr/lib/bison.simple"
  2661.  
  2662. /* Skeleton output parser for bison,
  2663.    Copyright (C) 1984, 1989, 1990 Bob Corbett and Richard Stallman
  2664.  
  2665.    This program is free software; you can redistribute it and/or modify
  2666.    it under the terms of the GNU General Public License as published by
  2667.    the Free Software Foundation; either version 1, or (at your option)
  2668.    any later version.
  2669.  
  2670.    This program is distributed in the hope that it will be useful,
  2671.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  2672.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  2673.    GNU General Public License for more details.
  2674.  
  2675.    You should have received a copy of the GNU General Public License
  2676.    along with this program; if not, write to the Free Software
  2677.    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
  2678.  
  2679.  
  2680. #ifndef alloca
  2681. #ifdef __GNUC__
  2682. #define alloca __builtin_alloca
  2683. #else /* not GNU C.  */
  2684. #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
  2685. #include <alloca.h>
  2686. #else /* not sparc */
  2687. #if defined (MSDOS) && !defined (__TURBOC__)
  2688. #include <malloc.h>
  2689. #else /* not MSDOS, or __TURBOC__ */
  2690. #if defined(_AIX)
  2691. #include <malloc.h>
  2692.  #pragma alloca
  2693. #else /* not MSDOS, __TURBOC__, or _AIX */
  2694. #ifdef __hpux
  2695. #ifdef __cplusplus
  2696. extern "C" {
  2697. void *alloca (unsigned int);
  2698. };
  2699. #else /* not __cplusplus */
  2700. void *alloca ();
  2701. #endif /* not __cplusplus */
  2702. #endif /* __hpux */
  2703. #endif /* not _AIX */
  2704. #endif /* not MSDOS, or __TURBOC__ */
  2705. #endif /* not sparc.  */
  2706. #endif /* not GNU C.  */
  2707. #endif /* alloca not defined.  */
  2708.  
  2709. /* This is the parser code that is written into each bison parser
  2710.   when the %semantic_parser declaration is not specified in the grammar.
  2711.   It was written by Richard Stallman by simplifying the hairy parser
  2712.   used when %semantic_parser is specified.  */
  2713.  
  2714. /* Note: there must be only one dollar sign in this file.
  2715.    It is replaced by the list of actions, each action
  2716.    as one case of the switch.  */
  2717.  
  2718. #define yyerrok        (yyerrstatus = 0)
  2719. #define yyclearin    (yychar = YYEMPTY)
  2720. #define YYEMPTY        -2
  2721. #define YYEOF        0
  2722. #define YYACCEPT    return(0)
  2723. #define YYABORT     return(1)
  2724. #define YYERROR        goto yyerrlab1
  2725. /* Like YYERROR except do call yyerror.
  2726.    This remains here temporarily to ease the
  2727.    transition to the new meaning of YYERROR, for GCC.
  2728.    Once GCC version 2 has supplanted version 1, this can go.  */
  2729. #define YYFAIL        goto yyerrlab
  2730. #define YYRECOVERING()  (!!yyerrstatus)
  2731. #define YYBACKUP(token, value) \
  2732. do                                \
  2733.   if (yychar == YYEMPTY && yylen == 1)                \
  2734.     { yychar = (token), yylval = (value);            \
  2735.       yychar1 = YYTRANSLATE (yychar);                \
  2736.       YYPOPSTACK;                        \
  2737.       goto yybackup;                        \
  2738.     }                                \
  2739.   else                                \
  2740.     { yyerror ("syntax error: cannot back up"); YYERROR; }    \
  2741. while (0)
  2742.  
  2743. #define YYTERROR    1
  2744. #define YYERRCODE    256
  2745.  
  2746. #ifndef YYPURE
  2747. #define YYLEX        yylex()
  2748. #endif
  2749.  
  2750. #ifdef YYPURE
  2751. #ifdef YYLSP_NEEDED
  2752. #define YYLEX        yylex(&yylval, &yylloc)
  2753. #else
  2754. #define YYLEX        yylex(&yylval)
  2755. #endif
  2756. #endif
  2757.  
  2758. /* If nonreentrant, generate the variables here */
  2759.  
  2760. #ifndef YYPURE
  2761.  
  2762. int    yychar;            /*  the lookahead symbol        */
  2763. YYSTYPE    yylval;            /*  the semantic value of the        */
  2764.                 /*  lookahead symbol            */
  2765.  
  2766. #ifdef YYLSP_NEEDED
  2767. YYLTYPE yylloc;            /*  location data for the lookahead    */
  2768.                 /*  symbol                */
  2769. #endif
  2770.  
  2771. int yynerrs;            /*  number of parse errors so far       */
  2772. #endif  /* not YYPURE */
  2773.  
  2774. #if YYDEBUG != 0
  2775. int yydebug;            /*  nonzero means print parse trace    */
  2776. /* Since this is uninitialized, it does not stop multiple parsers
  2777.    from coexisting.  */
  2778. #endif
  2779.  
  2780. /*  YYINITDEPTH indicates the initial size of the parser's stacks    */
  2781.  
  2782. #ifndef    YYINITDEPTH
  2783. #define YYINITDEPTH 200
  2784. #endif
  2785.  
  2786. /*  YYMAXDEPTH is the maximum size the stacks can grow to
  2787.     (effective only if the built-in stack extension method is used).  */
  2788.  
  2789. #if YYMAXDEPTH == 0
  2790. #undef YYMAXDEPTH
  2791. #endif
  2792.  
  2793. #ifndef YYMAXDEPTH
  2794. #define YYMAXDEPTH 10000
  2795. #endif
  2796.  
  2797. /* Prevent warning if -Wstrict-prototypes.  */
  2798. #ifdef __GNUC__
  2799. int yyparse (void);
  2800. #endif
  2801.  
  2802. #if __GNUC__ > 1        /* GNU C and GNU C++ define this.  */
  2803. #define __yy_bcopy(FROM,TO,COUNT)    __builtin_memcpy(TO,FROM,COUNT)
  2804. #else                /* not GNU C or C++ */
  2805. #ifndef __cplusplus
  2806.  
  2807. /* This is the most reliable way to avoid incompatibilities
  2808.    in available built-in functions on various systems.  */
  2809. static void
  2810. __yy_bcopy (from, to, count)
  2811.      char *from;
  2812.      char *to;
  2813.      int count;
  2814. {
  2815.   register char *f = from;
  2816.   register char *t = to;
  2817.   register int i = count;
  2818.  
  2819.   while (i-- > 0)
  2820.     *t++ = *f++;
  2821. }
  2822.  
  2823. #else /* __cplusplus */
  2824.  
  2825. /* This is the most reliable way to avoid incompatibilities
  2826.    in available built-in functions on various systems.  */
  2827. static void
  2828. __yy_bcopy (char *from, char *to, int count)
  2829. {
  2830.   register char *f = from;
  2831.   register char *t = to;
  2832.   register int i = count;
  2833.  
  2834.   while (i-- > 0)
  2835.     *t++ = *f++;
  2836. }
  2837.  
  2838. #endif
  2839. #endif
  2840.  
  2841. #line 184 "/usr/lib/bison.simple"
  2842. int
  2843. yyparse()
  2844. {
  2845.   register int yystate;
  2846.   register int yyn;
  2847.   register short *yyssp;
  2848.   register YYSTYPE *yyvsp;
  2849.   int yyerrstatus;    /*  number of tokens to shift before error messages enabled */
  2850.   int yychar1 = 0;        /*  lookahead token as an internal (translated) token number */
  2851.  
  2852.   short    yyssa[YYINITDEPTH];    /*  the state stack            */
  2853.   YYSTYPE yyvsa[YYINITDEPTH];    /*  the semantic value stack        */
  2854.  
  2855.   short *yyss = yyssa;        /*  refer to the stacks thru separate pointers */
  2856.   YYSTYPE *yyvs = yyvsa;    /*  to allow yyoverflow to reallocate them elsewhere */
  2857.  
  2858. #ifdef YYLSP_NEEDED
  2859.   YYLTYPE yylsa[YYINITDEPTH];    /*  the location stack            */
  2860.   YYLTYPE *yyls = yylsa;
  2861.   YYLTYPE *yylsp;
  2862.  
  2863. #define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
  2864. #else
  2865. #define YYPOPSTACK   (yyvsp--, yyssp--)
  2866. #endif
  2867.  
  2868.   int yystacksize = YYINITDEPTH;
  2869.  
  2870. #ifdef YYPURE
  2871.   int yychar;
  2872.   YYSTYPE yylval;
  2873.   int yynerrs;
  2874. #ifdef YYLSP_NEEDED
  2875.   YYLTYPE yylloc;
  2876. #endif
  2877. #endif
  2878.  
  2879.   YYSTYPE yyval;        /*  the variable used to return        */
  2880.                 /*  semantic values from the action    */
  2881.                 /*  routines                */
  2882.  
  2883.   int yylen;
  2884.  
  2885. #if YYDEBUG != 0
  2886.   if (yydebug)
  2887.     fprintf(stderr, "Starting parse\n");
  2888. #endif
  2889.  
  2890.   yystate = 0;
  2891.   yyerrstatus = 0;
  2892.   yynerrs = 0;
  2893.   yychar = YYEMPTY;        /* Cause a token to be read.  */
  2894.  
  2895.   /* Initialize stack pointers.
  2896.      Waste one element of value and location stack
  2897.      so that they stay on the same level as the state stack.
  2898.      The wasted elements are never initialized.  */
  2899.  
  2900.   yyssp = yyss - 1;
  2901.   yyvsp = yyvs;
  2902. #ifdef YYLSP_NEEDED
  2903.   yylsp = yyls;
  2904. #endif
  2905.  
  2906. /* Push a new state, which is found in  yystate  .  */
  2907. /* In all cases, when you get here, the value and location stacks
  2908.    have just been pushed. so pushing a state here evens the stacks.  */
  2909. yynewstate:
  2910.  
  2911.   *++yyssp = yystate;
  2912.  
  2913.   if (yyssp >= yyss + yystacksize - 1)
  2914.     {
  2915.       /* Give user a chance to reallocate the stack */
  2916.       /* Use copies of these so that the &'s don't force the real ones into memory. */
  2917.       YYSTYPE *yyvs1 = yyvs;
  2918.       short *yyss1 = yyss;
  2919. #ifdef YYLSP_NEEDED
  2920.       YYLTYPE *yyls1 = yyls;
  2921. #endif
  2922.  
  2923.       /* Get the current used size of the three stacks, in elements.  */
  2924.       int size = yyssp - yyss + 1;
  2925.  
  2926. #ifdef yyoverflow
  2927.       /* Each stack pointer address is followed by the size of
  2928.      the data in use in that stack, in bytes.  */
  2929. #ifdef YYLSP_NEEDED
  2930.       /* This used to be a conditional around just the two extra args,
  2931.      but that might be undefined if yyoverflow is a macro.  */
  2932.       yyoverflow("parser stack overflow",
  2933.          &yyss1, size * sizeof (*yyssp),
  2934.          &yyvs1, size * sizeof (*yyvsp),
  2935.          &yyls1, size * sizeof (*yylsp),
  2936.          &yystacksize);
  2937. #else
  2938.       yyoverflow("parser stack overflow",
  2939.          &yyss1, size * sizeof (*yyssp),
  2940.          &yyvs1, size * sizeof (*yyvsp),
  2941.          &yystacksize);
  2942. #endif
  2943.  
  2944.       yyss = yyss1; yyvs = yyvs1;
  2945. #ifdef YYLSP_NEEDED
  2946.       yyls = yyls1;
  2947. #endif
  2948. #else /* no yyoverflow */
  2949.       /* Extend the stack our own way.  */
  2950.       if (yystacksize >= YYMAXDEPTH)
  2951.     {
  2952.       yyerror("parser stack overflow");
  2953.       return 2;
  2954.     }
  2955.       yystacksize *= 2;
  2956.       if (yystacksize > YYMAXDEPTH)
  2957.     yystacksize = YYMAXDEPTH;
  2958.       yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
  2959.       __yy_bcopy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp));
  2960.       yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
  2961.       __yy_bcopy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp));
  2962. #ifdef YYLSP_NEEDED
  2963.       yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
  2964.       __yy_bcopy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp));
  2965. #endif
  2966. #endif /* no yyoverflow */
  2967.  
  2968.       yyssp = yyss + size - 1;
  2969.       yyvsp = yyvs + size - 1;
  2970. #ifdef YYLSP_NEEDED
  2971.       yylsp = yyls + size - 1;
  2972. #endif
  2973.  
  2974. #if YYDEBUG != 0
  2975.       if (yydebug)
  2976.     fprintf(stderr, "Stack size increased to %d\n", yystacksize);
  2977. #endif
  2978.  
  2979.       if (yyssp >= yyss + yystacksize - 1)
  2980.     YYABORT;
  2981.     }
  2982.  
  2983. #if YYDEBUG != 0
  2984.   if (yydebug)
  2985.     fprintf(stderr, "Entering state %d\n", yystate);
  2986. #endif
  2987.  
  2988.   goto yybackup;
  2989.  yybackup:
  2990.  
  2991. /* Do appropriate processing given the current state.  */
  2992. /* Read a lookahead token if we need one and don't already have one.  */
  2993. /* yyresume: */
  2994.  
  2995.   /* First try to decide what to do without reference to lookahead token.  */
  2996.  
  2997.   yyn = yypact[yystate];
  2998.   if (yyn == YYFLAG)
  2999.     goto yydefault;
  3000.  
  3001.   /* Not known => get a lookahead token if don't already have one.  */
  3002.  
  3003.   /* yychar is either YYEMPTY or YYEOF
  3004.      or a valid token in external form.  */
  3005.  
  3006.   if (yychar == YYEMPTY)
  3007.     {
  3008. #if YYDEBUG != 0
  3009.       if (yydebug)
  3010.     fprintf(stderr, "Reading a token: ");
  3011. #endif
  3012.       yychar = YYLEX;
  3013.     }
  3014.  
  3015.   /* Convert token to internal form (in yychar1) for indexing tables with */
  3016.  
  3017.   if (yychar <= 0)        /* This means end of input. */
  3018.     {
  3019.       yychar1 = 0;
  3020.       yychar = YYEOF;        /* Don't call YYLEX any more */
  3021.  
  3022. #if YYDEBUG != 0
  3023.       if (yydebug)
  3024.     fprintf(stderr, "Now at end of input.\n");
  3025. #endif
  3026.     }
  3027.   else
  3028.     {
  3029.       yychar1 = YYTRANSLATE(yychar);
  3030.  
  3031. #if YYDEBUG != 0
  3032.       if (yydebug)
  3033.     {
  3034.       fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
  3035.       /* Give the individual parser a way to print the precise meaning
  3036.          of a token, for further debugging info.  */
  3037. #ifdef YYPRINT
  3038.       YYPRINT (stderr, yychar, yylval);
  3039. #endif
  3040.       fprintf (stderr, ")\n");
  3041.     }
  3042. #endif
  3043.     }
  3044.  
  3045.   yyn += yychar1;
  3046.   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
  3047.     goto yydefault;
  3048.  
  3049.   yyn = yytable[yyn];
  3050.  
  3051.   /* yyn is what to do for this token type in this state.
  3052.      Negative => reduce, -yyn is rule number.
  3053.      Positive => shift, yyn is new state.
  3054.        New state is final state => don't bother to shift,
  3055.        just return success.
  3056.      0, or most negative number => error.  */
  3057.  
  3058.   if (yyn < 0)
  3059.     {
  3060.       if (yyn == YYFLAG)
  3061.     goto yyerrlab;
  3062.       yyn = -yyn;
  3063.       goto yyreduce;
  3064.     }
  3065.   else if (yyn == 0)
  3066.     goto yyerrlab;
  3067.  
  3068.   if (yyn == YYFINAL)
  3069.     YYACCEPT;
  3070.  
  3071.   /* Shift the lookahead token.  */
  3072.  
  3073. #if YYDEBUG != 0
  3074.   if (yydebug)
  3075.     fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
  3076. #endif
  3077.  
  3078.   /* Discard the token being shifted unless it is eof.  */
  3079.   if (yychar != YYEOF)
  3080.     yychar = YYEMPTY;
  3081.  
  3082.   *++yyvsp = yylval;
  3083. #ifdef YYLSP_NEEDED
  3084.   *++yylsp = yylloc;
  3085. #endif
  3086.  
  3087.   /* count tokens shifted since error; after three, turn off error status.  */
  3088.   if (yyerrstatus) yyerrstatus--;
  3089.  
  3090.   yystate = yyn;
  3091.   goto yynewstate;
  3092.  
  3093. /* Do the default action for the current state.  */
  3094. yydefault:
  3095.  
  3096.   yyn = yydefact[yystate];
  3097.   if (yyn == 0)
  3098.     goto yyerrlab;
  3099.  
  3100. /* Do a reduction.  yyn is the number of a rule to reduce with.  */
  3101. yyreduce:
  3102.   yylen = yyr2[yyn];
  3103.   if (yylen > 0)
  3104.     yyval = yyvsp[1-yylen]; /* implement default value of the action */
  3105.  
  3106. #if YYDEBUG != 0
  3107.   if (yydebug)
  3108.     {
  3109.       int i;
  3110.  
  3111.       fprintf (stderr, "Reducing via rule %d (line %d), ",
  3112.            yyn, yyrline[yyn]);
  3113.  
  3114.       /* Print the symbols being reduced, and their result.  */
  3115.       for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
  3116.     fprintf (stderr, "%s ", yytname[yyrhs[i]]);
  3117.       fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
  3118.     }
  3119. #endif
  3120.  
  3121.  
  3122.   switch (yyn) {
  3123.  
  3124. case 2:
  3125. #line 287 "cp-parse.y"
  3126. {
  3127.           /* In case there were missing closebraces,
  3128.              get us back to the global binding level.  */
  3129.           while (! global_bindings_p ())
  3130.             poplevel (0, 0, 0);
  3131.           finish_file ();
  3132.         ;
  3133.     break;}
  3134. case 3:
  3135. #line 301 "cp-parse.y"
  3136. { yyval.ttype = NULL_TREE; ;
  3137.     break;}
  3138. case 4:
  3139. #line 302 "cp-parse.y"
  3140. {yyval.ttype = NULL_TREE; ;
  3141.     break;}
  3142. case 5:
  3143. #line 304 "cp-parse.y"
  3144. {yyval.ttype = NULL_TREE; ;
  3145.     break;}
  3146. case 6:
  3147. #line 308 "cp-parse.y"
  3148. { have_extern_spec = 1;
  3149.           used_extern_spec = 0;
  3150.           yyval.ttype = NULL_TREE; ;
  3151.     break;}
  3152. case 7:
  3153. #line 313 "cp-parse.y"
  3154. { have_extern_spec = 0; ;
  3155.     break;}
  3156. case 8:
  3157. #line 317 "cp-parse.y"
  3158. { if (pedantic)
  3159.               pedwarn ("ANSI C++ forbids use of `asm' keyword"); ;
  3160.     break;}
  3161. case 10:
  3162. #line 324 "cp-parse.y"
  3163. { if (pending_inlines) do_pending_inlines (); ;
  3164.     break;}
  3165. case 11:
  3166. #line 326 "cp-parse.y"
  3167. { if (pending_inlines) do_pending_inlines (); ;
  3168.     break;}
  3169. case 12:
  3170. #line 328 "cp-parse.y"
  3171. { if (pending_inlines) do_pending_inlines (); ;
  3172.     break;}
  3173. case 14:
  3174. #line 331 "cp-parse.y"
  3175. { if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
  3176.           assemble_asm (yyvsp[-2].ttype); ;
  3177.     break;}
  3178. case 15:
  3179. #line 334 "cp-parse.y"
  3180. { pop_lang_context (); ;
  3181.     break;}
  3182. case 16:
  3183. #line 336 "cp-parse.y"
  3184. { pop_lang_context (); ;
  3185.     break;}
  3186. case 17:
  3187. #line 338 "cp-parse.y"
  3188. { if (pending_inlines) do_pending_inlines ();
  3189.           pop_lang_context (); ;
  3190.     break;}
  3191. case 18:
  3192. #line 341 "cp-parse.y"
  3193. { if (pending_inlines) do_pending_inlines ();
  3194.           pop_lang_context (); ;
  3195.     break;}
  3196. case 19:
  3197. #line 347 "cp-parse.y"
  3198. { push_lang_context (yyvsp[0].ttype); ;
  3199.     break;}
  3200. case 20:
  3201. #line 352 "cp-parse.y"
  3202. { begin_template_parm_list (); ;
  3203.     break;}
  3204. case 21:
  3205. #line 354 "cp-parse.y"
  3206. { yyval.ttype = end_template_parm_list (yyvsp[-1].ttype); ;
  3207.     break;}
  3208. case 22:
  3209. #line 359 "cp-parse.y"
  3210. { yyval.ttype = process_template_parm (NULL_TREE, yyvsp[0].ttype); ;
  3211.     break;}
  3212. case 23:
  3213. #line 361 "cp-parse.y"
  3214. { yyval.ttype = process_template_parm (yyvsp[-2].ttype, yyvsp[0].ttype); ;
  3215.     break;}
  3216. case 24:
  3217. #line 372 "cp-parse.y"
  3218. {
  3219.           if (yyvsp[-1].ttype != class_type_node)
  3220.             error ("template type parameter must use keyword `class'");
  3221.           yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE);
  3222.         ;
  3223.     break;}
  3224. case 25:
  3225. #line 378 "cp-parse.y"
  3226. {
  3227.           if (yyvsp[-3].ttype != class_type_node)
  3228.             error ("template type parameter must use keyword `class'");
  3229.           warning ("restricted template type parameters not yet implemented");
  3230.           yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype);
  3231.         ;
  3232.     break;}
  3233. case 26:
  3234. #line 385 "cp-parse.y"
  3235. {
  3236.           if (yyvsp[-2].ttype != class_type_node)
  3237.             error ("template type parameter must use keyword `class'");
  3238.           warning ("restricted template type parameters not yet implemented");
  3239.           yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype);
  3240.         ;
  3241.     break;}
  3242. case 28:
  3243. #line 396 "cp-parse.y"
  3244. { warning ("use of `overload' is an anachronism"); ;
  3245.     break;}
  3246. case 29:
  3247. #line 400 "cp-parse.y"
  3248. { declare_overloaded (yyvsp[0].ttype); ;
  3249.     break;}
  3250. case 30:
  3251. #line 402 "cp-parse.y"
  3252. { declare_overloaded (yyvsp[0].ttype); ;
  3253.     break;}
  3254. case 31:
  3255. #line 409 "cp-parse.y"
  3256. { yychar = '{'; goto template1; ;
  3257.     break;}
  3258. case 33:
  3259. #line 412 "cp-parse.y"
  3260. { yychar = '{'; goto template1; ;
  3261.     break;}
  3262. case 35:
  3263. #line 415 "cp-parse.y"
  3264. { yychar = ':'; goto template1; ;
  3265.     break;}
  3266. case 37:
  3267. #line 418 "cp-parse.y"
  3268. {
  3269.           yychar = ':';
  3270.         template1:
  3271.           if (current_aggr == exception_type_node)
  3272.             error ("template type must define an aggregate or union");
  3273.           /* Maybe pedantic warning for union?
  3274.              How about an enum? :-)  */
  3275.           end_template_decl (yyvsp[-2].ttype, yyvsp[-1].ttype, current_aggr);
  3276.           reinit_parse_for_template (yychar, yyvsp[-2].ttype, yyvsp[-1].ttype);
  3277.           yychar = YYEMPTY;
  3278.         ;
  3279.     break;}
  3280. case 39:
  3281. #line 431 "cp-parse.y"
  3282. {
  3283.           end_template_decl (yyvsp[-2].ttype, yyvsp[-1].ttype, current_aggr);
  3284.           /* declare $2 as template name with $1 parm list */
  3285.         ;
  3286.     break;}
  3287. case 40:
  3288. #line 436 "cp-parse.y"
  3289. {
  3290.           end_template_decl (yyvsp[-2].ttype, yyvsp[-1].ttype, current_aggr);
  3291.           /* declare $2 as template name with $1 parm list */
  3292.         ;
  3293.     break;}
  3294. case 41:
  3295. #line 443 "cp-parse.y"
  3296. {
  3297.           tree d;
  3298.           int momentary;
  3299.           momentary = suspend_momentary ();
  3300.           d = start_decl (yyvsp[-4].ttype, /*current_declspecs*/NULL_TREE, 0, yyvsp[-3].ttype);
  3301.           cplus_decl_attributes (d, yyvsp[-1].ttype);
  3302.           finish_decl (d, NULL_TREE, yyvsp[-2].ttype, 0);
  3303.           end_template_decl (yyvsp[-5].ttype, d, 0);
  3304.           if (yyvsp[0].itype != ';')
  3305.             reinit_parse_for_template ((int) yyvsp[0].itype, yyvsp[-5].ttype, d);
  3306.           resume_momentary (momentary);
  3307.         ;
  3308.     break;}
  3309. case 42:
  3310. #line 458 "cp-parse.y"
  3311. {
  3312.           tree d;
  3313.           int momentary;
  3314.  
  3315.           current_declspecs = yyvsp[-5].ttype;
  3316.           momentary = suspend_momentary ();
  3317.           d = start_decl (yyvsp[-4].ttype, current_declspecs,
  3318.                   0, yyvsp[-3].ttype);
  3319.           cplus_decl_attributes (d, yyvsp[-1].ttype);
  3320.           finish_decl (d, NULL_TREE, yyvsp[-2].ttype, 0);
  3321.           end_exception_decls ();
  3322.           end_template_decl (yyvsp[-6].ttype, d, 0);
  3323.           if (yyvsp[0].itype != ';')
  3324.             {
  3325.               reinit_parse_for_template ((int) yyvsp[0].itype, yyvsp[-6].ttype, d);
  3326.               yychar = YYEMPTY;
  3327.             }
  3328.           note_list_got_semicolon (yyvsp[-5].ttype);
  3329.           resume_momentary (momentary);
  3330.         ;
  3331.     break;}
  3332. case 43:
  3333. #line 479 "cp-parse.y"
  3334. {
  3335.           tree d = start_decl (yyvsp[-1].ttype, yyvsp[-2].ttype, 0, NULL_TREE);
  3336.           finish_decl (d, NULL_TREE, NULL_TREE, 0);
  3337.           end_template_decl (yyvsp[-3].ttype, d, 0);
  3338.           if (yyvsp[0].itype != ';')
  3339.             reinit_parse_for_template ((int) yyvsp[0].itype, yyvsp[-3].ttype, d);
  3340.         ;
  3341.     break;}
  3342. case 44:
  3343. #line 487 "cp-parse.y"
  3344. { end_template_decl (yyvsp[-2].ttype, 0, 0); ;
  3345.     break;}
  3346. case 45:
  3347. #line 488 "cp-parse.y"
  3348. { end_template_decl (yyvsp[-2].ttype, 0, 0); ;
  3349.     break;}
  3350. case 46:
  3351. #line 491 "cp-parse.y"
  3352. { yyval.itype = '{'; ;
  3353.     break;}
  3354. case 47:
  3355. #line 492 "cp-parse.y"
  3356. { yyval.itype = ':'; ;
  3357.     break;}
  3358. case 48:
  3359. #line 493 "cp-parse.y"
  3360. { yyval.itype = ';'; ;
  3361.     break;}
  3362. case 49:
  3363. #line 494 "cp-parse.y"
  3364. { yyval.itype = '='; ;
  3365.     break;}
  3366. case 50:
  3367. #line 495 "cp-parse.y"
  3368. { yyval.itype = RETURN; ;
  3369.     break;}
  3370. case 51:
  3371. #line 500 "cp-parse.y"
  3372. { if (pedantic)
  3373.             pedwarn ("ANSI C++ forbids data definition with no type or storage class");
  3374.             else if (! flag_traditional && ! have_extern_spec)
  3375.               warning ("data definition has no type or storage class"); ;
  3376.     break;}
  3377. case 52:
  3378. #line 505 "cp-parse.y"
  3379. {;
  3380.     break;}
  3381. case 53:
  3382. #line 508 "cp-parse.y"
  3383. { tree d;
  3384.           d = start_decl (yyvsp[-1].ttype, yyval.ttype, 0, NULL_TREE);
  3385.           finish_decl (d, NULL_TREE, NULL_TREE, 0);
  3386.         ;
  3387.     break;}
  3388. case 54:
  3389. #line 513 "cp-parse.y"
  3390. {
  3391.           end_exception_decls ();
  3392.           note_list_got_semicolon (yyval.ttype);
  3393.         ;
  3394.     break;}
  3395. case 55:
  3396. #line 519 "cp-parse.y"
  3397. { tree d;
  3398.           d = start_decl (yyvsp[-1].ttype, yyval.ttype, 0, NULL_TREE);
  3399.           finish_decl (d, NULL_TREE, NULL_TREE, 0);
  3400.           end_exception_decls ();
  3401.           note_list_got_semicolon (yyval.ttype);
  3402.         ;
  3403.     break;}
  3404. case 56:
  3405. #line 526 "cp-parse.y"
  3406. { pedwarn ("empty declaration"); ;
  3407.     break;}
  3408. case 57:
  3409. #line 528 "cp-parse.y"
  3410. {
  3411.         tree t = yyval.ttype;
  3412.         shadow_tag (t);
  3413.         if (TREE_CODE (t) == TREE_LIST
  3414.         && TREE_PURPOSE (t) == NULL_TREE)
  3415.           {
  3416.         t = TREE_VALUE (t);
  3417.         if (TREE_CODE (t) == RECORD_TYPE
  3418.             && TYPE_SIZE (t)
  3419.             && CLASSTYPE_USE_TEMPLATE (t) == 0)
  3420.           CLASSTYPE_USE_TEMPLATE (t) = 2;
  3421.         else if (TREE_CODE (t) == ENUMERAL_TYPE
  3422.              && !TYPE_SIZE (t))
  3423.           cp_error ("forward declaration of `%#T'", t);
  3424.           }
  3425.         note_list_got_semicolon (yyval.ttype);
  3426.       ;
  3427.     break;}
  3428. case 61:
  3429. #line 552 "cp-parse.y"
  3430. {
  3431.           finish_function (lineno, 1);
  3432.           /* finish_function performs these three statements:
  3433.  
  3434.              expand_end_bindings (getdecls (), 1, 0);
  3435.              poplevel (1, 1, 0);
  3436.  
  3437.              expand_end_bindings (0, 0, 0);
  3438.              poplevel (0, 0, 1);
  3439.              */
  3440.           if (yyval.ttype) process_next_inline (yyval.ttype);
  3441.         ;
  3442.     break;}
  3443. case 62:
  3444. #line 565 "cp-parse.y"
  3445. {
  3446.           finish_function (lineno, 1);
  3447.           /* finish_function performs these three statements:
  3448.  
  3449.              expand_end_bindings (getdecls (), 1, 0);
  3450.              poplevel (1, 1, 0);
  3451.  
  3452.              expand_end_bindings (0, 0, 0);
  3453.              poplevel (0, 0, 1);
  3454.              */
  3455.           if (yyval.ttype) process_next_inline (yyval.ttype);
  3456.         ;
  3457.     break;}
  3458. case 63:
  3459. #line 578 "cp-parse.y"
  3460. { finish_function (lineno, 0);
  3461.           if (yyval.ttype) process_next_inline (yyval.ttype); ;
  3462.     break;}
  3463. case 64:
  3464. #line 581 "cp-parse.y"
  3465. { finish_function (lineno, 0);
  3466.           if (yyval.ttype) process_next_inline (yyval.ttype); ;
  3467.     break;}
  3468. case 65:
  3469. #line 584 "cp-parse.y"
  3470. { finish_function (lineno, 0);
  3471.           if (yyval.ttype) process_next_inline (yyval.ttype); ;
  3472.     break;}
  3473. case 66:
  3474. #line 587 "cp-parse.y"
  3475. {;
  3476.     break;}
  3477. case 67:
  3478. #line 589 "cp-parse.y"
  3479. {;
  3480.     break;}
  3481. case 68:
  3482. #line 591 "cp-parse.y"
  3483. {;
  3484.     break;}
  3485. case 69:
  3486. #line 596 "cp-parse.y"
  3487. { if (! start_function (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype, 0))
  3488.             YYERROR1;
  3489.           reinit_parse_for_function ();
  3490.           yyval.ttype = NULL_TREE; ;
  3491.     break;}
  3492. case 70:
  3493. #line 601 "cp-parse.y"
  3494. { if (! start_function (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype, 0))
  3495.             YYERROR1;
  3496.           reinit_parse_for_function ();
  3497.           yyval.ttype = NULL_TREE; ;
  3498.     break;}
  3499. case 71:
  3500. #line 606 "cp-parse.y"
  3501. { if (! start_function (NULL_TREE, yyval.ttype, yyvsp[0].ttype, 0))
  3502.             YYERROR1;
  3503.           reinit_parse_for_function ();
  3504.           yyval.ttype = NULL_TREE; ;
  3505.     break;}
  3506. case 72:
  3507. #line 611 "cp-parse.y"
  3508. { if (! start_function (NULL_TREE, build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype), yyvsp[0].ttype, 0))
  3509.             YYERROR1;
  3510.           reinit_parse_for_function ();
  3511.           yyval.ttype = NULL_TREE; ;
  3512.     break;}
  3513. case 73:
  3514. #line 616 "cp-parse.y"
  3515. { if (! start_function (NULL_TREE, build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype), yyvsp[0].ttype, 0))
  3516.             YYERROR1;
  3517.           reinit_parse_for_function ();
  3518.           yyval.ttype = NULL_TREE; ;
  3519.     break;}
  3520. case 74:
  3521. #line 621 "cp-parse.y"
  3522. { if (! start_function (NULL_TREE, build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[-1].ttype), yyvsp[0].ttype, 0))
  3523.             YYERROR1;
  3524.           reinit_parse_for_function ();
  3525.           yyval.ttype = NULL_TREE; ;
  3526.     break;}
  3527. case 75:
  3528. #line 626 "cp-parse.y"
  3529. { if (! start_function (NULL_TREE, build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[-1].ttype), yyvsp[0].ttype, 0))
  3530.             YYERROR1;
  3531.           reinit_parse_for_function ();
  3532.           yyval.ttype = NULL_TREE; ;
  3533.     break;}
  3534. case 76:
  3535. #line 631 "cp-parse.y"
  3536. { start_function (NULL_TREE, TREE_VALUE (yyval.ttype), NULL_TREE, 1);
  3537.           reinit_parse_for_function (); ;
  3538.     break;}
  3539. case 77:
  3540. #line 638 "cp-parse.y"
  3541. {
  3542.           tree decl = build_parse_node (CALL_EXPR, TREE_VALUE (yyval.ttype), yyvsp[-3].ttype, yyvsp[-1].ttype);
  3543.           yyval.ttype = start_method (TREE_CHAIN (yyval.ttype), decl, yyvsp[0].ttype);
  3544.           if (! yyval.ttype)
  3545.             YYERROR1;
  3546.           if (yychar == YYEMPTY)
  3547.             yychar = YYLEX;
  3548.           reinit_parse_for_method (yychar, yyval.ttype); ;
  3549.     break;}
  3550. case 78:
  3551. #line 647 "cp-parse.y"
  3552. {
  3553.           tree decl = build_parse_node (CALL_EXPR, TREE_VALUE (yyval.ttype), empty_parms (), yyvsp[-1].ttype);
  3554.           yyval.ttype = start_method (TREE_CHAIN (yyval.ttype), decl, yyvsp[0].ttype);
  3555.           if (! yyval.ttype)
  3556.             YYERROR1;
  3557.           if (yychar == YYEMPTY)
  3558.             yychar = YYLEX;
  3559.           reinit_parse_for_method (yychar, yyval.ttype); ;
  3560.     break;}
  3561. case 79:
  3562. #line 656 "cp-parse.y"
  3563. { yyval.ttype = start_method (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
  3564.           if (! yyval.ttype)
  3565.             YYERROR1;
  3566.           if (yychar == YYEMPTY)
  3567.             yychar = YYLEX;
  3568.           reinit_parse_for_method (yychar, yyval.ttype); ;
  3569.     break;}
  3570. case 80:
  3571. #line 663 "cp-parse.y"
  3572. {
  3573.           tree decl = build_parse_node (CALL_EXPR, TREE_VALUE (yyval.ttype), yyvsp[-3].ttype, yyvsp[-1].ttype);
  3574.           yyval.ttype = start_method (TREE_CHAIN (yyval.ttype), decl, yyvsp[0].ttype);
  3575.           if (! yyval.ttype)
  3576.             YYERROR1;
  3577.           if (yychar == YYEMPTY)
  3578.             yychar = YYLEX;
  3579.           reinit_parse_for_method (yychar, yyval.ttype); ;
  3580.     break;}
  3581. case 81:
  3582. #line 672 "cp-parse.y"
  3583. {
  3584.           tree decl = build_parse_node (CALL_EXPR, TREE_VALUE (yyval.ttype), empty_parms (), yyvsp[-1].ttype);
  3585.           yyval.ttype = start_method (TREE_CHAIN (yyval.ttype), decl, yyvsp[0].ttype);
  3586.           if (! yyval.ttype)
  3587.             YYERROR1;
  3588.           if (yychar == YYEMPTY)
  3589.             yychar = YYLEX;
  3590.           reinit_parse_for_method (yychar, yyval.ttype); ;
  3591.     break;}
  3592. case 82:
  3593. #line 681 "cp-parse.y"
  3594. { yyval.ttype = start_method (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
  3595.           if (! yyval.ttype)
  3596.             YYERROR1;
  3597.           if (yychar == YYEMPTY)
  3598.             yychar = YYLEX;
  3599.           reinit_parse_for_method (yychar, yyval.ttype); ;
  3600.     break;}
  3601. case 83:
  3602. #line 688 "cp-parse.y"
  3603. { yyval.ttype = start_method (NULL_TREE, yyval.ttype, yyvsp[0].ttype);
  3604.           if (! yyval.ttype)
  3605.             YYERROR1;
  3606.           if (yychar == YYEMPTY)
  3607.             yychar = YYLEX;
  3608.           reinit_parse_for_method (yychar, yyval.ttype); ;
  3609.     break;}
  3610. case 84:
  3611. #line 697 "cp-parse.y"
  3612. {
  3613.           if (! current_function_parms_stored)
  3614.             store_parm_decls ();
  3615.           yyval.ttype = yyvsp[0].ttype;
  3616.         ;
  3617.     break;}
  3618. case 85:
  3619. #line 705 "cp-parse.y"
  3620. { store_return_init (yyval.ttype, NULL_TREE); ;
  3621.     break;}
  3622. case 86:
  3623. #line 707 "cp-parse.y"
  3624. { store_return_init (yyval.ttype, yyvsp[0].ttype); ;
  3625.     break;}
  3626. case 87:
  3627. #line 709 "cp-parse.y"
  3628. { store_return_init (yyval.ttype, yyvsp[-1].ttype); ;
  3629.     break;}
  3630. case 88:
  3631. #line 711 "cp-parse.y"
  3632. { store_return_init (yyval.ttype, NULL_TREE); ;
  3633.     break;}
  3634. case 89:
  3635. #line 716 "cp-parse.y"
  3636. {
  3637.           if (yyvsp[0].itype == 0)
  3638.             error ("no base initializers given following ':'");
  3639.           setup_vtbl_ptr ();
  3640.           /* Always keep the BLOCK node associated with the outermost
  3641.              pair of curley braces of a function.  These are needed
  3642.              for correct operation of dwarfout.c.  */
  3643.           keep_next_level ();
  3644.         ;
  3645.     break;}
  3646. case 90:
  3647. #line 729 "cp-parse.y"
  3648. {
  3649.           if (! current_function_parms_stored)
  3650.             store_parm_decls ();
  3651.  
  3652.           /* Flag that we are processing base and member initializers.  */
  3653.           current_vtable_decl = error_mark_node;
  3654.  
  3655.           if (DECL_CONSTRUCTOR_P (current_function_decl))
  3656.             {
  3657.               /* Make a contour for the initializer list.  */
  3658.               pushlevel (0);
  3659.               clear_last_expr ();
  3660.               expand_start_bindings (0);
  3661.             }
  3662.           else if (current_class_type == NULL_TREE)
  3663.             error ("base initializers not allowed for non-member functions");
  3664.           else if (! DECL_CONSTRUCTOR_P (current_function_decl))
  3665.             error ("only constructors take base initializers");
  3666.         ;
  3667.     break;}
  3668. case 91:
  3669. #line 752 "cp-parse.y"
  3670. { yyval.itype = 0; ;
  3671.     break;}
  3672. case 92:
  3673. #line 754 "cp-parse.y"
  3674. { yyval.itype = 1; ;
  3675.     break;}
  3676. case 95:
  3677. #line 760 "cp-parse.y"
  3678. {
  3679.           if (current_class_name && !flag_traditional)
  3680.             pedwarn ("ANSI C++ forbids old style base class initialization",
  3681.                  IDENTIFIER_POINTER (current_class_name));
  3682.           expand_member_init (C_C_D, NULL_TREE, yyvsp[-1].ttype);
  3683.         ;
  3684.     break;}
  3685. case 96:
  3686. #line 767 "cp-parse.y"
  3687. {
  3688.           if (current_class_name && !flag_traditional)
  3689.             pedwarn ("ANSI C++ forbids old style base class initialization",
  3690.                  IDENTIFIER_POINTER (current_class_name));
  3691.           expand_member_init (C_C_D, NULL_TREE, void_type_node);
  3692.         ;
  3693.     break;}
  3694. case 97:
  3695. #line 774 "cp-parse.y"
  3696. {
  3697.           expand_member_init (C_C_D, yyval.ttype, yyvsp[-1].ttype);
  3698.         ;
  3699.     break;}
  3700. case 98:
  3701. #line 778 "cp-parse.y"
  3702. { expand_member_init (C_C_D, yyval.ttype, void_type_node); ;
  3703.     break;}
  3704. case 99:
  3705. #line 780 "cp-parse.y"
  3706. { expand_member_init (C_C_D, yyval.ttype, yyvsp[-1].ttype); ;
  3707.     break;}
  3708. case 100:
  3709. #line 782 "cp-parse.y"
  3710. { expand_member_init (C_C_D, yyval.ttype, void_type_node); ;
  3711.     break;}
  3712. case 101:
  3713. #line 784 "cp-parse.y"
  3714. { expand_member_init (C_C_D, yyval.ttype, yyvsp[-1].ttype); ;
  3715.     break;}
  3716. case 102:
  3717. #line 786 "cp-parse.y"
  3718. { expand_member_init (C_C_D, yyval.ttype, void_type_node); ;
  3719.     break;}
  3720. case 103:
  3721. #line 788 "cp-parse.y"
  3722. {
  3723.           do_member_init (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype);
  3724.         ;
  3725.     break;}
  3726. case 104:
  3727. #line 792 "cp-parse.y"
  3728. {
  3729.           do_member_init (yyval.ttype, yyvsp[-1].ttype, void_type_node);
  3730.         ;
  3731.     break;}
  3732. case 114:
  3733. #line 816 "cp-parse.y"
  3734. { yyval.ttype = build_parse_node (BIT_NOT_EXPR,yyvsp[0].ttype);;
  3735.     break;}
  3736. case 116:
  3737. #line 822 "cp-parse.y"
  3738. {
  3739.             extern tree template_type_seen_before_scope;
  3740.  
  3741.           if (yyvsp[0].ttype) 
  3742.             yyval.ttype = yyvsp[0].ttype;
  3743.           else if (yyval.ttype != error_mark_node)
  3744.             yyval.ttype = IDENTIFIER_TYPE_VALUE (yyval.ttype);
  3745.           /* This is a kludge: In order to detect nested types inside
  3746.            * template classes, we have to tell the lexer that it should
  3747.            * try to replace a following SCOPE token with the correct
  3748.            * SCOPED_TYPENAME for the nested type.  This SCOPED_TYPENAME
  3749.            * token will be handled in the rule "scoped_typename".
  3750.            * - niklas@appli.se */
  3751.           if (yychar == SCOPE)
  3752.             {
  3753.               /* We set template_type_seen_before_scope to be
  3754.              an error_mark_node so we can avoid meaningless
  3755.              and unhelpful syntax errors later.  */
  3756.               if (yyval.ttype != error_mark_node)
  3757.             template_type_seen_before_scope = TYPE_IDENTIFIER (yyval.ttype);
  3758.               else
  3759.             template_type_seen_before_scope = error_mark_node;
  3760.               yychar = YYLEX;
  3761.             }
  3762.         ;
  3763.     break;}
  3764. case 117:
  3765. #line 851 "cp-parse.y"
  3766. { yyval.ttype = lookup_template_class (yyval.ttype, yyvsp[-1].ttype, NULL_TREE); ;
  3767.     break;}
  3768. case 118:
  3769. #line 853 "cp-parse.y"
  3770. { yyval.ttype = lookup_template_class (yyval.ttype, yyvsp[-1].ttype, NULL_TREE); ;
  3771.     break;}
  3772. case 119:
  3773. #line 859 "cp-parse.y"
  3774. { yyungetc ('{', 1); yyval.ttype = 0; ;
  3775.     break;}
  3776. case 120:
  3777. #line 860 "cp-parse.y"
  3778. { yyungetc (':', 1); yyval.ttype = 0; ;
  3779.     break;}
  3780. case 121:
  3781. #line 862 "cp-parse.y"
  3782. { yyval.ttype = instantiate_class_template (yyvsp[0].ttype, 1); ;
  3783.     break;}
  3784. case 122:
  3785. #line 867 "cp-parse.y"
  3786. { yyval.ttype = instantiate_class_template (yyvsp[0].ttype, 1); ;
  3787.     break;}
  3788. case 123:
  3789. #line 872 "cp-parse.y"
  3790. { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
  3791.     break;}
  3792. case 124:
  3793. #line 874 "cp-parse.y"
  3794. { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
  3795.     break;}
  3796. case 125:
  3797. #line 879 "cp-parse.y"
  3798. { yyval.ttype = groktypename (yyval.ttype); ;
  3799.     break;}
  3800. case 127:
  3801. #line 885 "cp-parse.y"
  3802. {
  3803.           tree t, decl, id, tmpl;
  3804.  
  3805.           id = TREE_VALUE (yyvsp[-1].ttype);
  3806.           tmpl = TREE_PURPOSE (IDENTIFIER_TEMPLATE (id));
  3807.           t = xref_tag (DECL_TEMPLATE_INFO (tmpl)->aggr, id, yyvsp[0].ttype);
  3808.           set_current_level_tags_transparency (1);
  3809.           my_friendly_assert (TREE_CODE (t) == RECORD_TYPE
  3810.                       || TREE_CODE (t) == UNION_TYPE, 257);
  3811.           yyval.ttype = t;
  3812.  
  3813.           /* Now, put a copy of the decl in global scope, to avoid
  3814.              recursive expansion.  */
  3815.           decl = IDENTIFIER_LOCAL_VALUE (id);
  3816.           if (!decl)
  3817.             decl = IDENTIFIER_CLASS_VALUE (id);
  3818.           /* Now, put a copy of the decl in global scope, to avoid
  3819.              recursive expansion.  */
  3820.                   if (decl)
  3821.                     {
  3822.               /* Need to copy it to clear the chain pointer,
  3823.              and need to get it into permanent storage.  */
  3824.                       my_friendly_assert (TREE_CODE (decl) == TYPE_DECL, 258);
  3825.               push_obstacks (&permanent_obstack, &permanent_obstack);
  3826.                       decl = copy_node (decl);
  3827.               if (DECL_LANG_SPECIFIC (decl))
  3828.             copy_lang_decl (decl);
  3829.               pop_obstacks ();
  3830.               pushdecl_top_level (decl);
  3831.             }
  3832.         ;
  3833.     break;}
  3834. case 128:
  3835. #line 917 "cp-parse.y"
  3836. {
  3837.           yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-1].ttype, 0);
  3838.  
  3839.           pop_obstacks ();
  3840.           end_template_instantiation (yyvsp[-5].ttype, yyvsp[-3].ttype);
  3841.  
  3842.                   /* Now go after the methods & class data.  */
  3843.                   instantiate_member_templates (yyvsp[-5].ttype);
  3844.  
  3845.           pop_tinst_level();
  3846.  
  3847.           CLASSTYPE_GOT_SEMICOLON (yyval.ttype) = 1;
  3848.         ;
  3849.     break;}
  3850. case 129:
  3851. #line 934 "cp-parse.y"
  3852. { yyval.ttype = NULL_TREE; ;
  3853.     break;}
  3854. case 130:
  3855. #line 936 "cp-parse.y"
  3856. { yyval.ttype = yyvsp[0].ttype; ;
  3857.     break;}
  3858. case 131:
  3859. #line 941 "cp-parse.y"
  3860. { yyval.ttype = NULL_TREE; /* never used from here... */;
  3861.     break;}
  3862. case 132:
  3863. #line 943 "cp-parse.y"
  3864. { yyval.ttype = yyvsp[-1].ttype; /*???*/ ;
  3865.     break;}
  3866. case 133:
  3867. #line 947 "cp-parse.y"
  3868. { yyval.code = NEGATE_EXPR; ;
  3869.     break;}
  3870. case 134:
  3871. #line 949 "cp-parse.y"
  3872. { yyval.code = CONVERT_EXPR; ;
  3873.     break;}
  3874. case 135:
  3875. #line 951 "cp-parse.y"
  3876. { yyval.code = PREINCREMENT_EXPR; ;
  3877.     break;}
  3878. case 136:
  3879. #line 953 "cp-parse.y"
  3880. { yyval.code = PREDECREMENT_EXPR; ;
  3881.     break;}
  3882. case 137:
  3883. #line 955 "cp-parse.y"
  3884. { yyval.code = TRUTH_NOT_EXPR; ;
  3885.     break;}
  3886. case 138:
  3887. #line 959 "cp-parse.y"
  3888. { yyval.ttype = build_x_compound_expr (yyval.ttype); ;
  3889.     break;}
  3890. case 140:
  3891. #line 966 "cp-parse.y"
  3892. { error ("ANSI C++ forbids an empty condition for `%s'",
  3893.              cond_stmt_keyword);
  3894.           yyval.ttype = integer_zero_node; ;
  3895.     break;}
  3896. case 141:
  3897. #line 970 "cp-parse.y"
  3898. { yyval.ttype = yyvsp[-1].ttype; ;
  3899.     break;}
  3900. case 142:
  3901. #line 975 "cp-parse.y"
  3902. { error ("ANSI C++ forbids an empty condition for `%s'",
  3903.              cond_stmt_keyword);
  3904.           yyval.ttype = integer_zero_node; ;
  3905.     break;}
  3906. case 143:
  3907. #line 979 "cp-parse.y"
  3908. { yyval.ttype = yyvsp[-1].ttype; ;
  3909.     break;}
  3910. case 144:
  3911. #line 984 "cp-parse.y"
  3912. { yyval.ttype = NULL_TREE; ;
  3913.     break;}
  3914. case 146:
  3915. #line 987 "cp-parse.y"
  3916. { yyval.ttype = NULL_TREE; ;
  3917.     break;}
  3918. case 147:
  3919. #line 992 "cp-parse.y"
  3920. { {
  3921.           tree d;
  3922.           for (d = getdecls (); d; d = TREE_CHAIN (d))
  3923.             if (TREE_CODE (d) == TYPE_DECL) {
  3924.               tree s = TREE_TYPE (d);
  3925.               if (TREE_CODE (s) == RECORD_TYPE)
  3926.             cp_error ("definition of class `%T' in condition", s);
  3927.               else if (TREE_CODE (s) == ENUMERAL_TYPE)
  3928.             cp_error ("definition of enum `%T' in condition", s);
  3929.             }
  3930.           }
  3931.           current_declspecs = yyvsp[-5].ttype;
  3932.           yyvsp[0].itype = suspend_momentary ();
  3933.           yyval.ttype = start_decl (yyvsp[-4].ttype, current_declspecs, 1, yyvsp[-3].ttype);
  3934.           cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype);
  3935.         ;
  3936.     break;}
  3937. case 148:
  3938. #line 1009 "cp-parse.y"
  3939.           finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-3].ttype, 0);
  3940.           resume_momentary (yyvsp[-2].itype);
  3941.           yyval.ttype = yyvsp[-1].ttype; 
  3942.           if (TREE_CODE (TREE_TYPE (yyval.ttype)) == ARRAY_TYPE)
  3943.             cp_error ("definition of array `%#D' in condition", yyval.ttype); 
  3944.         ;
  3945.     break;}
  3946. case 150:
  3947. #line 1022 "cp-parse.y"
  3948. { tree d = getdecls ();
  3949.           emit_line_note (input_filename, lineno);
  3950.           pushlevel (0);
  3951.           clear_last_expr ();
  3952.           push_momentary ();
  3953.           expand_start_bindings (0);
  3954.           if (d) pushdecl (d);
  3955.             ;
  3956.     break;}
  3957. case 151:
  3958. #line 1035 "cp-parse.y"
  3959. { pop_implicit_try_blocks (NULL_TREE);
  3960.           expand_end_bindings (getdecls (), kept_level_p (), 1);
  3961.           yyval.ttype = poplevel (kept_level_p (), 1, 0);
  3962.           pop_momentary (); 
  3963.           finish_stmt (); ;
  3964.     break;}
  3965. case 152:
  3966. #line 1041 "cp-parse.y"
  3967. { pop_implicit_try_blocks (NULL_TREE);
  3968.           expand_end_bindings (getdecls (), kept_level_p (), 1);
  3969.           yyval.ttype = poplevel (kept_level_p (), 1, 0);
  3970.           pop_momentary (); 
  3971.           finish_stmt (); ;
  3972.     break;}
  3973. case 153:
  3974. #line 1047 "cp-parse.y"
  3975. { pop_implicit_try_blocks (NULL_TREE);
  3976.           expand_end_bindings (getdecls (), kept_level_p (), 1);
  3977.           yyval.ttype = poplevel (kept_level_p (), 0, 0);
  3978.           pop_momentary (); 
  3979.           finish_stmt (); ;
  3980.     break;}
  3981. case 154:
  3982. #line 1053 "cp-parse.y"
  3983. { pop_implicit_try_blocks (NULL_TREE);
  3984.           expand_end_bindings (getdecls (), kept_level_p (), 1);
  3985.           yyval.ttype = poplevel (kept_level_p (), 1, 0);
  3986.           pop_momentary (); ;
  3987.     break;}
  3988. case 155:
  3989. #line 1061 "cp-parse.y"
  3990. { finish_stmt (); ;
  3991.     break;}
  3992. case 156:
  3993. #line 1063 "cp-parse.y"
  3994. { finish_stmt (); ;
  3995.     break;}
  3996. case 157:
  3997. #line 1065 "cp-parse.y"
  3998. { finish_stmt (); ;
  3999.     break;}
  4000. case 159:
  4001. #line 1071 "cp-parse.y"
  4002. { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
  4003.     break;}
  4004. case 160:
  4005. #line 1073 "cp-parse.y"
  4006. { chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
  4007.     break;}
  4008. case 161:
  4009. #line 1075 "cp-parse.y"
  4010. { chainon (yyval.ttype, build_tree_list (NULL_TREE, error_mark_node)); ;
  4011.     break;}
  4012. case 162:
  4013. #line 1080 "cp-parse.y"
  4014. {
  4015.           if (TREE_CODE (yyval.ttype) == TYPE_EXPR)
  4016.             yyval.ttype = build_component_type_expr (C_C_D, yyval.ttype, NULL_TREE, 1);
  4017.         ;
  4018.     break;}
  4019. case 163:
  4020. #line 1086 "cp-parse.y"
  4021. { yyvsp[0].itype = pedantic;
  4022.           pedantic = 0; ;
  4023.     break;}
  4024. case 164:
  4025. #line 1089 "cp-parse.y"
  4026. { yyval.ttype = yyvsp[0].ttype;
  4027.           pedantic = yyvsp[-2].itype; ;
  4028.     break;}
  4029. case 165:
  4030. #line 1092 "cp-parse.y"
  4031. { yyval.ttype = build_x_indirect_ref (yyvsp[0].ttype, "unary *"); ;
  4032.     break;}
  4033. case 166:
  4034. #line 1094 "cp-parse.y"
  4035. { yyval.ttype = build_x_unary_op (ADDR_EXPR, yyvsp[0].ttype); ;
  4036.     break;}
  4037. case 167:
  4038. #line 1096 "cp-parse.y"
  4039. { yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, yyvsp[0].ttype); ;
  4040.     break;}
  4041. case 168:
  4042. #line 1098 "cp-parse.y"
  4043. { yyval.ttype = build_x_unary_op ((enum tree_code) yyval.ttype, yyvsp[0].ttype);
  4044.           if (yyvsp[-1].code == NEGATE_EXPR && TREE_CODE (yyvsp[0].ttype) == INTEGER_CST)
  4045.             TREE_NEGATED_INT (yyval.ttype) = 1;
  4046.           overflow_warning (yyval.ttype);
  4047.         ;
  4048.     break;}
  4049. case 169:
  4050. #line 1105 "cp-parse.y"
  4051. { tree label = lookup_label (yyvsp[0].ttype);
  4052.           if (label == NULL_TREE)
  4053.             yyval.ttype = null_pointer_node;
  4054.           else
  4055.             {
  4056.               TREE_USED (label) = 1;
  4057.               yyval.ttype = build1 (ADDR_EXPR, ptr_type_node, label);
  4058.               TREE_CONSTANT (yyval.ttype) = 1;
  4059.             }
  4060.         ;
  4061.     break;}
  4062. case 170:
  4063. #line 1116 "cp-parse.y"
  4064. { if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF
  4065.               && DECL_BIT_FIELD (TREE_OPERAND (yyvsp[0].ttype, 1)))
  4066.             error ("sizeof applied to a bit-field");
  4067.           /* ANSI says arrays and functions are converted inside comma.
  4068.              But we can't really convert them in build_compound_expr
  4069.              because that would break commas in lvalues.
  4070.              So do the conversion here if operand was a comma.  */
  4071.           if (TREE_CODE (yyvsp[0].ttype) == COMPOUND_EXPR
  4072.               && (TREE_CODE (TREE_TYPE (yyvsp[0].ttype)) == ARRAY_TYPE
  4073.               || TREE_CODE (TREE_TYPE (yyvsp[0].ttype)) == FUNCTION_TYPE))
  4074.             yyvsp[0].ttype = default_conversion (yyvsp[0].ttype);
  4075.           else if (TREE_CODE (yyvsp[0].ttype) == TREE_LIST)
  4076.                 {
  4077.               tree t = TREE_VALUE (yyvsp[0].ttype);
  4078.               if (t != NULL_TREE
  4079.               && TREE_CODE (TREE_TYPE (t)) == FUNCTION_TYPE)
  4080.             pedwarn ("ANSI C++ forbids using sizeof() on a function");
  4081.             }
  4082.           yyval.ttype = c_sizeof (TREE_TYPE (yyvsp[0].ttype)); ;
  4083.     break;}
  4084. case 171:
  4085. #line 1136 "cp-parse.y"
  4086. { yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ttype)); ;
  4087.     break;}
  4088. case 172:
  4089. #line 1138 "cp-parse.y"
  4090. { yyval.ttype = grok_alignof (yyvsp[0].ttype); ;
  4091.     break;}
  4092. case 173:
  4093. #line 1140 "cp-parse.y"
  4094. { yyval.ttype = c_alignof (groktypename (yyvsp[-1].ttype)); ;
  4095.     break;}
  4096. case 174:
  4097. #line 1143 "cp-parse.y"
  4098. { yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE, yyval.ttype != NULL_TREE); ;
  4099.     break;}
  4100. case 175:
  4101. #line 1145 "cp-parse.y"
  4102. { yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE, yyval.ttype != NULL_TREE); ;
  4103.     break;}
  4104. case 176:
  4105. #line 1147 "cp-parse.y"
  4106. { yyval.ttype = build_new (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyval.ttype != NULL_TREE); ;
  4107.     break;}
  4108. case 177:
  4109. #line 1149 "cp-parse.y"
  4110. { cp_error ("`%T' is not a valid expression", yyvsp[-1].ttype);
  4111.           yyval.ttype = error_mark_node; ;
  4112.     break;}
  4113. case 178:
  4114. #line 1152 "cp-parse.y"
  4115. { yyval.ttype = build_new (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyval.ttype != NULL_TREE); ;
  4116.     break;}
  4117. case 179:
  4118. #line 1154 "cp-parse.y"
  4119. { yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE, yyval.ttype != NULL_TREE); ;
  4120.     break;}
  4121. case 180:
  4122. #line 1156 "cp-parse.y"
  4123. { yyval.ttype = build_new (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE, yyval.ttype != NULL_TREE); ;
  4124.     break;}
  4125. case 181:
  4126. #line 1158 "cp-parse.y"
  4127. { yyval.ttype = build_new (yyvsp[-3].ttype, yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype != NULL_TREE); ;
  4128.     break;}
  4129. case 182:
  4130. #line 1160 "cp-parse.y"
  4131. { yyval.ttype = build_new (yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype != NULL_TREE); ;
  4132.     break;}
  4133. case 183:
  4134. #line 1168 "cp-parse.y"
  4135. {
  4136.           tree absdcl, typename;
  4137.  
  4138.         illegal_new_array:
  4139.           absdcl = build_parse_node (ARRAY_REF, yyvsp[-4].ttype, yyvsp[-1].ttype);
  4140.           typename = build_decl_list (yyvsp[-5].ttype, absdcl);
  4141.           pedwarn ("ANSI C++ forbids array dimensions with parenthesized type");
  4142.           yyval.ttype = build_new (yyvsp[-7].ttype, typename, NULL_TREE, yyval.ttype != NULL_TREE);
  4143.         ;
  4144.     break;}
  4145. case 184:
  4146. #line 1178 "cp-parse.y"
  4147. { goto illegal_new_array; ;
  4148.     break;}
  4149. case 185:
  4150. #line 1181 "cp-parse.y"
  4151. { yyval.ttype = build_new (yyvsp[-4].ttype, build_decl_list (yyvsp[-2].ttype, yyvsp[-1].ttype), NULL_TREE, yyval.ttype != NULL_TREE); ;
  4152.     break;}
  4153. case 186:
  4154. #line 1183 "cp-parse.y"
  4155. { yyval.ttype = build_new (yyvsp[-5].ttype, build_decl_list (yyvsp[-2].ttype, yyvsp[-1].ttype), NULL_TREE, yyval.ttype != NULL_TREE); ;
  4156.     break;}
  4157. case 187:
  4158. #line 1185 "cp-parse.y"
  4159. { yyval.ttype = build_new (yyvsp[-4].ttype, build_decl_list (yyvsp[-2].ttype, yyvsp[-1].ttype), NULL_TREE, yyval.ttype != NULL_TREE); ;
  4160.     break;}
  4161. case 188:
  4162. #line 1187 "cp-parse.y"
  4163. { yyval.ttype = build_new (yyvsp[-5].ttype, build_decl_list (yyvsp[-2].ttype, yyvsp[-1].ttype), NULL_TREE, yyval.ttype != NULL_TREE); ;
  4164.     break;}
  4165. case 189:
  4166. #line 1190 "cp-parse.y"
  4167. { yyungetc (':', 1); yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE, yyval.ttype != NULL_TREE); ;
  4168.     break;}
  4169. case 190:
  4170. #line 1192 "cp-parse.y"
  4171. { yyungetc (':', 1); yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE, yyval.ttype != NULL_TREE); ;
  4172.     break;}
  4173. case 191:
  4174. #line 1195 "cp-parse.y"
  4175. { yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 0); ;
  4176.     break;}
  4177. case 192:
  4178. #line 1197 "cp-parse.y"
  4179. { yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 1);
  4180.           if (yychar == YYEMPTY)
  4181.             yychar = YYLEX; ;
  4182.     break;}
  4183. case 193:
  4184. #line 1201 "cp-parse.y"
  4185. { yyval.ttype = delete_sanity (yyvsp[0].ttype, yyvsp[-2].ttype, 2);
  4186.           if (yychar == YYEMPTY)
  4187.             yychar = YYLEX; ;
  4188.     break;}
  4189. case 195:
  4190. #line 1209 "cp-parse.y"
  4191. { tree type = groktypename (yyvsp[-2].ttype);
  4192.           yyval.ttype = build_c_cast (type, yyvsp[0].ttype); ;
  4193.     break;}
  4194. case 196:
  4195. #line 1212 "cp-parse.y"
  4196. { tree type = groktypename (yyvsp[-5].ttype);
  4197.           tree init = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype));
  4198.           if (pedantic)
  4199.             pedwarn ("ANSI C++ forbids constructor-expressions");
  4200.           /* Indicate that this was a GNU C constructor expression.  */
  4201.           TREE_HAS_CONSTRUCTOR (init) = 1;
  4202.           yyval.ttype = digest_init (type, init, (tree *) 0);
  4203.           if (TREE_CODE (type) == ARRAY_TYPE && TYPE_SIZE (type) == 0)
  4204.             {
  4205.               int failure = complete_array_type (type, yyval.ttype, 1);
  4206.               if (failure)
  4207.             my_friendly_abort (78);
  4208.             }
  4209.         ;
  4210.     break;}
  4211. case 197:
  4212. #line 1227 "cp-parse.y"
  4213. { yyval.ttype = build_headof (yyvsp[-1].ttype); ;
  4214.     break;}
  4215. case 198:
  4216. #line 1229 "cp-parse.y"
  4217. { yyval.ttype = build_classof (yyvsp[-1].ttype); ;
  4218.     break;}
  4219. case 199:
  4220. #line 1231 "cp-parse.y"
  4221. { if (is_aggr_typedef (yyvsp[-1].ttype, 1))
  4222.             {
  4223.               tree type = IDENTIFIER_TYPE_VALUE (yyvsp[-1].ttype);
  4224.               yyval.ttype = CLASSTYPE_DOSSIER (type);
  4225.             }
  4226.           else
  4227.             yyval.ttype = error_mark_node;
  4228.         ;
  4229.     break;}
  4230. case 201:
  4231. #line 1244 "cp-parse.y"
  4232. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  4233.     break;}
  4234. case 202:
  4235. #line 1246 "cp-parse.y"
  4236. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  4237.     break;}
  4238. case 203:
  4239. #line 1248 "cp-parse.y"
  4240. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  4241.     break;}
  4242. case 204:
  4243. #line 1250 "cp-parse.y"
  4244. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  4245.     break;}
  4246. case 205:
  4247. #line 1252 "cp-parse.y"
  4248. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  4249.     break;}
  4250. case 206:
  4251. #line 1254 "cp-parse.y"
  4252. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  4253.     break;}
  4254. case 207:
  4255. #line 1256 "cp-parse.y"
  4256. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  4257.     break;}
  4258. case 208:
  4259. #line 1258 "cp-parse.y"
  4260. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  4261.     break;}
  4262. case 209:
  4263. #line 1260 "cp-parse.y"
  4264. { yyval.ttype = build_x_binary_op (LT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
  4265.     break;}
  4266. case 210:
  4267. #line 1262 "cp-parse.y"
  4268. { yyval.ttype = build_x_binary_op (GT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
  4269.     break;}
  4270. case 211:
  4271. #line 1264 "cp-parse.y"
  4272. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  4273.     break;}
  4274. case 212:
  4275. #line 1266 "cp-parse.y"
  4276. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  4277.     break;}
  4278. case 213:
  4279. #line 1268 "cp-parse.y"
  4280. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  4281.     break;}
  4282. case 214:
  4283. #line 1270 "cp-parse.y"
  4284. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  4285.     break;}
  4286. case 215:
  4287. #line 1272 "cp-parse.y"
  4288. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  4289.     break;}
  4290. case 216:
  4291. #line 1274 "cp-parse.y"
  4292. { yyval.ttype = build_x_binary_op (TRUTH_ANDIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
  4293.     break;}
  4294. case 217:
  4295. #line 1276 "cp-parse.y"
  4296. { yyval.ttype = build_x_binary_op (TRUTH_ORIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
  4297.     break;}
  4298. case 218:
  4299. #line 1278 "cp-parse.y"
  4300. { yyval.ttype = build_x_conditional_expr (yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  4301.     break;}
  4302. case 219:
  4303. #line 1280 "cp-parse.y"
  4304. { yyval.ttype = build_modify_expr (yyval.ttype, NOP_EXPR, yyvsp[0].ttype); ;
  4305.     break;}
  4306. case 220:
  4307. #line 1282 "cp-parse.y"
  4308. { register tree rval;
  4309.           if (rval = build_opfncall (MODIFY_EXPR, LOOKUP_NORMAL, yyval.ttype, yyvsp[0].ttype,
  4310.                          make_node (yyvsp[-1].code)))
  4311.             yyval.ttype = rval;
  4312.           else
  4313.             yyval.ttype = build_modify_expr (yyval.ttype, yyvsp[-1].code, yyvsp[0].ttype); ;
  4314.     break;}
  4315. case 221:
  4316. #line 1289 "cp-parse.y"
  4317. { yyval.ttype = build_m_component_ref (yyval.ttype, yyvsp[0].ttype); ;
  4318.     break;}
  4319. case 222:
  4320. #line 1292 "cp-parse.y"
  4321. { yyval.ttype = build_x_binary_op (MEMBER_REF, yyval.ttype, yyvsp[0].ttype); ;
  4322.     break;}
  4323. case 223:
  4324. #line 1310 "cp-parse.y"
  4325. { yyval.ttype = do_identifier (yyval.ttype); ;
  4326.     break;}
  4327. case 224:
  4328. #line 1312 "cp-parse.y"
  4329. {
  4330.           tree op = yyval.ttype;
  4331.           if (TREE_CODE (op) != IDENTIFIER_NODE)
  4332.             yyval.ttype = op;
  4333.           else
  4334.             {
  4335.               yyval.ttype = lookup_name (op, 0);
  4336.               if (yyval.ttype == NULL_TREE)
  4337.             {
  4338.               if (op != ansi_opname[ERROR_MARK])
  4339.                 error ("operator %s not defined",
  4340.                    operator_name_string (op));
  4341.               yyval.ttype = error_mark_node;
  4342.             }
  4343.             }
  4344.         ;
  4345.     break;}
  4346. case 226:
  4347. #line 1330 "cp-parse.y"
  4348. { yyval.ttype = combine_strings (yyval.ttype); ;
  4349.     break;}
  4350. case 227:
  4351. #line 1332 "cp-parse.y"
  4352. { yyval.ttype = yyvsp[-1].ttype; ;
  4353.     break;}
  4354. case 228:
  4355. #line 1334 "cp-parse.y"
  4356. { yyval.ttype = error_mark_node; ;
  4357.     break;}
  4358. case 229:
  4359. #line 1336 "cp-parse.y"
  4360. { if (current_function_decl == 0)
  4361.             {
  4362.               error ("braced-group within expression allowed only inside a function");
  4363.               YYERROR;
  4364.             }
  4365.           keep_next_level ();
  4366.           yyval.ttype = expand_start_stmt_expr (); ;
  4367.     break;}
  4368. case 230:
  4369. #line 1344 "cp-parse.y"
  4370. { tree rtl_exp;
  4371.           if (pedantic)
  4372.             pedwarn ("ANSI C++ forbids braced-groups within expressions");
  4373.           rtl_exp = expand_end_stmt_expr (yyvsp[-2].ttype);
  4374.           /* The statements have side effects, so the group does.  */
  4375.           TREE_SIDE_EFFECTS (rtl_exp) = 1;
  4376.           /* Make a BIND_EXPR for the BLOCK already made.  */
  4377.           yyval.ttype = build (BIND_EXPR, TREE_TYPE (rtl_exp),
  4378.                   NULL_TREE, rtl_exp, yyvsp[-1].ttype);
  4379.           /* Remove the block from the tree at this point.
  4380.              It gets put back at the proper place
  4381.              when the BIND_EXPR is expanded.  */
  4382.           delete_block (yyvsp[-1].ttype);
  4383.         ;
  4384.     break;}
  4385. case 231:
  4386. #line 1359 "cp-parse.y"
  4387. { /* [eichin:19911016.1902EST] */
  4388.                   yyval.ttype = build_x_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype, current_class_decl); 
  4389.                   /* here we instantiate_class_template as needed... */
  4390.                   do_pending_templates ();
  4391.                 ;
  4392.     break;}
  4393. case 232:
  4394. #line 1363 "cp-parse.y"
  4395. {
  4396.                   if (TREE_CODE (yyvsp[-1].ttype) == CALL_EXPR
  4397.                       && TREE_TYPE (yyvsp[-1].ttype) != void_type_node)
  4398.                 yyval.ttype = require_complete_type (yyvsp[-1].ttype);
  4399.                   else
  4400.                     yyval.ttype = yyvsp[-1].ttype;
  4401.                 ;
  4402.     break;}
  4403. case 233:
  4404. #line 1371 "cp-parse.y"
  4405. {
  4406.           yyval.ttype = build_x_function_call (yyval.ttype, NULL_TREE, current_class_decl);
  4407.           if (TREE_CODE (yyval.ttype) == CALL_EXPR
  4408.               && TREE_TYPE (yyval.ttype) != void_type_node)
  4409.             yyval.ttype = require_complete_type (yyval.ttype);
  4410.                 ;
  4411.     break;}
  4412. case 234:
  4413. #line 1378 "cp-parse.y"
  4414. { do_array:
  4415.             yyval.ttype = grok_array_decl (yyval.ttype, yyvsp[-1].ttype); ;
  4416.     break;}
  4417. case 235:
  4418. #line 1381 "cp-parse.y"
  4419. { yyval.ttype = build_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); ;
  4420.     break;}
  4421. case 236:
  4422. #line 1383 "cp-parse.y"
  4423. { yyval.ttype = build_object_ref (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
  4424.     break;}
  4425. case 237:
  4426. #line 1385 "cp-parse.y"
  4427. { /* If we get an OFFSET_REF, turn it into what it really
  4428.              means (e.g., a COMPONENT_REF).  This way if we've got,
  4429.              say, a reference to a static member that's being operated
  4430.              on, we don't end up trying to find a member operator for
  4431.              the class it's in.  */
  4432.           if (TREE_CODE (yyval.ttype) == OFFSET_REF)
  4433.             yyval.ttype = resolve_offset_ref (yyval.ttype);
  4434.           yyval.ttype = build_x_unary_op (POSTINCREMENT_EXPR, yyval.ttype); ;
  4435.     break;}
  4436. case 238:
  4437. #line 1394 "cp-parse.y"
  4438. { if (TREE_CODE (yyval.ttype) == OFFSET_REF)
  4439.             yyval.ttype = resolve_offset_ref (yyval.ttype);
  4440.           yyval.ttype = build_x_unary_op (POSTDECREMENT_EXPR, yyval.ttype); ;
  4441.     break;}
  4442. case 239:
  4443. #line 1399 "cp-parse.y"
  4444. { if (current_class_decl)
  4445.             {
  4446. #ifdef WARNING_ABOUT_CCD
  4447.               TREE_USED (current_class_decl) = 1;
  4448. #endif
  4449.               yyval.ttype = current_class_decl;
  4450.             }
  4451.           else if (current_function_decl
  4452.                && DECL_STATIC_FUNCTION_P (current_function_decl))
  4453.             {
  4454.               error ("`this' is unavailable for static member functions");
  4455.               yyval.ttype = error_mark_node;
  4456.             }
  4457.           else
  4458.             {
  4459.               if (current_function_decl)
  4460.             error ("invalid use of `this' in non-member function");
  4461.               else
  4462.             error ("invalid use of `this' at top level");
  4463.               yyval.ttype = error_mark_node;
  4464.             }
  4465.         ;
  4466.     break;}
  4467. case 240:
  4468. #line 1422 "cp-parse.y"
  4469. {
  4470.           tree type;
  4471.           tree id = yyval.ttype;
  4472.  
  4473.           /* This is a C cast in C++'s `functional' notation.  */
  4474.           if (yyvsp[-1].ttype == error_mark_node)
  4475.             {
  4476.               yyval.ttype = error_mark_node;
  4477.               break;
  4478.             }
  4479. #if 0
  4480.           if (yyvsp[-1].ttype == NULL_TREE)
  4481.             {
  4482.               error ("cannot cast null list to type `%s'",
  4483.                      IDENTIFIER_POINTER (TYPE_NAME (id)));
  4484.               yyval.ttype = error_mark_node;
  4485.               break;
  4486.             }
  4487. #endif
  4488. #if 0
  4489.           /* type is not set! (mrs) */
  4490.           if (type == error_mark_node)
  4491.             yyval.ttype = error_mark_node;
  4492.           else
  4493. #endif
  4494.             {
  4495.               if (id == ridpointers[(int) RID_CONST])
  4496.                 type = build_type_variant (integer_type_node, 1, 0);
  4497.               else if (id == ridpointers[(int) RID_VOLATILE])
  4498.                 type = build_type_variant (integer_type_node, 0, 1);
  4499. #if 0
  4500.               /* should not be able to get here (mrs) */
  4501.               else if (id == ridpointers[(int) RID_FRIEND])
  4502.                 {
  4503.                   error ("cannot cast expression to `friend' type");
  4504.                   yyval.ttype = error_mark_node;
  4505.                   break;
  4506.                 }
  4507. #endif
  4508.               else my_friendly_abort (79);
  4509.               yyval.ttype = build_c_cast (type, build_compound_expr (yyvsp[-1].ttype));
  4510.             }
  4511.         ;
  4512.     break;}
  4513. case 241:
  4514. #line 1466 "cp-parse.y"
  4515. { yyval.ttype = build_functional_cast (yyval.ttype, yyvsp[-1].ttype); ;
  4516.     break;}
  4517. case 242:
  4518. #line 1468 "cp-parse.y"
  4519. { yyval.ttype = build_functional_cast (yyval.ttype, NULL_TREE); ;
  4520.     break;}
  4521. case 243:
  4522. #line 1471 "cp-parse.y"
  4523. { tree type = groktypename (yyvsp[-4].ttype);
  4524.           yyval.ttype = build_dynamic_cast (type, yyvsp[-1].ttype); ;
  4525.     break;}
  4526. case 244:
  4527. #line 1474 "cp-parse.y"
  4528. { yyval.ttype = build_typeid (yyvsp[-1].ttype); ;
  4529.     break;}
  4530. case 245:
  4531. #line 1476 "cp-parse.y"
  4532. { tree type = groktypename (yyvsp[-1].ttype);
  4533.           yyval.ttype = get_typeid (type); ;
  4534.     break;}
  4535. case 246:
  4536. #line 1479 "cp-parse.y"
  4537. { yyval.ttype = build_functional_cast (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
  4538.     break;}
  4539. case 247:
  4540. #line 1481 "cp-parse.y"
  4541. { yyval.ttype = build_functional_cast (yyvsp[-1].ttype, NULL_TREE); ;
  4542.     break;}
  4543. case 248:
  4544. #line 1483 "cp-parse.y"
  4545. {
  4546.         do_scoped_id:
  4547.           yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
  4548.           if (yychar == YYEMPTY)
  4549.             yychar = YYLEX;
  4550.           if (! yyval.ttype)
  4551.             {
  4552.               if (yychar == '(' || yychar == LEFT_RIGHT)
  4553.             yyval.ttype = implicitly_declare (yyvsp[0].ttype);
  4554.               else
  4555.             {
  4556.               if (IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) != error_mark_node)
  4557.                 error ("undeclared variable `%s' (first use here)",
  4558.                    IDENTIFIER_POINTER (yyvsp[0].ttype));
  4559.               yyval.ttype = error_mark_node;
  4560.               /* Prevent repeated error messages.  */
  4561.               IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) = error_mark_node;
  4562.             }
  4563.             }
  4564.           else
  4565.             {
  4566.               if (TREE_CODE (yyval.ttype) == ADDR_EXPR)
  4567.             assemble_external (TREE_OPERAND (yyval.ttype, 0));
  4568.               else
  4569.             assemble_external (yyval.ttype);
  4570.               TREE_USED (yyval.ttype) = 1;
  4571.             }
  4572.           if (TREE_CODE (yyval.ttype) == CONST_DECL)
  4573.             {
  4574.               /* XXX CHS - should we set TREE_USED of the constant? */
  4575.               yyval.ttype = DECL_INITIAL (yyval.ttype);
  4576.               /* This is to prevent an enum whose value is 0
  4577.              from being considered a null pointer constant.  */
  4578.               yyval.ttype = build1 (NOP_EXPR, TREE_TYPE (yyval.ttype), yyval.ttype);
  4579.               TREE_CONSTANT (yyval.ttype) = 1;
  4580.             }
  4581.  
  4582.         ;
  4583.     break;}
  4584. case 249:
  4585. #line 1522 "cp-parse.y"
  4586. {
  4587.           if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
  4588.             goto do_scoped_id;
  4589.         do_scoped_operator:
  4590.           yyval.ttype = yyvsp[0].ttype;
  4591.         ;
  4592.     break;}
  4593. case 250:
  4594. #line 1529 "cp-parse.y"
  4595. { yyval.ttype = build_offset_ref (yyval.ttype, yyvsp[0].ttype); ;
  4596.     break;}
  4597. case 251:
  4598. #line 1531 "cp-parse.y"
  4599. { yyval.ttype = build_member_call (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
  4600.     break;}
  4601. case 252:
  4602. #line 1533 "cp-parse.y"
  4603. { yyval.ttype = build_member_call (yyval.ttype, yyvsp[-1].ttype, NULL_TREE); ;
  4604.     break;}
  4605. case 253:
  4606. #line 1535 "cp-parse.y"
  4607. {
  4608. #if 0
  4609.           /* This is a future direction of this code, but because
  4610.              build_x_function_call cannot always undo what is done
  4611.              in build_component_ref entirely yet, we cannot do this. */
  4612.           yyval.ttype = build_x_function_call (build_component_ref (yyval.ttype, yyvsp[-3].ttype, NULL_TREE, 1), yyvsp[-1].ttype, yyval.ttype);
  4613.           if (TREE_CODE (yyval.ttype) == CALL_EXPR
  4614.               && TREE_TYPE (yyval.ttype) != void_type_node)
  4615.             yyval.ttype = require_complete_type (yyval.ttype);
  4616. #else
  4617.           yyval.ttype = build_method_call (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE,
  4618.                       (LOOKUP_NORMAL|LOOKUP_AGGR));
  4619. #endif
  4620.         ;
  4621.     break;}
  4622. case 254:
  4623. #line 1550 "cp-parse.y"
  4624. {
  4625. #if 0
  4626.           /* This is a future direction of this code, but because
  4627.              build_x_function_call cannot always undo what is done
  4628.              in build_component_ref entirely yet, we cannot do this. */
  4629.           yyval.ttype = build_x_function_call (build_component_ref (yyval.ttype, yyvsp[-1].ttype, NULL_TREE, 1), NULL_TREE, yyval.ttype);
  4630.           if (TREE_CODE (yyval.ttype) == CALL_EXPR
  4631.               && TREE_TYPE (yyval.ttype) != void_type_node)
  4632.             yyval.ttype = require_complete_type (yyval.ttype);
  4633. #else
  4634.           yyval.ttype = build_method_call (yyval.ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE,
  4635.                       (LOOKUP_NORMAL|LOOKUP_AGGR));
  4636. #endif
  4637.         ;
  4638.     break;}
  4639. case 255:
  4640. #line 1565 "cp-parse.y"
  4641. { yyval.ttype = build_scoped_method_call (yyval.ttype, yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
  4642.     break;}
  4643. case 256:
  4644. #line 1567 "cp-parse.y"
  4645. { yyval.ttype = build_scoped_method_call (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE); ;
  4646.     break;}
  4647. case 257:
  4648. #line 1570 "cp-parse.y"
  4649.           if (TREE_CODE (TREE_TYPE (yyvsp[-3].ttype)) 
  4650.               != TREE_CODE (TREE_TYPE (IDENTIFIER_GLOBAL_VALUE (yyvsp[-1].ttype))))
  4651.             cp_error ("`%E' is not of type `%T'", yyvsp[-3].ttype, yyvsp[-1].ttype);
  4652.           yyval.ttype = void_zero_node;
  4653.         ;
  4654.     break;}
  4655. case 258:
  4656. #line 1577 "cp-parse.y"
  4657.           if (yyvsp[-4].ttype != yyvsp[-1].ttype)
  4658.             cp_error ("destructor specifier `%T::~%T()' must have matching names", yyvsp[-4].ttype, yyvsp[-1].ttype);
  4659.           if (TREE_CODE (TREE_TYPE (yyvsp[-5].ttype))
  4660.               != TREE_CODE (TREE_TYPE (IDENTIFIER_GLOBAL_VALUE (yyvsp[-4].ttype))))
  4661.             cp_error ("`%E' is not of type `%T'", yyvsp[-5].ttype, yyvsp[-4].ttype);
  4662.           yyval.ttype = void_zero_node; 
  4663.         ;
  4664.     break;}
  4665. case 259:
  4666. #line 1626 "cp-parse.y"
  4667. { yyval.ttype = NULL_TREE; ;
  4668.     break;}
  4669. case 260:
  4670. #line 1628 "cp-parse.y"
  4671. {
  4672.           yyval.ttype = yyvsp[-1].ttype;
  4673.           pedwarn ("old style placement syntax, use () instead");
  4674.         ;
  4675.     break;}
  4676. case 261:
  4677. #line 1636 "cp-parse.y"
  4678. { yyval.itype = 0; ;
  4679.     break;}
  4680. case 262:
  4681. #line 1638 "cp-parse.y"
  4682. { yyval.itype = 1; ;
  4683.     break;}
  4684. case 263:
  4685. #line 1642 "cp-parse.y"
  4686. { yyval.ttype = NULL_TREE; ;
  4687.     break;}
  4688. case 264:
  4689. #line 1644 "cp-parse.y"
  4690. { if (yyvsp[0].ttype)
  4691.             error ("extra `::' before `delete' ignored");
  4692.           yyval.ttype = error_mark_node;
  4693.         ;
  4694.     break;}
  4695. case 266:
  4696. #line 1654 "cp-parse.y"
  4697. { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
  4698.     break;}
  4699. case 267:
  4700. #line 1659 "cp-parse.y"
  4701. {
  4702.           if (! current_function_parms_stored)
  4703.             store_parm_decls ();
  4704.           setup_vtbl_ptr ();
  4705.           /* Always keep the BLOCK node associated with the outermost
  4706.              pair of curley braces of a function.  These are needed
  4707.              for correct operation of dwarfout.c.  */
  4708.           keep_next_level ();
  4709.         ;
  4710.     break;}
  4711. case 269:
  4712. #line 1672 "cp-parse.y"
  4713. {
  4714.           yyval.ttype = build_x_arrow (yyval.ttype);
  4715.         ;
  4716.     break;}
  4717. case 271:
  4718. #line 1682 "cp-parse.y"
  4719. {
  4720.           resume_momentary (yyvsp[-1].itype);
  4721.           note_list_got_semicolon (yyval.ttype);
  4722.         ;
  4723.     break;}
  4724. case 272:
  4725. #line 1688 "cp-parse.y"
  4726. { tree d;
  4727.           int yes = suspend_momentary ();
  4728.           d = start_decl (yyvsp[-1].ttype, yyval.ttype, 0, NULL_TREE);
  4729.           finish_decl (d, NULL_TREE, NULL_TREE, 0);
  4730.           resume_momentary (yes);
  4731.           note_list_got_semicolon (yyval.ttype);
  4732.         ;
  4733.     break;}
  4734. case 273:
  4735. #line 1696 "cp-parse.y"
  4736. { resume_momentary ((int) yyvsp[-1].itype); ;
  4737.     break;}
  4738. case 274:
  4739. #line 1699 "cp-parse.y"
  4740. { tree d;
  4741.           int yes = suspend_momentary ();
  4742.           d = start_decl (yyvsp[-1].ttype, yyval.ttype, 0, NULL_TREE);
  4743.           finish_decl (d, NULL_TREE, NULL_TREE, 0);
  4744.           resume_momentary (yes);
  4745.         ;
  4746.     break;}
  4747. case 275:
  4748. #line 1706 "cp-parse.y"
  4749. {
  4750.           shadow_tag (yyval.ttype);
  4751.           note_list_got_semicolon (yyval.ttype);
  4752.         ;
  4753.     break;}
  4754. case 276:
  4755. #line 1711 "cp-parse.y"
  4756. { warning ("empty declaration"); ;
  4757.     break;}
  4758. case 279:
  4759. #line 1721 "cp-parse.y"
  4760. { yyval.ttype = yyvsp[0].ttype; ;
  4761.     break;}
  4762. case 280:
  4763. #line 1723 "cp-parse.y"
  4764. { yyval.ttype = yyvsp[0].ttype; ;
  4765.     break;}
  4766. case 281:
  4767. #line 1732 "cp-parse.y"
  4768. { if (yyval.ttype) yyval.ttype = list_hash_lookup_or_cons (yyval.ttype); ;
  4769.     break;}
  4770. case 282:
  4771. #line 1734 "cp-parse.y"
  4772. { yyval.ttype = hash_tree_chain (yyvsp[0].ttype, yyval.ttype); ;
  4773.     break;}
  4774. case 283:
  4775. #line 1736 "cp-parse.y"
  4776. { yyval.ttype = hash_tree_chain (yyval.ttype, yyvsp[0].ttype); ;
  4777.     break;}
  4778. case 284:
  4779. #line 1738 "cp-parse.y"
  4780. { yyval.ttype = hash_tree_chain (yyvsp[-1].ttype, hash_chainon (yyvsp[0].ttype, yyval.ttype)); ;
  4781.     break;}
  4782. case 285:
  4783. #line 1744 "cp-parse.y"
  4784. { yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
  4785.     break;}
  4786. case 286:
  4787. #line 1746 "cp-parse.y"
  4788. { if (extra_warnings)
  4789.             warning ("`%s' is not at beginning of declaration",
  4790.                  IDENTIFIER_POINTER (yyval.ttype));
  4791.           yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
  4792.     break;}
  4793. case 287:
  4794. #line 1751 "cp-parse.y"
  4795. { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
  4796.     break;}
  4797. case 288:
  4798. #line 1753 "cp-parse.y"
  4799. { if (extra_warnings)
  4800.             warning ("`%s' is not at beginning of declaration",
  4801.                  IDENTIFIER_POINTER (yyvsp[0].ttype));
  4802.           yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
  4803.     break;}
  4804. case 289:
  4805. #line 1765 "cp-parse.y"
  4806. { yyval.ttype = IDENTIFIER_AS_LIST (yyval.ttype);
  4807.           TREE_STATIC (yyval.ttype) = 1; ;
  4808.     break;}
  4809. case 290:
  4810. #line 1768 "cp-parse.y"
  4811. { yyval.ttype = IDENTIFIER_AS_LIST (yyval.ttype); ;
  4812.     break;}
  4813. case 291:
  4814. #line 1770 "cp-parse.y"
  4815. { yyval.ttype = hash_tree_chain (yyvsp[0].ttype, yyval.ttype);
  4816.           TREE_STATIC (yyval.ttype) = 1; ;
  4817.     break;}
  4818. case 292:
  4819. #line 1773 "cp-parse.y"
  4820. { if (extra_warnings && TREE_STATIC (yyval.ttype))
  4821.             warning ("`%s' is not at beginning of declaration",
  4822.                  IDENTIFIER_POINTER (yyvsp[0].ttype));
  4823.           yyval.ttype = hash_tree_chain (yyvsp[0].ttype, yyval.ttype);
  4824.           TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
  4825.     break;}
  4826. case 293:
  4827. #line 1789 "cp-parse.y"
  4828. { yyval.ttype = get_decl_list (yyval.ttype); ;
  4829.     break;}
  4830. case 294:
  4831. #line 1791 "cp-parse.y"
  4832. { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
  4833.     break;}
  4834. case 295:
  4835. #line 1793 "cp-parse.y"
  4836. { yyval.ttype = decl_tree_cons (NULL_TREE, yyval.ttype, yyvsp[0].ttype); ;
  4837.     break;}
  4838. case 296:
  4839. #line 1795 "cp-parse.y"
  4840. { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[-1].ttype, hash_chainon (yyvsp[0].ttype, yyval.ttype)); ;
  4841.     break;}
  4842. case 297:
  4843. #line 1800 "cp-parse.y"
  4844. { yyval.ttype = get_decl_list (yyval.ttype); ;
  4845.     break;}
  4846. case 298:
  4847. #line 1802 "cp-parse.y"
  4848. { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
  4849.     break;}
  4850. case 303:
  4851. #line 1814 "cp-parse.y"
  4852. { yyval.ttype = TREE_TYPE (yyvsp[-1].ttype);
  4853.           if (pedantic)
  4854.             pedwarn ("ANSI C++ forbids `typeof'"); ;
  4855.     break;}
  4856. case 304:
  4857. #line 1818 "cp-parse.y"
  4858. { yyval.ttype = groktypename (yyvsp[-1].ttype);
  4859.           if (pedantic)
  4860.             pedwarn ("ANSI C++ forbids `typeof'"); ;
  4861.     break;}
  4862. case 313:
  4863. #line 1843 "cp-parse.y"
  4864. { yyval.ttype = NULL_TREE; ;
  4865.     break;}
  4866. case 314:
  4867. #line 1845 "cp-parse.y"
  4868. { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype); yyval.ttype = yyvsp[-1].ttype; ;
  4869.     break;}
  4870. case 315:
  4871. #line 1850 "cp-parse.y"
  4872. { current_declspecs = yyvsp[-5].ttype;
  4873.           yyvsp[0].itype = suspend_momentary ();
  4874.           yyval.ttype = start_decl (yyvsp[-4].ttype, current_declspecs, 1, yyvsp[-3].ttype);
  4875.           cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype); ;
  4876.     break;}
  4877. case 316:
  4878. #line 1856 "cp-parse.y"
  4879. { finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 0);
  4880.           yyval.itype = yyvsp[-2].itype; ;
  4881.     break;}
  4882. case 317:
  4883. #line 1859 "cp-parse.y"
  4884. { tree d;
  4885.           current_declspecs = yyvsp[-4].ttype;
  4886.           yyval.itype = suspend_momentary ();
  4887.           d = start_decl (yyvsp[-3].ttype, current_declspecs, 0, yyvsp[-2].ttype);
  4888.           cplus_decl_attributes (d, yyvsp[0].ttype);
  4889.           finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 0); ;
  4890.     break;}
  4891. case 318:
  4892. #line 1869 "cp-parse.y"
  4893. { yyval.ttype = start_decl (yyvsp[-4].ttype, current_declspecs, 1, yyvsp[-3].ttype);
  4894.           cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype); ;
  4895.     break;}
  4896. case 319:
  4897. #line 1873 "cp-parse.y"
  4898. { finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 0); ;
  4899.     break;}
  4900. case 320:
  4901. #line 1875 "cp-parse.y"
  4902. { tree d = start_decl (yyvsp[-3].ttype, current_declspecs, 0, yyvsp[-2].ttype);
  4903.           cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype);
  4904.           finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 0); ;
  4905.     break;}
  4906. case 321:
  4907. #line 1882 "cp-parse.y"
  4908. { current_declspecs = yyvsp[-5].ttype;
  4909.           yyvsp[0].itype = suspend_momentary ();
  4910.           yyval.ttype = start_decl (yyvsp[-4].ttype, current_declspecs, 1, yyvsp[-3].ttype);
  4911.           cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype); ;
  4912.     break;}
  4913. case 322:
  4914. #line 1888 "cp-parse.y"
  4915. { finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 0);
  4916.           yyval.itype = yyvsp[-2].itype; ;
  4917.     break;}
  4918. case 323:
  4919. #line 1891 "cp-parse.y"
  4920. { tree d;
  4921.           current_declspecs = yyvsp[-4].ttype;
  4922.           yyval.itype = suspend_momentary ();
  4923.           d = start_decl (yyvsp[-3].ttype, current_declspecs, 0, yyvsp[-2].ttype);
  4924.           cplus_decl_attributes (d, yyvsp[0].ttype);
  4925.           finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 0); ;
  4926.     break;}
  4927. case 324:
  4928. #line 1903 "cp-parse.y"
  4929. { yyval.ttype = NULL_TREE; ;
  4930.     break;}
  4931. case 325:
  4932. #line 1905 "cp-parse.y"
  4933. { yyval.ttype = yyvsp[-2].ttype; ;
  4934.     break;}
  4935. case 326:
  4936. #line 1910 "cp-parse.y"
  4937. { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
  4938.     break;}
  4939. case 327:
  4940. #line 1912 "cp-parse.y"
  4941. { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype); ;
  4942.     break;}
  4943. case 328:
  4944. #line 1917 "cp-parse.y"
  4945. { if (strcmp (IDENTIFIER_POINTER (yyvsp[0].ttype), "packed")
  4946.           && strcmp (IDENTIFIER_POINTER (yyvsp[0].ttype), "noreturn"))
  4947.         warning ("`%s' attribute directive ignored",
  4948.              IDENTIFIER_POINTER (yyvsp[0].ttype));
  4949.       yyval.ttype = yyvsp[0].ttype; ;
  4950.     break;}
  4951. case 329:
  4952. #line 1923 "cp-parse.y"
  4953. { /* if not "aligned(n)", then issue warning */
  4954.       if (strcmp (IDENTIFIER_POINTER (yyvsp[-3].ttype), "aligned") != 0
  4955.           || TREE_CODE (yyvsp[-1].ttype) != INTEGER_CST)
  4956.         {
  4957.           warning ("`%s' attribute directive ignored",
  4958.                IDENTIFIER_POINTER (yyvsp[-3].ttype));
  4959.           yyval.ttype = yyvsp[-3].ttype;
  4960.         }
  4961.       else
  4962.         yyval.ttype = tree_cons (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE); ;
  4963.     break;}
  4964. case 330:
  4965. #line 1934 "cp-parse.y"
  4966. { /* if not "format(...)", then issue warning */
  4967.       if (strcmp (IDENTIFIER_POINTER (yyvsp[-7].ttype), "format") != 0
  4968.           || TREE_CODE (yyvsp[-3].ttype) != INTEGER_CST
  4969.           || TREE_CODE (yyvsp[-1].ttype) != INTEGER_CST)
  4970.         {
  4971.           warning ("`%s' attribute directive ignored",
  4972.                IDENTIFIER_POINTER (yyvsp[-7].ttype));
  4973.           yyval.ttype = yyvsp[-7].ttype;
  4974.         }
  4975.       else
  4976.         yyval.ttype = tree_cons (yyvsp[-7].ttype, tree_cons (yyvsp[-5].ttype, tree_cons (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE), NULL_TREE), NULL_TREE); ;
  4977.     break;}
  4978. case 331:
  4979. #line 1950 "cp-parse.y"
  4980. { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
  4981.     break;}
  4982. case 332:
  4983. #line 1952 "cp-parse.y"
  4984. { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
  4985.     break;}
  4986. case 334:
  4987. #line 1958 "cp-parse.y"
  4988. { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, NULL_TREE);
  4989.           TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1;
  4990.           if (pedantic)
  4991.             pedwarn ("ANSI C++ forbids empty initializer braces"); ;
  4992.     break;}
  4993. case 335:
  4994. #line 1963 "cp-parse.y"
  4995. { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-1].ttype));
  4996.           TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
  4997.     break;}
  4998. case 336:
  4999. #line 1966 "cp-parse.y"
  5000. { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype));
  5001.           TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
  5002.     break;}
  5003. case 337:
  5004. #line 1969 "cp-parse.y"
  5005. { yyval.ttype = NULL_TREE; ;
  5006.     break;}
  5007. case 338:
  5008. #line 1976 "cp-parse.y"
  5009. { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
  5010.     break;}
  5011. case 339:
  5012. #line 1978 "cp-parse.y"
  5013. { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
  5014.     break;}
  5015. case 340:
  5016. #line 1981 "cp-parse.y"
  5017. { yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype); ;
  5018.     break;}
  5019. case 341:
  5020. #line 1983 "cp-parse.y"
  5021. { yyval.ttype = tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
  5022.     break;}
  5023. case 342:
  5024. #line 1985 "cp-parse.y"
  5025. { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[0].ttype); ;
  5026.     break;}
  5027. case 343:
  5028. #line 1987 "cp-parse.y"
  5029. { yyval.ttype = tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
  5030.     break;}
  5031. case 344:
  5032. #line 1992 "cp-parse.y"
  5033. { yyvsp[0].itype = suspend_momentary ();
  5034.           yyval.ttype = start_enum (yyvsp[-1].ttype); ;
  5035.     break;}
  5036. case 345:
  5037. #line 1995 "cp-parse.y"
  5038. { yyval.ttype = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype);
  5039.           resume_momentary ((int) yyvsp[-4].itype);
  5040.           check_for_missing_semicolon (yyvsp[-3].ttype); ;
  5041.     break;}
  5042. case 346:
  5043. #line 1999 "cp-parse.y"
  5044. { yyval.ttype = finish_enum (start_enum (yyvsp[-2].ttype), NULL_TREE);
  5045.           check_for_missing_semicolon (yyval.ttype); ;
  5046.     break;}
  5047. case 347:
  5048. #line 2002 "cp-parse.y"
  5049. { yyvsp[0].itype = suspend_momentary ();
  5050.           yyval.ttype = start_enum (make_anon_name ()); ;
  5051.     break;}
  5052. case 348:
  5053. #line 2005 "cp-parse.y"
  5054. { yyval.ttype = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype);
  5055.           resume_momentary ((int) yyvsp[-5].itype);
  5056.           check_for_missing_semicolon (yyvsp[-3].ttype); ;
  5057.     break;}
  5058. case 349:
  5059. #line 2009 "cp-parse.y"
  5060. { yyval.ttype = finish_enum (start_enum (make_anon_name()), NULL_TREE);
  5061.           check_for_missing_semicolon (yyval.ttype); ;
  5062.     break;}
  5063. case 350:
  5064. #line 2012 "cp-parse.y"
  5065. { yyval.ttype = xref_tag (enum_type_node, yyvsp[0].ttype, NULL_TREE); ;
  5066.     break;}
  5067. case 351:
  5068. #line 2016 "cp-parse.y"
  5069. {
  5070.           int semi;
  5071.           tree id;
  5072.  
  5073. #if 0
  5074.           /* Need to rework class nesting in the
  5075.              presence of nested classes, etc.  */
  5076.           shadow_tag (CLASSTYPE_AS_LIST (yyval.ttype)); */
  5077. #endif
  5078.           if (yychar == YYEMPTY)
  5079.             yychar = YYLEX;
  5080.           semi = yychar == ';';
  5081.           /* finish_struct nukes this anyway; if
  5082.              finish_exception does too, then it can go. */
  5083.           if (semi)
  5084.             note_got_semicolon (yyval.ttype);
  5085.  
  5086.           if (TREE_CODE (yyval.ttype) == ENUMERAL_TYPE)
  5087.             /* $$ = $1 from default rule.  */;
  5088.           else if (CLASSTYPE_DECLARED_EXCEPTION (yyval.ttype))
  5089.             {
  5090.               if (! semi)
  5091.             yyval.ttype = finish_exception (yyval.ttype, yyvsp[-1].ttype);
  5092.               else
  5093.             warning ("empty exception declaration\n");
  5094.             }
  5095.           else
  5096.             {
  5097.               yyval.ttype = finish_struct (yyval.ttype, yyvsp[-1].ttype, semi);
  5098.               if (semi) note_got_semicolon (yyval.ttype);
  5099.             }
  5100.  
  5101.           pop_obstacks ();
  5102.  
  5103.           id = TYPE_IDENTIFIER (yyval.ttype);
  5104.           if (id && IDENTIFIER_TEMPLATE (id))
  5105.             {
  5106.               tree decl;
  5107.  
  5108.               /* I don't know if the copying of this TYPE_DECL is
  5109.                * really needed.  However, it's such a small per-
  5110.                * formance penalty that the extra safety is a bargain.
  5111.                * - niklas@appli.se
  5112.                */
  5113.               push_obstacks (&permanent_obstack, &permanent_obstack);
  5114.               decl = copy_node (lookup_name (id, 0));
  5115.               if (DECL_LANG_SPECIFIC (decl))
  5116.             copy_lang_decl (decl);
  5117.               pop_obstacks ();
  5118.               undo_template_name_overload (id, 0);
  5119.               pushdecl_top_level (decl);
  5120.             }
  5121.           if (! semi)
  5122.             check_for_missing_semicolon (yyval.ttype); ;
  5123.     break;}
  5124. case 352:
  5125. #line 2071 "cp-parse.y"
  5126. {
  5127. #if 0
  5128.   /* It's no longer clear what the following error is supposed to
  5129.      accomplish.  If it turns out to be needed, add a comment why.  */
  5130.           if (TYPE_BINFO_BASETYPES (yyval.ttype) && !TYPE_SIZE (yyval.ttype))
  5131.             {
  5132.               error ("incomplete definition of type `%s'",
  5133.                  TYPE_NAME_STRING (yyval.ttype));
  5134.               yyval.ttype = error_mark_node;
  5135.             }
  5136. #endif
  5137.         ;
  5138.     break;}
  5139. case 356:
  5140. #line 2093 "cp-parse.y"
  5141. { if (pedantic) pedwarn ("comma at end of enumerator list"); ;
  5142.     break;}
  5143. case 358:
  5144. #line 2098 "cp-parse.y"
  5145. { error ("storage class specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
  5146.     break;}
  5147. case 359:
  5148. #line 2100 "cp-parse.y"
  5149. { error ("type specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
  5150.     break;}
  5151. case 360:
  5152. #line 2102 "cp-parse.y"
  5153. { error ("type qualifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
  5154.     break;}
  5155. case 361:
  5156. #line 2104 "cp-parse.y"
  5157. { error ("no body nor ';' separates two class, struct or union declarations"); ;
  5158.     break;}
  5159. case 362:
  5160. #line 2109 "cp-parse.y"
  5161. { aggr1: current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
  5162.     break;}
  5163. case 363:
  5164. #line 2111 "cp-parse.y"
  5165. { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
  5166.     break;}
  5167. case 364:
  5168. #line 2113 "cp-parse.y"
  5169. { yyungetc (':', 1); goto aggr1; ;
  5170.     break;}
  5171. case 365:
  5172. #line 2115 "cp-parse.y"
  5173. { yyungetc ('{', 1);
  5174.         aggr2:
  5175.           current_aggr = yyval.ttype;
  5176.           yyval.ttype = yyvsp[-1].ttype;
  5177.           overload_template_name (yyval.ttype, 0); ;
  5178.     break;}
  5179. case 366:
  5180. #line 2121 "cp-parse.y"
  5181. { yyungetc (':', 1); goto aggr2; ;
  5182.     break;}
  5183. case 367:
  5184. #line 2126 "cp-parse.y"
  5185. { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
  5186.     break;}
  5187. case 368:
  5188. #line 2131 "cp-parse.y"
  5189. {
  5190.           yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, NULL_TREE);
  5191.         ;
  5192.     break;}
  5193. case 369:
  5194. #line 2135 "cp-parse.y"
  5195. {
  5196.           if (yyvsp[0].ttype)
  5197.             yyval.ttype = xref_tag (current_aggr, yyvsp[-2].ttype, yyvsp[0].ttype);
  5198.           else
  5199.             yyval.ttype = yyvsp[-1].ttype;
  5200.         ;
  5201.     break;}
  5202. case 370:
  5203. #line 2143 "cp-parse.y"
  5204. {
  5205.           yyval.ttype = xref_defn_tag (current_aggr, yyvsp[0].ttype, NULL_TREE);
  5206.         ;
  5207.     break;}
  5208. case 371:
  5209. #line 2147 "cp-parse.y"
  5210. {
  5211.           if (yyvsp[0].ttype)
  5212.             yyval.ttype = xref_defn_tag (current_aggr, yyvsp[-2].ttype, yyvsp[0].ttype);
  5213.           else
  5214.             yyval.ttype = yyvsp[-1].ttype;
  5215.         ;
  5216.     break;}
  5217. case 372:
  5218. #line 2156 "cp-parse.y"
  5219. { yyval.ttype = xref_tag (yyval.ttype, make_anon_name (), NULL_TREE);
  5220.           yyungetc ('{', 1); ;
  5221.     break;}
  5222. case 375:
  5223. #line 2164 "cp-parse.y"
  5224. { yyval.ttype = NULL_TREE; ;
  5225.     break;}
  5226. case 376:
  5227. #line 2166 "cp-parse.y"
  5228. { yyungetc(':', 1); yyval.ttype = NULL_TREE; ;
  5229.     break;}
  5230. case 377:
  5231. #line 2168 "cp-parse.y"
  5232. { yyval.ttype = yyvsp[0].ttype; ;
  5233.     break;}
  5234. case 379:
  5235. #line 2174 "cp-parse.y"
  5236. { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
  5237.     break;}
  5238. case 380:
  5239. #line 2179 "cp-parse.y"
  5240. { if (! is_aggr_typedef (yyval.ttype, 1))
  5241.             yyval.ttype = NULL_TREE;
  5242.           else yyval.ttype = build_tree_list ((tree)visibility_default, yyval.ttype); ;
  5243.     break;}
  5244. case 381:
  5245. #line 2183 "cp-parse.y"
  5246. { if (! is_aggr_typedef (yyval.ttype, 1))
  5247.             yyval.ttype = NULL_TREE;
  5248.           else yyval.ttype = build_tree_list ((tree)visibility_default, yyval.ttype); ;
  5249.     break;}
  5250. case 382:
  5251. #line 2187 "cp-parse.y"
  5252. { if (! is_aggr_typedef (yyvsp[0].ttype, 1))
  5253.             yyval.ttype = NULL_TREE;
  5254.           else yyval.ttype = build_tree_list ((tree) yyval.ttype, yyvsp[0].ttype); ;
  5255.     break;}
  5256. case 383:
  5257. #line 2191 "cp-parse.y"
  5258. { if (! is_aggr_typedef (yyvsp[0].ttype, 1))
  5259.             yyval.ttype = NULL_TREE;
  5260.           else yyval.ttype = build_tree_list ((tree) yyval.ttype, yyvsp[0].ttype); ;
  5261.     break;}
  5262. case 384:
  5263. #line 2198 "cp-parse.y"
  5264. {
  5265.             /* Kludge!!! See rule "template_type" and the code
  5266.            * dealing with "template_type_seen_before_scope" in
  5267.            * yylex(). */
  5268.             yyval.ttype = yyvsp[0].ttype;
  5269.         ;
  5270.     break;}
  5271. case 385:
  5272. #line 2207 "cp-parse.y"
  5273. {
  5274.             extern tree template_type_seen_before_scope;
  5275.           tree id = yyvsp[0].ttype ? TYPE_IDENTIFIER (yyvsp[0].ttype) : yyvsp[-2].ttype;
  5276.  
  5277.             /* Check the rule template_type to get this... */
  5278.           if (yychar == YYEMPTY)
  5279.             yychar = YYLEX;
  5280.           if (yychar == SCOPE) {
  5281.             template_type_seen_before_scope = id;
  5282.             yychar = YYLEX;
  5283.           }
  5284.         ;
  5285.     break;}
  5286. case 388:
  5287. #line 2225 "cp-parse.y"
  5288. { if (yyval.ttype != ridpointers[(int)RID_VIRTUAL])
  5289.             sorry ("non-virtual visibility");
  5290.           yyval.itype = visibility_default_virtual; ;
  5291.     break;}
  5292. case 389:
  5293. #line 2229 "cp-parse.y"
  5294. { int err = 0;
  5295.           if (yyvsp[0].itype == visibility_protected)
  5296.             {
  5297.               warning ("`protected' visibility not implemented");
  5298.               yyvsp[0].itype = visibility_public;
  5299.               err++;
  5300.             }
  5301.           else if (yyvsp[0].itype == visibility_public)
  5302.             {
  5303.               if (yyvsp[-1].itype == visibility_private)
  5304.             {
  5305.             mixed:
  5306.               error ("base class cannot be public and private");
  5307.             }
  5308.               else if (yyvsp[-1].itype == visibility_default_virtual)
  5309.             yyval.itype = visibility_public_virtual;
  5310.             }
  5311.           else /* $2 == visibility_private */
  5312.             {
  5313.               if (yyvsp[-1].itype == visibility_public)
  5314.             goto mixed;
  5315.               else if (yyvsp[-1].itype == visibility_default_virtual)
  5316.             yyval.itype = visibility_private_virtual;
  5317.             }
  5318.         ;
  5319.     break;}
  5320. case 390:
  5321. #line 2255 "cp-parse.y"
  5322. { if (yyvsp[0].ttype != ridpointers[(int)RID_VIRTUAL])
  5323.             sorry ("non-virtual visibility");
  5324.           if (yyval.itype == visibility_public)
  5325.             yyval.itype = visibility_public_virtual;
  5326.           else if (yyval.itype == visibility_private)
  5327.             yyval.itype = visibility_private_virtual; ;
  5328.     break;}
  5329. case 391:
  5330. #line 2264 "cp-parse.y"
  5331. { tree t;
  5332.           push_obstacks_nochange ();
  5333.           end_temporary_allocation ();
  5334.  
  5335.           if (! IS_AGGR_TYPE (yyvsp[-1].ttype))
  5336.             {
  5337.               yyvsp[-1].ttype = make_lang_type (RECORD_TYPE);
  5338.               TYPE_NAME (yyvsp[-1].ttype) = get_identifier ("erroneous type");
  5339.             }
  5340.           if (TYPE_SIZE (yyvsp[-1].ttype))
  5341.             duplicate_tag_error (yyvsp[-1].ttype);
  5342.                   if (TYPE_SIZE (yyvsp[-1].ttype) || TYPE_BEING_DEFINED (yyvsp[-1].ttype))
  5343.                     {
  5344.                       t = make_lang_type (TREE_CODE (yyvsp[-1].ttype));
  5345.                       pushtag (TYPE_IDENTIFIER (yyvsp[-1].ttype), t);
  5346.                       yyvsp[-1].ttype = t;
  5347.                     }
  5348.           pushclass (yyvsp[-1].ttype, 0);
  5349.           TYPE_BEING_DEFINED (yyvsp[-1].ttype) = 1;
  5350.           t = TYPE_IDENTIFIER (yyvsp[-1].ttype);
  5351.           if (t && IDENTIFIER_TEMPLATE (t))
  5352.             overload_template_name (t, 1);
  5353.         ;
  5354.     break;}
  5355. case 392:
  5356. #line 2291 "cp-parse.y"
  5357. { yyval.ttype = NULL_TREE; ;
  5358.     break;}
  5359. case 393:
  5360. #line 2293 "cp-parse.y"
  5361. { yyval.ttype = build_tree_list ((tree)visibility_default, yyval.ttype); ;
  5362.     break;}
  5363. case 394:
  5364. #line 2295 "cp-parse.y"
  5365. { yyval.ttype = chainon (yyval.ttype, build_tree_list ((tree) yyvsp[-2].itype, yyvsp[0].ttype)); ;
  5366.     break;}
  5367. case 396:
  5368. #line 2303 "cp-parse.y"
  5369. { if (yyval.ttype == void_type_node) yyval.ttype = NULL_TREE; ;
  5370.     break;}
  5371. case 397:
  5372. #line 2305 "cp-parse.y"
  5373. { /* In pushdecl, we created a reverse list of names
  5374.              in this binding level.  Make sure that the chain
  5375.              of what we're trying to add isn't the item itself
  5376.              (which can happen with what pushdecl's doing).  */
  5377.           if (yyvsp[0].ttype != NULL_TREE && yyvsp[0].ttype != void_type_node)
  5378.             {
  5379.               if (TREE_CHAIN (yyvsp[0].ttype) != yyval.ttype)
  5380.             yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
  5381.               else
  5382.             yyval.ttype = yyvsp[0].ttype;
  5383.             }
  5384.         ;
  5385.     break;}
  5386. case 399:
  5387. #line 2322 "cp-parse.y"
  5388. { do_components:
  5389.           yyval.ttype = grok_x_components (yyval.ttype, yyvsp[-1].ttype);
  5390.           end_exception_decls ();
  5391.         ;
  5392.     break;}
  5393. case 400:
  5394. #line 2327 "cp-parse.y"
  5395. { yyval.ttype = groktypefield (yyval.ttype, yyvsp[-2].ttype); ;
  5396.     break;}
  5397. case 401:
  5398. #line 2329 "cp-parse.y"
  5399. { error ("missing ';' before right brace");
  5400.           yyungetc ('}', 0);
  5401.           yyval.ttype = groktypefield (yyval.ttype, yyvsp[-2].ttype); ;
  5402.     break;}
  5403. case 402:
  5404. #line 2333 "cp-parse.y"
  5405. { yyval.ttype = groktypefield (yyval.ttype, empty_parms ()); ;
  5406.     break;}
  5407. case 403:
  5408. #line 2335 "cp-parse.y"
  5409. { error ("missing ';' before right brace");
  5410.           yyungetc ('}', 0);
  5411.           yyval.ttype = groktypefield (yyval.ttype, empty_parms ()); ;
  5412.     break;}
  5413. case 404:
  5414. #line 2339 "cp-parse.y"
  5415. { goto do_components; ;
  5416.     break;}
  5417. case 405:
  5418. #line 2342 "cp-parse.y"
  5419. { yyval.ttype = grokfield (yyvsp[-1].ttype, yyval.ttype,
  5420.                   NULL_TREE, NULL_TREE, NULL_TREE); ;
  5421.     break;}
  5422. case 406:
  5423. #line 2345 "cp-parse.y"
  5424. { error ("missing ';' before right brace");
  5425.           yyungetc ('}', 0);
  5426.           goto do_components; ;
  5427.     break;}
  5428. case 407:
  5429. #line 2349 "cp-parse.y"
  5430. { yyval.ttype = groktypefield (yyval.ttype, yyvsp[-2].ttype); ;
  5431.     break;}
  5432. case 408:
  5433. #line 2351 "cp-parse.y"
  5434. { error ("missing ';' before right brace");
  5435.           yyungetc ('}', 0);
  5436.           yyval.ttype = groktypefield (yyval.ttype, yyvsp[-2].ttype); ;
  5437.     break;}
  5438. case 409:
  5439. #line 2355 "cp-parse.y"
  5440. { yyval.ttype = groktypefield (yyval.ttype, empty_parms ()); ;
  5441.     break;}
  5442. case 410:
  5443. #line 2357 "cp-parse.y"
  5444. { error ("missing ';' before right brace");
  5445.           yyungetc ('}', 0);
  5446.           yyval.ttype = groktypefield (yyval.ttype, empty_parms ()); ;
  5447.     break;}
  5448. case 411:
  5449. #line 2361 "cp-parse.y"
  5450. { yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
  5451.     break;}
  5452. case 412:
  5453. #line 2363 "cp-parse.y"
  5454. { error ("missing ';' before right brace");
  5455.           yyungetc ('}', 0);
  5456.           yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
  5457.     break;}
  5458. case 413:
  5459. #line 2367 "cp-parse.y"
  5460. { yyval.ttype = NULL_TREE; ;
  5461.     break;}
  5462. case 414:
  5463. #line 2372 "cp-parse.y"
  5464. { yyval.ttype = finish_method (yyval.ttype); ;
  5465.     break;}
  5466. case 415:
  5467. #line 2374 "cp-parse.y"
  5468. { yyval.ttype = finish_method (yyval.ttype); ;
  5469.     break;}
  5470. case 416:
  5471. #line 2376 "cp-parse.y"
  5472. { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[-1].ttype, NULL_TREE, NULL_TREE); ;
  5473.     break;}
  5474. case 417:
  5475. #line 2378 "cp-parse.y"
  5476. { error ("missing ';' before right brace");
  5477.           yyungetc ('}', 0);
  5478.           yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[-1].ttype, NULL_TREE, NULL_TREE); ;
  5479.     break;}
  5480. case 418:
  5481. #line 2385 "cp-parse.y"
  5482. { yyval.ttype = NULL_TREE; ;
  5483.     break;}
  5484. case 420:
  5485. #line 2388 "cp-parse.y"
  5486. {
  5487.           /* In this context, void_type_node encodes
  5488.              friends.  They have been recorded elsewhere.  */
  5489.           if (yyval.ttype == void_type_node)
  5490.             yyval.ttype = yyvsp[0].ttype;
  5491.           else
  5492.             yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
  5493.         ;
  5494.     break;}
  5495. case 421:
  5496. #line 2400 "cp-parse.y"
  5497. { current_declspecs = yyvsp[-4].ttype;
  5498.           yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[-2].ttype, NULL_TREE, yyvsp[-1].ttype);
  5499.           cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
  5500.     break;}
  5501. case 422:
  5502. #line 2404 "cp-parse.y"
  5503. { current_declspecs = yyvsp[-6].ttype;
  5504.           yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[-4].ttype, yyvsp[0].ttype, yyvsp[-3].ttype);
  5505.           cplus_decl_attributes (yyval.ttype, yyvsp[-2].ttype); ;
  5506.     break;}
  5507. case 423:
  5508. #line 2408 "cp-parse.y"
  5509. { current_declspecs = yyvsp[-4].ttype;
  5510.           yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
  5511.           cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
  5512.     break;}
  5513. case 424:
  5514. #line 2412 "cp-parse.y"
  5515. { current_declspecs = yyvsp[-4].ttype;
  5516.           yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
  5517.           cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
  5518.     break;}
  5519. case 425:
  5520. #line 2416 "cp-parse.y"
  5521. { current_declspecs = yyvsp[-3].ttype;
  5522.           yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[-1].ttype);
  5523.           cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
  5524.     break;}
  5525. case 426:
  5526. #line 2423 "cp-parse.y"
  5527. { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[-2].ttype, NULL_TREE, yyvsp[-1].ttype);
  5528.           cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
  5529.     break;}
  5530. case 427:
  5531. #line 2426 "cp-parse.y"
  5532. { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[-4].ttype, yyvsp[0].ttype, yyvsp[-3].ttype);
  5533.           cplus_decl_attributes (yyval.ttype, yyvsp[-2].ttype); ;
  5534.     break;}
  5535. case 428:
  5536. #line 2429 "cp-parse.y"
  5537. { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
  5538.           cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
  5539.     break;}
  5540. case 429:
  5541. #line 2432 "cp-parse.y"
  5542. { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
  5543.           cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
  5544.     break;}
  5545. case 430:
  5546. #line 2435 "cp-parse.y"
  5547. { yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[-1].ttype);
  5548.           cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
  5549.     break;}
  5550. case 432:
  5551. #line 2446 "cp-parse.y"
  5552. { TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
  5553.     break;}
  5554. case 433:
  5555. #line 2451 "cp-parse.y"
  5556. { yyval.ttype = build_enumerator (yyval.ttype, NULL_TREE); ;
  5557.     break;}
  5558. case 434:
  5559. #line 2453 "cp-parse.y"
  5560. { yyval.ttype = build_enumerator (yyval.ttype, yyvsp[0].ttype); ;
  5561.     break;}
  5562. case 435:
  5563. #line 2459 "cp-parse.y"
  5564. { yyval.ttype = build_decl_list (yyval.ttype, yyvsp[0].ttype); ;
  5565.     break;}
  5566. case 436:
  5567. #line 2461 "cp-parse.y"
  5568. { yyval.ttype = build_decl_list (yyval.ttype, yyvsp[0].ttype); ;
  5569.     break;}
  5570. case 437:
  5571. #line 2467 "cp-parse.y"
  5572. { yyval.ttype = NULL_TREE; ;
  5573.     break;}
  5574. case 439:
  5575. #line 2470 "cp-parse.y"
  5576. { yyval.ttype = yyvsp[0].ttype; ;
  5577.     break;}
  5578. case 440:
  5579. #line 2475 "cp-parse.y"
  5580. { yyval.ttype = IDENTIFIER_AS_LIST (yyval.ttype); ;
  5581.     break;}
  5582. case 441:
  5583. #line 2477 "cp-parse.y"
  5584. { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
  5585.     break;}
  5586. case 442:
  5587. #line 2482 "cp-parse.y"
  5588. { yyval.ttype = NULL_TREE; ;
  5589.     break;}
  5590. case 443:
  5591. #line 2484 "cp-parse.y"
  5592. { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
  5593.     break;}
  5594. case 444:
  5595. #line 2492 "cp-parse.y"
  5596. { yyval.itype = suspend_momentary (); ;
  5597.     break;}
  5598. case 445:
  5599. #line 2493 "cp-parse.y"
  5600. { resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = yyvsp[0].ttype; ;
  5601.     break;}
  5602. case 446:
  5603. #line 2499 "cp-parse.y"
  5604. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  5605.     break;}
  5606. case 447:
  5607. #line 2501 "cp-parse.y"
  5608. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  5609.     break;}
  5610. case 448:
  5611. #line 2503 "cp-parse.y"
  5612. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[0].ttype); ;
  5613.     break;}
  5614. case 449:
  5615. #line 2505 "cp-parse.y"
  5616. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, NULL_TREE, NULL_TREE); ;
  5617.     break;}
  5618. case 450:
  5619. #line 2507 "cp-parse.y"
  5620. { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
  5621.     break;}
  5622. case 451:
  5623. #line 2509 "cp-parse.y"
  5624. { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
  5625.     break;}
  5626. case 452:
  5627. #line 2511 "cp-parse.y"
  5628. { yyval.ttype = yyvsp[-1].ttype; ;
  5629.     break;}
  5630. case 453:
  5631. #line 2513 "cp-parse.y"
  5632. { yyval.ttype = make_pointer_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
  5633.     break;}
  5634. case 454:
  5635. #line 2515 "cp-parse.y"
  5636. { see_typename (); ;
  5637.     break;}
  5638. case 456:
  5639. #line 2518 "cp-parse.y"
  5640. { yyval.ttype = make_reference_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
  5641.     break;}
  5642. case 457:
  5643. #line 2520 "cp-parse.y"
  5644. { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  5645.     break;}
  5646. case 458:
  5647. #line 2522 "cp-parse.y"
  5648. { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  5649.     break;}
  5650. case 460:
  5651. #line 2528 "cp-parse.y"
  5652. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  5653.     break;}
  5654. case 461:
  5655. #line 2530 "cp-parse.y"
  5656. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  5657.     break;}
  5658. case 462:
  5659. #line 2532 "cp-parse.y"
  5660. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[0].ttype); ;
  5661.     break;}
  5662. case 463:
  5663. #line 2534 "cp-parse.y"
  5664. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, NULL_TREE, NULL_TREE); ;
  5665.     break;}
  5666. case 464:
  5667. #line 2536 "cp-parse.y"
  5668. { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
  5669.     break;}
  5670. case 465:
  5671. #line 2538 "cp-parse.y"
  5672. { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
  5673.     break;}
  5674. case 466:
  5675. #line 2540 "cp-parse.y"
  5676. { yyval.ttype = yyvsp[-1].ttype; ;
  5677.     break;}
  5678. case 467:
  5679. #line 2542 "cp-parse.y"
  5680. { see_typename (); ;
  5681.     break;}
  5682. case 469:
  5683. #line 2545 "cp-parse.y"
  5684. { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  5685.     break;}
  5686. case 470:
  5687. #line 2547 "cp-parse.y"
  5688. { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  5689.     break;}
  5690. case 471:
  5691. #line 2555 "cp-parse.y"
  5692. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  5693.     break;}
  5694. case 472:
  5695. #line 2557 "cp-parse.y"
  5696. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  5697.     break;}
  5698. case 473:
  5699. #line 2559 "cp-parse.y"
  5700. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[0].ttype); ;
  5701.     break;}
  5702. case 474:
  5703. #line 2561 "cp-parse.y"
  5704. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, NULL_TREE, NULL_TREE); ;
  5705.     break;}
  5706. case 475:
  5707. #line 2563 "cp-parse.y"
  5708. { yyval.ttype = yyvsp[-1].ttype; ;
  5709.     break;}
  5710. case 476:
  5711. #line 2565 "cp-parse.y"
  5712. { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  5713.     break;}
  5714. case 477:
  5715. #line 2567 "cp-parse.y"
  5716. { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  5717.     break;}
  5718. case 478:
  5719. #line 2569 "cp-parse.y"
  5720. { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
  5721.     break;}
  5722. case 479:
  5723. #line 2571 "cp-parse.y"
  5724. { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
  5725.     break;}
  5726. case 480:
  5727. #line 2573 "cp-parse.y"
  5728. { see_typename (); ;
  5729.     break;}
  5730. case 481:
  5731. #line 2577 "cp-parse.y"
  5732. { see_typename (); ;
  5733.     break;}
  5734. case 482:
  5735. #line 2580 "cp-parse.y"
  5736. {
  5737.         destructor_name:
  5738.           see_typename ();
  5739.           yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype);
  5740.         ;
  5741.     break;}
  5742. case 483:
  5743. #line 2586 "cp-parse.y"
  5744. { goto destructor_name; ;
  5745.     break;}
  5746. case 484:
  5747. #line 2588 "cp-parse.y"
  5748. { goto destructor_name; ;
  5749.     break;}
  5750. case 485:
  5751. #line 2590 "cp-parse.y"
  5752. { see_typename ();
  5753.           if (TREE_CODE (yyval.ttype) != SCOPE_REF)
  5754.             yyval.ttype = build_push_scope (yyval.ttype, yyvsp[0].ttype);
  5755.           else if (TREE_OPERAND (yyval.ttype, 1) == NULL_TREE)
  5756.             TREE_OPERAND (yyval.ttype, 1) = yyvsp[0].ttype;
  5757.           else
  5758.             yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype);
  5759.         ;
  5760.     break;}
  5761. case 486:
  5762. #line 2599 "cp-parse.y"
  5763. { yyval.ttype = build_push_scope (yyval.ttype, yyvsp[0].ttype); ;
  5764.     break;}
  5765. case 487:
  5766. #line 2601 "cp-parse.y"
  5767. { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype)); ;
  5768.     break;}
  5769. case 488:
  5770. #line 2603 "cp-parse.y"
  5771. { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype)); ;
  5772.     break;}
  5773. case 489:
  5774. #line 2605 "cp-parse.y"
  5775. { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-2].ttype, empty_parms (), yyvsp[0].ttype)); ;
  5776.     break;}
  5777. case 490:
  5778. #line 2607 "cp-parse.y"
  5779. { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, NULL_TREE, NULL_TREE)); ;
  5780.     break;}
  5781. case 491:
  5782. #line 2610 "cp-parse.y"
  5783. { yyval.ttype = build_push_scope (yyval.ttype, yyvsp[0].ttype); ;
  5784.     break;}
  5785. case 492:
  5786. #line 2612 "cp-parse.y"
  5787. { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype)); ;
  5788.     break;}
  5789. case 493:
  5790. #line 2614 "cp-parse.y"
  5791. { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype)); ;
  5792.     break;}
  5793. case 494:
  5794. #line 2616 "cp-parse.y"
  5795. { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-2].ttype, empty_parms (), yyvsp[0].ttype)); ;
  5796.     break;}
  5797. case 495:
  5798. #line 2618 "cp-parse.y"
  5799. { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, NULL_TREE, NULL_TREE)); ;
  5800.     break;}
  5801. case 496:
  5802. #line 2620 "cp-parse.y"
  5803. { yyval.ttype = build_parse_node (SCOPE_REF, NULL_TREE, yyvsp[0].ttype); ;
  5804.     break;}
  5805. case 497:
  5806. #line 2624 "cp-parse.y"
  5807. { tree t;
  5808.                   do_id_scope:
  5809.  
  5810.           t = resolve_scope_to_name (NULL_TREE, yyval.ttype);
  5811.           if (t == NULL_TREE)
  5812.             {
  5813.               cp_error ("`%T' is not a valid scope", yyval.ttype);
  5814.               yyval.ttype = error_mark_node; 
  5815.             }
  5816.           else
  5817.             yyval.ttype = t;
  5818.         ;
  5819.     break;}
  5820. case 498:
  5821. #line 2637 "cp-parse.y"
  5822. { goto do_id_scope; ;
  5823.     break;}
  5824. case 499:
  5825. #line 2639 "cp-parse.y"
  5826. {
  5827.                   if (yyval.ttype == error_mark_node)
  5828.                     /* leave it alone */;
  5829.                   else
  5830.             {
  5831.               yyval.ttype = resolve_scope_to_name (NULL_TREE, TYPE_IDENTIFIER (yyval.ttype));
  5832.               if (yyval.ttype == NULL_TREE)
  5833.             {
  5834.               error ("undefined explicitly scoped type");
  5835.               yyval.ttype = error_mark_node; 
  5836.             }
  5837.             }
  5838. /*                  if ($3) popclass (1); */
  5839.         ;
  5840.     break;}
  5841. case 502:
  5842. #line 2660 "cp-parse.y"
  5843. {
  5844.             /* Kludge!!! See rule "template_type" and the code
  5845.            * dealing with "template_type_seen_before_scope" in
  5846.            * yylex(). */
  5847.           yyval.ttype = yyvsp[0].ttype;
  5848.         ;
  5849.     break;}
  5850. case 503:
  5851. #line 2682 "cp-parse.y"
  5852. { see_typename ();
  5853.           yyval.ttype = yyvsp[-1].ttype; ;
  5854.     break;}
  5855. case 504:
  5856. #line 2686 "cp-parse.y"
  5857. { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  5858.     break;}
  5859. case 505:
  5860. #line 2688 "cp-parse.y"
  5861. { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
  5862.     break;}
  5863. case 506:
  5864. #line 2690 "cp-parse.y"
  5865. { see_typename (); ;
  5866.     break;}
  5867. case 507:
  5868. #line 2692 "cp-parse.y"
  5869. { yyval.ttype = yyvsp[-1].ttype; ;
  5870.     break;}
  5871. case 508:
  5872. #line 2694 "cp-parse.y"
  5873. { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  5874.     break;}
  5875. case 509:
  5876. #line 2696 "cp-parse.y"
  5877. { yyval.ttype = make_reference_declarator (yyvsp[0].ttype, NULL_TREE); ;
  5878.     break;}
  5879. case 510:
  5880. #line 2698 "cp-parse.y"
  5881. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  5882.     break;}
  5883. case 511:
  5884. #line 2700 "cp-parse.y"
  5885. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[0].ttype); ;
  5886.     break;}
  5887. case 512:
  5888. #line 2702 "cp-parse.y"
  5889. { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
  5890.     break;}
  5891. case 513:
  5892. #line 2704 "cp-parse.y"
  5893. { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
  5894.     break;}
  5895. case 514:
  5896. #line 2706 "cp-parse.y"
  5897. { yyval.ttype = build_parse_node (CALL_EXPR, NULL_TREE, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  5898.     break;}
  5899. case 515:
  5900. #line 2708 "cp-parse.y"
  5901. { yyval.ttype = build_parse_node (CALL_EXPR, NULL_TREE, empty_parms (), yyvsp[0].ttype); ;
  5902.     break;}
  5903. case 516:
  5904. #line 2710 "cp-parse.y"
  5905. { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
  5906.     break;}
  5907. case 517:
  5908. #line 2712 "cp-parse.y"
  5909. { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, NULL_TREE); ;
  5910.     break;}
  5911. case 518:
  5912. #line 2717 "cp-parse.y"
  5913. { tree t;
  5914.           t = yyval.ttype;
  5915.           while (TREE_OPERAND (t, 1))
  5916.             t = TREE_OPERAND (t, 1);
  5917.           TREE_OPERAND (t, 1) = build_parse_node (INDIRECT_REF, 0);
  5918.         ;
  5919.     break;}
  5920. case 519:
  5921. #line 2724 "cp-parse.y"
  5922. { tree t;
  5923.           t = yyval.ttype;
  5924.           while (TREE_OPERAND (t, 1))
  5925.             t = TREE_OPERAND (t, 1);
  5926.           TREE_OPERAND (t, 1) = build_parse_node (INDIRECT_REF, yyvsp[0].ttype);
  5927.         ;
  5928.     break;}
  5929. case 520:
  5930. #line 2731 "cp-parse.y"
  5931. { tree t;
  5932.           t = yyval.ttype;
  5933.           while (TREE_OPERAND (t, 1))
  5934.             t = TREE_OPERAND (t, 1);
  5935.           TREE_OPERAND (t, 1) = build_parse_node (ADDR_EXPR, 0);
  5936.         ;
  5937.     break;}
  5938. case 521:
  5939. #line 2738 "cp-parse.y"
  5940. { tree t;
  5941.           t = yyval.ttype;
  5942.           while (TREE_OPERAND (t, 1))
  5943.             t = TREE_OPERAND (t, 1);
  5944.           TREE_OPERAND (t, 1) = build_parse_node (ADDR_EXPR, yyvsp[0].ttype);
  5945.         ;
  5946.     break;}
  5947. case 522:
  5948. #line 2748 "cp-parse.y"
  5949. { tree t;
  5950.           t = yyval.ttype;
  5951.           while (TREE_OPERAND (t, 1))
  5952.             t = TREE_OPERAND (t, 1);
  5953.           TREE_OPERAND (t, 1) = build_parse_node (INDIRECT_REF, yyvsp[0].ttype);
  5954.         ;
  5955.     break;}
  5956. case 523:
  5957. #line 2755 "cp-parse.y"
  5958. { tree t;
  5959.           t = yyval.ttype;
  5960.           while (TREE_OPERAND (t, 1))
  5961.             t = TREE_OPERAND (t, 1);
  5962.           TREE_OPERAND (t, 1) = build_parse_node (ADDR_EXPR, yyvsp[0].ttype);
  5963.         ;
  5964.     break;}
  5965. case 529:
  5966. #line 2782 "cp-parse.y"
  5967. { emit_line_note (input_filename, lineno);
  5968.           pushlevel (0);
  5969.           clear_last_expr ();
  5970.           push_momentary ();
  5971.           expand_start_bindings (0); ;
  5972.     break;}
  5973. case 531:
  5974. #line 2794 "cp-parse.y"
  5975. { if (pedantic)
  5976.             pedwarn ("ANSI C++ forbids label declarations"); ;
  5977.     break;}
  5978. case 534:
  5979. #line 2805 "cp-parse.y"
  5980. { tree link;
  5981.           for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
  5982.             {
  5983.               tree label = shadow_label (TREE_VALUE (link));
  5984.               C_DECLARED_LABEL_FLAG (label) = 1;
  5985.               declare_nonlocal_label (label);
  5986.             }
  5987.         ;
  5988.     break;}
  5989. case 535:
  5990. #line 2819 "cp-parse.y"
  5991. {;
  5992.     break;}
  5993. case 537:
  5994. #line 2824 "cp-parse.y"
  5995. { pop_implicit_try_blocks (NULL_TREE);
  5996.           expand_end_bindings (getdecls (), kept_level_p(), 1);
  5997.           yyval.ttype = poplevel (kept_level_p (), 1, 0);
  5998.           pop_momentary (); ;
  5999.     break;}
  6000. case 538:
  6001. #line 2829 "cp-parse.y"
  6002. { pop_implicit_try_blocks (NULL_TREE);
  6003.           expand_end_bindings (getdecls (), kept_level_p(), 1);
  6004.           yyval.ttype = poplevel (kept_level_p (), 1, 0);
  6005.           pop_momentary (); ;
  6006.     break;}
  6007. case 539:
  6008. #line 2834 "cp-parse.y"
  6009. { pop_implicit_try_blocks (NULL_TREE);
  6010.           expand_end_bindings (getdecls (), kept_level_p(), 1);
  6011.           yyval.ttype = poplevel (kept_level_p (), 0, 0);
  6012.           pop_momentary (); ;
  6013.     break;}
  6014. case 540:
  6015. #line 2842 "cp-parse.y"
  6016. { cond_stmt_keyword = "if"; ;
  6017.     break;}
  6018. case 541:
  6019. #line 2844 "cp-parse.y"
  6020. { emit_line_note (input_filename, lineno);
  6021.           expand_start_cond (truthvalue_conversion (yyvsp[0].ttype), 0); ;
  6022.     break;}
  6023. case 543:
  6024. #line 2851 "cp-parse.y"
  6025. { finish_stmt (); ;
  6026.     break;}
  6027. case 544:
  6028. #line 2853 "cp-parse.y"
  6029. { pop_implicit_try_blocks (NULL_TREE);
  6030.           expand_end_bindings (getdecls (), getdecls() != NULL_TREE, 1);
  6031.           yyval.ttype = poplevel (kept_level_p (), 1, 0);
  6032.           pop_momentary (); ;
  6033.     break;}
  6034. case 545:
  6035. #line 2861 "cp-parse.y"
  6036. { finish_stmt (); ;
  6037.     break;}
  6038. case 547:
  6039. #line 2867 "cp-parse.y"
  6040. { finish_stmt (); ;
  6041.     break;}
  6042. case 548:
  6043. #line 2869 "cp-parse.y"
  6044. {
  6045.             tree expr = yyvsp[-1].ttype;
  6046.           emit_line_note (input_filename, lineno);
  6047.           /* Do default conversion if safe and possibly important,
  6048.              in case within ({...}).  */
  6049.           if ((TREE_CODE (TREE_TYPE (expr)) == ARRAY_TYPE
  6050.                && lvalue_p (expr))
  6051.               || TREE_CODE (TREE_TYPE (expr)) == FUNCTION_TYPE)
  6052.             expr = default_conversion (expr);
  6053.           cplus_expand_expr_stmt (expr);
  6054.           clear_momentary ();
  6055.           finish_stmt (); ;
  6056.     break;}
  6057. case 549:
  6058. #line 2882 "cp-parse.y"
  6059. { expand_start_else (); ;
  6060.     break;}
  6061. case 550:
  6062. #line 2884 "cp-parse.y"
  6063. { expand_end_cond ();
  6064.           pop_implicit_try_blocks (NULL_TREE);
  6065.           expand_end_bindings (getdecls (), kept_level_p (), 1);
  6066.           poplevel (kept_level_p (), 1, 0);
  6067.           pop_momentary ();
  6068.           finish_stmt (); ;
  6069.     break;}
  6070. case 551:
  6071. #line 2891 "cp-parse.y"
  6072. { expand_end_cond ();
  6073.           pop_implicit_try_blocks (NULL_TREE);
  6074.           expand_end_bindings (getdecls (), kept_level_p (), 1);
  6075.           poplevel (kept_level_p (), 1, 0);
  6076.           pop_momentary ();
  6077.           finish_stmt (); ;
  6078.     break;}
  6079. case 552:
  6080. #line 2898 "cp-parse.y"
  6081. { emit_nop ();
  6082.           emit_line_note (input_filename, lineno);
  6083.           expand_start_loop (1);
  6084.           cond_stmt_keyword = "while"; ;
  6085.     break;}
  6086. case 553:
  6087. #line 2903 "cp-parse.y"
  6088. { expand_exit_loop_if_false (0, truthvalue_conversion (yyvsp[0].ttype)); ;
  6089.     break;}
  6090. case 554:
  6091. #line 2905 "cp-parse.y"
  6092. { pop_implicit_try_blocks (NULL_TREE);
  6093.           expand_end_bindings (getdecls (), kept_level_p (), 1);
  6094.           poplevel (kept_level_p (), 1, 0);
  6095.           pop_momentary ();
  6096.           expand_end_loop ();
  6097.           finish_stmt (); ;
  6098.     break;}
  6099. case 555:
  6100. #line 2912 "cp-parse.y"
  6101. { emit_nop ();
  6102.           emit_line_note (input_filename, lineno);
  6103.           expand_start_loop_continue_elsewhere (1); ;
  6104.     break;}
  6105. case 556:
  6106. #line 2916 "cp-parse.y"
  6107. { expand_loop_continue_here ();
  6108.           cond_stmt_keyword = "do"; ;
  6109.     break;}
  6110. case 557:
  6111. #line 2919 "cp-parse.y"
  6112. { emit_line_note (input_filename, lineno);
  6113.           expand_exit_loop_if_false (0, truthvalue_conversion (yyvsp[-1].ttype));
  6114.           expand_end_loop ();
  6115.           clear_momentary ();
  6116.           finish_stmt (); ;
  6117.     break;}
  6118. case 558:
  6119. #line 2925 "cp-parse.y"
  6120. { emit_nop ();
  6121.           emit_line_note (input_filename, lineno);
  6122.           if (yyvsp[0].ttype) cplus_expand_expr_stmt (yyvsp[0].ttype);
  6123.           expand_start_loop_continue_elsewhere (1); ;
  6124.     break;}
  6125. case 559:
  6126. #line 2930 "cp-parse.y"
  6127. { emit_line_note (input_filename, lineno);
  6128.           if (yyvsp[-1].ttype) expand_exit_loop_if_false (0, truthvalue_conversion (yyvsp[-1].ttype)); ;
  6129.     break;}
  6130. case 560:
  6131. #line 2935 "cp-parse.y"
  6132. { push_momentary (); ;
  6133.     break;}
  6134. case 561:
  6135. #line 2937 "cp-parse.y"
  6136. { emit_line_note (input_filename, lineno);
  6137.           expand_loop_continue_here ();
  6138.           if (yyvsp[-3].ttype) cplus_expand_expr_stmt (yyvsp[-3].ttype);
  6139.           pop_momentary ();
  6140.           pop_implicit_try_blocks (NULL_TREE);
  6141.           expand_end_bindings (getdecls (), kept_level_p (), 1);
  6142.           poplevel (kept_level_p (), 1, 0);
  6143.           pop_momentary ();
  6144.           expand_end_loop ();
  6145.           finish_stmt (); ;
  6146.     break;}
  6147. case 562:
  6148. #line 2948 "cp-parse.y"
  6149. { emit_nop ();
  6150.           emit_line_note (input_filename, lineno);
  6151.           expand_start_loop_continue_elsewhere (1); ;
  6152.     break;}
  6153. case 563:
  6154. #line 2952 "cp-parse.y"
  6155. { emit_line_note (input_filename, lineno);
  6156.           if (yyvsp[-1].ttype) expand_exit_loop_if_false (0, truthvalue_conversion (yyvsp[-1].ttype)); ;
  6157.     break;}
  6158. case 564:
  6159. #line 2957 "cp-parse.y"
  6160. { push_momentary ();
  6161.           yyvsp[0].itype = lineno; ;
  6162.     break;}
  6163. case 565:
  6164. #line 2960 "cp-parse.y"
  6165. { emit_line_note (input_filename, (int) yyvsp[-2].itype);
  6166.           expand_loop_continue_here ();
  6167.           if (yyvsp[-3].ttype) cplus_expand_expr_stmt (yyvsp[-3].ttype);
  6168.           pop_momentary ();
  6169.           pop_implicit_try_blocks (NULL_TREE);
  6170.           expand_end_bindings (getdecls (), kept_level_p (), 1);
  6171.           poplevel (kept_level_p (), 1, 0);
  6172.           pop_momentary ();
  6173.           expand_end_loop ();
  6174.           finish_stmt ();
  6175.         ;
  6176.     break;}
  6177. case 566:
  6178. #line 2972 "cp-parse.y"
  6179. { emit_line_note (input_filename, lineno);
  6180.           c_expand_start_case (yyvsp[-1].ttype); 
  6181.           /* Don't let the tree nodes for $4 be discarded by
  6182.              clear_momentary during the parsing of the next stmt.  */
  6183.           push_momentary (); ;
  6184.     break;}
  6185. case 567:
  6186. #line 2978 "cp-parse.y"
  6187. { expand_end_case (yyvsp[-3].ttype);
  6188.           pop_momentary ();
  6189.           pop_implicit_try_blocks (NULL_TREE);
  6190.           expand_end_bindings (getdecls (), kept_level_p (), 1);
  6191.           poplevel (kept_level_p (), 1, 0);
  6192.           pop_momentary ();
  6193.           finish_stmt (); ;
  6194.     break;}
  6195. case 568:
  6196. #line 2986 "cp-parse.y"
  6197. { register tree value = yyvsp[-1].ttype;
  6198.           register tree label
  6199.             = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
  6200.  
  6201.           /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
  6202.              Strip such NOP_EXPRs.  */
  6203.           if (TREE_CODE (value) == NOP_EXPR
  6204.               && TREE_TYPE (value) == TREE_TYPE (TREE_OPERAND (value, 0)))
  6205.             value = TREE_OPERAND (value, 0);
  6206.  
  6207.           if (TREE_READONLY_DECL_P (value))
  6208.             {
  6209.               value = decl_constant_value (value);
  6210.               /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
  6211.              Strip such NOP_EXPRs.  */
  6212.               if (TREE_CODE (value) == NOP_EXPR
  6213.               && TREE_TYPE (value) == TREE_TYPE (TREE_OPERAND (value, 0)))
  6214.             value = TREE_OPERAND (value, 0);
  6215.             }
  6216.           value = fold (value);
  6217.  
  6218.           if (TREE_CODE (value) != INTEGER_CST
  6219.               && value != error_mark_node)
  6220.             {
  6221.               cp_error ("case label `%E' does not reduce to an integer constant", yyvsp[-1].ttype);
  6222.               value = error_mark_node;
  6223.             }
  6224.           else
  6225.             /* Promote char or short to int.  */
  6226.             value = default_conversion (value);
  6227.           if (value != error_mark_node)
  6228.             {
  6229.               tree duplicate;
  6230.               int success = pushcase (value, convert_and_check,
  6231.                           label, &duplicate);
  6232.               if (success == 1)
  6233.             cp_error ("case label `%E' not within a switch statement", yyvsp[-1].ttype);
  6234.               else if (success == 2)
  6235.             {
  6236.               cp_error ("duplicate case value `%E'", yyvsp[-1].ttype);
  6237.               cp_error_at ("`%E' previously used here", duplicate);
  6238.             }
  6239.               else if (success == 3)
  6240.             warning ("case value out of range");
  6241.               else if (success == 5)
  6242.             cp_error ("case label `%E' within scope of cleanup or variable array", yyvsp[-1].ttype);
  6243.             }
  6244.           define_case_label (label);
  6245.         ;
  6246.     break;}
  6247. case 570:
  6248. #line 3037 "cp-parse.y"
  6249. { register tree value1 = yyvsp[-3].ttype;
  6250.           register tree value2 = yyvsp[-1].ttype;
  6251.           register tree label
  6252.             = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
  6253.  
  6254.           if (pedantic)
  6255.             pedwarn ("ANSI C++ forbids range expressions in switch statement");
  6256.  
  6257.           /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
  6258.              Strip such NOP_EXPRs.  */
  6259.           if (TREE_CODE (value1) == NOP_EXPR
  6260.               && TREE_TYPE (value1) == TREE_TYPE (TREE_OPERAND (value1, 0)))
  6261.             value1 = TREE_OPERAND (value1, 0);
  6262.  
  6263.           if (TREE_READONLY_DECL_P (value1))
  6264.             {
  6265.               value1 = decl_constant_value (value1);
  6266.               /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
  6267.              Strip such NOP_EXPRs.  */
  6268.               if (TREE_CODE (value1) == NOP_EXPR
  6269.               && TREE_TYPE (value1) == TREE_TYPE (TREE_OPERAND (value1, 0)))
  6270.             value1 = TREE_OPERAND (value1, 0);
  6271.             }
  6272.           value1 = fold (value1);
  6273.  
  6274.           /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
  6275.              Strip such NOP_EXPRs.  */
  6276.           if (TREE_CODE (value2) == NOP_EXPR
  6277.               && TREE_TYPE (value2) == TREE_TYPE (TREE_OPERAND (value2, 0)))
  6278.             value2 = TREE_OPERAND (value2, 0);
  6279.  
  6280.           if (TREE_READONLY_DECL_P (value2))
  6281.             {
  6282.               value2 = decl_constant_value (value2);
  6283.               /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
  6284.              Strip such NOP_EXPRs.  */
  6285.               if (TREE_CODE (value2) == NOP_EXPR
  6286.               && TREE_TYPE (value2) == TREE_TYPE (TREE_OPERAND (value2, 0)))
  6287.             value2 = TREE_OPERAND (value2, 0);
  6288.             }
  6289.           value2 = fold (value2);
  6290.  
  6291.  
  6292.           if (TREE_CODE (value1) != INTEGER_CST
  6293.               && value1 != error_mark_node)
  6294.             {
  6295.               error ("case label does not reduce to an integer constant");
  6296.               value1 = error_mark_node;
  6297.             }
  6298.           if (TREE_CODE (value2) != INTEGER_CST
  6299.               && value2 != error_mark_node)
  6300.             {
  6301.               error ("case label does not reduce to an integer constant");
  6302.               value2 = error_mark_node;
  6303.             }
  6304.           if (value1 != error_mark_node
  6305.               && value2 != error_mark_node)
  6306.             {
  6307.               tree duplicate;
  6308.               int success = pushcase_range (value1, value2,
  6309.                             convert_and_check, label,
  6310.                             &duplicate);
  6311.               if (success == 1)
  6312.             error ("case label not within a switch statement");
  6313.               else if (success == 2)
  6314.             {
  6315.               error ("duplicate (or overlapping) case value");
  6316.               error_with_decl (duplicate, "this is the first entry overlapping that value");
  6317.             }
  6318.               else if (success == 3)
  6319.             warning ("case value out of range");
  6320.               else if (success == 4)
  6321.             warning ("empty range specified");
  6322.               else if (success == 5)
  6323.             error ("case label within scope of cleanup or variable array");
  6324.             }
  6325.           define_case_label (label);
  6326.         ;
  6327.     break;}
  6328. case 572:
  6329. #line 3117 "cp-parse.y"
  6330. {
  6331.           tree duplicate;
  6332.           register tree label
  6333.             = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
  6334.           int success = pushcase (NULL_TREE, 0, label, &duplicate);
  6335.           if (success == 1)
  6336.             error ("default label not within a switch statement");
  6337.           else if (success == 2)
  6338.             {
  6339.               error ("multiple default labels in one switch");
  6340.               error_with_decl (duplicate, "this is the first default label");
  6341.             }
  6342.           define_case_label (NULL_TREE);
  6343.         ;
  6344.     break;}
  6345. case 574:
  6346. #line 3133 "cp-parse.y"
  6347. { emit_line_note (input_filename, lineno);
  6348.           if ( ! expand_exit_something ())
  6349.             error ("break statement not within loop or switch"); ;
  6350.     break;}
  6351. case 575:
  6352. #line 3137 "cp-parse.y"
  6353. { emit_line_note (input_filename, lineno);
  6354.           if (! expand_continue_loop (0))
  6355.             error ("continue statement not within a loop"); ;
  6356.     break;}
  6357. case 576:
  6358. #line 3141 "cp-parse.y"
  6359. { emit_line_note (input_filename, lineno);
  6360.           c_expand_return (NULL_TREE); ;
  6361.     break;}
  6362. case 577:
  6363. #line 3144 "cp-parse.y"
  6364. { emit_line_note (input_filename, lineno);
  6365.           c_expand_return (yyvsp[-1].ttype);
  6366.           finish_stmt ();
  6367.         ;
  6368.     break;}
  6369. case 578:
  6370. #line 3149 "cp-parse.y"
  6371. { if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
  6372.           emit_line_note (input_filename, lineno);
  6373.           expand_asm (yyvsp[-2].ttype);
  6374.           finish_stmt ();
  6375.         ;
  6376.     break;}
  6377. case 579:
  6378. #line 3156 "cp-parse.y"
  6379. { if (TREE_CHAIN (yyvsp[-4].ttype)) yyvsp[-4].ttype = combine_strings (yyvsp[-4].ttype);
  6380.           emit_line_note (input_filename, lineno);
  6381.           c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
  6382.                      yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE],
  6383.                      input_filename, lineno);
  6384.           finish_stmt ();
  6385.         ;
  6386.     break;}
  6387. case 580:
  6388. #line 3165 "cp-parse.y"
  6389. { if (TREE_CHAIN (yyvsp[-6].ttype)) yyvsp[-6].ttype = combine_strings (yyvsp[-6].ttype);
  6390.           emit_line_note (input_filename, lineno);
  6391.           c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
  6392.                      yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE],
  6393.                      input_filename, lineno);
  6394.           finish_stmt ();
  6395.         ;
  6396.     break;}
  6397. case 581:
  6398. #line 3175 "cp-parse.y"
  6399. { if (TREE_CHAIN (yyvsp[-8].ttype)) yyvsp[-8].ttype = combine_strings (yyvsp[-8].ttype);
  6400.           emit_line_note (input_filename, lineno);
  6401.           c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
  6402.                      yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE],
  6403.                      input_filename, lineno);
  6404.           finish_stmt ();
  6405.         ;
  6406.     break;}
  6407. case 582:
  6408. #line 3183 "cp-parse.y"
  6409. { emit_line_note (input_filename, lineno);
  6410.           expand_computed_goto (yyvsp[-1].ttype); ;
  6411.     break;}
  6412. case 583:
  6413. #line 3186 "cp-parse.y"
  6414. { tree decl;
  6415.           emit_line_note (input_filename, lineno);
  6416.           decl = lookup_label (yyvsp[-1].ttype);
  6417.           TREE_USED (decl) = 1;
  6418.           expand_goto (decl); ;
  6419.     break;}
  6420. case 584:
  6421. #line 3192 "cp-parse.y"
  6422. { finish_stmt (); ;
  6423.     break;}
  6424. case 585:
  6425. #line 3194 "cp-parse.y"
  6426. { error ("label must be followed by statement");
  6427.           yyungetc ('}', 0);
  6428.           finish_stmt (); ;
  6429.     break;}
  6430. case 586:
  6431. #line 3198 "cp-parse.y"
  6432. { finish_stmt (); ;
  6433.     break;}
  6434. case 587:
  6435. #line 3201 "cp-parse.y"
  6436. { cplus_expand_throw (NULL_TREE); ;
  6437.     break;}
  6438. case 588:
  6439. #line 3202 "cp-parse.y"
  6440. { cplus_expand_throw (yyvsp[-1].ttype); ;
  6441.     break;}
  6442. case 589:
  6443. #line 3204 "cp-parse.y"
  6444. { cplus_expand_raise (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, 0);
  6445.           finish_stmt (); ;
  6446.     break;}
  6447. case 590:
  6448. #line 3207 "cp-parse.y"
  6449. { cplus_expand_raise (yyvsp[-2].ttype, NULL_TREE, NULL_TREE, 0);
  6450.           finish_stmt (); ;
  6451.     break;}
  6452. case 591:
  6453. #line 3210 "cp-parse.y"
  6454. { cplus_expand_raise (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, 0);
  6455.           finish_stmt (); ;
  6456.     break;}
  6457. case 592:
  6458. #line 3213 "cp-parse.y"
  6459. { cplus_expand_raise (yyvsp[-2].ttype, NULL_TREE, NULL_TREE, 0);
  6460.           finish_stmt (); ;
  6461.     break;}
  6462. case 593:
  6463. #line 3216 "cp-parse.y"
  6464. { cplus_expand_reraise (yyvsp[-1].ttype);
  6465.           finish_stmt (); ;
  6466.     break;}
  6467. case 594:
  6468. #line 3219 "cp-parse.y"
  6469. {
  6470.           tree decl = cplus_expand_end_try (yyvsp[-3].itype);
  6471.           yyvsp[-2].ttype = current_exception_type;
  6472.           yyvsp[0].ttype = current_exception_decl;
  6473.           yyval.ttype = current_exception_object;
  6474.           cplus_expand_start_except (yyvsp[-1].ttype, decl);
  6475.           pushlevel (0);
  6476.           clear_last_expr ();
  6477.           push_momentary ();
  6478.           expand_start_bindings (0);
  6479.         ;
  6480.     break;}
  6481. case 595:
  6482. #line 3231 "cp-parse.y"
  6483. {
  6484.           tree decls = getdecls ();
  6485.           /* If there is a default exception to handle,
  6486.              handle it here.  */
  6487.           if (yyvsp[-1].ttype)
  6488.             {
  6489.               tree decl = build_decl (CPLUS_CATCH_DECL, NULL_TREE, 0);
  6490.               tree block;
  6491.  
  6492.               pushlevel (1);
  6493.               expand_start_bindings (0);
  6494.               expand_expr (yyvsp[-1].ttype, 0, 0, 0);
  6495.               expand_end_bindings (0, 1, 0);
  6496.               block = poplevel (1, 0, 0);
  6497.  
  6498.               /* This is a catch block.  */
  6499.               TREE_LANG_FLAG_2 (block) = 1;
  6500.               BLOCK_VARS (block) = decl;
  6501.             }
  6502.  
  6503.           expand_end_bindings (decls, decls != 0, 1);
  6504.           poplevel (decls != 0, 1, 0);
  6505.           pop_momentary ();
  6506.           current_exception_type = yyvsp[-5].ttype;
  6507.           current_exception_decl = yyvsp[-3].ttype;
  6508.           current_exception_object = yyvsp[-2].ttype;
  6509.           cplus_expand_end_except (yyvsp[-1].ttype);
  6510.         ;
  6511.     break;}
  6512. case 596:
  6513. #line 3260 "cp-parse.y"
  6514. {
  6515.           cplus_expand_end_try (yyvsp[-1].itype);
  6516.           /* These are the important actions of
  6517.              `cplus_expand_end_except' which we must emulate.  */
  6518.           if (expand_escape_except ())
  6519.             expand_end_except ();
  6520.           expand_end_bindings (0, 0, 1);
  6521.           poplevel (0, 0, 0);
  6522.         ;
  6523.     break;}
  6524. case 597:
  6525. #line 3270 "cp-parse.y"
  6526. {
  6527.           tree decl = cplus_expand_end_try (yyvsp[-2].itype);
  6528.           yyvsp[-1].ttype = current_exception_type;
  6529.           yyvsp[0].ttype = current_exception_decl;
  6530.           yyval.ttype = current_exception_object;
  6531.           cplus_expand_start_except (NULL, decl);
  6532.           pushlevel (0);
  6533.           clear_last_expr ();
  6534.           push_momentary ();
  6535.           expand_start_bindings (0);
  6536.         ;
  6537.     break;}
  6538. case 598:
  6539. #line 3282 "cp-parse.y"
  6540. {
  6541.           tree decls = getdecls ();
  6542.           /* If there is a default exception to handle,
  6543.              handle it here.  */
  6544.           if (yyvsp[0].ttype)
  6545.             {
  6546.               tree decl = build_decl (CPLUS_CATCH_DECL, NULL_TREE, 0);
  6547.               tree block;
  6548.  
  6549.               pushlevel (1);
  6550.               expand_start_bindings (0);
  6551.               expand_expr (yyvsp[0].ttype, 0, 0, 0);
  6552.               expand_end_bindings (0, 1, 0);
  6553.               block = poplevel (1, 0, 0);
  6554.  
  6555.               /* This is a catch block.  */
  6556.               TREE_LANG_FLAG_2 (block) = 1;
  6557.               BLOCK_VARS (block) = decl;
  6558.             }
  6559.  
  6560.           expand_end_bindings (decls, decls != 0, 1);
  6561.           poplevel (decls != 0, 1, 0);
  6562.           pop_momentary ();
  6563.           current_exception_type = yyvsp[-3].ttype;
  6564.           current_exception_decl = yyvsp[-2].ttype;
  6565.           current_exception_object = yyvsp[-1].ttype;
  6566.           cplus_expand_end_except (yyvsp[0].ttype);
  6567.         ;
  6568.     break;}
  6569. case 599:
  6570. #line 3311 "cp-parse.y"
  6571. { tree name = get_identifier ("(compiler error)");
  6572.           tree orig_ex_type = current_exception_type;
  6573.           tree orig_ex_decl = current_exception_decl;
  6574.           tree orig_ex_obj = current_exception_object;
  6575.           tree decl = cplus_expand_end_try (yyvsp[-2].itype), decls;
  6576.  
  6577.           /* Start hidden EXCEPT.  */
  6578.           cplus_expand_start_except (name, decl);
  6579.           pushlevel (0);
  6580.           clear_last_expr ();
  6581.           push_momentary ();
  6582.           expand_start_bindings (0);
  6583.  
  6584.           /* This sets up the reraise.  */
  6585.           cplus_expand_reraise (yyvsp[0].ttype);
  6586.  
  6587.           decls = getdecls ();
  6588.           expand_end_bindings (decls, decls != 0, 1);
  6589.           poplevel (decls != 0, 1, 0);
  6590.           pop_momentary ();
  6591.           current_exception_type = orig_ex_type;
  6592.           current_exception_decl = orig_ex_decl;
  6593.           current_exception_object = orig_ex_obj;
  6594.           /* This will reraise for us.  */
  6595.           cplus_expand_end_except (error_mark_node);
  6596.           if (yychar == YYEMPTY)
  6597.             yychar = YYLEX;
  6598.           if (yychar != ';')
  6599.             error ("missing ';' after reraise statement");
  6600.         ;
  6601.     break;}
  6602. case 600:
  6603. #line 3342 "cp-parse.y"
  6604. { yyerror ("`except' missing after `try' statement");
  6605.           /* Terminate the binding contour started by special
  6606.              code in `.pushlevel'.  Automagically pops off
  6607.              the conditional we started for `try' stmt.  */
  6608.           cplus_expand_end_try (yyvsp[0].itype);
  6609.           expand_end_bindings (0, 0, 1);
  6610.           poplevel (0, 0, 0);
  6611.           pop_momentary ();
  6612.           YYERROR; ;
  6613.     break;}
  6614. case 601:
  6615. #line 3357 "cp-parse.y"
  6616. {
  6617.           yyval.itype = 1;
  6618.           pop_implicit_try_blocks (NULL_TREE);
  6619.         ;
  6620.     break;}
  6621. case 602:
  6622. #line 3362 "cp-parse.y"
  6623. {
  6624.           yyval.itype = 1;
  6625.           pop_implicit_try_blocks (NULL_TREE);
  6626.         ;
  6627.     break;}
  6628. case 603:
  6629. #line 3367 "cp-parse.y"
  6630. {
  6631.           yyval.itype = 0;
  6632.           pop_implicit_try_blocks (NULL_TREE);
  6633.         ;
  6634.     break;}
  6635. case 604:
  6636. #line 3375 "cp-parse.y"
  6637. { tree label;
  6638.         do_label:
  6639.           label = define_label (input_filename, lineno, yyvsp[-1].ttype);
  6640.           if (label)
  6641.             expand_label (label);
  6642.         ;
  6643.     break;}
  6644. case 605:
  6645. #line 3382 "cp-parse.y"
  6646. { goto do_label; ;
  6647.     break;}
  6648. case 606:
  6649. #line 3384 "cp-parse.y"
  6650. { tree label = define_label (input_filename, lineno, yyvsp[0].ttype);
  6651.           if (label)
  6652.             expand_label (label);
  6653.         ;
  6654.     break;}
  6655. case 607:
  6656. #line 3390 "cp-parse.y"
  6657. { cplus_expand_start_try (0); ;
  6658.     break;}
  6659. case 609:
  6660. #line 3396 "cp-parse.y"
  6661. {
  6662.           yyval.itype = 1;
  6663.           pop_implicit_try_blocks (NULL_TREE);
  6664.         ;
  6665.     break;}
  6666. case 610:
  6667. #line 3401 "cp-parse.y"
  6668. {
  6669.           yyval.itype = 1;
  6670.           pop_implicit_try_blocks (NULL_TREE);
  6671.         ;
  6672.     break;}
  6673. case 611:
  6674. #line 3406 "cp-parse.y"
  6675. {
  6676.           yyval.itype = 0;
  6677.           pop_implicit_try_blocks (NULL_TREE);
  6678.         ;
  6679.     break;}
  6680. case 613:
  6681. #line 3413 "cp-parse.y"
  6682. { cplus_expand_start_try (0); ;
  6683.     break;}
  6684. case 615:
  6685. #line 3417 "cp-parse.y"
  6686. { yyval.ttype = NULL_TREE; ;
  6687.     break;}
  6688. case 616:
  6689. #line 3419 "cp-parse.y"
  6690. {
  6691.           tree type = lookup_exception_type (current_class_type, current_class_name, yyvsp[0].ttype);
  6692.           if (type == NULL_TREE)
  6693.             {
  6694.               error ("`%s' is not an exception type",
  6695.                  IDENTIFIER_POINTER (TREE_VALUE (yyvsp[0].ttype)));
  6696.               current_exception_type = NULL_TREE;
  6697.               TREE_TYPE (current_exception_object) = error_mark_node;
  6698.             }
  6699.           else
  6700.             {
  6701.               current_exception_type = type;
  6702.               /* In-place union.  */
  6703.               TREE_TYPE (current_exception_object) = type;
  6704.             }
  6705.           yyvsp[0].ttype = cplus_expand_start_catch (yyvsp[0].ttype);
  6706.           pushlevel (1);
  6707.           expand_start_bindings (0);
  6708.         ;
  6709.     break;}
  6710. case 617:
  6711. #line 3439 "cp-parse.y"
  6712. {
  6713.           expand_end_bindings (0, 1, 0);
  6714.           yyvsp[0].ttype = poplevel (1, 0, 0);
  6715.  
  6716.           cplus_expand_end_catch (0);
  6717.  
  6718.           /* Mark this as a catch block.  */
  6719.           TREE_LANG_FLAG_2 (yyvsp[0].ttype) = 1;
  6720.           if (yyvsp[-2].ttype != error_mark_node)
  6721.             {
  6722.               tree decl = build_decl (CPLUS_CATCH_DECL, DECL_NAME (yyvsp[-2].ttype), 0);
  6723.               DECL_RTL (decl) = DECL_RTL (yyvsp[-2].ttype);
  6724.               TREE_CHAIN (decl) = BLOCK_VARS (yyvsp[0].ttype);
  6725.               BLOCK_VARS (yyvsp[0].ttype) = decl;
  6726.             }
  6727.         ;
  6728.     break;}
  6729. case 618:
  6730. #line 3456 "cp-parse.y"
  6731. {
  6732.           if (yyvsp[-1].ttype)
  6733.             error ("duplicate default in exception handler");
  6734.           current_exception_type = NULL_TREE;
  6735.           /* Takes it right out of scope.  */
  6736.           TREE_TYPE (current_exception_object) = error_mark_node;
  6737.  
  6738.           if (! expand_catch_default ())
  6739.             compiler_error ("default catch botch");
  6740.  
  6741.           /* The default exception is handled as the
  6742.              last in the chain of exceptions handled.  */
  6743.           do_pending_stack_adjust ();
  6744.           yyvsp[-1].ttype = make_node (RTL_EXPR);
  6745.           TREE_TYPE (yyvsp[-1].ttype) = void_type_node;
  6746.           start_sequence_for_rtl_expr (yyvsp[-1].ttype);
  6747.         ;
  6748.     break;}
  6749. case 619:
  6750. #line 3474 "cp-parse.y"
  6751. {
  6752.           extern struct rtx_def *get_insns ();
  6753.           do_pending_stack_adjust ();
  6754.           if (! expand_catch (NULL_TREE))
  6755.             compiler_error ("except nesting botch");
  6756.           if (! expand_end_catch ())
  6757.             compiler_error ("except nesting botch");
  6758.           RTL_EXPR_SEQUENCE (yyvsp[-3].ttype) = get_insns ();
  6759.           if (yyvsp[0].ttype)
  6760.             {
  6761.               /* Mark this block as the default catch block.  */
  6762.               TREE_LANG_FLAG_1 (yyvsp[0].ttype) = 1;
  6763.               TREE_LANG_FLAG_2 (yyvsp[0].ttype) = 1;
  6764.             }
  6765.           end_sequence ();
  6766.         ;
  6767.     break;}
  6768. case 620:
  6769. #line 3494 "cp-parse.y"
  6770. { yyval.ttype = NULL_TREE; ;
  6771.     break;}
  6772. case 622:
  6773. #line 3499 "cp-parse.y"
  6774. { yyval.ttype = NULL_TREE; ;
  6775.     break;}
  6776. case 623:
  6777. #line 3501 "cp-parse.y"
  6778. {
  6779.           tree type = groktypename (yyvsp[-2].ttype);
  6780.           current_exception_type = type;
  6781.           /* In-place union.  */
  6782.           if (yyvsp[-1].ttype)
  6783.             {
  6784.               tree tmp;
  6785.               tmp = pushdecl (build_decl (VAR_DECL, yyvsp[-1].ttype, type));
  6786.               current_exception_object =
  6787.                   build1 (INDIRECT_REF, type, tmp);
  6788.              }
  6789.           yyvsp[-2].ttype = ansi_expand_start_catch(type);
  6790.           pushlevel (1);
  6791.           expand_start_bindings (0);
  6792.         ;
  6793.     break;}
  6794. case 624:
  6795. #line 3517 "cp-parse.y"
  6796. {
  6797.           expand_end_bindings (0, 1, 0);
  6798.           yyvsp[0].ttype = poplevel (1, 0, 0);
  6799.  
  6800.           cplus_expand_end_catch (0);
  6801.  
  6802.           /* Mark this as a catch block.  */
  6803.           TREE_LANG_FLAG_2 (yyvsp[0].ttype) = 1;
  6804.           if (yyvsp[-4].ttype != error_mark_node)
  6805.             {
  6806.               tree decl = build_decl (CPLUS_CATCH_DECL, DECL_NAME (yyvsp[-4].ttype), 0);
  6807.               DECL_RTL (decl) = DECL_RTL (yyvsp[-4].ttype);
  6808.               TREE_CHAIN (decl) = BLOCK_VARS (yyvsp[0].ttype);
  6809.               BLOCK_VARS (yyvsp[0].ttype) = decl;
  6810.             }
  6811.         ;
  6812.     break;}
  6813. case 625:
  6814. #line 3537 "cp-parse.y"
  6815. { yyval.ttype = NULL_TREE; ;
  6816.     break;}
  6817. case 626:
  6818. #line 3539 "cp-parse.y"
  6819. { yyval.ttype = yyvsp[-1].ttype; ;
  6820.     break;}
  6821. case 627:
  6822. #line 3541 "cp-parse.y"
  6823. { yyval.ttype = NULL_TREE; ;
  6824.     break;}
  6825. case 628:
  6826. #line 3546 "cp-parse.y"
  6827. { yyval.itype = 0; ;
  6828.     break;}
  6829. case 629:
  6830. #line 3548 "cp-parse.y"
  6831. { yyval.itype = 0; ;
  6832.     break;}
  6833. case 630:
  6834. #line 3550 "cp-parse.y"
  6835. { yyval.itype = 1; ;
  6836.     break;}
  6837. case 631:
  6838. #line 3552 "cp-parse.y"
  6839. { yyval.itype = -1; ;
  6840.     break;}
  6841. case 632:
  6842. #line 3559 "cp-parse.y"
  6843. { emit_line_note (input_filename, lineno); ;
  6844.     break;}
  6845. case 633:
  6846. #line 3561 "cp-parse.y"
  6847. { emit_line_note (input_filename, lineno); ;
  6848.     break;}
  6849. case 634:
  6850. #line 3566 "cp-parse.y"
  6851. { yyval.ttype = NULL_TREE; ;
  6852.     break;}
  6853. case 636:
  6854. #line 3569 "cp-parse.y"
  6855. { yyval.ttype = NULL_TREE; ;
  6856.     break;}
  6857. case 637:
  6858. #line 3575 "cp-parse.y"
  6859. { yyval.ttype = NULL_TREE; ;
  6860.     break;}
  6861. case 640:
  6862. #line 3582 "cp-parse.y"
  6863. { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
  6864.     break;}
  6865. case 641:
  6866. #line 3587 "cp-parse.y"
  6867. { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[-1].ttype); ;
  6868.     break;}
  6869. case 642:
  6870. #line 3592 "cp-parse.y"
  6871. { yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, NULL_TREE); ;
  6872.     break;}
  6873. case 643:
  6874. #line 3594 "cp-parse.y"
  6875. { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
  6876.     break;}
  6877. case 644:
  6878. #line 3603 "cp-parse.y"
  6879. {
  6880.           if (strict_prototype)
  6881.             yyval.ttype = void_list_node;
  6882.           else
  6883.             yyval.ttype = NULL_TREE;
  6884.         ;
  6885.     break;}
  6886. case 645:
  6887. #line 3610 "cp-parse.y"
  6888. {
  6889.           yyval.ttype = chainon (yyval.ttype, void_list_node);
  6890.           TREE_PARMLIST (yyval.ttype) = 1;
  6891.         ;
  6892.     break;}
  6893. case 646:
  6894. #line 3615 "cp-parse.y"
  6895. {
  6896.           TREE_PARMLIST (yyval.ttype) = 1;
  6897.         ;
  6898.     break;}
  6899. case 647:
  6900. #line 3620 "cp-parse.y"
  6901. {
  6902.           TREE_PARMLIST (yyval.ttype) = 1;
  6903.         ;
  6904.     break;}
  6905. case 648:
  6906. #line 3624 "cp-parse.y"
  6907. {
  6908.           /* ARM $8.2.5 has this as a boxed-off comment.  */
  6909.           if (pedantic)
  6910.             warning ("use of `...' without a first argument is non-portable");
  6911.           yyval.ttype = NULL_TREE;
  6912.         ;
  6913.     break;}
  6914. case 649:
  6915. #line 3631 "cp-parse.y"
  6916. {
  6917.           TREE_PARMLIST (yyval.ttype) = 1;
  6918.         ;
  6919.     break;}
  6920. case 650:
  6921. #line 3635 "cp-parse.y"
  6922. {
  6923.           TREE_PARMLIST (yyval.ttype) = 1;
  6924.         ;
  6925.     break;}
  6926. case 651:
  6927. #line 3639 "cp-parse.y"
  6928. {
  6929.           /* This helps us recover from really nasty
  6930.              parse errors, for example, a missing right
  6931.              parenthesis.  */
  6932.           yyerror ("possibly missing ')'");
  6933.           yyval.ttype = chainon (yyval.ttype, void_list_node);
  6934.           TREE_PARMLIST (yyval.ttype) = 1;
  6935.           yyungetc (':', 0);
  6936.           yychar = ')';
  6937.         ;
  6938.     break;}
  6939. case 652:
  6940. #line 3654 "cp-parse.y"
  6941. { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
  6942.     break;}
  6943. case 653:
  6944. #line 3656 "cp-parse.y"
  6945. { yyval.ttype = build_tree_list (yyvsp[0].ttype, yyval.ttype); ;
  6946.     break;}
  6947. case 654:
  6948. #line 3658 "cp-parse.y"
  6949. { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
  6950.     break;}
  6951. case 655:
  6952. #line 3660 "cp-parse.y"
  6953. { yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ;
  6954.     break;}
  6955. case 656:
  6956. #line 3662 "cp-parse.y"
  6957. { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
  6958.     break;}
  6959. case 657:
  6960. #line 3664 "cp-parse.y"
  6961. { yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ;
  6962.     break;}
  6963. case 658:
  6964. #line 3685 "cp-parse.y"
  6965. { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[0].ttype);
  6966.           see_typename (); ;
  6967.     break;}
  6968. case 659:
  6969. #line 3688 "cp-parse.y"
  6970. { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[0].ttype);
  6971.           see_typename (); ;
  6972.     break;}
  6973. case 662:
  6974. #line 3695 "cp-parse.y"
  6975. { yyval.ttype = yyvsp[0].ttype; ;
  6976.     break;}
  6977. case 663:
  6978. #line 3699 "cp-parse.y"
  6979. { see_typename (); ;
  6980.     break;}
  6981. case 664:
  6982. #line 3703 "cp-parse.y"
  6983. { dont_see_typename (); ;
  6984.     break;}
  6985. case 665:
  6986. #line 3722 "cp-parse.y"
  6987. {
  6988.           warning ("type specifier omitted for parameter");
  6989.           yyval.ttype = build_tree_list (TREE_PURPOSE (TREE_VALUE (yyvsp[-2].ttype)), yyval.ttype);
  6990.         ;
  6991.     break;}
  6992. case 666:
  6993. #line 3730 "cp-parse.y"
  6994. { yyval.ttype = NULL_TREE; ;
  6995.     break;}
  6996. case 667:
  6997. #line 3732 "cp-parse.y"
  6998. { yyval.ttype = yyvsp[0].ttype; ;
  6999.     break;}
  7000. case 668:
  7001. #line 3734 "cp-parse.y"
  7002. { yyval.ttype = yyvsp[-1].ttype; ;
  7003.     break;}
  7004. case 669:
  7005. #line 3739 "cp-parse.y"
  7006. { yyval.ttype = void_list_node; ;
  7007.     break;}
  7008. case 670:
  7009. #line 3741 "cp-parse.y"
  7010. { yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
  7011.     break;}
  7012. case 671:
  7013. #line 3743 "cp-parse.y"
  7014. { yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
  7015.     break;}
  7016. case 672:
  7017. #line 3745 "cp-parse.y"
  7018. { yyval.ttype = build_decl_list (void_type_node, yyvsp[0].ttype); ;
  7019.     break;}
  7020. case 673:
  7021. #line 3747 "cp-parse.y"
  7022. { yyval.ttype = build_decl_list (void_type_node, yyvsp[0].ttype); ;
  7023.     break;}
  7024. case 674:
  7025. #line 3749 "cp-parse.y"
  7026. { yyval.ttype = build_decl_list (yyval.ttype, yyvsp[0].ttype); ;
  7027.     break;}
  7028. case 676:
  7029. #line 3755 "cp-parse.y"
  7030. { yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
  7031.     break;}
  7032. case 678:
  7033. #line 3761 "cp-parse.y"
  7034. {
  7035.             TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype;
  7036.           yyval.ttype = yyvsp[0].ttype;
  7037.         ;
  7038.     break;}
  7039. case 680:
  7040. #line 3770 "cp-parse.y"
  7041. {
  7042.             TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype;
  7043.           yyval.ttype = yyvsp[0].ttype;
  7044.         ;
  7045.     break;}
  7046. case 681:
  7047. #line 3778 "cp-parse.y"
  7048. { yyval.ttype = ansi_opname[MULT_EXPR]; ;
  7049.     break;}
  7050. case 682:
  7051. #line 3780 "cp-parse.y"
  7052. { yyval.ttype = ansi_opname[TRUNC_DIV_EXPR]; ;
  7053.     break;}
  7054. case 683:
  7055. #line 3782 "cp-parse.y"
  7056. { yyval.ttype = ansi_opname[TRUNC_MOD_EXPR]; ;
  7057.     break;}
  7058. case 684:
  7059. #line 3784 "cp-parse.y"
  7060. { yyval.ttype = ansi_opname[PLUS_EXPR]; ;
  7061.     break;}
  7062. case 685:
  7063. #line 3786 "cp-parse.y"
  7064. { yyval.ttype = ansi_opname[MINUS_EXPR]; ;
  7065.     break;}
  7066. case 686:
  7067. #line 3788 "cp-parse.y"
  7068. { yyval.ttype = ansi_opname[BIT_AND_EXPR]; ;
  7069.     break;}
  7070. case 687:
  7071. #line 3790 "cp-parse.y"
  7072. { yyval.ttype = ansi_opname[BIT_IOR_EXPR]; ;
  7073.     break;}
  7074. case 688:
  7075. #line 3792 "cp-parse.y"
  7076. { yyval.ttype = ansi_opname[BIT_XOR_EXPR]; ;
  7077.     break;}
  7078. case 689:
  7079. #line 3794 "cp-parse.y"
  7080. { yyval.ttype = ansi_opname[BIT_NOT_EXPR]; ;
  7081.     break;}
  7082. case 690:
  7083. #line 3796 "cp-parse.y"
  7084. { yyval.ttype = ansi_opname[COMPOUND_EXPR]; ;
  7085.     break;}
  7086. case 691:
  7087. #line 3798 "cp-parse.y"
  7088. { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
  7089.     break;}
  7090. case 692:
  7091. #line 3800 "cp-parse.y"
  7092. { yyval.ttype = ansi_opname[LT_EXPR]; ;
  7093.     break;}
  7094. case 693:
  7095. #line 3802 "cp-parse.y"
  7096. { yyval.ttype = ansi_opname[GT_EXPR]; ;
  7097.     break;}
  7098. case 694:
  7099. #line 3804 "cp-parse.y"
  7100. { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
  7101.     break;}
  7102. case 695:
  7103. #line 3806 "cp-parse.y"
  7104. { yyval.ttype = ansi_assopname[yyvsp[0].code]; ;
  7105.     break;}
  7106. case 696:
  7107. #line 3808 "cp-parse.y"
  7108. {
  7109.           yyval.ttype = ansi_opname [MODIFY_EXPR];
  7110.           if (current_class_type)
  7111.             {
  7112.               TYPE_HAS_ASSIGNMENT (current_class_type) = 1;
  7113.               TYPE_GETS_ASSIGNMENT (current_class_type) = 1;
  7114.             }
  7115.         ;
  7116.     break;}
  7117. case 697:
  7118. #line 3817 "cp-parse.y"
  7119. { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
  7120.     break;}
  7121. case 698:
  7122. #line 3819 "cp-parse.y"
  7123. { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
  7124.     break;}
  7125. case 699:
  7126. #line 3821 "cp-parse.y"
  7127. { yyval.ttype = ansi_opname[POSTINCREMENT_EXPR]; ;
  7128.     break;}
  7129. case 700:
  7130. #line 3823 "cp-parse.y"
  7131. { yyval.ttype = ansi_opname[PREDECREMENT_EXPR]; ;
  7132.     break;}
  7133. case 701:
  7134. #line 3825 "cp-parse.y"
  7135. { yyval.ttype = ansi_opname[TRUTH_ANDIF_EXPR]; ;
  7136.     break;}
  7137. case 702:
  7138. #line 3827 "cp-parse.y"
  7139. { yyval.ttype = ansi_opname[TRUTH_ORIF_EXPR]; ;
  7140.     break;}
  7141. case 703:
  7142. #line 3829 "cp-parse.y"
  7143. { yyval.ttype = ansi_opname[TRUTH_NOT_EXPR]; ;
  7144.     break;}
  7145. case 704:
  7146. #line 3831 "cp-parse.y"
  7147. { yyval.ttype = ansi_opname[COND_EXPR]; ;
  7148.     break;}
  7149. case 705:
  7150. #line 3833 "cp-parse.y"
  7151. { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
  7152.     break;}
  7153. case 706:
  7154. #line 3835 "cp-parse.y"
  7155. { yyval.ttype = ansi_opname[COMPONENT_REF];
  7156.           if (current_class_type)
  7157.             {
  7158.               tree t = current_class_type;
  7159.               while (t)
  7160.             {
  7161.               TYPE_OVERLOADS_ARROW (t) = 1;
  7162.               t = TYPE_NEXT_VARIANT (t);
  7163.             }
  7164.             }
  7165.         ;
  7166.     break;}
  7167. case 707:
  7168. #line 3847 "cp-parse.y"
  7169. { yyval.ttype = ansi_opname[MEMBER_REF];
  7170.           if (current_class_type)
  7171.             {
  7172.               tree t = current_class_type;
  7173.               while (t)
  7174.             {
  7175.               TYPE_OVERLOADS_ARROW (t) = 1;
  7176.               t = TYPE_NEXT_VARIANT (t);
  7177.             }
  7178.             }
  7179.         ;
  7180.     break;}
  7181. case 708:
  7182. #line 3859 "cp-parse.y"
  7183. { yyval.ttype = ansi_opname[CALL_EXPR];
  7184.           if (current_class_type)
  7185.             {
  7186.               tree t = current_class_type;
  7187.               while (t)
  7188.             {
  7189.               TYPE_OVERLOADS_CALL_EXPR (t) = 1;
  7190.               t = TYPE_NEXT_VARIANT (t);
  7191.             }
  7192.             }
  7193.         ;
  7194.     break;}
  7195. case 709:
  7196. #line 3871 "cp-parse.y"
  7197. { yyval.ttype = ansi_opname[ARRAY_REF];
  7198.           if (current_class_type)
  7199.             {
  7200.               tree t = current_class_type;
  7201.               while (t)
  7202.             {
  7203.               TYPE_OVERLOADS_ARRAY_REF (t) = 1;
  7204.               t = TYPE_NEXT_VARIANT (t);
  7205.             }
  7206.             }
  7207.         ;
  7208.     break;}
  7209. case 710:
  7210. #line 3883 "cp-parse.y"
  7211. {
  7212.           yyval.ttype = ansi_opname[NEW_EXPR];
  7213.           if (current_class_type)
  7214.             {
  7215.               tree t = current_class_type;
  7216.               while (t)
  7217.             {
  7218.               TREE_GETS_NEW (t) = 1;
  7219.               t = TYPE_NEXT_VARIANT (t);
  7220.             }
  7221.             }
  7222.         ;
  7223.     break;}
  7224. case 711:
  7225. #line 3911 "cp-parse.y"
  7226. {
  7227.           yyval.ttype = ansi_opname[DELETE_EXPR];
  7228.           if (current_class_type)
  7229.             {
  7230.               tree t = current_class_type;
  7231.               while (t)
  7232.             {
  7233.               TREE_GETS_DELETE (t) = 1;
  7234.               t = TYPE_NEXT_VARIANT (t);
  7235.             }
  7236.             }
  7237.         ;
  7238.     break;}
  7239. case 712:
  7240. #line 3942 "cp-parse.y"
  7241. { yyval.ttype = build1 (TYPE_EXPR, yyvsp[-1].ttype, yyvsp[0].ttype); ;
  7242.     break;}
  7243. case 713:
  7244. #line 3944 "cp-parse.y"
  7245. { yyval.ttype = ansi_opname[ERROR_MARK]; ;
  7246.     break;}
  7247. }
  7248.    /* the action file gets copied in in place of this dollarsign */
  7249. #line 465 "/usr/lib/bison.simple"
  7250.  
  7251.   yyvsp -= yylen;
  7252.   yyssp -= yylen;
  7253. #ifdef YYLSP_NEEDED
  7254.   yylsp -= yylen;
  7255. #endif
  7256.  
  7257. #if YYDEBUG != 0
  7258.   if (yydebug)
  7259.     {
  7260.       short *ssp1 = yyss - 1;
  7261.       fprintf (stderr, "state stack now");
  7262.       while (ssp1 != yyssp)
  7263.     fprintf (stderr, " %d", *++ssp1);
  7264.       fprintf (stderr, "\n");
  7265.     }
  7266. #endif
  7267.  
  7268.   *++yyvsp = yyval;
  7269.  
  7270. #ifdef YYLSP_NEEDED
  7271.   yylsp++;
  7272.   if (yylen == 0)
  7273.     {
  7274.       yylsp->first_line = yylloc.first_line;
  7275.       yylsp->first_column = yylloc.first_column;
  7276.       yylsp->last_line = (yylsp-1)->last_line;
  7277.       yylsp->last_column = (yylsp-1)->last_column;
  7278.       yylsp->text = 0;
  7279.     }
  7280.   else
  7281.     {
  7282.       yylsp->last_line = (yylsp+yylen-1)->last_line;
  7283.       yylsp->last_column = (yylsp+yylen-1)->last_column;
  7284.     }
  7285. #endif
  7286.  
  7287.   /* Now "shift" the result of the reduction.
  7288.      Determine what state that goes to,
  7289.      based on the state we popped back to
  7290.      and the rule number reduced by.  */
  7291.  
  7292.   yyn = yyr1[yyn];
  7293.  
  7294.   yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
  7295.   if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
  7296.     yystate = yytable[yystate];
  7297.   else
  7298.     yystate = yydefgoto[yyn - YYNTBASE];
  7299.  
  7300.   goto yynewstate;
  7301.  
  7302. yyerrlab:   /* here on detecting error */
  7303.  
  7304.   if (! yyerrstatus)
  7305.     /* If not already recovering from an error, report this error.  */
  7306.     {
  7307.       ++yynerrs;
  7308.  
  7309. #ifdef YYERROR_VERBOSE
  7310.       yyn = yypact[yystate];
  7311.  
  7312.       if (yyn > YYFLAG && yyn < YYLAST)
  7313.     {
  7314.       int size = 0;
  7315.       char *msg;
  7316.       int x, count;
  7317.  
  7318.       count = 0;
  7319.       /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
  7320.       for (x = (yyn < 0 ? -yyn : 0);
  7321.            x < (sizeof(yytname) / sizeof(char *)); x++)
  7322.         if (yycheck[x + yyn] == x)
  7323.           size += strlen(yytname[x]) + 15, count++;
  7324.       msg = (char *) malloc(size + 15);
  7325.       if (msg != 0)
  7326.         {
  7327.           strcpy(msg, "parse error");
  7328.  
  7329.           if (count < 5)
  7330.         {
  7331.           count = 0;
  7332.           for (x = (yyn < 0 ? -yyn : 0);
  7333.                x < (sizeof(yytname) / sizeof(char *)); x++)
  7334.             if (yycheck[x + yyn] == x)
  7335.               {
  7336.             strcat(msg, count == 0 ? ", expecting `" : " or `");
  7337.             strcat(msg, yytname[x]);
  7338.             strcat(msg, "'");
  7339.             count++;
  7340.               }
  7341.         }
  7342.           yyerror(msg);
  7343.           free(msg);
  7344.         }
  7345.       else
  7346.         yyerror ("parse error; also virtual memory exceeded");
  7347.     }
  7348.       else
  7349. #endif /* YYERROR_VERBOSE */
  7350.     yyerror("parse error");
  7351.     }
  7352.  
  7353.   goto yyerrlab1;
  7354. yyerrlab1:   /* here on error raised explicitly by an action */
  7355.  
  7356.   if (yyerrstatus == 3)
  7357.     {
  7358.       /* if just tried and failed to reuse lookahead token after an error, discard it.  */
  7359.  
  7360.       /* return failure if at end of input */
  7361.       if (yychar == YYEOF)
  7362.     YYABORT;
  7363.  
  7364. #if YYDEBUG != 0
  7365.       if (yydebug)
  7366.     fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
  7367. #endif
  7368.  
  7369.       yychar = YYEMPTY;
  7370.     }
  7371.  
  7372.   /* Else will try to reuse lookahead token
  7373.      after shifting the error token.  */
  7374.  
  7375.   yyerrstatus = 3;        /* Each real token shifted decrements this */
  7376.  
  7377.   goto yyerrhandle;
  7378.  
  7379. yyerrdefault:  /* current state does not do anything special for the error token. */
  7380.  
  7381. #if 0
  7382.   /* This is wrong; only states that explicitly want error tokens
  7383.      should shift them.  */
  7384.   yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
  7385.   if (yyn) goto yydefault;
  7386. #endif
  7387.  
  7388. yyerrpop:   /* pop the current state because it cannot handle the error token */
  7389.  
  7390.   if (yyssp == yyss) YYABORT;
  7391.   yyvsp--;
  7392.   yystate = *--yyssp;
  7393. #ifdef YYLSP_NEEDED
  7394.   yylsp--;
  7395. #endif
  7396.  
  7397. #if YYDEBUG != 0
  7398.   if (yydebug)
  7399.     {
  7400.       short *ssp1 = yyss - 1;
  7401.       fprintf (stderr, "Error: state stack now");
  7402.       while (ssp1 != yyssp)
  7403.     fprintf (stderr, " %d", *++ssp1);
  7404.       fprintf (stderr, "\n");
  7405.     }
  7406. #endif
  7407.  
  7408. yyerrhandle:
  7409.  
  7410.   yyn = yypact[yystate];
  7411.   if (yyn == YYFLAG)
  7412.     goto yyerrdefault;
  7413.  
  7414.   yyn += YYTERROR;
  7415.   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
  7416.     goto yyerrdefault;
  7417.  
  7418.   yyn = yytable[yyn];
  7419.   if (yyn < 0)
  7420.     {
  7421.       if (yyn == YYFLAG)
  7422.     goto yyerrpop;
  7423.       yyn = -yyn;
  7424.       goto yyreduce;
  7425.     }
  7426.   else if (yyn == 0)
  7427.     goto yyerrpop;
  7428.  
  7429.   if (yyn == YYFINAL)
  7430.     YYACCEPT;
  7431.  
  7432. #if YYDEBUG != 0
  7433.   if (yydebug)
  7434.     fprintf(stderr, "Shifting error token, ");
  7435. #endif
  7436.  
  7437.   *++yyvsp = yylval;
  7438. #ifdef YYLSP_NEEDED
  7439.   *++yylsp = yylloc;
  7440. #endif
  7441.  
  7442.   yystate = yyn;
  7443.   goto yynewstate;
  7444. }
  7445. #line 3947 "cp-parse.y"
  7446.  
  7447.