Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/parser.cc

    rc1c1112 rab57786  
    8383#include "LinkageSpec.h"
    8484
     85union DeclQualifiers {
     86        unsigned int value;                                                                     // assume 32-bits
     87        struct {
     88                bool Extern : 1;
     89                bool Static : 1;
     90                bool Auto : 1;
     91                bool Register : 1;
     92                bool Inline : 1;
     93                bool Fortran : 1;
     94                bool Noreturn : 1;
     95                bool Threadlocal : 1;
     96                bool Extension : 1;
     97                bool Lvalue : 1;
     98                bool Const : 1;
     99                bool Volatile : 1;
     100                bool Restrict : 1;
     101                bool Atomic : 1;
     102        } qual;
     103}; // DeclQualifiers
     104DeclQualifiers declQualifiers = { 0 };
     105
     106union DeclType {
     107        unsigned int value;                                                                     // assume 32-bits
     108        struct {
     109                bool Char : 1;
     110                bool Bool : 1;
     111                bool Short : 1;
     112                bool Int : 1;
     113                bool Float : 1;
     114                bool Double : 1;
     115                bool Long : 1;
     116                bool Signed : 1;
     117                bool Unsigned : 1;
     118                bool Void : 1;
     119                bool Complex : 1;
     120                bool Imaginary : 1;
     121                bool Valist : 1;
     122        } type;
     123}; // DeclType
     124DeclType declTypes = { 0 };
     125
    85126extern DeclarationNode * parseTree;
    86127extern LinkageSpec::Spec linkage;
     
    96137
    97138/* Line 268 of yacc.c  */
    98 #line 99 "Parser/parser.cc"
     139#line 140 "Parser/parser.cc"
    99140
    100141/* Enabling traces.  */
     
    347388
    348389/* Line 293 of yacc.c  */
    349 #line 115 "parser.yy"
     390#line 156 "parser.yy"
    350391
    351392        Token tok;
     
    367408
    368409/* Line 293 of yacc.c  */
    369 #line 370 "Parser/parser.cc"
     410#line 411 "Parser/parser.cc"
    370411} YYSTYPE;
    371412# define YYSTYPE_IS_TRIVIAL 1
     
    379420
    380421/* Line 343 of yacc.c  */
    381 #line 382 "Parser/parser.cc"
     422#line 423 "Parser/parser.cc"
    382423
    383424#ifdef short
     
    934975     208,   174,    -1,   232,   228,   327,   134,   208,   174,    -1,
    935976     318,    -1,   331,    -1,   323,    -1,   164,   122,   164,    -1,
    936       -1,    64,   109,   142,   110,   312,    -1,    -1,   313,    -1,
     977      -1,    64,   109,   141,   110,   312,    -1,    -1,   313,    -1,
    937978     314,    -1,   313,   314,    -1,    39,   109,   109,   315,   110,
    938979     110,    -1,   316,    -1,   315,   116,   316,    -1,    -1,   317,
     
    10211062static const yytype_uint16 yyrline[] =
    10221063{
    1023        0,   300,   300,   304,   311,   312,   313,   317,   318,   319,
    1024      323,   324,   328,   329,   333,   334,   338,   342,   343,   354,
    1025      356,   358,   360,   365,   366,   372,   376,   378,   379,   381,
    1026      382,   384,   386,   388,   397,   398,   404,   405,   409,   410,
    1027      414,   418,   420,   422,   424,   429,   432,   434,   436,   441,
    1028      454,   456,   458,   460,   462,   464,   466,   468,   470,   472,
    1029      474,   481,   482,   488,   489,   490,   491,   495,   496,   498,
    1030      503,   504,   506,   508,   513,   514,   516,   521,   522,   524,
    1031      529,   530,   532,   534,   536,   541,   542,   544,   549,   550,
    1032      555,   556,   561,   562,   567,   568,   573,   574,   579,   580,
    1033      583,   585,   590,   595,   596,   598,   604,   605,   609,   610,
    1034      611,   612,   613,   614,   615,   616,   617,   618,   619,   625,
    1035      627,   629,   631,   636,   637,   642,   643,   649,   650,   656,
    1036      657,   658,   659,   660,   661,   662,   663,   664,   674,   681,
    1037      683,   693,   694,   699,   701,   707,   709,   713,   714,   719,
    1038      724,   727,   729,   731,   741,   743,   754,   755,   757,   761,
    1039      763,   767,   768,   773,   774,   778,   783,   784,   788,   790,
    1040      796,   797,   801,   803,   805,   807,   813,   814,   818,   820,
    1041      825,   827,   829,   834,   836,   841,   843,   847,   850,   854,
    1042      857,   861,   863,   865,   867,   872,   874,   876,   881,   883,
    1043      885,   887,   889,   894,   896,   898,   900,   905,   917,   918,
    1044      923,   925,   930,   934,   936,   938,   940,   942,   948,   949,
    1045      955,   956,   960,   961,   966,   968,   974,   975,   977,   982,
    1046      987,   997,   999,  1003,  1004,  1009,  1011,  1015,  1016,  1020,
    1047     1022,  1026,  1027,  1031,  1032,  1036,  1037,  1052,  1053,  1054,
    1048     1055,  1056,  1060,  1065,  1072,  1082,  1087,  1092,  1100,  1105,
    1049     1110,  1115,  1120,  1128,  1150,  1155,  1162,  1164,  1171,  1176,
    1050     1181,  1192,  1197,  1202,  1207,  1212,  1221,  1226,  1234,  1235,
    1051     1236,  1237,  1243,  1248,  1256,  1257,  1258,  1259,  1263,  1264,
    1052     1265,  1266,  1271,  1272,  1281,  1282,  1287,  1288,  1293,  1295,
    1053     1297,  1299,  1301,  1304,  1303,  1315,  1316,  1318,  1328,  1329,
    1054     1334,  1336,  1338,  1340,  1342,  1345,  1347,  1350,  1355,  1357,
    1055     1359,  1361,  1363,  1365,  1367,  1369,  1371,  1373,  1375,  1377,
    1056     1379,  1385,  1386,  1388,  1390,  1392,  1397,  1398,  1404,  1405,
    1057     1407,  1409,  1414,  1416,  1418,  1420,  1425,  1426,  1428,  1430,
    1058     1435,  1436,  1438,  1443,  1444,  1446,  1448,  1453,  1455,  1457,
    1059     1462,  1463,  1467,  1469,  1475,  1474,  1478,  1480,  1485,  1487,
    1060     1493,  1494,  1499,  1500,  1502,  1503,  1512,  1513,  1515,  1517,
    1061     1522,  1524,  1530,  1531,  1533,  1536,  1539,  1544,  1545,  1550,
    1062     1555,  1559,  1561,  1567,  1566,  1573,  1575,  1581,  1582,  1590,
    1063     1591,  1595,  1596,  1597,  1599,  1601,  1608,  1609,  1611,  1613,
    1064     1618,  1619,  1625,  1626,  1630,  1631,  1636,  1637,  1638,  1640,
    1065     1648,  1649,  1651,  1654,  1656,  1660,  1661,  1662,  1664,  1666,
    1066     1670,  1675,  1683,  1684,  1693,  1695,  1700,  1701,  1702,  1706,
    1067     1707,  1708,  1712,  1713,  1714,  1718,  1719,  1720,  1725,  1726,
    1068     1727,  1728,  1734,  1735,  1737,  1742,  1743,  1748,  1749,  1750,
    1069     1751,  1752,  1767,  1768,  1773,  1774,  1780,  1782,  1785,  1787,
    1070     1789,  1812,  1813,  1815,  1817,  1822,  1823,  1825,  1830,  1835,
    1071     1836,  1842,  1841,  1845,  1849,  1851,  1853,  1859,  1860,  1865,
    1072     1870,  1872,  1877,  1879,  1880,  1882,  1887,  1889,  1891,  1896,
    1073     1898,  1903,  1908,  1916,  1922,  1921,  1935,  1936,  1941,  1942,
    1074     1946,  1951,  1956,  1964,  1969,  1980,  1981,  1986,  1987,  1993,
    1075     1994,  1998,  1999,  2000,  2003,  2002,  2013,  2022,  2028,  2034,
    1076     2043,  2049,  2055,  2061,  2067,  2075,  2081,  2089,  2095,  2104,
    1077     2105,  2106,  2110,  2114,  2116,  2121,  2122,  2126,  2127,  2132,
    1078     2138,  2139,  2142,  2144,  2145,  2149,  2150,  2151,  2152,  2186,
    1079     2188,  2189,  2191,  2196,  2201,  2206,  2208,  2210,  2215,  2217,
    1080     2219,  2221,  2226,  2228,  2237,  2239,  2240,  2245,  2247,  2249,
    1081     2254,  2256,  2258,  2263,  2265,  2267,  2276,  2277,  2278,  2282,
    1082     2284,  2286,  2291,  2293,  2295,  2300,  2302,  2304,  2319,  2321,
    1083     2322,  2324,  2329,  2330,  2335,  2337,  2339,  2344,  2346,  2348,
    1084     2350,  2355,  2357,  2359,  2369,  2371,  2372,  2374,  2379,  2381,
    1085     2383,  2388,  2390,  2392,  2394,  2399,  2401,  2403,  2434,  2436,
    1086     2437,  2439,  2444,  2449,  2457,  2459,  2461,  2466,  2468,  2473,
    1087     2475,  2489,  2490,  2492,  2497,  2499,  2501,  2503,  2505,  2510,
    1088     2511,  2513,  2515,  2520,  2522,  2524,  2530,  2532,  2534,  2538,
    1089     2540,  2542,  2544,  2558,  2559,  2561,  2566,  2568,  2570,  2572,
    1090     2574,  2579,  2580,  2582,  2584,  2589,  2591,  2593,  2599,  2600,
    1091     2602,  2611,  2614,  2616,  2619,  2621,  2623,  2636,  2637,  2639,
    1092     2644,  2646,  2648,  2650,  2652,  2657,  2658,  2660,  2662,  2667,
    1093     2669,  2677,  2678,  2679,  2684,  2685,  2689,  2691,  2693,  2695,
    1094     2697,  2699,  2706,  2708,  2710,  2712,  2714,  2716,  2718,  2720,
    1095     2722,  2724,  2729,  2731,  2733,  2738,  2764,  2765,  2767,  2771,
    1096     2772,  2776,  2778,  2780,  2782,  2784,  2786,  2793,  2795,  2797,
    1097     2799,  2801,  2803,  2808,  2813,  2815,  2817,  2835,  2837,  2842,
    1098     2843
     1064       0,   341,   341,   345,   352,   353,   354,   358,   359,   360,
     1065     364,   365,   369,   370,   374,   375,   379,   383,   384,   395,
     1066     397,   399,   401,   406,   407,   413,   417,   419,   420,   422,
     1067     423,   425,   427,   429,   438,   439,   445,   446,   450,   451,
     1068     455,   459,   461,   463,   465,   470,   473,   475,   477,   482,
     1069     495,   497,   499,   501,   503,   505,   507,   509,   511,   513,
     1070     515,   522,   523,   529,   530,   531,   532,   536,   537,   539,
     1071     544,   545,   547,   549,   554,   555,   557,   562,   563,   565,
     1072     570,   571,   573,   575,   577,   582,   583,   585,   590,   591,
     1073     596,   597,   602,   603,   608,   609,   614,   615,   620,   621,
     1074     624,   626,   631,   636,   637,   639,   645,   646,   650,   651,
     1075     652,   653,   654,   655,   656,   657,   658,   659,   660,   666,
     1076     668,   670,   672,   677,   678,   683,   684,   690,   691,   697,
     1077     698,   699,   700,   701,   702,   703,   704,   705,   715,   722,
     1078     724,   734,   735,   740,   742,   748,   750,   754,   755,   760,
     1079     765,   768,   770,   772,   782,   784,   795,   796,   798,   802,
     1080     804,   808,   809,   814,   815,   819,   824,   825,   829,   831,
     1081     837,   838,   842,   844,   846,   848,   854,   855,   859,   861,
     1082     866,   868,   870,   875,   877,   882,   884,   888,   891,   895,
     1083     898,   902,   904,   906,   908,   913,   915,   917,   922,   924,
     1084     926,   928,   930,   935,   937,   939,   941,   946,   958,   959,
     1085     964,   966,   971,   975,   977,   979,   981,   983,   989,   990,
     1086     996,   997,  1001,  1002,  1007,  1009,  1015,  1016,  1018,  1023,
     1087    1028,  1038,  1040,  1044,  1045,  1050,  1052,  1056,  1057,  1061,
     1088    1063,  1067,  1068,  1072,  1073,  1077,  1078,  1093,  1094,  1095,
     1089    1096,  1097,  1101,  1106,  1113,  1123,  1128,  1133,  1141,  1146,
     1090    1151,  1156,  1161,  1169,  1191,  1196,  1203,  1205,  1212,  1217,
     1091    1222,  1233,  1238,  1243,  1248,  1253,  1262,  1267,  1275,  1276,
     1092    1277,  1278,  1284,  1289,  1297,  1298,  1299,  1300,  1304,  1305,
     1093    1306,  1307,  1312,  1313,  1322,  1323,  1328,  1329,  1334,  1336,
     1094    1338,  1340,  1342,  1345,  1344,  1356,  1357,  1359,  1369,  1370,
     1095    1375,  1377,  1379,  1381,  1383,  1385,  1387,  1389,  1394,  1396,
     1096    1398,  1400,  1402,  1404,  1406,  1408,  1410,  1412,  1414,  1416,
     1097    1418,  1424,  1425,  1427,  1429,  1431,  1436,  1437,  1443,  1444,
     1098    1446,  1448,  1453,  1455,  1457,  1459,  1464,  1465,  1467,  1469,
     1099    1474,  1475,  1477,  1482,  1483,  1485,  1487,  1492,  1494,  1496,
     1100    1501,  1502,  1506,  1508,  1514,  1513,  1517,  1519,  1524,  1526,
     1101    1532,  1533,  1538,  1539,  1541,  1542,  1551,  1552,  1554,  1556,
     1102    1561,  1563,  1569,  1570,  1572,  1575,  1578,  1583,  1584,  1589,
     1103    1594,  1598,  1600,  1606,  1605,  1612,  1614,  1620,  1621,  1629,
     1104    1630,  1634,  1635,  1636,  1638,  1640,  1647,  1648,  1650,  1652,
     1105    1657,  1658,  1664,  1665,  1669,  1670,  1675,  1676,  1677,  1679,
     1106    1687,  1688,  1690,  1693,  1695,  1699,  1700,  1701,  1703,  1705,
     1107    1709,  1714,  1722,  1723,  1732,  1734,  1739,  1740,  1741,  1745,
     1108    1746,  1747,  1751,  1752,  1753,  1757,  1758,  1759,  1764,  1765,
     1109    1766,  1767,  1773,  1774,  1776,  1781,  1782,  1787,  1788,  1789,
     1110    1790,  1791,  1806,  1807,  1812,  1813,  1819,  1821,  1824,  1826,
     1111    1828,  1851,  1852,  1854,  1856,  1861,  1862,  1864,  1869,  1874,
     1112    1875,  1881,  1880,  1884,  1888,  1890,  1892,  1898,  1899,  1904,
     1113    1909,  1911,  1916,  1918,  1919,  1921,  1926,  1928,  1930,  1935,
     1114    1937,  1942,  1947,  1955,  1961,  1960,  1974,  1975,  1980,  1981,
     1115    1985,  1990,  1995,  2003,  2008,  2019,  2020,  2025,  2026,  2032,
     1116    2033,  2037,  2038,  2039,  2042,  2041,  2052,  2061,  2067,  2073,
     1117    2082,  2088,  2094,  2100,  2106,  2114,  2120,  2128,  2134,  2143,
     1118    2144,  2145,  2149,  2153,  2155,  2160,  2161,  2165,  2166,  2171,
     1119    2177,  2178,  2181,  2183,  2184,  2188,  2189,  2190,  2191,  2225,
     1120    2227,  2228,  2230,  2235,  2240,  2245,  2247,  2249,  2254,  2256,
     1121    2258,  2260,  2265,  2267,  2276,  2278,  2279,  2284,  2286,  2288,
     1122    2293,  2295,  2297,  2302,  2304,  2306,  2315,  2316,  2317,  2321,
     1123    2323,  2325,  2330,  2332,  2334,  2339,  2341,  2343,  2358,  2360,
     1124    2361,  2363,  2368,  2369,  2374,  2376,  2378,  2383,  2385,  2387,
     1125    2389,  2394,  2396,  2398,  2408,  2410,  2411,  2413,  2418,  2420,
     1126    2422,  2427,  2429,  2431,  2433,  2438,  2440,  2442,  2473,  2475,
     1127    2476,  2478,  2483,  2488,  2496,  2498,  2500,  2505,  2507,  2512,
     1128    2514,  2528,  2529,  2531,  2536,  2538,  2540,  2542,  2544,  2549,
     1129    2550,  2552,  2554,  2559,  2561,  2563,  2569,  2571,  2573,  2577,
     1130    2579,  2581,  2583,  2597,  2598,  2600,  2605,  2607,  2609,  2611,
     1131    2613,  2618,  2619,  2621,  2623,  2628,  2630,  2632,  2638,  2639,
     1132    2641,  2650,  2653,  2655,  2658,  2660,  2662,  2675,  2676,  2678,
     1133    2683,  2685,  2687,  2689,  2691,  2696,  2697,  2699,  2701,  2706,
     1134    2708,  2716,  2717,  2718,  2723,  2724,  2728,  2730,  2732,  2734,
     1135    2736,  2738,  2745,  2747,  2749,  2751,  2753,  2755,  2757,  2759,
     1136    2761,  2763,  2768,  2770,  2772,  2777,  2803,  2804,  2806,  2810,
     1137    2811,  2815,  2817,  2819,  2821,  2823,  2825,  2832,  2834,  2836,
     1138    2838,  2840,  2842,  2847,  2852,  2854,  2856,  2874,  2876,  2881,
     1139    2882
    10991140};
    11001141#endif
     
    15921633/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    15931634   STATE-NUM.  */
    1594 #define YYPACT_NINF -1282
     1635#define YYPACT_NINF -1390
    15951636static const yytype_int16 yypact[] =
    15961637{
    1597     7429,  6461, -1282,    36, -1282, -1282, -1282, -1282, -1282, -1282,
    1598    -1282,    83, -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282,
    1599    -1282, -1282, -1282, -1282, -1282, -1282,   131,   131,   131,  1844,
    1600      994,   124,  7661,   230, -1282, -1282, -1282, -1282, -1282,   175,
    1601    -1282, -1282, -1282,   965,   193, -1282, -1282, -1282, -1282,  5932,
    1602    -1282, -1282, -1282, -1282,   122,   216, -1282,  1880, -1282, -1282,
    1603    -1282, -1282,   251,  1298,   387,    61,  7777, -1282, -1282,  9536,
    1604     1247, -1282, -1282,   557,   425,  3682,   886,   409,   557,  1203,
    1605    -1282, -1282,   744,   941, -1282,   557,  1708, -1282,   342, -1282,
    1606      478,   483, -1282, -1282, -1282, -1282,   384,   216,   131, -1282,
    1607      131, -1282, -1282, -1282, -1282,  2963,  1880, -1282, -1282,  1880,
    1608    -1282,   381, -1282,  8264, -1282, -1282,  1830,  9075, -1282,   713,
    1609      713,   713, -1282, -1282, -1282,   131, -1282, -1282, -1282,   410,
    1610      433,   443, -1282, -1282, -1282,   470, -1282, -1282, -1282, -1282,
    1611    -1282,   487,   492, -1282, -1282,    90,  9044,  2201,   567,   421,
    1612      477,   513,   520,   554,   575,  5546,  6949,   504,   495, -1282,
    1613     9574, -1282, -1282, -1282, -1282,   558, -1282,   116,  4885,  4885,
    1614    -1282,   577,   253, -1282, -1282, -1282, -1282,   613,   284,   302,
    1615      335,   131,   616, -1282, -1282,  1298,  2031,   692, -1282,    65,
    1616    -1282,   131,   131,   216, -1282, -1282,   103, -1282,   131,   131,
    1617    -1282,  3459,   673,   678,   713,  6742, -1282, -1282,   702,  5932,
    1618    -1282, -1282,   557, -1282, -1282, -1282,   216, -1282,  1880,   122,
    1619    -1282,  8115, -1282,   713,   713,   713,   216, -1282,  1844, -1282,
    1620     4853, -1282, -1282,   627,   713, -1282,   713, -1282,   175,  9044,
    1621    -1282,   738, -1282,   994,   742,   713, -1282,  1844,   706,   717,
    1622    -1282,  7661,   598, -1282, -1282, -1282,  9503, -1282, -1282,  5769,
    1623    -1282,   692,    43, 10287,  9075,  1830,  3459, -1282,   197, -1282,
    1624    -1282,  8264,  1880,   745,  7808, -1282, -1282,   441, -1282, 10539,
    1625      754,   784,  3526,   766,  3896,  4720, -1282,   770, -1282, -1282,
    1626    -1282, -1282, 10420, 10420,  8818,   772, -1282, -1282, -1282, -1282,
    1627    -1282, -1282, -1282,   805, -1282,  1317,  2104,  9157,  3896, -1282,
    1628      619,   651,   733,   206,   860,   791,   775,   785,   823,   -65,
    1629    -1282, -1282,   794,   596, -1282,   337, -1282, -1282,  2201, -1282,
    1630    -1282,   290,   810, -1282,   298,   810,   819,   175, -1282, -1282,
    1631      836,  2963, -1282,   844,   858,  9270, -1282, -1282,  1515,  1616,
    1632     8533,  6742,   557, -1282,   557,   713,   713, -1282, -1282, -1282,
    1633    -1282, -1282, -1282,   713,  2963,  1880, -1282, -1282,  9188,  1765,
    1634    -1282,  4463, -1282, -1282, -1282, -1282, -1282, -1282, -1282,   869,
    1635     6164,  3896, -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282,
    1636    -1282, -1282, -1282, -1282, -1282, -1282,  1830, -1282,   592,   881,
    1637      887,   907,   977,   913,   918,   926,  2031, -1282, -1282,   917,
    1638      122,   952, -1282, -1282,   968, -1282, -1282, -1282,  9503, -1282,
    1639    -1282, -1282, -1282, -1282,  3459, -1282,  9044,  9044, -1282,   713,
    1640     1830,  6861,  1880,  8606, -1282, -1282, -1282, -1282,  9503,    43,
    1641    -1282, -1282,   557,   216, -1282, -1282,  9503, -1282,  5584, -1282,
    1642    -1282,   713,   713,   429,  4617,   967,   975,   972,   982,   713,
    1643    -1282, -1282, -1282, -1282,  9803, -1282,   430,  6623, -1282,   216,
    1644      991, -1282,  1830, 10621, 10344, -1282, -1282, -1282, -1282,   984,
    1645     3459, -1282,  8679,   692,  7545, -1282, -1282, -1282,  1025,   534,
    1646      794,   994,  7808,  1044,  8264, -1282,  7808, -1282, -1282, -1282,
    1647    -1282,   539, -1282,   997,   784,    70,  8818, -1282,  9301, -1282,
    1648    -1282,  8818, -1282,  8931,  8818, -1282, -1282,   999, -1282,   564,
    1649     1000,   689,  1003, -1282, -1282,  9650,  6592, -1282,   291, -1282,
    1650    -1282, 10287, -1282,   331, 10287, -1282, -1282, -1282, -1282, -1282,
    1651    -1282, -1282, -1282, -1282, -1282, -1282, 10287, -1282, -1282,  3896,
     1638    7429,  6461, -1390,    -8, -1390, -1390, -1390, -1390, -1390, -1390,
     1639   -1390,   -23, -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390,
     1640   -1390, -1390, -1390, -1390, -1390, -1390,    91,    91,    91,  1566,
     1641     744,    60,  7661,   126, -1390, -1390, -1390, -1390, -1390,   146,
     1642   -1390, -1390, -1390,   775,   200, -1390, -1390, -1390, -1390,  5932,
     1643   -1390, -1390, -1390, -1390,   110,   203, -1390,  1684, -1390, -1390,
     1644   -1390, -1390,   214,  2010,   360,   114,  7777, -1390, -1390,  9536,
     1645    1247, -1390, -1390,  1362,   444,  2238,   717,   552,  1362,  1870,
     1646   -1390, -1390,   837,   759, -1390,  1362,  1917, -1390,   226, -1390,
     1647     415,   453, -1390, -1390, -1390, -1390,   349,   203,    91, -1390,
     1648      91, -1390, -1390, -1390, -1390,  2963,  1684, -1390, -1390,  1684,
     1649   -1390,   342, -1390,  8264, -1390, -1390,  2329,  9075, -1390,  1671,
     1650    1671,  1671, -1390, -1390, -1390,    91, -1390, -1390, -1390,   422,
     1651     442,   463, -1390, -1390, -1390,   475, -1390, -1390, -1390, -1390,
     1652   -1390,   487,   492, -1390, -1390,    41,  9044,  2498,   571,   409,
     1653     496,   499,   523,   533,   543,  5546,  6949,   548,   579, -1390,
     1654    9574, -1390, -1390, -1390, -1390,   586, -1390,   116,  4885,  4885,
     1655   -1390,   602,   204, -1390, -1390, -1390, -1390,   626,   243,   344,
     1656     351,    91,   531, -1390, -1390,  2010,  3286,   695, -1390,    42,
     1657   -1390,    91,    91,   203, -1390, -1390,    65, -1390,    91,    91,
     1658   -1390,  3459,   673,   690,  1671,  6742, -1390, -1390,   702,  5932,
     1659   -1390, -1390,  1362, -1390, -1390, -1390,   203, -1390,  1684,   110,
     1660   -1390,  8115, -1390,  1671,  1671,  1671,   203, -1390,  1566, -1390,
     1661    4853, -1390, -1390,   703,  1671, -1390,  1671, -1390,   146,  9044,
     1662   -1390,   726, -1390,   744,   749,  1671, -1390,  1566,   724,   743,
     1663   -1390,  7661,   590, -1390, -1390, -1390,  9503, -1390, -1390,  5769,
     1664   -1390,   695,   158, 10287,  9075,  2329,  3459, -1390,    80, -1390,
     1665   -1390,  8264,  1684,   765,  7808, -1390, -1390,   362, -1390, 10539,
     1666     797,   846,  3526,   825,  3896,  4720, -1390,   843, -1390, -1390,
     1667   -1390, -1390, 10420, 10420,  8818,   845, -1390, -1390, -1390, -1390,
     1668   -1390, -1390, -1390,   883, -1390,  1119,  1947,  9157,  3896, -1390,
     1669     619,   651,   614,   309,   714,   823,   850,   853,   891,   100,
     1670   -1390, -1390,   866,   558, -1390,   120, -1390, -1390,  2498, -1390,
     1671   -1390,   443,   892, -1390,   450,   892,   895,   146, -1390, -1390,
     1672     900,  2963, -1390,   898,   901,  9270, -1390, -1390,  1091,  1646,
     1673    8533,  6742,  1362, -1390,  1362,  1671,  1671, -1390, -1390, -1390,
     1674   -1390, -1390, -1390,  1671,  2963,  1684, -1390, -1390,  9188,  1515,
     1675   -1390,  4463, -1390, -1390, -1390, -1390, -1390, -1390, -1390,   903,
     1676    6164,  3896, -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390,
     1677   -1390, -1390, -1390, -1390, -1390, -1390,  2329, -1390,   814,   908,
     1678     913,   916,   859,   918,   921,   922,  3286, -1390, -1390,   927,
     1679     110,   905, -1390, -1390,   926, -1390, -1390, -1390,  9503, -1390,
     1680   -1390, -1390, -1390, -1390,  3459, -1390,  9044,  9044, -1390,  1671,
     1681    2329,  6861,  1684,  8606, -1390, -1390, -1390, -1390,  9503,   158,
     1682   -1390, -1390,  1362,   203, -1390, -1390,  9503, -1390,  5584, -1390,
     1683   -1390,  1671,  1671,   300,  4617,   934,   933,   925,   950,  1671,
     1684   -1390, -1390, -1390, -1390,  9803, -1390,   408,  6623, -1390,   203,
     1685     965, -1390,  2329, 10621, 10344, -1390, -1390, -1390, -1390,   932,
     1686    3459, -1390,  8679,   695,  7545, -1390, -1390, -1390,   907,   412,
     1687     866,   744,  7808,   994,  8264, -1390,  7808, -1390, -1390, -1390,
     1688   -1390,   554, -1390,   953,   846,   236,  8818, -1390,  9301, -1390,
     1689   -1390,  8818, -1390,  8931,  8818, -1390, -1390,   969, -1390,   637,
     1690     972,   583,   973, -1390, -1390,  9650,  6592, -1390,   268, -1390,
     1691   -1390, 10287, -1390,   318, 10287, -1390, -1390, -1390, -1390, -1390,
     1692   -1390, -1390, -1390, -1390, -1390, -1390, 10287, -1390, -1390,  3896,
    16521693    3896,  3896,  3896,  3896,  3896,  3896,  3896,  3896,  3896,  3896,
    1653     3896,  3896,  3896,  3896,  3896,  3896,  3896,  5176, 10287, -1282,
    1654      596,  1665, -1282, -1282,   131,   131, -1282, -1282,  9044, -1282,
    1655    -1282,   968,   598, -1282,   968, 10363, -1282, -1282, -1282,  5001,
    1656     6592,  1005,  1011, -1282,  9075, -1282, -1282,   558, -1282,  1017,
    1657      501,  1020,  3131,   211,   794, -1282,   131,   131,   794,   231,
    1658    -1282,   131,   131,   968, -1282, -1282,   131,   131, -1282,   810,
    1659     9421,  1880, 10766,    79,   605,  9421, -1282,  5769, -1282,   794,
    1660    -1282,  2963, -1282,   183,  8230,  8230,  8230,  1880, -1282, 10173,
    1661     1006,   869,   840,  1015,  1018, -1282,  1008,  4885,   242, -1282,
    1662     1104,  1880,  8230,   598,  1830,   598,   692,   448,   810, -1282,
    1663    -1282,   771,   810, -1282, -1282, -1282,   784, -1282,   810,   216,
    1664     9803, -1282,   637,  1041,   647,  1049, -1282,  1023,   216, -1282,
    1665    -1282,  9503,   216,  1046,  9301,  1053, -1282,   759, -1282,   357,
    1666      422,   994, -1282,   994,  1051,  3896, -1282,   994, 10766, -1282,
    1667    -1282,  1057, -1282, -1282, -1282,   598, -1282, 10694,   858, -1282,
    1668     8230,   851,  8533, -1282, -1282,   558,  1055,  1056,  1025,  2498,
    1669    -1282, -1282,  7808, -1282, -1282,  1062, -1282, -1282,  1070, -1282,
    1670     1062,  1072, 10539, 10287,  1060,  1061,   100,  1073,  1071,  1088,
    1671     1090, -1282,  1094,  1095,  9688,  6711, -1282, 10287, -1282,   689,
    1672     1753, -1282, -1282, -1282,   131,   131, 10230, 10287,  1080, -1282,
    1673    -1282,   650, -1282, 10287, -1282, -1282,   885, -1282, -1282, -1282,
    1674    -1282,   619,   619,   651,   651,   733,   733,   733,   733,   206,
    1675      206,   860,   791,   775,   785,   823,  3896,    14, -1282,  9803,
    1676     1099,  1100,  1102,  1665, -1282, -1282, -1282, -1282, -1282,  9803,
    1677      657,  8230, -1282,  2963, -1282,  7068,  9383, -1282,  4463,  6949,
    1678    -1282, -1282,   501,  9803,  1030,  1108,  1109,  1110,  1111,  1112,
    1679     1114,  1117, -1282,  3725,  3131, -1282, -1282, -1282, -1282, -1282,
    1680    -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282,
    1681    -1282, -1282,   968, -1282, -1282, -1282,   794, -1282, -1282, -1282,
    1682    -1282, -1282, -1282, -1282, -1282,  1118, -1282,  1120,  1122, -1282,
    1683    -1282,   122,  1080, 10173, -1282, -1282, -1282,  6164,  1123, -1282,
    1684    -1282, -1282, -1282,   994,  6295,  1204, -1282, -1282, -1282, -1282,
    1685     1116,   122, -1282, -1282,   968, -1282, -1282,   968,   125,   968,
    1686    -1282, -1282, -1282, -1282, -1282, -1282,  9612, -1282,   216, -1282,
    1687    -1282,   460,   467,  9188,  7187,  1951,  3896,  3145, -1282, -1282,
    1688     1105,    87,  1105, -1282,   994, -1282,   131, -1282, -1282,  8451,
    1689      972, -1282, -1282, -1282,   975,  1133,  1129, -1282, -1282,  1137,
    1690     1146, -1282,   851,  1870, -1282,   683, -1282,  2498,   794, -1282,
    1691     1149,  7808,  9721,  9044,  1151, -1282, -1282,  1150,  1152,  1138,
    1692    -1282,  3896,  1158,   250,  1153, -1282,  1157,   598,  1157, -1282,
    1693    -1282,  1157,  1160, -1282,  1166,  1169,  1172,  1753, -1282, -1282,
    1694    -1282,  6164, -1282, -1282, -1282, -1282,  1168, 10287,  1175,   598,
    1695    -1282, 10287, -1282,   598, -1282, -1282, 10287, -1282,   809,   810,
    1696    -1282, -1282, -1282, -1282, -1282, -1282, -1282,   869,   858,  9270,
    1697    -1282, -1282,  7306,  1180, -1282,   829,   810, -1282,   854,   868,
    1698      810, -1282,   713,  4154, -1282, -1282, -1282,  9803,  9803, -1282,
    1699     8606,  8606, -1282,  1176,  1181,  1183,  1189, -1282,  1179,   724,
    1700      -22,  1080, -1282,   598, -1282,  4885, -1282, 10287,   475, -1282,
    1701     6430,  1191,  1192, 10116,  1193,  1195,    21,    55,   195, 10287,
    1702     1196,   216, 10287, 10287,  1182,  1205,   579,  1209, -1282, -1282,
    1703    -1282,  1200, -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282,
    1704    -1282,   994,  1213, 10287, -1282,  9803,  9803,   131,  1214, -1282,
    1705     8962, -1282, -1282,   893, -1282,  3145, -1282, -1282, -1282, -1282,
    1706      759, -1282, -1282,  1218, -1282, -1282, -1282, -1282,  1227,  1870,
    1707    -1282, -1282,  1215, -1282,  1062, -1282, -1282,  1830,  1231, -1282,
    1708    -1282, -1282,   669,  1234, -1282,   100,  1237,  3896,  1220,   100,
    1709      100,  1248,  9650,   876,   810, -1282, -1282,  1008, 10287,  1251,
    1710     1168,   563,   204,  1250, -1282, -1282,  1255,  1250, -1282, -1282,
    1711     1258, -1282, -1282,   968,  1259,  1261,  6830,  1263,  1265,  1267,
    1712    -1282, -1282,  1273, -1282, -1282,   968, -1282, -1282, -1282, -1282,
    1713      968, 10287, 10287,   858,  1275, -1282, -1282, -1282, -1282, -1282,
    1714    -1282, -1282, -1282, -1282, -1282, -1282, -1282,  3896,  3896,  1278,
    1715     1279,  1250, -1282, -1282,   994, -1282, -1282, -1282,  8042,  9721,
    1716    10287, 10287,  1345, 10287, -1282,  1266, -1282,  1268, -1282,  1276,
    1717    10287,  1282, 10287,  1096,  1293,    49,   131,  5155,  1347, -1282,
    1718    -1282,  6295,  1280,   482, -1282, -1282, -1282, -1282, -1282, -1282,
    1719    -1282, -1282, -1282,  9936, -1282,  8679,  1287, -1282, -1282,  9721,
    1720      490,   497, -1282,  1290,  1281,   784,  1319, -1282,   334, -1282,
    1721    -1282, -1282, -1282,   968,  1323, -1282, -1282,  1327,   444,   549,
    1722      598,  1332, -1282,  1333, -1282,  9803, -1282, -1282, -1282, -1282,
    1723    -1282,  1334, -1282,  9803,  9803,  9803, -1282, -1282,  1335, -1282,
    1724     1337,  1341,  1343,   735,  8303,  8418, -1282, -1282,   248, -1282,
    1725     1351,  1356, -1282,  8752,   676,   686,  1350,   707,  6096, -1282,
    1726    -1282, -1282,   537, -1282,   716,  1365,  1367,   216,  1419,   951,
    1727    -1282, -1282, 10287, -1282, 10116, 10287, -1282, -1282, -1282,  1370,
    1728     1372, -1282, -1282, -1282,  1369, -1282, -1282, -1282, -1282, -1282,
    1729    -1282,  9721,   784,  1375, -1282,  1353,   784,  9803, -1282, -1282,
    1730    -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282,
    1731    -1282, -1282,  1378,  1379, -1282, -1282, -1282, -1282, -1282, -1282,
    1732    -1282,  1377, -1282,  1382, -1282, -1282, 10116,   104, 10287, 10116,
    1733    -1282,  1387, 10287, -1282,   243,  1402,  1405, -1282, -1282,  1393,
    1734     1394,  1388, -1282,   916, -1282, -1282, -1282,  1880,  1830,  1389,
    1735    -1282,   246,  3896, -1282,   729, -1282,   598,   598,  1399,  1400,
    1736     1404,  1409, -1282, -1282,  8606,  1407, -1282,  1479,  3896,  1395,
    1737    -1282, -1282, 10028, -1282,   757, -1282,  1401, 10116,  1403, -1282,
    1738    -1282,  1416, -1282,  1417, -1282,  1436,  1440, -1282,  1408,  9721,
    1739    -1282, -1282, -1282,   784,   598,  1429,  1411,  1431,  1250,  1250,
    1740    -1282, -1282, -1282, -1282, -1282, 10116,    10, -1282,   370, -1282,
    1741    -1282,  7893, -1282, -1282,  1412, 10287, -1282, 10287,  7893,   216,
    1742     9301,   216,  9301,  1437, -1282,  1438, -1282, -1282,  1434, -1282,
    1743    -1282,   790, -1282, -1282, -1282,  1441,  1442, -1282,  3896,  3896,
    1744    -1282, -1282,   998,    93, -1282, -1282,  1424, -1282,   998, -1282,
    1745    -1282,  2145,   598, -1282, -1282,   216,  9301,   216,  9301,  1446,
    1746     1425,   598, -1282, -1282, -1282, -1282, 10028,  1443,   998,  7969,
    1747    10287,  9940,  1455,   998,  1463,  2145,  3286, -1282, -1282, -1282,
    1748     1465, -1282, -1282, -1282, -1282,  9044, -1282, -1282, -1282,  9807,
    1749    -1282, 10028, -1282, -1282,  1453,  5404, -1282, -1282,  9940,   216,
    1750     3286,   216,  1476,  1478,   831, -1282,  9807, -1282, -1282, -1282,
    1751     5404, -1282, -1282, -1282,   216,   216, -1282, -1282, -1282, -1282,
    1752    -1282, -1282, -1282, -1282
     1694    3896,  3896,  3896,  3896,  3896,  3896,  3896,  5176, 10287, -1390,
     1695     558,  1665, -1390, -1390,    91,    91, -1390, -1390,  9044, -1390,
     1696   -1390,   926,   590, -1390,   926, 10363, -1390, -1390, -1390,  5001,
     1697    6592,   974,   975, -1390,  9075, -1390, -1390,   586, -1390,   976,
     1698     286,   979,  1959,    99,   866, -1390,    91,    91,   866,   122,
     1699   -1390,    91,    91,   926, -1390, -1390,    91,    91, -1390,   892,
     1700    9421,  1684, 10766,   260,   339,  9421, -1390,  5769, -1390,   866,
     1701   -1390,  2963, -1390,   183,  8230,  8230,  8230,  1684, -1390, 10173,
     1702     963,   903,   538,   964,   967, -1390,   985,  4885,   427, -1390,
     1703    1073,  1684,  8230,   590,  2329,   590,   695,   727,   892, -1390,
     1704   -1390,   771,   892, -1390, -1390, -1390,   846, -1390,   892,   203,
     1705    9803, -1390,   647,   995,   650,   996, -1390,   997,   203, -1390,
     1706   -1390,  9503,   203,   998,  9301,   999, -1390,  1616, -1390,   384,
     1707     407,   744, -1390,   744,  1002,  3896, -1390,   744, 10766, -1390,
     1708   -1390,  1000, -1390, -1390, -1390,   590, -1390, 10694,   901, -1390,
     1709    8230,   596,  8533, -1390, -1390,   586,  1003,  1004,   907,  2842,
     1710   -1390, -1390,  7808, -1390, -1390,  1007, -1390, -1390,  1018, -1390,
     1711    1007,  1019, 10539, 10287,   983,  1009,    88,  1022,  1012,  1023,
     1712    1025, -1390,  1026,  1032,  9688,  6711, -1390, 10287, -1390,   583,
     1713    1835, -1390, -1390, -1390,    91,    91, 10230, 10287,  1027, -1390,
     1714   -1390,   657, -1390, 10287, -1390, -1390,   706, -1390, -1390, -1390,
     1715   -1390,   619,   619,   651,   651,   614,   614,   614,   614,   309,
     1716     309,   714,   823,   850,   853,   891,  3896,   237, -1390,  9803,
     1717    1035,  1038,  1041,  1665, -1390, -1390, -1390, -1390, -1390,  9803,
     1718     664,  8230, -1390,  2963, -1390,  7068,  9383, -1390,  4463,  6949,
     1719   -1390, -1390,   286,  9803,   944,  1045,  1046,  1048,  1049,  1050,
     1720    1052,  1054, -1390,  3725,  1959, -1390, -1390, -1390, -1390, -1390,
     1721   -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390,
     1722   -1390, -1390,   926, -1390, -1390, -1390,   866, -1390, -1390, -1390,
     1723   -1390, -1390, -1390, -1390, -1390,  1060, -1390,  1061,  1068, -1390,
     1724   -1390,   110,  1027, 10173, -1390, -1390, -1390,  6164,  1064, -1390,
     1725   -1390, -1390, -1390,   744,  6295,  1153, -1390, -1390, -1390, -1390,
     1726    1053,   110, -1390, -1390,   926, -1390, -1390,   926,  1076,   926,
     1727   -1390, -1390, -1390, -1390, -1390, -1390,  9612, -1390,   203, -1390,
     1728   -1390,   437,   460,  9188,  7187,  1990,  3896,  3131, -1390, -1390,
     1729    1063,    87,  1063, -1390,   744, -1390,    91, -1390, -1390,  8451,
     1730     925, -1390, -1390, -1390,   933,  1080,  1067, -1390, -1390,  1084,
     1731    1097, -1390,   596,  1850, -1390,   502, -1390,  2842,   866, -1390,
     1732    1088,  7808,  9721,  9044,  1100, -1390, -1390,  1096,  1104,  1085,
     1733   -1390,  3896,  1107,   250,  1102, -1390,  1105,   590,  1105, -1390,
     1734   -1390,  1105,  1108, -1390,  1111,  1112,  1114,  1835, -1390, -1390,
     1735   -1390,  6164, -1390, -1390, -1390, -1390,  1122, 10287,  1115,   590,
     1736   -1390, 10287, -1390,   590, -1390, -1390, 10287, -1390,   776,   892,
     1737   -1390, -1390, -1390, -1390, -1390, -1390, -1390,   903,   901,  9270,
     1738   -1390, -1390,  7306,  1125, -1390,   791,   892, -1390,   804,   829,
     1739     892, -1390,  1671,  4154, -1390, -1390, -1390,  9803,  9803, -1390,
     1740    8606,  8606, -1390,  1126,  1127,  1135,  1137, -1390,  1146,   615,
     1741     233,  1027, -1390,   590, -1390,  4885, -1390, 10287,   491, -1390,
     1742    6430,  1140,  1150, 10116,  1152,  1157,    46,    55,   198, 10287,
     1743    1158,   203, 10287, 10287,  1132,  1156,   335,  1138, -1390, -1390,
     1744   -1390,  1161, -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390,
     1745   -1390,   744,  1172, 10287, -1390,  9803,  9803,    91,  1174, -1390,
     1746    8962, -1390, -1390,   742, -1390,  3131, -1390, -1390, -1390, -1390,
     1747    1616, -1390, -1390,  1175, -1390, -1390, -1390, -1390,  1177,  1850,
     1748   -1390, -1390,  1143, -1390,  1007, -1390, -1390,  2329,  1176, -1390,
     1749   -1390, -1390,   669,  1183, -1390,    88,  1180,  3896,  1168,    88,
     1750      88,  1192,  9650,   836,   892, -1390, -1390,   985, 10287,  1193,
     1751    1122,   467,   193,  1188, -1390, -1390,  1200,  1188, -1390, -1390,
     1752    1207, -1390, -1390,   926,  1209,  1213,  6830,  1212,  1215,  1218,
     1753   -1390, -1390,  1221, -1390, -1390,   926, -1390, -1390, -1390, -1390,
     1754     926, 10287, 10287,   901,  1225, -1390, -1390, -1390, -1390, -1390,
     1755   -1390, -1390, -1390, -1390, -1390, -1390, -1390,  3896,  3896,  1234,
     1756    1237,  1188, -1390, -1390,   744, -1390, -1390, -1390,  8042,  9721,
     1757   10287, 10287,  1305, 10287, -1390,  1226, -1390,  1231, -1390,  1240,
     1758   10287,  1241, 10287,  1001,  1242,    20,    91,  5155,  1894, -1390,
     1759   -1390,  6295,  1260,   500, -1390, -1390, -1390, -1390, -1390, -1390,
     1760   -1390, -1390, -1390,  9936, -1390,  8679,  1269, -1390, -1390,  9721,
     1761     512,   513, -1390,  1272,  1227,   846,  1278, -1390,   312, -1390,
     1762   -1390, -1390, -1390,   926,  1274, -1390, -1390,  1279,   337,   462,
     1763     590,  1280, -1390,  1281, -1390,  9803, -1390, -1390, -1390, -1390,
     1764   -1390,  1283, -1390,  9803,  9803,  9803, -1390, -1390,  1285, -1390,
     1765    1286,  1290,  1292,   640,  8303,  8418, -1390, -1390,   474, -1390,
     1766    1291,  1295, -1390,  8752,   682,   684,  1299,   686,  6096, -1390,
     1767   -1390, -1390,   534, -1390,   707,  1302,  1306,   203,  1344,   831,
     1768   -1390, -1390, 10287, -1390, 10116, 10287, -1390, -1390, -1390,  1304,
     1769    1315, -1390, -1390, -1390,  1312, -1390, -1390, -1390, -1390, -1390,
     1770   -1390,  9721,   846,  1319, -1390,  1297,   846,  9803, -1390, -1390,
     1771   -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390,
     1772   -1390, -1390,  1318,  1322, -1390, -1390, -1390, -1390, -1390, -1390,
     1773   -1390,  1334, -1390,  1333, -1390, -1390, 10116,   104, 10287, 10116,
     1774   -1390,  1336, 10287, -1390,   264,  1351,  1360, -1390, -1390,  1349,
     1775    1350,  1328, -1390,   779, -1390, -1390, -1390,  1684,  2329,  1346,
     1776   -1390,   298,  3896, -1390,   716, -1390,   590,   590,  1353,  1358,
     1777    1364,  1366, -1390, -1390,  8606,  1363, -1390,  1438,  3896,  1352,
     1778   -1390, -1390, 10028, -1390,   729, -1390,  1355, 10116,  1359, -1390,
     1779   -1390,  1373, -1390,  1374, -1390,  1389,  1394, -1390,  1365,  9721,
     1780   -1390, -1390, -1390,   846,   590,  1384,  1369,  1386,  1188,  1188,
     1781   -1390, -1390, -1390, -1390, -1390, 10116,   235, -1390,   348, -1390,
     1782   -1390,  7893, -1390, -1390,  1370, 10287, -1390, 10287,  7893,   203,
     1783    9301,   203,  9301,  1388, -1390,  1393, -1390, -1390,  1395, -1390,
     1784   -1390,   756, -1390, -1390, -1390,  1392,  1397, -1390,  3896,  3896,
     1785   -1390, -1390,   873,   135, -1390, -1390,  1382, -1390,   873, -1390,
     1786   -1390,  2111,   590, -1390, -1390,   203,  9301,   203,  9301,  1410,
     1787    1391,   590, -1390, -1390, -1390, -1390, 10028,  1405,   873,  7969,
     1788   10287,  9940,  1406,   873,  1415,  2111,  3145, -1390, -1390, -1390,
     1789    1416, -1390, -1390, -1390, -1390,  9044, -1390, -1390, -1390,  9807,
     1790   -1390, 10028, -1390, -1390,  1400,  5404, -1390, -1390,  9940,   203,
     1791    3145,   203,  1417,  1425,   760, -1390,  9807, -1390, -1390, -1390,
     1792    5404, -1390, -1390, -1390,   203,   203, -1390, -1390, -1390, -1390,
     1793   -1390, -1390, -1390, -1390
    17531794};
    17541795
     
    17561797static const yytype_int16 yypgoto[] =
    17571798{
    1758    -1282,  4519,  3402, -1282,   393, -1282,   353,   929,  -255,   927,
    1759    -1282,   536,  -524,  -496,  -864,   -86,  4763,     0, -1282,  1012,
    1760      494,   506,   417,   512,  1032,  1034,  1040,  1042,  1039, -1282,
    1761     -348,  -520,  3026,  -967, -1282,  -684,   629,   -16,  -590,   453,
    1762    -1282,   172, -1282,   397, -1192, -1282, -1282,   141, -1282, -1281,
    1763    -1043,   247, -1282, -1282, -1282, -1282,    72, -1149, -1282, -1282,
    1764    -1282, -1282, -1282, -1282,   315,  -843,    50, -1282,  -384, -1282,
    1765      498,   288, -1282,   167, -1282,  -343, -1282, -1282, -1282,   546,
    1766     -651, -1282, -1282,     8, -1002,    97,  1423, -1282, -1282, -1282,
    1767     -125, -1282,    23,  1201,  -202,  1925,  4332, -1282, -1282,    52,
    1768      224,   459,  1086, -1282,  1865, -1282, -1282,    25,  2362, -1282,
    1769     2640,  1529, -1282, -1282, -1282,  -646, -1282,   935,   945,   535,
    1770      718,    78, -1282, -1282, -1282,   934,   722,  -464, -1282,   -94,
    1771      -89,   313, -1282, -1282,  -870,  -942,   -24,  1177,  1054,   368,
    1772    -1282,  1732,   548,  -317,  -213,  -127,   662,   776, -1282,   990,
    1773    -1282,  3077,  1178,  -438,   923, -1282, -1282,   710, -1282,  -234,
    1774    -1282,    99, -1282, -1282, -1282, -1240,   423, -1282, -1282, -1282,
    1775     1170, -1282,   -20, -1282, -1282,  -853,  -105, -1239,  -126,  2286,
    1776    -1282,  2146, -1282,   921, -1282,  -146,    59,  -177,  -171,  -166,
    1777        7,   -40,   -28,   -27,   725,     4,    28,    37,   -63,  -154,
    1778     -151,  -150,  -141,  -271,  -540,  -513,  -508,  -569,  -320,  -517,
    1779    -1282, -1282,  -518,  1092,  1093,  1097,  1371,  5065,  -582,  -555,
    1780     -549,  -535,  -441, -1282,  -497,  -722,  -721,  -701,  -607,  -309,
    1781     -346, -1282, -1282,   185,   133,   -15, -1282,  3702,   -45,  -609,
    1782     -238
     1799   -1390,  4519,  3402, -1390,   393, -1390,   353,   929,  -255, -1390,
     1800   -1390,   477,  -524,  -492,  -901,  -176,  4763,     0, -1390,   832,
     1801     410,   433,   417,   440,   977,   978,   980,   971,   981, -1390,
     1802    -348,  -520,  3026,  -946, -1390,  -709,   563,   620,  -590,   -87,
     1803   -1390,   172, -1390,   332, -1116, -1390, -1390,    79, -1390, -1281,
     1804   -1176,   189, -1390, -1390, -1390, -1390,     9, -1389, -1390, -1390,
     1805   -1390, -1390, -1390, -1390,   256, -1199,    33, -1390,  -324, -1390,
     1806     435,   230, -1390,   109, -1390,  -343, -1390, -1390, -1390,   490,
     1807    -651, -1390, -1390,     8, -1002,    97,  1423, -1390, -1390, -1390,
     1808    -125, -1390,    23,  1201,  -202,  1925,  4332, -1390, -1390,    52,
     1809     224,   459,  1086, -1390,  1865, -1390, -1390,    25,  2362, -1390,
     1810    2640,  1529, -1390, -1390, -1390,  -612, -1390,   878,   879,   478,
     1811     658,    43, -1390, -1390, -1390,   876,   655,  -464, -1390,   -94,
     1812     -89,   948, -1390, -1390,  -942,  -971,   -24,    78,  1010,   368,
     1813   -1390,  1732,   171,  -317,  -213,  -127,   605,   710, -1390,   930,
     1814   -1390,  3077,  1178,  -438,   863, -1390, -1390,   654, -1390,  -234,
     1815   -1390,   -47, -1390, -1390, -1390, -1275,   357, -1390, -1390, -1390,
     1816    1110, -1390,    32, -1390, -1390,  -837,  -105, -1257,  -126,  2286,
     1817   -1390,  2146, -1390,   865, -1390,  -146,    59,  -177,  -171,  -166,
     1818       7,   -40,   -28,   -27,  1230,    28,    29,    57,   -63,  -154,
     1819    -151,  -150,  -141,  -329,  -513,  -511,  -507,  -589,  -320,  -515,
     1820   -1390, -1390,  -518,  1034,  1036,  1037,  1371,  5065,  -572,  -555,
     1821    -549,  -540,  -441, -1390,  -497,  -722,  -721,  -701,  -608,  -309,
     1822    -346, -1390, -1390,   185,   133,   -15, -1390,  3702,   -45,  -629,
     1823      22
    17831824};
    17841825
     
    17901831{
    17911832      49,   113,   428,   149,   166,   453,   440,    97,   399,   114,
    1792      766,   267,   143,   844,   400,   150,   151,   740,   628,   401,
    1793      827,  1070,   632,    63,   752,    76,   505,   964,   965,   609,
    1794      566,   402,    49,   826,   403,   404,   596,   868,  1187,    97,
    1795      407,   383,   384,   147,   405,   819,   919,   152,   966,    49,
    1796       50,   820,    69,   794,   725,    63,   161,    76,   730,    96,
    1797      815,   410,   357,   186,   567,   821,   209,   358,   166,    49,
    1798      193,   153,   973,   216,  1177,   669,   226,   219,   604,  1171,
    1799      154,  1379,    50,   818,    69,  1204,  1205,   816,   399,   202,
    1800      260,    96,   817,  1195,   400,   678,   425,    56,   115,   401,
    1801     1178,   327,   148,   682,    31,   113,  1468,   409,    96,   673,
    1802      675,   402,  1302,   113,   403,   404,   266,   271,   122,  1137,
     1833     766,   267,   844,   826,   400,   150,   151,   868,   628,   401,
     1834     604,   740,   632,    63,   752,    76,   505,   964,   965,   609,
     1835     827,   402,    49,    50,   403,   404,   596,  1070,  1187,    97,
     1836     407,   383,   384,   147,   405,   819,  1379,   973,   966,    49,
     1837    1171,   820,    69,   794,   725,    63,   161,    76,   730,    96,
     1838     821,   410,   357,   186,   143,    50,   209,   358,   166,    49,
     1839     193,   152,   153,   216,   122,   669,   226,   219,  1169,  1170,
     1840     919,    31,  1137,  1302,    69,   818,   123,   815,   399,   816,
     1841     260,    96,   280,   817,   400,   678,   425,    56,   115,   401,
     1842     154,   327,   148,   682,    31,   113,  1204,  1205,    96,   673,
     1843     675,   402,  1526,   113,   403,   404,   266,   271,  1195,    31,
    18031844     407,  1443,   189,   408,   405,    96,    31,  1197,    96,    56,
    1804      747,   471,  1178,   106,   106,   475,   477,  -232,  -232,   203,
    1805      342,   280,    31,   948,   986,   149,   307,   147,  1398,  1399,
    1806     1169,  1170,   476,  1196,   161,   113,   345,   150,   151,  1439,
    1807      209,  1245,   830,   210,   436,   106,   220,   373,   837,  1181,
    1808       31,   859,   860,   714,   252,   923,   411,   729,   815,  1458,
    1809      735,  1303,   291,   964,   965,   186,   186,  1198,   877,   152,
    1810      913,   847,   123,   161,   327,   848,   742,   667,   411,   281,
    1811      736,   266,   106,   408,   966,   816,    96,   527,  -232,    49,
    1812      817,   951,   419,   153,   411,  1443,   161,   720,  1400,    96,
    1813     1443,   209,   154,  1069,    70,   149,   436,   173,   443,   168,
    1814     1439,   463,   377,   142,   163,  1077,    31,   150,   151,   307,
    1815     1443,   144,  1016,   804,   398,   189,   931,  1443,   378,   734,
    1816       31,    49,   723,   169,  1080,  1015,    70,   819,    97,   271,
    1817      664,   798,   166,   820,   271,   266,   266,  1199,    96,   253,
    1818       31,   113,   815,   161,    63,   991,    76,   821,   519,   472,
    1819       96,    76,   609,  1171,   146,   853,  1187,  1398,  1399,  1248,
    1820      212,   656,   476,   471,   307,  1003,   556,   557,   163,   816,
    1821      598,    50,  1139,    69,   817,   155,   481,   307,   411,  1525,
    1822       96,   596,  1200,   471,   568,  1093,   596,  1249,   441,   671,
    1823      828,   471,   601,   571,   479,   676,   588,   447,   147,  1536,
    1824      171,   558,   559,  1171,   664,   373,  1540,   994,   898,   357,
    1825      835,   113,   601,   665,   358,   345,   460,   922,    56,   602,
    1826      620,   827,  1526,   870,   111,   642,   342,  1409,  1070,  -467,
    1827     1118,  -467,  1423,   110,   625,   417,   831,   181,   625,   387,
    1828      834,   113,   871,   830,    41,    42,  1424,   819,  -467,  1541,
    1829     1119,   327,   327,   820,   106,   388,  1084,    96,   437,  1186,
    1830      201,   851,   844,   713,   435,   854,   266,   821,   445,   579,
    1831      390,   411,   759,   110,  1169,  1170,   186,   582,   603,   411,
    1832      672,   674,  -289,   373,    41,    42,   391,   665,   392,     8,
    1833        9,    10,    11,    12,   266,   177,   307,   307,  -288,  1496,
    1834      266,  1116,   357,   625,   393,  1501,   714,   358,   985,  1187,
    1835      702,   472,   764,    76,  1325,   442,  1187,   577,    31,   327,
    1836      176,   394,  1171,   578,   113,  1521,   435,   996,   247,  1201,
    1837     1528,   472,   804,    76,  1326,   189,   520,   395,   327,   472,
    1838     1126,    76,   266,   914,   261,    70,    34,   262,   250,   523,
    1839      266,   952,   625,  -516,    49,  1135,  1469,   373,   719,   915,
    1840      519,    97,   163,   252,   113,   519,   357,  1187,   519,   176,
    1841     1470,   358,   176,  1104,   609,   711,   307,    63,   113,    76,
    1842      342,   307,   263,   307,   307,  1029,   110,  1016,  1244,   -10,
    1843      869,   750,  1428,  1429,  1434,   113,   345,    41,    42,   229,
    1844      881,   330,   230,   327,    50,   234,    69,   236,   916,   683,
    1845      704,   910,  -440,    96,   245,   578,   705,   603,   176,   879,
    1846      804,   787,  -441,  1014,   917,  1330,   471,   882,   922,   411,
    1847     1069,     2,   206,     4,     5,     6,     7,  1157,  1159,   493,
    1848      571,   571,   494,    37,   212,   845,   914,    40,   307,   276,
    1849      598,    56,   928,   916,    41,    42,   439,   331,  1126,   625,
    1850      345,  1184,  1081,   913,   620,   714,   278,  1236,  1184,  1082,
    1851      602,   279,   602,   922,   372,   465,  1316,  1185,  1019,  1484,
    1852      812,   176,   601,  1318,  1308,   680,   371,   106,    45,    46,
    1853      625,   110,  1317,   332,   912,   625,    35,   620,    36,  1319,
    1854      333,   625,    41,    42,   625,   625,   625,  1362,  1138,   691,
    1855      483,   706,   806,  1512,   721,  1514,   702,   500,  1027,   731,
    1856      722,   286,   625,   747,   266,   732,   713,  1276,  1277,   814,
    1857     1332,   603,    41,    42,   334,   176,  1014,   376,  1074,  1363,
    1858      110,   229,   176,  -120,   746,  -120,   252,   329,   520,  -120,
    1859      747,    41,    42,   520,   113,   335,   520,   907,   514,  1029,
    1860      596,   523,   385,   523,  -120,  -120,   523,   212,  1360,   523,
    1861     1101,   252,   329,   411,   472,   570,    76,   411,    70,  1112,
    1862      625,   933,   620,    45,    46,   357,   177,   849,   719,   719,
    1863      358,   850,   389,     8,     9,    10,    11,    12,   399,   342,
    1864      472,  1234,    76,   629,   400,  1238,   549,   633,   498,   401,
    1865     1034,   176,   550,   551,   113,   345,   911,   892,   397,   750,
    1866      750,   402,    31,   747,   403,   404,   409,   894,   176,   450,
    1867      980,   407,   176,   747,   405,   702,   981,   993,   711,   922,
    1868      552,   553,  1408,   705,   162,   702,   804,   814,   603,  1232,
    1869       34,  1373,   426,   964,   965,   578,  1356,   427,   194,   702,
    1870     1474,   217,   747,   571,   227,   849,  1357,  1474,   749,  1100,
    1871      411,   625,   747,   625,   966,   999,    45,    46,   625,   345,
    1872     1161,   229,   602,   234,   432,   713,   110,  1359,   139,   238,
    1873      111,   554,   555,   747,   602,   176,  1364,    41,    42,   922,
    1874      922,    37,   747,   183,   184,    40,  -103,   714,   461,  1426,
    1875     -103,   890,    41,    42,   408,  1423,   442,  1348,  1522,   462,
    1876      897,  1349,  -364,   239,   899,  1476,  -393,  1477,   240,   484,
    1877      952,   806,  1425,   504,   952,   952,   291,  1444,   905,   691,
    1878      411,   814,   162,   747,   307,   508,    45,    46,  1436,   513,
    1879      885,   760,   411,   603,   525,   374,   765,   527,   342,   906,
    1880        2,   206,     4,     5,     6,     7,   625,    63,   327,    76,
    1881     1490,   229,   563,   113,   345,   907,  1491,   907,  1182,   562,
    1882     1523,   162,   110,   564,   139,   140,   714,   565,  1141,   113,
    1883      411,   338,   212,    41,    42,   568,    69,   711,  -437,    48,
    1884      112,  1168,   933,   933,   162,   465,   212,   719,  1153,   664,
    1885      411,  1546,   113,   307,   910,   586,   444,   578,  1494,  1436,
    1886     1105,   864,   560,   561,   845,    35,   589,    36,   112,   112,
    1887      932,    48,   601,  1156,  1083,   601,   911,   750,    45,    46,
    1888       -3,    56,    48,   775,   776,   777,   778,  1158,    48,   601,
    1889     1323,   638,   176,   891,  1508,  1241,    48,   411,  1087,   846,
    1890     1087,   657,    48,   702,   702,    48,   603,   658,    48,   345,
    1891      984,   981,  1227,   329,   411,   861,   878,   106,   880,  1369,
    1892     1370,   112,   112,   110,   176,   139,   140,   659,    -3,   876,
    1893      625,   625,   665,   661,    41,    42,   666,   912,   662,   212,
    1894      176,  1418,   981,  1126,   922,    48,   663,    37,    48,  1106,
    1895      307,    40,  1398,  1399,   176,    48,   771,   772,    41,    42,
    1896      922,   702,   702,   374,   737,   243,   738,   713,   927,   739,
    1897      773,   774,   743,   472,   668,    76,   110,  1380,   139,   140,
    1898     1079,  1380,   779,   780,    43,   106,    48,    41,    42,   257,
    1899      113,   692,    45,    46,    48,   907,   419,   660,   411,    48,
    1900      907,   693,  1189,   481,   329,   411,   697,    37,    70,   933,
    1901      500,    40,   987,   695,   691,  -236,   733,   266,    41,    42,
    1902      748,   744,   992,   756,    48,    48,   110,   807,   139,   140,
    1903      922,   922,   625,   808,   867,   176,  1004,    41,    42,   811,
    1904       48,   374,   822,   873,   718,   896,   -12,    56,    48,   828,
    1905      329,   601,    45,    46,   911,   -13,   345,    48,   866,   911,
    1906       48,   893,   213,   726,  1295,  1296,  1297,   112,   727,   895,
    1907      900,   232,  1331,  1333,  1334,   903,   921,  -414,  1459,   711,
    1908     -520,   936,   112,   106,  1284,  1285,   112,  1287,   722,   943,
    1909       48,   112,   945,   956,  1292,  1351,  1294,   957,   271,   113,
    1910      949,   498,   342,   950,    48,    48,   977,   219,   958,  1312,
    1911      959,    48,   116,   213,   960,   961,  -290,   113,    48,   988,
    1912      989,   307,   990,     8,     9,    10,    11,    12,  1005,  1006,
    1913     1007,  1008,  1009,  1203,  1010,   625,   442,  1011,  1022,   113,
    1914     -402,   702,  -401,  1071,    63,   906,    76,  1105,  1036,   702,
    1915      702,   702,    31,  1094,   215,  1095,   213,  1073,   711,  1096,
    1916      159,     2,   206,     4,     5,     6,     7,    48,  1097,  1103,
    1917      242,  1113,  1114,    69,    70,   691,   747,  1117,  1115,  1120,
    1918       34,   971,  1122,  1421,   625,   625,  1123,    48,    48,  1124,
    1919      228,  1534,  1125,   271,  1128,   210,   220,  1131,   307,   176,
    1920     1151,  1176,  1172,  1174,    48,   215,   510,  1173,    48,  1175,
    1921     1190,  1191,  1193,   702,  1194,  1202,   258,   213,    56,   643,
    1922     1121,   472,  1206,    76,   159,    -3,    35,  1207,    36,   547,
    1923      548,   113,   106,  1214,  1219,    48,  1106,  1058,   399,  1105,
    1924     1166,  1167,  1132,  1222,   400,    48,  1132,  1224,   215,   401,
    1925     1189,  1209,  1404,   493,   106,   213,  1228,   323,  1233,  1235,
    1926      213,   402,  1237,    48,   403,   404,   339,   547,  1240,    48,
    1927      407,    48,   106,  1246,   405,   499,  1250,  1252,  1254,  1256,
    1928       37,  1257,   183,   184,    40,  1258,  1507,  1259,   266,  1260,
    1929      441,    41,    42,  1262,   664,    56,  1132,  1269,  1216,  1217,
    1930     1278,  1279,  1286,   547,   625,  1307,   112,  1314,  1289,   215,
    1931     1290,    48,   528,   529,   530,  1320,   430,   185,  1291,    48,
    1932      434,  1322,   212,    48,  1293,    45,    46,    48,  1106,   113,
    1933      112,   106,   112,    57,    57,  1301,   531,  1105,   532,  1324,
    1934      533,   534,   528,   529,   530,    70,   213,   215,  1328,  1329,
    1935      323,   113,   215,   408,  1335,  1336,  1338,  1344,   113,  1345,
    1936      113,  1346,   113,  1347,   106,    57,   531,   112,   532,  1358,
    1937      533,  1305,   112,  1354,   472,   149,    76,   665,  1355,  1367,
    1938      327,   472,   434,    76,  1365,   488,  1366,   150,   151,  1297,
    1939     1374,  1506,  1375,  1376,  1382,  1383,   113,  -403,   113,    57,
    1940     1392,  1393,    57,  1189,  1396,   521,  1192,  1407,  1411,   113,
    1941     1189,  1413,  1415,  1416,  1422,  1506,  1506,   442,   159,  1430,
    1942     1431,   112,    70,   161,  1432,   307,  1106,   213,    48,  1433,
    1943     1417,  1435,   472,  1349,    76,  1440,  1449,  1451,   215,    48,
    1944     1506,    48,  1453,  1445,   213,  1447,  1455,   373,    56,  1462,
    1945     1457,  1464,   587,  1463,  1475,    56,   593,  1485,  1487,  1489,
    1946       48,  1189,   106,  1492,  1493,  1515,  1500,  1516,  1520,   213,
    1947      413,   768,   769,   770,   479,   626,    48,   421,  1337,   630,
    1948     1527,   112,   339,  1529,   106,  1531,  1339,  1340,  1341,   348,
    1949       48,   106,   112,    48,   112,  1537,  1544,    37,  1545,   174,
    1950      175,    40,  1208,   888,   781,   214,    56,   782,    41,    42,
    1951      176,  1132,  1132,  1132,   783,   785,  1130,   784,  1306,   215,
    1952     1495,  1410,  1547,  1368,  1384,  1478,    48,  1213,  1239,   901,
    1953      112,  1479,   112,  1483,   372,  1221,   112,   323,   323,   902,
    1954     1088,   924,   106,  1127,   112,  1482,   800,  1482,   872,   413,
    1955     1385,   703,  1092,  1035,    57,   938,   214,    48,    48,  1102,
    1956        0,   215,  1315,   946,   716,   687,     0,  1511,     0,  1513,
    1957        0,    48,   790,   791,  1058,    70,     0,   792,   116,     0,
     1845      31,   471,  1181,   106,   106,   475,   477,   144,    31,  1541,
     1846     342,  1439,   202,   948,  1458,   149,   307,   147,  1398,  1399,
     1847     281,   252,  1303,   411,   161,   113,   345,   150,   151,   720,
     1848     209,    31,   830,   210,   436,   106,   220,   373,   837,   142,
     1849     291,   859,   860,   714,   419,   923,   411,   729,  1196,  -232,
     1850    -232,   447,  1245,   964,   965,   186,   186,  1198,   877,   481,
     1851     913,   411,   203,   161,   327,   566,   742,   667,   411,   951,
     1852     460,   266,   106,   408,   966,   815,    96,   816,   828,    49,
     1853     601,   817,  1439,   152,   153,  1443,   161,   168,  1400,    96,
     1854    1443,   209,   409,  1069,    70,   149,   436,   173,   443,   567,
     1855     577,   835,   377,   601,   163,  1015,   578,   150,   151,   307,
     1856    1443,   169,   154,   804,   398,   189,   931,  1443,   378,   734,
     1857    -232,    49,  1016,  1484,  1171,   146,    70,   819,    97,   271,
     1858     664,   798,   166,   820,   271,   266,   266,   476,    96,   253,
     1859    1199,   113,   821,   161,    63,   991,    76,  1139,  1248,   472,
     1860      96,    76,   609,   463,    50,   853,  1187,  1512,  1080,  1514,
     1861     212,   656,   476,   471,   307,  1093,  1496,  1003,   163,   815,
     1862     598,   816,  1501,    69,  1171,   817,  1249,   307,  1398,  1399,
     1863      96,   596,   155,   471,   568,  1200,   596,   171,   441,   671,
     1864     387,   471,  1521,   571,   479,   676,   588,  1528,   147,  1177,
     1865     181,  1468,  1169,  1170,   664,   373,   388,   994,   898,   357,
     1866     110,   113,   247,   665,   358,   345,   735,   922,    56,   602,
     1867     620,    41,    42,   747,   111,  1178,   342,  1178,    37,   390,
     1868    1118,   827,    40,   201,   625,   417,   736,   986,   625,    41,
     1869      42,   113,   847,   830,  1070,   391,   848,   819,  1409,   759,
     1870    1119,   327,   327,   820,   106,  1525,  1084,    96,   437,  1186,
     1871     110,   844,   821,   713,   435,   812,   266,   601,   445,   556,
     1872     557,    41,    42,    45,    46,  1536,   186,   286,   603,   110,
     1873     683,   888,  1540,   373,  1423,   250,   578,   665,    41,    42,
     1874      41,    42,  1325,  1171,   266,   177,   307,   307,  1424,   764,
     1875     266,  1116,   357,   625,   558,   559,   714,   358,   985,  1187,
     1876     702,   472,  1326,    76,   514,   442,  1187,  -288,  1330,   327,
     1877     176,   849,  1434,  -516,   113,   850,   435,   996,   252,  1201,
     1878     392,   472,   804,    76,  1469,   189,   520,   394,   327,   472,
     1879    1126,    76,   266,   263,   261,    70,   393,   262,  1470,   523,
     1880     266,   952,   625,   395,    49,  1428,  1429,   373,   719,  1135,
     1881     493,    97,   163,   494,   113,  1014,   357,  1187,  1244,   176,
     1882     914,   358,   176,  1104,   609,   711,   307,    63,   113,    76,
     1883     342,   307,   723,   307,   307,  1029,   915,    50,   704,   330,
     1884     869,   750,   721,   916,   705,   113,   345,  1016,   722,   229,
     1885     881,   -10,   230,   327,   110,   234,    69,   236,   870,   917,
     1886     642,   910,   703,    96,   245,    41,    42,   603,   176,   879,
     1887     804,  -440,   579,   914,   411,  -289,   471,   871,   922,   582,
     1888    1069,   411,     8,     9,    10,    11,    12,  1157,  1159,  1081,
     1889     571,   571,  -441,  1332,   212,   845,   916,  -120,   307,  -120,
     1890     598,    56,   928,  -120,   276,  -467,   439,  -467,  1126,   625,
     1891     345,    31,  1082,   913,   620,   714,   278,  1236,  -120,  -120,
     1892     602,   279,   602,   922,  -467,   465,   331,  1184,  1014,   332,
     1893     110,   176,   139,   140,   849,   680,  1184,   106,  1100,    34,
     1894     625,    41,    42,  1185,   912,   625,   831,   620,  1316,  1318,
     1895     834,   625,  1308,   333,   625,   625,   625,  1362,  1138,   691,
     1896     483,   706,   806,   334,  1317,  1319,   702,   500,  1027,   864,
     1897     747,   851,   625,   335,   266,   854,   713,  1276,  1277,   814,
     1898     371,   603,   110,   397,   731,   176,  1363,   570,  1074,   411,
     1899     732,   229,   176,    41,    42,    45,    46,   737,   520,   738,
     1900     252,   329,   739,   520,   113,   743,   520,   907,   372,  1029,
     1901     596,   523,   749,   523,   411,   376,   523,   212,  1360,   523,
     1902      45,    46,   554,   555,   472,   932,    76,   601,    70,  1112,
     1903     625,   933,   620,    45,    46,   357,   177,   385,   719,   719,
     1904     358,     2,   206,     4,     5,     6,     7,  -103,   399,   342,
     1905     472,  -103,    76,   629,   400,   389,   549,   633,   498,   401,
     1906    1034,   176,   550,   551,   113,   345,   911,   746,   703,   750,
     1907     750,   402,  1348,   747,   403,   404,  1349,   892,   176,   409,
     1908     894,   407,   176,   747,   405,   702,   747,   980,   711,   922,
     1909     552,   553,  1408,   981,   993,   702,   804,   814,   603,  1232,
     1910     705,  1373,   426,   964,   965,   578,    35,  1058,    36,   702,
     1911    1474,  1234,  1356,   571,  1357,  1238,  1359,  1474,   747,   427,
     1912     747,   625,   747,   625,   966,   999,   560,   561,   625,   345,
     1913    1161,   229,   602,   234,   432,   713,   110,  1364,   139,   140,
     1914     111,   984,   981,   747,   602,   176,  1426,    41,    42,   922,
     1915     922,   110,  1423,   139,   140,   450,   882,   714,   411,  1444,
     1916    -364,   890,    41,    42,   408,   747,   442,    37,  1522,    -3,
     1917     897,    40,   329,   411,   899,  1476,   461,  1477,    41,    42,
     1918     952,   806,  1425,  -393,   952,   952,  1490,   703,  1019,   691,
     1919    1546,   814,  1491,   243,   307,   462,   578,   703,  1436,   484,
     1920     885,   760,   411,   603,    43,  1141,   765,   411,   342,  1369,
     1921    1370,   703,    45,    46,  1418,   981,   625,    63,   327,    76,
     1922    1153,   229,   411,   113,   345,   907,   504,   907,  1182,   110,
     1923    1523,   139,   238,  1156,   519,   601,   714,  1398,  1399,   113,
     1924      41,    42,   212,   252,   329,   411,    69,   711,   291,    48,
     1925     112,  1168,   933,   933,   508,   465,   212,   719,  1158,   664,
     1926     601,   562,   113,   307,   910,  1241,   239,   411,  1494,  1436,
     1927    1105,   240,   513,  1087,   845,  1087,  1192,   525,   112,   112,
     1928    1101,    48,   771,   772,  1083,   527,   911,   750,   419,   660,
     1929     411,    56,    48,   775,   776,   777,   778,   563,    48,    37,
     1930    1323,   564,   176,    40,  1508,   565,    48,   773,   774,   846,
     1931      41,    42,    48,   702,   702,    48,   603,   568,    48,   345,
     1932     779,   780,  1227,   338,  -437,   861,   878,   106,   880,   586,
     1933     589,   112,   112,    -3,   176,   638,   718,   668,   657,   876,
     1934     625,   625,   665,   658,    45,    46,   659,   912,   661,   212,
     1935     176,   662,   663,  1126,   922,    48,   666,   257,    48,  1106,
     1936     307,   481,   329,   411,   176,    48,   672,   674,   692,   693,
     1937     922,   702,   702,   828,   329,   601,   695,   713,   927,  1295,
     1938    1296,  1297,   733,   472,   697,    76,   110,  1380,   139,   140,
     1939    1079,  1380,  1331,  1333,  1334,   106,    48,    41,    42,  -236,
     1940     113,   744,   748,   756,    48,   907,   807,   808,   811,    48,
     1941     907,   822,  1189,   -12,   -13,   703,   703,   866,    70,   933,
     1942     500,   867,   873,   726,   691,   893,   895,   266,   727,   896,
     1943    -414,   903,   900,   949,    48,    48,   510,   921,  -520,   936,
     1944     922,   922,   625,   722,  1058,   176,   519,   943,   957,   945,
     1945      48,   519,   956,   958,   519,   959,   960,    56,    48,   547,
     1946     548,   950,   961,   977,   911,   988,   345,    48,   989,   911,
     1947      48,   990,   213,   703,   703,  1005,  1006,   112,  1007,  1008,
     1948    1009,   232,  1010,    37,  1011,   174,   175,    40,  1459,   711,
     1949    1022,  -402,   112,   106,    41,    42,   112,   547,  -401,  1036,
     1950      48,   112,  1071,  1095,  1073,  1351,  1077,   787,   271,   113,
     1951    1094,   498,   342,   906,    48,    48,  1096,   219,  1103,  1312,
     1952     372,    48,   116,   213,   528,   529,   530,   113,    48,  1097,
     1953    1113,   307,   747,   547,  1114,  1115,  1117,  1372,  1120,   971,
     1954    1122,  1123,  1124,  1203,  1125,   625,   442,  1131,   531,   113,
     1955     532,   702,   533,   534,    63,  1151,    76,  1105,  1128,   702,
     1956     702,   702,  1172,  1173,   215,  1174,   213,  1175,   711,  1190,
     1957     159,     2,   206,     4,     5,     6,     7,    48,  1176,  1191,
     1958     242,  1193,  1206,    69,    70,   691,  1194,  1202,  1207,  1397,
     1959    1209,   493,  1405,  1421,   625,   625,    -3,    48,    48,   162,
     1960     228,  1534,  1214,   271,  1219,   210,   220,  1224,   307,   176,
     1961    1222,  1228,  1235,   194,    48,   215,   217,  1233,    48,   227,
     1962    1237,  1313,  1240,   702,  1250,  1246,   258,   213,    56,   643,
     1963    1121,   472,  1252,    76,   159,  1442,    35,  1254,    36,  1256,
     1964    1446,   113,   106,  1257,  1258,    48,  1106,  1259,   399,  1105,
     1965    1260,  1262,  1132,   703,   400,    48,  1132,  1269,   215,   401,
     1966    1189,   703,   703,   703,   106,   213,  1278,   323,  1467,  1279,
     1967     213,   402,  1286,    48,   403,   404,   339,  1322,  1289,    48,
     1968     407,    48,   106,  1290,   405,   499,     2,   206,     4,     5,
     1969       6,     7,  1291,  1293,  1301,  1307,  1507,   162,   266,  1314,
     1970     441,   768,   769,   770,   664,    56,  1132,  1320,  1324,  1328,
     1971     374,  1329,  1335,  1336,   625,  1338,   112,  1344,  1345,   215,
     1972    1346,    48,  1347,  1354,  1297,   703,   430,  1355,  1358,    48,
     1973     434,  1365,   212,    48,  1374,  1366,   162,    48,  1106,   113,
     1974     112,   106,   112,    57,    57,  1375,  1376,  1105,  1382,  1383,
     1975    1392,    35,  1535,    36,  1393,    70,   213,   215,  1535,   162,
     1976     323,   113,   215,   408,  -403,  1396,  1407,  1411,   113,  1535,
     1977     113,   444,   113,  1535,   106,    57,  1413,   112,  1415,  1416,
     1978    1417,  1422,   112,  1430,   472,   149,    76,   665,  1431,  1367,
     1979     327,   472,   434,    76,  1432,   488,  1433,   150,   151,  1349,
     1980    1435,  1506,  1440,  1449,  1451,  1453,   113,  1445,   113,    57,
     1981    1455,  1447,    57,  1189,  1462,   521,  1464,  1457,  1485,   113,
     1982    1189,  1463,  1475,  1487,  1492,  1506,  1506,   442,   159,  1493,
     1983    1489,   112,    70,   161,  1500,   307,  1106,   213,    48,  1515,
     1984    1520,  1527,   472,  1516,    76,  1529,  1531,  1544,   215,    48,
     1985    1506,    48,  1537,  1208,   213,  1545,   784,   373,    56,   781,
     1986    1130,   782,   587,  1306,   783,    56,   593,   785,  1495,  1547,
     1987      48,  1189,   106,  1410,  1368,  1239,  1384,  1478,   374,   213,
     1988     413,  1213,   901,   902,   479,   626,    48,   421,  1221,   630,
     1989    1088,   112,   339,   924,   106,  1092,  1127,  1035,   872,   348,
     1990      48,   106,   112,    48,   112,   938,  1315,    37,   972,   174,
     1991     175,    40,   800,  1102,   716,   214,    56,   946,    41,    42,
     1992     176,  1132,  1132,  1132,   790,     0,   791,   792,     0,   215,
     1993       0,     0,     0,     0,     0,     0,    48,     0,   891,     0,
     1994     112,  1479,   112,  1483,   376,     0,   112,   323,   323,     0,
     1995       0,     0,   106,     0,   112,  1482,   374,  1482,   129,   413,
     1996     130,   131,   132,     0,    57,     0,   214,    48,    48,    41,
     1997      42,   215,     0,     0,     0,   687,     0,  1511,     0,  1513,
     1998       0,    48,     0,     0,     0,    70,     0,     0,   116,     0,
    19581999       0,  1482,    70,  1482,    57,     8,     9,    10,    11,    12,
    1959      213,     0,     0,     0,     0,     0,     0,     0,    37,   214,
     2000     213,     8,     9,    10,    11,    12,     0,     0,    37,   214,
    19602001     183,   184,    40,   488,   576,   323,     0,   488,     0,    41,
    19612002      42,  1542,   580,  1543,    31,   583,     0,   521,   213,   521,
    1962        0,  -291,   521,   213,   323,   521,  1550,  1551,     8,     9,
    1963       10,    11,    12,    70,     0,   600,   339,   601,     0,     0,
    1964        0,     0,    34,    45,    46,     0,     0,     0,     0,  1132,
    1965     1132,    48,     0,     0,     0,  1420,     0,    31,     0,     0,
    1966      214,     0,     0,    48,     0,     0,     0,  1372,     0,     0,
    1967        0,     0,   141,     8,     9,    10,    11,    12,   972,   413,
    1968      176,     0,   215,   421,   570,    34,   411,  1460,     0,   323,
     2003      31,     0,   521,   213,   323,   521,  1550,  1551,    37,     0,
     2004     183,   184,    40,    70,     0,   905,   339,   411,     0,    41,
     2005      42,     0,    34,    45,    46,     0,     0,   987,    34,  1132,
     2006    1132,    48,     0,     0,     0,  1420,   906,   992,     0,     0,
     2007     214,     0,     0,    48,     0,   600,    37,   601,   174,   175,
     2008      40,  1004,   141,    45,    46,     0,     0,    41,    42,   413,
     2009     176,     0,   215,   421,   570,     0,   411,  1460,     0,   323,
    19692010       0,     0,    45,    46,   213,     0,     0,     0,   214,     0,
    1970      802,     0,    31,   214,     0,     0,   643,     0,   213,     0,
    1971      215,     0,   112,     0,     0,   215,     0,     0,     0,  1397,
    1972        0,     0,  1405,     0,   241,   244,     0,     0,   499,     0,
    1973       34,   843,     0,     0,     0,    48,   593,     0,     0,     0,
    1974        0,     0,   852,     0,    48,  1509,    48,    37,     0,   174,
    1975      175,    40,     0,   112,  1517,     0,     0,   703,    41,    42,
    1976      413,     0,     0,     0,     0,  1442,   348,     0,     0,     0,
    1977     1446,     0,   749,     0,   411,    74,    48,     0,     0,     0,
    1978       45,    46,     0,     0,   376,     0,   215,     0,     0,   214,
    1979        8,     9,    10,    11,    12,   687,   112,     0,  1467,     0,
     2011     802,     0,     0,   214,     0,     0,   643,     0,   213,     0,
     2012     215,     0,   112,     0,     0,   215,     0,     0,     0,     0,
     2013    1284,  1285,     0,  1287,   241,   244,     0,     0,   499,     0,
     2014    1292,   843,  1294,     0,     0,    48,   593,     0,     0,     0,
     2015       0,   547,   852,     0,    48,  1509,    48,     0,     0,     0,
     2016       0,     0,     0,   112,  1517,     8,     9,    10,    11,    12,
     2017     413,     0,     0,     0,     0,     0,   348,     0,     0,     0,
     2018       8,     9,    10,    11,    12,    74,    48,     0,     0,     0,
     2019       0,     0,   510,  -290,    31,     0,   215,     0,     0,   214,
     2020       8,     9,    10,    11,    12,   687,   112,     0,     0,    31,
    19802021     215,   213,     0,     0,     0,     0,     0,    74,     0,     0,
    1981      643,     0,    37,     0,   183,   184,    40,    57,   112,    31,
    1982        0,     0,   112,    41,    42,     0,   129,     0,   130,   131,
    1983      132,     0,     0,   488,     0,    66,   117,    41,    42,     0,
    1984        0,     0,     0,     0,   222,     0,     0,    34,     0,   265,
    1985        0,   576,   576,     0,     0,   339,     0,    45,    46,   348,
    1986        0,     0,    37,     0,   174,   175,    40,    66,     0,     0,
    1987      214,     0,   112,    41,    42,     0,   703,     0,     0,     0,
    1988        0,     0,  1535,     0,   160,   457,   703,     0,  1535,   932,
    1989        0,   601,     0,   215,     0,     0,     0,    45,    46,  1535,
    1990      703,     0,     0,  1535,   221,     0,     0,     0,     0,     0,
    1991      112,     0,   214,     0,   995,     0,     0,     0,     0,   802,
    1992        0,   547,     0,   348,    48,     0,     0,     0,     0,    48,
    1993        0,   353,     0,    37,     0,   183,   184,    40,   883,     0,
    1994      259,     0,   886,     0,    41,    42,    48,     0,     0,     0,
    1995        0,     8,     9,    10,    11,    12,     0,     0,     0,     0,
    1996        0,     0,   510,     0,     0,     0,     0,   348,   348,   348,
    1997      905,     0,   411,     0,     0,     0,     0,     0,    45,    46,
    1998       31,     0,   328,     0,     0,   348,     0,     0,     0,     0,
    1999      259,   350,     0,     0,     0,     0,     0,     0,   213,     0,
    2000        0,     0,     0,     0,     0,   449,     0,   802,    34,     0,
    2001        0,     0,     0,    37,   339,   183,   184,    40,     0,     0,
    2002        0,   406,   644,   112,    41,    42,    74,     0,     0,     0,
    2003      687,    74,     0,   214,     0,     0,   424,     0,     0,   429,
     2022     643,     0,    34,     0,     0,     0,     0,    57,   112,    31,
     2023       0,     0,   112,     0,     0,     0,     0,    34,     0,     0,
     2024    -291,     0,     0,   488,     0,    66,   117,     8,     9,    10,
     2025      11,    12,     0,     0,   222,     0,     0,    34,     0,     0,
     2026       0,   576,   576,     0,   749,   339,   411,     0,     0,   348,
     2027       0,     0,    45,    46,     0,     0,    31,    66,     0,   932,
     2028     214,   601,   112,     0,     0,  1166,  1167,    45,    46,     8,
     2029       9,    10,    11,    12,   160,   457,     0,     0,  1404,   528,
     2030     529,   530,     0,   215,    34,     0,     0,     0,     0,     0,
     2031       0,     0,     0,     0,   221,     0,     0,     0,    31,     0,
     2032     112,     0,   214,   531,   995,   532,     0,   533,  1305,   802,
     2033       0,     0,     0,   348,    48,     0,     0,     0,     0,    48,
     2034       0,   353,     0,  1216,  1217,     0,    34,     0,   883,     0,
     2035     259,    37,   886,   183,   184,    40,    48,     0,     0,     0,
     2036       0,     0,    41,    42,   535,   536,   537,   538,   539,   540,
     2037     541,   542,   543,   544,     0,     0,     0,   348,   348,   348,
     2038       0,     0,    37,     0,   183,   184,    40,     0,   600,     0,
     2039     601,     0,   328,    41,    42,   348,    45,    46,   545,     0,
     2040     259,   350,    37,     0,   183,   184,    40,     0,   213,     0,
     2041       0,     0,     0,    41,    42,   449,     0,   802,     0,   905,
     2042       0,   411,     0,     0,   339,     0,     0,    45,    46,     0,
     2043       0,   406,   644,   112,     0,     0,    74,     0,     0,   185,
     2044     687,    74,     0,   214,     0,     0,   424,    45,    46,   429,
    20042045     431,     0,     0,   348,   160,     0,    48,     0,     0,     0,
    2005      185,     0,   488,  1107,   323,     0,     0,     0,    45,    46,
     2046       0,     0,   488,  1107,   323,     0,     0,     0,     0,     0,
    20062047       0,   214,     0,     0,     0,   448,   214,     0,     0,   451,
    20072048       0,   452,     0,     0,   576,     0,     0,     0,     0,     0,
    20082049     459,     0,   126,   126,   126,     0,    66,   112,   112,   112,
    2009      215,   473,     0,     0,     0,     0,     0,     0,     0,     0,
    2010        0,   480,     0,     0,   703,   703,     0,     0,     0,   431,
    2011      843,   535,   536,   537,   538,   539,   540,   541,   542,   543,
    2012      544,     8,     9,    10,    11,    12,   222,    37,     0,   183,
    2013      184,    40,     0,   724,   348,   728,     0,   214,    41,    42,
    2014        0,     0,   348,     0,     0,   545,     0,     0,     0,     0,
    2015       31,   214,     0,     0,   126,     0,   126,     0,     0,     0,
    2016        0,     0,   703,   703,  1505,     0,   411,     0,     0,     0,
    2017        0,     0,    45,    46,     0,     0,   259,     0,    34,     0,
    2018      594,   275,     0,    37,   213,     0,   622,    40,     0,     0,
    2019        0,   687,   413,    74,    41,    42,     0,     0,     0,   627,
     2050     215,   473,     0,    37,     0,   183,   184,    40,     0,     0,
     2051       0,   480,     0,     0,    41,    42,     0,     0,     0,   431,
     2052     843,     0,     0,  1337,     0,     0,     0,     0,     0,     0,
     2053       0,  1339,  1340,  1341,     0,     0,   222,     0,     0,     0,
     2054    1505,     0,   411,   724,   348,   728,     0,   214,    45,    46,
     2055       0,     0,   348,     0,     0,     0,     0,     0,     0,     0,
     2056       0,   214,     0,     0,   126,     0,   126,     0,     8,     9,
     2057      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2058      20,    21,    22,    23,    24,    25,   259,     0,     0,     0,
     2059     594,   275,     0,     0,   213,  1385,   622,    31,     0,     0,
     2060       0,   687,   413,    74,     0,     0,     0,     0,     0,   627,
    20202061       0,     0,     0,   627,     0,     0,   259,    57,   353,     0,
    2021        0,     0,     0,    74,     0,     0,    48,    48,     0,     0,
    2022       43,    74,   124,   127,   128,   112,   112,     0,    45,    46,
     2062       0,     0,     0,    74,     0,    34,    48,    48,     0,     0,
     2063       0,    74,   124,   127,   128,   112,   112,     0,     0,     0,
    20232064       0,     0,     0,   802,     0,     0,     0,   126,     0,   353,
    20242065       0,     0,     0,     0,   214,   126,     0,   126,   126,     0,
     
    20292070       0,     0,     0,     0,   254,     0,   255,     0,     0,   698,
    20302071       0,   353,   431,     0,    77,     0,     0,     0,     0,     0,
    2031     1313,     0,     0,     0,     0,     0,     0,   712,   339,    66,
    2032       48,   112,     0,     0,   126,     0,     0,   431,     0,     0,
     2072       0,    37,     0,   183,   184,    40,     0,   712,   339,    66,
     2073      48,   112,    41,    42,   126,     0,     0,   431,     0,     0,
    20332074     112,   431,     0,   918,     0,   920,     0,     0,     0,   457,
    2034     1107,   223,   703,     0,    48,    48,     0,     0,     0,     0,
    2035      703,   703,   703,   348,   348,     0,     0,     0,     0,     0,
     2075    1107,   223,     0,     0,    48,    48,     0,     0,   265,     0,
     2076       0,     0,     0,   348,   348,     0,    45,    46,     0,     0,
    20362077     259,   350,     0,     0,   413,   353,     0,     0,     0,    48,
    20372078       0,   215,     0,    57,     0,     0,     0,   396,     0,     0,
     
    20392080       0,     0,   420,     0,   422,   423,     0,     0,     0,     0,
    20402081       0,     0,     0,     0,  1242,     0,   793,     0,     0,   353,
    2041      353,   353,     0,     0,   703,     0,     0,     0,     8,     9,
     2082     353,   353,     0,     0,     0,     0,     0,     0,     8,     9,
    20422083      10,    11,    12,     0,   627,   805,     0,   353,   355,     0,
    20432084       0,     0,  1107,     0,     0,     0,     0,   824,     0,     0,
     
    20492090       0,    41,    42,     0,     0,     0,     0,     0,     0,     0,
    20502091       0,     0,     0,     0,     0,   698,     0,     0,     0,   644,
    2051        0,     0,     0,     0,     0,  1039,   473,   718,     0,     0,
     2092       0,     0,     0,     0,     0,  1039,   473,    43,     0,     0,
    20522093     353,    57,    57,    77,     0,    45,    46,     0,    77,     0,
    20532094    1107,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     
    20742115       0,     0,  1085,     0,     0,     0,     0,     0,     0,     0,
    20752116       0,     0,    57,     0,   355,     0,    77,     0,     0,     0,
    2076        0,     0,     0,     0,     0,     0,     0,     0,  1099,     0,
     2117       0,     0,     8,     9,    10,    11,    12,     0,  1099,     0,
    20772118     795,   796,     0,     0,    57,     0,   431,   117,     0,     0,
    20782119       0,    57,     0,     0,     0,     0,     0,     0,     0,     0,
    2079        0,     0,   353,   353,     0,   353,   353,     0,   355,   829,
     2120       0,    31,   353,   353,     0,   353,   353,     0,   355,   829,
    20802121       0,    79,   832,   833,     0,   836,    79,   838,   839,     0,
    2081      126,   126,   840,   841,     0,    74,     0,     0,     0,     0,
    2082        0,     0,     0,     0,     0,     0,  1282,     0,     0,     0,
    2083        0,     0,    57,     0,   594,     0,     0,     0,     0,     0,
     2122     126,   126,   840,   841,     0,    74,     0,     0,     0,    34,
     2123       0,     0,     0,     0,    37,     0,  1282,     0,    40,     0,
     2124       0,     0,    57,     0,   594,    41,    42,     0,     0,     0,
    20842125       0,     0,     0,     0,     0,     0,     0,   429,     0,     0,
    20852126     353,   353,   698,   698,     0,   350,   350,     0,     0,     0,
    2086        0,     0,   355,     0,     0,     0,     0,     0,     0,     0,
    2087        0,     0,     0,     0,     0,  1188,     0,     0,     0,     0,
     2127       0,   718,   355,     0,     0,     0,     0,     0,     0,    45,
     2128      46,     0,     0,     0,     0,  1188,     0,     0,     0,     0,
    20882129       0,     0,     0,     8,     9,    10,    11,    12,    13,    14,
    20892130      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     
    21132154     184,    40,     0,   126,     0,     0,     0,     0,    41,    42,
    21142155     356,     0,     0,   363,     0,     0,    77,     0,     0,     0,
    2115      600,     0,   601,     0,     0,     0,   117,     0,    45,    46,
    2116        0,     0,   698,     0,   905,     0,   411,     0,     0,   353,
     2156     905,     0,   411,     0,     0,     0,   117,     0,    45,    46,
     2157       0,     0,   698,     0,  1505,     0,   411,     0,     0,   353,
    21172158       0,     0,    45,    46,     0,   321,   355,     0,     0,     0,
    21182159       0,     0,     0,     0,   356,   356,   356,     0,     0,     0,
     
    21282169      42,     0,     0,  1188,     0,     0,     0,     0,     0,   355,
    21292170     355,     0,   355,   355,     0,   356,     0,     0,     0,     0,
    2130        0,     0,     0,     0,     0,  1505,     0,   411,     0,     0,
     2171       0,     0,     0,     0,     0,   185,     0,     0,     0,     0,
    21312172       0,     0,    77,    45,    46,     0,   382,     0,     0,     0,
    21322173       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     
    21582199       0,     0,     0,   382,     0,     0,     0,     0,     0,     0,
    21592200      79,     0,     0,     0,     0,     0,     0,     0,     0,   355,
    2160        0,     0,     8,     9,    10,    11,    12,    13,    14,    15,
    2161       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2201       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2202       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    21622203       0,   363,   363,   363,     0,   356,   356,     0,     0,     0,
    2163        0,    31,     0,     0,     0,     0,     0,     0,     0,   363,
     2204       0,     0,     0,     0,     0,     0,     0,     0,     0,   363,
    21642205       0,     0,  1012,     0,     0,     8,     9,    10,    11,    12,
    2165        0,     0,     0,     0,     0,     0,   591,   363,   599,    34,
     2206       0,     0,     0,     0,     0,     0,   591,   363,   599,     0,
    21662207       0,   165,     0,     0,     0,     0,   355,     0,    86,   623,
    21672208     624,     0,   282,   283,    31,   284,     0,     0,   218,     0,
     
    28772918
    28782919#define yypact_value_is_default(yystate) \
    2879   ((yystate) == (-1282))
     2920  ((yystate) == (-1390))
    28802921
    28812922#define yytable_value_is_error(yytable_value) \
     
    28852926{
    28862927       0,     1,   204,    43,    49,   239,   219,     0,   185,     1,
    2887      534,   116,    32,   620,   185,    43,    43,   513,   364,   185,
    2888      602,   874,   368,     0,   521,     0,   281,   749,   749,   349,
    2889       95,   185,    32,   602,   185,   185,   345,   646,  1040,    32,
    2890      186,   168,   169,    43,   185,   600,   692,    43,   749,    49,
    2891        0,   600,     0,   571,   492,    32,    49,    32,   496,     0,
    2892      600,   187,   156,    63,   129,   600,    66,   156,   113,    69,
    2893       63,    43,   756,    66,    96,   418,    69,    69,   349,  1021,
    2894       43,  1321,    32,   600,    32,  1052,  1053,   600,   265,    28,
    2895      105,    32,   600,    72,   265,   438,   201,     0,     1,   265,
    2896      122,   146,    43,   446,    39,   105,    96,    64,    49,   426,
    2897      427,   265,    63,   113,   265,   265,   116,   117,    82,   983,
     2928     534,   116,   620,   602,   185,    43,    43,   646,   364,   185,
     2929     349,   513,   368,     0,   521,     0,   281,   749,   749,   349,
     2930     602,   185,    32,     0,   185,   185,   345,   874,  1040,    32,
     2931     186,   168,   169,    43,   185,   600,  1321,   756,   749,    49,
     2932    1021,   600,     0,   571,   492,    32,    49,    32,   496,     0,
     2933     600,   187,   156,    63,    32,    32,    66,   156,   113,    69,
     2934      63,    43,    43,    66,    82,   418,    69,    69,  1020,  1021,
     2935     692,    39,   983,    63,    32,   600,   109,   600,   265,   600,
     2936     105,    32,    51,   600,   265,   438,   201,     0,     1,   265,
     2937      43,   146,    43,   446,    39,   105,  1052,  1053,    49,   426,
     2938     427,   265,  1501,   113,   265,   265,   116,   117,    72,    39,
    28982939     266,  1402,    63,   186,   265,    66,    39,    72,    69,    32,
    2899      116,   256,   122,     0,     1,   261,   262,    44,    45,    78,
    2900      155,    51,    39,   733,   130,   185,   146,   147,    44,    45,
    2901     1020,  1021,   109,   132,   147,   155,   156,   185,   185,  1398,
    2902      160,  1128,   603,    66,   209,    32,    69,   160,   609,  1033,
    2903       39,   635,   636,   482,   109,   695,   111,   494,   718,  1419,
    2904      110,   132,    82,   905,   905,   185,   186,   132,   652,   185,
    2905      687,   112,   109,   186,   239,   116,   513,   410,   111,   109,
    2906      130,   201,    69,   266,   905,   718,   147,    82,   115,   209,
    2907      718,   111,   109,   185,   111,  1496,   209,   488,   114,   160,
    2908     1501,   221,   185,   874,     0,   265,   271,    55,   221,   107,
    2909     1469,   251,   116,   109,    49,   110,    39,   265,   265,   239,
    2910     1521,    11,   824,   589,   185,   186,   710,  1528,   132,   504,
    2911       39,   251,   490,   131,   900,   824,    32,   812,   251,   259,
    2912      406,   578,   307,   812,   264,   265,   266,    72,   209,    97,
    2913       39,   271,   812,   266,   251,   793,   251,   812,   294,   256,
    2914      221,   256,   602,  1225,   109,   631,  1288,    44,    45,    85,
    2915       66,   396,   109,   418,   294,   812,    90,    91,   113,   812,
    2916      345,   251,   986,   251,   812,   112,   109,   307,   111,  1501,
    2917      251,   620,   117,   438,   131,   924,   625,   113,   221,   424,
    2918      109,   446,   111,   323,   265,   430,   341,   228,   328,  1521,
    2919      114,   125,   126,  1275,   480,   328,  1528,   801,   681,   433,
    2920      109,   341,   111,   406,   433,   345,   247,   695,   251,   349,
    2921      350,   933,  1501,   111,     1,   113,   371,   114,  1211,   111,
    2922      110,   113,   116,    72,   364,   193,   604,   116,   368,   116,
    2923      608,   371,   130,   814,    83,    84,   130,   932,   130,  1528,
    2924      130,   426,   427,   932,   251,   132,   906,   328,   216,  1040,
    2925        3,   629,   999,   482,   209,   633,   396,   932,   226,   109,
    2926      116,   111,   111,    72,  1274,  1275,   406,   109,   349,   111,
    2927      426,   427,     3,   406,    83,    84,   132,   480,   116,    10,
    2928       11,    12,    13,    14,   424,    57,   426,   427,     3,  1472,
    2929      430,   951,   526,   433,   132,  1478,   745,   526,   786,  1441,
    2930      464,   418,   111,   418,   110,   221,  1448,   110,    39,   494,
    2931       57,   116,  1394,   116,   454,  1498,   271,   803,   116,  1049,
    2932     1503,   438,   808,   438,   130,   406,   294,   132,   513,   446,
    2933      967,   446,   472,   116,   106,   251,    67,   109,     0,   294,
    2934      480,   736,   482,     0,   484,   981,   116,   480,   488,   132,
    2935      506,   484,   307,   109,   494,   511,   590,  1499,   514,   106,
    2936      130,   590,   109,   941,   824,   482,   506,   484,   508,   484,
    2937      525,   511,   131,   513,   514,   863,    72,  1099,  1127,   109,
    2938      647,   521,  1386,  1387,  1394,   525,   526,    83,    84,    70,
    2939      656,   110,    73,   578,   484,    76,   484,    78,   116,   110,
    2940      110,   687,   109,   484,    85,   116,   116,   488,   155,   654,
    2941      896,   567,   109,   824,   132,   111,   681,   109,   906,   111,
    2942     1211,     4,     5,     6,     7,     8,     9,  1008,  1009,   128,
    2943      570,   571,   131,    72,   350,   620,   116,    76,   578,   109,
    2944      625,   484,   707,   116,    83,    84,   218,   110,  1085,   589,
    2945      590,   116,   132,  1090,   594,   904,   109,  1117,   116,   132,
    2946      600,   109,   602,   951,   109,   252,   116,   132,   846,  1452,
    2947      109,   218,   111,   116,   132,   443,   112,   484,   117,   118,
    2948      620,    72,   132,   110,   687,   625,    69,   627,    71,   132,
    2949      110,   631,    83,    84,   634,   635,   636,  1288,   986,   454,
    2950      272,   469,   590,  1486,   110,  1488,   670,   279,   861,   110,
    2951      116,    72,   652,   116,   654,   116,   745,  1177,  1178,   600,
    2952      111,   602,    83,    84,   110,   272,   937,   109,   881,   132,
    2953       72,   212,   279,   110,   110,   112,   109,   110,   506,   116,
    2954      116,    83,    84,   511,   684,   110,   514,   687,   109,  1037,
    2955      999,   506,   115,   508,   131,   132,   511,   473,  1288,   514,
    2956      938,   109,   110,   111,   681,   109,   681,   111,   484,   943,
    2957      710,   711,   712,   117,   118,   809,   348,   112,   718,   719,
    2958      809,   116,   109,    10,    11,    12,    13,    14,   905,   744,
    2959      707,  1115,   707,   365,   905,  1119,   117,   369,   279,   905,
    2960      867,   348,   123,   124,   744,   745,   687,   110,   132,   749,
    2961      750,   905,    39,   116,   905,   905,    64,   110,   365,   132,
     2940      39,   256,  1033,     0,     1,   261,   262,    11,    39,  1528,
     2941     155,  1398,    28,   733,  1419,   185,   146,   147,    44,    45,
     2942     109,   109,   132,   111,   147,   155,   156,   185,   185,   488,
     2943     160,    39,   603,    66,   209,    32,    69,   160,   609,   109,
     2944      82,   635,   636,   482,   109,   695,   111,   494,   132,    44,
     2945      45,   228,  1128,   905,   905,   185,   186,   132,   652,   109,
     2946     687,   111,    78,   186,   239,    95,   513,   410,   111,   111,
     2947     247,   201,    69,   266,   905,   718,   147,   718,   109,   209,
     2948     111,   718,  1469,   185,   185,  1496,   209,   107,   114,   160,
     2949    1501,   221,    64,   874,     0,   265,   271,    55,   221,   129,
     2950     110,   109,   116,   111,    49,   824,   116,   265,   265,   239,
     2951    1521,   131,   185,   589,   185,   186,   710,  1528,   132,   504,
     2952     115,   251,   824,  1452,  1225,   109,    32,   812,   251,   259,
     2953     406,   578,   307,   812,   264,   265,   266,   109,   209,    97,
     2954      72,   271,   812,   266,   251,   793,   251,   986,    85,   256,
     2955     221,   256,   602,   251,   251,   631,  1288,  1486,   900,  1488,
     2956      66,   396,   109,   418,   294,   924,  1472,   812,   113,   812,
     2957     345,   812,  1478,   251,  1275,   812,   113,   307,    44,    45,
     2958     251,   620,   112,   438,   131,   117,   625,   114,   221,   424,
     2959     116,   446,  1498,   323,   265,   430,   341,  1503,   328,    96,
     2960     116,    96,  1274,  1275,   480,   328,   132,   801,   681,   433,
     2961      72,   341,   116,   406,   433,   345,   110,   695,   251,   349,
     2962     350,    83,    84,   116,     1,   122,   371,   122,    72,   116,
     2963     110,   933,    76,     3,   364,   193,   130,   130,   368,    83,
     2964      84,   371,   112,   814,  1211,   132,   116,   932,   114,   111,
     2965     130,   426,   427,   932,   251,  1501,   906,   328,   216,  1040,
     2966      72,   999,   932,   482,   209,   109,   396,   111,   226,    90,
     2967      91,    83,    84,   117,   118,  1521,   406,    72,   349,    72,
     2968     110,   666,  1528,   406,   116,     0,   116,   480,    83,    84,
     2969      83,    84,   110,  1394,   424,    57,   426,   427,   130,   111,
     2970     430,   951,   526,   433,   125,   126,   745,   526,   786,  1441,
     2971     464,   418,   130,   418,   109,   221,  1448,     3,   111,   494,
     2972      57,   112,  1394,     0,   454,   116,   271,   803,   109,  1049,
     2973     116,   438,   808,   438,   116,   406,   294,   116,   513,   446,
     2974     967,   446,   472,   131,   106,   251,   132,   109,   130,   294,
     2975     480,   736,   482,   132,   484,  1386,  1387,   480,   488,   981,
     2976     128,   484,   307,   131,   494,   824,   590,  1499,  1127,   106,
     2977     116,   590,   109,   941,   824,   482,   506,   484,   508,   484,
     2978     525,   511,   490,   513,   514,   863,   132,   484,   110,   110,
     2979     647,   521,   110,   116,   116,   525,   526,  1099,   116,    70,
     2980     656,   109,    73,   578,    72,    76,   484,    78,   111,   132,
     2981     113,   687,   464,   484,    85,    83,    84,   488,   155,   654,
     2982     896,   109,   109,   116,   111,     3,   681,   130,   906,   109,
     2983    1211,   111,    10,    11,    12,    13,    14,  1008,  1009,   132,
     2984     570,   571,   109,   111,   350,   620,   116,   110,   578,   112,
     2985     625,   484,   707,   116,   109,   111,   218,   113,  1085,   589,
     2986     590,    39,   132,  1090,   594,   904,   109,  1117,   131,   132,
     2987     600,   109,   602,   951,   130,   252,   110,   116,   937,   110,
     2988      72,   218,    74,    75,   112,   443,   116,   484,   116,    67,
     2989     620,    83,    84,   132,   687,   625,   604,   627,   116,   116,
     2990     608,   631,   132,   110,   634,   635,   636,  1288,   986,   454,
     2991     272,   469,   590,   110,   132,   132,   670,   279,   861,   111,
     2992     116,   629,   652,   110,   654,   633,   745,  1177,  1178,   600,
     2993     112,   602,    72,   132,   110,   272,   132,   109,   881,   111,
     2994     116,   212,   279,    83,    84,   117,   118,   506,   506,   508,
     2995     109,   110,   511,   511,   684,   514,   514,   687,   109,  1037,
     2996     999,   506,   109,   508,   111,   109,   511,   473,  1288,   514,
     2997     117,   118,    88,    89,   681,   109,   681,   111,   484,   943,
     2998     710,   711,   712,   117,   118,   809,   348,   115,   718,   719,
     2999     809,     4,     5,     6,     7,     8,     9,   112,   905,   744,
     3000     707,   116,   707,   365,   905,   109,   117,   369,   279,   905,
     3001     867,   348,   123,   124,   744,   745,   687,   110,   670,   749,
     3002     750,   905,   112,   116,   905,   905,   116,   110,   365,    64,
    29623003     110,   907,   369,   116,   905,   789,   116,   110,   745,  1117,
    2963      119,   120,  1362,   116,    49,   799,  1122,   718,   719,   110,
    2964       67,  1305,   109,  1505,  1505,   116,   110,   109,    63,   813,
    2965     1441,    66,   116,   793,    69,   112,   110,  1448,   109,   116,
    2966      111,   801,   116,   803,  1505,   805,   117,   118,   808,   809,
     3004     119,   120,  1362,   116,   110,   799,  1122,   718,   719,   110,
     3005     116,  1305,   109,  1505,  1505,   116,    69,   874,    71,   813,
     3006    1441,  1115,   110,   793,   110,  1119,   110,  1448,   116,   109,
     3007     116,   801,   116,   803,  1505,   805,    92,    93,   808,   809,
    29673008    1012,   352,   812,   354,   112,   904,    72,   110,    74,    75,
    2968      467,    88,    89,   116,   824,   432,   110,    83,    84,  1177,
    2969     1178,    72,   116,    74,    75,    76,   112,  1146,   132,   110,
    2970      116,   669,    83,    84,   907,   116,   622,   112,  1499,   132,
    2971      678,   116,   114,   109,   682,  1445,   114,  1447,   114,   114,
    2972     1115,   809,  1382,   109,  1119,  1120,    82,   110,   109,   684,
    2973      111,   812,   147,   116,   874,   109,   117,   118,  1398,   109,
    2974      109,   528,   111,   824,   112,   160,   533,    82,   903,   130,
    2975        4,     5,     6,     7,     8,     9,   896,   874,   943,   874,
    2976      110,   442,   127,   903,   904,   905,   116,   907,  1035,   118,
    2977     1500,   186,    72,   128,    74,    75,  1225,    94,   109,   919,
    2978      111,   111,   698,    83,    84,   131,   874,   904,   109,     0,
    2979        1,  1020,   932,   933,   209,   582,   712,   937,   109,  1085,
    2980      111,   110,   942,   943,  1090,   109,   221,   116,  1468,  1469,
    2981      942,   111,    92,    93,   999,    69,   112,    71,    29,    30,
    2982      109,    32,   111,   109,   905,   111,   907,   967,   117,   118,
    2983      112,   874,    43,   556,   557,   558,   559,   109,    49,   111,
    2984     1235,   112,   589,   670,  1481,   109,    57,   111,   910,   621,
    2985      912,   110,    63,  1017,  1018,    66,   937,   110,    69,   999,
    2986      115,   116,  1107,   110,   111,   637,   653,   874,   655,    58,
    2987       59,    82,    83,    72,   621,    74,    75,   110,   132,   651,
    2988     1020,  1021,  1085,   110,    83,    84,   109,  1090,   110,   805,
    2989      637,   115,   116,  1530,  1382,   106,   110,    72,   109,   942,
    2990     1040,    76,    44,    45,   651,   116,   552,   553,    83,    84,
    2991     1398,  1075,  1076,   328,   506,   114,   508,  1146,   705,   511,
    2992      554,   555,   514,  1040,   112,  1040,    72,  1322,    74,    75,
    2993      898,  1326,   560,   561,   109,   942,   147,    83,    84,   111,
    2994     1080,   114,   117,   118,   155,  1085,   109,   110,   111,   160,
    2995     1090,   116,  1040,   109,   110,   111,   114,    72,   874,  1099,
    2996      732,    76,   789,   131,   919,   114,   109,  1107,    83,    84,
    2997      110,   112,   799,   110,   185,   186,    72,   112,    74,    75,
    2998     1468,  1469,  1122,   112,   116,   732,   813,    83,    84,   112,
    2999      201,   406,   112,    29,   109,   112,   130,  1040,   209,   109,
    3000      110,   111,   117,   118,  1085,   130,  1146,   218,   130,  1090,
    3001      221,   110,    66,   109,    58,    59,    60,   228,   114,   110,
    3002      114,    75,  1248,  1249,  1250,   112,   115,   110,  1423,  1146,
    3003      115,   115,   243,  1040,  1190,  1191,   247,  1193,   116,   109,
    3004      251,   252,   110,   110,  1200,  1274,  1202,   116,  1188,  1189,
    3005      130,   732,  1207,   132,   265,   266,   116,  1189,   110,  1223,
    3006      110,   272,     1,   117,   110,   110,     3,  1207,   279,   110,
    3007      110,  1211,   110,    10,    11,    12,    13,    14,   110,   110,
    3008      110,   110,   110,  1051,   110,  1225,  1002,   110,   110,  1229,
    3009      110,  1255,   110,    29,  1211,   130,  1211,  1229,   115,  1263,
    3010     1264,  1265,    39,   110,    66,   116,   160,   131,  1225,   112,
    3011       49,     4,     5,     6,     7,     8,     9,   328,   112,   110,
    3012       82,   110,   110,  1211,  1040,  1080,   116,   109,   130,   116,
    3013       67,   114,   112,  1378,  1274,  1275,   110,   348,   349,   110,
    3014       33,  1515,   110,  1283,   116,  1188,  1189,   112,  1288,   896,
    3015      110,   112,   116,   110,   365,   117,   284,   116,   369,   110,
    3016      109,   109,   109,  1327,   109,   109,   105,   221,  1211,   380,
    3017      957,  1288,   130,  1288,   113,   115,    69,   112,    71,   307,
    3018      308,  1321,  1189,   110,   110,   396,  1229,   874,  1505,  1321,
    3019     1017,  1018,   979,   115,  1505,   406,   983,   110,   160,  1505,
    3020     1288,   132,  1358,   128,  1211,   259,   115,   146,   114,   112,
    3021      264,  1505,   132,   424,  1505,  1505,   155,   345,   110,   430,
    3022     1506,   432,  1229,   112,  1505,   279,   116,   112,   110,   110,
    3023       72,   110,    74,    75,    76,   112,  1481,   112,  1378,   112,
    3024     1283,    83,    84,   110,  1530,  1288,  1033,   112,  1075,  1076,
    3025      112,   112,    47,   381,  1394,   115,   467,   110,   132,   221,
    3026      132,   472,    85,    86,    87,   115,   205,   109,   132,   480,
    3027      209,   130,  1188,   484,   132,   117,   118,   488,  1321,  1419,
    3028      491,  1288,   493,     0,     1,   132,   109,  1419,   111,   110,
    3029      113,   114,    85,    86,    87,  1211,   350,   259,   115,   112,
    3030      239,  1441,   264,  1506,   112,   112,   112,   112,  1448,   112,
    3031     1450,   110,  1452,   110,  1321,    32,   109,   528,   111,   109,
    3032      113,   114,   533,   112,  1441,  1505,  1441,  1530,   112,  1297,
    3033     1515,  1448,   271,  1448,   109,   274,   109,  1505,  1505,    60,
    3034      110,  1481,   110,   114,   109,   132,  1486,   110,  1488,    66,
    3035      112,   112,    69,  1441,   112,   294,  1043,   110,    96,  1499,
    3036     1448,    96,   109,   109,   115,  1505,  1506,  1283,   307,   110,
    3037      110,   582,  1288,  1506,   110,  1515,  1419,   431,   589,   110,
    3038      132,    42,  1499,   116,  1499,   130,   110,   110,   350,   600,
    3039     1530,   602,    96,   132,   448,   132,    96,  1530,  1441,   110,
    3040      132,   110,   341,   132,   132,  1448,   345,   110,   110,   115,
    3041      621,  1499,  1419,   112,   112,   109,   132,   132,   115,   473,
    3042      189,   549,   550,   551,  1505,   364,   637,   196,  1255,   368,
    3043      115,   642,   371,   110,  1441,   110,  1263,  1264,  1265,   156,
    3044      651,  1448,   653,   654,   655,   132,   110,    72,   110,    74,
    3045       75,    76,  1056,   666,   562,    66,  1499,   563,    83,    84,
    3046     1207,  1248,  1249,  1250,   564,   566,   977,   565,  1211,   431,
    3047     1469,  1364,  1540,  1298,  1326,  1448,   687,  1071,  1120,   684,
    3048      691,  1449,   693,  1451,   109,  1090,   697,   426,   427,   684,
    3049      912,   697,  1499,   971,   705,  1450,   582,  1452,   648,   268,
    3050     1327,   464,   920,   867,   221,   722,   117,   718,   719,   939,
    3051       -1,   473,  1229,   732,   484,   454,    -1,  1485,    -1,  1487,
    3052       -1,   732,   570,   570,  1211,  1441,    -1,   570,   467,    -1,
     3009     467,   115,   116,   116,   824,   432,   110,    83,    84,  1177,
     3010    1178,    72,   116,    74,    75,   132,   109,  1146,   111,   110,
     3011     114,   669,    83,    84,   907,   116,   622,    72,  1499,   132,
     3012     678,    76,   110,   111,   682,  1445,   132,  1447,    83,    84,
     3013    1115,   809,  1382,   114,  1119,  1120,   110,   789,   846,   684,
     3014     110,   812,   116,   114,   874,   132,   116,   799,  1398,   114,
     3015     109,   528,   111,   824,   109,   109,   533,   111,   903,    58,
     3016      59,   813,   117,   118,   115,   116,   896,   874,   943,   874,
     3017     109,   442,   111,   903,   904,   905,   109,   907,  1035,    72,
     3018    1500,    74,    75,   109,   294,   111,  1225,    44,    45,   919,
     3019      83,    84,   698,   109,   110,   111,   874,   904,    82,     0,
     3020       1,  1020,   932,   933,   109,   582,   712,   937,   109,  1085,
     3021     111,   118,   942,   943,  1090,   109,   109,   111,  1468,  1469,
     3022     942,   114,   109,   910,   999,   912,  1043,   112,    29,    30,
     3023     938,    32,   552,   553,   905,    82,   907,   967,   109,   110,
     3024     111,   874,    43,   556,   557,   558,   559,   127,    49,    72,
     3025    1235,   128,   589,    76,  1481,    94,    57,   554,   555,   621,
     3026      83,    84,    63,  1017,  1018,    66,   937,   131,    69,   999,
     3027     560,   561,  1107,   111,   109,   637,   653,   874,   655,   109,
     3028     112,    82,    83,   112,   621,   112,   109,   112,   110,   651,
     3029    1020,  1021,  1085,   110,   117,   118,   110,  1090,   110,   805,
     3030     637,   110,   110,  1530,  1382,   106,   109,   111,   109,   942,
     3031    1040,   109,   110,   111,   651,   116,   426,   427,   114,   116,
     3032    1398,  1075,  1076,   109,   110,   111,   131,  1146,   705,    58,
     3033      59,    60,   109,  1040,   114,  1040,    72,  1322,    74,    75,
     3034     898,  1326,  1248,  1249,  1250,   942,   147,    83,    84,   114,
     3035    1080,   112,   110,   110,   155,  1085,   112,   112,   112,   160,
     3036    1090,   112,  1040,   130,   130,  1017,  1018,   130,   874,  1099,
     3037     732,   116,    29,   109,   919,   110,   110,  1107,   114,   112,
     3038     110,   112,   114,   130,   185,   186,   284,   115,   115,   115,
     3039    1468,  1469,  1122,   116,  1211,   732,   506,   109,   116,   110,
     3040     201,   511,   110,   110,   514,   110,   110,  1040,   209,   307,
     3041     308,   132,   110,   116,  1085,   110,  1146,   218,   110,  1090,
     3042     221,   110,    66,  1075,  1076,   110,   110,   228,   110,   110,
     3043     110,    75,   110,    72,   110,    74,    75,    76,  1423,  1146,
     3044     110,   110,   243,  1040,    83,    84,   247,   345,   110,   115,
     3045     251,   252,    29,   116,   131,  1274,   110,   567,  1188,  1189,
     3046     110,   732,  1207,   130,   265,   266,   112,  1189,   110,  1223,
     3047     109,   272,     1,   117,    85,    86,    87,  1207,   279,   112,
     3048     110,  1211,   116,   381,   110,   130,   109,  1304,   116,   114,
     3049     112,   110,   110,  1051,   110,  1225,  1002,   112,   109,  1229,
     3050     111,  1255,   113,   114,  1211,   110,  1211,  1229,   116,  1263,
     3051    1264,  1265,   116,   116,    66,   110,   160,   110,  1225,   109,
     3052      49,     4,     5,     6,     7,     8,     9,   328,   112,   109,
     3053      82,   109,   130,  1211,  1040,  1080,   109,   109,   112,  1356,
     3054     132,   128,  1359,  1378,  1274,  1275,   115,   348,   349,    49,
     3055      33,  1515,   110,  1283,   110,  1188,  1189,   110,  1288,   896,
     3056     115,   115,   112,    63,   365,   117,    66,   114,   369,    69,
     3057     132,  1223,   110,  1327,   116,   112,   105,   221,  1211,   380,
     3058     957,  1288,   112,  1288,   113,  1402,    69,   110,    71,   110,
     3059    1407,  1321,  1189,   110,   112,   396,  1229,   112,  1505,  1321,
     3060     112,   110,   979,  1255,  1505,   406,   983,   112,   160,  1505,
     3061    1288,  1263,  1264,  1265,  1211,   259,   112,   146,  1435,   112,
     3062     264,  1505,    47,   424,  1505,  1505,   155,   130,   132,   430,
     3063    1506,   432,  1229,   132,  1505,   279,     4,     5,     6,     7,
     3064       8,     9,   132,   132,   132,   115,  1481,   147,  1378,   110,
     3065    1283,   549,   550,   551,  1530,  1288,  1033,   115,   110,   115,
     3066     160,   112,   112,   112,  1394,   112,   467,   112,   112,   221,
     3067     110,   472,   110,   112,    60,  1327,   205,   112,   109,   480,
     3068     209,   109,  1188,   484,   110,   109,   186,   488,  1321,  1419,
     3069     491,  1288,   493,     0,     1,   110,   114,  1419,   109,   132,
     3070     112,    69,  1519,    71,   112,  1211,   350,   259,  1525,   209,
     3071     239,  1441,   264,  1506,   110,   112,   110,    96,  1448,  1536,
     3072    1450,   221,  1452,  1540,  1321,    32,    96,   528,   109,   109,
     3073     132,   115,   533,   110,  1441,  1505,  1441,  1530,   110,  1297,
     3074    1515,  1448,   271,  1448,   110,   274,   110,  1505,  1505,   116,
     3075      42,  1481,   130,   110,   110,    96,  1486,   132,  1488,    66,
     3076      96,   132,    69,  1441,   110,   294,   110,   132,   110,  1499,
     3077    1448,   132,   132,   110,   112,  1505,  1506,  1283,   307,   112,
     3078     115,   582,  1288,  1506,   132,  1515,  1419,   431,   589,   109,
     3079     115,   115,  1499,   132,  1499,   110,   110,   110,   350,   600,
     3080    1530,   602,   132,  1056,   448,   110,   565,  1530,  1441,   562,
     3081     977,   563,   341,  1211,   564,  1448,   345,   566,  1469,  1540,
     3082     621,  1499,  1419,  1364,  1298,  1120,  1326,  1448,   328,   473,
     3083     189,  1071,   684,   684,  1505,   364,   637,   196,  1090,   368,
     3084     912,   642,   371,   697,  1441,   920,   971,   867,   648,   156,
     3085     651,  1448,   653,   654,   655,   722,  1229,    72,   756,    74,
     3086      75,    76,   582,   939,   484,    66,  1499,   732,    83,    84,
     3087    1207,  1248,  1249,  1250,   570,    -1,   570,   570,    -1,   431,
     3088      -1,    -1,    -1,    -1,    -1,    -1,   687,    -1,   670,    -1,
     3089     691,  1449,   693,  1451,   109,    -1,   697,   426,   427,    -1,
     3090      -1,    -1,  1499,    -1,   705,  1450,   406,  1452,    72,   268,
     3091      74,    75,    76,    -1,   221,    -1,   117,   718,   719,    83,
     3092      84,   473,    -1,    -1,    -1,   454,    -1,  1485,    -1,  1487,
     3093      -1,   732,    -1,    -1,    -1,  1441,    -1,    -1,   467,    -1,
    30533094      -1,  1486,  1448,  1488,   251,    10,    11,    12,    13,    14,
    3054      594,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    72,   160,
     3095     594,    10,    11,    12,    13,    14,    -1,    -1,    72,   160,
    30553096      74,    75,    76,   492,   323,   494,    -1,   496,    -1,    83,
    30563097      84,  1529,   331,  1531,    39,   334,    -1,   506,   622,   508,
    3057       -1,     3,   511,   627,   513,   514,  1544,  1545,    10,    11,
    3058       12,    13,    14,  1499,    -1,   109,   525,   111,    -1,    -1,
    3059       -1,    -1,    67,   117,   118,    -1,    -1,    -1,    -1,  1386,
    3060     1387,   812,    -1,    -1,    -1,  1377,    -1,    39,    -1,    -1,
    3061      221,    -1,    -1,   824,    -1,    -1,    -1,  1304,    -1,    -1,
    3062       -1,    -1,    30,    10,    11,    12,    13,    14,   756,   398,
    3063     1377,    -1,   594,   402,   109,    67,   111,  1424,    -1,   578,
     3098      39,    -1,   511,   627,   513,   514,  1544,  1545,    72,    -1,
     3099      74,    75,    76,  1499,    -1,   109,   525,   111,    -1,    83,
     3100      84,    -1,    67,   117,   118,    -1,    -1,   789,    67,  1386,
     3101    1387,   812,    -1,    -1,    -1,  1377,   130,   799,    -1,    -1,
     3102     221,    -1,    -1,   824,    -1,   109,    72,   111,    74,    75,
     3103      76,   813,    30,   117,   118,    -1,    -1,    83,    84,   398,
     3104    1377,    -1,   594,   402,   109,    -1,   111,  1424,    -1,   578,
    30643105      -1,    -1,   117,   118,   698,    -1,    -1,    -1,   259,    -1,
    3065      589,    -1,    39,   264,    -1,    -1,   867,    -1,   712,    -1,
    3066      622,    -1,   873,    -1,    -1,   627,    -1,    -1,    -1,  1356,
    3067       -1,    -1,  1359,    -1,    82,    83,    -1,    -1,   732,    -1,
    3068       67,   620,    -1,    -1,    -1,   896,   625,    -1,    -1,    -1,
    3069       -1,    -1,   631,    -1,   905,  1482,   907,    72,    -1,    74,
    3070       75,    76,    -1,   914,  1491,    -1,    -1,   670,    83,    84,
    3071      479,    -1,    -1,    -1,    -1,  1402,   433,    -1,    -1,    -1,
    3072     1407,    -1,   109,    -1,   111,     0,   937,    -1,    -1,    -1,
    3073      117,   118,    -1,    -1,   109,    -1,   698,    -1,    -1,   350,
    3074       10,    11,    12,    13,    14,   684,   957,    -1,  1435,    -1,
     3106     589,    -1,    -1,   264,    -1,    -1,   867,    -1,   712,    -1,
     3107     622,    -1,   873,    -1,    -1,   627,    -1,    -1,    -1,    -1,
     3108    1190,  1191,    -1,  1193,    82,    83,    -1,    -1,   732,    -1,
     3109    1200,   620,  1202,    -1,    -1,   896,   625,    -1,    -1,    -1,
     3110      -1,   999,   631,    -1,   905,  1482,   907,    -1,    -1,    -1,
     3111      -1,    -1,    -1,   914,  1491,    10,    11,    12,    13,    14,
     3112     479,    -1,    -1,    -1,    -1,    -1,   433,    -1,    -1,    -1,
     3113      10,    11,    12,    13,    14,     0,   937,    -1,    -1,    -1,
     3114      -1,    -1,  1040,     3,    39,    -1,   698,    -1,    -1,   350,
     3115      10,    11,    12,    13,    14,   684,   957,    -1,    -1,    39,
    30753116     712,   805,    -1,    -1,    -1,    -1,    -1,    32,    -1,    -1,
    3076      971,    -1,    72,    -1,    74,    75,    76,   484,   979,    39,
    3077       -1,    -1,   983,    83,    84,    -1,    72,    -1,    74,    75,
    3078       76,    -1,    -1,   722,    -1,     0,     1,    83,    84,    -1,
    3079       -1,    -1,    -1,    -1,    69,    -1,    -1,    67,    -1,   109,
    3080       -1,   570,   571,    -1,    -1,   744,    -1,   117,   118,   526,
    3081       -1,    -1,    72,    -1,    74,    75,    76,    32,    -1,    -1,
    3082      431,    -1,  1033,    83,    84,    -1,   789,    -1,    -1,    -1,
    3083       -1,    -1,  1519,    -1,    49,   243,   799,    -1,  1525,   109,
    3084       -1,   111,    -1,   805,    -1,    -1,    -1,   117,   118,  1536,
    3085      813,    -1,    -1,  1540,    69,    -1,    -1,    -1,    -1,    -1,
    3086     1071,    -1,   473,    -1,   803,    -1,    -1,    -1,    -1,   808,
    3087       -1,   999,    -1,   590,  1085,    -1,    -1,    -1,    -1,  1090,
    3088       -1,   156,    -1,    72,    -1,    74,    75,    76,   657,    -1,
    3089      105,    -1,   661,    -1,    83,    84,  1107,    -1,    -1,    -1,
    3090       -1,    10,    11,    12,    13,    14,    -1,    -1,    -1,    -1,
    3091       -1,    -1,  1040,    -1,    -1,    -1,    -1,   634,   635,   636,
    3092      109,    -1,   111,    -1,    -1,    -1,    -1,    -1,   117,   118,
    3093       39,    -1,   147,    -1,    -1,   652,    -1,    -1,    -1,    -1,
    3094      155,   156,    -1,    -1,    -1,    -1,    -1,    -1,  1002,    -1,
    3095       -1,    -1,    -1,    -1,    -1,   230,    -1,   896,    67,    -1,
    3096       -1,    -1,    -1,    72,   903,    74,    75,    76,    -1,    -1,
    3097       -1,   186,   380,  1184,    83,    84,   251,    -1,    -1,    -1,
    3098      919,   256,    -1,   594,    -1,    -1,   201,    -1,    -1,   204,
     3117     971,    -1,    67,    -1,    -1,    -1,    -1,   484,   979,    39,
     3118      -1,    -1,   983,    -1,    -1,    -1,    -1,    67,    -1,    -1,
     3119       3,    -1,    -1,   722,    -1,     0,     1,    10,    11,    12,
     3120      13,    14,    -1,    -1,    69,    -1,    -1,    67,    -1,    -1,
     3121      -1,   570,   571,    -1,   109,   744,   111,    -1,    -1,   526,
     3122      -1,    -1,   117,   118,    -1,    -1,    39,    32,    -1,   109,
     3123     431,   111,  1033,    -1,    -1,  1017,  1018,   117,   118,    10,
     3124      11,    12,    13,    14,    49,   243,    -1,    -1,  1358,    85,
     3125      86,    87,    -1,   805,    67,    -1,    -1,    -1,    -1,    -1,
     3126      -1,    -1,    -1,    -1,    69,    -1,    -1,    -1,    39,    -1,
     3127    1071,    -1,   473,   109,   803,   111,    -1,   113,   114,   808,
     3128      -1,    -1,    -1,   590,  1085,    -1,    -1,    -1,    -1,  1090,
     3129      -1,   156,    -1,  1075,  1076,    -1,    67,    -1,   657,    -1,
     3130     105,    72,   661,    74,    75,    76,  1107,    -1,    -1,    -1,
     3131      -1,    -1,    83,    84,    97,    98,    99,   100,   101,   102,
     3132     103,   104,   105,   106,    -1,    -1,    -1,   634,   635,   636,
     3133      -1,    -1,    72,    -1,    74,    75,    76,    -1,   109,    -1,
     3134     111,    -1,   147,    83,    84,   652,   117,   118,   131,    -1,
     3135     155,   156,    72,    -1,    74,    75,    76,    -1,  1002,    -1,
     3136      -1,    -1,    -1,    83,    84,   230,    -1,   896,    -1,   109,
     3137      -1,   111,    -1,    -1,   903,    -1,    -1,   117,   118,    -1,
     3138      -1,   186,   380,  1184,    -1,    -1,   251,    -1,    -1,   109,
     3139     919,   256,    -1,   594,    -1,    -1,   201,   117,   118,   204,
    30993140     205,    -1,    -1,   710,   209,    -1,  1207,    -1,    -1,    -1,
    3100      109,    -1,   941,   942,   943,    -1,    -1,    -1,   117,   118,
     3141      -1,    -1,   941,   942,   943,    -1,    -1,    -1,    -1,    -1,
    31013142      -1,   622,    -1,    -1,    -1,   230,   627,    -1,    -1,   234,
    31023143      -1,   236,    -1,    -1,   793,    -1,    -1,    -1,    -1,    -1,
    31033144     245,    -1,    26,    27,    28,    -1,   251,  1248,  1249,  1250,
    3104     1002,   256,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3105       -1,   266,    -1,    -1,  1017,  1018,    -1,    -1,    -1,   274,
    3106      999,    97,    98,    99,   100,   101,   102,   103,   104,   105,
    3107      106,    10,    11,    12,    13,    14,   351,    72,    -1,    74,
    3108       75,    76,    -1,   491,   801,   493,    -1,   698,    83,    84,
    3109       -1,    -1,   809,    -1,    -1,   131,    -1,    -1,    -1,    -1,
    3110       39,   712,    -1,    -1,    98,    -1,   100,    -1,    -1,    -1,
    3111       -1,    -1,  1075,  1076,   109,    -1,   111,    -1,    -1,    -1,
    3112       -1,    -1,   117,   118,    -1,    -1,   341,    -1,    67,    -1,
    3113      345,   125,    -1,    72,  1188,    -1,   351,    76,    -1,    -1,
    3114       -1,  1080,   911,   418,    83,    84,    -1,    -1,    -1,   364,
     3145    1002,   256,    -1,    72,    -1,    74,    75,    76,    -1,    -1,
     3146      -1,   266,    -1,    -1,    83,    84,    -1,    -1,    -1,   274,
     3147     999,    -1,    -1,  1255,    -1,    -1,    -1,    -1,    -1,    -1,
     3148      -1,  1263,  1264,  1265,    -1,    -1,   351,    -1,    -1,    -1,
     3149     109,    -1,   111,   491,   801,   493,    -1,   698,   117,   118,
     3150      -1,    -1,   809,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3151      -1,   712,    -1,    -1,    98,    -1,   100,    -1,    10,    11,
     3152      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3153      22,    23,    24,    25,    26,    27,   341,    -1,    -1,    -1,
     3154     345,   125,    -1,    -1,  1188,  1327,   351,    39,    -1,    -1,
     3155      -1,  1080,   911,   418,    -1,    -1,    -1,    -1,    -1,   364,
    31153156      -1,    -1,    -1,   368,    -1,    -1,   371,   874,   433,    -1,
    3116       -1,    -1,    -1,   438,    -1,    -1,  1377,  1378,    -1,    -1,
    3117      109,   446,    26,    27,    28,  1386,  1387,    -1,   117,   118,
     3157      -1,    -1,    -1,   438,    -1,    67,  1377,  1378,    -1,    -1,
     3158      -1,   446,    26,    27,    28,  1386,  1387,    -1,    -1,    -1,
    31183159      -1,    -1,    -1,  1122,    -1,    -1,    -1,   181,    -1,   464,
    31193160      -1,    -1,    -1,    -1,   805,   189,    -1,   191,   192,    -1,
     
    31243165      -1,    -1,    -1,    -1,    98,    -1,   100,    -1,    -1,   464,
    31253166      -1,   526,   467,    -1,    32,    -1,    -1,    -1,    -1,    -1,
    3126     1223,    -1,    -1,    -1,    -1,    -1,    -1,   482,  1207,   484,
    3127     1481,  1482,    -1,    -1,   268,    -1,    -1,   492,    -1,    -1,
     3167      -1,    72,    -1,    74,    75,    76,    -1,   482,  1207,   484,
     3168    1481,  1482,    83,    84,   268,    -1,    -1,   492,    -1,    -1,
    31283169    1491,   496,    -1,   691,    -1,   693,    -1,    -1,    -1,   697,
    3129     1229,    69,  1255,    -1,  1505,  1506,    -1,    -1,    -1,    -1,
    3130     1263,  1264,  1265,  1020,  1021,    -1,    -1,    -1,    -1,    -1,
     3170    1229,    69,    -1,    -1,  1505,  1506,    -1,    -1,   109,    -1,
     3171      -1,    -1,    -1,  1020,  1021,    -1,   117,   118,    -1,    -1,
    31313172     525,   526,    -1,    -1,  1083,   590,    -1,    -1,    -1,  1530,
    31323173      -1,  1283,    -1,  1040,    -1,    -1,    -1,   181,    -1,    -1,
     
    31343175      -1,    -1,   196,    -1,   198,   199,    -1,    -1,    -1,    -1,
    31353176      -1,    -1,    -1,    -1,  1123,    -1,   571,    -1,    -1,   634,
    3136      635,   636,    -1,    -1,  1327,    -1,    -1,    -1,    10,    11,
     3177     635,   636,    -1,    -1,    -1,    -1,    -1,    -1,    10,    11,
    31373178      12,    13,    14,    -1,   589,   590,    -1,   652,   156,    -1,
    31383179      -1,    -1,  1321,    -1,    -1,    -1,    -1,   602,    -1,    -1,
     
    31693210      -1,    -1,   907,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    31703211      -1,    -1,  1419,    -1,   482,    -1,   484,    -1,    -1,    -1,
    3171       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   933,    -1,
     3212      -1,    -1,    10,    11,    12,    13,    14,    -1,   933,    -1,
    31723213     574,   575,    -1,    -1,  1441,    -1,   941,   942,    -1,    -1,
    31733214      -1,  1448,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3174       -1,    -1,  1017,  1018,    -1,  1020,  1021,    -1,   526,   603,
     3215      -1,    39,  1017,  1018,    -1,  1020,  1021,    -1,   526,   603,
    31753216      -1,   251,   606,   607,    -1,   609,   256,   611,   612,    -1,
    3176      754,   755,   616,   617,    -1,  1040,    -1,    -1,    -1,    -1,
    3177       -1,    -1,    -1,    -1,    -1,    -1,  1184,    -1,    -1,    -1,
    3178       -1,    -1,  1499,    -1,   999,    -1,    -1,    -1,    -1,    -1,
     3217     754,   755,   616,   617,    -1,  1040,    -1,    -1,    -1,    67,
     3218      -1,    -1,    -1,    -1,    72,    -1,  1184,    -1,    76,    -1,
     3219      -1,    -1,  1499,    -1,   999,    83,    84,    -1,    -1,    -1,
    31793220      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1012,    -1,    -1,
    31803221    1075,  1076,  1017,  1018,    -1,  1020,  1021,    -1,    -1,    -1,
    3181       -1,    -1,   590,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3182       -1,    -1,    -1,    -1,    -1,  1040,    -1,    -1,    -1,    -1,
     3222      -1,   109,   590,    -1,    -1,    -1,    -1,    -1,    -1,   117,
     3223     118,    -1,    -1,    -1,    -1,  1040,    -1,    -1,    -1,    -1,
    31833224      -1,    -1,    -1,    10,    11,    12,    13,    14,    15,    16,
    31843225      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     
    32233264      84,    -1,    -1,  1448,    -1,    -1,    -1,    -1,    -1,  1017,
    32243265    1018,    -1,  1020,  1021,    -1,   745,    -1,    -1,    -1,    -1,
    3225       -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,
     3266      -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,    -1,
    32263267      -1,    -1,  1040,   117,   118,    -1,   380,    -1,    -1,    -1,
    32273268      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     
    32533294      -1,    -1,    -1,   647,    -1,    -1,    -1,    -1,    -1,    -1,
    32543295    1040,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1327,
    3255       -1,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
    3256       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3296      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3297      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    32573298      -1,   634,   635,   636,    -1,  1075,  1076,    -1,    -1,    -1,
    3258       -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   652,
     3299      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   652,
    32593300      -1,    -1,     7,    -1,    -1,    10,    11,    12,    13,    14,
    3260       -1,    -1,    -1,    -1,    -1,    -1,   344,   670,   346,    67,
     3301      -1,    -1,    -1,    -1,    -1,    -1,   344,   670,   346,    -1,
    32613302      -1,    49,    -1,    -1,    -1,    -1,  1394,    -1,   681,   357,
    32623303     358,    -1,    37,    38,    39,    40,    -1,    -1,    66,    -1,
     
    40634104     260,   272,   165,   134,   111,   274,   130,   116,   372,   278,
    40644105     111,   130,   282,    29,   210,   211,   272,   260,   139,   309,
    4065      139,   311,   109,   349,   350,   109,   349,   350,   142,   350,
     4106     139,   311,   109,   349,   350,   109,   349,   350,   141,   350,
    40664107     174,   264,   110,   110,   110,   110,   112,   174,   208,   174,
    40674108     114,   250,   251,   112,   134,   109,   130,   150,   252,   254,
     
    49675008
    49685009/* Line 1806 of yacc.c  */
    4969 #line 300 "parser.yy"
     5010#line 341 "parser.yy"
    49705011    { typedefTable.enterScope(); }
    49715012    break;
     
    49745015
    49755016/* Line 1806 of yacc.c  */
    4976 #line 304 "parser.yy"
     5017#line 345 "parser.yy"
    49775018    { typedefTable.leaveScope(); }
    49785019    break;
     
    49815022
    49825023/* Line 1806 of yacc.c  */
    4983 #line 311 "parser.yy"
     5024#line 352 "parser.yy"
    49845025    { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); }
    49855026    break;
     
    49885029
    49895030/* Line 1806 of yacc.c  */
    4990 #line 312 "parser.yy"
     5031#line 353 "parser.yy"
    49915032    { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); }
    49925033    break;
     
    49955036
    49965037/* Line 1806 of yacc.c  */
    4997 #line 313 "parser.yy"
     5038#line 354 "parser.yy"
    49985039    { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[(1) - (1)].tok) ) ); }
    49995040    break;
     
    50025043
    50035044/* Line 1806 of yacc.c  */
    5004 #line 338 "parser.yy"
     5045#line 379 "parser.yy"
    50055046    { (yyval.constant) = build_constantStr( *(yyvsp[(1) - (1)].str) ); }
    50065047    break;
     
    50095050
    50105051/* Line 1806 of yacc.c  */
    5011 #line 342 "parser.yy"
     5052#line 383 "parser.yy"
    50125053    { (yyval.str) = (yyvsp[(1) - (1)].tok); }
    50135054    break;
     
    50165057
    50175058/* Line 1806 of yacc.c  */
    5018 #line 344 "parser.yy"
     5059#line 385 "parser.yy"
    50195060    {
    50205061                        appendStr( (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].tok) );                                            // append 2nd juxtaposed string to 1st
     
    50275068
    50285069/* Line 1806 of yacc.c  */
    5029 #line 355 "parser.yy"
     5070#line 396 "parser.yy"
    50305071    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
    50315072    break;
     
    50345075
    50355076/* Line 1806 of yacc.c  */
    5036 #line 357 "parser.yy"
     5077#line 398 "parser.yy"
    50375078    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
    50385079    break;
     
    50415082
    50425083/* Line 1806 of yacc.c  */
    5043 #line 359 "parser.yy"
     5084#line 400 "parser.yy"
    50445085    { (yyval.en) = (yyvsp[(2) - (3)].en); }
    50455086    break;
     
    50485089
    50495090/* Line 1806 of yacc.c  */
    5050 #line 361 "parser.yy"
     5091#line 402 "parser.yy"
    50515092    { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[(2) - (3)].sn) ) ); }
    50525093    break;
     
    50555096
    50565097/* Line 1806 of yacc.c  */
    5057 #line 371 "parser.yy"
     5098#line 412 "parser.yy"
    50585099    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ) ); }
    50595100    break;
     
    50625103
    50635104/* Line 1806 of yacc.c  */
    5064 #line 373 "parser.yy"
     5105#line 414 "parser.yy"
    50655106    { (yyval.en) = new ExpressionNode( build_func( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ) ); }
    50665107    break;
     
    50695110
    50705111/* Line 1806 of yacc.c  */
    5071 #line 377 "parser.yy"
     5112#line 418 "parser.yy"
    50725113    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); }
    50735114    break;
     
    50765117
    50775118/* Line 1806 of yacc.c  */
    5078 #line 380 "parser.yy"
     5119#line 421 "parser.yy"
    50795120    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); }
    50805121    break;
     
    50835124
    50845125/* Line 1806 of yacc.c  */
    5085 #line 383 "parser.yy"
     5126#line 424 "parser.yy"
    50865127    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[(1) - (2)].en) ) ); }
    50875128    break;
     
    50905131
    50915132/* Line 1806 of yacc.c  */
    5092 #line 385 "parser.yy"
     5133#line 426 "parser.yy"
    50935134    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[(1) - (2)].en) ) ); }
    50945135    break;
     
    50975138
    50985139/* Line 1806 of yacc.c  */
    5099 #line 387 "parser.yy"
     5140#line 428 "parser.yy"
    51005141    { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ) ); }
    51015142    break;
     
    51045145
    51055146/* Line 1806 of yacc.c  */
    5106 #line 389 "parser.yy"
     5147#line 430 "parser.yy"
    51075148    {
    51085149                        Token fn;
     
    51155156
    51165157/* Line 1806 of yacc.c  */
    5117 #line 399 "parser.yy"
     5158#line 440 "parser.yy"
    51185159    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
    51195160    break;
     
    51225163
    51235164/* Line 1806 of yacc.c  */
    5124 #line 404 "parser.yy"
     5165#line 445 "parser.yy"
    51255166    { (yyval.en) = 0; }
    51265167    break;
     
    51295170
    51305171/* Line 1806 of yacc.c  */
    5131 #line 410 "parser.yy"
     5172#line 451 "parser.yy"
    51325173    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
    51335174    break;
     
    51365177
    51375178/* Line 1806 of yacc.c  */
    5138 #line 415 "parser.yy"
     5179#line 456 "parser.yy"
    51395180    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
    51405181    break;
     
    51435184
    51445185/* Line 1806 of yacc.c  */
    5145 #line 419 "parser.yy"
     5186#line 460 "parser.yy"
    51465187    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); }
    51475188    break;
     
    51505191
    51515192/* Line 1806 of yacc.c  */
    5152 #line 421 "parser.yy"
     5193#line 462 "parser.yy"
    51535194    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); }
    51545195    break;
     
    51575198
    51585199/* Line 1806 of yacc.c  */
    5159 #line 423 "parser.yy"
     5200#line 464 "parser.yy"
    51605201    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); }
    51615202    break;
     
    51645205
    51655206/* Line 1806 of yacc.c  */
    5166 #line 425 "parser.yy"
     5207#line 466 "parser.yy"
    51675208    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); }
    51685209    break;
     
    51715212
    51725213/* Line 1806 of yacc.c  */
    5173 #line 433 "parser.yy"
     5214#line 474 "parser.yy"
    51745215    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    51755216    break;
     
    51785219
    51795220/* Line 1806 of yacc.c  */
    5180 #line 435 "parser.yy"
     5221#line 476 "parser.yy"
    51815222    { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
    51825223    break;
     
    51855226
    51865227/* Line 1806 of yacc.c  */
    5187 #line 437 "parser.yy"
     5228#line 478 "parser.yy"
    51885229    { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); }
    51895230    break;
     
    51925233
    51935234/* Line 1806 of yacc.c  */
    5194 #line 442 "parser.yy"
     5235#line 483 "parser.yy"
    51955236    {
    51965237                        switch ( (yyvsp[(1) - (2)].op) ) {
     
    52105251
    52115252/* Line 1806 of yacc.c  */
    5212 #line 455 "parser.yy"
     5253#line 496 "parser.yy"
    52135254    { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); }
    52145255    break;
     
    52175258
    52185259/* Line 1806 of yacc.c  */
    5219 #line 457 "parser.yy"
     5260#line 498 "parser.yy"
    52205261    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); }
    52215262    break;
     
    52245265
    52255266/* Line 1806 of yacc.c  */
    5226 #line 459 "parser.yy"
     5267#line 500 "parser.yy"
    52275268    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[(2) - (2)].en) ) ); }
    52285269    break;
     
    52315272
    52325273/* Line 1806 of yacc.c  */
    5233 #line 461 "parser.yy"
     5274#line 502 "parser.yy"
    52345275    { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); }
    52355276    break;
     
    52385279
    52395280/* Line 1806 of yacc.c  */
    5240 #line 463 "parser.yy"
     5281#line 504 "parser.yy"
    52415282    { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); }
    52425283    break;
     
    52455286
    52465287/* Line 1806 of yacc.c  */
    5247 #line 465 "parser.yy"
     5288#line 506 "parser.yy"
    52485289    { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); }
    52495290    break;
     
    52525293
    52535294/* Line 1806 of yacc.c  */
    5254 #line 467 "parser.yy"
     5295#line 508 "parser.yy"
    52555296    { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); }
    52565297    break;
     
    52595300
    52605301/* Line 1806 of yacc.c  */
    5261 #line 469 "parser.yy"
     5302#line 510 "parser.yy"
    52625303    { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); }
    52635304    break;
     
    52665307
    52675308/* Line 1806 of yacc.c  */
    5268 #line 471 "parser.yy"
     5309#line 512 "parser.yy"
    52695310    { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); }
    52705311    break;
     
    52735314
    52745315/* Line 1806 of yacc.c  */
    5275 #line 473 "parser.yy"
     5316#line 514 "parser.yy"
    52765317    { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); }
    52775318    break;
     
    52805321
    52815322/* Line 1806 of yacc.c  */
    5282 #line 475 "parser.yy"
     5323#line 516 "parser.yy"
    52835324    { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); }
    52845325    break;
     
    52875328
    52885329/* Line 1806 of yacc.c  */
    5289 #line 481 "parser.yy"
     5330#line 522 "parser.yy"
    52905331    { (yyval.op) = OperKinds::PointTo; }
    52915332    break;
     
    52945335
    52955336/* Line 1806 of yacc.c  */
    5296 #line 482 "parser.yy"
     5337#line 523 "parser.yy"
    52975338    { (yyval.op) = OperKinds::AddressOf; }
    52985339    break;
     
    53015342
    53025343/* Line 1806 of yacc.c  */
    5303 #line 488 "parser.yy"
     5344#line 529 "parser.yy"
    53045345    { (yyval.op) = OperKinds::UnPlus; }
    53055346    break;
     
    53085349
    53095350/* Line 1806 of yacc.c  */
    5310 #line 489 "parser.yy"
     5351#line 530 "parser.yy"
    53115352    { (yyval.op) = OperKinds::UnMinus; }
    53125353    break;
     
    53155356
    53165357/* Line 1806 of yacc.c  */
    5317 #line 490 "parser.yy"
     5358#line 531 "parser.yy"
    53185359    { (yyval.op) = OperKinds::Neg; }
    53195360    break;
     
    53225363
    53235364/* Line 1806 of yacc.c  */
    5324 #line 491 "parser.yy"
     5365#line 532 "parser.yy"
    53255366    { (yyval.op) = OperKinds::BitNeg; }
    53265367    break;
     
    53295370
    53305371/* Line 1806 of yacc.c  */
    5331 #line 497 "parser.yy"
     5372#line 538 "parser.yy"
    53325373    { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }
    53335374    break;
     
    53365377
    53375378/* Line 1806 of yacc.c  */
    5338 #line 499 "parser.yy"
     5379#line 540 "parser.yy"
    53395380    { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }
    53405381    break;
     
    53435384
    53445385/* Line 1806 of yacc.c  */
    5345 #line 505 "parser.yy"
     5386#line 546 "parser.yy"
    53465387    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53475388    break;
     
    53505391
    53515392/* Line 1806 of yacc.c  */
    5352 #line 507 "parser.yy"
     5393#line 548 "parser.yy"
    53535394    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53545395    break;
     
    53575398
    53585399/* Line 1806 of yacc.c  */
    5359 #line 509 "parser.yy"
     5400#line 550 "parser.yy"
    53605401    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53615402    break;
     
    53645405
    53655406/* Line 1806 of yacc.c  */
    5366 #line 515 "parser.yy"
     5407#line 556 "parser.yy"
    53675408    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53685409    break;
     
    53715412
    53725413/* Line 1806 of yacc.c  */
    5373 #line 517 "parser.yy"
     5414#line 558 "parser.yy"
    53745415    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53755416    break;
     
    53785419
    53795420/* Line 1806 of yacc.c  */
    5380 #line 523 "parser.yy"
     5421#line 564 "parser.yy"
    53815422    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53825423    break;
     
    53855426
    53865427/* Line 1806 of yacc.c  */
    5387 #line 525 "parser.yy"
     5428#line 566 "parser.yy"
    53885429    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53895430    break;
     
    53925433
    53935434/* Line 1806 of yacc.c  */
    5394 #line 531 "parser.yy"
     5435#line 572 "parser.yy"
    53955436    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53965437    break;
     
    53995440
    54005441/* Line 1806 of yacc.c  */
    5401 #line 533 "parser.yy"
     5442#line 574 "parser.yy"
    54025443    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54035444    break;
     
    54065447
    54075448/* Line 1806 of yacc.c  */
    5408 #line 535 "parser.yy"
     5449#line 576 "parser.yy"
    54095450    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54105451    break;
     
    54135454
    54145455/* Line 1806 of yacc.c  */
    5415 #line 537 "parser.yy"
     5456#line 578 "parser.yy"
    54165457    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54175458    break;
     
    54205461
    54215462/* Line 1806 of yacc.c  */
    5422 #line 543 "parser.yy"
     5463#line 584 "parser.yy"
    54235464    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54245465    break;
     
    54275468
    54285469/* Line 1806 of yacc.c  */
    5429 #line 545 "parser.yy"
     5470#line 586 "parser.yy"
    54305471    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54315472    break;
     
    54345475
    54355476/* Line 1806 of yacc.c  */
    5436 #line 551 "parser.yy"
     5477#line 592 "parser.yy"
    54375478    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54385479    break;
     
    54415482
    54425483/* Line 1806 of yacc.c  */
    5443 #line 557 "parser.yy"
     5484#line 598 "parser.yy"
    54445485    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54455486    break;
     
    54485489
    54495490/* Line 1806 of yacc.c  */
    5450 #line 563 "parser.yy"
     5491#line 604 "parser.yy"
    54515492    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54525493    break;
     
    54555496
    54565497/* Line 1806 of yacc.c  */
    5457 #line 569 "parser.yy"
     5498#line 610 "parser.yy"
    54585499    { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); }
    54595500    break;
     
    54625503
    54635504/* Line 1806 of yacc.c  */
    5464 #line 575 "parser.yy"
     5505#line 616 "parser.yy"
    54655506    { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); }
    54665507    break;
     
    54695510
    54705511/* Line 1806 of yacc.c  */
    5471 #line 581 "parser.yy"
     5512#line 622 "parser.yy"
    54725513    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
    54735514    break;
     
    54765517
    54775518/* Line 1806 of yacc.c  */
    5478 #line 584 "parser.yy"
     5519#line 625 "parser.yy"
    54795520    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); }
    54805521    break;
     
    54835524
    54845525/* Line 1806 of yacc.c  */
    5485 #line 586 "parser.yy"
     5526#line 627 "parser.yy"
    54865527    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
    54875528    break;
     
    54905531
    54915532/* Line 1806 of yacc.c  */
    5492 #line 597 "parser.yy"
     5533#line 638 "parser.yy"
    54935534    { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54945535    break;
     
    54975538
    54985539/* Line 1806 of yacc.c  */
    5499 #line 599 "parser.yy"
     5540#line 640 "parser.yy"
    55005541    { (yyval.en) = ( (yyvsp[(2) - (2)].en) == 0 ) ? (yyvsp[(1) - (2)].en) : new ExpressionNode( build_binary_ptr( OperKinds::Assign, (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ) ); }
    55015542    break;
     
    55045545
    55055546/* Line 1806 of yacc.c  */
    5506 #line 604 "parser.yy"
     5547#line 645 "parser.yy"
    55075548    { (yyval.en) = nullptr; }
    55085549    break;
     
    55115552
    55125553/* Line 1806 of yacc.c  */
    5513 #line 609 "parser.yy"
     5554#line 650 "parser.yy"
    55145555    { (yyval.op) = OperKinds::Assign; }
    55155556    break;
     
    55185559
    55195560/* Line 1806 of yacc.c  */
    5520 #line 610 "parser.yy"
     5561#line 651 "parser.yy"
    55215562    { (yyval.op) = OperKinds::MulAssn; }
    55225563    break;
     
    55255566
    55265567/* Line 1806 of yacc.c  */
    5527 #line 611 "parser.yy"
     5568#line 652 "parser.yy"
    55285569    { (yyval.op) = OperKinds::DivAssn; }
    55295570    break;
     
    55325573
    55335574/* Line 1806 of yacc.c  */
    5534 #line 612 "parser.yy"
     5575#line 653 "parser.yy"
    55355576    { (yyval.op) = OperKinds::ModAssn; }
    55365577    break;
     
    55395580
    55405581/* Line 1806 of yacc.c  */
    5541 #line 613 "parser.yy"
     5582#line 654 "parser.yy"
    55425583    { (yyval.op) = OperKinds::PlusAssn; }
    55435584    break;
     
    55465587
    55475588/* Line 1806 of yacc.c  */
    5548 #line 614 "parser.yy"
     5589#line 655 "parser.yy"
    55495590    { (yyval.op) = OperKinds::MinusAssn; }
    55505591    break;
     
    55535594
    55545595/* Line 1806 of yacc.c  */
    5555 #line 615 "parser.yy"
     5596#line 656 "parser.yy"
    55565597    { (yyval.op) = OperKinds::LSAssn; }
    55575598    break;
     
    55605601
    55615602/* Line 1806 of yacc.c  */
    5562 #line 616 "parser.yy"
     5603#line 657 "parser.yy"
    55635604    { (yyval.op) = OperKinds::RSAssn; }
    55645605    break;
     
    55675608
    55685609/* Line 1806 of yacc.c  */
    5569 #line 617 "parser.yy"
     5610#line 658 "parser.yy"
    55705611    { (yyval.op) = OperKinds::AndAssn; }
    55715612    break;
     
    55745615
    55755616/* Line 1806 of yacc.c  */
    5576 #line 618 "parser.yy"
     5617#line 659 "parser.yy"
    55775618    { (yyval.op) = OperKinds::ERAssn; }
    55785619    break;
     
    55815622
    55825623/* Line 1806 of yacc.c  */
    5583 #line 619 "parser.yy"
     5624#line 660 "parser.yy"
    55845625    { (yyval.op) = OperKinds::OrAssn; }
    55855626    break;
     
    55885629
    55895630/* Line 1806 of yacc.c  */
    5590 #line 626 "parser.yy"
     5631#line 667 "parser.yy"
    55915632    { (yyval.en) = new ExpressionNode( build_tuple() ); }
    55925633    break;
     
    55955636
    55965637/* Line 1806 of yacc.c  */
    5597 #line 628 "parser.yy"
     5638#line 669 "parser.yy"
    55985639    { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[(3) - (5)].en) ) ); }
    55995640    break;
     
    56025643
    56035644/* Line 1806 of yacc.c  */
    5604 #line 630 "parser.yy"
     5645#line 671 "parser.yy"
    56055646    { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) ) ) ); }
    56065647    break;
     
    56095650
    56105651/* Line 1806 of yacc.c  */
    5611 #line 632 "parser.yy"
     5652#line 673 "parser.yy"
    56125653    { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_last( (yyvsp[(5) - (7)].en) ) ) ); }
    56135654    break;
     
    56165657
    56175658/* Line 1806 of yacc.c  */
    5618 #line 638 "parser.yy"
     5659#line 679 "parser.yy"
    56195660    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
    56205661    break;
     
    56235664
    56245665/* Line 1806 of yacc.c  */
    5625 #line 644 "parser.yy"
     5666#line 685 "parser.yy"
    56265667    { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    56275668    break;
     
    56305671
    56315672/* Line 1806 of yacc.c  */
    5632 #line 649 "parser.yy"
     5673#line 690 "parser.yy"
    56335674    { (yyval.en) = 0; }
    56345675    break;
     
    56375678
    56385679/* Line 1806 of yacc.c  */
    5639 #line 658 "parser.yy"
     5680#line 699 "parser.yy"
    56405681    { (yyval.sn) = (yyvsp[(1) - (1)].sn); }
    56415682    break;
     
    56445685
    56455686/* Line 1806 of yacc.c  */
    5646 #line 665 "parser.yy"
     5687#line 706 "parser.yy"
    56475688    {
    56485689                        Token fn;
     
    56555696
    56565697/* Line 1806 of yacc.c  */
    5657 #line 675 "parser.yy"
     5698#line 716 "parser.yy"
    56585699    {
    56595700                        (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) );
     
    56645705
    56655706/* Line 1806 of yacc.c  */
    5666 #line 682 "parser.yy"
     5707#line 723 "parser.yy"
    56675708    { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) ); }
    56685709    break;
     
    56715712
    56725713/* Line 1806 of yacc.c  */
    5673 #line 689 "parser.yy"
     5714#line 730 "parser.yy"
    56745715    { (yyval.sn) = new StatementNode( build_compound( (yyvsp[(5) - (7)].sn) ) ); }
    56755716    break;
     
    56785719
    56795720/* Line 1806 of yacc.c  */
    5680 #line 695 "parser.yy"
     5721#line 736 "parser.yy"
    56815722    { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
    56825723    break;
     
    56855726
    56865727/* Line 1806 of yacc.c  */
    5687 #line 700 "parser.yy"
     5728#line 741 "parser.yy"
    56885729    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    56895730    break;
     
    56925733
    56935734/* Line 1806 of yacc.c  */
    5694 #line 702 "parser.yy"
     5735#line 743 "parser.yy"
    56955736    {   // mark all fields in list
    56965737                        for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     
    57035744
    57045745/* Line 1806 of yacc.c  */
    5705 #line 708 "parser.yy"
     5746#line 749 "parser.yy"
    57065747    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    57075748    break;
     
    57105751
    57115752/* Line 1806 of yacc.c  */
    5712 #line 715 "parser.yy"
     5753#line 756 "parser.yy"
    57135754    { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
    57145755    break;
     
    57175758
    57185759/* Line 1806 of yacc.c  */
    5719 #line 720 "parser.yy"
     5760#line 761 "parser.yy"
    57205761    { (yyval.sn) = new StatementNode( build_expr( (yyvsp[(1) - (2)].en) ) ); }
    57215762    break;
     
    57245765
    57255766/* Line 1806 of yacc.c  */
    5726 #line 726 "parser.yy"
     5767#line 767 "parser.yy"
    57275768    { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); }
    57285769    break;
     
    57315772
    57325773/* Line 1806 of yacc.c  */
    5733 #line 728 "parser.yy"
     5774#line 769 "parser.yy"
    57345775    { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); }
    57355776    break;
     
    57385779
    57395780/* Line 1806 of yacc.c  */
    5740 #line 730 "parser.yy"
     5781#line 771 "parser.yy"
    57415782    { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    57425783    break;
     
    57455786
    57465787/* Line 1806 of yacc.c  */
    5747 #line 732 "parser.yy"
     5788#line 773 "parser.yy"
    57485789    {
    57495790                        StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
     
    57605801
    57615802/* Line 1806 of yacc.c  */
    5762 #line 742 "parser.yy"
     5803#line 783 "parser.yy"
    57635804    { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    57645805    break;
     
    57675808
    57685809/* Line 1806 of yacc.c  */
    5769 #line 744 "parser.yy"
     5810#line 785 "parser.yy"
    57705811    {
    57715812                        StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
     
    57775818
    57785819/* Line 1806 of yacc.c  */
    5779 #line 754 "parser.yy"
     5820#line 795 "parser.yy"
    57805821    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    57815822    break;
     
    57845825
    57855826/* Line 1806 of yacc.c  */
    5786 #line 756 "parser.yy"
     5827#line 797 "parser.yy"
    57875828    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    57885829    break;
     
    57915832
    57925833/* Line 1806 of yacc.c  */
    5793 #line 761 "parser.yy"
     5834#line 802 "parser.yy"
    57945835    { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); }
    57955836    break;
     
    57985839
    57995840/* Line 1806 of yacc.c  */
    5800 #line 763 "parser.yy"
     5841#line 804 "parser.yy"
    58015842    { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_last( new StatementNode( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); }
    58025843    break;
     
    58055846
    58065847/* Line 1806 of yacc.c  */
    5807 #line 767 "parser.yy"
     5848#line 808 "parser.yy"
    58085849    { (yyval.sn) = (yyvsp[(2) - (3)].sn); }
    58095850    break;
     
    58125853
    58135854/* Line 1806 of yacc.c  */
    5814 #line 768 "parser.yy"
     5855#line 809 "parser.yy"
    58155856    { (yyval.sn) = new StatementNode( build_default() ); }
    58165857    break;
     
    58195860
    58205861/* Line 1806 of yacc.c  */
    5821 #line 774 "parser.yy"
     5862#line 815 "parser.yy"
    58225863    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) )); }
    58235864    break;
     
    58265867
    58275868/* Line 1806 of yacc.c  */
    5828 #line 778 "parser.yy"
     5869#line 819 "parser.yy"
    58295870    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
    58305871    break;
     
    58335874
    58345875/* Line 1806 of yacc.c  */
    5835 #line 783 "parser.yy"
     5876#line 824 "parser.yy"
    58365877    { (yyval.sn) = 0; }
    58375878    break;
     
    58405881
    58415882/* Line 1806 of yacc.c  */
    5842 #line 789 "parser.yy"
     5883#line 830 "parser.yy"
    58435884    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
    58445885    break;
     
    58475888
    58485889/* Line 1806 of yacc.c  */
    5849 #line 791 "parser.yy"
     5890#line 832 "parser.yy"
    58505891    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(3) - (3)].sn) ) ) ) ) ); }
    58515892    break;
     
    58545895
    58555896/* Line 1806 of yacc.c  */
    5856 #line 796 "parser.yy"
     5897#line 837 "parser.yy"
    58575898    { (yyval.sn) = 0; }
    58585899    break;
     
    58615902
    58625903/* Line 1806 of yacc.c  */
    5863 #line 802 "parser.yy"
     5904#line 843 "parser.yy"
    58645905    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    58655906    break;
     
    58685909
    58695910/* Line 1806 of yacc.c  */
    5870 #line 804 "parser.yy"
     5911#line 845 "parser.yy"
    58715912    { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(2) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ) ) ) ); }
    58725913    break;
     
    58755916
    58765917/* Line 1806 of yacc.c  */
    5877 #line 806 "parser.yy"
     5918#line 847 "parser.yy"
    58785919    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
    58795920    break;
     
    58825923
    58835924/* Line 1806 of yacc.c  */
    5884 #line 808 "parser.yy"
     5925#line 849 "parser.yy"
    58855926    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_last( (yyvsp[(2) - (4)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(3) - (4)].sn)->set_last( (yyvsp[(4) - (4)].sn) ) ) ) ) ) ); }
    58865927    break;
     
    58895930
    58905931/* Line 1806 of yacc.c  */
    5891 #line 813 "parser.yy"
     5932#line 854 "parser.yy"
    58925933    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
    58935934    break;
     
    58965937
    58975938/* Line 1806 of yacc.c  */
    5898 #line 819 "parser.yy"
     5939#line 860 "parser.yy"
    58995940    { (yyval.sn) = 0; }
    59005941    break;
     
    59035944
    59045945/* Line 1806 of yacc.c  */
    5905 #line 821 "parser.yy"
     5946#line 862 "parser.yy"
    59065947    { (yyval.sn) = 0; }
    59075948    break;
     
    59105951
    59115952/* Line 1806 of yacc.c  */
    5912 #line 826 "parser.yy"
     5953#line 867 "parser.yy"
    59135954    { (yyval.sn) = new StatementNode( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    59145955    break;
     
    59175958
    59185959/* Line 1806 of yacc.c  */
    5919 #line 828 "parser.yy"
     5960#line 869 "parser.yy"
    59205961    { (yyval.sn) = new StatementNode( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ) ); }
    59215962    break;
     
    59245965
    59255966/* Line 1806 of yacc.c  */
    5926 #line 830 "parser.yy"
     5967#line 871 "parser.yy"
    59275968    { (yyval.sn) = new StatementNode( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); }
    59285969    break;
     
    59315972
    59325973/* Line 1806 of yacc.c  */
    5933 #line 835 "parser.yy"
     5974#line 876 "parser.yy"
    59345975    { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
    59355976    break;
     
    59385979
    59395980/* Line 1806 of yacc.c  */
    5940 #line 837 "parser.yy"
     5981#line 878 "parser.yy"
    59415982    { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
    59425983    break;
     
    59455986
    59465987/* Line 1806 of yacc.c  */
    5947 #line 842 "parser.yy"
     5988#line 883 "parser.yy"
    59485989    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); }
    59495990    break;
     
    59525993
    59535994/* Line 1806 of yacc.c  */
    5954 #line 846 "parser.yy"
     5995#line 887 "parser.yy"
    59555996    { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); }
    59565997    break;
     
    59596000
    59606001/* Line 1806 of yacc.c  */
    5961 #line 849 "parser.yy"
     6002#line 890 "parser.yy"
    59626003    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Continue ) ); }
    59636004    break;
     
    59666007
    59676008/* Line 1806 of yacc.c  */
    5968 #line 853 "parser.yy"
     6009#line 894 "parser.yy"
    59696010    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); }
    59706011    break;
     
    59736014
    59746015/* Line 1806 of yacc.c  */
    5975 #line 856 "parser.yy"
     6016#line 897 "parser.yy"
    59766017    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
    59776018    break;
     
    59806021
    59816022/* Line 1806 of yacc.c  */
    5982 #line 860 "parser.yy"
     6023#line 901 "parser.yy"
    59836024    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); }
    59846025    break;
     
    59876028
    59886029/* Line 1806 of yacc.c  */
    5989 #line 862 "parser.yy"
     6030#line 903 "parser.yy"
    59906031    { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); }
    59916032    break;
     
    59946035
    59956036/* Line 1806 of yacc.c  */
    5996 #line 864 "parser.yy"
     6037#line 905 "parser.yy"
    59976038    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
    59986039    break;
     
    60016042
    60026043/* Line 1806 of yacc.c  */
    6003 #line 866 "parser.yy"
     6044#line 907 "parser.yy"
    60046045    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
    60056046    break;
     
    60086049
    60096050/* Line 1806 of yacc.c  */
    6010 #line 868 "parser.yy"
     6051#line 909 "parser.yy"
    60116052    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (5)].en) ) ); }
    60126053    break;
     
    60156056
    60166057/* Line 1806 of yacc.c  */
    6017 #line 873 "parser.yy"
     6058#line 914 "parser.yy"
    60186059    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0 ) ); }
    60196060    break;
     
    60226063
    60236064/* Line 1806 of yacc.c  */
    6024 #line 875 "parser.yy"
     6065#line 916 "parser.yy"
    60256066    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn) ) ); }
    60266067    break;
     
    60296070
    60306071/* Line 1806 of yacc.c  */
    6031 #line 877 "parser.yy"
     6072#line 918 "parser.yy"
    60326073    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (4)].sn), (yyvsp[(3) - (4)].sn), (yyvsp[(4) - (4)].sn) ) ); }
    60336074    break;
     
    60366077
    60376078/* Line 1806 of yacc.c  */
    6038 #line 884 "parser.yy"
     6079#line 925 "parser.yy"
    60396080    { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
    60406081    break;
     
    60436084
    60446085/* Line 1806 of yacc.c  */
    6045 #line 886 "parser.yy"
     6086#line 927 "parser.yy"
    60466087    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
    60476088    break;
     
    60506091
    60516092/* Line 1806 of yacc.c  */
    6052 #line 888 "parser.yy"
     6093#line 929 "parser.yy"
    60536094    { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
    60546095    break;
     
    60576098
    60586099/* Line 1806 of yacc.c  */
    6059 #line 890 "parser.yy"
     6100#line 931 "parser.yy"
    60606101    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
    60616102    break;
     
    60646105
    60656106/* Line 1806 of yacc.c  */
    6066 #line 895 "parser.yy"
     6107#line 936 "parser.yy"
    60676108    { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
    60686109    break;
     
    60716112
    60726113/* Line 1806 of yacc.c  */
    6073 #line 897 "parser.yy"
     6114#line 938 "parser.yy"
    60746115    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
    60756116    break;
     
    60786119
    60796120/* Line 1806 of yacc.c  */
    6080 #line 899 "parser.yy"
     6121#line 940 "parser.yy"
    60816122    { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
    60826123    break;
     
    60856126
    60866127/* Line 1806 of yacc.c  */
    6087 #line 901 "parser.yy"
     6128#line 942 "parser.yy"
    60886129    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
    60896130    break;
     
    60926133
    60936134/* Line 1806 of yacc.c  */
    6094 #line 906 "parser.yy"
     6135#line 947 "parser.yy"
    60956136    {
    60966137                        (yyval.sn) = new StatementNode( build_finally( (yyvsp[(2) - (2)].sn) ) );
     
    61016142
    61026143/* Line 1806 of yacc.c  */
    6103 #line 919 "parser.yy"
     6144#line 960 "parser.yy"
    61046145    {
    61056146                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    61116152
    61126153/* Line 1806 of yacc.c  */
    6113 #line 924 "parser.yy"
     6154#line 965 "parser.yy"
    61146155    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    61156156    break;
     
    61186159
    61196160/* Line 1806 of yacc.c  */
    6120 #line 926 "parser.yy"
     6161#line 967 "parser.yy"
    61216162    {
    61226163                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    61286169
    61296170/* Line 1806 of yacc.c  */
    6130 #line 935 "parser.yy"
     6171#line 976 "parser.yy"
    61316172    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ) ); }
    61326173    break;
     
    61356176
    61366177/* Line 1806 of yacc.c  */
    6137 #line 937 "parser.yy"
     6178#line 978 "parser.yy"
    61386179    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ) ); }
    61396180    break;
     
    61426183
    61436184/* Line 1806 of yacc.c  */
    6144 #line 939 "parser.yy"
     6185#line 980 "parser.yy"
    61456186    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ) ); }
    61466187    break;
     
    61496190
    61506191/* Line 1806 of yacc.c  */
    6151 #line 941 "parser.yy"
     6192#line 982 "parser.yy"
    61526193    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].en) ) ); }
    61536194    break;
     
    61566197
    61576198/* Line 1806 of yacc.c  */
    6158 #line 943 "parser.yy"
     6199#line 984 "parser.yy"
    61596200    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].en), (yyvsp[(12) - (14)].label) ) ); }
    61606201    break;
     
    61636204
    61646205/* Line 1806 of yacc.c  */
    6165 #line 948 "parser.yy"
     6206#line 989 "parser.yy"
    61666207    { (yyval.flag) = false; }
    61676208    break;
     
    61706211
    61716212/* Line 1806 of yacc.c  */
    6172 #line 950 "parser.yy"
     6213#line 991 "parser.yy"
    61736214    { (yyval.flag) = true; }
    61746215    break;
     
    61776218
    61786219/* Line 1806 of yacc.c  */
    6179 #line 955 "parser.yy"
     6220#line 996 "parser.yy"
    61806221    { (yyval.en) = 0; }
    61816222    break;
     
    61846225
    61856226/* Line 1806 of yacc.c  */
    6186 #line 962 "parser.yy"
     6227#line 1003 "parser.yy"
    61876228    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
    61886229    break;
     
    61916232
    61926233/* Line 1806 of yacc.c  */
    6193 #line 967 "parser.yy"
     6234#line 1008 "parser.yy"
    61946235    { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); }
    61956236    break;
     
    61986239
    61996240/* Line 1806 of yacc.c  */
    6200 #line 969 "parser.yy"
     6241#line 1010 "parser.yy"
    62016242    { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); }
    62026243    break;
     
    62056246
    62066247/* Line 1806 of yacc.c  */
    6207 #line 974 "parser.yy"
     6248#line 1015 "parser.yy"
    62086249    { (yyval.en) = 0; }
    62096250    break;
     
    62126253
    62136254/* Line 1806 of yacc.c  */
    6214 #line 976 "parser.yy"
     6255#line 1017 "parser.yy"
    62156256    { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
    62166257    break;
     
    62196260
    62206261/* Line 1806 of yacc.c  */
    6221 #line 978 "parser.yy"
     6262#line 1019 "parser.yy"
    62226263    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); }
    62236264    break;
     
    62266267
    62276268/* Line 1806 of yacc.c  */
    6228 #line 983 "parser.yy"
     6269#line 1024 "parser.yy"
    62296270    {
    62306271                        (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[(1) - (1)].tok) );
     
    62366277
    62376278/* Line 1806 of yacc.c  */
    6238 #line 988 "parser.yy"
     6279#line 1029 "parser.yy"
    62396280    {
    62406281                        (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->labels.push_back( *(yyvsp[(3) - (3)].tok) );
     
    62466287
    62476288/* Line 1806 of yacc.c  */
    6248 #line 998 "parser.yy"
     6289#line 1039 "parser.yy"
    62496290    { (yyval.decl) = 0; }
    62506291    break;
     
    62536294
    62546295/* Line 1806 of yacc.c  */
    6255 #line 1005 "parser.yy"
     6296#line 1046 "parser.yy"
    62566297    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    62576298    break;
     
    62606301
    62616302/* Line 1806 of yacc.c  */
    6262 #line 1010 "parser.yy"
     6303#line 1051 "parser.yy"
    62636304    { (yyval.decl) = 0; }
    62646305    break;
     
    62676308
    62686309/* Line 1806 of yacc.c  */
    6269 #line 1017 "parser.yy"
     6310#line 1058 "parser.yy"
    62706311    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    62716312    break;
     
    62746315
    62756316/* Line 1806 of yacc.c  */
    6276 #line 1031 "parser.yy"
     6317#line 1072 "parser.yy"
    62776318    {}
    62786319    break;
     
    62816322
    62826323/* Line 1806 of yacc.c  */
    6283 #line 1032 "parser.yy"
     6324#line 1073 "parser.yy"
    62846325    {}
    62856326    break;
     
    62886329
    62896330/* Line 1806 of yacc.c  */
    6290 #line 1061 "parser.yy"
     6331#line 1102 "parser.yy"
    62916332    {
    62926333                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    62986339
    62996340/* Line 1806 of yacc.c  */
    6300 #line 1068 "parser.yy"
     6341#line 1109 "parser.yy"
    63016342    {
    63026343                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63086349
    63096350/* Line 1806 of yacc.c  */
    6310 #line 1073 "parser.yy"
     6351#line 1114 "parser.yy"
    63116352    {
    63126353                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID );
     
    63186359
    63196360/* Line 1806 of yacc.c  */
    6320 #line 1083 "parser.yy"
     6361#line 1124 "parser.yy"
    63216362    {
    63226363                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    63286369
    63296370/* Line 1806 of yacc.c  */
    6330 #line 1088 "parser.yy"
     6371#line 1129 "parser.yy"
    63316372    {
    63326373                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    63386379
    63396380/* Line 1806 of yacc.c  */
    6340 #line 1093 "parser.yy"
     6381#line 1134 "parser.yy"
    63416382    {
    63426383                        typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) );
     
    63486389
    63496390/* Line 1806 of yacc.c  */
    6350 #line 1101 "parser.yy"
     6391#line 1142 "parser.yy"
    63516392    {
    63526393                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63586399
    63596400/* Line 1806 of yacc.c  */
    6360 #line 1106 "parser.yy"
     6401#line 1147 "parser.yy"
    63616402    {
    63626403                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63686409
    63696410/* Line 1806 of yacc.c  */
    6370 #line 1111 "parser.yy"
     6411#line 1152 "parser.yy"
    63716412    {
    63726413                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63786419
    63796420/* Line 1806 of yacc.c  */
    6380 #line 1116 "parser.yy"
     6421#line 1157 "parser.yy"
    63816422    {
    63826423                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63886429
    63896430/* Line 1806 of yacc.c  */
    6390 #line 1121 "parser.yy"
     6431#line 1162 "parser.yy"
    63916432    {
    63926433                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    63986439
    63996440/* Line 1806 of yacc.c  */
    6400 #line 1129 "parser.yy"
     6441#line 1170 "parser.yy"
    64016442    {
    64026443                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true );
     
    64076448
    64086449/* Line 1806 of yacc.c  */
    6409 #line 1152 "parser.yy"
     6450#line 1193 "parser.yy"
    64106451    {
    64116452                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    64166457
    64176458/* Line 1806 of yacc.c  */
    6418 #line 1156 "parser.yy"
     6459#line 1197 "parser.yy"
    64196460    {
    64206461                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    64256466
    64266467/* Line 1806 of yacc.c  */
    6427 #line 1163 "parser.yy"
     6468#line 1204 "parser.yy"
    64286469    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    64296470    break;
     
    64326473
    64336474/* Line 1806 of yacc.c  */
    6434 #line 1167 "parser.yy"
     6475#line 1208 "parser.yy"
    64356476    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
    64366477    break;
     
    64396480
    64406481/* Line 1806 of yacc.c  */
    6441 #line 1172 "parser.yy"
     6482#line 1213 "parser.yy"
    64426483    {
    64436484                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64496490
    64506491/* Line 1806 of yacc.c  */
    6451 #line 1177 "parser.yy"
     6492#line 1218 "parser.yy"
    64526493    {
    64536494                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64596500
    64606501/* Line 1806 of yacc.c  */
    6461 #line 1182 "parser.yy"
     6502#line 1223 "parser.yy"
    64626503    {
    64636504                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD );
     
    64696510
    64706511/* Line 1806 of yacc.c  */
    6471 #line 1193 "parser.yy"
     6512#line 1234 "parser.yy"
    64726513    {
    64736514                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64796520
    64806521/* Line 1806 of yacc.c  */
    6481 #line 1198 "parser.yy"
     6522#line 1239 "parser.yy"
    64826523    {
    64836524                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64896530
    64906531/* Line 1806 of yacc.c  */
    6491 #line 1203 "parser.yy"
     6532#line 1244 "parser.yy"
    64926533    {
    64936534                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64996540
    65006541/* Line 1806 of yacc.c  */
    6501 #line 1208 "parser.yy"
     6542#line 1249 "parser.yy"
    65026543    {
    65036544                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65096550
    65106551/* Line 1806 of yacc.c  */
    6511 #line 1213 "parser.yy"
     6552#line 1254 "parser.yy"
    65126553    {
    65136554                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65196560
    65206561/* Line 1806 of yacc.c  */
    6521 #line 1222 "parser.yy"
     6562#line 1263 "parser.yy"
    65226563    {
    65236564                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD );
     
    65296570
    65306571/* Line 1806 of yacc.c  */
    6531 #line 1227 "parser.yy"
     6572#line 1268 "parser.yy"
    65326573    {
    65336574                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD );
     
    65396580
    65406581/* Line 1806 of yacc.c  */
    6541 #line 1244 "parser.yy"
     6582#line 1285 "parser.yy"
    65426583    {
    65436584                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    65496590
    65506591/* Line 1806 of yacc.c  */
    6551 #line 1249 "parser.yy"
     6592#line 1290 "parser.yy"
    65526593    {
    65536594                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    65596600
    65606601/* Line 1806 of yacc.c  */
    6561 #line 1271 "parser.yy"
     6602#line 1312 "parser.yy"
    65626603    { (yyval.decl) = 0; }
    65636604    break;
     
    65666607
    65676608/* Line 1806 of yacc.c  */
    6568 #line 1283 "parser.yy"
     6609#line 1324 "parser.yy"
    65696610    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    65706611    break;
     
    65736614
    65746615/* Line 1806 of yacc.c  */
    6575 #line 1294 "parser.yy"
     6616#line 1335 "parser.yy"
    65766617    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
    65776618    break;
     
    65806621
    65816622/* Line 1806 of yacc.c  */
    6582 #line 1296 "parser.yy"
     6623#line 1337 "parser.yy"
    65836624    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
    65846625    break;
     
    65876628
    65886629/* Line 1806 of yacc.c  */
    6589 #line 1298 "parser.yy"
     6630#line 1339 "parser.yy"
    65906631    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
    65916632    break;
     
    65946635
    65956636/* Line 1806 of yacc.c  */
    6596 #line 1300 "parser.yy"
     6637#line 1341 "parser.yy"
    65976638    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
    65986639    break;
     
    66016642
    66026643/* Line 1806 of yacc.c  */
    6603 #line 1302 "parser.yy"
     6644#line 1343 "parser.yy"
    66046645    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
    66056646    break;
     
    66086649
    66096650/* Line 1806 of yacc.c  */
    6610 #line 1304 "parser.yy"
     6651#line 1345 "parser.yy"
    66116652    {
    66126653                        typedefTable.enterScope();
     
    66176658
    66186659/* Line 1806 of yacc.c  */
    6619 #line 1308 "parser.yy"
     6660#line 1349 "parser.yy"
    66206661    {
    66216662                        typedefTable.leaveScope();
     
    66276668
    66286669/* Line 1806 of yacc.c  */
    6629 #line 1317 "parser.yy"
     6670#line 1358 "parser.yy"
    66306671    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    66316672    break;
     
    66346675
    66356676/* Line 1806 of yacc.c  */
    6636 #line 1319 "parser.yy"
     6677#line 1360 "parser.yy"
    66376678    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    66386679    break;
     
    66416682
    66426683/* Line 1806 of yacc.c  */
    6643 #line 1330 "parser.yy"
     6684#line 1371 "parser.yy"
    66446685    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    66456686    break;
     
    66486689
    66496690/* Line 1806 of yacc.c  */
    6650 #line 1335 "parser.yy"
     6691#line 1376 "parser.yy"
    66516692    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
    66526693    break;
     
    66556696
    66566697/* Line 1806 of yacc.c  */
    6657 #line 1337 "parser.yy"
     6698#line 1378 "parser.yy"
    66586699    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
    66596700    break;
     
    66626703
    66636704/* Line 1806 of yacc.c  */
    6664 #line 1339 "parser.yy"
     6705#line 1380 "parser.yy"
    66656706    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
    66666707    break;
     
    66696710
    66706711/* Line 1806 of yacc.c  */
    6671 #line 1341 "parser.yy"
     6712#line 1382 "parser.yy"
    66726713    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
    66736714    break;
     
    66766717
    66776718/* Line 1806 of yacc.c  */
    6678 #line 1344 "parser.yy"
    6679     { (yyval.decl) = new DeclarationNode; (yyval.decl)->isInline = true; }
     6719#line 1384 "parser.yy"
     6720    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); }
    66806721    break;
    66816722
     
    66836724
    66846725/* Line 1806 of yacc.c  */
    6685 #line 1346 "parser.yy"
     6726#line 1386 "parser.yy"
    66866727    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
    66876728    break;
     
    66906731
    66916732/* Line 1806 of yacc.c  */
    6692 #line 1349 "parser.yy"
    6693     { (yyval.decl) = new DeclarationNode; (yyval.decl)->isNoreturn = true; }
     6733#line 1388 "parser.yy"
     6734    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); }
    66946735    break;
    66956736
     
    66976738
    66986739/* Line 1806 of yacc.c  */
    6699 #line 1351 "parser.yy"
     6740#line 1390 "parser.yy"
    67006741    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
    67016742    break;
     
    67046745
    67056746/* Line 1806 of yacc.c  */
    6706 #line 1356 "parser.yy"
     6747#line 1395 "parser.yy"
    67076748    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
    67086749    break;
     
    67116752
    67126753/* Line 1806 of yacc.c  */
    6713 #line 1358 "parser.yy"
     6754#line 1397 "parser.yy"
    67146755    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
    67156756    break;
     
    67186759
    67196760/* Line 1806 of yacc.c  */
    6720 #line 1360 "parser.yy"
     6761#line 1399 "parser.yy"
    67216762    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
    67226763    break;
     
    67256766
    67266767/* Line 1806 of yacc.c  */
    6727 #line 1362 "parser.yy"
     6768#line 1401 "parser.yy"
    67286769    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
    67296770    break;
     
    67326773
    67336774/* Line 1806 of yacc.c  */
    6734 #line 1364 "parser.yy"
     6775#line 1403 "parser.yy"
    67356776    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); }
    67366777    break;
     
    67396780
    67406781/* Line 1806 of yacc.c  */
    6741 #line 1366 "parser.yy"
     6782#line 1405 "parser.yy"
    67426783    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); }
    67436784    break;
     
    67466787
    67476788/* Line 1806 of yacc.c  */
    6748 #line 1368 "parser.yy"
     6789#line 1407 "parser.yy"
    67496790    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); }
    67506791    break;
     
    67536794
    67546795/* Line 1806 of yacc.c  */
    6755 #line 1370 "parser.yy"
     6796#line 1409 "parser.yy"
    67566797    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); }
    67576798    break;
     
    67606801
    67616802/* Line 1806 of yacc.c  */
    6762 #line 1372 "parser.yy"
     6803#line 1411 "parser.yy"
    67636804    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
    67646805    break;
     
    67676808
    67686809/* Line 1806 of yacc.c  */
    6769 #line 1374 "parser.yy"
     6810#line 1413 "parser.yy"
    67706811    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
    67716812    break;
     
    67746815
    67756816/* Line 1806 of yacc.c  */
    6776 #line 1376 "parser.yy"
     6817#line 1415 "parser.yy"
    67776818    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); }
    67786819    break;
     
    67816822
    67826823/* Line 1806 of yacc.c  */
    6783 #line 1378 "parser.yy"
     6824#line 1417 "parser.yy"
    67846825    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); }
    67856826    break;
     
    67886829
    67896830/* Line 1806 of yacc.c  */
    6790 #line 1380 "parser.yy"
     6831#line 1419 "parser.yy"
    67916832    { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
    67926833    break;
     
    67956836
    67966837/* Line 1806 of yacc.c  */
    6797 #line 1387 "parser.yy"
     6838#line 1426 "parser.yy"
    67986839    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    67996840    break;
     
    68026843
    68036844/* Line 1806 of yacc.c  */
    6804 #line 1389 "parser.yy"
     6845#line 1428 "parser.yy"
    68056846    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68066847    break;
     
    68096850
    68106851/* Line 1806 of yacc.c  */
    6811 #line 1391 "parser.yy"
     6852#line 1430 "parser.yy"
    68126853    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    68136854    break;
     
    68166857
    68176858/* Line 1806 of yacc.c  */
    6818 #line 1393 "parser.yy"
     6859#line 1432 "parser.yy"
    68196860    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
    68206861    break;
     
    68236864
    68246865/* Line 1806 of yacc.c  */
    6825 #line 1399 "parser.yy"
     6866#line 1438 "parser.yy"
    68266867    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    68276868    break;
    68286869
    68296870  case 339:
    6830 
    6831 /* Line 1806 of yacc.c  */
    6832 #line 1406 "parser.yy"
    6833     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    6834     break;
    6835 
    6836   case 340:
    6837 
    6838 /* Line 1806 of yacc.c  */
    6839 #line 1408 "parser.yy"
    6840     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    6841     break;
    6842 
    6843   case 341:
    6844 
    6845 /* Line 1806 of yacc.c  */
    6846 #line 1410 "parser.yy"
    6847     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
    6848     break;
    6849 
    6850   case 342:
    6851 
    6852 /* Line 1806 of yacc.c  */
    6853 #line 1415 "parser.yy"
    6854     { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
    6855     break;
    6856 
    6857   case 343:
    6858 
    6859 /* Line 1806 of yacc.c  */
    6860 #line 1417 "parser.yy"
    6861     { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
    6862     break;
    6863 
    6864   case 344:
    6865 
    6866 /* Line 1806 of yacc.c  */
    6867 #line 1419 "parser.yy"
    6868     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
    6869     break;
    6870 
    6871   case 345:
    6872 
    6873 /* Line 1806 of yacc.c  */
    6874 #line 1421 "parser.yy"
    6875     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    6876     break;
    6877 
    6878   case 347:
    6879 
    6880 /* Line 1806 of yacc.c  */
    6881 #line 1427 "parser.yy"
    6882     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    6883     break;
    6884 
    6885   case 348:
    6886 
    6887 /* Line 1806 of yacc.c  */
    6888 #line 1429 "parser.yy"
    6889     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    6890     break;
    6891 
    6892   case 349:
    6893 
    6894 /* Line 1806 of yacc.c  */
    6895 #line 1431 "parser.yy"
    6896     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    6897     break;
    6898 
    6899   case 351:
    6900 
    6901 /* Line 1806 of yacc.c  */
    6902 #line 1437 "parser.yy"
    6903     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    6904     break;
    6905 
    6906   case 352:
    6907 
    6908 /* Line 1806 of yacc.c  */
    6909 #line 1439 "parser.yy"
    6910     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    6911     break;
    6912 
    6913   case 354:
    69146871
    69156872/* Line 1806 of yacc.c  */
     
    69186875    break;
    69196876
    6920   case 355:
     6877  case 340:
    69216878
    69226879/* Line 1806 of yacc.c  */
     
    69256882    break;
    69266883
     6884  case 341:
     6885
     6886/* Line 1806 of yacc.c  */
     6887#line 1449 "parser.yy"
     6888    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
     6889    break;
     6890
     6891  case 342:
     6892
     6893/* Line 1806 of yacc.c  */
     6894#line 1454 "parser.yy"
     6895    { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
     6896    break;
     6897
     6898  case 343:
     6899
     6900/* Line 1806 of yacc.c  */
     6901#line 1456 "parser.yy"
     6902    { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
     6903    break;
     6904
     6905  case 344:
     6906
     6907/* Line 1806 of yacc.c  */
     6908#line 1458 "parser.yy"
     6909    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
     6910    break;
     6911
     6912  case 345:
     6913
     6914/* Line 1806 of yacc.c  */
     6915#line 1460 "parser.yy"
     6916    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
     6917    break;
     6918
     6919  case 347:
     6920
     6921/* Line 1806 of yacc.c  */
     6922#line 1466 "parser.yy"
     6923    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6924    break;
     6925
     6926  case 348:
     6927
     6928/* Line 1806 of yacc.c  */
     6929#line 1468 "parser.yy"
     6930    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6931    break;
     6932
     6933  case 349:
     6934
     6935/* Line 1806 of yacc.c  */
     6936#line 1470 "parser.yy"
     6937    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6938    break;
     6939
     6940  case 351:
     6941
     6942/* Line 1806 of yacc.c  */
     6943#line 1476 "parser.yy"
     6944    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6945    break;
     6946
     6947  case 352:
     6948
     6949/* Line 1806 of yacc.c  */
     6950#line 1478 "parser.yy"
     6951    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6952    break;
     6953
     6954  case 354:
     6955
     6956/* Line 1806 of yacc.c  */
     6957#line 1484 "parser.yy"
     6958    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6959    break;
     6960
     6961  case 355:
     6962
     6963/* Line 1806 of yacc.c  */
     6964#line 1486 "parser.yy"
     6965    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6966    break;
     6967
    69276968  case 356:
    69286969
    69296970/* Line 1806 of yacc.c  */
    6930 #line 1449 "parser.yy"
     6971#line 1488 "parser.yy"
    69316972    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    69326973    break;
     
    69356976
    69366977/* Line 1806 of yacc.c  */
    6937 #line 1454 "parser.yy"
     6978#line 1493 "parser.yy"
    69386979    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
    69396980    break;
     
    69426983
    69436984/* Line 1806 of yacc.c  */
    6944 #line 1456 "parser.yy"
     6985#line 1495 "parser.yy"
    69456986    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69466987    break;
     
    69496990
    69506991/* Line 1806 of yacc.c  */
    6951 #line 1458 "parser.yy"
     6992#line 1497 "parser.yy"
    69526993    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69536994    break;
     
    69566997
    69576998/* Line 1806 of yacc.c  */
    6958 #line 1468 "parser.yy"
     6999#line 1507 "parser.yy"
    69597000    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl), true ); }
    69607001    break;
     
    69637004
    69647005/* Line 1806 of yacc.c  */
    6965 #line 1470 "parser.yy"
     7006#line 1509 "parser.yy"
    69667007    {
    69677008                        typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
     
    69737014
    69747015/* Line 1806 of yacc.c  */
    6975 #line 1475 "parser.yy"
     7016#line 1514 "parser.yy"
    69767017    { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
    69777018    break;
     
    69807021
    69817022/* Line 1806 of yacc.c  */
    6982 #line 1477 "parser.yy"
     7023#line 1516 "parser.yy"
    69837024    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), 0, (yyvsp[(5) - (6)].decl), true ); }
    69847025    break;
     
    69877028
    69887029/* Line 1806 of yacc.c  */
    6989 #line 1479 "parser.yy"
     7030#line 1518 "parser.yy"
    69907031    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); }
    69917032    break;
     
    69947035
    69957036/* Line 1806 of yacc.c  */
    6996 #line 1481 "parser.yy"
     7037#line 1520 "parser.yy"
    69977038    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    69987039    break;
     
    70017042
    70027043/* Line 1806 of yacc.c  */
    7003 #line 1486 "parser.yy"
     7044#line 1525 "parser.yy"
    70047045    { (yyval.aggKey) = DeclarationNode::Struct; }
    70057046    break;
     
    70087049
    70097050/* Line 1806 of yacc.c  */
    7010 #line 1488 "parser.yy"
     7051#line 1527 "parser.yy"
    70117052    { (yyval.aggKey) = DeclarationNode::Union; }
    70127053    break;
     
    70157056
    70167057/* Line 1806 of yacc.c  */
    7017 #line 1493 "parser.yy"
     7058#line 1532 "parser.yy"
    70187059    { (yyval.decl) = 0; }
    70197060    break;
     
    70227063
    70237064/* Line 1806 of yacc.c  */
    7024 #line 1495 "parser.yy"
     7065#line 1534 "parser.yy"
    70257066    { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
    70267067    break;
     
    70297070
    70307071/* Line 1806 of yacc.c  */
    7031 #line 1501 "parser.yy"
     7072#line 1540 "parser.yy"
    70327073    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); }
    70337074    break;
     
    70367077
    70377078/* Line 1806 of yacc.c  */
    7038 #line 1504 "parser.yy"
     7079#line 1543 "parser.yy"
    70397080    {   // mark all fields in list
    70407081                        for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     
    70477088
    70487089/* Line 1806 of yacc.c  */
    7049 #line 1514 "parser.yy"
     7090#line 1553 "parser.yy"
    70507091    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
    70517092    break;
     
    70547095
    70557096/* Line 1806 of yacc.c  */
    7056 #line 1516 "parser.yy"
     7097#line 1555 "parser.yy"
    70577098    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
    70587099    break;
     
    70617102
    70627103/* Line 1806 of yacc.c  */
    7063 #line 1518 "parser.yy"
     7104#line 1557 "parser.yy"
    70647105    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
    70657106    break;
     
    70687109
    70697110/* Line 1806 of yacc.c  */
    7070 #line 1523 "parser.yy"
     7111#line 1562 "parser.yy"
    70717112    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    70727113    break;
     
    70757116
    70767117/* Line 1806 of yacc.c  */
    7077 #line 1525 "parser.yy"
     7118#line 1564 "parser.yy"
    70787119    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
    70797120    break;
     
    70827123
    70837124/* Line 1806 of yacc.c  */
    7084 #line 1530 "parser.yy"
     7125#line 1569 "parser.yy"
    70857126    { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
    70867127    break;
     
    70897130
    70907131/* Line 1806 of yacc.c  */
    7091 #line 1532 "parser.yy"
     7132#line 1571 "parser.yy"
    70927133    { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
    70937134    break;
     
    70967137
    70977138/* Line 1806 of yacc.c  */
    7098 #line 1535 "parser.yy"
     7139#line 1574 "parser.yy"
    70997140    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    71007141    break;
     
    71037144
    71047145/* Line 1806 of yacc.c  */
    7105 #line 1538 "parser.yy"
     7146#line 1577 "parser.yy"
    71067147    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    71077148    break;
     
    71107151
    71117152/* Line 1806 of yacc.c  */
    7112 #line 1544 "parser.yy"
     7153#line 1583 "parser.yy"
    71137154    { (yyval.en) = 0; }
    71147155    break;
     
    71177158
    71187159/* Line 1806 of yacc.c  */
    7119 #line 1546 "parser.yy"
     7160#line 1585 "parser.yy"
    71207161    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    71217162    break;
     
    71247165
    71257166/* Line 1806 of yacc.c  */
    7126 #line 1551 "parser.yy"
     7167#line 1590 "parser.yy"
    71277168    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    71287169    break;
     
    71317172
    71327173/* Line 1806 of yacc.c  */
    7133 #line 1560 "parser.yy"
     7174#line 1599 "parser.yy"
    71347175    { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); }
    71357176    break;
     
    71387179
    71397180/* Line 1806 of yacc.c  */
    7140 #line 1562 "parser.yy"
     7181#line 1601 "parser.yy"
    71417182    {
    71427183                        typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
     
    71487189
    71497190/* Line 1806 of yacc.c  */
    7150 #line 1567 "parser.yy"
     7191#line 1606 "parser.yy"
    71517192    { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
    71527193    break;
     
    71557196
    71567197/* Line 1806 of yacc.c  */
    7157 #line 1569 "parser.yy"
     7198#line 1608 "parser.yy"
    71587199    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); }
    71597200    break;
     
    71627203
    71637204/* Line 1806 of yacc.c  */
    7164 #line 1574 "parser.yy"
     7205#line 1613 "parser.yy"
    71657206    { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
    71667207    break;
     
    71697210
    71707211/* Line 1806 of yacc.c  */
    7171 #line 1576 "parser.yy"
     7212#line 1615 "parser.yy"
    71727213    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
    71737214    break;
     
    71767217
    71777218/* Line 1806 of yacc.c  */
    7178 #line 1581 "parser.yy"
     7219#line 1620 "parser.yy"
    71797220    { (yyval.en) = 0; }
    71807221    break;
     
    71837224
    71847225/* Line 1806 of yacc.c  */
    7185 #line 1583 "parser.yy"
     7226#line 1622 "parser.yy"
    71867227    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    71877228    break;
     
    71907231
    71917232/* Line 1806 of yacc.c  */
    7192 #line 1590 "parser.yy"
     7233#line 1629 "parser.yy"
    71937234    { (yyval.decl) = 0; }
    71947235    break;
     
    71977238
    71987239/* Line 1806 of yacc.c  */
    7199 #line 1598 "parser.yy"
     7240#line 1637 "parser.yy"
    72007241    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72017242    break;
     
    72047245
    72057246/* Line 1806 of yacc.c  */
    7206 #line 1600 "parser.yy"
     7247#line 1639 "parser.yy"
    72077248    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    72087249    break;
     
    72117252
    72127253/* Line 1806 of yacc.c  */
    7213 #line 1602 "parser.yy"
     7254#line 1641 "parser.yy"
    72147255    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    72157256    break;
     
    72187259
    72197260/* Line 1806 of yacc.c  */
    7220 #line 1610 "parser.yy"
     7261#line 1649 "parser.yy"
    72217262    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72227263    break;
     
    72257266
    72267267/* Line 1806 of yacc.c  */
    7227 #line 1612 "parser.yy"
     7268#line 1651 "parser.yy"
    72287269    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72297270    break;
     
    72327273
    72337274/* Line 1806 of yacc.c  */
    7234 #line 1614 "parser.yy"
     7275#line 1653 "parser.yy"
    72357276    { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
    72367277    break;
     
    72397280
    72407281/* Line 1806 of yacc.c  */
    7241 #line 1620 "parser.yy"
     7282#line 1659 "parser.yy"
    72427283    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72437284    break;
     
    72467287
    72477288/* Line 1806 of yacc.c  */
    7248 #line 1625 "parser.yy"
     7289#line 1664 "parser.yy"
    72497290    { (yyval.decl) = 0; }
    72507291    break;
     
    72537294
    72547295/* Line 1806 of yacc.c  */
    7255 #line 1632 "parser.yy"
     7296#line 1671 "parser.yy"
    72567297    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    72577298    break;
     
    72607301
    72617302/* Line 1806 of yacc.c  */
    7262 #line 1639 "parser.yy"
     7303#line 1678 "parser.yy"
    72637304    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72647305    break;
     
    72677308
    72687309/* Line 1806 of yacc.c  */
    7269 #line 1641 "parser.yy"
     7310#line 1680 "parser.yy"
    72707311    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72717312    break;
     
    72747315
    72757316/* Line 1806 of yacc.c  */
    7276 #line 1650 "parser.yy"
     7317#line 1689 "parser.yy"
    72777318    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    72787319    break;
     
    72817322
    72827323/* Line 1806 of yacc.c  */
    7283 #line 1653 "parser.yy"
     7324#line 1692 "parser.yy"
    72847325    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    72857326    break;
     
    72887329
    72897330/* Line 1806 of yacc.c  */
    7290 #line 1655 "parser.yy"
     7331#line 1694 "parser.yy"
    72917332    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
    72927333    break;
     
    72957336
    72967337/* Line 1806 of yacc.c  */
    7297 #line 1665 "parser.yy"
     7338#line 1704 "parser.yy"
    72987339    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    72997340    break;
     
    73027343
    73037344/* Line 1806 of yacc.c  */
    7304 #line 1671 "parser.yy"
     7345#line 1710 "parser.yy"
    73057346    {
    73067347                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    73127353
    73137354/* Line 1806 of yacc.c  */
    7314 #line 1676 "parser.yy"
     7355#line 1715 "parser.yy"
    73157356    {
    73167357                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    73227363
    73237364/* Line 1806 of yacc.c  */
    7324 #line 1685 "parser.yy"
     7365#line 1724 "parser.yy"
    73257366    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73267367    break;
     
    73297370
    73307371/* Line 1806 of yacc.c  */
    7331 #line 1694 "parser.yy"
     7372#line 1733 "parser.yy"
    73327373    { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
    73337374    break;
     
    73367377
    73377378/* Line 1806 of yacc.c  */
    7338 #line 1696 "parser.yy"
     7379#line 1735 "parser.yy"
    73397380    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
    73407381    break;
     
    73437384
    73447385/* Line 1806 of yacc.c  */
    7345 #line 1721 "parser.yy"
     7386#line 1760 "parser.yy"
    73467387    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73477388    break;
     
    73507391
    73517392/* Line 1806 of yacc.c  */
    7352 #line 1729 "parser.yy"
     7393#line 1768 "parser.yy"
    73537394    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73547395    break;
     
    73577398
    73587399/* Line 1806 of yacc.c  */
    7359 #line 1734 "parser.yy"
     7400#line 1773 "parser.yy"
    73607401    { (yyval.in) = 0; }
    73617402    break;
     
    73647405
    73657406/* Line 1806 of yacc.c  */
    7366 #line 1736 "parser.yy"
     7407#line 1775 "parser.yy"
    73677408    { (yyval.in) = (yyvsp[(2) - (2)].in); }
    73687409    break;
     
    73717412
    73727413/* Line 1806 of yacc.c  */
    7373 #line 1738 "parser.yy"
     7414#line 1777 "parser.yy"
    73747415    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); }
    73757416    break;
     
    73787419
    73797420/* Line 1806 of yacc.c  */
    7380 #line 1742 "parser.yy"
     7421#line 1781 "parser.yy"
    73817422    { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
    73827423    break;
     
    73857426
    73867427/* Line 1806 of yacc.c  */
    7387 #line 1743 "parser.yy"
     7428#line 1782 "parser.yy"
    73887429    { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
    73897430    break;
     
    73927433
    73937434/* Line 1806 of yacc.c  */
    7394 #line 1748 "parser.yy"
     7435#line 1787 "parser.yy"
    73957436    { (yyval.in) = 0; }
    73967437    break;
     
    73997440
    74007441/* Line 1806 of yacc.c  */
    7401 #line 1750 "parser.yy"
     7442#line 1789 "parser.yy"
    74027443    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
    74037444    break;
     
    74067447
    74077448/* Line 1806 of yacc.c  */
    7408 #line 1751 "parser.yy"
     7449#line 1790 "parser.yy"
    74097450    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); }
    74107451    break;
     
    74137454
    74147455/* Line 1806 of yacc.c  */
    7415 #line 1753 "parser.yy"
     7456#line 1792 "parser.yy"
    74167457    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_last( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
    74177458    break;
     
    74207461
    74217462/* Line 1806 of yacc.c  */
    7422 #line 1769 "parser.yy"
     7463#line 1808 "parser.yy"
    74237464    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); }
    74247465    break;
     
    74277468
    74287469/* Line 1806 of yacc.c  */
    7429 #line 1775 "parser.yy"
     7470#line 1814 "parser.yy"
    74307471    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) ) ); }
    74317472    break;
     
    74347475
    74357476/* Line 1806 of yacc.c  */
    7436 #line 1781 "parser.yy"
     7477#line 1820 "parser.yy"
    74377478    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); }
    74387479    break;
     
    74417482
    74427483/* Line 1806 of yacc.c  */
    7443 #line 1784 "parser.yy"
     7484#line 1823 "parser.yy"
    74447485    { (yyval.en) = (yyvsp[(3) - (5)].en); }
    74457486    break;
     
    74487489
    74497490/* Line 1806 of yacc.c  */
    7450 #line 1786 "parser.yy"
     7491#line 1825 "parser.yy"
    74517492    { (yyval.en) = (yyvsp[(3) - (5)].en); }
    74527493    break;
     
    74557496
    74567497/* Line 1806 of yacc.c  */
    7457 #line 1788 "parser.yy"
     7498#line 1827 "parser.yy"
    74587499    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); }
    74597500    break;
     
    74627503
    74637504/* Line 1806 of yacc.c  */
    7464 #line 1790 "parser.yy"
     7505#line 1829 "parser.yy"
    74657506    { (yyval.en) = (yyvsp[(4) - (6)].en); }
    74667507    break;
     
    74697510
    74707511/* Line 1806 of yacc.c  */
    7471 #line 1814 "parser.yy"
     7512#line 1853 "parser.yy"
    74727513    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    74737514    break;
     
    74767517
    74777518/* Line 1806 of yacc.c  */
    7478 #line 1816 "parser.yy"
     7519#line 1855 "parser.yy"
    74797520    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    74807521    break;
     
    74837524
    74847525/* Line 1806 of yacc.c  */
    7485 #line 1818 "parser.yy"
     7526#line 1857 "parser.yy"
    74867527    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    74877528    break;
     
    74907531
    74917532/* Line 1806 of yacc.c  */
    7492 #line 1824 "parser.yy"
     7533#line 1863 "parser.yy"
    74937534    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    74947535    break;
     
    74977538
    74987539/* Line 1806 of yacc.c  */
    7499 #line 1826 "parser.yy"
     7540#line 1865 "parser.yy"
    75007541    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    75017542    break;
     
    75047545
    75057546/* Line 1806 of yacc.c  */
    7506 #line 1831 "parser.yy"
     7547#line 1870 "parser.yy"
    75077548    { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    75087549    break;
     
    75117552
    75127553/* Line 1806 of yacc.c  */
    7513 #line 1837 "parser.yy"
     7554#line 1876 "parser.yy"
    75147555    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
    75157556    break;
     
    75187559
    75197560/* Line 1806 of yacc.c  */
    7520 #line 1842 "parser.yy"
     7561#line 1881 "parser.yy"
    75217562    { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
    75227563    break;
     
    75257566
    75267567/* Line 1806 of yacc.c  */
    7527 #line 1844 "parser.yy"
     7568#line 1883 "parser.yy"
    75287569    { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
    75297570    break;
     
    75327573
    75337574/* Line 1806 of yacc.c  */
    7534 #line 1850 "parser.yy"
     7575#line 1889 "parser.yy"
    75357576    { (yyval.tclass) = DeclarationNode::Type; }
    75367577    break;
     
    75397580
    75407581/* Line 1806 of yacc.c  */
    7541 #line 1852 "parser.yy"
     7582#line 1891 "parser.yy"
    75427583    { (yyval.tclass) = DeclarationNode::Ftype; }
    75437584    break;
     
    75467587
    75477588/* Line 1806 of yacc.c  */
    7548 #line 1854 "parser.yy"
     7589#line 1893 "parser.yy"
    75497590    { (yyval.tclass) = DeclarationNode::Dtype; }
    75507591    break;
     
    75537594
    75547595/* Line 1806 of yacc.c  */
    7555 #line 1859 "parser.yy"
     7596#line 1898 "parser.yy"
    75567597    { (yyval.decl) = 0; }
    75577598    break;
     
    75607601
    75617602/* Line 1806 of yacc.c  */
    7562 #line 1861 "parser.yy"
     7603#line 1900 "parser.yy"
    75637604    { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
    75647605    break;
     
    75677608
    75687609/* Line 1806 of yacc.c  */
    7569 #line 1866 "parser.yy"
     7610#line 1905 "parser.yy"
    75707611    {
    75717612                        typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) );
     
    75777618
    75787619/* Line 1806 of yacc.c  */
    7579 #line 1871 "parser.yy"
     7620#line 1910 "parser.yy"
    75807621    { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
    75817622    break;
     
    75847625
    75857626/* Line 1806 of yacc.c  */
    7586 #line 1873 "parser.yy"
     7627#line 1912 "parser.yy"
    75877628    { (yyval.decl) = 0; }
    75887629    break;
     
    75917632
    75927633/* Line 1806 of yacc.c  */
    7593 #line 1878 "parser.yy"
     7634#line 1917 "parser.yy"
    75947635    { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); }
    75957636    break;
     
    75987639
    75997640/* Line 1806 of yacc.c  */
    7600 #line 1881 "parser.yy"
     7641#line 1920 "parser.yy"
    76017642    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); }
    76027643    break;
     
    76057646
    76067647/* Line 1806 of yacc.c  */
    7607 #line 1883 "parser.yy"
     7648#line 1922 "parser.yy"
    76087649    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
    76097650    break;
     
    76127653
    76137654/* Line 1806 of yacc.c  */
    7614 #line 1888 "parser.yy"
     7655#line 1927 "parser.yy"
    76157656    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    76167657    break;
     
    76197660
    76207661/* Line 1806 of yacc.c  */
    7621 #line 1890 "parser.yy"
     7662#line 1929 "parser.yy"
    76227663    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
    76237664    break;
     
    76267667
    76277668/* Line 1806 of yacc.c  */
    7628 #line 1892 "parser.yy"
     7669#line 1931 "parser.yy"
    76297670    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
    76307671    break;
     
    76337674
    76347675/* Line 1806 of yacc.c  */
    7635 #line 1897 "parser.yy"
     7676#line 1936 "parser.yy"
    76367677    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
    76377678    break;
     
    76407681
    76417682/* Line 1806 of yacc.c  */
    7642 #line 1899 "parser.yy"
     7683#line 1938 "parser.yy"
    76437684    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
    76447685    break;
     
    76477688
    76487689/* Line 1806 of yacc.c  */
    7649 #line 1904 "parser.yy"
     7690#line 1943 "parser.yy"
    76507691    {
    76517692                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD );
     
    76577698
    76587699/* Line 1806 of yacc.c  */
    7659 #line 1909 "parser.yy"
     7700#line 1948 "parser.yy"
    76607701    {
    76617702                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG );
     
    76677708
    76687709/* Line 1806 of yacc.c  */
    7669 #line 1917 "parser.yy"
     7710#line 1956 "parser.yy"
    76707711    {
    76717712                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID );
     
    76777718
    76787719/* Line 1806 of yacc.c  */
    7679 #line 1922 "parser.yy"
     7720#line 1961 "parser.yy"
    76807721    {
    76817722                        typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) );
     
    76877728
    76887729/* Line 1806 of yacc.c  */
    7689 #line 1927 "parser.yy"
     7730#line 1966 "parser.yy"
    76907731    {
    76917732                        typedefTable.leaveTrait();
     
    76987739
    76997740/* Line 1806 of yacc.c  */
    7700 #line 1937 "parser.yy"
     7741#line 1976 "parser.yy"
    77017742    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    77027743    break;
     
    77057746
    77067747/* Line 1806 of yacc.c  */
    7707 #line 1947 "parser.yy"
     7748#line 1986 "parser.yy"
    77087749    {
    77097750                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77157756
    77167757/* Line 1806 of yacc.c  */
    7717 #line 1952 "parser.yy"
     7758#line 1991 "parser.yy"
    77187759    {
    77197760                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77257766
    77267767/* Line 1806 of yacc.c  */
    7727 #line 1957 "parser.yy"
     7768#line 1996 "parser.yy"
    77287769    {
    77297770                        typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    77357776
    77367777/* Line 1806 of yacc.c  */
    7737 #line 1965 "parser.yy"
     7778#line 2004 "parser.yy"
    77387779    {
    77397780                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77457786
    77467787/* Line 1806 of yacc.c  */
    7747 #line 1970 "parser.yy"
     7788#line 2009 "parser.yy"
    77487789    {
    77497790                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77557796
    77567797/* Line 1806 of yacc.c  */
    7757 #line 1980 "parser.yy"
     7798#line 2019 "parser.yy"
    77587799    {}
    77597800    break;
     
    77627803
    77637804/* Line 1806 of yacc.c  */
    7764 #line 1982 "parser.yy"
     7805#line 2021 "parser.yy"
    77657806    { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl);    }
    77667807    break;
     
    77697810
    77707811/* Line 1806 of yacc.c  */
    7771 #line 1988 "parser.yy"
     7812#line 2027 "parser.yy"
    77727813    { (yyval.decl) = (yyvsp[(1) - (3)].decl) != nullptr ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
    77737814    break;
     
    77767817
    77777818/* Line 1806 of yacc.c  */
    7778 #line 1993 "parser.yy"
     7819#line 2032 "parser.yy"
    77797820    { (yyval.decl) = 0; }
    77807821    break;
     
    77837824
    77847825/* Line 1806 of yacc.c  */
    7785 #line 2001 "parser.yy"
     7826#line 2040 "parser.yy"
    77867827    {}
    77877828    break;
     
    77907831
    77917832/* Line 1806 of yacc.c  */
    7792 #line 2003 "parser.yy"
     7833#line 2042 "parser.yy"
    77937834    {
    77947835                        linkageStack.push( linkage );                           // handle nested extern "C"/"Cforall"
     
    78007841
    78017842/* Line 1806 of yacc.c  */
    7802 #line 2008 "parser.yy"
     7843#line 2047 "parser.yy"
    78037844    {
    78047845                        linkage = linkageStack.top();
     
    78117852
    78127853/* Line 1806 of yacc.c  */
    7813 #line 2014 "parser.yy"
     7854#line 2053 "parser.yy"
    78147855    {   // mark all fields in list
    78157856                        for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     
    78227863
    78237864/* Line 1806 of yacc.c  */
    7824 #line 2029 "parser.yy"
     7865#line 2068 "parser.yy"
    78257866    {
    78267867                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78337874
    78347875/* Line 1806 of yacc.c  */
    7835 #line 2035 "parser.yy"
     7876#line 2074 "parser.yy"
    78367877    {
    78377878                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78447885
    78457886/* Line 1806 of yacc.c  */
    7846 #line 2044 "parser.yy"
     7887#line 2083 "parser.yy"
    78477888    {
    78487889                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78557896
    78567897/* Line 1806 of yacc.c  */
    7857 #line 2050 "parser.yy"
     7898#line 2089 "parser.yy"
    78587899    {
    78597900                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78667907
    78677908/* Line 1806 of yacc.c  */
    7868 #line 2056 "parser.yy"
     7909#line 2095 "parser.yy"
    78697910    {
    78707911                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78777918
    78787919/* Line 1806 of yacc.c  */
    7879 #line 2062 "parser.yy"
     7920#line 2101 "parser.yy"
    78807921    {
    78817922                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78887929
    78897930/* Line 1806 of yacc.c  */
    7890 #line 2068 "parser.yy"
     7931#line 2107 "parser.yy"
    78917932    {
    78927933                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78997940
    79007941/* Line 1806 of yacc.c  */
    7901 #line 2076 "parser.yy"
     7942#line 2115 "parser.yy"
    79027943    {
    79037944                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79107951
    79117952/* Line 1806 of yacc.c  */
    7912 #line 2082 "parser.yy"
     7953#line 2121 "parser.yy"
    79137954    {
    79147955                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79217962
    79227963/* Line 1806 of yacc.c  */
    7923 #line 2090 "parser.yy"
     7964#line 2129 "parser.yy"
    79247965    {
    79257966                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79327973
    79337974/* Line 1806 of yacc.c  */
    7934 #line 2096 "parser.yy"
     7975#line 2135 "parser.yy"
    79357976    {
    79367977                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79437984
    79447985/* Line 1806 of yacc.c  */
    7945 #line 2111 "parser.yy"
     7986#line 2150 "parser.yy"
    79467987    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    79477988    break;
    79487989
    7949   case 544:
    7950 
    7951 /* Line 1806 of yacc.c  */
    7952 #line 2116 "parser.yy"
    7953     { delete (yyvsp[(3) - (5)].str); }
    7954     break;
    7955 
    79567990  case 545:
    79577991
    79587992/* Line 1806 of yacc.c  */
    7959 #line 2121 "parser.yy"
     7993#line 2160 "parser.yy"
    79607994    { (yyval.decl) = 0; }
    79617995    break;
     
    79647998
    79657999/* Line 1806 of yacc.c  */
    7966 #line 2128 "parser.yy"
     8000#line 2167 "parser.yy"
    79678001    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    79688002    break;
     
    79718005
    79728006/* Line 1806 of yacc.c  */
    7973 #line 2134 "parser.yy"
     8007#line 2173 "parser.yy"
    79748008    { (yyval.decl) = 0; }
    79758009    break;
    79768010
    7977   case 554:
    7978 
    7979 /* Line 1806 of yacc.c  */
    7980 #line 2145 "parser.yy"
    7981     { delete (yyvsp[(3) - (4)].en); }
    7982     break;
    7983 
    79848011  case 555:
    79858012
    79868013/* Line 1806 of yacc.c  */
    7987 #line 2149 "parser.yy"
     8014#line 2188 "parser.yy"
    79888015    { delete (yyvsp[(1) - (1)].tok); }
    79898016    break;
     
    79928019
    79938020/* Line 1806 of yacc.c  */
    7994 #line 2150 "parser.yy"
     8021#line 2189 "parser.yy"
    79958022    { delete (yyvsp[(1) - (1)].decl); }
    79968023    break;
     
    79998026
    80008027/* Line 1806 of yacc.c  */
    8001 #line 2151 "parser.yy"
     8028#line 2190 "parser.yy"
    80028029    { delete (yyvsp[(1) - (1)].decl); }
    80038030    break;
     
    80068033
    80078034/* Line 1806 of yacc.c  */
    8008 #line 2152 "parser.yy"
     8035#line 2191 "parser.yy"
    80098036    { delete (yyvsp[(1) - (1)].decl); }
    80108037    break;
     
    80138040
    80148041/* Line 1806 of yacc.c  */
    8015 #line 2187 "parser.yy"
     8042#line 2226 "parser.yy"
    80168043    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80178044    break;
     
    80208047
    80218048/* Line 1806 of yacc.c  */
    8022 #line 2190 "parser.yy"
     8049#line 2229 "parser.yy"
    80238050    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80248051    break;
     
    80278054
    80288055/* Line 1806 of yacc.c  */
    8029 #line 2192 "parser.yy"
     8056#line 2231 "parser.yy"
    80308057    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80318058    break;
     
    80348061
    80358062/* Line 1806 of yacc.c  */
    8036 #line 2197 "parser.yy"
     8063#line 2236 "parser.yy"
    80378064    {
    80388065                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    80448071
    80458072/* Line 1806 of yacc.c  */
    8046 #line 2202 "parser.yy"
     8073#line 2241 "parser.yy"
    80478074    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80488075    break;
     
    80518078
    80528079/* Line 1806 of yacc.c  */
    8053 #line 2207 "parser.yy"
     8080#line 2246 "parser.yy"
    80548081    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    80558082    break;
     
    80588085
    80598086/* Line 1806 of yacc.c  */
    8060 #line 2209 "parser.yy"
     8087#line 2248 "parser.yy"
    80618088    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    80628089    break;
    80638090
    80648091  case 567:
    8065 
    8066 /* Line 1806 of yacc.c  */
    8067 #line 2211 "parser.yy"
    8068     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8069     break;
    8070 
    8071   case 568:
    8072 
    8073 /* Line 1806 of yacc.c  */
    8074 #line 2216 "parser.yy"
    8075     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8076     break;
    8077 
    8078   case 569:
    8079 
    8080 /* Line 1806 of yacc.c  */
    8081 #line 2218 "parser.yy"
    8082     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8083     break;
    8084 
    8085   case 570:
    8086 
    8087 /* Line 1806 of yacc.c  */
    8088 #line 2220 "parser.yy"
    8089     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8090     break;
    8091 
    8092   case 571:
    8093 
    8094 /* Line 1806 of yacc.c  */
    8095 #line 2222 "parser.yy"
    8096     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8097     break;
    8098 
    8099   case 572:
    8100 
    8101 /* Line 1806 of yacc.c  */
    8102 #line 2227 "parser.yy"
    8103     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8104     break;
    8105 
    8106   case 573:
    8107 
    8108 /* Line 1806 of yacc.c  */
    8109 #line 2229 "parser.yy"
    8110     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8111     break;
    8112 
    8113   case 574:
    8114 
    8115 /* Line 1806 of yacc.c  */
    8116 #line 2238 "parser.yy"
    8117     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8118     break;
    8119 
    8120   case 576:
    8121 
    8122 /* Line 1806 of yacc.c  */
    8123 #line 2241 "parser.yy"
    8124     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8125     break;
    8126 
    8127   case 577:
    8128 
    8129 /* Line 1806 of yacc.c  */
    8130 #line 2246 "parser.yy"
    8131     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8132     break;
    8133 
    8134   case 578:
    8135 
    8136 /* Line 1806 of yacc.c  */
    8137 #line 2248 "parser.yy"
    8138     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8139     break;
    8140 
    8141   case 579:
    81428092
    81438093/* Line 1806 of yacc.c  */
     
    81468096    break;
    81478097
    8148   case 580:
     8098  case 568:
    81498099
    81508100/* Line 1806 of yacc.c  */
    81518101#line 2255 "parser.yy"
    8152     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8153     break;
    8154 
    8155   case 581:
     8102    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8103    break;
     8104
     8105  case 569:
    81568106
    81578107/* Line 1806 of yacc.c  */
    81588108#line 2257 "parser.yy"
    8159     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8160     break;
    8161 
    8162   case 582:
     8109    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8110    break;
     8111
     8112  case 570:
    81638113
    81648114/* Line 1806 of yacc.c  */
    81658115#line 2259 "parser.yy"
     8116    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8117    break;
     8118
     8119  case 571:
     8120
     8121/* Line 1806 of yacc.c  */
     8122#line 2261 "parser.yy"
    81668123    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81678124    break;
    81688125
    8169   case 583:
    8170 
    8171 /* Line 1806 of yacc.c  */
    8172 #line 2264 "parser.yy"
    8173     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8174     break;
    8175 
    8176   case 584:
     8126  case 572:
    81778127
    81788128/* Line 1806 of yacc.c  */
    81798129#line 2266 "parser.yy"
    8180     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8181     break;
    8182 
    8183   case 585:
     8130    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8131    break;
     8132
     8133  case 573:
    81848134
    81858135/* Line 1806 of yacc.c  */
     
    81888138    break;
    81898139
    8190   case 589:
    8191 
    8192 /* Line 1806 of yacc.c  */
    8193 #line 2283 "parser.yy"
    8194     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
    8195     break;
    8196 
    8197   case 590:
     8140  case 574:
     8141
     8142/* Line 1806 of yacc.c  */
     8143#line 2277 "parser.yy"
     8144    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8145    break;
     8146
     8147  case 576:
     8148
     8149/* Line 1806 of yacc.c  */
     8150#line 2280 "parser.yy"
     8151    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8152    break;
     8153
     8154  case 577:
    81988155
    81998156/* Line 1806 of yacc.c  */
    82008157#line 2285 "parser.yy"
    8201     { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
    8202     break;
    8203 
    8204   case 591:
     8158    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8159    break;
     8160
     8161  case 578:
    82058162
    82068163/* Line 1806 of yacc.c  */
    82078164#line 2287 "parser.yy"
     8165    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8166    break;
     8167
     8168  case 579:
     8169
     8170/* Line 1806 of yacc.c  */
     8171#line 2289 "parser.yy"
    82088172    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82098173    break;
    82108174
    8211   case 592:
    8212 
    8213 /* Line 1806 of yacc.c  */
    8214 #line 2292 "parser.yy"
     8175  case 580:
     8176
     8177/* Line 1806 of yacc.c  */
     8178#line 2294 "parser.yy"
    82158179    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    82168180    break;
    82178181
    8218   case 593:
    8219 
    8220 /* Line 1806 of yacc.c  */
    8221 #line 2294 "parser.yy"
     8182  case 581:
     8183
     8184/* Line 1806 of yacc.c  */
     8185#line 2296 "parser.yy"
    82228186    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    82238187    break;
    82248188
    8225   case 594:
    8226 
    8227 /* Line 1806 of yacc.c  */
    8228 #line 2296 "parser.yy"
     8189  case 582:
     8190
     8191/* Line 1806 of yacc.c  */
     8192#line 2298 "parser.yy"
    82298193    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82308194    break;
    82318195
    8232   case 595:
    8233 
    8234 /* Line 1806 of yacc.c  */
    8235 #line 2301 "parser.yy"
    8236     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8237     break;
    8238 
    8239   case 596:
     8196  case 583:
    82408197
    82418198/* Line 1806 of yacc.c  */
     
    82448201    break;
    82458202
     8203  case 584:
     8204
     8205/* Line 1806 of yacc.c  */
     8206#line 2305 "parser.yy"
     8207    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8208    break;
     8209
     8210  case 585:
     8211
     8212/* Line 1806 of yacc.c  */
     8213#line 2307 "parser.yy"
     8214    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8215    break;
     8216
     8217  case 589:
     8218
     8219/* Line 1806 of yacc.c  */
     8220#line 2322 "parser.yy"
     8221    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
     8222    break;
     8223
     8224  case 590:
     8225
     8226/* Line 1806 of yacc.c  */
     8227#line 2324 "parser.yy"
     8228    { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
     8229    break;
     8230
     8231  case 591:
     8232
     8233/* Line 1806 of yacc.c  */
     8234#line 2326 "parser.yy"
     8235    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8236    break;
     8237
     8238  case 592:
     8239
     8240/* Line 1806 of yacc.c  */
     8241#line 2331 "parser.yy"
     8242    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8243    break;
     8244
     8245  case 593:
     8246
     8247/* Line 1806 of yacc.c  */
     8248#line 2333 "parser.yy"
     8249    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8250    break;
     8251
     8252  case 594:
     8253
     8254/* Line 1806 of yacc.c  */
     8255#line 2335 "parser.yy"
     8256    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8257    break;
     8258
     8259  case 595:
     8260
     8261/* Line 1806 of yacc.c  */
     8262#line 2340 "parser.yy"
     8263    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8264    break;
     8265
     8266  case 596:
     8267
     8268/* Line 1806 of yacc.c  */
     8269#line 2342 "parser.yy"
     8270    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8271    break;
     8272
    82468273  case 597:
    82478274
    82488275/* Line 1806 of yacc.c  */
    8249 #line 2305 "parser.yy"
     8276#line 2344 "parser.yy"
    82508277    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82518278    break;
     
    82548281
    82558282/* Line 1806 of yacc.c  */
    8256 #line 2320 "parser.yy"
     8283#line 2359 "parser.yy"
    82578284    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82588285    break;
     
    82618288
    82628289/* Line 1806 of yacc.c  */
    8263 #line 2323 "parser.yy"
     8290#line 2362 "parser.yy"
    82648291    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82658292    break;
     
    82688295
    82698296/* Line 1806 of yacc.c  */
    8270 #line 2325 "parser.yy"
     8297#line 2364 "parser.yy"
    82718298    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82728299    break;
     
    82758302
    82768303/* Line 1806 of yacc.c  */
    8277 #line 2331 "parser.yy"
     8304#line 2370 "parser.yy"
    82788305    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82798306    break;
     
    82828309
    82838310/* Line 1806 of yacc.c  */
    8284 #line 2336 "parser.yy"
     8311#line 2375 "parser.yy"
    82858312    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    82868313    break;
     
    82898316
    82908317/* Line 1806 of yacc.c  */
    8291 #line 2338 "parser.yy"
     8318#line 2377 "parser.yy"
    82928319    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    82938320    break;
     
    82968323
    82978324/* Line 1806 of yacc.c  */
    8298 #line 2340 "parser.yy"
     8325#line 2379 "parser.yy"
    82998326    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83008327    break;
     
    83038330
    83048331/* Line 1806 of yacc.c  */
    8305 #line 2345 "parser.yy"
     8332#line 2384 "parser.yy"
    83068333    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    83078334    break;
     
    83108337
    83118338/* Line 1806 of yacc.c  */
    8312 #line 2347 "parser.yy"
     8339#line 2386 "parser.yy"
    83138340    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    83148341    break;
     
    83178344
    83188345/* Line 1806 of yacc.c  */
    8319 #line 2349 "parser.yy"
     8346#line 2388 "parser.yy"
    83208347    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    83218348    break;
     
    83248351
    83258352/* Line 1806 of yacc.c  */
    8326 #line 2351 "parser.yy"
     8353#line 2390 "parser.yy"
    83278354    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83288355    break;
     
    83318358
    83328359/* Line 1806 of yacc.c  */
    8333 #line 2356 "parser.yy"
     8360#line 2395 "parser.yy"
    83348361    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    83358362    break;
     
    83388365
    83398366/* Line 1806 of yacc.c  */
    8340 #line 2358 "parser.yy"
     8367#line 2397 "parser.yy"
    83418368    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    83428369    break;
     
    83458372
    83468373/* Line 1806 of yacc.c  */
    8347 #line 2360 "parser.yy"
     8374#line 2399 "parser.yy"
    83488375    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83498376    break;
     
    83528379
    83538380/* Line 1806 of yacc.c  */
    8354 #line 2370 "parser.yy"
     8381#line 2409 "parser.yy"
    83558382    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83568383    break;
     
    83598386
    83608387/* Line 1806 of yacc.c  */
    8361 #line 2373 "parser.yy"
     8388#line 2412 "parser.yy"
    83628389    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83638390    break;
     
    83668393
    83678394/* Line 1806 of yacc.c  */
    8368 #line 2375 "parser.yy"
     8395#line 2414 "parser.yy"
    83698396    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83708397    break;
     
    83738400
    83748401/* Line 1806 of yacc.c  */
    8375 #line 2380 "parser.yy"
     8402#line 2419 "parser.yy"
    83768403    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    83778404    break;
     
    83808407
    83818408/* Line 1806 of yacc.c  */
    8382 #line 2382 "parser.yy"
     8409#line 2421 "parser.yy"
    83838410    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    83848411    break;
     
    83878414
    83888415/* Line 1806 of yacc.c  */
    8389 #line 2384 "parser.yy"
     8416#line 2423 "parser.yy"
    83908417    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83918418    break;
     
    83948421
    83958422/* Line 1806 of yacc.c  */
    8396 #line 2389 "parser.yy"
     8423#line 2428 "parser.yy"
    83978424    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    83988425    break;
     
    84018428
    84028429/* Line 1806 of yacc.c  */
    8403 #line 2391 "parser.yy"
     8430#line 2430 "parser.yy"
    84048431    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    84058432    break;
     
    84088435
    84098436/* Line 1806 of yacc.c  */
    8410 #line 2393 "parser.yy"
     8437#line 2432 "parser.yy"
    84118438    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    84128439    break;
     
    84158442
    84168443/* Line 1806 of yacc.c  */
    8417 #line 2395 "parser.yy"
     8444#line 2434 "parser.yy"
    84188445    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84198446    break;
     
    84228449
    84238450/* Line 1806 of yacc.c  */
    8424 #line 2400 "parser.yy"
     8451#line 2439 "parser.yy"
    84258452    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    84268453    break;
     
    84298456
    84308457/* Line 1806 of yacc.c  */
    8431 #line 2402 "parser.yy"
     8458#line 2441 "parser.yy"
    84328459    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    84338460    break;
     
    84368463
    84378464/* Line 1806 of yacc.c  */
    8438 #line 2404 "parser.yy"
     8465#line 2443 "parser.yy"
    84398466    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84408467    break;
     
    84438470
    84448471/* Line 1806 of yacc.c  */
    8445 #line 2435 "parser.yy"
     8472#line 2474 "parser.yy"
    84468473    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84478474    break;
     
    84508477
    84518478/* Line 1806 of yacc.c  */
    8452 #line 2438 "parser.yy"
     8479#line 2477 "parser.yy"
    84538480    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84548481    break;
     
    84578484
    84588485/* Line 1806 of yacc.c  */
    8459 #line 2440 "parser.yy"
     8486#line 2479 "parser.yy"
    84608487    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84618488    break;
     
    84648491
    84658492/* Line 1806 of yacc.c  */
    8466 #line 2445 "parser.yy"
     8493#line 2484 "parser.yy"
    84678494    {
    84688495                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    84748501
    84758502/* Line 1806 of yacc.c  */
    8476 #line 2450 "parser.yy"
     8503#line 2489 "parser.yy"
    84778504    {
    84788505                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    84848511
    84858512/* Line 1806 of yacc.c  */
    8486 #line 2458 "parser.yy"
     8513#line 2497 "parser.yy"
    84878514    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    84888515    break;
     
    84918518
    84928519/* Line 1806 of yacc.c  */
    8493 #line 2460 "parser.yy"
     8520#line 2499 "parser.yy"
    84948521    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    84958522    break;
     
    84988525
    84998526/* Line 1806 of yacc.c  */
    8500 #line 2462 "parser.yy"
     8527#line 2501 "parser.yy"
    85018528    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85028529    break;
     
    85058532
    85068533/* Line 1806 of yacc.c  */
    8507 #line 2467 "parser.yy"
     8534#line 2506 "parser.yy"
    85088535    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    85098536    break;
     
    85128539
    85138540/* Line 1806 of yacc.c  */
    8514 #line 2469 "parser.yy"
     8541#line 2508 "parser.yy"
    85158542    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    85168543    break;
     
    85198546
    85208547/* Line 1806 of yacc.c  */
    8521 #line 2474 "parser.yy"
     8548#line 2513 "parser.yy"
    85228549    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    85238550    break;
     
    85268553
    85278554/* Line 1806 of yacc.c  */
    8528 #line 2476 "parser.yy"
     8555#line 2515 "parser.yy"
    85298556    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    85308557    break;
     
    85338560
    85348561/* Line 1806 of yacc.c  */
    8535 #line 2491 "parser.yy"
     8562#line 2530 "parser.yy"
    85368563    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    85378564    break;
     
    85408567
    85418568/* Line 1806 of yacc.c  */
    8542 #line 2493 "parser.yy"
     8569#line 2532 "parser.yy"
    85438570    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    85448571    break;
     
    85478574
    85488575/* Line 1806 of yacc.c  */
    8549 #line 2498 "parser.yy"
     8576#line 2537 "parser.yy"
    85508577    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    85518578    break;
     
    85548581
    85558582/* Line 1806 of yacc.c  */
    8556 #line 2500 "parser.yy"
     8583#line 2539 "parser.yy"
    85578584    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    85588585    break;
     
    85618588
    85628589/* Line 1806 of yacc.c  */
    8563 #line 2502 "parser.yy"
     8590#line 2541 "parser.yy"
    85648591    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    85658592    break;
     
    85688595
    85698596/* Line 1806 of yacc.c  */
    8570 #line 2504 "parser.yy"
     8597#line 2543 "parser.yy"
    85718598    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    85728599    break;
     
    85758602
    85768603/* Line 1806 of yacc.c  */
    8577 #line 2506 "parser.yy"
     8604#line 2545 "parser.yy"
    85788605    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85798606    break;
     
    85828609
    85838610/* Line 1806 of yacc.c  */
    8584 #line 2512 "parser.yy"
     8611#line 2551 "parser.yy"
    85858612    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    85868613    break;
     
    85898616
    85908617/* Line 1806 of yacc.c  */
    8591 #line 2514 "parser.yy"
     8618#line 2553 "parser.yy"
    85928619    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    85938620    break;
     
    85968623
    85978624/* Line 1806 of yacc.c  */
    8598 #line 2516 "parser.yy"
     8625#line 2555 "parser.yy"
    85998626    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86008627    break;
     
    86038630
    86048631/* Line 1806 of yacc.c  */
    8605 #line 2521 "parser.yy"
     8632#line 2560 "parser.yy"
    86068633    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    86078634    break;
     
    86108637
    86118638/* Line 1806 of yacc.c  */
    8612 #line 2523 "parser.yy"
     8639#line 2562 "parser.yy"
    86138640    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    86148641    break;
     
    86178644
    86188645/* Line 1806 of yacc.c  */
    8619 #line 2525 "parser.yy"
     8646#line 2564 "parser.yy"
    86208647    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86218648    break;
     
    86248651
    86258652/* Line 1806 of yacc.c  */
    8626 #line 2531 "parser.yy"
     8653#line 2570 "parser.yy"
    86278654    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    86288655    break;
     
    86318658
    86328659/* Line 1806 of yacc.c  */
    8633 #line 2533 "parser.yy"
     8660#line 2572 "parser.yy"
    86348661    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
    86358662    break;
     
    86388665
    86398666/* Line 1806 of yacc.c  */
    8640 #line 2539 "parser.yy"
     8667#line 2578 "parser.yy"
    86418668    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
    86428669    break;
     
    86458672
    86468673/* Line 1806 of yacc.c  */
    8647 #line 2541 "parser.yy"
     8674#line 2580 "parser.yy"
    86488675    { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
    86498676    break;
     
    86528679
    86538680/* Line 1806 of yacc.c  */
    8654 #line 2543 "parser.yy"
     8681#line 2582 "parser.yy"
    86558682    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
    86568683    break;
     
    86598686
    86608687/* Line 1806 of yacc.c  */
    8661 #line 2545 "parser.yy"
     8688#line 2584 "parser.yy"
    86628689    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
    86638690    break;
     
    86668693
    86678694/* Line 1806 of yacc.c  */
    8668 #line 2560 "parser.yy"
     8695#line 2599 "parser.yy"
    86698696    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    86708697    break;
     
    86738700
    86748701/* Line 1806 of yacc.c  */
    8675 #line 2562 "parser.yy"
     8702#line 2601 "parser.yy"
    86768703    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    86778704    break;
     
    86808707
    86818708/* Line 1806 of yacc.c  */
    8682 #line 2567 "parser.yy"
     8709#line 2606 "parser.yy"
    86838710    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    86848711    break;
     
    86878714
    86888715/* Line 1806 of yacc.c  */
    8689 #line 2569 "parser.yy"
     8716#line 2608 "parser.yy"
    86908717    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    86918718    break;
     
    86948721
    86958722/* Line 1806 of yacc.c  */
    8696 #line 2571 "parser.yy"
     8723#line 2610 "parser.yy"
    86978724    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    86988725    break;
     
    87018728
    87028729/* Line 1806 of yacc.c  */
    8703 #line 2573 "parser.yy"
     8730#line 2612 "parser.yy"
    87048731    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    87058732    break;
     
    87088735
    87098736/* Line 1806 of yacc.c  */
    8710 #line 2575 "parser.yy"
     8737#line 2614 "parser.yy"
    87118738    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87128739    break;
     
    87158742
    87168743/* Line 1806 of yacc.c  */
    8717 #line 2581 "parser.yy"
     8744#line 2620 "parser.yy"
    87188745    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    87198746    break;
     
    87228749
    87238750/* Line 1806 of yacc.c  */
    8724 #line 2583 "parser.yy"
     8751#line 2622 "parser.yy"
    87258752    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    87268753    break;
     
    87298756
    87308757/* Line 1806 of yacc.c  */
    8731 #line 2585 "parser.yy"
     8758#line 2624 "parser.yy"
    87328759    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87338760    break;
     
    87368763
    87378764/* Line 1806 of yacc.c  */
    8738 #line 2590 "parser.yy"
     8765#line 2629 "parser.yy"
    87398766    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    87408767    break;
     
    87438770
    87448771/* Line 1806 of yacc.c  */
    8745 #line 2592 "parser.yy"
     8772#line 2631 "parser.yy"
    87468773    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    87478774    break;
     
    87508777
    87518778/* Line 1806 of yacc.c  */
    8752 #line 2594 "parser.yy"
     8779#line 2633 "parser.yy"
    87538780    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87548781    break;
     
    87578784
    87588785/* Line 1806 of yacc.c  */
    8759 #line 2601 "parser.yy"
     8786#line 2640 "parser.yy"
    87608787    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    87618788    break;
     
    87648791
    87658792/* Line 1806 of yacc.c  */
    8766 #line 2612 "parser.yy"
     8793#line 2651 "parser.yy"
    87678794    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    87688795    break;
     
    87718798
    87728799/* Line 1806 of yacc.c  */
    8773 #line 2615 "parser.yy"
     8800#line 2654 "parser.yy"
    87748801    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    87758802    break;
     
    87788805
    87798806/* Line 1806 of yacc.c  */
    8780 #line 2617 "parser.yy"
     8807#line 2656 "parser.yy"
    87818808    { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
    87828809    break;
     
    87858812
    87868813/* Line 1806 of yacc.c  */
    8787 #line 2620 "parser.yy"
     8814#line 2659 "parser.yy"
    87888815    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    87898816    break;
     
    87928819
    87938820/* Line 1806 of yacc.c  */
    8794 #line 2622 "parser.yy"
     8821#line 2661 "parser.yy"
    87958822    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
    87968823    break;
     
    87998826
    88008827/* Line 1806 of yacc.c  */
    8801 #line 2624 "parser.yy"
     8828#line 2663 "parser.yy"
    88028829    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
    88038830    break;
     
    88068833
    88078834/* Line 1806 of yacc.c  */
    8808 #line 2638 "parser.yy"
     8835#line 2677 "parser.yy"
    88098836    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    88108837    break;
     
    88138840
    88148841/* Line 1806 of yacc.c  */
    8815 #line 2640 "parser.yy"
     8842#line 2679 "parser.yy"
    88168843    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    88178844    break;
     
    88208847
    88218848/* Line 1806 of yacc.c  */
    8822 #line 2645 "parser.yy"
     8849#line 2684 "parser.yy"
    88238850    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    88248851    break;
     
    88278854
    88288855/* Line 1806 of yacc.c  */
    8829 #line 2647 "parser.yy"
     8856#line 2686 "parser.yy"
    88308857    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    88318858    break;
     
    88348861
    88358862/* Line 1806 of yacc.c  */
    8836 #line 2649 "parser.yy"
     8863#line 2688 "parser.yy"
    88378864    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    88388865    break;
     
    88418868
    88428869/* Line 1806 of yacc.c  */
    8843 #line 2651 "parser.yy"
     8870#line 2690 "parser.yy"
    88448871    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    88458872    break;
     
    88488875
    88498876/* Line 1806 of yacc.c  */
    8850 #line 2653 "parser.yy"
     8877#line 2692 "parser.yy"
    88518878    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    88528879    break;
     
    88558882
    88568883/* Line 1806 of yacc.c  */
    8857 #line 2659 "parser.yy"
     8884#line 2698 "parser.yy"
    88588885    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    88598886    break;
     
    88628889
    88638890/* Line 1806 of yacc.c  */
    8864 #line 2661 "parser.yy"
     8891#line 2700 "parser.yy"
    88658892    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    88668893    break;
     
    88698896
    88708897/* Line 1806 of yacc.c  */
    8871 #line 2663 "parser.yy"
     8898#line 2702 "parser.yy"
    88728899    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    88738900    break;
     
    88768903
    88778904/* Line 1806 of yacc.c  */
    8878 #line 2668 "parser.yy"
     8905#line 2707 "parser.yy"
    88798906    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    88808907    break;
     
    88838910
    88848911/* Line 1806 of yacc.c  */
    8885 #line 2670 "parser.yy"
     8912#line 2709 "parser.yy"
    88868913    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    88878914    break;
     
    88908917
    88918918/* Line 1806 of yacc.c  */
    8892 #line 2680 "parser.yy"
     8919#line 2719 "parser.yy"
    88938920    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    88948921    break;
     
    88978924
    88988925/* Line 1806 of yacc.c  */
    8899 #line 2690 "parser.yy"
     8926#line 2729 "parser.yy"
    89008927    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89018928    break;
     
    89048931
    89058932/* Line 1806 of yacc.c  */
    8906 #line 2692 "parser.yy"
     8933#line 2731 "parser.yy"
    89078934    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89088935    break;
     
    89118938
    89128939/* Line 1806 of yacc.c  */
    8913 #line 2694 "parser.yy"
     8940#line 2733 "parser.yy"
    89148941    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89158942    break;
     
    89188945
    89198946/* Line 1806 of yacc.c  */
    8920 #line 2696 "parser.yy"
     8947#line 2735 "parser.yy"
    89218948    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89228949    break;
     
    89258952
    89268953/* Line 1806 of yacc.c  */
    8927 #line 2698 "parser.yy"
     8954#line 2737 "parser.yy"
    89288955    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89298956    break;
     
    89328959
    89338960/* Line 1806 of yacc.c  */
    8934 #line 2700 "parser.yy"
     8961#line 2739 "parser.yy"
    89358962    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89368963    break;
     
    89398966
    89408967/* Line 1806 of yacc.c  */
    8941 #line 2707 "parser.yy"
     8968#line 2746 "parser.yy"
    89428969    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89438970    break;
     
    89468973
    89478974/* Line 1806 of yacc.c  */
    8948 #line 2709 "parser.yy"
     8975#line 2748 "parser.yy"
    89498976    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    89508977    break;
     
    89538980
    89548981/* Line 1806 of yacc.c  */
    8955 #line 2711 "parser.yy"
     8982#line 2750 "parser.yy"
    89568983    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89578984    break;
     
    89608987
    89618988/* Line 1806 of yacc.c  */
    8962 #line 2713 "parser.yy"
     8989#line 2752 "parser.yy"
    89638990    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    89648991    break;
     
    89678994
    89688995/* Line 1806 of yacc.c  */
    8969 #line 2715 "parser.yy"
     8996#line 2754 "parser.yy"
    89708997    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    89718998    break;
     
    89749001
    89759002/* Line 1806 of yacc.c  */
    8976 #line 2717 "parser.yy"
     9003#line 2756 "parser.yy"
    89779004    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89789005    break;
     
    89819008
    89829009/* Line 1806 of yacc.c  */
    8983 #line 2719 "parser.yy"
     9010#line 2758 "parser.yy"
    89849011    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    89859012    break;
     
    89889015
    89899016/* Line 1806 of yacc.c  */
    8990 #line 2721 "parser.yy"
     9017#line 2760 "parser.yy"
    89919018    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89929019    break;
     
    89959022
    89969023/* Line 1806 of yacc.c  */
    8997 #line 2723 "parser.yy"
     9024#line 2762 "parser.yy"
    89989025    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    89999026    break;
     
    90029029
    90039030/* Line 1806 of yacc.c  */
    9004 #line 2725 "parser.yy"
     9031#line 2764 "parser.yy"
    90059032    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    90069033    break;
     
    90099036
    90109037/* Line 1806 of yacc.c  */
    9011 #line 2730 "parser.yy"
     9038#line 2769 "parser.yy"
    90129039    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    90139040    break;
     
    90169043
    90179044/* Line 1806 of yacc.c  */
    9018 #line 2732 "parser.yy"
     9045#line 2771 "parser.yy"
    90199046    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    90209047    break;
     
    90239050
    90249051/* Line 1806 of yacc.c  */
    9025 #line 2737 "parser.yy"
     9052#line 2776 "parser.yy"
    90269053    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
    90279054    break;
     
    90309057
    90319058/* Line 1806 of yacc.c  */
    9032 #line 2739 "parser.yy"
     9059#line 2778 "parser.yy"
    90339060    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
    90349061    break;
     
    90379064
    90389065/* Line 1806 of yacc.c  */
    9039 #line 2766 "parser.yy"
     9066#line 2805 "parser.yy"
    90409067    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    90419068    break;
     
    90449071
    90459072/* Line 1806 of yacc.c  */
    9046 #line 2777 "parser.yy"
     9073#line 2816 "parser.yy"
    90479074    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    90489075    break;
     
    90519078
    90529079/* Line 1806 of yacc.c  */
    9053 #line 2779 "parser.yy"
     9080#line 2818 "parser.yy"
    90549081    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    90559082    break;
     
    90589085
    90599086/* Line 1806 of yacc.c  */
    9060 #line 2781 "parser.yy"
     9087#line 2820 "parser.yy"
    90619088    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    90629089    break;
     
    90659092
    90669093/* Line 1806 of yacc.c  */
    9067 #line 2783 "parser.yy"
     9094#line 2822 "parser.yy"
    90689095    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    90699096    break;
     
    90729099
    90739100/* Line 1806 of yacc.c  */
    9074 #line 2785 "parser.yy"
     9101#line 2824 "parser.yy"
    90759102    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    90769103    break;
     
    90799106
    90809107/* Line 1806 of yacc.c  */
    9081 #line 2787 "parser.yy"
     9108#line 2826 "parser.yy"
    90829109    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    90839110    break;
     
    90869113
    90879114/* Line 1806 of yacc.c  */
    9088 #line 2794 "parser.yy"
     9115#line 2833 "parser.yy"
    90899116    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    90909117    break;
     
    90939120
    90949121/* Line 1806 of yacc.c  */
    9095 #line 2796 "parser.yy"
     9122#line 2835 "parser.yy"
    90969123    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    90979124    break;
     
    91009127
    91019128/* Line 1806 of yacc.c  */
    9102 #line 2798 "parser.yy"
     9129#line 2837 "parser.yy"
    91039130    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    91049131    break;
     
    91079134
    91089135/* Line 1806 of yacc.c  */
    9109 #line 2800 "parser.yy"
     9136#line 2839 "parser.yy"
    91109137    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    91119138    break;
     
    91149141
    91159142/* Line 1806 of yacc.c  */
    9116 #line 2802 "parser.yy"
     9143#line 2841 "parser.yy"
    91179144    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    91189145    break;
     
    91219148
    91229149/* Line 1806 of yacc.c  */
    9123 #line 2804 "parser.yy"
     9150#line 2843 "parser.yy"
    91249151    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    91259152    break;
     
    91289155
    91299156/* Line 1806 of yacc.c  */
    9130 #line 2809 "parser.yy"
     9157#line 2848 "parser.yy"
    91319158    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    91329159    break;
     
    91359162
    91369163/* Line 1806 of yacc.c  */
    9137 #line 2814 "parser.yy"
     9164#line 2853 "parser.yy"
    91389165    { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); }
    91399166    break;
     
    91429169
    91439170/* Line 1806 of yacc.c  */
    9144 #line 2816 "parser.yy"
     9171#line 2855 "parser.yy"
    91459172    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    91469173    break;
     
    91499176
    91509177/* Line 1806 of yacc.c  */
    9151 #line 2818 "parser.yy"
     9178#line 2857 "parser.yy"
    91529179    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    91539180    break;
     
    91569183
    91579184/* Line 1806 of yacc.c  */
    9158 #line 2842 "parser.yy"
     9185#line 2881 "parser.yy"
    91599186    { (yyval.en) = 0; }
    91609187    break;
     
    91639190
    91649191/* Line 1806 of yacc.c  */
    9165 #line 2844 "parser.yy"
     9192#line 2883 "parser.yy"
    91669193    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    91679194    break;
     
    91709197
    91719198/* Line 1806 of yacc.c  */
    9172 #line 9173 "Parser/parser.cc"
     9199#line 9200 "Parser/parser.cc"
    91739200      default: break;
    91749201    }
     
    94019428
    94029429/* Line 2067 of yacc.c  */
    9403 #line 2847 "parser.yy"
     9430#line 2886 "parser.yy"
    94049431
    94059432// ----end of grammar----
Note: See TracChangeset for help on using the changeset viewer.