home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD2.mdf / gnu / djgpp / src / gcc-257 / cp-parse.c < prev    next >
Encoding:
C/C++ Source or Header  |  1993-11-27  |  301.8 KB  |  7,465 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/local/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/local/lib/bison.simple"
  2842.  
  2843. /* The user can define YYPARSE_PARAM as the name of an argument to be passed
  2844.    into yyparse.  The argument should have type void *.
  2845.    It should actually point to an object.
  2846.    Grammar actions can access the variable by casting it
  2847.    to the proper pointer type.  */
  2848.  
  2849. #ifdef YYPARSE_PARAM
  2850. #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
  2851. #else
  2852. #define YYPARSE_PARAM
  2853. #define YYPARSE_PARAM_DECL
  2854. #endif
  2855.  
  2856. int
  2857. yyparse(YYPARSE_PARAM)
  2858.      YYPARSE_PARAM_DECL
  2859. {
  2860.   register int yystate;
  2861.   register int yyn;
  2862.   register short *yyssp;
  2863.   register YYSTYPE *yyvsp;
  2864.   int yyerrstatus;    /*  number of tokens to shift before error messages enabled */
  2865.   int yychar1 = 0;        /*  lookahead token as an internal (translated) token number */
  2866.  
  2867.   short    yyssa[YYINITDEPTH];    /*  the state stack            */
  2868.   YYSTYPE yyvsa[YYINITDEPTH];    /*  the semantic value stack        */
  2869.  
  2870.   short *yyss = yyssa;        /*  refer to the stacks thru separate pointers */
  2871.   YYSTYPE *yyvs = yyvsa;    /*  to allow yyoverflow to reallocate them elsewhere */
  2872.  
  2873. #ifdef YYLSP_NEEDED
  2874.   YYLTYPE yylsa[YYINITDEPTH];    /*  the location stack            */
  2875.   YYLTYPE *yyls = yylsa;
  2876.   YYLTYPE *yylsp;
  2877.  
  2878. #define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
  2879. #else
  2880. #define YYPOPSTACK   (yyvsp--, yyssp--)
  2881. #endif
  2882.  
  2883.   int yystacksize = YYINITDEPTH;
  2884.  
  2885. #ifdef YYPURE
  2886.   int yychar;
  2887.   YYSTYPE yylval;
  2888.   int yynerrs;
  2889. #ifdef YYLSP_NEEDED
  2890.   YYLTYPE yylloc;
  2891. #endif
  2892. #endif
  2893.  
  2894.   YYSTYPE yyval;        /*  the variable used to return        */
  2895.                 /*  semantic values from the action    */
  2896.                 /*  routines                */
  2897.  
  2898.   int yylen;
  2899.  
  2900. #if YYDEBUG != 0
  2901.   if (yydebug)
  2902.     fprintf(stderr, "Starting parse\n");
  2903. #endif
  2904.  
  2905.   yystate = 0;
  2906.   yyerrstatus = 0;
  2907.   yynerrs = 0;
  2908.   yychar = YYEMPTY;        /* Cause a token to be read.  */
  2909.  
  2910.   /* Initialize stack pointers.
  2911.      Waste one element of value and location stack
  2912.      so that they stay on the same level as the state stack.
  2913.      The wasted elements are never initialized.  */
  2914.  
  2915.   yyssp = yyss - 1;
  2916.   yyvsp = yyvs;
  2917. #ifdef YYLSP_NEEDED
  2918.   yylsp = yyls;
  2919. #endif
  2920.  
  2921. /* Push a new state, which is found in  yystate  .  */
  2922. /* In all cases, when you get here, the value and location stacks
  2923.    have just been pushed. so pushing a state here evens the stacks.  */
  2924. yynewstate:
  2925.  
  2926.   *++yyssp = yystate;
  2927.  
  2928.   if (yyssp >= yyss + yystacksize - 1)
  2929.     {
  2930.       /* Give user a chance to reallocate the stack */
  2931.       /* Use copies of these so that the &'s don't force the real ones into memory. */
  2932.       YYSTYPE *yyvs1 = yyvs;
  2933.       short *yyss1 = yyss;
  2934. #ifdef YYLSP_NEEDED
  2935.       YYLTYPE *yyls1 = yyls;
  2936. #endif
  2937.  
  2938.       /* Get the current used size of the three stacks, in elements.  */
  2939.       int size = yyssp - yyss + 1;
  2940.  
  2941. #ifdef yyoverflow
  2942.       /* Each stack pointer address is followed by the size of
  2943.      the data in use in that stack, in bytes.  */
  2944. #ifdef YYLSP_NEEDED
  2945.       /* This used to be a conditional around just the two extra args,
  2946.      but that might be undefined if yyoverflow is a macro.  */
  2947.       yyoverflow("parser stack overflow",
  2948.          &yyss1, size * sizeof (*yyssp),
  2949.          &yyvs1, size * sizeof (*yyvsp),
  2950.          &yyls1, size * sizeof (*yylsp),
  2951.          &yystacksize);
  2952. #else
  2953.       yyoverflow("parser stack overflow",
  2954.          &yyss1, size * sizeof (*yyssp),
  2955.          &yyvs1, size * sizeof (*yyvsp),
  2956.          &yystacksize);
  2957. #endif
  2958.  
  2959.       yyss = yyss1; yyvs = yyvs1;
  2960. #ifdef YYLSP_NEEDED
  2961.       yyls = yyls1;
  2962. #endif
  2963. #else /* no yyoverflow */
  2964.       /* Extend the stack our own way.  */
  2965.       if (yystacksize >= YYMAXDEPTH)
  2966.     {
  2967.       yyerror("parser stack overflow");
  2968.       return 2;
  2969.     }
  2970.       yystacksize *= 2;
  2971.       if (yystacksize > YYMAXDEPTH)
  2972.     yystacksize = YYMAXDEPTH;
  2973.       yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
  2974.       __yy_bcopy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp));
  2975.       yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
  2976.       __yy_bcopy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp));
  2977. #ifdef YYLSP_NEEDED
  2978.       yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
  2979.       __yy_bcopy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp));
  2980. #endif
  2981. #endif /* no yyoverflow */
  2982.  
  2983.       yyssp = yyss + size - 1;
  2984.       yyvsp = yyvs + size - 1;
  2985. #ifdef YYLSP_NEEDED
  2986.       yylsp = yyls + size - 1;
  2987. #endif
  2988.  
  2989. #if YYDEBUG != 0
  2990.       if (yydebug)
  2991.     fprintf(stderr, "Stack size increased to %d\n", yystacksize);
  2992. #endif
  2993.  
  2994.       if (yyssp >= yyss + yystacksize - 1)
  2995.     YYABORT;
  2996.     }
  2997.  
  2998. #if YYDEBUG != 0
  2999.   if (yydebug)
  3000.     fprintf(stderr, "Entering state %d\n", yystate);
  3001. #endif
  3002.  
  3003.   goto yybackup;
  3004.  yybackup:
  3005.  
  3006. /* Do appropriate processing given the current state.  */
  3007. /* Read a lookahead token if we need one and don't already have one.  */
  3008. /* yyresume: */
  3009.  
  3010.   /* First try to decide what to do without reference to lookahead token.  */
  3011.  
  3012.   yyn = yypact[yystate];
  3013.   if (yyn == YYFLAG)
  3014.     goto yydefault;
  3015.  
  3016.   /* Not known => get a lookahead token if don't already have one.  */
  3017.  
  3018.   /* yychar is either YYEMPTY or YYEOF
  3019.      or a valid token in external form.  */
  3020.  
  3021.   if (yychar == YYEMPTY)
  3022.     {
  3023. #if YYDEBUG != 0
  3024.       if (yydebug)
  3025.     fprintf(stderr, "Reading a token: ");
  3026. #endif
  3027.       yychar = YYLEX;
  3028.     }
  3029.  
  3030.   /* Convert token to internal form (in yychar1) for indexing tables with */
  3031.  
  3032.   if (yychar <= 0)        /* This means end of input. */
  3033.     {
  3034.       yychar1 = 0;
  3035.       yychar = YYEOF;        /* Don't call YYLEX any more */
  3036.  
  3037. #if YYDEBUG != 0
  3038.       if (yydebug)
  3039.     fprintf(stderr, "Now at end of input.\n");
  3040. #endif
  3041.     }
  3042.   else
  3043.     {
  3044.       yychar1 = YYTRANSLATE(yychar);
  3045.  
  3046. #if YYDEBUG != 0
  3047.       if (yydebug)
  3048.     {
  3049.       fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
  3050.       /* Give the individual parser a way to print the precise meaning
  3051.          of a token, for further debugging info.  */
  3052. #ifdef YYPRINT
  3053.       YYPRINT (stderr, yychar, yylval);
  3054. #endif
  3055.       fprintf (stderr, ")\n");
  3056.     }
  3057. #endif
  3058.     }
  3059.  
  3060.   yyn += yychar1;
  3061.   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
  3062.     goto yydefault;
  3063.  
  3064.   yyn = yytable[yyn];
  3065.  
  3066.   /* yyn is what to do for this token type in this state.
  3067.      Negative => reduce, -yyn is rule number.
  3068.      Positive => shift, yyn is new state.
  3069.        New state is final state => don't bother to shift,
  3070.        just return success.
  3071.      0, or most negative number => error.  */
  3072.  
  3073.   if (yyn < 0)
  3074.     {
  3075.       if (yyn == YYFLAG)
  3076.     goto yyerrlab;
  3077.       yyn = -yyn;
  3078.       goto yyreduce;
  3079.     }
  3080.   else if (yyn == 0)
  3081.     goto yyerrlab;
  3082.  
  3083.   if (yyn == YYFINAL)
  3084.     YYACCEPT;
  3085.  
  3086.   /* Shift the lookahead token.  */
  3087.  
  3088. #if YYDEBUG != 0
  3089.   if (yydebug)
  3090.     fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
  3091. #endif
  3092.  
  3093.   /* Discard the token being shifted unless it is eof.  */
  3094.   if (yychar != YYEOF)
  3095.     yychar = YYEMPTY;
  3096.  
  3097.   *++yyvsp = yylval;
  3098. #ifdef YYLSP_NEEDED
  3099.   *++yylsp = yylloc;
  3100. #endif
  3101.  
  3102.   /* count tokens shifted since error; after three, turn off error status.  */
  3103.   if (yyerrstatus) yyerrstatus--;
  3104.  
  3105.   yystate = yyn;
  3106.   goto yynewstate;
  3107.  
  3108. /* Do the default action for the current state.  */
  3109. yydefault:
  3110.  
  3111.   yyn = yydefact[yystate];
  3112.   if (yyn == 0)
  3113.     goto yyerrlab;
  3114.  
  3115. /* Do a reduction.  yyn is the number of a rule to reduce with.  */
  3116. yyreduce:
  3117.   yylen = yyr2[yyn];
  3118.   if (yylen > 0)
  3119.     yyval = yyvsp[1-yylen]; /* implement default value of the action */
  3120.  
  3121. #if YYDEBUG != 0
  3122.   if (yydebug)
  3123.     {
  3124.       int i;
  3125.  
  3126.       fprintf (stderr, "Reducing via rule %d (line %d), ",
  3127.            yyn, yyrline[yyn]);
  3128.  
  3129.       /* Print the symbols being reduced, and their result.  */
  3130.       for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
  3131.     fprintf (stderr, "%s ", yytname[yyrhs[i]]);
  3132.       fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
  3133.     }
  3134. #endif
  3135.  
  3136.  
  3137.   switch (yyn) {
  3138.  
  3139. case 2:
  3140. #line 287 "cp-parse.y"
  3141. {
  3142.           /* In case there were missing closebraces,
  3143.              get us back to the global binding level.  */
  3144.           while (! global_bindings_p ())
  3145.             poplevel (0, 0, 0);
  3146.           finish_file ();
  3147.         ;
  3148.     break;}
  3149. case 3:
  3150. #line 301 "cp-parse.y"
  3151. { yyval.ttype = NULL_TREE; ;
  3152.     break;}
  3153. case 4:
  3154. #line 302 "cp-parse.y"
  3155. {yyval.ttype = NULL_TREE; ;
  3156.     break;}
  3157. case 5:
  3158. #line 304 "cp-parse.y"
  3159. {yyval.ttype = NULL_TREE; ;
  3160.     break;}
  3161. case 6:
  3162. #line 308 "cp-parse.y"
  3163. { have_extern_spec = 1;
  3164.           used_extern_spec = 0;
  3165.           yyval.ttype = NULL_TREE; ;
  3166.     break;}
  3167. case 7:
  3168. #line 313 "cp-parse.y"
  3169. { have_extern_spec = 0; ;
  3170.     break;}
  3171. case 8:
  3172. #line 317 "cp-parse.y"
  3173. { if (pedantic)
  3174.               pedwarn ("ANSI C++ forbids use of `asm' keyword"); ;
  3175.     break;}
  3176. case 10:
  3177. #line 324 "cp-parse.y"
  3178. { if (pending_inlines) do_pending_inlines (); ;
  3179.     break;}
  3180. case 11:
  3181. #line 326 "cp-parse.y"
  3182. { if (pending_inlines) do_pending_inlines (); ;
  3183.     break;}
  3184. case 12:
  3185. #line 328 "cp-parse.y"
  3186. { if (pending_inlines) do_pending_inlines (); ;
  3187.     break;}
  3188. case 14:
  3189. #line 331 "cp-parse.y"
  3190. { if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
  3191.           assemble_asm (yyvsp[-2].ttype); ;
  3192.     break;}
  3193. case 15:
  3194. #line 334 "cp-parse.y"
  3195. { pop_lang_context (); ;
  3196.     break;}
  3197. case 16:
  3198. #line 336 "cp-parse.y"
  3199. { pop_lang_context (); ;
  3200.     break;}
  3201. case 17:
  3202. #line 338 "cp-parse.y"
  3203. { if (pending_inlines) do_pending_inlines ();
  3204.           pop_lang_context (); ;
  3205.     break;}
  3206. case 18:
  3207. #line 341 "cp-parse.y"
  3208. { if (pending_inlines) do_pending_inlines ();
  3209.           pop_lang_context (); ;
  3210.     break;}
  3211. case 19:
  3212. #line 347 "cp-parse.y"
  3213. { push_lang_context (yyvsp[0].ttype); ;
  3214.     break;}
  3215. case 20:
  3216. #line 352 "cp-parse.y"
  3217. { begin_template_parm_list (); ;
  3218.     break;}
  3219. case 21:
  3220. #line 354 "cp-parse.y"
  3221. { yyval.ttype = end_template_parm_list (yyvsp[-1].ttype); ;
  3222.     break;}
  3223. case 22:
  3224. #line 359 "cp-parse.y"
  3225. { yyval.ttype = process_template_parm (NULL_TREE, yyvsp[0].ttype); ;
  3226.     break;}
  3227. case 23:
  3228. #line 361 "cp-parse.y"
  3229. { yyval.ttype = process_template_parm (yyvsp[-2].ttype, yyvsp[0].ttype); ;
  3230.     break;}
  3231. case 24:
  3232. #line 372 "cp-parse.y"
  3233. {
  3234.           if (yyvsp[-1].ttype != class_type_node)
  3235.             error ("template type parameter must use keyword `class'");
  3236.           yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE);
  3237.         ;
  3238.     break;}
  3239. case 25:
  3240. #line 378 "cp-parse.y"
  3241. {
  3242.           if (yyvsp[-3].ttype != class_type_node)
  3243.             error ("template type parameter must use keyword `class'");
  3244.           warning ("restricted template type parameters not yet implemented");
  3245.           yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype);
  3246.         ;
  3247.     break;}
  3248. case 26:
  3249. #line 385 "cp-parse.y"
  3250. {
  3251.           if (yyvsp[-2].ttype != class_type_node)
  3252.             error ("template type parameter must use keyword `class'");
  3253.           warning ("restricted template type parameters not yet implemented");
  3254.           yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype);
  3255.         ;
  3256.     break;}
  3257. case 28:
  3258. #line 396 "cp-parse.y"
  3259. { warning ("use of `overload' is an anachronism"); ;
  3260.     break;}
  3261. case 29:
  3262. #line 400 "cp-parse.y"
  3263. { declare_overloaded (yyvsp[0].ttype); ;
  3264.     break;}
  3265. case 30:
  3266. #line 402 "cp-parse.y"
  3267. { declare_overloaded (yyvsp[0].ttype); ;
  3268.     break;}
  3269. case 31:
  3270. #line 409 "cp-parse.y"
  3271. { yychar = '{'; goto template1; ;
  3272.     break;}
  3273. case 33:
  3274. #line 412 "cp-parse.y"
  3275. { yychar = '{'; goto template1; ;
  3276.     break;}
  3277. case 35:
  3278. #line 415 "cp-parse.y"
  3279. { yychar = ':'; goto template1; ;
  3280.     break;}
  3281. case 37:
  3282. #line 418 "cp-parse.y"
  3283. {
  3284.           yychar = ':';
  3285.         template1:
  3286.           if (current_aggr == exception_type_node)
  3287.             error ("template type must define an aggregate or union");
  3288.           /* Maybe pedantic warning for union?
  3289.              How about an enum? :-)  */
  3290.           end_template_decl (yyvsp[-2].ttype, yyvsp[-1].ttype, current_aggr);
  3291.           reinit_parse_for_template (yychar, yyvsp[-2].ttype, yyvsp[-1].ttype);
  3292.           yychar = YYEMPTY;
  3293.         ;
  3294.     break;}
  3295. case 39:
  3296. #line 431 "cp-parse.y"
  3297. {
  3298.           end_template_decl (yyvsp[-2].ttype, yyvsp[-1].ttype, current_aggr);
  3299.           /* declare $2 as template name with $1 parm list */
  3300.         ;
  3301.     break;}
  3302. case 40:
  3303. #line 436 "cp-parse.y"
  3304. {
  3305.           end_template_decl (yyvsp[-2].ttype, yyvsp[-1].ttype, current_aggr);
  3306.           /* declare $2 as template name with $1 parm list */
  3307.         ;
  3308.     break;}
  3309. case 41:
  3310. #line 443 "cp-parse.y"
  3311. {
  3312.           tree d;
  3313.           int momentary;
  3314.           momentary = suspend_momentary ();
  3315.           d = start_decl (yyvsp[-4].ttype, /*current_declspecs*/NULL_TREE, 0, yyvsp[-3].ttype);
  3316.           cplus_decl_attributes (d, yyvsp[-1].ttype);
  3317.           finish_decl (d, NULL_TREE, yyvsp[-2].ttype, 0);
  3318.           end_template_decl (yyvsp[-5].ttype, d, 0);
  3319.           if (yyvsp[0].itype != ';')
  3320.             reinit_parse_for_template ((int) yyvsp[0].itype, yyvsp[-5].ttype, d);
  3321.           resume_momentary (momentary);
  3322.         ;
  3323.     break;}
  3324. case 42:
  3325. #line 458 "cp-parse.y"
  3326. {
  3327.           tree d;
  3328.           int momentary;
  3329.  
  3330.           current_declspecs = yyvsp[-5].ttype;
  3331.           momentary = suspend_momentary ();
  3332.           d = start_decl (yyvsp[-4].ttype, current_declspecs,
  3333.                   0, yyvsp[-3].ttype);
  3334.           cplus_decl_attributes (d, yyvsp[-1].ttype);
  3335.           finish_decl (d, NULL_TREE, yyvsp[-2].ttype, 0);
  3336.           end_exception_decls ();
  3337.           end_template_decl (yyvsp[-6].ttype, d, 0);
  3338.           if (yyvsp[0].itype != ';')
  3339.             {
  3340.               reinit_parse_for_template ((int) yyvsp[0].itype, yyvsp[-6].ttype, d);
  3341.               yychar = YYEMPTY;
  3342.             }
  3343.           note_list_got_semicolon (yyvsp[-5].ttype);
  3344.           resume_momentary (momentary);
  3345.         ;
  3346.     break;}
  3347. case 43:
  3348. #line 479 "cp-parse.y"
  3349. {
  3350.           tree d = start_decl (yyvsp[-1].ttype, yyvsp[-2].ttype, 0, NULL_TREE);
  3351.           finish_decl (d, NULL_TREE, NULL_TREE, 0);
  3352.           end_template_decl (yyvsp[-3].ttype, d, 0);
  3353.           if (yyvsp[0].itype != ';')
  3354.             reinit_parse_for_template ((int) yyvsp[0].itype, yyvsp[-3].ttype, d);
  3355.         ;
  3356.     break;}
  3357. case 44:
  3358. #line 487 "cp-parse.y"
  3359. { end_template_decl (yyvsp[-2].ttype, 0, 0); ;
  3360.     break;}
  3361. case 45:
  3362. #line 488 "cp-parse.y"
  3363. { end_template_decl (yyvsp[-2].ttype, 0, 0); ;
  3364.     break;}
  3365. case 46:
  3366. #line 491 "cp-parse.y"
  3367. { yyval.itype = '{'; ;
  3368.     break;}
  3369. case 47:
  3370. #line 492 "cp-parse.y"
  3371. { yyval.itype = ':'; ;
  3372.     break;}
  3373. case 48:
  3374. #line 493 "cp-parse.y"
  3375. { yyval.itype = ';'; ;
  3376.     break;}
  3377. case 49:
  3378. #line 494 "cp-parse.y"
  3379. { yyval.itype = '='; ;
  3380.     break;}
  3381. case 50:
  3382. #line 495 "cp-parse.y"
  3383. { yyval.itype = RETURN; ;
  3384.     break;}
  3385. case 51:
  3386. #line 500 "cp-parse.y"
  3387. { if (pedantic)
  3388.             pedwarn ("ANSI C++ forbids data definition with no type or storage class");
  3389.             else if (! flag_traditional && ! have_extern_spec)
  3390.               warning ("data definition has no type or storage class"); ;
  3391.     break;}
  3392. case 52:
  3393. #line 505 "cp-parse.y"
  3394. {;
  3395.     break;}
  3396. case 53:
  3397. #line 508 "cp-parse.y"
  3398. { tree d;
  3399.           d = start_decl (yyvsp[-1].ttype, yyval.ttype, 0, NULL_TREE);
  3400.           finish_decl (d, NULL_TREE, NULL_TREE, 0);
  3401.         ;
  3402.     break;}
  3403. case 54:
  3404. #line 513 "cp-parse.y"
  3405. {
  3406.           end_exception_decls ();
  3407.           note_list_got_semicolon (yyval.ttype);
  3408.         ;
  3409.     break;}
  3410. case 55:
  3411. #line 519 "cp-parse.y"
  3412. { tree d;
  3413.           d = start_decl (yyvsp[-1].ttype, yyval.ttype, 0, NULL_TREE);
  3414.           finish_decl (d, NULL_TREE, NULL_TREE, 0);
  3415.           end_exception_decls ();
  3416.           note_list_got_semicolon (yyval.ttype);
  3417.         ;
  3418.     break;}
  3419. case 56:
  3420. #line 526 "cp-parse.y"
  3421. { pedwarn ("empty declaration"); ;
  3422.     break;}
  3423. case 57:
  3424. #line 528 "cp-parse.y"
  3425. {
  3426.         tree t = yyval.ttype;
  3427.         shadow_tag (t);
  3428.         if (TREE_CODE (t) == TREE_LIST
  3429.         && TREE_PURPOSE (t) == NULL_TREE)
  3430.           {
  3431.         t = TREE_VALUE (t);
  3432.         if (TREE_CODE (t) == RECORD_TYPE
  3433.             && TYPE_SIZE (t)
  3434.             && CLASSTYPE_USE_TEMPLATE (t) == 0)
  3435.           CLASSTYPE_USE_TEMPLATE (t) = 2;
  3436.         else if (TREE_CODE (t) == ENUMERAL_TYPE
  3437.              && !TYPE_SIZE (t))
  3438.           cp_error ("forward declaration of `%#T'", t);
  3439.           }
  3440.         note_list_got_semicolon (yyval.ttype);
  3441.       ;
  3442.     break;}
  3443. case 61:
  3444. #line 552 "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 62:
  3459. #line 565 "cp-parse.y"
  3460. {
  3461.           finish_function (lineno, 1);
  3462.           /* finish_function performs these three statements:
  3463.  
  3464.              expand_end_bindings (getdecls (), 1, 0);
  3465.              poplevel (1, 1, 0);
  3466.  
  3467.              expand_end_bindings (0, 0, 0);
  3468.              poplevel (0, 0, 1);
  3469.              */
  3470.           if (yyval.ttype) process_next_inline (yyval.ttype);
  3471.         ;
  3472.     break;}
  3473. case 63:
  3474. #line 578 "cp-parse.y"
  3475. { finish_function (lineno, 0);
  3476.           if (yyval.ttype) process_next_inline (yyval.ttype); ;
  3477.     break;}
  3478. case 64:
  3479. #line 581 "cp-parse.y"
  3480. { finish_function (lineno, 0);
  3481.           if (yyval.ttype) process_next_inline (yyval.ttype); ;
  3482.     break;}
  3483. case 65:
  3484. #line 584 "cp-parse.y"
  3485. { finish_function (lineno, 0);
  3486.           if (yyval.ttype) process_next_inline (yyval.ttype); ;
  3487.     break;}
  3488. case 66:
  3489. #line 587 "cp-parse.y"
  3490. {;
  3491.     break;}
  3492. case 67:
  3493. #line 589 "cp-parse.y"
  3494. {;
  3495.     break;}
  3496. case 68:
  3497. #line 591 "cp-parse.y"
  3498. {;
  3499.     break;}
  3500. case 69:
  3501. #line 596 "cp-parse.y"
  3502. { if (! start_function (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype, 0))
  3503.             YYERROR1;
  3504.           reinit_parse_for_function ();
  3505.           yyval.ttype = NULL_TREE; ;
  3506.     break;}
  3507. case 70:
  3508. #line 601 "cp-parse.y"
  3509. { if (! start_function (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype, 0))
  3510.             YYERROR1;
  3511.           reinit_parse_for_function ();
  3512.           yyval.ttype = NULL_TREE; ;
  3513.     break;}
  3514. case 71:
  3515. #line 606 "cp-parse.y"
  3516. { if (! start_function (NULL_TREE, yyval.ttype, yyvsp[0].ttype, 0))
  3517.             YYERROR1;
  3518.           reinit_parse_for_function ();
  3519.           yyval.ttype = NULL_TREE; ;
  3520.     break;}
  3521. case 72:
  3522. #line 611 "cp-parse.y"
  3523. { if (! start_function (NULL_TREE, build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype), yyvsp[0].ttype, 0))
  3524.             YYERROR1;
  3525.           reinit_parse_for_function ();
  3526.           yyval.ttype = NULL_TREE; ;
  3527.     break;}
  3528. case 73:
  3529. #line 616 "cp-parse.y"
  3530. { if (! start_function (NULL_TREE, build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype), yyvsp[0].ttype, 0))
  3531.             YYERROR1;
  3532.           reinit_parse_for_function ();
  3533.           yyval.ttype = NULL_TREE; ;
  3534.     break;}
  3535. case 74:
  3536. #line 621 "cp-parse.y"
  3537. { if (! start_function (NULL_TREE, build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[-1].ttype), yyvsp[0].ttype, 0))
  3538.             YYERROR1;
  3539.           reinit_parse_for_function ();
  3540.           yyval.ttype = NULL_TREE; ;
  3541.     break;}
  3542. case 75:
  3543. #line 626 "cp-parse.y"
  3544. { if (! start_function (NULL_TREE, build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[-1].ttype), yyvsp[0].ttype, 0))
  3545.             YYERROR1;
  3546.           reinit_parse_for_function ();
  3547.           yyval.ttype = NULL_TREE; ;
  3548.     break;}
  3549. case 76:
  3550. #line 631 "cp-parse.y"
  3551. { start_function (NULL_TREE, TREE_VALUE (yyval.ttype), NULL_TREE, 1);
  3552.           reinit_parse_for_function (); ;
  3553.     break;}
  3554. case 77:
  3555. #line 638 "cp-parse.y"
  3556. {
  3557.           tree decl = build_parse_node (CALL_EXPR, TREE_VALUE (yyval.ttype), yyvsp[-3].ttype, yyvsp[-1].ttype);
  3558.           yyval.ttype = start_method (TREE_CHAIN (yyval.ttype), decl, yyvsp[0].ttype);
  3559.           if (! yyval.ttype)
  3560.             YYERROR1;
  3561.           if (yychar == YYEMPTY)
  3562.             yychar = YYLEX;
  3563.           reinit_parse_for_method (yychar, yyval.ttype); ;
  3564.     break;}
  3565. case 78:
  3566. #line 647 "cp-parse.y"
  3567. {
  3568.           tree decl = build_parse_node (CALL_EXPR, TREE_VALUE (yyval.ttype), empty_parms (), yyvsp[-1].ttype);
  3569.           yyval.ttype = start_method (TREE_CHAIN (yyval.ttype), decl, yyvsp[0].ttype);
  3570.           if (! yyval.ttype)
  3571.             YYERROR1;
  3572.           if (yychar == YYEMPTY)
  3573.             yychar = YYLEX;
  3574.           reinit_parse_for_method (yychar, yyval.ttype); ;
  3575.     break;}
  3576. case 79:
  3577. #line 656 "cp-parse.y"
  3578. { yyval.ttype = start_method (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
  3579.           if (! yyval.ttype)
  3580.             YYERROR1;
  3581.           if (yychar == YYEMPTY)
  3582.             yychar = YYLEX;
  3583.           reinit_parse_for_method (yychar, yyval.ttype); ;
  3584.     break;}
  3585. case 80:
  3586. #line 663 "cp-parse.y"
  3587. {
  3588.           tree decl = build_parse_node (CALL_EXPR, TREE_VALUE (yyval.ttype), yyvsp[-3].ttype, yyvsp[-1].ttype);
  3589.           yyval.ttype = start_method (TREE_CHAIN (yyval.ttype), decl, yyvsp[0].ttype);
  3590.           if (! yyval.ttype)
  3591.             YYERROR1;
  3592.           if (yychar == YYEMPTY)
  3593.             yychar = YYLEX;
  3594.           reinit_parse_for_method (yychar, yyval.ttype); ;
  3595.     break;}
  3596. case 81:
  3597. #line 672 "cp-parse.y"
  3598. {
  3599.           tree decl = build_parse_node (CALL_EXPR, TREE_VALUE (yyval.ttype), empty_parms (), yyvsp[-1].ttype);
  3600.           yyval.ttype = start_method (TREE_CHAIN (yyval.ttype), decl, yyvsp[0].ttype);
  3601.           if (! yyval.ttype)
  3602.             YYERROR1;
  3603.           if (yychar == YYEMPTY)
  3604.             yychar = YYLEX;
  3605.           reinit_parse_for_method (yychar, yyval.ttype); ;
  3606.     break;}
  3607. case 82:
  3608. #line 681 "cp-parse.y"
  3609. { yyval.ttype = start_method (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
  3610.           if (! yyval.ttype)
  3611.             YYERROR1;
  3612.           if (yychar == YYEMPTY)
  3613.             yychar = YYLEX;
  3614.           reinit_parse_for_method (yychar, yyval.ttype); ;
  3615.     break;}
  3616. case 83:
  3617. #line 688 "cp-parse.y"
  3618. { yyval.ttype = start_method (NULL_TREE, yyval.ttype, yyvsp[0].ttype);
  3619.           if (! yyval.ttype)
  3620.             YYERROR1;
  3621.           if (yychar == YYEMPTY)
  3622.             yychar = YYLEX;
  3623.           reinit_parse_for_method (yychar, yyval.ttype); ;
  3624.     break;}
  3625. case 84:
  3626. #line 697 "cp-parse.y"
  3627. {
  3628.           if (! current_function_parms_stored)
  3629.             store_parm_decls ();
  3630.           yyval.ttype = yyvsp[0].ttype;
  3631.         ;
  3632.     break;}
  3633. case 85:
  3634. #line 705 "cp-parse.y"
  3635. { store_return_init (yyval.ttype, NULL_TREE); ;
  3636.     break;}
  3637. case 86:
  3638. #line 707 "cp-parse.y"
  3639. { store_return_init (yyval.ttype, yyvsp[0].ttype); ;
  3640.     break;}
  3641. case 87:
  3642. #line 709 "cp-parse.y"
  3643. { store_return_init (yyval.ttype, yyvsp[-1].ttype); ;
  3644.     break;}
  3645. case 88:
  3646. #line 711 "cp-parse.y"
  3647. { store_return_init (yyval.ttype, NULL_TREE); ;
  3648.     break;}
  3649. case 89:
  3650. #line 716 "cp-parse.y"
  3651. {
  3652.           if (yyvsp[0].itype == 0)
  3653.             error ("no base initializers given following ':'");
  3654.           setup_vtbl_ptr ();
  3655.           /* Always keep the BLOCK node associated with the outermost
  3656.              pair of curley braces of a function.  These are needed
  3657.              for correct operation of dwarfout.c.  */
  3658.           keep_next_level ();
  3659.         ;
  3660.     break;}
  3661. case 90:
  3662. #line 729 "cp-parse.y"
  3663. {
  3664.           if (! current_function_parms_stored)
  3665.             store_parm_decls ();
  3666.  
  3667.           /* Flag that we are processing base and member initializers.  */
  3668.           current_vtable_decl = error_mark_node;
  3669.  
  3670.           if (DECL_CONSTRUCTOR_P (current_function_decl))
  3671.             {
  3672.               /* Make a contour for the initializer list.  */
  3673.               pushlevel (0);
  3674.               clear_last_expr ();
  3675.               expand_start_bindings (0);
  3676.             }
  3677.           else if (current_class_type == NULL_TREE)
  3678.             error ("base initializers not allowed for non-member functions");
  3679.           else if (! DECL_CONSTRUCTOR_P (current_function_decl))
  3680.             error ("only constructors take base initializers");
  3681.         ;
  3682.     break;}
  3683. case 91:
  3684. #line 752 "cp-parse.y"
  3685. { yyval.itype = 0; ;
  3686.     break;}
  3687. case 92:
  3688. #line 754 "cp-parse.y"
  3689. { yyval.itype = 1; ;
  3690.     break;}
  3691. case 95:
  3692. #line 760 "cp-parse.y"
  3693. {
  3694.           if (current_class_name && !flag_traditional)
  3695.             pedwarn ("ANSI C++ forbids old style base class initialization",
  3696.                  IDENTIFIER_POINTER (current_class_name));
  3697.           expand_member_init (C_C_D, NULL_TREE, yyvsp[-1].ttype);
  3698.         ;
  3699.     break;}
  3700. case 96:
  3701. #line 767 "cp-parse.y"
  3702. {
  3703.           if (current_class_name && !flag_traditional)
  3704.             pedwarn ("ANSI C++ forbids old style base class initialization",
  3705.                  IDENTIFIER_POINTER (current_class_name));
  3706.           expand_member_init (C_C_D, NULL_TREE, void_type_node);
  3707.         ;
  3708.     break;}
  3709. case 97:
  3710. #line 774 "cp-parse.y"
  3711. {
  3712.           expand_member_init (C_C_D, yyval.ttype, yyvsp[-1].ttype);
  3713.         ;
  3714.     break;}
  3715. case 98:
  3716. #line 778 "cp-parse.y"
  3717. { expand_member_init (C_C_D, yyval.ttype, void_type_node); ;
  3718.     break;}
  3719. case 99:
  3720. #line 780 "cp-parse.y"
  3721. { expand_member_init (C_C_D, yyval.ttype, yyvsp[-1].ttype); ;
  3722.     break;}
  3723. case 100:
  3724. #line 782 "cp-parse.y"
  3725. { expand_member_init (C_C_D, yyval.ttype, void_type_node); ;
  3726.     break;}
  3727. case 101:
  3728. #line 784 "cp-parse.y"
  3729. { expand_member_init (C_C_D, yyval.ttype, yyvsp[-1].ttype); ;
  3730.     break;}
  3731. case 102:
  3732. #line 786 "cp-parse.y"
  3733. { expand_member_init (C_C_D, yyval.ttype, void_type_node); ;
  3734.     break;}
  3735. case 103:
  3736. #line 788 "cp-parse.y"
  3737. {
  3738.           do_member_init (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype);
  3739.         ;
  3740.     break;}
  3741. case 104:
  3742. #line 792 "cp-parse.y"
  3743. {
  3744.           do_member_init (yyval.ttype, yyvsp[-1].ttype, void_type_node);
  3745.         ;
  3746.     break;}
  3747. case 114:
  3748. #line 816 "cp-parse.y"
  3749. { yyval.ttype = build_parse_node (BIT_NOT_EXPR,yyvsp[0].ttype);;
  3750.     break;}
  3751. case 116:
  3752. #line 822 "cp-parse.y"
  3753. {
  3754.             extern tree template_type_seen_before_scope;
  3755.  
  3756.           if (yyvsp[0].ttype) 
  3757.             yyval.ttype = yyvsp[0].ttype;
  3758.           else if (yyval.ttype != error_mark_node)
  3759.             yyval.ttype = IDENTIFIER_TYPE_VALUE (yyval.ttype);
  3760.           /* This is a kludge: In order to detect nested types inside
  3761.            * template classes, we have to tell the lexer that it should
  3762.            * try to replace a following SCOPE token with the correct
  3763.            * SCOPED_TYPENAME for the nested type.  This SCOPED_TYPENAME
  3764.            * token will be handled in the rule "scoped_typename".
  3765.            * - niklas@appli.se */
  3766.           if (yychar == SCOPE)
  3767.             {
  3768.               /* We set template_type_seen_before_scope to be
  3769.              an error_mark_node so we can avoid meaningless
  3770.              and unhelpful syntax errors later.  */
  3771.               if (yyval.ttype != error_mark_node)
  3772.             template_type_seen_before_scope = TYPE_IDENTIFIER (yyval.ttype);
  3773.               else
  3774.             template_type_seen_before_scope = error_mark_node;
  3775.               yychar = YYLEX;
  3776.             }
  3777.         ;
  3778.     break;}
  3779. case 117:
  3780. #line 851 "cp-parse.y"
  3781. { yyval.ttype = lookup_template_class (yyval.ttype, yyvsp[-1].ttype, NULL_TREE); ;
  3782.     break;}
  3783. case 118:
  3784. #line 853 "cp-parse.y"
  3785. { yyval.ttype = lookup_template_class (yyval.ttype, yyvsp[-1].ttype, NULL_TREE); ;
  3786.     break;}
  3787. case 119:
  3788. #line 859 "cp-parse.y"
  3789. { yyungetc ('{', 1); yyval.ttype = 0; ;
  3790.     break;}
  3791. case 120:
  3792. #line 860 "cp-parse.y"
  3793. { yyungetc (':', 1); yyval.ttype = 0; ;
  3794.     break;}
  3795. case 121:
  3796. #line 862 "cp-parse.y"
  3797. { yyval.ttype = instantiate_class_template (yyvsp[0].ttype, 1); ;
  3798.     break;}
  3799. case 122:
  3800. #line 867 "cp-parse.y"
  3801. { yyval.ttype = instantiate_class_template (yyvsp[0].ttype, 1); ;
  3802.     break;}
  3803. case 123:
  3804. #line 872 "cp-parse.y"
  3805. { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
  3806.     break;}
  3807. case 124:
  3808. #line 874 "cp-parse.y"
  3809. { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
  3810.     break;}
  3811. case 125:
  3812. #line 879 "cp-parse.y"
  3813. { yyval.ttype = groktypename (yyval.ttype); ;
  3814.     break;}
  3815. case 127:
  3816. #line 885 "cp-parse.y"
  3817. {
  3818.           tree t, decl, id, tmpl;
  3819.  
  3820.           id = TREE_VALUE (yyvsp[-1].ttype);
  3821.           tmpl = TREE_PURPOSE (IDENTIFIER_TEMPLATE (id));
  3822.           t = xref_tag (DECL_TEMPLATE_INFO (tmpl)->aggr, id, yyvsp[0].ttype);
  3823.           set_current_level_tags_transparency (1);
  3824.           my_friendly_assert (TREE_CODE (t) == RECORD_TYPE
  3825.                       || TREE_CODE (t) == UNION_TYPE, 257);
  3826.           yyval.ttype = t;
  3827.  
  3828.           /* Now, put a copy of the decl in global scope, to avoid
  3829.              recursive expansion.  */
  3830.           decl = IDENTIFIER_LOCAL_VALUE (id);
  3831.           if (!decl)
  3832.             decl = IDENTIFIER_CLASS_VALUE (id);
  3833.           /* Now, put a copy of the decl in global scope, to avoid
  3834.              recursive expansion.  */
  3835.                   if (decl)
  3836.                     {
  3837.               /* Need to copy it to clear the chain pointer,
  3838.              and need to get it into permanent storage.  */
  3839.                       my_friendly_assert (TREE_CODE (decl) == TYPE_DECL, 258);
  3840.               push_obstacks (&permanent_obstack, &permanent_obstack);
  3841.                       decl = copy_node (decl);
  3842.               if (DECL_LANG_SPECIFIC (decl))
  3843.             copy_lang_decl (decl);
  3844.               pop_obstacks ();
  3845.               pushdecl_top_level (decl);
  3846.             }
  3847.         ;
  3848.     break;}
  3849. case 128:
  3850. #line 917 "cp-parse.y"
  3851. {
  3852.           yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-1].ttype, 0);
  3853.  
  3854.           pop_obstacks ();
  3855.           end_template_instantiation (yyvsp[-5].ttype, yyvsp[-3].ttype);
  3856.  
  3857.                   /* Now go after the methods & class data.  */
  3858.                   instantiate_member_templates (yyvsp[-5].ttype);
  3859.  
  3860.           pop_tinst_level();
  3861.  
  3862.           CLASSTYPE_GOT_SEMICOLON (yyval.ttype) = 1;
  3863.         ;
  3864.     break;}
  3865. case 129:
  3866. #line 934 "cp-parse.y"
  3867. { yyval.ttype = NULL_TREE; ;
  3868.     break;}
  3869. case 130:
  3870. #line 936 "cp-parse.y"
  3871. { yyval.ttype = yyvsp[0].ttype; ;
  3872.     break;}
  3873. case 131:
  3874. #line 941 "cp-parse.y"
  3875. { yyval.ttype = NULL_TREE; /* never used from here... */;
  3876.     break;}
  3877. case 132:
  3878. #line 943 "cp-parse.y"
  3879. { yyval.ttype = yyvsp[-1].ttype; /*???*/ ;
  3880.     break;}
  3881. case 133:
  3882. #line 947 "cp-parse.y"
  3883. { yyval.code = NEGATE_EXPR; ;
  3884.     break;}
  3885. case 134:
  3886. #line 949 "cp-parse.y"
  3887. { yyval.code = CONVERT_EXPR; ;
  3888.     break;}
  3889. case 135:
  3890. #line 951 "cp-parse.y"
  3891. { yyval.code = PREINCREMENT_EXPR; ;
  3892.     break;}
  3893. case 136:
  3894. #line 953 "cp-parse.y"
  3895. { yyval.code = PREDECREMENT_EXPR; ;
  3896.     break;}
  3897. case 137:
  3898. #line 955 "cp-parse.y"
  3899. { yyval.code = TRUTH_NOT_EXPR; ;
  3900.     break;}
  3901. case 138:
  3902. #line 959 "cp-parse.y"
  3903. { yyval.ttype = build_x_compound_expr (yyval.ttype); ;
  3904.     break;}
  3905. case 140:
  3906. #line 966 "cp-parse.y"
  3907. { error ("ANSI C++ forbids an empty condition for `%s'",
  3908.              cond_stmt_keyword);
  3909.           yyval.ttype = integer_zero_node; ;
  3910.     break;}
  3911. case 141:
  3912. #line 970 "cp-parse.y"
  3913. { yyval.ttype = yyvsp[-1].ttype; ;
  3914.     break;}
  3915. case 142:
  3916. #line 975 "cp-parse.y"
  3917. { error ("ANSI C++ forbids an empty condition for `%s'",
  3918.              cond_stmt_keyword);
  3919.           yyval.ttype = integer_zero_node; ;
  3920.     break;}
  3921. case 143:
  3922. #line 979 "cp-parse.y"
  3923. { yyval.ttype = yyvsp[-1].ttype; ;
  3924.     break;}
  3925. case 144:
  3926. #line 984 "cp-parse.y"
  3927. { yyval.ttype = NULL_TREE; ;
  3928.     break;}
  3929. case 146:
  3930. #line 987 "cp-parse.y"
  3931. { yyval.ttype = NULL_TREE; ;
  3932.     break;}
  3933. case 147:
  3934. #line 992 "cp-parse.y"
  3935. { {
  3936.           tree d;
  3937.           for (d = getdecls (); d; d = TREE_CHAIN (d))
  3938.             if (TREE_CODE (d) == TYPE_DECL) {
  3939.               tree s = TREE_TYPE (d);
  3940.               if (TREE_CODE (s) == RECORD_TYPE)
  3941.             cp_error ("definition of class `%T' in condition", s);
  3942.               else if (TREE_CODE (s) == ENUMERAL_TYPE)
  3943.             cp_error ("definition of enum `%T' in condition", s);
  3944.             }
  3945.           }
  3946.           current_declspecs = yyvsp[-5].ttype;
  3947.           yyvsp[0].itype = suspend_momentary ();
  3948.           yyval.ttype = start_decl (yyvsp[-4].ttype, current_declspecs, 1, yyvsp[-3].ttype);
  3949.           cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype);
  3950.         ;
  3951.     break;}
  3952. case 148:
  3953. #line 1009 "cp-parse.y"
  3954.           finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-3].ttype, 0);
  3955.           resume_momentary (yyvsp[-2].itype);
  3956.           yyval.ttype = yyvsp[-1].ttype; 
  3957.           if (TREE_CODE (TREE_TYPE (yyval.ttype)) == ARRAY_TYPE)
  3958.             cp_error ("definition of array `%#D' in condition", yyval.ttype); 
  3959.         ;
  3960.     break;}
  3961. case 150:
  3962. #line 1022 "cp-parse.y"
  3963. { tree d = getdecls ();
  3964.           emit_line_note (input_filename, lineno);
  3965.           pushlevel (0);
  3966.           clear_last_expr ();
  3967.           push_momentary ();
  3968.           expand_start_bindings (0);
  3969.           if (d) pushdecl (d);
  3970.             ;
  3971.     break;}
  3972. case 151:
  3973. #line 1035 "cp-parse.y"
  3974. { pop_implicit_try_blocks (NULL_TREE);
  3975.           expand_end_bindings (getdecls (), kept_level_p (), 1);
  3976.           yyval.ttype = poplevel (kept_level_p (), 1, 0);
  3977.           pop_momentary (); 
  3978.           finish_stmt (); ;
  3979.     break;}
  3980. case 152:
  3981. #line 1041 "cp-parse.y"
  3982. { pop_implicit_try_blocks (NULL_TREE);
  3983.           expand_end_bindings (getdecls (), kept_level_p (), 1);
  3984.           yyval.ttype = poplevel (kept_level_p (), 1, 0);
  3985.           pop_momentary (); 
  3986.           finish_stmt (); ;
  3987.     break;}
  3988. case 153:
  3989. #line 1047 "cp-parse.y"
  3990. { pop_implicit_try_blocks (NULL_TREE);
  3991.           expand_end_bindings (getdecls (), kept_level_p (), 1);
  3992.           yyval.ttype = poplevel (kept_level_p (), 0, 0);
  3993.           pop_momentary (); 
  3994.           finish_stmt (); ;
  3995.     break;}
  3996. case 154:
  3997. #line 1053 "cp-parse.y"
  3998. { pop_implicit_try_blocks (NULL_TREE);
  3999.           expand_end_bindings (getdecls (), kept_level_p (), 1);
  4000.           yyval.ttype = poplevel (kept_level_p (), 1, 0);
  4001.           pop_momentary (); ;
  4002.     break;}
  4003. case 155:
  4004. #line 1061 "cp-parse.y"
  4005. { finish_stmt (); ;
  4006.     break;}
  4007. case 156:
  4008. #line 1063 "cp-parse.y"
  4009. { finish_stmt (); ;
  4010.     break;}
  4011. case 157:
  4012. #line 1065 "cp-parse.y"
  4013. { finish_stmt (); ;
  4014.     break;}
  4015. case 159:
  4016. #line 1071 "cp-parse.y"
  4017. { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
  4018.     break;}
  4019. case 160:
  4020. #line 1073 "cp-parse.y"
  4021. { chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
  4022.     break;}
  4023. case 161:
  4024. #line 1075 "cp-parse.y"
  4025. { chainon (yyval.ttype, build_tree_list (NULL_TREE, error_mark_node)); ;
  4026.     break;}
  4027. case 162:
  4028. #line 1080 "cp-parse.y"
  4029. {
  4030.           if (TREE_CODE (yyval.ttype) == TYPE_EXPR)
  4031.             yyval.ttype = build_component_type_expr (C_C_D, yyval.ttype, NULL_TREE, 1);
  4032.         ;
  4033.     break;}
  4034. case 163:
  4035. #line 1086 "cp-parse.y"
  4036. { yyvsp[0].itype = pedantic;
  4037.           pedantic = 0; ;
  4038.     break;}
  4039. case 164:
  4040. #line 1089 "cp-parse.y"
  4041. { yyval.ttype = yyvsp[0].ttype;
  4042.           pedantic = yyvsp[-2].itype; ;
  4043.     break;}
  4044. case 165:
  4045. #line 1092 "cp-parse.y"
  4046. { yyval.ttype = build_x_indirect_ref (yyvsp[0].ttype, "unary *"); ;
  4047.     break;}
  4048. case 166:
  4049. #line 1094 "cp-parse.y"
  4050. { yyval.ttype = build_x_unary_op (ADDR_EXPR, yyvsp[0].ttype); ;
  4051.     break;}
  4052. case 167:
  4053. #line 1096 "cp-parse.y"
  4054. { yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, yyvsp[0].ttype); ;
  4055.     break;}
  4056. case 168:
  4057. #line 1098 "cp-parse.y"
  4058. { yyval.ttype = build_x_unary_op ((enum tree_code) yyval.ttype, yyvsp[0].ttype);
  4059.           if (yyvsp[-1].code == NEGATE_EXPR && TREE_CODE (yyvsp[0].ttype) == INTEGER_CST)
  4060.             TREE_NEGATED_INT (yyval.ttype) = 1;
  4061.           overflow_warning (yyval.ttype);
  4062.         ;
  4063.     break;}
  4064. case 169:
  4065. #line 1105 "cp-parse.y"
  4066. { tree label = lookup_label (yyvsp[0].ttype);
  4067.           if (label == NULL_TREE)
  4068.             yyval.ttype = null_pointer_node;
  4069.           else
  4070.             {
  4071.               TREE_USED (label) = 1;
  4072.               yyval.ttype = build1 (ADDR_EXPR, ptr_type_node, label);
  4073.               TREE_CONSTANT (yyval.ttype) = 1;
  4074.             }
  4075.         ;
  4076.     break;}
  4077. case 170:
  4078. #line 1116 "cp-parse.y"
  4079. { if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF
  4080.               && DECL_BIT_FIELD (TREE_OPERAND (yyvsp[0].ttype, 1)))
  4081.             error ("sizeof applied to a bit-field");
  4082.           /* ANSI says arrays and functions are converted inside comma.
  4083.              But we can't really convert them in build_compound_expr
  4084.              because that would break commas in lvalues.
  4085.              So do the conversion here if operand was a comma.  */
  4086.           if (TREE_CODE (yyvsp[0].ttype) == COMPOUND_EXPR
  4087.               && (TREE_CODE (TREE_TYPE (yyvsp[0].ttype)) == ARRAY_TYPE
  4088.               || TREE_CODE (TREE_TYPE (yyvsp[0].ttype)) == FUNCTION_TYPE))
  4089.             yyvsp[0].ttype = default_conversion (yyvsp[0].ttype);
  4090.           else if (TREE_CODE (yyvsp[0].ttype) == TREE_LIST)
  4091.                 {
  4092.               tree t = TREE_VALUE (yyvsp[0].ttype);
  4093.               if (t != NULL_TREE
  4094.               && TREE_CODE (TREE_TYPE (t)) == FUNCTION_TYPE)
  4095.             pedwarn ("ANSI C++ forbids using sizeof() on a function");
  4096.             }
  4097.           yyval.ttype = c_sizeof (TREE_TYPE (yyvsp[0].ttype)); ;
  4098.     break;}
  4099. case 171:
  4100. #line 1136 "cp-parse.y"
  4101. { yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ttype)); ;
  4102.     break;}
  4103. case 172:
  4104. #line 1138 "cp-parse.y"
  4105. { yyval.ttype = grok_alignof (yyvsp[0].ttype); ;
  4106.     break;}
  4107. case 173:
  4108. #line 1140 "cp-parse.y"
  4109. { yyval.ttype = c_alignof (groktypename (yyvsp[-1].ttype)); ;
  4110.     break;}
  4111. case 174:
  4112. #line 1143 "cp-parse.y"
  4113. { yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE, yyval.ttype != NULL_TREE); ;
  4114.     break;}
  4115. case 175:
  4116. #line 1145 "cp-parse.y"
  4117. { yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE, yyval.ttype != NULL_TREE); ;
  4118.     break;}
  4119. case 176:
  4120. #line 1147 "cp-parse.y"
  4121. { yyval.ttype = build_new (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyval.ttype != NULL_TREE); ;
  4122.     break;}
  4123. case 177:
  4124. #line 1149 "cp-parse.y"
  4125. { cp_error ("`%T' is not a valid expression", yyvsp[-1].ttype);
  4126.           yyval.ttype = error_mark_node; ;
  4127.     break;}
  4128. case 178:
  4129. #line 1152 "cp-parse.y"
  4130. { yyval.ttype = build_new (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyval.ttype != NULL_TREE); ;
  4131.     break;}
  4132. case 179:
  4133. #line 1154 "cp-parse.y"
  4134. { yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE, yyval.ttype != NULL_TREE); ;
  4135.     break;}
  4136. case 180:
  4137. #line 1156 "cp-parse.y"
  4138. { yyval.ttype = build_new (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE, yyval.ttype != NULL_TREE); ;
  4139.     break;}
  4140. case 181:
  4141. #line 1158 "cp-parse.y"
  4142. { yyval.ttype = build_new (yyvsp[-3].ttype, yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype != NULL_TREE); ;
  4143.     break;}
  4144. case 182:
  4145. #line 1160 "cp-parse.y"
  4146. { yyval.ttype = build_new (yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype != NULL_TREE); ;
  4147.     break;}
  4148. case 183:
  4149. #line 1168 "cp-parse.y"
  4150. {
  4151.           tree absdcl, typename;
  4152.  
  4153.         illegal_new_array:
  4154.           absdcl = build_parse_node (ARRAY_REF, yyvsp[-4].ttype, yyvsp[-1].ttype);
  4155.           typename = build_decl_list (yyvsp[-5].ttype, absdcl);
  4156.           pedwarn ("ANSI C++ forbids array dimensions with parenthesized type");
  4157.           yyval.ttype = build_new (yyvsp[-7].ttype, typename, NULL_TREE, yyval.ttype != NULL_TREE);
  4158.         ;
  4159.     break;}
  4160. case 184:
  4161. #line 1178 "cp-parse.y"
  4162. { goto illegal_new_array; ;
  4163.     break;}
  4164. case 185:
  4165. #line 1181 "cp-parse.y"
  4166. { yyval.ttype = build_new (yyvsp[-4].ttype, build_decl_list (yyvsp[-2].ttype, yyvsp[-1].ttype), NULL_TREE, yyval.ttype != NULL_TREE); ;
  4167.     break;}
  4168. case 186:
  4169. #line 1183 "cp-parse.y"
  4170. { yyval.ttype = build_new (yyvsp[-5].ttype, build_decl_list (yyvsp[-2].ttype, yyvsp[-1].ttype), NULL_TREE, yyval.ttype != NULL_TREE); ;
  4171.     break;}
  4172. case 187:
  4173. #line 1185 "cp-parse.y"
  4174. { yyval.ttype = build_new (yyvsp[-4].ttype, build_decl_list (yyvsp[-2].ttype, yyvsp[-1].ttype), NULL_TREE, yyval.ttype != NULL_TREE); ;
  4175.     break;}
  4176. case 188:
  4177. #line 1187 "cp-parse.y"
  4178. { yyval.ttype = build_new (yyvsp[-5].ttype, build_decl_list (yyvsp[-2].ttype, yyvsp[-1].ttype), NULL_TREE, yyval.ttype != NULL_TREE); ;
  4179.     break;}
  4180. case 189:
  4181. #line 1190 "cp-parse.y"
  4182. { yyungetc (':', 1); yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE, yyval.ttype != NULL_TREE); ;
  4183.     break;}
  4184. case 190:
  4185. #line 1192 "cp-parse.y"
  4186. { yyungetc (':', 1); yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE, yyval.ttype != NULL_TREE); ;
  4187.     break;}
  4188. case 191:
  4189. #line 1195 "cp-parse.y"
  4190. { yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 0); ;
  4191.     break;}
  4192. case 192:
  4193. #line 1197 "cp-parse.y"
  4194. { yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 1);
  4195.           if (yychar == YYEMPTY)
  4196.             yychar = YYLEX; ;
  4197.     break;}
  4198. case 193:
  4199. #line 1201 "cp-parse.y"
  4200. { yyval.ttype = delete_sanity (yyvsp[0].ttype, yyvsp[-2].ttype, 2);
  4201.           if (yychar == YYEMPTY)
  4202.             yychar = YYLEX; ;
  4203.     break;}
  4204. case 195:
  4205. #line 1209 "cp-parse.y"
  4206. { tree type = groktypename (yyvsp[-2].ttype);
  4207.           yyval.ttype = build_c_cast (type, yyvsp[0].ttype); ;
  4208.     break;}
  4209. case 196:
  4210. #line 1212 "cp-parse.y"
  4211. { tree type = groktypename (yyvsp[-5].ttype);
  4212.           tree init = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype));
  4213.           if (pedantic)
  4214.             pedwarn ("ANSI C++ forbids constructor-expressions");
  4215.           /* Indicate that this was a GNU C constructor expression.  */
  4216.           TREE_HAS_CONSTRUCTOR (init) = 1;
  4217.           yyval.ttype = digest_init (type, init, (tree *) 0);
  4218.           if (TREE_CODE (type) == ARRAY_TYPE && TYPE_SIZE (type) == 0)
  4219.             {
  4220.               int failure = complete_array_type (type, yyval.ttype, 1);
  4221.               if (failure)
  4222.             my_friendly_abort (78);
  4223.             }
  4224.         ;
  4225.     break;}
  4226. case 197:
  4227. #line 1227 "cp-parse.y"
  4228. { yyval.ttype = build_headof (yyvsp[-1].ttype); ;
  4229.     break;}
  4230. case 198:
  4231. #line 1229 "cp-parse.y"
  4232. { yyval.ttype = build_classof (yyvsp[-1].ttype); ;
  4233.     break;}
  4234. case 199:
  4235. #line 1231 "cp-parse.y"
  4236. { if (is_aggr_typedef (yyvsp[-1].ttype, 1))
  4237.             {
  4238.               tree type = IDENTIFIER_TYPE_VALUE (yyvsp[-1].ttype);
  4239.               yyval.ttype = CLASSTYPE_DOSSIER (type);
  4240.             }
  4241.           else
  4242.             yyval.ttype = error_mark_node;
  4243.         ;
  4244.     break;}
  4245. case 201:
  4246. #line 1244 "cp-parse.y"
  4247. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  4248.     break;}
  4249. case 202:
  4250. #line 1246 "cp-parse.y"
  4251. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  4252.     break;}
  4253. case 203:
  4254. #line 1248 "cp-parse.y"
  4255. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  4256.     break;}
  4257. case 204:
  4258. #line 1250 "cp-parse.y"
  4259. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  4260.     break;}
  4261. case 205:
  4262. #line 1252 "cp-parse.y"
  4263. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  4264.     break;}
  4265. case 206:
  4266. #line 1254 "cp-parse.y"
  4267. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  4268.     break;}
  4269. case 207:
  4270. #line 1256 "cp-parse.y"
  4271. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  4272.     break;}
  4273. case 208:
  4274. #line 1258 "cp-parse.y"
  4275. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  4276.     break;}
  4277. case 209:
  4278. #line 1260 "cp-parse.y"
  4279. { yyval.ttype = build_x_binary_op (LT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
  4280.     break;}
  4281. case 210:
  4282. #line 1262 "cp-parse.y"
  4283. { yyval.ttype = build_x_binary_op (GT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
  4284.     break;}
  4285. case 211:
  4286. #line 1264 "cp-parse.y"
  4287. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  4288.     break;}
  4289. case 212:
  4290. #line 1266 "cp-parse.y"
  4291. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  4292.     break;}
  4293. case 213:
  4294. #line 1268 "cp-parse.y"
  4295. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  4296.     break;}
  4297. case 214:
  4298. #line 1270 "cp-parse.y"
  4299. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  4300.     break;}
  4301. case 215:
  4302. #line 1272 "cp-parse.y"
  4303. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  4304.     break;}
  4305. case 216:
  4306. #line 1274 "cp-parse.y"
  4307. { yyval.ttype = build_x_binary_op (TRUTH_ANDIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
  4308.     break;}
  4309. case 217:
  4310. #line 1276 "cp-parse.y"
  4311. { yyval.ttype = build_x_binary_op (TRUTH_ORIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
  4312.     break;}
  4313. case 218:
  4314. #line 1278 "cp-parse.y"
  4315. { yyval.ttype = build_x_conditional_expr (yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  4316.     break;}
  4317. case 219:
  4318. #line 1280 "cp-parse.y"
  4319. { yyval.ttype = build_modify_expr (yyval.ttype, NOP_EXPR, yyvsp[0].ttype); ;
  4320.     break;}
  4321. case 220:
  4322. #line 1282 "cp-parse.y"
  4323. { register tree rval;
  4324.           if (rval = build_opfncall (MODIFY_EXPR, LOOKUP_NORMAL, yyval.ttype, yyvsp[0].ttype,
  4325.                          make_node (yyvsp[-1].code)))
  4326.             yyval.ttype = rval;
  4327.           else
  4328.             yyval.ttype = build_modify_expr (yyval.ttype, yyvsp[-1].code, yyvsp[0].ttype); ;
  4329.     break;}
  4330. case 221:
  4331. #line 1289 "cp-parse.y"
  4332. { yyval.ttype = build_m_component_ref (yyval.ttype, yyvsp[0].ttype); ;
  4333.     break;}
  4334. case 222:
  4335. #line 1292 "cp-parse.y"
  4336. { yyval.ttype = build_x_binary_op (MEMBER_REF, yyval.ttype, yyvsp[0].ttype); ;
  4337.     break;}
  4338. case 223:
  4339. #line 1310 "cp-parse.y"
  4340. { yyval.ttype = do_identifier (yyval.ttype); ;
  4341.     break;}
  4342. case 224:
  4343. #line 1312 "cp-parse.y"
  4344. {
  4345.           tree op = yyval.ttype;
  4346.           if (TREE_CODE (op) != IDENTIFIER_NODE)
  4347.             yyval.ttype = op;
  4348.           else
  4349.             {
  4350.               yyval.ttype = lookup_name (op, 0);
  4351.               if (yyval.ttype == NULL_TREE)
  4352.             {
  4353.               if (op != ansi_opname[ERROR_MARK])
  4354.                 error ("operator %s not defined",
  4355.                    operator_name_string (op));
  4356.               yyval.ttype = error_mark_node;
  4357.             }
  4358.             }
  4359.         ;
  4360.     break;}
  4361. case 226:
  4362. #line 1330 "cp-parse.y"
  4363. { yyval.ttype = combine_strings (yyval.ttype); ;
  4364.     break;}
  4365. case 227:
  4366. #line 1332 "cp-parse.y"
  4367. { yyval.ttype = yyvsp[-1].ttype; ;
  4368.     break;}
  4369. case 228:
  4370. #line 1334 "cp-parse.y"
  4371. { yyval.ttype = error_mark_node; ;
  4372.     break;}
  4373. case 229:
  4374. #line 1336 "cp-parse.y"
  4375. { if (current_function_decl == 0)
  4376.             {
  4377.               error ("braced-group within expression allowed only inside a function");
  4378.               YYERROR;
  4379.             }
  4380.           keep_next_level ();
  4381.           yyval.ttype = expand_start_stmt_expr (); ;
  4382.     break;}
  4383. case 230:
  4384. #line 1344 "cp-parse.y"
  4385. { tree rtl_exp;
  4386.           if (pedantic)
  4387.             pedwarn ("ANSI C++ forbids braced-groups within expressions");
  4388.           rtl_exp = expand_end_stmt_expr (yyvsp[-2].ttype);
  4389.           /* The statements have side effects, so the group does.  */
  4390.           TREE_SIDE_EFFECTS (rtl_exp) = 1;
  4391.           /* Make a BIND_EXPR for the BLOCK already made.  */
  4392.           yyval.ttype = build (BIND_EXPR, TREE_TYPE (rtl_exp),
  4393.                   NULL_TREE, rtl_exp, yyvsp[-1].ttype);
  4394.           /* Remove the block from the tree at this point.
  4395.              It gets put back at the proper place
  4396.              when the BIND_EXPR is expanded.  */
  4397.           delete_block (yyvsp[-1].ttype);
  4398.         ;
  4399.     break;}
  4400. case 231:
  4401. #line 1359 "cp-parse.y"
  4402. { /* [eichin:19911016.1902EST] */
  4403.                   yyval.ttype = build_x_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype, current_class_decl); 
  4404.                   /* here we instantiate_class_template as needed... */
  4405.                   do_pending_templates ();
  4406.                 ;
  4407.     break;}
  4408. case 232:
  4409. #line 1363 "cp-parse.y"
  4410. {
  4411.                   if (TREE_CODE (yyvsp[-1].ttype) == CALL_EXPR
  4412.                       && TREE_TYPE (yyvsp[-1].ttype) != void_type_node)
  4413.                 yyval.ttype = require_complete_type (yyvsp[-1].ttype);
  4414.                   else
  4415.                     yyval.ttype = yyvsp[-1].ttype;
  4416.                 ;
  4417.     break;}
  4418. case 233:
  4419. #line 1371 "cp-parse.y"
  4420. {
  4421.           yyval.ttype = build_x_function_call (yyval.ttype, NULL_TREE, current_class_decl);
  4422.           if (TREE_CODE (yyval.ttype) == CALL_EXPR
  4423.               && TREE_TYPE (yyval.ttype) != void_type_node)
  4424.             yyval.ttype = require_complete_type (yyval.ttype);
  4425.                 ;
  4426.     break;}
  4427. case 234:
  4428. #line 1378 "cp-parse.y"
  4429. { do_array:
  4430.             yyval.ttype = grok_array_decl (yyval.ttype, yyvsp[-1].ttype); ;
  4431.     break;}
  4432. case 235:
  4433. #line 1381 "cp-parse.y"
  4434. { yyval.ttype = build_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); ;
  4435.     break;}
  4436. case 236:
  4437. #line 1383 "cp-parse.y"
  4438. { yyval.ttype = build_object_ref (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
  4439.     break;}
  4440. case 237:
  4441. #line 1385 "cp-parse.y"
  4442. { /* If we get an OFFSET_REF, turn it into what it really
  4443.              means (e.g., a COMPONENT_REF).  This way if we've got,
  4444.              say, a reference to a static member that's being operated
  4445.              on, we don't end up trying to find a member operator for
  4446.              the class it's in.  */
  4447.           if (TREE_CODE (yyval.ttype) == OFFSET_REF)
  4448.             yyval.ttype = resolve_offset_ref (yyval.ttype);
  4449.           yyval.ttype = build_x_unary_op (POSTINCREMENT_EXPR, yyval.ttype); ;
  4450.     break;}
  4451. case 238:
  4452. #line 1394 "cp-parse.y"
  4453. { if (TREE_CODE (yyval.ttype) == OFFSET_REF)
  4454.             yyval.ttype = resolve_offset_ref (yyval.ttype);
  4455.           yyval.ttype = build_x_unary_op (POSTDECREMENT_EXPR, yyval.ttype); ;
  4456.     break;}
  4457. case 239:
  4458. #line 1399 "cp-parse.y"
  4459. { if (current_class_decl)
  4460.             {
  4461. #ifdef WARNING_ABOUT_CCD
  4462.               TREE_USED (current_class_decl) = 1;
  4463. #endif
  4464.               yyval.ttype = current_class_decl;
  4465.             }
  4466.           else if (current_function_decl
  4467.                && DECL_STATIC_FUNCTION_P (current_function_decl))
  4468.             {
  4469.               error ("`this' is unavailable for static member functions");
  4470.               yyval.ttype = error_mark_node;
  4471.             }
  4472.           else
  4473.             {
  4474.               if (current_function_decl)
  4475.             error ("invalid use of `this' in non-member function");
  4476.               else
  4477.             error ("invalid use of `this' at top level");
  4478.               yyval.ttype = error_mark_node;
  4479.             }
  4480.         ;
  4481.     break;}
  4482. case 240:
  4483. #line 1422 "cp-parse.y"
  4484. {
  4485.           tree type;
  4486.           tree id = yyval.ttype;
  4487.  
  4488.           /* This is a C cast in C++'s `functional' notation.  */
  4489.           if (yyvsp[-1].ttype == error_mark_node)
  4490.             {
  4491.               yyval.ttype = error_mark_node;
  4492.               break;
  4493.             }
  4494. #if 0
  4495.           if (yyvsp[-1].ttype == NULL_TREE)
  4496.             {
  4497.               error ("cannot cast null list to type `%s'",
  4498.                      IDENTIFIER_POINTER (TYPE_NAME (id)));
  4499.               yyval.ttype = error_mark_node;
  4500.               break;
  4501.             }
  4502. #endif
  4503. #if 0
  4504.           /* type is not set! (mrs) */
  4505.           if (type == error_mark_node)
  4506.             yyval.ttype = error_mark_node;
  4507.           else
  4508. #endif
  4509.             {
  4510.               if (id == ridpointers[(int) RID_CONST])
  4511.                 type = build_type_variant (integer_type_node, 1, 0);
  4512.               else if (id == ridpointers[(int) RID_VOLATILE])
  4513.                 type = build_type_variant (integer_type_node, 0, 1);
  4514. #if 0
  4515.               /* should not be able to get here (mrs) */
  4516.               else if (id == ridpointers[(int) RID_FRIEND])
  4517.                 {
  4518.                   error ("cannot cast expression to `friend' type");
  4519.                   yyval.ttype = error_mark_node;
  4520.                   break;
  4521.                 }
  4522. #endif
  4523.               else my_friendly_abort (79);
  4524.               yyval.ttype = build_c_cast (type, build_compound_expr (yyvsp[-1].ttype));
  4525.             }
  4526.         ;
  4527.     break;}
  4528. case 241:
  4529. #line 1466 "cp-parse.y"
  4530. { yyval.ttype = build_functional_cast (yyval.ttype, yyvsp[-1].ttype); ;
  4531.     break;}
  4532. case 242:
  4533. #line 1468 "cp-parse.y"
  4534. { yyval.ttype = build_functional_cast (yyval.ttype, NULL_TREE); ;
  4535.     break;}
  4536. case 243:
  4537. #line 1471 "cp-parse.y"
  4538. { tree type = groktypename (yyvsp[-4].ttype);
  4539.           yyval.ttype = build_dynamic_cast (type, yyvsp[-1].ttype); ;
  4540.     break;}
  4541. case 244:
  4542. #line 1474 "cp-parse.y"
  4543. { yyval.ttype = build_typeid (yyvsp[-1].ttype); ;
  4544.     break;}
  4545. case 245:
  4546. #line 1476 "cp-parse.y"
  4547. { tree type = groktypename (yyvsp[-1].ttype);
  4548.           yyval.ttype = get_typeid (type); ;
  4549.     break;}
  4550. case 246:
  4551. #line 1479 "cp-parse.y"
  4552. { yyval.ttype = build_functional_cast (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
  4553.     break;}
  4554. case 247:
  4555. #line 1481 "cp-parse.y"
  4556. { yyval.ttype = build_functional_cast (yyvsp[-1].ttype, NULL_TREE); ;
  4557.     break;}
  4558. case 248:
  4559. #line 1483 "cp-parse.y"
  4560. {
  4561.         do_scoped_id:
  4562.           yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
  4563.           if (yychar == YYEMPTY)
  4564.             yychar = YYLEX;
  4565.           if (! yyval.ttype)
  4566.             {
  4567.               if (yychar == '(' || yychar == LEFT_RIGHT)
  4568.             yyval.ttype = implicitly_declare (yyvsp[0].ttype);
  4569.               else
  4570.             {
  4571.               if (IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) != error_mark_node)
  4572.                 error ("undeclared variable `%s' (first use here)",
  4573.                    IDENTIFIER_POINTER (yyvsp[0].ttype));
  4574.               yyval.ttype = error_mark_node;
  4575.               /* Prevent repeated error messages.  */
  4576.               IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) = error_mark_node;
  4577.             }
  4578.             }
  4579.           else
  4580.             {
  4581.               if (TREE_CODE (yyval.ttype) == ADDR_EXPR)
  4582.             assemble_external (TREE_OPERAND (yyval.ttype, 0));
  4583.               else
  4584.             assemble_external (yyval.ttype);
  4585.               TREE_USED (yyval.ttype) = 1;
  4586.             }
  4587.           if (TREE_CODE (yyval.ttype) == CONST_DECL)
  4588.             {
  4589.               /* XXX CHS - should we set TREE_USED of the constant? */
  4590.               yyval.ttype = DECL_INITIAL (yyval.ttype);
  4591.               /* This is to prevent an enum whose value is 0
  4592.              from being considered a null pointer constant.  */
  4593.               yyval.ttype = build1 (NOP_EXPR, TREE_TYPE (yyval.ttype), yyval.ttype);
  4594.               TREE_CONSTANT (yyval.ttype) = 1;
  4595.             }
  4596.  
  4597.         ;
  4598.     break;}
  4599. case 249:
  4600. #line 1522 "cp-parse.y"
  4601. {
  4602.           if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
  4603.             goto do_scoped_id;
  4604.         do_scoped_operator:
  4605.           yyval.ttype = yyvsp[0].ttype;
  4606.         ;
  4607.     break;}
  4608. case 250:
  4609. #line 1529 "cp-parse.y"
  4610. { yyval.ttype = build_offset_ref (yyval.ttype, yyvsp[0].ttype); ;
  4611.     break;}
  4612. case 251:
  4613. #line 1531 "cp-parse.y"
  4614. { yyval.ttype = build_member_call (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
  4615.     break;}
  4616. case 252:
  4617. #line 1533 "cp-parse.y"
  4618. { yyval.ttype = build_member_call (yyval.ttype, yyvsp[-1].ttype, NULL_TREE); ;
  4619.     break;}
  4620. case 253:
  4621. #line 1535 "cp-parse.y"
  4622. {
  4623. #if 0
  4624.           /* This is a future direction of this code, but because
  4625.              build_x_function_call cannot always undo what is done
  4626.              in build_component_ref entirely yet, we cannot do this. */
  4627.           yyval.ttype = build_x_function_call (build_component_ref (yyval.ttype, yyvsp[-3].ttype, NULL_TREE, 1), yyvsp[-1].ttype, yyval.ttype);
  4628.           if (TREE_CODE (yyval.ttype) == CALL_EXPR
  4629.               && TREE_TYPE (yyval.ttype) != void_type_node)
  4630.             yyval.ttype = require_complete_type (yyval.ttype);
  4631. #else
  4632.           yyval.ttype = build_method_call (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE,
  4633.                       (LOOKUP_NORMAL|LOOKUP_AGGR));
  4634. #endif
  4635.         ;
  4636.     break;}
  4637. case 254:
  4638. #line 1550 "cp-parse.y"
  4639. {
  4640. #if 0
  4641.           /* This is a future direction of this code, but because
  4642.              build_x_function_call cannot always undo what is done
  4643.              in build_component_ref entirely yet, we cannot do this. */
  4644.           yyval.ttype = build_x_function_call (build_component_ref (yyval.ttype, yyvsp[-1].ttype, NULL_TREE, 1), NULL_TREE, yyval.ttype);
  4645.           if (TREE_CODE (yyval.ttype) == CALL_EXPR
  4646.               && TREE_TYPE (yyval.ttype) != void_type_node)
  4647.             yyval.ttype = require_complete_type (yyval.ttype);
  4648. #else
  4649.           yyval.ttype = build_method_call (yyval.ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE,
  4650.                       (LOOKUP_NORMAL|LOOKUP_AGGR));
  4651. #endif
  4652.         ;
  4653.     break;}
  4654. case 255:
  4655. #line 1565 "cp-parse.y"
  4656. { yyval.ttype = build_scoped_method_call (yyval.ttype, yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
  4657.     break;}
  4658. case 256:
  4659. #line 1567 "cp-parse.y"
  4660. { yyval.ttype = build_scoped_method_call (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE); ;
  4661.     break;}
  4662. case 257:
  4663. #line 1570 "cp-parse.y"
  4664.           if (TREE_CODE (TREE_TYPE (yyvsp[-3].ttype)) 
  4665.               != TREE_CODE (TREE_TYPE (IDENTIFIER_GLOBAL_VALUE (yyvsp[-1].ttype))))
  4666.             cp_error ("`%E' is not of type `%T'", yyvsp[-3].ttype, yyvsp[-1].ttype);
  4667.           yyval.ttype = void_zero_node;
  4668.         ;
  4669.     break;}
  4670. case 258:
  4671. #line 1577 "cp-parse.y"
  4672.           if (yyvsp[-4].ttype != yyvsp[-1].ttype)
  4673.             cp_error ("destructor specifier `%T::~%T()' must have matching names", yyvsp[-4].ttype, yyvsp[-1].ttype);
  4674.           if (TREE_CODE (TREE_TYPE (yyvsp[-5].ttype))
  4675.               != TREE_CODE (TREE_TYPE (IDENTIFIER_GLOBAL_VALUE (yyvsp[-4].ttype))))
  4676.             cp_error ("`%E' is not of type `%T'", yyvsp[-5].ttype, yyvsp[-4].ttype);
  4677.           yyval.ttype = void_zero_node; 
  4678.         ;
  4679.     break;}
  4680. case 259:
  4681. #line 1626 "cp-parse.y"
  4682. { yyval.ttype = NULL_TREE; ;
  4683.     break;}
  4684. case 260:
  4685. #line 1628 "cp-parse.y"
  4686. {
  4687.           yyval.ttype = yyvsp[-1].ttype;
  4688.           pedwarn ("old style placement syntax, use () instead");
  4689.         ;
  4690.     break;}
  4691. case 261:
  4692. #line 1636 "cp-parse.y"
  4693. { yyval.itype = 0; ;
  4694.     break;}
  4695. case 262:
  4696. #line 1638 "cp-parse.y"
  4697. { yyval.itype = 1; ;
  4698.     break;}
  4699. case 263:
  4700. #line 1642 "cp-parse.y"
  4701. { yyval.ttype = NULL_TREE; ;
  4702.     break;}
  4703. case 264:
  4704. #line 1644 "cp-parse.y"
  4705. { if (yyvsp[0].ttype)
  4706.             error ("extra `::' before `delete' ignored");
  4707.           yyval.ttype = error_mark_node;
  4708.         ;
  4709.     break;}
  4710. case 266:
  4711. #line 1654 "cp-parse.y"
  4712. { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
  4713.     break;}
  4714. case 267:
  4715. #line 1659 "cp-parse.y"
  4716. {
  4717.           if (! current_function_parms_stored)
  4718.             store_parm_decls ();
  4719.           setup_vtbl_ptr ();
  4720.           /* Always keep the BLOCK node associated with the outermost
  4721.              pair of curley braces of a function.  These are needed
  4722.              for correct operation of dwarfout.c.  */
  4723.           keep_next_level ();
  4724.         ;
  4725.     break;}
  4726. case 269:
  4727. #line 1672 "cp-parse.y"
  4728. {
  4729.           yyval.ttype = build_x_arrow (yyval.ttype);
  4730.         ;
  4731.     break;}
  4732. case 271:
  4733. #line 1682 "cp-parse.y"
  4734. {
  4735.           resume_momentary (yyvsp[-1].itype);
  4736.           note_list_got_semicolon (yyval.ttype);
  4737.         ;
  4738.     break;}
  4739. case 272:
  4740. #line 1688 "cp-parse.y"
  4741. { tree d;
  4742.           int yes = suspend_momentary ();
  4743.           d = start_decl (yyvsp[-1].ttype, yyval.ttype, 0, NULL_TREE);
  4744.           finish_decl (d, NULL_TREE, NULL_TREE, 0);
  4745.           resume_momentary (yes);
  4746.           note_list_got_semicolon (yyval.ttype);
  4747.         ;
  4748.     break;}
  4749. case 273:
  4750. #line 1696 "cp-parse.y"
  4751. { resume_momentary ((int) yyvsp[-1].itype); ;
  4752.     break;}
  4753. case 274:
  4754. #line 1699 "cp-parse.y"
  4755. { tree d;
  4756.           int yes = suspend_momentary ();
  4757.           d = start_decl (yyvsp[-1].ttype, yyval.ttype, 0, NULL_TREE);
  4758.           finish_decl (d, NULL_TREE, NULL_TREE, 0);
  4759.           resume_momentary (yes);
  4760.         ;
  4761.     break;}
  4762. case 275:
  4763. #line 1706 "cp-parse.y"
  4764. {
  4765.           shadow_tag (yyval.ttype);
  4766.           note_list_got_semicolon (yyval.ttype);
  4767.         ;
  4768.     break;}
  4769. case 276:
  4770. #line 1711 "cp-parse.y"
  4771. { warning ("empty declaration"); ;
  4772.     break;}
  4773. case 279:
  4774. #line 1721 "cp-parse.y"
  4775. { yyval.ttype = yyvsp[0].ttype; ;
  4776.     break;}
  4777. case 280:
  4778. #line 1723 "cp-parse.y"
  4779. { yyval.ttype = yyvsp[0].ttype; ;
  4780.     break;}
  4781. case 281:
  4782. #line 1732 "cp-parse.y"
  4783. { if (yyval.ttype) yyval.ttype = list_hash_lookup_or_cons (yyval.ttype); ;
  4784.     break;}
  4785. case 282:
  4786. #line 1734 "cp-parse.y"
  4787. { yyval.ttype = hash_tree_chain (yyvsp[0].ttype, yyval.ttype); ;
  4788.     break;}
  4789. case 283:
  4790. #line 1736 "cp-parse.y"
  4791. { yyval.ttype = hash_tree_chain (yyval.ttype, yyvsp[0].ttype); ;
  4792.     break;}
  4793. case 284:
  4794. #line 1738 "cp-parse.y"
  4795. { yyval.ttype = hash_tree_chain (yyvsp[-1].ttype, hash_chainon (yyvsp[0].ttype, yyval.ttype)); ;
  4796.     break;}
  4797. case 285:
  4798. #line 1744 "cp-parse.y"
  4799. { yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
  4800.     break;}
  4801. case 286:
  4802. #line 1746 "cp-parse.y"
  4803. { if (extra_warnings)
  4804.             warning ("`%s' is not at beginning of declaration",
  4805.                  IDENTIFIER_POINTER (yyval.ttype));
  4806.           yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
  4807.     break;}
  4808. case 287:
  4809. #line 1751 "cp-parse.y"
  4810. { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
  4811.     break;}
  4812. case 288:
  4813. #line 1753 "cp-parse.y"
  4814. { if (extra_warnings)
  4815.             warning ("`%s' is not at beginning of declaration",
  4816.                  IDENTIFIER_POINTER (yyvsp[0].ttype));
  4817.           yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
  4818.     break;}
  4819. case 289:
  4820. #line 1765 "cp-parse.y"
  4821. { yyval.ttype = IDENTIFIER_AS_LIST (yyval.ttype);
  4822.           TREE_STATIC (yyval.ttype) = 1; ;
  4823.     break;}
  4824. case 290:
  4825. #line 1768 "cp-parse.y"
  4826. { yyval.ttype = IDENTIFIER_AS_LIST (yyval.ttype); ;
  4827.     break;}
  4828. case 291:
  4829. #line 1770 "cp-parse.y"
  4830. { yyval.ttype = hash_tree_chain (yyvsp[0].ttype, yyval.ttype);
  4831.           TREE_STATIC (yyval.ttype) = 1; ;
  4832.     break;}
  4833. case 292:
  4834. #line 1773 "cp-parse.y"
  4835. { if (extra_warnings && TREE_STATIC (yyval.ttype))
  4836.             warning ("`%s' is not at beginning of declaration",
  4837.                  IDENTIFIER_POINTER (yyvsp[0].ttype));
  4838.           yyval.ttype = hash_tree_chain (yyvsp[0].ttype, yyval.ttype);
  4839.           TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
  4840.     break;}
  4841. case 293:
  4842. #line 1789 "cp-parse.y"
  4843. { yyval.ttype = get_decl_list (yyval.ttype); ;
  4844.     break;}
  4845. case 294:
  4846. #line 1791 "cp-parse.y"
  4847. { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
  4848.     break;}
  4849. case 295:
  4850. #line 1793 "cp-parse.y"
  4851. { yyval.ttype = decl_tree_cons (NULL_TREE, yyval.ttype, yyvsp[0].ttype); ;
  4852.     break;}
  4853. case 296:
  4854. #line 1795 "cp-parse.y"
  4855. { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[-1].ttype, hash_chainon (yyvsp[0].ttype, yyval.ttype)); ;
  4856.     break;}
  4857. case 297:
  4858. #line 1800 "cp-parse.y"
  4859. { yyval.ttype = get_decl_list (yyval.ttype); ;
  4860.     break;}
  4861. case 298:
  4862. #line 1802 "cp-parse.y"
  4863. { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
  4864.     break;}
  4865. case 303:
  4866. #line 1814 "cp-parse.y"
  4867. { yyval.ttype = TREE_TYPE (yyvsp[-1].ttype);
  4868.           if (pedantic)
  4869.             pedwarn ("ANSI C++ forbids `typeof'"); ;
  4870.     break;}
  4871. case 304:
  4872. #line 1818 "cp-parse.y"
  4873. { yyval.ttype = groktypename (yyvsp[-1].ttype);
  4874.           if (pedantic)
  4875.             pedwarn ("ANSI C++ forbids `typeof'"); ;
  4876.     break;}
  4877. case 313:
  4878. #line 1843 "cp-parse.y"
  4879. { yyval.ttype = NULL_TREE; ;
  4880.     break;}
  4881. case 314:
  4882. #line 1845 "cp-parse.y"
  4883. { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype); yyval.ttype = yyvsp[-1].ttype; ;
  4884.     break;}
  4885. case 315:
  4886. #line 1850 "cp-parse.y"
  4887. { current_declspecs = yyvsp[-5].ttype;
  4888.           yyvsp[0].itype = suspend_momentary ();
  4889.           yyval.ttype = start_decl (yyvsp[-4].ttype, current_declspecs, 1, yyvsp[-3].ttype);
  4890.           cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype); ;
  4891.     break;}
  4892. case 316:
  4893. #line 1856 "cp-parse.y"
  4894. { finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 0);
  4895.           yyval.itype = yyvsp[-2].itype; ;
  4896.     break;}
  4897. case 317:
  4898. #line 1859 "cp-parse.y"
  4899. { tree d;
  4900.           current_declspecs = yyvsp[-4].ttype;
  4901.           yyval.itype = suspend_momentary ();
  4902.           d = start_decl (yyvsp[-3].ttype, current_declspecs, 0, yyvsp[-2].ttype);
  4903.           cplus_decl_attributes (d, yyvsp[0].ttype);
  4904.           finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 0); ;
  4905.     break;}
  4906. case 318:
  4907. #line 1869 "cp-parse.y"
  4908. { yyval.ttype = start_decl (yyvsp[-4].ttype, current_declspecs, 1, yyvsp[-3].ttype);
  4909.           cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype); ;
  4910.     break;}
  4911. case 319:
  4912. #line 1873 "cp-parse.y"
  4913. { finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 0); ;
  4914.     break;}
  4915. case 320:
  4916. #line 1875 "cp-parse.y"
  4917. { tree d = start_decl (yyvsp[-3].ttype, current_declspecs, 0, yyvsp[-2].ttype);
  4918.           cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype);
  4919.           finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 0); ;
  4920.     break;}
  4921. case 321:
  4922. #line 1882 "cp-parse.y"
  4923. { current_declspecs = yyvsp[-5].ttype;
  4924.           yyvsp[0].itype = suspend_momentary ();
  4925.           yyval.ttype = start_decl (yyvsp[-4].ttype, current_declspecs, 1, yyvsp[-3].ttype);
  4926.           cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype); ;
  4927.     break;}
  4928. case 322:
  4929. #line 1888 "cp-parse.y"
  4930. { finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 0);
  4931.           yyval.itype = yyvsp[-2].itype; ;
  4932.     break;}
  4933. case 323:
  4934. #line 1891 "cp-parse.y"
  4935. { tree d;
  4936.           current_declspecs = yyvsp[-4].ttype;
  4937.           yyval.itype = suspend_momentary ();
  4938.           d = start_decl (yyvsp[-3].ttype, current_declspecs, 0, yyvsp[-2].ttype);
  4939.           cplus_decl_attributes (d, yyvsp[0].ttype);
  4940.           finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 0); ;
  4941.     break;}
  4942. case 324:
  4943. #line 1903 "cp-parse.y"
  4944. { yyval.ttype = NULL_TREE; ;
  4945.     break;}
  4946. case 325:
  4947. #line 1905 "cp-parse.y"
  4948. { yyval.ttype = yyvsp[-2].ttype; ;
  4949.     break;}
  4950. case 326:
  4951. #line 1910 "cp-parse.y"
  4952. { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
  4953.     break;}
  4954. case 327:
  4955. #line 1912 "cp-parse.y"
  4956. { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype); ;
  4957.     break;}
  4958. case 328:
  4959. #line 1917 "cp-parse.y"
  4960. { if (strcmp (IDENTIFIER_POINTER (yyvsp[0].ttype), "packed")
  4961.           && strcmp (IDENTIFIER_POINTER (yyvsp[0].ttype), "noreturn"))
  4962.         warning ("`%s' attribute directive ignored",
  4963.              IDENTIFIER_POINTER (yyvsp[0].ttype));
  4964.       yyval.ttype = yyvsp[0].ttype; ;
  4965.     break;}
  4966. case 329:
  4967. #line 1923 "cp-parse.y"
  4968. { /* if not "aligned(n)", then issue warning */
  4969.       if (strcmp (IDENTIFIER_POINTER (yyvsp[-3].ttype), "aligned") != 0
  4970.           || TREE_CODE (yyvsp[-1].ttype) != INTEGER_CST)
  4971.         {
  4972.           warning ("`%s' attribute directive ignored",
  4973.                IDENTIFIER_POINTER (yyvsp[-3].ttype));
  4974.           yyval.ttype = yyvsp[-3].ttype;
  4975.         }
  4976.       else
  4977.         yyval.ttype = tree_cons (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE); ;
  4978.     break;}
  4979. case 330:
  4980. #line 1934 "cp-parse.y"
  4981. { /* if not "format(...)", then issue warning */
  4982.       if (strcmp (IDENTIFIER_POINTER (yyvsp[-7].ttype), "format") != 0
  4983.           || TREE_CODE (yyvsp[-3].ttype) != INTEGER_CST
  4984.           || TREE_CODE (yyvsp[-1].ttype) != INTEGER_CST)
  4985.         {
  4986.           warning ("`%s' attribute directive ignored",
  4987.                IDENTIFIER_POINTER (yyvsp[-7].ttype));
  4988.           yyval.ttype = yyvsp[-7].ttype;
  4989.         }
  4990.       else
  4991.         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); ;
  4992.     break;}
  4993. case 331:
  4994. #line 1950 "cp-parse.y"
  4995. { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
  4996.     break;}
  4997. case 332:
  4998. #line 1952 "cp-parse.y"
  4999. { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
  5000.     break;}
  5001. case 334:
  5002. #line 1958 "cp-parse.y"
  5003. { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, NULL_TREE);
  5004.           TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1;
  5005.           if (pedantic)
  5006.             pedwarn ("ANSI C++ forbids empty initializer braces"); ;
  5007.     break;}
  5008. case 335:
  5009. #line 1963 "cp-parse.y"
  5010. { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-1].ttype));
  5011.           TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
  5012.     break;}
  5013. case 336:
  5014. #line 1966 "cp-parse.y"
  5015. { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype));
  5016.           TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
  5017.     break;}
  5018. case 337:
  5019. #line 1969 "cp-parse.y"
  5020. { yyval.ttype = NULL_TREE; ;
  5021.     break;}
  5022. case 338:
  5023. #line 1976 "cp-parse.y"
  5024. { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
  5025.     break;}
  5026. case 339:
  5027. #line 1978 "cp-parse.y"
  5028. { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
  5029.     break;}
  5030. case 340:
  5031. #line 1981 "cp-parse.y"
  5032. { yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype); ;
  5033.     break;}
  5034. case 341:
  5035. #line 1983 "cp-parse.y"
  5036. { yyval.ttype = tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
  5037.     break;}
  5038. case 342:
  5039. #line 1985 "cp-parse.y"
  5040. { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[0].ttype); ;
  5041.     break;}
  5042. case 343:
  5043. #line 1987 "cp-parse.y"
  5044. { yyval.ttype = tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
  5045.     break;}
  5046. case 344:
  5047. #line 1992 "cp-parse.y"
  5048. { yyvsp[0].itype = suspend_momentary ();
  5049.           yyval.ttype = start_enum (yyvsp[-1].ttype); ;
  5050.     break;}
  5051. case 345:
  5052. #line 1995 "cp-parse.y"
  5053. { yyval.ttype = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype);
  5054.           resume_momentary ((int) yyvsp[-4].itype);
  5055.           check_for_missing_semicolon (yyvsp[-3].ttype); ;
  5056.     break;}
  5057. case 346:
  5058. #line 1999 "cp-parse.y"
  5059. { yyval.ttype = finish_enum (start_enum (yyvsp[-2].ttype), NULL_TREE);
  5060.           check_for_missing_semicolon (yyval.ttype); ;
  5061.     break;}
  5062. case 347:
  5063. #line 2002 "cp-parse.y"
  5064. { yyvsp[0].itype = suspend_momentary ();
  5065.           yyval.ttype = start_enum (make_anon_name ()); ;
  5066.     break;}
  5067. case 348:
  5068. #line 2005 "cp-parse.y"
  5069. { yyval.ttype = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype);
  5070.           resume_momentary ((int) yyvsp[-5].itype);
  5071.           check_for_missing_semicolon (yyvsp[-3].ttype); ;
  5072.     break;}
  5073. case 349:
  5074. #line 2009 "cp-parse.y"
  5075. { yyval.ttype = finish_enum (start_enum (make_anon_name()), NULL_TREE);
  5076.           check_for_missing_semicolon (yyval.ttype); ;
  5077.     break;}
  5078. case 350:
  5079. #line 2012 "cp-parse.y"
  5080. { yyval.ttype = xref_tag (enum_type_node, yyvsp[0].ttype, NULL_TREE); ;
  5081.     break;}
  5082. case 351:
  5083. #line 2016 "cp-parse.y"
  5084. {
  5085.           int semi;
  5086.           tree id;
  5087.  
  5088. #if 0
  5089.           /* Need to rework class nesting in the
  5090.              presence of nested classes, etc.  */
  5091.           shadow_tag (CLASSTYPE_AS_LIST (yyval.ttype)); */
  5092. #endif
  5093.           if (yychar == YYEMPTY)
  5094.             yychar = YYLEX;
  5095.           semi = yychar == ';';
  5096.           /* finish_struct nukes this anyway; if
  5097.              finish_exception does too, then it can go. */
  5098.           if (semi)
  5099.             note_got_semicolon (yyval.ttype);
  5100.  
  5101.           if (TREE_CODE (yyval.ttype) == ENUMERAL_TYPE)
  5102.             /* $$ = $1 from default rule.  */;
  5103.           else if (CLASSTYPE_DECLARED_EXCEPTION (yyval.ttype))
  5104.             {
  5105.               if (! semi)
  5106.             yyval.ttype = finish_exception (yyval.ttype, yyvsp[-1].ttype);
  5107.               else
  5108.             warning ("empty exception declaration\n");
  5109.             }
  5110.           else
  5111.             {
  5112.               yyval.ttype = finish_struct (yyval.ttype, yyvsp[-1].ttype, semi);
  5113.               if (semi) note_got_semicolon (yyval.ttype);
  5114.             }
  5115.  
  5116.           pop_obstacks ();
  5117.  
  5118.           id = TYPE_IDENTIFIER (yyval.ttype);
  5119.           if (id && IDENTIFIER_TEMPLATE (id))
  5120.             {
  5121.               tree decl;
  5122.  
  5123.               /* I don't know if the copying of this TYPE_DECL is
  5124.                * really needed.  However, it's such a small per-
  5125.                * formance penalty that the extra safety is a bargain.
  5126.                * - niklas@appli.se
  5127.                */
  5128.               push_obstacks (&permanent_obstack, &permanent_obstack);
  5129.               decl = copy_node (lookup_name (id, 0));
  5130.               if (DECL_LANG_SPECIFIC (decl))
  5131.             copy_lang_decl (decl);
  5132.               pop_obstacks ();
  5133.               undo_template_name_overload (id, 0);
  5134.               pushdecl_top_level (decl);
  5135.             }
  5136.           if (! semi)
  5137.             check_for_missing_semicolon (yyval.ttype); ;
  5138.     break;}
  5139. case 352:
  5140. #line 2071 "cp-parse.y"
  5141. {
  5142. #if 0
  5143.   /* It's no longer clear what the following error is supposed to
  5144.      accomplish.  If it turns out to be needed, add a comment why.  */
  5145.           if (TYPE_BINFO_BASETYPES (yyval.ttype) && !TYPE_SIZE (yyval.ttype))
  5146.             {
  5147.               error ("incomplete definition of type `%s'",
  5148.                  TYPE_NAME_STRING (yyval.ttype));
  5149.               yyval.ttype = error_mark_node;
  5150.             }
  5151. #endif
  5152.         ;
  5153.     break;}
  5154. case 356:
  5155. #line 2093 "cp-parse.y"
  5156. { if (pedantic) pedwarn ("comma at end of enumerator list"); ;
  5157.     break;}
  5158. case 358:
  5159. #line 2098 "cp-parse.y"
  5160. { error ("storage class specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
  5161.     break;}
  5162. case 359:
  5163. #line 2100 "cp-parse.y"
  5164. { error ("type specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
  5165.     break;}
  5166. case 360:
  5167. #line 2102 "cp-parse.y"
  5168. { error ("type qualifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
  5169.     break;}
  5170. case 361:
  5171. #line 2104 "cp-parse.y"
  5172. { error ("no body nor ';' separates two class, struct or union declarations"); ;
  5173.     break;}
  5174. case 362:
  5175. #line 2109 "cp-parse.y"
  5176. { aggr1: current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
  5177.     break;}
  5178. case 363:
  5179. #line 2111 "cp-parse.y"
  5180. { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
  5181.     break;}
  5182. case 364:
  5183. #line 2113 "cp-parse.y"
  5184. { yyungetc (':', 1); goto aggr1; ;
  5185.     break;}
  5186. case 365:
  5187. #line 2115 "cp-parse.y"
  5188. { yyungetc ('{', 1);
  5189.         aggr2:
  5190.           current_aggr = yyval.ttype;
  5191.           yyval.ttype = yyvsp[-1].ttype;
  5192.           overload_template_name (yyval.ttype, 0); ;
  5193.     break;}
  5194. case 366:
  5195. #line 2121 "cp-parse.y"
  5196. { yyungetc (':', 1); goto aggr2; ;
  5197.     break;}
  5198. case 367:
  5199. #line 2126 "cp-parse.y"
  5200. { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
  5201.     break;}
  5202. case 368:
  5203. #line 2131 "cp-parse.y"
  5204. {
  5205.           yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, NULL_TREE);
  5206.         ;
  5207.     break;}
  5208. case 369:
  5209. #line 2135 "cp-parse.y"
  5210. {
  5211.           if (yyvsp[0].ttype)
  5212.             yyval.ttype = xref_tag (current_aggr, yyvsp[-2].ttype, yyvsp[0].ttype);
  5213.           else
  5214.             yyval.ttype = yyvsp[-1].ttype;
  5215.         ;
  5216.     break;}
  5217. case 370:
  5218. #line 2143 "cp-parse.y"
  5219. {
  5220.           yyval.ttype = xref_defn_tag (current_aggr, yyvsp[0].ttype, NULL_TREE);
  5221.         ;
  5222.     break;}
  5223. case 371:
  5224. #line 2147 "cp-parse.y"
  5225. {
  5226.           if (yyvsp[0].ttype)
  5227.             yyval.ttype = xref_defn_tag (current_aggr, yyvsp[-2].ttype, yyvsp[0].ttype);
  5228.           else
  5229.             yyval.ttype = yyvsp[-1].ttype;
  5230.         ;
  5231.     break;}
  5232. case 372:
  5233. #line 2156 "cp-parse.y"
  5234. { yyval.ttype = xref_tag (yyval.ttype, make_anon_name (), NULL_TREE);
  5235.           yyungetc ('{', 1); ;
  5236.     break;}
  5237. case 375:
  5238. #line 2164 "cp-parse.y"
  5239. { yyval.ttype = NULL_TREE; ;
  5240.     break;}
  5241. case 376:
  5242. #line 2166 "cp-parse.y"
  5243. { yyungetc(':', 1); yyval.ttype = NULL_TREE; ;
  5244.     break;}
  5245. case 377:
  5246. #line 2168 "cp-parse.y"
  5247. { yyval.ttype = yyvsp[0].ttype; ;
  5248.     break;}
  5249. case 379:
  5250. #line 2174 "cp-parse.y"
  5251. { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
  5252.     break;}
  5253. case 380:
  5254. #line 2179 "cp-parse.y"
  5255. { if (! is_aggr_typedef (yyval.ttype, 1))
  5256.             yyval.ttype = NULL_TREE;
  5257.           else yyval.ttype = build_tree_list ((tree)visibility_default, yyval.ttype); ;
  5258.     break;}
  5259. case 381:
  5260. #line 2183 "cp-parse.y"
  5261. { if (! is_aggr_typedef (yyval.ttype, 1))
  5262.             yyval.ttype = NULL_TREE;
  5263.           else yyval.ttype = build_tree_list ((tree)visibility_default, yyval.ttype); ;
  5264.     break;}
  5265. case 382:
  5266. #line 2187 "cp-parse.y"
  5267. { if (! is_aggr_typedef (yyvsp[0].ttype, 1))
  5268.             yyval.ttype = NULL_TREE;
  5269.           else yyval.ttype = build_tree_list ((tree) yyval.ttype, yyvsp[0].ttype); ;
  5270.     break;}
  5271. case 383:
  5272. #line 2191 "cp-parse.y"
  5273. { if (! is_aggr_typedef (yyvsp[0].ttype, 1))
  5274.             yyval.ttype = NULL_TREE;
  5275.           else yyval.ttype = build_tree_list ((tree) yyval.ttype, yyvsp[0].ttype); ;
  5276.     break;}
  5277. case 384:
  5278. #line 2198 "cp-parse.y"
  5279. {
  5280.             /* Kludge!!! See rule "template_type" and the code
  5281.            * dealing with "template_type_seen_before_scope" in
  5282.            * yylex(). */
  5283.             yyval.ttype = yyvsp[0].ttype;
  5284.         ;
  5285.     break;}
  5286. case 385:
  5287. #line 2207 "cp-parse.y"
  5288. {
  5289.             extern tree template_type_seen_before_scope;
  5290.           tree id = yyvsp[0].ttype ? TYPE_IDENTIFIER (yyvsp[0].ttype) : yyvsp[-2].ttype;
  5291.  
  5292.             /* Check the rule template_type to get this... */
  5293.           if (yychar == YYEMPTY)
  5294.             yychar = YYLEX;
  5295.           if (yychar == SCOPE) {
  5296.             template_type_seen_before_scope = id;
  5297.             yychar = YYLEX;
  5298.           }
  5299.         ;
  5300.     break;}
  5301. case 388:
  5302. #line 2225 "cp-parse.y"
  5303. { if (yyval.ttype != ridpointers[(int)RID_VIRTUAL])
  5304.             sorry ("non-virtual visibility");
  5305.           yyval.itype = visibility_default_virtual; ;
  5306.     break;}
  5307. case 389:
  5308. #line 2229 "cp-parse.y"
  5309. { int err = 0;
  5310.           if (yyvsp[0].itype == visibility_protected)
  5311.             {
  5312.               warning ("`protected' visibility not implemented");
  5313.               yyvsp[0].itype = visibility_public;
  5314.               err++;
  5315.             }
  5316.           else if (yyvsp[0].itype == visibility_public)
  5317.             {
  5318.               if (yyvsp[-1].itype == visibility_private)
  5319.             {
  5320.             mixed:
  5321.               error ("base class cannot be public and private");
  5322.             }
  5323.               else if (yyvsp[-1].itype == visibility_default_virtual)
  5324.             yyval.itype = visibility_public_virtual;
  5325.             }
  5326.           else /* $2 == visibility_private */
  5327.             {
  5328.               if (yyvsp[-1].itype == visibility_public)
  5329.             goto mixed;
  5330.               else if (yyvsp[-1].itype == visibility_default_virtual)
  5331.             yyval.itype = visibility_private_virtual;
  5332.             }
  5333.         ;
  5334.     break;}
  5335. case 390:
  5336. #line 2255 "cp-parse.y"
  5337. { if (yyvsp[0].ttype != ridpointers[(int)RID_VIRTUAL])
  5338.             sorry ("non-virtual visibility");
  5339.           if (yyval.itype == visibility_public)
  5340.             yyval.itype = visibility_public_virtual;
  5341.           else if (yyval.itype == visibility_private)
  5342.             yyval.itype = visibility_private_virtual; ;
  5343.     break;}
  5344. case 391:
  5345. #line 2264 "cp-parse.y"
  5346. { tree t;
  5347.           push_obstacks_nochange ();
  5348.           end_temporary_allocation ();
  5349.  
  5350.           if (! IS_AGGR_TYPE (yyvsp[-1].ttype))
  5351.             {
  5352.               yyvsp[-1].ttype = make_lang_type (RECORD_TYPE);
  5353.               TYPE_NAME (yyvsp[-1].ttype) = get_identifier ("erroneous type");
  5354.             }
  5355.           if (TYPE_SIZE (yyvsp[-1].ttype))
  5356.             duplicate_tag_error (yyvsp[-1].ttype);
  5357.                   if (TYPE_SIZE (yyvsp[-1].ttype) || TYPE_BEING_DEFINED (yyvsp[-1].ttype))
  5358.                     {
  5359.                       t = make_lang_type (TREE_CODE (yyvsp[-1].ttype));
  5360.                       pushtag (TYPE_IDENTIFIER (yyvsp[-1].ttype), t);
  5361.                       yyvsp[-1].ttype = t;
  5362.                     }
  5363.           pushclass (yyvsp[-1].ttype, 0);
  5364.           TYPE_BEING_DEFINED (yyvsp[-1].ttype) = 1;
  5365.           t = TYPE_IDENTIFIER (yyvsp[-1].ttype);
  5366.           if (t && IDENTIFIER_TEMPLATE (t))
  5367.             overload_template_name (t, 1);
  5368.         ;
  5369.     break;}
  5370. case 392:
  5371. #line 2291 "cp-parse.y"
  5372. { yyval.ttype = NULL_TREE; ;
  5373.     break;}
  5374. case 393:
  5375. #line 2293 "cp-parse.y"
  5376. { yyval.ttype = build_tree_list ((tree)visibility_default, yyval.ttype); ;
  5377.     break;}
  5378. case 394:
  5379. #line 2295 "cp-parse.y"
  5380. { yyval.ttype = chainon (yyval.ttype, build_tree_list ((tree) yyvsp[-2].itype, yyvsp[0].ttype)); ;
  5381.     break;}
  5382. case 396:
  5383. #line 2303 "cp-parse.y"
  5384. { if (yyval.ttype == void_type_node) yyval.ttype = NULL_TREE; ;
  5385.     break;}
  5386. case 397:
  5387. #line 2305 "cp-parse.y"
  5388. { /* In pushdecl, we created a reverse list of names
  5389.              in this binding level.  Make sure that the chain
  5390.              of what we're trying to add isn't the item itself
  5391.              (which can happen with what pushdecl's doing).  */
  5392.           if (yyvsp[0].ttype != NULL_TREE && yyvsp[0].ttype != void_type_node)
  5393.             {
  5394.               if (TREE_CHAIN (yyvsp[0].ttype) != yyval.ttype)
  5395.             yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
  5396.               else
  5397.             yyval.ttype = yyvsp[0].ttype;
  5398.             }
  5399.         ;
  5400.     break;}
  5401. case 399:
  5402. #line 2322 "cp-parse.y"
  5403. { do_components:
  5404.           yyval.ttype = grok_x_components (yyval.ttype, yyvsp[-1].ttype);
  5405.           end_exception_decls ();
  5406.         ;
  5407.     break;}
  5408. case 400:
  5409. #line 2327 "cp-parse.y"
  5410. { yyval.ttype = groktypefield (yyval.ttype, yyvsp[-2].ttype); ;
  5411.     break;}
  5412. case 401:
  5413. #line 2329 "cp-parse.y"
  5414. { error ("missing ';' before right brace");
  5415.           yyungetc ('}', 0);
  5416.           yyval.ttype = groktypefield (yyval.ttype, yyvsp[-2].ttype); ;
  5417.     break;}
  5418. case 402:
  5419. #line 2333 "cp-parse.y"
  5420. { yyval.ttype = groktypefield (yyval.ttype, empty_parms ()); ;
  5421.     break;}
  5422. case 403:
  5423. #line 2335 "cp-parse.y"
  5424. { error ("missing ';' before right brace");
  5425.           yyungetc ('}', 0);
  5426.           yyval.ttype = groktypefield (yyval.ttype, empty_parms ()); ;
  5427.     break;}
  5428. case 404:
  5429. #line 2339 "cp-parse.y"
  5430. { goto do_components; ;
  5431.     break;}
  5432. case 405:
  5433. #line 2342 "cp-parse.y"
  5434. { yyval.ttype = grokfield (yyvsp[-1].ttype, yyval.ttype,
  5435.                   NULL_TREE, NULL_TREE, NULL_TREE); ;
  5436.     break;}
  5437. case 406:
  5438. #line 2345 "cp-parse.y"
  5439. { error ("missing ';' before right brace");
  5440.           yyungetc ('}', 0);
  5441.           goto do_components; ;
  5442.     break;}
  5443. case 407:
  5444. #line 2349 "cp-parse.y"
  5445. { yyval.ttype = groktypefield (yyval.ttype, yyvsp[-2].ttype); ;
  5446.     break;}
  5447. case 408:
  5448. #line 2351 "cp-parse.y"
  5449. { error ("missing ';' before right brace");
  5450.           yyungetc ('}', 0);
  5451.           yyval.ttype = groktypefield (yyval.ttype, yyvsp[-2].ttype); ;
  5452.     break;}
  5453. case 409:
  5454. #line 2355 "cp-parse.y"
  5455. { yyval.ttype = groktypefield (yyval.ttype, empty_parms ()); ;
  5456.     break;}
  5457. case 410:
  5458. #line 2357 "cp-parse.y"
  5459. { error ("missing ';' before right brace");
  5460.           yyungetc ('}', 0);
  5461.           yyval.ttype = groktypefield (yyval.ttype, empty_parms ()); ;
  5462.     break;}
  5463. case 411:
  5464. #line 2361 "cp-parse.y"
  5465. { yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
  5466.     break;}
  5467. case 412:
  5468. #line 2363 "cp-parse.y"
  5469. { error ("missing ';' before right brace");
  5470.           yyungetc ('}', 0);
  5471.           yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
  5472.     break;}
  5473. case 413:
  5474. #line 2367 "cp-parse.y"
  5475. { yyval.ttype = NULL_TREE; ;
  5476.     break;}
  5477. case 414:
  5478. #line 2372 "cp-parse.y"
  5479. { yyval.ttype = finish_method (yyval.ttype); ;
  5480.     break;}
  5481. case 415:
  5482. #line 2374 "cp-parse.y"
  5483. { yyval.ttype = finish_method (yyval.ttype); ;
  5484.     break;}
  5485. case 416:
  5486. #line 2376 "cp-parse.y"
  5487. { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[-1].ttype, NULL_TREE, NULL_TREE); ;
  5488.     break;}
  5489. case 417:
  5490. #line 2378 "cp-parse.y"
  5491. { error ("missing ';' before right brace");
  5492.           yyungetc ('}', 0);
  5493.           yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[-1].ttype, NULL_TREE, NULL_TREE); ;
  5494.     break;}
  5495. case 418:
  5496. #line 2385 "cp-parse.y"
  5497. { yyval.ttype = NULL_TREE; ;
  5498.     break;}
  5499. case 420:
  5500. #line 2388 "cp-parse.y"
  5501. {
  5502.           /* In this context, void_type_node encodes
  5503.              friends.  They have been recorded elsewhere.  */
  5504.           if (yyval.ttype == void_type_node)
  5505.             yyval.ttype = yyvsp[0].ttype;
  5506.           else
  5507.             yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
  5508.         ;
  5509.     break;}
  5510. case 421:
  5511. #line 2400 "cp-parse.y"
  5512. { current_declspecs = yyvsp[-4].ttype;
  5513.           yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[-2].ttype, NULL_TREE, yyvsp[-1].ttype);
  5514.           cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
  5515.     break;}
  5516. case 422:
  5517. #line 2404 "cp-parse.y"
  5518. { current_declspecs = yyvsp[-6].ttype;
  5519.           yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[-4].ttype, yyvsp[0].ttype, yyvsp[-3].ttype);
  5520.           cplus_decl_attributes (yyval.ttype, yyvsp[-2].ttype); ;
  5521.     break;}
  5522. case 423:
  5523. #line 2408 "cp-parse.y"
  5524. { current_declspecs = yyvsp[-4].ttype;
  5525.           yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
  5526.           cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
  5527.     break;}
  5528. case 424:
  5529. #line 2412 "cp-parse.y"
  5530. { current_declspecs = yyvsp[-4].ttype;
  5531.           yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
  5532.           cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
  5533.     break;}
  5534. case 425:
  5535. #line 2416 "cp-parse.y"
  5536. { current_declspecs = yyvsp[-3].ttype;
  5537.           yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[-1].ttype);
  5538.           cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
  5539.     break;}
  5540. case 426:
  5541. #line 2423 "cp-parse.y"
  5542. { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[-2].ttype, NULL_TREE, yyvsp[-1].ttype);
  5543.           cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
  5544.     break;}
  5545. case 427:
  5546. #line 2426 "cp-parse.y"
  5547. { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[-4].ttype, yyvsp[0].ttype, yyvsp[-3].ttype);
  5548.           cplus_decl_attributes (yyval.ttype, yyvsp[-2].ttype); ;
  5549.     break;}
  5550. case 428:
  5551. #line 2429 "cp-parse.y"
  5552. { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
  5553.           cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
  5554.     break;}
  5555. case 429:
  5556. #line 2432 "cp-parse.y"
  5557. { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
  5558.           cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
  5559.     break;}
  5560. case 430:
  5561. #line 2435 "cp-parse.y"
  5562. { yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[-1].ttype);
  5563.           cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
  5564.     break;}
  5565. case 432:
  5566. #line 2446 "cp-parse.y"
  5567. { TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
  5568.     break;}
  5569. case 433:
  5570. #line 2451 "cp-parse.y"
  5571. { yyval.ttype = build_enumerator (yyval.ttype, NULL_TREE); ;
  5572.     break;}
  5573. case 434:
  5574. #line 2453 "cp-parse.y"
  5575. { yyval.ttype = build_enumerator (yyval.ttype, yyvsp[0].ttype); ;
  5576.     break;}
  5577. case 435:
  5578. #line 2459 "cp-parse.y"
  5579. { yyval.ttype = build_decl_list (yyval.ttype, yyvsp[0].ttype); ;
  5580.     break;}
  5581. case 436:
  5582. #line 2461 "cp-parse.y"
  5583. { yyval.ttype = build_decl_list (yyval.ttype, yyvsp[0].ttype); ;
  5584.     break;}
  5585. case 437:
  5586. #line 2467 "cp-parse.y"
  5587. { yyval.ttype = NULL_TREE; ;
  5588.     break;}
  5589. case 439:
  5590. #line 2470 "cp-parse.y"
  5591. { yyval.ttype = yyvsp[0].ttype; ;
  5592.     break;}
  5593. case 440:
  5594. #line 2475 "cp-parse.y"
  5595. { yyval.ttype = IDENTIFIER_AS_LIST (yyval.ttype); ;
  5596.     break;}
  5597. case 441:
  5598. #line 2477 "cp-parse.y"
  5599. { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
  5600.     break;}
  5601. case 442:
  5602. #line 2482 "cp-parse.y"
  5603. { yyval.ttype = NULL_TREE; ;
  5604.     break;}
  5605. case 443:
  5606. #line 2484 "cp-parse.y"
  5607. { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
  5608.     break;}
  5609. case 444:
  5610. #line 2492 "cp-parse.y"
  5611. { yyval.itype = suspend_momentary (); ;
  5612.     break;}
  5613. case 445:
  5614. #line 2493 "cp-parse.y"
  5615. { resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = yyvsp[0].ttype; ;
  5616.     break;}
  5617. case 446:
  5618. #line 2499 "cp-parse.y"
  5619. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  5620.     break;}
  5621. case 447:
  5622. #line 2501 "cp-parse.y"
  5623. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  5624.     break;}
  5625. case 448:
  5626. #line 2503 "cp-parse.y"
  5627. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[0].ttype); ;
  5628.     break;}
  5629. case 449:
  5630. #line 2505 "cp-parse.y"
  5631. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, NULL_TREE, NULL_TREE); ;
  5632.     break;}
  5633. case 450:
  5634. #line 2507 "cp-parse.y"
  5635. { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
  5636.     break;}
  5637. case 451:
  5638. #line 2509 "cp-parse.y"
  5639. { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
  5640.     break;}
  5641. case 452:
  5642. #line 2511 "cp-parse.y"
  5643. { yyval.ttype = yyvsp[-1].ttype; ;
  5644.     break;}
  5645. case 453:
  5646. #line 2513 "cp-parse.y"
  5647. { yyval.ttype = make_pointer_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
  5648.     break;}
  5649. case 454:
  5650. #line 2515 "cp-parse.y"
  5651. { see_typename (); ;
  5652.     break;}
  5653. case 456:
  5654. #line 2518 "cp-parse.y"
  5655. { yyval.ttype = make_reference_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
  5656.     break;}
  5657. case 457:
  5658. #line 2520 "cp-parse.y"
  5659. { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  5660.     break;}
  5661. case 458:
  5662. #line 2522 "cp-parse.y"
  5663. { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  5664.     break;}
  5665. case 460:
  5666. #line 2528 "cp-parse.y"
  5667. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  5668.     break;}
  5669. case 461:
  5670. #line 2530 "cp-parse.y"
  5671. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  5672.     break;}
  5673. case 462:
  5674. #line 2532 "cp-parse.y"
  5675. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[0].ttype); ;
  5676.     break;}
  5677. case 463:
  5678. #line 2534 "cp-parse.y"
  5679. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, NULL_TREE, NULL_TREE); ;
  5680.     break;}
  5681. case 464:
  5682. #line 2536 "cp-parse.y"
  5683. { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
  5684.     break;}
  5685. case 465:
  5686. #line 2538 "cp-parse.y"
  5687. { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
  5688.     break;}
  5689. case 466:
  5690. #line 2540 "cp-parse.y"
  5691. { yyval.ttype = yyvsp[-1].ttype; ;
  5692.     break;}
  5693. case 467:
  5694. #line 2542 "cp-parse.y"
  5695. { see_typename (); ;
  5696.     break;}
  5697. case 469:
  5698. #line 2545 "cp-parse.y"
  5699. { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  5700.     break;}
  5701. case 470:
  5702. #line 2547 "cp-parse.y"
  5703. { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  5704.     break;}
  5705. case 471:
  5706. #line 2555 "cp-parse.y"
  5707. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  5708.     break;}
  5709. case 472:
  5710. #line 2557 "cp-parse.y"
  5711. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  5712.     break;}
  5713. case 473:
  5714. #line 2559 "cp-parse.y"
  5715. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[0].ttype); ;
  5716.     break;}
  5717. case 474:
  5718. #line 2561 "cp-parse.y"
  5719. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, NULL_TREE, NULL_TREE); ;
  5720.     break;}
  5721. case 475:
  5722. #line 2563 "cp-parse.y"
  5723. { yyval.ttype = yyvsp[-1].ttype; ;
  5724.     break;}
  5725. case 476:
  5726. #line 2565 "cp-parse.y"
  5727. { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  5728.     break;}
  5729. case 477:
  5730. #line 2567 "cp-parse.y"
  5731. { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  5732.     break;}
  5733. case 478:
  5734. #line 2569 "cp-parse.y"
  5735. { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
  5736.     break;}
  5737. case 479:
  5738. #line 2571 "cp-parse.y"
  5739. { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
  5740.     break;}
  5741. case 480:
  5742. #line 2573 "cp-parse.y"
  5743. { see_typename (); ;
  5744.     break;}
  5745. case 481:
  5746. #line 2577 "cp-parse.y"
  5747. { see_typename (); ;
  5748.     break;}
  5749. case 482:
  5750. #line 2580 "cp-parse.y"
  5751. {
  5752.         destructor_name:
  5753.           see_typename ();
  5754.           yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype);
  5755.         ;
  5756.     break;}
  5757. case 483:
  5758. #line 2586 "cp-parse.y"
  5759. { goto destructor_name; ;
  5760.     break;}
  5761. case 484:
  5762. #line 2588 "cp-parse.y"
  5763. { goto destructor_name; ;
  5764.     break;}
  5765. case 485:
  5766. #line 2590 "cp-parse.y"
  5767. { see_typename ();
  5768.           if (TREE_CODE (yyval.ttype) != SCOPE_REF)
  5769.             yyval.ttype = build_push_scope (yyval.ttype, yyvsp[0].ttype);
  5770.           else if (TREE_OPERAND (yyval.ttype, 1) == NULL_TREE)
  5771.             TREE_OPERAND (yyval.ttype, 1) = yyvsp[0].ttype;
  5772.           else
  5773.             yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype);
  5774.         ;
  5775.     break;}
  5776. case 486:
  5777. #line 2599 "cp-parse.y"
  5778. { yyval.ttype = build_push_scope (yyval.ttype, yyvsp[0].ttype); ;
  5779.     break;}
  5780. case 487:
  5781. #line 2601 "cp-parse.y"
  5782. { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype)); ;
  5783.     break;}
  5784. case 488:
  5785. #line 2603 "cp-parse.y"
  5786. { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype)); ;
  5787.     break;}
  5788. case 489:
  5789. #line 2605 "cp-parse.y"
  5790. { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-2].ttype, empty_parms (), yyvsp[0].ttype)); ;
  5791.     break;}
  5792. case 490:
  5793. #line 2607 "cp-parse.y"
  5794. { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, NULL_TREE, NULL_TREE)); ;
  5795.     break;}
  5796. case 491:
  5797. #line 2610 "cp-parse.y"
  5798. { yyval.ttype = build_push_scope (yyval.ttype, yyvsp[0].ttype); ;
  5799.     break;}
  5800. case 492:
  5801. #line 2612 "cp-parse.y"
  5802. { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype)); ;
  5803.     break;}
  5804. case 493:
  5805. #line 2614 "cp-parse.y"
  5806. { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype)); ;
  5807.     break;}
  5808. case 494:
  5809. #line 2616 "cp-parse.y"
  5810. { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-2].ttype, empty_parms (), yyvsp[0].ttype)); ;
  5811.     break;}
  5812. case 495:
  5813. #line 2618 "cp-parse.y"
  5814. { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, NULL_TREE, NULL_TREE)); ;
  5815.     break;}
  5816. case 496:
  5817. #line 2620 "cp-parse.y"
  5818. { yyval.ttype = build_parse_node (SCOPE_REF, NULL_TREE, yyvsp[0].ttype); ;
  5819.     break;}
  5820. case 497:
  5821. #line 2624 "cp-parse.y"
  5822. { tree t;
  5823.                   do_id_scope:
  5824.  
  5825.           t = resolve_scope_to_name (NULL_TREE, yyval.ttype);
  5826.           if (t == NULL_TREE)
  5827.             {
  5828.               cp_error ("`%T' is not a valid scope", yyval.ttype);
  5829.               yyval.ttype = error_mark_node; 
  5830.             }
  5831.           else
  5832.             yyval.ttype = t;
  5833.         ;
  5834.     break;}
  5835. case 498:
  5836. #line 2637 "cp-parse.y"
  5837. { goto do_id_scope; ;
  5838.     break;}
  5839. case 499:
  5840. #line 2639 "cp-parse.y"
  5841. {
  5842.                   if (yyval.ttype == error_mark_node)
  5843.                     /* leave it alone */;
  5844.                   else
  5845.             {
  5846.               yyval.ttype = resolve_scope_to_name (NULL_TREE, TYPE_IDENTIFIER (yyval.ttype));
  5847.               if (yyval.ttype == NULL_TREE)
  5848.             {
  5849.               error ("undefined explicitly scoped type");
  5850.               yyval.ttype = error_mark_node; 
  5851.             }
  5852.             }
  5853. /*                  if ($3) popclass (1); */
  5854.         ;
  5855.     break;}
  5856. case 502:
  5857. #line 2660 "cp-parse.y"
  5858. {
  5859.             /* Kludge!!! See rule "template_type" and the code
  5860.            * dealing with "template_type_seen_before_scope" in
  5861.            * yylex(). */
  5862.           yyval.ttype = yyvsp[0].ttype;
  5863.         ;
  5864.     break;}
  5865. case 503:
  5866. #line 2682 "cp-parse.y"
  5867. { see_typename ();
  5868.           yyval.ttype = yyvsp[-1].ttype; ;
  5869.     break;}
  5870. case 504:
  5871. #line 2686 "cp-parse.y"
  5872. { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  5873.     break;}
  5874. case 505:
  5875. #line 2688 "cp-parse.y"
  5876. { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
  5877.     break;}
  5878. case 506:
  5879. #line 2690 "cp-parse.y"
  5880. { see_typename (); ;
  5881.     break;}
  5882. case 507:
  5883. #line 2692 "cp-parse.y"
  5884. { yyval.ttype = yyvsp[-1].ttype; ;
  5885.     break;}
  5886. case 508:
  5887. #line 2694 "cp-parse.y"
  5888. { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  5889.     break;}
  5890. case 509:
  5891. #line 2696 "cp-parse.y"
  5892. { yyval.ttype = make_reference_declarator (yyvsp[0].ttype, NULL_TREE); ;
  5893.     break;}
  5894. case 510:
  5895. #line 2698 "cp-parse.y"
  5896. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  5897.     break;}
  5898. case 511:
  5899. #line 2700 "cp-parse.y"
  5900. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[0].ttype); ;
  5901.     break;}
  5902. case 512:
  5903. #line 2702 "cp-parse.y"
  5904. { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
  5905.     break;}
  5906. case 513:
  5907. #line 2704 "cp-parse.y"
  5908. { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
  5909.     break;}
  5910. case 514:
  5911. #line 2706 "cp-parse.y"
  5912. { yyval.ttype = build_parse_node (CALL_EXPR, NULL_TREE, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  5913.     break;}
  5914. case 515:
  5915. #line 2708 "cp-parse.y"
  5916. { yyval.ttype = build_parse_node (CALL_EXPR, NULL_TREE, empty_parms (), yyvsp[0].ttype); ;
  5917.     break;}
  5918. case 516:
  5919. #line 2710 "cp-parse.y"
  5920. { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
  5921.     break;}
  5922. case 517:
  5923. #line 2712 "cp-parse.y"
  5924. { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, NULL_TREE); ;
  5925.     break;}
  5926. case 518:
  5927. #line 2717 "cp-parse.y"
  5928. { tree t;
  5929.           t = yyval.ttype;
  5930.           while (TREE_OPERAND (t, 1))
  5931.             t = TREE_OPERAND (t, 1);
  5932.           TREE_OPERAND (t, 1) = build_parse_node (INDIRECT_REF, 0);
  5933.         ;
  5934.     break;}
  5935. case 519:
  5936. #line 2724 "cp-parse.y"
  5937. { tree t;
  5938.           t = yyval.ttype;
  5939.           while (TREE_OPERAND (t, 1))
  5940.             t = TREE_OPERAND (t, 1);
  5941.           TREE_OPERAND (t, 1) = build_parse_node (INDIRECT_REF, yyvsp[0].ttype);
  5942.         ;
  5943.     break;}
  5944. case 520:
  5945. #line 2731 "cp-parse.y"
  5946. { tree t;
  5947.           t = yyval.ttype;
  5948.           while (TREE_OPERAND (t, 1))
  5949.             t = TREE_OPERAND (t, 1);
  5950.           TREE_OPERAND (t, 1) = build_parse_node (ADDR_EXPR, 0);
  5951.         ;
  5952.     break;}
  5953. case 521:
  5954. #line 2738 "cp-parse.y"
  5955. { tree t;
  5956.           t = yyval.ttype;
  5957.           while (TREE_OPERAND (t, 1))
  5958.             t = TREE_OPERAND (t, 1);
  5959.           TREE_OPERAND (t, 1) = build_parse_node (ADDR_EXPR, yyvsp[0].ttype);
  5960.         ;
  5961.     break;}
  5962. case 522:
  5963. #line 2748 "cp-parse.y"
  5964. { tree t;
  5965.           t = yyval.ttype;
  5966.           while (TREE_OPERAND (t, 1))
  5967.             t = TREE_OPERAND (t, 1);
  5968.           TREE_OPERAND (t, 1) = build_parse_node (INDIRECT_REF, yyvsp[0].ttype);
  5969.         ;
  5970.     break;}
  5971. case 523:
  5972. #line 2755 "cp-parse.y"
  5973. { tree t;
  5974.           t = yyval.ttype;
  5975.           while (TREE_OPERAND (t, 1))
  5976.             t = TREE_OPERAND (t, 1);
  5977.           TREE_OPERAND (t, 1) = build_parse_node (ADDR_EXPR, yyvsp[0].ttype);
  5978.         ;
  5979.     break;}
  5980. case 529:
  5981. #line 2782 "cp-parse.y"
  5982. { emit_line_note (input_filename, lineno);
  5983.           pushlevel (0);
  5984.           clear_last_expr ();
  5985.           push_momentary ();
  5986.           expand_start_bindings (0); ;
  5987.     break;}
  5988. case 531:
  5989. #line 2794 "cp-parse.y"
  5990. { if (pedantic)
  5991.             pedwarn ("ANSI C++ forbids label declarations"); ;
  5992.     break;}
  5993. case 534:
  5994. #line 2805 "cp-parse.y"
  5995. { tree link;
  5996.           for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
  5997.             {
  5998.               tree label = shadow_label (TREE_VALUE (link));
  5999.               C_DECLARED_LABEL_FLAG (label) = 1;
  6000.               declare_nonlocal_label (label);
  6001.             }
  6002.         ;
  6003.     break;}
  6004. case 535:
  6005. #line 2819 "cp-parse.y"
  6006. {;
  6007.     break;}
  6008. case 537:
  6009. #line 2824 "cp-parse.y"
  6010. { pop_implicit_try_blocks (NULL_TREE);
  6011.           expand_end_bindings (getdecls (), kept_level_p(), 1);
  6012.           yyval.ttype = poplevel (kept_level_p (), 1, 0);
  6013.           pop_momentary (); ;
  6014.     break;}
  6015. case 538:
  6016. #line 2829 "cp-parse.y"
  6017. { pop_implicit_try_blocks (NULL_TREE);
  6018.           expand_end_bindings (getdecls (), kept_level_p(), 1);
  6019.           yyval.ttype = poplevel (kept_level_p (), 1, 0);
  6020.           pop_momentary (); ;
  6021.     break;}
  6022. case 539:
  6023. #line 2834 "cp-parse.y"
  6024. { pop_implicit_try_blocks (NULL_TREE);
  6025.           expand_end_bindings (getdecls (), kept_level_p(), 1);
  6026.           yyval.ttype = poplevel (kept_level_p (), 0, 0);
  6027.           pop_momentary (); ;
  6028.     break;}
  6029. case 540:
  6030. #line 2842 "cp-parse.y"
  6031. { cond_stmt_keyword = "if"; ;
  6032.     break;}
  6033. case 541:
  6034. #line 2844 "cp-parse.y"
  6035. { emit_line_note (input_filename, lineno);
  6036.           expand_start_cond (truthvalue_conversion (yyvsp[0].ttype), 0); ;
  6037.     break;}
  6038. case 543:
  6039. #line 2851 "cp-parse.y"
  6040. { finish_stmt (); ;
  6041.     break;}
  6042. case 544:
  6043. #line 2853 "cp-parse.y"
  6044. { pop_implicit_try_blocks (NULL_TREE);
  6045.           expand_end_bindings (getdecls (), getdecls() != NULL_TREE, 1);
  6046.           yyval.ttype = poplevel (kept_level_p (), 1, 0);
  6047.           pop_momentary (); ;
  6048.     break;}
  6049. case 545:
  6050. #line 2861 "cp-parse.y"
  6051. { finish_stmt (); ;
  6052.     break;}
  6053. case 547:
  6054. #line 2867 "cp-parse.y"
  6055. { finish_stmt (); ;
  6056.     break;}
  6057. case 548:
  6058. #line 2869 "cp-parse.y"
  6059. {
  6060.             tree expr = yyvsp[-1].ttype;
  6061.           emit_line_note (input_filename, lineno);
  6062.           /* Do default conversion if safe and possibly important,
  6063.              in case within ({...}).  */
  6064.           if ((TREE_CODE (TREE_TYPE (expr)) == ARRAY_TYPE
  6065.                && lvalue_p (expr))
  6066.               || TREE_CODE (TREE_TYPE (expr)) == FUNCTION_TYPE)
  6067.             expr = default_conversion (expr);
  6068.           cplus_expand_expr_stmt (expr);
  6069.           clear_momentary ();
  6070.           finish_stmt (); ;
  6071.     break;}
  6072. case 549:
  6073. #line 2882 "cp-parse.y"
  6074. { expand_start_else (); ;
  6075.     break;}
  6076. case 550:
  6077. #line 2884 "cp-parse.y"
  6078. { expand_end_cond ();
  6079.           pop_implicit_try_blocks (NULL_TREE);
  6080.           expand_end_bindings (getdecls (), kept_level_p (), 1);
  6081.           poplevel (kept_level_p (), 1, 0);
  6082.           pop_momentary ();
  6083.           finish_stmt (); ;
  6084.     break;}
  6085. case 551:
  6086. #line 2891 "cp-parse.y"
  6087. { expand_end_cond ();
  6088.           pop_implicit_try_blocks (NULL_TREE);
  6089.           expand_end_bindings (getdecls (), kept_level_p (), 1);
  6090.           poplevel (kept_level_p (), 1, 0);
  6091.           pop_momentary ();
  6092.           finish_stmt (); ;
  6093.     break;}
  6094. case 552:
  6095. #line 2898 "cp-parse.y"
  6096. { emit_nop ();
  6097.           emit_line_note (input_filename, lineno);
  6098.           expand_start_loop (1);
  6099.           cond_stmt_keyword = "while"; ;
  6100.     break;}
  6101. case 553:
  6102. #line 2903 "cp-parse.y"
  6103. { expand_exit_loop_if_false (0, truthvalue_conversion (yyvsp[0].ttype)); ;
  6104.     break;}
  6105. case 554:
  6106. #line 2905 "cp-parse.y"
  6107. { pop_implicit_try_blocks (NULL_TREE);
  6108.           expand_end_bindings (getdecls (), kept_level_p (), 1);
  6109.           poplevel (kept_level_p (), 1, 0);
  6110.           pop_momentary ();
  6111.           expand_end_loop ();
  6112.           finish_stmt (); ;
  6113.     break;}
  6114. case 555:
  6115. #line 2912 "cp-parse.y"
  6116. { emit_nop ();
  6117.           emit_line_note (input_filename, lineno);
  6118.           expand_start_loop_continue_elsewhere (1); ;
  6119.     break;}
  6120. case 556:
  6121. #line 2916 "cp-parse.y"
  6122. { expand_loop_continue_here ();
  6123.           cond_stmt_keyword = "do"; ;
  6124.     break;}
  6125. case 557:
  6126. #line 2919 "cp-parse.y"
  6127. { emit_line_note (input_filename, lineno);
  6128.           expand_exit_loop_if_false (0, truthvalue_conversion (yyvsp[-1].ttype));
  6129.           expand_end_loop ();
  6130.           clear_momentary ();
  6131.           finish_stmt (); ;
  6132.     break;}
  6133. case 558:
  6134. #line 2925 "cp-parse.y"
  6135. { emit_nop ();
  6136.           emit_line_note (input_filename, lineno);
  6137.           if (yyvsp[0].ttype) cplus_expand_expr_stmt (yyvsp[0].ttype);
  6138.           expand_start_loop_continue_elsewhere (1); ;
  6139.     break;}
  6140. case 559:
  6141. #line 2930 "cp-parse.y"
  6142. { emit_line_note (input_filename, lineno);
  6143.           if (yyvsp[-1].ttype) expand_exit_loop_if_false (0, truthvalue_conversion (yyvsp[-1].ttype)); ;
  6144.     break;}
  6145. case 560:
  6146. #line 2935 "cp-parse.y"
  6147. { push_momentary (); ;
  6148.     break;}
  6149. case 561:
  6150. #line 2937 "cp-parse.y"
  6151. { emit_line_note (input_filename, lineno);
  6152.           expand_loop_continue_here ();
  6153.           if (yyvsp[-3].ttype) cplus_expand_expr_stmt (yyvsp[-3].ttype);
  6154.           pop_momentary ();
  6155.           pop_implicit_try_blocks (NULL_TREE);
  6156.           expand_end_bindings (getdecls (), kept_level_p (), 1);
  6157.           poplevel (kept_level_p (), 1, 0);
  6158.           pop_momentary ();
  6159.           expand_end_loop ();
  6160.           finish_stmt (); ;
  6161.     break;}
  6162. case 562:
  6163. #line 2948 "cp-parse.y"
  6164. { emit_nop ();
  6165.           emit_line_note (input_filename, lineno);
  6166.           expand_start_loop_continue_elsewhere (1); ;
  6167.     break;}
  6168. case 563:
  6169. #line 2952 "cp-parse.y"
  6170. { emit_line_note (input_filename, lineno);
  6171.           if (yyvsp[-1].ttype) expand_exit_loop_if_false (0, truthvalue_conversion (yyvsp[-1].ttype)); ;
  6172.     break;}
  6173. case 564:
  6174. #line 2957 "cp-parse.y"
  6175. { push_momentary ();
  6176.           yyvsp[0].itype = lineno; ;
  6177.     break;}
  6178. case 565:
  6179. #line 2960 "cp-parse.y"
  6180. { emit_line_note (input_filename, (int) yyvsp[-2].itype);
  6181.           expand_loop_continue_here ();
  6182.           if (yyvsp[-3].ttype) cplus_expand_expr_stmt (yyvsp[-3].ttype);
  6183.           pop_momentary ();
  6184.           pop_implicit_try_blocks (NULL_TREE);
  6185.           expand_end_bindings (getdecls (), kept_level_p (), 1);
  6186.           poplevel (kept_level_p (), 1, 0);
  6187.           pop_momentary ();
  6188.           expand_end_loop ();
  6189.           finish_stmt ();
  6190.         ;
  6191.     break;}
  6192. case 566:
  6193. #line 2972 "cp-parse.y"
  6194. { emit_line_note (input_filename, lineno);
  6195.           c_expand_start_case (yyvsp[-1].ttype); 
  6196.           /* Don't let the tree nodes for $4 be discarded by
  6197.              clear_momentary during the parsing of the next stmt.  */
  6198.           push_momentary (); ;
  6199.     break;}
  6200. case 567:
  6201. #line 2978 "cp-parse.y"
  6202. { expand_end_case (yyvsp[-3].ttype);
  6203.           pop_momentary ();
  6204.           pop_implicit_try_blocks (NULL_TREE);
  6205.           expand_end_bindings (getdecls (), kept_level_p (), 1);
  6206.           poplevel (kept_level_p (), 1, 0);
  6207.           pop_momentary ();
  6208.           finish_stmt (); ;
  6209.     break;}
  6210. case 568:
  6211. #line 2986 "cp-parse.y"
  6212. { register tree value = yyvsp[-1].ttype;
  6213.           register tree label
  6214.             = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
  6215.  
  6216.           /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
  6217.              Strip such NOP_EXPRs.  */
  6218.           if (TREE_CODE (value) == NOP_EXPR
  6219.               && TREE_TYPE (value) == TREE_TYPE (TREE_OPERAND (value, 0)))
  6220.             value = TREE_OPERAND (value, 0);
  6221.  
  6222.           if (TREE_READONLY_DECL_P (value))
  6223.             {
  6224.               value = decl_constant_value (value);
  6225.               /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
  6226.              Strip such NOP_EXPRs.  */
  6227.               if (TREE_CODE (value) == NOP_EXPR
  6228.               && TREE_TYPE (value) == TREE_TYPE (TREE_OPERAND (value, 0)))
  6229.             value = TREE_OPERAND (value, 0);
  6230.             }
  6231.           value = fold (value);
  6232.  
  6233.           if (TREE_CODE (value) != INTEGER_CST
  6234.               && value != error_mark_node)
  6235.             {
  6236.               cp_error ("case label `%E' does not reduce to an integer constant", yyvsp[-1].ttype);
  6237.               value = error_mark_node;
  6238.             }
  6239.           else
  6240.             /* Promote char or short to int.  */
  6241.             value = default_conversion (value);
  6242.           if (value != error_mark_node)
  6243.             {
  6244.               tree duplicate;
  6245.               int success = pushcase (value, convert_and_check,
  6246.                           label, &duplicate);
  6247.               if (success == 1)
  6248.             cp_error ("case label `%E' not within a switch statement", yyvsp[-1].ttype);
  6249.               else if (success == 2)
  6250.             {
  6251.               cp_error ("duplicate case value `%E'", yyvsp[-1].ttype);
  6252.               cp_error_at ("`%E' previously used here", duplicate);
  6253.             }
  6254.               else if (success == 3)
  6255.             warning ("case value out of range");
  6256.               else if (success == 5)
  6257.             cp_error ("case label `%E' within scope of cleanup or variable array", yyvsp[-1].ttype);
  6258.             }
  6259.           define_case_label (label);
  6260.         ;
  6261.     break;}
  6262. case 570:
  6263. #line 3037 "cp-parse.y"
  6264. { register tree value1 = yyvsp[-3].ttype;
  6265.           register tree value2 = yyvsp[-1].ttype;
  6266.           register tree label
  6267.             = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
  6268.  
  6269.           if (pedantic)
  6270.             pedwarn ("ANSI C++ forbids range expressions in switch statement");
  6271.  
  6272.           /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
  6273.              Strip such NOP_EXPRs.  */
  6274.           if (TREE_CODE (value1) == NOP_EXPR
  6275.               && TREE_TYPE (value1) == TREE_TYPE (TREE_OPERAND (value1, 0)))
  6276.             value1 = TREE_OPERAND (value1, 0);
  6277.  
  6278.           if (TREE_READONLY_DECL_P (value1))
  6279.             {
  6280.               value1 = decl_constant_value (value1);
  6281.               /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
  6282.              Strip such NOP_EXPRs.  */
  6283.               if (TREE_CODE (value1) == NOP_EXPR
  6284.               && TREE_TYPE (value1) == TREE_TYPE (TREE_OPERAND (value1, 0)))
  6285.             value1 = TREE_OPERAND (value1, 0);
  6286.             }
  6287.           value1 = fold (value1);
  6288.  
  6289.           /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
  6290.              Strip such NOP_EXPRs.  */
  6291.           if (TREE_CODE (value2) == NOP_EXPR
  6292.               && TREE_TYPE (value2) == TREE_TYPE (TREE_OPERAND (value2, 0)))
  6293.             value2 = TREE_OPERAND (value2, 0);
  6294.  
  6295.           if (TREE_READONLY_DECL_P (value2))
  6296.             {
  6297.               value2 = decl_constant_value (value2);
  6298.               /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
  6299.              Strip such NOP_EXPRs.  */
  6300.               if (TREE_CODE (value2) == NOP_EXPR
  6301.               && TREE_TYPE (value2) == TREE_TYPE (TREE_OPERAND (value2, 0)))
  6302.             value2 = TREE_OPERAND (value2, 0);
  6303.             }
  6304.           value2 = fold (value2);
  6305.  
  6306.  
  6307.           if (TREE_CODE (value1) != INTEGER_CST
  6308.               && value1 != error_mark_node)
  6309.             {
  6310.               error ("case label does not reduce to an integer constant");
  6311.               value1 = error_mark_node;
  6312.             }
  6313.           if (TREE_CODE (value2) != INTEGER_CST
  6314.               && value2 != error_mark_node)
  6315.             {
  6316.               error ("case label does not reduce to an integer constant");
  6317.               value2 = error_mark_node;
  6318.             }
  6319.           if (value1 != error_mark_node
  6320.               && value2 != error_mark_node)
  6321.             {
  6322.               tree duplicate;
  6323.               int success = pushcase_range (value1, value2,
  6324.                             convert_and_check, label,
  6325.                             &duplicate);
  6326.               if (success == 1)
  6327.             error ("case label not within a switch statement");
  6328.               else if (success == 2)
  6329.             {
  6330.               error ("duplicate (or overlapping) case value");
  6331.               error_with_decl (duplicate, "this is the first entry overlapping that value");
  6332.             }
  6333.               else if (success == 3)
  6334.             warning ("case value out of range");
  6335.               else if (success == 4)
  6336.             warning ("empty range specified");
  6337.               else if (success == 5)
  6338.             error ("case label within scope of cleanup or variable array");
  6339.             }
  6340.           define_case_label (label);
  6341.         ;
  6342.     break;}
  6343. case 572:
  6344. #line 3117 "cp-parse.y"
  6345. {
  6346.           tree duplicate;
  6347.           register tree label
  6348.             = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
  6349.           int success = pushcase (NULL_TREE, 0, label, &duplicate);
  6350.           if (success == 1)
  6351.             error ("default label not within a switch statement");
  6352.           else if (success == 2)
  6353.             {
  6354.               error ("multiple default labels in one switch");
  6355.               error_with_decl (duplicate, "this is the first default label");
  6356.             }
  6357.           define_case_label (NULL_TREE);
  6358.         ;
  6359.     break;}
  6360. case 574:
  6361. #line 3133 "cp-parse.y"
  6362. { emit_line_note (input_filename, lineno);
  6363.           if ( ! expand_exit_something ())
  6364.             error ("break statement not within loop or switch"); ;
  6365.     break;}
  6366. case 575:
  6367. #line 3137 "cp-parse.y"
  6368. { emit_line_note (input_filename, lineno);
  6369.           if (! expand_continue_loop (0))
  6370.             error ("continue statement not within a loop"); ;
  6371.     break;}
  6372. case 576:
  6373. #line 3141 "cp-parse.y"
  6374. { emit_line_note (input_filename, lineno);
  6375.           c_expand_return (NULL_TREE); ;
  6376.     break;}
  6377. case 577:
  6378. #line 3144 "cp-parse.y"
  6379. { emit_line_note (input_filename, lineno);
  6380.           c_expand_return (yyvsp[-1].ttype);
  6381.           finish_stmt ();
  6382.         ;
  6383.     break;}
  6384. case 578:
  6385. #line 3149 "cp-parse.y"
  6386. { if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
  6387.           emit_line_note (input_filename, lineno);
  6388.           expand_asm (yyvsp[-2].ttype);
  6389.           finish_stmt ();
  6390.         ;
  6391.     break;}
  6392. case 579:
  6393. #line 3156 "cp-parse.y"
  6394. { if (TREE_CHAIN (yyvsp[-4].ttype)) yyvsp[-4].ttype = combine_strings (yyvsp[-4].ttype);
  6395.           emit_line_note (input_filename, lineno);
  6396.           c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
  6397.                      yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE],
  6398.                      input_filename, lineno);
  6399.           finish_stmt ();
  6400.         ;
  6401.     break;}
  6402. case 580:
  6403. #line 3165 "cp-parse.y"
  6404. { if (TREE_CHAIN (yyvsp[-6].ttype)) yyvsp[-6].ttype = combine_strings (yyvsp[-6].ttype);
  6405.           emit_line_note (input_filename, lineno);
  6406.           c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
  6407.                      yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE],
  6408.                      input_filename, lineno);
  6409.           finish_stmt ();
  6410.         ;
  6411.     break;}
  6412. case 581:
  6413. #line 3175 "cp-parse.y"
  6414. { if (TREE_CHAIN (yyvsp[-8].ttype)) yyvsp[-8].ttype = combine_strings (yyvsp[-8].ttype);
  6415.           emit_line_note (input_filename, lineno);
  6416.           c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
  6417.                      yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE],
  6418.                      input_filename, lineno);
  6419.           finish_stmt ();
  6420.         ;
  6421.     break;}
  6422. case 582:
  6423. #line 3183 "cp-parse.y"
  6424. { emit_line_note (input_filename, lineno);
  6425.           expand_computed_goto (yyvsp[-1].ttype); ;
  6426.     break;}
  6427. case 583:
  6428. #line 3186 "cp-parse.y"
  6429. { tree decl;
  6430.           emit_line_note (input_filename, lineno);
  6431.           decl = lookup_label (yyvsp[-1].ttype);
  6432.           TREE_USED (decl) = 1;
  6433.           expand_goto (decl); ;
  6434.     break;}
  6435. case 584:
  6436. #line 3192 "cp-parse.y"
  6437. { finish_stmt (); ;
  6438.     break;}
  6439. case 585:
  6440. #line 3194 "cp-parse.y"
  6441. { error ("label must be followed by statement");
  6442.           yyungetc ('}', 0);
  6443.           finish_stmt (); ;
  6444.     break;}
  6445. case 586:
  6446. #line 3198 "cp-parse.y"
  6447. { finish_stmt (); ;
  6448.     break;}
  6449. case 587:
  6450. #line 3201 "cp-parse.y"
  6451. { cplus_expand_throw (NULL_TREE); ;
  6452.     break;}
  6453. case 588:
  6454. #line 3202 "cp-parse.y"
  6455. { cplus_expand_throw (yyvsp[-1].ttype); ;
  6456.     break;}
  6457. case 589:
  6458. #line 3204 "cp-parse.y"
  6459. { cplus_expand_raise (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, 0);
  6460.           finish_stmt (); ;
  6461.     break;}
  6462. case 590:
  6463. #line 3207 "cp-parse.y"
  6464. { cplus_expand_raise (yyvsp[-2].ttype, NULL_TREE, NULL_TREE, 0);
  6465.           finish_stmt (); ;
  6466.     break;}
  6467. case 591:
  6468. #line 3210 "cp-parse.y"
  6469. { cplus_expand_raise (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, 0);
  6470.           finish_stmt (); ;
  6471.     break;}
  6472. case 592:
  6473. #line 3213 "cp-parse.y"
  6474. { cplus_expand_raise (yyvsp[-2].ttype, NULL_TREE, NULL_TREE, 0);
  6475.           finish_stmt (); ;
  6476.     break;}
  6477. case 593:
  6478. #line 3216 "cp-parse.y"
  6479. { cplus_expand_reraise (yyvsp[-1].ttype);
  6480.           finish_stmt (); ;
  6481.     break;}
  6482. case 594:
  6483. #line 3219 "cp-parse.y"
  6484. {
  6485.           tree decl = cplus_expand_end_try (yyvsp[-3].itype);
  6486.           yyvsp[-2].ttype = current_exception_type;
  6487.           yyvsp[0].ttype = current_exception_decl;
  6488.           yyval.ttype = current_exception_object;
  6489.           cplus_expand_start_except (yyvsp[-1].ttype, decl);
  6490.           pushlevel (0);
  6491.           clear_last_expr ();
  6492.           push_momentary ();
  6493.           expand_start_bindings (0);
  6494.         ;
  6495.     break;}
  6496. case 595:
  6497. #line 3231 "cp-parse.y"
  6498. {
  6499.           tree decls = getdecls ();
  6500.           /* If there is a default exception to handle,
  6501.              handle it here.  */
  6502.           if (yyvsp[-1].ttype)
  6503.             {
  6504.               tree decl = build_decl (CPLUS_CATCH_DECL, NULL_TREE, 0);
  6505.               tree block;
  6506.  
  6507.               pushlevel (1);
  6508.               expand_start_bindings (0);
  6509.               expand_expr (yyvsp[-1].ttype, 0, 0, 0);
  6510.               expand_end_bindings (0, 1, 0);
  6511.               block = poplevel (1, 0, 0);
  6512.  
  6513.               /* This is a catch block.  */
  6514.               TREE_LANG_FLAG_2 (block) = 1;
  6515.               BLOCK_VARS (block) = decl;
  6516.             }
  6517.  
  6518.           expand_end_bindings (decls, decls != 0, 1);
  6519.           poplevel (decls != 0, 1, 0);
  6520.           pop_momentary ();
  6521.           current_exception_type = yyvsp[-5].ttype;
  6522.           current_exception_decl = yyvsp[-3].ttype;
  6523.           current_exception_object = yyvsp[-2].ttype;
  6524.           cplus_expand_end_except (yyvsp[-1].ttype);
  6525.         ;
  6526.     break;}
  6527. case 596:
  6528. #line 3260 "cp-parse.y"
  6529. {
  6530.           cplus_expand_end_try (yyvsp[-1].itype);
  6531.           /* These are the important actions of
  6532.              `cplus_expand_end_except' which we must emulate.  */
  6533.           if (expand_escape_except ())
  6534.             expand_end_except ();
  6535.           expand_end_bindings (0, 0, 1);
  6536.           poplevel (0, 0, 0);
  6537.         ;
  6538.     break;}
  6539. case 597:
  6540. #line 3270 "cp-parse.y"
  6541. {
  6542.           tree decl = cplus_expand_end_try (yyvsp[-2].itype);
  6543.           yyvsp[-1].ttype = current_exception_type;
  6544.           yyvsp[0].ttype = current_exception_decl;
  6545.           yyval.ttype = current_exception_object;
  6546.           cplus_expand_start_except (NULL, decl);
  6547.           pushlevel (0);
  6548.           clear_last_expr ();
  6549.           push_momentary ();
  6550.           expand_start_bindings (0);
  6551.         ;
  6552.     break;}
  6553. case 598:
  6554. #line 3282 "cp-parse.y"
  6555. {
  6556.           tree decls = getdecls ();
  6557.           /* If there is a default exception to handle,
  6558.              handle it here.  */
  6559.           if (yyvsp[0].ttype)
  6560.             {
  6561.               tree decl = build_decl (CPLUS_CATCH_DECL, NULL_TREE, 0);
  6562.               tree block;
  6563.  
  6564.               pushlevel (1);
  6565.               expand_start_bindings (0);
  6566.               expand_expr (yyvsp[0].ttype, 0, 0, 0);
  6567.               expand_end_bindings (0, 1, 0);
  6568.               block = poplevel (1, 0, 0);
  6569.  
  6570.               /* This is a catch block.  */
  6571.               TREE_LANG_FLAG_2 (block) = 1;
  6572.               BLOCK_VARS (block) = decl;
  6573.             }
  6574.  
  6575.           expand_end_bindings (decls, decls != 0, 1);
  6576.           poplevel (decls != 0, 1, 0);
  6577.           pop_momentary ();
  6578.           current_exception_type = yyvsp[-3].ttype;
  6579.           current_exception_decl = yyvsp[-2].ttype;
  6580.           current_exception_object = yyvsp[-1].ttype;
  6581.           cplus_expand_end_except (yyvsp[0].ttype);
  6582.         ;
  6583.     break;}
  6584. case 599:
  6585. #line 3311 "cp-parse.y"
  6586. { tree name = get_identifier ("(compiler error)");
  6587.           tree orig_ex_type = current_exception_type;
  6588.           tree orig_ex_decl = current_exception_decl;
  6589.           tree orig_ex_obj = current_exception_object;
  6590.           tree decl = cplus_expand_end_try (yyvsp[-2].itype), decls;
  6591.  
  6592.           /* Start hidden EXCEPT.  */
  6593.           cplus_expand_start_except (name, decl);
  6594.           pushlevel (0);
  6595.           clear_last_expr ();
  6596.           push_momentary ();
  6597.           expand_start_bindings (0);
  6598.  
  6599.           /* This sets up the reraise.  */
  6600.           cplus_expand_reraise (yyvsp[0].ttype);
  6601.  
  6602.           decls = getdecls ();
  6603.           expand_end_bindings (decls, decls != 0, 1);
  6604.           poplevel (decls != 0, 1, 0);
  6605.           pop_momentary ();
  6606.           current_exception_type = orig_ex_type;
  6607.           current_exception_decl = orig_ex_decl;
  6608.           current_exception_object = orig_ex_obj;
  6609.           /* This will reraise for us.  */
  6610.           cplus_expand_end_except (error_mark_node);
  6611.           if (yychar == YYEMPTY)
  6612.             yychar = YYLEX;
  6613.           if (yychar != ';')
  6614.             error ("missing ';' after reraise statement");
  6615.         ;
  6616.     break;}
  6617. case 600:
  6618. #line 3342 "cp-parse.y"
  6619. { yyerror ("`except' missing after `try' statement");
  6620.           /* Terminate the binding contour started by special
  6621.              code in `.pushlevel'.  Automagically pops off
  6622.              the conditional we started for `try' stmt.  */
  6623.           cplus_expand_end_try (yyvsp[0].itype);
  6624.           expand_end_bindings (0, 0, 1);
  6625.           poplevel (0, 0, 0);
  6626.           pop_momentary ();
  6627.           YYERROR; ;
  6628.     break;}
  6629. case 601:
  6630. #line 3357 "cp-parse.y"
  6631. {
  6632.           yyval.itype = 1;
  6633.           pop_implicit_try_blocks (NULL_TREE);
  6634.         ;
  6635.     break;}
  6636. case 602:
  6637. #line 3362 "cp-parse.y"
  6638. {
  6639.           yyval.itype = 1;
  6640.           pop_implicit_try_blocks (NULL_TREE);
  6641.         ;
  6642.     break;}
  6643. case 603:
  6644. #line 3367 "cp-parse.y"
  6645. {
  6646.           yyval.itype = 0;
  6647.           pop_implicit_try_blocks (NULL_TREE);
  6648.         ;
  6649.     break;}
  6650. case 604:
  6651. #line 3375 "cp-parse.y"
  6652. { tree label;
  6653.         do_label:
  6654.           label = define_label (input_filename, lineno, yyvsp[-1].ttype);
  6655.           if (label)
  6656.             expand_label (label);
  6657.         ;
  6658.     break;}
  6659. case 605:
  6660. #line 3382 "cp-parse.y"
  6661. { goto do_label; ;
  6662.     break;}
  6663. case 606:
  6664. #line 3384 "cp-parse.y"
  6665. { tree label = define_label (input_filename, lineno, yyvsp[0].ttype);
  6666.           if (label)
  6667.             expand_label (label);
  6668.         ;
  6669.     break;}
  6670. case 607:
  6671. #line 3390 "cp-parse.y"
  6672. { cplus_expand_start_try (0); ;
  6673.     break;}
  6674. case 609:
  6675. #line 3396 "cp-parse.y"
  6676. {
  6677.           yyval.itype = 1;
  6678.           pop_implicit_try_blocks (NULL_TREE);
  6679.         ;
  6680.     break;}
  6681. case 610:
  6682. #line 3401 "cp-parse.y"
  6683. {
  6684.           yyval.itype = 1;
  6685.           pop_implicit_try_blocks (NULL_TREE);
  6686.         ;
  6687.     break;}
  6688. case 611:
  6689. #line 3406 "cp-parse.y"
  6690. {
  6691.           yyval.itype = 0;
  6692.           pop_implicit_try_blocks (NULL_TREE);
  6693.         ;
  6694.     break;}
  6695. case 613:
  6696. #line 3413 "cp-parse.y"
  6697. { cplus_expand_start_try (0); ;
  6698.     break;}
  6699. case 615:
  6700. #line 3417 "cp-parse.y"
  6701. { yyval.ttype = NULL_TREE; ;
  6702.     break;}
  6703. case 616:
  6704. #line 3419 "cp-parse.y"
  6705. {
  6706.           tree type = lookup_exception_type (current_class_type, current_class_name, yyvsp[0].ttype);
  6707.           if (type == NULL_TREE)
  6708.             {
  6709.               error ("`%s' is not an exception type",
  6710.                  IDENTIFIER_POINTER (TREE_VALUE (yyvsp[0].ttype)));
  6711.               current_exception_type = NULL_TREE;
  6712.               TREE_TYPE (current_exception_object) = error_mark_node;
  6713.             }
  6714.           else
  6715.             {
  6716.               current_exception_type = type;
  6717.               /* In-place union.  */
  6718.               TREE_TYPE (current_exception_object) = type;
  6719.             }
  6720.           yyvsp[0].ttype = cplus_expand_start_catch (yyvsp[0].ttype);
  6721.           pushlevel (1);
  6722.           expand_start_bindings (0);
  6723.         ;
  6724.     break;}
  6725. case 617:
  6726. #line 3439 "cp-parse.y"
  6727. {
  6728.           expand_end_bindings (0, 1, 0);
  6729.           yyvsp[0].ttype = poplevel (1, 0, 0);
  6730.  
  6731.           cplus_expand_end_catch (0);
  6732.  
  6733.           /* Mark this as a catch block.  */
  6734.           TREE_LANG_FLAG_2 (yyvsp[0].ttype) = 1;
  6735.           if (yyvsp[-2].ttype != error_mark_node)
  6736.             {
  6737.               tree decl = build_decl (CPLUS_CATCH_DECL, DECL_NAME (yyvsp[-2].ttype), 0);
  6738.               DECL_RTL (decl) = DECL_RTL (yyvsp[-2].ttype);
  6739.               TREE_CHAIN (decl) = BLOCK_VARS (yyvsp[0].ttype);
  6740.               BLOCK_VARS (yyvsp[0].ttype) = decl;
  6741.             }
  6742.         ;
  6743.     break;}
  6744. case 618:
  6745. #line 3456 "cp-parse.y"
  6746. {
  6747.           if (yyvsp[-1].ttype)
  6748.             error ("duplicate default in exception handler");
  6749.           current_exception_type = NULL_TREE;
  6750.           /* Takes it right out of scope.  */
  6751.           TREE_TYPE (current_exception_object) = error_mark_node;
  6752.  
  6753.           if (! expand_catch_default ())
  6754.             compiler_error ("default catch botch");
  6755.  
  6756.           /* The default exception is handled as the
  6757.              last in the chain of exceptions handled.  */
  6758.           do_pending_stack_adjust ();
  6759.           yyvsp[-1].ttype = make_node (RTL_EXPR);
  6760.           TREE_TYPE (yyvsp[-1].ttype) = void_type_node;
  6761.           start_sequence_for_rtl_expr (yyvsp[-1].ttype);
  6762.         ;
  6763.     break;}
  6764. case 619:
  6765. #line 3474 "cp-parse.y"
  6766. {
  6767.           extern struct rtx_def *get_insns ();
  6768.           do_pending_stack_adjust ();
  6769.           if (! expand_catch (NULL_TREE))
  6770.             compiler_error ("except nesting botch");
  6771.           if (! expand_end_catch ())
  6772.             compiler_error ("except nesting botch");
  6773.           RTL_EXPR_SEQUENCE (yyvsp[-3].ttype) = get_insns ();
  6774.           if (yyvsp[0].ttype)
  6775.             {
  6776.               /* Mark this block as the default catch block.  */
  6777.               TREE_LANG_FLAG_1 (yyvsp[0].ttype) = 1;
  6778.               TREE_LANG_FLAG_2 (yyvsp[0].ttype) = 1;
  6779.             }
  6780.           end_sequence ();
  6781.         ;
  6782.     break;}
  6783. case 620:
  6784. #line 3494 "cp-parse.y"
  6785. { yyval.ttype = NULL_TREE; ;
  6786.     break;}
  6787. case 622:
  6788. #line 3499 "cp-parse.y"
  6789. { yyval.ttype = NULL_TREE; ;
  6790.     break;}
  6791. case 623:
  6792. #line 3501 "cp-parse.y"
  6793. {
  6794.           tree type = groktypename (yyvsp[-2].ttype);
  6795.           current_exception_type = type;
  6796.           /* In-place union.  */
  6797.           if (yyvsp[-1].ttype)
  6798.             {
  6799.               tree tmp;
  6800.               tmp = pushdecl (build_decl (VAR_DECL, yyvsp[-1].ttype, type));
  6801.               current_exception_object =
  6802.                   build1 (INDIRECT_REF, type, tmp);
  6803.              }
  6804.           yyvsp[-2].ttype = ansi_expand_start_catch(type);
  6805.           pushlevel (1);
  6806.           expand_start_bindings (0);
  6807.         ;
  6808.     break;}
  6809. case 624:
  6810. #line 3517 "cp-parse.y"
  6811. {
  6812.           expand_end_bindings (0, 1, 0);
  6813.           yyvsp[0].ttype = poplevel (1, 0, 0);
  6814.  
  6815.           cplus_expand_end_catch (0);
  6816.  
  6817.           /* Mark this as a catch block.  */
  6818.           TREE_LANG_FLAG_2 (yyvsp[0].ttype) = 1;
  6819.           if (yyvsp[-4].ttype != error_mark_node)
  6820.             {
  6821.               tree decl = build_decl (CPLUS_CATCH_DECL, DECL_NAME (yyvsp[-4].ttype), 0);
  6822.               DECL_RTL (decl) = DECL_RTL (yyvsp[-4].ttype);
  6823.               TREE_CHAIN (decl) = BLOCK_VARS (yyvsp[0].ttype);
  6824.               BLOCK_VARS (yyvsp[0].ttype) = decl;
  6825.             }
  6826.         ;
  6827.     break;}
  6828. case 625:
  6829. #line 3537 "cp-parse.y"
  6830. { yyval.ttype = NULL_TREE; ;
  6831.     break;}
  6832. case 626:
  6833. #line 3539 "cp-parse.y"
  6834. { yyval.ttype = yyvsp[-1].ttype; ;
  6835.     break;}
  6836. case 627:
  6837. #line 3541 "cp-parse.y"
  6838. { yyval.ttype = NULL_TREE; ;
  6839.     break;}
  6840. case 628:
  6841. #line 3546 "cp-parse.y"
  6842. { yyval.itype = 0; ;
  6843.     break;}
  6844. case 629:
  6845. #line 3548 "cp-parse.y"
  6846. { yyval.itype = 0; ;
  6847.     break;}
  6848. case 630:
  6849. #line 3550 "cp-parse.y"
  6850. { yyval.itype = 1; ;
  6851.     break;}
  6852. case 631:
  6853. #line 3552 "cp-parse.y"
  6854. { yyval.itype = -1; ;
  6855.     break;}
  6856. case 632:
  6857. #line 3559 "cp-parse.y"
  6858. { emit_line_note (input_filename, lineno); ;
  6859.     break;}
  6860. case 633:
  6861. #line 3561 "cp-parse.y"
  6862. { emit_line_note (input_filename, lineno); ;
  6863.     break;}
  6864. case 634:
  6865. #line 3566 "cp-parse.y"
  6866. { yyval.ttype = NULL_TREE; ;
  6867.     break;}
  6868. case 636:
  6869. #line 3569 "cp-parse.y"
  6870. { yyval.ttype = NULL_TREE; ;
  6871.     break;}
  6872. case 637:
  6873. #line 3575 "cp-parse.y"
  6874. { yyval.ttype = NULL_TREE; ;
  6875.     break;}
  6876. case 640:
  6877. #line 3582 "cp-parse.y"
  6878. { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
  6879.     break;}
  6880. case 641:
  6881. #line 3587 "cp-parse.y"
  6882. { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[-1].ttype); ;
  6883.     break;}
  6884. case 642:
  6885. #line 3592 "cp-parse.y"
  6886. { yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, NULL_TREE); ;
  6887.     break;}
  6888. case 643:
  6889. #line 3594 "cp-parse.y"
  6890. { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
  6891.     break;}
  6892. case 644:
  6893. #line 3603 "cp-parse.y"
  6894. {
  6895.           if (strict_prototype)
  6896.             yyval.ttype = void_list_node;
  6897.           else
  6898.             yyval.ttype = NULL_TREE;
  6899.         ;
  6900.     break;}
  6901. case 645:
  6902. #line 3610 "cp-parse.y"
  6903. {
  6904.           yyval.ttype = chainon (yyval.ttype, void_list_node);
  6905.           TREE_PARMLIST (yyval.ttype) = 1;
  6906.         ;
  6907.     break;}
  6908. case 646:
  6909. #line 3615 "cp-parse.y"
  6910. {
  6911.           TREE_PARMLIST (yyval.ttype) = 1;
  6912.         ;
  6913.     break;}
  6914. case 647:
  6915. #line 3620 "cp-parse.y"
  6916. {
  6917.           TREE_PARMLIST (yyval.ttype) = 1;
  6918.         ;
  6919.     break;}
  6920. case 648:
  6921. #line 3624 "cp-parse.y"
  6922. {
  6923.           /* ARM $8.2.5 has this as a boxed-off comment.  */
  6924.           if (pedantic)
  6925.             warning ("use of `...' without a first argument is non-portable");
  6926.           yyval.ttype = NULL_TREE;
  6927.         ;
  6928.     break;}
  6929. case 649:
  6930. #line 3631 "cp-parse.y"
  6931. {
  6932.           TREE_PARMLIST (yyval.ttype) = 1;
  6933.         ;
  6934.     break;}
  6935. case 650:
  6936. #line 3635 "cp-parse.y"
  6937. {
  6938.           TREE_PARMLIST (yyval.ttype) = 1;
  6939.         ;
  6940.     break;}
  6941. case 651:
  6942. #line 3639 "cp-parse.y"
  6943. {
  6944.           /* This helps us recover from really nasty
  6945.              parse errors, for example, a missing right
  6946.              parenthesis.  */
  6947.           yyerror ("possibly missing ')'");
  6948.           yyval.ttype = chainon (yyval.ttype, void_list_node);
  6949.           TREE_PARMLIST (yyval.ttype) = 1;
  6950.           yyungetc (':', 0);
  6951.           yychar = ')';
  6952.         ;
  6953.     break;}
  6954. case 652:
  6955. #line 3654 "cp-parse.y"
  6956. { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
  6957.     break;}
  6958. case 653:
  6959. #line 3656 "cp-parse.y"
  6960. { yyval.ttype = build_tree_list (yyvsp[0].ttype, yyval.ttype); ;
  6961.     break;}
  6962. case 654:
  6963. #line 3658 "cp-parse.y"
  6964. { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
  6965.     break;}
  6966. case 655:
  6967. #line 3660 "cp-parse.y"
  6968. { yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ;
  6969.     break;}
  6970. case 656:
  6971. #line 3662 "cp-parse.y"
  6972. { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
  6973.     break;}
  6974. case 657:
  6975. #line 3664 "cp-parse.y"
  6976. { yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ;
  6977.     break;}
  6978. case 658:
  6979. #line 3685 "cp-parse.y"
  6980. { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[0].ttype);
  6981.           see_typename (); ;
  6982.     break;}
  6983. case 659:
  6984. #line 3688 "cp-parse.y"
  6985. { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[0].ttype);
  6986.           see_typename (); ;
  6987.     break;}
  6988. case 662:
  6989. #line 3695 "cp-parse.y"
  6990. { yyval.ttype = yyvsp[0].ttype; ;
  6991.     break;}
  6992. case 663:
  6993. #line 3699 "cp-parse.y"
  6994. { see_typename (); ;
  6995.     break;}
  6996. case 664:
  6997. #line 3703 "cp-parse.y"
  6998. { dont_see_typename (); ;
  6999.     break;}
  7000. case 665:
  7001. #line 3722 "cp-parse.y"
  7002. {
  7003.           warning ("type specifier omitted for parameter");
  7004.           yyval.ttype = build_tree_list (TREE_PURPOSE (TREE_VALUE (yyvsp[-2].ttype)), yyval.ttype);
  7005.         ;
  7006.     break;}
  7007. case 666:
  7008. #line 3730 "cp-parse.y"
  7009. { yyval.ttype = NULL_TREE; ;
  7010.     break;}
  7011. case 667:
  7012. #line 3732 "cp-parse.y"
  7013. { yyval.ttype = yyvsp[0].ttype; ;
  7014.     break;}
  7015. case 668:
  7016. #line 3734 "cp-parse.y"
  7017. { yyval.ttype = yyvsp[-1].ttype; ;
  7018.     break;}
  7019. case 669:
  7020. #line 3739 "cp-parse.y"
  7021. { yyval.ttype = void_list_node; ;
  7022.     break;}
  7023. case 670:
  7024. #line 3741 "cp-parse.y"
  7025. { yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
  7026.     break;}
  7027. case 671:
  7028. #line 3743 "cp-parse.y"
  7029. { yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
  7030.     break;}
  7031. case 672:
  7032. #line 3745 "cp-parse.y"
  7033. { yyval.ttype = build_decl_list (void_type_node, yyvsp[0].ttype); ;
  7034.     break;}
  7035. case 673:
  7036. #line 3747 "cp-parse.y"
  7037. { yyval.ttype = build_decl_list (void_type_node, yyvsp[0].ttype); ;
  7038.     break;}
  7039. case 674:
  7040. #line 3749 "cp-parse.y"
  7041. { yyval.ttype = build_decl_list (yyval.ttype, yyvsp[0].ttype); ;
  7042.     break;}
  7043. case 676:
  7044. #line 3755 "cp-parse.y"
  7045. { yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
  7046.     break;}
  7047. case 678:
  7048. #line 3761 "cp-parse.y"
  7049. {
  7050.             TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype;
  7051.           yyval.ttype = yyvsp[0].ttype;
  7052.         ;
  7053.     break;}
  7054. case 680:
  7055. #line 3770 "cp-parse.y"
  7056. {
  7057.             TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype;
  7058.           yyval.ttype = yyvsp[0].ttype;
  7059.         ;
  7060.     break;}
  7061. case 681:
  7062. #line 3778 "cp-parse.y"
  7063. { yyval.ttype = ansi_opname[MULT_EXPR]; ;
  7064.     break;}
  7065. case 682:
  7066. #line 3780 "cp-parse.y"
  7067. { yyval.ttype = ansi_opname[TRUNC_DIV_EXPR]; ;
  7068.     break;}
  7069. case 683:
  7070. #line 3782 "cp-parse.y"
  7071. { yyval.ttype = ansi_opname[TRUNC_MOD_EXPR]; ;
  7072.     break;}
  7073. case 684:
  7074. #line 3784 "cp-parse.y"
  7075. { yyval.ttype = ansi_opname[PLUS_EXPR]; ;
  7076.     break;}
  7077. case 685:
  7078. #line 3786 "cp-parse.y"
  7079. { yyval.ttype = ansi_opname[MINUS_EXPR]; ;
  7080.     break;}
  7081. case 686:
  7082. #line 3788 "cp-parse.y"
  7083. { yyval.ttype = ansi_opname[BIT_AND_EXPR]; ;
  7084.     break;}
  7085. case 687:
  7086. #line 3790 "cp-parse.y"
  7087. { yyval.ttype = ansi_opname[BIT_IOR_EXPR]; ;
  7088.     break;}
  7089. case 688:
  7090. #line 3792 "cp-parse.y"
  7091. { yyval.ttype = ansi_opname[BIT_XOR_EXPR]; ;
  7092.     break;}
  7093. case 689:
  7094. #line 3794 "cp-parse.y"
  7095. { yyval.ttype = ansi_opname[BIT_NOT_EXPR]; ;
  7096.     break;}
  7097. case 690:
  7098. #line 3796 "cp-parse.y"
  7099. { yyval.ttype = ansi_opname[COMPOUND_EXPR]; ;
  7100.     break;}
  7101. case 691:
  7102. #line 3798 "cp-parse.y"
  7103. { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
  7104.     break;}
  7105. case 692:
  7106. #line 3800 "cp-parse.y"
  7107. { yyval.ttype = ansi_opname[LT_EXPR]; ;
  7108.     break;}
  7109. case 693:
  7110. #line 3802 "cp-parse.y"
  7111. { yyval.ttype = ansi_opname[GT_EXPR]; ;
  7112.     break;}
  7113. case 694:
  7114. #line 3804 "cp-parse.y"
  7115. { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
  7116.     break;}
  7117. case 695:
  7118. #line 3806 "cp-parse.y"
  7119. { yyval.ttype = ansi_assopname[yyvsp[0].code]; ;
  7120.     break;}
  7121. case 696:
  7122. #line 3808 "cp-parse.y"
  7123. {
  7124.           yyval.ttype = ansi_opname [MODIFY_EXPR];
  7125.           if (current_class_type)
  7126.             {
  7127.               TYPE_HAS_ASSIGNMENT (current_class_type) = 1;
  7128.               TYPE_GETS_ASSIGNMENT (current_class_type) = 1;
  7129.             }
  7130.         ;
  7131.     break;}
  7132. case 697:
  7133. #line 3817 "cp-parse.y"
  7134. { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
  7135.     break;}
  7136. case 698:
  7137. #line 3819 "cp-parse.y"
  7138. { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
  7139.     break;}
  7140. case 699:
  7141. #line 3821 "cp-parse.y"
  7142. { yyval.ttype = ansi_opname[POSTINCREMENT_EXPR]; ;
  7143.     break;}
  7144. case 700:
  7145. #line 3823 "cp-parse.y"
  7146. { yyval.ttype = ansi_opname[PREDECREMENT_EXPR]; ;
  7147.     break;}
  7148. case 701:
  7149. #line 3825 "cp-parse.y"
  7150. { yyval.ttype = ansi_opname[TRUTH_ANDIF_EXPR]; ;
  7151.     break;}
  7152. case 702:
  7153. #line 3827 "cp-parse.y"
  7154. { yyval.ttype = ansi_opname[TRUTH_ORIF_EXPR]; ;
  7155.     break;}
  7156. case 703:
  7157. #line 3829 "cp-parse.y"
  7158. { yyval.ttype = ansi_opname[TRUTH_NOT_EXPR]; ;
  7159.     break;}
  7160. case 704:
  7161. #line 3831 "cp-parse.y"
  7162. { yyval.ttype = ansi_opname[COND_EXPR]; ;
  7163.     break;}
  7164. case 705:
  7165. #line 3833 "cp-parse.y"
  7166. { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
  7167.     break;}
  7168. case 706:
  7169. #line 3835 "cp-parse.y"
  7170. { yyval.ttype = ansi_opname[COMPONENT_REF];
  7171.           if (current_class_type)
  7172.             {
  7173.               tree t = current_class_type;
  7174.               while (t)
  7175.             {
  7176.               TYPE_OVERLOADS_ARROW (t) = 1;
  7177.               t = TYPE_NEXT_VARIANT (t);
  7178.             }
  7179.             }
  7180.         ;
  7181.     break;}
  7182. case 707:
  7183. #line 3847 "cp-parse.y"
  7184. { yyval.ttype = ansi_opname[MEMBER_REF];
  7185.           if (current_class_type)
  7186.             {
  7187.               tree t = current_class_type;
  7188.               while (t)
  7189.             {
  7190.               TYPE_OVERLOADS_ARROW (t) = 1;
  7191.               t = TYPE_NEXT_VARIANT (t);
  7192.             }
  7193.             }
  7194.         ;
  7195.     break;}
  7196. case 708:
  7197. #line 3859 "cp-parse.y"
  7198. { yyval.ttype = ansi_opname[CALL_EXPR];
  7199.           if (current_class_type)
  7200.             {
  7201.               tree t = current_class_type;
  7202.               while (t)
  7203.             {
  7204.               TYPE_OVERLOADS_CALL_EXPR (t) = 1;
  7205.               t = TYPE_NEXT_VARIANT (t);
  7206.             }
  7207.             }
  7208.         ;
  7209.     break;}
  7210. case 709:
  7211. #line 3871 "cp-parse.y"
  7212. { yyval.ttype = ansi_opname[ARRAY_REF];
  7213.           if (current_class_type)
  7214.             {
  7215.               tree t = current_class_type;
  7216.               while (t)
  7217.             {
  7218.               TYPE_OVERLOADS_ARRAY_REF (t) = 1;
  7219.               t = TYPE_NEXT_VARIANT (t);
  7220.             }
  7221.             }
  7222.         ;
  7223.     break;}
  7224. case 710:
  7225. #line 3883 "cp-parse.y"
  7226. {
  7227.           yyval.ttype = ansi_opname[NEW_EXPR];
  7228.           if (current_class_type)
  7229.             {
  7230.               tree t = current_class_type;
  7231.               while (t)
  7232.             {
  7233.               TREE_GETS_NEW (t) = 1;
  7234.               t = TYPE_NEXT_VARIANT (t);
  7235.             }
  7236.             }
  7237.         ;
  7238.     break;}
  7239. case 711:
  7240. #line 3911 "cp-parse.y"
  7241. {
  7242.           yyval.ttype = ansi_opname[DELETE_EXPR];
  7243.           if (current_class_type)
  7244.             {
  7245.               tree t = current_class_type;
  7246.               while (t)
  7247.             {
  7248.               TREE_GETS_DELETE (t) = 1;
  7249.               t = TYPE_NEXT_VARIANT (t);
  7250.             }
  7251.             }
  7252.         ;
  7253.     break;}
  7254. case 712:
  7255. #line 3942 "cp-parse.y"
  7256. { yyval.ttype = build1 (TYPE_EXPR, yyvsp[-1].ttype, yyvsp[0].ttype); ;
  7257.     break;}
  7258. case 713:
  7259. #line 3944 "cp-parse.y"
  7260. { yyval.ttype = ansi_opname[ERROR_MARK]; ;
  7261.     break;}
  7262. }
  7263.    /* the action file gets copied in in place of this dollarsign */
  7264. #line 480 "/usr/local/lib/bison.simple"
  7265.  
  7266.   yyvsp -= yylen;
  7267.   yyssp -= yylen;
  7268. #ifdef YYLSP_NEEDED
  7269.   yylsp -= yylen;
  7270. #endif
  7271.  
  7272. #if YYDEBUG != 0
  7273.   if (yydebug)
  7274.     {
  7275.       short *ssp1 = yyss - 1;
  7276.       fprintf (stderr, "state stack now");
  7277.       while (ssp1 != yyssp)
  7278.     fprintf (stderr, " %d", *++ssp1);
  7279.       fprintf (stderr, "\n");
  7280.     }
  7281. #endif
  7282.  
  7283.   *++yyvsp = yyval;
  7284.  
  7285. #ifdef YYLSP_NEEDED
  7286.   yylsp++;
  7287.   if (yylen == 0)
  7288.     {
  7289.       yylsp->first_line = yylloc.first_line;
  7290.       yylsp->first_column = yylloc.first_column;
  7291.       yylsp->last_line = (yylsp-1)->last_line;
  7292.       yylsp->last_column = (yylsp-1)->last_column;
  7293.       yylsp->text = 0;
  7294.     }
  7295.   else
  7296.     {
  7297.       yylsp->last_line = (yylsp+yylen-1)->last_line;
  7298.       yylsp->last_column = (yylsp+yylen-1)->last_column;
  7299.     }
  7300. #endif
  7301.  
  7302.   /* Now "shift" the result of the reduction.
  7303.      Determine what state that goes to,
  7304.      based on the state we popped back to
  7305.      and the rule number reduced by.  */
  7306.  
  7307.   yyn = yyr1[yyn];
  7308.  
  7309.   yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
  7310.   if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
  7311.     yystate = yytable[yystate];
  7312.   else
  7313.     yystate = yydefgoto[yyn - YYNTBASE];
  7314.  
  7315.   goto yynewstate;
  7316.  
  7317. yyerrlab:   /* here on detecting error */
  7318.  
  7319.   if (! yyerrstatus)
  7320.     /* If not already recovering from an error, report this error.  */
  7321.     {
  7322.       ++yynerrs;
  7323.  
  7324. #ifdef YYERROR_VERBOSE
  7325.       yyn = yypact[yystate];
  7326.  
  7327.       if (yyn > YYFLAG && yyn < YYLAST)
  7328.     {
  7329.       int size = 0;
  7330.       char *msg;
  7331.       int x, count;
  7332.  
  7333.       count = 0;
  7334.       /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
  7335.       for (x = (yyn < 0 ? -yyn : 0);
  7336.            x < (sizeof(yytname) / sizeof(char *)); x++)
  7337.         if (yycheck[x + yyn] == x)
  7338.           size += strlen(yytname[x]) + 15, count++;
  7339.       msg = (char *) malloc(size + 15);
  7340.       if (msg != 0)
  7341.         {
  7342.           strcpy(msg, "parse error");
  7343.  
  7344.           if (count < 5)
  7345.         {
  7346.           count = 0;
  7347.           for (x = (yyn < 0 ? -yyn : 0);
  7348.                x < (sizeof(yytname) / sizeof(char *)); x++)
  7349.             if (yycheck[x + yyn] == x)
  7350.               {
  7351.             strcat(msg, count == 0 ? ", expecting `" : " or `");
  7352.             strcat(msg, yytname[x]);
  7353.             strcat(msg, "'");
  7354.             count++;
  7355.               }
  7356.         }
  7357.           yyerror(msg);
  7358.           free(msg);
  7359.         }
  7360.       else
  7361.         yyerror ("parse error; also virtual memory exceeded");
  7362.     }
  7363.       else
  7364. #endif /* YYERROR_VERBOSE */
  7365.     yyerror("parse error");
  7366.     }
  7367.  
  7368.   goto yyerrlab1;
  7369. yyerrlab1:   /* here on error raised explicitly by an action */
  7370.  
  7371.   if (yyerrstatus == 3)
  7372.     {
  7373.       /* if just tried and failed to reuse lookahead token after an error, discard it.  */
  7374.  
  7375.       /* return failure if at end of input */
  7376.       if (yychar == YYEOF)
  7377.     YYABORT;
  7378.  
  7379. #if YYDEBUG != 0
  7380.       if (yydebug)
  7381.     fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
  7382. #endif
  7383.  
  7384.       yychar = YYEMPTY;
  7385.     }
  7386.  
  7387.   /* Else will try to reuse lookahead token
  7388.      after shifting the error token.  */
  7389.  
  7390.   yyerrstatus = 3;        /* Each real token shifted decrements this */
  7391.  
  7392.   goto yyerrhandle;
  7393.  
  7394. yyerrdefault:  /* current state does not do anything special for the error token. */
  7395.  
  7396. #if 0
  7397.   /* This is wrong; only states that explicitly want error tokens
  7398.      should shift them.  */
  7399.   yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
  7400.   if (yyn) goto yydefault;
  7401. #endif
  7402.  
  7403. yyerrpop:   /* pop the current state because it cannot handle the error token */
  7404.  
  7405.   if (yyssp == yyss) YYABORT;
  7406.   yyvsp--;
  7407.   yystate = *--yyssp;
  7408. #ifdef YYLSP_NEEDED
  7409.   yylsp--;
  7410. #endif
  7411.  
  7412. #if YYDEBUG != 0
  7413.   if (yydebug)
  7414.     {
  7415.       short *ssp1 = yyss - 1;
  7416.       fprintf (stderr, "Error: state stack now");
  7417.       while (ssp1 != yyssp)
  7418.     fprintf (stderr, " %d", *++ssp1);
  7419.       fprintf (stderr, "\n");
  7420.     }
  7421. #endif
  7422.  
  7423. yyerrhandle:
  7424.  
  7425.   yyn = yypact[yystate];
  7426.   if (yyn == YYFLAG)
  7427.     goto yyerrdefault;
  7428.  
  7429.   yyn += YYTERROR;
  7430.   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
  7431.     goto yyerrdefault;
  7432.  
  7433.   yyn = yytable[yyn];
  7434.   if (yyn < 0)
  7435.     {
  7436.       if (yyn == YYFLAG)
  7437.     goto yyerrpop;
  7438.       yyn = -yyn;
  7439.       goto yyreduce;
  7440.     }
  7441.   else if (yyn == 0)
  7442.     goto yyerrpop;
  7443.  
  7444.   if (yyn == YYFINAL)
  7445.     YYACCEPT;
  7446.  
  7447. #if YYDEBUG != 0
  7448.   if (yydebug)
  7449.     fprintf(stderr, "Shifting error token, ");
  7450. #endif
  7451.  
  7452.   *++yyvsp = yylval;
  7453. #ifdef YYLSP_NEEDED
  7454.   *++yylsp = yylloc;
  7455. #endif
  7456.  
  7457.   yystate = yyn;
  7458.   goto yynewstate;
  7459. }
  7460. #line 3947 "cp-parse.y"
  7461.  
  7462.