Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/parser.cc

    r777bfcf r8cc5cb0  
    10201020static const yytype_uint16 yyrline[] =
    10211021{
    1022        0,   298,   298,   304,   313,   314,   315,   319,   320,   321,
    1023      325,   326,   330,   331,   335,   336,   340,   341,   352,   354,
    1024      356,   358,   363,   364,   370,   374,   376,   377,   379,   380,
    1025      382,   384,   386,   395,   396,   402,   403,   407,   408,   412,
    1026      416,   418,   420,   422,   427,   430,   432,   434,   439,   452,
    1027      454,   456,   458,   460,   462,   464,   466,   468,   470,   472,
    1028      479,   480,   486,   487,   488,   489,   493,   494,   496,   501,
    1029      502,   504,   506,   511,   512,   514,   519,   520,   522,   527,
    1030      528,   530,   532,   534,   539,   540,   542,   547,   548,   553,
    1031      554,   559,   560,   565,   566,   571,   572,   577,   578,   581,
    1032      583,   588,   593,   594,   596,   602,   603,   607,   608,   609,
    1033      610,   611,   612,   613,   614,   615,   616,   617,   623,   625,
    1034      627,   629,   634,   635,   640,   641,   647,   648,   654,   655,
    1035      656,   657,   658,   659,   660,   661,   662,   672,   679,   681,
    1036      691,   692,   697,   699,   705,   707,   711,   712,   717,   722,
    1037      725,   727,   729,   739,   741,   752,   753,   755,   759,   761,
    1038      765,   766,   771,   772,   776,   781,   782,   786,   788,   794,
    1039      795,   799,   801,   803,   805,   811,   812,   816,   818,   823,
    1040      825,   827,   832,   834,   839,   841,   845,   848,   852,   855,
    1041      859,   861,   863,   865,   870,   872,   874,   879,   881,   883,
    1042      885,   887,   892,   894,   896,   898,   903,   915,   916,   921,
    1043      923,   928,   932,   934,   936,   938,   940,   946,   947,   953,
    1044      954,   958,   959,   964,   966,   972,   973,   975,   980,   982,
    1045      989,   991,   995,   996,  1001,  1003,  1007,  1008,  1012,  1014,
    1046     1018,  1019,  1023,  1024,  1028,  1029,  1044,  1045,  1046,  1047,
    1047     1048,  1052,  1057,  1064,  1074,  1079,  1084,  1092,  1097,  1102,
    1048     1107,  1112,  1120,  1142,  1147,  1154,  1156,  1163,  1168,  1173,
    1049     1184,  1189,  1194,  1199,  1204,  1213,  1218,  1226,  1227,  1228,
    1050     1229,  1235,  1240,  1248,  1249,  1250,  1251,  1255,  1256,  1257,
    1051     1258,  1263,  1264,  1273,  1274,  1279,  1280,  1285,  1287,  1289,
    1052     1291,  1293,  1296,  1295,  1307,  1308,  1310,  1320,  1321,  1326,
    1053     1330,  1332,  1334,  1336,  1338,  1340,  1342,  1344,  1349,  1351,
    1054     1353,  1355,  1357,  1359,  1361,  1363,  1365,  1367,  1369,  1371,
    1055     1373,  1379,  1380,  1382,  1384,  1386,  1391,  1392,  1398,  1399,
    1056     1401,  1403,  1408,  1410,  1412,  1414,  1419,  1420,  1422,  1424,
    1057     1429,  1430,  1432,  1437,  1438,  1440,  1442,  1447,  1449,  1451,
    1058     1456,  1457,  1461,  1463,  1469,  1468,  1472,  1474,  1479,  1481,
    1059     1487,  1488,  1493,  1494,  1496,  1497,  1506,  1507,  1509,  1511,
    1060     1516,  1518,  1524,  1525,  1527,  1530,  1533,  1538,  1539,  1544,
    1061     1549,  1553,  1555,  1561,  1560,  1567,  1569,  1575,  1576,  1584,
    1062     1585,  1589,  1590,  1591,  1593,  1595,  1602,  1603,  1605,  1607,
    1063     1612,  1613,  1619,  1620,  1624,  1625,  1630,  1631,  1632,  1634,
    1064     1642,  1643,  1645,  1648,  1650,  1654,  1655,  1656,  1658,  1660,
    1065     1664,  1669,  1677,  1678,  1687,  1689,  1694,  1695,  1696,  1700,
    1066     1701,  1702,  1706,  1707,  1708,  1712,  1713,  1714,  1719,  1720,
    1067     1721,  1722,  1728,  1729,  1731,  1736,  1737,  1742,  1743,  1744,
    1068     1745,  1746,  1761,  1762,  1767,  1768,  1774,  1776,  1779,  1781,
    1069     1783,  1806,  1807,  1809,  1811,  1816,  1817,  1819,  1824,  1829,
    1070     1830,  1836,  1835,  1839,  1843,  1845,  1847,  1853,  1854,  1859,
    1071     1864,  1866,  1871,  1873,  1874,  1876,  1881,  1883,  1885,  1890,
    1072     1892,  1897,  1902,  1910,  1916,  1915,  1929,  1930,  1935,  1936,
    1073     1940,  1945,  1950,  1958,  1963,  1974,  1975,  1986,  1987,  1993,
    1074     1994,  1998,  1999,  2000,  2003,  2002,  2013,  2022,  2028,  2034,
    1075     2043,  2049,  2055,  2061,  2067,  2075,  2081,  2089,  2095,  2104,
    1076     2105,  2106,  2110,  2114,  2116,  2121,  2122,  2126,  2127,  2132,
    1077     2138,  2139,  2142,  2144,  2145,  2149,  2150,  2151,  2152,  2186,
    1078     2188,  2189,  2191,  2196,  2201,  2206,  2208,  2210,  2215,  2217,
    1079     2219,  2221,  2226,  2228,  2237,  2239,  2240,  2245,  2247,  2249,
    1080     2254,  2256,  2258,  2263,  2265,  2267,  2276,  2277,  2278,  2282,
    1081     2284,  2286,  2291,  2293,  2295,  2300,  2302,  2304,  2319,  2321,
    1082     2322,  2324,  2329,  2330,  2335,  2337,  2339,  2344,  2346,  2348,
    1083     2350,  2355,  2357,  2359,  2369,  2371,  2372,  2374,  2379,  2381,
    1084     2383,  2388,  2390,  2392,  2394,  2399,  2401,  2403,  2434,  2436,
    1085     2437,  2439,  2444,  2449,  2457,  2459,  2461,  2466,  2468,  2473,
    1086     2475,  2489,  2490,  2492,  2497,  2499,  2501,  2503,  2505,  2510,
    1087     2511,  2513,  2515,  2520,  2522,  2524,  2530,  2532,  2534,  2538,
    1088     2540,  2542,  2544,  2558,  2559,  2561,  2566,  2568,  2570,  2572,
    1089     2574,  2579,  2580,  2582,  2584,  2589,  2591,  2593,  2599,  2600,
    1090     2602,  2611,  2614,  2616,  2619,  2621,  2623,  2636,  2637,  2639,
    1091     2644,  2646,  2648,  2650,  2652,  2657,  2658,  2660,  2662,  2667,
    1092     2669,  2677,  2678,  2679,  2684,  2685,  2689,  2691,  2693,  2695,
    1093     2697,  2699,  2706,  2708,  2710,  2712,  2714,  2716,  2718,  2720,
    1094     2722,  2724,  2729,  2731,  2733,  2738,  2764,  2765,  2767,  2771,
    1095     2772,  2776,  2778,  2780,  2782,  2784,  2786,  2793,  2795,  2797,
    1096     2799,  2801,  2803,  2808,  2813,  2815,  2817,  2835,  2837,  2842,
    1097     2843
     1022       0,   299,   299,   305,   314,   315,   316,   320,   321,   322,
     1023     326,   327,   331,   332,   336,   337,   341,   342,   353,   355,
     1024     357,   359,   364,   365,   371,   375,   377,   378,   380,   381,
     1025     383,   385,   387,   396,   397,   403,   404,   408,   409,   413,
     1026     417,   419,   421,   423,   428,   431,   433,   435,   440,   453,
     1027     455,   457,   459,   461,   463,   465,   467,   469,   471,   473,
     1028     480,   481,   487,   488,   489,   490,   494,   495,   497,   502,
     1029     503,   505,   507,   512,   513,   515,   520,   521,   523,   528,
     1030     529,   531,   533,   535,   540,   541,   543,   548,   549,   554,
     1031     555,   560,   561,   566,   567,   572,   573,   578,   579,   582,
     1032     584,   589,   594,   595,   597,   603,   604,   608,   609,   610,
     1033     611,   612,   613,   614,   615,   616,   617,   618,   624,   626,
     1034     628,   630,   635,   636,   641,   642,   648,   649,   655,   656,
     1035     657,   658,   659,   660,   661,   662,   663,   673,   680,   682,
     1036     692,   693,   698,   700,   706,   708,   712,   713,   718,   723,
     1037     726,   728,   730,   740,   742,   753,   754,   756,   761,   763,
     1038     767,   768,   773,   774,   778,   783,   784,   788,   790,   796,
     1039     797,   801,   803,   805,   807,   813,   814,   818,   820,   825,
     1040     827,   829,   834,   836,   841,   843,   847,   850,   854,   857,
     1041     861,   863,   865,   867,   872,   874,   876,   885,   887,   889,
     1042     891,   893,   898,   900,   902,   904,   909,   922,   923,   928,
     1043     930,   935,   939,   941,   943,   945,   947,   953,   954,   960,
     1044     961,   965,   966,   971,   973,   979,   980,   982,   987,   989,
     1045     996,   998,  1002,  1003,  1008,  1010,  1014,  1015,  1019,  1021,
     1046    1025,  1026,  1030,  1031,  1035,  1036,  1051,  1052,  1053,  1054,
     1047    1055,  1059,  1064,  1071,  1081,  1086,  1091,  1099,  1104,  1109,
     1048    1114,  1119,  1127,  1149,  1154,  1161,  1163,  1170,  1175,  1180,
     1049    1191,  1196,  1201,  1206,  1211,  1220,  1225,  1233,  1234,  1235,
     1050    1236,  1242,  1247,  1255,  1256,  1257,  1258,  1262,  1263,  1264,
     1051    1265,  1270,  1271,  1280,  1281,  1286,  1287,  1292,  1294,  1296,
     1052    1298,  1300,  1303,  1302,  1314,  1315,  1317,  1327,  1328,  1333,
     1053    1337,  1339,  1341,  1343,  1345,  1347,  1349,  1351,  1356,  1358,
     1054    1360,  1362,  1364,  1366,  1368,  1370,  1372,  1374,  1376,  1378,
     1055    1380,  1386,  1387,  1389,  1391,  1393,  1398,  1399,  1405,  1406,
     1056    1408,  1410,  1415,  1417,  1419,  1421,  1426,  1427,  1429,  1431,
     1057    1436,  1437,  1439,  1444,  1445,  1447,  1449,  1454,  1456,  1458,
     1058    1463,  1464,  1468,  1470,  1476,  1475,  1479,  1481,  1486,  1488,
     1059    1494,  1495,  1500,  1501,  1503,  1504,  1513,  1514,  1516,  1518,
     1060    1523,  1525,  1531,  1532,  1534,  1537,  1540,  1545,  1546,  1551,
     1061    1556,  1560,  1562,  1568,  1567,  1574,  1576,  1582,  1583,  1591,
     1062    1592,  1596,  1597,  1598,  1600,  1602,  1609,  1610,  1612,  1614,
     1063    1619,  1620,  1626,  1627,  1631,  1632,  1637,  1638,  1639,  1641,
     1064    1649,  1650,  1652,  1655,  1657,  1661,  1662,  1663,  1665,  1667,
     1065    1671,  1676,  1684,  1685,  1694,  1696,  1701,  1702,  1703,  1707,
     1066    1708,  1709,  1713,  1714,  1715,  1719,  1720,  1721,  1726,  1727,
     1067    1728,  1729,  1735,  1736,  1738,  1743,  1744,  1749,  1750,  1751,
     1068    1752,  1753,  1768,  1769,  1774,  1775,  1781,  1783,  1786,  1788,
     1069    1790,  1813,  1814,  1816,  1818,  1823,  1824,  1826,  1831,  1836,
     1070    1837,  1843,  1842,  1846,  1850,  1852,  1854,  1860,  1861,  1866,
     1071    1871,  1873,  1878,  1880,  1881,  1883,  1888,  1890,  1892,  1897,
     1072    1899,  1904,  1909,  1917,  1923,  1922,  1936,  1937,  1942,  1943,
     1073    1947,  1952,  1957,  1965,  1970,  1981,  1982,  1993,  1994,  2000,
     1074    2001,  2005,  2006,  2007,  2010,  2009,  2020,  2029,  2035,  2041,
     1075    2050,  2056,  2062,  2068,  2074,  2082,  2088,  2096,  2102,  2111,
     1076    2112,  2113,  2117,  2121,  2123,  2128,  2129,  2133,  2134,  2139,
     1077    2145,  2146,  2149,  2151,  2152,  2156,  2157,  2158,  2159,  2193,
     1078    2195,  2196,  2198,  2203,  2208,  2213,  2215,  2217,  2222,  2224,
     1079    2226,  2228,  2233,  2235,  2244,  2246,  2247,  2252,  2254,  2256,
     1080    2261,  2263,  2265,  2270,  2272,  2274,  2283,  2284,  2285,  2289,
     1081    2291,  2293,  2298,  2300,  2302,  2307,  2309,  2311,  2326,  2328,
     1082    2329,  2331,  2336,  2337,  2342,  2344,  2346,  2351,  2353,  2355,
     1083    2357,  2362,  2364,  2366,  2376,  2378,  2379,  2381,  2386,  2388,
     1084    2390,  2395,  2397,  2399,  2401,  2406,  2408,  2410,  2441,  2443,
     1085    2444,  2446,  2451,  2456,  2464,  2466,  2468,  2473,  2475,  2480,
     1086    2482,  2496,  2497,  2499,  2504,  2506,  2508,  2510,  2512,  2517,
     1087    2518,  2520,  2522,  2527,  2529,  2531,  2537,  2539,  2541,  2545,
     1088    2547,  2549,  2551,  2565,  2566,  2568,  2573,  2575,  2577,  2579,
     1089    2581,  2586,  2587,  2589,  2591,  2596,  2598,  2600,  2606,  2607,
     1090    2609,  2618,  2621,  2623,  2626,  2628,  2630,  2643,  2644,  2646,
     1091    2651,  2653,  2655,  2657,  2659,  2664,  2665,  2667,  2669,  2674,
     1092    2676,  2684,  2685,  2686,  2691,  2692,  2696,  2698,  2700,  2702,
     1093    2704,  2706,  2713,  2715,  2717,  2719,  2721,  2723,  2725,  2727,
     1094    2729,  2731,  2736,  2738,  2740,  2745,  2771,  2772,  2774,  2778,
     1095    2779,  2783,  2785,  2787,  2789,  2791,  2793,  2800,  2802,  2804,
     1096    2806,  2808,  2810,  2815,  2820,  2822,  2824,  2842,  2844,  2849,
     1097    2850
    10981098};
    10991099#endif
     
    49604960
    49614961/* Line 1806 of yacc.c  */
    4962 #line 298 "parser.yy"
     4962#line 299 "parser.yy"
    49634963    {
    49644964                        typedefTable.enterScope();
     
    49694969
    49704970/* Line 1806 of yacc.c  */
    4971 #line 304 "parser.yy"
     4971#line 305 "parser.yy"
    49724972    {
    49734973                        typedefTable.leaveScope();
     
    49784978
    49794979/* Line 1806 of yacc.c  */
    4980 #line 313 "parser.yy"
     4980#line 314 "parser.yy"
    49814981    { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); }
    49824982    break;
     
    49854985
    49864986/* Line 1806 of yacc.c  */
    4987 #line 314 "parser.yy"
     4987#line 315 "parser.yy"
    49884988    { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); }
    49894989    break;
     
    49924992
    49934993/* Line 1806 of yacc.c  */
    4994 #line 315 "parser.yy"
     4994#line 316 "parser.yy"
    49954995    { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[(1) - (1)].tok) ) ); }
    49964996    break;
     
    49994999
    50005000/* Line 1806 of yacc.c  */
    5001 #line 340 "parser.yy"
     5001#line 341 "parser.yy"
    50025002    { (yyval.constant) = build_constantStr( *(yyvsp[(1) - (1)].tok) ); }
    50035003    break;
     
    50065006
    50075007/* Line 1806 of yacc.c  */
    5008 #line 342 "parser.yy"
     5008#line 343 "parser.yy"
    50095009    {
    50105010                        appendStr( (yyvsp[(1) - (2)].constant)->get_constant()->get_value(), (yyvsp[(2) - (2)].tok) );
     
    50175017
    50185018/* Line 1806 of yacc.c  */
    5019 #line 353 "parser.yy"
     5019#line 354 "parser.yy"
    50205020    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
    50215021    break;
     
    50245024
    50255025/* Line 1806 of yacc.c  */
    5026 #line 355 "parser.yy"
     5026#line 356 "parser.yy"
    50275027    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
    50285028    break;
     
    50315031
    50325032/* Line 1806 of yacc.c  */
    5033 #line 357 "parser.yy"
     5033#line 358 "parser.yy"
    50345034    { (yyval.en) = (yyvsp[(2) - (3)].en); }
    50355035    break;
     
    50385038
    50395039/* Line 1806 of yacc.c  */
    5040 #line 359 "parser.yy"
     5040#line 360 "parser.yy"
    50415041    { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[(2) - (3)].sn) ) ); }
    50425042    break;
     
    50455045
    50465046/* Line 1806 of yacc.c  */
    5047 #line 369 "parser.yy"
     5047#line 370 "parser.yy"
    50485048    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ) ); }
    50495049    break;
     
    50525052
    50535053/* Line 1806 of yacc.c  */
    5054 #line 371 "parser.yy"
     5054#line 372 "parser.yy"
    50555055    { (yyval.en) = new ExpressionNode( build_func( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ) ); }
    50565056    break;
     
    50595059
    50605060/* Line 1806 of yacc.c  */
    5061 #line 375 "parser.yy"
     5061#line 376 "parser.yy"
    50625062    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); }
    50635063    break;
     
    50665066
    50675067/* Line 1806 of yacc.c  */
    5068 #line 378 "parser.yy"
     5068#line 379 "parser.yy"
    50695069    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); }
    50705070    break;
     
    50735073
    50745074/* Line 1806 of yacc.c  */
    5075 #line 381 "parser.yy"
     5075#line 382 "parser.yy"
    50765076    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[(1) - (2)].en) ) ); }
    50775077    break;
     
    50805080
    50815081/* Line 1806 of yacc.c  */
    5082 #line 383 "parser.yy"
     5082#line 384 "parser.yy"
    50835083    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[(1) - (2)].en) ) ); }
    50845084    break;
     
    50875087
    50885088/* Line 1806 of yacc.c  */
    5089 #line 385 "parser.yy"
     5089#line 386 "parser.yy"
    50905090    { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ) ); }
    50915091    break;
     
    50945094
    50955095/* Line 1806 of yacc.c  */
    5096 #line 387 "parser.yy"
     5096#line 388 "parser.yy"
    50975097    {
    50985098                        Token fn;
    50995099                        fn.str = new std::string( "?{}" ); // location undefined
    5100                         (yyval.en) = new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[(1) - (4)].en) )->set_last( (yyvsp[(3) - (4)].en) ) ) );
     5100                        (yyval.en) = new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[(1) - (4)].en) )->set_link( (yyvsp[(3) - (4)].en) ) ) );
    51015101                }
    51025102    break;
     
    51055105
    51065106/* Line 1806 of yacc.c  */
    5107 #line 397 "parser.yy"
    5108     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
     5107#line 398 "parser.yy"
     5108    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); }
    51095109    break;
    51105110
     
    51125112
    51135113/* Line 1806 of yacc.c  */
    5114 #line 402 "parser.yy"
     5114#line 403 "parser.yy"
    51155115    { (yyval.en) = 0; }
    51165116    break;
     
    51195119
    51205120/* Line 1806 of yacc.c  */
    5121 #line 408 "parser.yy"
    5122     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
     5121#line 409 "parser.yy"
     5122    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
    51235123    break;
    51245124
     
    51265126
    51275127/* Line 1806 of yacc.c  */
    5128 #line 413 "parser.yy"
     5128#line 414 "parser.yy"
    51295129    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
    51305130    break;
     
    51335133
    51345134/* Line 1806 of yacc.c  */
    5135 #line 417 "parser.yy"
     5135#line 418 "parser.yy"
    51365136    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); }
    51375137    break;
     
    51405140
    51415141/* Line 1806 of yacc.c  */
    5142 #line 419 "parser.yy"
     5142#line 420 "parser.yy"
    51435143    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); }
    51445144    break;
     
    51475147
    51485148/* Line 1806 of yacc.c  */
    5149 #line 421 "parser.yy"
     5149#line 422 "parser.yy"
    51505150    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); }
    51515151    break;
     
    51545154
    51555155/* Line 1806 of yacc.c  */
    5156 #line 423 "parser.yy"
     5156#line 424 "parser.yy"
    51575157    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); }
    51585158    break;
     
    51615161
    51625162/* Line 1806 of yacc.c  */
    5163 #line 431 "parser.yy"
     5163#line 432 "parser.yy"
    51645164    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    51655165    break;
     
    51685168
    51695169/* Line 1806 of yacc.c  */
    5170 #line 433 "parser.yy"
     5170#line 434 "parser.yy"
    51715171    { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
    51725172    break;
     
    51755175
    51765176/* Line 1806 of yacc.c  */
    5177 #line 435 "parser.yy"
     5177#line 436 "parser.yy"
    51785178    { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); }
    51795179    break;
     
    51825182
    51835183/* Line 1806 of yacc.c  */
    5184 #line 440 "parser.yy"
     5184#line 441 "parser.yy"
    51855185    {
    51865186                        switch ( (yyvsp[(1) - (2)].op) ) {
     
    52005200
    52015201/* Line 1806 of yacc.c  */
    5202 #line 453 "parser.yy"
     5202#line 454 "parser.yy"
    52035203    { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); }
    52045204    break;
     
    52075207
    52085208/* Line 1806 of yacc.c  */
    5209 #line 455 "parser.yy"
     5209#line 456 "parser.yy"
    52105210    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); }
    52115211    break;
     
    52145214
    52155215/* Line 1806 of yacc.c  */
    5216 #line 457 "parser.yy"
     5216#line 458 "parser.yy"
    52175217    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[(2) - (2)].en) ) ); }
    52185218    break;
     
    52215221
    52225222/* Line 1806 of yacc.c  */
    5223 #line 459 "parser.yy"
     5223#line 460 "parser.yy"
    52245224    { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); }
    52255225    break;
     
    52285228
    52295229/* Line 1806 of yacc.c  */
    5230 #line 461 "parser.yy"
     5230#line 462 "parser.yy"
    52315231    { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); }
    52325232    break;
     
    52355235
    52365236/* Line 1806 of yacc.c  */
    5237 #line 463 "parser.yy"
     5237#line 464 "parser.yy"
    52385238    { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); }
    52395239    break;
     
    52425242
    52435243/* Line 1806 of yacc.c  */
    5244 #line 465 "parser.yy"
     5244#line 466 "parser.yy"
    52455245    { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); }
    52465246    break;
     
    52495249
    52505250/* Line 1806 of yacc.c  */
    5251 #line 467 "parser.yy"
     5251#line 468 "parser.yy"
    52525252    { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); }
    52535253    break;
     
    52565256
    52575257/* Line 1806 of yacc.c  */
    5258 #line 469 "parser.yy"
     5258#line 470 "parser.yy"
    52595259    { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); }
    52605260    break;
     
    52635263
    52645264/* Line 1806 of yacc.c  */
    5265 #line 471 "parser.yy"
     5265#line 472 "parser.yy"
    52665266    { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); }
    52675267    break;
     
    52705270
    52715271/* Line 1806 of yacc.c  */
    5272 #line 473 "parser.yy"
     5272#line 474 "parser.yy"
    52735273    { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); }
    52745274    break;
     
    52775277
    52785278/* Line 1806 of yacc.c  */
    5279 #line 479 "parser.yy"
     5279#line 480 "parser.yy"
    52805280    { (yyval.op) = OperKinds::PointTo; }
    52815281    break;
     
    52845284
    52855285/* Line 1806 of yacc.c  */
    5286 #line 480 "parser.yy"
     5286#line 481 "parser.yy"
    52875287    { (yyval.op) = OperKinds::AddressOf; }
    52885288    break;
     
    52915291
    52925292/* Line 1806 of yacc.c  */
    5293 #line 486 "parser.yy"
     5293#line 487 "parser.yy"
    52945294    { (yyval.op) = OperKinds::UnPlus; }
    52955295    break;
     
    52985298
    52995299/* Line 1806 of yacc.c  */
    5300 #line 487 "parser.yy"
     5300#line 488 "parser.yy"
    53015301    { (yyval.op) = OperKinds::UnMinus; }
    53025302    break;
     
    53055305
    53065306/* Line 1806 of yacc.c  */
    5307 #line 488 "parser.yy"
     5307#line 489 "parser.yy"
    53085308    { (yyval.op) = OperKinds::Neg; }
    53095309    break;
     
    53125312
    53135313/* Line 1806 of yacc.c  */
    5314 #line 489 "parser.yy"
     5314#line 490 "parser.yy"
    53155315    { (yyval.op) = OperKinds::BitNeg; }
    53165316    break;
     
    53195319
    53205320/* Line 1806 of yacc.c  */
    5321 #line 495 "parser.yy"
     5321#line 496 "parser.yy"
    53225322    { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }
    53235323    break;
     
    53265326
    53275327/* Line 1806 of yacc.c  */
    5328 #line 497 "parser.yy"
     5328#line 498 "parser.yy"
    53295329    { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }
    53305330    break;
     
    53335333
    53345334/* Line 1806 of yacc.c  */
    5335 #line 503 "parser.yy"
     5335#line 504 "parser.yy"
    53365336    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53375337    break;
     
    53405340
    53415341/* Line 1806 of yacc.c  */
    5342 #line 505 "parser.yy"
     5342#line 506 "parser.yy"
    53435343    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53445344    break;
     
    53475347
    53485348/* Line 1806 of yacc.c  */
    5349 #line 507 "parser.yy"
     5349#line 508 "parser.yy"
    53505350    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53515351    break;
     
    53545354
    53555355/* Line 1806 of yacc.c  */
    5356 #line 513 "parser.yy"
     5356#line 514 "parser.yy"
    53575357    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53585358    break;
     
    53615361
    53625362/* Line 1806 of yacc.c  */
    5363 #line 515 "parser.yy"
     5363#line 516 "parser.yy"
    53645364    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53655365    break;
     
    53685368
    53695369/* Line 1806 of yacc.c  */
    5370 #line 521 "parser.yy"
     5370#line 522 "parser.yy"
    53715371    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53725372    break;
     
    53755375
    53765376/* Line 1806 of yacc.c  */
    5377 #line 523 "parser.yy"
     5377#line 524 "parser.yy"
    53785378    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53795379    break;
     
    53825382
    53835383/* Line 1806 of yacc.c  */
    5384 #line 529 "parser.yy"
     5384#line 530 "parser.yy"
    53855385    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53865386    break;
     
    53895389
    53905390/* Line 1806 of yacc.c  */
    5391 #line 531 "parser.yy"
     5391#line 532 "parser.yy"
    53925392    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53935393    break;
     
    53965396
    53975397/* Line 1806 of yacc.c  */
    5398 #line 533 "parser.yy"
     5398#line 534 "parser.yy"
    53995399    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54005400    break;
     
    54035403
    54045404/* Line 1806 of yacc.c  */
    5405 #line 535 "parser.yy"
     5405#line 536 "parser.yy"
    54065406    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54075407    break;
     
    54105410
    54115411/* Line 1806 of yacc.c  */
    5412 #line 541 "parser.yy"
     5412#line 542 "parser.yy"
    54135413    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54145414    break;
     
    54175417
    54185418/* Line 1806 of yacc.c  */
    5419 #line 543 "parser.yy"
     5419#line 544 "parser.yy"
    54205420    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54215421    break;
     
    54245424
    54255425/* Line 1806 of yacc.c  */
    5426 #line 549 "parser.yy"
     5426#line 550 "parser.yy"
    54275427    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54285428    break;
     
    54315431
    54325432/* Line 1806 of yacc.c  */
    5433 #line 555 "parser.yy"
     5433#line 556 "parser.yy"
    54345434    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54355435    break;
     
    54385438
    54395439/* Line 1806 of yacc.c  */
    5440 #line 561 "parser.yy"
     5440#line 562 "parser.yy"
    54415441    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54425442    break;
     
    54455445
    54465446/* Line 1806 of yacc.c  */
    5447 #line 567 "parser.yy"
     5447#line 568 "parser.yy"
    54485448    { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); }
    54495449    break;
     
    54525452
    54535453/* Line 1806 of yacc.c  */
    5454 #line 573 "parser.yy"
     5454#line 574 "parser.yy"
    54555455    { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); }
    54565456    break;
     
    54595459
    54605460/* Line 1806 of yacc.c  */
    5461 #line 579 "parser.yy"
     5461#line 580 "parser.yy"
    54625462    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
    54635463    break;
     
    54665466
    54675467/* Line 1806 of yacc.c  */
    5468 #line 582 "parser.yy"
     5468#line 583 "parser.yy"
    54695469    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); }
    54705470    break;
     
    54735473
    54745474/* Line 1806 of yacc.c  */
    5475 #line 584 "parser.yy"
     5475#line 585 "parser.yy"
    54765476    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
    54775477    break;
     
    54805480
    54815481/* Line 1806 of yacc.c  */
    5482 #line 595 "parser.yy"
     5482#line 596 "parser.yy"
    54835483    { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54845484    break;
     
    54875487
    54885488/* Line 1806 of yacc.c  */
    5489 #line 597 "parser.yy"
     5489#line 598 "parser.yy"
    54905490    { (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) ) ); }
    54915491    break;
     
    54945494
    54955495/* Line 1806 of yacc.c  */
    5496 #line 602 "parser.yy"
     5496#line 603 "parser.yy"
    54975497    { (yyval.en) = nullptr; }
    54985498    break;
     
    55015501
    55025502/* Line 1806 of yacc.c  */
    5503 #line 607 "parser.yy"
     5503#line 608 "parser.yy"
    55045504    { (yyval.op) = OperKinds::Assign; }
    55055505    break;
     
    55085508
    55095509/* Line 1806 of yacc.c  */
    5510 #line 608 "parser.yy"
     5510#line 609 "parser.yy"
    55115511    { (yyval.op) = OperKinds::MulAssn; }
    55125512    break;
     
    55155515
    55165516/* Line 1806 of yacc.c  */
    5517 #line 609 "parser.yy"
     5517#line 610 "parser.yy"
    55185518    { (yyval.op) = OperKinds::DivAssn; }
    55195519    break;
     
    55225522
    55235523/* Line 1806 of yacc.c  */
    5524 #line 610 "parser.yy"
     5524#line 611 "parser.yy"
    55255525    { (yyval.op) = OperKinds::ModAssn; }
    55265526    break;
     
    55295529
    55305530/* Line 1806 of yacc.c  */
    5531 #line 611 "parser.yy"
     5531#line 612 "parser.yy"
    55325532    { (yyval.op) = OperKinds::PlusAssn; }
    55335533    break;
     
    55365536
    55375537/* Line 1806 of yacc.c  */
    5538 #line 612 "parser.yy"
     5538#line 613 "parser.yy"
    55395539    { (yyval.op) = OperKinds::MinusAssn; }
    55405540    break;
     
    55435543
    55445544/* Line 1806 of yacc.c  */
    5545 #line 613 "parser.yy"
     5545#line 614 "parser.yy"
    55465546    { (yyval.op) = OperKinds::LSAssn; }
    55475547    break;
     
    55505550
    55515551/* Line 1806 of yacc.c  */
    5552 #line 614 "parser.yy"
     5552#line 615 "parser.yy"
    55535553    { (yyval.op) = OperKinds::RSAssn; }
    55545554    break;
     
    55575557
    55585558/* Line 1806 of yacc.c  */
    5559 #line 615 "parser.yy"
     5559#line 616 "parser.yy"
    55605560    { (yyval.op) = OperKinds::AndAssn; }
    55615561    break;
     
    55645564
    55655565/* Line 1806 of yacc.c  */
    5566 #line 616 "parser.yy"
     5566#line 617 "parser.yy"
    55675567    { (yyval.op) = OperKinds::ERAssn; }
    55685568    break;
     
    55715571
    55725572/* Line 1806 of yacc.c  */
    5573 #line 617 "parser.yy"
     5573#line 618 "parser.yy"
    55745574    { (yyval.op) = OperKinds::OrAssn; }
    55755575    break;
     
    55785578
    55795579/* Line 1806 of yacc.c  */
    5580 #line 624 "parser.yy"
     5580#line 625 "parser.yy"
    55815581    { (yyval.en) = new ExpressionNode( build_tuple() ); }
    55825582    break;
     
    55855585
    55865586/* Line 1806 of yacc.c  */
    5587 #line 626 "parser.yy"
     5587#line 627 "parser.yy"
    55885588    { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[(3) - (5)].en) ) ); }
    55895589    break;
     
    55925592
    55935593/* Line 1806 of yacc.c  */
    5594 #line 628 "parser.yy"
    5595     { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) ) ) ); }
     5594#line 629 "parser.yy"
     5595    { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_link( (yyvsp[(4) - (6)].en) ) ) ); }
    55965596    break;
    55975597
     
    55995599
    56005600/* Line 1806 of yacc.c  */
    5601 #line 630 "parser.yy"
    5602     { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_last( (yyvsp[(5) - (7)].en) ) ) ); }
     5601#line 631 "parser.yy"
     5602    { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_link( (yyvsp[(5) - (7)].en) ) ) ); }
    56035603    break;
    56045604
     
    56065606
    56075607/* Line 1806 of yacc.c  */
    5608 #line 636 "parser.yy"
    5609     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
     5608#line 637 "parser.yy"
     5609    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
    56105610    break;
    56115611
     
    56135613
    56145614/* Line 1806 of yacc.c  */
    5615 #line 642 "parser.yy"
     5615#line 643 "parser.yy"
    56165616    { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    56175617    break;
     
    56205620
    56215621/* Line 1806 of yacc.c  */
    5622 #line 647 "parser.yy"
     5622#line 648 "parser.yy"
    56235623    { (yyval.en) = 0; }
    56245624    break;
     
    56275627
    56285628/* Line 1806 of yacc.c  */
    5629 #line 656 "parser.yy"
     5629#line 657 "parser.yy"
    56305630    { (yyval.sn) = (yyvsp[(1) - (1)].sn); }
    56315631    break;
     
    56345634
    56355635/* Line 1806 of yacc.c  */
    5636 #line 663 "parser.yy"
     5636#line 664 "parser.yy"
    56375637    {
    56385638                        Token fn;
    56395639                        fn.str = new std::string( "^?{}" ); // location undefined
    5640                         (yyval.sn) = new StatementNode2( build_expr( new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[(2) - (6)].en) )->set_last( (yyvsp[(4) - (6)].en) ) ) ) ) );
     5640                        (yyval.sn) = new StatementNode2( build_expr( new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[(2) - (6)].en) )->set_link( (yyvsp[(4) - (6)].en) ) ) ) ) );
    56415641                }
    56425642    break;
     
    56455645
    56465646/* Line 1806 of yacc.c  */
    5647 #line 673 "parser.yy"
     5647#line 674 "parser.yy"
    56485648    {
    56495649                        (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) );
     
    56545654
    56555655/* Line 1806 of yacc.c  */
    5656 #line 680 "parser.yy"
     5656#line 681 "parser.yy"
    56575657    { (yyval.sn) = new CompoundStmtNode( (StatementNode *)0 ); }
    56585658    break;
     
    56615661
    56625662/* Line 1806 of yacc.c  */
    5663 #line 687 "parser.yy"
     5663#line 688 "parser.yy"
    56645664    { (yyval.sn) = new CompoundStmtNode( (yyvsp[(5) - (7)].sn) ); }
    56655665    break;
     
    56685668
    56695669/* Line 1806 of yacc.c  */
    5670 #line 693 "parser.yy"
    5671     { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
     5670#line 694 "parser.yy"
     5671    { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
    56725672    break;
    56735673
     
    56755675
    56765676/* Line 1806 of yacc.c  */
    5677 #line 698 "parser.yy"
    5678     { (yyval.sn) = new StatementNode2( (yyvsp[(1) - (1)].decl) ); }
     5677#line 699 "parser.yy"
     5678    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    56795679    break;
    56805680
     
    56825682
    56835683/* Line 1806 of yacc.c  */
    5684 #line 700 "parser.yy"
     5684#line 701 "parser.yy"
    56855685    {   // mark all fields in list
    5686                         for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_next() )
     5686                        for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_link() )
    56875687                                iter->set_extension( true );
    5688                         (yyval.sn) = new StatementNode2( (yyvsp[(2) - (2)].decl) );
     5688                        (yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) );
    56895689                }
    56905690    break;
     
    56935693
    56945694/* Line 1806 of yacc.c  */
    5695 #line 706 "parser.yy"
    5696     { (yyval.sn) = new StatementNode2( (yyvsp[(1) - (1)].decl) ); }
     5695#line 707 "parser.yy"
     5696    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    56975697    break;
    56985698
     
    57005700
    57015701/* Line 1806 of yacc.c  */
    5702 #line 713 "parser.yy"
    5703     { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
     5702#line 714 "parser.yy"
     5703    { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
    57045704    break;
    57055705
     
    57075707
    57085708/* Line 1806 of yacc.c  */
    5709 #line 718 "parser.yy"
     5709#line 719 "parser.yy"
    57105710    { (yyval.sn) = new StatementNode2( build_expr( (yyvsp[(1) - (2)].en) ) ); }
    57115711    break;
     
    57145714
    57155715/* Line 1806 of yacc.c  */
    5716 #line 724 "parser.yy"
     5716#line 725 "parser.yy"
    57175717    { (yyval.sn) = new StatementNode2( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); }
    57185718    break;
     
    57215721
    57225722/* Line 1806 of yacc.c  */
    5723 #line 726 "parser.yy"
     5723#line 727 "parser.yy"
    57245724    { (yyval.sn) = new StatementNode2( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); }
    57255725    break;
     
    57285728
    57295729/* Line 1806 of yacc.c  */
    5730 #line 728 "parser.yy"
     5730#line 729 "parser.yy"
    57315731    { (yyval.sn) = new StatementNode2( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    57325732    break;
     
    57355735
    57365736/* Line 1806 of yacc.c  */
    5737 #line 730 "parser.yy"
     5737#line 731 "parser.yy"
    57385738    {
    57395739                        StatementNode *sw = new StatementNode2( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
     
    57435743                        // therefore, are removed from the grammar even though C allows it. The change also applies to choose
    57445744                        // statement.
    5745                         (yyval.sn) = (yyvsp[(7) - (9)].decl) != 0 ? new CompoundStmtNode( (StatementNode *)((new StatementNode2( (yyvsp[(7) - (9)].decl) ))->set_last( sw )) ) : sw;
     5745                        (yyval.sn) = (yyvsp[(7) - (9)].decl) != 0 ? new CompoundStmtNode( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_link( sw )) ) : sw;
    57465746                }
    57475747    break;
     
    57505750
    57515751/* Line 1806 of yacc.c  */
    5752 #line 740 "parser.yy"
     5752#line 741 "parser.yy"
    57535753    { (yyval.sn) = new StatementNode2( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    57545754    break;
     
    57575757
    57585758/* Line 1806 of yacc.c  */
    5759 #line 742 "parser.yy"
     5759#line 743 "parser.yy"
    57605760    {
    57615761                        StatementNode *sw = new StatementNode2( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
    5762                         (yyval.sn) = (yyvsp[(7) - (9)].decl) != 0 ? new CompoundStmtNode( (StatementNode *)((new StatementNode2( (yyvsp[(7) - (9)].decl) ))->set_last( sw )) ) : sw;
     5762                        (yyval.sn) = (yyvsp[(7) - (9)].decl) != 0 ? new CompoundStmtNode( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_link( sw )) ) : sw;
    57635763                }
    57645764    break;
     
    57675767
    57685768/* Line 1806 of yacc.c  */
    5769 #line 752 "parser.yy"
     5769#line 753 "parser.yy"
    57705770    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    57715771    break;
     
    57745774
    57755775/* Line 1806 of yacc.c  */
    5776 #line 754 "parser.yy"
     5776#line 755 "parser.yy"
    57775777    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    57785778    break;
     
    57815781
    57825782/* Line 1806 of yacc.c  */
    5783 #line 759 "parser.yy"
     5783#line 761 "parser.yy"
    57845784    { (yyval.sn) = new StatementNode2( build_case( (yyvsp[(1) - (1)].en) ) ); }
    57855785    break;
     
    57885788
    57895789/* Line 1806 of yacc.c  */
    5790 #line 761 "parser.yy"
    5791     { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_last( new StatementNode2( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); }
     5790#line 763 "parser.yy"
     5791    { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_link( new StatementNode2( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); }
    57925792    break;
    57935793
     
    57955795
    57965796/* Line 1806 of yacc.c  */
    5797 #line 765 "parser.yy"
     5797#line 767 "parser.yy"
    57985798    { (yyval.sn) = (yyvsp[(2) - (3)].sn); }
    57995799    break;
     
    58025802
    58035803/* Line 1806 of yacc.c  */
    5804 #line 766 "parser.yy"
     5804#line 768 "parser.yy"
    58055805    { (yyval.sn) = new StatementNode2( build_default() ); }
    58065806    break;
     
    58095809
    58105810/* Line 1806 of yacc.c  */
    5811 #line 772 "parser.yy"
    5812     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) )); }
     5811#line 774 "parser.yy"
     5812    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) )); }
    58135813    break;
    58145814
     
    58165816
    58175817/* Line 1806 of yacc.c  */
    5818 #line 776 "parser.yy"
     5818#line 778 "parser.yy"
    58195819    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new CompoundStmtNode( (yyvsp[(2) - (2)].sn) ) ); }
    58205820    break;
     
    58235823
    58245824/* Line 1806 of yacc.c  */
    5825 #line 781 "parser.yy"
     5825#line 783 "parser.yy"
    58265826    { (yyval.sn) = 0; }
    58275827    break;
     
    58305830
    58315831/* Line 1806 of yacc.c  */
    5832 #line 787 "parser.yy"
     5832#line 789 "parser.yy"
    58335833    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new CompoundStmtNode( (yyvsp[(2) - (2)].sn) ) ); }
    58345834    break;
     
    58375837
    58385838/* Line 1806 of yacc.c  */
    5839 #line 789 "parser.yy"
    5840     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( new CompoundStmtNode( (yyvsp[(3) - (3)].sn) ) ) ) ); }
     5839#line 791 "parser.yy"
     5840    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( new CompoundStmtNode( (yyvsp[(3) - (3)].sn) ) ) ) ); }
    58415841    break;
    58425842
     
    58445844
    58455845/* Line 1806 of yacc.c  */
    5846 #line 794 "parser.yy"
     5846#line 796 "parser.yy"
    58475847    { (yyval.sn) = 0; }
    58485848    break;
     
    58515851
    58525852/* Line 1806 of yacc.c  */
    5853 #line 800 "parser.yy"
     5853#line 802 "parser.yy"
    58545854    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    58555855    break;
     
    58585858
    58595859/* Line 1806 of yacc.c  */
    5860 #line 802 "parser.yy"
     5860#line 804 "parser.yy"
    58615861    { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new CompoundStmtNode( (StatementNode *)mkList( (*(yyvsp[(2) - (3)].sn), *(yyvsp[(3) - (3)].sn) ) ) ) ); }
    58625862    break;
     
    58655865
    58665866/* Line 1806 of yacc.c  */
    5867 #line 804 "parser.yy"
    5868     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
     5867#line 806 "parser.yy"
     5868    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
    58695869    break;
    58705870
     
    58725872
    58735873/* Line 1806 of yacc.c  */
    5874 #line 806 "parser.yy"
    5875     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_last( (yyvsp[(2) - (4)].sn)->append_last_case( new CompoundStmtNode( (StatementNode *)mkList( (*(yyvsp[(3) - (4)].sn), *(yyvsp[(4) - (4)].sn) ) ) ) ) ) ); }
     5874#line 808 "parser.yy"
     5875    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_link( (yyvsp[(2) - (4)].sn)->append_last_case( new CompoundStmtNode( (StatementNode *)mkList( (*(yyvsp[(3) - (4)].sn), *(yyvsp[(4) - (4)].sn) ) ) ) ) ) ); }
    58765876    break;
    58775877
     
    58795879
    58805880/* Line 1806 of yacc.c  */
    5881 #line 811 "parser.yy"
     5881#line 813 "parser.yy"
    58825882    { (yyval.sn) = new StatementNode2( build_branch( "", BranchStmt::Break ) ); }
    58835883    break;
    58845884
    58855885  case 177:
    5886 
    5887 /* Line 1806 of yacc.c  */
    5888 #line 817 "parser.yy"
    5889     { (yyval.sn) = 0; }
    5890     break;
    5891 
    5892   case 178:
    58935886
    58945887/* Line 1806 of yacc.c  */
     
    58975890    break;
    58985891
     5892  case 178:
     5893
     5894/* Line 1806 of yacc.c  */
     5895#line 821 "parser.yy"
     5896    { (yyval.sn) = 0; }
     5897    break;
     5898
    58995899  case 179:
    59005900
    59015901/* Line 1806 of yacc.c  */
    5902 #line 824 "parser.yy"
     5902#line 826 "parser.yy"
    59035903    { (yyval.sn) = new StatementNode2( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    59045904    break;
     
    59075907
    59085908/* Line 1806 of yacc.c  */
    5909 #line 826 "parser.yy"
     5909#line 828 "parser.yy"
    59105910    { (yyval.sn) = new StatementNode2( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ) ); }
    59115911    break;
     
    59145914
    59155915/* Line 1806 of yacc.c  */
    5916 #line 828 "parser.yy"
     5916#line 830 "parser.yy"
    59175917    { (yyval.sn) = new StatementNode2( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); }
    59185918    break;
     
    59215921
    59225922/* Line 1806 of yacc.c  */
    5923 #line 833 "parser.yy"
     5923#line 835 "parser.yy"
    59245924    { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
    59255925    break;
     
    59285928
    59295929/* Line 1806 of yacc.c  */
    5930 #line 835 "parser.yy"
     5930#line 837 "parser.yy"
    59315931    { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
    59325932    break;
     
    59355935
    59365936/* Line 1806 of yacc.c  */
    5937 #line 840 "parser.yy"
     5937#line 842 "parser.yy"
    59385938    { (yyval.sn) = new StatementNode2( build_branch( *(yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); }
    59395939    break;
     
    59425942
    59435943/* Line 1806 of yacc.c  */
    5944 #line 844 "parser.yy"
     5944#line 846 "parser.yy"
    59455945    { (yyval.sn) = new StatementNode2( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); }
    59465946    break;
     
    59495949
    59505950/* Line 1806 of yacc.c  */
    5951 #line 847 "parser.yy"
     5951#line 849 "parser.yy"
    59525952    { (yyval.sn) = new StatementNode2( build_branch( "", BranchStmt::Continue ) ); }
    59535953    break;
     
    59565956
    59575957/* Line 1806 of yacc.c  */
    5958 #line 851 "parser.yy"
     5958#line 853 "parser.yy"
    59595959    { (yyval.sn) = new StatementNode2( build_branch( *(yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); delete (yyvsp[(2) - (3)].tok); }
    59605960    break;
     
    59635963
    59645964/* Line 1806 of yacc.c  */
    5965 #line 854 "parser.yy"
     5965#line 856 "parser.yy"
    59665966    { (yyval.sn) = new StatementNode2( build_branch( "", BranchStmt::Break ) ); }
    59675967    break;
     
    59705970
    59715971/* Line 1806 of yacc.c  */
    5972 #line 858 "parser.yy"
     5972#line 860 "parser.yy"
    59735973    { (yyval.sn) = new StatementNode2( build_branch( *(yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); delete (yyvsp[(2) - (3)].tok); }
    59745974    break;
     
    59775977
    59785978/* Line 1806 of yacc.c  */
    5979 #line 860 "parser.yy"
     5979#line 862 "parser.yy"
    59805980    { (yyval.sn) = new StatementNode2( build_return( (yyvsp[(2) - (3)].en) ) ); }
    59815981    break;
    59825982
    59835983  case 191:
    5984 
    5985 /* Line 1806 of yacc.c  */
    5986 #line 862 "parser.yy"
    5987     { (yyval.sn) = new StatementNode2( build_throw( (yyvsp[(2) - (3)].en) ) ); }
    5988     break;
    5989 
    5990   case 192:
    59915984
    59925985/* Line 1806 of yacc.c  */
     
    59955988    break;
    59965989
     5990  case 192:
     5991
     5992/* Line 1806 of yacc.c  */
     5993#line 866 "parser.yy"
     5994    { (yyval.sn) = new StatementNode2( build_throw( (yyvsp[(2) - (3)].en) ) ); }
     5995    break;
     5996
    59975997  case 193:
    59985998
    59995999/* Line 1806 of yacc.c  */
    6000 #line 866 "parser.yy"
     6000#line 868 "parser.yy"
    60016001    { (yyval.sn) = new StatementNode2( build_throw( (yyvsp[(2) - (5)].en) ) ); }
    60026002    break;
     
    60056005
    60066006/* Line 1806 of yacc.c  */
    6007 #line 871 "parser.yy"
    6008     { (yyval.sn) = new StatementNode2( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0 ) ); }
     6007#line 873 "parser.yy"
     6008    { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); }
    60096009    break;
    60106010
     
    60126012
    60136013/* Line 1806 of yacc.c  */
    6014 #line 873 "parser.yy"
    6015     { (yyval.sn) = new StatementNode2( build_try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn) ) ); }
     6014#line 875 "parser.yy"
     6015    { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); }
    60166016    break;
    60176017
     
    60196019
    60206020/* Line 1806 of yacc.c  */
    6021 #line 875 "parser.yy"
    6022     { (yyval.sn) = new StatementNode2( build_try( (yyvsp[(2) - (4)].sn), (yyvsp[(3) - (4)].sn), (yyvsp[(4) - (4)].sn) ) ); }
     6021#line 877 "parser.yy"
     6022    {
     6023                        (yyvsp[(3) - (4)].pn)->set_link( (yyvsp[(4) - (4)].pn) );
     6024                        (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (4)].sn),*(yyvsp[(3) - (4)].pn) ))));
     6025                }
    60236026    break;
    60246027
     
    60266029
    60276030/* Line 1806 of yacc.c  */
    6028 #line 882 "parser.yy"
    6029     { (yyval.sn) = new StatementNode2( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
     6031#line 888 "parser.yy"
     6032    { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); }
    60306033    break;
    60316034
     
    60336036
    60346037/* Line 1806 of yacc.c  */
    6035 #line 884 "parser.yy"
    6036     { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode2( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
     6038#line 890 "parser.yy"
     6039    { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); }
    60376040    break;
    60386041
     
    60406043
    60416044/* Line 1806 of yacc.c  */
    6042 #line 886 "parser.yy"
    6043     { (yyval.sn) = new StatementNode2( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
     6045#line 892 "parser.yy"
     6046    { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); }
    60446047    break;
    60456048
     
    60476050
    60486051/* Line 1806 of yacc.c  */
    6049 #line 888 "parser.yy"
    6050     { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode2( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
     6052#line 894 "parser.yy"
     6053    { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); }
    60516054    break;
    60526055
     
    60546057
    60556058/* Line 1806 of yacc.c  */
    6056 #line 893 "parser.yy"
    6057     { (yyval.sn) = new StatementNode2( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
     6059#line 899 "parser.yy"
     6060    { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); }
    60586061    break;
    60596062
     
    60616064
    60626065/* Line 1806 of yacc.c  */
    6063 #line 895 "parser.yy"
    6064     { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode2( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
     6066#line 901 "parser.yy"
     6067    { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); }
    60656068    break;
    60666069
     
    60686071
    60696072/* Line 1806 of yacc.c  */
    6070 #line 897 "parser.yy"
    6071     { (yyval.sn) = new StatementNode2( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
     6073#line 903 "parser.yy"
     6074    { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); }
    60726075    break;
    60736076
     
    60756078
    60766079/* Line 1806 of yacc.c  */
    6077 #line 899 "parser.yy"
    6078     { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode2( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
     6080#line 905 "parser.yy"
     6081    { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); }
    60796082    break;
    60806083
     
    60826085
    60836086/* Line 1806 of yacc.c  */
    6084 #line 904 "parser.yy"
     6087#line 910 "parser.yy"
    60856088    {
    6086                         (yyval.sn) = new StatementNode2( build_finally( (yyvsp[(2) - (2)].sn) ) );
     6089                        (yyval.pn) = new StatementNode( StatementNode::Finally, 0, (yyvsp[(2) - (2)].sn) );
     6090                        std::cout << "Just created a finally node" << std::endl;
    60876091                }
    60886092    break;
     
    60916095
    60926096/* Line 1806 of yacc.c  */
    6093 #line 917 "parser.yy"
     6097#line 924 "parser.yy"
    60946098    {
    60956099                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    61016105
    61026106/* Line 1806 of yacc.c  */
    6103 #line 922 "parser.yy"
     6107#line 929 "parser.yy"
    61046108    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    61056109    break;
     
    61086112
    61096113/* Line 1806 of yacc.c  */
    6110 #line 924 "parser.yy"
     6114#line 931 "parser.yy"
    61116115    {
    61126116                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    61186122
    61196123/* Line 1806 of yacc.c  */
    6120 #line 933 "parser.yy"
    6121     { (yyval.sn) = new AsmStmtNode( (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ); }
     6124#line 940 "parser.yy"
     6125    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ); }
    61226126    break;
    61236127
     
    61256129
    61266130/* Line 1806 of yacc.c  */
    6127 #line 935 "parser.yy"
    6128     { (yyval.sn) = new AsmStmtNode( (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ); }
     6131#line 942 "parser.yy"
     6132    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ); }
    61296133    break;
    61306134
     
    61326136
    61336137/* Line 1806 of yacc.c  */
    6134 #line 937 "parser.yy"
    6135     { (yyval.sn) = new AsmStmtNode( (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ); }
     6138#line 944 "parser.yy"
     6139    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ); }
    61366140    break;
    61376141
     
    61396143
    61406144/* Line 1806 of yacc.c  */
    6141 #line 939 "parser.yy"
    6142     { (yyval.sn) = new AsmStmtNode( (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].en) ); }
     6145#line 946 "parser.yy"
     6146    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].en) ); }
    61436147    break;
    61446148
     
    61466150
    61476151/* Line 1806 of yacc.c  */
    6148 #line 941 "parser.yy"
    6149     { (yyval.sn) = new AsmStmtNode( (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].en), (yyvsp[(12) - (14)].label) ); }
     6152#line 948 "parser.yy"
     6153    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].en), (yyvsp[(12) - (14)].label) ); }
    61506154    break;
    61516155
     
    61536157
    61546158/* Line 1806 of yacc.c  */
    6155 #line 946 "parser.yy"
     6159#line 953 "parser.yy"
    61566160    { (yyval.flag) = false; }
    61576161    break;
     
    61606164
    61616165/* Line 1806 of yacc.c  */
    6162 #line 948 "parser.yy"
     6166#line 955 "parser.yy"
    61636167    { (yyval.flag) = true; }
    61646168    break;
     
    61676171
    61686172/* Line 1806 of yacc.c  */
    6169 #line 953 "parser.yy"
     6173#line 960 "parser.yy"
    61706174    { (yyval.en) = 0; }
    61716175    break;
     
    61746178
    61756179/* Line 1806 of yacc.c  */
    6176 #line 960 "parser.yy"
    6177     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
     6180#line 967 "parser.yy"
     6181    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
    61786182    break;
    61796183
     
    61816185
    61826186/* Line 1806 of yacc.c  */
    6183 #line 965 "parser.yy"
     6187#line 972 "parser.yy"
    61846188    { (yyval.en) = new ExpressionNode( build_asm( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); }
    61856189    break;
     
    61886192
    61896193/* Line 1806 of yacc.c  */
    6190 #line 967 "parser.yy"
     6194#line 974 "parser.yy"
    61916195    { (yyval.en) = new ExpressionNode( build_asm( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); }
    61926196    break;
     
    61956199
    61966200/* Line 1806 of yacc.c  */
    6197 #line 972 "parser.yy"
     6201#line 979 "parser.yy"
    61986202    { (yyval.en) = 0; }
    61996203    break;
     
    62026206
    62036207/* Line 1806 of yacc.c  */
    6204 #line 974 "parser.yy"
     6208#line 981 "parser.yy"
    62056209    { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
    62066210    break;
     
    62096213
    62106214/* Line 1806 of yacc.c  */
    6211 #line 976 "parser.yy"
    6212     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); }
     6215#line 983 "parser.yy"
     6216    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); }
    62136217    break;
    62146218
     
    62166220
    62176221/* Line 1806 of yacc.c  */
    6218 #line 981 "parser.yy"
     6222#line 988 "parser.yy"
    62196223    { (yyval.label) = new LabelNode(); (yyval.label)->append_label( (yyvsp[(1) - (1)].tok) ); }
    62206224    break;
     
    62236227
    62246228/* Line 1806 of yacc.c  */
    6225 #line 983 "parser.yy"
     6229#line 990 "parser.yy"
    62266230    { (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->append_label( (yyvsp[(3) - (3)].tok) ); }
    62276231    break;
     
    62306234
    62316235/* Line 1806 of yacc.c  */
    6232 #line 990 "parser.yy"
     6236#line 997 "parser.yy"
    62336237    { (yyval.decl) = 0; }
    62346238    break;
     
    62376241
    62386242/* Line 1806 of yacc.c  */
    6239 #line 997 "parser.yy"
     6243#line 1004 "parser.yy"
    62406244    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    62416245    break;
     
    62446248
    62456249/* Line 1806 of yacc.c  */
    6246 #line 1002 "parser.yy"
     6250#line 1009 "parser.yy"
    62476251    { (yyval.decl) = 0; }
    62486252    break;
     
    62516255
    62526256/* Line 1806 of yacc.c  */
    6253 #line 1009 "parser.yy"
     6257#line 1016 "parser.yy"
    62546258    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    62556259    break;
     
    62586262
    62596263/* Line 1806 of yacc.c  */
    6260 #line 1023 "parser.yy"
     6264#line 1030 "parser.yy"
    62616265    {}
    62626266    break;
     
    62656269
    62666270/* Line 1806 of yacc.c  */
    6267 #line 1024 "parser.yy"
     6271#line 1031 "parser.yy"
    62686272    {}
    62696273    break;
     
    62726276
    62736277/* Line 1806 of yacc.c  */
    6274 #line 1053 "parser.yy"
     6278#line 1060 "parser.yy"
    62756279    {
    62766280                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    62826286
    62836287/* Line 1806 of yacc.c  */
    6284 #line 1060 "parser.yy"
     6288#line 1067 "parser.yy"
    62856289    {
    62866290                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    62926296
    62936297/* Line 1806 of yacc.c  */
    6294 #line 1065 "parser.yy"
     6298#line 1072 "parser.yy"
    62956299    {
    62966300                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID );
     
    63026306
    63036307/* Line 1806 of yacc.c  */
    6304 #line 1075 "parser.yy"
     6308#line 1082 "parser.yy"
    63056309    {
    63066310                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    63126316
    63136317/* Line 1806 of yacc.c  */
    6314 #line 1080 "parser.yy"
     6318#line 1087 "parser.yy"
    63156319    {
    63166320                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    63226326
    63236327/* Line 1806 of yacc.c  */
    6324 #line 1085 "parser.yy"
     6328#line 1092 "parser.yy"
    63256329    {
    63266330                        typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) );
     
    63326336
    63336337/* Line 1806 of yacc.c  */
    6334 #line 1093 "parser.yy"
     6338#line 1100 "parser.yy"
    63356339    {
    63366340                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63426346
    63436347/* Line 1806 of yacc.c  */
    6344 #line 1098 "parser.yy"
     6348#line 1105 "parser.yy"
    63456349    {
    63466350                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63526356
    63536357/* Line 1806 of yacc.c  */
    6354 #line 1103 "parser.yy"
     6358#line 1110 "parser.yy"
    63556359    {
    63566360                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63626366
    63636367/* Line 1806 of yacc.c  */
    6364 #line 1108 "parser.yy"
     6368#line 1115 "parser.yy"
    63656369    {
    63666370                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63726376
    63736377/* Line 1806 of yacc.c  */
    6374 #line 1113 "parser.yy"
     6378#line 1120 "parser.yy"
    63756379    {
    63766380                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    63826386
    63836387/* Line 1806 of yacc.c  */
    6384 #line 1121 "parser.yy"
     6388#line 1128 "parser.yy"
    63856389    {
    63866390                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true );
     
    63916395
    63926396/* Line 1806 of yacc.c  */
    6393 #line 1144 "parser.yy"
     6397#line 1151 "parser.yy"
    63946398    {
    63956399                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    64006404
    64016405/* Line 1806 of yacc.c  */
    6402 #line 1148 "parser.yy"
     6406#line 1155 "parser.yy"
    64036407    {
    64046408                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    64096413
    64106414/* Line 1806 of yacc.c  */
    6411 #line 1155 "parser.yy"
     6415#line 1162 "parser.yy"
    64126416    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    64136417    break;
     
    64166420
    64176421/* Line 1806 of yacc.c  */
    6418 #line 1159 "parser.yy"
     6422#line 1166 "parser.yy"
    64196423    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
    64206424    break;
     
    64236427
    64246428/* Line 1806 of yacc.c  */
    6425 #line 1164 "parser.yy"
     6429#line 1171 "parser.yy"
    64266430    {
    64276431                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64336437
    64346438/* Line 1806 of yacc.c  */
    6435 #line 1169 "parser.yy"
     6439#line 1176 "parser.yy"
    64366440    {
    64376441                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64436447
    64446448/* Line 1806 of yacc.c  */
    6445 #line 1174 "parser.yy"
     6449#line 1181 "parser.yy"
    64466450    {
    64476451                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD );
     
    64536457
    64546458/* Line 1806 of yacc.c  */
    6455 #line 1185 "parser.yy"
     6459#line 1192 "parser.yy"
    64566460    {
    64576461                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64636467
    64646468/* Line 1806 of yacc.c  */
    6465 #line 1190 "parser.yy"
     6469#line 1197 "parser.yy"
    64666470    {
    64676471                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64736477
    64746478/* Line 1806 of yacc.c  */
    6475 #line 1195 "parser.yy"
     6479#line 1202 "parser.yy"
    64766480    {
    64776481                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64836487
    64846488/* Line 1806 of yacc.c  */
    6485 #line 1200 "parser.yy"
     6489#line 1207 "parser.yy"
    64866490    {
    64876491                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64936497
    64946498/* Line 1806 of yacc.c  */
    6495 #line 1205 "parser.yy"
     6499#line 1212 "parser.yy"
    64966500    {
    64976501                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65036507
    65046508/* Line 1806 of yacc.c  */
    6505 #line 1214 "parser.yy"
     6509#line 1221 "parser.yy"
    65066510    {
    65076511                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD );
     
    65136517
    65146518/* Line 1806 of yacc.c  */
    6515 #line 1219 "parser.yy"
     6519#line 1226 "parser.yy"
    65166520    {
    65176521                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD );
     
    65236527
    65246528/* Line 1806 of yacc.c  */
    6525 #line 1236 "parser.yy"
     6529#line 1243 "parser.yy"
    65266530    {
    65276531                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    65336537
    65346538/* Line 1806 of yacc.c  */
    6535 #line 1241 "parser.yy"
     6539#line 1248 "parser.yy"
    65366540    {
    65376541                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    65436547
    65446548/* Line 1806 of yacc.c  */
    6545 #line 1263 "parser.yy"
     6549#line 1270 "parser.yy"
    65466550    { (yyval.decl) = 0; }
    65476551    break;
     
    65506554
    65516555/* Line 1806 of yacc.c  */
    6552 #line 1275 "parser.yy"
     6556#line 1282 "parser.yy"
    65536557    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    65546558    break;
     
    65576561
    65586562/* Line 1806 of yacc.c  */
    6559 #line 1286 "parser.yy"
     6563#line 1293 "parser.yy"
    65606564    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
    65616565    break;
     
    65646568
    65656569/* Line 1806 of yacc.c  */
    6566 #line 1288 "parser.yy"
     6570#line 1295 "parser.yy"
    65676571    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
    65686572    break;
     
    65716575
    65726576/* Line 1806 of yacc.c  */
    6573 #line 1290 "parser.yy"
     6577#line 1297 "parser.yy"
    65746578    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
    65756579    break;
     
    65786582
    65796583/* Line 1806 of yacc.c  */
    6580 #line 1292 "parser.yy"
     6584#line 1299 "parser.yy"
    65816585    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
    65826586    break;
     
    65856589
    65866590/* Line 1806 of yacc.c  */
    6587 #line 1294 "parser.yy"
     6591#line 1301 "parser.yy"
    65886592    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
    65896593    break;
     
    65926596
    65936597/* Line 1806 of yacc.c  */
    6594 #line 1296 "parser.yy"
     6598#line 1303 "parser.yy"
    65956599    {
    65966600                        typedefTable.enterScope();
     
    66016605
    66026606/* Line 1806 of yacc.c  */
    6603 #line 1300 "parser.yy"
     6607#line 1307 "parser.yy"
    66046608    {
    66056609                        typedefTable.leaveScope();
     
    66116615
    66126616/* Line 1806 of yacc.c  */
    6613 #line 1309 "parser.yy"
     6617#line 1316 "parser.yy"
    66146618    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    66156619    break;
     
    66186622
    66196623/* Line 1806 of yacc.c  */
    6620 #line 1311 "parser.yy"
     6624#line 1318 "parser.yy"
    66216625    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    66226626    break;
     
    66256629
    66266630/* Line 1806 of yacc.c  */
    6627 #line 1322 "parser.yy"
     6631#line 1329 "parser.yy"
    66286632    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    66296633    break;
     
    66326636
    66336637/* Line 1806 of yacc.c  */
    6634 #line 1331 "parser.yy"
     6638#line 1338 "parser.yy"
    66356639    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
    66366640    break;
     
    66396643
    66406644/* Line 1806 of yacc.c  */
    6641 #line 1333 "parser.yy"
     6645#line 1340 "parser.yy"
    66426646    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
    66436647    break;
     
    66466650
    66476651/* Line 1806 of yacc.c  */
    6648 #line 1335 "parser.yy"
     6652#line 1342 "parser.yy"
    66496653    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
    66506654    break;
     
    66536657
    66546658/* Line 1806 of yacc.c  */
    6655 #line 1337 "parser.yy"
     6659#line 1344 "parser.yy"
    66566660    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
    66576661    break;
     
    66606664
    66616665/* Line 1806 of yacc.c  */
    6662 #line 1339 "parser.yy"
     6666#line 1346 "parser.yy"
    66636667    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); }
    66646668    break;
     
    66676671
    66686672/* Line 1806 of yacc.c  */
    6669 #line 1341 "parser.yy"
     6673#line 1348 "parser.yy"
    66706674    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
    66716675    break;
     
    66746678
    66756679/* Line 1806 of yacc.c  */
    6676 #line 1343 "parser.yy"
     6680#line 1350 "parser.yy"
    66776681    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); }
    66786682    break;
     
    66816685
    66826686/* Line 1806 of yacc.c  */
    6683 #line 1345 "parser.yy"
     6687#line 1352 "parser.yy"
    66846688    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
    66856689    break;
     
    66886692
    66896693/* Line 1806 of yacc.c  */
    6690 #line 1350 "parser.yy"
     6694#line 1357 "parser.yy"
    66916695    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
    66926696    break;
     
    66956699
    66966700/* Line 1806 of yacc.c  */
    6697 #line 1352 "parser.yy"
     6701#line 1359 "parser.yy"
    66986702    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
    66996703    break;
     
    67026706
    67036707/* Line 1806 of yacc.c  */
    6704 #line 1354 "parser.yy"
     6708#line 1361 "parser.yy"
    67056709    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
    67066710    break;
     
    67096713
    67106714/* Line 1806 of yacc.c  */
    6711 #line 1356 "parser.yy"
     6715#line 1363 "parser.yy"
    67126716    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
    67136717    break;
     
    67166720
    67176721/* Line 1806 of yacc.c  */
    6718 #line 1358 "parser.yy"
     6722#line 1365 "parser.yy"
    67196723    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); }
    67206724    break;
     
    67236727
    67246728/* Line 1806 of yacc.c  */
    6725 #line 1360 "parser.yy"
     6729#line 1367 "parser.yy"
    67266730    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); }
    67276731    break;
     
    67306734
    67316735/* Line 1806 of yacc.c  */
    6732 #line 1362 "parser.yy"
     6736#line 1369 "parser.yy"
    67336737    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); }
    67346738    break;
     
    67376741
    67386742/* Line 1806 of yacc.c  */
    6739 #line 1364 "parser.yy"
     6743#line 1371 "parser.yy"
    67406744    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); }
    67416745    break;
     
    67446748
    67456749/* Line 1806 of yacc.c  */
    6746 #line 1366 "parser.yy"
     6750#line 1373 "parser.yy"
    67476751    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
    67486752    break;
     
    67516755
    67526756/* Line 1806 of yacc.c  */
    6753 #line 1368 "parser.yy"
     6757#line 1375 "parser.yy"
    67546758    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
    67556759    break;
     
    67586762
    67596763/* Line 1806 of yacc.c  */
    6760 #line 1370 "parser.yy"
     6764#line 1377 "parser.yy"
    67616765    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); }
    67626766    break;
     
    67656769
    67666770/* Line 1806 of yacc.c  */
    6767 #line 1372 "parser.yy"
     6771#line 1379 "parser.yy"
    67686772    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); }
    67696773    break;
     
    67726776
    67736777/* Line 1806 of yacc.c  */
    6774 #line 1374 "parser.yy"
     6778#line 1381 "parser.yy"
    67756779    { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
    67766780    break;
     
    67796783
    67806784/* Line 1806 of yacc.c  */
    6781 #line 1381 "parser.yy"
     6785#line 1388 "parser.yy"
    67826786    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    67836787    break;
     
    67866790
    67876791/* Line 1806 of yacc.c  */
    6788 #line 1383 "parser.yy"
     6792#line 1390 "parser.yy"
    67896793    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    67906794    break;
     
    67936797
    67946798/* Line 1806 of yacc.c  */
    6795 #line 1385 "parser.yy"
     6799#line 1392 "parser.yy"
    67966800    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    67976801    break;
     
    68006804
    68016805/* Line 1806 of yacc.c  */
    6802 #line 1387 "parser.yy"
     6806#line 1394 "parser.yy"
    68036807    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
    68046808    break;
     
    68076811
    68086812/* Line 1806 of yacc.c  */
    6809 #line 1393 "parser.yy"
     6813#line 1400 "parser.yy"
    68106814    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    68116815    break;
     
    68146818
    68156819/* Line 1806 of yacc.c  */
    6816 #line 1400 "parser.yy"
     6820#line 1407 "parser.yy"
    68176821    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68186822    break;
     
    68216825
    68226826/* Line 1806 of yacc.c  */
    6823 #line 1402 "parser.yy"
     6827#line 1409 "parser.yy"
    68246828    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68256829    break;
     
    68286832
    68296833/* Line 1806 of yacc.c  */
    6830 #line 1404 "parser.yy"
     6834#line 1411 "parser.yy"
    68316835    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
    68326836    break;
     
    68356839
    68366840/* Line 1806 of yacc.c  */
    6837 #line 1409 "parser.yy"
     6841#line 1416 "parser.yy"
    68386842    { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
    68396843    break;
     
    68426846
    68436847/* Line 1806 of yacc.c  */
    6844 #line 1411 "parser.yy"
     6848#line 1418 "parser.yy"
    68456849    { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
    68466850    break;
     
    68496853
    68506854/* Line 1806 of yacc.c  */
    6851 #line 1413 "parser.yy"
     6855#line 1420 "parser.yy"
    68526856    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
    68536857    break;
     
    68566860
    68576861/* Line 1806 of yacc.c  */
    6858 #line 1415 "parser.yy"
     6862#line 1422 "parser.yy"
    68596863    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    68606864    break;
     
    68636867
    68646868/* Line 1806 of yacc.c  */
    6865 #line 1421 "parser.yy"
     6869#line 1428 "parser.yy"
    68666870    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68676871    break;
     
    68706874
    68716875/* Line 1806 of yacc.c  */
    6872 #line 1423 "parser.yy"
     6876#line 1430 "parser.yy"
    68736877    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68746878    break;
     
    68776881
    68786882/* Line 1806 of yacc.c  */
    6879 #line 1425 "parser.yy"
     6883#line 1432 "parser.yy"
    68806884    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    68816885    break;
     
    68846888
    68856889/* Line 1806 of yacc.c  */
    6886 #line 1431 "parser.yy"
     6890#line 1438 "parser.yy"
    68876891    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68886892    break;
     
    68916895
    68926896/* Line 1806 of yacc.c  */
    6893 #line 1433 "parser.yy"
     6897#line 1440 "parser.yy"
    68946898    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68956899    break;
     
    68986902
    68996903/* Line 1806 of yacc.c  */
    6900 #line 1439 "parser.yy"
     6904#line 1446 "parser.yy"
    69016905    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69026906    break;
     
    69056909
    69066910/* Line 1806 of yacc.c  */
    6907 #line 1441 "parser.yy"
     6911#line 1448 "parser.yy"
    69086912    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69096913    break;
     
    69126916
    69136917/* Line 1806 of yacc.c  */
    6914 #line 1443 "parser.yy"
     6918#line 1450 "parser.yy"
    69156919    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    69166920    break;
     
    69196923
    69206924/* Line 1806 of yacc.c  */
    6921 #line 1448 "parser.yy"
     6925#line 1455 "parser.yy"
    69226926    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
    69236927    break;
     
    69266930
    69276931/* Line 1806 of yacc.c  */
    6928 #line 1450 "parser.yy"
     6932#line 1457 "parser.yy"
    69296933    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69306934    break;
     
    69336937
    69346938/* Line 1806 of yacc.c  */
    6935 #line 1452 "parser.yy"
     6939#line 1459 "parser.yy"
    69366940    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69376941    break;
     
    69406944
    69416945/* Line 1806 of yacc.c  */
    6942 #line 1462 "parser.yy"
     6946#line 1469 "parser.yy"
    69436947    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl), true ); }
    69446948    break;
     
    69476951
    69486952/* Line 1806 of yacc.c  */
    6949 #line 1464 "parser.yy"
     6953#line 1471 "parser.yy"
    69506954    {
    69516955                        typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
     
    69576961
    69586962/* Line 1806 of yacc.c  */
    6959 #line 1469 "parser.yy"
     6963#line 1476 "parser.yy"
    69606964    { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
    69616965    break;
     
    69646968
    69656969/* Line 1806 of yacc.c  */
    6966 #line 1471 "parser.yy"
     6970#line 1478 "parser.yy"
    69676971    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), 0, (yyvsp[(5) - (6)].decl), true ); }
    69686972    break;
     
    69716975
    69726976/* Line 1806 of yacc.c  */
    6973 #line 1473 "parser.yy"
     6977#line 1480 "parser.yy"
    69746978    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); }
    69756979    break;
     
    69786982
    69796983/* Line 1806 of yacc.c  */
    6980 #line 1475 "parser.yy"
     6984#line 1482 "parser.yy"
    69816985    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    69826986    break;
     
    69856989
    69866990/* Line 1806 of yacc.c  */
    6987 #line 1480 "parser.yy"
     6991#line 1487 "parser.yy"
    69886992    { (yyval.aggKey) = DeclarationNode::Struct; }
    69896993    break;
     
    69926996
    69936997/* Line 1806 of yacc.c  */
    6994 #line 1482 "parser.yy"
     6998#line 1489 "parser.yy"
    69956999    { (yyval.aggKey) = DeclarationNode::Union; }
    69967000    break;
     
    69997003
    70007004/* Line 1806 of yacc.c  */
    7001 #line 1487 "parser.yy"
     7005#line 1494 "parser.yy"
    70027006    { (yyval.decl) = 0; }
    70037007    break;
     
    70067010
    70077011/* Line 1806 of yacc.c  */
    7008 #line 1489 "parser.yy"
     7012#line 1496 "parser.yy"
    70097013    { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
    70107014    break;
     
    70137017
    70147018/* Line 1806 of yacc.c  */
    7015 #line 1495 "parser.yy"
     7019#line 1502 "parser.yy"
    70167020    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); }
    70177021    break;
     
    70207024
    70217025/* Line 1806 of yacc.c  */
    7022 #line 1498 "parser.yy"
     7026#line 1505 "parser.yy"
    70237027    {   // mark all fields in list
    7024                         for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_next() )
     7028                        for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_link() )
    70257029                                iter->set_extension( true );
    70267030                        (yyval.decl) = (yyvsp[(2) - (3)].decl);
     
    70317035
    70327036/* Line 1806 of yacc.c  */
    7033 #line 1508 "parser.yy"
     7037#line 1515 "parser.yy"
    70347038    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
    70357039    break;
     
    70387042
    70397043/* Line 1806 of yacc.c  */
    7040 #line 1510 "parser.yy"
     7044#line 1517 "parser.yy"
    70417045    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
    70427046    break;
     
    70457049
    70467050/* Line 1806 of yacc.c  */
    7047 #line 1512 "parser.yy"
     7051#line 1519 "parser.yy"
    70487052    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
    70497053    break;
     
    70527056
    70537057/* Line 1806 of yacc.c  */
    7054 #line 1517 "parser.yy"
     7058#line 1524 "parser.yy"
    70557059    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    70567060    break;
     
    70597063
    70607064/* Line 1806 of yacc.c  */
    7061 #line 1519 "parser.yy"
     7065#line 1526 "parser.yy"
    70627066    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
    70637067    break;
     
    70667070
    70677071/* Line 1806 of yacc.c  */
    7068 #line 1524 "parser.yy"
     7072#line 1531 "parser.yy"
    70697073    { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
    70707074    break;
     
    70737077
    70747078/* Line 1806 of yacc.c  */
    7075 #line 1526 "parser.yy"
     7079#line 1533 "parser.yy"
    70767080    { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
    70777081    break;
     
    70807084
    70817085/* Line 1806 of yacc.c  */
    7082 #line 1529 "parser.yy"
     7086#line 1536 "parser.yy"
    70837087    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    70847088    break;
     
    70877091
    70887092/* Line 1806 of yacc.c  */
    7089 #line 1532 "parser.yy"
     7093#line 1539 "parser.yy"
    70907094    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    70917095    break;
     
    70947098
    70957099/* Line 1806 of yacc.c  */
    7096 #line 1538 "parser.yy"
     7100#line 1545 "parser.yy"
    70977101    { (yyval.en) = 0; }
    70987102    break;
     
    71017105
    71027106/* Line 1806 of yacc.c  */
    7103 #line 1540 "parser.yy"
     7107#line 1547 "parser.yy"
    71047108    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    71057109    break;
     
    71087112
    71097113/* Line 1806 of yacc.c  */
    7110 #line 1545 "parser.yy"
     7114#line 1552 "parser.yy"
    71117115    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    71127116    break;
     
    71157119
    71167120/* Line 1806 of yacc.c  */
    7117 #line 1554 "parser.yy"
     7121#line 1561 "parser.yy"
    71187122    { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); }
    71197123    break;
     
    71227126
    71237127/* Line 1806 of yacc.c  */
    7124 #line 1556 "parser.yy"
     7128#line 1563 "parser.yy"
    71257129    {
    71267130                        typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
     
    71327136
    71337137/* Line 1806 of yacc.c  */
    7134 #line 1561 "parser.yy"
     7138#line 1568 "parser.yy"
    71357139    { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
    71367140    break;
     
    71397143
    71407144/* Line 1806 of yacc.c  */
    7141 #line 1563 "parser.yy"
     7145#line 1570 "parser.yy"
    71427146    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); }
    71437147    break;
     
    71467150
    71477151/* Line 1806 of yacc.c  */
    7148 #line 1568 "parser.yy"
     7152#line 1575 "parser.yy"
    71497153    { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
    71507154    break;
     
    71537157
    71547158/* Line 1806 of yacc.c  */
    7155 #line 1570 "parser.yy"
     7159#line 1577 "parser.yy"
    71567160    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
    71577161    break;
     
    71607164
    71617165/* Line 1806 of yacc.c  */
    7162 #line 1575 "parser.yy"
     7166#line 1582 "parser.yy"
    71637167    { (yyval.en) = 0; }
    71647168    break;
     
    71677171
    71687172/* Line 1806 of yacc.c  */
    7169 #line 1577 "parser.yy"
     7173#line 1584 "parser.yy"
    71707174    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    71717175    break;
     
    71747178
    71757179/* Line 1806 of yacc.c  */
    7176 #line 1584 "parser.yy"
     7180#line 1591 "parser.yy"
    71777181    { (yyval.decl) = 0; }
    71787182    break;
     
    71817185
    71827186/* Line 1806 of yacc.c  */
    7183 #line 1592 "parser.yy"
     7187#line 1599 "parser.yy"
    71847188    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    71857189    break;
     
    71887192
    71897193/* Line 1806 of yacc.c  */
    7190 #line 1594 "parser.yy"
     7194#line 1601 "parser.yy"
    71917195    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    71927196    break;
     
    71957199
    71967200/* Line 1806 of yacc.c  */
    7197 #line 1596 "parser.yy"
     7201#line 1603 "parser.yy"
    71987202    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    71997203    break;
     
    72027206
    72037207/* Line 1806 of yacc.c  */
    7204 #line 1604 "parser.yy"
     7208#line 1611 "parser.yy"
    72057209    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72067210    break;
     
    72097213
    72107214/* Line 1806 of yacc.c  */
    7211 #line 1606 "parser.yy"
     7215#line 1613 "parser.yy"
    72127216    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72137217    break;
     
    72167220
    72177221/* Line 1806 of yacc.c  */
    7218 #line 1608 "parser.yy"
     7222#line 1615 "parser.yy"
    72197223    { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
    72207224    break;
     
    72237227
    72247228/* Line 1806 of yacc.c  */
    7225 #line 1614 "parser.yy"
     7229#line 1621 "parser.yy"
    72267230    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72277231    break;
     
    72307234
    72317235/* Line 1806 of yacc.c  */
    7232 #line 1619 "parser.yy"
     7236#line 1626 "parser.yy"
    72337237    { (yyval.decl) = 0; }
    72347238    break;
     
    72377241
    72387242/* Line 1806 of yacc.c  */
    7239 #line 1626 "parser.yy"
     7243#line 1633 "parser.yy"
    72407244    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    72417245    break;
     
    72447248
    72457249/* Line 1806 of yacc.c  */
    7246 #line 1633 "parser.yy"
     7250#line 1640 "parser.yy"
    72477251    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72487252    break;
     
    72517255
    72527256/* Line 1806 of yacc.c  */
    7253 #line 1635 "parser.yy"
     7257#line 1642 "parser.yy"
    72547258    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72557259    break;
     
    72587262
    72597263/* Line 1806 of yacc.c  */
    7260 #line 1644 "parser.yy"
     7264#line 1651 "parser.yy"
    72617265    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    72627266    break;
     
    72657269
    72667270/* Line 1806 of yacc.c  */
    7267 #line 1647 "parser.yy"
     7271#line 1654 "parser.yy"
    72687272    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    72697273    break;
     
    72727276
    72737277/* Line 1806 of yacc.c  */
    7274 #line 1649 "parser.yy"
     7278#line 1656 "parser.yy"
    72757279    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
    72767280    break;
     
    72797283
    72807284/* Line 1806 of yacc.c  */
    7281 #line 1659 "parser.yy"
     7285#line 1666 "parser.yy"
    72827286    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    72837287    break;
     
    72867290
    72877291/* Line 1806 of yacc.c  */
    7288 #line 1665 "parser.yy"
     7292#line 1672 "parser.yy"
    72897293    {
    72907294                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    72967300
    72977301/* Line 1806 of yacc.c  */
    7298 #line 1670 "parser.yy"
     7302#line 1677 "parser.yy"
    72997303    {
    73007304                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    73067310
    73077311/* Line 1806 of yacc.c  */
    7308 #line 1679 "parser.yy"
     7312#line 1686 "parser.yy"
    73097313    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73107314    break;
     
    73137317
    73147318/* Line 1806 of yacc.c  */
    7315 #line 1688 "parser.yy"
     7319#line 1695 "parser.yy"
    73167320    { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
    73177321    break;
     
    73207324
    73217325/* Line 1806 of yacc.c  */
    7322 #line 1690 "parser.yy"
     7326#line 1697 "parser.yy"
    73237327    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
    73247328    break;
     
    73277331
    73287332/* Line 1806 of yacc.c  */
    7329 #line 1715 "parser.yy"
     7333#line 1722 "parser.yy"
    73307334    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73317335    break;
     
    73347338
    73357339/* Line 1806 of yacc.c  */
    7336 #line 1723 "parser.yy"
     7340#line 1730 "parser.yy"
    73377341    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73387342    break;
     
    73417345
    73427346/* Line 1806 of yacc.c  */
    7343 #line 1728 "parser.yy"
     7347#line 1735 "parser.yy"
    73447348    { (yyval.in) = 0; }
    73457349    break;
     
    73487352
    73497353/* Line 1806 of yacc.c  */
    7350 #line 1730 "parser.yy"
     7354#line 1737 "parser.yy"
    73517355    { (yyval.in) = (yyvsp[(2) - (2)].in); }
    73527356    break;
     
    73557359
    73567360/* Line 1806 of yacc.c  */
    7357 #line 1732 "parser.yy"
     7361#line 1739 "parser.yy"
    73587362    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); }
    73597363    break;
     
    73627366
    73637367/* Line 1806 of yacc.c  */
    7364 #line 1736 "parser.yy"
     7368#line 1743 "parser.yy"
    73657369    { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
    73667370    break;
     
    73697373
    73707374/* Line 1806 of yacc.c  */
    7371 #line 1737 "parser.yy"
     7375#line 1744 "parser.yy"
    73727376    { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
    73737377    break;
     
    73767380
    73777381/* Line 1806 of yacc.c  */
    7378 #line 1742 "parser.yy"
     7382#line 1749 "parser.yy"
    73797383    { (yyval.in) = 0; }
    73807384    break;
     
    73837387
    73847388/* Line 1806 of yacc.c  */
    7385 #line 1744 "parser.yy"
     7389#line 1751 "parser.yy"
    73867390    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
    73877391    break;
     
    73907394
    73917395/* Line 1806 of yacc.c  */
    7392 #line 1745 "parser.yy"
    7393     { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); }
     7396#line 1752 "parser.yy"
     7397    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link( (yyvsp[(3) - (3)].in) ) ); }
    73947398    break;
    73957399
     
    73977401
    73987402/* Line 1806 of yacc.c  */
    7399 #line 1747 "parser.yy"
    7400     { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_last( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
     7403#line 1754 "parser.yy"
     7404    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_link( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
    74017405    break;
    74027406
     
    74047408
    74057409/* Line 1806 of yacc.c  */
    7406 #line 1763 "parser.yy"
     7410#line 1770 "parser.yy"
    74077411    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); }
    74087412    break;
     
    74117415
    74127416/* Line 1806 of yacc.c  */
    7413 #line 1769 "parser.yy"
    7414     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) ) ); }
     7417#line 1776 "parser.yy"
     7418    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) ) ); }
    74157419    break;
    74167420
     
    74187422
    74197423/* Line 1806 of yacc.c  */
    7420 #line 1775 "parser.yy"
     7424#line 1782 "parser.yy"
    74217425    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); }
    74227426    break;
     
    74257429
    74267430/* Line 1806 of yacc.c  */
    7427 #line 1778 "parser.yy"
     7431#line 1785 "parser.yy"
    74287432    { (yyval.en) = (yyvsp[(3) - (5)].en); }
    74297433    break;
     
    74327436
    74337437/* Line 1806 of yacc.c  */
    7434 #line 1780 "parser.yy"
     7438#line 1787 "parser.yy"
    74357439    { (yyval.en) = (yyvsp[(3) - (5)].en); }
    74367440    break;
     
    74397443
    74407444/* Line 1806 of yacc.c  */
    7441 #line 1782 "parser.yy"
     7445#line 1789 "parser.yy"
    74427446    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); }
    74437447    break;
     
    74467450
    74477451/* Line 1806 of yacc.c  */
    7448 #line 1784 "parser.yy"
     7452#line 1791 "parser.yy"
    74497453    { (yyval.en) = (yyvsp[(4) - (6)].en); }
    74507454    break;
     
    74537457
    74547458/* Line 1806 of yacc.c  */
    7455 #line 1808 "parser.yy"
     7459#line 1815 "parser.yy"
    74567460    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    74577461    break;
     
    74607464
    74617465/* Line 1806 of yacc.c  */
    7462 #line 1810 "parser.yy"
     7466#line 1817 "parser.yy"
    74637467    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    74647468    break;
     
    74677471
    74687472/* Line 1806 of yacc.c  */
    7469 #line 1812 "parser.yy"
     7473#line 1819 "parser.yy"
    74707474    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    74717475    break;
     
    74747478
    74757479/* Line 1806 of yacc.c  */
    7476 #line 1818 "parser.yy"
     7480#line 1825 "parser.yy"
    74777481    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    74787482    break;
     
    74817485
    74827486/* Line 1806 of yacc.c  */
    7483 #line 1820 "parser.yy"
     7487#line 1827 "parser.yy"
    74847488    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    74857489    break;
     
    74887492
    74897493/* Line 1806 of yacc.c  */
    7490 #line 1825 "parser.yy"
     7494#line 1832 "parser.yy"
    74917495    { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    74927496    break;
     
    74957499
    74967500/* Line 1806 of yacc.c  */
    7497 #line 1831 "parser.yy"
     7501#line 1838 "parser.yy"
    74987502    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
    74997503    break;
     
    75027506
    75037507/* Line 1806 of yacc.c  */
    7504 #line 1836 "parser.yy"
     7508#line 1843 "parser.yy"
    75057509    { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
    75067510    break;
     
    75097513
    75107514/* Line 1806 of yacc.c  */
    7511 #line 1838 "parser.yy"
     7515#line 1845 "parser.yy"
    75127516    { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
    75137517    break;
     
    75167520
    75177521/* Line 1806 of yacc.c  */
    7518 #line 1844 "parser.yy"
     7522#line 1851 "parser.yy"
    75197523    { (yyval.tclass) = DeclarationNode::Type; }
    75207524    break;
     
    75237527
    75247528/* Line 1806 of yacc.c  */
    7525 #line 1846 "parser.yy"
     7529#line 1853 "parser.yy"
    75267530    { (yyval.tclass) = DeclarationNode::Ftype; }
    75277531    break;
     
    75307534
    75317535/* Line 1806 of yacc.c  */
    7532 #line 1848 "parser.yy"
     7536#line 1855 "parser.yy"
    75337537    { (yyval.tclass) = DeclarationNode::Dtype; }
    75347538    break;
     
    75377541
    75387542/* Line 1806 of yacc.c  */
    7539 #line 1853 "parser.yy"
     7543#line 1860 "parser.yy"
    75407544    { (yyval.decl) = 0; }
    75417545    break;
     
    75447548
    75457549/* Line 1806 of yacc.c  */
    7546 #line 1855 "parser.yy"
     7550#line 1862 "parser.yy"
    75477551    { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
    75487552    break;
     
    75517555
    75527556/* Line 1806 of yacc.c  */
    7553 #line 1860 "parser.yy"
     7557#line 1867 "parser.yy"
    75547558    {
    75557559                        typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) );
     
    75617565
    75627566/* Line 1806 of yacc.c  */
    7563 #line 1865 "parser.yy"
     7567#line 1872 "parser.yy"
    75647568    { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
    75657569    break;
     
    75687572
    75697573/* Line 1806 of yacc.c  */
    7570 #line 1867 "parser.yy"
     7574#line 1874 "parser.yy"
    75717575    { (yyval.decl) = 0; }
    75727576    break;
     
    75757579
    75767580/* Line 1806 of yacc.c  */
    7577 #line 1872 "parser.yy"
     7581#line 1879 "parser.yy"
    75787582    { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); }
    75797583    break;
     
    75827586
    75837587/* Line 1806 of yacc.c  */
    7584 #line 1875 "parser.yy"
    7585     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); }
     7588#line 1882 "parser.yy"
     7589    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); }
    75867590    break;
    75877591
     
    75897593
    75907594/* Line 1806 of yacc.c  */
    7591 #line 1877 "parser.yy"
    7592     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
     7595#line 1884 "parser.yy"
     7596    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); }
    75937597    break;
    75947598
     
    75967600
    75977601/* Line 1806 of yacc.c  */
    7598 #line 1882 "parser.yy"
     7602#line 1889 "parser.yy"
    75997603    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    76007604    break;
     
    76037607
    76047608/* Line 1806 of yacc.c  */
    7605 #line 1884 "parser.yy"
     7609#line 1891 "parser.yy"
    76067610    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
    76077611    break;
     
    76107614
    76117615/* Line 1806 of yacc.c  */
    7612 #line 1886 "parser.yy"
     7616#line 1893 "parser.yy"
    76137617    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
    76147618    break;
     
    76177621
    76187622/* Line 1806 of yacc.c  */
    7619 #line 1891 "parser.yy"
     7623#line 1898 "parser.yy"
    76207624    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
    76217625    break;
     
    76247628
    76257629/* Line 1806 of yacc.c  */
    7626 #line 1893 "parser.yy"
     7630#line 1900 "parser.yy"
    76277631    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
    76287632    break;
     
    76317635
    76327636/* Line 1806 of yacc.c  */
    7633 #line 1898 "parser.yy"
     7637#line 1905 "parser.yy"
    76347638    {
    76357639                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD );
     
    76417645
    76427646/* Line 1806 of yacc.c  */
    7643 #line 1903 "parser.yy"
     7647#line 1910 "parser.yy"
    76447648    {
    76457649                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG );
     
    76517655
    76527656/* Line 1806 of yacc.c  */
    7653 #line 1911 "parser.yy"
     7657#line 1918 "parser.yy"
    76547658    {
    76557659                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID );
     
    76617665
    76627666/* Line 1806 of yacc.c  */
    7663 #line 1916 "parser.yy"
     7667#line 1923 "parser.yy"
    76647668    {
    76657669                        typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) );
     
    76717675
    76727676/* Line 1806 of yacc.c  */
    7673 #line 1921 "parser.yy"
     7677#line 1928 "parser.yy"
    76747678    {
    76757679                        typedefTable.leaveTrait();
     
    76827686
    76837687/* Line 1806 of yacc.c  */
    7684 #line 1931 "parser.yy"
     7688#line 1938 "parser.yy"
    76857689    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    76867690    break;
     
    76897693
    76907694/* Line 1806 of yacc.c  */
    7691 #line 1941 "parser.yy"
     7695#line 1948 "parser.yy"
    76927696    {
    76937697                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    76997703
    77007704/* Line 1806 of yacc.c  */
    7701 #line 1946 "parser.yy"
     7705#line 1953 "parser.yy"
    77027706    {
    77037707                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77097713
    77107714/* Line 1806 of yacc.c  */
    7711 #line 1951 "parser.yy"
     7715#line 1958 "parser.yy"
    77127716    {
    77137717                        typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    77197723
    77207724/* Line 1806 of yacc.c  */
    7721 #line 1959 "parser.yy"
     7725#line 1966 "parser.yy"
    77227726    {
    77237727                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77297733
    77307734/* Line 1806 of yacc.c  */
    7731 #line 1964 "parser.yy"
     7735#line 1971 "parser.yy"
    77327736    {
    77337737                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77397743
    77407744/* Line 1806 of yacc.c  */
    7741 #line 1974 "parser.yy"
     7745#line 1981 "parser.yy"
    77427746    {}
    77437747    break;
     
    77467750
    77477751/* Line 1806 of yacc.c  */
    7748 #line 1976 "parser.yy"
     7752#line 1983 "parser.yy"
    77497753    {
    77507754                        if ( theTree ) {
     
    77597763
    77607764/* Line 1806 of yacc.c  */
    7761 #line 1988 "parser.yy"
     7765#line 1995 "parser.yy"
    77627766    { (yyval.decl) = ( (yyvsp[(1) - (3)].decl) != NULL ) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
    77637767    break;
     
    77667770
    77677771/* Line 1806 of yacc.c  */
    7768 #line 1993 "parser.yy"
     7772#line 2000 "parser.yy"
    77697773    { (yyval.decl) = 0; }
    77707774    break;
     
    77737777
    77747778/* Line 1806 of yacc.c  */
    7775 #line 2001 "parser.yy"
     7779#line 2008 "parser.yy"
    77767780    {}
    77777781    break;
     
    77807784
    77817785/* Line 1806 of yacc.c  */
    7782 #line 2003 "parser.yy"
     7786#line 2010 "parser.yy"
    77837787    {
    77847788                        linkageStack.push( linkage );
     
    77907794
    77917795/* Line 1806 of yacc.c  */
    7792 #line 2008 "parser.yy"
     7796#line 2015 "parser.yy"
    77937797    {
    77947798                        linkage = linkageStack.top();
     
    78017805
    78027806/* Line 1806 of yacc.c  */
    7803 #line 2014 "parser.yy"
     7807#line 2021 "parser.yy"
    78047808    {   // mark all fields in list
    7805                         for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_next() )
     7809                        for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_link() )
    78067810                                iter->set_extension( true );
    78077811                        (yyval.decl) = (yyvsp[(2) - (2)].decl);
     
    78127816
    78137817/* Line 1806 of yacc.c  */
    7814 #line 2029 "parser.yy"
     7818#line 2036 "parser.yy"
    78157819    {
    78167820                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78237827
    78247828/* Line 1806 of yacc.c  */
    7825 #line 2035 "parser.yy"
     7829#line 2042 "parser.yy"
    78267830    {
    78277831                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78347838
    78357839/* Line 1806 of yacc.c  */
    7836 #line 2044 "parser.yy"
     7840#line 2051 "parser.yy"
    78377841    {
    78387842                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78457849
    78467850/* Line 1806 of yacc.c  */
    7847 #line 2050 "parser.yy"
     7851#line 2057 "parser.yy"
    78487852    {
    78497853                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78567860
    78577861/* Line 1806 of yacc.c  */
    7858 #line 2056 "parser.yy"
     7862#line 2063 "parser.yy"
    78597863    {
    78607864                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78677871
    78687872/* Line 1806 of yacc.c  */
    7869 #line 2062 "parser.yy"
     7873#line 2069 "parser.yy"
    78707874    {
    78717875                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78787882
    78797883/* Line 1806 of yacc.c  */
    7880 #line 2068 "parser.yy"
     7884#line 2075 "parser.yy"
    78817885    {
    78827886                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78897893
    78907894/* Line 1806 of yacc.c  */
    7891 #line 2076 "parser.yy"
     7895#line 2083 "parser.yy"
    78927896    {
    78937897                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79007904
    79017905/* Line 1806 of yacc.c  */
    7902 #line 2082 "parser.yy"
     7906#line 2089 "parser.yy"
    79037907    {
    79047908                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79117915
    79127916/* Line 1806 of yacc.c  */
    7913 #line 2090 "parser.yy"
     7917#line 2097 "parser.yy"
    79147918    {
    79157919                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79227926
    79237927/* Line 1806 of yacc.c  */
    7924 #line 2096 "parser.yy"
     7928#line 2103 "parser.yy"
    79257929    {
    79267930                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79337937
    79347938/* Line 1806 of yacc.c  */
    7935 #line 2111 "parser.yy"
     7939#line 2118 "parser.yy"
    79367940    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    79377941    break;
     
    79407944
    79417945/* Line 1806 of yacc.c  */
    7942 #line 2121 "parser.yy"
     7946#line 2128 "parser.yy"
    79437947    { (yyval.decl) = 0; }
    79447948    break;
     
    79477951
    79487952/* Line 1806 of yacc.c  */
    7949 #line 2128 "parser.yy"
     7953#line 2135 "parser.yy"
    79507954    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    79517955    break;
     
    79547958
    79557959/* Line 1806 of yacc.c  */
    7956 #line 2134 "parser.yy"
     7960#line 2141 "parser.yy"
    79577961    { (yyval.decl) = 0; }
    79587962    break;
     
    79617965
    79627966/* Line 1806 of yacc.c  */
    7963 #line 2149 "parser.yy"
     7967#line 2156 "parser.yy"
    79647968    {}
    79657969    break;
     
    79687972
    79697973/* Line 1806 of yacc.c  */
    7970 #line 2150 "parser.yy"
     7974#line 2157 "parser.yy"
    79717975    {}
    79727976    break;
     
    79757979
    79767980/* Line 1806 of yacc.c  */
    7977 #line 2151 "parser.yy"
     7981#line 2158 "parser.yy"
    79787982    {}
    79797983    break;
     
    79827986
    79837987/* Line 1806 of yacc.c  */
    7984 #line 2152 "parser.yy"
     7988#line 2159 "parser.yy"
    79857989    {}
    79867990    break;
     
    79897993
    79907994/* Line 1806 of yacc.c  */
    7991 #line 2187 "parser.yy"
     7995#line 2194 "parser.yy"
    79927996    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    79937997    break;
     
    79968000
    79978001/* Line 1806 of yacc.c  */
    7998 #line 2190 "parser.yy"
     8002#line 2197 "parser.yy"
    79998003    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80008004    break;
     
    80038007
    80048008/* Line 1806 of yacc.c  */
    8005 #line 2192 "parser.yy"
     8009#line 2199 "parser.yy"
    80068010    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80078011    break;
     
    80108014
    80118015/* Line 1806 of yacc.c  */
    8012 #line 2197 "parser.yy"
     8016#line 2204 "parser.yy"
    80138017    {
    80148018                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    80208024
    80218025/* Line 1806 of yacc.c  */
    8022 #line 2202 "parser.yy"
     8026#line 2209 "parser.yy"
    80238027    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80248028    break;
     
    80278031
    80288032/* Line 1806 of yacc.c  */
    8029 #line 2207 "parser.yy"
     8033#line 2214 "parser.yy"
    80308034    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    80318035    break;
     
    80348038
    80358039/* Line 1806 of yacc.c  */
    8036 #line 2209 "parser.yy"
     8040#line 2216 "parser.yy"
    80378041    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    80388042    break;
     
    80418045
    80428046/* Line 1806 of yacc.c  */
    8043 #line 2211 "parser.yy"
     8047#line 2218 "parser.yy"
    80448048    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80458049    break;
     
    80488052
    80498053/* Line 1806 of yacc.c  */
    8050 #line 2216 "parser.yy"
     8054#line 2223 "parser.yy"
    80518055    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    80528056    break;
     
    80558059
    80568060/* Line 1806 of yacc.c  */
    8057 #line 2218 "parser.yy"
     8061#line 2225 "parser.yy"
    80588062    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    80598063    break;
     
    80628066
    80638067/* Line 1806 of yacc.c  */
    8064 #line 2220 "parser.yy"
     8068#line 2227 "parser.yy"
    80658069    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    80668070    break;
    80678071
    80688072  case 571:
    8069 
    8070 /* Line 1806 of yacc.c  */
    8071 #line 2222 "parser.yy"
    8072     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8073     break;
    8074 
    8075   case 572:
    8076 
    8077 /* Line 1806 of yacc.c  */
    8078 #line 2227 "parser.yy"
    8079     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8080     break;
    8081 
    8082   case 573:
    80838073
    80848074/* Line 1806 of yacc.c  */
     
    80878077    break;
    80888078
     8079  case 572:
     8080
     8081/* Line 1806 of yacc.c  */
     8082#line 2234 "parser.yy"
     8083    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8084    break;
     8085
     8086  case 573:
     8087
     8088/* Line 1806 of yacc.c  */
     8089#line 2236 "parser.yy"
     8090    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8091    break;
     8092
    80898093  case 574:
    80908094
    80918095/* Line 1806 of yacc.c  */
    8092 #line 2238 "parser.yy"
     8096#line 2245 "parser.yy"
    80938097    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80948098    break;
     
    80978101
    80988102/* Line 1806 of yacc.c  */
    8099 #line 2241 "parser.yy"
     8103#line 2248 "parser.yy"
    81008104    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    81018105    break;
     
    81048108
    81058109/* Line 1806 of yacc.c  */
    8106 #line 2246 "parser.yy"
     8110#line 2253 "parser.yy"
    81078111    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    81088112    break;
     
    81118115
    81128116/* Line 1806 of yacc.c  */
    8113 #line 2248 "parser.yy"
     8117#line 2255 "parser.yy"
    81148118    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    81158119    break;
     
    81188122
    81198123/* Line 1806 of yacc.c  */
    8120 #line 2250 "parser.yy"
     8124#line 2257 "parser.yy"
    81218125    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81228126    break;
     
    81258129
    81268130/* Line 1806 of yacc.c  */
    8127 #line 2255 "parser.yy"
     8131#line 2262 "parser.yy"
    81288132    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    81298133    break;
     
    81328136
    81338137/* Line 1806 of yacc.c  */
    8134 #line 2257 "parser.yy"
     8138#line 2264 "parser.yy"
    81358139    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    81368140    break;
     
    81398143
    81408144/* Line 1806 of yacc.c  */
    8141 #line 2259 "parser.yy"
     8145#line 2266 "parser.yy"
    81428146    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81438147    break;
     
    81468150
    81478151/* Line 1806 of yacc.c  */
    8148 #line 2264 "parser.yy"
     8152#line 2271 "parser.yy"
    81498153    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    81508154    break;
     
    81538157
    81548158/* Line 1806 of yacc.c  */
    8155 #line 2266 "parser.yy"
     8159#line 2273 "parser.yy"
    81568160    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    81578161    break;
     
    81608164
    81618165/* Line 1806 of yacc.c  */
    8162 #line 2268 "parser.yy"
     8166#line 2275 "parser.yy"
    81638167    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81648168    break;
     
    81678171
    81688172/* Line 1806 of yacc.c  */
    8169 #line 2283 "parser.yy"
     8173#line 2290 "parser.yy"
    81708174    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
    81718175    break;
     
    81748178
    81758179/* Line 1806 of yacc.c  */
    8176 #line 2285 "parser.yy"
     8180#line 2292 "parser.yy"
    81778181    { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
    81788182    break;
     
    81818185
    81828186/* Line 1806 of yacc.c  */
    8183 #line 2287 "parser.yy"
     8187#line 2294 "parser.yy"
    81848188    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81858189    break;
     
    81888192
    81898193/* Line 1806 of yacc.c  */
    8190 #line 2292 "parser.yy"
     8194#line 2299 "parser.yy"
    81918195    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    81928196    break;
     
    81958199
    81968200/* Line 1806 of yacc.c  */
    8197 #line 2294 "parser.yy"
     8201#line 2301 "parser.yy"
    81988202    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    81998203    break;
     
    82028206
    82038207/* Line 1806 of yacc.c  */
    8204 #line 2296 "parser.yy"
     8208#line 2303 "parser.yy"
    82058209    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82068210    break;
     
    82098213
    82108214/* Line 1806 of yacc.c  */
    8211 #line 2301 "parser.yy"
     8215#line 2308 "parser.yy"
    82128216    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    82138217    break;
     
    82168220
    82178221/* Line 1806 of yacc.c  */
    8218 #line 2303 "parser.yy"
     8222#line 2310 "parser.yy"
    82198223    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    82208224    break;
     
    82238227
    82248228/* Line 1806 of yacc.c  */
    8225 #line 2305 "parser.yy"
     8229#line 2312 "parser.yy"
    82268230    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82278231    break;
     
    82308234
    82318235/* Line 1806 of yacc.c  */
    8232 #line 2320 "parser.yy"
     8236#line 2327 "parser.yy"
    82338237    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82348238    break;
     
    82378241
    82388242/* Line 1806 of yacc.c  */
    8239 #line 2323 "parser.yy"
     8243#line 2330 "parser.yy"
    82408244    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82418245    break;
     
    82448248
    82458249/* Line 1806 of yacc.c  */
    8246 #line 2325 "parser.yy"
     8250#line 2332 "parser.yy"
    82478251    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82488252    break;
     
    82518255
    82528256/* Line 1806 of yacc.c  */
    8253 #line 2331 "parser.yy"
     8257#line 2338 "parser.yy"
    82548258    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82558259    break;
     
    82588262
    82598263/* Line 1806 of yacc.c  */
    8260 #line 2336 "parser.yy"
     8264#line 2343 "parser.yy"
    82618265    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    82628266    break;
     
    82658269
    82668270/* Line 1806 of yacc.c  */
    8267 #line 2338 "parser.yy"
     8271#line 2345 "parser.yy"
    82688272    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    82698273    break;
     
    82728276
    82738277/* Line 1806 of yacc.c  */
    8274 #line 2340 "parser.yy"
     8278#line 2347 "parser.yy"
    82758279    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82768280    break;
     
    82798283
    82808284/* Line 1806 of yacc.c  */
    8281 #line 2345 "parser.yy"
     8285#line 2352 "parser.yy"
    82828286    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    82838287    break;
     
    82868290
    82878291/* Line 1806 of yacc.c  */
    8288 #line 2347 "parser.yy"
     8292#line 2354 "parser.yy"
    82898293    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    82908294    break;
     
    82938297
    82948298/* Line 1806 of yacc.c  */
    8295 #line 2349 "parser.yy"
     8299#line 2356 "parser.yy"
    82968300    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    82978301    break;
     
    83008304
    83018305/* Line 1806 of yacc.c  */
    8302 #line 2351 "parser.yy"
     8306#line 2358 "parser.yy"
    83038307    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83048308    break;
     
    83078311
    83088312/* Line 1806 of yacc.c  */
    8309 #line 2356 "parser.yy"
     8313#line 2363 "parser.yy"
    83108314    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    83118315    break;
     
    83148318
    83158319/* Line 1806 of yacc.c  */
    8316 #line 2358 "parser.yy"
     8320#line 2365 "parser.yy"
    83178321    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    83188322    break;
     
    83218325
    83228326/* Line 1806 of yacc.c  */
    8323 #line 2360 "parser.yy"
     8327#line 2367 "parser.yy"
    83248328    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83258329    break;
     
    83288332
    83298333/* Line 1806 of yacc.c  */
    8330 #line 2370 "parser.yy"
     8334#line 2377 "parser.yy"
    83318335    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83328336    break;
     
    83358339
    83368340/* Line 1806 of yacc.c  */
    8337 #line 2373 "parser.yy"
     8341#line 2380 "parser.yy"
    83388342    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83398343    break;
     
    83428346
    83438347/* Line 1806 of yacc.c  */
    8344 #line 2375 "parser.yy"
     8348#line 2382 "parser.yy"
    83458349    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83468350    break;
     
    83498353
    83508354/* Line 1806 of yacc.c  */
    8351 #line 2380 "parser.yy"
     8355#line 2387 "parser.yy"
    83528356    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    83538357    break;
     
    83568360
    83578361/* Line 1806 of yacc.c  */
    8358 #line 2382 "parser.yy"
     8362#line 2389 "parser.yy"
    83598363    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    83608364    break;
     
    83638367
    83648368/* Line 1806 of yacc.c  */
    8365 #line 2384 "parser.yy"
     8369#line 2391 "parser.yy"
    83668370    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83678371    break;
     
    83708374
    83718375/* Line 1806 of yacc.c  */
    8372 #line 2389 "parser.yy"
     8376#line 2396 "parser.yy"
    83738377    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    83748378    break;
     
    83778381
    83788382/* Line 1806 of yacc.c  */
    8379 #line 2391 "parser.yy"
     8383#line 2398 "parser.yy"
    83808384    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    83818385    break;
     
    83848388
    83858389/* Line 1806 of yacc.c  */
    8386 #line 2393 "parser.yy"
     8390#line 2400 "parser.yy"
    83878391    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    83888392    break;
     
    83918395
    83928396/* Line 1806 of yacc.c  */
    8393 #line 2395 "parser.yy"
     8397#line 2402 "parser.yy"
    83948398    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83958399    break;
     
    83988402
    83998403/* Line 1806 of yacc.c  */
    8400 #line 2400 "parser.yy"
     8404#line 2407 "parser.yy"
    84018405    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    84028406    break;
     
    84058409
    84068410/* Line 1806 of yacc.c  */
    8407 #line 2402 "parser.yy"
     8411#line 2409 "parser.yy"
    84088412    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    84098413    break;
     
    84128416
    84138417/* Line 1806 of yacc.c  */
    8414 #line 2404 "parser.yy"
     8418#line 2411 "parser.yy"
    84158419    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84168420    break;
     
    84198423
    84208424/* Line 1806 of yacc.c  */
    8421 #line 2435 "parser.yy"
     8425#line 2442 "parser.yy"
    84228426    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84238427    break;
     
    84268430
    84278431/* Line 1806 of yacc.c  */
    8428 #line 2438 "parser.yy"
     8432#line 2445 "parser.yy"
    84298433    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84308434    break;
     
    84338437
    84348438/* Line 1806 of yacc.c  */
    8435 #line 2440 "parser.yy"
     8439#line 2447 "parser.yy"
    84368440    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84378441    break;
     
    84408444
    84418445/* Line 1806 of yacc.c  */
    8442 #line 2445 "parser.yy"
     8446#line 2452 "parser.yy"
    84438447    {
    84448448                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    84508454
    84518455/* Line 1806 of yacc.c  */
    8452 #line 2450 "parser.yy"
     8456#line 2457 "parser.yy"
    84538457    {
    84548458                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    84608464
    84618465/* Line 1806 of yacc.c  */
    8462 #line 2458 "parser.yy"
     8466#line 2465 "parser.yy"
    84638467    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    84648468    break;
     
    84678471
    84688472/* Line 1806 of yacc.c  */
    8469 #line 2460 "parser.yy"
     8473#line 2467 "parser.yy"
    84708474    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    84718475    break;
     
    84748478
    84758479/* Line 1806 of yacc.c  */
    8476 #line 2462 "parser.yy"
     8480#line 2469 "parser.yy"
    84778481    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84788482    break;
     
    84818485
    84828486/* Line 1806 of yacc.c  */
    8483 #line 2467 "parser.yy"
     8487#line 2474 "parser.yy"
    84848488    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    84858489    break;
     
    84888492
    84898493/* Line 1806 of yacc.c  */
    8490 #line 2469 "parser.yy"
     8494#line 2476 "parser.yy"
    84918495    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    84928496    break;
     
    84958499
    84968500/* Line 1806 of yacc.c  */
    8497 #line 2474 "parser.yy"
     8501#line 2481 "parser.yy"
    84988502    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    84998503    break;
     
    85028506
    85038507/* Line 1806 of yacc.c  */
    8504 #line 2476 "parser.yy"
     8508#line 2483 "parser.yy"
    85058509    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    85068510    break;
     
    85098513
    85108514/* Line 1806 of yacc.c  */
    8511 #line 2491 "parser.yy"
     8515#line 2498 "parser.yy"
    85128516    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    85138517    break;
     
    85168520
    85178521/* Line 1806 of yacc.c  */
    8518 #line 2493 "parser.yy"
     8522#line 2500 "parser.yy"
    85198523    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    85208524    break;
     
    85238527
    85248528/* Line 1806 of yacc.c  */
    8525 #line 2498 "parser.yy"
     8529#line 2505 "parser.yy"
    85268530    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    85278531    break;
     
    85308534
    85318535/* Line 1806 of yacc.c  */
    8532 #line 2500 "parser.yy"
     8536#line 2507 "parser.yy"
    85338537    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    85348538    break;
     
    85378541
    85388542/* Line 1806 of yacc.c  */
    8539 #line 2502 "parser.yy"
     8543#line 2509 "parser.yy"
    85408544    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    85418545    break;
     
    85448548
    85458549/* Line 1806 of yacc.c  */
    8546 #line 2504 "parser.yy"
     8550#line 2511 "parser.yy"
    85478551    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    85488552    break;
     
    85518555
    85528556/* Line 1806 of yacc.c  */
    8553 #line 2506 "parser.yy"
     8557#line 2513 "parser.yy"
    85548558    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85558559    break;
     
    85588562
    85598563/* Line 1806 of yacc.c  */
    8560 #line 2512 "parser.yy"
     8564#line 2519 "parser.yy"
    85618565    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    85628566    break;
     
    85658569
    85668570/* Line 1806 of yacc.c  */
    8567 #line 2514 "parser.yy"
     8571#line 2521 "parser.yy"
    85688572    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    85698573    break;
     
    85728576
    85738577/* Line 1806 of yacc.c  */
    8574 #line 2516 "parser.yy"
     8578#line 2523 "parser.yy"
    85758579    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85768580    break;
     
    85798583
    85808584/* Line 1806 of yacc.c  */
    8581 #line 2521 "parser.yy"
     8585#line 2528 "parser.yy"
    85828586    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    85838587    break;
     
    85868590
    85878591/* Line 1806 of yacc.c  */
    8588 #line 2523 "parser.yy"
     8592#line 2530 "parser.yy"
    85898593    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    85908594    break;
     
    85938597
    85948598/* Line 1806 of yacc.c  */
    8595 #line 2525 "parser.yy"
     8599#line 2532 "parser.yy"
    85968600    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85978601    break;
     
    86008604
    86018605/* Line 1806 of yacc.c  */
    8602 #line 2531 "parser.yy"
     8606#line 2538 "parser.yy"
    86038607    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    86048608    break;
     
    86078611
    86088612/* Line 1806 of yacc.c  */
    8609 #line 2533 "parser.yy"
     8613#line 2540 "parser.yy"
    86108614    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
    86118615    break;
     
    86148618
    86158619/* Line 1806 of yacc.c  */
    8616 #line 2539 "parser.yy"
     8620#line 2546 "parser.yy"
    86178621    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
    86188622    break;
     
    86218625
    86228626/* Line 1806 of yacc.c  */
    8623 #line 2541 "parser.yy"
     8627#line 2548 "parser.yy"
    86248628    { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
    86258629    break;
     
    86288632
    86298633/* Line 1806 of yacc.c  */
    8630 #line 2543 "parser.yy"
     8634#line 2550 "parser.yy"
    86318635    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
    86328636    break;
     
    86358639
    86368640/* Line 1806 of yacc.c  */
    8637 #line 2545 "parser.yy"
     8641#line 2552 "parser.yy"
    86388642    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
    86398643    break;
     
    86428646
    86438647/* Line 1806 of yacc.c  */
    8644 #line 2560 "parser.yy"
     8648#line 2567 "parser.yy"
    86458649    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    86468650    break;
     
    86498653
    86508654/* Line 1806 of yacc.c  */
    8651 #line 2562 "parser.yy"
     8655#line 2569 "parser.yy"
    86528656    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    86538657    break;
     
    86568660
    86578661/* Line 1806 of yacc.c  */
    8658 #line 2567 "parser.yy"
     8662#line 2574 "parser.yy"
    86598663    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    86608664    break;
     
    86638667
    86648668/* Line 1806 of yacc.c  */
    8665 #line 2569 "parser.yy"
     8669#line 2576 "parser.yy"
    86668670    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    86678671    break;
     
    86708674
    86718675/* Line 1806 of yacc.c  */
    8672 #line 2571 "parser.yy"
     8676#line 2578 "parser.yy"
    86738677    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    86748678    break;
     
    86778681
    86788682/* Line 1806 of yacc.c  */
    8679 #line 2573 "parser.yy"
     8683#line 2580 "parser.yy"
    86808684    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    86818685    break;
     
    86848688
    86858689/* Line 1806 of yacc.c  */
    8686 #line 2575 "parser.yy"
     8690#line 2582 "parser.yy"
    86878691    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86888692    break;
     
    86918695
    86928696/* Line 1806 of yacc.c  */
    8693 #line 2581 "parser.yy"
     8697#line 2588 "parser.yy"
    86948698    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    86958699    break;
     
    86988702
    86998703/* Line 1806 of yacc.c  */
    8700 #line 2583 "parser.yy"
     8704#line 2590 "parser.yy"
    87018705    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    87028706    break;
     
    87058709
    87068710/* Line 1806 of yacc.c  */
    8707 #line 2585 "parser.yy"
     8711#line 2592 "parser.yy"
    87088712    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87098713    break;
     
    87128716
    87138717/* Line 1806 of yacc.c  */
    8714 #line 2590 "parser.yy"
     8718#line 2597 "parser.yy"
    87158719    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    87168720    break;
     
    87198723
    87208724/* Line 1806 of yacc.c  */
    8721 #line 2592 "parser.yy"
     8725#line 2599 "parser.yy"
    87228726    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    87238727    break;
     
    87268730
    87278731/* Line 1806 of yacc.c  */
    8728 #line 2594 "parser.yy"
     8732#line 2601 "parser.yy"
    87298733    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87308734    break;
     
    87338737
    87348738/* Line 1806 of yacc.c  */
    8735 #line 2601 "parser.yy"
     8739#line 2608 "parser.yy"
    87368740    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    87378741    break;
     
    87408744
    87418745/* Line 1806 of yacc.c  */
    8742 #line 2612 "parser.yy"
     8746#line 2619 "parser.yy"
    87438747    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    87448748    break;
     
    87478751
    87488752/* Line 1806 of yacc.c  */
    8749 #line 2615 "parser.yy"
     8753#line 2622 "parser.yy"
    87508754    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    87518755    break;
     
    87548758
    87558759/* Line 1806 of yacc.c  */
    8756 #line 2617 "parser.yy"
     8760#line 2624 "parser.yy"
    87578761    { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
    87588762    break;
     
    87618765
    87628766/* Line 1806 of yacc.c  */
    8763 #line 2620 "parser.yy"
     8767#line 2627 "parser.yy"
    87648768    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    87658769    break;
     
    87688772
    87698773/* Line 1806 of yacc.c  */
    8770 #line 2622 "parser.yy"
     8774#line 2629 "parser.yy"
    87718775    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
    87728776    break;
     
    87758779
    87768780/* Line 1806 of yacc.c  */
    8777 #line 2624 "parser.yy"
     8781#line 2631 "parser.yy"
    87788782    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
    87798783    break;
     
    87828786
    87838787/* Line 1806 of yacc.c  */
    8784 #line 2638 "parser.yy"
     8788#line 2645 "parser.yy"
    87858789    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    87868790    break;
     
    87898793
    87908794/* Line 1806 of yacc.c  */
    8791 #line 2640 "parser.yy"
     8795#line 2647 "parser.yy"
    87928796    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    87938797    break;
     
    87968800
    87978801/* Line 1806 of yacc.c  */
    8798 #line 2645 "parser.yy"
     8802#line 2652 "parser.yy"
    87998803    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    88008804    break;
     
    88038807
    88048808/* Line 1806 of yacc.c  */
    8805 #line 2647 "parser.yy"
     8809#line 2654 "parser.yy"
    88068810    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    88078811    break;
     
    88108814
    88118815/* Line 1806 of yacc.c  */
    8812 #line 2649 "parser.yy"
     8816#line 2656 "parser.yy"
    88138817    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    88148818    break;
     
    88178821
    88188822/* Line 1806 of yacc.c  */
    8819 #line 2651 "parser.yy"
     8823#line 2658 "parser.yy"
    88208824    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    88218825    break;
     
    88248828
    88258829/* Line 1806 of yacc.c  */
    8826 #line 2653 "parser.yy"
     8830#line 2660 "parser.yy"
    88278831    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    88288832    break;
     
    88318835
    88328836/* Line 1806 of yacc.c  */
    8833 #line 2659 "parser.yy"
     8837#line 2666 "parser.yy"
    88348838    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    88358839    break;
     
    88388842
    88398843/* Line 1806 of yacc.c  */
    8840 #line 2661 "parser.yy"
     8844#line 2668 "parser.yy"
    88418845    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    88428846    break;
    88438847
    88448848  case 698:
    8845 
    8846 /* Line 1806 of yacc.c  */
    8847 #line 2663 "parser.yy"
    8848     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8849     break;
    8850 
    8851   case 699:
    8852 
    8853 /* Line 1806 of yacc.c  */
    8854 #line 2668 "parser.yy"
    8855     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8856     break;
    8857 
    8858   case 700:
    88598849
    88608850/* Line 1806 of yacc.c  */
     
    88638853    break;
    88648854
     8855  case 699:
     8856
     8857/* Line 1806 of yacc.c  */
     8858#line 2675 "parser.yy"
     8859    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8860    break;
     8861
     8862  case 700:
     8863
     8864/* Line 1806 of yacc.c  */
     8865#line 2677 "parser.yy"
     8866    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8867    break;
     8868
    88658869  case 703:
    88668870
    88678871/* Line 1806 of yacc.c  */
    8868 #line 2680 "parser.yy"
     8872#line 2687 "parser.yy"
    88698873    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    88708874    break;
     
    88738877
    88748878/* Line 1806 of yacc.c  */
    8875 #line 2690 "parser.yy"
     8879#line 2697 "parser.yy"
    88768880    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    88778881    break;
     
    88808884
    88818885/* Line 1806 of yacc.c  */
    8882 #line 2692 "parser.yy"
     8886#line 2699 "parser.yy"
    88838887    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    88848888    break;
     
    88878891
    88888892/* Line 1806 of yacc.c  */
    8889 #line 2694 "parser.yy"
     8893#line 2701 "parser.yy"
    88908894    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    88918895    break;
     
    88948898
    88958899/* Line 1806 of yacc.c  */
    8896 #line 2696 "parser.yy"
     8900#line 2703 "parser.yy"
    88978901    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    88988902    break;
     
    89018905
    89028906/* Line 1806 of yacc.c  */
    8903 #line 2698 "parser.yy"
     8907#line 2705 "parser.yy"
    89048908    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89058909    break;
     
    89088912
    89098913/* Line 1806 of yacc.c  */
    8910 #line 2700 "parser.yy"
     8914#line 2707 "parser.yy"
    89118915    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89128916    break;
     
    89158919
    89168920/* Line 1806 of yacc.c  */
    8917 #line 2707 "parser.yy"
     8921#line 2714 "parser.yy"
    89188922    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89198923    break;
     
    89228926
    89238927/* Line 1806 of yacc.c  */
    8924 #line 2709 "parser.yy"
     8928#line 2716 "parser.yy"
    89258929    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    89268930    break;
     
    89298933
    89308934/* Line 1806 of yacc.c  */
    8931 #line 2711 "parser.yy"
     8935#line 2718 "parser.yy"
    89328936    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89338937    break;
     
    89368940
    89378941/* Line 1806 of yacc.c  */
    8938 #line 2713 "parser.yy"
     8942#line 2720 "parser.yy"
    89398943    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    89408944    break;
     
    89438947
    89448948/* Line 1806 of yacc.c  */
    8945 #line 2715 "parser.yy"
     8949#line 2722 "parser.yy"
    89468950    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    89478951    break;
     
    89508954
    89518955/* Line 1806 of yacc.c  */
    8952 #line 2717 "parser.yy"
     8956#line 2724 "parser.yy"
    89538957    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89548958    break;
     
    89578961
    89588962/* Line 1806 of yacc.c  */
    8959 #line 2719 "parser.yy"
     8963#line 2726 "parser.yy"
    89608964    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    89618965    break;
     
    89648968
    89658969/* Line 1806 of yacc.c  */
    8966 #line 2721 "parser.yy"
     8970#line 2728 "parser.yy"
    89678971    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89688972    break;
     
    89718975
    89728976/* Line 1806 of yacc.c  */
    8973 #line 2723 "parser.yy"
     8977#line 2730 "parser.yy"
    89748978    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    89758979    break;
     
    89788982
    89798983/* Line 1806 of yacc.c  */
    8980 #line 2725 "parser.yy"
     8984#line 2732 "parser.yy"
    89818985    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    89828986    break;
     
    89858989
    89868990/* Line 1806 of yacc.c  */
    8987 #line 2730 "parser.yy"
     8991#line 2737 "parser.yy"
    89888992    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    89898993    break;
     
    89928996
    89938997/* Line 1806 of yacc.c  */
    8994 #line 2732 "parser.yy"
     8998#line 2739 "parser.yy"
    89958999    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    89969000    break;
     
    89999003
    90009004/* Line 1806 of yacc.c  */
    9001 #line 2737 "parser.yy"
     9005#line 2744 "parser.yy"
    90029006    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
    90039007    break;
     
    90069010
    90079011/* Line 1806 of yacc.c  */
    9008 #line 2739 "parser.yy"
     9012#line 2746 "parser.yy"
    90099013    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
    90109014    break;
     
    90139017
    90149018/* Line 1806 of yacc.c  */
    9015 #line 2766 "parser.yy"
     9019#line 2773 "parser.yy"
    90169020    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    90179021    break;
     
    90209024
    90219025/* Line 1806 of yacc.c  */
    9022 #line 2777 "parser.yy"
     9026#line 2784 "parser.yy"
    90239027    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    90249028    break;
     
    90279031
    90289032/* Line 1806 of yacc.c  */
    9029 #line 2779 "parser.yy"
     9033#line 2786 "parser.yy"
    90309034    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    90319035    break;
     
    90349038
    90359039/* Line 1806 of yacc.c  */
    9036 #line 2781 "parser.yy"
     9040#line 2788 "parser.yy"
    90379041    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    90389042    break;
     
    90419045
    90429046/* Line 1806 of yacc.c  */
    9043 #line 2783 "parser.yy"
     9047#line 2790 "parser.yy"
    90449048    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    90459049    break;
     
    90489052
    90499053/* Line 1806 of yacc.c  */
    9050 #line 2785 "parser.yy"
     9054#line 2792 "parser.yy"
    90519055    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    90529056    break;
     
    90559059
    90569060/* Line 1806 of yacc.c  */
    9057 #line 2787 "parser.yy"
     9061#line 2794 "parser.yy"
    90589062    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    90599063    break;
     
    90629066
    90639067/* Line 1806 of yacc.c  */
    9064 #line 2794 "parser.yy"
     9068#line 2801 "parser.yy"
    90659069    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    90669070    break;
     
    90699073
    90709074/* Line 1806 of yacc.c  */
    9071 #line 2796 "parser.yy"
     9075#line 2803 "parser.yy"
    90729076    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    90739077    break;
     
    90769080
    90779081/* Line 1806 of yacc.c  */
    9078 #line 2798 "parser.yy"
     9082#line 2805 "parser.yy"
    90799083    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    90809084    break;
     
    90839087
    90849088/* Line 1806 of yacc.c  */
    9085 #line 2800 "parser.yy"
     9089#line 2807 "parser.yy"
    90869090    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    90879091    break;
     
    90909094
    90919095/* Line 1806 of yacc.c  */
    9092 #line 2802 "parser.yy"
     9096#line 2809 "parser.yy"
    90939097    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    90949098    break;
     
    90979101
    90989102/* Line 1806 of yacc.c  */
    9099 #line 2804 "parser.yy"
     9103#line 2811 "parser.yy"
    91009104    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    91019105    break;
     
    91049108
    91059109/* Line 1806 of yacc.c  */
    9106 #line 2809 "parser.yy"
     9110#line 2816 "parser.yy"
    91079111    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    91089112    break;
     
    91119115
    91129116/* Line 1806 of yacc.c  */
    9113 #line 2814 "parser.yy"
     9117#line 2821 "parser.yy"
    91149118    { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); }
    91159119    break;
     
    91189122
    91199123/* Line 1806 of yacc.c  */
    9120 #line 2816 "parser.yy"
     9124#line 2823 "parser.yy"
    91219125    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    91229126    break;
     
    91259129
    91269130/* Line 1806 of yacc.c  */
    9127 #line 2818 "parser.yy"
     9131#line 2825 "parser.yy"
    91289132    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    91299133    break;
     
    91329136
    91339137/* Line 1806 of yacc.c  */
    9134 #line 2842 "parser.yy"
     9138#line 2849 "parser.yy"
    91359139    { (yyval.en) = 0; }
    91369140    break;
     
    91399143
    91409144/* Line 1806 of yacc.c  */
    9141 #line 2844 "parser.yy"
     9145#line 2851 "parser.yy"
    91429146    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    91439147    break;
     
    91469150
    91479151/* Line 1806 of yacc.c  */
    9148 #line 9149 "Parser/parser.cc"
     9152#line 9153 "Parser/parser.cc"
    91499153      default: break;
    91509154    }
     
    93779381
    93789382/* Line 2067 of yacc.c  */
    9379 #line 2847 "parser.yy"
     9383#line 2854 "parser.yy"
    93809384
    93819385// ----end of grammar----
Note: See TracChangeset for help on using the changeset viewer.