home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 7 / FreshFishVol7.bin / bbs / gnu / gcc-2.3.3-src.lha / GNU / src / amiga / gcc-2.3.3 / cp-parse.c < prev    next >
C/C++ Source or Header  |  1994-02-06  |  296KB  |  7,302 lines

  1.  
  2. /*  A Bison parser, made from cp-parse.y  */
  3.  
  4. #define YYBISON 1  /* Identify Bison output.  */
  5.  
  6. #define    IDENTIFIER    258
  7. #define    TYPENAME    259
  8. #define    SCOPED_TYPENAME    260
  9. #define    SCSPEC    261
  10. #define    TYPESPEC    262
  11. #define    TYPE_QUAL    263
  12. #define    CONSTANT    264
  13. #define    STRING    265
  14. #define    ELLIPSIS    266
  15. #define    SIZEOF    267
  16. #define    ENUM    268
  17. #define    IF    269
  18. #define    ELSE    270
  19. #define    WHILE    271
  20. #define    DO    272
  21. #define    FOR    273
  22. #define    SWITCH    274
  23. #define    CASE    275
  24. #define    DEFAULT    276
  25. #define    BREAK    277
  26. #define    CONTINUE    278
  27. #define    RETURN    279
  28. #define    GOTO    280
  29. #define    ASM_KEYWORD    281
  30. #define    TYPEOF    282
  31. #define    ALIGNOF    283
  32. #define    HEADOF    284
  33. #define    CLASSOF    285
  34. #define    ATTRIBUTE    286
  35. #define    EXTENSION    287
  36. #define    LABEL    288
  37. #define    AGGR    289
  38. #define    VISSPEC    290
  39. #define    DELETE    291
  40. #define    NEW    292
  41. #define    OVERLOAD    293
  42. #define    THIS    294
  43. #define    OPERATOR    295
  44. #define    DYNAMIC    296
  45. #define    POINTSAT_LEFT_RIGHT    297
  46. #define    LEFT_RIGHT    298
  47. #define    TEMPLATE    299
  48. #define    SCOPE    300
  49. #define    START_DECLARATOR    301
  50. #define    EMPTY    302
  51. #define    TYPENAME_COLON    303
  52. #define    ASSIGN    304
  53. #define    RANGE    305
  54. #define    OROR    306
  55. #define    ANDAND    307
  56. #define    MIN_MAX    308
  57. #define    EQCOMPARE    309
  58. #define    ARITHCOMPARE    310
  59. #define    LSHIFT    311
  60. #define    RSHIFT    312
  61. #define    UNARY    313
  62. #define    PLUSPLUS    314
  63. #define    MINUSMINUS    315
  64. #define    HYPERUNARY    316
  65. #define    PAREN_STAR_PAREN    317
  66. #define    POINTSAT    318
  67. #define    POINTSAT_STAR    319
  68. #define    DOT_STAR    320
  69. #define    RAISE    321
  70. #define    RAISES    322
  71. #define    RERAISE    323
  72. #define    TRY    324
  73. #define    EXCEPT    325
  74. #define    CATCH    326
  75. #define    THROW    327
  76. #define    ANSI_TRY    328
  77. #define    ANSI_THROW    329
  78. #define    TYPENAME_ELLIPSIS    330
  79. #define    PTYPENAME    331
  80. #define    PRE_PARSED_FUNCTION_DECL    332
  81. #define    EXTERN_LANG_STRING    333
  82. #define    ALL    334
  83. #define    PRE_PARSED_CLASS_DECL    335
  84. #define    TYPENAME_DEFN    336
  85. #define    IDENTIFIER_DEFN    337
  86. #define    PTYPENAME_DEFN    338
  87. #define    END_OF_SAVED_INPUT    339
  88.  
  89. #line 42 "cp-parse.y"
  90.  
  91. #if defined(GATHER_STATISTICS) || defined(SPEW_DEBUG)
  92. #undef YYDEBUG
  93. #define YYDEBUG 1
  94. #endif
  95.  
  96. #include "config.h"
  97.  
  98. #include <stdio.h>
  99. #include <errno.h>
  100.  
  101. #include "tree.h"
  102. #include "input.h"
  103. #include "flags.h"
  104. #include "cp-lex.h"
  105. #include "cp-tree.h"
  106.  
  107. extern tree void_list_node;
  108. extern struct obstack permanent_obstack;
  109.  
  110. #ifndef errno
  111. extern int errno;
  112. #endif
  113.  
  114. extern int end_of_file;
  115.  
  116. void yyerror ();
  117.  
  118. /* Like YYERROR but do call yyerror.  */
  119. #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
  120.  
  121. static void position_after_white_space ();
  122.  
  123. /* Contains error message to give if user tries to declare
  124.    a variable where one does not belong.  */
  125. static char *stmt_decl_msg = 0;
  126.  
  127. /* Nonzero if we have an `extern "C"' acting as an extern specifier.  */
  128. int have_extern_spec;
  129. int used_extern_spec;
  130.  
  131. void yyhook ();
  132.  
  133. /* Cons up an empty parameter list.  */
  134. #ifdef __GNUC__
  135. __inline
  136. #endif
  137. static tree
  138. empty_parms ()
  139. {
  140.   tree parms;
  141.  
  142.   if (strict_prototype)
  143.     parms = void_list_node;
  144.   else
  145.     parms = NULL_TREE;
  146.   return parms;
  147. }
  148.  
  149. #line 104 "cp-parse.y"
  150. typedef union {long itype; tree ttype; char *strtype; enum tree_code code; } YYSTYPE;
  151. #line 261 "cp-parse.y"
  152.  
  153. /* List of types and structure classes of the current declaration.  */
  154. static tree current_declspecs;
  155.  
  156. /* When defining an aggregate, this is the most recent one being defined.  */
  157. static tree current_aggr;
  158.  
  159. /* 1 if we explained undeclared var errors.  */
  160. int undeclared_variable_notice;
  161.  
  162. /* Tell yyparse how to print a token's value, if yydebug is set.  */
  163.  
  164. #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
  165. extern void yyprint ();
  166.  
  167. #ifndef YYLTYPE
  168. typedef
  169.   struct yyltype
  170.     {
  171.       int timestamp;
  172.       int first_line;
  173.       int first_column;
  174.       int last_line;
  175.       int last_column;
  176.       char *text;
  177.    }
  178.   yyltype;
  179.  
  180. #define YYLTYPE yyltype
  181. #endif
  182.  
  183. #include <stdio.h>
  184.  
  185. #ifndef __STDC__
  186. #define const
  187. #endif
  188.  
  189.  
  190.  
  191. #define    YYFINAL        1271
  192. #define    YYFLAG        -32768
  193. #define    YYNTBASE    109
  194.  
  195. #define YYTRANSLATE(x) ((unsigned)(x) <= 339 ? yytranslate[x] : 298)
  196.  
  197. static const char yytranslate[] = {     0,
  198.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  199.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  200.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  201.      2,     2,   107,     2,     2,     2,    72,    60,     2,    82,
  202.    103,    70,    68,    50,    69,    80,    71,     2,     2,     2,
  203.      2,     2,     2,     2,     2,     2,     2,    54,   104,    64,
  204.     52,    65,    53,     2,     2,     2,     2,     2,     2,     2,
  205.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  206.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  207.     83,     2,   108,    59,     2,     2,     2,     2,     2,     2,
  208.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  209.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  210.      2,     2,    49,    58,   105,   106,     2,     2,     2,     2,
  211.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  212.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  213.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  214.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  215.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  216.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  217.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  218.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  219.      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,     1,     2,     3,     4,     5,
  224.      6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
  225.     16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
  226.     26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
  227.     36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
  228.     46,    47,    48,    51,    55,    56,    57,    61,    62,    63,
  229.     66,    67,    73,    74,    75,    76,    77,    78,    79,    81,
  230.     84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
  231.     94,    95,    96,    97,    98,    99,   100,   101,   102
  232. };
  233.  
  234. static const short yyprhs[] = {     0,
  235.      0,     1,     3,     4,     7,    10,    11,    12,    14,    16,
  236.     18,    20,    26,    31,    35,    40,    45,    47,    48,    54,
  237.     56,    60,    63,    68,    72,    74,    78,    80,    84,    85,
  238.     91,    92,    98,    99,   105,   106,   112,   116,   120,   127,
  239.    135,   140,   144,   148,   150,   152,   154,   156,   158,   161,
  240.    165,   169,   173,   177,   180,   183,   186,   189,   191,   195,
  241.    200,   204,   210,   215,   219,   223,   226,   230,   234,   237,
  242.    244,   251,   256,   261,   263,   270,   275,   279,   286,   291,
  243.    295,   298,   301,   303,   307,   312,   315,   319,   320,   321,
  244.    323,   327,   330,   334,   336,   341,   344,   349,   352,   357,
  245.    360,   366,   370,   372,   374,   376,   378,   380,   382,   384,
  246.    386,   388,   391,   393,   397,   402,   407,   409,   411,   412,
  247.    413,   415,   419,   421,   423,   424,   431,   432,   434,   435,
  248.    438,   440,   442,   444,   446,   448,   450,   452,   454,   458,
  249.    462,   464,   465,   469,   472,   475,   478,   481,   484,   487,
  250.    492,   495,   500,   504,   511,   518,   528,   533,   541,   547,
  251.    556,   566,   576,   583,   593,   600,   610,   614,   621,   624,
  252.    629,   635,   637,   642,   650,   655,   660,   665,   667,   671,
  253.    675,   679,   683,   687,   691,   695,   699,   703,   707,   711,
  254.    715,   719,   723,   727,   731,   735,   741,   745,   749,   753,
  255.    756,   758,   760,   762,   764,   768,   772,   773,   778,   779,
  256.    786,   789,   794,   797,   801,   804,   807,   809,   814,   819,
  257.    822,   828,   832,   835,   838,   841,   847,   851,   857,   861,
  258.    868,   873,   875,   880,   883,   889,   890,   892,   894,   897,
  259.    899,   902,   903,   906,   909,   912,   916,   920,   924,   928,
  260.    931,   934,   936,   938,   941,   944,   946,   949,   952,   956,
  261.    958,   960,   963,   966,   968,   970,   973,   976,   978,   981,
  262.    984,   988,   990,   993,   995,   997,   999,  1001,  1006,  1011,
  263.   1013,  1015,  1017,  1019,  1021,  1025,  1027,  1031,  1032,  1037,
  264.   1038,  1046,  1051,  1052,  1060,  1065,  1066,  1074,  1079,  1080,
  265.   1087,  1089,  1093,  1095,  1100,  1109,  1111,  1115,  1117,  1120,
  266.   1124,  1129,  1131,  1133,  1137,  1142,  1149,  1153,  1159,  1160,
  267.   1168,  1173,  1174,  1181,  1185,  1188,  1193,  1195,  1196,  1198,
  268.   1199,  1201,  1203,  1206,  1212,  1215,  1218,  1221,  1224,  1227,
  269.   1230,  1233,  1237,  1241,  1244,  1245,  1249,  1250,  1254,  1257,
  270.   1259,  1261,  1262,  1264,  1267,  1269,  1273,  1275,  1277,  1280,
  271.   1283,  1286,  1290,  1292,  1294,  1296,  1299,  1302,  1304,  1305,
  272.   1307,  1312,  1316,  1318,  1321,  1324,  1328,  1334,  1340,  1344,
  273.   1348,  1352,  1356,  1360,  1366,  1372,  1376,  1380,  1384,  1388,
  274.   1390,  1393,  1396,  1400,  1404,  1405,  1407,  1411,  1416,  1423,
  275.   1428,  1432,  1435,  1440,  1447,  1452,  1456,  1459,  1461,  1465,
  276.   1467,  1471,  1474,  1477,  1478,  1480,  1483,  1485,  1488,  1489,
  277.   1492,  1493,  1496,  1502,  1508,  1512,  1518,  1523,  1527,  1531,
  278.   1537,  1539,  1541,  1547,  1551,  1555,  1557,  1563,  1569,  1573,
  279.   1579,  1584,  1588,  1592,  1594,  1596,  1600,  1604,  1610,  1616,
  280.   1620,  1626,  1630,  1634,  1638,  1643,  1647,  1649,  1651,  1654,
  281.   1657,  1660,  1664,  1668,  1676,  1684,  1690,  1698,  1702,  1710,
  282.   1718,  1724,  1732,  1736,  1738,  1741,  1744,  1746,  1749,  1753,
  283.   1757,  1760,  1762,  1766,  1770,  1773,  1779,  1783,  1788,  1792,
  284.   1797,  1800,  1804,  1807,  1811,  1816,  1820,  1825,  1831,  1837,
  285.   1839,  1841,  1844,  1847,  1850,  1851,  1852,  1854,  1856,  1859,
  286.   1863,  1865,  1868,  1871,  1877,  1883,  1884,  1891,  1893,  1895,
  287.   1898,  1899,  1904,  1906,  1907,  1908,  1916,  1917,  1918,  1928,
  288.   1929,  1930,  1931,  1941,  1942,  1943,  1944,  1954,  1955,  1962,
  289.   1963,  1969,  1970,  1978,  1979,  1984,  1987,  1990,  1993,  1997,
  290.   2004,  2013,  2024,  2037,  2042,  2046,  2049,  2052,  2054,  2057,
  291.   2061,  2068,  2073,  2080,  2085,  2089,  2090,  2098,  2101,  2102,
  292.   2108,  2112,  2114,  2117,  2121,  2125,  2128,  2131,  2133,  2134,
  293.   2139,  2142,  2146,  2150,  2151,  2152,  2157,  2158,  2159,  2164,
  294.   2165,  2170,  2171,  2173,  2174,  2175,  2184,  2188,  2193,  2198,
  295.   2202,  2207,  2214,  2221,  2222,  2224,  2225,  2227,  2229,  2230,
  296.   2232,  2234,  2238,  2243,  2245,  2249,  2250,  2252,  2256,  2259,
  297.   2261,  2263,  2266,  2269,  2271,  2275,  2279,  2285,  2289,  2295,
  298.   2299,  2303,  2305,  2307,  2310,  2312,  2313,  2315,  2316,  2319,
  299.   2324,  2326,  2328,  2330,  2333,  2336,  2339,  2341,  2343,  2345,
  300.   2349,  2351,  2355,  2358,  2361,  2364,  2367,  2370,  2373,  2376,
  301.   2379,  2382,  2385,  2388,  2391,  2394,  2397,  2400,  2403,  2406,
  302.   2409,  2412,  2415,  2418,  2421,  2424,  2428,  2431,  2434,  2437,
  303.   2441,  2444,  2448,  2451,  2454,  2458
  304. };
  305.  
  306. static const short yyrhs[] = {    -1,
  307.    110,     0,     0,   111,   114,     0,   110,   114,     0,     0,
  308.      0,   129,     0,   128,     0,   122,     0,   120,     0,    26,
  309.     82,   164,   103,   104,     0,   115,    49,   110,   105,     0,
  310.    115,    49,   105,     0,   115,   112,   129,   113,     0,   115,
  311.    112,   128,   113,     0,    96,     0,     0,    44,    64,   117,
  312.    118,    65,     0,   119,     0,   118,    50,   119,     0,   197,
  313.    138,     0,   197,   139,    54,   209,     0,   197,    48,   209,
  314.      0,   287,     0,    38,   121,   104,     0,     3,     0,   121,
  315.     50,     3,     0,     0,   116,   198,    49,   123,   104,     0,
  316.      0,   116,   199,    49,   124,   104,     0,     0,   116,   198,
  317.     54,   125,   104,     0,     0,   116,   199,    54,   126,   104,
  318.      0,   116,   198,   104,     0,   116,   199,   104,     0,   116,
  319.    228,   292,   179,   186,   127,     0,   116,   170,   169,   292,
  320.    179,   186,   127,     0,   116,   172,   169,   127,     0,   116,
  321.      1,   105,     0,   116,     1,   104,     0,    49,     0,    54,
  322.      0,   104,     0,    52,     0,    24,     0,   178,   104,     0,
  323.    172,   178,   104,     0,   172,   169,   104,     0,   170,   177,
  324.    104,     0,   170,   169,   104,     0,   172,   104,     0,   170,
  325.    104,     0,     1,   104,     0,     1,   105,     0,   104,     0,
  326.    130,   134,   241,     0,   130,   133,   134,   241,     0,   130,
  327.    165,   241,     0,   130,   133,   104,   165,   241,     0,   130,
  328.    133,   165,   241,     0,   170,   169,     1,     0,   172,   228,
  329.      1,     0,   228,     1,     0,   170,   169,   292,     0,   172,
  330.    228,   292,     0,   228,   292,     0,     4,    82,   285,   103,
  331.    223,   292,     0,   231,    82,   285,   103,   223,   292,     0,
  332.      4,    43,   223,   292,     0,   231,    43,   223,   292,     0,
  333.     95,     0,   170,    82,   285,   103,   223,   292,     0,   170,
  334.     43,   223,   292,     0,   170,   169,   292,     0,   172,    82,
  335.    285,   103,   223,   292,     0,   172,    43,   223,   292,     0,
  336.    172,   169,   292,     0,   228,   292,     0,    24,     3,     0,
  337.    132,     0,   132,    52,   190,     0,   132,    82,   153,   103,
  338.      0,   132,    43,     0,    54,   135,   136,     0,     0,     0,
  339.    137,     0,   136,    50,   137,     0,   136,     1,     0,    82,
  340.    153,   103,     0,    43,     0,   138,    82,   153,   103,     0,
  341.    138,    43,     0,   142,    82,   153,   103,     0,   142,    43,
  342.      0,   231,    82,   153,   103,     0,   231,    43,     0,   229,
  343.    138,    82,   153,   103,     0,   229,   138,    43,     0,     3,
  344.      0,     4,     0,    94,     0,   100,     0,    99,     0,   101,
  345.      0,     3,     0,     4,     0,    94,     0,   106,   138,     0,
  346.    297,     0,   142,   143,   149,     0,    94,    64,   145,    65,
  347.      0,     4,    64,   145,    65,     0,    49,     0,    54,     0,
  348.      0,     0,   146,     0,   145,    50,   146,     0,   220,     0,
  349.    157,     0,     0,    98,   205,   148,   211,   212,   105,     0,
  350.      0,   147,     0,     0,   147,   150,     0,    69,     0,    68,
  351.      0,    74,     0,    75,     0,   107,     0,   153,     0,   157,
  352.      0,   157,     0,   153,    50,   157,     0,   153,    50,     1,
  353.      0,   158,     0,     0,    32,   155,   156,     0,    70,   156,
  354.      0,    60,   156,     0,   106,   156,     0,   151,   156,     0,
  355.     57,   138,     0,    12,   154,     0,    12,    82,   220,   103,
  356.      0,    28,   154,     0,    28,    82,   220,   103,     0,   162,
  357.    161,   220,     0,   162,   161,    82,   153,   103,   220,     0,
  358.    162,   161,   175,    82,   153,   103,     0,   162,   161,    82,
  359.    153,   103,   175,    82,   153,   103,     0,   162,   161,   175,
  360.     43,     0,   162,   161,    82,   153,   103,   175,    43,     0,
  361.    162,   161,   220,    52,   190,     0,   162,   161,    82,   153,
  362.    103,   220,    52,   190,     0,   162,   161,    82,   173,   221,
  363.    103,    83,   224,   108,     0,   162,   161,    82,   222,   221,
  364.    103,    83,   224,   108,     0,   162,   161,    82,   173,   221,
  365.    103,     0,   162,   161,    82,   153,   103,    82,   173,   221,
  366.    103,     0,   162,   161,    82,   222,   221,   103,     0,   162,
  367.    161,    82,   153,   103,    82,   222,   221,   103,     0,   162,
  368.    161,    48,     0,   162,   161,    82,   153,   103,    48,     0,
  369.    163,   156,     0,   163,    83,   108,   156,     0,   163,    83,
  370.    152,   108,   156,     0,   154,     0,    82,   220,   103,   157,
  371.      0,    82,   220,   103,    49,   191,   195,   105,     0,    29,
  372.     82,   152,   103,     0,    30,    82,   152,   103,     0,    30,
  373.     82,     4,   103,     0,   156,     0,   157,    68,   157,     0,
  374.    157,    69,   157,     0,   157,    70,   157,     0,   157,    71,
  375.    157,     0,   157,    72,   157,     0,   157,    66,   157,     0,
  376.    157,    67,   157,     0,   157,    63,   157,     0,   157,    64,
  377.    157,     0,   157,    65,   157,     0,   157,    62,   157,     0,
  378.    157,    61,   157,     0,   157,    60,   157,     0,   157,    58,
  379.    157,     0,   157,    59,   157,     0,   157,    57,   157,     0,
  380.    157,    56,   157,     0,   157,    53,   280,    54,   157,     0,
  381.    157,    52,   157,     0,   157,    51,   157,     0,   158,    81,
  382.    157,     0,   167,   157,     0,     3,     0,   297,     0,     9,
  383.      0,   164,     0,    82,   152,   103,     0,    82,     1,   103,
  384.      0,     0,    82,   159,   242,   103,     0,     0,   158,    82,
  385.    153,   103,   160,   150,     0,   158,    43,     0,   158,    83,
  386.    152,   108,     0,   166,   140,     0,   166,   229,   140,     0,
  387.    158,    74,     0,   158,    75,     0,    39,     0,     8,    82,
  388.    153,   103,     0,   175,    82,   153,   103,     0,   175,    43,
  389.      0,    45,   175,    82,   153,   103,     0,    45,   175,    43,
  390.      0,    45,     3,     0,    45,   297,     0,   229,   140,     0,
  391.    229,   140,    82,   153,   103,     0,   229,   140,    43,     0,
  392.    166,   140,    82,   153,   103,     0,   166,   140,    43,     0,
  393.    166,   229,   140,    82,   153,   103,     0,   166,   229,   140,
  394.     43,     0,    37,     0,    37,    49,   153,   105,     0,    37,
  395.     41,     0,    37,    41,    82,   164,   103,     0,     0,    45,
  396.      0,    36,     0,    45,   163,     0,    10,     0,   164,    10,
  397.      0,     0,   158,    80,     0,   158,    78,     0,   158,    79,
  398.      0,   170,   177,   104,     0,   170,   169,   104,     0,   172,
  399.    178,   104,     0,   172,   169,   104,     0,   170,   104,     0,
  400.    172,   104,     0,   226,     0,   228,     0,    46,   226,     0,
  401.     46,   228,     0,   175,     0,   172,   175,     0,   175,   171,
  402.      0,   172,   175,   171,     0,   176,     0,     6,     0,   171,
  403.    176,     0,   171,     6,     0,     8,     0,     6,     0,   172,
  404.      8,     0,   172,     6,     0,   175,     0,   222,   175,     0,
  405.    175,   174,     0,   222,   175,   174,     0,   176,     0,   174,
  406.    176,     0,   192,     0,     7,     0,     4,     0,   231,     0,
  407.     27,    82,   152,   103,     0,    27,    82,   220,   103,     0,
  408.    141,     0,     7,     0,     8,     0,   192,     0,   180,     0,
  409.    177,    50,   182,     0,   184,     0,   178,    50,   182,     0,
  410.      0,    26,    82,   164,   103,     0,     0,   169,   292,   179,
  411.    186,    52,   181,   190,     0,   169,   292,   179,   186,     0,
  412.      0,   169,   292,   179,   186,    52,   183,   190,     0,   169,
  413.    292,   179,   186,     0,     0,   228,   292,   179,   186,    52,
  414.    185,   190,     0,   228,   292,   179,   186,     0,     0,    31,
  415.     82,    82,   187,   103,   103,     0,   188,     0,   187,    50,
  416.    188,     0,     3,     0,     3,    82,     9,   103,     0,     3,
  417.     82,     3,    50,     9,    50,     9,   103,     0,   138,     0,
  418.    189,    50,   138,     0,   157,     0,    49,   105,     0,    49,
  419.    191,   105,     0,    49,   191,    50,   105,     0,     1,     0,
  420.    190,     0,   191,    50,   190,     0,    83,   157,   108,   190,
  421.      0,   191,    50,    20,   157,    54,   190,     0,   138,    54,
  422.    190,     0,   191,    50,   138,    54,   190,     0,     0,    13,
  423.    138,    49,   193,   218,   196,   105,     0,    13,   138,    49,
  424.    105,     0,     0,    13,    49,   194,   218,   196,   105,     0,
  425.     13,    49,   105,     0,    13,   138,     0,   204,   211,   212,
  426.    105,     0,   204,     0,     0,    50,     0,     0,    50,     0,
  427.     34,     0,    41,    34,     0,    41,    82,   164,   103,    34,
  428.      0,   197,     6,     0,   197,     7,     0,   197,     8,     0,
  429.    197,    34,     0,   197,   138,     0,   197,   142,     0,   197,
  430.     48,     0,   197,   142,    49,     0,   197,   142,    54,     0,
  431.    197,   139,     0,     0,   198,   201,   205,     0,     0,   199,
  432.    202,   205,     0,   197,    49,     0,   203,     0,   200,     0,
  433.      0,    54,     0,    54,   206,     0,   207,     0,   206,    50,
  434.    207,     0,   209,     0,   208,     0,   210,   209,     0,   210,
  435.    208,     0,   209,     5,     0,   142,   144,   149,     0,   138,
  436.      0,    35,     0,     6,     0,   210,    35,     0,   210,     6,
  437.      0,    49,     0,     0,   213,     0,   212,    35,    54,   213,
  438.      0,   212,    35,    54,     0,   214,     0,   213,   214,     0,
  439.    213,   104,     0,   170,   215,   104,     0,   170,    82,   285,
  440.    103,   104,     0,   170,    82,   285,   103,   105,     0,   170,
  441.     43,   104,     0,   170,    43,   105,     0,   172,   215,   104,
  442.      0,   172,   169,   104,     0,   172,   215,   105,     0,   172,
  443.     82,   285,   103,   104,     0,   172,    82,   285,   103,   105,
  444.      0,   172,    43,   104,     0,   172,    43,   105,     0,    54,
  445.    157,   104,     0,    54,   157,   105,     0,     1,     0,   131,
  446.     54,     0,   131,    49,     0,   228,   292,   104,     0,   228,
  447.    292,   105,     0,     0,   216,     0,   215,    50,   217,     0,
  448.    169,   292,   179,   186,     0,   169,   292,   179,   186,    52,
  449.    190,     0,     3,    54,   157,   186,     0,    48,   157,   186,
  450.      0,    54,   157,     0,   169,   292,   179,   186,     0,   169,
  451.    292,   179,   186,    52,   190,     0,     3,    54,   157,   186,
  452.      0,    48,   157,   186,     0,    54,   157,     0,   219,     0,
  453.    218,    50,   219,     0,   138,     0,   138,    52,   157,     0,
  454.    173,   221,     0,   222,   221,     0,     0,   232,     0,    46,
  455.    232,     0,     8,     0,   222,     8,     0,     0,   223,     8,
  456.      0,     0,   225,   152,     0,   226,    82,   153,   103,   223,
  457.      0,   226,    82,   285,   103,   223,     0,   226,    43,   223,
  458.      0,   226,    82,     1,   103,   223,     0,   226,    83,   224,
  459.    108,     0,   226,    83,   108,     0,    82,   227,   103,     0,
  460.     82,    70,   223,   226,   103,     0,    77,     0,   234,     0,
  461.     82,    60,   223,   226,   103,     0,    70,   223,   226,     0,
  462.     60,   223,   226,     0,     4,     0,   227,    82,   153,   103,
  463.    223,     0,   227,    82,   285,   103,   223,     0,   227,    43,
  464.    223,     0,   227,    82,     1,   103,   223,     0,   227,    83,
  465.    224,   108,     0,   227,    83,   108,     0,    82,   227,   103,
  466.      0,    77,     0,   234,     0,    70,   223,   226,     0,    60,
  467.    223,   226,     0,   228,    82,   153,   103,   223,     0,   228,
  468.     82,   285,   103,   223,     0,   228,    43,   223,     0,   228,
  469.     82,     1,   103,   223,     0,    82,   228,   103,     0,    70,
  470.    223,   228,     0,    60,   223,   228,     0,   228,    83,   224,
  471.    108,     0,   228,    83,   108,     0,     3,     0,   297,     0,
  472.    106,     4,     0,   106,     3,     0,   106,    94,     0,   229,
  473.    289,   228,     0,   229,   289,     4,     0,   229,   289,     4,
  474.     82,   153,   103,   223,     0,   229,   289,     4,    82,   285,
  475.    103,   223,     0,   229,   289,     4,    43,   223,     0,   229,
  476.    289,     4,    82,     1,   103,   223,     0,   229,   289,    94,
  477.      0,   229,   289,    94,    82,   153,   103,   223,     0,   229,
  478.    289,    94,    82,   285,   103,   223,     0,   229,   289,    94,
  479.     43,   223,     0,   229,   289,    94,    82,     1,   103,   223,
  480.      0,    45,   289,   228,     0,   230,     0,   141,    45,     0,
  481.      4,    45,     0,     5,     0,   141,     5,     0,    82,   232,
  482.    103,     0,    70,   223,   232,     0,    70,   223,     0,    77,
  483.      0,    82,   233,   103,     0,    60,   223,   232,     0,    60,
  484.    223,     0,   232,    82,   285,   103,   223,     0,   232,    43,
  485.    223,     0,   232,    83,   224,   108,     0,   232,    83,   108,
  486.      0,    82,   285,   103,   223,     0,    43,   223,     0,    83,
  487.    224,   108,     0,    83,   108,     0,   229,    70,   223,     0,
  488.    229,    70,   223,   232,     0,   229,    60,   223,     0,   229,
  489.     60,   223,   232,     0,   229,   289,    70,   223,   226,     0,
  490.    229,   289,    60,   223,   226,     0,   245,     0,   236,     0,
  491.    235,   245,     0,   235,   236,     0,     1,   104,     0,     0,
  492.      0,   239,     0,   240,     0,   239,   240,     0,    33,   189,
  493.    104,     0,   242,     0,     1,   242,     0,    49,   105,     0,
  494.     49,   237,   238,   235,   105,     0,    49,   237,   238,     1,
  495.    105,     0,     0,    14,    82,   152,   103,   244,   245,     0,
  496.    242,     0,   168,     0,   152,   104,     0,     0,   243,    15,
  497.    246,   245,     0,   243,     0,     0,     0,    16,   247,    82,
  498.    152,   103,   248,   245,     0,     0,     0,    17,   249,   245,
  499.     16,   250,    82,   152,   103,   104,     0,     0,     0,     0,
  500.    277,   251,   280,   104,   252,   280,   103,   253,   245,     0,
  501.      0,     0,     0,   278,   254,   280,   104,   255,   280,   103,
  502.    256,   245,     0,     0,    19,    82,   152,   103,   257,   245,
  503.      0,     0,    20,   152,    54,   258,   245,     0,     0,    20,
  504.    152,    55,   152,    54,   259,   245,     0,     0,    21,    54,
  505.    260,   245,     0,    22,   104,     0,    23,   104,     0,    24,
  506.    104,     0,    24,   152,   104,     0,    26,   279,    82,   164,
  507.    103,   104,     0,    26,   279,    82,   164,    54,   281,   103,
  508.    104,     0,    26,   279,    82,   164,    54,   281,    54,   281,
  509.    103,   104,     0,    26,   279,    82,   164,    54,   281,    54,
  510.    281,    54,   284,   103,   104,     0,    25,    70,   152,   104,
  511.      0,    25,   138,   104,     0,   264,   245,     0,   264,   105,
  512.      0,   104,     0,    92,   104,     0,    92,   152,   104,     0,
  513.     90,   293,    82,   153,   103,   104,     0,    90,   293,    43,
  514.    104,     0,    84,   293,    82,   153,   103,   104,     0,    84,
  515.    293,    43,   104,     0,    84,   138,   104,     0,     0,   263,
  516.     88,   138,    49,   261,   271,   105,     0,   263,     1,     0,
  517.      0,   267,   268,   268,   262,   275,     0,   263,    86,   295,
  518.      0,   263,     0,   265,   105,     0,   265,   235,   105,     0,
  519.    265,     1,   105,     0,     3,    54,     0,    94,    54,     0,
  520.     48,     0,     0,    87,    49,   266,   237,     0,   269,   105,
  521.      0,   269,   235,   105,     0,   269,     1,   105,     0,     0,
  522.      0,    91,    49,   270,   237,     0,     0,     0,   271,   293,
  523.    272,   242,     0,     0,   271,    21,   273,   242,     0,     0,
  524.    138,     0,     0,     0,   275,    89,    82,   220,   274,   103,
  525.    276,   242,     0,    18,    82,   104,     0,    18,    82,   152,
  526.    104,     0,    18,    82,    49,   105,     0,    18,    82,   168,
  527.      0,    18,    82,     1,   104,     0,    18,    82,    49,   237,
  528.    235,   105,     0,    18,    82,    49,   237,     1,   105,     0,
  529.      0,     8,     0,     0,   152,     0,     1,     0,     0,   282,
  530.      0,   283,     0,   282,    50,   283,     0,    10,    82,   152,
  531.    103,     0,    10,     0,   284,    50,    10,     0,     0,   286,
  532.      0,   286,    50,    11,     0,   286,    11,     0,    11,     0,
  533.     93,     0,   286,    93,     0,   286,    54,     0,   287,     0,
  534.    287,    52,   190,     0,   286,    50,   287,     0,   286,    50,
  535.    287,    52,   190,     0,   286,    50,   291,     0,   286,    50,
  536.    291,    52,   190,     0,   170,   290,   288,     0,   172,   290,
  537.    288,     0,   221,     0,   228,     0,    46,   228,     0,   223,
  538.      0,     0,   288,     0,     0,    85,   295,     0,    92,    82,
  539.    296,   103,     0,    97,     0,     3,     0,     4,     0,    45,
  540.      3,     0,    45,     4,     0,   229,     3,     0,   231,     0,
  541.    220,     0,   293,     0,   295,    50,   293,     0,   294,     0,
  542.    296,    50,   294,     0,    40,    70,     0,    40,    71,     0,
  543.     40,    72,     0,    40,    68,     0,    40,    69,     0,    40,
  544.     60,     0,    40,    58,     0,    40,    59,     0,    40,   106,
  545.      0,    40,    50,     0,    40,    63,     0,    40,    64,     0,
  546.     40,    65,     0,    40,    62,     0,    40,    51,     0,    40,
  547.     52,     0,    40,    66,     0,    40,    67,     0,    40,    74,
  548.      0,    40,    75,     0,    40,    57,     0,    40,    56,     0,
  549.     40,   107,     0,    40,    53,    54,     0,    40,    61,     0,
  550.     40,    78,     0,    40,    79,     0,    40,    42,   223,     0,
  551.     40,    43,     0,    40,    83,   108,     0,    40,    37,     0,
  552.     40,    36,     0,    40,   173,   221,     0,    40,     1,     0
  553. };
  554.  
  555. #if YYDEBUG != 0
  556. static const short yyrline[] = { 0,
  557.    278,   279,   287,   289,   290,   294,   299,   303,   306,   308,
  558.    310,   311,   316,   318,   320,   323,   328,   333,   336,   340,
  559.    343,   347,   360,   367,   374,   377,   380,   382,   386,   392,
  560.    392,   395,   395,   398,   398,   411,   411,   416,   421,   436,
  561.    458,   467,   468,   471,   472,   473,   474,   475,   478,   484,
  562.    487,   492,   498,   505,   507,   525,   526,   527,   530,   544,
  563.    557,   560,   563,   566,   568,   570,   574,   580,   585,   590,
  564.    595,   600,   605,   610,   616,   626,   635,   642,   651,   660,
  565.    667,   676,   684,   686,   688,   690,   694,   703,   726,   729,
  566.    731,   732,   735,   742,   749,   753,   755,   757,   759,   761,
  567.    763,   767,   773,   775,   776,   779,   781,   782,   785,   787,
  568.    788,   792,   793,   796,   818,   821,   825,   829,   830,   834,
  569.    839,   842,   846,   849,   852,   884,   904,   907,   911,   914,
  570.    918,   920,   922,   924,   926,   930,   933,   936,   939,   941,
  571.    945,   952,   955,   958,   960,   962,   964,   970,   975,   988,
  572.    990,  1023,  1026,  1028,  1030,  1032,  1034,  1036,  1038,  1040,
  573.   1048,  1058,  1061,  1063,  1065,  1067,  1070,  1072,  1075,  1103,
  574.   1122,  1147,  1149,  1152,  1167,  1169,  1171,  1182,  1184,  1186,
  575.   1188,  1190,  1192,  1194,  1196,  1198,  1200,  1202,  1204,  1206,
  576.   1208,  1210,  1212,  1214,  1216,  1218,  1220,  1222,  1229,  1232,
  577.   1247,  1250,  1265,  1266,  1268,  1270,  1272,  1280,  1295,  1300,
  578.   1307,  1318,  1368,  1370,  1386,  1388,  1392,  1415,  1459,  1461,
  579.   1463,  1465,  1467,  1503,  1510,  1512,  1514,  1516,  1519,  1522,
  580.   1524,  1566,  1568,  1573,  1575,  1579,  1582,  1586,  1588,  1596,
  581.   1598,  1602,  1611,  1626,  1632,  1635,  1642,  1650,  1653,  1660,
  582.   1665,  1672,  1674,  1675,  1677,  1685,  1688,  1690,  1692,  1696,
  583.   1700,  1705,  1707,  1718,  1722,  1724,  1727,  1742,  1745,  1747,
  584.   1749,  1753,  1756,  1764,  1765,  1766,  1767,  1768,  1772,  1776,
  585.   1781,  1782,  1783,  1786,  1788,  1791,  1793,  1796,  1799,  1807,
  586.   1815,  1817,  1826,  1832,  1833,  1839,  1847,  1849,  1860,  1863,
  587.   1868,  1870,  1875,  1880,  1891,  1906,  1909,  1913,  1915,  1920,
  588.   1923,  1926,  1932,  1935,  1938,  1940,  1942,  1944,  1948,  1952,
  589.   1956,  1959,  1962,  1966,  1969,  1973,  2028,  2043,  2045,  2048,
  590.   2050,  2055,  2056,  2058,  2060,  2063,  2066,  2069,  2074,  2077,
  591.   2079,  2081,  2087,  2091,  2096,  2101,  2108,  2113,  2122,  2127,
  592.   2127,  2129,  2132,  2134,  2138,  2140,  2144,  2149,  2153,  2157,
  593.   2163,  2172,  2186,  2189,  2191,  2195,  2221,  2230,  2256,  2259,
  594.   2261,  2263,  2266,  2269,  2272,  2277,  2342,  2344,  2348,  2350,
  595.   2354,  2357,  2359,  2363,  2365,  2369,  2371,  2375,  2377,  2381,
  596.   2386,  2388,  2390,  2392,  2398,  2401,  2402,  2413,  2418,  2422,
  597.   2426,  2430,  2435,  2439,  2442,  2445,  2448,  2456,  2458,  2462,
  598.   2465,  2469,  2472,  2476,  2479,  2480,  2484,  2487,  2491,  2494,
  599.   2502,  2504,  2508,  2511,  2513,  2515,  2517,  2519,  2521,  2523,
  600.   2525,  2527,  2528,  2530,  2532,  2534,  2537,  2540,  2542,  2544,
  601.   2546,  2548,  2550,  2552,  2554,  2555,  2557,  2564,  2567,  2569,
  602.   2571,  2573,  2575,  2577,  2579,  2581,  2583,  2587,  2590,  2596,
  603.   2598,  2600,  2609,  2611,  2613,  2615,  2617,  2620,  2622,  2624,
  604.   2626,  2628,  2630,  2634,  2642,  2659,  2662,  2663,  2684,  2689,
  605.   2691,  2693,  2695,  2697,  2699,  2701,  2703,  2705,  2707,  2709,
  606.   2711,  2713,  2715,  2719,  2727,  2734,  2741,  2750,  2758,  2771,
  607.   2773,  2774,  2775,  2778,  2785,  2797,  2799,  2804,  2806,  2809,
  608.   2823,  2826,  2829,  2831,  2837,  2845,  2851,  2854,  2857,  2862,
  609.   2875,  2879,  2882,  2886,  2890,  2894,  2898,  2903,  2906,  2912,
  610.   2917,  2920,  2926,  2933,  2937,  2940,  2947,  2963,  2971,  2975,
  611.   3025,  3025,  3104,  3104,  3120,  3120,  3124,  3128,  3131,  3136,
  612.   3143,  3152,  3161,  3170,  3173,  3179,  3181,  3185,  3189,  3190,
  613.   3191,  3194,  3197,  3200,  3203,  3206,  3219,  3248,  3258,  3272,
  614.   3300,  3332,  3344,  3352,  3357,  3364,  3372,  3374,  3381,  3383,
  615.   3383,  3391,  3396,  3403,  3404,  3406,  3406,  3409,  3430,  3446,
  616.   3465,  3483,  3486,  3488,  3491,  3510,  3528,  3531,  3533,  3537,
  617.   3540,  3542,  3544,  3550,  3555,  3561,  3564,  3565,  3571,  3573,
  618.   3576,  3578,  3582,  3587,  3590,  3599,  3606,  3611,  3616,  3620,
  619.   3627,  3631,  3635,  3649,  3652,  3654,  3656,  3658,  3660,  3668,
  620.   3684,  3689,  3690,  3691,  3695,  3699,  3717,  3725,  3728,  3730,
  621.   3734,  3737,  3739,  3741,  3743,  3745,  3747,  3750,  3755,  3757,
  622.   3764,  3766,  3773,  3776,  3778,  3780,  3782,  3784,  3786,  3788,
  623.   3790,  3792,  3794,  3796,  3798,  3800,  3802,  3804,  3813,  3815,
  624.   3817,  3819,  3821,  3823,  3825,  3827,  3829,  3831,  3843,  3855,
  625.   3886,  3898,  3910,  3923,  3939,  3941
  626. };
  627.  
  628. static const char * const yytname[] = {   "$","error","$illegal.","IDENTIFIER",
  629. "TYPENAME","SCOPED_TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING",
  630. "ELLIPSIS","SIZEOF","ENUM","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT",
  631. "BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","TYPEOF","ALIGNOF","HEADOF",
  632. "CLASSOF","ATTRIBUTE","EXTENSION","LABEL","AGGR","VISSPEC","DELETE","NEW","OVERLOAD",
  633. "THIS","OPERATOR","DYNAMIC","POINTSAT_LEFT_RIGHT","LEFT_RIGHT","TEMPLATE","SCOPE",
  634. "START_DECLARATOR","EMPTY","TYPENAME_COLON","'{'","','","ASSIGN","'='","'?'",
  635. "':'","RANGE","OROR","ANDAND","'|'","'^'","'&'","MIN_MAX","EQCOMPARE","ARITHCOMPARE",
  636. "'<'","'>'","LSHIFT","RSHIFT","'+'","'-'","'*'","'/'","'%'","UNARY","PLUSPLUS",
  637. "MINUSMINUS","HYPERUNARY","PAREN_STAR_PAREN","POINTSAT","POINTSAT_STAR","'.'",
  638. "DOT_STAR","'('","'['","RAISE","RAISES","RERAISE","TRY","EXCEPT","CATCH","THROW",
  639. "ANSI_TRY","ANSI_THROW","TYPENAME_ELLIPSIS","PTYPENAME","PRE_PARSED_FUNCTION_DECL",
  640. "EXTERN_LANG_STRING","ALL","PRE_PARSED_CLASS_DECL","TYPENAME_DEFN","IDENTIFIER_DEFN",
  641. "PTYPENAME_DEFN","END_OF_SAVED_INPUT","')'","';'","'}'","'~'","'!'","']'","program",
  642. "extdefs","@1",".hush_warning",".warning_ok","extdef","extern_lang_string","template_header",
  643. "@2","template_parm_list","template_parm","overloaddef","ov_identifiers","template_def",
  644. "@3","@4","@5","@6","fn_tmpl_end","datadef","fndef","fn.def1","fn.def2","return_id",
  645. "return_init","base_init",".set_base_init","member_init_list","member_init",
  646. "identifier","identifier_defn","identifier_or_opname","template_type","template_type_name",
  647. "tmpl.1","tmpl.2","template_arg_list","template_arg","template_instantiate_once",
  648. "@7","template_instantiation","template_instantiate_some","unop","expr","nonnull_exprlist",
  649. "unary_expr","@8","cast_expr","expr_no_commas","primary","@9","@10","new",".scope",
  650. "delete","string","nodecls","object","object_star","decl","declarator","typed_declspecs",
  651. "reserved_declspecs","declmods","typed_typespecs","reserved_typespecquals","typespec",
  652. "typespecqual_reserved","initdecls","notype_initdecls","maybeasm","initdcl0",
  653. "@11","initdcl","@12","notype_initdcl0","@13","maybe_attribute","attribute_list",
  654. "attrib","identifiers_or_typenames","init","initlist","structsp","@14","@15",
  655. "maybecomma","maybecomma_warn","aggr","named_class_head_sans_basetype","named_class_head_sans_basetype_defn",
  656. "named_class_head","@16","@17","unnamed_class_head","class_head","maybe_base_class_list",
  657. "base_class_list","base_class","scoped_base_class","base_class.1","base_class_visibility_list",
  658. "left_curly","opt.component_decl_list","component_decl_list","component_decl",
  659. "components","component_declarator0","component_declarator","enumlist","enumerator",
  660. "typename","absdcl","nonempty_type_quals","type_quals","nonmomentary_expr","@18",
  661. "after_type_declarator","after_type_declarator_no_typename","notype_declarator",
  662. "scoped_id","typename_scope","scoped_typename","absdcl1","abs_member_declarator",
  663. "after_type_member_declarator","stmts","errstmt",".pushlevel","maybe_label_decls",
  664. "label_decls","label_decl","compstmt_or_error","compstmt","simple_if","@19",
  665. "stmt","@20","@21","@22","@23","@24","@25","@26","@27","@28","@29","@30","@31",
  666. "@32","@33","@34","@35","@36","try","label_colon","try_head","@37","ansi_try",
  667. "ansi_dummy","ansi_try_head","@38","except_stmts","@39","@40","optional_identifier",
  668. "ansi_except_stmts","@41","forhead.1","forhead.2","maybe_type_qual","xexpr",
  669. "asm_operands","nonnull_asm_operands","asm_operand","asm_clobbers","parmlist",
  670. "parms","parm","abs_or_notype_decl","see_typename","dont_see_typename","bad_parm",
  671. "maybe_raises","raise_identifier","ansi_raise_identifier","raise_identifiers",
  672. "ansi_raise_identifiers","operator_name",""
  673. };
  674. #endif
  675.  
  676. static const short yyr1[] = {     0,
  677.    109,   109,   111,   110,   110,   112,   113,   114,   114,   114,
  678.    114,   114,   114,   114,   114,   114,   115,   117,   116,   118,
  679.    118,   119,   119,   119,   119,   120,   121,   121,   123,   122,
  680.    124,   122,   125,   122,   126,   122,   122,   122,   122,   122,
  681.    122,   122,   122,   127,   127,   127,   127,   127,   128,   128,
  682.    128,   128,   128,   128,   128,   128,   128,   128,   129,   129,
  683.    129,   129,   129,   129,   129,   129,   130,   130,   130,   130,
  684.    130,   130,   130,   130,   131,   131,   131,   131,   131,   131,
  685.    131,   132,   133,   133,   133,   133,   134,   135,   136,   136,
  686.    136,   136,   137,   137,   137,   137,   137,   137,   137,   137,
  687.    137,   137,   138,   138,   138,   139,   139,   139,   140,   140,
  688.    140,   140,   140,   141,   142,   142,   143,   143,   143,   144,
  689.    145,   145,   146,   146,   148,   147,   149,   149,   150,   150,
  690.    151,   151,   151,   151,   151,   152,   152,   153,   153,   153,
  691.    154,   155,   154,   154,   154,   154,   154,   154,   154,   154,
  692.    154,   154,   154,   154,   154,   154,   154,   154,   154,   154,
  693.    154,   154,   154,   154,   154,   154,   154,   154,   154,   154,
  694.    154,   156,   156,   156,   156,   156,   156,   157,   157,   157,
  695.    157,   157,   157,   157,   157,   157,   157,   157,   157,   157,
  696.    157,   157,   157,   157,   157,   157,   157,   157,   157,   157,
  697.    158,   158,   158,   158,   158,   158,   159,   158,   160,   158,
  698.    158,   158,   158,   158,   158,   158,   158,   158,   158,   158,
  699.    158,   158,   158,   158,   158,   158,   158,   158,   158,   158,
  700.    158,   161,   161,   161,   161,   162,   162,   163,   163,   164,
  701.    164,   165,   166,   166,   167,   168,   168,   168,   168,   168,
  702.    168,   169,   169,   169,   169,   170,   170,   170,   170,   171,
  703.    171,   171,   171,   172,   172,   172,   172,   173,   173,   173,
  704.    173,   174,   174,   175,   175,   175,   175,   175,   175,   175,
  705.    176,   176,   176,   177,   177,   178,   178,   179,   179,   181,
  706.    180,   180,   183,   182,   182,   185,   184,   184,   186,   186,
  707.    187,   187,   188,   188,   188,   189,   189,   190,   190,   190,
  708.    190,   190,   191,   191,   191,   191,   191,   191,   193,   192,
  709.    192,   194,   192,   192,   192,   192,   192,   195,   195,   196,
  710.    196,   197,   197,   197,   197,   197,   197,   197,   198,   198,
  711.    198,   198,   198,   199,   201,   200,   202,   200,   203,   204,
  712.    204,   205,   205,   205,   206,   206,   207,   207,   207,   207,
  713.    208,   209,   209,   210,   210,   210,   210,   211,   212,   212,
  714.    212,   212,   213,   213,   213,   214,   214,   214,   214,   214,
  715.    214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
  716.    214,   214,   214,   214,   215,   215,   215,   216,   216,   216,
  717.    216,   216,   217,   217,   217,   217,   217,   218,   218,   219,
  718.    219,   220,   220,   221,   221,   221,   222,   222,   223,   223,
  719.    225,   224,   226,   226,   226,   226,   226,   226,   226,   226,
  720.    226,   226,   226,   226,   226,   226,   227,   227,   227,   227,
  721.    227,   227,   227,   227,   227,   227,   227,   228,   228,   228,
  722.    228,   228,   228,   228,   228,   228,   228,   228,   228,   228,
  723.    228,   228,   228,   228,   228,   228,   228,   228,   228,   228,
  724.    228,   228,   228,   229,   229,   230,   231,   231,   232,   232,
  725.    232,   232,   232,   232,   232,   232,   232,   232,   232,   232,
  726.    232,   232,   232,   233,   233,   233,   233,   234,   234,   235,
  727.    235,   235,   235,   236,   237,   238,   238,   239,   239,   240,
  728.    241,   241,   242,   242,   242,   244,   243,   245,   245,   245,
  729.    246,   245,   245,   247,   248,   245,   249,   250,   245,   251,
  730.    252,   253,   245,   254,   255,   256,   245,   257,   245,   258,
  731.    245,   259,   245,   260,   245,   245,   245,   245,   245,   245,
  732.    245,   245,   245,   245,   245,   245,   245,   245,   245,   245,
  733.    245,   245,   245,   245,   245,   261,   245,   245,   262,   245,
  734.    245,   245,   263,   263,   263,   264,   264,   264,   266,   265,
  735.    267,   267,   267,   268,   270,   269,   271,   272,   271,   273,
  736.    271,   274,   274,   275,   276,   275,   277,   277,   277,   278,
  737.    278,   278,   278,   279,   279,   280,   280,   280,   281,   281,
  738.    282,   282,   283,   284,   284,   285,   285,   285,   285,   285,
  739.    285,   285,   285,   286,   286,   286,   286,   286,   286,   287,
  740.    287,   288,   288,   288,   289,   290,   291,   292,   292,   292,
  741.    293,   293,   293,   293,   293,   293,   293,   294,   295,   295,
  742.    296,   296,   297,   297,   297,   297,   297,   297,   297,   297,
  743.    297,   297,   297,   297,   297,   297,   297,   297,   297,   297,
  744.    297,   297,   297,   297,   297,   297,   297,   297,   297,   297,
  745.    297,   297,   297,   297,   297,   297
  746. };
  747.  
  748. static const short yyr2[] = {     0,
  749.      0,     1,     0,     2,     2,     0,     0,     1,     1,     1,
  750.      1,     5,     4,     3,     4,     4,     1,     0,     5,     1,
  751.      3,     2,     4,     3,     1,     3,     1,     3,     0,     5,
  752.      0,     5,     0,     5,     0,     5,     3,     3,     6,     7,
  753.      4,     3,     3,     1,     1,     1,     1,     1,     2,     3,
  754.      3,     3,     3,     2,     2,     2,     2,     1,     3,     4,
  755.      3,     5,     4,     3,     3,     2,     3,     3,     2,     6,
  756.      6,     4,     4,     1,     6,     4,     3,     6,     4,     3,
  757.      2,     2,     1,     3,     4,     2,     3,     0,     0,     1,
  758.      3,     2,     3,     1,     4,     2,     4,     2,     4,     2,
  759.      5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
  760.      1,     2,     1,     3,     4,     4,     1,     1,     0,     0,
  761.      1,     3,     1,     1,     0,     6,     0,     1,     0,     2,
  762.      1,     1,     1,     1,     1,     1,     1,     1,     3,     3,
  763.      1,     0,     3,     2,     2,     2,     2,     2,     2,     4,
  764.      2,     4,     3,     6,     6,     9,     4,     7,     5,     8,
  765.      9,     9,     6,     9,     6,     9,     3,     6,     2,     4,
  766.      5,     1,     4,     7,     4,     4,     4,     1,     3,     3,
  767.      3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
  768.      3,     3,     3,     3,     3,     5,     3,     3,     3,     2,
  769.      1,     1,     1,     1,     3,     3,     0,     4,     0,     6,
  770.      2,     4,     2,     3,     2,     2,     1,     4,     4,     2,
  771.      5,     3,     2,     2,     2,     5,     3,     5,     3,     6,
  772.      4,     1,     4,     2,     5,     0,     1,     1,     2,     1,
  773.      2,     0,     2,     2,     2,     3,     3,     3,     3,     2,
  774.      2,     1,     1,     2,     2,     1,     2,     2,     3,     1,
  775.      1,     2,     2,     1,     1,     2,     2,     1,     2,     2,
  776.      3,     1,     2,     1,     1,     1,     1,     4,     4,     1,
  777.      1,     1,     1,     1,     3,     1,     3,     0,     4,     0,
  778.      7,     4,     0,     7,     4,     0,     7,     4,     0,     6,
  779.      1,     3,     1,     4,     8,     1,     3,     1,     2,     3,
  780.      4,     1,     1,     3,     4,     6,     3,     5,     0,     7,
  781.      4,     0,     6,     3,     2,     4,     1,     0,     1,     0,
  782.      1,     1,     2,     5,     2,     2,     2,     2,     2,     2,
  783.      2,     3,     3,     2,     0,     3,     0,     3,     2,     1,
  784.      1,     0,     1,     2,     1,     3,     1,     1,     2,     2,
  785.      2,     3,     1,     1,     1,     2,     2,     1,     0,     1,
  786.      4,     3,     1,     2,     2,     3,     5,     5,     3,     3,
  787.      3,     3,     3,     5,     5,     3,     3,     3,     3,     1,
  788.      2,     2,     3,     3,     0,     1,     3,     4,     6,     4,
  789.      3,     2,     4,     6,     4,     3,     2,     1,     3,     1,
  790.      3,     2,     2,     0,     1,     2,     1,     2,     0,     2,
  791.      0,     2,     5,     5,     3,     5,     4,     3,     3,     5,
  792.      1,     1,     5,     3,     3,     1,     5,     5,     3,     5,
  793.      4,     3,     3,     1,     1,     3,     3,     5,     5,     3,
  794.      5,     3,     3,     3,     4,     3,     1,     1,     2,     2,
  795.      2,     3,     3,     7,     7,     5,     7,     3,     7,     7,
  796.      5,     7,     3,     1,     2,     2,     1,     2,     3,     3,
  797.      2,     1,     3,     3,     2,     5,     3,     4,     3,     4,
  798.      2,     3,     2,     3,     4,     3,     4,     5,     5,     1,
  799.      1,     2,     2,     2,     0,     0,     1,     1,     2,     3,
  800.      1,     2,     2,     5,     5,     0,     6,     1,     1,     2,
  801.      0,     4,     1,     0,     0,     7,     0,     0,     9,     0,
  802.      0,     0,     9,     0,     0,     0,     9,     0,     6,     0,
  803.      5,     0,     7,     0,     4,     2,     2,     2,     3,     6,
  804.      8,    10,    12,     4,     3,     2,     2,     1,     2,     3,
  805.      6,     4,     6,     4,     3,     0,     7,     2,     0,     5,
  806.      3,     1,     2,     3,     3,     2,     2,     1,     0,     4,
  807.      2,     3,     3,     0,     0,     4,     0,     0,     4,     0,
  808.      4,     0,     1,     0,     0,     8,     3,     4,     4,     3,
  809.      4,     6,     6,     0,     1,     0,     1,     1,     0,     1,
  810.      1,     3,     4,     1,     3,     0,     1,     3,     2,     1,
  811.      1,     2,     2,     1,     3,     3,     5,     3,     5,     3,
  812.      3,     1,     1,     2,     1,     0,     1,     0,     2,     4,
  813.      1,     1,     1,     2,     2,     2,     1,     1,     1,     3,
  814.      1,     3,     2,     2,     2,     2,     2,     2,     2,     2,
  815.      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  816.      2,     2,     2,     2,     2,     3,     2,     2,     2,     3,
  817.      2,     3,     2,     2,     3,     2
  818. };
  819.  
  820. static const short yydefact[] = {     3,
  821.      0,     0,     0,   457,   276,   477,   265,   275,   264,     0,
  822.      0,     0,   332,     0,     0,     0,     0,   419,   419,   419,
  823.      0,     0,    74,    17,    58,     0,     5,     6,     0,    11,
  824.     10,     9,     8,   242,   280,   119,     0,     0,   256,     0,
  825.    286,   274,     0,   345,   347,   351,   350,   327,     0,   419,
  826.    474,   277,   458,     4,    56,    57,   419,   476,   236,   616,
  827.    103,   104,   322,   105,   325,     0,   236,    27,     0,   686,
  828.    276,   417,   684,   683,   419,   681,   662,   667,   668,     0,
  829.    674,   673,   659,   660,   658,   677,   666,   663,   664,   665,
  830.    669,   670,   656,   657,   653,   654,   655,   671,   672,   678,
  831.    679,     0,   661,   675,   280,   414,   268,     0,   277,   333,
  832.      0,    18,   635,     0,     0,     0,     0,     0,     0,   236,
  833.    460,   459,   461,     3,     0,     0,   276,     0,     0,   345,
  834.    347,   638,     0,    88,    83,   242,     0,     0,   478,   475,
  835.    117,   118,   127,   436,     0,   419,   419,   431,     0,    55,
  836.      0,     0,   284,   252,   253,   419,   432,   276,   267,   266,
  837.     54,     0,   257,     0,     0,   261,   281,   282,   258,   260,
  838.    283,     0,    49,   104,   335,   336,   337,   338,   341,   349,
  839.    105,   107,   106,   108,   339,   344,   340,   352,   352,   368,
  840.      0,    66,   419,     0,   421,     0,     0,    69,     0,   419,
  841.    616,   638,   201,   417,   203,   240,   236,   236,     0,     0,
  842.    142,   238,   217,   237,     0,   236,   132,   131,   236,   133,
  843.    134,     0,   236,   135,     0,   121,   236,   172,   178,   124,
  844.    141,     0,   236,   204,     0,   236,   414,   268,   123,   414,
  845.      0,   202,   620,   621,   636,   636,     0,   617,   624,   324,
  846.      0,   319,     0,     0,   136,   137,     0,     0,    26,   680,
  847.    676,   682,   419,     0,   419,   419,   482,   616,   421,   685,
  848.    415,   270,   272,   418,   269,     0,     0,   420,   473,   454,
  849.    453,   452,     0,    14,     0,     7,     7,    43,    42,   638,
  850.      0,    29,    33,    37,    31,    35,    38,   288,    82,    89,
  851.     86,     0,   236,   242,     0,     0,     0,   505,    59,   511,
  852.     61,   352,   128,   114,   254,   255,     0,     0,   419,   419,
  853.    444,     0,     0,   445,    64,    53,    67,     0,    52,   419,
  854.      0,   421,     0,    51,   259,    50,    65,    68,   263,   262,
  855.    638,   287,   342,   343,   353,   346,   348,   390,   236,     0,
  856.    395,   395,     0,     0,   373,   638,   450,     0,   264,     0,
  857.    138,   256,     0,   456,     0,   236,   642,   643,     0,   641,
  858.      0,     0,   647,   649,   639,     0,     0,   299,   463,   468,
  859.    462,   638,     0,    72,   236,     0,     0,   149,   141,     0,
  860.      0,   151,   236,   236,   236,   223,     0,   239,     0,   224,
  861.    148,   145,   144,     0,     0,     0,     0,   146,   236,   116,
  862.    147,   236,   236,     0,   236,   236,   236,   236,   236,   236,
  863.    236,   236,   236,   236,   236,   236,   236,   236,   236,   236,
  864.    236,   211,   215,   216,   244,   245,   243,   236,   236,   236,
  865.    232,     0,   236,   169,   241,   109,   110,   111,     0,   213,
  866.      0,   113,   200,   412,   220,   236,   413,   110,   111,   225,
  867.    414,   414,   419,   619,   414,   623,   622,     0,   410,   330,
  868.    408,   321,     0,     0,   278,     0,   279,    28,   491,   416,
  869.    485,   481,     0,     0,     0,     0,   493,     0,   419,   616,
  870.    421,   273,   271,     0,     0,    20,     0,    25,   115,    13,
  871.     16,    15,   288,    48,    44,    47,    45,    46,    41,     0,
  872.      0,     0,     0,   299,   104,    94,   236,     0,    90,     0,
  873.    119,     0,     0,   312,     0,   308,    84,     0,     0,    60,
  874.     63,   512,   513,   506,   125,   435,   434,     0,     0,   419,
  875.    419,     0,   419,     0,   421,   429,   299,   285,   425,     0,
  876.      0,     0,   428,     0,   419,   419,   288,   365,   364,   363,
  877.    120,   354,   355,   358,   357,     0,     0,   392,   391,   457,
  878.    419,   236,   236,   616,   638,     0,   396,   419,   616,   638,
  879.      0,     0,   326,   375,   374,    81,   419,   419,   419,   455,
  880.    422,   644,   645,   646,     0,   648,   651,     0,     0,     0,
  881.    298,   419,     0,   419,     0,    73,   419,     0,     0,     0,
  882.      0,   276,     0,   143,   222,   236,   206,   205,     0,   236,
  883.    122,   198,   197,   608,   607,     0,   195,   194,   192,   193,
  884.    191,   190,   189,   186,   187,   188,   184,   185,   179,   180,
  885.    181,   182,   183,   199,     0,     0,   234,   236,   167,   236,
  886.    268,   153,   236,     0,   112,   229,   236,   214,     0,   227,
  887.    236,     0,   419,   419,   616,   632,   633,   630,   631,   638,
  888.    618,   626,   637,   628,   625,   236,   331,     0,   330,    12,
  889.    140,   139,   484,   480,   419,   419,   479,   483,   419,   492,
  890.    487,     0,   489,     0,   334,     0,    19,   341,   339,   344,
  891.    299,    30,    34,    32,    36,     0,     0,    92,     0,    96,
  892.    236,    98,   236,     0,   100,   236,   201,   276,   236,   309,
  893.      0,   313,     0,    85,    62,     0,     0,   507,   508,     0,
  894.      0,     0,     0,     0,   443,   439,     0,     0,     0,   442,
  895.      0,   292,   419,   419,   419,   427,     0,     0,   299,   127,
  896.      0,   361,   367,   366,   360,   359,   388,   389,   236,   379,
  897.    380,   638,   299,   402,     0,   288,     0,   376,   386,   387,
  898.    638,     0,   382,   288,   381,   383,     0,   393,   394,   451,
  899.    448,   449,   650,     0,   640,     0,     0,   296,   466,     0,
  900.      0,     0,   471,     0,     0,     0,   638,   218,   150,   152,
  901.    175,   177,   176,     0,   208,     0,   173,   236,   209,   212,
  902.      0,     0,     0,   414,   414,   157,   236,     0,   170,   236,
  903.      0,   231,   236,   219,     0,   634,   485,   481,   419,    70,
  904.      0,     0,   411,   409,   323,     0,   496,   494,   490,   419,
  905.    488,    21,    24,     0,     0,    39,    93,    91,     0,     0,
  906.    102,   236,     0,     0,     0,     0,   310,   306,     0,     0,
  907.    201,     0,   524,   527,     0,     0,   236,     0,     0,     0,
  908.    236,     0,   604,   578,     0,     0,     0,     0,   236,     0,
  909.    558,     0,   519,     0,     0,     0,   501,   518,   523,   500,
  910.      0,   236,     0,   584,     0,   530,   534,   509,     0,   433,
  911.    430,   447,   446,   419,   419,   419,   441,   290,   426,   423,
  912.    424,   499,   498,   295,   362,   356,   299,    76,   401,   419,
  913.    299,   457,   236,   236,   638,   397,    79,   419,     0,   652,
  914.    289,     0,     0,   419,   419,   419,   419,   419,   419,    71,
  915.    221,   328,   196,   129,     0,   233,     0,     0,     0,     0,
  916.    159,   171,   228,     0,   226,   627,   629,   320,   497,   495,
  917.    486,    23,    40,    95,    97,     0,    99,     0,   317,   236,
  918.    311,     0,   314,     0,   510,   504,   515,   576,   236,     0,
  919.    236,     0,   236,     0,   544,   546,   547,   548,     0,   236,
  920.      0,   605,     0,   642,   643,     0,     0,   579,     0,   585,
  921.    559,     0,   577,   520,   250,   638,     0,   251,     0,     0,
  922.    638,     0,   514,   503,   502,   521,   568,     0,     0,   557,
  923.    556,     0,   573,     0,   584,     0,   581,     0,     0,     0,
  924.      0,   440,   437,   438,     0,   293,   400,   377,   378,   638,
  925.    398,   236,   299,   407,   288,   384,   385,   638,   303,     0,
  926.    301,   297,   467,   464,   465,   472,   469,   470,     0,     0,
  927.    129,   210,   235,   168,     0,   268,   154,   163,   165,   155,
  928.    230,   101,   315,     0,     0,   307,     0,   236,     0,     0,
  929.    505,   597,     0,   600,     0,   540,   236,   236,   549,     0,
  930.    555,     0,   565,     0,   236,   505,     0,   236,   505,   560,
  931.    247,   288,   246,   249,   248,   288,   236,   571,     0,   575,
  932.    574,   569,   583,   582,     0,     0,   126,   291,     0,    75,
  933.      0,   299,   406,   299,    78,     0,     0,     0,   174,   130,
  934.    414,   414,   158,   236,     0,   421,   421,     0,   318,   516,
  935.      0,   528,   601,   599,     0,   598,   538,   236,     0,   545,
  936.    554,     0,   564,     0,   580,   562,     0,   586,   522,   566,
  937.    594,   531,   535,   294,   399,   405,   403,     0,     0,   302,
  938.    300,     0,     0,     0,   160,     0,     0,   316,   236,   525,
  939.      0,     0,     0,   236,   541,   542,   609,     0,     0,     0,
  940.    587,   570,     0,     0,     0,     0,   304,   164,   166,   156,
  941.    161,   162,   517,   236,   236,   603,   602,   539,   236,     0,
  942.      0,   610,   611,   550,   563,   561,     0,     0,     0,     0,
  943.    404,     0,   526,     0,   543,   236,   609,     0,     0,   590,
  944.    567,   588,     0,   532,   536,     0,     0,     0,     0,   551,
  945.    612,     0,     0,   592,   236,   236,     0,   529,   613,     0,
  946.      0,   591,   589,   593,     0,   533,   537,   305,   614,     0,
  947.    552,   595,     0,     0,     0,   615,   553,   596,     0,     0,
  948.      0
  949. };
  950.  
  951. static const short yydefgoto[] = {  1269,
  952.      1,     2,   125,   501,    27,    28,    29,   277,   495,   496,
  953.     30,    69,    31,   510,   512,   511,   513,   509,    32,    33,
  954.     34,   350,   135,   136,   137,   300,   518,   519,   560,   186,
  955.    450,    35,    36,   143,   750,   225,   226,   313,   730,   314,
  956.   1062,   227,   882,   255,   228,   395,   229,   256,   231,   406,
  957.    944,   442,   232,   233,   234,   138,   235,   236,   883,   341,
  958.    884,   169,   885,   237,   272,   390,   273,   152,    40,   378,
  959.    153,  1035,   342,  1119,    41,   933,   601,  1050,  1051,   859,
  960.    722,   723,    42,   473,   251,  1060,   678,    43,    44,    45,
  961.     46,   188,   189,    47,    48,   346,   562,   563,   564,   565,
  962.    566,   191,   353,   354,   355,   576,   577,   926,   470,   471,
  963.    239,   666,   240,   113,   365,   366,   154,   323,   155,   241,
  964.     51,   109,   271,   485,   157,   886,   887,   534,   727,   728,
  965.    729,   309,   888,   889,  1179,   890,  1107,   980,  1204,   981,
  966.   1181,  1029,  1193,  1245,  1030,  1194,  1246,  1184,  1148,  1209,
  967.   1088,  1191,  1161,   891,   892,   893,  1096,   894,  1025,   895,
  968.   1099,  1217,  1243,  1242,  1255,  1192,  1265,   896,   897,   993,
  969.    626,  1211,  1212,  1213,  1260,   486,   248,   249,   668,   199,
  970.    461,   674,   198,   374,   597,   375,   598,   242
  971. };
  972.  
  973. static const short yypact[] = {   198,
  974.   1834,  4824,   391,-32768,   583,-32768,-32768,-32768,-32768,   286,
  975.    133,   135,-32768,   261,  3239,   203,   169,-32768,-32768,-32768,
  976.    380,   272,-32768,-32768,-32768,   144,-32768,   293,  5180,-32768,
  977. -32768,-32768,-32768,   195,   309,   325,   850,  6231,   970,    32,
  978. -32768,-32768,  1232,-32768,-32768,-32768,-32768,   329,  1576,-32768,
  979. -32768,   315,-32768,-32768,-32768,-32768,-32768,-32768,  5817,  2205,
  980. -32768,-32768,   370,-32768,   365,   441,  5817,-32768,    72,-32768,
  981.    418,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   437,
  982. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  983. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  984. -32768,   399,-32768,-32768,   524,   774,  1155,  1384,-32768,-32768,
  985.    441,-32768,   551,   380,  1094,  1094,    30,   505,   312,  5817,
  986. -32768,-32768,-32768,   467,  5129,   527,    30,   710,  6360,    52,
  987.    201,   653,   619,-32768,   679,    31,   340,   340,-32768,-32768,
  988. -32768,-32768,   507,    30,  1379,-32768,-32768,-32768,  1904,-32768,
  989.    103,   101,-32768,   577,   610,-32768,-32768,   881,-32768,-32768,
  990. -32768,   558,   970,   161,  6391,-32768,-32768,-32768,  1087,-32768,
  991. -32768,   710,-32768,   418,-32768,-32768,-32768,-32768,-32768,-32768,
  992.    272,-32768,-32768,-32768,-32768,-32768,   602,   649,   649,-32768,
  993.   5013,-32768,-32768,  3331,   591,   109,   634,   216,   947,-32768,
  994.   2205,   100,-32768,   641,-32768,-32768,  6059,  6135,   700,   702,
  995. -32768,-32768,-32768,  1809,   146,  5900,-32768,-32768,  5900,-32768,
  996. -32768,  4281,  5900,-32768,   434,-32768,  5900,-32768,-32768,  5185,
  997.   1784,   749,  5485,   793,    77,  5900,   774,  1241,-32768,  6483,
  998.     93,-32768,-32768,-32768,-32768,   426,   716,    39,   753,-32768,
  999.    146,   724,    57,   718,   788,  6617,   729,   859,-32768,   551,
  1000. -32768,-32768,-32768,   624,-32768,-32768,-32768,  6451,   756,-32768,
  1001.    628,  1155,-32768,-32768,  1155,    60,   761,-32768,-32768,   610,
  1002.    610,-32768,   448,-32768,  2019,-32768,-32768,-32768,-32768,   496,
  1003.    307,-32768,-32768,-32768,-32768,-32768,-32768,   841,-32768,    95,
  1004. -32768,  4364,  5900,-32768,   340,   340,   820,   766,-32768,-32768,
  1005. -32768,   649,-32768,-32768,   577,   610,   497,   497,-32768,-32768,
  1006. -32768,  1998,   320,-32768,-32768,-32768,   216,   710,-32768,-32768,
  1007.   3438,   770,  1584,-32768,  1087,-32768,-32768,   216,-32768,-32768,
  1008.    496,-32768,-32768,-32768,   275,-32768,-32768,-32768,  5900,   633,
  1009.   1502,  2144,    36,  4897,-32768,   653,   551,   779,   641,    23,
  1010.   6661,  1083,   798,-32768,   795,  5900,-32768,    30,    75,-32768,
  1011.    309,   870,-32768,-32768,   856,  1698,   832,   894,    30,   272,
  1012. -32768,   100,   828,-32768,  5900,   641,  4281,-32768,   765,   511,
  1013.   4281,-32768,  5900,  5983,  5900,-32768,   390,-32768,   528,-32768,
  1014. -32768,-32768,-32768,   840,   844,   820,   846,-32768,  5817,-32768,
  1015. -32768,  5900,  5900,  4447,  5900,  5900,  5900,  5900,  5900,  5900,
  1016.   5900,  5900,  5900,  5900,  5900,  5900,  5900,  5900,  5900,  5900,
  1017.   5900,-32768,-32768,-32768,-32768,-32768,-32768,  5900,  5900,  5900,
  1018.    748,   548,  4779,-32768,-32768,-32768,    30,   272,   146,   596,
  1019.     93,-32768,-32768,-32768,-32768,  5900,-32768,-32768,-32768,   645,
  1020.    322,   322,-32768,-32768,  1711,-32768,-32768,  4364,   877,   903,
  1021. -32768,-32768,   146,   861,-32768,  4696,-32768,-32768,   551,   628,
  1022.    517,   517,   471,   420,   860,   865,-32768,   867,-32768,  2205,
  1023.    871,-32768,  1155,   954,   698,-32768,  1512,-32768,-32768,-32768,
  1024. -32768,-32768,   841,-32768,-32768,-32768,-32768,-32768,-32768,   887,
  1025.    893,   899,   901,   894,    30,-32768,  5900,   472,-32768,   655,
  1026.    742,   146,   689,-32768,  3866,  6661,-32768,    55,   340,-32768,
  1027. -32768,-32768,-32768,   977,-32768,   577,   577,   497,   497,-32768,
  1028. -32768,   445,-32768,  3545,   906,-32768,   894,-32768,   551,   913,
  1029.    244,   922,-32768,   918,-32768,-32768,   841,-32768,-32768,-32768,
  1030. -32768,   986,-32768,-32768,  1035,   403,  6544,-32768,-32768,   991,
  1031.    782,  5900,  5900,  6276,   496,   179,-32768,   813,  6276,   721,
  1032.    211,   992,-32768,-32768,-32768,   817,-32768,-32768,-32768,-32768,
  1033. -32768,-32768,-32768,-32768,   109,-32768,-32768,   249,   441,   967,
  1034.    998,-32768,  3652,-32768,  3759,-32768,-32768,   282,   948,   951,
  1035.    955,   189,   958,-32768,-32768,  5900,-32768,-32768,   965,  5568,
  1036. -32768,  6661,  6661,-32768,-32768,  1011,  6697,  6712,  6572,  2413,
  1037.   3391,  2064,  2095,  2250,  2250,  2250,   962,   962,    20,    20,
  1038. -32768,-32768,-32768,-32768,   310,   961,   988,  5900,-32768,  5817,
  1039.   1372,  1021,  5900,   966,-32768,-32768,  5900,   690,   314,-32768,
  1040.   5900,   912,-32768,-32768,  6180,-32768,   610,-32768,-32768,   100,
  1041. -32768,  1023,-32768,  1027,-32768,  5900,   146,   976,   903,-32768,
  1042. -32768,  6661,   628,   628,-32768,-32768,-32768,-32768,-32768,-32768,
  1043.    551,   979,-32768,   978,-32768,   761,-32768,  1009,   699,  1031,
  1044.    894,-32768,-32768,-32768,-32768,   307,   326,-32768,    95,-32768,
  1045.   5900,-32768,  5900,   691,-32768,  5900,  1038,   855,  5900,-32768,
  1046.   1053,-32768,   172,-32768,-32768,   146,  3040,   977,-32768,   329,
  1047.    481,   483,   497,   497,-32768,   551,  1005,   341,  1008,-32768,
  1048.   1004,  1061,-32768,-32768,-32768,-32768,   497,   497,   894,   507,
  1049.    275,-32768,-32768,-32768,-32768,  1035,-32768,-32768,  5900,-32768,
  1050. -32768,   100,  6594,  6661,  1013,   826,  1902,-32768,-32768,-32768,
  1051.    100,  1016,-32768,   848,-32768,-32768,  5071,-32768,-32768,   551,
  1052.    551,   551,-32768,  1698,-32768,    67,  1040,-32768,   551,  1017,
  1053.    362,  1020,   551,  1022,   374,  1026,   100,-32768,-32768,-32768,
  1054. -32768,-32768,-32768,   409,-32768,  4198,-32768,  5900,-32768,-32768,
  1055.    441,   196,   411,   774,  6483,-32768,  5900,  4364,-32768,  5900,
  1056.    433,-32768,  5900,-32768,   442,   610,   603,   603,   471,-32768,
  1057.   4364,  4364,  6661,-32768,-32768,  1028,   517,   517,   551,-32768,
  1058. -32768,-32768,-32768,   254,   307,-32768,-32768,-32768,   466,   482,
  1059. -32768,  5900,   526,  6522,  4364,  3949,-32768,-32768,   225,   831,
  1060.   1081,  1055,-32768,-32768,  1056,  1058,  5900,  1088,  1037,  1041,
  1061.   5651,   158,  1138,-32768,   304,  1100,   109,  1101,  5734,   346,
  1062. -32768,  1047,-32768,  1395,  6344,  2362,-32768,-32768,  1137,-32768,
  1063.   2255,  5275,  2505,-32768,  2612,-32768,-32768,-32768,  5013,-32768,
  1064. -32768,   577,   577,-32768,-32768,-32768,-32768,-32768,   551,   551,
  1065.    551,   577,   577,  1103,-32768,-32768,  6594,-32768,-32768,   834,
  1066.    894,  1105,  5900,  5900,   496,-32768,-32768,   836,  4955,-32768,
  1067. -32768,  1157,  4364,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  1068. -32768,  1111,  6681,   507,    78,-32768,  1987,  1063,  1066,   530,
  1069. -32768,-32768,-32768,   533,-32768,-32768,-32768,-32768,   628,   628,
  1070.    551,-32768,-32768,-32768,-32768,   542,-32768,  4364,-32768,  5900,
  1071. -32768,  1116,-32768,   146,-32768,-32768,-32768,-32768,  5900,  1104,
  1072.   5380,  4032,  5900,   905,-32768,-32768,-32768,-32768,  1086,  5900,
  1073.   1089,-32768,  1110,  1090,   167,  1091,   708,-32768,   711,-32768,
  1074. -32768,  1093,-32768,-32768,-32768,   819,   230,-32768,  1095,   277,
  1075.     33,  1098,-32768,-32768,-32768,-32768,-32768,   109,   146,-32768,
  1076. -32768,   880,-32768,  2719,-32768,   897,-32768,  2826,  4530,  4530,
  1077.     37,   551,   551,   551,  4364,-32768,-32768,-32768,-32768,   100,
  1078.   1146,  5900,  6594,  6661,   841,-32768,-32768,   100,  1122,   547,
  1079. -32768,-32768,   551,   551,   551,   551,   551,   551,  4115,  1102,
  1080.    507,-32768,-32768,-32768,  1698,  1686,  1154,  1127,  1128,-32768,
  1081. -32768,-32768,-32768,  6639,  4364,-32768,  1112,  5900,  1197,  1113,
  1082.   1109,-32768,  1115,-32768,  1117,-32768,  5900,  5380,-32768,  1118,
  1083. -32768,   441,-32768,  1120,  5900,-32768,  1121,  5900,-32768,-32768,
  1084. -32768,   841,-32768,-32768,-32768,   841,  5380,   856,  1167,-32768,
  1085. -32768,-32768,-32768,-32768,  1125,  1126,-32768,-32768,  4364,-32768,
  1086.   4364,  6594,-32768,   894,-32768,   743,  1157,  1123,-32768,-32768,
  1087.    774,  6483,-32768,  5900,  4364,-32768,-32768,  4364,-32768,-32768,
  1088.   1131,-32768,-32768,-32768,  3147,-32768,-32768,  5380,  1177,-32768,
  1089. -32768,    76,-32768,   563,-32768,-32768,   565,-32768,-32768,-32768,
  1090. -32768,-32768,-32768,-32768,-32768,-32768,  1169,  1196,  1144,-32768,
  1091. -32768,  1147,  1148,   566,-32768,  1145,  1150,-32768,  5380,-32768,
  1092.   1170,   915,  2933,  5380,-32768,-32768,  1245,  1156,  1158,  1161,
  1093. -32768,  1172,  4613,  4613,  4364,  1250,-32768,-32768,-32768,-32768,
  1094. -32768,-32768,-32768,  5380,  5900,-32768,-32768,-32768,  5380,  1186,
  1095.    333,  1219,-32768,-32768,-32768,-32768,   736,  1189,  1171,  1176,
  1096. -32768,  1223,-32768,  1180,-32768,  5900,  1245,  1181,  1245,-32768,
  1097. -32768,-32768,  1698,-32768,-32768,  1279,  1188,  1207,   367,-32768,
  1098. -32768,   820,   820,   146,  5380,  5380,  1208,-32768,-32768,  1302,
  1099.   1209,-32768,-32768,-32768,  1211,-32768,-32768,-32768,-32768,   571,
  1100. -32768,-32768,  1305,  1214,   820,-32768,-32768,-32768,  1321,  1322,
  1101. -32768
  1102. };
  1103.  
  1104. static const short yypgoto[] = {-32768,
  1105.   1200,-32768,-32768,  1043,  1323,-32768,-32768,-32768,-32768,   632,
  1106. -32768,-32768,-32768,-32768,-32768,-32768,-32768,  -665,  1204,  1210,
  1107. -32768,-32768,-32768,-32768,  1202,-32768,-32768,   631,    -7,   845,
  1108.   -197,    -5,   -26,-32768,-32768,  1221,   936,  -879,-32768,   598,
  1109.    288,-32768,   -21,   -99,   814,-32768,  -159,   878,  -185,-32768,
  1110. -32768,-32768,-32768,  -179,   -64,   -84,-32768,-32768,   368,    -8,
  1111.    799,  1194,  1076,    -9,  1077,    -1,    15,   474,   -19,  -287,
  1112. -32768,-32768,  1034,-32768,-32768,-32768,  -445,-32768,   224,-32768,
  1113.    -20,   557,   -24,-32768,-32768,-32768,   686,  -244,  1337,  1339,
  1114. -32768,-32768,-32768,-32768,-32768,  -126,-32768,   618,   804,  -523,
  1115. -32768,   642,   475,   594,  -334,  1024,-32768,-32768,   904,   704,
  1116.    -54,   -94,    -6,  1566,  -248,-32768,   -58,  1065,  1042,   509,
  1117. -32768,     6,  -219,-32768,  -125,  -842,  -859,  -321,-32768,-32768,
  1118.    662,   -82,  -133,-32768,-32768,   386,-32768,-32768,-32768,-32768,
  1119. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  1120. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   375,-32768,
  1121. -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
  1122.   -968,   174,-32768,   176,-32768,   -35,-32768,  -238,   190,     8,
  1123.   1163,-32768,   137,  -577,   636,   394,-32768,  1318
  1124. };
  1125.  
  1126.  
  1127. #define    YYLAST        6784
  1128.  
  1129.  
  1130. static const short yytable[] = {    39,
  1131.     39,   253,    65,   310,   310,   106,    52,    52,   108,   105,
  1132.    514,   270,   257,   107,   171,   118,   187,   783,   164,   585,
  1133.    488,   389,   389,   324,   247,   114,  1014,    39,   151,   162,
  1134.    389,   118,   497,   389,   398,   185,   163,   389,   498,   547,
  1135.    846,   389,   756,   460,   480,   254,   276,   389,   484,   464,
  1136.   1024,   306,  1028,   170,   105,   311,   402,   238,    39,   403,
  1137.   1115,  1116,   347,   408,  1061,   238,   445,   411,   706,   445,
  1138.    582,   582,   476,   444,    58,   193,   445,   592,   593,   446,
  1139.    447,   172,   171,   554,   134,   445,   315,   445,   465,   429,
  1140.    430,   431,   466,    59,   360,   446,   458,    61,   515,     6,
  1141.    292,   742,   105,   325,   476,   293,   275,   278,   118,   118,
  1142.    118,   367,   368,     6,   194,   195,    15,   196,   238,   290,
  1143.    291,   258,   118,    39,   197,   588,  -638,   163,  -638,  1187,
  1144.     52,   467,    15,  -638,   304,   173,  -253,   516,   171,   118,
  1145.    583,  1117,   454,   118,   171,   457,   121,   122,    61,    62,
  1146.    328,  -638,  -638,   369,  -638,   294,  -638,   724,   363,   474,
  1147.     61,    62,   494,   333,  1014,   383,   118,   407,  1014,   931,
  1148.    448,   310,   310,   532,   843,   259,   517,   170,  1188,   963,
  1149.   1063,  1061,   449,   340,   196,   535,   459,   196,   181,    39,
  1150.    371,   197,   362,   118,   197,   105,   324,    -1,   449,    39,
  1151.    405,   373,    22,   528,   329,   370,   326,   401,   105,   389,
  1152.    172,    58,   399,   171,    66,   701,    67,   398,   133,   529,
  1153.    238,   856,   530,   531,  1219,  1220,   672,   990,   767,   118,
  1154.     59,   551,   112,    58,   105,   614,   110,   123,   275,    64,
  1155.    105,   377,   694,   469,   163,   476,  -288,   171,   134,   295,
  1156.    171,    64,    59,   658,   296,   845,    61,   174,   536,   537,
  1157.    767,   683,   684,    68,   336,  -288,    39,  -288,   298,   749,
  1158.   -104,   105,   619,   521,   974,    39,   857,    61,   174,   328,
  1159.    558,   527,   768,    39,   111,   608,   492,   327,    61,    62,
  1160.     52,   802,   520,   476,   371,   552,   741,   997,   784,   999,
  1161.    946,   338,  1183,   914,   297,   523,   994,   995,     6,   559,
  1162.    171,   118,   118,   139,   775,   776,   118,   919,   561,  -288,
  1163.    962,   596,   118,  1014,     4,   117,   172,   118,   975,   362,
  1164.    504,   476,   609,  1103,    63,   120,   610,   171,   384,   645,
  1165.    307,   124,   575,   580,   591,   118,   744,   181,   369,   340,
  1166.    163,   785,    39,   140,   193,   505,   659,   200,   506,   476,
  1167.    507,    15,   543,   476,   263,   405,    18,   662,   181,   405,
  1168.    105,   611,   613,   141,   107,   476,   170,   190,   142,    64,
  1169.   1105,   663,     4,   117,   798,   238,  1227,   652,   308,   238,
  1170.    476,   664,   625,   194,   195,   310,   201,   181,   267,  1003,
  1171.    370,   544,   545,   665,   269,    61,   174,   238,   753,   120,
  1172.    508,   476,   809,   252,   282,    22,   824,   707,   646,    15,
  1173.   1250,   654,   546,   476,    18,   212,   503,    26,   847,    71,
  1174.      6,   159,     8,   160,   397,  1228,   105,   754,    10,    19,
  1175.    651,   655,   480,   905,   738,   484,   725,   675,   324,    20,
  1176.    206,   497,    12,   324,   692,   118,   118,   498,   476,    13,
  1177.    476,    21,   489,    39,   935,   469,    16,   389,   171,  1251,
  1178.    187,  1037,   708,    22,   250,  1041,   938,   557,   921,   731,
  1179.    732,    59,   476,   409,   105,    26,   921,   543,    39,   699,
  1180.    261,   476,   586,   819,    55,    56,   181,   409,   410,     4,
  1181.    144,   490,   491,   791,   278,   795,   262,   492,   739,    50,
  1182.     50,   941,   499,   947,   714,   476,   804,   721,   606,    22,
  1183.    -87,   709,   687,   330,   278,   330,   544,   545,   139,    50,
  1184.    685,   476,   118,   118,   786,   953,    15,    50,   765,   561,
  1185.    686,    18,   362,   772,   955,   156,   156,   735,   812,   140,
  1186.    813,    71,     6,   455,     8,    72,   146,   821,   278,   263,
  1187.     10,   825,   331,   332,   331,   332,   147,   792,   964,   796,
  1188.    615,   284,    39,   148,    12,   476,   265,    39,   149,   476,
  1189.    196,    13,   476,   900,   965,   901,   266,   197,    16,   371,
  1190.     22,   476,   456,   267,   585,   649,  1127,  1123,   268,   269,
  1191.    373,   362,    26,   362,   312,     4,   117,   683,   684,   616,
  1192.    278,   849,   476,   850,   476,   476,   853,   959,   960,   330,
  1193.   1263,   299,    50,    50,    50,    57,   171,    58,   967,   650,
  1194.    288,   289,  1070,    50,   389,  1071,   156,   156,   656,  1232,
  1195.    814,    22,    15,   815,  1072,   263,    59,    18,   238,  1128,
  1196.    343,   669,   193,   156,   673,   344,   118,   156,   331,   332,
  1197.    952,   334,   663,    39,    60,  1189,   263,  1190,  1200,   469,
  1198.    489,   561,   664,  1264,   902,   903,  1166,   657,  1167,   267,
  1199.    156,   568,   521,   265,   665,   269,   569,   660,   912,   913,
  1200.    105,   194,   195,   266,    39,   193,    22,   710,   364,    50,
  1201.    267,   520,   345,   371,   372,   268,   269,    50,    26,   490,
  1202.    491,   766,     4,   144,   523,   376,   774,   950,   858,   948,
  1203.    949,   301,   385,   954,   561,   362,   661,   118,   118,   596,
  1204.    302,   715,   822,   851,   194,   195,   711,   196,   367,   368,
  1205.      6,   118,   118,   451,   197,  1168,   945,   696,   -22,    15,
  1206.   1094,  1169,   966,  1097,    18,   145,  1230,  1124,   925,  1145,
  1207.    303,   118,   697,   -22,    71,     6,     7,     8,     9,   146,
  1208.    716,   823,   852,    10,  1155,    39,   483,  1158,   105,   147,
  1209.    369,   393,   107,   394,   712,   441,   148,    12,   647,  1095,
  1210.    141,   149,  1098,    50,    13,   142,   648,   951,   721,    37,
  1211.     37,    16,   445,    22,   468,   196,   830,   432,   522,   105,
  1212.    956,   957,   197,   275,   547,    26,   263,   561,   463,   264,
  1213.    475,   118,   118,   713,   773,   156,   156,   128,   472,    22,
  1214.    156,   477,   370,   265,   969,   973,   156,   476,   433,   434,
  1215.   1231,    50,   435,   266,   437,   984,   439,   440,   972,   989,
  1216.    267,   377,     4,   144,    22,   268,   269,  1002,   245,   156,
  1217.    156,   478,    50,   487,   991,  1010,   377,   996,   308,   371,
  1218.    533,   371,   594,   377,   -77,  1006,  1009,   553,   118,   -77,
  1219.    373,   587,   373,   163,   362,   760,   761,  1176,  1177,    15,
  1220.    362,   362,  1067,   362,    18,   145,   -80,    39,   918,    58,
  1221.    589,   -80,   590,   196,  -436,   595,  -436,   927,  -104,   146,
  1222.    197,  -436,  1052,   599,     4,   117,   769,   770,    59,   147,
  1223.    778,   779,  1101,    37,   600,    58,   148,    39,   676,  -436,
  1224.    607,   149,  -436,   940,   976,   977,   230,  1038,  1039,  1046,
  1225.   1047,   105,   617,    22,    59,  1066,   618,  1073,   620,     4,
  1226.    379,    15,   677,   150,   263,    26,    18,  1077,  1086,  1087,
  1227.   1083,  1085,   688,  -436,   680,  -436,  1076,   689,  1090,    50,
  1228.     50,   663,  -436,    50,   690,   166,   167,   168,   693,   362,
  1229.    362,   664,    10,   976,  1110,  -436,    15,   695,   267,   351,
  1230.    702,    18,   245,   665,   269,  1154,   703,   230,  1157,   245,
  1231.    976,  1113,   704,    13,   705,    22,    19,   625,   625,   726,
  1232.     16,  1109,   371,   740,  1118,   743,    20,    26,   976,  1206,
  1233.    388,   392,   362,   373,   745,   746,   362,  1152,    21,   427,
  1234.    428,   429,   430,   431,  1174,   751,  1172,  1173,   973,   752,
  1235.    380,   171,    49,    49,   759,   777,   156,   156,   787,   788,
  1236.    799,   972,    26,   800,  1139,  1131,  1141,   801,  1132,   105,
  1237.    803,  1045,   119,   107,   808,  1149,   245,   805,   810,   811,
  1238.    132,   361,   818,   820,   831,   245,    38,    38,   832,   165,
  1239.    835,   840,   156,    37,   844,   841,   362,   156,   166,   167,
  1240.    168,  -103,   339,   167,   168,    10,     4,   117,  1164,    10,
  1241.   1165,   278,   181,   372,   129,   362,   855,   904,  1252,  1253,
  1242.    906,   907,   908,   453,  1175,   920,    13,  1178,   928,   934,
  1243.     13,   932,   936,    16,   937,   455,   105,    16,   939,   245,
  1244.    275,  1268,   958,    15,   978,   246,   979,   982,    18,   983,
  1245.    986,   985,  1102,   362,   987,   992,   362,  1106,   998,  1000,
  1246.   1004,  1016,   351,    19,  1036,   279,   280,   281,  1042,  1049,
  1247.   1059,   167,   168,    20,   456,  1068,    49,    10,  1069,  1075,
  1248.     50,   625,   625,   829,  1221,    21,  1120,   362,  1244,   526,
  1249.    361,   362,   362,  1224,  1125,  1078,   316,    22,    13,  1089,
  1250.    119,  1092,  1091,  -103,  1093,    16,  1100,  1121,  1104,    26,
  1251.     38,   976,   362,  1126,  1238,  1135,  1129,   362,   361,  1136,
  1252.   1137,   371,  1142,  1144,  1140,  1160,  1143,   522,  1146,  1147,
  1253.   1195,  1151,   373,  1153,  1156,  1171,   567,   105,  1162,  1163,
  1254.   1186,   107,   356,  1180,    61,   174,  1254,   175,   176,   177,
  1255.    381,   156,   156,   362,   362,  1196,  1197,   167,   168,  1198,
  1256.   1199,  1205,  1201,    10,  1210,   156,   156,  1202,  1222,  1214,
  1257.   1218,  1215,   361,   245,  1216,   178,   352,  1226,  1229,   246,
  1258.   1233,  1015,  1236,  1234,    13,   156,   246,  1021,  1235,   179,
  1259.    180,    16,  1237,   455,  1240,    50,   230,  1247,   245,   622,
  1260.    623,  1248,   627,   628,   629,   630,   631,   632,   633,   634,
  1261.    635,   636,   637,   638,   639,   640,   641,   642,   643,  1249,
  1262.   1258,  1259,  1261,  1262,  1266,   644,   361,  1267,    53,    53,
  1263.   1270,  1271,   456,   285,    54,   181,    49,   842,   286,   502,
  1264.    182,   183,   184,   361,   287,    50,    50,   305,    53,   848,
  1265.    283,   700,   245,   246,   621,   526,    53,   915,  1130,  1084,
  1266.   1170,   493,   246,   682,    53,    53,   335,  1007,   280,   281,
  1267.     38,   548,   942,   119,   836,   130,  1079,   131,   916,   755,
  1268.    929,   899,   245,  1031,   381,   581,   679,   245,   167,   168,
  1269.    834,     4,   144,   372,    10,   372,   542,    71,     6,   898,
  1270.      8,   274,   156,   156,   361,   356,    10,     4,   144,  1112,
  1271.   1239,   245,   526,   245,  1241,    13,   246,    50,   462,  1015,
  1272.     12,  1108,    16,  1015,   816,     0,     0,    13,    15,   930,
  1273.      0,   361,     0,    18,    16,     0,     0,     0,     0,   352,
  1274.      0,    53,    53,    53,    15,     0,     0,    50,   146,    18,
  1275.    145,     0,    53,     0,     0,    53,    53,     0,   147,   763,
  1276.    764,     0,     0,   817,   146,   148,     0,     0,     0,     0,
  1277.    149,     0,    53,   245,   147,     0,    53,     0,     0,     0,
  1278.      0,   148,    22,  1150,     0,     0,   149,    22,     0,     0,
  1279.    361,     0,   361,     0,    26,     0,     0,     0,    22,    53,
  1280.      0,     0,  1159,   361,   245,     0,     0,   807,  1005,     0,
  1281.     26,     0,   667,   667,   570,   144,   667,     0,    53,     0,
  1282.      0,     0,     0,     0,    61,   174,    53,   175,   176,   177,
  1283.      0,     0,     0,     0,     0,   361,   372,   361,     0,     0,
  1284.      0,   400,     0,  1185,   361,     0,     0,     0,   361,     0,
  1285.    246,    15,     0,     0,   571,   178,    18,   145,     0,   572,
  1286.      0,     0,   452,   833,     0,   573,     0,     0,   452,   698,
  1287.    180,   146,     0,     0,  1203,   246,     0,     0,  1015,  1208,
  1288.      0,   147,     0,     0,     0,   351,   192,     0,   148,   280,
  1289.    281,     0,     0,   574,   115,   116,     4,   379,   361,  1223,
  1290.    361,     0,     0,   361,  1225,    22,   854,     0,     0,  -638,
  1291.      0,  -638,    53,     0,     0,   181,  -638,    26,     0,     0,
  1292.    182,   183,   184,     0,     0,   119,     0,     0,   193,   246,
  1293.    119,     0,   202,    15,  -638,  -638,     0,  -638,    18,  -638,
  1294.   1256,  1257,     0,     0,    53,    53,   917,     0,     0,    53,
  1295.    260,     0,     0,   555,     0,    53,     0,     0,     0,   246,
  1296.     53,     0,     0,   556,   246,     0,     0,   194,   195,     0,
  1297.    196,     0,     0,     0,     0,    21,     0,   197,    53,    53,
  1298.      0,    53,     0,     0,     0,     0,     0,   380,   246,  -638,
  1299.    246,     0,     0,   526,     0,   943,     0,     0,     0,    26,
  1300.      0,     0,   167,   168,   361,   526,     0,   351,    10,     0,
  1301.    361,    71,     6,   826,     8,    72,   119,     0,   526,   526,
  1302.     10,   317,   318,     4,   127,     6,     7,     8,     9,    13,
  1303.      0,   671,     0,    10,    12,   372,    16,   351,  1133,   361,
  1304.      0,    13,   526,   526,     0,     0,     0,    12,    16,     0,
  1305.    246,     0,     0,     0,    13,     0,     0,     0,     0,     0,
  1306.     15,    16,     0,   263,     0,    18,   662,     0,   357,     0,
  1307.      0,     0,     0,     0,     0,   382,     0,  1134,   452,     0,
  1308.    663,   246,     0,     0,   280,   281,     0,     0,    53,    53,
  1309.    664,     0,    53,     0,     0,     0,     0,   267,   280,   281,
  1310.      0,    22,   665,   269,     0,     0,     0,     0,     0,     0,
  1311.   1043,  1044,     0,     0,    22,     0,     0,     0,     0,     0,
  1312.    526,   396,    71,     6,     0,     8,    26,     0,   356,     0,
  1313.      0,    10,     0,     0,     0,     0,   432,     0,   479,     0,
  1314.    481,   482,     0,    -2,     3,    12,     4,     5,     6,     7,
  1315.      8,     9,    13,     0,   212,   526,    10,  1074,    15,    16,
  1316.      0,     0,   352,   397,     0,    53,    53,   433,   434,    11,
  1317.     12,   435,   436,   437,   438,   439,   440,    13,   280,   281,
  1318.      0,    14,     0,    15,    16,     0,     0,    17,    18,     0,
  1319.      0,     0,     0,     0,   538,   539,     0,     0,     0,     0,
  1320.      0,    53,     0,    19,     0,   549,    53,     0,     0,     0,
  1321.      0,     0,    22,    20,   922,   144,     4,   117,     0,     0,
  1322.      0,     0,   526,     0,     0,    21,     0,     0,     0,  1122,
  1323.      0,     0,     0,     0,     0,     0,  1011,    22,    23,    24,
  1324.      0,     0,     0,     0,     0,     0,   526,    25,     0,    26,
  1325.    356,    15,     0,    15,     0,     0,    18,   145,    18,   923,
  1326.      0,     0,   526,     0,     0,   924,     0,     0,     0,     0,
  1327.      0,   146,     0,   319,     0,     0,     0,     0,     0,     0,
  1328.    356,   147,   361,   320,   352,   361,     0,     0,   148,    53,
  1329.    321,     0,    53,   149,     0,   322,     0,     0,     0,     0,
  1330.     71,     6,     0,     8,    72,    22,   526,    22,   526,    10,
  1331.      4,   117,     0,     0,   352,     0,     0,    26,     0,    26,
  1332.      0,   361,   526,    12,     0,   526,     0,     0,     0,     3,
  1333.     13,     4,     5,     6,     7,     8,     9,    16,   670,     0,
  1334.      0,    10,     0,     0,  1064,     0,     0,    15,     0,     0,
  1335.      0,     0,    18,     0,    11,    12,     0,     0,     0,     0,
  1336.     53,    53,    13,     0,   691,     0,    14,   540,    15,    16,
  1337.      0,     0,    17,    18,    53,    53,     0,   541,  1065,     0,
  1338.      0,     0,   526,     0,   321,     0,     0,     0,    19,   322,
  1339.     22,     0,     0,     0,    53,     0,     0,     0,    20,     0,
  1340.      0,    22,     0,     0,    53,     0,     0,     0,     0,     0,
  1341.     21,     0,     0,    26,     0,   733,   734,     0,   736,     0,
  1342.      0,     0,    22,    23,    24,     0,     0,     0,     0,     0,
  1343.    747,   748,    25,   500,    26,   421,   422,   423,   424,   425,
  1344.    426,   427,   428,   429,   430,   431,   762,     0,     0,     0,
  1345.      0,     0,     0,   771,    53,    53,   570,   158,     6,   159,
  1346.      8,   160,   780,   781,   782,     0,    10,   422,   423,   424,
  1347.    425,   426,   427,   428,   429,   430,   431,   789,     0,   793,
  1348.     12,     0,   797,     0,     0,     0,     0,    13,     0,     0,
  1349.      0,     0,     0,    15,    16,     0,   578,     0,    18,   145,
  1350.      0,   572,     0,     0,     0,     0,     0,   573,     0,     0,
  1351.      0,    53,    53,   146,     0,     0,     0,     0,    71,     6,
  1352.      7,     8,     9,   147,     0,   243,    53,    10,     0,     0,
  1353.    148,     0,     0,     0,     0,   579,     0,     0,   827,   828,
  1354.      0,    12,     0,     0,     0,     0,     0,    22,    13,     0,
  1355.      0,     0,     0,     0,     0,    16,    53,     0,     0,    26,
  1356.    837,   838,     0,     0,   839,  1017,     0,  -572,  -572,  -572,
  1357.   -572,  -572,  -572,  -572,  -572,     0,  -572,  -572,  -572,  -572,
  1358.   -572,  -572,  -572,  -572,  -572,  -572,  -572,  -572,  -572,  -572,
  1359.   -572,  -572,  -572,  -572,  -572,     0,  -572,     0,  -572,     0,
  1360.   -572,  -572,     0,  -572,  -572,  -572,     0,   244,    22,  -572,
  1361.      0,     0,  -572,  -572,     0,     0,     0,     0,   909,   910,
  1362.    911,  -572,     0,     0,  -572,   425,   426,   427,   428,   429,
  1363.    430,   431,  -572,  -572,  -572,     0,     0,     0,  -572,  -572,
  1364.      0,     0,     0,     0,     0,     0,  -572,     0,  -572,     0,
  1365.   1018,  -572,  1019,     0,  -572,  -572,  -572,     0,  -572,     0,
  1366.      0,     0,     0,     0,     0,     0,     0,     0,  -572,  -572,
  1367.   -572,  -572,  1012,     0,   861,   127,     6,     7,     8,   359,
  1368.    205,   206,     0,   207,    10,   862,     0,   863,   864,   865,
  1369.    866,   867,   868,   869,   870,   871,   872,   873,    12,   208,
  1370.    209,   210,     0,   211,     0,    13,     0,   212,  -236,     0,
  1371.    213,    15,    16,     0,     0,   961,   214,     0,     0,   874,
  1372.    308,     0,     0,     0,     0,     0,     0,     0,   215,     0,
  1373.      0,   216,     0,     0,     0,     0,     0,     0,     0,   217,
  1374.    218,   219,     0,     0,     0,   220,   221,     0,     0,     0,
  1375.      0,     0,     0,   222,     0,   875,     0,     0,   876,     0,
  1376.      0,   877,   878,   879,     0,   880,     0,     0,     0,     0,
  1377.      0,     0,     0,     0,     0,   881,  1013,   223,   224,  1032,
  1378.   1033,  1034,   419,   420,   421,   422,   423,   424,   425,   426,
  1379.    427,   428,   429,   430,   431,  1040,     0,     0,     0,     0,
  1380.      0,     0,     0,  1048,     0,     0,     0,     0,     0,  1053,
  1381.   1054,  1055,  1056,  1057,  1058,  1022,     0,   861,   127,     6,
  1382.      7,     8,   359,   205,   206,     0,   207,    10,   862,     0,
  1383.    863,   864,   865,   866,   867,   868,   869,   870,   871,   872,
  1384.    873,    12,   208,   209,   210,     0,   211,     0,    13,     0,
  1385.    212,  -236,     0,   213,    15,    16,     0,     0,     0,   214,
  1386.      0,     0,   874,   308,     0,     0,     0,     0,     0,     0,
  1387.      0,   215,     0,     0,   216,     0,     0,     0,     0,     0,
  1388.      0,     0,   217,   218,   219,     0,     0,     0,   220,   221,
  1389.      0,     0,     0,     0,     0,     0,   222,     0,   875,     0,
  1390.      0,   876,     0,     0,   877,   878,   879,     0,   880,     0,
  1391.      0,     0,     0,     0,     0,     0,     0,     0,   881,  1023,
  1392.    223,   224,  1026,     0,   861,   127,     6,     7,     8,   359,
  1393.    205,   206,     0,   207,    10,   862,     0,   863,   864,   865,
  1394.    866,   867,   868,   869,   870,   871,   872,   873,    12,   208,
  1395.    209,   210,     0,   211,     0,    13,     0,   212,  -236,     0,
  1396.    213,    15,    16,     0,     0,     0,   214,     0,     0,   874,
  1397.    308,     0,     0,     0,     0,     0,     0,     0,   215,     0,
  1398.      0,   216,     0,     0,     0,     0,     0,     0,     0,   217,
  1399.    218,   219,     0,     0,     0,   220,   221,     0,     0,     0,
  1400.      0,     0,     0,   222,     0,   875,     0,     0,   876,     0,
  1401.      0,   877,   878,   879,     0,   880,     0,     0,     0,     0,
  1402.      0,     0,     0,     0,     0,   881,  1027,   223,   224,  1012,
  1403.      0,   861,   127,     6,     7,     8,   359,   205,   206,     0,
  1404.    207,    10,   862,     0,   863,   864,   865,   866,   867,   868,
  1405.    869,   870,   871,   872,   873,    12,   208,   209,   210,     0,
  1406.    211,     0,    13,     0,   212,  -236,     0,   213,    15,    16,
  1407.      0,     0,     0,   214,     0,     0,   874,   308,     0,     0,
  1408.      0,     0,     0,     0,     0,   215,     0,     0,   216,     0,
  1409.      0,     0,     0,     0,     0,     0,   217,   218,   219,     0,
  1410.      0,     0,   220,   221,     0,     0,     0,     0,     0,     0,
  1411.    222,     0,   875,     0,     0,   876,     0,     0,   877,   878,
  1412.    879,     0,   880,     0,     0,     0,     0,     0,     0,     0,
  1413.      0,     0,   881,  1111,   223,   224,  1012,     0,   861,   127,
  1414.      6,     7,     8,   359,   205,   206,     0,   207,    10,   862,
  1415.      0,   863,   864,   865,   866,   867,   868,   869,   870,   871,
  1416.    872,   873,    12,   208,   209,   210,     0,   211,     0,    13,
  1417.      0,   212,  -236,     0,   213,    15,    16,     0,     0,     0,
  1418.    214,     0,     0,   874,   308,     0,     0,     0,     0,     0,
  1419.      0,     0,   215,     0,     0,   216,     0,     0,     0,     0,
  1420.      0,     0,     0,   217,   218,   219,     0,     0,     0,   220,
  1421.    221,     0,     0,     0,     0,     0,     0,   222,     0,   875,
  1422.      0,     0,   876,     0,     0,   877,   878,   879,     0,   880,
  1423.      0,     0,     0,     0,     0,     0,     0,     0,     0,   881,
  1424.   1114,   223,   224,  1012,     0,   861,   127,     6,     7,     8,
  1425.    359,   205,   206,     0,   207,    10,   862,     0,   863,   864,
  1426.    865,   866,   867,   868,   869,   870,   871,   872,   873,    12,
  1427.    208,   209,   210,     0,   211,     0,    13,     0,   212,  -236,
  1428.      0,   213,    15,    16,     0,     0,     0,   214,     0,     0,
  1429.    874,   308,     0,     0,     0,     0,     0,     0,     0,   215,
  1430.      0,     0,   216,     0,     0,     0,     0,     0,     0,     0,
  1431.    217,   218,   219,     0,     0,     0,   220,   221,     0,     0,
  1432.      0,     0,     0,     0,   222,     0,   875,     0,     0,   876,
  1433.      0,     0,   877,   878,   879,     0,   880,     0,     0,     0,
  1434.      0,     0,     0,     0,     0,     0,   881,  1207,   223,   224,
  1435.    860,     0,   861,   127,     6,     7,     8,   359,   205,   206,
  1436.      0,   207,    10,   862,     0,   863,   864,   865,   866,   867,
  1437.    868,   869,   870,   871,   872,   873,    12,   208,   209,   210,
  1438.      0,   211,     0,    13,     0,   212,  -236,     0,   213,    15,
  1439.     16,     0,     0,     0,   214,     0,     0,   874,   308,     0,
  1440.      0,     0,     0,     0,     0,     0,   215,     0,     0,   216,
  1441.      0,     0,     0,     0,     0,     0,     0,   217,   218,   219,
  1442.      0,     0,     0,   220,   221,     0,     0,     0,     0,     0,
  1443.      0,   222,     0,   875,     0,     0,   876,     0,     0,   877,
  1444.    878,   879,     0,   880,     0,     0,     0,     0,     0,     0,
  1445.      0,     0,     0,   881,     0,   223,   224,  1182,     0,   861,
  1446.    127,     6,     7,     8,   359,   205,   206,     0,   207,    10,
  1447.    862,     0,   863,   864,   865,   866,   867,   868,   869,   870,
  1448.    871,   872,   873,    12,   208,   209,   210,     0,   211,     0,
  1449.     13,     0,   212,  -236,     0,   213,    15,    16,     0,     0,
  1450.      0,   214,     0,     0,   874,   308,     0,     0,     0,     0,
  1451.      0,     0,     0,   215,     0,     0,   216,     0,     0,     0,
  1452.      0,     0,     0,     0,   217,   218,   219,     0,     0,     0,
  1453.    220,   221,     0,     0,     0,     0,     0,     0,   222,     0,
  1454.    875,     0,     0,   876,     0,     0,   877,   878,   879,    70,
  1455.    880,     0,    71,     6,     0,     8,    72,     0,     0,     0,
  1456.    881,    10,   223,   224,     0,     0,     0,     0,     0,     0,
  1457.      0,     0,     0,     0,     0,    12,     0,     0,     0,     0,
  1458.      0,     0,    13,     0,    73,    74,     0,     0,     0,    16,
  1459.     75,    76,     0,     0,     0,     0,     0,     0,    77,    78,
  1460.     79,    80,     0,     0,    81,    82,    83,    84,    85,    86,
  1461.     87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
  1462.     97,     0,    98,    99,     0,     0,   100,   101,     0,     0,
  1463.      0,   102,     0,     0,     0,     0,     0,     0,     0,     0,
  1464.      0,   358,    22,   203,   127,     6,     7,     8,   359,   205,
  1465.    206,   243,   207,    10,   103,   104,     0,     0,     0,     0,
  1466.      0,     0,     0,     0,     0,     0,     0,    12,   208,   209,
  1467.    210,     0,   211,     0,    13,     0,   212,  -236,     0,   213,
  1468.     15,    16,     0,     0,     0,   214,     0,     0,     0,     0,
  1469.      0,     0,     0,     0,     0,     0,     0,   215,     0,     0,
  1470.    216,     0,     0,     0,     0,     0,     0,     0,   217,   218,
  1471.    219,     0,     0,     0,   220,   221,     0,     0,     0,     0,
  1472.      0,     0,   222,     0,     0,     0,     0,     0,     0,     0,
  1473.      0,     0,     0,   244,    22,     0,     0,     0,     0,     0,
  1474.      0,     0,     0,  -616,     0,     0,   223,   224,   550,     0,
  1475.    203,   127,     6,     7,     8,   359,   205,   206,   243,   207,
  1476.     10,   420,   421,   422,   423,   424,   425,   426,   427,   428,
  1477.    429,   430,   431,     0,    12,   208,   209,   210,     0,   211,
  1478.      0,    13,     0,   212,  -236,     0,   213,    15,    16,     0,
  1479.      0,     0,   214,     0,     0,     0,     0,     0,     0,     0,
  1480.      0,     0,     0,     0,   215,     0,     0,   216,     0,     0,
  1481.      0,     0,     0,     0,     0,   217,   218,   219,     0,     0,
  1482.      0,   220,   221,     0,     0,     0,     0,     0,     0,   222,
  1483.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  1484.    244,    22,     0,     0,     0,     0,     0,     0,     0,     0,
  1485.   -616,     0,     0,   223,   224,   737,     0,   203,   127,     6,
  1486.      7,     8,   359,   205,   206,   243,   207,    10,     0,     0,
  1487.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  1488.      0,    12,   208,   209,   210,     0,   211,     0,    13,     0,
  1489.    212,  -236,     0,   213,    15,    16,     0,     0,     0,   214,
  1490.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  1491.      0,   215,     0,     0,   216,     0,     0,     0,     0,     0,
  1492.      0,     0,   217,   218,   219,     0,     0,     0,   220,   221,
  1493.      0,     0,     0,     0,     0,     0,   222,     0,     0,     0,
  1494.      0,     0,     0,     0,     0,     0,     0,   244,    22,     0,
  1495.      0,     0,     0,     0,     0,     0,     0,  -616,     0,     0,
  1496.    223,   224,   790,     0,   203,   127,     6,     7,     8,   359,
  1497.    205,   206,   243,   207,    10,     0,     0,     0,     0,     0,
  1498.      0,     0,     0,     0,     0,     0,     0,     0,    12,   208,
  1499.    209,   210,     0,   211,     0,    13,     0,   212,  -236,     0,
  1500.    213,    15,    16,     0,     0,     0,   214,     0,     0,     0,
  1501.      0,     0,     0,     0,     0,     0,     0,     0,   215,     0,
  1502.      0,   216,     0,     0,     0,     0,     0,     0,     0,   217,
  1503.    218,   219,     0,     0,     0,   220,   221,     0,     0,     0,
  1504.      0,     0,     0,   222,     0,     0,     0,     0,     0,     0,
  1505.      0,     0,     0,     0,   244,    22,     0,     0,     0,     0,
  1506.      0,     0,     0,     0,  -616,     0,     0,   223,   224,   794,
  1507.      0,   203,   127,     6,     7,     8,   359,   205,   206,   243,
  1508.    207,    10,     0,     0,     0,     0,     0,     0,     0,     0,
  1509.      0,     0,     0,     0,     0,    12,   208,   209,   210,     0,
  1510.    211,     0,    13,     0,   212,  -236,     0,   213,    15,    16,
  1511.      0,     0,     0,   214,     0,     0,     0,     0,     0,     0,
  1512.      0,     0,     0,     0,     0,   215,     0,     0,   216,     0,
  1513.      0,     0,     0,     0,     0,     0,   217,   218,   219,     0,
  1514.      0,     0,   220,   221,     0,     0,     0,     0,     0,     0,
  1515.    222,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  1516.      0,   244,    22,     0,     0,     0,     0,     0,     0,     0,
  1517.      0,  -616,     0,     0,   223,   224,   524,     0,   717,   718,
  1518.      6,     0,     8,   386,   205,   206,     0,   207,    10,     0,
  1519.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  1520.      0,     0,    12,   208,   209,   210,     0,   211,     0,    13,
  1521.      0,   212,  -236,     0,   213,    15,    16,     0,     0,     0,
  1522.    214,     0,     0,     0,   525,     0,     0,     0,     0,     0,
  1523.      0,     0,   215,     0,     0,   216,     0,     0,     0,     0,
  1524.      0,     0,     0,   217,   218,   219,     0,     0,     0,   220,
  1525.    221,     0,     0,     0,     0,     0,     0,   222,   719,   524,
  1526.      0,   717,   718,     6,     0,     8,   386,   205,   206,   181,
  1527.    207,    10,     0,     0,     0,     0,     0,     0,   970,     0,
  1528.    720,   223,   224,     0,     0,    12,   208,   209,   210,     0,
  1529.    211,     0,    13,     0,   212,  -236,     0,   213,    15,    16,
  1530.      0,     0,     0,   214,     0,     0,     0,   525,     0,     0,
  1531.      0,     0,     0,     0,     0,   215,     0,     0,   216,     0,
  1532.      0,     0,     0,     0,     0,     0,   217,   218,   219,     0,
  1533.      0,     0,   220,   221,     0,     0,     0,     0,     0,     0,
  1534.    222,     0,  1080,     0,   203,   127,     6,     7,     8,   359,
  1535.    205,   206,   181,   207,    10,     0,     0,     0,     0,     0,
  1536.      0,     0,     0,   971,   223,   224,     0,     0,    12,   208,
  1537.    209,   210,     0,   211,     0,    13,     0,   212,  -236,     0,
  1538.    213,    15,    16,     0,     0,     0,   214,     0,     0,     0,
  1539.   1081,     0,     0,     0,     0,     0,     0,     0,   215,     0,
  1540.      0,   216,     0,     0,     0,     0,     0,     0,     0,   217,
  1541.    218,   219,     0,     0,     0,   220,   221,     0,     0,     0,
  1542.      0,     0,     0,   222,     0,   524,     0,   717,   718,     6,
  1543.      0,     8,   386,   205,   206,    22,   207,    10,     0,     0,
  1544.      0,     0,     0,     0,   970,  1082,     0,   223,   224,     0,
  1545.      0,    12,   208,   209,   210,     0,   211,     0,    13,     0,
  1546.    212,  -236,     0,   213,    15,    16,     0,     0,     0,   214,
  1547.      0,     0,     0,   525,     0,     0,     0,     0,     0,     0,
  1548.      0,   215,     0,     0,   216,     0,     0,     0,     0,     0,
  1549.      0,     0,   217,   218,   219,     0,     0,     0,   220,   221,
  1550.      0,     0,     0,     0,     0,     0,   222,     0,   524,     0,
  1551.    717,   718,     6,     0,     8,   386,   205,   206,   181,   207,
  1552.     10,     0,     0,     0,     0,     0,     0,     0,     0,  -329,
  1553.    223,   224,     0,     0,    12,   208,   209,   210,     0,   211,
  1554.      0,    13,     0,   212,  -236,     0,   213,    15,    16,     0,
  1555.      0,     0,   214,     0,     0,     0,   525,     0,     0,     0,
  1556.      0,     0,     0,     0,   215,     0,     0,   216,     0,     0,
  1557.      0,     0,     0,     0,     0,   217,   218,   219,     0,     0,
  1558.      0,   220,   221,     0,     0,     0,     0,     0,     0,   222,
  1559.    719,   404,     0,   203,   127,     6,     0,     8,   204,   205,
  1560.    206,   181,   207,    10,     0,     0,     0,     0,     0,     0,
  1561.      0,     0,     0,   223,   224,     0,     0,    12,   208,   209,
  1562.    210,     0,   211,     0,    13,     0,   212,  -236,     0,   213,
  1563.     15,    16,     0,     0,     0,   214,     0,     0,     0,  -207,
  1564.      0,     0,     0,     0,     0,     0,     0,   215,     0,     0,
  1565.    216,     0,     0,     0,     0,     0,     0,     0,   217,   218,
  1566.    219,     0,     0,     0,   220,   221,     0,     0,     0,     0,
  1567.      0,     0,   222,     0,   524,     0,   203,   127,     6,     0,
  1568.      8,   386,   205,   206,    22,   207,    10,     0,     0,     0,
  1569.      0,     0,     0,     0,     0,     0,   223,   224,     0,     0,
  1570.     12,   208,   209,   210,     0,   211,     0,    13,     0,   212,
  1571.   -236,     0,   213,    15,    16,     0,     0,     0,   214,     0,
  1572.      0,     0,   525,     0,     0,     0,     0,     0,     0,     0,
  1573.    215,     0,     0,   216,     0,     0,     0,     0,     0,     0,
  1574.      0,   217,   218,   219,     0,     0,     0,   220,   221,     0,
  1575.      0,     0,     0,     0,     0,   222,     0,   624,     0,   203,
  1576.    127,     6,     0,     8,   386,   205,   206,    22,   207,    10,
  1577.      0,     0,     0,     0,     0,     0,     0,     0,     0,   223,
  1578.    224,     0,     0,    12,   208,   209,   210,     0,   211,     0,
  1579.     13,     0,   212,  -236,     0,   213,    15,    16,     0,     0,
  1580.      0,   214,     0,     0,     0,     0,     0,     0,     0,     0,
  1581.   -606,     0,     0,   215,     0,     0,   216,     0,     0,     0,
  1582.      0,     0,     0,     0,   217,   218,   219,     0,     0,     0,
  1583.    220,   221,     0,     0,     0,     0,     0,     0,   222,     0,
  1584.    624,     0,   203,   127,     6,     0,     8,   386,   205,   206,
  1585.     22,   207,    10,     0,     0,     0,     0,     0,     0,     0,
  1586.      0,     0,   223,   224,     0,     0,    12,   208,   209,   210,
  1587.      0,   211,     0,    13,     0,   212,  -236,     0,   213,    15,
  1588.     16,     0,     0,     0,   214,     0,     0,     0,     0,     0,
  1589.      0,     0,     0,     0,     0,     0,   215,     0,     0,   216,
  1590.      0,     0,     0,     0,     0,     0,     0,   217,   218,   219,
  1591.      0,     0,     0,   220,   221,     0,     0,     0,     0,     0,
  1592.      0,   222,     0,   624,     0,   203,   127,     6,     0,     8,
  1593.    386,   205,   206,    22,   207,    10,     0,     0,     0,     0,
  1594.      0,     0,     0,  -606,     0,   223,   224,     0,     0,    12,
  1595.    208,   209,   210,     0,   211,     0,    13,     0,   212,  -236,
  1596.      0,   213,    15,    16,     0,     0,     0,   214,     0,     0,
  1597.      0,     0,     0,     0,     0,     0,     0,     0,     0,   215,
  1598.      0,     0,   216,     0,     0,     0,     0,     0,     0,     0,
  1599.    217,   218,   219,     0,     0,     0,   220,   221,     0,     0,
  1600.      0,     0,     0,     0,   222,     0,   681,     0,   203,   127,
  1601.      6,     0,     8,   386,   205,   206,    22,   207,    10,     0,
  1602.      0,     0,     0,     0,     0,  -606,     0,     0,   223,   224,
  1603.      0,     0,    12,   208,   209,   210,     0,   211,     0,    13,
  1604.      0,   212,  -236,     0,   213,    15,    16,     0,     0,     0,
  1605.    214,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  1606.      0,     0,   215,     0,     0,   216,     0,     0,     0,     0,
  1607.      0,     0,     0,   217,   218,   219,     0,     0,     0,   220,
  1608.    221,     0,     0,     0,     0,     0,     0,   222,     0,     0,
  1609.      0,   203,   127,     6,     0,     8,   386,   205,   206,    22,
  1610.    207,    10,     0,     0,     0,     0,     0,     0,     0,     0,
  1611.      0,   223,   224,     0,     0,    12,   208,   209,   210,     0,
  1612.    211,     0,    13,     0,   212,     0,     0,   213,    15,    16,
  1613.      0,     0,     0,   214,     3,     0,     4,     5,     6,     7,
  1614.      8,     9,     0,     0,     0,   215,    10,     0,   216,     0,
  1615.      0,     0,     0,     0,     0,     0,   217,   218,   219,    11,
  1616.     12,     0,   220,   221,     0,     0,     0,    13,     0,     0,
  1617.    222,    14,     0,    15,    16,     0,     0,    17,    18,     0,
  1618.      0,     0,    22,     0,     0,     0,     0,     0,     0,     0,
  1619.      0,     0,     0,    19,   223,   224,   653,     0,     0,     0,
  1620.      0,     0,     0,    20,     0,     0,     0,   348,     0,     4,
  1621.    127,     6,     7,     8,     9,    21,     0,     0,     0,    10,
  1622.      0,     0,     0,     0,     0,     0,     0,    22,    23,    24,
  1623.      0,     0,     0,    12,     0,     0,     0,    25,     0,    26,
  1624.     13,  -370,     0,     0,     0,     0,    15,    16,     0,     0,
  1625.      0,    18,     0,     0,     0,     0,     0,     0,     0,     0,
  1626.    349,     0,     0,     0,     0,   348,    19,     4,   127,     6,
  1627.      7,     8,     9,     0,     0,     0,    20,    10,     0,     0,
  1628.      0,     0,     0,     0,     0,     0,     0,     0,    21,     0,
  1629.      0,    12,     0,     0,     0,     0,     0,     0,    13,  -371,
  1630.     22,     0,     0,     0,    15,    16,     0,     0,     0,    18,
  1631.    584,  -370,    26,     0,     0,     0,     0,     0,   349,     0,
  1632.      0,     0,     0,   348,    19,     4,   127,     6,     7,     8,
  1633.      9,     0,     0,     0,    20,    10,     0,     0,     0,     0,
  1634.      0,     0,     0,     0,     0,     0,    21,     0,     0,    12,
  1635.      0,     0,     0,     0,     0,     0,    13,  -369,    22,     0,
  1636.      0,     0,    15,    16,     0,     0,     0,    18,   584,  -371,
  1637.     26,     0,     0,     0,     0,     0,   349,     0,     0,     0,
  1638.      0,   348,    19,     4,   127,     6,     7,     8,     9,     0,
  1639.      0,     0,    20,    10,     0,     0,     0,     0,     0,     0,
  1640.      0,     0,     0,     0,    21,     0,     0,    12,     0,     0,
  1641.      0,     0,     0,     0,    13,  -372,    22,     0,     0,     0,
  1642.     15,    16,     0,     0,     0,    18,     0,  -369,    26,     0,
  1643.      0,     0,     0,     0,   349,     0,     0,     0,     0,     3,
  1644.     19,     4,     5,     6,     7,     8,     9,     0,     0,     0,
  1645.     20,    10,     0,     0,     0,     0,     0,     0,     0,     0,
  1646.      0,     0,    21,     0,     0,    12,     0,     0,     0,     0,
  1647.      0,     0,    13,     0,    22,     0,     0,     0,    15,    16,
  1648.      0,     0,     0,    18,     0,  -372,    26,     0,     0,     0,
  1649.    126,     0,     4,   127,     6,     7,     8,     9,    19,     0,
  1650.      0,     0,    10,     0,     0,     0,     0,     0,    20,     0,
  1651.      0,     0,     0,     0,     0,     0,    12,     0,     0,     0,
  1652.     21,     0,     0,    13,     0,     0,     0,     0,     0,    15,
  1653.     16,     0,    22,    23,    18,     0,     0,     0,     0,     0,
  1654.      0,     0,    25,     0,    26,   412,   413,   414,     0,    19,
  1655.    415,   416,   417,   418,   419,   420,   421,   422,   423,    20,
  1656.    425,   426,   427,   428,   429,   430,   431,     0,     0,     0,
  1657.      0,    21,     0,     0,     0,     0,     0,     0,     0,     0,
  1658.      0,     0,     0,    22,     0,     0,     0,   861,   127,     6,
  1659.      7,     8,   359,   205,   206,    26,   207,    10,   862,     0,
  1660.    863,   864,   865,   866,   867,   868,   869,   870,   871,   872,
  1661.    873,    12,   208,   209,   210,     0,   211,     0,    13,     0,
  1662.    212,     0,     0,   213,    15,    16,     0,     0,     0,   214,
  1663.      0,     0,   874,   308,     0,     0,     0,     0,     0,     0,
  1664.      0,   215,     0,     0,   216,     0,     0,     0,     0,     0,
  1665.      0,     0,   217,   218,   219,     0,     0,     0,   220,   221,
  1666.      0,     0,     0,     0,     0,     0,   222,     0,   875,     0,
  1667.      0,   876,     0,     0,   877,   878,   879,     0,   880,     0,
  1668.      0,     0,     0,     0,     0,     0,     0,     0,   881,  1020,
  1669.    223,   224,   861,   127,     6,     7,     8,   359,   205,   206,
  1670.      0,   207,    10,   862,     0,   863,   864,   865,   866,   867,
  1671.    868,   869,   870,   871,   872,   873,    12,   208,   209,   210,
  1672.      0,   211,     0,    13,     0,   212,     0,     0,   213,    15,
  1673.     16,     0,     0,     0,   214,     0,     0,   874,   308,     0,
  1674.      0,     0,     0,     0,     0,     0,   215,     0,     0,   216,
  1675.      0,     0,     0,     0,     0,     0,     0,   217,   218,   219,
  1676.      0,     0,     0,   220,   221,     0,     0,     0,     0,     0,
  1677.      0,   222,     0,   875,     0,     0,   876,     0,     0,   877,
  1678.    878,   879,     0,   880,     0,     0,     0,     0,     0,     0,
  1679.      0,     0,     0,   881,     0,   223,   224,   203,   127,     6,
  1680.      0,     8,   386,   205,   206,     0,   207,    10,     0,     0,
  1681.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  1682.      0,    12,   208,   209,   210,     0,   211,     0,    13,     0,
  1683.    212,     0,     0,   213,    15,    16,     0,     0,     0,   214,
  1684.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  1685.      0,   215,     0,     0,   216,     0,     0,     0,     0,     0,
  1686.      0,     0,   217,   218,   219,     0,     0,     0,   220,   221,
  1687.      0,     0,     0,     0,     0,     0,   222,   443,     0,     0,
  1688.    203,   127,     6,     0,     8,   386,   205,   206,    22,   207,
  1689.     10,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  1690.    223,   224,     0,     0,    12,   208,   209,   210,     0,   211,
  1691.      0,    13,     0,   212,     0,     0,   213,    15,    16,     0,
  1692.      0,     0,   214,     0,     0,     0,   806,     0,     0,     0,
  1693.      0,     0,     0,     0,   215,     0,     0,   216,     0,     0,
  1694.      0,     0,     0,     0,     0,   217,   218,   219,     0,     0,
  1695.      0,   220,   221,     0,     0,     0,     0,     0,     0,   222,
  1696.      0,     0,     0,   203,   127,     6,     0,     8,   386,   205,
  1697.    206,    22,   207,    10,     0,     0,     0,     0,     0,     0,
  1698.      0,     0,     0,   223,   224,     0,     0,    12,   208,   209,
  1699.    210,     0,   211,     0,    13,     0,   212,     0,     0,   213,
  1700.     15,    16,     0,     0,     0,   214,     0,     0,     0,     0,
  1701.      0,     0,     0,     0,     0,     0,     0,   215,     0,     0,
  1702.    216,     0,     0,     0,     0,     0,     0,     0,   217,   218,
  1703.    219,     0,     0,     0,   220,   221,     0,     0,     0,     0,
  1704.      0,     0,   222,     0,     0,     0,   203,   127,     6,     0,
  1705.      8,   386,   205,   206,    22,   207,    10,     0,     0,     0,
  1706.      0,     0,     0,     0,   988,     0,   223,   224,     0,     0,
  1707.     12,   208,   209,   210,     0,   211,     0,    13,     0,   212,
  1708.      0,     0,   213,    15,    16,     0,     0,     0,   214,     0,
  1709.      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  1710.    215,     0,     0,   216,     0,     0,     0,     0,     0,     0,
  1711.      0,   217,   218,   219,     0,     0,     0,   220,   221,     0,
  1712.      0,     0,     0,     0,     0,   222,     0,     0,     0,   203,
  1713.    127,     6,     0,     8,   204,   205,   206,    22,   207,    10,
  1714.      0,     0,     0,     0,     0,     0,     0,  1001,     0,   223,
  1715.    224,     0,     0,    12,   208,   209,   210,     0,   211,     0,
  1716.     13,     0,   212,     0,     0,   213,    15,    16,     0,     0,
  1717.      0,   214,     0,     0,     0,     0,     0,     0,     0,     0,
  1718.      0,     0,     0,   215,     0,     0,   216,     0,     0,     0,
  1719.      0,     0,     0,     0,   217,   218,   219,     0,     0,     0,
  1720.    220,   221,     0,     0,     0,     0,     0,     0,   222,     0,
  1721.      0,     0,   203,   127,     6,     0,     8,   386,   205,   206,
  1722.     22,   207,    10,     0,     0,     0,     0,     0,     0,     0,
  1723.      0,     0,   223,   224,     0,     0,    12,   208,   209,   210,
  1724.      0,   211,     0,    13,     0,   212,     0,     0,   213,    15,
  1725.     16,     0,     0,     0,   214,     0,     0,     0,     0,     0,
  1726.      0,     0,     0,     0,     0,     0,   215,     0,     0,   216,
  1727.      0,     0,     0,     0,     0,     0,     0,   217,   218,   219,
  1728.      0,     0,     0,   220,   221,     0,     0,     0,     0,     0,
  1729.      0,   222,     0,     0,     0,   203,   612,     6,     0,     8,
  1730.    386,   205,   206,    22,   207,    10,     0,     0,     0,     0,
  1731.      0,     0,     0,     0,     0,   223,   224,     0,     0,    12,
  1732.    208,   209,   210,     0,   211,     0,    13,     0,   212,     0,
  1733.      0,   213,    15,    16,     0,     0,     0,   214,     0,     0,
  1734.      0,     0,     0,     0,     0,     0,     0,     0,     0,   215,
  1735.      0,     0,   216,     0,     0,     0,     0,     0,     0,     0,
  1736.    217,   218,   219,     0,     0,     0,   220,   221,     0,     0,
  1737.      0,   203,   127,     6,   222,     8,   386,   205,   206,     0,
  1738.    207,    10,     0,     0,     0,     0,    22,     0,     0,     0,
  1739.      0,     0,     0,     0,     0,    12,   208,     0,   223,   224,
  1740.    211,     0,    13,     0,   212,     0,     0,   213,    15,    16,
  1741.      0,     0,     0,   214,     0,     0,     0,     0,     0,     0,
  1742.      0,     0,     0,     0,     0,   215,     0,     0,   216,     0,
  1743.      0,     0,     0,     0,     0,     0,   217,   218,   219,     0,
  1744.      0,     0,   220,   221,     0,     0,     0,   203,   127,     6,
  1745.    387,     8,   386,   205,   206,     0,   207,    10,     0,     0,
  1746.      0,     0,    22,     0,     0,     0,     0,     0,     0,     0,
  1747.      0,    12,   208,     0,   223,   224,   211,     0,    13,     0,
  1748.    212,     0,     0,   213,    15,    16,     0,     0,     0,   214,
  1749.      0,     0,     4,   127,     6,     7,     8,     9,     0,     0,
  1750.    243,   215,    10,     0,   216,     0,     0,     0,     0,     0,
  1751.      0,     0,   217,   218,   219,     0,    12,     0,   220,   221,
  1752.      0,     0,     0,    13,     0,     0,   391,     0,     0,    15,
  1753.     16,     0,   263,     0,    18,     0,     0,     0,    22,     0,
  1754.      0,     0,     0,     4,   158,     6,   159,     8,   160,   663,
  1755.    223,   224,     0,    10,     0,     0,     0,     0,     0,   664,
  1756.      0,     0,     0,     0,     0,     0,   267,    12,     0,     0,
  1757.      0,   665,   269,     0,    13,     0,     0,     0,     0,     0,
  1758.     15,    16,   244,    22,     0,    18,   145,     0,     4,   127,
  1759.      6,     7,     8,     9,     0,    26,   243,     0,    10,     0,
  1760.    146,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  1761.    147,     0,    12,     0,     0,     0,     0,   148,     0,    13,
  1762.      0,     0,   149,     0,     0,    15,    16,     0,     0,     0,
  1763.     18,     0,     0,     0,    22,     0,     0,     0,     0,     0,
  1764.      0,     0,     0,     0,   161,   319,    26,     0,     0,     0,
  1765.      0,     0,     0,     0,     0,   320,     4,   158,     6,   159,
  1766.      8,   160,   321,     0,     0,     0,    10,   322,     0,     0,
  1767.      0,     0,     4,   158,     6,   159,     8,   160,   244,    22,
  1768.     12,     0,    10,     0,     0,     0,     0,    13,     0,     0,
  1769.      0,    26,     0,    15,    16,     0,    12,     0,    18,   145,
  1770.      0,   337,     0,    13,     0,     0,     0,     0,     0,    15,
  1771.     16,     0,     0,   146,    18,   145,     0,     0,     0,     0,
  1772.      0,     0,     0,   147,  -638,     0,  -638,     0,     0,   146,
  1773.    148,  -638,     0,     0,     0,   149,     0,     0,     0,   147,
  1774.      0,     0,     0,   193,     0,     0,   148,    22,     0,  -638,
  1775.   -638,   149,  -638,     0,  -638,     0,     0,  1008,     0,    26,
  1776.      0,     0,     0,    22,   127,     6,     7,     8,     9,     0,
  1777.      0,   243,     0,    10,     0,    26,     0,     0,     0,     0,
  1778.      0,     0,   194,   195,     0,   196,     0,    12,     0,     0,
  1779.      0,     0,   197,     0,    13,     0,    71,     6,     0,     8,
  1780.    274,    16,     0,   263,  -253,    10,     0,     0,     0,     0,
  1781.      0,     0,     0,     0,     0,     0,     0,     0,     0,    12,
  1782.    265,     0,     0,     0,     0,     0,    13,     0,     0,     0,
  1783.    266,     0,     0,    16,     0,   263,     0,   267,   264,     0,
  1784.      0,     0,   268,   269,     0,     0,     0,     0,     0,     0,
  1785.      0,     0,   265,   244,    22,     0,     0,     0,     0,     0,
  1786.      0,     0,   266,     0,     0,     0,     0,     0,     0,   267,
  1787.      0,     0,     0,     0,   268,   269,     0,     0,     0,     0,
  1788.      0,     0,   412,   413,   414,     0,    22,   415,   416,   417,
  1789.    418,   419,   420,   421,   422,   423,   424,   425,   426,   427,
  1790.    428,   429,   430,   431,   412,   413,   414,     0,     0,   415,
  1791.    416,   417,   418,   419,   420,   421,   422,   423,   424,   425,
  1792.    426,   427,   428,   429,   430,   431,     0,     0,     0,     0,
  1793.      0,     0,     0,     0,   600,     0,     0,     0,     0,   968,
  1794.    418,   419,   420,   421,   422,   423,   424,   425,   426,   427,
  1795.    428,   429,   430,   431,   412,   413,   414,   757,   758,   415,
  1796.    416,   417,   418,   419,   420,   421,   422,   423,   424,   425,
  1797.    426,   427,   428,   429,   430,   431,  -138,   412,   413,   414,
  1798.      0,     0,   415,   416,   417,   418,   419,   420,   421,   422,
  1799.    423,   424,   425,   426,   427,   428,   429,   430,   431,   412,
  1800.    413,   414,  1138,     0,   415,   416,   417,   418,   419,   420,
  1801.    421,   422,   423,   424,   425,   426,   427,   428,   429,   430,
  1802.    431,   412,   413,   414,     0,     0,   415,   416,   417,   418,
  1803.    419,   420,   421,   422,   423,   424,   425,   426,   427,   428,
  1804.    429,   430,   431,   414,     0,     0,   415,   416,   417,   418,
  1805.    419,   420,   421,   422,   423,   424,   425,   426,   427,   428,
  1806.    429,   430,   431,   416,   417,   418,   419,   420,   421,   422,
  1807.    423,   424,   425,   426,   427,   428,   429,   430,   431,   417,
  1808.    418,   419,   420,   421,   422,   423,   424,   425,   426,   427,
  1809.    428,   429,   430,   431
  1810. };
  1811.  
  1812. static const short yycheck[] = {     1,
  1813.      2,    66,    10,   137,   138,    15,     1,     2,    15,    15,
  1814.    298,   106,    67,    15,    39,    21,    43,   595,    38,   354,
  1815.    269,   207,   208,   149,    60,    18,   886,    29,    37,    38,
  1816.    216,    37,   277,   219,   214,    43,    38,   223,   277,   327,
  1817.    706,   227,   566,   241,   264,    67,   111,   233,   268,    11,
  1818.    893,   136,   895,    39,    60,   138,   216,    59,    60,   219,
  1819.   1029,  1030,   189,   223,   944,    67,    10,   227,   514,    10,
  1820.     35,    35,    50,   233,    45,    43,    10,     3,     4,     3,
  1821.      4,    50,   107,   332,    54,    10,   145,    10,    50,    70,
  1822.     71,    72,    54,    64,   194,     3,     4,     3,     4,     5,
  1823.     49,   547,   108,     1,    50,    54,   108,     8,   114,   115,
  1824.    116,     3,     4,     5,    82,    83,    40,    85,   120,   128,
  1825.    129,    50,   128,   125,    92,   103,    24,   129,    26,    54,
  1826.    125,    93,    40,    31,   104,   104,   104,    43,   163,   145,
  1827.    105,   105,   237,   149,   169,   240,     3,     4,     3,     4,
  1828.     50,    49,    50,    45,    52,   104,    54,   103,   194,   103,
  1829.      3,     4,   103,   156,  1024,   201,   172,   222,  1028,   103,
  1830.     94,   305,   306,   307,   698,   104,    82,   163,   103,   845,
  1831.    103,  1061,   106,   169,    85,   312,    94,    85,    94,   191,
  1832.    196,    92,   194,   199,    92,   201,   322,     0,   106,   201,
  1833.    222,   196,    94,   303,   104,    97,   104,   215,   214,   395,
  1834.     50,    45,   214,   238,    82,   503,    82,   397,    24,   304,
  1835.    222,    50,   305,   306,  1193,  1194,   465,    70,    50,   235,
  1836.     64,   331,    64,    45,   240,   395,    34,    94,   240,    94,
  1837.    246,    26,   491,   251,   246,    50,    31,   272,    54,    49,
  1838.    275,    94,    64,   451,    54,   701,     3,     4,   317,   318,
  1839.     50,   481,   482,     3,   104,    50,   268,    52,   132,   557,
  1840.    104,   277,   406,   300,    50,   277,   105,     3,     4,    50,
  1841.      6,   302,   104,   285,    82,   385,   272,   151,     3,     4,
  1842.    285,   103,   300,    50,   300,   331,   545,   875,    50,   877,
  1843.    105,   165,  1145,   749,   104,   300,     3,     4,     5,    35,
  1844.    335,   317,   318,     5,   104,   105,   322,   763,   345,   104,
  1845.    844,   376,   328,  1183,     3,     4,    50,   333,   104,   331,
  1846.     24,    50,   387,   104,    49,    64,   391,   362,   202,   439,
  1847.      1,    49,   351,   352,   366,   351,   103,    94,    45,   335,
  1848.    352,   103,   354,    45,    43,    49,   456,    43,    52,    50,
  1849.     54,    40,    43,    50,    43,   387,    45,    46,    94,   391,
  1850.    376,   393,   394,    49,   376,    50,   362,    49,    54,    94,
  1851.    104,    60,     3,     4,   103,   387,    54,   442,    49,   391,
  1852.     50,    70,   414,    82,    83,   529,    82,    94,    77,    54,
  1853.     97,    82,    83,    82,    83,     3,     4,   409,     6,    64,
  1854.    104,    50,   103,    49,   103,    94,   103,   517,   440,    40,
  1855.     54,   443,   103,    50,    45,    36,   290,   106,   103,     4,
  1856.      5,     6,     7,     8,    45,   103,   442,    35,    13,    60,
  1857.    442,   449,   662,   103,   544,   665,   529,   468,   574,    70,
  1858.     10,   696,    27,   579,   490,   461,   462,   696,    50,    34,
  1859.     50,    82,    43,   465,   103,   473,    41,   653,   493,   103,
  1860.    497,   917,     1,    94,   105,   921,   103,   341,   766,   538,
  1861.    539,    64,    50,    50,   490,   106,   774,    43,   490,   497,
  1862.     54,    50,   356,   653,   104,   105,    94,    50,    65,     3,
  1863.      4,    82,    83,   603,     8,   605,   108,   493,   544,     1,
  1864.      2,   103,    65,   103,   522,    50,   616,   525,   382,    94,
  1865.     49,    50,   103,    43,     8,    43,    82,    83,     5,    21,
  1866.     60,    50,   538,   539,   599,   103,    40,    29,   574,   566,
  1867.     70,    45,   544,   579,   103,    37,    38,   103,   648,    45,
  1868.    650,     4,     5,    43,     7,     8,    60,   657,     8,    43,
  1869.     13,   661,    82,    83,    82,    83,    70,   603,   103,   605,
  1870.     43,   105,   574,    77,    27,    50,    60,   579,    82,    50,
  1871.     85,    34,    50,   103,   103,   103,    70,    92,    41,   595,
  1872.     94,    50,    82,    77,   929,    48,    50,  1043,    82,    83,
  1873.    595,   603,   106,   605,    98,     3,     4,   827,   828,    82,
  1874.      8,   711,    50,   713,    50,    50,   716,   837,   838,    43,
  1875.     50,     3,   114,   115,   116,    43,   651,    45,   103,    82,
  1876.    104,   105,   103,   125,   820,   103,   128,   129,    43,  1217,
  1877.    650,    94,    40,   650,   103,    43,    64,    45,   650,   103,
  1878.     49,   462,    43,   145,   465,    54,   662,   149,    82,    83,
  1879.    820,   104,    60,   665,    82,   103,    43,   103,   103,   677,
  1880.     43,   698,    70,   103,   733,   734,  1122,    82,  1124,    77,
  1881.    172,    49,   709,    60,    82,    83,    54,    43,   747,   748,
  1882.    696,    82,    83,    70,   696,    43,    94,    43,   108,   191,
  1883.     77,   709,    54,   709,   196,    82,    83,   199,   106,    82,
  1884.     83,   575,     3,     4,   709,    82,   580,   817,   726,   814,
  1885.    815,    43,    82,   823,   751,   727,    82,   733,   734,   784,
  1886.     52,    43,    43,    43,    82,    83,    82,    85,     3,     4,
  1887.      5,   747,   748,   235,    92,     3,   811,    50,    50,    40,
  1888.     43,     9,   852,    43,    45,    46,    21,  1045,   767,  1081,
  1889.     82,   767,    65,    65,     4,     5,     6,     7,     8,    60,
  1890.     82,    82,    82,    13,  1096,   777,   268,  1099,   784,    70,
  1891.     45,    82,   784,    82,    43,    37,    77,    27,    41,    82,
  1892.     49,    82,    82,   285,    34,    54,    49,   818,   806,     1,
  1893.      2,    41,    10,    94,    52,    85,   670,    43,   300,   815,
  1894.    831,   832,    92,   815,  1102,   106,    43,   844,   103,    46,
  1895.    103,   827,   828,    82,   104,   317,   318,    29,   105,    94,
  1896.    322,   103,    97,    60,   855,   856,   328,    50,    74,    75,
  1897.    105,   333,    78,    70,    80,   867,    82,    83,   856,   871,
  1898.     77,    26,     3,     4,    94,    82,    83,   879,    60,   351,
  1899.    352,     3,   354,   108,   872,   885,    26,   875,    49,   875,
  1900.    105,   877,     3,    26,    49,   884,   885,   108,   884,    54,
  1901.    875,   103,   877,   885,   886,   104,   105,  1136,  1137,    40,
  1902.    892,   893,   947,   895,    45,    46,    49,   899,   762,    45,
  1903.    103,    54,   108,    85,    24,    50,    26,   771,    54,    60,
  1904.     92,    31,   933,    82,     3,     4,   104,   105,    64,    70,
  1905.    104,   105,   104,   125,    31,    45,    77,   929,    52,    49,
  1906.    103,    82,    52,   797,   104,   105,    59,   104,   105,   104,
  1907.    105,   947,   103,    94,    64,   947,   103,   968,   103,     3,
  1908.      4,    40,    50,   104,    43,   106,    45,   979,    54,    55,
  1909.    982,   983,   103,    83,   104,    85,   974,   103,   990,   461,
  1910.    462,    60,    92,   465,   108,     6,     7,     8,   108,   981,
  1911.    982,    70,    13,   104,   105,   105,    40,    34,    77,   191,
  1912.    104,    45,   194,    82,    83,  1095,   104,   120,  1098,   201,
  1913.    104,   105,   104,    34,   104,    94,    60,  1029,  1030,    33,
  1914.     41,  1019,  1018,   108,  1035,   103,    70,   106,   104,   105,
  1915.    207,   208,  1024,  1018,   103,   108,  1028,  1092,    82,    68,
  1916.     69,    70,    71,    72,  1134,    50,  1131,  1132,  1059,     5,
  1917.     94,  1066,     1,     2,    54,    54,   538,   539,    82,    52,
  1918.    103,  1059,   106,   103,  1075,  1065,  1078,   103,  1065,  1065,
  1919.    103,   925,    21,  1065,    54,  1087,   268,   103,   108,    82,
  1920.     29,   194,    52,   108,    52,   277,     1,     2,    52,    38,
  1921.    105,   103,   574,   285,    54,   108,  1088,   579,     6,     7,
  1922.      8,    54,     6,     7,     8,    13,     3,     4,  1119,    13,
  1923.   1121,     8,    94,   595,    29,  1107,    54,   103,  1242,  1243,
  1924.    103,   108,    52,   236,  1135,   103,    34,  1138,   103,   103,
  1925.     34,    82,   103,    41,   103,    43,  1132,    41,   103,   331,
  1926.   1132,  1265,   105,    40,    54,    60,    82,    82,    45,    82,
  1927.    104,    54,  1006,  1145,   104,     8,  1148,  1011,    49,    49,
  1928.    104,    15,   354,    60,    52,   114,   115,   116,    54,     3,
  1929.     50,     7,     8,    70,    82,   103,   125,    13,   103,    54,
  1930.    662,  1193,  1194,   665,  1195,    82,  1040,  1179,  1233,   302,
  1931.    303,  1183,  1184,  1205,  1048,    82,   145,    94,    34,   104,
  1932.    149,    82,   104,   104,   104,    41,   104,    52,   104,   106,
  1933.    125,   104,  1204,    82,  1226,    52,   105,  1209,   331,    83,
  1934.     83,  1217,    16,   105,   103,    49,   104,   709,   104,   103,
  1935.     52,   104,  1217,   104,   104,   103,   349,  1233,   104,   104,
  1936.     54,  1233,   191,   103,     3,     4,  1244,     6,     7,     8,
  1937.    199,   733,   734,  1245,  1246,    50,   103,     7,     8,   103,
  1938.    103,    82,   108,    13,    10,   747,   748,   108,     9,   104,
  1939.     89,   104,   385,   465,   104,    34,   191,    82,    50,   194,
  1940.     82,   886,    50,   103,    34,   767,   201,   892,   103,    48,
  1941.     49,    41,   103,    43,   104,   777,   409,     9,   490,   412,
  1942.    413,   104,   415,   416,   417,   418,   419,   420,   421,   422,
  1943.    423,   424,   425,   426,   427,   428,   429,   430,   431,   103,
  1944.    103,    10,   104,   103,    10,   438,   439,   104,     1,     2,
  1945.      0,     0,    82,   124,     2,    94,   285,   696,   125,   287,
  1946.     99,   100,   101,   456,   125,   827,   828,   136,    21,   709,
  1947.    120,   497,   544,   268,   409,   468,    29,   750,  1061,   982,
  1948.   1127,   275,   277,   476,    37,    38,   163,   884,   317,   318,
  1949.    285,   328,   806,   322,   679,    29,   981,    29,   751,   566,
  1950.    777,   730,   574,   899,   333,   352,   473,   579,     7,     8,
  1951.    677,     3,     4,   875,    13,   877,   322,     4,     5,   728,
  1952.      7,     8,   884,   885,   517,   354,    13,     3,     4,  1025,
  1953.   1227,   603,   525,   605,  1229,    34,   331,   899,   246,  1024,
  1954.     27,  1018,    41,  1028,    43,    -1,    -1,    34,    40,   784,
  1955.     -1,   544,    -1,    45,    41,    -1,    -1,    -1,    -1,   354,
  1956.     -1,   114,   115,   116,    40,    -1,    -1,   929,    60,    45,
  1957.     46,    -1,   125,    -1,    -1,   128,   129,    -1,    70,   572,
  1958.    573,    -1,    -1,    82,    60,    77,    -1,    -1,    -1,    -1,
  1959.     82,    -1,   145,   665,    70,    -1,   149,    -1,    -1,    -1,
  1960.     -1,    77,    94,  1088,    -1,    -1,    82,    94,    -1,    -1,
  1961.    603,    -1,   605,    -1,   106,    -1,    -1,    -1,    94,   172,
  1962.     -1,    -1,  1107,   616,   696,    -1,    -1,   620,   104,    -1,
  1963.    106,    -1,   461,   462,     3,     4,   465,    -1,   191,    -1,
  1964.     -1,    -1,    -1,    -1,     3,     4,   199,     6,     7,     8,
  1965.     -1,    -1,    -1,    -1,    -1,   648,  1018,   650,    -1,    -1,
  1966.     -1,   214,    -1,  1148,   657,    -1,    -1,    -1,   661,    -1,
  1967.    465,    40,    -1,    -1,    43,    34,    45,    46,    -1,    48,
  1968.     -1,    -1,   235,   676,    -1,    54,    -1,    -1,   241,    48,
  1969.     49,    60,    -1,    -1,  1179,   490,    -1,    -1,  1183,  1184,
  1970.     -1,    70,    -1,    -1,    -1,   777,     1,    -1,    77,   538,
  1971.    539,    -1,    -1,    82,    19,    20,     3,     4,   711,  1204,
  1972.    713,    -1,    -1,   716,  1209,    94,   719,    -1,    -1,    24,
  1973.     -1,    26,   285,    -1,    -1,    94,    31,   106,    -1,    -1,
  1974.     99,   100,   101,    -1,    -1,   574,    -1,    -1,    43,   544,
  1975.    579,    -1,    57,    40,    49,    50,    -1,    52,    45,    54,
  1976.   1245,  1246,    -1,    -1,   317,   318,   759,    -1,    -1,   322,
  1977.     75,    -1,    -1,    60,    -1,   328,    -1,    -1,    -1,   574,
  1978.    333,    -1,    -1,    70,   579,    -1,    -1,    82,    83,    -1,
  1979.     85,    -1,    -1,    -1,    -1,    82,    -1,    92,   351,   352,
  1980.     -1,   354,    -1,    -1,    -1,    -1,    -1,    94,   603,   104,
  1981.    605,    -1,    -1,   806,    -1,   808,    -1,    -1,    -1,   106,
  1982.     -1,    -1,     7,     8,   817,   818,    -1,   899,    13,    -1,
  1983.    823,     4,     5,   662,     7,     8,   665,    -1,   831,   832,
  1984.     13,   146,   147,     3,     4,     5,     6,     7,     8,    34,
  1985.     -1,    11,    -1,    13,    27,  1217,    41,   929,    43,   852,
  1986.     -1,    34,   855,   856,    -1,    -1,    -1,    27,    41,    -1,
  1987.    665,    -1,    -1,    -1,    34,    -1,    -1,    -1,    -1,    -1,
  1988.     40,    41,    -1,    43,    -1,    45,    46,    -1,   193,    -1,
  1989.     -1,    -1,    -1,    -1,    -1,   200,    -1,    82,   451,    -1,
  1990.     60,   696,    -1,    -1,   733,   734,    -1,    -1,   461,   462,
  1991.     70,    -1,   465,    -1,    -1,    -1,    -1,    77,   747,   748,
  1992.     -1,    94,    82,    83,    -1,    -1,    -1,    -1,    -1,    -1,
  1993.    923,   924,    -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,
  1994.    933,     3,     4,     5,    -1,     7,   106,    -1,   777,    -1,
  1995.     -1,    13,    -1,    -1,    -1,    -1,    43,    -1,   263,    -1,
  1996.    265,   266,    -1,     0,     1,    27,     3,     4,     5,     6,
  1997.      7,     8,    34,    -1,    36,   968,    13,   970,    40,    41,
  1998.     -1,    -1,   777,    45,    -1,   538,   539,    74,    75,    26,
  1999.     27,    78,    79,    80,    81,    82,    83,    34,   827,   828,
  2000.     -1,    38,    -1,    40,    41,    -1,    -1,    44,    45,    -1,
  2001.     -1,    -1,    -1,    -1,   319,   320,    -1,    -1,    -1,    -1,
  2002.     -1,   574,    -1,    60,    -1,   330,   579,    -1,    -1,    -1,
  2003.     -1,    -1,    94,    70,     3,     4,     3,     4,    -1,    -1,
  2004.     -1,    -1,  1035,    -1,    -1,    82,    -1,    -1,    -1,  1042,
  2005.     -1,    -1,    -1,    -1,    -1,    -1,   885,    94,    95,    96,
  2006.     -1,    -1,    -1,    -1,    -1,    -1,  1059,   104,    -1,   106,
  2007.    899,    40,    -1,    40,    -1,    -1,    45,    46,    45,    48,
  2008.     -1,    -1,  1075,    -1,    -1,    54,    -1,    -1,    -1,    -1,
  2009.     -1,    60,    -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,
  2010.    929,    70,  1095,    70,   899,  1098,    -1,    -1,    77,   662,
  2011.     77,    -1,   665,    82,    -1,    82,    -1,    -1,    -1,    -1,
  2012.      4,     5,    -1,     7,     8,    94,  1119,    94,  1121,    13,
  2013.      3,     4,    -1,    -1,   929,    -1,    -1,   106,    -1,   106,
  2014.     -1,  1134,  1135,    27,    -1,  1138,    -1,    -1,    -1,     1,
  2015.     34,     3,     4,     5,     6,     7,     8,    41,   463,    -1,
  2016.     -1,    13,    -1,    -1,    48,    -1,    -1,    40,    -1,    -1,
  2017.     -1,    -1,    45,    -1,    26,    27,    -1,    -1,    -1,    -1,
  2018.    733,   734,    34,    -1,   489,    -1,    38,    60,    40,    41,
  2019.     -1,    -1,    44,    45,   747,   748,    -1,    70,    82,    -1,
  2020.     -1,    -1,  1195,    -1,    77,    -1,    -1,    -1,    60,    82,
  2021.     94,    -1,    -1,    -1,   767,    -1,    -1,    -1,    70,    -1,
  2022.     -1,    94,    -1,    -1,   777,    -1,    -1,    -1,    -1,    -1,
  2023.     82,    -1,    -1,   106,    -1,   540,   541,    -1,   543,    -1,
  2024.     -1,    -1,    94,    95,    96,    -1,    -1,    -1,    -1,    -1,
  2025.    555,   556,   104,   105,   106,    62,    63,    64,    65,    66,
  2026.     67,    68,    69,    70,    71,    72,   571,    -1,    -1,    -1,
  2027.     -1,    -1,    -1,   578,   827,   828,     3,     4,     5,     6,
  2028.      7,     8,   587,   588,   589,    -1,    13,    63,    64,    65,
  2029.     66,    67,    68,    69,    70,    71,    72,   602,    -1,   604,
  2030.     27,    -1,   607,    -1,    -1,    -1,    -1,    34,    -1,    -1,
  2031.     -1,    -1,    -1,    40,    41,    -1,    43,    -1,    45,    46,
  2032.     -1,    48,    -1,    -1,    -1,    -1,    -1,    54,    -1,    -1,
  2033.     -1,   884,   885,    60,    -1,    -1,    -1,    -1,     4,     5,
  2034.      6,     7,     8,    70,    -1,    11,   899,    13,    -1,    -1,
  2035.     77,    -1,    -1,    -1,    -1,    82,    -1,    -1,   663,   664,
  2036.     -1,    27,    -1,    -1,    -1,    -1,    -1,    94,    34,    -1,
  2037.     -1,    -1,    -1,    -1,    -1,    41,   929,    -1,    -1,   106,
  2038.    685,   686,    -1,    -1,   689,     1,    -1,     3,     4,     5,
  2039.      6,     7,     8,     9,    10,    -1,    12,    13,    14,    15,
  2040.     16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
  2041.     26,    27,    28,    29,    30,    -1,    32,    -1,    34,    -1,
  2042.     36,    37,    -1,    39,    40,    41,    -1,    93,    94,    45,
  2043.     -1,    -1,    48,    49,    -1,    -1,    -1,    -1,   743,   744,
  2044.    745,    57,    -1,    -1,    60,    66,    67,    68,    69,    70,
  2045.     71,    72,    68,    69,    70,    -1,    -1,    -1,    74,    75,
  2046.     -1,    -1,    -1,    -1,    -1,    -1,    82,    -1,    84,    -1,
  2047.     86,    87,    88,    -1,    90,    91,    92,    -1,    94,    -1,
  2048.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   104,   105,
  2049.    106,   107,     1,    -1,     3,     4,     5,     6,     7,     8,
  2050.      9,    10,    -1,    12,    13,    14,    -1,    16,    17,    18,
  2051.     19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
  2052.     29,    30,    -1,    32,    -1,    34,    -1,    36,    37,    -1,
  2053.     39,    40,    41,    -1,    -1,   840,    45,    -1,    -1,    48,
  2054.     49,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    57,    -1,
  2055.     -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,
  2056.     69,    70,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,
  2057.     -1,    -1,    -1,    82,    -1,    84,    -1,    -1,    87,    -1,
  2058.     -1,    90,    91,    92,    -1,    94,    -1,    -1,    -1,    -1,
  2059.     -1,    -1,    -1,    -1,    -1,   104,   105,   106,   107,   904,
  2060.    905,   906,    60,    61,    62,    63,    64,    65,    66,    67,
  2061.     68,    69,    70,    71,    72,   920,    -1,    -1,    -1,    -1,
  2062.     -1,    -1,    -1,   928,    -1,    -1,    -1,    -1,    -1,   934,
  2063.    935,   936,   937,   938,   939,     1,    -1,     3,     4,     5,
  2064.      6,     7,     8,     9,    10,    -1,    12,    13,    14,    -1,
  2065.     16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
  2066.     26,    27,    28,    29,    30,    -1,    32,    -1,    34,    -1,
  2067.     36,    37,    -1,    39,    40,    41,    -1,    -1,    -1,    45,
  2068.     -1,    -1,    48,    49,    -1,    -1,    -1,    -1,    -1,    -1,
  2069.     -1,    57,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,
  2070.     -1,    -1,    68,    69,    70,    -1,    -1,    -1,    74,    75,
  2071.     -1,    -1,    -1,    -1,    -1,    -1,    82,    -1,    84,    -1,
  2072.     -1,    87,    -1,    -1,    90,    91,    92,    -1,    94,    -1,
  2073.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   104,   105,
  2074.    106,   107,     1,    -1,     3,     4,     5,     6,     7,     8,
  2075.      9,    10,    -1,    12,    13,    14,    -1,    16,    17,    18,
  2076.     19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
  2077.     29,    30,    -1,    32,    -1,    34,    -1,    36,    37,    -1,
  2078.     39,    40,    41,    -1,    -1,    -1,    45,    -1,    -1,    48,
  2079.     49,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    57,    -1,
  2080.     -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,
  2081.     69,    70,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,
  2082.     -1,    -1,    -1,    82,    -1,    84,    -1,    -1,    87,    -1,
  2083.     -1,    90,    91,    92,    -1,    94,    -1,    -1,    -1,    -1,
  2084.     -1,    -1,    -1,    -1,    -1,   104,   105,   106,   107,     1,
  2085.     -1,     3,     4,     5,     6,     7,     8,     9,    10,    -1,
  2086.     12,    13,    14,    -1,    16,    17,    18,    19,    20,    21,
  2087.     22,    23,    24,    25,    26,    27,    28,    29,    30,    -1,
  2088.     32,    -1,    34,    -1,    36,    37,    -1,    39,    40,    41,
  2089.     -1,    -1,    -1,    45,    -1,    -1,    48,    49,    -1,    -1,
  2090.     -1,    -1,    -1,    -1,    -1,    57,    -1,    -1,    60,    -1,
  2091.     -1,    -1,    -1,    -1,    -1,    -1,    68,    69,    70,    -1,
  2092.     -1,    -1,    74,    75,    -1,    -1,    -1,    -1,    -1,    -1,
  2093.     82,    -1,    84,    -1,    -1,    87,    -1,    -1,    90,    91,
  2094.     92,    -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2095.     -1,    -1,   104,   105,   106,   107,     1,    -1,     3,     4,
  2096.      5,     6,     7,     8,     9,    10,    -1,    12,    13,    14,
  2097.     -1,    16,    17,    18,    19,    20,    21,    22,    23,    24,
  2098.     25,    26,    27,    28,    29,    30,    -1,    32,    -1,    34,
  2099.     -1,    36,    37,    -1,    39,    40,    41,    -1,    -1,    -1,
  2100.     45,    -1,    -1,    48,    49,    -1,    -1,    -1,    -1,    -1,
  2101.     -1,    -1,    57,    -1,    -1,    60,    -1,    -1,    -1,    -1,
  2102.     -1,    -1,    -1,    68,    69,    70,    -1,    -1,    -1,    74,
  2103.     75,    -1,    -1,    -1,    -1,    -1,    -1,    82,    -1,    84,
  2104.     -1,    -1,    87,    -1,    -1,    90,    91,    92,    -1,    94,
  2105.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   104,
  2106.    105,   106,   107,     1,    -1,     3,     4,     5,     6,     7,
  2107.      8,     9,    10,    -1,    12,    13,    14,    -1,    16,    17,
  2108.     18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
  2109.     28,    29,    30,    -1,    32,    -1,    34,    -1,    36,    37,
  2110.     -1,    39,    40,    41,    -1,    -1,    -1,    45,    -1,    -1,
  2111.     48,    49,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    57,
  2112.     -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2113.     68,    69,    70,    -1,    -1,    -1,    74,    75,    -1,    -1,
  2114.     -1,    -1,    -1,    -1,    82,    -1,    84,    -1,    -1,    87,
  2115.     -1,    -1,    90,    91,    92,    -1,    94,    -1,    -1,    -1,
  2116.     -1,    -1,    -1,    -1,    -1,    -1,   104,   105,   106,   107,
  2117.      1,    -1,     3,     4,     5,     6,     7,     8,     9,    10,
  2118.     -1,    12,    13,    14,    -1,    16,    17,    18,    19,    20,
  2119.     21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
  2120.     -1,    32,    -1,    34,    -1,    36,    37,    -1,    39,    40,
  2121.     41,    -1,    -1,    -1,    45,    -1,    -1,    48,    49,    -1,
  2122.     -1,    -1,    -1,    -1,    -1,    -1,    57,    -1,    -1,    60,
  2123.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,    69,    70,
  2124.     -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    -1,    -1,
  2125.     -1,    82,    -1,    84,    -1,    -1,    87,    -1,    -1,    90,
  2126.     91,    92,    -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,
  2127.     -1,    -1,    -1,   104,    -1,   106,   107,     1,    -1,     3,
  2128.      4,     5,     6,     7,     8,     9,    10,    -1,    12,    13,
  2129.     14,    -1,    16,    17,    18,    19,    20,    21,    22,    23,
  2130.     24,    25,    26,    27,    28,    29,    30,    -1,    32,    -1,
  2131.     34,    -1,    36,    37,    -1,    39,    40,    41,    -1,    -1,
  2132.     -1,    45,    -1,    -1,    48,    49,    -1,    -1,    -1,    -1,
  2133.     -1,    -1,    -1,    57,    -1,    -1,    60,    -1,    -1,    -1,
  2134.     -1,    -1,    -1,    -1,    68,    69,    70,    -1,    -1,    -1,
  2135.     74,    75,    -1,    -1,    -1,    -1,    -1,    -1,    82,    -1,
  2136.     84,    -1,    -1,    87,    -1,    -1,    90,    91,    92,     1,
  2137.     94,    -1,     4,     5,    -1,     7,     8,    -1,    -1,    -1,
  2138.    104,    13,   106,   107,    -1,    -1,    -1,    -1,    -1,    -1,
  2139.     -1,    -1,    -1,    -1,    -1,    27,    -1,    -1,    -1,    -1,
  2140.     -1,    -1,    34,    -1,    36,    37,    -1,    -1,    -1,    41,
  2141.     42,    43,    -1,    -1,    -1,    -1,    -1,    -1,    50,    51,
  2142.     52,    53,    -1,    -1,    56,    57,    58,    59,    60,    61,
  2143.     62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
  2144.     72,    -1,    74,    75,    -1,    -1,    78,    79,    -1,    -1,
  2145.     -1,    83,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2146.     -1,     1,    94,     3,     4,     5,     6,     7,     8,     9,
  2147.     10,    11,    12,    13,   106,   107,    -1,    -1,    -1,    -1,
  2148.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    27,    28,    29,
  2149.     30,    -1,    32,    -1,    34,    -1,    36,    37,    -1,    39,
  2150.     40,    41,    -1,    -1,    -1,    45,    -1,    -1,    -1,    -1,
  2151.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    57,    -1,    -1,
  2152.     60,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,    69,
  2153.     70,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    -1,
  2154.     -1,    -1,    82,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2155.     -1,    -1,    -1,    93,    94,    -1,    -1,    -1,    -1,    -1,
  2156.     -1,    -1,    -1,   103,    -1,    -1,   106,   107,     1,    -1,
  2157.      3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
  2158.     13,    61,    62,    63,    64,    65,    66,    67,    68,    69,
  2159.     70,    71,    72,    -1,    27,    28,    29,    30,    -1,    32,
  2160.     -1,    34,    -1,    36,    37,    -1,    39,    40,    41,    -1,
  2161.     -1,    -1,    45,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2162.     -1,    -1,    -1,    -1,    57,    -1,    -1,    60,    -1,    -1,
  2163.     -1,    -1,    -1,    -1,    -1,    68,    69,    70,    -1,    -1,
  2164.     -1,    74,    75,    -1,    -1,    -1,    -1,    -1,    -1,    82,
  2165.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2166.     93,    94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2167.    103,    -1,    -1,   106,   107,     1,    -1,     3,     4,     5,
  2168.      6,     7,     8,     9,    10,    11,    12,    13,    -1,    -1,
  2169.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2170.     -1,    27,    28,    29,    30,    -1,    32,    -1,    34,    -1,
  2171.     36,    37,    -1,    39,    40,    41,    -1,    -1,    -1,    45,
  2172.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2173.     -1,    57,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,
  2174.     -1,    -1,    68,    69,    70,    -1,    -1,    -1,    74,    75,
  2175.     -1,    -1,    -1,    -1,    -1,    -1,    82,    -1,    -1,    -1,
  2176.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    93,    94,    -1,
  2177.     -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,    -1,    -1,
  2178.    106,   107,     1,    -1,     3,     4,     5,     6,     7,     8,
  2179.      9,    10,    11,    12,    13,    -1,    -1,    -1,    -1,    -1,
  2180.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    27,    28,
  2181.     29,    30,    -1,    32,    -1,    34,    -1,    36,    37,    -1,
  2182.     39,    40,    41,    -1,    -1,    -1,    45,    -1,    -1,    -1,
  2183.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    57,    -1,
  2184.     -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,
  2185.     69,    70,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,
  2186.     -1,    -1,    -1,    82,    -1,    -1,    -1,    -1,    -1,    -1,
  2187.     -1,    -1,    -1,    -1,    93,    94,    -1,    -1,    -1,    -1,
  2188.     -1,    -1,    -1,    -1,   103,    -1,    -1,   106,   107,     1,
  2189.     -1,     3,     4,     5,     6,     7,     8,     9,    10,    11,
  2190.     12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2191.     -1,    -1,    -1,    -1,    -1,    27,    28,    29,    30,    -1,
  2192.     32,    -1,    34,    -1,    36,    37,    -1,    39,    40,    41,
  2193.     -1,    -1,    -1,    45,    -1,    -1,    -1,    -1,    -1,    -1,
  2194.     -1,    -1,    -1,    -1,    -1,    57,    -1,    -1,    60,    -1,
  2195.     -1,    -1,    -1,    -1,    -1,    -1,    68,    69,    70,    -1,
  2196.     -1,    -1,    74,    75,    -1,    -1,    -1,    -1,    -1,    -1,
  2197.     82,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2198.     -1,    93,    94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2199.     -1,   103,    -1,    -1,   106,   107,     1,    -1,     3,     4,
  2200.      5,    -1,     7,     8,     9,    10,    -1,    12,    13,    -1,
  2201.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2202.     -1,    -1,    27,    28,    29,    30,    -1,    32,    -1,    34,
  2203.     -1,    36,    37,    -1,    39,    40,    41,    -1,    -1,    -1,
  2204.     45,    -1,    -1,    -1,    49,    -1,    -1,    -1,    -1,    -1,
  2205.     -1,    -1,    57,    -1,    -1,    60,    -1,    -1,    -1,    -1,
  2206.     -1,    -1,    -1,    68,    69,    70,    -1,    -1,    -1,    74,
  2207.     75,    -1,    -1,    -1,    -1,    -1,    -1,    82,    83,     1,
  2208.     -1,     3,     4,     5,    -1,     7,     8,     9,    10,    94,
  2209.     12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    20,    -1,
  2210.    105,   106,   107,    -1,    -1,    27,    28,    29,    30,    -1,
  2211.     32,    -1,    34,    -1,    36,    37,    -1,    39,    40,    41,
  2212.     -1,    -1,    -1,    45,    -1,    -1,    -1,    49,    -1,    -1,
  2213.     -1,    -1,    -1,    -1,    -1,    57,    -1,    -1,    60,    -1,
  2214.     -1,    -1,    -1,    -1,    -1,    -1,    68,    69,    70,    -1,
  2215.     -1,    -1,    74,    75,    -1,    -1,    -1,    -1,    -1,    -1,
  2216.     82,    -1,     1,    -1,     3,     4,     5,     6,     7,     8,
  2217.      9,    10,    94,    12,    13,    -1,    -1,    -1,    -1,    -1,
  2218.     -1,    -1,    -1,   105,   106,   107,    -1,    -1,    27,    28,
  2219.     29,    30,    -1,    32,    -1,    34,    -1,    36,    37,    -1,
  2220.     39,    40,    41,    -1,    -1,    -1,    45,    -1,    -1,    -1,
  2221.     49,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    57,    -1,
  2222.     -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,
  2223.     69,    70,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,
  2224.     -1,    -1,    -1,    82,    -1,     1,    -1,     3,     4,     5,
  2225.     -1,     7,     8,     9,    10,    94,    12,    13,    -1,    -1,
  2226.     -1,    -1,    -1,    -1,    20,   104,    -1,   106,   107,    -1,
  2227.     -1,    27,    28,    29,    30,    -1,    32,    -1,    34,    -1,
  2228.     36,    37,    -1,    39,    40,    41,    -1,    -1,    -1,    45,
  2229.     -1,    -1,    -1,    49,    -1,    -1,    -1,    -1,    -1,    -1,
  2230.     -1,    57,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,
  2231.     -1,    -1,    68,    69,    70,    -1,    -1,    -1,    74,    75,
  2232.     -1,    -1,    -1,    -1,    -1,    -1,    82,    -1,     1,    -1,
  2233.      3,     4,     5,    -1,     7,     8,     9,    10,    94,    12,
  2234.     13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   105,
  2235.    106,   107,    -1,    -1,    27,    28,    29,    30,    -1,    32,
  2236.     -1,    34,    -1,    36,    37,    -1,    39,    40,    41,    -1,
  2237.     -1,    -1,    45,    -1,    -1,    -1,    49,    -1,    -1,    -1,
  2238.     -1,    -1,    -1,    -1,    57,    -1,    -1,    60,    -1,    -1,
  2239.     -1,    -1,    -1,    -1,    -1,    68,    69,    70,    -1,    -1,
  2240.     -1,    74,    75,    -1,    -1,    -1,    -1,    -1,    -1,    82,
  2241.     83,     1,    -1,     3,     4,     5,    -1,     7,     8,     9,
  2242.     10,    94,    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,
  2243.     -1,    -1,    -1,   106,   107,    -1,    -1,    27,    28,    29,
  2244.     30,    -1,    32,    -1,    34,    -1,    36,    37,    -1,    39,
  2245.     40,    41,    -1,    -1,    -1,    45,    -1,    -1,    -1,    49,
  2246.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    57,    -1,    -1,
  2247.     60,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,    69,
  2248.     70,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    -1,
  2249.     -1,    -1,    82,    -1,     1,    -1,     3,     4,     5,    -1,
  2250.      7,     8,     9,    10,    94,    12,    13,    -1,    -1,    -1,
  2251.     -1,    -1,    -1,    -1,    -1,    -1,   106,   107,    -1,    -1,
  2252.     27,    28,    29,    30,    -1,    32,    -1,    34,    -1,    36,
  2253.     37,    -1,    39,    40,    41,    -1,    -1,    -1,    45,    -1,
  2254.     -1,    -1,    49,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2255.     57,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,
  2256.     -1,    68,    69,    70,    -1,    -1,    -1,    74,    75,    -1,
  2257.     -1,    -1,    -1,    -1,    -1,    82,    -1,     1,    -1,     3,
  2258.      4,     5,    -1,     7,     8,     9,    10,    94,    12,    13,
  2259.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   106,
  2260.    107,    -1,    -1,    27,    28,    29,    30,    -1,    32,    -1,
  2261.     34,    -1,    36,    37,    -1,    39,    40,    41,    -1,    -1,
  2262.     -1,    45,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2263.     54,    -1,    -1,    57,    -1,    -1,    60,    -1,    -1,    -1,
  2264.     -1,    -1,    -1,    -1,    68,    69,    70,    -1,    -1,    -1,
  2265.     74,    75,    -1,    -1,    -1,    -1,    -1,    -1,    82,    -1,
  2266.      1,    -1,     3,     4,     5,    -1,     7,     8,     9,    10,
  2267.     94,    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2268.     -1,    -1,   106,   107,    -1,    -1,    27,    28,    29,    30,
  2269.     -1,    32,    -1,    34,    -1,    36,    37,    -1,    39,    40,
  2270.     41,    -1,    -1,    -1,    45,    -1,    -1,    -1,    -1,    -1,
  2271.     -1,    -1,    -1,    -1,    -1,    -1,    57,    -1,    -1,    60,
  2272.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,    69,    70,
  2273.     -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    -1,    -1,
  2274.     -1,    82,    -1,     1,    -1,     3,     4,     5,    -1,     7,
  2275.      8,     9,    10,    94,    12,    13,    -1,    -1,    -1,    -1,
  2276.     -1,    -1,    -1,   104,    -1,   106,   107,    -1,    -1,    27,
  2277.     28,    29,    30,    -1,    32,    -1,    34,    -1,    36,    37,
  2278.     -1,    39,    40,    41,    -1,    -1,    -1,    45,    -1,    -1,
  2279.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    57,
  2280.     -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2281.     68,    69,    70,    -1,    -1,    -1,    74,    75,    -1,    -1,
  2282.     -1,    -1,    -1,    -1,    82,    -1,     1,    -1,     3,     4,
  2283.      5,    -1,     7,     8,     9,    10,    94,    12,    13,    -1,
  2284.     -1,    -1,    -1,    -1,    -1,   103,    -1,    -1,   106,   107,
  2285.     -1,    -1,    27,    28,    29,    30,    -1,    32,    -1,    34,
  2286.     -1,    36,    37,    -1,    39,    40,    41,    -1,    -1,    -1,
  2287.     45,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2288.     -1,    -1,    57,    -1,    -1,    60,    -1,    -1,    -1,    -1,
  2289.     -1,    -1,    -1,    68,    69,    70,    -1,    -1,    -1,    74,
  2290.     75,    -1,    -1,    -1,    -1,    -1,    -1,    82,    -1,    -1,
  2291.     -1,     3,     4,     5,    -1,     7,     8,     9,    10,    94,
  2292.     12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2293.     -1,   106,   107,    -1,    -1,    27,    28,    29,    30,    -1,
  2294.     32,    -1,    34,    -1,    36,    -1,    -1,    39,    40,    41,
  2295.     -1,    -1,    -1,    45,     1,    -1,     3,     4,     5,     6,
  2296.      7,     8,    -1,    -1,    -1,    57,    13,    -1,    60,    -1,
  2297.     -1,    -1,    -1,    -1,    -1,    -1,    68,    69,    70,    26,
  2298.     27,    -1,    74,    75,    -1,    -1,    -1,    34,    -1,    -1,
  2299.     82,    38,    -1,    40,    41,    -1,    -1,    44,    45,    -1,
  2300.     -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2301.     -1,    -1,    -1,    60,   106,   107,   108,    -1,    -1,    -1,
  2302.     -1,    -1,    -1,    70,    -1,    -1,    -1,     1,    -1,     3,
  2303.      4,     5,     6,     7,     8,    82,    -1,    -1,    -1,    13,
  2304.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    96,
  2305.     -1,    -1,    -1,    27,    -1,    -1,    -1,   104,    -1,   106,
  2306.     34,    35,    -1,    -1,    -1,    -1,    40,    41,    -1,    -1,
  2307.     -1,    45,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2308.     54,    -1,    -1,    -1,    -1,     1,    60,     3,     4,     5,
  2309.      6,     7,     8,    -1,    -1,    -1,    70,    13,    -1,    -1,
  2310.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    82,    -1,
  2311.     -1,    27,    -1,    -1,    -1,    -1,    -1,    -1,    34,    35,
  2312.     94,    -1,    -1,    -1,    40,    41,    -1,    -1,    -1,    45,
  2313.    104,   105,   106,    -1,    -1,    -1,    -1,    -1,    54,    -1,
  2314.     -1,    -1,    -1,     1,    60,     3,     4,     5,     6,     7,
  2315.      8,    -1,    -1,    -1,    70,    13,    -1,    -1,    -1,    -1,
  2316.     -1,    -1,    -1,    -1,    -1,    -1,    82,    -1,    -1,    27,
  2317.     -1,    -1,    -1,    -1,    -1,    -1,    34,    35,    94,    -1,
  2318.     -1,    -1,    40,    41,    -1,    -1,    -1,    45,   104,   105,
  2319.    106,    -1,    -1,    -1,    -1,    -1,    54,    -1,    -1,    -1,
  2320.     -1,     1,    60,     3,     4,     5,     6,     7,     8,    -1,
  2321.     -1,    -1,    70,    13,    -1,    -1,    -1,    -1,    -1,    -1,
  2322.     -1,    -1,    -1,    -1,    82,    -1,    -1,    27,    -1,    -1,
  2323.     -1,    -1,    -1,    -1,    34,    35,    94,    -1,    -1,    -1,
  2324.     40,    41,    -1,    -1,    -1,    45,    -1,   105,   106,    -1,
  2325.     -1,    -1,    -1,    -1,    54,    -1,    -1,    -1,    -1,     1,
  2326.     60,     3,     4,     5,     6,     7,     8,    -1,    -1,    -1,
  2327.     70,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2328.     -1,    -1,    82,    -1,    -1,    27,    -1,    -1,    -1,    -1,
  2329.     -1,    -1,    34,    -1,    94,    -1,    -1,    -1,    40,    41,
  2330.     -1,    -1,    -1,    45,    -1,   105,   106,    -1,    -1,    -1,
  2331.      1,    -1,     3,     4,     5,     6,     7,     8,    60,    -1,
  2332.     -1,    -1,    13,    -1,    -1,    -1,    -1,    -1,    70,    -1,
  2333.     -1,    -1,    -1,    -1,    -1,    -1,    27,    -1,    -1,    -1,
  2334.     82,    -1,    -1,    34,    -1,    -1,    -1,    -1,    -1,    40,
  2335.     41,    -1,    94,    95,    45,    -1,    -1,    -1,    -1,    -1,
  2336.     -1,    -1,   104,    -1,   106,    51,    52,    53,    -1,    60,
  2337.     56,    57,    58,    59,    60,    61,    62,    63,    64,    70,
  2338.     66,    67,    68,    69,    70,    71,    72,    -1,    -1,    -1,
  2339.     -1,    82,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2340.     -1,    -1,    -1,    94,    -1,    -1,    -1,     3,     4,     5,
  2341.      6,     7,     8,     9,    10,   106,    12,    13,    14,    -1,
  2342.     16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
  2343.     26,    27,    28,    29,    30,    -1,    32,    -1,    34,    -1,
  2344.     36,    -1,    -1,    39,    40,    41,    -1,    -1,    -1,    45,
  2345.     -1,    -1,    48,    49,    -1,    -1,    -1,    -1,    -1,    -1,
  2346.     -1,    57,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,
  2347.     -1,    -1,    68,    69,    70,    -1,    -1,    -1,    74,    75,
  2348.     -1,    -1,    -1,    -1,    -1,    -1,    82,    -1,    84,    -1,
  2349.     -1,    87,    -1,    -1,    90,    91,    92,    -1,    94,    -1,
  2350.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   104,   105,
  2351.    106,   107,     3,     4,     5,     6,     7,     8,     9,    10,
  2352.     -1,    12,    13,    14,    -1,    16,    17,    18,    19,    20,
  2353.     21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
  2354.     -1,    32,    -1,    34,    -1,    36,    -1,    -1,    39,    40,
  2355.     41,    -1,    -1,    -1,    45,    -1,    -1,    48,    49,    -1,
  2356.     -1,    -1,    -1,    -1,    -1,    -1,    57,    -1,    -1,    60,
  2357.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,    69,    70,
  2358.     -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    -1,    -1,
  2359.     -1,    82,    -1,    84,    -1,    -1,    87,    -1,    -1,    90,
  2360.     91,    92,    -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,
  2361.     -1,    -1,    -1,   104,    -1,   106,   107,     3,     4,     5,
  2362.     -1,     7,     8,     9,    10,    -1,    12,    13,    -1,    -1,
  2363.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2364.     -1,    27,    28,    29,    30,    -1,    32,    -1,    34,    -1,
  2365.     36,    -1,    -1,    39,    40,    41,    -1,    -1,    -1,    45,
  2366.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2367.     -1,    57,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,
  2368.     -1,    -1,    68,    69,    70,    -1,    -1,    -1,    74,    75,
  2369.     -1,    -1,    -1,    -1,    -1,    -1,    82,    83,    -1,    -1,
  2370.      3,     4,     5,    -1,     7,     8,     9,    10,    94,    12,
  2371.     13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2372.    106,   107,    -1,    -1,    27,    28,    29,    30,    -1,    32,
  2373.     -1,    34,    -1,    36,    -1,    -1,    39,    40,    41,    -1,
  2374.     -1,    -1,    45,    -1,    -1,    -1,    49,    -1,    -1,    -1,
  2375.     -1,    -1,    -1,    -1,    57,    -1,    -1,    60,    -1,    -1,
  2376.     -1,    -1,    -1,    -1,    -1,    68,    69,    70,    -1,    -1,
  2377.     -1,    74,    75,    -1,    -1,    -1,    -1,    -1,    -1,    82,
  2378.     -1,    -1,    -1,     3,     4,     5,    -1,     7,     8,     9,
  2379.     10,    94,    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,
  2380.     -1,    -1,    -1,   106,   107,    -1,    -1,    27,    28,    29,
  2381.     30,    -1,    32,    -1,    34,    -1,    36,    -1,    -1,    39,
  2382.     40,    41,    -1,    -1,    -1,    45,    -1,    -1,    -1,    -1,
  2383.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    57,    -1,    -1,
  2384.     60,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,    69,
  2385.     70,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    -1,
  2386.     -1,    -1,    82,    -1,    -1,    -1,     3,     4,     5,    -1,
  2387.      7,     8,     9,    10,    94,    12,    13,    -1,    -1,    -1,
  2388.     -1,    -1,    -1,    -1,   104,    -1,   106,   107,    -1,    -1,
  2389.     27,    28,    29,    30,    -1,    32,    -1,    34,    -1,    36,
  2390.     -1,    -1,    39,    40,    41,    -1,    -1,    -1,    45,    -1,
  2391.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2392.     57,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,
  2393.     -1,    68,    69,    70,    -1,    -1,    -1,    74,    75,    -1,
  2394.     -1,    -1,    -1,    -1,    -1,    82,    -1,    -1,    -1,     3,
  2395.      4,     5,    -1,     7,     8,     9,    10,    94,    12,    13,
  2396.     -1,    -1,    -1,    -1,    -1,    -1,    -1,   104,    -1,   106,
  2397.    107,    -1,    -1,    27,    28,    29,    30,    -1,    32,    -1,
  2398.     34,    -1,    36,    -1,    -1,    39,    40,    41,    -1,    -1,
  2399.     -1,    45,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2400.     -1,    -1,    -1,    57,    -1,    -1,    60,    -1,    -1,    -1,
  2401.     -1,    -1,    -1,    -1,    68,    69,    70,    -1,    -1,    -1,
  2402.     74,    75,    -1,    -1,    -1,    -1,    -1,    -1,    82,    -1,
  2403.     -1,    -1,     3,     4,     5,    -1,     7,     8,     9,    10,
  2404.     94,    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2405.     -1,    -1,   106,   107,    -1,    -1,    27,    28,    29,    30,
  2406.     -1,    32,    -1,    34,    -1,    36,    -1,    -1,    39,    40,
  2407.     41,    -1,    -1,    -1,    45,    -1,    -1,    -1,    -1,    -1,
  2408.     -1,    -1,    -1,    -1,    -1,    -1,    57,    -1,    -1,    60,
  2409.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,    69,    70,
  2410.     -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    -1,    -1,
  2411.     -1,    82,    -1,    -1,    -1,     3,     4,     5,    -1,     7,
  2412.      8,     9,    10,    94,    12,    13,    -1,    -1,    -1,    -1,
  2413.     -1,    -1,    -1,    -1,    -1,   106,   107,    -1,    -1,    27,
  2414.     28,    29,    30,    -1,    32,    -1,    34,    -1,    36,    -1,
  2415.     -1,    39,    40,    41,    -1,    -1,    -1,    45,    -1,    -1,
  2416.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    57,
  2417.     -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2418.     68,    69,    70,    -1,    -1,    -1,    74,    75,    -1,    -1,
  2419.     -1,     3,     4,     5,    82,     7,     8,     9,    10,    -1,
  2420.     12,    13,    -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,
  2421.     -1,    -1,    -1,    -1,    -1,    27,    28,    -1,   106,   107,
  2422.     32,    -1,    34,    -1,    36,    -1,    -1,    39,    40,    41,
  2423.     -1,    -1,    -1,    45,    -1,    -1,    -1,    -1,    -1,    -1,
  2424.     -1,    -1,    -1,    -1,    -1,    57,    -1,    -1,    60,    -1,
  2425.     -1,    -1,    -1,    -1,    -1,    -1,    68,    69,    70,    -1,
  2426.     -1,    -1,    74,    75,    -1,    -1,    -1,     3,     4,     5,
  2427.     82,     7,     8,     9,    10,    -1,    12,    13,    -1,    -1,
  2428.     -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2429.     -1,    27,    28,    -1,   106,   107,    32,    -1,    34,    -1,
  2430.     36,    -1,    -1,    39,    40,    41,    -1,    -1,    -1,    45,
  2431.     -1,    -1,     3,     4,     5,     6,     7,     8,    -1,    -1,
  2432.     11,    57,    13,    -1,    60,    -1,    -1,    -1,    -1,    -1,
  2433.     -1,    -1,    68,    69,    70,    -1,    27,    -1,    74,    75,
  2434.     -1,    -1,    -1,    34,    -1,    -1,    82,    -1,    -1,    40,
  2435.     41,    -1,    43,    -1,    45,    -1,    -1,    -1,    94,    -1,
  2436.     -1,    -1,    -1,     3,     4,     5,     6,     7,     8,    60,
  2437.    106,   107,    -1,    13,    -1,    -1,    -1,    -1,    -1,    70,
  2438.     -1,    -1,    -1,    -1,    -1,    -1,    77,    27,    -1,    -1,
  2439.     -1,    82,    83,    -1,    34,    -1,    -1,    -1,    -1,    -1,
  2440.     40,    41,    93,    94,    -1,    45,    46,    -1,     3,     4,
  2441.      5,     6,     7,     8,    -1,   106,    11,    -1,    13,    -1,
  2442.     60,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  2443.     70,    -1,    27,    -1,    -1,    -1,    -1,    77,    -1,    34,
  2444.     -1,    -1,    82,    -1,    -1,    40,    41,    -1,    -1,    -1,
  2445.     45,    -1,    -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,
  2446.     -1,    -1,    -1,    -1,   104,    60,   106,    -1,    -1,    -1,
  2447.     -1,    -1,    -1,    -1,    -1,    70,     3,     4,     5,     6,
  2448.      7,     8,    77,    -1,    -1,    -1,    13,    82,    -1,    -1,
  2449.     -1,    -1,     3,     4,     5,     6,     7,     8,    93,    94,
  2450.     27,    -1,    13,    -1,    -1,    -1,    -1,    34,    -1,    -1,
  2451.     -1,   106,    -1,    40,    41,    -1,    27,    -1,    45,    46,
  2452.     -1,     1,    -1,    34,    -1,    -1,    -1,    -1,    -1,    40,
  2453.     41,    -1,    -1,    60,    45,    46,    -1,    -1,    -1,    -1,
  2454.     -1,    -1,    -1,    70,    24,    -1,    26,    -1,    -1,    60,
  2455.     77,    31,    -1,    -1,    -1,    82,    -1,    -1,    -1,    70,
  2456.     -1,    -1,    -1,    43,    -1,    -1,    77,    94,    -1,    49,
  2457.     50,    82,    52,    -1,    54,    -1,    -1,   104,    -1,   106,
  2458.     -1,    -1,    -1,    94,     4,     5,     6,     7,     8,    -1,
  2459.     -1,    11,    -1,    13,    -1,   106,    -1,    -1,    -1,    -1,
  2460.     -1,    -1,    82,    83,    -1,    85,    -1,    27,    -1,    -1,
  2461.     -1,    -1,    92,    -1,    34,    -1,     4,     5,    -1,     7,
  2462.      8,    41,    -1,    43,   104,    13,    -1,    -1,    -1,    -1,
  2463.     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    27,
  2464.     60,    -1,    -1,    -1,    -1,    -1,    34,    -1,    -1,    -1,
  2465.     70,    -1,    -1,    41,    -1,    43,    -1,    77,    46,    -1,
  2466.     -1,    -1,    82,    83,    -1,    -1,    -1,    -1,    -1,    -1,
  2467.     -1,    -1,    60,    93,    94,    -1,    -1,    -1,    -1,    -1,
  2468.     -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    77,
  2469.     -1,    -1,    -1,    -1,    82,    83,    -1,    -1,    -1,    -1,
  2470.     -1,    -1,    51,    52,    53,    -1,    94,    56,    57,    58,
  2471.     59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
  2472.     69,    70,    71,    72,    51,    52,    53,    -1,    -1,    56,
  2473.     57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
  2474.     67,    68,    69,    70,    71,    72,    -1,    -1,    -1,    -1,
  2475.     -1,    -1,    -1,    -1,    31,    -1,    -1,    -1,    -1,   108,
  2476.     59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
  2477.     69,    70,    71,    72,    51,    52,    53,   104,   105,    56,
  2478.     57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
  2479.     67,    68,    69,    70,    71,    72,    50,    51,    52,    53,
  2480.     -1,    -1,    56,    57,    58,    59,    60,    61,    62,    63,
  2481.     64,    65,    66,    67,    68,    69,    70,    71,    72,    51,
  2482.     52,    53,    54,    -1,    56,    57,    58,    59,    60,    61,
  2483.     62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
  2484.     72,    51,    52,    53,    -1,    -1,    56,    57,    58,    59,
  2485.     60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
  2486.     70,    71,    72,    53,    -1,    -1,    56,    57,    58,    59,
  2487.     60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
  2488.     70,    71,    72,    57,    58,    59,    60,    61,    62,    63,
  2489.     64,    65,    66,    67,    68,    69,    70,    71,    72,    58,
  2490.     59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
  2491.     69,    70,    71,    72
  2492. };
  2493. /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
  2494. #line 3 "bison.simple"
  2495.  
  2496. /* Skeleton output parser for bison,
  2497.    Copyright (C) 1984, 1989, 1990 Bob Corbett and Richard Stallman
  2498.  
  2499.    This program is free software; you can redistribute it and/or modify
  2500.    it under the terms of the GNU General Public License as published by
  2501.    the Free Software Foundation; either version 1, or (at your option)
  2502.    any later version.
  2503.  
  2504.    This program is distributed in the hope that it will be useful,
  2505.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  2506.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  2507.    GNU General Public License for more details.
  2508.  
  2509.    You should have received a copy of the GNU General Public License
  2510.    along with this program; if not, write to the Free Software
  2511.    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
  2512.  
  2513.  
  2514. #ifndef alloca
  2515. #ifdef __GNUC__
  2516. #define alloca __builtin_alloca
  2517. #else /* not GNU C.  */
  2518. #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__)
  2519. #include <alloca.h>
  2520. #else /* not sparc */
  2521. #if defined (MSDOS) && !defined (__TURBOC__)
  2522. #include <malloc.h>
  2523. #else /* not MSDOS, or __TURBOC__ */
  2524. #if defined(_AIX)
  2525. #include <malloc.h>
  2526.  #pragma alloca
  2527. #endif /* not _AIX */
  2528. #endif /* not MSDOS, or __TURBOC__ */
  2529. #endif /* not sparc.  */
  2530. #endif /* not GNU C.  */
  2531. #endif /* alloca not defined.  */
  2532.  
  2533. /* This is the parser code that is written into each bison parser
  2534.   when the %semantic_parser declaration is not specified in the grammar.
  2535.   It was written by Richard Stallman by simplifying the hairy parser
  2536.   used when %semantic_parser is specified.  */
  2537.  
  2538. /* Note: there must be only one dollar sign in this file.
  2539.    It is replaced by the list of actions, each action
  2540.    as one case of the switch.  */
  2541.  
  2542. #define yyerrok        (yyerrstatus = 0)
  2543. #define yyclearin    (yychar = YYEMPTY)
  2544. #define YYEMPTY        -2
  2545. #define YYEOF        0
  2546. #define YYACCEPT    return(0)
  2547. #define YYABORT     return(1)
  2548. #define YYERROR        goto yyerrlab1
  2549. /* Like YYERROR except do call yyerror.
  2550.    This remains here temporarily to ease the
  2551.    transition to the new meaning of YYERROR, for GCC.
  2552.    Once GCC version 2 has supplanted version 1, this can go.  */
  2553. #define YYFAIL        goto yyerrlab
  2554. #define YYRECOVERING()  (!!yyerrstatus)
  2555. #define YYBACKUP(token, value) \
  2556. do                                \
  2557.   if (yychar == YYEMPTY && yylen == 1)                \
  2558.     { yychar = (token), yylval = (value);            \
  2559.       yychar1 = YYTRANSLATE (yychar);                \
  2560.       YYPOPSTACK;                        \
  2561.       goto yybackup;                        \
  2562.     }                                \
  2563.   else                                \
  2564.     { yyerror ("syntax error: cannot back up"); YYERROR; }    \
  2565. while (0)
  2566.  
  2567. #define YYTERROR    1
  2568. #define YYERRCODE    256
  2569.  
  2570. #ifndef YYPURE
  2571. #define YYLEX        yylex()
  2572. #endif
  2573.  
  2574. #ifdef YYPURE
  2575. #ifdef YYLSP_NEEDED
  2576. #define YYLEX        yylex(&yylval, &yylloc)
  2577. #else
  2578. #define YYLEX        yylex(&yylval)
  2579. #endif
  2580. #endif
  2581.  
  2582. /* If nonreentrant, generate the variables here */
  2583.  
  2584. #ifndef YYPURE
  2585.  
  2586. int    yychar;            /*  the lookahead symbol        */
  2587. YYSTYPE    yylval;            /*  the semantic value of the        */
  2588.                 /*  lookahead symbol            */
  2589.  
  2590. #ifdef YYLSP_NEEDED
  2591. YYLTYPE yylloc;            /*  location data for the lookahead    */
  2592.                 /*  symbol                */
  2593. #endif
  2594.  
  2595. int yynerrs;            /*  number of parse errors so far       */
  2596. #endif  /* not YYPURE */
  2597.  
  2598. #if YYDEBUG != 0
  2599. int yydebug;            /*  nonzero means print parse trace    */
  2600. /* Since this is uninitialized, it does not stop multiple parsers
  2601.    from coexisting.  */
  2602. #endif
  2603.  
  2604. /*  YYINITDEPTH indicates the initial size of the parser's stacks    */
  2605.  
  2606. #ifndef    YYINITDEPTH
  2607. #define YYINITDEPTH 200
  2608. #endif
  2609.  
  2610. /*  YYMAXDEPTH is the maximum size the stacks can grow to
  2611.     (effective only if the built-in stack extension method is used).  */
  2612.  
  2613. #if YYMAXDEPTH == 0
  2614. #undef YYMAXDEPTH
  2615. #endif
  2616.  
  2617. #ifndef YYMAXDEPTH
  2618. #define YYMAXDEPTH 10000
  2619. #endif
  2620.  
  2621. #if __GNUC__ > 1        /* GNU C and GNU C++ define this.  */
  2622. #define __yy_bcopy(FROM,TO,COUNT)    __builtin_memcpy(TO,FROM,COUNT)
  2623. #else                /* not GNU C or C++ */
  2624. #ifndef __cplusplus
  2625.  
  2626. /* This is the most reliable way to avoid incompatibilities
  2627.    in available built-in functions on various systems.  */
  2628. static void
  2629. __yy_bcopy (from, to, count)
  2630.      char *from;
  2631.      char *to;
  2632.      int count;
  2633. {
  2634.   register char *f = from;
  2635.   register char *t = to;
  2636.   register int i = count;
  2637.  
  2638.   while (i-- > 0)
  2639.     *t++ = *f++;
  2640. }
  2641.  
  2642. #else /* __cplusplus */
  2643.  
  2644. /* This is the most reliable way to avoid incompatibilities
  2645.    in available built-in functions on various systems.  */
  2646. static void
  2647. __yy_bcopy (char *from, char *to, int count)
  2648. {
  2649.   register char *f = from;
  2650.   register char *t = to;
  2651.   register int i = count;
  2652.  
  2653.   while (i-- > 0)
  2654.     *t++ = *f++;
  2655. }
  2656.  
  2657. #endif
  2658. #endif
  2659.  
  2660. #line 169 "bison.simple"
  2661. int
  2662. yyparse()
  2663. {
  2664.   register int yystate;
  2665.   register int yyn;
  2666.   register short *yyssp;
  2667.   register YYSTYPE *yyvsp;
  2668.   int yyerrstatus;    /*  number of tokens to shift before error messages enabled */
  2669.   int yychar1;        /*  lookahead token as an internal (translated) token number */
  2670.  
  2671.   short    yyssa[YYINITDEPTH];    /*  the state stack            */
  2672.   YYSTYPE yyvsa[YYINITDEPTH];    /*  the semantic value stack        */
  2673.  
  2674.   short *yyss = yyssa;        /*  refer to the stacks thru separate pointers */
  2675.   YYSTYPE *yyvs = yyvsa;    /*  to allow yyoverflow to reallocate them elsewhere */
  2676.  
  2677. #ifdef YYLSP_NEEDED
  2678.   YYLTYPE yylsa[YYINITDEPTH];    /*  the location stack            */
  2679.   YYLTYPE *yyls = yylsa;
  2680.   YYLTYPE *yylsp;
  2681.  
  2682. #define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
  2683. #else
  2684. #define YYPOPSTACK   (yyvsp--, yyssp--)
  2685. #endif
  2686.  
  2687.   int yystacksize = YYINITDEPTH;
  2688.  
  2689. #ifdef YYPURE
  2690.   int yychar;
  2691.   YYSTYPE yylval;
  2692.   int yynerrs;
  2693. #ifdef YYLSP_NEEDED
  2694.   YYLTYPE yylloc;
  2695. #endif
  2696. #endif
  2697.  
  2698.   YYSTYPE yyval;        /*  the variable used to return        */
  2699.                 /*  semantic values from the action    */
  2700.                 /*  routines                */
  2701.  
  2702.   int yylen;
  2703.  
  2704. #if YYDEBUG != 0
  2705.   if (yydebug)
  2706.     fprintf(stderr, "Starting parse\n");
  2707. #endif
  2708.  
  2709.   yystate = 0;
  2710.   yyerrstatus = 0;
  2711.   yynerrs = 0;
  2712.   yychar = YYEMPTY;        /* Cause a token to be read.  */
  2713.  
  2714.   /* Initialize stack pointers.
  2715.      Waste one element of value and location stack
  2716.      so that they stay on the same level as the state stack.  */
  2717.  
  2718.   yyssp = yyss - 1;
  2719.   yyvsp = yyvs;
  2720. #ifdef YYLSP_NEEDED
  2721.   yylsp = yyls;
  2722. #endif
  2723.  
  2724. /* Push a new state, which is found in  yystate  .  */
  2725. /* In all cases, when you get here, the value and location stacks
  2726.    have just been pushed. so pushing a state here evens the stacks.  */
  2727. yynewstate:
  2728.  
  2729.   *++yyssp = yystate;
  2730.  
  2731.   if (yyssp >= yyss + yystacksize - 1)
  2732.     {
  2733.       /* Give user a chance to reallocate the stack */
  2734.       /* Use copies of these so that the &'s don't force the real ones into memory. */
  2735.       YYSTYPE *yyvs1 = yyvs;
  2736.       short *yyss1 = yyss;
  2737. #ifdef YYLSP_NEEDED
  2738.       YYLTYPE *yyls1 = yyls;
  2739. #endif
  2740.  
  2741.       /* Get the current used size of the three stacks, in elements.  */
  2742.       int size = yyssp - yyss + 1;
  2743.  
  2744. #ifdef yyoverflow
  2745.       /* Each stack pointer address is followed by the size of
  2746.      the data in use in that stack, in bytes.  */
  2747.       yyoverflow("parser stack overflow",
  2748.          &yyss1, size * sizeof (*yyssp),
  2749.          &yyvs1, size * sizeof (*yyvsp),
  2750. #ifdef YYLSP_NEEDED
  2751.          &yyls1, size * sizeof (*yylsp),
  2752. #endif
  2753.          &yystacksize);
  2754.  
  2755.       yyss = yyss1; yyvs = yyvs1;
  2756. #ifdef YYLSP_NEEDED
  2757.       yyls = yyls1;
  2758. #endif
  2759. #else /* no yyoverflow */
  2760.       /* Extend the stack our own way.  */
  2761.       if (yystacksize >= YYMAXDEPTH)
  2762.     {
  2763.       yyerror("parser stack overflow");
  2764.       return 2;
  2765.     }
  2766.       yystacksize *= 2;
  2767.       if (yystacksize > YYMAXDEPTH)
  2768.     yystacksize = YYMAXDEPTH;
  2769.       yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
  2770.       __yy_bcopy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp));
  2771.       yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
  2772.       __yy_bcopy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp));
  2773. #ifdef YYLSP_NEEDED
  2774.       yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
  2775.       __yy_bcopy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp));
  2776. #endif
  2777. #endif /* no yyoverflow */
  2778.  
  2779.       yyssp = yyss + size - 1;
  2780.       yyvsp = yyvs + size - 1;
  2781. #ifdef YYLSP_NEEDED
  2782.       yylsp = yyls + size - 1;
  2783. #endif
  2784.  
  2785. #if YYDEBUG != 0
  2786.       if (yydebug)
  2787.     fprintf(stderr, "Stack size increased to %d\n", yystacksize);
  2788. #endif
  2789.  
  2790.       if (yyssp >= yyss + yystacksize - 1)
  2791.     YYABORT;
  2792.     }
  2793.  
  2794. #if YYDEBUG != 0
  2795.   if (yydebug)
  2796.     fprintf(stderr, "Entering state %d\n", yystate);
  2797. #endif
  2798.  
  2799.  yybackup:
  2800.  
  2801. /* Do appropriate processing given the current state.  */
  2802. /* Read a lookahead token if we need one and don't already have one.  */
  2803. /* yyresume: */
  2804.  
  2805.   /* First try to decide what to do without reference to lookahead token.  */
  2806.  
  2807.   yyn = yypact[yystate];
  2808.   if (yyn == YYFLAG)
  2809.     goto yydefault;
  2810.  
  2811.   /* Not known => get a lookahead token if don't already have one.  */
  2812.  
  2813.   /* yychar is either YYEMPTY or YYEOF
  2814.      or a valid token in external form.  */
  2815.  
  2816.   if (yychar == YYEMPTY)
  2817.     {
  2818. #if YYDEBUG != 0
  2819.       if (yydebug)
  2820.     fprintf(stderr, "Reading a token: ");
  2821. #endif
  2822.       yychar = YYLEX;
  2823.     }
  2824.  
  2825.   /* Convert token to internal form (in yychar1) for indexing tables with */
  2826.  
  2827.   if (yychar <= 0)        /* This means end of input. */
  2828.     {
  2829.       yychar1 = 0;
  2830.       yychar = YYEOF;        /* Don't call YYLEX any more */
  2831.  
  2832. #if YYDEBUG != 0
  2833.       if (yydebug)
  2834.     fprintf(stderr, "Now at end of input.\n");
  2835. #endif
  2836.     }
  2837.   else
  2838.     {
  2839.       yychar1 = YYTRANSLATE(yychar);
  2840.  
  2841. #if YYDEBUG != 0
  2842.       if (yydebug)
  2843.     {
  2844.       fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
  2845.       /* Give the individual parser a way to print the precise meaning
  2846.          of a token, for further debugging info.  */
  2847. #ifdef YYPRINT
  2848.       YYPRINT (stderr, yychar, yylval);
  2849. #endif
  2850.       fprintf (stderr, ")\n");
  2851.     }
  2852. #endif
  2853.     }
  2854.  
  2855.   yyn += yychar1;
  2856.   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
  2857.     goto yydefault;
  2858.  
  2859.   yyn = yytable[yyn];
  2860.  
  2861.   /* yyn is what to do for this token type in this state.
  2862.      Negative => reduce, -yyn is rule number.
  2863.      Positive => shift, yyn is new state.
  2864.        New state is final state => don't bother to shift,
  2865.        just return success.
  2866.      0, or most negative number => error.  */
  2867.  
  2868.   if (yyn < 0)
  2869.     {
  2870.       if (yyn == YYFLAG)
  2871.     goto yyerrlab;
  2872.       yyn = -yyn;
  2873.       goto yyreduce;
  2874.     }
  2875.   else if (yyn == 0)
  2876.     goto yyerrlab;
  2877.  
  2878.   if (yyn == YYFINAL)
  2879.     YYACCEPT;
  2880.  
  2881.   /* Shift the lookahead token.  */
  2882.  
  2883. #if YYDEBUG != 0
  2884.   if (yydebug)
  2885.     fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
  2886. #endif
  2887.  
  2888.   /* Discard the token being shifted unless it is eof.  */
  2889.   if (yychar != YYEOF)
  2890.     yychar = YYEMPTY;
  2891.  
  2892.   *++yyvsp = yylval;
  2893. #ifdef YYLSP_NEEDED
  2894.   *++yylsp = yylloc;
  2895. #endif
  2896.  
  2897.   /* count tokens shifted since error; after three, turn off error status.  */
  2898.   if (yyerrstatus) yyerrstatus--;
  2899.  
  2900.   yystate = yyn;
  2901.   goto yynewstate;
  2902.  
  2903. /* Do the default action for the current state.  */
  2904. yydefault:
  2905.  
  2906.   yyn = yydefact[yystate];
  2907.   if (yyn == 0)
  2908.     goto yyerrlab;
  2909.  
  2910. /* Do a reduction.  yyn is the number of a rule to reduce with.  */
  2911. yyreduce:
  2912.   yylen = yyr2[yyn];
  2913.   yyval = yyvsp[1-yylen]; /* implement default value of the action */
  2914.  
  2915. #if YYDEBUG != 0
  2916.   if (yydebug)
  2917.     {
  2918.       int i;
  2919.  
  2920.       fprintf (stderr, "Reducing via rule %d (line %d), ",
  2921.            yyn, yyrline[yyn]);
  2922.  
  2923.       /* Print the symboles being reduced, and their result.  */
  2924.       for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
  2925.     fprintf (stderr, "%s ", yytname[yyrhs[i]]);
  2926.       fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
  2927.     }
  2928. #endif
  2929.  
  2930.  
  2931.   switch (yyn) {
  2932.  
  2933. case 2:
  2934. #line 280 "cp-parse.y"
  2935. { finish_file (); ;
  2936.     break;}
  2937. case 3:
  2938. #line 288 "cp-parse.y"
  2939. { yyval.ttype = NULL_TREE; ;
  2940.     break;}
  2941. case 4:
  2942. #line 289 "cp-parse.y"
  2943. {yyval.ttype = NULL_TREE; ;
  2944.     break;}
  2945. case 5:
  2946. #line 291 "cp-parse.y"
  2947. {yyval.ttype = NULL_TREE; ;
  2948.     break;}
  2949. case 6:
  2950. #line 295 "cp-parse.y"
  2951. { have_extern_spec = 1;
  2952.           used_extern_spec = 0;
  2953.           yyval.ttype = NULL_TREE; ;
  2954.     break;}
  2955. case 7:
  2956. #line 300 "cp-parse.y"
  2957. { have_extern_spec = 0; ;
  2958.     break;}
  2959. case 8:
  2960. #line 305 "cp-parse.y"
  2961. { if (pending_inlines) do_pending_inlines (); ;
  2962.     break;}
  2963. case 9:
  2964. #line 307 "cp-parse.y"
  2965. { if (pending_inlines) do_pending_inlines (); ;
  2966.     break;}
  2967. case 10:
  2968. #line 309 "cp-parse.y"
  2969. { if (pending_inlines) do_pending_inlines (); ;
  2970.     break;}
  2971. case 12:
  2972. #line 312 "cp-parse.y"
  2973. { if (pedantic)
  2974.             pedwarn ("ANSI C++ forbids use of `asm' keyword");
  2975.           if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
  2976.           assemble_asm (yyvsp[-2].ttype); ;
  2977.     break;}
  2978. case 13:
  2979. #line 317 "cp-parse.y"
  2980. { pop_lang_context (); ;
  2981.     break;}
  2982. case 14:
  2983. #line 319 "cp-parse.y"
  2984. { pop_lang_context (); ;
  2985.     break;}
  2986. case 15:
  2987. #line 321 "cp-parse.y"
  2988. { if (pending_inlines) do_pending_inlines ();
  2989.           pop_lang_context (); ;
  2990.     break;}
  2991. case 16:
  2992. #line 324 "cp-parse.y"
  2993. { if (pending_inlines) do_pending_inlines ();
  2994.           pop_lang_context (); ;
  2995.     break;}
  2996. case 17:
  2997. #line 330 "cp-parse.y"
  2998. { push_lang_context (yyvsp[0].ttype); ;
  2999.     break;}
  3000. case 18:
  3001. #line 335 "cp-parse.y"
  3002. { begin_template_parm_list (); ;
  3003.     break;}
  3004. case 19:
  3005. #line 337 "cp-parse.y"
  3006. { yyval.ttype = end_template_parm_list (yyvsp[-1].ttype); ;
  3007.     break;}
  3008. case 20:
  3009. #line 342 "cp-parse.y"
  3010. { yyval.ttype = process_template_parm (0, yyvsp[0].ttype); ;
  3011.     break;}
  3012. case 21:
  3013. #line 344 "cp-parse.y"
  3014. { yyval.ttype = process_template_parm (yyvsp[-2].ttype, yyvsp[0].ttype); ;
  3015.     break;}
  3016. case 22:
  3017. #line 355 "cp-parse.y"
  3018. {
  3019.           if (yyvsp[-1].ttype != class_type_node)
  3020.             error ("template type parameter must use keyword `class'");
  3021.           yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE);
  3022.         ;
  3023.     break;}
  3024. case 23:
  3025. #line 361 "cp-parse.y"
  3026. {
  3027.           if (yyvsp[-3].ttype != class_type_node)
  3028.             error ("template type parameter must use keyword `class'");
  3029.           warning ("restricted template type parameters not yet implemented");
  3030.           yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype);
  3031.         ;
  3032.     break;}
  3033. case 24:
  3034. #line 368 "cp-parse.y"
  3035. {
  3036.           if (yyvsp[-2].ttype != class_type_node)
  3037.             error ("template type parameter must use keyword `class'");
  3038.           warning ("restricted template type parameters not yet implemented");
  3039.           yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype);
  3040.         ;
  3041.     break;}
  3042. case 27:
  3043. #line 381 "cp-parse.y"
  3044. { declare_overloaded (yyvsp[0].ttype); ;
  3045.     break;}
  3046. case 28:
  3047. #line 383 "cp-parse.y"
  3048. { declare_overloaded (yyvsp[0].ttype); ;
  3049.     break;}
  3050. case 29:
  3051. #line 390 "cp-parse.y"
  3052. { yychar = '{'; goto template1; ;
  3053.     break;}
  3054. case 31:
  3055. #line 393 "cp-parse.y"
  3056. { yychar = '{'; goto template1; ;
  3057.     break;}
  3058. case 33:
  3059. #line 396 "cp-parse.y"
  3060. { yychar = ':'; goto template1; ;
  3061.     break;}
  3062. case 35:
  3063. #line 399 "cp-parse.y"
  3064. {
  3065.           yychar = ':';
  3066.         template1:
  3067.           if (current_aggr == exception_type_node)
  3068.             error ("template type must define an aggregate or union");
  3069.           /* Maybe pedantic warning for union?
  3070.              How about an enum? :-)  */
  3071.           end_template_decl (yyvsp[-2].ttype, yyvsp[-1].ttype, current_aggr);
  3072.           reinit_parse_for_template (yychar, yyvsp[-2].ttype, yyvsp[-1].ttype);
  3073.           yychar = YYEMPTY;
  3074.         ;
  3075.     break;}
  3076. case 37:
  3077. #line 412 "cp-parse.y"
  3078. {
  3079.           end_template_decl (yyvsp[-2].ttype, yyvsp[-1].ttype, current_aggr);
  3080.           /* declare $2 as template name with $1 parm list */
  3081.         ;
  3082.     break;}
  3083. case 38:
  3084. #line 417 "cp-parse.y"
  3085. {
  3086.           end_template_decl (yyvsp[-2].ttype, yyvsp[-1].ttype, current_aggr);
  3087.           /* declare $2 as template name with $1 parm list */
  3088.         ;
  3089.     break;}
  3090. case 39:
  3091. #line 424 "cp-parse.y"
  3092. {
  3093.           tree d;
  3094.           int momentary;
  3095.           momentary = suspend_momentary ();
  3096.           d = start_decl (yyvsp[-4].ttype, /*current_declspecs*/0, 0, yyvsp[-3].ttype);
  3097.           cplus_decl_attributes (d, yyvsp[-1].ttype);
  3098.           finish_decl (d, NULL_TREE, yyvsp[-2].ttype, 0);
  3099.           end_template_decl (yyvsp[-5].ttype, d, 0);
  3100.           if (yyvsp[0].itype != ';')
  3101.             reinit_parse_for_template (yyvsp[0].itype, yyvsp[-5].ttype, d);
  3102.           resume_momentary (momentary);
  3103.         ;
  3104.     break;}
  3105. case 40:
  3106. #line 439 "cp-parse.y"
  3107. {
  3108.           tree d;
  3109.           int momentary;
  3110.  
  3111.           current_declspecs = yyvsp[-5].ttype;
  3112.           momentary = suspend_momentary ();
  3113.           d = start_decl (yyvsp[-4].ttype, current_declspecs, 0, yyvsp[-3].ttype);
  3114.           cplus_decl_attributes (d, yyvsp[-1].ttype);
  3115.           finish_decl (d, NULL_TREE, yyvsp[-2].ttype, 0);
  3116.           end_exception_decls ();
  3117.           end_template_decl (yyvsp[-6].ttype, d, 0);
  3118.           if (yyvsp[0].itype != ';')
  3119.             {
  3120.               reinit_parse_for_template (yyvsp[0].itype, yyvsp[-6].ttype, d);
  3121.               yychar = YYEMPTY;
  3122.             }
  3123.           note_list_got_semicolon (yyvsp[-5].ttype);
  3124.           resume_momentary (momentary);
  3125.         ;
  3126.     break;}
  3127. case 41:
  3128. #line 459 "cp-parse.y"
  3129. {
  3130.           tree d = start_decl (yyvsp[-1].ttype, yyvsp[-2].ttype, 0, NULL_TREE);
  3131.           finish_decl (d, NULL_TREE, NULL_TREE, 0);
  3132.           end_template_decl (yyvsp[-3].ttype, d, 0);
  3133.           if (yyvsp[0].itype != ';')
  3134.             reinit_parse_for_template (yyvsp[0].itype, yyvsp[-3].ttype, d);
  3135.         ;
  3136.     break;}
  3137. case 42:
  3138. #line 467 "cp-parse.y"
  3139. { end_template_decl (yyvsp[-2].ttype, 0, 0); ;
  3140.     break;}
  3141. case 43:
  3142. #line 468 "cp-parse.y"
  3143. { end_template_decl (yyvsp[-2].ttype, 0, 0); ;
  3144.     break;}
  3145. case 44:
  3146. #line 471 "cp-parse.y"
  3147. { yyval.itype = '{'; ;
  3148.     break;}
  3149. case 45:
  3150. #line 472 "cp-parse.y"
  3151. { yyval.itype = ':'; ;
  3152.     break;}
  3153. case 46:
  3154. #line 473 "cp-parse.y"
  3155. { yyval.itype = ';'; ;
  3156.     break;}
  3157. case 47:
  3158. #line 474 "cp-parse.y"
  3159. { yyval.itype = '='; ;
  3160.     break;}
  3161. case 48:
  3162. #line 475 "cp-parse.y"
  3163. { yyval.itype = RETURN; ;
  3164.     break;}
  3165. case 49:
  3166. #line 480 "cp-parse.y"
  3167. { if (pedantic)
  3168.             pedwarn ("ANSI C++ forbids data definition with no type or storage class");
  3169.             else if (! flag_traditional && ! have_extern_spec)
  3170.               warning ("data definition has no type or storage class"); ;
  3171.     break;}
  3172. case 50:
  3173. #line 485 "cp-parse.y"
  3174. {;
  3175.     break;}
  3176. case 51:
  3177. #line 488 "cp-parse.y"
  3178. { tree d;
  3179.           d = start_decl (yyvsp[-1].ttype, yyval.ttype, 0, NULL_TREE);
  3180.           finish_decl (d, NULL_TREE, NULL_TREE, 0);
  3181.         ;
  3182.     break;}
  3183. case 52:
  3184. #line 493 "cp-parse.y"
  3185. {
  3186.           end_exception_decls ();
  3187.           note_list_got_semicolon (yyval.ttype);
  3188.         ;
  3189.     break;}
  3190. case 53:
  3191. #line 499 "cp-parse.y"
  3192. { tree d;
  3193.           d = start_decl (yyvsp[-1].ttype, yyval.ttype, 0, NULL_TREE);
  3194.           finish_decl (d, NULL_TREE, NULL_TREE, 0);
  3195.           end_exception_decls ();
  3196.           note_list_got_semicolon (yyval.ttype);
  3197.         ;
  3198.     break;}
  3199. case 54:
  3200. #line 506 "cp-parse.y"
  3201. { pedwarn ("empty declaration"); ;
  3202.     break;}
  3203. case 55:
  3204. #line 508 "cp-parse.y"
  3205. {
  3206.         tree t = yyval.ttype;
  3207.         shadow_tag (t);
  3208.         if (TREE_CODE (t) == TREE_LIST
  3209.         && TREE_PURPOSE (t) == NULL_TREE)
  3210.           {
  3211.         t = TREE_VALUE (t);
  3212.         if (TREE_CODE (t) == RECORD_TYPE)
  3213.           {
  3214.             if (CLASSTYPE_USE_TEMPLATE (t) == 0)
  3215.               CLASSTYPE_USE_TEMPLATE (t) = 2;
  3216.             else if (CLASSTYPE_USE_TEMPLATE (t) == 1)
  3217.               error ("override declaration for already-expanded template");
  3218.           }
  3219.           }
  3220.         note_list_got_semicolon (yyval.ttype);
  3221.       ;
  3222.     break;}
  3223. case 59:
  3224. #line 532 "cp-parse.y"
  3225. {
  3226.           finish_function (lineno, 1);
  3227.           /* finish_function performs these three statements:
  3228.  
  3229.              expand_end_bindings (getdecls (), 1, 0);
  3230.              poplevel (1, 1, 0);
  3231.  
  3232.              expand_end_bindings (0, 0, 0);
  3233.              poplevel (0, 0, 1);
  3234.              */
  3235.           if (yyval.ttype) process_next_inline (yyval.ttype);
  3236.         ;
  3237.     break;}
  3238. case 60:
  3239. #line 545 "cp-parse.y"
  3240. {
  3241.           finish_function (lineno, 1);
  3242.           /* finish_function performs these three statements:
  3243.  
  3244.              expand_end_bindings (getdecls (), 1, 0);
  3245.              poplevel (1, 1, 0);
  3246.  
  3247.              expand_end_bindings (0, 0, 0);
  3248.              poplevel (0, 0, 1);
  3249.              */
  3250.           if (yyval.ttype) process_next_inline (yyval.ttype);
  3251.         ;
  3252.     break;}
  3253. case 61:
  3254. #line 558 "cp-parse.y"
  3255. { finish_function (lineno, 0);
  3256.           if (yyval.ttype) process_next_inline (yyval.ttype); ;
  3257.     break;}
  3258. case 62:
  3259. #line 561 "cp-parse.y"
  3260. { finish_function (lineno, 0);
  3261.           if (yyval.ttype) process_next_inline (yyval.ttype); ;
  3262.     break;}
  3263. case 63:
  3264. #line 564 "cp-parse.y"
  3265. { finish_function (lineno, 0);
  3266.           if (yyval.ttype) process_next_inline (yyval.ttype); ;
  3267.     break;}
  3268. case 64:
  3269. #line 567 "cp-parse.y"
  3270. {;
  3271.     break;}
  3272. case 65:
  3273. #line 569 "cp-parse.y"
  3274. {;
  3275.     break;}
  3276. case 66:
  3277. #line 571 "cp-parse.y"
  3278. {;
  3279.     break;}
  3280. case 67:
  3281. #line 576 "cp-parse.y"
  3282. { if (! start_function (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype, 0))
  3283.             YYERROR1;
  3284.           reinit_parse_for_function ();
  3285.           yyval.ttype = NULL_TREE; ;
  3286.     break;}
  3287. case 68:
  3288. #line 581 "cp-parse.y"
  3289. { if (! start_function (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype, 0))
  3290.             YYERROR1;
  3291.           reinit_parse_for_function ();
  3292.           yyval.ttype = NULL_TREE; ;
  3293.     break;}
  3294. case 69:
  3295. #line 586 "cp-parse.y"
  3296. { if (! start_function (NULL_TREE, yyval.ttype, yyvsp[0].ttype, 0))
  3297.             YYERROR1;
  3298.           reinit_parse_for_function ();
  3299.           yyval.ttype = NULL_TREE; ;
  3300.     break;}
  3301. case 70:
  3302. #line 591 "cp-parse.y"
  3303. { if (! start_function (NULL_TREE, build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype), yyvsp[0].ttype, 0))
  3304.             YYERROR1;
  3305.           reinit_parse_for_function ();
  3306.           yyval.ttype = NULL_TREE; ;
  3307.     break;}
  3308. case 71:
  3309. #line 596 "cp-parse.y"
  3310. { if (! start_function (NULL_TREE, build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype), yyvsp[0].ttype, 0))
  3311.             YYERROR1;
  3312.           reinit_parse_for_function ();
  3313.           yyval.ttype = NULL_TREE; ;
  3314.     break;}
  3315. case 72:
  3316. #line 601 "cp-parse.y"
  3317. { if (! start_function (NULL_TREE, build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[-1].ttype), yyvsp[0].ttype, 0))
  3318.             YYERROR1;
  3319.           reinit_parse_for_function ();
  3320.           yyval.ttype = NULL_TREE; ;
  3321.     break;}
  3322. case 73:
  3323. #line 606 "cp-parse.y"
  3324. { if (! start_function (NULL_TREE, build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[-1].ttype), yyvsp[0].ttype, 0))
  3325.             YYERROR1;
  3326.           reinit_parse_for_function ();
  3327.           yyval.ttype = NULL_TREE; ;
  3328.     break;}
  3329. case 74:
  3330. #line 611 "cp-parse.y"
  3331. { start_function (NULL_TREE, TREE_VALUE (yyval.ttype), NULL_TREE, 1);
  3332.           reinit_parse_for_function (); ;
  3333.     break;}
  3334. case 75:
  3335. #line 618 "cp-parse.y"
  3336. {
  3337.           tree decl = build_parse_node (CALL_EXPR, TREE_VALUE (yyval.ttype), yyvsp[-3].ttype, yyvsp[-1].ttype);
  3338.           yyval.ttype = start_method (TREE_CHAIN (yyval.ttype), decl, yyvsp[0].ttype);
  3339.           if (! yyval.ttype)
  3340.             YYERROR1;
  3341.           if (yychar == YYEMPTY)
  3342.             yychar = YYLEX;
  3343.           reinit_parse_for_method (yychar, yyval.ttype); ;
  3344.     break;}
  3345. case 76:
  3346. #line 627 "cp-parse.y"
  3347. {
  3348.           tree decl = build_parse_node (CALL_EXPR, TREE_VALUE (yyval.ttype), empty_parms (), yyvsp[-1].ttype);
  3349.           yyval.ttype = start_method (TREE_CHAIN (yyval.ttype), decl, yyvsp[0].ttype);
  3350.           if (! yyval.ttype)
  3351.             YYERROR1;
  3352.           if (yychar == YYEMPTY)
  3353.             yychar = YYLEX;
  3354.           reinit_parse_for_method (yychar, yyval.ttype); ;
  3355.     break;}
  3356. case 77:
  3357. #line 636 "cp-parse.y"
  3358. { yyval.ttype = start_method (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
  3359.           if (! yyval.ttype)
  3360.             YYERROR1;
  3361.           if (yychar == YYEMPTY)
  3362.             yychar = YYLEX;
  3363.           reinit_parse_for_method (yychar, yyval.ttype); ;
  3364.     break;}
  3365. case 78:
  3366. #line 643 "cp-parse.y"
  3367. {
  3368.           tree decl = build_parse_node (CALL_EXPR, TREE_VALUE (yyval.ttype), yyvsp[-3].ttype, yyvsp[-1].ttype);
  3369.           yyval.ttype = start_method (TREE_CHAIN (yyval.ttype), decl, yyvsp[0].ttype);
  3370.           if (! yyval.ttype)
  3371.             YYERROR1;
  3372.           if (yychar == YYEMPTY)
  3373.             yychar = YYLEX;
  3374.           reinit_parse_for_method (yychar, yyval.ttype); ;
  3375.     break;}
  3376. case 79:
  3377. #line 652 "cp-parse.y"
  3378. {
  3379.           tree decl = build_parse_node (CALL_EXPR, TREE_VALUE (yyval.ttype), empty_parms (), yyvsp[-1].ttype);
  3380.           yyval.ttype = start_method (TREE_CHAIN (yyval.ttype), decl, yyvsp[0].ttype);
  3381.           if (! yyval.ttype)
  3382.             YYERROR1;
  3383.           if (yychar == YYEMPTY)
  3384.             yychar = YYLEX;
  3385.           reinit_parse_for_method (yychar, yyval.ttype); ;
  3386.     break;}
  3387. case 80:
  3388. #line 661 "cp-parse.y"
  3389. { yyval.ttype = start_method (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
  3390.           if (! yyval.ttype)
  3391.             YYERROR1;
  3392.           if (yychar == YYEMPTY)
  3393.             yychar = YYLEX;
  3394.           reinit_parse_for_method (yychar, yyval.ttype); ;
  3395.     break;}
  3396. case 81:
  3397. #line 668 "cp-parse.y"
  3398. { yyval.ttype = start_method (NULL_TREE, yyval.ttype, yyvsp[0].ttype);
  3399.           if (! yyval.ttype)
  3400.             YYERROR1;
  3401.           if (yychar == YYEMPTY)
  3402.             yychar = YYLEX;
  3403.           reinit_parse_for_method (yychar, yyval.ttype); ;
  3404.     break;}
  3405. case 82:
  3406. #line 677 "cp-parse.y"
  3407. {
  3408.           if (! current_function_parms_stored)
  3409.             store_parm_decls ();
  3410.           yyval.ttype = yyvsp[0].ttype;
  3411.         ;
  3412.     break;}
  3413. case 83:
  3414. #line 685 "cp-parse.y"
  3415. { store_return_init (yyval.ttype, NULL_TREE); ;
  3416.     break;}
  3417. case 84:
  3418. #line 687 "cp-parse.y"
  3419. { store_return_init (yyval.ttype, yyvsp[0].ttype); ;
  3420.     break;}
  3421. case 85:
  3422. #line 689 "cp-parse.y"
  3423. { store_return_init (yyval.ttype, yyvsp[-1].ttype); ;
  3424.     break;}
  3425. case 86:
  3426. #line 691 "cp-parse.y"
  3427. { store_return_init (yyval.ttype, NULL_TREE); ;
  3428.     break;}
  3429. case 87:
  3430. #line 696 "cp-parse.y"
  3431. {
  3432.           if (yyvsp[0].itype == 0)
  3433.             error ("no base initializers given following ':'");
  3434.           setup_vtbl_ptr ();
  3435.         ;
  3436.     break;}
  3437. case 88:
  3438. #line 705 "cp-parse.y"
  3439. {
  3440.           if (! current_function_parms_stored)
  3441.             store_parm_decls ();
  3442.  
  3443.           /* Flag that we are processing base and member initializers.  */
  3444.           current_vtable_decl = error_mark_node;
  3445.  
  3446.           if (DECL_CONSTRUCTOR_P (current_function_decl))
  3447.             {
  3448.               /* Make a contour for the initializer list.  */
  3449.               pushlevel (0);
  3450.               clear_last_expr ();
  3451.               expand_start_bindings (0);
  3452.             }
  3453.           else if (current_class_type == NULL_TREE)
  3454.             error ("base initializers not allowed for non-member functions");
  3455.           else if (! DECL_CONSTRUCTOR_P (current_function_decl))
  3456.             error ("only constructors take base initializers");
  3457.         ;
  3458.     break;}
  3459. case 89:
  3460. #line 728 "cp-parse.y"
  3461. { yyval.itype = 0; ;
  3462.     break;}
  3463. case 90:
  3464. #line 730 "cp-parse.y"
  3465. { yyval.itype = 1; ;
  3466.     break;}
  3467. case 93:
  3468. #line 736 "cp-parse.y"
  3469. {
  3470.           if (current_class_name && !flag_traditional)
  3471.             pedwarn ("ANSI C++ forbids old style base class initialization",
  3472.                  IDENTIFIER_POINTER (current_class_name));
  3473.           expand_member_init (C_C_D, NULL_TREE, yyvsp[-1].ttype);
  3474.         ;
  3475.     break;}
  3476. case 94:
  3477. #line 743 "cp-parse.y"
  3478. {
  3479.           if (current_class_name && !flag_traditional)
  3480.             pedwarn ("ANSI C++ forbids old style base class initialization",
  3481.                  IDENTIFIER_POINTER (current_class_name));
  3482.           expand_member_init (C_C_D, NULL_TREE, void_type_node);
  3483.         ;
  3484.     break;}
  3485. case 95:
  3486. #line 750 "cp-parse.y"
  3487. {
  3488.           expand_member_init (C_C_D, yyval.ttype, yyvsp[-1].ttype);
  3489.         ;
  3490.     break;}
  3491. case 96:
  3492. #line 754 "cp-parse.y"
  3493. { expand_member_init (C_C_D, yyval.ttype, void_type_node); ;
  3494.     break;}
  3495. case 97:
  3496. #line 756 "cp-parse.y"
  3497. { expand_member_init (C_C_D, yyval.ttype, yyvsp[-1].ttype); ;
  3498.     break;}
  3499. case 98:
  3500. #line 758 "cp-parse.y"
  3501. { expand_member_init (C_C_D, yyval.ttype, void_type_node); ;
  3502.     break;}
  3503. case 99:
  3504. #line 760 "cp-parse.y"
  3505. { expand_member_init (C_C_D, yyval.ttype, yyvsp[-1].ttype); ;
  3506.     break;}
  3507. case 100:
  3508. #line 762 "cp-parse.y"
  3509. { expand_member_init (C_C_D, yyval.ttype, void_type_node); ;
  3510.     break;}
  3511. case 101:
  3512. #line 764 "cp-parse.y"
  3513. {
  3514.           do_member_init (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype);
  3515.         ;
  3516.     break;}
  3517. case 102:
  3518. #line 768 "cp-parse.y"
  3519. {
  3520.           do_member_init (yyval.ttype, yyvsp[-1].ttype, void_type_node);
  3521.         ;
  3522.     break;}
  3523. case 112:
  3524. #line 792 "cp-parse.y"
  3525. { yyval.ttype = build_parse_node (BIT_NOT_EXPR,yyvsp[0].ttype);;
  3526.     break;}
  3527. case 114:
  3528. #line 798 "cp-parse.y"
  3529. {
  3530.             extern tree template_type_seen_before_scope;
  3531.  
  3532.           if (yyvsp[0].ttype) 
  3533.             yyval.ttype = yyvsp[0].ttype;
  3534.           else if (yyval.ttype != error_mark_node)
  3535.             yyval.ttype = IDENTIFIER_TYPE_VALUE (yyval.ttype);
  3536.           /* This is a kludge: In order to detect nested types inside
  3537.            * template classes, we have to tell the lexer that it should
  3538.            * try to replace a following SCOPE token with the correct
  3539.            * SCOPED_TYPENAME for the nested type.  This SCOPED_TYPENAME
  3540.            * token will be handled in the rule "scoped_typename".
  3541.            * - niklas@appli.se */
  3542.           if (yychar == SCOPE) {
  3543.             template_type_seen_before_scope = TYPE_IDENTIFIER (yyval.ttype);
  3544.             yychar = YYLEX;
  3545.           }
  3546.         ;
  3547.     break;}
  3548. case 115:
  3549. #line 820 "cp-parse.y"
  3550. { yyval.ttype = lookup_template_class (yyval.ttype, yyvsp[-1].ttype); ;
  3551.     break;}
  3552. case 116:
  3553. #line 822 "cp-parse.y"
  3554. { yyval.ttype = lookup_template_class (yyval.ttype, yyvsp[-1].ttype); ;
  3555.     break;}
  3556. case 117:
  3557. #line 828 "cp-parse.y"
  3558. { yyungetc ('{', 1); yyval.ttype = 0; ;
  3559.     break;}
  3560. case 118:
  3561. #line 829 "cp-parse.y"
  3562. { yyungetc (':', 1); yyval.ttype = 0; ;
  3563.     break;}
  3564. case 119:
  3565. #line 831 "cp-parse.y"
  3566. { yyval.ttype = instantiate_class_template (yyvsp[0].ttype, 1); ;
  3567.     break;}
  3568. case 120:
  3569. #line 836 "cp-parse.y"
  3570. { yyval.ttype = instantiate_class_template (yyvsp[0].ttype, 1); ;
  3571.     break;}
  3572. case 121:
  3573. #line 841 "cp-parse.y"
  3574. { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
  3575.     break;}
  3576. case 122:
  3577. #line 843 "cp-parse.y"
  3578. { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
  3579.     break;}
  3580. case 123:
  3581. #line 848 "cp-parse.y"
  3582. { yyval.ttype = groktypename (yyval.ttype); ;
  3583.     break;}
  3584. case 125:
  3585. #line 854 "cp-parse.y"
  3586. {
  3587.           tree t, decl, id, tmpl;
  3588.  
  3589.           id = TREE_VALUE (yyvsp[-1].ttype);
  3590.           tmpl = TREE_PURPOSE (IDENTIFIER_TEMPLATE (id));
  3591.           t = xref_tag (DECL_TEMPLATE_INFO (tmpl)->aggr, id, yyvsp[0].ttype);
  3592.           set_current_level_tags_transparency (1);
  3593.           my_friendly_assert (TREE_CODE (t) == RECORD_TYPE, 257);
  3594.           yyval.ttype = t;
  3595.  
  3596.           /* Now, put a copy of the decl in global scope, to avoid
  3597.              recursive expansion.  */
  3598.           decl = IDENTIFIER_LOCAL_VALUE (id);
  3599.           if (!decl)
  3600.             decl = IDENTIFIER_CLASS_VALUE (id);
  3601.           /* Now, put a copy of the decl in global scope, to avoid
  3602.              recursive expansion.  */
  3603.                   if (decl)
  3604.                     {
  3605.               /* Need to copy it to clear the chain pointer,
  3606.              and need to get it into permanent storage.  */
  3607.                       my_friendly_assert (TREE_CODE (decl) == TYPE_DECL, 258);
  3608.               push_obstacks (&permanent_obstack, &permanent_obstack);
  3609.                       decl = copy_node (decl);
  3610.               if (DECL_LANG_SPECIFIC (decl))
  3611.             copy_lang_decl (decl);
  3612.               pop_obstacks ();
  3613.               pushdecl_top_level (decl);
  3614.             }
  3615.         ;
  3616.     break;}
  3617. case 126:
  3618. #line 885 "cp-parse.y"
  3619. {
  3620.           extern void end_template_instantiation ();
  3621.           int old_interface = interface_unknown;
  3622.  
  3623.           interface_unknown = 1;
  3624.           yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-1].ttype, 0, 0);
  3625.  
  3626.           pop_obstacks ();
  3627.           end_template_instantiation (yyvsp[-5].ttype, yyvsp[-3].ttype);
  3628.  
  3629.                   /* Now go after the methods & class data.  */
  3630.           old_interface = interface_unknown;
  3631.           interface_unknown = 1;
  3632.                   instantiate_member_templates (yyvsp[-5].ttype);
  3633.           interface_unknown = old_interface;
  3634.           CLASSTYPE_GOT_SEMICOLON (yyval.ttype) = 1;
  3635.         ;
  3636.     break;}
  3637. case 127:
  3638. #line 906 "cp-parse.y"
  3639. { yyval.ttype = NULL_TREE; ;
  3640.     break;}
  3641. case 128:
  3642. #line 908 "cp-parse.y"
  3643. { yyval.ttype = yyvsp[0].ttype; ;
  3644.     break;}
  3645. case 129:
  3646. #line 913 "cp-parse.y"
  3647. { yyval.ttype = NULL_TREE; /* never used from here... */;
  3648.     break;}
  3649. case 130:
  3650. #line 915 "cp-parse.y"
  3651. { yyval.ttype = yyvsp[-1].ttype; /*???*/ ;
  3652.     break;}
  3653. case 131:
  3654. #line 919 "cp-parse.y"
  3655. { yyval.code = NEGATE_EXPR; ;
  3656.     break;}
  3657. case 132:
  3658. #line 921 "cp-parse.y"
  3659. { yyval.code = CONVERT_EXPR; ;
  3660.     break;}
  3661. case 133:
  3662. #line 923 "cp-parse.y"
  3663. { yyval.code = PREINCREMENT_EXPR; ;
  3664.     break;}
  3665. case 134:
  3666. #line 925 "cp-parse.y"
  3667. { yyval.code = PREDECREMENT_EXPR; ;
  3668.     break;}
  3669. case 135:
  3670. #line 927 "cp-parse.y"
  3671. { yyval.code = TRUTH_NOT_EXPR; ;
  3672.     break;}
  3673. case 136:
  3674. #line 931 "cp-parse.y"
  3675. { yyval.ttype = build_x_compound_expr (yyval.ttype); ;
  3676.     break;}
  3677. case 138:
  3678. #line 938 "cp-parse.y"
  3679. { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
  3680.     break;}
  3681. case 139:
  3682. #line 940 "cp-parse.y"
  3683. { chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
  3684.     break;}
  3685. case 140:
  3686. #line 942 "cp-parse.y"
  3687. { chainon (yyval.ttype, build_tree_list (NULL_TREE, error_mark_node)); ;
  3688.     break;}
  3689. case 141:
  3690. #line 947 "cp-parse.y"
  3691. {
  3692.           if (TREE_CODE (yyval.ttype) == TYPE_EXPR)
  3693.             yyval.ttype = build_component_type_expr (C_C_D, yyval.ttype, NULL_TREE, 1);
  3694.         ;
  3695.     break;}
  3696. case 142:
  3697. #line 953 "cp-parse.y"
  3698. { yyvsp[0].itype = pedantic;
  3699.           pedantic = 0; ;
  3700.     break;}
  3701. case 143:
  3702. #line 956 "cp-parse.y"
  3703. { yyval.ttype = yyvsp[0].ttype;
  3704.           pedantic = yyvsp[-2].itype; ;
  3705.     break;}
  3706. case 144:
  3707. #line 959 "cp-parse.y"
  3708. { yyval.ttype = build_x_indirect_ref (yyvsp[0].ttype, "unary *"); ;
  3709.     break;}
  3710. case 145:
  3711. #line 961 "cp-parse.y"
  3712. { yyval.ttype = build_x_unary_op (ADDR_EXPR, yyvsp[0].ttype); ;
  3713.     break;}
  3714. case 146:
  3715. #line 963 "cp-parse.y"
  3716. { yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, yyvsp[0].ttype); ;
  3717.     break;}
  3718. case 147:
  3719. #line 965 "cp-parse.y"
  3720. { yyval.ttype = build_x_unary_op (yyval.ttype, yyvsp[0].ttype);
  3721.           if (yyvsp[-1].code == NEGATE_EXPR && TREE_CODE (yyvsp[0].ttype) == INTEGER_CST)
  3722.             TREE_NEGATED_INT (yyval.ttype) = 1;
  3723.         ;
  3724.     break;}
  3725. case 148:
  3726. #line 971 "cp-parse.y"
  3727. { tree label = lookup_label (yyvsp[0].ttype);
  3728.           TREE_USED (label) = 1;
  3729.           yyval.ttype = build1 (ADDR_EXPR, ptr_type_node, label);
  3730.           TREE_CONSTANT (yyval.ttype) = 1; ;
  3731.     break;}
  3732. case 149:
  3733. #line 976 "cp-parse.y"
  3734. { if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF
  3735.               && DECL_BIT_FIELD (TREE_OPERAND (yyvsp[0].ttype, 1)))
  3736.             error ("sizeof applied to a bit-field");
  3737.           /* ANSI says arrays and functions are converted inside comma.
  3738.              But we can't really convert them in build_compound_expr
  3739.              because that would break commas in lvalues.
  3740.              So do the conversion here if operand was a comma.  */
  3741.           if (TREE_CODE (yyvsp[0].ttype) == COMPOUND_EXPR
  3742.               && (TREE_CODE (TREE_TYPE (yyvsp[0].ttype)) == ARRAY_TYPE
  3743.               || TREE_CODE (TREE_TYPE (yyvsp[0].ttype)) == FUNCTION_TYPE))
  3744.             yyvsp[0].ttype = default_conversion (yyvsp[0].ttype);
  3745.           yyval.ttype = c_sizeof (TREE_TYPE (yyvsp[0].ttype)); ;
  3746.     break;}
  3747. case 150:
  3748. #line 989 "cp-parse.y"
  3749. { yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ttype)); ;
  3750.     break;}
  3751. case 151:
  3752. #line 991 "cp-parse.y"
  3753. { if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF
  3754.               && DECL_BIT_FIELD (TREE_OPERAND (yyvsp[0].ttype, 1)))
  3755.             error ("`__alignof' applied to a bit-field");
  3756.           if (TREE_CODE (yyvsp[0].ttype) == INDIRECT_REF)
  3757.             {
  3758.               tree t = TREE_OPERAND (yyvsp[0].ttype, 0);
  3759.               tree best = t;
  3760.               int bestalign = TYPE_ALIGN (TREE_TYPE (TREE_TYPE (t)));
  3761.               while (TREE_CODE (t) == NOP_EXPR
  3762.                  && TREE_CODE (TREE_TYPE (TREE_OPERAND (t, 0))) == POINTER_TYPE)
  3763.             {
  3764.               int thisalign;
  3765.               t = TREE_OPERAND (t, 0);
  3766.               thisalign = TYPE_ALIGN (TREE_TYPE (TREE_TYPE (t)));
  3767.               if (thisalign > bestalign)
  3768.                 best = t, bestalign = thisalign;
  3769.             }
  3770.               yyval.ttype = c_alignof (TREE_TYPE (TREE_TYPE (best)));
  3771.             }
  3772.           else
  3773.             {
  3774.               /* ANSI says arrays and fns are converted inside comma.
  3775.              But we can't convert them in build_compound_expr
  3776.              because that would break commas in lvalues.
  3777.              So do the conversion here if operand was a comma.  */
  3778.               if (TREE_CODE (yyvsp[0].ttype) == COMPOUND_EXPR
  3779.               && (TREE_CODE (TREE_TYPE (yyvsp[0].ttype)) == ARRAY_TYPE
  3780.                   || TREE_CODE (TREE_TYPE (yyvsp[0].ttype)) == FUNCTION_TYPE))
  3781.             yyvsp[0].ttype = default_conversion (yyvsp[0].ttype);
  3782.               yyval.ttype = c_alignof (TREE_TYPE (yyvsp[0].ttype));
  3783.             }
  3784.         ;
  3785.     break;}
  3786. case 152:
  3787. #line 1024 "cp-parse.y"
  3788. { yyval.ttype = c_alignof (groktypename (yyvsp[-1].ttype)); ;
  3789.     break;}
  3790. case 153:
  3791. #line 1027 "cp-parse.y"
  3792. { yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE, yyval.ttype); ;
  3793.     break;}
  3794. case 154:
  3795. #line 1029 "cp-parse.y"
  3796. { yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE, yyval.ttype); ;
  3797.     break;}
  3798. case 155:
  3799. #line 1031 "cp-parse.y"
  3800. { yyval.ttype = build_new (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyval.ttype); ;
  3801.     break;}
  3802. case 156:
  3803. #line 1033 "cp-parse.y"
  3804. { yyval.ttype = build_new (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyval.ttype); ;
  3805.     break;}
  3806. case 157:
  3807. #line 1035 "cp-parse.y"
  3808. { yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE, yyval.ttype); ;
  3809.     break;}
  3810. case 158:
  3811. #line 1037 "cp-parse.y"
  3812. { yyval.ttype = build_new (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE, yyval.ttype); ;
  3813.     break;}
  3814. case 159:
  3815. #line 1039 "cp-parse.y"
  3816. { yyval.ttype = build_new (yyvsp[-3].ttype, yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
  3817.     break;}
  3818. case 160:
  3819. #line 1041 "cp-parse.y"
  3820. { yyval.ttype = build_new (yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
  3821.     break;}
  3822. case 161:
  3823. #line 1049 "cp-parse.y"
  3824. {
  3825.           tree absdcl, typename;
  3826.  
  3827.         illegal_new_array:
  3828.           absdcl = build_parse_node (ARRAY_REF, yyvsp[-4].ttype, yyvsp[-1].ttype);
  3829.           typename = build_decl_list (yyvsp[-5].ttype, absdcl);
  3830.           pedwarn ("ANSI C++ forbids array dimensions with parenthesized type");
  3831.           yyval.ttype = build_new (yyvsp[-7].ttype, typename, NULL_TREE, yyval.ttype);
  3832.         ;
  3833.     break;}
  3834. case 162:
  3835. #line 1059 "cp-parse.y"
  3836. { goto illegal_new_array; ;
  3837.     break;}
  3838. case 163:
  3839. #line 1062 "cp-parse.y"
  3840. { yyval.ttype = build_new (yyvsp[-4].ttype, build_decl_list (yyvsp[-2].ttype, yyvsp[-1].ttype), NULL_TREE, yyval.ttype); ;
  3841.     break;}
  3842. case 164:
  3843. #line 1064 "cp-parse.y"
  3844. { yyval.ttype = build_new (yyvsp[-5].ttype, build_decl_list (yyvsp[-2].ttype, yyvsp[-1].ttype), NULL_TREE, yyval.ttype); ;
  3845.     break;}
  3846. case 165:
  3847. #line 1066 "cp-parse.y"
  3848. { yyval.ttype = build_new (yyvsp[-4].ttype, build_decl_list (yyvsp[-2].ttype, yyvsp[-1].ttype), NULL_TREE, yyval.ttype); ;
  3849.     break;}
  3850. case 166:
  3851. #line 1068 "cp-parse.y"
  3852. { yyval.ttype = build_new (yyvsp[-5].ttype, build_decl_list (yyvsp[-2].ttype, yyvsp[-1].ttype), NULL_TREE, yyval.ttype); ;
  3853.     break;}
  3854. case 167:
  3855. #line 1071 "cp-parse.y"
  3856. { yyungetc (':', 1); yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE, yyval.ttype); ;
  3857.     break;}
  3858. case 168:
  3859. #line 1073 "cp-parse.y"
  3860. { yyungetc (':', 1); yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE, yyval.ttype); ;
  3861.     break;}
  3862. case 169:
  3863. #line 1076 "cp-parse.y"
  3864. { tree expr = stabilize_reference (convert_from_reference (yyvsp[0].ttype));
  3865.           tree type = TREE_TYPE (expr);
  3866.  
  3867.           if (TREE_CODE (type) != POINTER_TYPE)
  3868.             {
  3869.               error ("non-pointer type to `delete'");
  3870.               yyval.ttype = error_mark_node;
  3871.               break;
  3872.             }
  3873.           else if (integer_zerop (expr))
  3874.             {
  3875.               /* ANSI C++ June 5 1992 WP 5.3.4.  Deleting a pointer
  3876.              with the value zero is legal and has no effect.  */
  3877.               yyval.ttype = build1 (NOP_EXPR, void_type_node, expr);
  3878.               break;
  3879.             }
  3880.           else if (TREE_READONLY (TREE_TYPE (type)))
  3881.             {
  3882.               error ("`const *' cannot be deleted");
  3883.               yyval.ttype = error_mark_node;
  3884.               break;
  3885.             }
  3886.           yyval.ttype = build_delete (type, expr, integer_three_node,
  3887.                      LOOKUP_NORMAL|LOOKUP_HAS_IN_CHARGE,
  3888.                      TYPE_HAS_DESTRUCTOR (TREE_TYPE (type)),
  3889.                      0);
  3890.         ;
  3891.     break;}
  3892. case 170:
  3893. #line 1104 "cp-parse.y"
  3894. {
  3895.           tree exp = stabilize_reference (convert_from_reference (yyvsp[0].ttype));
  3896.           tree type = TREE_TYPE (exp);
  3897.           tree elt_size = c_sizeof (type);
  3898.  
  3899.           if (yychar == YYEMPTY)
  3900.             yychar = YYLEX;
  3901.  
  3902.           if (TREE_CODE (type) == POINTER_TYPE
  3903.               && TREE_READONLY (TREE_TYPE (type)))
  3904.             {
  3905.               error ("`const *' cannot be deleted");
  3906.               yyval.ttype = error_mark_node;
  3907.               break;
  3908.             }
  3909.           yyval.ttype = build_vec_delete (exp, NULL_TREE, elt_size, NULL_TREE,
  3910.                      integer_one_node, integer_two_node);
  3911.         ;
  3912.     break;}
  3913. case 171:
  3914. #line 1123 "cp-parse.y"
  3915. {
  3916.           tree maxindex = build_binary_op (MINUS_EXPR, yyvsp[-2].ttype,
  3917.                            integer_one_node);
  3918.           tree exp = stabilize_reference (convert_from_reference (yyvsp[0].ttype));
  3919.           tree type = TREE_TYPE (exp);
  3920.           tree elt_size = c_sizeof (type);
  3921.  
  3922.           if (yychar == YYEMPTY)
  3923.             yychar = YYLEX;
  3924.  
  3925.           if (! flag_traditional)
  3926.             pedwarn ("ANSI C++ forbids array size in vector delete");
  3927.           if (TREE_CODE (type) == POINTER_TYPE
  3928.               && TREE_READONLY (TREE_TYPE (type)))
  3929.             {
  3930.               error ("`const *' cannot be deleted");
  3931.               yyval.ttype = error_mark_node;
  3932.               break;
  3933.             }
  3934.           yyval.ttype = build_vec_delete (exp, maxindex, elt_size, NULL_TREE,
  3935.                      integer_one_node, integer_two_node);
  3936.         ;
  3937.     break;}
  3938. case 173:
  3939. #line 1150 "cp-parse.y"
  3940. { tree type = groktypename (yyvsp[-2].ttype);
  3941.           yyval.ttype = build_c_cast (type, yyvsp[0].ttype); ;
  3942.     break;}
  3943. case 174:
  3944. #line 1153 "cp-parse.y"
  3945. { tree type = groktypename (yyvsp[-5].ttype);
  3946.           tree init = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype));
  3947.           if (pedantic)
  3948.             pedwarn ("ANSI C++ forbids constructor-expressions");
  3949.           /* Indicate that this was a GNU C constructor expression.  */
  3950.           TREE_HAS_CONSTRUCTOR (init) = 1;
  3951.           yyval.ttype = digest_init (type, init, 0);
  3952.           if (TREE_CODE (type) == ARRAY_TYPE && TYPE_SIZE (type) == 0)
  3953.             {
  3954.               int failure = complete_array_type (type, yyval.ttype, 1);
  3955.               if (failure)
  3956.             my_friendly_abort (78);
  3957.             }
  3958.         ;
  3959.     break;}
  3960. case 175:
  3961. #line 1168 "cp-parse.y"
  3962. { yyval.ttype = build_headof (yyvsp[-1].ttype); ;
  3963.     break;}
  3964. case 176:
  3965. #line 1170 "cp-parse.y"
  3966. { yyval.ttype = build_classof (yyvsp[-1].ttype); ;
  3967.     break;}
  3968. case 177:
  3969. #line 1172 "cp-parse.y"
  3970. { if (is_aggr_typedef (yyvsp[-1].ttype, 1))
  3971.             {
  3972.               tree type = IDENTIFIER_TYPE_VALUE (yyvsp[-1].ttype);
  3973.               yyval.ttype = CLASSTYPE_DOSSIER (type);
  3974.             }
  3975.           else
  3976.             yyval.ttype = error_mark_node;
  3977.         ;
  3978.     break;}
  3979. case 179:
  3980. #line 1185 "cp-parse.y"
  3981. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  3982.     break;}
  3983. case 180:
  3984. #line 1187 "cp-parse.y"
  3985. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  3986.     break;}
  3987. case 181:
  3988. #line 1189 "cp-parse.y"
  3989. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  3990.     break;}
  3991. case 182:
  3992. #line 1191 "cp-parse.y"
  3993. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  3994.     break;}
  3995. case 183:
  3996. #line 1193 "cp-parse.y"
  3997. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  3998.     break;}
  3999. case 184:
  4000. #line 1195 "cp-parse.y"
  4001. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  4002.     break;}
  4003. case 185:
  4004. #line 1197 "cp-parse.y"
  4005. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  4006.     break;}
  4007. case 186:
  4008. #line 1199 "cp-parse.y"
  4009. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  4010.     break;}
  4011. case 187:
  4012. #line 1201 "cp-parse.y"
  4013. { yyval.ttype = build_x_binary_op (LT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
  4014.     break;}
  4015. case 188:
  4016. #line 1203 "cp-parse.y"
  4017. { yyval.ttype = build_x_binary_op (GT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
  4018.     break;}
  4019. case 189:
  4020. #line 1205 "cp-parse.y"
  4021. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  4022.     break;}
  4023. case 190:
  4024. #line 1207 "cp-parse.y"
  4025. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  4026.     break;}
  4027. case 191:
  4028. #line 1209 "cp-parse.y"
  4029. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  4030.     break;}
  4031. case 192:
  4032. #line 1211 "cp-parse.y"
  4033. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  4034.     break;}
  4035. case 193:
  4036. #line 1213 "cp-parse.y"
  4037. { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
  4038.     break;}
  4039. case 194:
  4040. #line 1215 "cp-parse.y"
  4041. { yyval.ttype = build_x_binary_op (TRUTH_ANDIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
  4042.     break;}
  4043. case 195:
  4044. #line 1217 "cp-parse.y"
  4045. { yyval.ttype = build_x_binary_op (TRUTH_ORIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
  4046.     break;}
  4047. case 196:
  4048. #line 1219 "cp-parse.y"
  4049. { yyval.ttype = build_x_conditional_expr (yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  4050.     break;}
  4051. case 197:
  4052. #line 1221 "cp-parse.y"
  4053. { yyval.ttype = build_modify_expr (yyval.ttype, NOP_EXPR, yyvsp[0].ttype); ;
  4054.     break;}
  4055. case 198:
  4056. #line 1223 "cp-parse.y"
  4057. { register tree rval;
  4058.           if (rval = build_opfncall (MODIFY_EXPR, LOOKUP_NORMAL, yyval.ttype, yyvsp[0].ttype,
  4059.             make_node (yyvsp[-1].code)))
  4060.             yyval.ttype = rval;
  4061.           else
  4062.             yyval.ttype = build_modify_expr (yyval.ttype, yyvsp[-1].code, yyvsp[0].ttype); ;
  4063.     break;}
  4064. case 199:
  4065. #line 1230 "cp-parse.y"
  4066. { yyval.ttype = build_m_component_ref (yyval.ttype, build_indirect_ref (yyvsp[0].ttype, 0)); ;
  4067.     break;}
  4068. case 200:
  4069. #line 1233 "cp-parse.y"
  4070. { yyval.ttype = build_x_binary_op (MEMBER_REF, yyval.ttype, yyvsp[0].ttype); ;
  4071.     break;}
  4072. case 201:
  4073. #line 1249 "cp-parse.y"
  4074. { yyval.ttype = do_identifier (yyval.ttype); ;
  4075.     break;}
  4076. case 202:
  4077. #line 1251 "cp-parse.y"
  4078. {
  4079.           tree op = yyval.ttype;
  4080.           if (TREE_CODE (op) != IDENTIFIER_NODE)
  4081.             yyval.ttype = op;
  4082.           else
  4083.             {
  4084.               yyval.ttype = lookup_name (op, 0);
  4085.               if (yyval.ttype == NULL_TREE)
  4086.             {
  4087.               error ("operator %s not defined", operator_name_string (op));
  4088.               yyval.ttype = error_mark_node;
  4089.             }
  4090.             }
  4091.         ;
  4092.     break;}
  4093. case 204:
  4094. #line 1267 "cp-parse.y"
  4095. { yyval.ttype = combine_strings (yyval.ttype); ;
  4096.     break;}
  4097. case 205:
  4098. #line 1269 "cp-parse.y"
  4099. { yyval.ttype = yyvsp[-1].ttype; ;
  4100.     break;}
  4101. case 206:
  4102. #line 1271 "cp-parse.y"
  4103. { yyval.ttype = error_mark_node; ;
  4104.     break;}
  4105. case 207:
  4106. #line 1273 "cp-parse.y"
  4107. { if (current_function_decl == 0)
  4108.             {
  4109.               error ("braced-group within expression allowed only inside a function");
  4110.               YYERROR;
  4111.             }
  4112.           keep_next_level ();
  4113.           yyval.ttype = expand_start_stmt_expr (); ;
  4114.     break;}
  4115. case 208:
  4116. #line 1281 "cp-parse.y"
  4117. { tree rtl_exp;
  4118.           if (pedantic)
  4119.             pedwarn ("ANSI C++ forbids braced-groups within expressions");
  4120.           rtl_exp = expand_end_stmt_expr (yyvsp[-2].ttype);
  4121.           /* The statements have side effects, so the group does.  */
  4122.           TREE_SIDE_EFFECTS (rtl_exp) = 1;
  4123.           /* Make a BIND_EXPR for the BLOCK already made.  */
  4124.           yyval.ttype = build (BIND_EXPR, TREE_TYPE (rtl_exp),
  4125.                   NULL_TREE, rtl_exp, yyvsp[-1].ttype);
  4126.           /* Remove the block from the tree at this point.
  4127.              It gets put back at the proper place
  4128.              when the BIND_EXPR is expanded.  */
  4129.           delete_block (yyvsp[-1].ttype);
  4130.         ;
  4131.     break;}
  4132. case 209:
  4133. #line 1296 "cp-parse.y"
  4134. { /* [eichin:19911016.1902EST] */
  4135.                   yyval.ttype = build_x_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype, current_class_decl); 
  4136.                   /* here we instantiate_class_template as needed... */
  4137.                   do_pending_templates ();
  4138.                 ;
  4139.     break;}
  4140. case 210:
  4141. #line 1300 "cp-parse.y"
  4142. {
  4143.                   if (TREE_CODE (yyvsp[-1].ttype) == CALL_EXPR
  4144.                       && TREE_TYPE (yyvsp[-1].ttype) != void_type_node)
  4145.                 yyval.ttype = require_complete_type (yyvsp[-1].ttype);
  4146.                   else
  4147.                     yyval.ttype = yyvsp[-1].ttype;
  4148.                 ;
  4149.     break;}
  4150. case 211:
  4151. #line 1308 "cp-parse.y"
  4152.         if (yyval.ttype != error_mark_node)
  4153.           {
  4154.             yyval.ttype = build_x_function_call (yyval.ttype, NULL_TREE,
  4155.                         current_class_decl);
  4156.             if (TREE_CODE (yyval.ttype) == CALL_EXPR
  4157.             && TREE_TYPE (yyval.ttype) != void_type_node)
  4158.               yyval.ttype = require_complete_type (yyval.ttype);
  4159.           }
  4160.                 ;
  4161.     break;}
  4162. case 212:
  4163. #line 1319 "cp-parse.y"
  4164. {
  4165.         do_array:
  4166.           {
  4167.             tree array_expr = yyval.ttype;
  4168.             tree index_exp = yyvsp[-1].ttype;
  4169.             tree type = TREE_TYPE (array_expr);
  4170.             if (type == error_mark_node || index_exp == error_mark_node)
  4171.               yyval.ttype = error_mark_node;
  4172.             else if (type == NULL_TREE)
  4173.               {
  4174.             /* Something has gone very wrong.  Assume we
  4175.                are mistakenly reducing an expression
  4176.                instead of a declaration.  */
  4177.             error ("parser may be lost: is there a '{' missing somewhere?");
  4178.             yyval.ttype = NULL_TREE;
  4179.               }
  4180.             else
  4181.               {
  4182.             if (TREE_CODE (type) == OFFSET_TYPE)
  4183.               type = TREE_TYPE (type);
  4184.             if (TREE_CODE (type) == REFERENCE_TYPE)
  4185.               type = TREE_TYPE (type);
  4186.  
  4187.             if (TYPE_LANG_SPECIFIC (type)
  4188.                 && TYPE_OVERLOADS_ARRAY_REF (type))
  4189.               yyval.ttype = build_opfncall (ARRAY_REF, LOOKUP_NORMAL, array_expr, index_exp);
  4190.             else if (TREE_CODE (type) == POINTER_TYPE
  4191.                  || TREE_CODE (type) == ARRAY_TYPE)
  4192.               yyval.ttype = build_array_ref (array_expr, index_exp);
  4193.             else
  4194.               {
  4195.                 type = TREE_TYPE (index_exp);
  4196.                 if (TREE_CODE (type) == OFFSET_TYPE)
  4197.                   type = TREE_TYPE (type);
  4198.                 if (TREE_CODE (type) == REFERENCE_TYPE)
  4199.                   type = TREE_TYPE (type);
  4200.                 
  4201.                 if (TYPE_LANG_SPECIFIC (type)
  4202.                 && TYPE_OVERLOADS_ARRAY_REF (type))
  4203.                   error ("array expression backwards");
  4204.                 else if (TREE_CODE (type) == POINTER_TYPE
  4205.                      || TREE_CODE (type) == ARRAY_TYPE)
  4206.                   yyval.ttype = build_array_ref (index_exp, array_expr);
  4207.                 else
  4208.                   error("[] applied to non-pointer type");
  4209.               }
  4210.               }
  4211.           }
  4212.         ;
  4213.     break;}
  4214. case 213:
  4215. #line 1369 "cp-parse.y"
  4216. { yyval.ttype = build_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); ;
  4217.     break;}
  4218. case 214:
  4219. #line 1371 "cp-parse.y"
  4220. {
  4221.           tree basetype = yyvsp[-1].ttype;
  4222.           if (is_aggr_typedef (basetype, 1))
  4223.             {
  4224.               basetype = IDENTIFIER_TYPE_VALUE (basetype);
  4225.  
  4226.               if (yyval.ttype == error_mark_node)
  4227.             ;
  4228.               else if (binfo_or_else (basetype, TREE_TYPE (yyval.ttype)))
  4229.             yyval.ttype = build_component_ref (build_scoped_ref (yyval.ttype, yyvsp[-1].ttype), yyvsp[0].ttype, NULL_TREE, 1);
  4230.               else
  4231.             yyval.ttype = error_mark_node;
  4232.             }
  4233.           else yyval.ttype = error_mark_node;
  4234.         ;
  4235.     break;}
  4236. case 215:
  4237. #line 1387 "cp-parse.y"
  4238. { yyval.ttype = build_x_unary_op (POSTINCREMENT_EXPR, yyval.ttype); ;
  4239.     break;}
  4240. case 216:
  4241. #line 1389 "cp-parse.y"
  4242. { yyval.ttype = build_x_unary_op (POSTDECREMENT_EXPR, yyval.ttype); ;
  4243.     break;}
  4244. case 217:
  4245. #line 1393 "cp-parse.y"
  4246. { if (current_class_decl)
  4247.             {
  4248. #ifdef WARNING_ABOUT_CCD
  4249.               TREE_USED (current_class_decl) = 1;
  4250. #endif
  4251.               yyval.ttype = current_class_decl;
  4252.             }
  4253.           else if (current_function_decl
  4254.                && DECL_STATIC_FUNCTION_P (current_function_decl))
  4255.             {
  4256.               error ("`this' is unavailable for static member functions");
  4257.               yyval.ttype = error_mark_node;
  4258.             }
  4259.           else
  4260.             {
  4261.               if (current_function_decl)
  4262.             error ("invalid use of `this' in non-member function");
  4263.               else
  4264.             error ("invalid use of `this' at top level");
  4265.               yyval.ttype = error_mark_node;
  4266.             }
  4267.         ;
  4268.     break;}
  4269. case 218:
  4270. #line 1416 "cp-parse.y"
  4271. {
  4272.           tree type;
  4273.           tree id = yyval.ttype;
  4274.  
  4275.           /* This is a C cast in C++'s `functional' notation.  */
  4276.           if (yyvsp[-1].ttype == error_mark_node)
  4277.             {
  4278.               yyval.ttype = error_mark_node;
  4279.               break;
  4280.             }
  4281. #if 0
  4282.           if (yyvsp[-1].ttype == NULL_TREE)
  4283.             {
  4284.               error ("cannot cast null list to type `%s'",
  4285.                      IDENTIFIER_POINTER (TYPE_NAME (id)));
  4286.               yyval.ttype = error_mark_node;
  4287.               break;
  4288.             }
  4289. #endif
  4290. #if 0
  4291.           /* type is not set! (mrs) */
  4292.           if (type == error_mark_node)
  4293.             yyval.ttype = error_mark_node;
  4294.           else
  4295. #endif
  4296.             {
  4297.               if (id == ridpointers[(int) RID_CONST])
  4298.                 type = build_type_variant (integer_type_node, 1, 0);
  4299.               else if (id == ridpointers[(int) RID_VOLATILE])
  4300.                 type = build_type_variant (integer_type_node, 0, 1);
  4301. #if 0
  4302.               /* should not be able to get here (mrs) */
  4303.               else if (id == ridpointers[(int) RID_FRIEND])
  4304.                 {
  4305.                   error ("cannot cast expression to `friend' type");
  4306.                   yyval.ttype = error_mark_node;
  4307.                   break;
  4308.                 }
  4309. #endif
  4310.               else my_friendly_abort (79);
  4311.               yyval.ttype = build_c_cast (type, build_compound_expr (yyvsp[-1].ttype));
  4312.             }
  4313.         ;
  4314.     break;}
  4315. case 219:
  4316. #line 1460 "cp-parse.y"
  4317. { yyval.ttype = build_functional_cast (yyval.ttype, yyvsp[-1].ttype); ;
  4318.     break;}
  4319. case 220:
  4320. #line 1462 "cp-parse.y"
  4321. { yyval.ttype = build_functional_cast (yyval.ttype, NULL_TREE); ;
  4322.     break;}
  4323. case 221:
  4324. #line 1464 "cp-parse.y"
  4325. { yyval.ttype = build_functional_cast (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
  4326.     break;}
  4327. case 222:
  4328. #line 1466 "cp-parse.y"
  4329. { yyval.ttype = build_functional_cast (yyvsp[-1].ttype, NULL_TREE); ;
  4330.     break;}
  4331. case 223:
  4332. #line 1468 "cp-parse.y"
  4333. {
  4334.         do_scoped_id:
  4335.           yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
  4336.           if (yychar == YYEMPTY)
  4337.             yychar = YYLEX;
  4338.           if (! yyval.ttype)
  4339.             {
  4340.               if (yychar == '(' || yychar == LEFT_RIGHT)
  4341.             yyval.ttype = implicitly_declare (yyvsp[0].ttype);
  4342.               else
  4343.             {
  4344.               if (IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) != error_mark_node)
  4345.                 error ("undeclared variable `%s' (first use here)",
  4346.                    IDENTIFIER_POINTER (yyvsp[0].ttype));
  4347.               yyval.ttype = error_mark_node;
  4348.               /* Prevent repeated error messages.  */
  4349.               IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) = error_mark_node;
  4350.             }
  4351.             }
  4352.           else
  4353.             {
  4354.               assemble_external (yyval.ttype);
  4355.               TREE_USED (yyval.ttype) = 1;
  4356.             }
  4357.           if (TREE_CODE (yyval.ttype) == CONST_DECL)
  4358.             {
  4359.               /* XXX CHS - should we set TREE_USED of the constant? */
  4360.               yyval.ttype = DECL_INITIAL (yyval.ttype);
  4361.               /* This is to prevent an enum whose value is 0
  4362.              from being considered a null pointer constant.  */
  4363.               yyval.ttype = build1 (NOP_EXPR, TREE_TYPE (yyval.ttype), yyval.ttype);
  4364.               TREE_CONSTANT (yyval.ttype) = 1;
  4365.             }
  4366.  
  4367.         ;
  4368.     break;}
  4369. case 224:
  4370. #line 1504 "cp-parse.y"
  4371. {
  4372.           if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
  4373.             goto do_scoped_id;
  4374.         do_scoped_operator:
  4375.           yyval.ttype = yyvsp[0].ttype;
  4376.         ;
  4377.     break;}
  4378. case 225:
  4379. #line 1511 "cp-parse.y"
  4380. { yyval.ttype = build_offset_ref (yyval.ttype, yyvsp[0].ttype); ;
  4381.     break;}
  4382. case 226:
  4383. #line 1513 "cp-parse.y"
  4384. { yyval.ttype = build_member_call (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
  4385.     break;}
  4386. case 227:
  4387. #line 1515 "cp-parse.y"
  4388. { yyval.ttype = build_member_call (yyval.ttype, yyvsp[-1].ttype, NULL_TREE); ;
  4389.     break;}
  4390. case 228:
  4391. #line 1517 "cp-parse.y"
  4392. { yyval.ttype = build_method_call (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE,
  4393.                       (LOOKUP_NORMAL|LOOKUP_AGGR)); ;
  4394.     break;}
  4395. case 229:
  4396. #line 1520 "cp-parse.y"
  4397. { yyval.ttype = build_method_call (yyval.ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE,
  4398.                       (LOOKUP_NORMAL|LOOKUP_AGGR)); ;
  4399.     break;}
  4400. case 230:
  4401. #line 1523 "cp-parse.y"
  4402. { yyval.ttype = build_scoped_method_call (yyval.ttype, yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
  4403.     break;}
  4404. case 231:
  4405. #line 1525 "cp-parse.y"
  4406. { yyval.ttype = build_scoped_method_call (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE); ;
  4407.     break;}
  4408. case 232:
  4409. #line 1567 "cp-parse.y"
  4410. { yyval.ttype = NULL_TREE; ;
  4411.     break;}
  4412. case 233:
  4413. #line 1569 "cp-parse.y"
  4414. {
  4415.           yyval.ttype = yyvsp[-1].ttype;
  4416.           pedwarn ("old style placement syntax, use () instead");
  4417.         ;
  4418.     break;}
  4419. case 234:
  4420. #line 1574 "cp-parse.y"
  4421. { yyval.ttype = void_type_node; ;
  4422.     break;}
  4423. case 235:
  4424. #line 1576 "cp-parse.y"
  4425. { yyval.ttype = combine_strings (yyvsp[-1].ttype); ;
  4426.     break;}
  4427. case 236:
  4428. #line 1581 "cp-parse.y"
  4429. { yyval.itype = 0; ;
  4430.     break;}
  4431. case 237:
  4432. #line 1583 "cp-parse.y"
  4433. { yyval.itype = 1; ;
  4434.     break;}
  4435. case 238:
  4436. #line 1587 "cp-parse.y"
  4437. { yyval.ttype = NULL_TREE; ;
  4438.     break;}
  4439. case 239:
  4440. #line 1589 "cp-parse.y"
  4441. { if (yyvsp[0].ttype)
  4442.             error ("extra `::' before `delete' ignored");
  4443.           yyval.ttype = error_mark_node;
  4444.         ;
  4445.     break;}
  4446. case 241:
  4447. #line 1599 "cp-parse.y"
  4448. { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
  4449.     break;}
  4450. case 242:
  4451. #line 1604 "cp-parse.y"
  4452. {
  4453.           if (! current_function_parms_stored)
  4454.             store_parm_decls ();
  4455.           setup_vtbl_ptr ();
  4456.         ;
  4457.     break;}
  4458. case 243:
  4459. #line 1612 "cp-parse.y"
  4460. {
  4461.           if (yyval.ttype == error_mark_node)
  4462.             ;
  4463.           else
  4464.             {
  4465.               tree type = TREE_TYPE (yyval.ttype);
  4466.  
  4467.               if (! PROMOTES_TO_AGGR_TYPE (type, REFERENCE_TYPE))
  4468.             {
  4469.               error ("object in '.' expression is not of aggregate type");
  4470.               yyval.ttype = error_mark_node;
  4471.             }
  4472.             }
  4473.         ;
  4474.     break;}
  4475. case 244:
  4476. #line 1627 "cp-parse.y"
  4477. {
  4478.           yyval.ttype = build_x_arrow (yyval.ttype);
  4479.         ;
  4480.     break;}
  4481. case 246:
  4482. #line 1637 "cp-parse.y"
  4483. {
  4484.           resume_momentary (yyvsp[-1].itype);
  4485.           note_list_got_semicolon (yyval.ttype);
  4486.         ;
  4487.     break;}
  4488. case 247:
  4489. #line 1643 "cp-parse.y"
  4490. { tree d;
  4491.           int yes = suspend_momentary ();
  4492.           d = start_decl (yyvsp[-1].ttype, yyval.ttype, 0, NULL_TREE);
  4493.           finish_decl (d, NULL_TREE, NULL_TREE, 0);
  4494.           resume_momentary (yes);
  4495.           note_list_got_semicolon (yyval.ttype);
  4496.         ;
  4497.     break;}
  4498. case 248:
  4499. #line 1651 "cp-parse.y"
  4500. { resume_momentary (yyvsp[-1].itype); ;
  4501.     break;}
  4502. case 249:
  4503. #line 1654 "cp-parse.y"
  4504. { tree d;
  4505.           int yes = suspend_momentary ();
  4506.           d = start_decl (yyvsp[-1].ttype, yyval.ttype, 0, NULL_TREE);
  4507.           finish_decl (d, NULL_TREE, NULL_TREE, 0);
  4508.           resume_momentary (yes);
  4509.         ;
  4510.     break;}
  4511. case 250:
  4512. #line 1661 "cp-parse.y"
  4513. {
  4514.           shadow_tag (yyval.ttype);
  4515.           note_list_got_semicolon (yyval.ttype);
  4516.         ;
  4517.     break;}
  4518. case 251:
  4519. #line 1666 "cp-parse.y"
  4520. { warning ("empty declaration"); ;
  4521.     break;}
  4522. case 254:
  4523. #line 1676 "cp-parse.y"
  4524. { yyval.ttype = yyvsp[0].ttype; ;
  4525.     break;}
  4526. case 255:
  4527. #line 1678 "cp-parse.y"
  4528. { yyval.ttype = yyvsp[0].ttype; ;
  4529.     break;}
  4530. case 256:
  4531. #line 1687 "cp-parse.y"
  4532. { yyval.ttype = list_hash_lookup_or_cons (yyval.ttype); ;
  4533.     break;}
  4534. case 257:
  4535. #line 1689 "cp-parse.y"
  4536. { yyval.ttype = hash_tree_chain (yyvsp[0].ttype, yyval.ttype); ;
  4537.     break;}
  4538. case 258:
  4539. #line 1691 "cp-parse.y"
  4540. { yyval.ttype = hash_tree_chain (yyval.ttype, yyvsp[0].ttype); ;
  4541.     break;}
  4542. case 259:
  4543. #line 1693 "cp-parse.y"
  4544. { yyval.ttype = hash_tree_chain (yyvsp[-1].ttype, hash_chainon (yyvsp[0].ttype, yyval.ttype)); ;
  4545.     break;}
  4546. case 260:
  4547. #line 1699 "cp-parse.y"
  4548. { yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
  4549.     break;}
  4550. case 261:
  4551. #line 1701 "cp-parse.y"
  4552. { if (extra_warnings)
  4553.             warning ("`%s' is not at beginning of declaration",
  4554.                  IDENTIFIER_POINTER (yyval.ttype));
  4555.           yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
  4556.     break;}
  4557. case 262:
  4558. #line 1706 "cp-parse.y"
  4559. { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
  4560.     break;}
  4561. case 263:
  4562. #line 1708 "cp-parse.y"
  4563. { if (extra_warnings)
  4564.             warning ("`%s' is not at beginning of declaration",
  4565.                  IDENTIFIER_POINTER (yyvsp[0].ttype));
  4566.           yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
  4567.     break;}
  4568. case 264:
  4569. #line 1720 "cp-parse.y"
  4570. { yyval.ttype = IDENTIFIER_AS_LIST (yyval.ttype);
  4571.           TREE_STATIC (yyval.ttype) = 1; ;
  4572.     break;}
  4573. case 265:
  4574. #line 1723 "cp-parse.y"
  4575. { yyval.ttype = IDENTIFIER_AS_LIST (yyval.ttype); ;
  4576.     break;}
  4577. case 266:
  4578. #line 1725 "cp-parse.y"
  4579. { yyval.ttype = hash_tree_chain (yyvsp[0].ttype, yyval.ttype);
  4580.           TREE_STATIC (yyval.ttype) = 1; ;
  4581.     break;}
  4582. case 267:
  4583. #line 1728 "cp-parse.y"
  4584. { if (extra_warnings && TREE_STATIC (yyval.ttype))
  4585.             warning ("`%s' is not at beginning of declaration",
  4586.                  IDENTIFIER_POINTER (yyvsp[0].ttype));
  4587.           yyval.ttype = hash_tree_chain (yyvsp[0].ttype, yyval.ttype);
  4588.           TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
  4589.     break;}
  4590. case 268:
  4591. #line 1744 "cp-parse.y"
  4592. { yyval.ttype = get_decl_list (yyval.ttype); ;
  4593.     break;}
  4594. case 269:
  4595. #line 1746 "cp-parse.y"
  4596. { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
  4597.     break;}
  4598. case 270:
  4599. #line 1748 "cp-parse.y"
  4600. { yyval.ttype = decl_tree_cons (NULL_TREE, yyval.ttype, yyvsp[0].ttype); ;
  4601.     break;}
  4602. case 271:
  4603. #line 1750 "cp-parse.y"
  4604. { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[-1].ttype, hash_chainon (yyvsp[0].ttype, yyval.ttype)); ;
  4605.     break;}
  4606. case 272:
  4607. #line 1755 "cp-parse.y"
  4608. { yyval.ttype = get_decl_list (yyval.ttype); ;
  4609.     break;}
  4610. case 273:
  4611. #line 1757 "cp-parse.y"
  4612. { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
  4613.     break;}
  4614. case 278:
  4615. #line 1769 "cp-parse.y"
  4616. { yyval.ttype = TREE_TYPE (yyvsp[-1].ttype);
  4617.           if (pedantic)
  4618.             pedwarn ("ANSI C++ forbids `typeof'"); ;
  4619.     break;}
  4620. case 279:
  4621. #line 1773 "cp-parse.y"
  4622. { yyval.ttype = groktypename (yyvsp[-1].ttype);
  4623.           if (pedantic)
  4624.             pedwarn ("ANSI C++ forbids `typeof'"); ;
  4625.     break;}
  4626. case 288:
  4627. #line 1798 "cp-parse.y"
  4628. { yyval.ttype = NULL_TREE; ;
  4629.     break;}
  4630. case 289:
  4631. #line 1800 "cp-parse.y"
  4632. { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype);
  4633.           yyval.ttype = yyvsp[-1].ttype;
  4634.           if (pedantic)
  4635.             pedwarn ("ANSI C++ forbids use of `asm' keyword");
  4636.         ;
  4637.     break;}
  4638. case 290:
  4639. #line 1809 "cp-parse.y"
  4640. { current_declspecs = yyvsp[-5].ttype;
  4641.           yyvsp[0].itype = suspend_momentary ();
  4642.           yyval.ttype = start_decl (yyvsp[-4].ttype, current_declspecs, 1, yyvsp[-3].ttype);
  4643.           cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype); ;
  4644.     break;}
  4645. case 291:
  4646. #line 1815 "cp-parse.y"
  4647. { finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 0);
  4648.           yyval.itype = yyvsp[-2].itype; ;
  4649.     break;}
  4650. case 292:
  4651. #line 1818 "cp-parse.y"
  4652. { tree d;
  4653.           current_declspecs = yyvsp[-4].ttype;
  4654.           yyval.itype = suspend_momentary ();
  4655.           d = start_decl (yyvsp[-3].ttype, current_declspecs, 0, yyvsp[-2].ttype);
  4656.           cplus_decl_attributes (d, yyvsp[0].ttype);
  4657.           finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 0); ;
  4658.     break;}
  4659. case 293:
  4660. #line 1828 "cp-parse.y"
  4661. { yyval.ttype = start_decl (yyvsp[-4].ttype, current_declspecs, 1, yyvsp[-3].ttype);
  4662.           cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype); ;
  4663.     break;}
  4664. case 294:
  4665. #line 1832 "cp-parse.y"
  4666. { finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 0); ;
  4667.     break;}
  4668. case 295:
  4669. #line 1834 "cp-parse.y"
  4670. { tree d = start_decl (yyval.itype, current_declspecs, 0, yyvsp[-2].ttype);
  4671.           cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype);
  4672.           finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 0); ;
  4673.     break;}
  4674. case 296:
  4675. #line 1841 "cp-parse.y"
  4676. { current_declspecs = yyvsp[-5].ttype;
  4677.           yyvsp[0].itype = suspend_momentary ();
  4678.           yyval.ttype = start_decl (yyvsp[-4].ttype, current_declspecs, 1, yyvsp[-3].ttype);
  4679.           cplus_decl_attributes (yyval.ttype, yyvsp[-1].ttype); ;
  4680.     break;}
  4681. case 297:
  4682. #line 1847 "cp-parse.y"
  4683. { finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 0);
  4684.           yyval.itype = yyvsp[-2].itype; ;
  4685.     break;}
  4686. case 298:
  4687. #line 1850 "cp-parse.y"
  4688. { tree d;
  4689.           current_declspecs = yyvsp[-4].ttype;
  4690.           yyval.itype = suspend_momentary ();
  4691.           d = start_decl (yyvsp[-3].ttype, current_declspecs, 0, yyvsp[-2].ttype);
  4692.           cplus_decl_attributes (d, yyvsp[0].ttype);
  4693.           finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 0); ;
  4694.     break;}
  4695. case 299:
  4696. #line 1862 "cp-parse.y"
  4697. { yyval.ttype = NULL_TREE; ;
  4698.     break;}
  4699. case 300:
  4700. #line 1864 "cp-parse.y"
  4701. { yyval.ttype = yyvsp[-2].ttype; ;
  4702.     break;}
  4703. case 301:
  4704. #line 1869 "cp-parse.y"
  4705. { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
  4706.     break;}
  4707. case 302:
  4708. #line 1871 "cp-parse.y"
  4709. { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype); ;
  4710.     break;}
  4711. case 303:
  4712. #line 1876 "cp-parse.y"
  4713. { if (strcmp (IDENTIFIER_POINTER (yyvsp[0].ttype), "packed"))
  4714.         warning ("`%s' attribute directive ignored",
  4715.              IDENTIFIER_POINTER (yyvsp[0].ttype));
  4716.       yyval.ttype = yyvsp[0].ttype; ;
  4717.     break;}
  4718. case 304:
  4719. #line 1881 "cp-parse.y"
  4720. { /* if not "aligned(n)", then issue warning */
  4721.       if (strcmp (IDENTIFIER_POINTER (yyvsp[-3].ttype), "aligned") != 0
  4722.           || TREE_CODE (yyvsp[-1].ttype) != INTEGER_CST)
  4723.         {
  4724.           warning ("`%s' attribute directive ignored",
  4725.                IDENTIFIER_POINTER (yyvsp[-3].ttype));
  4726.           yyval.ttype = yyvsp[-3].ttype;
  4727.         }
  4728.       else
  4729.         yyval.ttype = tree_cons (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE); ;
  4730.     break;}
  4731. case 305:
  4732. #line 1892 "cp-parse.y"
  4733. { /* if not "format(...)", then issue warning */
  4734.       if (strcmp (IDENTIFIER_POINTER (yyvsp[-7].ttype), "format") != 0
  4735.           || TREE_CODE (yyvsp[-3].ttype) != INTEGER_CST
  4736.           || TREE_CODE (yyvsp[-1].ttype) != INTEGER_CST)
  4737.         {
  4738.           warning ("`%s' attribute directive ignored",
  4739.                IDENTIFIER_POINTER (yyvsp[-7].ttype));
  4740.           yyval.ttype = yyvsp[-7].ttype;
  4741.         }
  4742.       else
  4743.         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); ;
  4744.     break;}
  4745. case 306:
  4746. #line 1908 "cp-parse.y"
  4747. { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
  4748.     break;}
  4749. case 307:
  4750. #line 1910 "cp-parse.y"
  4751. { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
  4752.     break;}
  4753. case 309:
  4754. #line 1916 "cp-parse.y"
  4755. { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, NULL_TREE);
  4756.           TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1;
  4757.           if (pedantic)
  4758.             pedwarn ("ANSI C++ forbids empty initializer braces"); ;
  4759.     break;}
  4760. case 310:
  4761. #line 1921 "cp-parse.y"
  4762. { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-1].ttype));
  4763.           TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
  4764.     break;}
  4765. case 311:
  4766. #line 1924 "cp-parse.y"
  4767. { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype));
  4768.           TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
  4769.     break;}
  4770. case 312:
  4771. #line 1927 "cp-parse.y"
  4772. { yyval.ttype = NULL_TREE; ;
  4773.     break;}
  4774. case 313:
  4775. #line 1934 "cp-parse.y"
  4776. { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
  4777.     break;}
  4778. case 314:
  4779. #line 1936 "cp-parse.y"
  4780. { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
  4781.     break;}
  4782. case 315:
  4783. #line 1939 "cp-parse.y"
  4784. { yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype); ;
  4785.     break;}
  4786. case 316:
  4787. #line 1941 "cp-parse.y"
  4788. { yyval.ttype = tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
  4789.     break;}
  4790. case 317:
  4791. #line 1943 "cp-parse.y"
  4792. { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[0].ttype); ;
  4793.     break;}
  4794. case 318:
  4795. #line 1945 "cp-parse.y"
  4796. { yyval.ttype = tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
  4797.     break;}
  4798. case 319:
  4799. #line 1950 "cp-parse.y"
  4800. { yyvsp[0].itype = suspend_momentary ();
  4801.           yyval.ttype = start_enum (yyvsp[-1].ttype); ;
  4802.     break;}
  4803. case 320:
  4804. #line 1953 "cp-parse.y"
  4805. { yyval.ttype = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype);
  4806.           resume_momentary (yyvsp[-4].itype);
  4807.           check_for_missing_semicolon (yyvsp[-3].ttype); ;
  4808.     break;}
  4809. case 321:
  4810. #line 1957 "cp-parse.y"
  4811. { yyval.ttype = finish_enum (start_enum (yyvsp[-2].ttype), NULL_TREE);
  4812.           check_for_missing_semicolon (yyval.ttype); ;
  4813.     break;}
  4814. case 322:
  4815. #line 1960 "cp-parse.y"
  4816. { yyvsp[0].itype = suspend_momentary ();
  4817.           yyval.ttype = start_enum (make_anon_name ()); ;
  4818.     break;}
  4819. case 323:
  4820. #line 1963 "cp-parse.y"
  4821. { yyval.ttype = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype);
  4822.           resume_momentary (yyvsp[-5].itype);
  4823.           check_for_missing_semicolon (yyvsp[-3].ttype); ;
  4824.     break;}
  4825. case 324:
  4826. #line 1967 "cp-parse.y"
  4827. { yyval.ttype = finish_enum (start_enum (make_anon_name()), NULL_TREE);
  4828.           check_for_missing_semicolon (yyval.ttype); ;
  4829.     break;}
  4830. case 325:
  4831. #line 1970 "cp-parse.y"
  4832. { yyval.ttype = xref_tag (enum_type_node, yyvsp[0].ttype, NULL_TREE); ;
  4833.     break;}
  4834. case 326:
  4835. #line 1974 "cp-parse.y"
  4836. {
  4837.           int semi;
  4838.           tree id;
  4839.  
  4840. #if 0
  4841.           /* Need to rework class nesting in the
  4842.              presence of nested classes, etc.  */
  4843.           shadow_tag (CLASSTYPE_AS_LIST (yyval.ttype)); */
  4844. #endif
  4845.           if (yychar == YYEMPTY)
  4846.             yychar = YYLEX;
  4847.           semi = yychar == ';';
  4848.           /* finish_struct nukes this anyway; if
  4849.              finish_exception does too, then it can go. */
  4850.           if (semi)
  4851.             note_got_semicolon (yyval.ttype);
  4852.  
  4853.           if (TREE_CODE (yyval.ttype) == ENUMERAL_TYPE)
  4854.             /* $$ = $1 from default rule.  */;
  4855.           else if (CLASSTYPE_DECLARED_EXCEPTION (yyval.ttype))
  4856.             {
  4857.               if (! semi)
  4858.             yyval.ttype = finish_exception (yyval.ttype, yyvsp[-1].ttype);
  4859.               else
  4860.             warning ("empty exception declaration\n");
  4861.             }
  4862.           else
  4863.             {
  4864.               yyval.ttype = finish_struct (yyval.ttype, yyvsp[-1].ttype, semi, semi);
  4865.               if (semi) note_got_semicolon (yyval.ttype);
  4866.             }
  4867.  
  4868.           pop_obstacks ();
  4869.  
  4870.           id = TYPE_IDENTIFIER (yyval.ttype);
  4871.           if (IDENTIFIER_TEMPLATE (id))
  4872.             {
  4873.               tree decl;
  4874.  
  4875.               /* I don't know if the copying of this TYPE_DECL is
  4876.                * really needed.  However, it's such a small per-
  4877.                * formance penalty that the extra safety is a bargain.
  4878.                * - niklas@appli.se
  4879.                */
  4880.               push_obstacks (&permanent_obstack, &permanent_obstack);
  4881.               decl = copy_node (lookup_name (id));
  4882.               if (DECL_LANG_SPECIFIC (decl))
  4883.             copy_lang_decl (decl);
  4884.               pop_obstacks ();
  4885.               undo_template_name_overload (id, 0);
  4886.               pushdecl_top_level (decl);
  4887.             }
  4888.           if (! semi)
  4889.             check_for_missing_semicolon (yyval.ttype); ;
  4890.     break;}
  4891. case 327:
  4892. #line 2029 "cp-parse.y"
  4893. {
  4894. #if 0
  4895.   /* It's no longer clear what the following error is supposed to
  4896.      accomplish.  If it turns out to be needed, add a comment why.  */
  4897.           if (TYPE_BINFO_BASETYPES (yyval.ttype) && !TYPE_SIZE (yyval.ttype))
  4898.             {
  4899.               error ("incomplete definition of type `%s'",
  4900.                  TYPE_NAME_STRING (yyval.ttype));
  4901.               yyval.ttype = error_mark_node;
  4902.             }
  4903. #endif
  4904.         ;
  4905.     break;}
  4906. case 331:
  4907. #line 2051 "cp-parse.y"
  4908. { if (pedantic)
  4909.             pedwarn ("ANSI C++ forbids comma at end of enumerator list"); ;
  4910.     break;}
  4911. case 333:
  4912. #line 2057 "cp-parse.y"
  4913. { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
  4914.     break;}
  4915. case 334:
  4916. #line 2059 "cp-parse.y"
  4917. { yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype); ;
  4918.     break;}
  4919. case 335:
  4920. #line 2061 "cp-parse.y"
  4921. { error ("storage class specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype));
  4922.         ;
  4923.     break;}
  4924. case 336:
  4925. #line 2064 "cp-parse.y"
  4926. { error ("type specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype));
  4927.         ;
  4928.     break;}
  4929. case 337:
  4930. #line 2067 "cp-parse.y"
  4931. { error ("type qualifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype));
  4932.         ;
  4933.     break;}
  4934. case 338:
  4935. #line 2070 "cp-parse.y"
  4936. { error ("no body nor ';' separates two class, struct or union declarations");
  4937.         ;
  4938.     break;}
  4939. case 339:
  4940. #line 2076 "cp-parse.y"
  4941. { aggr1: current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
  4942.     break;}
  4943. case 340:
  4944. #line 2078 "cp-parse.y"
  4945. { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
  4946.     break;}
  4947. case 341:
  4948. #line 2080 "cp-parse.y"
  4949. { yyungetc (':', 1); goto aggr1; ;
  4950.     break;}
  4951. case 342:
  4952. #line 2082 "cp-parse.y"
  4953. { yyungetc ('{', 1);
  4954.         aggr2:
  4955.           current_aggr = yyval.ttype;
  4956.           yyval.ttype = yyvsp[-1].ttype;
  4957.           overload_template_name (yyval.ttype, 0); ;
  4958.     break;}
  4959. case 343:
  4960. #line 2088 "cp-parse.y"
  4961. { yyungetc (':', 1); goto aggr2; ;
  4962.     break;}
  4963. case 344:
  4964. #line 2093 "cp-parse.y"
  4965. { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
  4966.     break;}
  4967. case 345:
  4968. #line 2098 "cp-parse.y"
  4969. {
  4970.           yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, NULL_TREE);
  4971.         ;
  4972.     break;}
  4973. case 346:
  4974. #line 2102 "cp-parse.y"
  4975. {
  4976.           if (yyvsp[0].ttype)
  4977.             yyval.ttype = xref_tag (current_aggr, yyvsp[-2].ttype, yyvsp[0].ttype);
  4978.           else
  4979.             yyval.ttype = yyvsp[-1].ttype;
  4980.         ;
  4981.     break;}
  4982. case 347:
  4983. #line 2110 "cp-parse.y"
  4984. {
  4985.           yyval.ttype = xref_defn_tag (current_aggr, yyvsp[0].ttype, NULL_TREE);
  4986.         ;
  4987.     break;}
  4988. case 348:
  4989. #line 2114 "cp-parse.y"
  4990. {
  4991.           if (yyvsp[0].ttype)
  4992.             yyval.ttype = xref_defn_tag (current_aggr, yyvsp[-2].ttype, yyvsp[0].ttype);
  4993.           else
  4994.             yyval.ttype = yyvsp[-1].ttype;
  4995.         ;
  4996.     break;}
  4997. case 349:
  4998. #line 2123 "cp-parse.y"
  4999. { yyval.ttype = xref_tag (yyval.ttype, make_anon_name (), NULL_TREE);
  5000.           yyungetc ('{', 1); ;
  5001.     break;}
  5002. case 352:
  5003. #line 2131 "cp-parse.y"
  5004. { yyval.ttype = NULL_TREE; ;
  5005.     break;}
  5006. case 353:
  5007. #line 2133 "cp-parse.y"
  5008. { yyungetc(':', 1); yyval.ttype = NULL_TREE; ;
  5009.     break;}
  5010. case 354:
  5011. #line 2135 "cp-parse.y"
  5012. { yyval.ttype = yyvsp[0].ttype; ;
  5013.     break;}
  5014. case 356:
  5015. #line 2141 "cp-parse.y"
  5016. { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
  5017.     break;}
  5018. case 357:
  5019. #line 2146 "cp-parse.y"
  5020. { if (! is_aggr_typedef (yyval.ttype, 1))
  5021.             yyval.ttype = NULL_TREE;
  5022.           else yyval.ttype = build_tree_list ((tree)visibility_default, yyval.ttype); ;
  5023.     break;}
  5024. case 358:
  5025. #line 2150 "cp-parse.y"
  5026. { if (! is_aggr_typedef (yyval.ttype, 1))
  5027.             yyval.ttype = NULL_TREE;
  5028.           else yyval.ttype = build_tree_list ((tree)visibility_default, yyval.ttype); ;
  5029.     break;}
  5030. case 359:
  5031. #line 2154 "cp-parse.y"
  5032. { if (! is_aggr_typedef (yyvsp[0].ttype, 1))
  5033.             yyval.ttype = NULL_TREE;
  5034.           else yyval.ttype = build_tree_list ((tree) yyval.ttype, yyvsp[0].ttype); ;
  5035.     break;}
  5036. case 360:
  5037. #line 2158 "cp-parse.y"
  5038. { if (! is_aggr_typedef (yyvsp[0].ttype, 1))
  5039.             yyval.ttype = NULL_TREE;
  5040.           else yyval.ttype = build_tree_list ((tree) yyval.ttype, yyvsp[0].ttype); ;
  5041.     break;}
  5042. case 361:
  5043. #line 2165 "cp-parse.y"
  5044. {
  5045.             /* Kludge!!! See rule "template_type" and the code
  5046.            * dealing with "template_type_seen_before_scope" in
  5047.            * yylex(). */
  5048.             yyval.ttype = yyvsp[0].ttype;
  5049.         ;
  5050.     break;}
  5051. case 362:
  5052. #line 2174 "cp-parse.y"
  5053. {
  5054.             extern tree template_type_seen_before_scope;
  5055.           tree id = yyvsp[0].ttype ? TYPE_IDENTIFIER (yyvsp[0].ttype) : yyvsp[-2].ttype;
  5056.  
  5057.             /* Check the rule template_type to get this... */
  5058.           if (yychar == YYEMPTY)
  5059.             yychar = YYLEX;
  5060.           if (yychar == SCOPE) {
  5061.             template_type_seen_before_scope = id;
  5062.             yychar = YYLEX;
  5063.           }
  5064.         ;
  5065.     break;}
  5066. case 365:
  5067. #line 2192 "cp-parse.y"
  5068. { if (yyval.ttype != ridpointers[(int)RID_VIRTUAL])
  5069.             sorry ("non-virtual visibility");
  5070.           yyval.itype = visibility_default_virtual; ;
  5071.     break;}
  5072. case 366:
  5073. #line 2196 "cp-parse.y"
  5074. { int err = 0;
  5075.           if (yyvsp[0].itype == visibility_protected)
  5076.             {
  5077.               warning ("`protected' visibility not implemented");
  5078.               yyvsp[0].itype = visibility_public;
  5079.               err++;
  5080.             }
  5081.           else if (yyvsp[0].itype == visibility_public)
  5082.             {
  5083.               if (yyvsp[-1].itype == visibility_private)
  5084.             {
  5085.             mixed:
  5086.               error ("base class cannot be public and private");
  5087.             }
  5088.               else if (yyvsp[-1].itype == visibility_default_virtual)
  5089.             yyval.itype = visibility_public_virtual;
  5090.             }
  5091.           else /* $2 == visibility_private */
  5092.             {
  5093.               if (yyvsp[-1].itype == visibility_public)
  5094.             goto mixed;
  5095.               else if (yyvsp[-1].itype == visibility_default_virtual)
  5096.             yyval.itype = visibility_private_virtual;
  5097.             }
  5098.         ;
  5099.     break;}
  5100. case 367:
  5101. #line 2222 "cp-parse.y"
  5102. { if (yyvsp[0].ttype != ridpointers[(int)RID_VIRTUAL])
  5103.             sorry ("non-virtual visibility");
  5104.           if (yyval.itype == visibility_public)
  5105.             yyval.itype = visibility_public_virtual;
  5106.           else if (yyval.itype == visibility_private)
  5107.             yyval.itype = visibility_private_virtual; ;
  5108.     break;}
  5109. case 368:
  5110. #line 2231 "cp-parse.y"
  5111. { tree t;
  5112.           push_obstacks_nochange ();
  5113.           end_temporary_allocation ();
  5114.  
  5115.           if (! IS_AGGR_TYPE (yyvsp[-1].ttype))
  5116.             {
  5117.               yyvsp[-1].ttype = make_lang_type (RECORD_TYPE);
  5118.               TYPE_NAME (yyvsp[-1].ttype) = get_identifier ("erroneous type");
  5119.             }
  5120.           if (TYPE_SIZE (yyvsp[-1].ttype))
  5121.             duplicate_tag_error (yyvsp[-1].ttype);
  5122.                   if (TYPE_SIZE (yyvsp[-1].ttype) || TYPE_BEING_DEFINED (yyvsp[-1].ttype))
  5123.                     {
  5124.                       t = make_lang_type (TREE_CODE (yyvsp[-1].ttype));
  5125.                       pushtag (TYPE_IDENTIFIER (yyvsp[-1].ttype), t);
  5126.                       yyvsp[-1].ttype = t;
  5127.                     }
  5128.           pushclass (yyvsp[-1].ttype, 0);
  5129.           TYPE_BEING_DEFINED (yyvsp[-1].ttype) = 1;
  5130.           t = TYPE_IDENTIFIER (yyvsp[-1].ttype);
  5131.           if (IDENTIFIER_TEMPLATE (t))
  5132.             overload_template_name (t, 1);
  5133.         ;
  5134.     break;}
  5135. case 369:
  5136. #line 2258 "cp-parse.y"
  5137. { yyval.ttype = NULL_TREE; ;
  5138.     break;}
  5139. case 370:
  5140. #line 2260 "cp-parse.y"
  5141. { yyval.ttype = build_tree_list ((tree)visibility_default, yyval.ttype); ;
  5142.     break;}
  5143. case 371:
  5144. #line 2262 "cp-parse.y"
  5145. { yyval.ttype = chainon (yyval.ttype, build_tree_list ((tree) yyvsp[-2].itype, yyvsp[0].ttype)); ;
  5146.     break;}
  5147. case 373:
  5148. #line 2268 "cp-parse.y"
  5149. { if (yyval.ttype == void_type_node) yyval.ttype = NULL_TREE; ;
  5150.     break;}
  5151. case 374:
  5152. #line 2270 "cp-parse.y"
  5153. { if (yyvsp[0].ttype != NULL_TREE && yyvsp[0].ttype != void_type_node)
  5154.             yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
  5155.     break;}
  5156. case 375:
  5157. #line 2273 "cp-parse.y"
  5158. { if (pedantic)
  5159.             pedwarn ("ANSI C++ forbids extra semicolons here"); ;
  5160.     break;}
  5161. case 376:
  5162. #line 2279 "cp-parse.y"
  5163. {
  5164.         do_components:
  5165.           if (yyvsp[-1].ttype == void_type_node)
  5166.             /* We just got some friends.
  5167.                They have been recorded elsewhere.  */
  5168.             yyval.ttype = NULL_TREE;
  5169.           else if (yyvsp[-1].ttype == NULL_TREE)
  5170.             {
  5171.               tree t = groktypename (build_decl_list (yyval.ttype, NULL_TREE));
  5172.               if (t == NULL_TREE)
  5173.             {
  5174.               error ("error in component specification");
  5175.               yyval.ttype = NULL_TREE;
  5176.             }
  5177.               else if (TREE_CODE (t) == UNION_TYPE)
  5178.             {
  5179.               /* handle anonymous unions */
  5180.               if (ANON_AGGRNAME_P (TYPE_IDENTIFIER (t)))
  5181.                 yyval.ttype = build_lang_field_decl (FIELD_DECL,
  5182.                             NULL_TREE, t);
  5183.               else
  5184.                 {
  5185.                   /* This is a local union decl with a name, but
  5186.                  no components, I think this is the right thing
  5187.                  to do.  (mrs)  */
  5188. #if 0
  5189.                   /* I copied this from below, it is probably
  5190.                  needed, but I cannot prove that to myself
  5191.                  right now, but if you find it is needed
  5192.                  please turn it on. (mrs)  */
  5193.                   if (TYPE_LANG_SPECIFIC (t)
  5194.                   && CLASSTYPE_DECLARED_EXCEPTION (t))
  5195.                 shadow_tag (yyval.ttype);
  5196. #endif
  5197.                   yyval.ttype = NULL_TREE;
  5198.                 }
  5199.             }
  5200.               else if (TREE_CODE (t) == ENUMERAL_TYPE)
  5201.             yyval.ttype = grok_enum_decls (t, NULL_TREE);
  5202.               else if (TREE_CODE (t) == RECORD_TYPE)
  5203.             {
  5204.               if (TYPE_LANG_SPECIFIC (t)
  5205.                   && CLASSTYPE_DECLARED_EXCEPTION (t))
  5206.                 shadow_tag (yyval.ttype);
  5207.               yyval.ttype = NULL_TREE;
  5208.             }
  5209.               else if (t != void_type_node)
  5210.             {
  5211.               error ("empty component declaration");
  5212.               yyval.ttype = NULL_TREE;
  5213.             }
  5214.               else yyval.ttype = NULL_TREE;
  5215.             }
  5216.           else
  5217.             {
  5218.               tree t = TREE_TYPE (yyvsp[-1].ttype);
  5219.               if (TREE_CODE (t) == ENUMERAL_TYPE && TREE_NONLOCAL_FLAG (t))
  5220.             yyval.ttype = grok_enum_decls (t, yyvsp[-1].ttype);
  5221.               else
  5222.             yyval.ttype = yyvsp[-1].ttype;
  5223.             }
  5224.           end_exception_decls ();
  5225.         ;
  5226.     break;}
  5227. case 377:
  5228. #line 2343 "cp-parse.y"
  5229. { yyval.ttype = groktypefield (yyval.ttype, yyvsp[-2].ttype); ;
  5230.     break;}
  5231. case 378:
  5232. #line 2345 "cp-parse.y"
  5233. { error ("missing ';' before right brace");
  5234.           yyungetc ('}', 0);
  5235.           yyval.ttype = groktypefield (yyval.ttype, yyvsp[-2].ttype); ;
  5236.     break;}
  5237. case 379:
  5238. #line 2349 "cp-parse.y"
  5239. { yyval.ttype = groktypefield (yyval.ttype, empty_parms ()); ;
  5240.     break;}
  5241. case 380:
  5242. #line 2351 "cp-parse.y"
  5243. { error ("missing ';' before right brace");
  5244.           yyungetc ('}', 0);
  5245.           yyval.ttype = groktypefield (yyval.ttype, empty_parms ()); ;
  5246.     break;}
  5247. case 381:
  5248. #line 2355 "cp-parse.y"
  5249. { goto do_components; ;
  5250.     break;}
  5251. case 382:
  5252. #line 2358 "cp-parse.y"
  5253. { yyval.ttype = grokfield (yyvsp[-1].ttype, yyval.ttype, 0, 0, 0, 0); ;
  5254.     break;}
  5255. case 383:
  5256. #line 2360 "cp-parse.y"
  5257. { error ("missing ';' before right brace");
  5258.           yyungetc ('}', 0);
  5259.           goto do_components; ;
  5260.     break;}
  5261. case 384:
  5262. #line 2364 "cp-parse.y"
  5263. { yyval.ttype = groktypefield (yyval.ttype, yyvsp[-2].ttype); ;
  5264.     break;}
  5265. case 385:
  5266. #line 2366 "cp-parse.y"
  5267. { error ("missing ';' before right brace");
  5268.           yyungetc ('}', 0);
  5269.           yyval.ttype = groktypefield (yyval.ttype, yyvsp[-2].ttype); ;
  5270.     break;}
  5271. case 386:
  5272. #line 2370 "cp-parse.y"
  5273. { yyval.ttype = groktypefield (yyval.ttype, empty_parms ()); ;
  5274.     break;}
  5275. case 387:
  5276. #line 2372 "cp-parse.y"
  5277. { error ("missing ';' before right brace");
  5278.           yyungetc ('}', 0);
  5279.           yyval.ttype = groktypefield (yyval.ttype, empty_parms ()); ;
  5280.     break;}
  5281. case 388:
  5282. #line 2376 "cp-parse.y"
  5283. { yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
  5284.     break;}
  5285. case 389:
  5286. #line 2378 "cp-parse.y"
  5287. { error ("missing ';' before right brace");
  5288.           yyungetc ('}', 0);
  5289.           yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
  5290.     break;}
  5291. case 390:
  5292. #line 2382 "cp-parse.y"
  5293. { yyval.ttype = NULL_TREE; ;
  5294.     break;}
  5295. case 391:
  5296. #line 2387 "cp-parse.y"
  5297. { yyval.ttype = finish_method (yyval.ttype); ;
  5298.     break;}
  5299. case 392:
  5300. #line 2389 "cp-parse.y"
  5301. { yyval.ttype = finish_method (yyval.ttype); ;
  5302.     break;}
  5303. case 393:
  5304. #line 2391 "cp-parse.y"
  5305. { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[-1].ttype, NULL_TREE, NULL_TREE); ;
  5306.     break;}
  5307. case 394:
  5308. #line 2393 "cp-parse.y"
  5309. { error ("missing ';' before right brace");
  5310.           yyungetc ('}', 0);
  5311.           yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[-1].ttype, NULL_TREE, NULL_TREE); ;
  5312.     break;}
  5313. case 395:
  5314. #line 2400 "cp-parse.y"
  5315. { yyval.ttype = NULL_TREE; ;
  5316.     break;}
  5317. case 397:
  5318. #line 2403 "cp-parse.y"
  5319. {
  5320.           /* In this context, void_type_node encodes
  5321.              friends.  They have been recorded elsewhere.  */
  5322.           if (yyval.ttype == void_type_node)
  5323.             yyval.ttype = yyvsp[0].ttype;
  5324.           else
  5325.             yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
  5326.         ;
  5327.     break;}
  5328. case 398:
  5329. #line 2415 "cp-parse.y"
  5330. { current_declspecs = yyvsp[-4].ttype;
  5331.           yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[-2].ttype, NULL_TREE, yyvsp[-1].ttype);
  5332.           cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
  5333.     break;}
  5334. case 399:
  5335. #line 2419 "cp-parse.y"
  5336. { current_declspecs = yyvsp[-6].ttype;
  5337.           yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[-4].ttype, yyvsp[0].ttype, yyvsp[-3].ttype);
  5338.           cplus_decl_attributes (yyval.ttype, yyvsp[-2].ttype); ;
  5339.     break;}
  5340. case 400:
  5341. #line 2423 "cp-parse.y"
  5342. { current_declspecs = yyvsp[-4].ttype;
  5343.           yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
  5344.           cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
  5345.     break;}
  5346. case 401:
  5347. #line 2427 "cp-parse.y"
  5348. { current_declspecs = yyvsp[-3].ttype;
  5349.           yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
  5350.           cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
  5351.     break;}
  5352. case 402:
  5353. #line 2431 "cp-parse.y"
  5354. { current_declspecs = yyvsp[-2].ttype;
  5355.           yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ;
  5356.     break;}
  5357. case 403:
  5358. #line 2437 "cp-parse.y"
  5359. { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[-2].ttype, NULL_TREE, yyvsp[-1].ttype);
  5360.           cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
  5361.     break;}
  5362. case 404:
  5363. #line 2440 "cp-parse.y"
  5364. { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[-4].ttype, yyvsp[0].ttype, yyvsp[-3].ttype);
  5365.           cplus_decl_attributes (yyval.ttype, yyvsp[-2].ttype); ;
  5366.     break;}
  5367. case 405:
  5368. #line 2443 "cp-parse.y"
  5369. { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
  5370.           cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
  5371.     break;}
  5372. case 406:
  5373. #line 2446 "cp-parse.y"
  5374. { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
  5375.           cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype); ;
  5376.     break;}
  5377. case 407:
  5378. #line 2449 "cp-parse.y"
  5379. { yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ;
  5380.     break;}
  5381. case 409:
  5382. #line 2459 "cp-parse.y"
  5383. { TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
  5384.     break;}
  5385. case 410:
  5386. #line 2464 "cp-parse.y"
  5387. { yyval.ttype = build_enumerator (yyval.ttype, NULL_TREE); ;
  5388.     break;}
  5389. case 411:
  5390. #line 2466 "cp-parse.y"
  5391. { yyval.ttype = build_enumerator (yyval.ttype, yyvsp[0].ttype); ;
  5392.     break;}
  5393. case 412:
  5394. #line 2471 "cp-parse.y"
  5395. { yyval.ttype = build_decl_list (yyval.ttype, yyvsp[0].ttype); ;
  5396.     break;}
  5397. case 413:
  5398. #line 2473 "cp-parse.y"
  5399. { yyval.ttype = build_decl_list (yyval.ttype, yyvsp[0].ttype); ;
  5400.     break;}
  5401. case 414:
  5402. #line 2478 "cp-parse.y"
  5403. { yyval.ttype = NULL_TREE; ;
  5404.     break;}
  5405. case 416:
  5406. #line 2481 "cp-parse.y"
  5407. { yyval.ttype = yyvsp[0].ttype; ;
  5408.     break;}
  5409. case 417:
  5410. #line 2486 "cp-parse.y"
  5411. { yyval.ttype = IDENTIFIER_AS_LIST (yyval.ttype); ;
  5412.     break;}
  5413. case 418:
  5414. #line 2488 "cp-parse.y"
  5415. { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
  5416.     break;}
  5417. case 419:
  5418. #line 2493 "cp-parse.y"
  5419. { yyval.ttype = NULL_TREE; ;
  5420.     break;}
  5421. case 420:
  5422. #line 2495 "cp-parse.y"
  5423. { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
  5424.     break;}
  5425. case 421:
  5426. #line 2503 "cp-parse.y"
  5427. { yyval.itype = suspend_momentary (); ;
  5428.     break;}
  5429. case 422:
  5430. #line 2504 "cp-parse.y"
  5431. { resume_momentary (yyvsp[-1].itype); yyval.ttype = yyvsp[0].ttype; ;
  5432.     break;}
  5433. case 423:
  5434. #line 2510 "cp-parse.y"
  5435. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  5436.     break;}
  5437. case 424:
  5438. #line 2512 "cp-parse.y"
  5439. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  5440.     break;}
  5441. case 425:
  5442. #line 2514 "cp-parse.y"
  5443. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[0].ttype); ;
  5444.     break;}
  5445. case 426:
  5446. #line 2516 "cp-parse.y"
  5447. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, NULL_TREE, NULL_TREE); ;
  5448.     break;}
  5449. case 427:
  5450. #line 2518 "cp-parse.y"
  5451. { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
  5452.     break;}
  5453. case 428:
  5454. #line 2520 "cp-parse.y"
  5455. { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
  5456.     break;}
  5457. case 429:
  5458. #line 2522 "cp-parse.y"
  5459. { yyval.ttype = yyvsp[-1].ttype; ;
  5460.     break;}
  5461. case 430:
  5462. #line 2524 "cp-parse.y"
  5463. { yyval.ttype = make_pointer_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
  5464.     break;}
  5465. case 431:
  5466. #line 2526 "cp-parse.y"
  5467. { see_typename (); ;
  5468.     break;}
  5469. case 433:
  5470. #line 2529 "cp-parse.y"
  5471. { yyval.ttype = make_reference_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
  5472.     break;}
  5473. case 434:
  5474. #line 2531 "cp-parse.y"
  5475. { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  5476.     break;}
  5477. case 435:
  5478. #line 2533 "cp-parse.y"
  5479. { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  5480.     break;}
  5481. case 437:
  5482. #line 2539 "cp-parse.y"
  5483. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  5484.     break;}
  5485. case 438:
  5486. #line 2541 "cp-parse.y"
  5487. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  5488.     break;}
  5489. case 439:
  5490. #line 2543 "cp-parse.y"
  5491. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[0].ttype); ;
  5492.     break;}
  5493. case 440:
  5494. #line 2545 "cp-parse.y"
  5495. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, NULL_TREE, NULL_TREE); ;
  5496.     break;}
  5497. case 441:
  5498. #line 2547 "cp-parse.y"
  5499. { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
  5500.     break;}
  5501. case 442:
  5502. #line 2549 "cp-parse.y"
  5503. { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
  5504.     break;}
  5505. case 443:
  5506. #line 2551 "cp-parse.y"
  5507. { yyval.ttype = yyvsp[-1].ttype; ;
  5508.     break;}
  5509. case 444:
  5510. #line 2553 "cp-parse.y"
  5511. { see_typename (); ;
  5512.     break;}
  5513. case 446:
  5514. #line 2556 "cp-parse.y"
  5515. { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  5516.     break;}
  5517. case 447:
  5518. #line 2558 "cp-parse.y"
  5519. { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  5520.     break;}
  5521. case 448:
  5522. #line 2566 "cp-parse.y"
  5523. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  5524.     break;}
  5525. case 449:
  5526. #line 2568 "cp-parse.y"
  5527. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  5528.     break;}
  5529. case 450:
  5530. #line 2570 "cp-parse.y"
  5531. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[0].ttype); ;
  5532.     break;}
  5533. case 451:
  5534. #line 2572 "cp-parse.y"
  5535. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, NULL_TREE, NULL_TREE); ;
  5536.     break;}
  5537. case 452:
  5538. #line 2574 "cp-parse.y"
  5539. { yyval.ttype = yyvsp[-1].ttype; ;
  5540.     break;}
  5541. case 453:
  5542. #line 2576 "cp-parse.y"
  5543. { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  5544.     break;}
  5545. case 454:
  5546. #line 2578 "cp-parse.y"
  5547. { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  5548.     break;}
  5549. case 455:
  5550. #line 2580 "cp-parse.y"
  5551. { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
  5552.     break;}
  5553. case 456:
  5554. #line 2582 "cp-parse.y"
  5555. { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
  5556.     break;}
  5557. case 457:
  5558. #line 2584 "cp-parse.y"
  5559. { see_typename (); ;
  5560.     break;}
  5561. case 458:
  5562. #line 2588 "cp-parse.y"
  5563. { see_typename (); ;
  5564.     break;}
  5565. case 459:
  5566. #line 2591 "cp-parse.y"
  5567. {
  5568.         destructor_name:
  5569.           see_typename ();
  5570.           yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype);
  5571.         ;
  5572.     break;}
  5573. case 460:
  5574. #line 2597 "cp-parse.y"
  5575. { goto destructor_name; ;
  5576.     break;}
  5577. case 461:
  5578. #line 2599 "cp-parse.y"
  5579. { goto destructor_name; ;
  5580.     break;}
  5581. case 462:
  5582. #line 2601 "cp-parse.y"
  5583. { see_typename ();
  5584.           if (TREE_CODE (yyval.ttype) != SCOPE_REF)
  5585.             yyval.ttype = build_push_scope (yyval.ttype, yyvsp[0].ttype);
  5586.           else if (TREE_OPERAND (yyval.ttype, 1) == NULL_TREE)
  5587.             TREE_OPERAND (yyval.ttype, 1) = yyvsp[0].ttype;
  5588.           else
  5589.             yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype);
  5590.         ;
  5591.     break;}
  5592. case 463:
  5593. #line 2610 "cp-parse.y"
  5594. { yyval.ttype = build_push_scope (yyval.ttype, yyvsp[0].ttype); ;
  5595.     break;}
  5596. case 464:
  5597. #line 2612 "cp-parse.y"
  5598. { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype)); ;
  5599.     break;}
  5600. case 465:
  5601. #line 2614 "cp-parse.y"
  5602. { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype)); ;
  5603.     break;}
  5604. case 466:
  5605. #line 2616 "cp-parse.y"
  5606. { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-2].ttype, empty_parms (), yyvsp[0].ttype)); ;
  5607.     break;}
  5608. case 467:
  5609. #line 2618 "cp-parse.y"
  5610. { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, NULL_TREE, NULL_TREE)); ;
  5611.     break;}
  5612. case 468:
  5613. #line 2621 "cp-parse.y"
  5614. { yyval.ttype = build_push_scope (yyval.ttype, yyvsp[0].ttype); ;
  5615.     break;}
  5616. case 469:
  5617. #line 2623 "cp-parse.y"
  5618. { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype)); ;
  5619.     break;}
  5620. case 470:
  5621. #line 2625 "cp-parse.y"
  5622. { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype)); ;
  5623.     break;}
  5624. case 471:
  5625. #line 2627 "cp-parse.y"
  5626. { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-2].ttype, empty_parms (), yyvsp[0].ttype)); ;
  5627.     break;}
  5628. case 472:
  5629. #line 2629 "cp-parse.y"
  5630. { yyval.ttype = build_push_scope (yyval.ttype, build_parse_node (CALL_EXPR, yyvsp[-4].ttype, NULL_TREE, NULL_TREE)); ;
  5631.     break;}
  5632. case 473:
  5633. #line 2631 "cp-parse.y"
  5634. { yyval.ttype = build_parse_node (SCOPE_REF, NULL_TREE, yyvsp[0].ttype); ;
  5635.     break;}
  5636. case 474:
  5637. #line 2635 "cp-parse.y"
  5638. { yyval.ttype = resolve_scope_to_name (NULL_TREE, yyval.ttype);
  5639.           if (yyval.ttype == NULL_TREE)
  5640.             {
  5641.               error ("undefined explicitly scoped type");
  5642.               yyval.ttype = error_mark_node; 
  5643.             }
  5644.         ;
  5645.     break;}
  5646. case 475:
  5647. #line 2643 "cp-parse.y"
  5648. {
  5649.                   if (yyval.ttype == error_mark_node)
  5650.                     /* leave it alone */;
  5651.                   else
  5652.             {
  5653.               yyval.ttype = resolve_scope_to_name (NULL_TREE, TYPE_IDENTIFIER (yyval.ttype));
  5654.               if (yyval.ttype == NULL_TREE)
  5655.             {
  5656.               error ("undefined explicitly scoped type");
  5657.               yyval.ttype = error_mark_node; 
  5658.             }
  5659.             }
  5660. /*                  if ($3) popclass (1); */
  5661.         ;
  5662.     break;}
  5663. case 478:
  5664. #line 2664 "cp-parse.y"
  5665. {
  5666.             /* Kludge!!! See rule "template_type" and the code
  5667.            * dealing with "template_type_seen_before_scope" in
  5668.            * yylex(). */
  5669.           yyval.ttype = yyvsp[0].ttype;
  5670.         ;
  5671.     break;}
  5672. case 479:
  5673. #line 2686 "cp-parse.y"
  5674. { see_typename ();
  5675.           yyval.ttype = yyvsp[-1].ttype; ;
  5676.     break;}
  5677. case 480:
  5678. #line 2690 "cp-parse.y"
  5679. { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  5680.     break;}
  5681. case 481:
  5682. #line 2692 "cp-parse.y"
  5683. { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
  5684.     break;}
  5685. case 482:
  5686. #line 2694 "cp-parse.y"
  5687. { see_typename (); ;
  5688.     break;}
  5689. case 483:
  5690. #line 2696 "cp-parse.y"
  5691. { yyval.ttype = yyvsp[-1].ttype; ;
  5692.     break;}
  5693. case 484:
  5694. #line 2698 "cp-parse.y"
  5695. { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
  5696.     break;}
  5697. case 485:
  5698. #line 2700 "cp-parse.y"
  5699. { yyval.ttype = make_reference_declarator (yyvsp[0].ttype, NULL_TREE); ;
  5700.     break;}
  5701. case 486:
  5702. #line 2702 "cp-parse.y"
  5703. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  5704.     break;}
  5705. case 487:
  5706. #line 2704 "cp-parse.y"
  5707. { yyval.ttype = build_parse_node (CALL_EXPR, yyval.ttype, empty_parms (), yyvsp[0].ttype); ;
  5708.     break;}
  5709. case 488:
  5710. #line 2706 "cp-parse.y"
  5711. { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
  5712.     break;}
  5713. case 489:
  5714. #line 2708 "cp-parse.y"
  5715. { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
  5716.     break;}
  5717. case 490:
  5718. #line 2710 "cp-parse.y"
  5719. { yyval.ttype = build_parse_node (CALL_EXPR, NULL_TREE, yyvsp[-2].ttype, yyvsp[0].ttype); ;
  5720.     break;}
  5721. case 491:
  5722. #line 2712 "cp-parse.y"
  5723. { yyval.ttype = build_parse_node (CALL_EXPR, NULL_TREE, empty_parms (), yyvsp[0].ttype); ;
  5724.     break;}
  5725. case 492:
  5726. #line 2714 "cp-parse.y"
  5727. { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
  5728.     break;}
  5729. case 493:
  5730. #line 2716 "cp-parse.y"
  5731. { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, NULL_TREE); ;
  5732.     break;}
  5733. case 494:
  5734. #line 2721 "cp-parse.y"
  5735. { tree t;
  5736.           t = yyval.ttype;
  5737.           while (TREE_OPERAND (t, 1))
  5738.             t = TREE_OPERAND (t, 1);
  5739.           TREE_OPERAND (t, 1) = build_parse_node (INDIRECT_REF, 0);
  5740.         ;
  5741.     break;}
  5742. case 495:
  5743. #line 2728 "cp-parse.y"
  5744. { tree t;
  5745.           t = yyval.ttype;
  5746.           while (TREE_OPERAND (t, 1))
  5747.             t = TREE_OPERAND (t, 1);
  5748.           TREE_OPERAND (t, 1) = build_parse_node (INDIRECT_REF, yyvsp[0].ttype);
  5749.         ;
  5750.     break;}
  5751. case 496:
  5752. #line 2735 "cp-parse.y"
  5753. { tree t;
  5754.           t = yyval.ttype;
  5755.           while (TREE_OPERAND (t, 1))
  5756.             t = TREE_OPERAND (t, 1);
  5757.           TREE_OPERAND (t, 1) = build_parse_node (ADDR_EXPR, 0);
  5758.         ;
  5759.     break;}
  5760. case 497:
  5761. #line 2742 "cp-parse.y"
  5762. { tree t;
  5763.           t = yyval.ttype;
  5764.           while (TREE_OPERAND (t, 1))
  5765.             t = TREE_OPERAND (t, 1);
  5766.           TREE_OPERAND (t, 1) = build_parse_node (ADDR_EXPR, yyvsp[0].ttype);
  5767.         ;
  5768.     break;}
  5769. case 498:
  5770. #line 2752 "cp-parse.y"
  5771. { tree t;
  5772.           t = yyval.ttype;
  5773.           while (TREE_OPERAND (t, 1))
  5774.             t = TREE_OPERAND (t, 1);
  5775.           TREE_OPERAND (t, 1) = build_parse_node (INDIRECT_REF, yyvsp[0].ttype);
  5776.         ;
  5777.     break;}
  5778. case 499:
  5779. #line 2759 "cp-parse.y"
  5780. { tree t;
  5781.           t = yyval.ttype;
  5782.           while (TREE_OPERAND (t, 1))
  5783.             t = TREE_OPERAND (t, 1);
  5784.           TREE_OPERAND (t, 1) = build_parse_node (ADDR_EXPR, yyvsp[0].ttype);
  5785.         ;
  5786.     break;}
  5787. case 505:
  5788. #line 2786 "cp-parse.y"
  5789. { emit_line_note (input_filename, lineno);
  5790.           pushlevel (0);
  5791.           clear_last_expr ();
  5792.           push_momentary ();
  5793.           expand_start_bindings (0);
  5794.           yyval.strtype = stmt_decl_msg;
  5795.           stmt_decl_msg = 0; ;
  5796.     break;}
  5797. case 507:
  5798. #line 2800 "cp-parse.y"
  5799. { if (pedantic)
  5800.             pedwarn ("ANSI C++ forbids label declarations"); ;
  5801.     break;}
  5802. case 510:
  5803. #line 2811 "cp-parse.y"
  5804. { tree link;
  5805.           for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
  5806.             {
  5807.               tree label = shadow_label (TREE_VALUE (link));
  5808.               C_DECLARED_LABEL_FLAG (label) = 1;
  5809.               declare_nonlocal_label (label);
  5810.             }
  5811.         ;
  5812.     break;}
  5813. case 511:
  5814. #line 2825 "cp-parse.y"
  5815. {;
  5816.     break;}
  5817. case 513:
  5818. #line 2830 "cp-parse.y"
  5819. { yyval.ttype = convert (void_type_node, integer_zero_node); ;
  5820.     break;}
  5821. case 514:
  5822. #line 2832 "cp-parse.y"
  5823. { pop_implicit_try_blocks (NULL_TREE);
  5824.           stmt_decl_msg = yyvsp[-3].strtype;
  5825.           expand_end_bindings (getdecls (), kept_level_p (), 1);
  5826.           yyval.ttype = poplevel (kept_level_p (), 1, 0);
  5827.           pop_momentary (); ;
  5828.     break;}
  5829. case 515:
  5830. #line 2838 "cp-parse.y"
  5831. { pop_implicit_try_blocks (NULL_TREE);
  5832.           stmt_decl_msg = yyvsp[-3].strtype;
  5833.           expand_end_bindings (getdecls (), kept_level_p (), 1);
  5834.           yyval.ttype = poplevel (kept_level_p (), 0, 0);
  5835.           pop_momentary (); ;
  5836.     break;}
  5837. case 516:
  5838. #line 2847 "cp-parse.y"
  5839. { emit_line_note (input_filename, lineno);
  5840.           expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0);
  5841.           stmt_decl_msg = "if"; ;
  5842.     break;}
  5843. case 517:
  5844. #line 2851 "cp-parse.y"
  5845. { stmt_decl_msg = 0; ;
  5846.     break;}
  5847. case 518:
  5848. #line 2856 "cp-parse.y"
  5849. { finish_stmt (); ;
  5850.     break;}
  5851. case 519:
  5852. #line 2858 "cp-parse.y"
  5853. { if (stmt_decl_msg)
  5854.             error ("declaration after %s invalid", stmt_decl_msg);
  5855.           stmt_decl_msg = 0;
  5856.           finish_stmt (); ;
  5857.     break;}
  5858. case 520:
  5859. #line 2863 "cp-parse.y"
  5860. {
  5861.             tree expr = yyvsp[-1].ttype;
  5862.           emit_line_note (input_filename, lineno);
  5863.           /* Do default conversion if safe and possibly important,
  5864.              in case within ({...}).  */
  5865.           if ((TREE_CODE (TREE_TYPE (expr)) == ARRAY_TYPE
  5866.                && lvalue_p (expr))
  5867.               || TREE_CODE (TREE_TYPE (expr)) == FUNCTION_TYPE)
  5868.             expr = default_conversion (expr);
  5869.           cplus_expand_expr_stmt (expr);
  5870.           clear_momentary ();
  5871.           finish_stmt (); ;
  5872.     break;}
  5873. case 521:
  5874. #line 2876 "cp-parse.y"
  5875. { expand_start_else ();
  5876.           stmt_decl_msg = "else"; ;
  5877.     break;}
  5878. case 522:
  5879. #line 2879 "cp-parse.y"
  5880. { expand_end_cond ();
  5881.           stmt_decl_msg = 0;
  5882.           finish_stmt (); ;
  5883.     break;}
  5884. case 523:
  5885. #line 2883 "cp-parse.y"
  5886. { expand_end_cond ();
  5887.           stmt_decl_msg = 0;
  5888.           finish_stmt (); ;
  5889.     break;}
  5890. case 524:
  5891. #line 2887 "cp-parse.y"
  5892. { emit_nop ();
  5893.           emit_line_note (input_filename, lineno);
  5894.           expand_start_loop (1); ;
  5895.     break;}
  5896. case 525:
  5897. #line 2891 "cp-parse.y"
  5898. { expand_exit_loop_if_false (0, truthvalue_conversion (yyvsp[-1].ttype));
  5899.           stmt_decl_msg = "while"; ;
  5900.     break;}
  5901. case 526:
  5902. #line 2894 "cp-parse.y"
  5903.           expand_end_loop ();
  5904.           stmt_decl_msg = 0;
  5905.           finish_stmt (); ;
  5906.     break;}
  5907. case 527:
  5908. #line 2899 "cp-parse.y"
  5909. { emit_nop ();
  5910.           emit_line_note (input_filename, lineno);
  5911.           expand_start_loop_continue_elsewhere (1);
  5912.           stmt_decl_msg = "do"; ;
  5913.     break;}
  5914. case 528:
  5915. #line 2904 "cp-parse.y"
  5916. { stmt_decl_msg = 0;
  5917.           expand_loop_continue_here (); ;
  5918.     break;}
  5919. case 529:
  5920. #line 2907 "cp-parse.y"
  5921. { emit_line_note (input_filename, lineno);
  5922.           expand_exit_loop_if_false (0, truthvalue_conversion (yyvsp[-2].ttype));
  5923.           expand_end_loop ();
  5924.           clear_momentary ();
  5925.           finish_stmt (); ;
  5926.     break;}
  5927. case 530:
  5928. #line 2913 "cp-parse.y"
  5929. { emit_nop ();
  5930.           emit_line_note (input_filename, lineno);
  5931.           if (yyvsp[0].ttype) cplus_expand_expr_stmt (yyvsp[0].ttype);
  5932.           expand_start_loop_continue_elsewhere (1); ;
  5933.     break;}
  5934. case 531:
  5935. #line 2918 "cp-parse.y"
  5936. { emit_line_note (input_filename, lineno);
  5937.           if (yyvsp[-1].ttype) expand_exit_loop_if_false (0, truthvalue_conversion (yyvsp[-1].ttype)); ;
  5938.     break;}
  5939. case 532:
  5940. #line 2923 "cp-parse.y"
  5941. { push_momentary ();
  5942.           stmt_decl_msg = "for"; ;
  5943.     break;}
  5944. case 533:
  5945. #line 2926 "cp-parse.y"
  5946. { emit_line_note (input_filename, lineno);
  5947.           expand_loop_continue_here ();
  5948.           if (yyvsp[-3].ttype) cplus_expand_expr_stmt (yyvsp[-3].ttype);
  5949.           pop_momentary ();
  5950.           expand_end_loop ();
  5951.           stmt_decl_msg = 0;
  5952.           finish_stmt (); ;
  5953.     break;}
  5954. case 534:
  5955. #line 2934 "cp-parse.y"
  5956. { emit_nop ();
  5957.           emit_line_note (input_filename, lineno);
  5958.           expand_start_loop_continue_elsewhere (1); ;
  5959.     break;}
  5960. case 535:
  5961. #line 2938 "cp-parse.y"
  5962. { emit_line_note (input_filename, lineno);
  5963.           if (yyvsp[-1].ttype) expand_exit_loop_if_false (0, truthvalue_conversion (yyvsp[-1].ttype)); ;
  5964.     break;}
  5965. case 536:
  5966. #line 2943 "cp-parse.y"
  5967. { push_momentary ();
  5968.           stmt_decl_msg = "for";
  5969.           yyvsp[0].itype = lineno; ;
  5970.     break;}
  5971. case 537:
  5972. #line 2947 "cp-parse.y"
  5973. { emit_line_note (input_filename, yyvsp[-2].itype);
  5974.           expand_loop_continue_here ();
  5975.           if (yyvsp[-3].ttype) cplus_expand_expr_stmt (yyvsp[-3].ttype);
  5976.           pop_momentary ();
  5977.           expand_end_loop ();
  5978.           pop_implicit_try_blocks (NULL_TREE);
  5979.           if (yyvsp[-8].itype)
  5980.             {
  5981.               register int keep = yyvsp[-8].itype > 0;
  5982.               if (keep) expand_end_bindings (0, keep, 1);
  5983.               poplevel (keep, 1, 0);
  5984.               pop_momentary ();
  5985.             }
  5986.           stmt_decl_msg = 0;
  5987.           finish_stmt ();
  5988.         ;
  5989.     break;}
  5990. case 538:
  5991. #line 2964 "cp-parse.y"
  5992. { emit_line_note (input_filename, lineno);
  5993.           c_expand_start_case (yyvsp[-1].ttype);
  5994.           /* Don't let the tree nodes for $3 be discarded by
  5995.              clear_momentary during the parsing of the next stmt.  */
  5996.           push_momentary ();
  5997.           stmt_decl_msg = "switch"; ;
  5998.     break;}
  5999. case 539:
  6000. #line 2971 "cp-parse.y"
  6001. { expand_end_case (yyvsp[-3].ttype);
  6002.           pop_momentary ();
  6003.           stmt_decl_msg = 0;
  6004.           finish_stmt (); ;
  6005.     break;}
  6006. case 540:
  6007. #line 2976 "cp-parse.y"
  6008. { register tree value = yyvsp[-1].ttype;
  6009.           register tree label
  6010.             = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
  6011.  
  6012.           /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
  6013.              Strip such NOP_EXPRs.  */
  6014.           if (TREE_CODE (value) == NOP_EXPR
  6015.               && TREE_TYPE (value) == TREE_TYPE (TREE_OPERAND (value, 0)))
  6016.             value = TREE_OPERAND (value, 0);
  6017.  
  6018.           if (TREE_READONLY_DECL_P (value))
  6019.             {
  6020.               value = decl_constant_value (value);
  6021.               /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
  6022.              Strip such NOP_EXPRs.  */
  6023.               if (TREE_CODE (value) == NOP_EXPR
  6024.               && TREE_TYPE (value) == TREE_TYPE (TREE_OPERAND (value, 0)))
  6025.             value = TREE_OPERAND (value, 0);
  6026.             }
  6027.           value = fold (value);
  6028.  
  6029.           if (TREE_CODE (value) != INTEGER_CST
  6030.               && value != error_mark_node)
  6031.             {
  6032.               error ("case label does not reduce to an integer constant");
  6033.               value = error_mark_node;
  6034.             }
  6035.           else
  6036.             /* Promote char or short to int.  */
  6037.             value = default_conversion (value);
  6038.           if (value != error_mark_node)
  6039.             {
  6040.               tree duplicate;
  6041.               int success = pushcase (value, label, &duplicate);
  6042.               if (success == 1)
  6043.             error ("case label not within a switch statement");
  6044.               else if (success == 2)
  6045.             {
  6046.               error ("duplicate case value");
  6047.               error_with_decl (duplicate, "this is the first entry for that value");
  6048.             }
  6049.               else if (success == 3)
  6050.             warning ("case value out of range");
  6051.               else if (success == 5)
  6052.             error ("case label within scope of cleanup or variable array");
  6053.             }
  6054.           define_case_label (label);
  6055.         ;
  6056.     break;}
  6057. case 542:
  6058. #line 3026 "cp-parse.y"
  6059. { register tree value1 = yyvsp[-3].ttype;
  6060.           register tree value2 = yyvsp[-1].ttype;
  6061.           register tree label
  6062.             = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
  6063.  
  6064.           if (pedantic)
  6065.             pedwarn ("ANSI C++ forbids range expressions in switch statement");
  6066.  
  6067.           /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
  6068.              Strip such NOP_EXPRs.  */
  6069.           if (TREE_CODE (value1) == NOP_EXPR
  6070.               && TREE_TYPE (value1) == TREE_TYPE (TREE_OPERAND (value1, 0)))
  6071.             value1 = TREE_OPERAND (value1, 0);
  6072.  
  6073.           if (TREE_READONLY_DECL_P (value1))
  6074.             {
  6075.               value1 = decl_constant_value (value1);
  6076.               /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
  6077.              Strip such NOP_EXPRs.  */
  6078.               if (TREE_CODE (value1) == NOP_EXPR
  6079.               && TREE_TYPE (value1) == TREE_TYPE (TREE_OPERAND (value1, 0)))
  6080.             value1 = TREE_OPERAND (value1, 0);
  6081.             }
  6082.           value1 = fold (value1);
  6083.  
  6084.           /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
  6085.              Strip such NOP_EXPRs.  */
  6086.           if (TREE_CODE (value2) == NOP_EXPR
  6087.               && TREE_TYPE (value2) == TREE_TYPE (TREE_OPERAND (value2, 0)))
  6088.             value2 = TREE_OPERAND (value2, 0);
  6089.  
  6090.           if (TREE_READONLY_DECL_P (value2))
  6091.             {
  6092.               value2 = decl_constant_value (value2);
  6093.               /* build_c_cast puts on a NOP_EXPR to make a non-lvalue.
  6094.              Strip such NOP_EXPRs.  */
  6095.               if (TREE_CODE (value2) == NOP_EXPR
  6096.               && TREE_TYPE (value2) == TREE_TYPE (TREE_OPERAND (value2, 0)))
  6097.             value2 = TREE_OPERAND (value2, 0);
  6098.             }
  6099.           value2 = fold (value2);
  6100.  
  6101.  
  6102.           if (TREE_CODE (value1) != INTEGER_CST
  6103.               && value1 != error_mark_node)
  6104.             {
  6105.               error ("case label does not reduce to an integer constant");
  6106.               value1 = error_mark_node;
  6107.             }
  6108.           if (TREE_CODE (value2) != INTEGER_CST
  6109.               && value2 != error_mark_node)
  6110.             {
  6111.               error ("case label does not reduce to an integer constant");
  6112.               value2 = error_mark_node;
  6113.             }
  6114.           if (value1 != error_mark_node
  6115.               && value2 != error_mark_node)
  6116.             {
  6117.               tree duplicate;
  6118.               int success = pushcase_range (value1, value2, label,
  6119.                             &duplicate);
  6120.               if (success == 1)
  6121.             error ("case label not within a switch statement");
  6122.               else if (success == 2)
  6123.             {
  6124.               error ("duplicate (or overlapping) case value");
  6125.               error_with_decl (duplicate, "this is the first entry overlapping that value");
  6126.             }
  6127.               else if (success == 3)
  6128.             warning ("case value out of range");
  6129.               else if (success == 4)
  6130.             warning ("empty range specified");
  6131.               else if (success == 5)
  6132.             error ("case label within scope of cleanup or variable array");
  6133.             }
  6134.           define_case_label (label);
  6135.         ;
  6136.     break;}
  6137. case 544:
  6138. #line 3105 "cp-parse.y"
  6139. {
  6140.           tree duplicate;
  6141.           register tree label
  6142.             = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
  6143.           int success = pushcase (NULL_TREE, label, &duplicate);
  6144.           if (success == 1)
  6145.             error ("default label not within a switch statement");
  6146.           else if (success == 2)
  6147.             {
  6148.               error ("multiple default labels in one switch");
  6149.               error_with_decl (duplicate, "this is the first default label");
  6150.             }
  6151.           define_case_label (NULL_TREE);
  6152.         ;
  6153.     break;}
  6154. case 546:
  6155. #line 3121 "cp-parse.y"
  6156. { emit_line_note (input_filename, lineno);
  6157.           if ( ! expand_exit_something ())
  6158.             error ("break statement not within loop or switch"); ;
  6159.     break;}
  6160. case 547:
  6161. #line 3125 "cp-parse.y"
  6162. { emit_line_note (input_filename, lineno);
  6163.           if (! expand_continue_loop (0))
  6164.             error ("continue statement not within a loop"); ;
  6165.     break;}
  6166. case 548:
  6167. #line 3129 "cp-parse.y"
  6168. { emit_line_note (input_filename, lineno);
  6169.           c_expand_return (NULL_TREE); ;
  6170.     break;}
  6171. case 549:
  6172. #line 3132 "cp-parse.y"
  6173. { emit_line_note (input_filename, lineno);
  6174.           c_expand_return (yyvsp[-1].ttype);
  6175.           finish_stmt ();
  6176.         ;
  6177.     break;}
  6178. case 550:
  6179. #line 3137 "cp-parse.y"
  6180. { if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
  6181.           emit_line_note (input_filename, lineno);
  6182.           expand_asm (yyvsp[-2].ttype);
  6183.           finish_stmt ();
  6184.         ;
  6185.     break;}
  6186. case 551:
  6187. #line 3144 "cp-parse.y"
  6188. { if (TREE_CHAIN (yyvsp[-4].ttype)) yyvsp[-4].ttype = combine_strings (yyvsp[-4].ttype);
  6189.           emit_line_note (input_filename, lineno);
  6190.           c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
  6191.                      yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE],
  6192.                      input_filename, lineno);
  6193.           finish_stmt ();
  6194.         ;
  6195.     break;}
  6196. case 552:
  6197. #line 3153 "cp-parse.y"
  6198. { if (TREE_CHAIN (yyvsp[-6].ttype)) yyvsp[-6].ttype = combine_strings (yyvsp[-6].ttype);
  6199.           emit_line_note (input_filename, lineno);
  6200.           c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
  6201.                      yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE],
  6202.                      input_filename, lineno);
  6203.           finish_stmt ();
  6204.         ;
  6205.     break;}
  6206. case 553:
  6207. #line 3163 "cp-parse.y"
  6208. { if (TREE_CHAIN (yyvsp[-8].ttype)) yyvsp[-8].ttype = combine_strings (yyvsp[-8].ttype);
  6209.           emit_line_note (input_filename, lineno);
  6210.           c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
  6211.                      yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE],
  6212.                      input_filename, lineno);
  6213.           finish_stmt ();
  6214.         ;
  6215.     break;}
  6216. case 554:
  6217. #line 3171 "cp-parse.y"
  6218. { emit_line_note (input_filename, lineno);
  6219.           expand_computed_goto (yyvsp[-1].ttype); ;
  6220.     break;}
  6221. case 555:
  6222. #line 3174 "cp-parse.y"
  6223. { tree decl;
  6224.           emit_line_note (input_filename, lineno);
  6225.           decl = lookup_label (yyvsp[-1].ttype);
  6226.           TREE_USED (decl) = 1;
  6227.           expand_goto (decl); ;
  6228.     break;}
  6229. case 556:
  6230. #line 3180 "cp-parse.y"
  6231. { finish_stmt (); ;
  6232.     break;}
  6233. case 557:
  6234. #line 3182 "cp-parse.y"
  6235. { error ("label must be followed by statement");
  6236.           yyungetc ('}', 0);
  6237.           finish_stmt (); ;
  6238.     break;}
  6239. case 558:
  6240. #line 3186 "cp-parse.y"
  6241. { finish_stmt (); ;
  6242.     break;}
  6243. case 559:
  6244. #line 3189 "cp-parse.y"
  6245. { cplus_expand_throw (NULL_TREE); ;
  6246.     break;}
  6247. case 560:
  6248. #line 3190 "cp-parse.y"
  6249. { cplus_expand_throw (yyvsp[-1].ttype); ;
  6250.     break;}
  6251. case 561:
  6252. #line 3192 "cp-parse.y"
  6253. { cplus_expand_raise (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, 0);
  6254.           finish_stmt (); ;
  6255.     break;}
  6256. case 562:
  6257. #line 3195 "cp-parse.y"
  6258. { cplus_expand_raise (yyvsp[-2].ttype, NULL_TREE, NULL_TREE, 0);
  6259.           finish_stmt (); ;
  6260.     break;}
  6261. case 563:
  6262. #line 3198 "cp-parse.y"
  6263. { cplus_expand_raise (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, 0);
  6264.           finish_stmt (); ;
  6265.     break;}
  6266. case 564:
  6267. #line 3201 "cp-parse.y"
  6268. { cplus_expand_raise (yyvsp[-2].ttype, NULL_TREE, NULL_TREE, 0);
  6269.           finish_stmt (); ;
  6270.     break;}
  6271. case 565:
  6272. #line 3204 "cp-parse.y"
  6273. { cplus_expand_reraise (yyvsp[-1].ttype);
  6274.           finish_stmt (); ;
  6275.     break;}
  6276. case 566:
  6277. #line 3207 "cp-parse.y"
  6278. {
  6279.           tree decl = cplus_expand_end_try (yyvsp[-3].itype);
  6280.           yyvsp[-2].ttype = current_exception_type;
  6281.           yyvsp[0].ttype = current_exception_decl;
  6282.           yyval.ttype = current_exception_object;
  6283.           cplus_expand_start_except (yyvsp[-1].ttype, decl);
  6284.           pushlevel (0);
  6285.           clear_last_expr ();
  6286.           push_momentary ();
  6287.           expand_start_bindings (0);
  6288.           stmt_decl_msg = 0;
  6289.         ;
  6290.     break;}
  6291. case 567:
  6292. #line 3220 "cp-parse.y"
  6293. {
  6294.           tree decls = getdecls ();
  6295.           /* If there is a default exception to handle,
  6296.              handle it here.  */
  6297.           if (yyvsp[-1].ttype)
  6298.             {
  6299.               tree decl = build_decl (CPLUS_CATCH_DECL, NULL_TREE, 0);
  6300.               tree block;
  6301.  
  6302.               pushlevel (1);
  6303.               expand_start_bindings (0);
  6304.               expand_expr (yyvsp[-1].ttype, 0, 0, 0);
  6305.               expand_end_bindings (0, 1, 0);
  6306.               block = poplevel (1, 0, 0);
  6307.  
  6308.               /* This is a catch block.  */
  6309.               TREE_LANG_FLAG_2 (block) = 1;
  6310.               BLOCK_VARS (block) = decl;
  6311.             }
  6312.  
  6313.           expand_end_bindings (decls, decls != 0, 1);
  6314.           poplevel (decls != 0, 1, 0);
  6315.           pop_momentary ();
  6316.           current_exception_type = yyvsp[-5].ttype;
  6317.           current_exception_decl = yyvsp[-3].ttype;
  6318.           current_exception_object = yyvsp[-2].ttype;
  6319.           cplus_expand_end_except (yyvsp[-1].ttype);
  6320.         ;
  6321.     break;}
  6322. case 568:
  6323. #line 3249 "cp-parse.y"
  6324. {
  6325.           cplus_expand_end_try (yyvsp[-1].itype);
  6326.           /* These are the important actions of
  6327.              `cplus_expand_end_except' which we must emulate.  */
  6328.           if (expand_escape_except ())
  6329.             expand_end_except ();
  6330.           expand_end_bindings (0, 0, 1);
  6331.           poplevel (0, 0, 0);
  6332.         ;
  6333.     break;}
  6334. case 569:
  6335. #line 3259 "cp-parse.y"
  6336. {
  6337.           tree decl = cplus_expand_end_try (yyvsp[-2].itype);
  6338.           yyvsp[-1].ttype = current_exception_type;
  6339.           yyvsp[0].ttype = current_exception_decl;
  6340.           yyval.ttype = current_exception_object;
  6341.           cplus_expand_start_except (NULL, decl);
  6342.           pushlevel (0);
  6343.           clear_last_expr ();
  6344.           push_momentary ();
  6345.           expand_start_bindings (0);
  6346.           stmt_decl_msg = 0;
  6347.         ;
  6348.     break;}
  6349. case 570:
  6350. #line 3272 "cp-parse.y"
  6351. {
  6352.           tree decls = getdecls ();
  6353.           /* If there is a default exception to handle,
  6354.              handle it here.  */
  6355.           if (yyvsp[0].ttype)
  6356.             {
  6357.               tree decl = build_decl (CPLUS_CATCH_DECL, NULL_TREE, 0);
  6358.               tree block;
  6359.  
  6360.               pushlevel (1);
  6361.               expand_start_bindings (0);
  6362.               expand_expr (yyvsp[0].ttype, 0, 0, 0);
  6363.               expand_end_bindings (0, 1, 0);
  6364.               block = poplevel (1, 0, 0);
  6365.  
  6366.               /* This is a catch block.  */
  6367.               TREE_LANG_FLAG_2 (block) = 1;
  6368.               BLOCK_VARS (block) = decl;
  6369.             }
  6370.  
  6371.           expand_end_bindings (decls, decls != 0, 1);
  6372.           poplevel (decls != 0, 1, 0);
  6373.           pop_momentary ();
  6374.           current_exception_type = yyvsp[-3].ttype;
  6375.           current_exception_decl = yyvsp[-2].ttype;
  6376.           current_exception_object = yyvsp[-1].ttype;
  6377.           cplus_expand_end_except (yyvsp[0].ttype);
  6378.         ;
  6379.     break;}
  6380. case 571:
  6381. #line 3301 "cp-parse.y"
  6382. { tree name = get_identifier ("(compiler error)");
  6383.           tree orig_ex_type = current_exception_type;
  6384.           tree orig_ex_decl = current_exception_decl;
  6385.           tree orig_ex_obj = current_exception_object;
  6386.           tree decl = cplus_expand_end_try (yyvsp[-2].itype), decls;
  6387.  
  6388.           /* Start hidden EXCEPT.  */
  6389.           cplus_expand_start_except (name, decl);
  6390.           pushlevel (0);
  6391.           clear_last_expr ();
  6392.           push_momentary ();
  6393.           expand_start_bindings (0);
  6394.           stmt_decl_msg = 0;
  6395.  
  6396.           /* This sets up the reraise.  */
  6397.           cplus_expand_reraise (yyvsp[0].ttype);
  6398.  
  6399.           decls = getdecls ();
  6400.           expand_end_bindings (decls, decls != 0, 1);
  6401.           poplevel (decls != 0, 1, 0);
  6402.           pop_momentary ();
  6403.           current_exception_type = orig_ex_type;
  6404.           current_exception_decl = orig_ex_decl;
  6405.           current_exception_object = orig_ex_obj;
  6406.           /* This will reraise for us.  */
  6407.           cplus_expand_end_except (error_mark_node);
  6408.           if (yychar == YYEMPTY)
  6409.             yychar = YYLEX;
  6410.           if (yychar != ';')
  6411.             error ("missing ';' after reraise statement");
  6412.         ;
  6413.     break;}
  6414. case 572:
  6415. #line 3333 "cp-parse.y"
  6416. { yyerror ("`except' missing after `try' statement");
  6417.           /* Terminate the binding contour started by special
  6418.              code in `.pushlevel'.  Automagically pops off
  6419.              the conditional we started for `try' stmt.  */
  6420.           cplus_expand_end_try (yyvsp[0].itype);
  6421.           expand_end_bindings (0, 0, 1);
  6422.           poplevel (0, 0, 0);
  6423.           pop_momentary ();
  6424.           YYERROR; ;
  6425.     break;}
  6426. case 573:
  6427. #line 3348 "cp-parse.y"
  6428. {
  6429.           yyval.itype = 1;
  6430.           pop_implicit_try_blocks (NULL_TREE);
  6431.         ;
  6432.     break;}
  6433. case 574:
  6434. #line 3353 "cp-parse.y"
  6435. {
  6436.           yyval.itype = 1;
  6437.           pop_implicit_try_blocks (NULL_TREE);
  6438.         ;
  6439.     break;}
  6440. case 575:
  6441. #line 3358 "cp-parse.y"
  6442. {
  6443.           yyval.itype = 0;
  6444.           pop_implicit_try_blocks (NULL_TREE);
  6445.         ;
  6446.     break;}
  6447. case 576:
  6448. #line 3366 "cp-parse.y"
  6449. { tree label;
  6450.         do_label:
  6451.           label = define_label (input_filename, lineno, yyvsp[-1].ttype);
  6452.           if (label)
  6453.             expand_label (label);
  6454.         ;
  6455.     break;}
  6456. case 577:
  6457. #line 3373 "cp-parse.y"
  6458. { goto do_label; ;
  6459.     break;}
  6460. case 578:
  6461. #line 3375 "cp-parse.y"
  6462. { tree label = define_label (input_filename, lineno, yyvsp[0].ttype);
  6463.           if (label)
  6464.             expand_label (label);
  6465.         ;
  6466.     break;}
  6467. case 579:
  6468. #line 3381 "cp-parse.y"
  6469. { cplus_expand_start_try (0); ;
  6470.     break;}
  6471. case 581:
  6472. #line 3387 "cp-parse.y"
  6473. {
  6474.           yyval.itype = 1;
  6475.           pop_implicit_try_blocks (NULL_TREE);
  6476.         ;
  6477.     break;}
  6478. case 582:
  6479. #line 3392 "cp-parse.y"
  6480. {
  6481.           yyval.itype = 1;
  6482.           pop_implicit_try_blocks (NULL_TREE);
  6483.         ;
  6484.     break;}
  6485. case 583:
  6486. #line 3397 "cp-parse.y"
  6487. {
  6488.           yyval.itype = 0;
  6489.           pop_implicit_try_blocks (NULL_TREE);
  6490.         ;
  6491.     break;}
  6492. case 585:
  6493. #line 3404 "cp-parse.y"
  6494. { cplus_expand_start_try (0); ;
  6495.     break;}
  6496. case 587:
  6497. #line 3408 "cp-parse.y"
  6498. { yyval.ttype = NULL_TREE; ;
  6499.     break;}
  6500. case 588:
  6501. #line 3410 "cp-parse.y"
  6502. {
  6503.           tree type = lookup_exception_type (current_class_type, current_class_name, yyvsp[0].ttype);
  6504.           if (type == NULL_TREE)
  6505.             {
  6506.               error ("`%s' is not an exception type",
  6507.                  IDENTIFIER_POINTER (TREE_VALUE (yyvsp[0].ttype)));
  6508.               current_exception_type = NULL_TREE;
  6509.               TREE_TYPE (current_exception_object) = error_mark_node;
  6510.             }
  6511.           else
  6512.             {
  6513.               current_exception_type = type;
  6514.               /* In-place union.  */
  6515.               TREE_TYPE (current_exception_object) = type;
  6516.             }
  6517.           yyvsp[0].ttype = cplus_expand_start_catch (yyvsp[0].ttype);
  6518.           pushlevel (1);
  6519.           expand_start_bindings (0);
  6520.         ;
  6521.     break;}
  6522. case 589:
  6523. #line 3430 "cp-parse.y"
  6524. {
  6525.           expand_end_bindings (0, 1, 0);
  6526.           yyvsp[0].ttype = poplevel (1, 0, 0);
  6527.  
  6528.           cplus_expand_end_catch (0);
  6529.  
  6530.           /* Mark this as a catch block.  */
  6531.           TREE_LANG_FLAG_2 (yyvsp[0].ttype) = 1;
  6532.           if (yyvsp[-2].ttype != error_mark_node)
  6533.             {
  6534.               tree decl = build_decl (CPLUS_CATCH_DECL, DECL_NAME (yyvsp[-2].ttype), 0);
  6535.               DECL_RTL (decl) = DECL_RTL (yyvsp[-2].ttype);
  6536.               TREE_CHAIN (decl) = BLOCK_VARS (yyvsp[0].ttype);
  6537.               BLOCK_VARS (yyvsp[0].ttype) = decl;
  6538.             }
  6539.         ;
  6540.     break;}
  6541. case 590:
  6542. #line 3447 "cp-parse.y"
  6543. {
  6544.           if (yyvsp[-1].ttype)
  6545.             error ("duplicate default in exception handler");
  6546.           current_exception_type = NULL_TREE;
  6547.           /* Takes it right out of scope.  */
  6548.           TREE_TYPE (current_exception_object) = error_mark_node;
  6549.  
  6550.           if (! expand_catch_default ())
  6551.             compiler_error ("default catch botch");
  6552.  
  6553.           /* The default exception is handled as the
  6554.              last in the chain of exceptions handled.  */
  6555.           do_pending_stack_adjust ();
  6556.           start_sequence ();
  6557.           yyvsp[-1].ttype = make_node (RTL_EXPR);
  6558.           TREE_TYPE (yyvsp[-1].ttype) = void_type_node;
  6559.         ;
  6560.     break;}
  6561. case 591:
  6562. #line 3465 "cp-parse.y"
  6563. {
  6564.           extern struct rtx_def *get_insns ();
  6565.           do_pending_stack_adjust ();
  6566.           if (! expand_catch (NULL_TREE))
  6567.             compiler_error ("except nesting botch");
  6568.           if (! expand_end_catch ())
  6569.             compiler_error ("except nesting botch");
  6570.           RTL_EXPR_SEQUENCE (yyvsp[-3].ttype) = get_insns ();
  6571.           if (yyvsp[0].ttype)
  6572.             {
  6573.               /* Mark this block as the default catch block.  */
  6574.               TREE_LANG_FLAG_1 (yyvsp[0].ttype) = 1;
  6575.               TREE_LANG_FLAG_2 (yyvsp[0].ttype) = 1;
  6576.             }
  6577.           end_sequence ();
  6578.         ;
  6579.     break;}
  6580. case 592:
  6581. #line 3485 "cp-parse.y"
  6582. { yyval.ttype = NULL_TREE; ;
  6583.     break;}
  6584. case 594:
  6585. #line 3490 "cp-parse.y"
  6586. { yyval.ttype = NULL_TREE; ;
  6587.     break;}
  6588. case 595:
  6589. #line 3492 "cp-parse.y"
  6590. {
  6591.           extern tree ansi_expand_start_catch ();
  6592.           extern tree cplus_exception_name ();
  6593.           tree type = groktypename (yyvsp[-2].ttype);
  6594.           current_exception_type = type;
  6595.           /* In-place union.  */
  6596.           if (yyvsp[-1].ttype)
  6597.             {
  6598.               tree tmp;
  6599.               tmp = pushdecl (build_decl (VAR_DECL, yyvsp[-1].ttype, type));
  6600.               current_exception_object =
  6601.                   build1 (INDIRECT_REF, type, tmp);
  6602.              }
  6603.           yyvsp[-2].ttype = ansi_expand_start_catch(type);
  6604.           pushlevel (1);
  6605.           expand_start_bindings (0);
  6606.         ;
  6607.     break;}
  6608. case 596:
  6609. #line 3510 "cp-parse.y"
  6610. {
  6611.           expand_end_bindings (0, 1, 0);
  6612.           yyvsp[0].ttype = poplevel (1, 0, 0);
  6613.  
  6614.           cplus_expand_end_catch (0);
  6615.  
  6616.           /* Mark this as a catch block.  */
  6617.           TREE_LANG_FLAG_2 (yyvsp[0].ttype) = 1;
  6618.           if (yyvsp[-4].ttype != error_mark_node)
  6619.             {
  6620.               tree decl = build_decl (CPLUS_CATCH_DECL, DECL_NAME (yyvsp[-4].ttype), 0);
  6621.               DECL_RTL (decl) = DECL_RTL (yyvsp[-4].ttype);
  6622.               TREE_CHAIN (decl) = BLOCK_VARS (yyvsp[0].ttype);
  6623.               BLOCK_VARS (yyvsp[0].ttype) = decl;
  6624.             }
  6625.         ;
  6626.     break;}
  6627. case 597:
  6628. #line 3530 "cp-parse.y"
  6629. { yyval.ttype = NULL_TREE; ;
  6630.     break;}
  6631. case 598:
  6632. #line 3532 "cp-parse.y"
  6633. { yyval.ttype = yyvsp[-1].ttype; ;
  6634.     break;}
  6635. case 599:
  6636. #line 3534 "cp-parse.y"
  6637. { yyval.ttype = NULL_TREE; ;
  6638.     break;}
  6639. case 600:
  6640. #line 3539 "cp-parse.y"
  6641. { yyval.itype = 0; ;
  6642.     break;}
  6643. case 601:
  6644. #line 3541 "cp-parse.y"
  6645. { yyval.itype = 0; ;
  6646.     break;}
  6647. case 602:
  6648. #line 3543 "cp-parse.y"
  6649. { yyval.itype = 1; ;
  6650.     break;}
  6651. case 603:
  6652. #line 3545 "cp-parse.y"
  6653. { yyval.itype = -1; ;
  6654.     break;}
  6655. case 604:
  6656. #line 3552 "cp-parse.y"
  6657. { if (pedantic)
  6658.             pedwarn ("ANSI C++ forbids use of `asm' keyword");
  6659.           emit_line_note (input_filename, lineno); ;
  6660.     break;}
  6661. case 605:
  6662. #line 3556 "cp-parse.y"
  6663. { if (pedantic)
  6664.             pedwarn ("ANSI C++ forbids use of `asm' keyword");
  6665.           emit_line_note (input_filename, lineno); ;
  6666.     break;}
  6667. case 606:
  6668. #line 3563 "cp-parse.y"
  6669. { yyval.ttype = NULL_TREE; ;
  6670.     break;}
  6671. case 608:
  6672. #line 3566 "cp-parse.y"
  6673. { yyval.ttype = NULL_TREE; ;
  6674.     break;}
  6675. case 609:
  6676. #line 3572 "cp-parse.y"
  6677. { yyval.ttype = NULL_TREE; ;
  6678.     break;}
  6679. case 612:
  6680. #line 3579 "cp-parse.y"
  6681. { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
  6682.     break;}
  6683. case 613:
  6684. #line 3584 "cp-parse.y"
  6685. { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[-1].ttype); ;
  6686.     break;}
  6687. case 614:
  6688. #line 3589 "cp-parse.y"
  6689. { yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, NULL_TREE); ;
  6690.     break;}
  6691. case 615:
  6692. #line 3591 "cp-parse.y"
  6693. { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
  6694.     break;}
  6695. case 616:
  6696. #line 3600 "cp-parse.y"
  6697. {
  6698.           if (strict_prototype)
  6699.             yyval.ttype = void_list_node;
  6700.           else
  6701.             yyval.ttype = NULL_TREE;
  6702.         ;
  6703.     break;}
  6704. case 617:
  6705. #line 3607 "cp-parse.y"
  6706. {
  6707.           yyval.ttype = chainon (yyval.ttype, void_list_node);
  6708.           TREE_PARMLIST (yyval.ttype) = 1;
  6709.         ;
  6710.     break;}
  6711. case 618:
  6712. #line 3612 "cp-parse.y"
  6713. {
  6714.           TREE_PARMLIST (yyval.ttype) = 1;
  6715.         ;
  6716.     break;}
  6717. case 619:
  6718. #line 3617 "cp-parse.y"
  6719. {
  6720.           TREE_PARMLIST (yyval.ttype) = 1;
  6721.         ;
  6722.     break;}
  6723. case 620:
  6724. #line 3621 "cp-parse.y"
  6725. {
  6726.           /* ARM $8.2.5 has this as a boxed-off comment.  */
  6727.           if (pedantic)
  6728.             warning ("use of `...' without a first argument is non-portable");
  6729.           yyval.ttype = NULL_TREE;
  6730.         ;
  6731.     break;}
  6732. case 621:
  6733. #line 3628 "cp-parse.y"
  6734. {
  6735.           TREE_PARMLIST (yyval.ttype) = 1;
  6736.         ;
  6737.     break;}
  6738. case 622:
  6739. #line 3632 "cp-parse.y"
  6740. {
  6741.           TREE_PARMLIST (yyval.ttype) = 1;
  6742.         ;
  6743.     break;}
  6744. case 623:
  6745. #line 3636 "cp-parse.y"
  6746. {
  6747.           /* This helps us recover from really nasty
  6748.              parse errors, for example, a missing right
  6749.              parenthesis.  */
  6750.           yyerror ("possibly missing ')'");
  6751.           yyval.ttype = chainon (yyval.ttype, void_list_node);
  6752.           TREE_PARMLIST (yyval.ttype) = 1;
  6753.           yyungetc (':', 0);
  6754.           yychar = ')';
  6755.         ;
  6756.     break;}
  6757. case 624:
  6758. #line 3651 "cp-parse.y"
  6759. { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
  6760.     break;}
  6761. case 625:
  6762. #line 3653 "cp-parse.y"
  6763. { yyval.ttype = build_tree_list (yyvsp[0].ttype, yyval.ttype); ;
  6764.     break;}
  6765. case 626:
  6766. #line 3655 "cp-parse.y"
  6767. { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
  6768.     break;}
  6769. case 627:
  6770. #line 3657 "cp-parse.y"
  6771. { yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ;
  6772.     break;}
  6773. case 628:
  6774. #line 3659 "cp-parse.y"
  6775. { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
  6776.     break;}
  6777. case 629:
  6778. #line 3661 "cp-parse.y"
  6779. { yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ;
  6780.     break;}
  6781. case 630:
  6782. #line 3682 "cp-parse.y"
  6783. { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[0].ttype);
  6784.           see_typename (); ;
  6785.     break;}
  6786. case 631:
  6787. #line 3685 "cp-parse.y"
  6788. { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[0].ttype);
  6789.           see_typename (); ;
  6790.     break;}
  6791. case 634:
  6792. #line 3692 "cp-parse.y"
  6793. { yyval.ttype = yyvsp[0].ttype; ;
  6794.     break;}
  6795. case 635:
  6796. #line 3696 "cp-parse.y"
  6797. { see_typename (); ;
  6798.     break;}
  6799. case 636:
  6800. #line 3700 "cp-parse.y"
  6801. { dont_see_typename (); ;
  6802.     break;}
  6803. case 637:
  6804. #line 3719 "cp-parse.y"
  6805. {
  6806.           warning ("type specifier omitted for parameter");
  6807.           yyval.ttype = build_tree_list (TREE_PURPOSE (TREE_VALUE (yyvsp[-2].ttype)), yyval.ttype);
  6808.         ;
  6809.     break;}
  6810. case 638:
  6811. #line 3727 "cp-parse.y"
  6812. { yyval.ttype = NULL_TREE; ;
  6813.     break;}
  6814. case 639:
  6815. #line 3729 "cp-parse.y"
  6816. { yyval.ttype = yyvsp[0].ttype; ;
  6817.     break;}
  6818. case 640:
  6819. #line 3731 "cp-parse.y"
  6820. { yyval.ttype = yyvsp[-1].ttype; ;
  6821.     break;}
  6822. case 641:
  6823. #line 3736 "cp-parse.y"
  6824. { yyval.ttype = void_list_node; ;
  6825.     break;}
  6826. case 642:
  6827. #line 3738 "cp-parse.y"
  6828. { yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
  6829.     break;}
  6830. case 643:
  6831. #line 3740 "cp-parse.y"
  6832. { yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
  6833.     break;}
  6834. case 644:
  6835. #line 3742 "cp-parse.y"
  6836. { yyval.ttype = build_decl_list (void_type_node, yyvsp[0].ttype); ;
  6837.     break;}
  6838. case 645:
  6839. #line 3744 "cp-parse.y"
  6840. { yyval.ttype = build_decl_list (void_type_node, yyvsp[0].ttype); ;
  6841.     break;}
  6842. case 646:
  6843. #line 3746 "cp-parse.y"
  6844. { yyval.ttype = build_decl_list (yyval.ttype, yyvsp[0].ttype); ;
  6845.     break;}
  6846. case 648:
  6847. #line 3752 "cp-parse.y"
  6848. { yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
  6849.     break;}
  6850. case 650:
  6851. #line 3758 "cp-parse.y"
  6852. {
  6853.             TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype;
  6854.           yyval.ttype = yyvsp[0].ttype;
  6855.         ;
  6856.     break;}
  6857. case 652:
  6858. #line 3767 "cp-parse.y"
  6859. {
  6860.             TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype;
  6861.           yyval.ttype = yyvsp[0].ttype;
  6862.         ;
  6863.     break;}
  6864. case 653:
  6865. #line 3775 "cp-parse.y"
  6866. { yyval.ttype = ansi_opname[MULT_EXPR]; ;
  6867.     break;}
  6868. case 654:
  6869. #line 3777 "cp-parse.y"
  6870. { yyval.ttype = ansi_opname[TRUNC_DIV_EXPR]; ;
  6871.     break;}
  6872. case 655:
  6873. #line 3779 "cp-parse.y"
  6874. { yyval.ttype = ansi_opname[TRUNC_MOD_EXPR]; ;
  6875.     break;}
  6876. case 656:
  6877. #line 3781 "cp-parse.y"
  6878. { yyval.ttype = ansi_opname[PLUS_EXPR]; ;
  6879.     break;}
  6880. case 657:
  6881. #line 3783 "cp-parse.y"
  6882. { yyval.ttype = ansi_opname[MINUS_EXPR]; ;
  6883.     break;}
  6884. case 658:
  6885. #line 3785 "cp-parse.y"
  6886. { yyval.ttype = ansi_opname[BIT_AND_EXPR]; ;
  6887.     break;}
  6888. case 659:
  6889. #line 3787 "cp-parse.y"
  6890. { yyval.ttype = ansi_opname[BIT_IOR_EXPR]; ;
  6891.     break;}
  6892. case 660:
  6893. #line 3789 "cp-parse.y"
  6894. { yyval.ttype = ansi_opname[BIT_XOR_EXPR]; ;
  6895.     break;}
  6896. case 661:
  6897. #line 3791 "cp-parse.y"
  6898. { yyval.ttype = ansi_opname[BIT_NOT_EXPR]; ;
  6899.     break;}
  6900. case 662:
  6901. #line 3793 "cp-parse.y"
  6902. { yyval.ttype = ansi_opname[COMPOUND_EXPR]; ;
  6903.     break;}
  6904. case 663:
  6905. #line 3795 "cp-parse.y"
  6906. { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
  6907.     break;}
  6908. case 664:
  6909. #line 3797 "cp-parse.y"
  6910. { yyval.ttype = ansi_opname[LT_EXPR]; ;
  6911.     break;}
  6912. case 665:
  6913. #line 3799 "cp-parse.y"
  6914. { yyval.ttype = ansi_opname[GT_EXPR]; ;
  6915.     break;}
  6916. case 666:
  6917. #line 3801 "cp-parse.y"
  6918. { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
  6919.     break;}
  6920. case 667:
  6921. #line 3803 "cp-parse.y"
  6922. { yyval.ttype = ansi_assopname[yyvsp[0].code]; ;
  6923.     break;}
  6924. case 668:
  6925. #line 3805 "cp-parse.y"
  6926. {
  6927.           yyval.ttype = ansi_opname [MODIFY_EXPR];
  6928.           if (current_class_type)
  6929.             {
  6930.               TYPE_HAS_ASSIGNMENT (current_class_type) = 1;
  6931.               TYPE_GETS_ASSIGNMENT (current_class_type) = 1;
  6932.             }
  6933.         ;
  6934.     break;}
  6935. case 669:
  6936. #line 3814 "cp-parse.y"
  6937. { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
  6938.     break;}
  6939. case 670:
  6940. #line 3816 "cp-parse.y"
  6941. { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
  6942.     break;}
  6943. case 671:
  6944. #line 3818 "cp-parse.y"
  6945. { yyval.ttype = ansi_opname[POSTINCREMENT_EXPR]; ;
  6946.     break;}
  6947. case 672:
  6948. #line 3820 "cp-parse.y"
  6949. { yyval.ttype = ansi_opname[PREDECREMENT_EXPR]; ;
  6950.     break;}
  6951. case 673:
  6952. #line 3822 "cp-parse.y"
  6953. { yyval.ttype = ansi_opname[TRUTH_ANDIF_EXPR]; ;
  6954.     break;}
  6955. case 674:
  6956. #line 3824 "cp-parse.y"
  6957. { yyval.ttype = ansi_opname[TRUTH_ORIF_EXPR]; ;
  6958.     break;}
  6959. case 675:
  6960. #line 3826 "cp-parse.y"
  6961. { yyval.ttype = ansi_opname[TRUTH_NOT_EXPR]; ;
  6962.     break;}
  6963. case 676:
  6964. #line 3828 "cp-parse.y"
  6965. { yyval.ttype = ansi_opname[COND_EXPR]; ;
  6966.     break;}
  6967. case 677:
  6968. #line 3830 "cp-parse.y"
  6969. { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
  6970.     break;}
  6971. case 678:
  6972. #line 3832 "cp-parse.y"
  6973. { yyval.ttype = ansi_opname[COMPONENT_REF];
  6974.           if (current_class_type)
  6975.             {
  6976.               tree t = current_class_type;
  6977.               while (t)
  6978.             {
  6979.               TYPE_OVERLOADS_ARROW (t) = 1;
  6980.               t = TYPE_NEXT_VARIANT (t);
  6981.             }
  6982.             }
  6983.         ;
  6984.     break;}
  6985. case 679:
  6986. #line 3844 "cp-parse.y"
  6987. { yyval.ttype = ansi_opname[MEMBER_REF];
  6988.           if (current_class_type)
  6989.             {
  6990.               tree t = current_class_type;
  6991.               while (t)
  6992.             {
  6993.               TYPE_OVERLOADS_ARROW (t) = 1;
  6994.               t = TYPE_NEXT_VARIANT (t);
  6995.             }
  6996.             }
  6997.         ;
  6998.     break;}
  6999. case 680:
  7000. #line 3856 "cp-parse.y"
  7001. {
  7002.           if (yychar == YYEMPTY)
  7003.             yychar = YYLEX;
  7004.           if (yychar == '(' || yychar == LEFT_RIGHT)
  7005.             {
  7006.               yyval.ttype = ansi_opname[METHOD_CALL_EXPR];
  7007.               if (current_class_type)
  7008.             {
  7009.               tree t = current_class_type;
  7010.               while (t)
  7011.                 {
  7012.                   TYPE_OVERLOADS_METHOD_CALL_EXPR (t) = 1;
  7013.                   t = TYPE_NEXT_VARIANT (t);
  7014.                 }
  7015.             }
  7016.             }
  7017.           else
  7018.             {
  7019.               yyval.ttype = build_parse_node (CALL_EXPR, ansi_opname[COMPONENT_REF], void_list_node, yyvsp[0].ttype);
  7020.               if (current_class_type)
  7021.             {
  7022.               tree t = current_class_type;
  7023.               while (t)
  7024.                 {
  7025.                   TYPE_OVERLOADS_ARROW (t) = 1;
  7026.                   t = TYPE_NEXT_VARIANT (t);
  7027.                 }
  7028.             }
  7029.             }
  7030.         ;
  7031.     break;}
  7032. case 681:
  7033. #line 3887 "cp-parse.y"
  7034. { yyval.ttype = ansi_opname[CALL_EXPR];
  7035.           if (current_class_type)
  7036.             {
  7037.               tree t = current_class_type;
  7038.               while (t)
  7039.             {
  7040.               TYPE_OVERLOADS_CALL_EXPR (t) = 1;
  7041.               t = TYPE_NEXT_VARIANT (t);
  7042.             }
  7043.             }
  7044.         ;
  7045.     break;}
  7046. case 682:
  7047. #line 3899 "cp-parse.y"
  7048. { yyval.ttype = ansi_opname[ARRAY_REF];
  7049.           if (current_class_type)
  7050.             {
  7051.               tree t = current_class_type;
  7052.               while (t)
  7053.             {
  7054.               TYPE_OVERLOADS_ARRAY_REF (t) = 1;
  7055.               t = TYPE_NEXT_VARIANT (t);
  7056.             }
  7057.             }
  7058.         ;
  7059.     break;}
  7060. case 683:
  7061. #line 3911 "cp-parse.y"
  7062. {
  7063.           yyval.ttype = ansi_opname[NEW_EXPR];
  7064.           if (current_class_type)
  7065.             {
  7066.               tree t = current_class_type;
  7067.               while (t)
  7068.             {
  7069.               TREE_GETS_NEW (t) = 1;
  7070.               t = TYPE_NEXT_VARIANT (t);
  7071.             }
  7072.             }
  7073.         ;
  7074.     break;}
  7075. case 684:
  7076. #line 3924 "cp-parse.y"
  7077. {
  7078.           yyval.ttype = ansi_opname[DELETE_EXPR];
  7079.           if (current_class_type)
  7080.             {
  7081.               tree t = current_class_type;
  7082.               while (t)
  7083.             {
  7084.               TREE_GETS_DELETE (t) = 1;
  7085.               t = TYPE_NEXT_VARIANT (t);
  7086.             }
  7087.             }
  7088.         ;
  7089.     break;}
  7090. case 685:
  7091. #line 3940 "cp-parse.y"
  7092. { yyval.ttype = build1 (TYPE_EXPR, yyvsp[-1].ttype, yyvsp[0].ttype); ;
  7093.     break;}
  7094. case 686:
  7095. #line 3942 "cp-parse.y"
  7096. { yyval.ttype = ansi_opname[ERROR_MARK]; ;
  7097.     break;}
  7098. }
  7099.    /* the action file gets copied in in place of this dollarsign */
  7100. #line 440 "bison.simple"
  7101.  
  7102.   yyvsp -= yylen;
  7103.   yyssp -= yylen;
  7104. #ifdef YYLSP_NEEDED
  7105.   yylsp -= yylen;
  7106. #endif
  7107.  
  7108. #if YYDEBUG != 0
  7109.   if (yydebug)
  7110.     {
  7111.       short *ssp1 = yyss - 1;
  7112.       fprintf (stderr, "state stack now");
  7113.       while (ssp1 != yyssp)
  7114.     fprintf (stderr, " %d", *++ssp1);
  7115.       fprintf (stderr, "\n");
  7116.     }
  7117. #endif
  7118.  
  7119.   *++yyvsp = yyval;
  7120.  
  7121. #ifdef YYLSP_NEEDED
  7122.   yylsp++;
  7123.   if (yylen == 0)
  7124.     {
  7125.       yylsp->first_line = yylloc.first_line;
  7126.       yylsp->first_column = yylloc.first_column;
  7127.       yylsp->last_line = (yylsp-1)->last_line;
  7128.       yylsp->last_column = (yylsp-1)->last_column;
  7129.       yylsp->text = 0;
  7130.     }
  7131.   else
  7132.     {
  7133.       yylsp->last_line = (yylsp+yylen-1)->last_line;
  7134.       yylsp->last_column = (yylsp+yylen-1)->last_column;
  7135.     }
  7136. #endif
  7137.  
  7138.   /* Now "shift" the result of the reduction.
  7139.      Determine what state that goes to,
  7140.      based on the state we popped back to
  7141.      and the rule number reduced by.  */
  7142.  
  7143.   yyn = yyr1[yyn];
  7144.  
  7145.   yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
  7146.   if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
  7147.     yystate = yytable[yystate];
  7148.   else
  7149.     yystate = yydefgoto[yyn - YYNTBASE];
  7150.  
  7151.   goto yynewstate;
  7152.  
  7153. yyerrlab:   /* here on detecting error */
  7154.  
  7155.   if (! yyerrstatus)
  7156.     /* If not already recovering from an error, report this error.  */
  7157.     {
  7158.       ++yynerrs;
  7159.  
  7160. #ifdef YYERROR_VERBOSE
  7161.       yyn = yypact[yystate];
  7162.  
  7163.       if (yyn > YYFLAG && yyn < YYLAST)
  7164.     {
  7165.       int size = 0;
  7166.       char *msg;
  7167.       int x, count;
  7168.  
  7169.       count = 0;
  7170.       for (x = 0; x < (sizeof(yytname) / sizeof(char *)); x++)
  7171.         if (yycheck[x + yyn] == x)
  7172.           size += strlen(yytname[x]) + 15, count++;
  7173.       msg = (char *) malloc(size + 15);
  7174.       if (msg != 0)
  7175.         {
  7176.           strcpy(msg, "parse error");
  7177.  
  7178.           if (count < 5)
  7179.         {
  7180.           count = 0;
  7181.           for (x = 0; x < (sizeof(yytname) / sizeof(char *)); x++)
  7182.             if (yycheck[x + yyn] == x)
  7183.               {
  7184.             strcat(msg, count == 0 ? ", expecting `" : " or `");
  7185.             strcat(msg, yytname[x]);
  7186.             strcat(msg, "'");
  7187.             count++;
  7188.               }
  7189.         }
  7190.           yyerror(msg);
  7191.           free(msg);
  7192.         }
  7193.       else
  7194.         yyerror ("parse error; also virtual memory exceeded");
  7195.     }
  7196.       else
  7197. #endif /* YYERROR_VERBOSE */
  7198.     yyerror("parse error");
  7199.     }
  7200.  
  7201. yyerrlab1:   /* here on error raised explicitly by an action */
  7202.  
  7203.   if (yyerrstatus == 3)
  7204.     {
  7205.       /* if just tried and failed to reuse lookahead token after an error, discard it.  */
  7206.  
  7207.       /* return failure if at end of input */
  7208.       if (yychar == YYEOF)
  7209.     YYABORT;
  7210.  
  7211. #if YYDEBUG != 0
  7212.       if (yydebug)
  7213.     fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
  7214. #endif
  7215.  
  7216.       yychar = YYEMPTY;
  7217.     }
  7218.  
  7219.   /* Else will try to reuse lookahead token
  7220.      after shifting the error token.  */
  7221.  
  7222.   yyerrstatus = 3;        /* Each real token shifted decrements this */
  7223.  
  7224.   goto yyerrhandle;
  7225.  
  7226. yyerrdefault:  /* current state does not do anything special for the error token. */
  7227.  
  7228. #if 0
  7229.   /* This is wrong; only states that explicitly want error tokens
  7230.      should shift them.  */
  7231.   yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
  7232.   if (yyn) goto yydefault;
  7233. #endif
  7234.  
  7235. yyerrpop:   /* pop the current state because it cannot handle the error token */
  7236.  
  7237.   if (yyssp == yyss) YYABORT;
  7238.   yyvsp--;
  7239.   yystate = *--yyssp;
  7240. #ifdef YYLSP_NEEDED
  7241.   yylsp--;
  7242. #endif
  7243.  
  7244. #if YYDEBUG != 0
  7245.   if (yydebug)
  7246.     {
  7247.       short *ssp1 = yyss - 1;
  7248.       fprintf (stderr, "Error: state stack now");
  7249.       while (ssp1 != yyssp)
  7250.     fprintf (stderr, " %d", *++ssp1);
  7251.       fprintf (stderr, "\n");
  7252.     }
  7253. #endif
  7254.  
  7255. yyerrhandle:
  7256.  
  7257.   yyn = yypact[yystate];
  7258.   if (yyn == YYFLAG)
  7259.     goto yyerrdefault;
  7260.  
  7261.   yyn += YYTERROR;
  7262.   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
  7263.     goto yyerrdefault;
  7264.  
  7265.   yyn = yytable[yyn];
  7266.   if (yyn < 0)
  7267.     {
  7268.       if (yyn == YYFLAG)
  7269.     goto yyerrpop;
  7270.       yyn = -yyn;
  7271.       goto yyreduce;
  7272.     }
  7273.   else if (yyn == 0)
  7274.     goto yyerrpop;
  7275.  
  7276.   if (yyn == YYFINAL)
  7277.     YYACCEPT;
  7278.  
  7279. #if YYDEBUG != 0
  7280.   if (yydebug)
  7281.     fprintf(stderr, "Shifting error token, ");
  7282. #endif
  7283.  
  7284.   *++yyvsp = yylval;
  7285. #ifdef YYLSP_NEEDED
  7286.   *++yylsp = yylloc;
  7287. #endif
  7288.  
  7289.   yystate = yyn;
  7290.   goto yynewstate;
  7291. }
  7292. #line 3945 "cp-parse.y"
  7293.  
  7294.  
  7295. tree
  7296. get_current_declspecs ()
  7297. {
  7298.   return current_declspecs;
  7299. }
  7300.