Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/parser.cc

    r9059213 rbf32bb8  
    10231023static const yytype_uint16 yyrline[] =
    10241024{
    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
     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
    11011101};
    11021102#endif
     
    49774977
    49784978/* Line 1806 of yacc.c  */
    4979 #line 302 "parser.yy"
     4979#line 301 "parser.yy"
    49804980    { typedefTable.enterScope(); }
    49814981    break;
     
    49844984
    49854985/* Line 1806 of yacc.c  */
    4986 #line 306 "parser.yy"
     4986#line 305 "parser.yy"
    49874987    { typedefTable.leaveScope(); }
    49884988    break;
     
    49914991
    49924992/* Line 1806 of yacc.c  */
     4993#line 312 "parser.yy"
     4994    { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); }
     4995    break;
     4996
     4997  case 5:
     4998
     4999/* Line 1806 of yacc.c  */
    49935000#line 313 "parser.yy"
    4994     { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); }
    4995     break;
    4996 
    4997   case 5:
     5001    { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); }
     5002    break;
     5003
     5004  case 6:
    49985005
    49995006/* Line 1806 of yacc.c  */
    50005007#line 314 "parser.yy"
    5001     { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); }
    5002     break;
    5003 
    5004   case 6:
    5005 
    5006 /* Line 1806 of yacc.c  */
    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 340 "parser.yy"
     5014#line 339 "parser.yy"
    50155015    { (yyval.constant) = build_constantStr( *(yyvsp[(1) - (1)].str) ); }
    50165016    break;
     
    50195019
    50205020/* Line 1806 of yacc.c  */
    5021 #line 344 "parser.yy"
     5021#line 343 "parser.yy"
    50225022    { (yyval.str) = (yyvsp[(1) - (1)].tok); }
    50235023    break;
     
    50265026
    50275027/* Line 1806 of yacc.c  */
    5028 #line 346 "parser.yy"
     5028#line 345 "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 357 "parser.yy"
     5039#line 356 "parser.yy"
    50405040    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
    50415041    break;
     
    50445044
    50455045/* Line 1806 of yacc.c  */
    5046 #line 359 "parser.yy"
     5046#line 358 "parser.yy"
    50475047    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
    50485048    break;
     
    50515051
    50525052/* Line 1806 of yacc.c  */
    5053 #line 361 "parser.yy"
     5053#line 360 "parser.yy"
    50545054    { (yyval.en) = (yyvsp[(2) - (3)].en); }
    50555055    break;
     
    50585058
    50595059/* Line 1806 of yacc.c  */
    5060 #line 363 "parser.yy"
     5060#line 362 "parser.yy"
    50615061    { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[(2) - (3)].sn) ) ); }
    50625062    break;
     
    50655065
    50665066/* Line 1806 of yacc.c  */
    5067 #line 373 "parser.yy"
     5067#line 372 "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 375 "parser.yy"
     5074#line 374 "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 379 "parser.yy"
     5081#line 378 "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
    50855099  case 29:
    50865100
    50875101/* Line 1806 of yacc.c  */
    5088 #line 383 "parser.yy"
     5102#line 384 "parser.yy"
    50895103    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); }
    50905104    break;
    50915105
     5106  case 30:
     5107
     5108/* Line 1806 of yacc.c  */
     5109#line 386 "parser.yy"
     5110    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); }
     5111    break;
     5112
    50925113  case 31:
    50935114
    50945115/* Line 1806 of yacc.c  */
    5095 #line 386 "parser.yy"
     5116#line 388 "parser.yy"
    50965117    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[(1) - (2)].en) ) ); }
    50975118    break;
     
    51005121
    51015122/* Line 1806 of yacc.c  */
    5102 #line 388 "parser.yy"
     5123#line 390 "parser.yy"
    51035124    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[(1) - (2)].en) ) ); }
    51045125    break;
     
    51075128
    51085129/* Line 1806 of yacc.c  */
    5109 #line 390 "parser.yy"
     5130#line 392 "parser.yy"
    51105131    { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ) ); }
    51115132    break;
     
    51145135
    51155136/* Line 1806 of yacc.c  */
    5116 #line 392 "parser.yy"
     5137#line 394 "parser.yy"
    51175138    {
    51185139                        Token fn;
     
    51255146
    51265147/* Line 1806 of yacc.c  */
    5127 #line 402 "parser.yy"
     5148#line 404 "parser.yy"
    51285149    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
    51295150    break;
     
    51325153
    51335154/* Line 1806 of yacc.c  */
    5134 #line 407 "parser.yy"
     5155#line 409 "parser.yy"
    51355156    { (yyval.en) = 0; }
    51365157    break;
     
    51395160
    51405161/* Line 1806 of yacc.c  */
    5141 #line 413 "parser.yy"
     5162#line 415 "parser.yy"
    51425163    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
    51435164    break;
    51445165
    5145   case 41:
    5146 
    5147 /* Line 1806 of yacc.c  */
    5148 #line 420 "parser.yy"
     5166  case 42:
     5167
     5168/* 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) ) ) ); }
     5171    break;
     5172
     5173  case 43:
     5174
     5175/* 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) ) ) ); }
     5178    break;
     5179
     5180  case 44:
     5181
     5182/* 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) ) ) ); }
     5185    break;
     5186
     5187  case 45:
     5188
     5189/* 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"
    51495198    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
    51505199    break;
    51515200
    5152   case 42:
    5153 
    5154 /* Line 1806 of yacc.c  */
    5155 #line 422 "parser.yy"
    5156     { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); }
    5157     break;
    5158 
    5159   case 43:
    5160 
    5161 /* Line 1806 of yacc.c  */
    5162 #line 424 "parser.yy"
    5163     { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); }
    5164     break;
    5165 
    5166   case 44:
    5167 
    5168 /* Line 1806 of yacc.c  */
    5169 #line 426 "parser.yy"
    5170     { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); }
    5171     break;
    5172 
    5173   case 45:
    5174 
    5175 /* Line 1806 of yacc.c  */
    5176 #line 428 "parser.yy"
    5177     { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); }
     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) ) ); }
    51785206    break;
    51795207
     
    51815209
    51825210/* Line 1806 of yacc.c  */
    5183 #line 442 "parser.yy"
     5211#line 444 "parser.yy"
    51845212    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    51855213    break;
     
    51885216
    51895217/* Line 1806 of yacc.c  */
    5190 #line 444 "parser.yy"
     5218#line 446 "parser.yy"
    51915219    { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
    51925220    break;
     
    51955223
    51965224/* Line 1806 of yacc.c  */
    5197 #line 446 "parser.yy"
     5225#line 448 "parser.yy"
    51985226    { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); }
    51995227    break;
     
    52025230
    52035231/* Line 1806 of yacc.c  */
    5204 #line 451 "parser.yy"
     5232#line 453 "parser.yy"
    52055233    {
    52065234                        switch ( (yyvsp[(1) - (2)].op) ) {
     
    52205248
    52215249/* Line 1806 of yacc.c  */
    5222 #line 464 "parser.yy"
     5250#line 466 "parser.yy"
    52235251    { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); }
    52245252    break;
     
    52275255
    52285256/* Line 1806 of yacc.c  */
    5229 #line 466 "parser.yy"
     5257#line 468 "parser.yy"
    52305258    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); }
    52315259    break;
     
    52345262
    52355263/* Line 1806 of yacc.c  */
    5236 #line 468 "parser.yy"
     5264#line 470 "parser.yy"
    52375265    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[(2) - (2)].en) ) ); }
    52385266    break;
     
    52415269
    52425270/* Line 1806 of yacc.c  */
    5243 #line 470 "parser.yy"
     5271#line 472 "parser.yy"
    52445272    { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); }
    52455273    break;
     
    52485276
    52495277/* Line 1806 of yacc.c  */
    5250 #line 472 "parser.yy"
     5278#line 474 "parser.yy"
    52515279    { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); }
    52525280    break;
     
    52555283
    52565284/* Line 1806 of yacc.c  */
    5257 #line 474 "parser.yy"
     5285#line 476 "parser.yy"
    52585286    { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); }
    52595287    break;
     
    52625290
    52635291/* Line 1806 of yacc.c  */
    5264 #line 476 "parser.yy"
     5292#line 478 "parser.yy"
    52655293    { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); }
    52665294    break;
     
    52695297
    52705298/* Line 1806 of yacc.c  */
    5271 #line 478 "parser.yy"
     5299#line 480 "parser.yy"
    52725300    { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); }
    52735301    break;
     
    52765304
    52775305/* Line 1806 of yacc.c  */
    5278 #line 480 "parser.yy"
     5306#line 482 "parser.yy"
    52795307    { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); }
    52805308    break;
     
    52835311
    52845312/* Line 1806 of yacc.c  */
    5285 #line 482 "parser.yy"
     5313#line 484 "parser.yy"
    52865314    { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); }
    52875315    break;
     
    52905318
    52915319/* Line 1806 of yacc.c  */
    5292 #line 484 "parser.yy"
     5320#line 486 "parser.yy"
    52935321    { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); }
    52945322    break;
     
    52975325
    52985326/* Line 1806 of yacc.c  */
    5299 #line 490 "parser.yy"
     5327#line 492 "parser.yy"
    53005328    { (yyval.op) = OperKinds::PointTo; }
    53015329    break;
     
    53045332
    53055333/* Line 1806 of yacc.c  */
    5306 #line 491 "parser.yy"
     5334#line 493 "parser.yy"
    53075335    { (yyval.op) = OperKinds::AddressOf; }
    53085336    break;
     
    53115339
    53125340/* Line 1806 of yacc.c  */
    5313 #line 497 "parser.yy"
     5341#line 499 "parser.yy"
    53145342    { (yyval.op) = OperKinds::UnPlus; }
    53155343    break;
     
    53185346
    53195347/* Line 1806 of yacc.c  */
    5320 #line 498 "parser.yy"
     5348#line 500 "parser.yy"
    53215349    { (yyval.op) = OperKinds::UnMinus; }
    53225350    break;
     
    53255353
    53265354/* Line 1806 of yacc.c  */
    5327 #line 499 "parser.yy"
     5355#line 501 "parser.yy"
    53285356    { (yyval.op) = OperKinds::Neg; }
    53295357    break;
     
    53325360
    53335361/* Line 1806 of yacc.c  */
    5334 #line 500 "parser.yy"
     5362#line 502 "parser.yy"
    53355363    { (yyval.op) = OperKinds::BitNeg; }
    53365364    break;
    53375365
    53385366  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:
    53465367
    53475368/* Line 1806 of yacc.c  */
     
    53505371    break;
    53515372
     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
    53525380  case 74:
    53535381
    53545382/* Line 1806 of yacc.c  */
    5355 #line 514 "parser.yy"
     5383#line 516 "parser.yy"
    53565384    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53575385    break;
     
    53605388
    53615389/* Line 1806 of yacc.c  */
    5362 #line 516 "parser.yy"
     5390#line 518 "parser.yy"
    53635391    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53645392    break;
     
    53675395
    53685396/* Line 1806 of yacc.c  */
    5369 #line 518 "parser.yy"
     5397#line 520 "parser.yy"
    53705398    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53715399    break;
     
    53745402
    53755403/* Line 1806 of yacc.c  */
    5376 #line 524 "parser.yy"
     5404#line 526 "parser.yy"
    53775405    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53785406    break;
     
    53815409
    53825410/* Line 1806 of yacc.c  */
    5383 #line 526 "parser.yy"
     5411#line 528 "parser.yy"
    53845412    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53855413    break;
     
    53885416
    53895417/* Line 1806 of yacc.c  */
    5390 #line 532 "parser.yy"
     5418#line 534 "parser.yy"
    53915419    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53925420    break;
     
    53955423
    53965424/* Line 1806 of yacc.c  */
    5397 #line 534 "parser.yy"
     5425#line 536 "parser.yy"
    53985426    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53995427    break;
     
    54025430
    54035431/* Line 1806 of yacc.c  */
    5404 #line 540 "parser.yy"
     5432#line 542 "parser.yy"
    54055433    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54065434    break;
     
    54095437
    54105438/* Line 1806 of yacc.c  */
    5411 #line 542 "parser.yy"
     5439#line 544 "parser.yy"
    54125440    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54135441    break;
     
    54165444
    54175445/* Line 1806 of yacc.c  */
    5418 #line 544 "parser.yy"
     5446#line 546 "parser.yy"
    54195447    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54205448    break;
     
    54235451
    54245452/* Line 1806 of yacc.c  */
    5425 #line 546 "parser.yy"
     5453#line 548 "parser.yy"
    54265454    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54275455    break;
     
    54305458
    54315459/* Line 1806 of yacc.c  */
    5432 #line 552 "parser.yy"
     5460#line 554 "parser.yy"
    54335461    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54345462    break;
     
    54375465
    54385466/* Line 1806 of yacc.c  */
    5439 #line 554 "parser.yy"
     5467#line 556 "parser.yy"
    54405468    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54415469    break;
     
    54445472
    54455473/* Line 1806 of yacc.c  */
    5446 #line 560 "parser.yy"
     5474#line 562 "parser.yy"
    54475475    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54485476    break;
     
    54515479
    54525480/* Line 1806 of yacc.c  */
    5453 #line 566 "parser.yy"
     5481#line 568 "parser.yy"
    54545482    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54555483    break;
     
    54585486
    54595487/* Line 1806 of yacc.c  */
    5460 #line 572 "parser.yy"
     5488#line 574 "parser.yy"
    54615489    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54625490    break;
     
    54655493
    54665494/* Line 1806 of yacc.c  */
    5467 #line 578 "parser.yy"
     5495#line 580 "parser.yy"
    54685496    { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); }
    54695497    break;
     
    54725500
    54735501/* Line 1806 of yacc.c  */
    5474 #line 584 "parser.yy"
     5502#line 586 "parser.yy"
    54755503    { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); }
    54765504    break;
     
    54795507
    54805508/* Line 1806 of yacc.c  */
    5481 #line 590 "parser.yy"
     5509#line 592 "parser.yy"
    54825510    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
    54835511    break;
     
    54865514
    54875515/* Line 1806 of yacc.c  */
    5488 #line 593 "parser.yy"
     5516#line 595 "parser.yy"
    54895517    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); }
    54905518    break;
     
    54935521
    54945522/* Line 1806 of yacc.c  */
    5495 #line 595 "parser.yy"
     5523#line 597 "parser.yy"
    54965524    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
    54975525    break;
     
    55005528
    55015529/* Line 1806 of yacc.c  */
    5502 #line 606 "parser.yy"
     5530#line 608 "parser.yy"
    55035531    { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    55045532    break;
     
    55075535
    55085536/* Line 1806 of yacc.c  */
    5509 #line 608 "parser.yy"
     5537#line 610 "parser.yy"
    55105538    { (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) ) ); }
    55115539    break;
     
    55145542
    55155543/* Line 1806 of yacc.c  */
    5516 #line 613 "parser.yy"
     5544#line 615 "parser.yy"
    55175545    { (yyval.en) = nullptr; }
    55185546    break;
     
    55215549
    55225550/* Line 1806 of yacc.c  */
    5523 #line 618 "parser.yy"
     5551#line 620 "parser.yy"
    55245552    { (yyval.op) = OperKinds::Assign; }
    55255553    break;
     
    55285556
    55295557/* Line 1806 of yacc.c  */
    5530 #line 619 "parser.yy"
     5558#line 621 "parser.yy"
    55315559    { (yyval.op) = OperKinds::AtAssn; }
    55325560    break;
     
    55355563
    55365564/* Line 1806 of yacc.c  */
    5537 #line 620 "parser.yy"
     5565#line 622 "parser.yy"
    55385566    { (yyval.op) = OperKinds::MulAssn; }
    55395567    break;
     
    55425570
    55435571/* Line 1806 of yacc.c  */
    5544 #line 621 "parser.yy"
     5572#line 623 "parser.yy"
    55455573    { (yyval.op) = OperKinds::DivAssn; }
    55465574    break;
     
    55495577
    55505578/* Line 1806 of yacc.c  */
    5551 #line 622 "parser.yy"
     5579#line 624 "parser.yy"
    55525580    { (yyval.op) = OperKinds::ModAssn; }
    55535581    break;
     
    55565584
    55575585/* Line 1806 of yacc.c  */
    5558 #line 623 "parser.yy"
     5586#line 625 "parser.yy"
    55595587    { (yyval.op) = OperKinds::PlusAssn; }
    55605588    break;
     
    55635591
    55645592/* Line 1806 of yacc.c  */
    5565 #line 624 "parser.yy"
     5593#line 626 "parser.yy"
    55665594    { (yyval.op) = OperKinds::MinusAssn; }
    55675595    break;
     
    55705598
    55715599/* Line 1806 of yacc.c  */
    5572 #line 625 "parser.yy"
     5600#line 627 "parser.yy"
    55735601    { (yyval.op) = OperKinds::LSAssn; }
    55745602    break;
     
    55775605
    55785606/* Line 1806 of yacc.c  */
    5579 #line 626 "parser.yy"
     5607#line 628 "parser.yy"
    55805608    { (yyval.op) = OperKinds::RSAssn; }
    55815609    break;
     
    55845612
    55855613/* Line 1806 of yacc.c  */
    5586 #line 627 "parser.yy"
     5614#line 629 "parser.yy"
    55875615    { (yyval.op) = OperKinds::AndAssn; }
    55885616    break;
     
    55915619
    55925620/* Line 1806 of yacc.c  */
    5593 #line 628 "parser.yy"
     5621#line 630 "parser.yy"
    55945622    { (yyval.op) = OperKinds::ERAssn; }
    55955623    break;
     
    55985626
    55995627/* Line 1806 of yacc.c  */
    5600 #line 629 "parser.yy"
     5628#line 631 "parser.yy"
    56015629    { (yyval.op) = OperKinds::OrAssn; }
    56025630    break;
     
    56055633
    56065634/* Line 1806 of yacc.c  */
    5607 #line 636 "parser.yy"
     5635#line 638 "parser.yy"
    56085636    { (yyval.en) = new ExpressionNode( build_tuple() ); }
    56095637    break;
     
    56125640
    56135641/* Line 1806 of yacc.c  */
    5614 #line 638 "parser.yy"
     5642#line 640 "parser.yy"
    56155643    { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[(3) - (5)].en) ) ); }
    56165644    break;
     
    56195647
    56205648/* Line 1806 of yacc.c  */
    5621 #line 640 "parser.yy"
     5649#line 642 "parser.yy"
    56225650    { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) ) ) ); }
    56235651    break;
     
    56265654
    56275655/* Line 1806 of yacc.c  */
    5628 #line 642 "parser.yy"
     5656#line 644 "parser.yy"
    56295657    { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_last( (yyvsp[(5) - (7)].en) ) ) ); }
    56305658    break;
     
    56335661
    56345662/* Line 1806 of yacc.c  */
    5635 #line 648 "parser.yy"
     5663#line 650 "parser.yy"
    56365664    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
    56375665    break;
     
    56405668
    56415669/* Line 1806 of yacc.c  */
    5642 #line 654 "parser.yy"
     5670#line 656 "parser.yy"
    56435671    { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    56445672    break;
     
    56475675
    56485676/* Line 1806 of yacc.c  */
    5649 #line 659 "parser.yy"
     5677#line 661 "parser.yy"
    56505678    { (yyval.en) = 0; }
    56515679    break;
     
    56545682
    56555683/* Line 1806 of yacc.c  */
    5656 #line 668 "parser.yy"
     5684#line 670 "parser.yy"
    56575685    { (yyval.sn) = (yyvsp[(1) - (1)].sn); }
    56585686    break;
     
    56615689
    56625690/* Line 1806 of yacc.c  */
    5663 #line 675 "parser.yy"
     5691#line 677 "parser.yy"
    56645692    {
    56655693                        Token fn;
     
    56725700
    56735701/* Line 1806 of yacc.c  */
    5674 #line 685 "parser.yy"
     5702#line 687 "parser.yy"
    56755703    {
    56765704                        (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) );
     
    56815709
    56825710/* Line 1806 of yacc.c  */
    5683 #line 692 "parser.yy"
     5711#line 694 "parser.yy"
    56845712    { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) ); }
    56855713    break;
     
    56885716
    56895717/* Line 1806 of yacc.c  */
    5690 #line 699 "parser.yy"
     5718#line 701 "parser.yy"
    56915719    { (yyval.sn) = new StatementNode( build_compound( (yyvsp[(5) - (7)].sn) ) ); }
    56925720    break;
     
    56955723
    56965724/* Line 1806 of yacc.c  */
    5697 #line 705 "parser.yy"
     5725#line 707 "parser.yy"
    56985726    { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
    56995727    break;
     
    57025730
    57035731/* Line 1806 of yacc.c  */
    5704 #line 710 "parser.yy"
     5732#line 712 "parser.yy"
    57055733    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    57065734    break;
     
    57095737
    57105738/* Line 1806 of yacc.c  */
    5711 #line 712 "parser.yy"
     5739#line 714 "parser.yy"
    57125740    {   // mark all fields in list
    57135741                        for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     
    57205748
    57215749/* Line 1806 of yacc.c  */
    5722 #line 718 "parser.yy"
     5750#line 720 "parser.yy"
    57235751    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    57245752    break;
     
    57275755
    57285756/* Line 1806 of yacc.c  */
    5729 #line 725 "parser.yy"
     5757#line 727 "parser.yy"
    57305758    { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
    57315759    break;
     
    57345762
    57355763/* Line 1806 of yacc.c  */
    5736 #line 730 "parser.yy"
     5764#line 732 "parser.yy"
    57375765    { (yyval.sn) = new StatementNode( build_expr( (yyvsp[(1) - (2)].en) ) ); }
    57385766    break;
     
    57415769
    57425770/* Line 1806 of yacc.c  */
    5743 #line 736 "parser.yy"
     5771#line 738 "parser.yy"
    57445772    { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); }
    57455773    break;
     
    57485776
    57495777/* Line 1806 of yacc.c  */
    5750 #line 738 "parser.yy"
     5778#line 740 "parser.yy"
    57515779    { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); }
    57525780    break;
     
    57555783
    57565784/* Line 1806 of yacc.c  */
    5757 #line 740 "parser.yy"
     5785#line 742 "parser.yy"
    57585786    { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    57595787    break;
     
    57625790
    57635791/* Line 1806 of yacc.c  */
    5764 #line 742 "parser.yy"
     5792#line 744 "parser.yy"
    57655793    {
    57665794                        StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
     
    57775805
    57785806/* Line 1806 of yacc.c  */
    5779 #line 752 "parser.yy"
     5807#line 754 "parser.yy"
    57805808    { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    57815809    break;
     
    57845812
    57855813/* Line 1806 of yacc.c  */
    5786 #line 754 "parser.yy"
     5814#line 756 "parser.yy"
    57875815    {
    57885816                        StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
     
    57945822
    57955823/* Line 1806 of yacc.c  */
    5796 #line 764 "parser.yy"
     5824#line 766 "parser.yy"
    57975825    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    57985826    break;
     
    58015829
    58025830/* Line 1806 of yacc.c  */
    5803 #line 766 "parser.yy"
     5831#line 768 "parser.yy"
    58045832    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    58055833    break;
     
    58085836
    58095837/* Line 1806 of yacc.c  */
    5810 #line 771 "parser.yy"
     5838#line 773 "parser.yy"
    58115839    { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); }
    58125840    break;
     
    58155843
    58165844/* Line 1806 of yacc.c  */
    5817 #line 773 "parser.yy"
     5845#line 775 "parser.yy"
    58185846    { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_last( new StatementNode( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); }
    58195847    break;
     
    58225850
    58235851/* Line 1806 of yacc.c  */
    5824 #line 777 "parser.yy"
     5852#line 779 "parser.yy"
    58255853    { (yyval.sn) = (yyvsp[(2) - (3)].sn); }
    58265854    break;
     
    58295857
    58305858/* Line 1806 of yacc.c  */
    5831 #line 778 "parser.yy"
     5859#line 780 "parser.yy"
    58325860    { (yyval.sn) = new StatementNode( build_default() ); }
    58335861    break;
     
    58365864
    58375865/* Line 1806 of yacc.c  */
    5838 #line 784 "parser.yy"
     5866#line 786 "parser.yy"
    58395867    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) )); }
    58405868    break;
     
    58435871
    58445872/* Line 1806 of yacc.c  */
    5845 #line 788 "parser.yy"
     5873#line 790 "parser.yy"
    58465874    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
    58475875    break;
     
    58505878
    58515879/* Line 1806 of yacc.c  */
    5852 #line 793 "parser.yy"
     5880#line 795 "parser.yy"
    58535881    { (yyval.sn) = 0; }
    58545882    break;
     
    58575885
    58585886/* Line 1806 of yacc.c  */
    5859 #line 799 "parser.yy"
     5887#line 801 "parser.yy"
    58605888    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
    58615889    break;
     
    58645892
    58655893/* Line 1806 of yacc.c  */
    5866 #line 801 "parser.yy"
     5894#line 803 "parser.yy"
    58675895    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(3) - (3)].sn) ) ) ) ) ); }
    58685896    break;
     
    58715899
    58725900/* Line 1806 of yacc.c  */
    5873 #line 806 "parser.yy"
     5901#line 808 "parser.yy"
    58745902    { (yyval.sn) = 0; }
    58755903    break;
     
    58785906
    58795907/* Line 1806 of yacc.c  */
    5880 #line 812 "parser.yy"
     5908#line 814 "parser.yy"
    58815909    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    58825910    break;
     
    58855913
    58865914/* Line 1806 of yacc.c  */
    5887 #line 814 "parser.yy"
     5915#line 816 "parser.yy"
    58885916    { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(2) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ) ) ) ); }
    58895917    break;
     
    58925920
    58935921/* Line 1806 of yacc.c  */
    5894 #line 816 "parser.yy"
     5922#line 818 "parser.yy"
    58955923    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
    58965924    break;
     
    58995927
    59005928/* Line 1806 of yacc.c  */
    5901 #line 818 "parser.yy"
     5929#line 820 "parser.yy"
    59025930    { (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) ) ) ) ) ) ); }
    59035931    break;
     
    59065934
    59075935/* Line 1806 of yacc.c  */
    5908 #line 823 "parser.yy"
     5936#line 825 "parser.yy"
    59095937    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
    59105938    break;
    59115939
    59125940  case 182:
    5913 
    5914 /* Line 1806 of yacc.c  */
    5915 #line 829 "parser.yy"
    5916     { (yyval.sn) = 0; }
    5917     break;
    5918 
    5919   case 183:
    59205941
    59215942/* Line 1806 of yacc.c  */
     
    59245945    break;
    59255946
     5947  case 183:
     5948
     5949/* Line 1806 of yacc.c  */
     5950#line 833 "parser.yy"
     5951    { (yyval.sn) = 0; }
     5952    break;
     5953
    59265954  case 184:
    59275955
    59285956/* Line 1806 of yacc.c  */
    5929 #line 836 "parser.yy"
     5957#line 838 "parser.yy"
    59305958    { (yyval.sn) = new StatementNode( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    59315959    break;
     
    59345962
    59355963/* Line 1806 of yacc.c  */
    5936 #line 838 "parser.yy"
     5964#line 840 "parser.yy"
    59375965    { (yyval.sn) = new StatementNode( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn), true ) ); }
    59385966    break;
     
    59415969
    59425970/* Line 1806 of yacc.c  */
    5943 #line 840 "parser.yy"
     5971#line 842 "parser.yy"
    59445972    { (yyval.sn) = new StatementNode( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); }
    59455973    break;
     
    59485976
    59495977/* Line 1806 of yacc.c  */
    5950 #line 845 "parser.yy"
     5978#line 847 "parser.yy"
    59515979    { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
    59525980    break;
     
    59555983
    59565984/* Line 1806 of yacc.c  */
    5957 #line 847 "parser.yy"
     5985#line 849 "parser.yy"
    59585986    { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
    59595987    break;
     
    59625990
    59635991/* Line 1806 of yacc.c  */
    5964 #line 852 "parser.yy"
     5992#line 854 "parser.yy"
    59655993    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); }
    59665994    break;
     
    59695997
    59705998/* Line 1806 of yacc.c  */
    5971 #line 856 "parser.yy"
     5999#line 858 "parser.yy"
    59726000    { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); }
    59736001    break;
     
    59766004
    59776005/* Line 1806 of yacc.c  */
    5978 #line 859 "parser.yy"
     6006#line 861 "parser.yy"
    59796007    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Continue ) ); }
    59806008    break;
     
    59836011
    59846012/* Line 1806 of yacc.c  */
    5985 #line 863 "parser.yy"
     6013#line 865 "parser.yy"
    59866014    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); }
    59876015    break;
     
    59906018
    59916019/* Line 1806 of yacc.c  */
    5992 #line 866 "parser.yy"
     6020#line 868 "parser.yy"
    59936021    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
    59946022    break;
     
    59976025
    59986026/* Line 1806 of yacc.c  */
    5999 #line 870 "parser.yy"
     6027#line 872 "parser.yy"
    60006028    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); }
    60016029    break;
     
    60046032
    60056033/* Line 1806 of yacc.c  */
    6006 #line 872 "parser.yy"
     6034#line 874 "parser.yy"
    60076035    { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); }
    60086036    break;
    60096037
    60106038  case 196:
    6011 
    6012 /* Line 1806 of yacc.c  */
    6013 #line 874 "parser.yy"
    6014     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
    6015     break;
    6016 
    6017   case 197:
    60186039
    60196040/* Line 1806 of yacc.c  */
     
    60226043    break;
    60236044
     6045  case 197:
     6046
     6047/* Line 1806 of yacc.c  */
     6048#line 878 "parser.yy"
     6049    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
     6050    break;
     6051
    60246052  case 198:
    60256053
    60266054/* Line 1806 of yacc.c  */
    6027 #line 878 "parser.yy"
     6055#line 880 "parser.yy"
    60286056    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (5)].en) ) ); }
    60296057    break;
     
    60326060
    60336061/* Line 1806 of yacc.c  */
    6034 #line 883 "parser.yy"
     6062#line 885 "parser.yy"
    60356063    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0 ) ); }
    60366064    break;
     
    60396067
    60406068/* Line 1806 of yacc.c  */
    6041 #line 885 "parser.yy"
     6069#line 887 "parser.yy"
    60426070    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn) ) ); }
    60436071    break;
     
    60466074
    60476075/* Line 1806 of yacc.c  */
    6048 #line 887 "parser.yy"
     6076#line 889 "parser.yy"
    60496077    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (4)].sn), (yyvsp[(3) - (4)].sn), (yyvsp[(4) - (4)].sn) ) ); }
    60506078    break;
     
    60536081
    60546082/* Line 1806 of yacc.c  */
    6055 #line 894 "parser.yy"
     6083#line 896 "parser.yy"
    60566084    { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
    60576085    break;
     
    60606088
    60616089/* Line 1806 of yacc.c  */
    6062 #line 896 "parser.yy"
     6090#line 898 "parser.yy"
    60636091    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
    60646092    break;
     
    60676095
    60686096/* Line 1806 of yacc.c  */
    6069 #line 898 "parser.yy"
     6097#line 900 "parser.yy"
    60706098    { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
    60716099    break;
     
    60746102
    60756103/* Line 1806 of yacc.c  */
    6076 #line 900 "parser.yy"
     6104#line 902 "parser.yy"
    60776105    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
    60786106    break;
     
    60816109
    60826110/* Line 1806 of yacc.c  */
    6083 #line 905 "parser.yy"
     6111#line 907 "parser.yy"
    60846112    { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
    60856113    break;
     
    60886116
    60896117/* Line 1806 of yacc.c  */
    6090 #line 907 "parser.yy"
     6118#line 909 "parser.yy"
    60916119    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
    60926120    break;
     
    60956123
    60966124/* Line 1806 of yacc.c  */
    6097 #line 909 "parser.yy"
     6125#line 911 "parser.yy"
    60986126    { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
    60996127    break;
     
    61026130
    61036131/* Line 1806 of yacc.c  */
    6104 #line 911 "parser.yy"
     6132#line 913 "parser.yy"
    61056133    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
    61066134    break;
     
    61096137
    61106138/* Line 1806 of yacc.c  */
    6111 #line 916 "parser.yy"
     6139#line 918 "parser.yy"
    61126140    {
    61136141                        (yyval.sn) = new StatementNode( build_finally( (yyvsp[(2) - (2)].sn) ) );
     
    61186146
    61196147/* Line 1806 of yacc.c  */
    6120 #line 929 "parser.yy"
     6148#line 931 "parser.yy"
    61216149    {
    61226150                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    61286156
    61296157/* Line 1806 of yacc.c  */
    6130 #line 934 "parser.yy"
     6158#line 936 "parser.yy"
    61316159    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    61326160    break;
     
    61356163
    61366164/* Line 1806 of yacc.c  */
    6137 #line 936 "parser.yy"
     6165#line 938 "parser.yy"
    61386166    {
    61396167                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    61456173
    61466174/* Line 1806 of yacc.c  */
    6147 #line 945 "parser.yy"
     6175#line 947 "parser.yy"
    61486176    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ) ); }
    61496177    break;
     
    61526180
    61536181/* Line 1806 of yacc.c  */
    6154 #line 947 "parser.yy"
     6182#line 949 "parser.yy"
    61556183    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ) ); }
    61566184    break;
     
    61596187
    61606188/* Line 1806 of yacc.c  */
    6161 #line 949 "parser.yy"
     6189#line 951 "parser.yy"
    61626190    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ) ); }
    61636191    break;
     
    61666194
    61676195/* Line 1806 of yacc.c  */
    6168 #line 951 "parser.yy"
     6196#line 953 "parser.yy"
    61696197    { (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) ) ); }
    61706198    break;
     
    61736201
    61746202/* Line 1806 of yacc.c  */
    6175 #line 953 "parser.yy"
     6203#line 955 "parser.yy"
    61766204    { (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) ) ); }
    61776205    break;
     
    61806208
    61816209/* Line 1806 of yacc.c  */
    6182 #line 958 "parser.yy"
     6210#line 960 "parser.yy"
    61836211    { (yyval.flag) = false; }
    61846212    break;
     
    61876215
    61886216/* Line 1806 of yacc.c  */
    6189 #line 960 "parser.yy"
     6217#line 962 "parser.yy"
    61906218    { (yyval.flag) = true; }
    61916219    break;
     
    61946222
    61956223/* Line 1806 of yacc.c  */
    6196 #line 965 "parser.yy"
     6224#line 967 "parser.yy"
    61976225    { (yyval.en) = 0; }
    61986226    break;
     
    62016229
    62026230/* Line 1806 of yacc.c  */
    6203 #line 972 "parser.yy"
     6231#line 974 "parser.yy"
    62046232    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
    62056233    break;
     
    62086236
    62096237/* Line 1806 of yacc.c  */
    6210 #line 977 "parser.yy"
     6238#line 979 "parser.yy"
    62116239    { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); }
    62126240    break;
     
    62156243
    62166244/* Line 1806 of yacc.c  */
    6217 #line 979 "parser.yy"
     6245#line 981 "parser.yy"
    62186246    { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); }
    62196247    break;
     
    62226250
    62236251/* Line 1806 of yacc.c  */
    6224 #line 984 "parser.yy"
     6252#line 986 "parser.yy"
    62256253    { (yyval.en) = 0; }
    62266254    break;
     
    62296257
    62306258/* Line 1806 of yacc.c  */
    6231 #line 986 "parser.yy"
     6259#line 988 "parser.yy"
    62326260    { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
    62336261    break;
     
    62366264
    62376265/* Line 1806 of yacc.c  */
    6238 #line 988 "parser.yy"
     6266#line 990 "parser.yy"
    62396267    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); }
    62406268    break;
     
    62436271
    62446272/* Line 1806 of yacc.c  */
    6245 #line 993 "parser.yy"
     6273#line 995 "parser.yy"
    62466274    {
    62476275                        (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[(1) - (1)].tok) );
     
    62536281
    62546282/* Line 1806 of yacc.c  */
    6255 #line 998 "parser.yy"
     6283#line 1000 "parser.yy"
    62566284    {
    62576285                        (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->labels.push_back( *(yyvsp[(3) - (3)].tok) );
     
    62636291
    62646292/* Line 1806 of yacc.c  */
    6265 #line 1008 "parser.yy"
     6293#line 1010 "parser.yy"
    62666294    { (yyval.decl) = 0; }
    62676295    break;
     
    62706298
    62716299/* Line 1806 of yacc.c  */
    6272 #line 1015 "parser.yy"
     6300#line 1017 "parser.yy"
    62736301    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    62746302    break;
     
    62776305
    62786306/* Line 1806 of yacc.c  */
    6279 #line 1020 "parser.yy"
     6307#line 1022 "parser.yy"
    62806308    { (yyval.decl) = 0; }
    62816309    break;
     
    62846312
    62856313/* Line 1806 of yacc.c  */
    6286 #line 1027 "parser.yy"
     6314#line 1029 "parser.yy"
    62876315    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    62886316    break;
     
    62916319
    62926320/* Line 1806 of yacc.c  */
    6293 #line 1041 "parser.yy"
     6321#line 1043 "parser.yy"
    62946322    {}
    62956323    break;
     
    62986326
    62996327/* Line 1806 of yacc.c  */
    6300 #line 1042 "parser.yy"
     6328#line 1044 "parser.yy"
    63016329    {}
    63026330    break;
     
    63056333
    63066334/* Line 1806 of yacc.c  */
    6307 #line 1071 "parser.yy"
     6335#line 1073 "parser.yy"
    63086336    {
    63096337                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63156343
    63166344/* Line 1806 of yacc.c  */
    6317 #line 1078 "parser.yy"
     6345#line 1080 "parser.yy"
    63186346    {
    63196347                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63256353
    63266354/* Line 1806 of yacc.c  */
    6327 #line 1083 "parser.yy"
     6355#line 1085 "parser.yy"
    63286356    {
    63296357                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID );
     
    63356363
    63366364/* Line 1806 of yacc.c  */
    6337 #line 1093 "parser.yy"
     6365#line 1095 "parser.yy"
    63386366    {
    63396367                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    63456373
    63466374/* Line 1806 of yacc.c  */
    6347 #line 1098 "parser.yy"
     6375#line 1100 "parser.yy"
    63486376    {
    63496377                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    63556383
    63566384/* Line 1806 of yacc.c  */
    6357 #line 1103 "parser.yy"
     6385#line 1105 "parser.yy"
    63586386    {
    63596387                        typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) );
     
    63656393
    63666394/* Line 1806 of yacc.c  */
    6367 #line 1111 "parser.yy"
     6395#line 1113 "parser.yy"
    63686396    {
    63696397                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63756403
    63766404/* Line 1806 of yacc.c  */
    6377 #line 1116 "parser.yy"
     6405#line 1118 "parser.yy"
    63786406    {
    63796407                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63856413
    63866414/* Line 1806 of yacc.c  */
    6387 #line 1121 "parser.yy"
     6415#line 1123 "parser.yy"
    63886416    {
    63896417                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63956423
    63966424/* Line 1806 of yacc.c  */
    6397 #line 1126 "parser.yy"
     6425#line 1128 "parser.yy"
    63986426    {
    63996427                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64056433
    64066434/* Line 1806 of yacc.c  */
    6407 #line 1131 "parser.yy"
     6435#line 1133 "parser.yy"
    64086436    {
    64096437                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    64156443
    64166444/* Line 1806 of yacc.c  */
    6417 #line 1139 "parser.yy"
     6445#line 1141 "parser.yy"
    64186446    {
    64196447                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true );
     
    64246452
    64256453/* Line 1806 of yacc.c  */
    6426 #line 1162 "parser.yy"
     6454#line 1164 "parser.yy"
    64276455    {
    64286456                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    64336461
    64346462/* Line 1806 of yacc.c  */
    6435 #line 1166 "parser.yy"
     6463#line 1168 "parser.yy"
    64366464    {
    64376465                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    64426470
    64436471/* Line 1806 of yacc.c  */
    6444 #line 1173 "parser.yy"
     6472#line 1175 "parser.yy"
    64456473    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    64466474    break;
     
    64496477
    64506478/* Line 1806 of yacc.c  */
    6451 #line 1177 "parser.yy"
     6479#line 1179 "parser.yy"
    64526480    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
    64536481    break;
     
    64566484
    64576485/* Line 1806 of yacc.c  */
    6458 #line 1182 "parser.yy"
     6486#line 1184 "parser.yy"
    64596487    {
    64606488                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64666494
    64676495/* Line 1806 of yacc.c  */
    6468 #line 1187 "parser.yy"
     6496#line 1189 "parser.yy"
    64696497    {
    64706498                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64766504
    64776505/* Line 1806 of yacc.c  */
    6478 #line 1192 "parser.yy"
     6506#line 1194 "parser.yy"
    64796507    {
    64806508                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD );
     
    64866514
    64876515/* Line 1806 of yacc.c  */
    6488 #line 1203 "parser.yy"
     6516#line 1205 "parser.yy"
    64896517    {
    64906518                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64966524
    64976525/* Line 1806 of yacc.c  */
    6498 #line 1208 "parser.yy"
     6526#line 1210 "parser.yy"
    64996527    {
    65006528                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65066534
    65076535/* Line 1806 of yacc.c  */
    6508 #line 1213 "parser.yy"
     6536#line 1215 "parser.yy"
    65096537    {
    65106538                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65166544
    65176545/* Line 1806 of yacc.c  */
    6518 #line 1218 "parser.yy"
     6546#line 1220 "parser.yy"
    65196547    {
    65206548                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65266554
    65276555/* Line 1806 of yacc.c  */
    6528 #line 1223 "parser.yy"
     6556#line 1225 "parser.yy"
    65296557    {
    65306558                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65366564
    65376565/* Line 1806 of yacc.c  */
    6538 #line 1232 "parser.yy"
     6566#line 1234 "parser.yy"
    65396567    {
    65406568                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD );
     
    65466574
    65476575/* Line 1806 of yacc.c  */
    6548 #line 1237 "parser.yy"
     6576#line 1239 "parser.yy"
    65496577    {
    65506578                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD );
     
    65566584
    65576585/* Line 1806 of yacc.c  */
    6558 #line 1254 "parser.yy"
     6586#line 1256 "parser.yy"
    65596587    {
    65606588                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    65666594
    65676595/* Line 1806 of yacc.c  */
    6568 #line 1259 "parser.yy"
     6596#line 1261 "parser.yy"
    65696597    {
    65706598                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    65766604
    65776605/* Line 1806 of yacc.c  */
    6578 #line 1281 "parser.yy"
     6606#line 1283 "parser.yy"
    65796607    { (yyval.decl) = 0; }
    65806608    break;
     
    65836611
    65846612/* Line 1806 of yacc.c  */
    6585 #line 1293 "parser.yy"
     6613#line 1295 "parser.yy"
    65866614    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    65876615    break;
     
    65906618
    65916619/* Line 1806 of yacc.c  */
    6592 #line 1304 "parser.yy"
     6620#line 1306 "parser.yy"
    65936621    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
    65946622    break;
     
    65976625
    65986626/* Line 1806 of yacc.c  */
    6599 #line 1306 "parser.yy"
     6627#line 1308 "parser.yy"
    66006628    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
    66016629    break;
     
    66046632
    66056633/* Line 1806 of yacc.c  */
    6606 #line 1308 "parser.yy"
     6634#line 1310 "parser.yy"
    66076635    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
    66086636    break;
     
    66116639
    66126640/* Line 1806 of yacc.c  */
    6613 #line 1310 "parser.yy"
     6641#line 1312 "parser.yy"
    66146642    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
    66156643    break;
     
    66186646
    66196647/* Line 1806 of yacc.c  */
    6620 #line 1312 "parser.yy"
     6648#line 1314 "parser.yy"
    66216649    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
    66226650    break;
     
    66256653
    66266654/* Line 1806 of yacc.c  */
    6627 #line 1314 "parser.yy"
     6655#line 1316 "parser.yy"
    66286656    {
    66296657                        typedefTable.enterScope();
     
    66346662
    66356663/* Line 1806 of yacc.c  */
    6636 #line 1318 "parser.yy"
     6664#line 1320 "parser.yy"
    66376665    {
    66386666                        typedefTable.leaveScope();
     
    66446672
    66456673/* Line 1806 of yacc.c  */
    6646 #line 1327 "parser.yy"
     6674#line 1329 "parser.yy"
    66476675    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    66486676    break;
     
    66516679
    66526680/* Line 1806 of yacc.c  */
    6653 #line 1329 "parser.yy"
     6681#line 1331 "parser.yy"
    66546682    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    66556683    break;
     
    66586686
    66596687/* Line 1806 of yacc.c  */
    6660 #line 1340 "parser.yy"
     6688#line 1342 "parser.yy"
    66616689    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    66626690    break;
     
    66656693
    66666694/* Line 1806 of yacc.c  */
    6667 #line 1345 "parser.yy"
     6695#line 1347 "parser.yy"
    66686696    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
    66696697    break;
     
    66726700
    66736701/* Line 1806 of yacc.c  */
    6674 #line 1347 "parser.yy"
     6702#line 1349 "parser.yy"
    66756703    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
    66766704    break;
     
    66796707
    66806708/* Line 1806 of yacc.c  */
    6681 #line 1349 "parser.yy"
     6709#line 1351 "parser.yy"
    66826710    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
    66836711    break;
     
    66866714
    66876715/* Line 1806 of yacc.c  */
    6688 #line 1351 "parser.yy"
     6716#line 1353 "parser.yy"
    66896717    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
    66906718    break;
     
    66936721
    66946722/* Line 1806 of yacc.c  */
    6695 #line 1354 "parser.yy"
     6723#line 1356 "parser.yy"
    66966724    { (yyval.decl) = new DeclarationNode; (yyval.decl)->isInline = true; }
    66976725    break;
     
    67006728
    67016729/* Line 1806 of yacc.c  */
    6702 #line 1356 "parser.yy"
     6730#line 1358 "parser.yy"
    67036731    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
    67046732    break;
     
    67076735
    67086736/* Line 1806 of yacc.c  */
    6709 #line 1359 "parser.yy"
     6737#line 1361 "parser.yy"
    67106738    { (yyval.decl) = new DeclarationNode; (yyval.decl)->isNoreturn = true; }
    67116739    break;
     
    67146742
    67156743/* Line 1806 of yacc.c  */
    6716 #line 1361 "parser.yy"
     6744#line 1363 "parser.yy"
    67176745    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
    67186746    break;
     
    67216749
    67226750/* Line 1806 of yacc.c  */
    6723 #line 1366 "parser.yy"
     6751#line 1368 "parser.yy"
    67246752    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
    67256753    break;
     
    67286756
    67296757/* Line 1806 of yacc.c  */
    6730 #line 1368 "parser.yy"
     6758#line 1370 "parser.yy"
    67316759    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
    67326760    break;
     
    67356763
    67366764/* Line 1806 of yacc.c  */
    6737 #line 1370 "parser.yy"
     6765#line 1372 "parser.yy"
    67386766    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
    67396767    break;
     
    67426770
    67436771/* Line 1806 of yacc.c  */
    6744 #line 1372 "parser.yy"
     6772#line 1374 "parser.yy"
    67456773    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
    67466774    break;
     
    67496777
    67506778/* Line 1806 of yacc.c  */
    6751 #line 1374 "parser.yy"
     6779#line 1376 "parser.yy"
    67526780    { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Long ); }
    67536781    break;
     
    67566784
    67576785/* Line 1806 of yacc.c  */
    6758 #line 1376 "parser.yy"
     6786#line 1378 "parser.yy"
    67596787    { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Short ); }
    67606788    break;
     
    67636791
    67646792/* Line 1806 of yacc.c  */
    6765 #line 1378 "parser.yy"
     6793#line 1380 "parser.yy"
    67666794    { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Signed ); }
    67676795    break;
     
    67706798
    67716799/* Line 1806 of yacc.c  */
    6772 #line 1380 "parser.yy"
     6800#line 1382 "parser.yy"
    67736801    { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Unsigned ); }
    67746802    break;
     
    67776805
    67786806/* Line 1806 of yacc.c  */
    6779 #line 1382 "parser.yy"
     6807#line 1384 "parser.yy"
    67806808    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
    67816809    break;
     
    67846812
    67856813/* Line 1806 of yacc.c  */
    6786 #line 1384 "parser.yy"
     6814#line 1386 "parser.yy"
    67876815    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
    67886816    break;
     
    67916819
    67926820/* Line 1806 of yacc.c  */
    6793 #line 1386 "parser.yy"
     6821#line 1388 "parser.yy"
    67946822    { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Complex ); }
    67956823    break;
     
    67986826
    67996827/* Line 1806 of yacc.c  */
    6800 #line 1388 "parser.yy"
     6828#line 1390 "parser.yy"
    68016829    { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Imaginary ); }
    68026830    break;
     
    68056833
    68066834/* Line 1806 of yacc.c  */
    6807 #line 1390 "parser.yy"
     6835#line 1392 "parser.yy"
    68086836    { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
    68096837    break;
     
    68126840
    68136841/* Line 1806 of yacc.c  */
    6814 #line 1397 "parser.yy"
     6842#line 1399 "parser.yy"
    68156843    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68166844    break;
     
    68196847
    68206848/* Line 1806 of yacc.c  */
    6821 #line 1399 "parser.yy"
     6849#line 1401 "parser.yy"
    68226850    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68236851    break;
     
    68266854
    68276855/* Line 1806 of yacc.c  */
    6828 #line 1401 "parser.yy"
     6856#line 1403 "parser.yy"
    68296857    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    68306858    break;
     
    68336861
    68346862/* Line 1806 of yacc.c  */
    6835 #line 1403 "parser.yy"
     6863#line 1405 "parser.yy"
    68366864    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
    68376865    break;
     
    68406868
    68416869/* Line 1806 of yacc.c  */
    6842 #line 1409 "parser.yy"
     6870#line 1411 "parser.yy"
    68436871    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    68446872    break;
     
    68476875
    68486876/* Line 1806 of yacc.c  */
    6849 #line 1416 "parser.yy"
     6877#line 1418 "parser.yy"
    68506878    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68516879    break;
     
    68546882
    68556883/* Line 1806 of yacc.c  */
    6856 #line 1418 "parser.yy"
     6884#line 1420 "parser.yy"
    68576885    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68586886    break;
     
    68616889
    68626890/* Line 1806 of yacc.c  */
    6863 #line 1420 "parser.yy"
     6891#line 1422 "parser.yy"
    68646892    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
    68656893    break;
     
    68686896
    68696897/* Line 1806 of yacc.c  */
    6870 #line 1425 "parser.yy"
     6898#line 1427 "parser.yy"
    68716899    { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
    68726900    break;
     
    68756903
    68766904/* Line 1806 of yacc.c  */
    6877 #line 1427 "parser.yy"
     6905#line 1429 "parser.yy"
    68786906    { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
    68796907    break;
     
    68826910
    68836911/* Line 1806 of yacc.c  */
    6884 #line 1429 "parser.yy"
     6912#line 1431 "parser.yy"
    68856913    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
    68866914    break;
     
    68896917
    68906918/* Line 1806 of yacc.c  */
    6891 #line 1431 "parser.yy"
     6919#line 1433 "parser.yy"
    68926920    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    68936921    break;
     
    68966924
    68976925/* Line 1806 of yacc.c  */
    6898 #line 1437 "parser.yy"
     6926#line 1439 "parser.yy"
    68996927    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69006928    break;
     
    69036931
    69046932/* Line 1806 of yacc.c  */
    6905 #line 1439 "parser.yy"
     6933#line 1441 "parser.yy"
    69066934    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69076935    break;
     
    69106938
    69116939/* Line 1806 of yacc.c  */
    6912 #line 1441 "parser.yy"
     6940#line 1443 "parser.yy"
    69136941    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    69146942    break;
     
    69176945
    69186946/* Line 1806 of yacc.c  */
    6919 #line 1447 "parser.yy"
     6947#line 1449 "parser.yy"
    69206948    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69216949    break;
     
    69246952
    69256953/* Line 1806 of yacc.c  */
    6926 #line 1449 "parser.yy"
     6954#line 1451 "parser.yy"
    69276955    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69286956    break;
     
    69316959
    69326960/* Line 1806 of yacc.c  */
    6933 #line 1455 "parser.yy"
     6961#line 1457 "parser.yy"
    69346962    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69356963    break;
     
    69386966
    69396967/* Line 1806 of yacc.c  */
    6940 #line 1457 "parser.yy"
     6968#line 1459 "parser.yy"
    69416969    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69426970    break;
     
    69456973
    69466974/* Line 1806 of yacc.c  */
    6947 #line 1459 "parser.yy"
     6975#line 1461 "parser.yy"
    69486976    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    69496977    break;
     
    69526980
    69536981/* Line 1806 of yacc.c  */
    6954 #line 1464 "parser.yy"
     6982#line 1466 "parser.yy"
    69556983    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
    69566984    break;
     
    69596987
    69606988/* Line 1806 of yacc.c  */
    6961 #line 1466 "parser.yy"
     6989#line 1468 "parser.yy"
    69626990    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69636991    break;
     
    69666994
    69676995/* Line 1806 of yacc.c  */
    6968 #line 1468 "parser.yy"
     6996#line 1470 "parser.yy"
    69696997    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69706998    break;
     
    69737001
    69747002/* Line 1806 of yacc.c  */
    6975 #line 1478 "parser.yy"
     7003#line 1480 "parser.yy"
    69767004    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), nullptr, nullptr, (yyvsp[(3) - (4)].decl), true ); }
    69777005    break;
     
    69807008
    69817009/* Line 1806 of yacc.c  */
    6982 #line 1480 "parser.yy"
     7010#line 1482 "parser.yy"
    69837011    {
    69847012                        typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
     
    69907018
    69917019/* Line 1806 of yacc.c  */
    6992 #line 1485 "parser.yy"
     7020#line 1487 "parser.yy"
    69937021    { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
    69947022    break;
     
    69977025
    69987026/* Line 1806 of yacc.c  */
    6999 #line 1487 "parser.yy"
     7027#line 1489 "parser.yy"
    70007028    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), nullptr, (yyvsp[(5) - (6)].decl), true ); }
    70017029    break;
     
    70047032
    70057033/* Line 1806 of yacc.c  */
    7006 #line 1489 "parser.yy"
     7034#line 1491 "parser.yy"
    70077035    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), nullptr, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); }
    70087036    break;
     
    70117039
    70127040/* Line 1806 of yacc.c  */
    7013 #line 1491 "parser.yy"
     7041#line 1493 "parser.yy"
    70147042    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    70157043    break;
     
    70187046
    70197047/* Line 1806 of yacc.c  */
    7020 #line 1496 "parser.yy"
     7048#line 1498 "parser.yy"
    70217049    { (yyval.aggKey) = DeclarationNode::Struct; }
    70227050    break;
     
    70257053
    70267054/* Line 1806 of yacc.c  */
    7027 #line 1498 "parser.yy"
     7055#line 1500 "parser.yy"
    70287056    { (yyval.aggKey) = DeclarationNode::Union; }
    70297057    break;
     
    70327060
    70337061/* Line 1806 of yacc.c  */
    7034 #line 1503 "parser.yy"
     7062#line 1505 "parser.yy"
    70357063    { (yyval.decl) = 0; }
    70367064    break;
     
    70397067
    70407068/* Line 1806 of yacc.c  */
    7041 #line 1505 "parser.yy"
     7069#line 1507 "parser.yy"
    70427070    { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
    70437071    break;
     
    70467074
    70477075/* Line 1806 of yacc.c  */
    7048 #line 1511 "parser.yy"
     7076#line 1513 "parser.yy"
    70497077    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); }
    70507078    break;
     
    70537081
    70547082/* Line 1806 of yacc.c  */
    7055 #line 1514 "parser.yy"
     7083#line 1516 "parser.yy"
    70567084    {   // mark all fields in list
    70577085                        for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     
    70647092
    70657093/* Line 1806 of yacc.c  */
    7066 #line 1524 "parser.yy"
     7094#line 1526 "parser.yy"
    70677095    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
    70687096    break;
     
    70717099
    70727100/* Line 1806 of yacc.c  */
    7073 #line 1526 "parser.yy"
     7101#line 1528 "parser.yy"
    70747102    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
    70757103    break;
     
    70787106
    70797107/* Line 1806 of yacc.c  */
    7080 #line 1528 "parser.yy"
     7108#line 1530 "parser.yy"
    70817109    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
    70827110    break;
     
    70857113
    70867114/* Line 1806 of yacc.c  */
    7087 #line 1533 "parser.yy"
     7115#line 1535 "parser.yy"
    70887116    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    70897117    break;
     
    70927120
    70937121/* Line 1806 of yacc.c  */
    7094 #line 1535 "parser.yy"
     7122#line 1537 "parser.yy"
    70957123    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
    70967124    break;
     
    70997127
    71007128/* Line 1806 of yacc.c  */
    7101 #line 1540 "parser.yy"
     7129#line 1542 "parser.yy"
    71027130    { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
    71037131    break;
     
    71067134
    71077135/* Line 1806 of yacc.c  */
    7108 #line 1542 "parser.yy"
     7136#line 1544 "parser.yy"
    71097137    { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
    71107138    break;
     
    71137141
    71147142/* Line 1806 of yacc.c  */
    7115 #line 1545 "parser.yy"
     7143#line 1547 "parser.yy"
    71167144    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    71177145    break;
     
    71207148
    71217149/* Line 1806 of yacc.c  */
    7122 #line 1548 "parser.yy"
     7150#line 1550 "parser.yy"
    71237151    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    71247152    break;
     
    71277155
    71287156/* Line 1806 of yacc.c  */
    7129 #line 1554 "parser.yy"
     7157#line 1556 "parser.yy"
    71307158    { (yyval.en) = 0; }
    71317159    break;
     
    71347162
    71357163/* Line 1806 of yacc.c  */
    7136 #line 1556 "parser.yy"
     7164#line 1558 "parser.yy"
    71377165    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    71387166    break;
     
    71417169
    71427170/* Line 1806 of yacc.c  */
    7143 #line 1561 "parser.yy"
     7171#line 1563 "parser.yy"
    71447172    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    71457173    break;
     
    71487176
    71497177/* Line 1806 of yacc.c  */
    7150 #line 1570 "parser.yy"
     7178#line 1572 "parser.yy"
    71517179    { (yyval.decl) = DeclarationNode::newEnum( nullptr, (yyvsp[(3) - (5)].decl) ); }
    71527180    break;
     
    71557183
    71567184/* Line 1806 of yacc.c  */
    7157 #line 1572 "parser.yy"
     7185#line 1574 "parser.yy"
    71587186    {
    71597187                        typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
     
    71657193
    71667194/* Line 1806 of yacc.c  */
    7167 #line 1577 "parser.yy"
     7195#line 1579 "parser.yy"
    71687196    { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
    71697197    break;
     
    71727200
    71737201/* Line 1806 of yacc.c  */
    7174 #line 1579 "parser.yy"
     7202#line 1581 "parser.yy"
    71757203    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); }
    71767204    break;
     
    71797207
    71807208/* Line 1806 of yacc.c  */
    7181 #line 1584 "parser.yy"
     7209#line 1586 "parser.yy"
    71827210    { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
    71837211    break;
     
    71867214
    71877215/* Line 1806 of yacc.c  */
    7188 #line 1586 "parser.yy"
     7216#line 1588 "parser.yy"
    71897217    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
    71907218    break;
     
    71937221
    71947222/* Line 1806 of yacc.c  */
    7195 #line 1591 "parser.yy"
     7223#line 1593 "parser.yy"
    71967224    { (yyval.en) = 0; }
    71977225    break;
     
    72007228
    72017229/* Line 1806 of yacc.c  */
    7202 #line 1593 "parser.yy"
     7230#line 1595 "parser.yy"
    72037231    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    72047232    break;
     
    72077235
    72087236/* Line 1806 of yacc.c  */
    7209 #line 1600 "parser.yy"
     7237#line 1602 "parser.yy"
    72107238    { (yyval.decl) = 0; }
    72117239    break;
     
    72147242
    72157243/* Line 1806 of yacc.c  */
    7216 #line 1608 "parser.yy"
     7244#line 1610 "parser.yy"
    72177245    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72187246    break;
    72197247
    72207248  case 408:
    7221 
    7222 /* Line 1806 of yacc.c  */
    7223 #line 1610 "parser.yy"
    7224     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    7225     break;
    7226 
    7227   case 409:
    72287249
    72297250/* Line 1806 of yacc.c  */
     
    72327253    break;
    72337254
     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
    72347262  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:
    72427263
    72437264/* Line 1806 of yacc.c  */
     
    72467267    break;
    72477268
     7269  case 412:
     7270
     7271/* Line 1806 of yacc.c  */
     7272#line 1624 "parser.yy"
     7273    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7274    break;
     7275
    72487276  case 413:
    72497277
    72507278/* Line 1806 of yacc.c  */
    7251 #line 1624 "parser.yy"
     7279#line 1626 "parser.yy"
    72527280    { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
    72537281    break;
     
    72567284
    72577285/* Line 1806 of yacc.c  */
    7258 #line 1630 "parser.yy"
     7286#line 1632 "parser.yy"
    72597287    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72607288    break;
     
    72637291
    72647292/* Line 1806 of yacc.c  */
    7265 #line 1635 "parser.yy"
     7293#line 1637 "parser.yy"
    72667294    { (yyval.decl) = 0; }
    72677295    break;
     
    72707298
    72717299/* Line 1806 of yacc.c  */
    7272 #line 1642 "parser.yy"
     7300#line 1644 "parser.yy"
    72737301    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    72747302    break;
    72757303
    72767304  case 422:
    7277 
    7278 /* Line 1806 of yacc.c  */
    7279 #line 1649 "parser.yy"
    7280     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7281     break;
    7282 
    7283   case 423:
    72847305
    72857306/* Line 1806 of yacc.c  */
     
    72887309    break;
    72897310
     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
    72907318  case 425:
    72917319
    72927320/* Line 1806 of yacc.c  */
    7293 #line 1660 "parser.yy"
     7321#line 1662 "parser.yy"
    72947322    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    72957323    break;
     
    72987326
    72997327/* Line 1806 of yacc.c  */
    7300 #line 1663 "parser.yy"
     7328#line 1665 "parser.yy"
    73017329    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    73027330    break;
     
    73057333
    73067334/* Line 1806 of yacc.c  */
    7307 #line 1665 "parser.yy"
     7335#line 1667 "parser.yy"
    73087336    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
    73097337    break;
     
    73127340
    73137341/* Line 1806 of yacc.c  */
    7314 #line 1675 "parser.yy"
     7342#line 1677 "parser.yy"
    73157343    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    73167344    break;
     
    73197347
    73207348/* Line 1806 of yacc.c  */
    7321 #line 1681 "parser.yy"
     7349#line 1683 "parser.yy"
    73227350    {
    73237351                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    73297357
    73307358/* Line 1806 of yacc.c  */
    7331 #line 1686 "parser.yy"
     7359#line 1688 "parser.yy"
    73327360    {
    73337361                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    73397367
    73407368/* Line 1806 of yacc.c  */
    7341 #line 1695 "parser.yy"
     7369#line 1697 "parser.yy"
    73427370    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73437371    break;
     
    73467374
    73477375/* Line 1806 of yacc.c  */
    7348 #line 1704 "parser.yy"
     7376#line 1706 "parser.yy"
    73497377    { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
    73507378    break;
     
    73537381
    73547382/* Line 1806 of yacc.c  */
    7355 #line 1706 "parser.yy"
     7383#line 1708 "parser.yy"
    73567384    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
    73577385    break;
     
    73607388
    73617389/* Line 1806 of yacc.c  */
    7362 #line 1731 "parser.yy"
     7390#line 1733 "parser.yy"
    73637391    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73647392    break;
     
    73677395
    73687396/* Line 1806 of yacc.c  */
    7369 #line 1739 "parser.yy"
     7397#line 1741 "parser.yy"
    73707398    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73717399    break;
     
    73747402
    73757403/* Line 1806 of yacc.c  */
    7376 #line 1744 "parser.yy"
     7404#line 1746 "parser.yy"
    73777405    { (yyval.in) = 0; }
    73787406    break;
     
    73817409
    73827410/* Line 1806 of yacc.c  */
    7383 #line 1746 "parser.yy"
     7411#line 1748 "parser.yy"
    73847412    { (yyval.in) = (yyvsp[(2) - (2)].in); }
    73857413    break;
     
    73887416
    73897417/* Line 1806 of yacc.c  */
    7390 #line 1748 "parser.yy"
     7418#line 1750 "parser.yy"
    73917419    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); }
    73927420    break;
     
    73957423
    73967424/* Line 1806 of yacc.c  */
    7397 #line 1752 "parser.yy"
     7425#line 1754 "parser.yy"
    73987426    { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
    73997427    break;
     
    74027430
    74037431/* Line 1806 of yacc.c  */
    7404 #line 1753 "parser.yy"
     7432#line 1755 "parser.yy"
    74057433    { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
    74067434    break;
     
    74097437
    74107438/* Line 1806 of yacc.c  */
    7411 #line 1758 "parser.yy"
     7439#line 1760 "parser.yy"
    74127440    { (yyval.in) = 0; }
    74137441    break;
     
    74167444
    74177445/* Line 1806 of yacc.c  */
    7418 #line 1760 "parser.yy"
     7446#line 1762 "parser.yy"
    74197447    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
    74207448    break;
     
    74237451
    74247452/* Line 1806 of yacc.c  */
    7425 #line 1761 "parser.yy"
     7453#line 1763 "parser.yy"
    74267454    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); }
    74277455    break;
     
    74307458
    74317459/* Line 1806 of yacc.c  */
    7432 #line 1763 "parser.yy"
     7460#line 1765 "parser.yy"
    74337461    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_last( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
    74347462    break;
     
    74377465
    74387466/* Line 1806 of yacc.c  */
    7439 #line 1779 "parser.yy"
     7467#line 1781 "parser.yy"
    74407468    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); }
    74417469    break;
     
    74447472
    74457473/* Line 1806 of yacc.c  */
    7446 #line 1785 "parser.yy"
     7474#line 1787 "parser.yy"
    74477475    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) ) ); }
    74487476    break;
     
    74517479
    74527480/* Line 1806 of yacc.c  */
    7453 #line 1791 "parser.yy"
     7481#line 1793 "parser.yy"
    74547482    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); }
    74557483    break;
    74567484
    74577485  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:
    74657486
    74667487/* Line 1806 of yacc.c  */
     
    74697490    break;
    74707491
     7492  case 472:
     7493
     7494/* Line 1806 of yacc.c  */
     7495#line 1798 "parser.yy"
     7496    { (yyval.en) = (yyvsp[(3) - (5)].en); }
     7497    break;
     7498
    74717499  case 473:
    74727500
    74737501/* Line 1806 of yacc.c  */
    7474 #line 1798 "parser.yy"
     7502#line 1800 "parser.yy"
    74757503    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); }
    74767504    break;
     
    74797507
    74807508/* Line 1806 of yacc.c  */
    7481 #line 1800 "parser.yy"
     7509#line 1802 "parser.yy"
    74827510    { (yyval.en) = (yyvsp[(4) - (6)].en); }
    74837511    break;
     
    74867514
    74877515/* Line 1806 of yacc.c  */
    7488 #line 1824 "parser.yy"
     7516#line 1826 "parser.yy"
    74897517    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    74907518    break;
     
    74937521
    74947522/* Line 1806 of yacc.c  */
    7495 #line 1826 "parser.yy"
     7523#line 1828 "parser.yy"
    74967524    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    74977525    break;
     
    75007528
    75017529/* Line 1806 of yacc.c  */
    7502 #line 1828 "parser.yy"
     7530#line 1830 "parser.yy"
    75037531    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    75047532    break;
     
    75077535
    75087536/* Line 1806 of yacc.c  */
    7509 #line 1834 "parser.yy"
     7537#line 1836 "parser.yy"
    75107538    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    75117539    break;
     
    75147542
    75157543/* Line 1806 of yacc.c  */
    7516 #line 1836 "parser.yy"
     7544#line 1838 "parser.yy"
    75177545    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    75187546    break;
     
    75217549
    75227550/* Line 1806 of yacc.c  */
    7523 #line 1841 "parser.yy"
     7551#line 1843 "parser.yy"
    75247552    { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    75257553    break;
     
    75287556
    75297557/* Line 1806 of yacc.c  */
    7530 #line 1847 "parser.yy"
     7558#line 1849 "parser.yy"
    75317559    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
    75327560    break;
     
    75357563
    75367564/* Line 1806 of yacc.c  */
    7537 #line 1852 "parser.yy"
     7565#line 1854 "parser.yy"
    75387566    { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
    75397567    break;
     
    75427570
    75437571/* Line 1806 of yacc.c  */
    7544 #line 1854 "parser.yy"
     7572#line 1856 "parser.yy"
    75457573    { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
    75467574    break;
     
    75497577
    75507578/* Line 1806 of yacc.c  */
    7551 #line 1860 "parser.yy"
     7579#line 1862 "parser.yy"
    75527580    { (yyval.tclass) = DeclarationNode::Otype; }
    75537581    break;
     
    75567584
    75577585/* Line 1806 of yacc.c  */
    7558 #line 1862 "parser.yy"
     7586#line 1864 "parser.yy"
    75597587    { (yyval.tclass) = DeclarationNode::Ftype; }
    75607588    break;
     
    75637591
    75647592/* Line 1806 of yacc.c  */
    7565 #line 1864 "parser.yy"
     7593#line 1866 "parser.yy"
    75667594    { (yyval.tclass) = DeclarationNode::Dtype; }
    75677595    break;
     
    75707598
    75717599/* Line 1806 of yacc.c  */
    7572 #line 1869 "parser.yy"
     7600#line 1871 "parser.yy"
    75737601    { (yyval.decl) = 0; }
    75747602    break;
     
    75777605
    75787606/* Line 1806 of yacc.c  */
    7579 #line 1871 "parser.yy"
     7607#line 1873 "parser.yy"
    75807608    { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
    75817609    break;
     
    75847612
    75857613/* Line 1806 of yacc.c  */
    7586 #line 1876 "parser.yy"
     7614#line 1878 "parser.yy"
    75877615    {
    75887616                        typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) );
     
    75947622
    75957623/* Line 1806 of yacc.c  */
    7596 #line 1881 "parser.yy"
     7624#line 1883 "parser.yy"
    75977625    { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
    75987626    break;
     
    76017629
    76027630/* Line 1806 of yacc.c  */
    7603 #line 1883 "parser.yy"
     7631#line 1885 "parser.yy"
    76047632    { (yyval.decl) = 0; }
    76057633    break;
     
    76087636
    76097637/* Line 1806 of yacc.c  */
    7610 #line 1888 "parser.yy"
     7638#line 1890 "parser.yy"
    76117639    { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); }
    76127640    break;
     
    76157643
    76167644/* Line 1806 of yacc.c  */
    7617 #line 1891 "parser.yy"
     7645#line 1893 "parser.yy"
    76187646    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); }
    76197647    break;
     
    76227650
    76237651/* Line 1806 of yacc.c  */
    7624 #line 1893 "parser.yy"
     7652#line 1895 "parser.yy"
    76257653    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
    76267654    break;
     
    76297657
    76307658/* Line 1806 of yacc.c  */
    7631 #line 1898 "parser.yy"
     7659#line 1900 "parser.yy"
    76327660    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    76337661    break;
     
    76367664
    76377665/* Line 1806 of yacc.c  */
    7638 #line 1900 "parser.yy"
     7666#line 1902 "parser.yy"
    76397667    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
    76407668    break;
     
    76437671
    76447672/* Line 1806 of yacc.c  */
    7645 #line 1902 "parser.yy"
     7673#line 1904 "parser.yy"
    76467674    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
    76477675    break;
     
    76507678
    76517679/* Line 1806 of yacc.c  */
    7652 #line 1907 "parser.yy"
     7680#line 1909 "parser.yy"
    76537681    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
    76547682    break;
     
    76577685
    76587686/* Line 1806 of yacc.c  */
    7659 #line 1909 "parser.yy"
     7687#line 1911 "parser.yy"
    76607688    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
    76617689    break;
     
    76647692
    76657693/* Line 1806 of yacc.c  */
    7666 #line 1914 "parser.yy"
     7694#line 1916 "parser.yy"
    76677695    {
    76687696                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD );
     
    76747702
    76757703/* Line 1806 of yacc.c  */
    7676 #line 1919 "parser.yy"
     7704#line 1921 "parser.yy"
    76777705    {
    76787706                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG );
     
    76847712
    76857713/* Line 1806 of yacc.c  */
    7686 #line 1927 "parser.yy"
     7714#line 1929 "parser.yy"
    76877715    {
    76887716                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID );
     
    76947722
    76957723/* Line 1806 of yacc.c  */
    7696 #line 1932 "parser.yy"
     7724#line 1934 "parser.yy"
    76977725    {
    76987726                        typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) );
     
    77047732
    77057733/* Line 1806 of yacc.c  */
    7706 #line 1937 "parser.yy"
     7734#line 1939 "parser.yy"
    77077735    {
    77087736                        typedefTable.leaveTrait();
     
    77157743
    77167744/* Line 1806 of yacc.c  */
    7717 #line 1947 "parser.yy"
     7745#line 1949 "parser.yy"
    77187746    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    77197747    break;
     
    77227750
    77237751/* Line 1806 of yacc.c  */
    7724 #line 1957 "parser.yy"
     7752#line 1959 "parser.yy"
    77257753    {
    77267754                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77327760
    77337761/* Line 1806 of yacc.c  */
    7734 #line 1962 "parser.yy"
     7762#line 1964 "parser.yy"
    77357763    {
    77367764                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77427770
    77437771/* Line 1806 of yacc.c  */
    7744 #line 1967 "parser.yy"
     7772#line 1969 "parser.yy"
    77457773    {
    77467774                        typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    77527780
    77537781/* Line 1806 of yacc.c  */
    7754 #line 1975 "parser.yy"
     7782#line 1977 "parser.yy"
    77557783    {
    77567784                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77627790
    77637791/* Line 1806 of yacc.c  */
    7764 #line 1980 "parser.yy"
     7792#line 1982 "parser.yy"
    77657793    {
    77667794                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77727800
    77737801/* Line 1806 of yacc.c  */
    7774 #line 1990 "parser.yy"
     7802#line 1992 "parser.yy"
    77757803    {}
    77767804    break;
     
    77797807
    77807808/* Line 1806 of yacc.c  */
    7781 #line 1992 "parser.yy"
     7809#line 1994 "parser.yy"
    77827810    { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl);    }
    77837811    break;
     
    77867814
    77877815/* Line 1806 of yacc.c  */
    7788 #line 1998 "parser.yy"
     7816#line 2000 "parser.yy"
    77897817    { (yyval.decl) = (yyvsp[(1) - (3)].decl) != nullptr ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
    77907818    break;
     
    77937821
    77947822/* Line 1806 of yacc.c  */
    7795 #line 2003 "parser.yy"
     7823#line 2005 "parser.yy"
    77967824    { (yyval.decl) = 0; }
    77977825    break;
     
    78007828
    78017829/* Line 1806 of yacc.c  */
    7802 #line 2011 "parser.yy"
     7830#line 2013 "parser.yy"
    78037831    {}
    78047832    break;
     
    78077835
    78087836/* Line 1806 of yacc.c  */
    7809 #line 2013 "parser.yy"
     7837#line 2015 "parser.yy"
    78107838    {
    78117839                        linkageStack.push( linkage );                           // handle nested extern "C"/"Cforall"
     
    78177845
    78187846/* Line 1806 of yacc.c  */
    7819 #line 2018 "parser.yy"
     7847#line 2020 "parser.yy"
    78207848    {
    78217849                        linkage = linkageStack.top();
     
    78287856
    78297857/* Line 1806 of yacc.c  */
    7830 #line 2024 "parser.yy"
     7858#line 2026 "parser.yy"
    78317859    {   // mark all fields in list
    78327860                        for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     
    78397867
    78407868/* Line 1806 of yacc.c  */
    7841 #line 2039 "parser.yy"
     7869#line 2041 "parser.yy"
    78427870    {
    78437871                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78507878
    78517879/* Line 1806 of yacc.c  */
    7852 #line 2045 "parser.yy"
     7880#line 2047 "parser.yy"
    78537881    {
    78547882                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78617889
    78627890/* Line 1806 of yacc.c  */
    7863 #line 2054 "parser.yy"
     7891#line 2056 "parser.yy"
    78647892    {
    78657893                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78727900
    78737901/* Line 1806 of yacc.c  */
    7874 #line 2060 "parser.yy"
     7902#line 2062 "parser.yy"
    78757903    {
    78767904                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78837911
    78847912/* Line 1806 of yacc.c  */
    7885 #line 2066 "parser.yy"
     7913#line 2068 "parser.yy"
    78867914    {
    78877915                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78947922
    78957923/* Line 1806 of yacc.c  */
    7896 #line 2072 "parser.yy"
     7924#line 2074 "parser.yy"
    78977925    {
    78987926                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79057933
    79067934/* Line 1806 of yacc.c  */
    7907 #line 2078 "parser.yy"
     7935#line 2080 "parser.yy"
    79087936    {
    79097937                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79167944
    79177945/* Line 1806 of yacc.c  */
    7918 #line 2086 "parser.yy"
     7946#line 2088 "parser.yy"
    79197947    {
    79207948                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79277955
    79287956/* Line 1806 of yacc.c  */
    7929 #line 2092 "parser.yy"
     7957#line 2094 "parser.yy"
    79307958    {
    79317959                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79387966
    79397967/* Line 1806 of yacc.c  */
    7940 #line 2100 "parser.yy"
     7968#line 2102 "parser.yy"
    79417969    {
    79427970                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79497977
    79507978/* Line 1806 of yacc.c  */
    7951 #line 2106 "parser.yy"
     7979#line 2108 "parser.yy"
    79527980    {
    79537981                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79607988
    79617989/* Line 1806 of yacc.c  */
    7962 #line 2121 "parser.yy"
     7990#line 2123 "parser.yy"
    79637991    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    79647992    break;
     
    79677995
    79687996/* Line 1806 of yacc.c  */
    7969 #line 2126 "parser.yy"
     7997#line 2128 "parser.yy"
    79707998    { delete (yyvsp[(3) - (5)].str); }
    79717999    break;
     
    79748002
    79758003/* Line 1806 of yacc.c  */
    7976 #line 2131 "parser.yy"
     8004#line 2133 "parser.yy"
    79778005    { (yyval.decl) = 0; }
    79788006    break;
     
    79818009
    79828010/* Line 1806 of yacc.c  */
    7983 #line 2138 "parser.yy"
     8011#line 2140 "parser.yy"
    79848012    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    79858013    break;
     
    79888016
    79898017/* Line 1806 of yacc.c  */
    7990 #line 2144 "parser.yy"
     8018#line 2146 "parser.yy"
    79918019    { (yyval.decl) = 0; }
    79928020    break;
     
    79958023
    79968024/* Line 1806 of yacc.c  */
    7997 #line 2155 "parser.yy"
     8025#line 2157 "parser.yy"
    79988026    { delete (yyvsp[(3) - (4)].en); }
    79998027    break;
     
    80028030
    80038031/* Line 1806 of yacc.c  */
    8004 #line 2159 "parser.yy"
     8032#line 2161 "parser.yy"
    80058033    { delete (yyvsp[(1) - (1)].tok); }
    80068034    break;
    80078035
    80088036  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  */
    8018 #line 2161 "parser.yy"
    8019     { delete (yyvsp[(1) - (1)].decl); }
    8020     break;
    8021 
    8022   case 562:
    80238037
    80248038/* Line 1806 of yacc.c  */
     
    80278041    break;
    80288042
     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
    80298057  case 563:
    80308058
    80318059/* Line 1806 of yacc.c  */
    8032 #line 2197 "parser.yy"
     8060#line 2199 "parser.yy"
    80338061    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80348062    break;
    80358063
    80368064  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:
    80448065
    80458066/* Line 1806 of yacc.c  */
     
    80488069    break;
    80498070
     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
    80508078  case 567:
    80518079
    80528080/* Line 1806 of yacc.c  */
    8053 #line 2207 "parser.yy"
     8081#line 2209 "parser.yy"
    80548082    {
    80558083                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    80618089
    80628090/* Line 1806 of yacc.c  */
    8063 #line 2212 "parser.yy"
     8091#line 2214 "parser.yy"
    80648092    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80658093    break;
     
    80688096
    80698097/* Line 1806 of yacc.c  */
    8070 #line 2217 "parser.yy"
     8098#line 2219 "parser.yy"
    80718099    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    80728100    break;
     
    80758103
    80768104/* Line 1806 of yacc.c  */
    8077 #line 2219 "parser.yy"
     8105#line 2221 "parser.yy"
    80788106    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    80798107    break;
     
    80828110
    80838111/* Line 1806 of yacc.c  */
    8084 #line 2221 "parser.yy"
     8112#line 2223 "parser.yy"
    80858113    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80868114    break;
     
    80898117
    80908118/* Line 1806 of yacc.c  */
    8091 #line 2226 "parser.yy"
     8119#line 2228 "parser.yy"
    80928120    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    80938121    break;
    80948122
    80958123  case 573:
    8096 
    8097 /* Line 1806 of yacc.c  */
    8098 #line 2228 "parser.yy"
    8099     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8100     break;
    8101 
    8102   case 574:
    81038124
    81048125/* Line 1806 of yacc.c  */
     
    81078128    break;
    81088129
     8130  case 574:
     8131
     8132/* Line 1806 of yacc.c  */
     8133#line 2232 "parser.yy"
     8134    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8135    break;
     8136
    81098137  case 575:
    81108138
    81118139/* Line 1806 of yacc.c  */
    8112 #line 2232 "parser.yy"
     8140#line 2234 "parser.yy"
    81138141    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81148142    break;
     
    81178145
    81188146/* Line 1806 of yacc.c  */
    8119 #line 2237 "parser.yy"
     8147#line 2239 "parser.yy"
    81208148    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    81218149    break;
     
    81248152
    81258153/* Line 1806 of yacc.c  */
    8126 #line 2239 "parser.yy"
     8154#line 2241 "parser.yy"
    81278155    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81288156    break;
     
    81318159
    81328160/* Line 1806 of yacc.c  */
    8133 #line 2248 "parser.yy"
     8161#line 2250 "parser.yy"
    81348162    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    81358163    break;
     
    81388166
    81398167/* Line 1806 of yacc.c  */
    8140 #line 2251 "parser.yy"
     8168#line 2253 "parser.yy"
    81418169    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    81428170    break;
     
    81458173
    81468174/* Line 1806 of yacc.c  */
    8147 #line 2256 "parser.yy"
     8175#line 2258 "parser.yy"
    81488176    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    81498177    break;
     
    81528180
    81538181/* Line 1806 of yacc.c  */
    8154 #line 2258 "parser.yy"
     8182#line 2260 "parser.yy"
    81558183    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    81568184    break;
     
    81598187
    81608188/* Line 1806 of yacc.c  */
    8161 #line 2260 "parser.yy"
     8189#line 2262 "parser.yy"
    81628190    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81638191    break;
     
    81668194
    81678195/* Line 1806 of yacc.c  */
    8168 #line 2265 "parser.yy"
     8196#line 2267 "parser.yy"
    81698197    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    81708198    break;
     
    81738201
    81748202/* Line 1806 of yacc.c  */
    8175 #line 2267 "parser.yy"
     8203#line 2269 "parser.yy"
    81768204    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    81778205    break;
     
    81808208
    81818209/* Line 1806 of yacc.c  */
    8182 #line 2269 "parser.yy"
     8210#line 2271 "parser.yy"
    81838211    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81848212    break;
    81858213
    81868214  case 587:
    8187 
    8188 /* Line 1806 of yacc.c  */
    8189 #line 2274 "parser.yy"
    8190     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8191     break;
    8192 
    8193   case 588:
    81948215
    81958216/* Line 1806 of yacc.c  */
     
    81988219    break;
    81998220
     8221  case 588:
     8222
     8223/* Line 1806 of yacc.c  */
     8224#line 2278 "parser.yy"
     8225    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8226    break;
     8227
    82008228  case 589:
    82018229
    82028230/* Line 1806 of yacc.c  */
    8203 #line 2278 "parser.yy"
     8231#line 2280 "parser.yy"
    82048232    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82058233    break;
     
    82088236
    82098237/* Line 1806 of yacc.c  */
    8210 #line 2293 "parser.yy"
     8238#line 2295 "parser.yy"
    82118239    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
    82128240    break;
     
    82158243
    82168244/* Line 1806 of yacc.c  */
    8217 #line 2295 "parser.yy"
     8245#line 2297 "parser.yy"
    82188246    { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
    82198247    break;
     
    82228250
    82238251/* Line 1806 of yacc.c  */
    8224 #line 2297 "parser.yy"
     8252#line 2299 "parser.yy"
    82258253    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82268254    break;
     
    82298257
    82308258/* Line 1806 of yacc.c  */
    8231 #line 2302 "parser.yy"
     8259#line 2304 "parser.yy"
    82328260    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    82338261    break;
     
    82368264
    82378265/* Line 1806 of yacc.c  */
    8238 #line 2304 "parser.yy"
     8266#line 2306 "parser.yy"
    82398267    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    82408268    break;
     
    82438271
    82448272/* Line 1806 of yacc.c  */
    8245 #line 2306 "parser.yy"
     8273#line 2308 "parser.yy"
    82468274    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82478275    break;
    82488276
    82498277  case 599:
    8250 
    8251 /* Line 1806 of yacc.c  */
    8252 #line 2311 "parser.yy"
    8253     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8254     break;
    8255 
    8256   case 600:
    82578278
    82588279/* Line 1806 of yacc.c  */
     
    82618282    break;
    82628283
     8284  case 600:
     8285
     8286/* Line 1806 of yacc.c  */
     8287#line 2315 "parser.yy"
     8288    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8289    break;
     8290
    82638291  case 601:
    82648292
    82658293/* Line 1806 of yacc.c  */
    8266 #line 2315 "parser.yy"
     8294#line 2317 "parser.yy"
    82678295    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82688296    break;
     
    82718299
    82728300/* Line 1806 of yacc.c  */
    8273 #line 2330 "parser.yy"
     8301#line 2332 "parser.yy"
    82748302    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82758303    break;
    82768304
    82778305  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:
    82858306
    82868307/* Line 1806 of yacc.c  */
     
    82898310    break;
    82908311
     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
    82918319  case 607:
    82928320
    82938321/* Line 1806 of yacc.c  */
    8294 #line 2341 "parser.yy"
     8322#line 2343 "parser.yy"
    82958323    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82968324    break;
     
    82998327
    83008328/* Line 1806 of yacc.c  */
    8301 #line 2346 "parser.yy"
     8329#line 2348 "parser.yy"
    83028330    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    83038331    break;
     
    83068334
    83078335/* Line 1806 of yacc.c  */
    8308 #line 2348 "parser.yy"
     8336#line 2350 "parser.yy"
    83098337    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    83108338    break;
     
    83138341
    83148342/* Line 1806 of yacc.c  */
    8315 #line 2350 "parser.yy"
     8343#line 2352 "parser.yy"
    83168344    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83178345    break;
     
    83208348
    83218349/* Line 1806 of yacc.c  */
    8322 #line 2355 "parser.yy"
     8350#line 2357 "parser.yy"
    83238351    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    83248352    break;
    83258353
    83268354  case 612:
    8327 
    8328 /* Line 1806 of yacc.c  */
    8329 #line 2357 "parser.yy"
    8330     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8331     break;
    8332 
    8333   case 613:
    83348355
    83358356/* Line 1806 of yacc.c  */
     
    83388359    break;
    83398360
     8361  case 613:
     8362
     8363/* Line 1806 of yacc.c  */
     8364#line 2361 "parser.yy"
     8365    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8366    break;
     8367
    83408368  case 614:
    83418369
    83428370/* Line 1806 of yacc.c  */
    8343 #line 2361 "parser.yy"
     8371#line 2363 "parser.yy"
    83448372    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83458373    break;
     
    83488376
    83498377/* Line 1806 of yacc.c  */
    8350 #line 2366 "parser.yy"
     8378#line 2368 "parser.yy"
    83518379    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    83528380    break;
     
    83558383
    83568384/* Line 1806 of yacc.c  */
    8357 #line 2368 "parser.yy"
     8385#line 2370 "parser.yy"
    83588386    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    83598387    break;
     
    83628390
    83638391/* Line 1806 of yacc.c  */
    8364 #line 2370 "parser.yy"
     8392#line 2372 "parser.yy"
    83658393    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83668394    break;
     
    83698397
    83708398/* Line 1806 of yacc.c  */
    8371 #line 2380 "parser.yy"
     8399#line 2382 "parser.yy"
    83728400    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83738401    break;
    83748402
    83758403  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:
    83838404
    83848405/* Line 1806 of yacc.c  */
     
    83878408    break;
    83888409
     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
    83898417  case 622:
    83908418
    83918419/* Line 1806 of yacc.c  */
    8392 #line 2390 "parser.yy"
     8420#line 2392 "parser.yy"
    83938421    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    83948422    break;
     
    83978425
    83988426/* Line 1806 of yacc.c  */
    8399 #line 2392 "parser.yy"
     8427#line 2394 "parser.yy"
    84008428    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    84018429    break;
     
    84048432
    84058433/* Line 1806 of yacc.c  */
    8406 #line 2394 "parser.yy"
     8434#line 2396 "parser.yy"
    84078435    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84088436    break;
     
    84118439
    84128440/* Line 1806 of yacc.c  */
    8413 #line 2399 "parser.yy"
     8441#line 2401 "parser.yy"
    84148442    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    84158443    break;
    84168444
    84178445  case 626:
    8418 
    8419 /* Line 1806 of yacc.c  */
    8420 #line 2401 "parser.yy"
    8421     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8422     break;
    8423 
    8424   case 627:
    84258446
    84268447/* Line 1806 of yacc.c  */
     
    84298450    break;
    84308451
     8452  case 627:
     8453
     8454/* Line 1806 of yacc.c  */
     8455#line 2405 "parser.yy"
     8456    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8457    break;
     8458
    84318459  case 628:
    84328460
    84338461/* Line 1806 of yacc.c  */
    8434 #line 2405 "parser.yy"
     8462#line 2407 "parser.yy"
    84358463    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84368464    break;
     
    84398467
    84408468/* Line 1806 of yacc.c  */
    8441 #line 2410 "parser.yy"
     8469#line 2412 "parser.yy"
    84428470    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    84438471    break;
     
    84468474
    84478475/* Line 1806 of yacc.c  */
    8448 #line 2412 "parser.yy"
     8476#line 2414 "parser.yy"
    84498477    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    84508478    break;
     
    84538481
    84548482/* Line 1806 of yacc.c  */
    8455 #line 2414 "parser.yy"
     8483#line 2416 "parser.yy"
    84568484    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84578485    break;
     
    84608488
    84618489/* Line 1806 of yacc.c  */
    8462 #line 2445 "parser.yy"
     8490#line 2447 "parser.yy"
    84638491    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84648492    break;
    84658493
    84668494  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:
    84748495
    84758496/* Line 1806 of yacc.c  */
     
    84788499    break;
    84798500
     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
    84808508  case 636:
    84818509
    84828510/* Line 1806 of yacc.c  */
    8483 #line 2455 "parser.yy"
     8511#line 2457 "parser.yy"
    84848512    {
    84858513                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    84918519
    84928520/* Line 1806 of yacc.c  */
    8493 #line 2460 "parser.yy"
     8521#line 2462 "parser.yy"
    84948522    {
    84958523                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    85018529
    85028530/* Line 1806 of yacc.c  */
    8503 #line 2468 "parser.yy"
     8531#line 2470 "parser.yy"
    85048532    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    85058533    break;
     
    85088536
    85098537/* Line 1806 of yacc.c  */
    8510 #line 2470 "parser.yy"
     8538#line 2472 "parser.yy"
    85118539    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    85128540    break;
     
    85158543
    85168544/* Line 1806 of yacc.c  */
    8517 #line 2472 "parser.yy"
     8545#line 2474 "parser.yy"
    85188546    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85198547    break;
     
    85228550
    85238551/* Line 1806 of yacc.c  */
    8524 #line 2477 "parser.yy"
     8552#line 2479 "parser.yy"
    85258553    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    85268554    break;
     
    85298557
    85308558/* Line 1806 of yacc.c  */
    8531 #line 2479 "parser.yy"
     8559#line 2481 "parser.yy"
    85328560    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    85338561    break;
     
    85368564
    85378565/* Line 1806 of yacc.c  */
    8538 #line 2484 "parser.yy"
     8566#line 2486 "parser.yy"
    85398567    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    85408568    break;
     
    85438571
    85448572/* Line 1806 of yacc.c  */
    8545 #line 2486 "parser.yy"
     8573#line 2488 "parser.yy"
    85468574    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    85478575    break;
    85488576
    85498577  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:
    85578578
    85588579/* Line 1806 of yacc.c  */
     
    85618582    break;
    85628583
     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
    85638591  case 648:
    85648592
    85658593/* Line 1806 of yacc.c  */
    8566 #line 2508 "parser.yy"
     8594#line 2510 "parser.yy"
    85678595    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    85688596    break;
     
    85718599
    85728600/* Line 1806 of yacc.c  */
    8573 #line 2510 "parser.yy"
     8601#line 2512 "parser.yy"
    85748602    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    85758603    break;
     
    85788606
    85798607/* Line 1806 of yacc.c  */
    8580 #line 2512 "parser.yy"
     8608#line 2514 "parser.yy"
    85818609    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    85828610    break;
     
    85858613
    85868614/* Line 1806 of yacc.c  */
    8587 #line 2514 "parser.yy"
     8615#line 2516 "parser.yy"
    85888616    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    85898617    break;
     
    85928620
    85938621/* Line 1806 of yacc.c  */
    8594 #line 2516 "parser.yy"
     8622#line 2518 "parser.yy"
    85958623    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85968624    break;
    85978625
    85988626  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:
    86068627
    86078628/* Line 1806 of yacc.c  */
     
    86108631    break;
    86118632
     8633  case 655:
     8634
     8635/* Line 1806 of yacc.c  */
     8636#line 2526 "parser.yy"
     8637    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8638    break;
     8639
    86128640  case 656:
    86138641
    86148642/* Line 1806 of yacc.c  */
    8615 #line 2526 "parser.yy"
     8643#line 2528 "parser.yy"
    86168644    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86178645    break;
     
    86208648
    86218649/* Line 1806 of yacc.c  */
    8622 #line 2531 "parser.yy"
     8650#line 2533 "parser.yy"
    86238651    { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
    86248652    break;
     
    86278655
    86288656/* Line 1806 of yacc.c  */
    8629 #line 2533 "parser.yy"
     8657#line 2535 "parser.yy"
    86308658    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    86318659    break;
     
    86348662
    86358663/* Line 1806 of yacc.c  */
    8636 #line 2535 "parser.yy"
     8664#line 2537 "parser.yy"
    86378665    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86388666    break;
     
    86418669
    86428670/* Line 1806 of yacc.c  */
    8643 #line 2541 "parser.yy"
     8671#line 2543 "parser.yy"
    86448672    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    86458673    break;
     
    86488676
    86498677/* Line 1806 of yacc.c  */
    8650 #line 2543 "parser.yy"
     8678#line 2545 "parser.yy"
    86518679    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
    86528680    break;
     
    86558683
    86568684/* Line 1806 of yacc.c  */
    8657 #line 2549 "parser.yy"
     8685#line 2551 "parser.yy"
    86588686    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
    86598687    break;
     
    86628690
    86638691/* Line 1806 of yacc.c  */
    8664 #line 2551 "parser.yy"
     8692#line 2553 "parser.yy"
    86658693    { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
    86668694    break;
     
    86698697
    86708698/* Line 1806 of yacc.c  */
    8671 #line 2553 "parser.yy"
     8699#line 2555 "parser.yy"
    86728700    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
    86738701    break;
     
    86768704
    86778705/* Line 1806 of yacc.c  */
    8678 #line 2555 "parser.yy"
     8706#line 2557 "parser.yy"
    86798707    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
    86808708    break;
    86818709
    86828710  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:
    86908711
    86918712/* Line 1806 of yacc.c  */
     
    86948715    break;
    86958716
     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
    86968724  case 670:
    86978725
    86988726/* Line 1806 of yacc.c  */
    8699 #line 2577 "parser.yy"
     8727#line 2579 "parser.yy"
    87008728    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    87018729    break;
     
    87048732
    87058733/* Line 1806 of yacc.c  */
    8706 #line 2579 "parser.yy"
     8734#line 2581 "parser.yy"
    87078735    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    87088736    break;
     
    87118739
    87128740/* Line 1806 of yacc.c  */
    8713 #line 2581 "parser.yy"
     8741#line 2583 "parser.yy"
    87148742    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    87158743    break;
     
    87188746
    87198747/* Line 1806 of yacc.c  */
    8720 #line 2583 "parser.yy"
     8748#line 2585 "parser.yy"
    87218749    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    87228750    break;
     
    87258753
    87268754/* Line 1806 of yacc.c  */
    8727 #line 2585 "parser.yy"
     8755#line 2587 "parser.yy"
    87288756    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87298757    break;
    87308758
    87318759  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:
    87398760
    87408761/* Line 1806 of yacc.c  */
     
    87438764    break;
    87448765
     8766  case 677:
     8767
     8768/* Line 1806 of yacc.c  */
     8769#line 2595 "parser.yy"
     8770    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8771    break;
     8772
    87458773  case 678:
    87468774
    87478775/* Line 1806 of yacc.c  */
    8748 #line 2595 "parser.yy"
     8776#line 2597 "parser.yy"
    87498777    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87508778    break;
     
    87538781
    87548782/* Line 1806 of yacc.c  */
    8755 #line 2600 "parser.yy"
     8783#line 2602 "parser.yy"
    87568784    { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
    87578785    break;
     
    87608788
    87618789/* Line 1806 of yacc.c  */
    8762 #line 2602 "parser.yy"
     8790#line 2604 "parser.yy"
    87638791    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    87648792    break;
     
    87678795
    87688796/* Line 1806 of yacc.c  */
    8769 #line 2604 "parser.yy"
     8797#line 2606 "parser.yy"
    87708798    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87718799    break;
     
    87748802
    87758803/* Line 1806 of yacc.c  */
    8776 #line 2611 "parser.yy"
     8804#line 2613 "parser.yy"
    87778805    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    87788806    break;
     
    87818809
    87828810/* Line 1806 of yacc.c  */
    8783 #line 2622 "parser.yy"
     8811#line 2624 "parser.yy"
    87848812    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    87858813    break;
     
    87888816
    87898817/* Line 1806 of yacc.c  */
    8790 #line 2625 "parser.yy"
     8818#line 2627 "parser.yy"
    87918819    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    87928820    break;
     
    87958823
    87968824/* Line 1806 of yacc.c  */
    8797 #line 2627 "parser.yy"
     8825#line 2629 "parser.yy"
    87988826    { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
    87998827    break;
     
    88028830
    88038831/* Line 1806 of yacc.c  */
    8804 #line 2630 "parser.yy"
     8832#line 2632 "parser.yy"
    88058833    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    88068834    break;
     
    88098837
    88108838/* Line 1806 of yacc.c  */
    8811 #line 2632 "parser.yy"
     8839#line 2634 "parser.yy"
    88128840    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
    88138841    break;
     
    88168844
    88178845/* Line 1806 of yacc.c  */
    8818 #line 2634 "parser.yy"
     8846#line 2636 "parser.yy"
    88198847    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
    88208848    break;
    88218849
    88228850  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:
    88308851
    88318852/* Line 1806 of yacc.c  */
     
    88348855    break;
    88358856
     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
    88368864  case 694:
    88378865
    88388866/* Line 1806 of yacc.c  */
    8839 #line 2655 "parser.yy"
     8867#line 2657 "parser.yy"
    88408868    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    88418869    break;
     
    88448872
    88458873/* Line 1806 of yacc.c  */
    8846 #line 2657 "parser.yy"
     8874#line 2659 "parser.yy"
    88478875    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    88488876    break;
     
    88518879
    88528880/* Line 1806 of yacc.c  */
    8853 #line 2659 "parser.yy"
     8881#line 2661 "parser.yy"
    88548882    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    88558883    break;
     
    88588886
    88598887/* Line 1806 of yacc.c  */
    8860 #line 2661 "parser.yy"
     8888#line 2663 "parser.yy"
    88618889    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    88628890    break;
     
    88658893
    88668894/* Line 1806 of yacc.c  */
    8867 #line 2663 "parser.yy"
     8895#line 2665 "parser.yy"
    88688896    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    88698897    break;
    88708898
    88718899  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:
    88798900
    88808901/* Line 1806 of yacc.c  */
     
    88838904    break;
    88848905
     8906  case 701:
     8907
     8908/* Line 1806 of yacc.c  */
     8909#line 2673 "parser.yy"
     8910    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8911    break;
     8912
    88858913  case 702:
    88868914
    88878915/* Line 1806 of yacc.c  */
    8888 #line 2673 "parser.yy"
     8916#line 2675 "parser.yy"
    88898917    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    88908918    break;
     
    88938921
    88948922/* Line 1806 of yacc.c  */
    8895 #line 2678 "parser.yy"
     8923#line 2680 "parser.yy"
    88968924    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    88978925    break;
     
    89008928
    89018929/* Line 1806 of yacc.c  */
    8902 #line 2680 "parser.yy"
     8930#line 2682 "parser.yy"
    89038931    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    89048932    break;
     
    89078935
    89088936/* Line 1806 of yacc.c  */
    8909 #line 2690 "parser.yy"
     8937#line 2692 "parser.yy"
    89108938    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    89118939    break;
     
    89148942
    89158943/* Line 1806 of yacc.c  */
    8916 #line 2700 "parser.yy"
     8944#line 2702 "parser.yy"
    89178945    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89188946    break;
     
    89218949
    89228950/* Line 1806 of yacc.c  */
    8923 #line 2702 "parser.yy"
     8951#line 2704 "parser.yy"
    89248952    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89258953    break;
     
    89288956
    89298957/* Line 1806 of yacc.c  */
    8930 #line 2704 "parser.yy"
     8958#line 2706 "parser.yy"
    89318959    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89328960    break;
     
    89358963
    89368964/* Line 1806 of yacc.c  */
    8937 #line 2706 "parser.yy"
     8965#line 2708 "parser.yy"
    89388966    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89398967    break;
     
    89428970
    89438971/* Line 1806 of yacc.c  */
    8944 #line 2708 "parser.yy"
     8972#line 2710 "parser.yy"
    89458973    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89468974    break;
     
    89498977
    89508978/* Line 1806 of yacc.c  */
    8951 #line 2710 "parser.yy"
     8979#line 2712 "parser.yy"
    89528980    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89538981    break;
     
    89568984
    89578985/* Line 1806 of yacc.c  */
    8958 #line 2717 "parser.yy"
     8986#line 2719 "parser.yy"
    89598987    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89608988    break;
     
    89638991
    89648992/* Line 1806 of yacc.c  */
    8965 #line 2719 "parser.yy"
     8993#line 2721 "parser.yy"
    89668994    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    89678995    break;
     
    89708998
    89718999/* Line 1806 of yacc.c  */
    8972 #line 2721 "parser.yy"
     9000#line 2723 "parser.yy"
    89739001    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89749002    break;
     
    89779005
    89789006/* Line 1806 of yacc.c  */
    8979 #line 2723 "parser.yy"
     9007#line 2725 "parser.yy"
    89809008    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    89819009    break;
     
    89849012
    89859013/* Line 1806 of yacc.c  */
    8986 #line 2725 "parser.yy"
     9014#line 2727 "parser.yy"
    89879015    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    89889016    break;
     
    89919019
    89929020/* Line 1806 of yacc.c  */
    8993 #line 2728 "parser.yy"
     9021#line 2729 "parser.yy"
    89949022    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89959023    break;
     
    89989026
    89999027/* Line 1806 of yacc.c  */
    9000 #line 2730 "parser.yy"
     9028#line 2731 "parser.yy"
    90019029    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    90029030    break;
     
    90059033
    90069034/* Line 1806 of yacc.c  */
    9007 #line 2732 "parser.yy"
     9035#line 2733 "parser.yy"
    90089036    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    90099037    break;
     
    90129040
    90139041/* Line 1806 of yacc.c  */
    9014 #line 2734 "parser.yy"
     9042#line 2735 "parser.yy"
    90159043    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    90169044    break;
     
    90199047
    90209048/* Line 1806 of yacc.c  */
    9021 #line 2736 "parser.yy"
     9049#line 2737 "parser.yy"
    90229050    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    90239051    break;
     
    90269054
    90279055/* Line 1806 of yacc.c  */
    9028 #line 2741 "parser.yy"
     9056#line 2742 "parser.yy"
    90299057    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    90309058    break;
     
    90339061
    90349062/* Line 1806 of yacc.c  */
    9035 #line 2743 "parser.yy"
     9063#line 2744 "parser.yy"
    90369064    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    90379065    break;
     
    90409068
    90419069/* Line 1806 of yacc.c  */
    9042 #line 2748 "parser.yy"
     9070#line 2749 "parser.yy"
    90439071    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
    90449072    break;
     
    90479075
    90489076/* Line 1806 of yacc.c  */
    9049 #line 2750 "parser.yy"
     9077#line 2751 "parser.yy"
    90509078    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
    90519079    break;
     
    90549082
    90559083/* Line 1806 of yacc.c  */
    9056 #line 2777 "parser.yy"
     9084#line 2778 "parser.yy"
    90579085    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    90589086    break;
     
    90619089
    90629090/* Line 1806 of yacc.c  */
    9063 #line 2788 "parser.yy"
     9091#line 2789 "parser.yy"
    90649092    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    90659093    break;
     
    90689096
    90699097/* Line 1806 of yacc.c  */
    9070 #line 2790 "parser.yy"
     9098#line 2791 "parser.yy"
    90719099    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    90729100    break;
     
    90759103
    90769104/* Line 1806 of yacc.c  */
    9077 #line 2792 "parser.yy"
     9105#line 2793 "parser.yy"
    90789106    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    90799107    break;
     
    90829110
    90839111/* Line 1806 of yacc.c  */
    9084 #line 2794 "parser.yy"
     9112#line 2795 "parser.yy"
    90859113    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    90869114    break;
     
    90899117
    90909118/* Line 1806 of yacc.c  */
    9091 #line 2796 "parser.yy"
     9119#line 2797 "parser.yy"
    90929120    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    90939121    break;
     
    90969124
    90979125/* Line 1806 of yacc.c  */
    9098 #line 2798 "parser.yy"
     9126#line 2799 "parser.yy"
    90999127    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    91009128    break;
     
    91039131
    91049132/* Line 1806 of yacc.c  */
    9105 #line 2805 "parser.yy"
     9133#line 2806 "parser.yy"
    91069134    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    91079135    break;
     
    91109138
    91119139/* Line 1806 of yacc.c  */
    9112 #line 2807 "parser.yy"
     9140#line 2808 "parser.yy"
    91139141    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    91149142    break;
     
    91179145
    91189146/* Line 1806 of yacc.c  */
    9119 #line 2809 "parser.yy"
     9147#line 2810 "parser.yy"
    91209148    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    91219149    break;
     
    91249152
    91259153/* Line 1806 of yacc.c  */
    9126 #line 2811 "parser.yy"
     9154#line 2812 "parser.yy"
    91279155    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    91289156    break;
     
    91319159
    91329160/* Line 1806 of yacc.c  */
    9133 #line 2813 "parser.yy"
     9161#line 2814 "parser.yy"
    91349162    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    91359163    break;
     
    91389166
    91399167/* Line 1806 of yacc.c  */
    9140 #line 2815 "parser.yy"
     9168#line 2816 "parser.yy"
    91419169    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    91429170    break;
     
    91459173
    91469174/* Line 1806 of yacc.c  */
    9147 #line 2820 "parser.yy"
     9175#line 2821 "parser.yy"
    91489176    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    91499177    break;
     
    91529180
    91539181/* Line 1806 of yacc.c  */
    9154 #line 2825 "parser.yy"
     9182#line 2826 "parser.yy"
    91559183    { (yyval.decl) = DeclarationNode::newFunction( nullptr, DeclarationNode::newTuple( nullptr ), (yyvsp[(4) - (5)].decl), nullptr ); }
    91569184    break;
     
    91599187
    91609188/* Line 1806 of yacc.c  */
    9161 #line 2827 "parser.yy"
     9189#line 2828 "parser.yy"
    91629190    { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); }
    91639191    break;
     
    91669194
    91679195/* Line 1806 of yacc.c  */
    9168 #line 2829 "parser.yy"
     9196#line 2830 "parser.yy"
    91699197    { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); }
    91709198    break;
     
    91739201
    91749202/* Line 1806 of yacc.c  */
    9175 #line 2853 "parser.yy"
     9203#line 2854 "parser.yy"
    91769204    { (yyval.en) = 0; }
    91779205    break;
     
    91809208
    91819209/* Line 1806 of yacc.c  */
    9182 #line 2855 "parser.yy"
     9210#line 2856 "parser.yy"
    91839211    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    91849212    break;
     
    91879215
    91889216/* Line 1806 of yacc.c  */
    9189 #line 9190 "Parser/parser.cc"
     9217#line 9218 "Parser/parser.cc"
    91909218      default: break;
    91919219    }
     
    94189446
    94199447/* Line 2067 of yacc.c  */
    9420 #line 2858 "parser.yy"
     9448#line 2859 "parser.yy"
    94219449
    94229450// ----end of grammar----
Note: See TracChangeset for help on using the changeset viewer.