Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/parser.cc

    rbf32bb8 r9059213  
    10231023static const yytype_uint16 yyrline[] =
    10241024{
    1025        0,   301,   301,   305,   312,   313,   314,   318,   319,   320,
    1026      324,   325,   329,   330,   334,   335,   339,   343,   344,   355,
    1027      357,   359,   361,   366,   367,   373,   377,   379,   381,   383,
    1028      385,   387,   389,   391,   393,   402,   403,   409,   410,   414,
    1029      415,   419,   422,   424,   426,   428,   433,   435,   440,   443,
    1030      445,   447,   452,   465,   467,   469,   471,   473,   475,   477,
    1031      479,   481,   483,   485,   492,   493,   499,   500,   501,   502,
    1032      506,   507,   509,   514,   515,   517,   519,   524,   525,   527,
    1033      532,   533,   535,   540,   541,   543,   545,   547,   552,   553,
    1034      555,   560,   561,   566,   567,   572,   573,   578,   579,   584,
    1035      585,   590,   591,   594,   596,   601,   606,   607,   609,   615,
    1036      616,   620,   621,   622,   623,   624,   625,   626,   627,   628,
    1037      629,   630,   631,   637,   639,   641,   643,   648,   649,   654,
    1038      655,   661,   662,   668,   669,   670,   671,   672,   673,   674,
    1039      675,   676,   686,   693,   695,   705,   706,   711,   713,   719,
    1040      721,   725,   726,   731,   736,   739,   741,   743,   753,   755,
    1041      766,   767,   769,   773,   775,   779,   780,   785,   786,   790,
    1042      795,   796,   800,   802,   808,   809,   813,   815,   817,   819,
    1043      825,   826,   830,   832,   837,   839,   841,   846,   848,   853,
    1044      855,   859,   862,   866,   869,   873,   875,   877,   879,   884,
    1045      886,   888,   893,   895,   897,   899,   901,   906,   908,   910,
    1046      912,   917,   929,   930,   935,   937,   942,   946,   948,   950,
    1047      952,   954,   960,   961,   967,   968,   972,   973,   978,   980,
    1048      986,   987,   989,   994,   999,  1009,  1011,  1015,  1016,  1021,
    1049     1023,  1027,  1028,  1032,  1034,  1038,  1039,  1043,  1044,  1048,
    1050     1049,  1064,  1065,  1066,  1067,  1068,  1072,  1077,  1084,  1094,
    1051     1099,  1104,  1112,  1117,  1122,  1127,  1132,  1140,  1162,  1167,
    1052     1174,  1176,  1183,  1188,  1193,  1204,  1209,  1214,  1219,  1224,
    1053     1233,  1238,  1246,  1247,  1248,  1249,  1255,  1260,  1268,  1269,
    1054     1270,  1271,  1275,  1276,  1277,  1278,  1283,  1284,  1293,  1294,
    1055     1299,  1300,  1305,  1307,  1309,  1311,  1313,  1316,  1315,  1327,
    1056     1328,  1330,  1340,  1341,  1346,  1348,  1350,  1352,  1354,  1357,
    1057     1359,  1362,  1367,  1369,  1371,  1373,  1375,  1377,  1379,  1381,
    1058     1383,  1385,  1387,  1389,  1391,  1397,  1398,  1400,  1402,  1404,
    1059     1409,  1410,  1416,  1417,  1419,  1421,  1426,  1428,  1430,  1432,
    1060     1437,  1438,  1440,  1442,  1447,  1448,  1450,  1455,  1456,  1458,
    1061     1460,  1465,  1467,  1469,  1474,  1475,  1479,  1481,  1487,  1486,
    1062     1490,  1492,  1497,  1499,  1505,  1506,  1511,  1512,  1514,  1515,
    1063     1524,  1525,  1527,  1529,  1534,  1536,  1542,  1543,  1545,  1548,
    1064     1551,  1556,  1557,  1562,  1567,  1571,  1573,  1579,  1578,  1585,
    1065     1587,  1593,  1594,  1602,  1603,  1607,  1608,  1609,  1611,  1613,
    1066     1620,  1621,  1623,  1625,  1630,  1631,  1637,  1638,  1642,  1643,
    1067     1648,  1649,  1650,  1652,  1660,  1661,  1663,  1666,  1668,  1672,
    1068     1673,  1674,  1676,  1678,  1682,  1687,  1695,  1696,  1705,  1707,
    1069     1712,  1713,  1714,  1718,  1719,  1720,  1724,  1725,  1726,  1730,
    1070     1731,  1732,  1737,  1738,  1739,  1740,  1746,  1747,  1749,  1754,
    1071     1755,  1760,  1761,  1762,  1763,  1764,  1779,  1780,  1785,  1786,
    1072     1792,  1794,  1797,  1799,  1801,  1824,  1825,  1827,  1829,  1834,
    1073     1835,  1837,  1842,  1847,  1848,  1854,  1853,  1857,  1861,  1863,
    1074     1865,  1871,  1872,  1877,  1882,  1884,  1889,  1891,  1892,  1894,
    1075     1899,  1901,  1903,  1908,  1910,  1915,  1920,  1928,  1934,  1933,
    1076     1947,  1948,  1953,  1954,  1958,  1963,  1968,  1976,  1981,  1992,
    1077     1993,  1998,  1999,  2005,  2006,  2010,  2011,  2012,  2015,  2014,
    1078     2025,  2034,  2040,  2046,  2055,  2061,  2067,  2073,  2079,  2087,
    1079     2093,  2101,  2107,  2116,  2117,  2118,  2122,  2126,  2128,  2133,
    1080     2134,  2138,  2139,  2144,  2150,  2151,  2154,  2156,  2157,  2161,
    1081     2162,  2163,  2164,  2198,  2200,  2201,  2203,  2208,  2213,  2218,
    1082     2220,  2222,  2227,  2229,  2231,  2233,  2238,  2240,  2249,  2251,
    1083     2252,  2257,  2259,  2261,  2266,  2268,  2270,  2275,  2277,  2279,
    1084     2288,  2289,  2290,  2294,  2296,  2298,  2303,  2305,  2307,  2312,
    1085     2314,  2316,  2331,  2333,  2334,  2336,  2341,  2342,  2347,  2349,
    1086     2351,  2356,  2358,  2360,  2362,  2367,  2369,  2371,  2381,  2383,
    1087     2384,  2386,  2391,  2393,  2395,  2400,  2402,  2404,  2406,  2411,
    1088     2413,  2415,  2446,  2448,  2449,  2451,  2456,  2461,  2469,  2471,
    1089     2473,  2478,  2480,  2485,  2487,  2501,  2502,  2504,  2509,  2511,
    1090     2513,  2515,  2517,  2522,  2523,  2525,  2527,  2532,  2534,  2536,
    1091     2542,  2544,  2546,  2550,  2552,  2554,  2556,  2570,  2571,  2573,
    1092     2578,  2580,  2582,  2584,  2586,  2591,  2592,  2594,  2596,  2601,
    1093     2603,  2605,  2611,  2612,  2614,  2623,  2626,  2628,  2631,  2633,
    1094     2635,  2648,  2649,  2651,  2656,  2658,  2660,  2662,  2664,  2669,
    1095     2670,  2672,  2674,  2679,  2681,  2689,  2690,  2691,  2696,  2697,
    1096     2701,  2703,  2705,  2707,  2709,  2711,  2718,  2720,  2722,  2724,
    1097     2726,  2728,  2730,  2732,  2734,  2736,  2741,  2743,  2745,  2750,
    1098     2776,  2777,  2779,  2783,  2784,  2788,  2790,  2792,  2794,  2796,
    1099     2798,  2805,  2807,  2809,  2811,  2813,  2815,  2820,  2825,  2827,
    1100     2829,  2847,  2849,  2854,  2855
     1025       0,   302,   302,   306,   313,   314,   315,   319,   320,   321,
     1026     325,   326,   330,   331,   335,   336,   340,   344,   345,   356,
     1027     358,   360,   362,   367,   368,   374,   378,   380,   381,   382,
     1028     384,   385,   387,   389,   391,   400,   401,   407,   408,   412,
     1029     413,   417,   421,   423,   425,   427,   432,   434,   438,   441,
     1030     443,   445,   450,   463,   465,   467,   469,   471,   473,   475,
     1031     477,   479,   481,   483,   490,   491,   497,   498,   499,   500,
     1032     504,   505,   507,   512,   513,   515,   517,   522,   523,   525,
     1033     530,   531,   533,   538,   539,   541,   543,   545,   550,   551,
     1034     553,   558,   559,   564,   565,   570,   571,   576,   577,   582,
     1035     583,   588,   589,   592,   594,   599,   604,   605,   607,   613,
     1036     614,   618,   619,   620,   621,   622,   623,   624,   625,   626,
     1037     627,   628,   629,   635,   637,   639,   641,   646,   647,   652,
     1038     653,   659,   660,   666,   667,   668,   669,   670,   671,   672,
     1039     673,   674,   684,   691,   693,   703,   704,   709,   711,   717,
     1040     719,   723,   724,   729,   734,   737,   739,   741,   751,   753,
     1041     764,   765,   767,   771,   773,   777,   778,   783,   784,   788,
     1042     793,   794,   798,   800,   806,   807,   811,   813,   815,   817,
     1043     823,   824,   828,   830,   835,   837,   839,   844,   846,   851,
     1044     853,   857,   860,   864,   867,   871,   873,   875,   877,   882,
     1045     884,   886,   891,   893,   895,   897,   899,   904,   906,   908,
     1046     910,   915,   927,   928,   933,   935,   940,   944,   946,   948,
     1047     950,   952,   958,   959,   965,   966,   970,   971,   976,   978,
     1048     984,   985,   987,   992,   997,  1007,  1009,  1013,  1014,  1019,
     1049    1021,  1025,  1026,  1030,  1032,  1036,  1037,  1041,  1042,  1046,
     1050    1047,  1062,  1063,  1064,  1065,  1066,  1070,  1075,  1082,  1092,
     1051    1097,  1102,  1110,  1115,  1120,  1125,  1130,  1138,  1160,  1165,
     1052    1172,  1174,  1181,  1186,  1191,  1202,  1207,  1212,  1217,  1222,
     1053    1231,  1236,  1244,  1245,  1246,  1247,  1253,  1258,  1266,  1267,
     1054    1268,  1269,  1273,  1274,  1275,  1276,  1281,  1282,  1291,  1292,
     1055    1297,  1298,  1303,  1305,  1307,  1309,  1311,  1314,  1313,  1325,
     1056    1326,  1328,  1338,  1339,  1344,  1346,  1348,  1350,  1352,  1355,
     1057    1357,  1360,  1365,  1367,  1369,  1371,  1373,  1375,  1377,  1379,
     1058    1381,  1383,  1385,  1387,  1389,  1395,  1396,  1398,  1400,  1402,
     1059    1407,  1408,  1414,  1415,  1417,  1419,  1424,  1426,  1428,  1430,
     1060    1435,  1436,  1438,  1440,  1445,  1446,  1448,  1453,  1454,  1456,
     1061    1458,  1463,  1465,  1467,  1472,  1473,  1477,  1479,  1485,  1484,
     1062    1488,  1490,  1495,  1497,  1503,  1504,  1509,  1510,  1512,  1513,
     1063    1522,  1523,  1525,  1527,  1532,  1534,  1540,  1541,  1543,  1546,
     1064    1549,  1554,  1555,  1560,  1565,  1569,  1571,  1577,  1576,  1583,
     1065    1585,  1591,  1592,  1600,  1601,  1605,  1606,  1607,  1609,  1611,
     1066    1618,  1619,  1621,  1623,  1628,  1629,  1635,  1636,  1640,  1641,
     1067    1646,  1647,  1648,  1650,  1658,  1659,  1661,  1664,  1666,  1670,
     1068    1671,  1672,  1674,  1676,  1680,  1685,  1693,  1694,  1703,  1705,
     1069    1710,  1711,  1712,  1716,  1717,  1718,  1722,  1723,  1724,  1728,
     1070    1729,  1730,  1735,  1736,  1737,  1738,  1744,  1745,  1747,  1752,
     1071    1753,  1758,  1759,  1760,  1761,  1762,  1777,  1778,  1783,  1784,
     1072    1790,  1792,  1795,  1797,  1799,  1822,  1823,  1825,  1827,  1832,
     1073    1833,  1835,  1840,  1845,  1846,  1852,  1851,  1855,  1859,  1861,
     1074    1863,  1869,  1870,  1875,  1880,  1882,  1887,  1889,  1890,  1892,
     1075    1897,  1899,  1901,  1906,  1908,  1913,  1918,  1926,  1932,  1931,
     1076    1945,  1946,  1951,  1952,  1956,  1961,  1966,  1974,  1979,  1990,
     1077    1991,  1996,  1997,  2003,  2004,  2008,  2009,  2010,  2013,  2012,
     1078    2023,  2032,  2038,  2044,  2053,  2059,  2065,  2071,  2077,  2085,
     1079    2091,  2099,  2105,  2114,  2115,  2116,  2120,  2124,  2126,  2131,
     1080    2132,  2136,  2137,  2142,  2148,  2149,  2152,  2154,  2155,  2159,
     1081    2160,  2161,  2162,  2196,  2198,  2199,  2201,  2206,  2211,  2216,
     1082    2218,  2220,  2225,  2227,  2229,  2231,  2236,  2238,  2247,  2249,
     1083    2250,  2255,  2257,  2259,  2264,  2266,  2268,  2273,  2275,  2277,
     1084    2286,  2287,  2288,  2292,  2294,  2296,  2301,  2303,  2305,  2310,
     1085    2312,  2314,  2329,  2331,  2332,  2334,  2339,  2340,  2345,  2347,
     1086    2349,  2354,  2356,  2358,  2360,  2365,  2367,  2369,  2379,  2381,
     1087    2382,  2384,  2389,  2391,  2393,  2398,  2400,  2402,  2404,  2409,
     1088    2411,  2413,  2444,  2446,  2447,  2449,  2454,  2459,  2467,  2469,
     1089    2471,  2476,  2478,  2483,  2485,  2499,  2500,  2502,  2507,  2509,
     1090    2511,  2513,  2515,  2520,  2521,  2523,  2525,  2530,  2532,  2534,
     1091    2540,  2542,  2544,  2548,  2550,  2552,  2554,  2568,  2569,  2571,
     1092    2576,  2578,  2580,  2582,  2584,  2589,  2590,  2592,  2594,  2599,
     1093    2601,  2603,  2609,  2610,  2612,  2621,  2624,  2626,  2629,  2631,
     1094    2633,  2646,  2647,  2649,  2654,  2656,  2658,  2660,  2662,  2667,
     1095    2668,  2670,  2672,  2677,  2679,  2687,  2688,  2689,  2694,  2695,
     1096    2699,  2701,  2703,  2705,  2707,  2709,  2716,  2718,  2720,  2722,
     1097    2724,  2727,  2729,  2731,  2733,  2735,  2740,  2742,  2744,  2749,
     1098    2775,  2776,  2778,  2782,  2783,  2787,  2789,  2791,  2793,  2795,
     1099    2797,  2804,  2806,  2808,  2810,  2812,  2814,  2819,  2824,  2826,
     1100    2828,  2846,  2848,  2853,  2854
    11011101};
    11021102#endif
     
    49774977
    49784978/* Line 1806 of yacc.c  */
    4979 #line 301 "parser.yy"
     4979#line 302 "parser.yy"
    49804980    { typedefTable.enterScope(); }
    49814981    break;
     
    49844984
    49854985/* Line 1806 of yacc.c  */
    4986 #line 305 "parser.yy"
     4986#line 306 "parser.yy"
    49874987    { typedefTable.leaveScope(); }
    49884988    break;
     
    49914991
    49924992/* Line 1806 of yacc.c  */
    4993 #line 312 "parser.yy"
     4993#line 313 "parser.yy"
    49944994    { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); }
    49954995    break;
     
    49984998
    49994999/* Line 1806 of yacc.c  */
    5000 #line 313 "parser.yy"
     5000#line 314 "parser.yy"
    50015001    { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); }
    50025002    break;
     
    50055005
    50065006/* Line 1806 of yacc.c  */
    5007 #line 314 "parser.yy"
     5007#line 315 "parser.yy"
    50085008    { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[(1) - (1)].tok) ) ); }
    50095009    break;
     
    50125012
    50135013/* Line 1806 of yacc.c  */
    5014 #line 339 "parser.yy"
     5014#line 340 "parser.yy"
    50155015    { (yyval.constant) = build_constantStr( *(yyvsp[(1) - (1)].str) ); }
    50165016    break;
     
    50195019
    50205020/* Line 1806 of yacc.c  */
    5021 #line 343 "parser.yy"
     5021#line 344 "parser.yy"
    50225022    { (yyval.str) = (yyvsp[(1) - (1)].tok); }
    50235023    break;
     
    50265026
    50275027/* Line 1806 of yacc.c  */
    5028 #line 345 "parser.yy"
     5028#line 346 "parser.yy"
    50295029    {
    50305030                        appendStr( (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].tok) );                                            // append 2nd juxtaposed string to 1st
     
    50375037
    50385038/* Line 1806 of yacc.c  */
    5039 #line 356 "parser.yy"
     5039#line 357 "parser.yy"
    50405040    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
    50415041    break;
     
    50445044
    50455045/* Line 1806 of yacc.c  */
    5046 #line 358 "parser.yy"
     5046#line 359 "parser.yy"
    50475047    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
    50485048    break;
     
    50515051
    50525052/* Line 1806 of yacc.c  */
    5053 #line 360 "parser.yy"
     5053#line 361 "parser.yy"
    50545054    { (yyval.en) = (yyvsp[(2) - (3)].en); }
    50555055    break;
     
    50585058
    50595059/* Line 1806 of yacc.c  */
    5060 #line 362 "parser.yy"
     5060#line 363 "parser.yy"
    50615061    { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[(2) - (3)].sn) ) ); }
    50625062    break;
     
    50655065
    50665066/* Line 1806 of yacc.c  */
    5067 #line 372 "parser.yy"
     5067#line 373 "parser.yy"
    50685068    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ) ); }
    50695069    break;
     
    50725072
    50735073/* Line 1806 of yacc.c  */
    5074 #line 374 "parser.yy"
     5074#line 375 "parser.yy"
    50755075    { (yyval.en) = new ExpressionNode( build_func( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ) ); }
    50765076    break;
     
    50795079
    50805080/* Line 1806 of yacc.c  */
    5081 #line 378 "parser.yy"
     5081#line 379 "parser.yy"
    50825082    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); }
    50835083    break;
    50845084
    5085   case 27:
    5086 
    5087 /* Line 1806 of yacc.c  */
    5088 #line 380 "parser.yy"
    5089     { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); }
    5090     break;
    5091 
    5092   case 28:
    5093 
    5094 /* Line 1806 of yacc.c  */
    5095 #line 382 "parser.yy"
    5096     { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), build_constantInteger( *(yyvsp[(3) - (3)].tok) ) ) ); }
    5097     break;
    5098 
    50995085  case 29:
    51005086
    51015087/* Line 1806 of yacc.c  */
    5102 #line 384 "parser.yy"
     5088#line 383 "parser.yy"
    51035089    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); }
    51045090    break;
    51055091
    5106   case 30:
     5092  case 31:
    51075093
    51085094/* Line 1806 of yacc.c  */
    51095095#line 386 "parser.yy"
    5110     { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); }
    5111     break;
    5112 
    5113   case 31:
     5096    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[(1) - (2)].en) ) ); }
     5097    break;
     5098
     5099  case 32:
    51145100
    51155101/* Line 1806 of yacc.c  */
    51165102#line 388 "parser.yy"
    5117     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[(1) - (2)].en) ) ); }
    5118     break;
    5119 
    5120   case 32:
     5103    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[(1) - (2)].en) ) ); }
     5104    break;
     5105
     5106  case 33:
    51215107
    51225108/* Line 1806 of yacc.c  */
    51235109#line 390 "parser.yy"
    5124     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[(1) - (2)].en) ) ); }
    5125     break;
    5126 
    5127   case 33:
     5110    { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ) ); }
     5111    break;
     5112
     5113  case 34:
    51285114
    51295115/* Line 1806 of yacc.c  */
    51305116#line 392 "parser.yy"
    5131     { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ) ); }
    5132     break;
    5133 
    5134   case 34:
    5135 
    5136 /* Line 1806 of yacc.c  */
    5137 #line 394 "parser.yy"
    51385117    {
    51395118                        Token fn;
     
    51465125
    51475126/* Line 1806 of yacc.c  */
    5148 #line 404 "parser.yy"
     5127#line 402 "parser.yy"
    51495128    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
    51505129    break;
     
    51535132
    51545133/* Line 1806 of yacc.c  */
    5155 #line 409 "parser.yy"
     5134#line 407 "parser.yy"
    51565135    { (yyval.en) = 0; }
    51575136    break;
     
    51605139
    51615140/* Line 1806 of yacc.c  */
    5162 #line 415 "parser.yy"
     5141#line 413 "parser.yy"
    51635142    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
    51645143    break;
    51655144
     5145  case 41:
     5146
     5147/* Line 1806 of yacc.c  */
     5148#line 420 "parser.yy"
     5149    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
     5150    break;
     5151
    51665152  case 42:
    51675153
    51685154/* Line 1806 of yacc.c  */
    5169 #line 423 "parser.yy"
    5170     { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), maybeMoveBuild<Expression>( (yyvsp[(3) - (3)].en) ) ) ); }
     5155#line 422 "parser.yy"
     5156    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); }
    51715157    break;
    51725158
     
    51745160
    51755161/* Line 1806 of yacc.c  */
    5176 #line 425 "parser.yy"
    5177     { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); }
     5162#line 424 "parser.yy"
     5163    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); }
    51785164    break;
    51795165
     
    51815167
    51825168/* Line 1806 of yacc.c  */
    5183 #line 427 "parser.yy"
    5184     { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), maybeMoveBuild<Expression>( (yyvsp[(3) - (3)].en) ) ) ); }
     5169#line 426 "parser.yy"
     5170    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); }
    51855171    break;
    51865172
     
    51885174
    51895175/* Line 1806 of yacc.c  */
    5190 #line 429 "parser.yy"
    5191     { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); }
    5192     break;
    5193 
    5194   case 46:
    5195 
    5196 /* Line 1806 of yacc.c  */
    5197 #line 434 "parser.yy"
    5198     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
    5199     break;
    5200 
    5201   case 47:
    5202 
    5203 /* Line 1806 of yacc.c  */
    5204 #line 436 "parser.yy"
    5205     { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); }
     5176#line 428 "parser.yy"
     5177    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); }
    52065178    break;
    52075179
     
    52095181
    52105182/* Line 1806 of yacc.c  */
     5183#line 442 "parser.yy"
     5184    { (yyval.en) = (yyvsp[(1) - (1)].en); }
     5185    break;
     5186
     5187  case 50:
     5188
     5189/* Line 1806 of yacc.c  */
    52115190#line 444 "parser.yy"
    5212     { (yyval.en) = (yyvsp[(1) - (1)].en); }
    5213     break;
    5214 
    5215   case 50:
     5191    { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
     5192    break;
     5193
     5194  case 51:
    52165195
    52175196/* Line 1806 of yacc.c  */
    52185197#line 446 "parser.yy"
    5219     { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
    5220     break;
    5221 
    5222   case 51:
    5223 
    5224 /* Line 1806 of yacc.c  */
    5225 #line 448 "parser.yy"
    52265198    { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); }
    52275199    break;
     
    52305202
    52315203/* Line 1806 of yacc.c  */
    5232 #line 453 "parser.yy"
     5204#line 451 "parser.yy"
    52335205    {
    52345206                        switch ( (yyvsp[(1) - (2)].op) ) {
     
    52485220
    52495221/* Line 1806 of yacc.c  */
     5222#line 464 "parser.yy"
     5223    { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); }
     5224    break;
     5225
     5226  case 54:
     5227
     5228/* Line 1806 of yacc.c  */
    52505229#line 466 "parser.yy"
    5251     { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); }
    5252     break;
    5253 
    5254   case 54:
     5230    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); }
     5231    break;
     5232
     5233  case 55:
    52555234
    52565235/* Line 1806 of yacc.c  */
    52575236#line 468 "parser.yy"
    5258     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); }
    5259     break;
    5260 
    5261   case 55:
     5237    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[(2) - (2)].en) ) ); }
     5238    break;
     5239
     5240  case 56:
    52625241
    52635242/* Line 1806 of yacc.c  */
    52645243#line 470 "parser.yy"
    5265     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[(2) - (2)].en) ) ); }
    5266     break;
    5267 
    5268   case 56:
     5244    { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); }
     5245    break;
     5246
     5247  case 57:
    52695248
    52705249/* Line 1806 of yacc.c  */
    52715250#line 472 "parser.yy"
    5272     { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); }
    5273     break;
    5274 
    5275   case 57:
     5251    { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); }
     5252    break;
     5253
     5254  case 58:
    52765255
    52775256/* Line 1806 of yacc.c  */
    52785257#line 474 "parser.yy"
    5279     { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); }
    5280     break;
    5281 
    5282   case 58:
     5258    { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); }
     5259    break;
     5260
     5261  case 59:
    52835262
    52845263/* Line 1806 of yacc.c  */
    52855264#line 476 "parser.yy"
    5286     { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); }
    5287     break;
    5288 
    5289   case 59:
     5265    { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); }
     5266    break;
     5267
     5268  case 60:
    52905269
    52915270/* Line 1806 of yacc.c  */
    52925271#line 478 "parser.yy"
    5293     { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); }
    5294     break;
    5295 
    5296   case 60:
     5272    { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); }
     5273    break;
     5274
     5275  case 61:
    52975276
    52985277/* Line 1806 of yacc.c  */
    52995278#line 480 "parser.yy"
    5300     { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); }
    5301     break;
    5302 
    5303   case 61:
     5279    { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); }
     5280    break;
     5281
     5282  case 62:
    53045283
    53055284/* Line 1806 of yacc.c  */
    53065285#line 482 "parser.yy"
    5307     { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); }
    5308     break;
    5309 
    5310   case 62:
     5286    { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); }
     5287    break;
     5288
     5289  case 63:
    53115290
    53125291/* Line 1806 of yacc.c  */
    53135292#line 484 "parser.yy"
    5314     { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); }
    5315     break;
    5316 
    5317   case 63:
    5318 
    5319 /* Line 1806 of yacc.c  */
    5320 #line 486 "parser.yy"
    53215293    { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); }
    53225294    break;
     
    53255297
    53265298/* Line 1806 of yacc.c  */
    5327 #line 492 "parser.yy"
     5299#line 490 "parser.yy"
    53285300    { (yyval.op) = OperKinds::PointTo; }
    53295301    break;
     
    53325304
    53335305/* Line 1806 of yacc.c  */
    5334 #line 493 "parser.yy"
     5306#line 491 "parser.yy"
    53355307    { (yyval.op) = OperKinds::AddressOf; }
    53365308    break;
     
    53395311
    53405312/* Line 1806 of yacc.c  */
     5313#line 497 "parser.yy"
     5314    { (yyval.op) = OperKinds::UnPlus; }
     5315    break;
     5316
     5317  case 67:
     5318
     5319/* Line 1806 of yacc.c  */
     5320#line 498 "parser.yy"
     5321    { (yyval.op) = OperKinds::UnMinus; }
     5322    break;
     5323
     5324  case 68:
     5325
     5326/* Line 1806 of yacc.c  */
    53415327#line 499 "parser.yy"
    5342     { (yyval.op) = OperKinds::UnPlus; }
    5343     break;
    5344 
    5345   case 67:
     5328    { (yyval.op) = OperKinds::Neg; }
     5329    break;
     5330
     5331  case 69:
    53465332
    53475333/* Line 1806 of yacc.c  */
    53485334#line 500 "parser.yy"
    5349     { (yyval.op) = OperKinds::UnMinus; }
    5350     break;
    5351 
    5352   case 68:
    5353 
    5354 /* Line 1806 of yacc.c  */
    5355 #line 501 "parser.yy"
    5356     { (yyval.op) = OperKinds::Neg; }
    5357     break;
    5358 
    5359   case 69:
    5360 
    5361 /* Line 1806 of yacc.c  */
    5362 #line 502 "parser.yy"
    53635335    { (yyval.op) = OperKinds::BitNeg; }
    53645336    break;
    53655337
    53665338  case 71:
     5339
     5340/* Line 1806 of yacc.c  */
     5341#line 506 "parser.yy"
     5342    { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }
     5343    break;
     5344
     5345  case 72:
    53675346
    53685347/* Line 1806 of yacc.c  */
     
    53715350    break;
    53725351
    5373   case 72:
    5374 
    5375 /* Line 1806 of yacc.c  */
    5376 #line 510 "parser.yy"
    5377     { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }
    5378     break;
    5379 
    53805352  case 74:
    53815353
    53825354/* Line 1806 of yacc.c  */
     5355#line 514 "parser.yy"
     5356    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5357    break;
     5358
     5359  case 75:
     5360
     5361/* Line 1806 of yacc.c  */
    53835362#line 516 "parser.yy"
    5384     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5385     break;
    5386 
    5387   case 75:
     5363    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5364    break;
     5365
     5366  case 76:
    53885367
    53895368/* Line 1806 of yacc.c  */
    53905369#line 518 "parser.yy"
    5391     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5392     break;
    5393 
    5394   case 76:
    5395 
    5396 /* Line 1806 of yacc.c  */
    5397 #line 520 "parser.yy"
    53985370    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53995371    break;
     
    54025374
    54035375/* Line 1806 of yacc.c  */
     5376#line 524 "parser.yy"
     5377    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5378    break;
     5379
     5380  case 79:
     5381
     5382/* Line 1806 of yacc.c  */
    54045383#line 526 "parser.yy"
    5405     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5406     break;
    5407 
    5408   case 79:
    5409 
    5410 /* Line 1806 of yacc.c  */
    5411 #line 528 "parser.yy"
    54125384    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54135385    break;
     
    54165388
    54175389/* Line 1806 of yacc.c  */
     5390#line 532 "parser.yy"
     5391    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5392    break;
     5393
     5394  case 82:
     5395
     5396/* Line 1806 of yacc.c  */
    54185397#line 534 "parser.yy"
    5419     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5420     break;
    5421 
    5422   case 82:
    5423 
    5424 /* Line 1806 of yacc.c  */
    5425 #line 536 "parser.yy"
    54265398    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54275399    break;
     
    54305402
    54315403/* Line 1806 of yacc.c  */
     5404#line 540 "parser.yy"
     5405    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5406    break;
     5407
     5408  case 85:
     5409
     5410/* Line 1806 of yacc.c  */
    54325411#line 542 "parser.yy"
    5433     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5434     break;
    5435 
    5436   case 85:
     5412    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5413    break;
     5414
     5415  case 86:
    54375416
    54385417/* Line 1806 of yacc.c  */
    54395418#line 544 "parser.yy"
    5440     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5441     break;
    5442 
    5443   case 86:
     5419    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5420    break;
     5421
     5422  case 87:
    54445423
    54455424/* Line 1806 of yacc.c  */
    54465425#line 546 "parser.yy"
    5447     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5448     break;
    5449 
    5450   case 87:
    5451 
    5452 /* Line 1806 of yacc.c  */
    5453 #line 548 "parser.yy"
    54545426    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54555427    break;
     
    54585430
    54595431/* Line 1806 of yacc.c  */
     5432#line 552 "parser.yy"
     5433    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5434    break;
     5435
     5436  case 90:
     5437
     5438/* Line 1806 of yacc.c  */
    54605439#line 554 "parser.yy"
    5461     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5462     break;
    5463 
    5464   case 90:
    5465 
    5466 /* Line 1806 of yacc.c  */
    5467 #line 556 "parser.yy"
    54685440    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54695441    break;
     
    54725444
    54735445/* Line 1806 of yacc.c  */
    5474 #line 562 "parser.yy"
     5446#line 560 "parser.yy"
    54755447    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54765448    break;
     
    54795451
    54805452/* Line 1806 of yacc.c  */
    5481 #line 568 "parser.yy"
     5453#line 566 "parser.yy"
    54825454    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54835455    break;
     
    54865458
    54875459/* Line 1806 of yacc.c  */
    5488 #line 574 "parser.yy"
     5460#line 572 "parser.yy"
    54895461    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54905462    break;
     
    54935465
    54945466/* Line 1806 of yacc.c  */
    5495 #line 580 "parser.yy"
     5467#line 578 "parser.yy"
    54965468    { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); }
    54975469    break;
     
    55005472
    55015473/* Line 1806 of yacc.c  */
    5502 #line 586 "parser.yy"
     5474#line 584 "parser.yy"
    55035475    { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); }
    55045476    break;
     
    55075479
    55085480/* Line 1806 of yacc.c  */
    5509 #line 592 "parser.yy"
     5481#line 590 "parser.yy"
    55105482    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
    55115483    break;
     
    55145486
    55155487/* Line 1806 of yacc.c  */
     5488#line 593 "parser.yy"
     5489    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); }
     5490    break;
     5491
     5492  case 104:
     5493
     5494/* Line 1806 of yacc.c  */
    55165495#line 595 "parser.yy"
    5517     { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); }
    5518     break;
    5519 
    5520   case 104:
    5521 
    5522 /* Line 1806 of yacc.c  */
    5523 #line 597 "parser.yy"
    55245496    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
    55255497    break;
     
    55285500
    55295501/* Line 1806 of yacc.c  */
     5502#line 606 "parser.yy"
     5503    { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5504    break;
     5505
     5506  case 108:
     5507
     5508/* Line 1806 of yacc.c  */
    55305509#line 608 "parser.yy"
    5531     { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5532     break;
    5533 
    5534   case 108:
    5535 
    5536 /* Line 1806 of yacc.c  */
    5537 #line 610 "parser.yy"
    55385510    { (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) ) ); }
    55395511    break;
     
    55425514
    55435515/* Line 1806 of yacc.c  */
    5544 #line 615 "parser.yy"
     5516#line 613 "parser.yy"
    55455517    { (yyval.en) = nullptr; }
    55465518    break;
     
    55495521
    55505522/* Line 1806 of yacc.c  */
     5523#line 618 "parser.yy"
     5524    { (yyval.op) = OperKinds::Assign; }
     5525    break;
     5526
     5527  case 112:
     5528
     5529/* Line 1806 of yacc.c  */
     5530#line 619 "parser.yy"
     5531    { (yyval.op) = OperKinds::AtAssn; }
     5532    break;
     5533
     5534  case 113:
     5535
     5536/* Line 1806 of yacc.c  */
    55515537#line 620 "parser.yy"
    5552     { (yyval.op) = OperKinds::Assign; }
    5553     break;
    5554 
    5555   case 112:
     5538    { (yyval.op) = OperKinds::MulAssn; }
     5539    break;
     5540
     5541  case 114:
    55565542
    55575543/* Line 1806 of yacc.c  */
    55585544#line 621 "parser.yy"
    5559     { (yyval.op) = OperKinds::AtAssn; }
    5560     break;
    5561 
    5562   case 113:
     5545    { (yyval.op) = OperKinds::DivAssn; }
     5546    break;
     5547
     5548  case 115:
    55635549
    55645550/* Line 1806 of yacc.c  */
    55655551#line 622 "parser.yy"
    5566     { (yyval.op) = OperKinds::MulAssn; }
    5567     break;
    5568 
    5569   case 114:
     5552    { (yyval.op) = OperKinds::ModAssn; }
     5553    break;
     5554
     5555  case 116:
    55705556
    55715557/* Line 1806 of yacc.c  */
    55725558#line 623 "parser.yy"
    5573     { (yyval.op) = OperKinds::DivAssn; }
    5574     break;
    5575 
    5576   case 115:
     5559    { (yyval.op) = OperKinds::PlusAssn; }
     5560    break;
     5561
     5562  case 117:
    55775563
    55785564/* Line 1806 of yacc.c  */
    55795565#line 624 "parser.yy"
    5580     { (yyval.op) = OperKinds::ModAssn; }
    5581     break;
    5582 
    5583   case 116:
     5566    { (yyval.op) = OperKinds::MinusAssn; }
     5567    break;
     5568
     5569  case 118:
    55845570
    55855571/* Line 1806 of yacc.c  */
    55865572#line 625 "parser.yy"
    5587     { (yyval.op) = OperKinds::PlusAssn; }
    5588     break;
    5589 
    5590   case 117:
     5573    { (yyval.op) = OperKinds::LSAssn; }
     5574    break;
     5575
     5576  case 119:
    55915577
    55925578/* Line 1806 of yacc.c  */
    55935579#line 626 "parser.yy"
    5594     { (yyval.op) = OperKinds::MinusAssn; }
    5595     break;
    5596 
    5597   case 118:
     5580    { (yyval.op) = OperKinds::RSAssn; }
     5581    break;
     5582
     5583  case 120:
    55985584
    55995585/* Line 1806 of yacc.c  */
    56005586#line 627 "parser.yy"
    5601     { (yyval.op) = OperKinds::LSAssn; }
    5602     break;
    5603 
    5604   case 119:
     5587    { (yyval.op) = OperKinds::AndAssn; }
     5588    break;
     5589
     5590  case 121:
    56055591
    56065592/* Line 1806 of yacc.c  */
    56075593#line 628 "parser.yy"
    5608     { (yyval.op) = OperKinds::RSAssn; }
    5609     break;
    5610 
    5611   case 120:
     5594    { (yyval.op) = OperKinds::ERAssn; }
     5595    break;
     5596
     5597  case 122:
    56125598
    56135599/* Line 1806 of yacc.c  */
    56145600#line 629 "parser.yy"
    5615     { (yyval.op) = OperKinds::AndAssn; }
    5616     break;
    5617 
    5618   case 121:
    5619 
    5620 /* Line 1806 of yacc.c  */
    5621 #line 630 "parser.yy"
    5622     { (yyval.op) = OperKinds::ERAssn; }
    5623     break;
    5624 
    5625   case 122:
    5626 
    5627 /* Line 1806 of yacc.c  */
    5628 #line 631 "parser.yy"
    56295601    { (yyval.op) = OperKinds::OrAssn; }
    56305602    break;
     
    56335605
    56345606/* Line 1806 of yacc.c  */
     5607#line 636 "parser.yy"
     5608    { (yyval.en) = new ExpressionNode( build_tuple() ); }
     5609    break;
     5610
     5611  case 124:
     5612
     5613/* Line 1806 of yacc.c  */
    56355614#line 638 "parser.yy"
    5636     { (yyval.en) = new ExpressionNode( build_tuple() ); }
    5637     break;
    5638 
    5639   case 124:
     5615    { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[(3) - (5)].en) ) ); }
     5616    break;
     5617
     5618  case 125:
    56405619
    56415620/* Line 1806 of yacc.c  */
    56425621#line 640 "parser.yy"
    5643     { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[(3) - (5)].en) ) ); }
    5644     break;
    5645 
    5646   case 125:
     5622    { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) ) ) ); }
     5623    break;
     5624
     5625  case 126:
    56475626
    56485627/* Line 1806 of yacc.c  */
    56495628#line 642 "parser.yy"
    5650     { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) ) ) ); }
    5651     break;
    5652 
    5653   case 126:
    5654 
    5655 /* Line 1806 of yacc.c  */
    5656 #line 644 "parser.yy"
    56575629    { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_last( (yyvsp[(5) - (7)].en) ) ) ); }
    56585630    break;
     
    56615633
    56625634/* Line 1806 of yacc.c  */
    5663 #line 650 "parser.yy"
     5635#line 648 "parser.yy"
    56645636    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
    56655637    break;
     
    56685640
    56695641/* Line 1806 of yacc.c  */
    5670 #line 656 "parser.yy"
     5642#line 654 "parser.yy"
    56715643    { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    56725644    break;
     
    56755647
    56765648/* Line 1806 of yacc.c  */
    5677 #line 661 "parser.yy"
     5649#line 659 "parser.yy"
    56785650    { (yyval.en) = 0; }
    56795651    break;
     
    56825654
    56835655/* Line 1806 of yacc.c  */
    5684 #line 670 "parser.yy"
     5656#line 668 "parser.yy"
    56855657    { (yyval.sn) = (yyvsp[(1) - (1)].sn); }
    56865658    break;
     
    56895661
    56905662/* Line 1806 of yacc.c  */
    5691 #line 677 "parser.yy"
     5663#line 675 "parser.yy"
    56925664    {
    56935665                        Token fn;
     
    57005672
    57015673/* Line 1806 of yacc.c  */
    5702 #line 687 "parser.yy"
     5674#line 685 "parser.yy"
    57035675    {
    57045676                        (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) );
     
    57095681
    57105682/* Line 1806 of yacc.c  */
    5711 #line 694 "parser.yy"
     5683#line 692 "parser.yy"
    57125684    { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) ); }
    57135685    break;
     
    57165688
    57175689/* Line 1806 of yacc.c  */
    5718 #line 701 "parser.yy"
     5690#line 699 "parser.yy"
    57195691    { (yyval.sn) = new StatementNode( build_compound( (yyvsp[(5) - (7)].sn) ) ); }
    57205692    break;
     
    57235695
    57245696/* Line 1806 of yacc.c  */
    5725 #line 707 "parser.yy"
     5697#line 705 "parser.yy"
    57265698    { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
    57275699    break;
     
    57305702
    57315703/* Line 1806 of yacc.c  */
     5704#line 710 "parser.yy"
     5705    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
     5706    break;
     5707
     5708  case 148:
     5709
     5710/* Line 1806 of yacc.c  */
    57325711#line 712 "parser.yy"
    5733     { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    5734     break;
    5735 
    5736   case 148:
    5737 
    5738 /* Line 1806 of yacc.c  */
    5739 #line 714 "parser.yy"
    57405712    {   // mark all fields in list
    57415713                        for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     
    57485720
    57495721/* Line 1806 of yacc.c  */
    5750 #line 720 "parser.yy"
     5722#line 718 "parser.yy"
    57515723    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    57525724    break;
     
    57555727
    57565728/* Line 1806 of yacc.c  */
    5757 #line 727 "parser.yy"
     5729#line 725 "parser.yy"
    57585730    { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
    57595731    break;
     
    57625734
    57635735/* Line 1806 of yacc.c  */
    5764 #line 732 "parser.yy"
     5736#line 730 "parser.yy"
    57655737    { (yyval.sn) = new StatementNode( build_expr( (yyvsp[(1) - (2)].en) ) ); }
    57665738    break;
     
    57695741
    57705742/* Line 1806 of yacc.c  */
     5743#line 736 "parser.yy"
     5744    { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); }
     5745    break;
     5746
     5747  case 155:
     5748
     5749/* Line 1806 of yacc.c  */
    57715750#line 738 "parser.yy"
    5772     { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); }
    5773     break;
    5774 
    5775   case 155:
     5751    { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); }
     5752    break;
     5753
     5754  case 156:
    57765755
    57775756/* Line 1806 of yacc.c  */
    57785757#line 740 "parser.yy"
    5779     { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); }
    5780     break;
    5781 
    5782   case 156:
     5758    { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
     5759    break;
     5760
     5761  case 157:
    57835762
    57845763/* Line 1806 of yacc.c  */
    57855764#line 742 "parser.yy"
    5786     { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    5787     break;
    5788 
    5789   case 157:
    5790 
    5791 /* Line 1806 of yacc.c  */
    5792 #line 744 "parser.yy"
    57935765    {
    57945766                        StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
     
    58055777
    58065778/* Line 1806 of yacc.c  */
     5779#line 752 "parser.yy"
     5780    { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
     5781    break;
     5782
     5783  case 159:
     5784
     5785/* Line 1806 of yacc.c  */
    58075786#line 754 "parser.yy"
    5808     { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    5809     break;
    5810 
    5811   case 159:
    5812 
    5813 /* Line 1806 of yacc.c  */
    5814 #line 756 "parser.yy"
    58155787    {
    58165788                        StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
     
    58225794
    58235795/* Line 1806 of yacc.c  */
     5796#line 764 "parser.yy"
     5797    { (yyval.en) = (yyvsp[(1) - (1)].en); }
     5798    break;
     5799
     5800  case 161:
     5801
     5802/* Line 1806 of yacc.c  */
    58245803#line 766 "parser.yy"
    5825     { (yyval.en) = (yyvsp[(1) - (1)].en); }
    5826     break;
    5827 
    5828   case 161:
    5829 
    5830 /* Line 1806 of yacc.c  */
    5831 #line 768 "parser.yy"
    58325804    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    58335805    break;
     
    58365808
    58375809/* Line 1806 of yacc.c  */
     5810#line 771 "parser.yy"
     5811    { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); }
     5812    break;
     5813
     5814  case 164:
     5815
     5816/* Line 1806 of yacc.c  */
    58385817#line 773 "parser.yy"
    5839     { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); }
    5840     break;
    5841 
    5842   case 164:
    5843 
    5844 /* Line 1806 of yacc.c  */
    5845 #line 775 "parser.yy"
    58465818    { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_last( new StatementNode( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); }
    58475819    break;
     
    58505822
    58515823/* Line 1806 of yacc.c  */
    5852 #line 779 "parser.yy"
     5824#line 777 "parser.yy"
    58535825    { (yyval.sn) = (yyvsp[(2) - (3)].sn); }
    58545826    break;
     
    58575829
    58585830/* Line 1806 of yacc.c  */
    5859 #line 780 "parser.yy"
     5831#line 778 "parser.yy"
    58605832    { (yyval.sn) = new StatementNode( build_default() ); }
    58615833    break;
     
    58645836
    58655837/* Line 1806 of yacc.c  */
    5866 #line 786 "parser.yy"
     5838#line 784 "parser.yy"
    58675839    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) )); }
    58685840    break;
     
    58715843
    58725844/* Line 1806 of yacc.c  */
    5873 #line 790 "parser.yy"
     5845#line 788 "parser.yy"
    58745846    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
    58755847    break;
     
    58785850
    58795851/* Line 1806 of yacc.c  */
    5880 #line 795 "parser.yy"
     5852#line 793 "parser.yy"
    58815853    { (yyval.sn) = 0; }
    58825854    break;
     
    58855857
    58865858/* Line 1806 of yacc.c  */
     5859#line 799 "parser.yy"
     5860    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
     5861    break;
     5862
     5863  case 173:
     5864
     5865/* Line 1806 of yacc.c  */
    58875866#line 801 "parser.yy"
    5888     { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
    5889     break;
    5890 
    5891   case 173:
    5892 
    5893 /* Line 1806 of yacc.c  */
    5894 #line 803 "parser.yy"
    58955867    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(3) - (3)].sn) ) ) ) ) ); }
    58965868    break;
     
    58995871
    59005872/* Line 1806 of yacc.c  */
    5901 #line 808 "parser.yy"
     5873#line 806 "parser.yy"
    59025874    { (yyval.sn) = 0; }
    59035875    break;
     
    59065878
    59075879/* Line 1806 of yacc.c  */
     5880#line 812 "parser.yy"
     5881    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
     5882    break;
     5883
     5884  case 177:
     5885
     5886/* Line 1806 of yacc.c  */
    59085887#line 814 "parser.yy"
    5909     { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    5910     break;
    5911 
    5912   case 177:
     5888    { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(2) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ) ) ) ); }
     5889    break;
     5890
     5891  case 178:
    59135892
    59145893/* Line 1806 of yacc.c  */
    59155894#line 816 "parser.yy"
    5916     { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(2) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ) ) ) ); }
    5917     break;
    5918 
    5919   case 178:
     5895    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
     5896    break;
     5897
     5898  case 179:
    59205899
    59215900/* Line 1806 of yacc.c  */
    59225901#line 818 "parser.yy"
    5923     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
    5924     break;
    5925 
    5926   case 179:
    5927 
    5928 /* Line 1806 of yacc.c  */
    5929 #line 820 "parser.yy"
    59305902    { (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) ) ) ) ) ) ); }
    59315903    break;
     
    59345906
    59355907/* Line 1806 of yacc.c  */
    5936 #line 825 "parser.yy"
     5908#line 823 "parser.yy"
    59375909    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
    59385910    break;
    59395911
    59405912  case 182:
     5913
     5914/* Line 1806 of yacc.c  */
     5915#line 829 "parser.yy"
     5916    { (yyval.sn) = 0; }
     5917    break;
     5918
     5919  case 183:
    59415920
    59425921/* Line 1806 of yacc.c  */
     
    59455924    break;
    59465925
    5947   case 183:
    5948 
    5949 /* Line 1806 of yacc.c  */
    5950 #line 833 "parser.yy"
    5951     { (yyval.sn) = 0; }
    5952     break;
    5953 
    59545926  case 184:
    59555927
    59565928/* Line 1806 of yacc.c  */
     5929#line 836 "parser.yy"
     5930    { (yyval.sn) = new StatementNode( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
     5931    break;
     5932
     5933  case 185:
     5934
     5935/* Line 1806 of yacc.c  */
    59575936#line 838 "parser.yy"
    5958     { (yyval.sn) = new StatementNode( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    5959     break;
    5960 
    5961   case 185:
     5937    { (yyval.sn) = new StatementNode( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn), true ) ); }
     5938    break;
     5939
     5940  case 186:
    59625941
    59635942/* Line 1806 of yacc.c  */
    59645943#line 840 "parser.yy"
    5965     { (yyval.sn) = new StatementNode( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn), true ) ); }
    5966     break;
    5967 
    5968   case 186:
    5969 
    5970 /* Line 1806 of yacc.c  */
    5971 #line 842 "parser.yy"
    59725944    { (yyval.sn) = new StatementNode( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); }
    59735945    break;
     
    59765948
    59775949/* Line 1806 of yacc.c  */
     5950#line 845 "parser.yy"
     5951    { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
     5952    break;
     5953
     5954  case 188:
     5955
     5956/* Line 1806 of yacc.c  */
    59785957#line 847 "parser.yy"
    5979     { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
    5980     break;
    5981 
    5982   case 188:
    5983 
    5984 /* Line 1806 of yacc.c  */
    5985 #line 849 "parser.yy"
    59865958    { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
    59875959    break;
     
    59905962
    59915963/* Line 1806 of yacc.c  */
    5992 #line 854 "parser.yy"
     5964#line 852 "parser.yy"
    59935965    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); }
    59945966    break;
     
    59975969
    59985970/* Line 1806 of yacc.c  */
    5999 #line 858 "parser.yy"
     5971#line 856 "parser.yy"
    60005972    { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); }
    60015973    break;
     
    60045976
    60055977/* Line 1806 of yacc.c  */
    6006 #line 861 "parser.yy"
     5978#line 859 "parser.yy"
    60075979    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Continue ) ); }
    60085980    break;
     
    60115983
    60125984/* Line 1806 of yacc.c  */
    6013 #line 865 "parser.yy"
     5985#line 863 "parser.yy"
    60145986    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); }
    60155987    break;
     
    60185990
    60195991/* Line 1806 of yacc.c  */
    6020 #line 868 "parser.yy"
     5992#line 866 "parser.yy"
    60215993    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
    60225994    break;
     
    60255997
    60265998/* Line 1806 of yacc.c  */
     5999#line 870 "parser.yy"
     6000    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); }
     6001    break;
     6002
     6003  case 195:
     6004
     6005/* Line 1806 of yacc.c  */
    60276006#line 872 "parser.yy"
    6028     { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); }
    6029     break;
    6030 
    6031   case 195:
     6007    { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); }
     6008    break;
     6009
     6010  case 196:
    60326011
    60336012/* Line 1806 of yacc.c  */
    60346013#line 874 "parser.yy"
    6035     { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); }
    6036     break;
    6037 
    6038   case 196:
     6014    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
     6015    break;
     6016
     6017  case 197:
    60396018
    60406019/* Line 1806 of yacc.c  */
     
    60436022    break;
    60446023
    6045   case 197:
     6024  case 198:
    60466025
    60476026/* Line 1806 of yacc.c  */
    60486027#line 878 "parser.yy"
    6049     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
    6050     break;
    6051 
    6052   case 198:
    6053 
    6054 /* Line 1806 of yacc.c  */
    6055 #line 880 "parser.yy"
    60566028    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (5)].en) ) ); }
    60576029    break;
     
    60606032
    60616033/* Line 1806 of yacc.c  */
     6034#line 883 "parser.yy"
     6035    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0 ) ); }
     6036    break;
     6037
     6038  case 200:
     6039
     6040/* Line 1806 of yacc.c  */
    60626041#line 885 "parser.yy"
    6063     { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0 ) ); }
    6064     break;
    6065 
    6066   case 200:
     6042    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn) ) ); }
     6043    break;
     6044
     6045  case 201:
    60676046
    60686047/* Line 1806 of yacc.c  */
    60696048#line 887 "parser.yy"
    6070     { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn) ) ); }
    6071     break;
    6072 
    6073   case 201:
    6074 
    6075 /* Line 1806 of yacc.c  */
    6076 #line 889 "parser.yy"
    60776049    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (4)].sn), (yyvsp[(3) - (4)].sn), (yyvsp[(4) - (4)].sn) ) ); }
    60786050    break;
     
    60816053
    60826054/* Line 1806 of yacc.c  */
     6055#line 894 "parser.yy"
     6056    { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
     6057    break;
     6058
     6059  case 204:
     6060
     6061/* Line 1806 of yacc.c  */
    60836062#line 896 "parser.yy"
     6063    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
     6064    break;
     6065
     6066  case 205:
     6067
     6068/* Line 1806 of yacc.c  */
     6069#line 898 "parser.yy"
    60846070    { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
    60856071    break;
    60866072
    6087   case 204:
    6088 
    6089 /* Line 1806 of yacc.c  */
    6090 #line 898 "parser.yy"
     6073  case 206:
     6074
     6075/* Line 1806 of yacc.c  */
     6076#line 900 "parser.yy"
    60916077    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
    60926078    break;
    60936079
    6094   case 205:
    6095 
    6096 /* Line 1806 of yacc.c  */
    6097 #line 900 "parser.yy"
    6098     { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
    6099     break;
    6100 
    6101   case 206:
    6102 
    6103 /* Line 1806 of yacc.c  */
    6104 #line 902 "parser.yy"
    6105     { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
    6106     break;
    6107 
    61086080  case 207:
    61096081
    61106082/* Line 1806 of yacc.c  */
     6083#line 905 "parser.yy"
     6084    { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
     6085    break;
     6086
     6087  case 208:
     6088
     6089/* Line 1806 of yacc.c  */
    61116090#line 907 "parser.yy"
     6091    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
     6092    break;
     6093
     6094  case 209:
     6095
     6096/* Line 1806 of yacc.c  */
     6097#line 909 "parser.yy"
    61126098    { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
    61136099    break;
    61146100
    6115   case 208:
    6116 
    6117 /* Line 1806 of yacc.c  */
    6118 #line 909 "parser.yy"
     6101  case 210:
     6102
     6103/* Line 1806 of yacc.c  */
     6104#line 911 "parser.yy"
    61196105    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
    61206106    break;
    61216107
    6122   case 209:
    6123 
    6124 /* Line 1806 of yacc.c  */
    6125 #line 911 "parser.yy"
    6126     { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
    6127     break;
    6128 
    6129   case 210:
    6130 
    6131 /* Line 1806 of yacc.c  */
    6132 #line 913 "parser.yy"
    6133     { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
    6134     break;
    6135 
    61366108  case 211:
    61376109
    61386110/* Line 1806 of yacc.c  */
    6139 #line 918 "parser.yy"
     6111#line 916 "parser.yy"
    61406112    {
    61416113                        (yyval.sn) = new StatementNode( build_finally( (yyvsp[(2) - (2)].sn) ) );
     
    61466118
    61476119/* Line 1806 of yacc.c  */
    6148 #line 931 "parser.yy"
     6120#line 929 "parser.yy"
    61496121    {
    61506122                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    61566128
    61576129/* Line 1806 of yacc.c  */
     6130#line 934 "parser.yy"
     6131    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     6132    break;
     6133
     6134  case 215:
     6135
     6136/* Line 1806 of yacc.c  */
    61586137#line 936 "parser.yy"
    6159     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    6160     break;
    6161 
    6162   case 215:
    6163 
    6164 /* Line 1806 of yacc.c  */
    6165 #line 938 "parser.yy"
    61666138    {
    61676139                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    61736145
    61746146/* Line 1806 of yacc.c  */
     6147#line 945 "parser.yy"
     6148    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ) ); }
     6149    break;
     6150
     6151  case 218:
     6152
     6153/* Line 1806 of yacc.c  */
    61756154#line 947 "parser.yy"
    6176     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ) ); }
    6177     break;
    6178 
    6179   case 218:
     6155    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ) ); }
     6156    break;
     6157
     6158  case 219:
    61806159
    61816160/* Line 1806 of yacc.c  */
    61826161#line 949 "parser.yy"
    6183     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ) ); }
    6184     break;
    6185 
    6186   case 219:
     6162    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ) ); }
     6163    break;
     6164
     6165  case 220:
    61876166
    61886167/* Line 1806 of yacc.c  */
    61896168#line 951 "parser.yy"
    6190     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ) ); }
    6191     break;
    6192 
    6193   case 220:
     6169    { (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) ) ); }
     6170    break;
     6171
     6172  case 221:
    61946173
    61956174/* Line 1806 of yacc.c  */
    61966175#line 953 "parser.yy"
    6197     { (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) ) ); }
    6198     break;
    6199 
    6200   case 221:
    6201 
    6202 /* Line 1806 of yacc.c  */
    6203 #line 955 "parser.yy"
    62046176    { (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) ) ); }
    62056177    break;
     
    62086180
    62096181/* Line 1806 of yacc.c  */
     6182#line 958 "parser.yy"
     6183    { (yyval.flag) = false; }
     6184    break;
     6185
     6186  case 223:
     6187
     6188/* Line 1806 of yacc.c  */
    62106189#line 960 "parser.yy"
    6211     { (yyval.flag) = false; }
    6212     break;
    6213 
    6214   case 223:
    6215 
    6216 /* Line 1806 of yacc.c  */
    6217 #line 962 "parser.yy"
    62186190    { (yyval.flag) = true; }
    62196191    break;
     
    62226194
    62236195/* Line 1806 of yacc.c  */
    6224 #line 967 "parser.yy"
     6196#line 965 "parser.yy"
    62256197    { (yyval.en) = 0; }
    62266198    break;
     
    62296201
    62306202/* Line 1806 of yacc.c  */
    6231 #line 974 "parser.yy"
     6203#line 972 "parser.yy"
    62326204    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
    62336205    break;
     
    62366208
    62376209/* Line 1806 of yacc.c  */
     6210#line 977 "parser.yy"
     6211    { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); }
     6212    break;
     6213
     6214  case 229:
     6215
     6216/* Line 1806 of yacc.c  */
    62386217#line 979 "parser.yy"
    6239     { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); }
    6240     break;
    6241 
    6242   case 229:
    6243 
    6244 /* Line 1806 of yacc.c  */
    6245 #line 981 "parser.yy"
    62466218    { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); }
    62476219    break;
     
    62506222
    62516223/* Line 1806 of yacc.c  */
     6224#line 984 "parser.yy"
     6225    { (yyval.en) = 0; }
     6226    break;
     6227
     6228  case 231:
     6229
     6230/* Line 1806 of yacc.c  */
    62526231#line 986 "parser.yy"
    6253     { (yyval.en) = 0; }
    6254     break;
    6255 
    6256   case 231:
     6232    { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
     6233    break;
     6234
     6235  case 232:
    62576236
    62586237/* Line 1806 of yacc.c  */
    62596238#line 988 "parser.yy"
    6260     { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
    6261     break;
    6262 
    6263   case 232:
    6264 
    6265 /* Line 1806 of yacc.c  */
    6266 #line 990 "parser.yy"
    62676239    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); }
    62686240    break;
     
    62716243
    62726244/* Line 1806 of yacc.c  */
    6273 #line 995 "parser.yy"
     6245#line 993 "parser.yy"
    62746246    {
    62756247                        (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[(1) - (1)].tok) );
     
    62816253
    62826254/* Line 1806 of yacc.c  */
    6283 #line 1000 "parser.yy"
     6255#line 998 "parser.yy"
    62846256    {
    62856257                        (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->labels.push_back( *(yyvsp[(3) - (3)].tok) );
     
    62916263
    62926264/* Line 1806 of yacc.c  */
    6293 #line 1010 "parser.yy"
     6265#line 1008 "parser.yy"
    62946266    { (yyval.decl) = 0; }
    62956267    break;
     
    62986270
    62996271/* Line 1806 of yacc.c  */
    6300 #line 1017 "parser.yy"
     6272#line 1015 "parser.yy"
    63016273    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    63026274    break;
     
    63056277
    63066278/* Line 1806 of yacc.c  */
    6307 #line 1022 "parser.yy"
     6279#line 1020 "parser.yy"
    63086280    { (yyval.decl) = 0; }
    63096281    break;
     
    63126284
    63136285/* Line 1806 of yacc.c  */
    6314 #line 1029 "parser.yy"
     6286#line 1027 "parser.yy"
    63156287    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    63166288    break;
     
    63196291
    63206292/* Line 1806 of yacc.c  */
    6321 #line 1043 "parser.yy"
     6293#line 1041 "parser.yy"
    63226294    {}
    63236295    break;
     
    63266298
    63276299/* Line 1806 of yacc.c  */
    6328 #line 1044 "parser.yy"
     6300#line 1042 "parser.yy"
    63296301    {}
    63306302    break;
     
    63336305
    63346306/* Line 1806 of yacc.c  */
    6335 #line 1073 "parser.yy"
     6307#line 1071 "parser.yy"
    63366308    {
    63376309                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63436315
    63446316/* Line 1806 of yacc.c  */
    6345 #line 1080 "parser.yy"
     6317#line 1078 "parser.yy"
    63466318    {
    63476319                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63536325
    63546326/* Line 1806 of yacc.c  */
    6355 #line 1085 "parser.yy"
     6327#line 1083 "parser.yy"
    63566328    {
    63576329                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID );
     
    63636335
    63646336/* Line 1806 of yacc.c  */
    6365 #line 1095 "parser.yy"
     6337#line 1093 "parser.yy"
    63666338    {
    63676339                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    63736345
    63746346/* Line 1806 of yacc.c  */
    6375 #line 1100 "parser.yy"
     6347#line 1098 "parser.yy"
    63766348    {
    63776349                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    63836355
    63846356/* Line 1806 of yacc.c  */
    6385 #line 1105 "parser.yy"
     6357#line 1103 "parser.yy"
    63866358    {
    63876359                        typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) );
     
    63936365
    63946366/* Line 1806 of yacc.c  */
    6395 #line 1113 "parser.yy"
     6367#line 1111 "parser.yy"
    63966368    {
    63976369                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64036375
    64046376/* Line 1806 of yacc.c  */
    6405 #line 1118 "parser.yy"
     6377#line 1116 "parser.yy"
    64066378    {
    64076379                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64136385
    64146386/* Line 1806 of yacc.c  */
    6415 #line 1123 "parser.yy"
     6387#line 1121 "parser.yy"
    64166388    {
    64176389                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64236395
    64246396/* Line 1806 of yacc.c  */
    6425 #line 1128 "parser.yy"
     6397#line 1126 "parser.yy"
    64266398    {
    64276399                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64336405
    64346406/* Line 1806 of yacc.c  */
    6435 #line 1133 "parser.yy"
     6407#line 1131 "parser.yy"
    64366408    {
    64376409                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    64436415
    64446416/* Line 1806 of yacc.c  */
    6445 #line 1141 "parser.yy"
     6417#line 1139 "parser.yy"
    64466418    {
    64476419                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true );
     
    64526424
    64536425/* Line 1806 of yacc.c  */
    6454 #line 1164 "parser.yy"
     6426#line 1162 "parser.yy"
    64556427    {
    64566428                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    64616433
    64626434/* Line 1806 of yacc.c  */
    6463 #line 1168 "parser.yy"
     6435#line 1166 "parser.yy"
    64646436    {
    64656437                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    64706442
    64716443/* Line 1806 of yacc.c  */
    6472 #line 1175 "parser.yy"
     6444#line 1173 "parser.yy"
    64736445    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    64746446    break;
     
    64776449
    64786450/* Line 1806 of yacc.c  */
    6479 #line 1179 "parser.yy"
     6451#line 1177 "parser.yy"
    64806452    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
    64816453    break;
     
    64846456
    64856457/* Line 1806 of yacc.c  */
    6486 #line 1184 "parser.yy"
     6458#line 1182 "parser.yy"
    64876459    {
    64886460                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64946466
    64956467/* Line 1806 of yacc.c  */
    6496 #line 1189 "parser.yy"
     6468#line 1187 "parser.yy"
    64976469    {
    64986470                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65046476
    65056477/* Line 1806 of yacc.c  */
    6506 #line 1194 "parser.yy"
     6478#line 1192 "parser.yy"
    65076479    {
    65086480                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD );
     
    65146486
    65156487/* Line 1806 of yacc.c  */
    6516 #line 1205 "parser.yy"
     6488#line 1203 "parser.yy"
    65176489    {
    65186490                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65246496
    65256497/* Line 1806 of yacc.c  */
    6526 #line 1210 "parser.yy"
     6498#line 1208 "parser.yy"
    65276499    {
    65286500                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65346506
    65356507/* Line 1806 of yacc.c  */
    6536 #line 1215 "parser.yy"
     6508#line 1213 "parser.yy"
    65376509    {
    65386510                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65446516
    65456517/* Line 1806 of yacc.c  */
    6546 #line 1220 "parser.yy"
     6518#line 1218 "parser.yy"
    65476519    {
    65486520                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65546526
    65556527/* Line 1806 of yacc.c  */
    6556 #line 1225 "parser.yy"
     6528#line 1223 "parser.yy"
    65576529    {
    65586530                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65646536
    65656537/* Line 1806 of yacc.c  */
    6566 #line 1234 "parser.yy"
     6538#line 1232 "parser.yy"
    65676539    {
    65686540                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD );
     
    65746546
    65756547/* Line 1806 of yacc.c  */
    6576 #line 1239 "parser.yy"
     6548#line 1237 "parser.yy"
    65776549    {
    65786550                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD );
     
    65846556
    65856557/* Line 1806 of yacc.c  */
    6586 #line 1256 "parser.yy"
     6558#line 1254 "parser.yy"
    65876559    {
    65886560                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    65946566
    65956567/* Line 1806 of yacc.c  */
    6596 #line 1261 "parser.yy"
     6568#line 1259 "parser.yy"
    65976569    {
    65986570                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    66046576
    66056577/* Line 1806 of yacc.c  */
    6606 #line 1283 "parser.yy"
     6578#line 1281 "parser.yy"
    66076579    { (yyval.decl) = 0; }
    66086580    break;
     
    66116583
    66126584/* Line 1806 of yacc.c  */
    6613 #line 1295 "parser.yy"
     6585#line 1293 "parser.yy"
    66146586    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    66156587    break;
     
    66186590
    66196591/* Line 1806 of yacc.c  */
     6592#line 1304 "parser.yy"
     6593    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
     6594    break;
     6595
     6596  case 303:
     6597
     6598/* Line 1806 of yacc.c  */
    66206599#line 1306 "parser.yy"
    6621     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
    6622     break;
    6623 
    6624   case 303:
     6600    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
     6601    break;
     6602
     6603  case 304:
    66256604
    66266605/* Line 1806 of yacc.c  */
    66276606#line 1308 "parser.yy"
    6628     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
    6629     break;
    6630 
    6631   case 304:
     6607    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
     6608    break;
     6609
     6610  case 305:
    66326611
    66336612/* Line 1806 of yacc.c  */
    66346613#line 1310 "parser.yy"
    6635     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
    6636     break;
    6637 
    6638   case 305:
     6614    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
     6615    break;
     6616
     6617  case 306:
    66396618
    66406619/* Line 1806 of yacc.c  */
    66416620#line 1312 "parser.yy"
    6642     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
    6643     break;
    6644 
    6645   case 306:
     6621    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
     6622    break;
     6623
     6624  case 307:
    66466625
    66476626/* Line 1806 of yacc.c  */
    66486627#line 1314 "parser.yy"
    6649     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
    6650     break;
    6651 
    6652   case 307:
    6653 
    6654 /* Line 1806 of yacc.c  */
    6655 #line 1316 "parser.yy"
    66566628    {
    66576629                        typedefTable.enterScope();
     
    66626634
    66636635/* Line 1806 of yacc.c  */
    6664 #line 1320 "parser.yy"
     6636#line 1318 "parser.yy"
    66656637    {
    66666638                        typedefTable.leaveScope();
     
    66726644
    66736645/* Line 1806 of yacc.c  */
     6646#line 1327 "parser.yy"
     6647    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6648    break;
     6649
     6650  case 311:
     6651
     6652/* Line 1806 of yacc.c  */
    66746653#line 1329 "parser.yy"
     6654    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6655    break;
     6656
     6657  case 313:
     6658
     6659/* Line 1806 of yacc.c  */
     6660#line 1340 "parser.yy"
    66756661    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    66766662    break;
    66776663
    6678   case 311:
    6679 
    6680 /* Line 1806 of yacc.c  */
    6681 #line 1331 "parser.yy"
     6664  case 314:
     6665
     6666/* Line 1806 of yacc.c  */
     6667#line 1345 "parser.yy"
     6668    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
     6669    break;
     6670
     6671  case 315:
     6672
     6673/* Line 1806 of yacc.c  */
     6674#line 1347 "parser.yy"
     6675    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
     6676    break;
     6677
     6678  case 316:
     6679
     6680/* Line 1806 of yacc.c  */
     6681#line 1349 "parser.yy"
     6682    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
     6683    break;
     6684
     6685  case 317:
     6686
     6687/* Line 1806 of yacc.c  */
     6688#line 1351 "parser.yy"
     6689    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
     6690    break;
     6691
     6692  case 318:
     6693
     6694/* Line 1806 of yacc.c  */
     6695#line 1354 "parser.yy"
     6696    { (yyval.decl) = new DeclarationNode; (yyval.decl)->isInline = true; }
     6697    break;
     6698
     6699  case 319:
     6700
     6701/* Line 1806 of yacc.c  */
     6702#line 1356 "parser.yy"
     6703    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
     6704    break;
     6705
     6706  case 320:
     6707
     6708/* Line 1806 of yacc.c  */
     6709#line 1359 "parser.yy"
     6710    { (yyval.decl) = new DeclarationNode; (yyval.decl)->isNoreturn = true; }
     6711    break;
     6712
     6713  case 321:
     6714
     6715/* Line 1806 of yacc.c  */
     6716#line 1361 "parser.yy"
     6717    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
     6718    break;
     6719
     6720  case 322:
     6721
     6722/* Line 1806 of yacc.c  */
     6723#line 1366 "parser.yy"
     6724    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
     6725    break;
     6726
     6727  case 323:
     6728
     6729/* Line 1806 of yacc.c  */
     6730#line 1368 "parser.yy"
     6731    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
     6732    break;
     6733
     6734  case 324:
     6735
     6736/* Line 1806 of yacc.c  */
     6737#line 1370 "parser.yy"
     6738    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
     6739    break;
     6740
     6741  case 325:
     6742
     6743/* Line 1806 of yacc.c  */
     6744#line 1372 "parser.yy"
     6745    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
     6746    break;
     6747
     6748  case 326:
     6749
     6750/* Line 1806 of yacc.c  */
     6751#line 1374 "parser.yy"
     6752    { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Long ); }
     6753    break;
     6754
     6755  case 327:
     6756
     6757/* Line 1806 of yacc.c  */
     6758#line 1376 "parser.yy"
     6759    { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Short ); }
     6760    break;
     6761
     6762  case 328:
     6763
     6764/* Line 1806 of yacc.c  */
     6765#line 1378 "parser.yy"
     6766    { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Signed ); }
     6767    break;
     6768
     6769  case 329:
     6770
     6771/* Line 1806 of yacc.c  */
     6772#line 1380 "parser.yy"
     6773    { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Unsigned ); }
     6774    break;
     6775
     6776  case 330:
     6777
     6778/* Line 1806 of yacc.c  */
     6779#line 1382 "parser.yy"
     6780    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
     6781    break;
     6782
     6783  case 331:
     6784
     6785/* Line 1806 of yacc.c  */
     6786#line 1384 "parser.yy"
     6787    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
     6788    break;
     6789
     6790  case 332:
     6791
     6792/* Line 1806 of yacc.c  */
     6793#line 1386 "parser.yy"
     6794    { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Complex ); }
     6795    break;
     6796
     6797  case 333:
     6798
     6799/* Line 1806 of yacc.c  */
     6800#line 1388 "parser.yy"
     6801    { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Imaginary ); }
     6802    break;
     6803
     6804  case 334:
     6805
     6806/* Line 1806 of yacc.c  */
     6807#line 1390 "parser.yy"
     6808    { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
     6809    break;
     6810
     6811  case 336:
     6812
     6813/* Line 1806 of yacc.c  */
     6814#line 1397 "parser.yy"
     6815    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6816    break;
     6817
     6818  case 337:
     6819
     6820/* Line 1806 of yacc.c  */
     6821#line 1399 "parser.yy"
     6822    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6823    break;
     6824
     6825  case 338:
     6826
     6827/* Line 1806 of yacc.c  */
     6828#line 1401 "parser.yy"
    66826829    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    66836830    break;
    66846831
    6685   case 313:
    6686 
    6687 /* Line 1806 of yacc.c  */
    6688 #line 1342 "parser.yy"
     6832  case 339:
     6833
     6834/* Line 1806 of yacc.c  */
     6835#line 1403 "parser.yy"
     6836    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
     6837    break;
     6838
     6839  case 341:
     6840
     6841/* Line 1806 of yacc.c  */
     6842#line 1409 "parser.yy"
     6843    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6844    break;
     6845
     6846  case 343:
     6847
     6848/* Line 1806 of yacc.c  */
     6849#line 1416 "parser.yy"
     6850    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6851    break;
     6852
     6853  case 344:
     6854
     6855/* Line 1806 of yacc.c  */
     6856#line 1418 "parser.yy"
    66896857    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    66906858    break;
    66916859
    6692   case 314:
    6693 
    6694 /* Line 1806 of yacc.c  */
    6695 #line 1347 "parser.yy"
    6696     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
    6697     break;
    6698 
    6699   case 315:
    6700 
    6701 /* Line 1806 of yacc.c  */
    6702 #line 1349 "parser.yy"
    6703     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
    6704     break;
    6705 
    6706   case 316:
    6707 
    6708 /* Line 1806 of yacc.c  */
    6709 #line 1351 "parser.yy"
    6710     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
    6711     break;
    6712 
    6713   case 317:
    6714 
    6715 /* Line 1806 of yacc.c  */
    6716 #line 1353 "parser.yy"
    6717     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
    6718     break;
    6719 
    6720   case 318:
    6721 
    6722 /* Line 1806 of yacc.c  */
    6723 #line 1356 "parser.yy"
    6724     { (yyval.decl) = new DeclarationNode; (yyval.decl)->isInline = true; }
    6725     break;
    6726 
    6727   case 319:
    6728 
    6729 /* Line 1806 of yacc.c  */
    6730 #line 1358 "parser.yy"
    6731     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
    6732     break;
    6733 
    6734   case 320:
    6735 
    6736 /* Line 1806 of yacc.c  */
    6737 #line 1361 "parser.yy"
    6738     { (yyval.decl) = new DeclarationNode; (yyval.decl)->isNoreturn = true; }
    6739     break;
    6740 
    6741   case 321:
    6742 
    6743 /* Line 1806 of yacc.c  */
    6744 #line 1363 "parser.yy"
    6745     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
    6746     break;
    6747 
    6748   case 322:
    6749 
    6750 /* Line 1806 of yacc.c  */
    6751 #line 1368 "parser.yy"
    6752     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
    6753     break;
    6754 
    6755   case 323:
    6756 
    6757 /* Line 1806 of yacc.c  */
    6758 #line 1370 "parser.yy"
    6759     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
    6760     break;
    6761 
    6762   case 324:
    6763 
    6764 /* Line 1806 of yacc.c  */
    6765 #line 1372 "parser.yy"
    6766     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
    6767     break;
    6768 
    6769   case 325:
    6770 
    6771 /* Line 1806 of yacc.c  */
    6772 #line 1374 "parser.yy"
    6773     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
    6774     break;
    6775 
    6776   case 326:
    6777 
    6778 /* Line 1806 of yacc.c  */
    6779 #line 1376 "parser.yy"
    6780     { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Long ); }
    6781     break;
    6782 
    6783   case 327:
    6784 
    6785 /* Line 1806 of yacc.c  */
    6786 #line 1378 "parser.yy"
    6787     { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Short ); }
    6788     break;
    6789 
    6790   case 328:
    6791 
    6792 /* Line 1806 of yacc.c  */
    6793 #line 1380 "parser.yy"
    6794     { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Signed ); }
    6795     break;
    6796 
    6797   case 329:
    6798 
    6799 /* Line 1806 of yacc.c  */
    6800 #line 1382 "parser.yy"
    6801     { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Unsigned ); }
    6802     break;
    6803 
    6804   case 330:
    6805 
    6806 /* Line 1806 of yacc.c  */
    6807 #line 1384 "parser.yy"
    6808     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
    6809     break;
    6810 
    6811   case 331:
    6812 
    6813 /* Line 1806 of yacc.c  */
    6814 #line 1386 "parser.yy"
    6815     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
    6816     break;
    6817 
    6818   case 332:
    6819 
    6820 /* Line 1806 of yacc.c  */
    6821 #line 1388 "parser.yy"
    6822     { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Complex ); }
    6823     break;
    6824 
    6825   case 333:
    6826 
    6827 /* Line 1806 of yacc.c  */
    6828 #line 1390 "parser.yy"
    6829     { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Imaginary ); }
    6830     break;
    6831 
    6832   case 334:
    6833 
    6834 /* Line 1806 of yacc.c  */
    6835 #line 1392 "parser.yy"
    6836     { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
    6837     break;
    6838 
    6839   case 336:
    6840 
    6841 /* Line 1806 of yacc.c  */
    6842 #line 1399 "parser.yy"
     6860  case 345:
     6861
     6862/* Line 1806 of yacc.c  */
     6863#line 1420 "parser.yy"
     6864    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
     6865    break;
     6866
     6867  case 346:
     6868
     6869/* Line 1806 of yacc.c  */
     6870#line 1425 "parser.yy"
     6871    { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
     6872    break;
     6873
     6874  case 347:
     6875
     6876/* Line 1806 of yacc.c  */
     6877#line 1427 "parser.yy"
     6878    { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
     6879    break;
     6880
     6881  case 348:
     6882
     6883/* Line 1806 of yacc.c  */
     6884#line 1429 "parser.yy"
     6885    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
     6886    break;
     6887
     6888  case 349:
     6889
     6890/* Line 1806 of yacc.c  */
     6891#line 1431 "parser.yy"
     6892    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
     6893    break;
     6894
     6895  case 351:
     6896
     6897/* Line 1806 of yacc.c  */
     6898#line 1437 "parser.yy"
    68436899    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68446900    break;
    68456901
    6846   case 337:
    6847 
    6848 /* Line 1806 of yacc.c  */
    6849 #line 1401 "parser.yy"
     6902  case 352:
     6903
     6904/* Line 1806 of yacc.c  */
     6905#line 1439 "parser.yy"
    68506906    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68516907    break;
    68526908
    6853   case 338:
    6854 
    6855 /* Line 1806 of yacc.c  */
    6856 #line 1403 "parser.yy"
     6909  case 353:
     6910
     6911/* Line 1806 of yacc.c  */
     6912#line 1441 "parser.yy"
    68576913    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    68586914    break;
    68596915
    6860   case 339:
    6861 
    6862 /* Line 1806 of yacc.c  */
    6863 #line 1405 "parser.yy"
    6864     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
    6865     break;
    6866 
    6867   case 341:
    6868 
    6869 /* Line 1806 of yacc.c  */
    6870 #line 1411 "parser.yy"
    6871     { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    6872     break;
    6873 
    6874   case 343:
    6875 
    6876 /* Line 1806 of yacc.c  */
    6877 #line 1418 "parser.yy"
     6916  case 355:
     6917
     6918/* Line 1806 of yacc.c  */
     6919#line 1447 "parser.yy"
    68786920    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68796921    break;
    68806922
    6881   case 344:
    6882 
    6883 /* Line 1806 of yacc.c  */
    6884 #line 1420 "parser.yy"
     6923  case 356:
     6924
     6925/* Line 1806 of yacc.c  */
     6926#line 1449 "parser.yy"
    68856927    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68866928    break;
    68876929
    6888   case 345:
    6889 
    6890 /* Line 1806 of yacc.c  */
    6891 #line 1422 "parser.yy"
    6892     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
    6893     break;
    6894 
    6895   case 346:
    6896 
    6897 /* Line 1806 of yacc.c  */
    6898 #line 1427 "parser.yy"
    6899     { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
    6900     break;
    6901 
    6902   case 347:
    6903 
    6904 /* Line 1806 of yacc.c  */
    6905 #line 1429 "parser.yy"
    6906     { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
    6907     break;
    6908 
    6909   case 348:
    6910 
    6911 /* Line 1806 of yacc.c  */
    6912 #line 1431 "parser.yy"
    6913     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
    6914     break;
    6915 
    6916   case 349:
    6917 
    6918 /* Line 1806 of yacc.c  */
    6919 #line 1433 "parser.yy"
    6920     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    6921     break;
    6922 
    6923   case 351:
    6924 
    6925 /* Line 1806 of yacc.c  */
    6926 #line 1439 "parser.yy"
     6930  case 358:
     6931
     6932/* Line 1806 of yacc.c  */
     6933#line 1455 "parser.yy"
    69276934    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69286935    break;
    69296936
    6930   case 352:
    6931 
    6932 /* Line 1806 of yacc.c  */
    6933 #line 1441 "parser.yy"
     6937  case 359:
     6938
     6939/* Line 1806 of yacc.c  */
     6940#line 1457 "parser.yy"
    69346941    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69356942    break;
    69366943
    6937   case 353:
    6938 
    6939 /* Line 1806 of yacc.c  */
    6940 #line 1443 "parser.yy"
     6944  case 360:
     6945
     6946/* Line 1806 of yacc.c  */
     6947#line 1459 "parser.yy"
    69416948    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    69426949    break;
    69436950
    6944   case 355:
    6945 
    6946 /* Line 1806 of yacc.c  */
    6947 #line 1449 "parser.yy"
    6948     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    6949     break;
    6950 
    6951   case 356:
    6952 
    6953 /* Line 1806 of yacc.c  */
    6954 #line 1451 "parser.yy"
     6951  case 361:
     6952
     6953/* Line 1806 of yacc.c  */
     6954#line 1464 "parser.yy"
     6955    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
     6956    break;
     6957
     6958  case 362:
     6959
     6960/* Line 1806 of yacc.c  */
     6961#line 1466 "parser.yy"
     6962    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6963    break;
     6964
     6965  case 363:
     6966
     6967/* Line 1806 of yacc.c  */
     6968#line 1468 "parser.yy"
    69556969    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69566970    break;
    69576971
    6958   case 358:
    6959 
    6960 /* Line 1806 of yacc.c  */
    6961 #line 1457 "parser.yy"
    6962     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    6963     break;
    6964 
    6965   case 359:
    6966 
    6967 /* Line 1806 of yacc.c  */
    6968 #line 1459 "parser.yy"
    6969     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    6970     break;
    6971 
    6972   case 360:
    6973 
    6974 /* Line 1806 of yacc.c  */
    6975 #line 1461 "parser.yy"
    6976     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    6977     break;
    6978 
    6979   case 361:
    6980 
    6981 /* Line 1806 of yacc.c  */
    6982 #line 1466 "parser.yy"
    6983     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
    6984     break;
    6985 
    6986   case 362:
    6987 
    6988 /* Line 1806 of yacc.c  */
    6989 #line 1468 "parser.yy"
    6990     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    6991     break;
    6992 
    6993   case 363:
    6994 
    6995 /* Line 1806 of yacc.c  */
    6996 #line 1470 "parser.yy"
    6997     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    6998     break;
    6999 
    70006972  case 366:
    70016973
    70026974/* Line 1806 of yacc.c  */
     6975#line 1478 "parser.yy"
     6976    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), nullptr, nullptr, (yyvsp[(3) - (4)].decl), true ); }
     6977    break;
     6978
     6979  case 367:
     6980
     6981/* Line 1806 of yacc.c  */
    70036982#line 1480 "parser.yy"
    7004     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), nullptr, nullptr, (yyvsp[(3) - (4)].decl), true ); }
    7005     break;
    7006 
    7007   case 367:
    7008 
    7009 /* Line 1806 of yacc.c  */
    7010 #line 1482 "parser.yy"
    70116983    {
    70126984                        typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
     
    70186990
    70196991/* Line 1806 of yacc.c  */
     6992#line 1485 "parser.yy"
     6993    { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
     6994    break;
     6995
     6996  case 369:
     6997
     6998/* Line 1806 of yacc.c  */
    70206999#line 1487 "parser.yy"
    7021     { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
    7022     break;
    7023 
    7024   case 369:
     7000    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), nullptr, (yyvsp[(5) - (6)].decl), true ); }
     7001    break;
     7002
     7003  case 370:
    70257004
    70267005/* Line 1806 of yacc.c  */
    70277006#line 1489 "parser.yy"
    7028     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), nullptr, (yyvsp[(5) - (6)].decl), true ); }
    7029     break;
    7030 
    7031   case 370:
     7007    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), nullptr, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); }
     7008    break;
     7009
     7010  case 371:
    70327011
    70337012/* Line 1806 of yacc.c  */
    70347013#line 1491 "parser.yy"
    7035     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), nullptr, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); }
    7036     break;
    7037 
    7038   case 371:
    7039 
    7040 /* Line 1806 of yacc.c  */
    7041 #line 1493 "parser.yy"
    70427014    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    70437015    break;
     
    70467018
    70477019/* Line 1806 of yacc.c  */
     7020#line 1496 "parser.yy"
     7021    { (yyval.aggKey) = DeclarationNode::Struct; }
     7022    break;
     7023
     7024  case 373:
     7025
     7026/* Line 1806 of yacc.c  */
    70487027#line 1498 "parser.yy"
    7049     { (yyval.aggKey) = DeclarationNode::Struct; }
    7050     break;
    7051 
    7052   case 373:
    7053 
    7054 /* Line 1806 of yacc.c  */
    7055 #line 1500 "parser.yy"
    70567028    { (yyval.aggKey) = DeclarationNode::Union; }
    70577029    break;
     
    70607032
    70617033/* Line 1806 of yacc.c  */
     7034#line 1503 "parser.yy"
     7035    { (yyval.decl) = 0; }
     7036    break;
     7037
     7038  case 375:
     7039
     7040/* Line 1806 of yacc.c  */
    70627041#line 1505 "parser.yy"
    7063     { (yyval.decl) = 0; }
    7064     break;
    7065 
    7066   case 375:
    7067 
    7068 /* Line 1806 of yacc.c  */
    7069 #line 1507 "parser.yy"
    70707042    { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
    70717043    break;
     
    70747046
    70757047/* Line 1806 of yacc.c  */
    7076 #line 1513 "parser.yy"
     7048#line 1511 "parser.yy"
    70777049    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); }
    70787050    break;
     
    70817053
    70827054/* Line 1806 of yacc.c  */
    7083 #line 1516 "parser.yy"
     7055#line 1514 "parser.yy"
    70847056    {   // mark all fields in list
    70857057                        for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     
    70927064
    70937065/* Line 1806 of yacc.c  */
     7066#line 1524 "parser.yy"
     7067    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
     7068    break;
     7069
     7070  case 382:
     7071
     7072/* Line 1806 of yacc.c  */
    70947073#line 1526 "parser.yy"
    7095     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
    7096     break;
    7097 
    7098   case 382:
     7074    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
     7075    break;
     7076
     7077  case 383:
    70997078
    71007079/* Line 1806 of yacc.c  */
    71017080#line 1528 "parser.yy"
    7102     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
    7103     break;
    7104 
    7105   case 383:
    7106 
    7107 /* Line 1806 of yacc.c  */
    7108 #line 1530 "parser.yy"
    71097081    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
    71107082    break;
     
    71137085
    71147086/* Line 1806 of yacc.c  */
     7087#line 1533 "parser.yy"
     7088    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7089    break;
     7090
     7091  case 385:
     7092
     7093/* Line 1806 of yacc.c  */
    71157094#line 1535 "parser.yy"
    7116     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    7117     break;
    7118 
    7119   case 385:
    7120 
    7121 /* Line 1806 of yacc.c  */
    7122 #line 1537 "parser.yy"
    71237095    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
    71247096    break;
     
    71277099
    71287100/* Line 1806 of yacc.c  */
     7101#line 1540 "parser.yy"
     7102    { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
     7103    break;
     7104
     7105  case 387:
     7106
     7107/* Line 1806 of yacc.c  */
    71297108#line 1542 "parser.yy"
    7130     { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
    7131     break;
    7132 
    7133   case 387:
    7134 
    7135 /* Line 1806 of yacc.c  */
    7136 #line 1544 "parser.yy"
    71377109    { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
    71387110    break;
     
    71417113
    71427114/* Line 1806 of yacc.c  */
    7143 #line 1547 "parser.yy"
     7115#line 1545 "parser.yy"
    71447116    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    71457117    break;
     
    71487120
    71497121/* Line 1806 of yacc.c  */
    7150 #line 1550 "parser.yy"
     7122#line 1548 "parser.yy"
    71517123    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    71527124    break;
     
    71557127
    71567128/* Line 1806 of yacc.c  */
     7129#line 1554 "parser.yy"
     7130    { (yyval.en) = 0; }
     7131    break;
     7132
     7133  case 392:
     7134
     7135/* Line 1806 of yacc.c  */
    71577136#line 1556 "parser.yy"
    7158     { (yyval.en) = 0; }
    7159     break;
    7160 
    7161   case 392:
    7162 
    7163 /* Line 1806 of yacc.c  */
    7164 #line 1558 "parser.yy"
    71657137    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    71667138    break;
     
    71697141
    71707142/* Line 1806 of yacc.c  */
    7171 #line 1563 "parser.yy"
     7143#line 1561 "parser.yy"
    71727144    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    71737145    break;
     
    71767148
    71777149/* Line 1806 of yacc.c  */
     7150#line 1570 "parser.yy"
     7151    { (yyval.decl) = DeclarationNode::newEnum( nullptr, (yyvsp[(3) - (5)].decl) ); }
     7152    break;
     7153
     7154  case 396:
     7155
     7156/* Line 1806 of yacc.c  */
    71787157#line 1572 "parser.yy"
    7179     { (yyval.decl) = DeclarationNode::newEnum( nullptr, (yyvsp[(3) - (5)].decl) ); }
    7180     break;
    7181 
    7182   case 396:
    7183 
    7184 /* Line 1806 of yacc.c  */
    7185 #line 1574 "parser.yy"
    71867158    {
    71877159                        typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
     
    71937165
    71947166/* Line 1806 of yacc.c  */
     7167#line 1577 "parser.yy"
     7168    { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
     7169    break;
     7170
     7171  case 398:
     7172
     7173/* Line 1806 of yacc.c  */
    71957174#line 1579 "parser.yy"
    7196     { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
    7197     break;
    7198 
    7199   case 398:
    7200 
    7201 /* Line 1806 of yacc.c  */
    7202 #line 1581 "parser.yy"
    72037175    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); }
    72047176    break;
     
    72077179
    72087180/* Line 1806 of yacc.c  */
     7181#line 1584 "parser.yy"
     7182    { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
     7183    break;
     7184
     7185  case 400:
     7186
     7187/* Line 1806 of yacc.c  */
    72097188#line 1586 "parser.yy"
    7210     { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
    7211     break;
    7212 
    7213   case 400:
    7214 
    7215 /* Line 1806 of yacc.c  */
    7216 #line 1588 "parser.yy"
    72177189    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
    72187190    break;
     
    72217193
    72227194/* Line 1806 of yacc.c  */
     7195#line 1591 "parser.yy"
     7196    { (yyval.en) = 0; }
     7197    break;
     7198
     7199  case 402:
     7200
     7201/* Line 1806 of yacc.c  */
    72237202#line 1593 "parser.yy"
    7224     { (yyval.en) = 0; }
    7225     break;
    7226 
    7227   case 402:
    7228 
    7229 /* Line 1806 of yacc.c  */
    7230 #line 1595 "parser.yy"
    72317203    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    72327204    break;
     
    72357207
    72367208/* Line 1806 of yacc.c  */
    7237 #line 1602 "parser.yy"
     7209#line 1600 "parser.yy"
    72387210    { (yyval.decl) = 0; }
    72397211    break;
     
    72427214
    72437215/* Line 1806 of yacc.c  */
     7216#line 1608 "parser.yy"
     7217    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7218    break;
     7219
     7220  case 408:
     7221
     7222/* Line 1806 of yacc.c  */
    72447223#line 1610 "parser.yy"
    7245     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7246     break;
    7247 
    7248   case 408:
     7224    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7225    break;
     7226
     7227  case 409:
    72497228
    72507229/* Line 1806 of yacc.c  */
     
    72537232    break;
    72547233
    7255   case 409:
    7256 
    7257 /* Line 1806 of yacc.c  */
    7258 #line 1614 "parser.yy"
    7259     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    7260     break;
    7261 
    72627234  case 411:
     7235
     7236/* Line 1806 of yacc.c  */
     7237#line 1620 "parser.yy"
     7238    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7239    break;
     7240
     7241  case 412:
    72637242
    72647243/* Line 1806 of yacc.c  */
     
    72677246    break;
    72687247
    7269   case 412:
     7248  case 413:
    72707249
    72717250/* Line 1806 of yacc.c  */
    72727251#line 1624 "parser.yy"
     7252    { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
     7253    break;
     7254
     7255  case 415:
     7256
     7257/* Line 1806 of yacc.c  */
     7258#line 1630 "parser.yy"
    72737259    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72747260    break;
    72757261
    7276   case 413:
    7277 
    7278 /* Line 1806 of yacc.c  */
    7279 #line 1626 "parser.yy"
    7280     { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
    7281     break;
    7282 
    7283   case 415:
    7284 
    7285 /* Line 1806 of yacc.c  */
    7286 #line 1632 "parser.yy"
     7262  case 416:
     7263
     7264/* Line 1806 of yacc.c  */
     7265#line 1635 "parser.yy"
     7266    { (yyval.decl) = 0; }
     7267    break;
     7268
     7269  case 419:
     7270
     7271/* Line 1806 of yacc.c  */
     7272#line 1642 "parser.yy"
     7273    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7274    break;
     7275
     7276  case 422:
     7277
     7278/* Line 1806 of yacc.c  */
     7279#line 1649 "parser.yy"
    72877280    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72887281    break;
    72897282
    7290   case 416:
    7291 
    7292 /* Line 1806 of yacc.c  */
    7293 #line 1637 "parser.yy"
    7294     { (yyval.decl) = 0; }
    7295     break;
    7296 
    7297   case 419:
    7298 
    7299 /* Line 1806 of yacc.c  */
    7300 #line 1644 "parser.yy"
    7301     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    7302     break;
    7303 
    7304   case 422:
     7283  case 423:
    73057284
    73067285/* Line 1806 of yacc.c  */
     
    73097288    break;
    73107289
    7311   case 423:
    7312 
    7313 /* Line 1806 of yacc.c  */
    7314 #line 1653 "parser.yy"
    7315     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7316     break;
    7317 
    73187290  case 425:
    73197291
    73207292/* Line 1806 of yacc.c  */
    7321 #line 1662 "parser.yy"
     7293#line 1660 "parser.yy"
    73227294    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    73237295    break;
     
    73267298
    73277299/* Line 1806 of yacc.c  */
     7300#line 1663 "parser.yy"
     7301    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
     7302    break;
     7303
     7304  case 427:
     7305
     7306/* Line 1806 of yacc.c  */
    73287307#line 1665 "parser.yy"
    7329     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    7330     break;
    7331 
    7332   case 427:
    7333 
    7334 /* Line 1806 of yacc.c  */
    7335 #line 1667 "parser.yy"
    73367308    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
    73377309    break;
     
    73407312
    73417313/* Line 1806 of yacc.c  */
    7342 #line 1677 "parser.yy"
     7314#line 1675 "parser.yy"
    73437315    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    73447316    break;
     
    73477319
    73487320/* Line 1806 of yacc.c  */
    7349 #line 1683 "parser.yy"
     7321#line 1681 "parser.yy"
    73507322    {
    73517323                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    73577329
    73587330/* Line 1806 of yacc.c  */
    7359 #line 1688 "parser.yy"
     7331#line 1686 "parser.yy"
    73607332    {
    73617333                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    73677339
    73687340/* Line 1806 of yacc.c  */
    7369 #line 1697 "parser.yy"
     7341#line 1695 "parser.yy"
    73707342    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73717343    break;
     
    73747346
    73757347/* Line 1806 of yacc.c  */
     7348#line 1704 "parser.yy"
     7349    { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
     7350    break;
     7351
     7352  case 439:
     7353
     7354/* Line 1806 of yacc.c  */
    73767355#line 1706 "parser.yy"
    7377     { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
    7378     break;
    7379 
    7380   case 439:
    7381 
    7382 /* Line 1806 of yacc.c  */
    7383 #line 1708 "parser.yy"
    73847356    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
    73857357    break;
     
    73887360
    73897361/* Line 1806 of yacc.c  */
    7390 #line 1733 "parser.yy"
     7362#line 1731 "parser.yy"
    73917363    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73927364    break;
     
    73957367
    73967368/* Line 1806 of yacc.c  */
    7397 #line 1741 "parser.yy"
     7369#line 1739 "parser.yy"
    73987370    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73997371    break;
     
    74027374
    74037375/* Line 1806 of yacc.c  */
     7376#line 1744 "parser.yy"
     7377    { (yyval.in) = 0; }
     7378    break;
     7379
     7380  case 457:
     7381
     7382/* Line 1806 of yacc.c  */
    74047383#line 1746 "parser.yy"
     7384    { (yyval.in) = (yyvsp[(2) - (2)].in); }
     7385    break;
     7386
     7387  case 458:
     7388
     7389/* Line 1806 of yacc.c  */
     7390#line 1748 "parser.yy"
     7391    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); }
     7392    break;
     7393
     7394  case 459:
     7395
     7396/* Line 1806 of yacc.c  */
     7397#line 1752 "parser.yy"
     7398    { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
     7399    break;
     7400
     7401  case 460:
     7402
     7403/* Line 1806 of yacc.c  */
     7404#line 1753 "parser.yy"
     7405    { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
     7406    break;
     7407
     7408  case 461:
     7409
     7410/* Line 1806 of yacc.c  */
     7411#line 1758 "parser.yy"
    74057412    { (yyval.in) = 0; }
    74067413    break;
    74077414
    7408   case 457:
    7409 
    7410 /* Line 1806 of yacc.c  */
    7411 #line 1748 "parser.yy"
    7412     { (yyval.in) = (yyvsp[(2) - (2)].in); }
    7413     break;
    7414 
    7415   case 458:
    7416 
    7417 /* Line 1806 of yacc.c  */
    7418 #line 1750 "parser.yy"
    7419     { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); }
    7420     break;
    7421 
    7422   case 459:
    7423 
    7424 /* Line 1806 of yacc.c  */
    7425 #line 1754 "parser.yy"
    7426     { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
    7427     break;
    7428 
    7429   case 460:
    7430 
    7431 /* Line 1806 of yacc.c  */
    7432 #line 1755 "parser.yy"
    7433     { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
    7434     break;
    7435 
    7436   case 461:
     7415  case 463:
    74377416
    74387417/* Line 1806 of yacc.c  */
    74397418#line 1760 "parser.yy"
    7440     { (yyval.in) = 0; }
    7441     break;
    7442 
    7443   case 463:
    7444 
    7445 /* Line 1806 of yacc.c  */
    7446 #line 1762 "parser.yy"
    74477419    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
    74487420    break;
     
    74517423
    74527424/* Line 1806 of yacc.c  */
     7425#line 1761 "parser.yy"
     7426    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); }
     7427    break;
     7428
     7429  case 465:
     7430
     7431/* Line 1806 of yacc.c  */
    74537432#line 1763 "parser.yy"
    7454     { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); }
    7455     break;
    7456 
    7457   case 465:
    7458 
    7459 /* Line 1806 of yacc.c  */
    7460 #line 1765 "parser.yy"
    74617433    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_last( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
    74627434    break;
     
    74657437
    74667438/* Line 1806 of yacc.c  */
    7467 #line 1781 "parser.yy"
     7439#line 1779 "parser.yy"
    74687440    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); }
    74697441    break;
     
    74727444
    74737445/* Line 1806 of yacc.c  */
    7474 #line 1787 "parser.yy"
     7446#line 1785 "parser.yy"
    74757447    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) ) ); }
    74767448    break;
     
    74797451
    74807452/* Line 1806 of yacc.c  */
    7481 #line 1793 "parser.yy"
     7453#line 1791 "parser.yy"
    74827454    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); }
    74837455    break;
    74847456
    74857457  case 471:
     7458
     7459/* Line 1806 of yacc.c  */
     7460#line 1794 "parser.yy"
     7461    { (yyval.en) = (yyvsp[(3) - (5)].en); }
     7462    break;
     7463
     7464  case 472:
    74867465
    74877466/* Line 1806 of yacc.c  */
     
    74907469    break;
    74917470
    7492   case 472:
     7471  case 473:
    74937472
    74947473/* Line 1806 of yacc.c  */
    74957474#line 1798 "parser.yy"
    7496     { (yyval.en) = (yyvsp[(3) - (5)].en); }
    7497     break;
    7498 
    7499   case 473:
     7475    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); }
     7476    break;
     7477
     7478  case 474:
    75007479
    75017480/* Line 1806 of yacc.c  */
    75027481#line 1800 "parser.yy"
    7503     { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); }
    7504     break;
    7505 
    7506   case 474:
    7507 
    7508 /* Line 1806 of yacc.c  */
    7509 #line 1802 "parser.yy"
    75107482    { (yyval.en) = (yyvsp[(4) - (6)].en); }
    75117483    break;
     
    75147486
    75157487/* Line 1806 of yacc.c  */
     7488#line 1824 "parser.yy"
     7489    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     7490    break;
     7491
     7492  case 477:
     7493
     7494/* Line 1806 of yacc.c  */
    75167495#line 1826 "parser.yy"
     7496    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7497    break;
     7498
     7499  case 478:
     7500
     7501/* Line 1806 of yacc.c  */
     7502#line 1828 "parser.yy"
     7503    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     7504    break;
     7505
     7506  case 480:
     7507
     7508/* Line 1806 of yacc.c  */
     7509#line 1834 "parser.yy"
    75177510    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    75187511    break;
    75197512
    7520   case 477:
    7521 
    7522 /* Line 1806 of yacc.c  */
    7523 #line 1828 "parser.yy"
     7513  case 481:
     7514
     7515/* Line 1806 of yacc.c  */
     7516#line 1836 "parser.yy"
    75247517    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    75257518    break;
    75267519
    7527   case 478:
    7528 
    7529 /* Line 1806 of yacc.c  */
    7530 #line 1830 "parser.yy"
    7531     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    7532     break;
    7533 
    7534   case 480:
    7535 
    7536 /* Line 1806 of yacc.c  */
    7537 #line 1836 "parser.yy"
    7538     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    7539     break;
    7540 
    7541   case 481:
    7542 
    7543 /* Line 1806 of yacc.c  */
    7544 #line 1838 "parser.yy"
    7545     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    7546     break;
    7547 
    75487520  case 482:
    75497521
    75507522/* Line 1806 of yacc.c  */
    7551 #line 1843 "parser.yy"
     7523#line 1841 "parser.yy"
    75527524    { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    75537525    break;
     
    75567528
    75577529/* Line 1806 of yacc.c  */
    7558 #line 1849 "parser.yy"
     7530#line 1847 "parser.yy"
    75597531    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
    75607532    break;
     
    75637535
    75647536/* Line 1806 of yacc.c  */
     7537#line 1852 "parser.yy"
     7538    { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
     7539    break;
     7540
     7541  case 486:
     7542
     7543/* Line 1806 of yacc.c  */
    75657544#line 1854 "parser.yy"
    7566     { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
    7567     break;
    7568 
    7569   case 486:
    7570 
    7571 /* Line 1806 of yacc.c  */
    7572 #line 1856 "parser.yy"
    75737545    { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
    75747546    break;
     
    75777549
    75787550/* Line 1806 of yacc.c  */
     7551#line 1860 "parser.yy"
     7552    { (yyval.tclass) = DeclarationNode::Otype; }
     7553    break;
     7554
     7555  case 489:
     7556
     7557/* Line 1806 of yacc.c  */
    75797558#line 1862 "parser.yy"
    7580     { (yyval.tclass) = DeclarationNode::Otype; }
    7581     break;
    7582 
    7583   case 489:
     7559    { (yyval.tclass) = DeclarationNode::Ftype; }
     7560    break;
     7561
     7562  case 490:
    75847563
    75857564/* Line 1806 of yacc.c  */
    75867565#line 1864 "parser.yy"
    7587     { (yyval.tclass) = DeclarationNode::Ftype; }
    7588     break;
    7589 
    7590   case 490:
    7591 
    7592 /* Line 1806 of yacc.c  */
    7593 #line 1866 "parser.yy"
    75947566    { (yyval.tclass) = DeclarationNode::Dtype; }
    75957567    break;
     
    75987570
    75997571/* Line 1806 of yacc.c  */
     7572#line 1869 "parser.yy"
     7573    { (yyval.decl) = 0; }
     7574    break;
     7575
     7576  case 492:
     7577
     7578/* Line 1806 of yacc.c  */
    76007579#line 1871 "parser.yy"
    7601     { (yyval.decl) = 0; }
    7602     break;
    7603 
    7604   case 492:
    7605 
    7606 /* Line 1806 of yacc.c  */
    7607 #line 1873 "parser.yy"
    76087580    { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
    76097581    break;
     
    76127584
    76137585/* Line 1806 of yacc.c  */
    7614 #line 1878 "parser.yy"
     7586#line 1876 "parser.yy"
    76157587    {
    76167588                        typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) );
     
    76227594
    76237595/* Line 1806 of yacc.c  */
     7596#line 1881 "parser.yy"
     7597    { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
     7598    break;
     7599
     7600  case 495:
     7601
     7602/* Line 1806 of yacc.c  */
    76247603#line 1883 "parser.yy"
    7625     { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
    7626     break;
    7627 
    7628   case 495:
    7629 
    7630 /* Line 1806 of yacc.c  */
    7631 #line 1885 "parser.yy"
    76327604    { (yyval.decl) = 0; }
    76337605    break;
     
    76367608
    76377609/* Line 1806 of yacc.c  */
    7638 #line 1890 "parser.yy"
     7610#line 1888 "parser.yy"
    76397611    { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); }
    76407612    break;
     
    76437615
    76447616/* Line 1806 of yacc.c  */
     7617#line 1891 "parser.yy"
     7618    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); }
     7619    break;
     7620
     7621  case 499:
     7622
     7623/* Line 1806 of yacc.c  */
    76457624#line 1893 "parser.yy"
    7646     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); }
    7647     break;
    7648 
    7649   case 499:
    7650 
    7651 /* Line 1806 of yacc.c  */
    7652 #line 1895 "parser.yy"
    76537625    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
    76547626    break;
     
    76577629
    76587630/* Line 1806 of yacc.c  */
     7631#line 1898 "parser.yy"
     7632    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
     7633    break;
     7634
     7635  case 501:
     7636
     7637/* Line 1806 of yacc.c  */
    76597638#line 1900 "parser.yy"
    7660     { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    7661     break;
    7662 
    7663   case 501:
     7639    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
     7640    break;
     7641
     7642  case 502:
    76647643
    76657644/* Line 1806 of yacc.c  */
    76667645#line 1902 "parser.yy"
    7667     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
    7668     break;
    7669 
    7670   case 502:
    7671 
    7672 /* Line 1806 of yacc.c  */
    7673 #line 1904 "parser.yy"
    76747646    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
    76757647    break;
     
    76787650
    76797651/* Line 1806 of yacc.c  */
     7652#line 1907 "parser.yy"
     7653    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
     7654    break;
     7655
     7656  case 504:
     7657
     7658/* Line 1806 of yacc.c  */
    76807659#line 1909 "parser.yy"
    7681     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
    7682     break;
    7683 
    7684   case 504:
    7685 
    7686 /* Line 1806 of yacc.c  */
    7687 #line 1911 "parser.yy"
    76887660    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
    76897661    break;
     
    76927664
    76937665/* Line 1806 of yacc.c  */
    7694 #line 1916 "parser.yy"
     7666#line 1914 "parser.yy"
    76957667    {
    76967668                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD );
     
    77027674
    77037675/* Line 1806 of yacc.c  */
    7704 #line 1921 "parser.yy"
     7676#line 1919 "parser.yy"
    77057677    {
    77067678                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG );
     
    77127684
    77137685/* Line 1806 of yacc.c  */
    7714 #line 1929 "parser.yy"
     7686#line 1927 "parser.yy"
    77157687    {
    77167688                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID );
     
    77227694
    77237695/* Line 1806 of yacc.c  */
    7724 #line 1934 "parser.yy"
     7696#line 1932 "parser.yy"
    77257697    {
    77267698                        typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) );
     
    77327704
    77337705/* Line 1806 of yacc.c  */
    7734 #line 1939 "parser.yy"
     7706#line 1937 "parser.yy"
    77357707    {
    77367708                        typedefTable.leaveTrait();
     
    77437715
    77447716/* Line 1806 of yacc.c  */
    7745 #line 1949 "parser.yy"
     7717#line 1947 "parser.yy"
    77467718    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    77477719    break;
     
    77507722
    77517723/* Line 1806 of yacc.c  */
    7752 #line 1959 "parser.yy"
     7724#line 1957 "parser.yy"
    77537725    {
    77547726                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77607732
    77617733/* Line 1806 of yacc.c  */
    7762 #line 1964 "parser.yy"
     7734#line 1962 "parser.yy"
    77637735    {
    77647736                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77707742
    77717743/* Line 1806 of yacc.c  */
    7772 #line 1969 "parser.yy"
     7744#line 1967 "parser.yy"
    77737745    {
    77747746                        typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    77807752
    77817753/* Line 1806 of yacc.c  */
    7782 #line 1977 "parser.yy"
     7754#line 1975 "parser.yy"
    77837755    {
    77847756                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77907762
    77917763/* Line 1806 of yacc.c  */
    7792 #line 1982 "parser.yy"
     7764#line 1980 "parser.yy"
    77937765    {
    77947766                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    78007772
    78017773/* Line 1806 of yacc.c  */
     7774#line 1990 "parser.yy"
     7775    {}
     7776    break;
     7777
     7778  case 520:
     7779
     7780/* Line 1806 of yacc.c  */
    78027781#line 1992 "parser.yy"
     7782    { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl);    }
     7783    break;
     7784
     7785  case 522:
     7786
     7787/* Line 1806 of yacc.c  */
     7788#line 1998 "parser.yy"
     7789    { (yyval.decl) = (yyvsp[(1) - (3)].decl) != nullptr ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
     7790    break;
     7791
     7792  case 523:
     7793
     7794/* Line 1806 of yacc.c  */
     7795#line 2003 "parser.yy"
     7796    { (yyval.decl) = 0; }
     7797    break;
     7798
     7799  case 527:
     7800
     7801/* Line 1806 of yacc.c  */
     7802#line 2011 "parser.yy"
    78037803    {}
    78047804    break;
    78057805
    7806   case 520:
    7807 
    7808 /* Line 1806 of yacc.c  */
    7809 #line 1994 "parser.yy"
    7810     { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl);    }
    7811     break;
    7812 
    7813   case 522:
    7814 
    7815 /* Line 1806 of yacc.c  */
    7816 #line 2000 "parser.yy"
    7817     { (yyval.decl) = (yyvsp[(1) - (3)].decl) != nullptr ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
    7818     break;
    7819 
    7820   case 523:
    7821 
    7822 /* Line 1806 of yacc.c  */
    7823 #line 2005 "parser.yy"
    7824     { (yyval.decl) = 0; }
    7825     break;
    7826 
    7827   case 527:
     7806  case 528:
    78287807
    78297808/* Line 1806 of yacc.c  */
    78307809#line 2013 "parser.yy"
    7831     {}
    7832     break;
    7833 
    7834   case 528:
    7835 
    7836 /* Line 1806 of yacc.c  */
    7837 #line 2015 "parser.yy"
    78387810    {
    78397811                        linkageStack.push( linkage );                           // handle nested extern "C"/"Cforall"
     
    78457817
    78467818/* Line 1806 of yacc.c  */
    7847 #line 2020 "parser.yy"
     7819#line 2018 "parser.yy"
    78487820    {
    78497821                        linkage = linkageStack.top();
     
    78567828
    78577829/* Line 1806 of yacc.c  */
    7858 #line 2026 "parser.yy"
     7830#line 2024 "parser.yy"
    78597831    {   // mark all fields in list
    78607832                        for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     
    78677839
    78687840/* Line 1806 of yacc.c  */
    7869 #line 2041 "parser.yy"
     7841#line 2039 "parser.yy"
    78707842    {
    78717843                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78787850
    78797851/* Line 1806 of yacc.c  */
    7880 #line 2047 "parser.yy"
     7852#line 2045 "parser.yy"
    78817853    {
    78827854                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78897861
    78907862/* Line 1806 of yacc.c  */
    7891 #line 2056 "parser.yy"
     7863#line 2054 "parser.yy"
    78927864    {
    78937865                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79007872
    79017873/* Line 1806 of yacc.c  */
    7902 #line 2062 "parser.yy"
     7874#line 2060 "parser.yy"
    79037875    {
    79047876                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79117883
    79127884/* Line 1806 of yacc.c  */
    7913 #line 2068 "parser.yy"
     7885#line 2066 "parser.yy"
    79147886    {
    79157887                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79227894
    79237895/* Line 1806 of yacc.c  */
    7924 #line 2074 "parser.yy"
     7896#line 2072 "parser.yy"
    79257897    {
    79267898                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79337905
    79347906/* Line 1806 of yacc.c  */
    7935 #line 2080 "parser.yy"
     7907#line 2078 "parser.yy"
    79367908    {
    79377909                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79447916
    79457917/* Line 1806 of yacc.c  */
    7946 #line 2088 "parser.yy"
     7918#line 2086 "parser.yy"
    79477919    {
    79487920                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79557927
    79567928/* Line 1806 of yacc.c  */
    7957 #line 2094 "parser.yy"
     7929#line 2092 "parser.yy"
    79587930    {
    79597931                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79667938
    79677939/* Line 1806 of yacc.c  */
    7968 #line 2102 "parser.yy"
     7940#line 2100 "parser.yy"
    79697941    {
    79707942                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79777949
    79787950/* Line 1806 of yacc.c  */
    7979 #line 2108 "parser.yy"
     7951#line 2106 "parser.yy"
    79807952    {
    79817953                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79887960
    79897961/* Line 1806 of yacc.c  */
    7990 #line 2123 "parser.yy"
     7962#line 2121 "parser.yy"
    79917963    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    79927964    break;
     
    79957967
    79967968/* Line 1806 of yacc.c  */
    7997 #line 2128 "parser.yy"
     7969#line 2126 "parser.yy"
    79987970    { delete (yyvsp[(3) - (5)].str); }
    79997971    break;
     
    80027974
    80037975/* Line 1806 of yacc.c  */
    8004 #line 2133 "parser.yy"
     7976#line 2131 "parser.yy"
    80057977    { (yyval.decl) = 0; }
    80067978    break;
     
    80097981
    80107982/* Line 1806 of yacc.c  */
    8011 #line 2140 "parser.yy"
     7983#line 2138 "parser.yy"
    80127984    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    80137985    break;
     
    80167988
    80177989/* Line 1806 of yacc.c  */
    8018 #line 2146 "parser.yy"
     7990#line 2144 "parser.yy"
    80197991    { (yyval.decl) = 0; }
    80207992    break;
     
    80237995
    80247996/* Line 1806 of yacc.c  */
    8025 #line 2157 "parser.yy"
     7997#line 2155 "parser.yy"
    80267998    { delete (yyvsp[(3) - (4)].en); }
    80277999    break;
     
    80308002
    80318003/* Line 1806 of yacc.c  */
     8004#line 2159 "parser.yy"
     8005    { delete (yyvsp[(1) - (1)].tok); }
     8006    break;
     8007
     8008  case 560:
     8009
     8010/* Line 1806 of yacc.c  */
     8011#line 2160 "parser.yy"
     8012    { delete (yyvsp[(1) - (1)].decl); }
     8013    break;
     8014
     8015  case 561:
     8016
     8017/* Line 1806 of yacc.c  */
    80328018#line 2161 "parser.yy"
    8033     { delete (yyvsp[(1) - (1)].tok); }
    8034     break;
    8035 
    8036   case 560:
     8019    { delete (yyvsp[(1) - (1)].decl); }
     8020    break;
     8021
     8022  case 562:
    80378023
    80388024/* Line 1806 of yacc.c  */
     
    80418027    break;
    80428028
    8043   case 561:
    8044 
    8045 /* Line 1806 of yacc.c  */
    8046 #line 2163 "parser.yy"
    8047     { delete (yyvsp[(1) - (1)].decl); }
    8048     break;
    8049 
    8050   case 562:
    8051 
    8052 /* Line 1806 of yacc.c  */
    8053 #line 2164 "parser.yy"
    8054     { delete (yyvsp[(1) - (1)].decl); }
    8055     break;
    8056 
    80578029  case 563:
    80588030
    80598031/* Line 1806 of yacc.c  */
    8060 #line 2199 "parser.yy"
     8032#line 2197 "parser.yy"
    80618033    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80628034    break;
    80638035
    80648036  case 565:
     8037
     8038/* Line 1806 of yacc.c  */
     8039#line 2200 "parser.yy"
     8040    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8041    break;
     8042
     8043  case 566:
    80658044
    80668045/* Line 1806 of yacc.c  */
     
    80698048    break;
    80708049
    8071   case 566:
    8072 
    8073 /* Line 1806 of yacc.c  */
    8074 #line 2204 "parser.yy"
    8075     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8076     break;
    8077 
    80788050  case 567:
    80798051
    80808052/* Line 1806 of yacc.c  */
    8081 #line 2209 "parser.yy"
     8053#line 2207 "parser.yy"
    80828054    {
    80838055                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    80898061
    80908062/* Line 1806 of yacc.c  */
    8091 #line 2214 "parser.yy"
     8063#line 2212 "parser.yy"
    80928064    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80938065    break;
     
    80968068
    80978069/* Line 1806 of yacc.c  */
     8070#line 2217 "parser.yy"
     8071    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8072    break;
     8073
     8074  case 570:
     8075
     8076/* Line 1806 of yacc.c  */
    80988077#line 2219 "parser.yy"
    8099     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8100     break;
    8101 
    8102   case 570:
     8078    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8079    break;
     8080
     8081  case 571:
    81038082
    81048083/* Line 1806 of yacc.c  */
    81058084#line 2221 "parser.yy"
    8106     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8107     break;
    8108 
    8109   case 571:
    8110 
    8111 /* Line 1806 of yacc.c  */
    8112 #line 2223 "parser.yy"
    81138085    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81148086    break;
     
    81178089
    81188090/* Line 1806 of yacc.c  */
     8091#line 2226 "parser.yy"
     8092    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8093    break;
     8094
     8095  case 573:
     8096
     8097/* Line 1806 of yacc.c  */
    81198098#line 2228 "parser.yy"
    8120     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8121     break;
    8122 
    8123   case 573:
     8099    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8100    break;
     8101
     8102  case 574:
    81248103
    81258104/* Line 1806 of yacc.c  */
     
    81288107    break;
    81298108
    8130   case 574:
     8109  case 575:
    81318110
    81328111/* Line 1806 of yacc.c  */
    81338112#line 2232 "parser.yy"
     8113    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8114    break;
     8115
     8116  case 576:
     8117
     8118/* Line 1806 of yacc.c  */
     8119#line 2237 "parser.yy"
     8120    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8121    break;
     8122
     8123  case 577:
     8124
     8125/* Line 1806 of yacc.c  */
     8126#line 2239 "parser.yy"
     8127    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8128    break;
     8129
     8130  case 578:
     8131
     8132/* Line 1806 of yacc.c  */
     8133#line 2248 "parser.yy"
     8134    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8135    break;
     8136
     8137  case 580:
     8138
     8139/* Line 1806 of yacc.c  */
     8140#line 2251 "parser.yy"
     8141    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8142    break;
     8143
     8144  case 581:
     8145
     8146/* Line 1806 of yacc.c  */
     8147#line 2256 "parser.yy"
     8148    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8149    break;
     8150
     8151  case 582:
     8152
     8153/* Line 1806 of yacc.c  */
     8154#line 2258 "parser.yy"
     8155    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8156    break;
     8157
     8158  case 583:
     8159
     8160/* Line 1806 of yacc.c  */
     8161#line 2260 "parser.yy"
     8162    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8163    break;
     8164
     8165  case 584:
     8166
     8167/* Line 1806 of yacc.c  */
     8168#line 2265 "parser.yy"
     8169    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8170    break;
     8171
     8172  case 585:
     8173
     8174/* Line 1806 of yacc.c  */
     8175#line 2267 "parser.yy"
     8176    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8177    break;
     8178
     8179  case 586:
     8180
     8181/* Line 1806 of yacc.c  */
     8182#line 2269 "parser.yy"
     8183    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8184    break;
     8185
     8186  case 587:
     8187
     8188/* Line 1806 of yacc.c  */
     8189#line 2274 "parser.yy"
    81348190    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    81358191    break;
    81368192
    8137   case 575:
    8138 
    8139 /* Line 1806 of yacc.c  */
    8140 #line 2234 "parser.yy"
    8141     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8142     break;
    8143 
    8144   case 576:
    8145 
    8146 /* Line 1806 of yacc.c  */
    8147 #line 2239 "parser.yy"
    8148     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8149     break;
    8150 
    8151   case 577:
    8152 
    8153 /* Line 1806 of yacc.c  */
    8154 #line 2241 "parser.yy"
    8155     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8156     break;
    8157 
    8158   case 578:
    8159 
    8160 /* Line 1806 of yacc.c  */
    8161 #line 2250 "parser.yy"
    8162     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8163     break;
    8164 
    8165   case 580:
    8166 
    8167 /* Line 1806 of yacc.c  */
    8168 #line 2253 "parser.yy"
    8169     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8170     break;
    8171 
    8172   case 581:
    8173 
    8174 /* Line 1806 of yacc.c  */
    8175 #line 2258 "parser.yy"
    8176     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8177     break;
    8178 
    8179   case 582:
    8180 
    8181 /* Line 1806 of yacc.c  */
    8182 #line 2260 "parser.yy"
    8183     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8184     break;
    8185 
    8186   case 583:
    8187 
    8188 /* Line 1806 of yacc.c  */
    8189 #line 2262 "parser.yy"
    8190     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8191     break;
    8192 
    8193   case 584:
    8194 
    8195 /* Line 1806 of yacc.c  */
    8196 #line 2267 "parser.yy"
    8197     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8198     break;
    8199 
    8200   case 585:
    8201 
    8202 /* Line 1806 of yacc.c  */
    8203 #line 2269 "parser.yy"
    8204     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8205     break;
    8206 
    8207   case 586:
    8208 
    8209 /* Line 1806 of yacc.c  */
    8210 #line 2271 "parser.yy"
    8211     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8212     break;
    8213 
    8214   case 587:
     8193  case 588:
    82158194
    82168195/* Line 1806 of yacc.c  */
     
    82198198    break;
    82208199
    8221   case 588:
     8200  case 589:
    82228201
    82238202/* Line 1806 of yacc.c  */
    82248203#line 2278 "parser.yy"
     8204    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8205    break;
     8206
     8207  case 593:
     8208
     8209/* Line 1806 of yacc.c  */
     8210#line 2293 "parser.yy"
     8211    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
     8212    break;
     8213
     8214  case 594:
     8215
     8216/* Line 1806 of yacc.c  */
     8217#line 2295 "parser.yy"
     8218    { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
     8219    break;
     8220
     8221  case 595:
     8222
     8223/* Line 1806 of yacc.c  */
     8224#line 2297 "parser.yy"
     8225    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8226    break;
     8227
     8228  case 596:
     8229
     8230/* Line 1806 of yacc.c  */
     8231#line 2302 "parser.yy"
     8232    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8233    break;
     8234
     8235  case 597:
     8236
     8237/* Line 1806 of yacc.c  */
     8238#line 2304 "parser.yy"
     8239    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8240    break;
     8241
     8242  case 598:
     8243
     8244/* Line 1806 of yacc.c  */
     8245#line 2306 "parser.yy"
     8246    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8247    break;
     8248
     8249  case 599:
     8250
     8251/* Line 1806 of yacc.c  */
     8252#line 2311 "parser.yy"
    82258253    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    82268254    break;
    82278255
    8228   case 589:
    8229 
    8230 /* Line 1806 of yacc.c  */
    8231 #line 2280 "parser.yy"
    8232     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8233     break;
    8234 
    8235   case 593:
    8236 
    8237 /* Line 1806 of yacc.c  */
    8238 #line 2295 "parser.yy"
    8239     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
    8240     break;
    8241 
    8242   case 594:
    8243 
    8244 /* Line 1806 of yacc.c  */
    8245 #line 2297 "parser.yy"
    8246     { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
    8247     break;
    8248 
    8249   case 595:
    8250 
    8251 /* Line 1806 of yacc.c  */
    8252 #line 2299 "parser.yy"
    8253     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8254     break;
    8255 
    8256   case 596:
    8257 
    8258 /* Line 1806 of yacc.c  */
    8259 #line 2304 "parser.yy"
    8260     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8261     break;
    8262 
    8263   case 597:
    8264 
    8265 /* Line 1806 of yacc.c  */
    8266 #line 2306 "parser.yy"
    8267     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8268     break;
    8269 
    8270   case 598:
    8271 
    8272 /* Line 1806 of yacc.c  */
    8273 #line 2308 "parser.yy"
    8274     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8275     break;
    8276 
    8277   case 599:
     8256  case 600:
    82788257
    82798258/* Line 1806 of yacc.c  */
     
    82828261    break;
    82838262
    8284   case 600:
     8263  case 601:
    82858264
    82868265/* Line 1806 of yacc.c  */
    82878266#line 2315 "parser.yy"
    8288     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8289     break;
    8290 
    8291   case 601:
    8292 
    8293 /* Line 1806 of yacc.c  */
    8294 #line 2317 "parser.yy"
    82958267    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82968268    break;
     
    82998271
    83008272/* Line 1806 of yacc.c  */
    8301 #line 2332 "parser.yy"
     8273#line 2330 "parser.yy"
    83028274    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83038275    break;
    83048276
    83058277  case 604:
     8278
     8279/* Line 1806 of yacc.c  */
     8280#line 2333 "parser.yy"
     8281    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8282    break;
     8283
     8284  case 605:
    83068285
    83078286/* Line 1806 of yacc.c  */
     
    83108289    break;
    83118290
    8312   case 605:
    8313 
    8314 /* Line 1806 of yacc.c  */
    8315 #line 2337 "parser.yy"
    8316     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8317     break;
    8318 
    83198291  case 607:
    83208292
    83218293/* Line 1806 of yacc.c  */
    8322 #line 2343 "parser.yy"
     8294#line 2341 "parser.yy"
    83238295    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83248296    break;
     
    83278299
    83288300/* Line 1806 of yacc.c  */
     8301#line 2346 "parser.yy"
     8302    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8303    break;
     8304
     8305  case 609:
     8306
     8307/* Line 1806 of yacc.c  */
    83298308#line 2348 "parser.yy"
    8330     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8331     break;
    8332 
    8333   case 609:
     8309    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8310    break;
     8311
     8312  case 610:
    83348313
    83358314/* Line 1806 of yacc.c  */
    83368315#line 2350 "parser.yy"
    8337     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8338     break;
    8339 
    8340   case 610:
    8341 
    8342 /* Line 1806 of yacc.c  */
    8343 #line 2352 "parser.yy"
    83448316    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83458317    break;
     
    83488320
    83498321/* Line 1806 of yacc.c  */
     8322#line 2355 "parser.yy"
     8323    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8324    break;
     8325
     8326  case 612:
     8327
     8328/* Line 1806 of yacc.c  */
    83508329#line 2357 "parser.yy"
    8351     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8352     break;
    8353 
    8354   case 612:
     8330    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8331    break;
     8332
     8333  case 613:
    83558334
    83568335/* Line 1806 of yacc.c  */
     
    83598338    break;
    83608339
    8361   case 613:
     8340  case 614:
    83628341
    83638342/* Line 1806 of yacc.c  */
    83648343#line 2361 "parser.yy"
    8365     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8366     break;
    8367 
    8368   case 614:
    8369 
    8370 /* Line 1806 of yacc.c  */
    8371 #line 2363 "parser.yy"
    83728344    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83738345    break;
     
    83768348
    83778349/* Line 1806 of yacc.c  */
     8350#line 2366 "parser.yy"
     8351    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8352    break;
     8353
     8354  case 616:
     8355
     8356/* Line 1806 of yacc.c  */
    83788357#line 2368 "parser.yy"
    8379     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8380     break;
    8381 
    8382   case 616:
     8358    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8359    break;
     8360
     8361  case 617:
    83838362
    83848363/* Line 1806 of yacc.c  */
    83858364#line 2370 "parser.yy"
    8386     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8387     break;
    8388 
    8389   case 617:
    8390 
    8391 /* Line 1806 of yacc.c  */
    8392 #line 2372 "parser.yy"
    83938365    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83948366    break;
     
    83978369
    83988370/* Line 1806 of yacc.c  */
    8399 #line 2382 "parser.yy"
     8371#line 2380 "parser.yy"
    84008372    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84018373    break;
    84028374
    84038375  case 620:
     8376
     8377/* Line 1806 of yacc.c  */
     8378#line 2383 "parser.yy"
     8379    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8380    break;
     8381
     8382  case 621:
    84048383
    84058384/* Line 1806 of yacc.c  */
     
    84088387    break;
    84098388
    8410   case 621:
    8411 
    8412 /* Line 1806 of yacc.c  */
    8413 #line 2387 "parser.yy"
    8414     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8415     break;
    8416 
    84178389  case 622:
    84188390
    84198391/* Line 1806 of yacc.c  */
     8392#line 2390 "parser.yy"
     8393    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8394    break;
     8395
     8396  case 623:
     8397
     8398/* Line 1806 of yacc.c  */
    84208399#line 2392 "parser.yy"
    8421     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8422     break;
    8423 
    8424   case 623:
     8400    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8401    break;
     8402
     8403  case 624:
    84258404
    84268405/* Line 1806 of yacc.c  */
    84278406#line 2394 "parser.yy"
    8428     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8429     break;
    8430 
    8431   case 624:
    8432 
    8433 /* Line 1806 of yacc.c  */
    8434 #line 2396 "parser.yy"
    84358407    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84368408    break;
     
    84398411
    84408412/* Line 1806 of yacc.c  */
     8413#line 2399 "parser.yy"
     8414    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8415    break;
     8416
     8417  case 626:
     8418
     8419/* Line 1806 of yacc.c  */
    84418420#line 2401 "parser.yy"
    8442     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8443     break;
    8444 
    8445   case 626:
     8421    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8422    break;
     8423
     8424  case 627:
    84468425
    84478426/* Line 1806 of yacc.c  */
     
    84508429    break;
    84518430
    8452   case 627:
     8431  case 628:
    84538432
    84548433/* Line 1806 of yacc.c  */
    84558434#line 2405 "parser.yy"
    8456     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8457     break;
    8458 
    8459   case 628:
    8460 
    8461 /* Line 1806 of yacc.c  */
    8462 #line 2407 "parser.yy"
    84638435    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84648436    break;
     
    84678439
    84688440/* Line 1806 of yacc.c  */
     8441#line 2410 "parser.yy"
     8442    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8443    break;
     8444
     8445  case 630:
     8446
     8447/* Line 1806 of yacc.c  */
    84698448#line 2412 "parser.yy"
    8470     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8471     break;
    8472 
    8473   case 630:
     8449    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8450    break;
     8451
     8452  case 631:
    84748453
    84758454/* Line 1806 of yacc.c  */
    84768455#line 2414 "parser.yy"
    8477     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8478     break;
    8479 
    8480   case 631:
    8481 
    8482 /* Line 1806 of yacc.c  */
    8483 #line 2416 "parser.yy"
    84848456    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84858457    break;
     
    84888460
    84898461/* Line 1806 of yacc.c  */
    8490 #line 2447 "parser.yy"
     8462#line 2445 "parser.yy"
    84918463    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84928464    break;
    84938465
    84948466  case 634:
     8467
     8468/* Line 1806 of yacc.c  */
     8469#line 2448 "parser.yy"
     8470    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8471    break;
     8472
     8473  case 635:
    84958474
    84968475/* Line 1806 of yacc.c  */
     
    84998478    break;
    85008479
    8501   case 635:
    8502 
    8503 /* Line 1806 of yacc.c  */
    8504 #line 2452 "parser.yy"
    8505     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8506     break;
    8507 
    85088480  case 636:
    85098481
    85108482/* Line 1806 of yacc.c  */
    8511 #line 2457 "parser.yy"
     8483#line 2455 "parser.yy"
    85128484    {
    85138485                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    85198491
    85208492/* Line 1806 of yacc.c  */
    8521 #line 2462 "parser.yy"
     8493#line 2460 "parser.yy"
    85228494    {
    85238495                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    85298501
    85308502/* Line 1806 of yacc.c  */
     8503#line 2468 "parser.yy"
     8504    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8505    break;
     8506
     8507  case 639:
     8508
     8509/* Line 1806 of yacc.c  */
    85318510#line 2470 "parser.yy"
    8532     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8533     break;
    8534 
    8535   case 639:
     8511    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8512    break;
     8513
     8514  case 640:
    85368515
    85378516/* Line 1806 of yacc.c  */
    85388517#line 2472 "parser.yy"
    8539     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8540     break;
    8541 
    8542   case 640:
    8543 
    8544 /* Line 1806 of yacc.c  */
    8545 #line 2474 "parser.yy"
    85468518    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85478519    break;
     
    85508522
    85518523/* Line 1806 of yacc.c  */
     8524#line 2477 "parser.yy"
     8525    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8526    break;
     8527
     8528  case 642:
     8529
     8530/* Line 1806 of yacc.c  */
    85528531#line 2479 "parser.yy"
    8553     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8554     break;
    8555 
    8556   case 642:
    8557 
    8558 /* Line 1806 of yacc.c  */
    8559 #line 2481 "parser.yy"
    85608532    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    85618533    break;
     
    85648536
    85658537/* Line 1806 of yacc.c  */
     8538#line 2484 "parser.yy"
     8539    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8540    break;
     8541
     8542  case 644:
     8543
     8544/* Line 1806 of yacc.c  */
    85668545#line 2486 "parser.yy"
    8567     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8568     break;
    8569 
    8570   case 644:
    8571 
    8572 /* Line 1806 of yacc.c  */
    8573 #line 2488 "parser.yy"
    85748546    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    85758547    break;
    85768548
    85778549  case 646:
     8550
     8551/* Line 1806 of yacc.c  */
     8552#line 2501 "parser.yy"
     8553    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8554    break;
     8555
     8556  case 647:
    85788557
    85798558/* Line 1806 of yacc.c  */
     
    85828561    break;
    85838562
    8584   case 647:
    8585 
    8586 /* Line 1806 of yacc.c  */
    8587 #line 2505 "parser.yy"
    8588     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8589     break;
    8590 
    85918563  case 648:
    85928564
    85938565/* Line 1806 of yacc.c  */
     8566#line 2508 "parser.yy"
     8567    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     8568    break;
     8569
     8570  case 649:
     8571
     8572/* Line 1806 of yacc.c  */
    85948573#line 2510 "parser.yy"
    8595     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    8596     break;
    8597 
    8598   case 649:
     8574    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     8575    break;
     8576
     8577  case 650:
    85998578
    86008579/* Line 1806 of yacc.c  */
    86018580#line 2512 "parser.yy"
    8602     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    8603     break;
    8604 
    8605   case 650:
     8581    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8582    break;
     8583
     8584  case 651:
    86068585
    86078586/* Line 1806 of yacc.c  */
    86088587#line 2514 "parser.yy"
    8609     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8610     break;
    8611 
    8612   case 651:
     8588    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8589    break;
     8590
     8591  case 652:
    86138592
    86148593/* Line 1806 of yacc.c  */
    86158594#line 2516 "parser.yy"
    8616     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8617     break;
    8618 
    8619   case 652:
    8620 
    8621 /* Line 1806 of yacc.c  */
    8622 #line 2518 "parser.yy"
    86238595    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86248596    break;
    86258597
    86268598  case 654:
     8599
     8600/* Line 1806 of yacc.c  */
     8601#line 2522 "parser.yy"
     8602    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8603    break;
     8604
     8605  case 655:
    86278606
    86288607/* Line 1806 of yacc.c  */
     
    86318610    break;
    86328611
    8633   case 655:
     8612  case 656:
    86348613
    86358614/* Line 1806 of yacc.c  */
    86368615#line 2526 "parser.yy"
    8637     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8638     break;
    8639 
    8640   case 656:
    8641 
    8642 /* Line 1806 of yacc.c  */
    8643 #line 2528 "parser.yy"
    86448616    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86458617    break;
     
    86488620
    86498621/* Line 1806 of yacc.c  */
     8622#line 2531 "parser.yy"
     8623    { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
     8624    break;
     8625
     8626  case 658:
     8627
     8628/* Line 1806 of yacc.c  */
    86508629#line 2533 "parser.yy"
    8651     { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
    8652     break;
    8653 
    8654   case 658:
     8630    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8631    break;
     8632
     8633  case 659:
    86558634
    86568635/* Line 1806 of yacc.c  */
    86578636#line 2535 "parser.yy"
    8658     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8659     break;
    8660 
    8661   case 659:
    8662 
    8663 /* Line 1806 of yacc.c  */
    8664 #line 2537 "parser.yy"
    86658637    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86668638    break;
     
    86698641
    86708642/* Line 1806 of yacc.c  */
     8643#line 2541 "parser.yy"
     8644    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     8645    break;
     8646
     8647  case 661:
     8648
     8649/* Line 1806 of yacc.c  */
    86718650#line 2543 "parser.yy"
    8672     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    8673     break;
    8674 
    8675   case 661:
    8676 
    8677 /* Line 1806 of yacc.c  */
    8678 #line 2545 "parser.yy"
    86798651    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
    86808652    break;
     
    86838655
    86848656/* Line 1806 of yacc.c  */
     8657#line 2549 "parser.yy"
     8658    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
     8659    break;
     8660
     8661  case 664:
     8662
     8663/* Line 1806 of yacc.c  */
    86858664#line 2551 "parser.yy"
    8686     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
    8687     break;
    8688 
    8689   case 664:
     8665    { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
     8666    break;
     8667
     8668  case 665:
    86908669
    86918670/* Line 1806 of yacc.c  */
    86928671#line 2553 "parser.yy"
    8693     { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
    8694     break;
    8695 
    8696   case 665:
     8672    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
     8673    break;
     8674
     8675  case 666:
    86978676
    86988677/* Line 1806 of yacc.c  */
    86998678#line 2555 "parser.yy"
    8700     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
    8701     break;
    8702 
    8703   case 666:
    8704 
    8705 /* Line 1806 of yacc.c  */
    8706 #line 2557 "parser.yy"
    87078679    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
    87088680    break;
    87098681
    87108682  case 668:
     8683
     8684/* Line 1806 of yacc.c  */
     8685#line 2570 "parser.yy"
     8686    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8687    break;
     8688
     8689  case 669:
    87118690
    87128691/* Line 1806 of yacc.c  */
     
    87158694    break;
    87168695
    8717   case 669:
    8718 
    8719 /* Line 1806 of yacc.c  */
    8720 #line 2574 "parser.yy"
    8721     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8722     break;
    8723 
    87248696  case 670:
    87258697
    87268698/* Line 1806 of yacc.c  */
     8699#line 2577 "parser.yy"
     8700    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     8701    break;
     8702
     8703  case 671:
     8704
     8705/* Line 1806 of yacc.c  */
    87278706#line 2579 "parser.yy"
    8728     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    8729     break;
    8730 
    8731   case 671:
     8707    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     8708    break;
     8709
     8710  case 672:
    87328711
    87338712/* Line 1806 of yacc.c  */
    87348713#line 2581 "parser.yy"
    8735     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    8736     break;
    8737 
    8738   case 672:
     8714    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8715    break;
     8716
     8717  case 673:
    87398718
    87408719/* Line 1806 of yacc.c  */
    87418720#line 2583 "parser.yy"
    8742     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8743     break;
    8744 
    8745   case 673:
     8721    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8722    break;
     8723
     8724  case 674:
    87468725
    87478726/* Line 1806 of yacc.c  */
    87488727#line 2585 "parser.yy"
    8749     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8750     break;
    8751 
    8752   case 674:
    8753 
    8754 /* Line 1806 of yacc.c  */
    8755 #line 2587 "parser.yy"
    87568728    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87578729    break;
    87588730
    87598731  case 676:
     8732
     8733/* Line 1806 of yacc.c  */
     8734#line 2591 "parser.yy"
     8735    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8736    break;
     8737
     8738  case 677:
    87608739
    87618740/* Line 1806 of yacc.c  */
     
    87648743    break;
    87658744
    8766   case 677:
     8745  case 678:
    87678746
    87688747/* Line 1806 of yacc.c  */
    87698748#line 2595 "parser.yy"
    8770     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8771     break;
    8772 
    8773   case 678:
    8774 
    8775 /* Line 1806 of yacc.c  */
    8776 #line 2597 "parser.yy"
    87778749    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87788750    break;
     
    87818753
    87828754/* Line 1806 of yacc.c  */
     8755#line 2600 "parser.yy"
     8756    { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
     8757    break;
     8758
     8759  case 680:
     8760
     8761/* Line 1806 of yacc.c  */
    87838762#line 2602 "parser.yy"
    8784     { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
    8785     break;
    8786 
    8787   case 680:
     8763    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8764    break;
     8765
     8766  case 681:
    87888767
    87898768/* Line 1806 of yacc.c  */
    87908769#line 2604 "parser.yy"
    8791     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8792     break;
    8793 
    8794   case 681:
    8795 
    8796 /* Line 1806 of yacc.c  */
    8797 #line 2606 "parser.yy"
    87988770    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87998771    break;
     
    88028774
    88038775/* Line 1806 of yacc.c  */
    8804 #line 2613 "parser.yy"
     8776#line 2611 "parser.yy"
    88058777    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    88068778    break;
     
    88098781
    88108782/* Line 1806 of yacc.c  */
    8811 #line 2624 "parser.yy"
     8783#line 2622 "parser.yy"
    88128784    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    88138785    break;
     
    88168788
    88178789/* Line 1806 of yacc.c  */
     8790#line 2625 "parser.yy"
     8791    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
     8792    break;
     8793
     8794  case 687:
     8795
     8796/* Line 1806 of yacc.c  */
    88188797#line 2627 "parser.yy"
    8819     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    8820     break;
    8821 
    8822   case 687:
    8823 
    8824 /* Line 1806 of yacc.c  */
    8825 #line 2629 "parser.yy"
    88268798    { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
    88278799    break;
     
    88308802
    88318803/* Line 1806 of yacc.c  */
     8804#line 2630 "parser.yy"
     8805    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
     8806    break;
     8807
     8808  case 689:
     8809
     8810/* Line 1806 of yacc.c  */
    88328811#line 2632 "parser.yy"
    8833     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    8834     break;
    8835 
    8836   case 689:
     8812    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
     8813    break;
     8814
     8815  case 690:
    88378816
    88388817/* Line 1806 of yacc.c  */
    88398818#line 2634 "parser.yy"
    8840     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
    8841     break;
    8842 
    8843   case 690:
    8844 
    8845 /* Line 1806 of yacc.c  */
    8846 #line 2636 "parser.yy"
    88478819    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
    88488820    break;
    88498821
    88508822  case 692:
     8823
     8824/* Line 1806 of yacc.c  */
     8825#line 2648 "parser.yy"
     8826    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8827    break;
     8828
     8829  case 693:
    88518830
    88528831/* Line 1806 of yacc.c  */
     
    88558834    break;
    88568835
    8857   case 693:
    8858 
    8859 /* Line 1806 of yacc.c  */
    8860 #line 2652 "parser.yy"
    8861     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8862     break;
    8863 
    88648836  case 694:
    88658837
    88668838/* Line 1806 of yacc.c  */
     8839#line 2655 "parser.yy"
     8840    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     8841    break;
     8842
     8843  case 695:
     8844
     8845/* Line 1806 of yacc.c  */
    88678846#line 2657 "parser.yy"
    8868     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    8869     break;
    8870 
    8871   case 695:
     8847    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     8848    break;
     8849
     8850  case 696:
    88728851
    88738852/* Line 1806 of yacc.c  */
    88748853#line 2659 "parser.yy"
    8875     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    8876     break;
    8877 
    8878   case 696:
     8854    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8855    break;
     8856
     8857  case 697:
    88798858
    88808859/* Line 1806 of yacc.c  */
    88818860#line 2661 "parser.yy"
    8882     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8883     break;
    8884 
    8885   case 697:
     8861    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8862    break;
     8863
     8864  case 698:
    88868865
    88878866/* Line 1806 of yacc.c  */
    88888867#line 2663 "parser.yy"
    8889     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8890     break;
    8891 
    8892   case 698:
    8893 
    8894 /* Line 1806 of yacc.c  */
    8895 #line 2665 "parser.yy"
    88968868    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    88978869    break;
    88988870
    88998871  case 700:
     8872
     8873/* Line 1806 of yacc.c  */
     8874#line 2669 "parser.yy"
     8875    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8876    break;
     8877
     8878  case 701:
    89008879
    89018880/* Line 1806 of yacc.c  */
     
    89048883    break;
    89058884
    8906   case 701:
     8885  case 702:
    89078886
    89088887/* Line 1806 of yacc.c  */
    89098888#line 2673 "parser.yy"
    8910     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8911     break;
    8912 
    8913   case 702:
    8914 
    8915 /* Line 1806 of yacc.c  */
    8916 #line 2675 "parser.yy"
    89178889    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    89188890    break;
     
    89218893
    89228894/* Line 1806 of yacc.c  */
     8895#line 2678 "parser.yy"
     8896    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8897    break;
     8898
     8899  case 704:
     8900
     8901/* Line 1806 of yacc.c  */
    89238902#line 2680 "parser.yy"
    8924     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8925     break;
    8926 
    8927   case 704:
    8928 
    8929 /* Line 1806 of yacc.c  */
    8930 #line 2682 "parser.yy"
    89318903    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    89328904    break;
     
    89358907
    89368908/* Line 1806 of yacc.c  */
    8937 #line 2692 "parser.yy"
     8909#line 2690 "parser.yy"
    89388910    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    89398911    break;
     
    89428914
    89438915/* Line 1806 of yacc.c  */
     8916#line 2700 "parser.yy"
     8917    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8918    break;
     8919
     8920  case 711:
     8921
     8922/* Line 1806 of yacc.c  */
    89448923#line 2702 "parser.yy"
     8924    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8925    break;
     8926
     8927  case 712:
     8928
     8929/* Line 1806 of yacc.c  */
     8930#line 2704 "parser.yy"
    89458931    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89468932    break;
    89478933
    8948   case 711:
    8949 
    8950 /* Line 1806 of yacc.c  */
    8951 #line 2704 "parser.yy"
     8934  case 713:
     8935
     8936/* Line 1806 of yacc.c  */
     8937#line 2706 "parser.yy"
    89528938    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89538939    break;
    89548940
    8955   case 712:
    8956 
    8957 /* Line 1806 of yacc.c  */
    8958 #line 2706 "parser.yy"
     8941  case 714:
     8942
     8943/* Line 1806 of yacc.c  */
     8944#line 2708 "parser.yy"
    89598945    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89608946    break;
    89618947
    8962   case 713:
    8963 
    8964 /* Line 1806 of yacc.c  */
    8965 #line 2708 "parser.yy"
     8948  case 715:
     8949
     8950/* Line 1806 of yacc.c  */
     8951#line 2710 "parser.yy"
    89668952    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89678953    break;
    89688954
    8969   case 714:
    8970 
    8971 /* Line 1806 of yacc.c  */
    8972 #line 2710 "parser.yy"
     8955  case 716:
     8956
     8957/* Line 1806 of yacc.c  */
     8958#line 2717 "parser.yy"
     8959    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8960    break;
     8961
     8962  case 717:
     8963
     8964/* Line 1806 of yacc.c  */
     8965#line 2719 "parser.yy"
     8966    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     8967    break;
     8968
     8969  case 718:
     8970
     8971/* Line 1806 of yacc.c  */
     8972#line 2721 "parser.yy"
     8973    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8974    break;
     8975
     8976  case 719:
     8977
     8978/* Line 1806 of yacc.c  */
     8979#line 2723 "parser.yy"
     8980    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     8981    break;
     8982
     8983  case 720:
     8984
     8985/* Line 1806 of yacc.c  */
     8986#line 2725 "parser.yy"
     8987    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     8988    break;
     8989
     8990  case 721:
     8991
     8992/* Line 1806 of yacc.c  */
     8993#line 2728 "parser.yy"
     8994    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8995    break;
     8996
     8997  case 722:
     8998
     8999/* Line 1806 of yacc.c  */
     9000#line 2730 "parser.yy"
     9001    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     9002    break;
     9003
     9004  case 723:
     9005
     9006/* Line 1806 of yacc.c  */
     9007#line 2732 "parser.yy"
     9008    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     9009    break;
     9010
     9011  case 724:
     9012
     9013/* Line 1806 of yacc.c  */
     9014#line 2734 "parser.yy"
     9015    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     9016    break;
     9017
     9018  case 725:
     9019
     9020/* Line 1806 of yacc.c  */
     9021#line 2736 "parser.yy"
     9022    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     9023    break;
     9024
     9025  case 726:
     9026
     9027/* Line 1806 of yacc.c  */
     9028#line 2741 "parser.yy"
     9029    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
     9030    break;
     9031
     9032  case 727:
     9033
     9034/* Line 1806 of yacc.c  */
     9035#line 2743 "parser.yy"
     9036    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
     9037    break;
     9038
     9039  case 728:
     9040
     9041/* Line 1806 of yacc.c  */
     9042#line 2748 "parser.yy"
     9043    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
     9044    break;
     9045
     9046  case 729:
     9047
     9048/* Line 1806 of yacc.c  */
     9049#line 2750 "parser.yy"
     9050    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
     9051    break;
     9052
     9053  case 731:
     9054
     9055/* Line 1806 of yacc.c  */
     9056#line 2777 "parser.yy"
     9057    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     9058    break;
     9059
     9060  case 735:
     9061
     9062/* Line 1806 of yacc.c  */
     9063#line 2788 "parser.yy"
    89739064    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89749065    break;
    89759066
    8976   case 715:
    8977 
    8978 /* Line 1806 of yacc.c  */
    8979 #line 2712 "parser.yy"
     9067  case 736:
     9068
     9069/* Line 1806 of yacc.c  */
     9070#line 2790 "parser.yy"
    89809071    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89819072    break;
    89829073
    8983   case 716:
    8984 
    8985 /* Line 1806 of yacc.c  */
    8986 #line 2719 "parser.yy"
    8987     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8988     break;
    8989 
    8990   case 717:
    8991 
    8992 /* Line 1806 of yacc.c  */
    8993 #line 2721 "parser.yy"
     9074  case 737:
     9075
     9076/* Line 1806 of yacc.c  */
     9077#line 2792 "parser.yy"
     9078    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     9079    break;
     9080
     9081  case 738:
     9082
     9083/* Line 1806 of yacc.c  */
     9084#line 2794 "parser.yy"
     9085    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     9086    break;
     9087
     9088  case 739:
     9089
     9090/* Line 1806 of yacc.c  */
     9091#line 2796 "parser.yy"
     9092    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     9093    break;
     9094
     9095  case 740:
     9096
     9097/* Line 1806 of yacc.c  */
     9098#line 2798 "parser.yy"
     9099    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     9100    break;
     9101
     9102  case 741:
     9103
     9104/* Line 1806 of yacc.c  */
     9105#line 2805 "parser.yy"
     9106    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     9107    break;
     9108
     9109  case 742:
     9110
     9111/* Line 1806 of yacc.c  */
     9112#line 2807 "parser.yy"
     9113    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     9114    break;
     9115
     9116  case 743:
     9117
     9118/* Line 1806 of yacc.c  */
     9119#line 2809 "parser.yy"
    89949120    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    89959121    break;
    89969122
    8997   case 718:
    8998 
    8999 /* Line 1806 of yacc.c  */
    9000 #line 2723 "parser.yy"
    9001     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    9002     break;
    9003 
    9004   case 719:
    9005 
    9006 /* Line 1806 of yacc.c  */
    9007 #line 2725 "parser.yy"
    9008     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    9009     break;
    9010 
    9011   case 720:
    9012 
    9013 /* Line 1806 of yacc.c  */
    9014 #line 2727 "parser.yy"
     9123  case 744:
     9124
     9125/* Line 1806 of yacc.c  */
     9126#line 2811 "parser.yy"
     9127    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     9128    break;
     9129
     9130  case 745:
     9131
     9132/* Line 1806 of yacc.c  */
     9133#line 2813 "parser.yy"
     9134    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     9135    break;
     9136
     9137  case 746:
     9138
     9139/* Line 1806 of yacc.c  */
     9140#line 2815 "parser.yy"
    90159141    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    90169142    break;
    90179143
    9018   case 721:
    9019 
    9020 /* Line 1806 of yacc.c  */
    9021 #line 2729 "parser.yy"
    9022     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    9023     break;
    9024 
    9025   case 722:
    9026 
    9027 /* Line 1806 of yacc.c  */
    9028 #line 2731 "parser.yy"
    9029     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    9030     break;
    9031 
    9032   case 723:
    9033 
    9034 /* Line 1806 of yacc.c  */
    9035 #line 2733 "parser.yy"
    9036     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    9037     break;
    9038 
    9039   case 724:
    9040 
    9041 /* Line 1806 of yacc.c  */
    9042 #line 2735 "parser.yy"
    9043     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    9044     break;
    9045 
    9046   case 725:
    9047 
    9048 /* Line 1806 of yacc.c  */
    9049 #line 2737 "parser.yy"
    9050     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    9051     break;
    9052 
    9053   case 726:
    9054 
    9055 /* Line 1806 of yacc.c  */
    9056 #line 2742 "parser.yy"
    9057     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    9058     break;
    9059 
    9060   case 727:
    9061 
    9062 /* Line 1806 of yacc.c  */
    9063 #line 2744 "parser.yy"
    9064     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    9065     break;
    9066 
    9067   case 728:
    9068 
    9069 /* Line 1806 of yacc.c  */
    9070 #line 2749 "parser.yy"
    9071     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
    9072     break;
    9073 
    9074   case 729:
    9075 
    9076 /* Line 1806 of yacc.c  */
    9077 #line 2751 "parser.yy"
    9078     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
    9079     break;
    9080 
    9081   case 731:
    9082 
    9083 /* Line 1806 of yacc.c  */
    9084 #line 2778 "parser.yy"
    9085     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    9086     break;
    9087 
    9088   case 735:
    9089 
    9090 /* Line 1806 of yacc.c  */
    9091 #line 2789 "parser.yy"
    9092     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    9093     break;
    9094 
    9095   case 736:
    9096 
    9097 /* Line 1806 of yacc.c  */
    9098 #line 2791 "parser.yy"
    9099     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    9100     break;
    9101 
    9102   case 737:
    9103 
    9104 /* Line 1806 of yacc.c  */
    9105 #line 2793 "parser.yy"
    9106     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    9107     break;
    9108 
    9109   case 738:
    9110 
    9111 /* Line 1806 of yacc.c  */
    9112 #line 2795 "parser.yy"
    9113     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    9114     break;
    9115 
    9116   case 739:
    9117 
    9118 /* Line 1806 of yacc.c  */
    9119 #line 2797 "parser.yy"
    9120     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    9121     break;
    9122 
    9123   case 740:
    9124 
    9125 /* Line 1806 of yacc.c  */
    9126 #line 2799 "parser.yy"
    9127     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    9128     break;
    9129 
    9130   case 741:
    9131 
    9132 /* Line 1806 of yacc.c  */
    9133 #line 2806 "parser.yy"
    9134     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    9135     break;
    9136 
    9137   case 742:
    9138 
    9139 /* Line 1806 of yacc.c  */
    9140 #line 2808 "parser.yy"
    9141     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    9142     break;
    9143 
    9144   case 743:
    9145 
    9146 /* Line 1806 of yacc.c  */
    9147 #line 2810 "parser.yy"
    9148     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    9149     break;
    9150 
    9151   case 744:
    9152 
    9153 /* Line 1806 of yacc.c  */
    9154 #line 2812 "parser.yy"
    9155     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    9156     break;
    9157 
    9158   case 745:
    9159 
    9160 /* Line 1806 of yacc.c  */
    9161 #line 2814 "parser.yy"
    9162     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    9163     break;
    9164 
    9165   case 746:
    9166 
    9167 /* Line 1806 of yacc.c  */
    9168 #line 2816 "parser.yy"
    9169     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    9170     break;
    9171 
    91729144  case 747:
    91739145
    91749146/* Line 1806 of yacc.c  */
    9175 #line 2821 "parser.yy"
     9147#line 2820 "parser.yy"
    91769148    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    91779149    break;
     
    91809152
    91819153/* Line 1806 of yacc.c  */
    9182 #line 2826 "parser.yy"
     9154#line 2825 "parser.yy"
    91839155    { (yyval.decl) = DeclarationNode::newFunction( nullptr, DeclarationNode::newTuple( nullptr ), (yyvsp[(4) - (5)].decl), nullptr ); }
    91849156    break;
     
    91879159
    91889160/* Line 1806 of yacc.c  */
    9189 #line 2828 "parser.yy"
     9161#line 2827 "parser.yy"
    91909162    { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); }
    91919163    break;
     
    91949166
    91959167/* Line 1806 of yacc.c  */
    9196 #line 2830 "parser.yy"
     9168#line 2829 "parser.yy"
    91979169    { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); }
    91989170    break;
     
    92019173
    92029174/* Line 1806 of yacc.c  */
    9203 #line 2854 "parser.yy"
     9175#line 2853 "parser.yy"
    92049176    { (yyval.en) = 0; }
    92059177    break;
     
    92089180
    92099181/* Line 1806 of yacc.c  */
    9210 #line 2856 "parser.yy"
     9182#line 2855 "parser.yy"
    92119183    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    92129184    break;
     
    92159187
    92169188/* Line 1806 of yacc.c  */
    9217 #line 9218 "Parser/parser.cc"
     9189#line 9190 "Parser/parser.cc"
    92189190      default: break;
    92199191    }
     
    94469418
    94479419/* Line 2067 of yacc.c  */
    9448 #line 2859 "parser.yy"
     9420#line 2858 "parser.yy"
    94499421
    94509422// ----end of grammar----
Note: See TracChangeset for help on using the changeset viewer.