Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/parser.cc

    r9059213 rfaddbd8  
    10271027     358,   360,   362,   367,   368,   374,   378,   380,   381,   382,
    10281028     384,   385,   387,   389,   391,   400,   401,   407,   408,   412,
    1029      413,   417,   421,   423,   425,   427,   432,   434,   438,   441,
    1030      443,   445,   450,   463,   465,   467,   469,   471,   473,   475,
    1031      477,   479,   481,   483,   490,   491,   497,   498,   499,   500,
    1032      504,   505,   507,   512,   513,   515,   517,   522,   523,   525,
    1033      530,   531,   533,   538,   539,   541,   543,   545,   550,   551,
    1034      553,   558,   559,   564,   565,   570,   571,   576,   577,   582,
    1035      583,   588,   589,   592,   594,   599,   604,   605,   607,   613,
    1036      614,   618,   619,   620,   621,   622,   623,   624,   625,   626,
    1037      627,   628,   629,   635,   637,   639,   641,   646,   647,   652,
    1038      653,   659,   660,   666,   667,   668,   669,   670,   671,   672,
    1039      673,   674,   684,   691,   693,   703,   704,   709,   711,   717,
    1040      719,   723,   724,   729,   734,   737,   739,   741,   751,   753,
    1041      764,   765,   767,   771,   773,   777,   778,   783,   784,   788,
    1042      793,   794,   798,   800,   806,   807,   811,   813,   815,   817,
    1043      823,   824,   828,   830,   835,   837,   839,   844,   846,   851,
    1044      853,   857,   860,   864,   867,   871,   873,   875,   877,   882,
    1045      884,   886,   891,   893,   895,   897,   899,   904,   906,   908,
    1046      910,   915,   927,   928,   933,   935,   940,   944,   946,   948,
    1047      950,   952,   958,   959,   965,   966,   970,   971,   976,   978,
    1048      984,   985,   987,   992,   997,  1007,  1009,  1013,  1014,  1019,
    1049     1021,  1025,  1026,  1030,  1032,  1036,  1037,  1041,  1042,  1046,
    1050     1047,  1062,  1063,  1064,  1065,  1066,  1070,  1075,  1082,  1092,
    1051     1097,  1102,  1110,  1115,  1120,  1125,  1130,  1138,  1160,  1165,
    1052     1172,  1174,  1181,  1186,  1191,  1202,  1207,  1212,  1217,  1222,
    1053     1231,  1236,  1244,  1245,  1246,  1247,  1253,  1258,  1266,  1267,
    1054     1268,  1269,  1273,  1274,  1275,  1276,  1281,  1282,  1291,  1292,
    1055     1297,  1298,  1303,  1305,  1307,  1309,  1311,  1314,  1313,  1325,
    1056     1326,  1328,  1338,  1339,  1344,  1346,  1348,  1350,  1352,  1355,
    1057     1357,  1360,  1365,  1367,  1369,  1371,  1373,  1375,  1377,  1379,
    1058     1381,  1383,  1385,  1387,  1389,  1395,  1396,  1398,  1400,  1402,
    1059     1407,  1408,  1414,  1415,  1417,  1419,  1424,  1426,  1428,  1430,
    1060     1435,  1436,  1438,  1440,  1445,  1446,  1448,  1453,  1454,  1456,
    1061     1458,  1463,  1465,  1467,  1472,  1473,  1477,  1479,  1485,  1484,
    1062     1488,  1490,  1495,  1497,  1503,  1504,  1509,  1510,  1512,  1513,
    1063     1522,  1523,  1525,  1527,  1532,  1534,  1540,  1541,  1543,  1546,
    1064     1549,  1554,  1555,  1560,  1565,  1569,  1571,  1577,  1576,  1583,
    1065     1585,  1591,  1592,  1600,  1601,  1605,  1606,  1607,  1609,  1611,
    1066     1618,  1619,  1621,  1623,  1628,  1629,  1635,  1636,  1640,  1641,
    1067     1646,  1647,  1648,  1650,  1658,  1659,  1661,  1664,  1666,  1670,
    1068     1671,  1672,  1674,  1676,  1680,  1685,  1693,  1694,  1703,  1705,
    1069     1710,  1711,  1712,  1716,  1717,  1718,  1722,  1723,  1724,  1728,
    1070     1729,  1730,  1735,  1736,  1737,  1738,  1744,  1745,  1747,  1752,
    1071     1753,  1758,  1759,  1760,  1761,  1762,  1777,  1778,  1783,  1784,
    1072     1790,  1792,  1795,  1797,  1799,  1822,  1823,  1825,  1827,  1832,
    1073     1833,  1835,  1840,  1845,  1846,  1852,  1851,  1855,  1859,  1861,
    1074     1863,  1869,  1870,  1875,  1880,  1882,  1887,  1889,  1890,  1892,
    1075     1897,  1899,  1901,  1906,  1908,  1913,  1918,  1926,  1932,  1931,
    1076     1945,  1946,  1951,  1952,  1956,  1961,  1966,  1974,  1979,  1990,
    1077     1991,  1996,  1997,  2003,  2004,  2008,  2009,  2010,  2013,  2012,
    1078     2023,  2032,  2038,  2044,  2053,  2059,  2065,  2071,  2077,  2085,
    1079     2091,  2099,  2105,  2114,  2115,  2116,  2120,  2124,  2126,  2131,
    1080     2132,  2136,  2137,  2142,  2148,  2149,  2152,  2154,  2155,  2159,
    1081     2160,  2161,  2162,  2196,  2198,  2199,  2201,  2206,  2211,  2216,
    1082     2218,  2220,  2225,  2227,  2229,  2231,  2236,  2238,  2247,  2249,
    1083     2250,  2255,  2257,  2259,  2264,  2266,  2268,  2273,  2275,  2277,
    1084     2286,  2287,  2288,  2292,  2294,  2296,  2301,  2303,  2305,  2310,
    1085     2312,  2314,  2329,  2331,  2332,  2334,  2339,  2340,  2345,  2347,
    1086     2349,  2354,  2356,  2358,  2360,  2365,  2367,  2369,  2379,  2381,
    1087     2382,  2384,  2389,  2391,  2393,  2398,  2400,  2402,  2404,  2409,
    1088     2411,  2413,  2444,  2446,  2447,  2449,  2454,  2459,  2467,  2469,
    1089     2471,  2476,  2478,  2483,  2485,  2499,  2500,  2502,  2507,  2509,
    1090     2511,  2513,  2515,  2520,  2521,  2523,  2525,  2530,  2532,  2534,
    1091     2540,  2542,  2544,  2548,  2550,  2552,  2554,  2568,  2569,  2571,
    1092     2576,  2578,  2580,  2582,  2584,  2589,  2590,  2592,  2594,  2599,
    1093     2601,  2603,  2609,  2610,  2612,  2621,  2624,  2626,  2629,  2631,
    1094     2633,  2646,  2647,  2649,  2654,  2656,  2658,  2660,  2662,  2667,
    1095     2668,  2670,  2672,  2677,  2679,  2687,  2688,  2689,  2694,  2695,
    1096     2699,  2701,  2703,  2705,  2707,  2709,  2716,  2718,  2720,  2722,
    1097     2724,  2727,  2729,  2731,  2733,  2735,  2740,  2742,  2744,  2749,
    1098     2775,  2776,  2778,  2782,  2783,  2787,  2789,  2791,  2793,  2795,
    1099     2797,  2804,  2806,  2808,  2810,  2812,  2814,  2819,  2824,  2826,
    1100     2828,  2846,  2848,  2853,  2854
     1029     413,   417,   421,   423,   425,   427,   432,   433,   437,   440,
     1030     442,   444,   449,   462,   464,   466,   468,   470,   472,   474,
     1031     476,   478,   480,   482,   489,   490,   496,   497,   498,   499,
     1032     503,   504,   506,   511,   512,   514,   516,   521,   522,   524,
     1033     529,   530,   532,   537,   538,   540,   542,   544,   549,   550,
     1034     552,   557,   558,   563,   564,   569,   570,   575,   576,   581,
     1035     582,   587,   588,   591,   593,   598,   603,   604,   606,   612,
     1036     613,   617,   618,   619,   620,   621,   622,   623,   624,   625,
     1037     626,   627,   628,   634,   636,   638,   640,   645,   646,   651,
     1038     652,   658,   659,   665,   666,   667,   668,   669,   670,   671,
     1039     672,   673,   683,   690,   692,   702,   703,   708,   710,   716,
     1040     718,   722,   723,   728,   733,   736,   738,   740,   750,   752,
     1041     763,   764,   766,   770,   772,   776,   777,   782,   783,   787,
     1042     792,   793,   797,   799,   805,   806,   810,   812,   814,   816,
     1043     822,   823,   827,   829,   834,   836,   838,   843,   845,   850,
     1044     852,   856,   859,   863,   866,   870,   872,   874,   876,   881,
     1045     883,   885,   890,   892,   894,   896,   898,   903,   905,   907,
     1046     909,   914,   926,   927,   932,   934,   939,   943,   945,   947,
     1047     949,   951,   957,   958,   964,   965,   969,   970,   975,   977,
     1048     983,   984,   986,   991,   996,  1006,  1008,  1012,  1013,  1018,
     1049    1020,  1024,  1025,  1029,  1031,  1035,  1036,  1040,  1041,  1045,
     1050    1046,  1061,  1062,  1063,  1064,  1065,  1069,  1074,  1081,  1091,
     1051    1096,  1101,  1109,  1114,  1119,  1124,  1129,  1137,  1159,  1164,
     1052    1171,  1173,  1180,  1185,  1190,  1201,  1206,  1211,  1216,  1221,
     1053    1230,  1235,  1243,  1244,  1245,  1246,  1252,  1257,  1265,  1266,
     1054    1267,  1268,  1272,  1273,  1274,  1275,  1280,  1281,  1290,  1291,
     1055    1296,  1297,  1302,  1304,  1306,  1308,  1310,  1313,  1312,  1324,
     1056    1325,  1327,  1337,  1338,  1343,  1345,  1347,  1349,  1351,  1354,
     1057    1356,  1359,  1364,  1366,  1368,  1370,  1372,  1374,  1376,  1378,
     1058    1380,  1382,  1384,  1386,  1388,  1394,  1395,  1397,  1399,  1401,
     1059    1406,  1407,  1413,  1414,  1416,  1418,  1423,  1425,  1427,  1429,
     1060    1434,  1435,  1437,  1439,  1444,  1445,  1447,  1452,  1453,  1455,
     1061    1457,  1462,  1464,  1466,  1471,  1472,  1476,  1478,  1484,  1483,
     1062    1487,  1489,  1494,  1496,  1502,  1503,  1508,  1509,  1511,  1512,
     1063    1521,  1522,  1524,  1526,  1531,  1533,  1539,  1540,  1542,  1545,
     1064    1548,  1553,  1554,  1559,  1564,  1568,  1570,  1576,  1575,  1582,
     1065    1584,  1590,  1591,  1599,  1600,  1604,  1605,  1606,  1608,  1610,
     1066    1617,  1618,  1620,  1622,  1627,  1628,  1634,  1635,  1639,  1640,
     1067    1645,  1646,  1647,  1649,  1657,  1658,  1660,  1663,  1665,  1669,
     1068    1670,  1671,  1673,  1675,  1679,  1684,  1692,  1693,  1702,  1704,
     1069    1709,  1710,  1711,  1715,  1716,  1717,  1721,  1722,  1723,  1727,
     1070    1728,  1729,  1734,  1735,  1736,  1737,  1743,  1744,  1746,  1751,
     1071    1752,  1757,  1758,  1759,  1760,  1761,  1776,  1777,  1782,  1783,
     1072    1789,  1791,  1794,  1796,  1798,  1821,  1822,  1824,  1826,  1831,
     1073    1832,  1834,  1839,  1844,  1845,  1851,  1850,  1854,  1858,  1860,
     1074    1862,  1868,  1869,  1874,  1879,  1881,  1886,  1888,  1889,  1891,
     1075    1896,  1898,  1900,  1905,  1907,  1912,  1917,  1925,  1931,  1930,
     1076    1944,  1945,  1950,  1951,  1955,  1960,  1965,  1973,  1978,  1989,
     1077    1990,  1995,  1996,  2002,  2003,  2007,  2008,  2009,  2012,  2011,
     1078    2022,  2031,  2037,  2043,  2052,  2058,  2064,  2070,  2076,  2084,
     1079    2090,  2098,  2104,  2113,  2114,  2115,  2119,  2123,  2125,  2130,
     1080    2131,  2135,  2136,  2141,  2147,  2148,  2151,  2153,  2154,  2158,
     1081    2159,  2160,  2161,  2195,  2197,  2198,  2200,  2205,  2210,  2215,
     1082    2217,  2219,  2224,  2226,  2228,  2230,  2235,  2237,  2246,  2248,
     1083    2249,  2254,  2256,  2258,  2263,  2265,  2267,  2272,  2274,  2276,
     1084    2285,  2286,  2287,  2291,  2293,  2295,  2300,  2302,  2304,  2309,
     1085    2311,  2313,  2328,  2330,  2331,  2333,  2338,  2339,  2344,  2346,
     1086    2348,  2353,  2355,  2357,  2359,  2364,  2366,  2368,  2378,  2380,
     1087    2381,  2383,  2388,  2390,  2392,  2397,  2399,  2401,  2403,  2408,
     1088    2410,  2412,  2443,  2445,  2446,  2448,  2453,  2458,  2466,  2468,
     1089    2470,  2475,  2477,  2482,  2484,  2498,  2499,  2501,  2506,  2508,
     1090    2510,  2512,  2514,  2519,  2520,  2522,  2524,  2529,  2531,  2533,
     1091    2539,  2541,  2543,  2547,  2549,  2551,  2553,  2567,  2568,  2570,
     1092    2575,  2577,  2579,  2581,  2583,  2588,  2589,  2591,  2593,  2598,
     1093    2600,  2602,  2608,  2609,  2611,  2620,  2623,  2625,  2628,  2630,
     1094    2632,  2645,  2646,  2648,  2653,  2655,  2657,  2659,  2661,  2666,
     1095    2667,  2669,  2671,  2676,  2678,  2686,  2687,  2688,  2693,  2694,
     1096    2698,  2700,  2702,  2704,  2706,  2708,  2715,  2717,  2719,  2721,
     1097    2723,  2725,  2727,  2729,  2731,  2733,  2738,  2740,  2742,  2747,
     1098    2773,  2774,  2776,  2780,  2781,  2785,  2787,  2789,  2791,  2793,
     1099    2795,  2802,  2804,  2806,  2808,  2810,  2812,  2817,  2822,  2824,
     1100    2826,  2844,  2846,  2851,  2852
    11011101};
    11021102#endif
     
    51815181
    51825182/* Line 1806 of yacc.c  */
    5183 #line 442 "parser.yy"
     5183#line 441 "parser.yy"
    51845184    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    51855185    break;
     
    51885188
    51895189/* Line 1806 of yacc.c  */
    5190 #line 444 "parser.yy"
     5190#line 443 "parser.yy"
    51915191    { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
    51925192    break;
     
    51955195
    51965196/* Line 1806 of yacc.c  */
    5197 #line 446 "parser.yy"
     5197#line 445 "parser.yy"
    51985198    { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); }
    51995199    break;
     
    52025202
    52035203/* Line 1806 of yacc.c  */
    5204 #line 451 "parser.yy"
     5204#line 450 "parser.yy"
    52055205    {
    52065206                        switch ( (yyvsp[(1) - (2)].op) ) {
     
    52205220
    52215221/* Line 1806 of yacc.c  */
    5222 #line 464 "parser.yy"
     5222#line 463 "parser.yy"
    52235223    { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); }
    52245224    break;
     
    52275227
    52285228/* Line 1806 of yacc.c  */
    5229 #line 466 "parser.yy"
     5229#line 465 "parser.yy"
    52305230    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); }
    52315231    break;
     
    52345234
    52355235/* Line 1806 of yacc.c  */
    5236 #line 468 "parser.yy"
     5236#line 467 "parser.yy"
    52375237    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[(2) - (2)].en) ) ); }
    52385238    break;
     
    52415241
    52425242/* Line 1806 of yacc.c  */
    5243 #line 470 "parser.yy"
     5243#line 469 "parser.yy"
    52445244    { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); }
    52455245    break;
     
    52485248
    52495249/* Line 1806 of yacc.c  */
    5250 #line 472 "parser.yy"
     5250#line 471 "parser.yy"
    52515251    { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); }
    52525252    break;
     
    52555255
    52565256/* Line 1806 of yacc.c  */
    5257 #line 474 "parser.yy"
     5257#line 473 "parser.yy"
    52585258    { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); }
    52595259    break;
     
    52625262
    52635263/* Line 1806 of yacc.c  */
    5264 #line 476 "parser.yy"
     5264#line 475 "parser.yy"
    52655265    { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); }
    52665266    break;
     
    52695269
    52705270/* Line 1806 of yacc.c  */
    5271 #line 478 "parser.yy"
     5271#line 477 "parser.yy"
    52725272    { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); }
    52735273    break;
     
    52765276
    52775277/* Line 1806 of yacc.c  */
    5278 #line 480 "parser.yy"
     5278#line 479 "parser.yy"
    52795279    { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); }
    52805280    break;
     
    52835283
    52845284/* Line 1806 of yacc.c  */
    5285 #line 482 "parser.yy"
     5285#line 481 "parser.yy"
    52865286    { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); }
    52875287    break;
     
    52905290
    52915291/* Line 1806 of yacc.c  */
    5292 #line 484 "parser.yy"
     5292#line 483 "parser.yy"
    52935293    { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); }
    52945294    break;
     
    52975297
    52985298/* Line 1806 of yacc.c  */
     5299#line 489 "parser.yy"
     5300    { (yyval.op) = OperKinds::PointTo; }
     5301    break;
     5302
     5303  case 65:
     5304
     5305/* Line 1806 of yacc.c  */
    52995306#line 490 "parser.yy"
    5300     { (yyval.op) = OperKinds::PointTo; }
    5301     break;
    5302 
    5303   case 65:
    5304 
    5305 /* Line 1806 of yacc.c  */
    5306 #line 491 "parser.yy"
    53075307    { (yyval.op) = OperKinds::AddressOf; }
    53085308    break;
     
    53115311
    53125312/* Line 1806 of yacc.c  */
     5313#line 496 "parser.yy"
     5314    { (yyval.op) = OperKinds::UnPlus; }
     5315    break;
     5316
     5317  case 67:
     5318
     5319/* Line 1806 of yacc.c  */
    53135320#line 497 "parser.yy"
    5314     { (yyval.op) = OperKinds::UnPlus; }
    5315     break;
    5316 
    5317   case 67:
     5321    { (yyval.op) = OperKinds::UnMinus; }
     5322    break;
     5323
     5324  case 68:
    53185325
    53195326/* Line 1806 of yacc.c  */
    53205327#line 498 "parser.yy"
    5321     { (yyval.op) = OperKinds::UnMinus; }
    5322     break;
    5323 
    5324   case 68:
     5328    { (yyval.op) = OperKinds::Neg; }
     5329    break;
     5330
     5331  case 69:
    53255332
    53265333/* Line 1806 of yacc.c  */
    53275334#line 499 "parser.yy"
    5328     { (yyval.op) = OperKinds::Neg; }
    5329     break;
    5330 
    5331   case 69:
    5332 
    5333 /* Line 1806 of yacc.c  */
    5334 #line 500 "parser.yy"
    53355335    { (yyval.op) = OperKinds::BitNeg; }
    53365336    break;
     
    53395339
    53405340/* Line 1806 of yacc.c  */
    5341 #line 506 "parser.yy"
     5341#line 505 "parser.yy"
    53425342    { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }
    53435343    break;
     
    53465346
    53475347/* Line 1806 of yacc.c  */
    5348 #line 508 "parser.yy"
     5348#line 507 "parser.yy"
    53495349    { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }
    53505350    break;
     
    53535353
    53545354/* Line 1806 of yacc.c  */
    5355 #line 514 "parser.yy"
     5355#line 513 "parser.yy"
    53565356    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53575357    break;
     
    53605360
    53615361/* Line 1806 of yacc.c  */
    5362 #line 516 "parser.yy"
     5362#line 515 "parser.yy"
    53635363    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53645364    break;
     
    53675367
    53685368/* Line 1806 of yacc.c  */
    5369 #line 518 "parser.yy"
     5369#line 517 "parser.yy"
    53705370    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53715371    break;
     
    53745374
    53755375/* Line 1806 of yacc.c  */
    5376 #line 524 "parser.yy"
     5376#line 523 "parser.yy"
    53775377    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53785378    break;
     
    53815381
    53825382/* Line 1806 of yacc.c  */
    5383 #line 526 "parser.yy"
     5383#line 525 "parser.yy"
    53845384    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53855385    break;
     
    53885388
    53895389/* Line 1806 of yacc.c  */
    5390 #line 532 "parser.yy"
     5390#line 531 "parser.yy"
    53915391    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53925392    break;
     
    53955395
    53965396/* Line 1806 of yacc.c  */
    5397 #line 534 "parser.yy"
     5397#line 533 "parser.yy"
    53985398    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53995399    break;
     
    54025402
    54035403/* Line 1806 of yacc.c  */
    5404 #line 540 "parser.yy"
     5404#line 539 "parser.yy"
    54055405    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54065406    break;
     
    54095409
    54105410/* Line 1806 of yacc.c  */
    5411 #line 542 "parser.yy"
     5411#line 541 "parser.yy"
    54125412    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54135413    break;
     
    54165416
    54175417/* Line 1806 of yacc.c  */
    5418 #line 544 "parser.yy"
     5418#line 543 "parser.yy"
    54195419    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54205420    break;
     
    54235423
    54245424/* Line 1806 of yacc.c  */
    5425 #line 546 "parser.yy"
     5425#line 545 "parser.yy"
    54265426    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54275427    break;
     
    54305430
    54315431/* Line 1806 of yacc.c  */
    5432 #line 552 "parser.yy"
     5432#line 551 "parser.yy"
    54335433    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54345434    break;
     
    54375437
    54385438/* Line 1806 of yacc.c  */
    5439 #line 554 "parser.yy"
     5439#line 553 "parser.yy"
    54405440    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54415441    break;
     
    54445444
    54455445/* Line 1806 of yacc.c  */
    5446 #line 560 "parser.yy"
     5446#line 559 "parser.yy"
    54475447    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54485448    break;
     
    54515451
    54525452/* Line 1806 of yacc.c  */
    5453 #line 566 "parser.yy"
     5453#line 565 "parser.yy"
    54545454    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54555455    break;
     
    54585458
    54595459/* Line 1806 of yacc.c  */
    5460 #line 572 "parser.yy"
     5460#line 571 "parser.yy"
    54615461    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54625462    break;
     
    54655465
    54665466/* Line 1806 of yacc.c  */
    5467 #line 578 "parser.yy"
     5467#line 577 "parser.yy"
    54685468    { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); }
    54695469    break;
     
    54725472
    54735473/* Line 1806 of yacc.c  */
    5474 #line 584 "parser.yy"
     5474#line 583 "parser.yy"
    54755475    { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); }
    54765476    break;
     
    54795479
    54805480/* Line 1806 of yacc.c  */
    5481 #line 590 "parser.yy"
     5481#line 589 "parser.yy"
    54825482    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
    54835483    break;
     
    54865486
    54875487/* Line 1806 of yacc.c  */
    5488 #line 593 "parser.yy"
     5488#line 592 "parser.yy"
    54895489    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); }
    54905490    break;
     
    54935493
    54945494/* Line 1806 of yacc.c  */
    5495 #line 595 "parser.yy"
     5495#line 594 "parser.yy"
    54965496    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
    54975497    break;
     
    55005500
    55015501/* Line 1806 of yacc.c  */
    5502 #line 606 "parser.yy"
     5502#line 605 "parser.yy"
    55035503    { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    55045504    break;
     
    55075507
    55085508/* Line 1806 of yacc.c  */
    5509 #line 608 "parser.yy"
     5509#line 607 "parser.yy"
    55105510    { (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) ) ); }
    55115511    break;
     
    55145514
    55155515/* Line 1806 of yacc.c  */
    5516 #line 613 "parser.yy"
     5516#line 612 "parser.yy"
    55175517    { (yyval.en) = nullptr; }
    55185518    break;
     
    55215521
    55225522/* Line 1806 of yacc.c  */
     5523#line 617 "parser.yy"
     5524    { (yyval.op) = OperKinds::Assign; }
     5525    break;
     5526
     5527  case 112:
     5528
     5529/* Line 1806 of yacc.c  */
    55235530#line 618 "parser.yy"
    5524     { (yyval.op) = OperKinds::Assign; }
    5525     break;
    5526 
    5527   case 112:
     5531    { (yyval.op) = OperKinds::AtAssn; }
     5532    break;
     5533
     5534  case 113:
    55285535
    55295536/* Line 1806 of yacc.c  */
    55305537#line 619 "parser.yy"
    5531     { (yyval.op) = OperKinds::AtAssn; }
    5532     break;
    5533 
    5534   case 113:
     5538    { (yyval.op) = OperKinds::MulAssn; }
     5539    break;
     5540
     5541  case 114:
    55355542
    55365543/* Line 1806 of yacc.c  */
    55375544#line 620 "parser.yy"
    5538     { (yyval.op) = OperKinds::MulAssn; }
    5539     break;
    5540 
    5541   case 114:
     5545    { (yyval.op) = OperKinds::DivAssn; }
     5546    break;
     5547
     5548  case 115:
    55425549
    55435550/* Line 1806 of yacc.c  */
    55445551#line 621 "parser.yy"
    5545     { (yyval.op) = OperKinds::DivAssn; }
    5546     break;
    5547 
    5548   case 115:
     5552    { (yyval.op) = OperKinds::ModAssn; }
     5553    break;
     5554
     5555  case 116:
    55495556
    55505557/* Line 1806 of yacc.c  */
    55515558#line 622 "parser.yy"
    5552     { (yyval.op) = OperKinds::ModAssn; }
    5553     break;
    5554 
    5555   case 116:
     5559    { (yyval.op) = OperKinds::PlusAssn; }
     5560    break;
     5561
     5562  case 117:
    55565563
    55575564/* Line 1806 of yacc.c  */
    55585565#line 623 "parser.yy"
    5559     { (yyval.op) = OperKinds::PlusAssn; }
    5560     break;
    5561 
    5562   case 117:
     5566    { (yyval.op) = OperKinds::MinusAssn; }
     5567    break;
     5568
     5569  case 118:
    55635570
    55645571/* Line 1806 of yacc.c  */
    55655572#line 624 "parser.yy"
    5566     { (yyval.op) = OperKinds::MinusAssn; }
    5567     break;
    5568 
    5569   case 118:
     5573    { (yyval.op) = OperKinds::LSAssn; }
     5574    break;
     5575
     5576  case 119:
    55705577
    55715578/* Line 1806 of yacc.c  */
    55725579#line 625 "parser.yy"
    5573     { (yyval.op) = OperKinds::LSAssn; }
    5574     break;
    5575 
    5576   case 119:
     5580    { (yyval.op) = OperKinds::RSAssn; }
     5581    break;
     5582
     5583  case 120:
    55775584
    55785585/* Line 1806 of yacc.c  */
    55795586#line 626 "parser.yy"
    5580     { (yyval.op) = OperKinds::RSAssn; }
    5581     break;
    5582 
    5583   case 120:
     5587    { (yyval.op) = OperKinds::AndAssn; }
     5588    break;
     5589
     5590  case 121:
    55845591
    55855592/* Line 1806 of yacc.c  */
    55865593#line 627 "parser.yy"
    5587     { (yyval.op) = OperKinds::AndAssn; }
    5588     break;
    5589 
    5590   case 121:
     5594    { (yyval.op) = OperKinds::ERAssn; }
     5595    break;
     5596
     5597  case 122:
    55915598
    55925599/* Line 1806 of yacc.c  */
    55935600#line 628 "parser.yy"
    5594     { (yyval.op) = OperKinds::ERAssn; }
    5595     break;
    5596 
    5597   case 122:
    5598 
    5599 /* Line 1806 of yacc.c  */
    5600 #line 629 "parser.yy"
    56015601    { (yyval.op) = OperKinds::OrAssn; }
    56025602    break;
     
    56055605
    56065606/* Line 1806 of yacc.c  */
    5607 #line 636 "parser.yy"
     5607#line 635 "parser.yy"
    56085608    { (yyval.en) = new ExpressionNode( build_tuple() ); }
    56095609    break;
     
    56125612
    56135613/* Line 1806 of yacc.c  */
    5614 #line 638 "parser.yy"
     5614#line 637 "parser.yy"
    56155615    { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[(3) - (5)].en) ) ); }
    56165616    break;
     
    56195619
    56205620/* Line 1806 of yacc.c  */
    5621 #line 640 "parser.yy"
     5621#line 639 "parser.yy"
    56225622    { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) ) ) ); }
    56235623    break;
     
    56265626
    56275627/* Line 1806 of yacc.c  */
    5628 #line 642 "parser.yy"
     5628#line 641 "parser.yy"
    56295629    { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_last( (yyvsp[(5) - (7)].en) ) ) ); }
    56305630    break;
     
    56335633
    56345634/* Line 1806 of yacc.c  */
    5635 #line 648 "parser.yy"
     5635#line 647 "parser.yy"
    56365636    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
    56375637    break;
     
    56405640
    56415641/* Line 1806 of yacc.c  */
    5642 #line 654 "parser.yy"
     5642#line 653 "parser.yy"
    56435643    { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    56445644    break;
     
    56475647
    56485648/* Line 1806 of yacc.c  */
    5649 #line 659 "parser.yy"
     5649#line 658 "parser.yy"
    56505650    { (yyval.en) = 0; }
    56515651    break;
     
    56545654
    56555655/* Line 1806 of yacc.c  */
    5656 #line 668 "parser.yy"
     5656#line 667 "parser.yy"
    56575657    { (yyval.sn) = (yyvsp[(1) - (1)].sn); }
    56585658    break;
     
    56615661
    56625662/* Line 1806 of yacc.c  */
    5663 #line 675 "parser.yy"
     5663#line 674 "parser.yy"
    56645664    {
    56655665                        Token fn;
     
    56725672
    56735673/* Line 1806 of yacc.c  */
    5674 #line 685 "parser.yy"
     5674#line 684 "parser.yy"
    56755675    {
    56765676                        (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) );
     
    56815681
    56825682/* Line 1806 of yacc.c  */
    5683 #line 692 "parser.yy"
     5683#line 691 "parser.yy"
    56845684    { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) ); }
    56855685    break;
     
    56885688
    56895689/* Line 1806 of yacc.c  */
    5690 #line 699 "parser.yy"
     5690#line 698 "parser.yy"
    56915691    { (yyval.sn) = new StatementNode( build_compound( (yyvsp[(5) - (7)].sn) ) ); }
    56925692    break;
     
    56955695
    56965696/* Line 1806 of yacc.c  */
    5697 #line 705 "parser.yy"
     5697#line 704 "parser.yy"
    56985698    { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
    56995699    break;
     
    57025702
    57035703/* Line 1806 of yacc.c  */
    5704 #line 710 "parser.yy"
     5704#line 709 "parser.yy"
    57055705    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    57065706    break;
     
    57095709
    57105710/* Line 1806 of yacc.c  */
    5711 #line 712 "parser.yy"
     5711#line 711 "parser.yy"
    57125712    {   // mark all fields in list
    57135713                        for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     
    57205720
    57215721/* Line 1806 of yacc.c  */
    5722 #line 718 "parser.yy"
     5722#line 717 "parser.yy"
    57235723    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    57245724    break;
     
    57275727
    57285728/* Line 1806 of yacc.c  */
    5729 #line 725 "parser.yy"
     5729#line 724 "parser.yy"
    57305730    { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
    57315731    break;
     
    57345734
    57355735/* Line 1806 of yacc.c  */
    5736 #line 730 "parser.yy"
     5736#line 729 "parser.yy"
    57375737    { (yyval.sn) = new StatementNode( build_expr( (yyvsp[(1) - (2)].en) ) ); }
    57385738    break;
     
    57415741
    57425742/* Line 1806 of yacc.c  */
    5743 #line 736 "parser.yy"
     5743#line 735 "parser.yy"
    57445744    { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); }
    57455745    break;
     
    57485748
    57495749/* Line 1806 of yacc.c  */
    5750 #line 738 "parser.yy"
     5750#line 737 "parser.yy"
    57515751    { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); }
    57525752    break;
     
    57555755
    57565756/* Line 1806 of yacc.c  */
    5757 #line 740 "parser.yy"
     5757#line 739 "parser.yy"
    57585758    { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    57595759    break;
     
    57625762
    57635763/* Line 1806 of yacc.c  */
    5764 #line 742 "parser.yy"
     5764#line 741 "parser.yy"
    57655765    {
    57665766                        StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
     
    57775777
    57785778/* Line 1806 of yacc.c  */
    5779 #line 752 "parser.yy"
     5779#line 751 "parser.yy"
    57805780    { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    57815781    break;
     
    57845784
    57855785/* Line 1806 of yacc.c  */
    5786 #line 754 "parser.yy"
     5786#line 753 "parser.yy"
    57875787    {
    57885788                        StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
     
    57945794
    57955795/* Line 1806 of yacc.c  */
    5796 #line 764 "parser.yy"
     5796#line 763 "parser.yy"
    57975797    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    57985798    break;
     
    58015801
    58025802/* Line 1806 of yacc.c  */
    5803 #line 766 "parser.yy"
     5803#line 765 "parser.yy"
    58045804    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    58055805    break;
     
    58085808
    58095809/* Line 1806 of yacc.c  */
    5810 #line 771 "parser.yy"
     5810#line 770 "parser.yy"
    58115811    { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); }
    58125812    break;
     
    58155815
    58165816/* Line 1806 of yacc.c  */
    5817 #line 773 "parser.yy"
     5817#line 772 "parser.yy"
    58185818    { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_last( new StatementNode( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); }
    58195819    break;
     
    58225822
    58235823/* Line 1806 of yacc.c  */
     5824#line 776 "parser.yy"
     5825    { (yyval.sn) = (yyvsp[(2) - (3)].sn); }
     5826    break;
     5827
     5828  case 166:
     5829
     5830/* Line 1806 of yacc.c  */
    58245831#line 777 "parser.yy"
    5825     { (yyval.sn) = (yyvsp[(2) - (3)].sn); }
    5826     break;
    5827 
    5828   case 166:
    5829 
    5830 /* Line 1806 of yacc.c  */
    5831 #line 778 "parser.yy"
    58325832    { (yyval.sn) = new StatementNode( build_default() ); }
    58335833    break;
     
    58365836
    58375837/* Line 1806 of yacc.c  */
    5838 #line 784 "parser.yy"
     5838#line 783 "parser.yy"
    58395839    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) )); }
    58405840    break;
     
    58435843
    58445844/* Line 1806 of yacc.c  */
    5845 #line 788 "parser.yy"
     5845#line 787 "parser.yy"
    58465846    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
    58475847    break;
     
    58505850
    58515851/* Line 1806 of yacc.c  */
    5852 #line 793 "parser.yy"
     5852#line 792 "parser.yy"
    58535853    { (yyval.sn) = 0; }
    58545854    break;
     
    58575857
    58585858/* Line 1806 of yacc.c  */
    5859 #line 799 "parser.yy"
     5859#line 798 "parser.yy"
    58605860    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
    58615861    break;
     
    58645864
    58655865/* Line 1806 of yacc.c  */
    5866 #line 801 "parser.yy"
     5866#line 800 "parser.yy"
    58675867    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(3) - (3)].sn) ) ) ) ) ); }
    58685868    break;
     
    58715871
    58725872/* Line 1806 of yacc.c  */
    5873 #line 806 "parser.yy"
     5873#line 805 "parser.yy"
    58745874    { (yyval.sn) = 0; }
    58755875    break;
     
    58785878
    58795879/* Line 1806 of yacc.c  */
    5880 #line 812 "parser.yy"
     5880#line 811 "parser.yy"
    58815881    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    58825882    break;
     
    58855885
    58865886/* Line 1806 of yacc.c  */
    5887 #line 814 "parser.yy"
     5887#line 813 "parser.yy"
    58885888    { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(2) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ) ) ) ); }
    58895889    break;
     
    58925892
    58935893/* Line 1806 of yacc.c  */
    5894 #line 816 "parser.yy"
     5894#line 815 "parser.yy"
    58955895    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
    58965896    break;
     
    58995899
    59005900/* Line 1806 of yacc.c  */
    5901 #line 818 "parser.yy"
     5901#line 817 "parser.yy"
    59025902    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_last( (yyvsp[(2) - (4)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(3) - (4)].sn)->set_last( (yyvsp[(4) - (4)].sn) ) ) ) ) ) ); }
    59035903    break;
     
    59065906
    59075907/* Line 1806 of yacc.c  */
    5908 #line 823 "parser.yy"
     5908#line 822 "parser.yy"
    59095909    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
    59105910    break;
     
    59135913
    59145914/* Line 1806 of yacc.c  */
    5915 #line 829 "parser.yy"
     5915#line 828 "parser.yy"
    59165916    { (yyval.sn) = 0; }
    59175917    break;
     
    59205920
    59215921/* Line 1806 of yacc.c  */
    5922 #line 831 "parser.yy"
     5922#line 830 "parser.yy"
    59235923    { (yyval.sn) = 0; }
    59245924    break;
     
    59275927
    59285928/* Line 1806 of yacc.c  */
    5929 #line 836 "parser.yy"
     5929#line 835 "parser.yy"
    59305930    { (yyval.sn) = new StatementNode( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    59315931    break;
     
    59345934
    59355935/* Line 1806 of yacc.c  */
    5936 #line 838 "parser.yy"
     5936#line 837 "parser.yy"
    59375937    { (yyval.sn) = new StatementNode( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn), true ) ); }
    59385938    break;
     
    59415941
    59425942/* Line 1806 of yacc.c  */
    5943 #line 840 "parser.yy"
     5943#line 839 "parser.yy"
    59445944    { (yyval.sn) = new StatementNode( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); }
    59455945    break;
     
    59485948
    59495949/* Line 1806 of yacc.c  */
    5950 #line 845 "parser.yy"
     5950#line 844 "parser.yy"
    59515951    { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
    59525952    break;
     
    59555955
    59565956/* Line 1806 of yacc.c  */
    5957 #line 847 "parser.yy"
     5957#line 846 "parser.yy"
    59585958    { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
    59595959    break;
     
    59625962
    59635963/* Line 1806 of yacc.c  */
    5964 #line 852 "parser.yy"
     5964#line 851 "parser.yy"
    59655965    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); }
    59665966    break;
     
    59695969
    59705970/* Line 1806 of yacc.c  */
    5971 #line 856 "parser.yy"
     5971#line 855 "parser.yy"
    59725972    { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); }
    59735973    break;
     
    59765976
    59775977/* Line 1806 of yacc.c  */
    5978 #line 859 "parser.yy"
     5978#line 858 "parser.yy"
    59795979    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Continue ) ); }
    59805980    break;
     
    59835983
    59845984/* Line 1806 of yacc.c  */
    5985 #line 863 "parser.yy"
     5985#line 862 "parser.yy"
    59865986    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); }
    59875987    break;
     
    59905990
    59915991/* Line 1806 of yacc.c  */
    5992 #line 866 "parser.yy"
     5992#line 865 "parser.yy"
    59935993    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
    59945994    break;
     
    59975997
    59985998/* Line 1806 of yacc.c  */
    5999 #line 870 "parser.yy"
     5999#line 869 "parser.yy"
    60006000    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); }
    60016001    break;
     
    60046004
    60056005/* Line 1806 of yacc.c  */
    6006 #line 872 "parser.yy"
     6006#line 871 "parser.yy"
    60076007    { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); }
    60086008    break;
     
    60116011
    60126012/* Line 1806 of yacc.c  */
    6013 #line 874 "parser.yy"
     6013#line 873 "parser.yy"
    60146014    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
    60156015    break;
     
    60186018
    60196019/* Line 1806 of yacc.c  */
    6020 #line 876 "parser.yy"
     6020#line 875 "parser.yy"
    60216021    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
    60226022    break;
     
    60256025
    60266026/* Line 1806 of yacc.c  */
    6027 #line 878 "parser.yy"
     6027#line 877 "parser.yy"
    60286028    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (5)].en) ) ); }
    60296029    break;
     
    60326032
    60336033/* Line 1806 of yacc.c  */
    6034 #line 883 "parser.yy"
     6034#line 882 "parser.yy"
    60356035    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0 ) ); }
    60366036    break;
     
    60396039
    60406040/* Line 1806 of yacc.c  */
    6041 #line 885 "parser.yy"
     6041#line 884 "parser.yy"
    60426042    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn) ) ); }
    60436043    break;
     
    60466046
    60476047/* Line 1806 of yacc.c  */
    6048 #line 887 "parser.yy"
     6048#line 886 "parser.yy"
    60496049    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (4)].sn), (yyvsp[(3) - (4)].sn), (yyvsp[(4) - (4)].sn) ) ); }
    60506050    break;
     
    60536053
    60546054/* Line 1806 of yacc.c  */
    6055 #line 894 "parser.yy"
     6055#line 893 "parser.yy"
    60566056    { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
    60576057    break;
     
    60606060
    60616061/* Line 1806 of yacc.c  */
    6062 #line 896 "parser.yy"
     6062#line 895 "parser.yy"
    60636063    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
    60646064    break;
     
    60676067
    60686068/* Line 1806 of yacc.c  */
    6069 #line 898 "parser.yy"
     6069#line 897 "parser.yy"
    60706070    { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
    60716071    break;
     
    60746074
    60756075/* Line 1806 of yacc.c  */
    6076 #line 900 "parser.yy"
     6076#line 899 "parser.yy"
    60776077    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
    60786078    break;
     
    60816081
    60826082/* Line 1806 of yacc.c  */
    6083 #line 905 "parser.yy"
     6083#line 904 "parser.yy"
    60846084    { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
    60856085    break;
     
    60886088
    60896089/* Line 1806 of yacc.c  */
    6090 #line 907 "parser.yy"
     6090#line 906 "parser.yy"
    60916091    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
    60926092    break;
     
    60956095
    60966096/* Line 1806 of yacc.c  */
    6097 #line 909 "parser.yy"
     6097#line 908 "parser.yy"
    60986098    { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
    60996099    break;
     
    61026102
    61036103/* Line 1806 of yacc.c  */
    6104 #line 911 "parser.yy"
     6104#line 910 "parser.yy"
    61056105    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
    61066106    break;
     
    61096109
    61106110/* Line 1806 of yacc.c  */
    6111 #line 916 "parser.yy"
     6111#line 915 "parser.yy"
    61126112    {
    61136113                        (yyval.sn) = new StatementNode( build_finally( (yyvsp[(2) - (2)].sn) ) );
     
    61186118
    61196119/* Line 1806 of yacc.c  */
    6120 #line 929 "parser.yy"
     6120#line 928 "parser.yy"
    61216121    {
    61226122                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    61286128
    61296129/* Line 1806 of yacc.c  */
    6130 #line 934 "parser.yy"
     6130#line 933 "parser.yy"
    61316131    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    61326132    break;
     
    61356135
    61366136/* Line 1806 of yacc.c  */
    6137 #line 936 "parser.yy"
     6137#line 935 "parser.yy"
    61386138    {
    61396139                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    61456145
    61466146/* Line 1806 of yacc.c  */
    6147 #line 945 "parser.yy"
     6147#line 944 "parser.yy"
    61486148    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ) ); }
    61496149    break;
     
    61526152
    61536153/* Line 1806 of yacc.c  */
    6154 #line 947 "parser.yy"
     6154#line 946 "parser.yy"
    61556155    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ) ); }
    61566156    break;
     
    61596159
    61606160/* Line 1806 of yacc.c  */
    6161 #line 949 "parser.yy"
     6161#line 948 "parser.yy"
    61626162    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ) ); }
    61636163    break;
     
    61666166
    61676167/* Line 1806 of yacc.c  */
    6168 #line 951 "parser.yy"
     6168#line 950 "parser.yy"
    61696169    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].en) ) ); }
    61706170    break;
     
    61736173
    61746174/* Line 1806 of yacc.c  */
    6175 #line 953 "parser.yy"
     6175#line 952 "parser.yy"
    61766176    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].en), (yyvsp[(12) - (14)].label) ) ); }
    61776177    break;
     
    61806180
    61816181/* Line 1806 of yacc.c  */
    6182 #line 958 "parser.yy"
     6182#line 957 "parser.yy"
    61836183    { (yyval.flag) = false; }
    61846184    break;
     
    61876187
    61886188/* Line 1806 of yacc.c  */
    6189 #line 960 "parser.yy"
     6189#line 959 "parser.yy"
    61906190    { (yyval.flag) = true; }
    61916191    break;
     
    61946194
    61956195/* Line 1806 of yacc.c  */
    6196 #line 965 "parser.yy"
     6196#line 964 "parser.yy"
    61976197    { (yyval.en) = 0; }
    61986198    break;
     
    62016201
    62026202/* Line 1806 of yacc.c  */
    6203 #line 972 "parser.yy"
     6203#line 971 "parser.yy"
    62046204    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
    62056205    break;
     
    62086208
    62096209/* Line 1806 of yacc.c  */
    6210 #line 977 "parser.yy"
     6210#line 976 "parser.yy"
    62116211    { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); }
    62126212    break;
     
    62156215
    62166216/* Line 1806 of yacc.c  */
    6217 #line 979 "parser.yy"
     6217#line 978 "parser.yy"
    62186218    { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); }
    62196219    break;
     
    62226222
    62236223/* Line 1806 of yacc.c  */
    6224 #line 984 "parser.yy"
     6224#line 983 "parser.yy"
    62256225    { (yyval.en) = 0; }
    62266226    break;
     
    62296229
    62306230/* Line 1806 of yacc.c  */
    6231 #line 986 "parser.yy"
     6231#line 985 "parser.yy"
    62326232    { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
    62336233    break;
     
    62366236
    62376237/* Line 1806 of yacc.c  */
    6238 #line 988 "parser.yy"
     6238#line 987 "parser.yy"
    62396239    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); }
    62406240    break;
     
    62436243
    62446244/* Line 1806 of yacc.c  */
    6245 #line 993 "parser.yy"
     6245#line 992 "parser.yy"
    62466246    {
    62476247                        (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[(1) - (1)].tok) );
     
    62536253
    62546254/* Line 1806 of yacc.c  */
    6255 #line 998 "parser.yy"
     6255#line 997 "parser.yy"
    62566256    {
    62576257                        (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->labels.push_back( *(yyvsp[(3) - (3)].tok) );
     
    62636263
    62646264/* Line 1806 of yacc.c  */
    6265 #line 1008 "parser.yy"
     6265#line 1007 "parser.yy"
    62666266    { (yyval.decl) = 0; }
    62676267    break;
     
    62706270
    62716271/* Line 1806 of yacc.c  */
    6272 #line 1015 "parser.yy"
     6272#line 1014 "parser.yy"
    62736273    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    62746274    break;
     
    62776277
    62786278/* Line 1806 of yacc.c  */
    6279 #line 1020 "parser.yy"
     6279#line 1019 "parser.yy"
    62806280    { (yyval.decl) = 0; }
    62816281    break;
     
    62846284
    62856285/* Line 1806 of yacc.c  */
    6286 #line 1027 "parser.yy"
     6286#line 1026 "parser.yy"
    62876287    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    62886288    break;
    62896289
    62906290  case 247:
     6291
     6292/* Line 1806 of yacc.c  */
     6293#line 1040 "parser.yy"
     6294    {}
     6295    break;
     6296
     6297  case 248:
    62916298
    62926299/* Line 1806 of yacc.c  */
     
    62956302    break;
    62966303
    6297   case 248:
    6298 
    6299 /* Line 1806 of yacc.c  */
    6300 #line 1042 "parser.yy"
    6301     {}
    6302     break;
    6303 
    63046304  case 256:
    63056305
    63066306/* Line 1806 of yacc.c  */
    6307 #line 1071 "parser.yy"
     6307#line 1070 "parser.yy"
    63086308    {
    63096309                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63156315
    63166316/* Line 1806 of yacc.c  */
    6317 #line 1078 "parser.yy"
     6317#line 1077 "parser.yy"
    63186318    {
    63196319                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63256325
    63266326/* Line 1806 of yacc.c  */
    6327 #line 1083 "parser.yy"
     6327#line 1082 "parser.yy"
    63286328    {
    63296329                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID );
     
    63356335
    63366336/* Line 1806 of yacc.c  */
    6337 #line 1093 "parser.yy"
     6337#line 1092 "parser.yy"
    63386338    {
    63396339                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    63456345
    63466346/* Line 1806 of yacc.c  */
    6347 #line 1098 "parser.yy"
     6347#line 1097 "parser.yy"
    63486348    {
    63496349                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    63556355
    63566356/* Line 1806 of yacc.c  */
    6357 #line 1103 "parser.yy"
     6357#line 1102 "parser.yy"
    63586358    {
    63596359                        typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) );
     
    63656365
    63666366/* Line 1806 of yacc.c  */
    6367 #line 1111 "parser.yy"
     6367#line 1110 "parser.yy"
    63686368    {
    63696369                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63756375
    63766376/* Line 1806 of yacc.c  */
    6377 #line 1116 "parser.yy"
     6377#line 1115 "parser.yy"
    63786378    {
    63796379                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63856385
    63866386/* Line 1806 of yacc.c  */
    6387 #line 1121 "parser.yy"
     6387#line 1120 "parser.yy"
    63886388    {
    63896389                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63956395
    63966396/* Line 1806 of yacc.c  */
    6397 #line 1126 "parser.yy"
     6397#line 1125 "parser.yy"
    63986398    {
    63996399                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64056405
    64066406/* Line 1806 of yacc.c  */
    6407 #line 1131 "parser.yy"
     6407#line 1130 "parser.yy"
    64086408    {
    64096409                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    64156415
    64166416/* Line 1806 of yacc.c  */
    6417 #line 1139 "parser.yy"
     6417#line 1138 "parser.yy"
    64186418    {
    64196419                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true );
     
    64246424
    64256425/* Line 1806 of yacc.c  */
    6426 #line 1162 "parser.yy"
     6426#line 1161 "parser.yy"
    64276427    {
    64286428                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    64336433
    64346434/* Line 1806 of yacc.c  */
    6435 #line 1166 "parser.yy"
     6435#line 1165 "parser.yy"
    64366436    {
    64376437                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    64426442
    64436443/* Line 1806 of yacc.c  */
    6444 #line 1173 "parser.yy"
     6444#line 1172 "parser.yy"
    64456445    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    64466446    break;
     
    64496449
    64506450/* Line 1806 of yacc.c  */
    6451 #line 1177 "parser.yy"
     6451#line 1176 "parser.yy"
    64526452    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
    64536453    break;
     
    64566456
    64576457/* Line 1806 of yacc.c  */
    6458 #line 1182 "parser.yy"
     6458#line 1181 "parser.yy"
    64596459    {
    64606460                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64666466
    64676467/* Line 1806 of yacc.c  */
    6468 #line 1187 "parser.yy"
     6468#line 1186 "parser.yy"
    64696469    {
    64706470                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64766476
    64776477/* Line 1806 of yacc.c  */
    6478 #line 1192 "parser.yy"
     6478#line 1191 "parser.yy"
    64796479    {
    64806480                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD );
     
    64866486
    64876487/* Line 1806 of yacc.c  */
    6488 #line 1203 "parser.yy"
     6488#line 1202 "parser.yy"
    64896489    {
    64906490                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64966496
    64976497/* Line 1806 of yacc.c  */
    6498 #line 1208 "parser.yy"
     6498#line 1207 "parser.yy"
    64996499    {
    65006500                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65066506
    65076507/* Line 1806 of yacc.c  */
    6508 #line 1213 "parser.yy"
     6508#line 1212 "parser.yy"
    65096509    {
    65106510                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65166516
    65176517/* Line 1806 of yacc.c  */
    6518 #line 1218 "parser.yy"
     6518#line 1217 "parser.yy"
    65196519    {
    65206520                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65266526
    65276527/* Line 1806 of yacc.c  */
    6528 #line 1223 "parser.yy"
     6528#line 1222 "parser.yy"
    65296529    {
    65306530                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65366536
    65376537/* Line 1806 of yacc.c  */
    6538 #line 1232 "parser.yy"
     6538#line 1231 "parser.yy"
    65396539    {
    65406540                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD );
     
    65466546
    65476547/* Line 1806 of yacc.c  */
    6548 #line 1237 "parser.yy"
     6548#line 1236 "parser.yy"
    65496549    {
    65506550                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD );
     
    65566556
    65576557/* Line 1806 of yacc.c  */
    6558 #line 1254 "parser.yy"
     6558#line 1253 "parser.yy"
    65596559    {
    65606560                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    65666566
    65676567/* Line 1806 of yacc.c  */
    6568 #line 1259 "parser.yy"
     6568#line 1258 "parser.yy"
    65696569    {
    65706570                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    65766576
    65776577/* Line 1806 of yacc.c  */
    6578 #line 1281 "parser.yy"
     6578#line 1280 "parser.yy"
    65796579    { (yyval.decl) = 0; }
    65806580    break;
     
    65836583
    65846584/* Line 1806 of yacc.c  */
    6585 #line 1293 "parser.yy"
     6585#line 1292 "parser.yy"
    65866586    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    65876587    break;
     
    65906590
    65916591/* Line 1806 of yacc.c  */
    6592 #line 1304 "parser.yy"
     6592#line 1303 "parser.yy"
    65936593    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
    65946594    break;
     
    65976597
    65986598/* Line 1806 of yacc.c  */
    6599 #line 1306 "parser.yy"
     6599#line 1305 "parser.yy"
    66006600    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
    66016601    break;
     
    66046604
    66056605/* Line 1806 of yacc.c  */
    6606 #line 1308 "parser.yy"
     6606#line 1307 "parser.yy"
    66076607    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
    66086608    break;
     
    66116611
    66126612/* Line 1806 of yacc.c  */
    6613 #line 1310 "parser.yy"
     6613#line 1309 "parser.yy"
    66146614    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
    66156615    break;
     
    66186618
    66196619/* Line 1806 of yacc.c  */
    6620 #line 1312 "parser.yy"
     6620#line 1311 "parser.yy"
    66216621    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
    66226622    break;
     
    66256625
    66266626/* Line 1806 of yacc.c  */
    6627 #line 1314 "parser.yy"
     6627#line 1313 "parser.yy"
    66286628    {
    66296629                        typedefTable.enterScope();
     
    66346634
    66356635/* Line 1806 of yacc.c  */
    6636 #line 1318 "parser.yy"
     6636#line 1317 "parser.yy"
    66376637    {
    66386638                        typedefTable.leaveScope();
     
    66446644
    66456645/* Line 1806 of yacc.c  */
    6646 #line 1327 "parser.yy"
     6646#line 1326 "parser.yy"
    66476647    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    66486648    break;
     
    66516651
    66526652/* Line 1806 of yacc.c  */
    6653 #line 1329 "parser.yy"
     6653#line 1328 "parser.yy"
    66546654    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    66556655    break;
     
    66586658
    66596659/* Line 1806 of yacc.c  */
    6660 #line 1340 "parser.yy"
     6660#line 1339 "parser.yy"
    66616661    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    66626662    break;
     
    66656665
    66666666/* Line 1806 of yacc.c  */
    6667 #line 1345 "parser.yy"
     6667#line 1344 "parser.yy"
    66686668    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
    66696669    break;
     
    66726672
    66736673/* Line 1806 of yacc.c  */
    6674 #line 1347 "parser.yy"
     6674#line 1346 "parser.yy"
    66756675    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
    66766676    break;
     
    66796679
    66806680/* Line 1806 of yacc.c  */
    6681 #line 1349 "parser.yy"
     6681#line 1348 "parser.yy"
    66826682    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
    66836683    break;
     
    66866686
    66876687/* Line 1806 of yacc.c  */
    6688 #line 1351 "parser.yy"
     6688#line 1350 "parser.yy"
    66896689    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
    66906690    break;
     
    66936693
    66946694/* Line 1806 of yacc.c  */
    6695 #line 1354 "parser.yy"
     6695#line 1353 "parser.yy"
    66966696    { (yyval.decl) = new DeclarationNode; (yyval.decl)->isInline = true; }
    66976697    break;
     
    67006700
    67016701/* Line 1806 of yacc.c  */
    6702 #line 1356 "parser.yy"
     6702#line 1355 "parser.yy"
    67036703    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
    67046704    break;
     
    67076707
    67086708/* Line 1806 of yacc.c  */
    6709 #line 1359 "parser.yy"
     6709#line 1358 "parser.yy"
    67106710    { (yyval.decl) = new DeclarationNode; (yyval.decl)->isNoreturn = true; }
    67116711    break;
     
    67146714
    67156715/* Line 1806 of yacc.c  */
    6716 #line 1361 "parser.yy"
     6716#line 1360 "parser.yy"
    67176717    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
    67186718    break;
     
    67216721
    67226722/* Line 1806 of yacc.c  */
    6723 #line 1366 "parser.yy"
     6723#line 1365 "parser.yy"
    67246724    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
    67256725    break;
     
    67286728
    67296729/* Line 1806 of yacc.c  */
    6730 #line 1368 "parser.yy"
     6730#line 1367 "parser.yy"
    67316731    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
    67326732    break;
     
    67356735
    67366736/* Line 1806 of yacc.c  */
    6737 #line 1370 "parser.yy"
     6737#line 1369 "parser.yy"
    67386738    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
    67396739    break;
     
    67426742
    67436743/* Line 1806 of yacc.c  */
    6744 #line 1372 "parser.yy"
     6744#line 1371 "parser.yy"
    67456745    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
    67466746    break;
     
    67496749
    67506750/* Line 1806 of yacc.c  */
    6751 #line 1374 "parser.yy"
     6751#line 1373 "parser.yy"
    67526752    { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Long ); }
    67536753    break;
     
    67566756
    67576757/* Line 1806 of yacc.c  */
    6758 #line 1376 "parser.yy"
     6758#line 1375 "parser.yy"
    67596759    { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Short ); }
    67606760    break;
     
    67636763
    67646764/* Line 1806 of yacc.c  */
    6765 #line 1378 "parser.yy"
     6765#line 1377 "parser.yy"
    67666766    { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Signed ); }
    67676767    break;
     
    67706770
    67716771/* Line 1806 of yacc.c  */
    6772 #line 1380 "parser.yy"
     6772#line 1379 "parser.yy"
    67736773    { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Unsigned ); }
    67746774    break;
     
    67776777
    67786778/* Line 1806 of yacc.c  */
    6779 #line 1382 "parser.yy"
     6779#line 1381 "parser.yy"
    67806780    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
    67816781    break;
     
    67846784
    67856785/* Line 1806 of yacc.c  */
    6786 #line 1384 "parser.yy"
     6786#line 1383 "parser.yy"
    67876787    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
    67886788    break;
     
    67916791
    67926792/* Line 1806 of yacc.c  */
    6793 #line 1386 "parser.yy"
     6793#line 1385 "parser.yy"
    67946794    { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Complex ); }
    67956795    break;
     
    67986798
    67996799/* Line 1806 of yacc.c  */
    6800 #line 1388 "parser.yy"
     6800#line 1387 "parser.yy"
    68016801    { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Imaginary ); }
    68026802    break;
     
    68056805
    68066806/* Line 1806 of yacc.c  */
    6807 #line 1390 "parser.yy"
     6807#line 1389 "parser.yy"
    68086808    { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
    68096809    break;
     
    68126812
    68136813/* Line 1806 of yacc.c  */
    6814 #line 1397 "parser.yy"
     6814#line 1396 "parser.yy"
    68156815    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68166816    break;
     
    68196819
    68206820/* Line 1806 of yacc.c  */
    6821 #line 1399 "parser.yy"
     6821#line 1398 "parser.yy"
    68226822    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68236823    break;
     
    68266826
    68276827/* Line 1806 of yacc.c  */
    6828 #line 1401 "parser.yy"
     6828#line 1400 "parser.yy"
    68296829    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    68306830    break;
     
    68336833
    68346834/* Line 1806 of yacc.c  */
    6835 #line 1403 "parser.yy"
     6835#line 1402 "parser.yy"
    68366836    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
    68376837    break;
     
    68406840
    68416841/* Line 1806 of yacc.c  */
    6842 #line 1409 "parser.yy"
     6842#line 1408 "parser.yy"
    68436843    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    68446844    break;
     
    68476847
    68486848/* Line 1806 of yacc.c  */
    6849 #line 1416 "parser.yy"
     6849#line 1415 "parser.yy"
    68506850    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68516851    break;
     
    68546854
    68556855/* Line 1806 of yacc.c  */
    6856 #line 1418 "parser.yy"
     6856#line 1417 "parser.yy"
    68576857    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68586858    break;
     
    68616861
    68626862/* Line 1806 of yacc.c  */
    6863 #line 1420 "parser.yy"
     6863#line 1419 "parser.yy"
    68646864    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
    68656865    break;
     
    68686868
    68696869/* Line 1806 of yacc.c  */
    6870 #line 1425 "parser.yy"
     6870#line 1424 "parser.yy"
    68716871    { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
    68726872    break;
     
    68756875
    68766876/* Line 1806 of yacc.c  */
    6877 #line 1427 "parser.yy"
     6877#line 1426 "parser.yy"
    68786878    { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
    68796879    break;
     
    68826882
    68836883/* Line 1806 of yacc.c  */
    6884 #line 1429 "parser.yy"
     6884#line 1428 "parser.yy"
    68856885    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
    68866886    break;
     
    68896889
    68906890/* Line 1806 of yacc.c  */
    6891 #line 1431 "parser.yy"
     6891#line 1430 "parser.yy"
    68926892    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    68936893    break;
     
    68966896
    68976897/* Line 1806 of yacc.c  */
    6898 #line 1437 "parser.yy"
     6898#line 1436 "parser.yy"
    68996899    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69006900    break;
     
    69036903
    69046904/* Line 1806 of yacc.c  */
    6905 #line 1439 "parser.yy"
     6905#line 1438 "parser.yy"
    69066906    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69076907    break;
     
    69106910
    69116911/* Line 1806 of yacc.c  */
    6912 #line 1441 "parser.yy"
     6912#line 1440 "parser.yy"
    69136913    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    69146914    break;
     
    69176917
    69186918/* Line 1806 of yacc.c  */
    6919 #line 1447 "parser.yy"
     6919#line 1446 "parser.yy"
    69206920    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69216921    break;
     
    69246924
    69256925/* Line 1806 of yacc.c  */
    6926 #line 1449 "parser.yy"
     6926#line 1448 "parser.yy"
    69276927    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69286928    break;
     
    69316931
    69326932/* Line 1806 of yacc.c  */
    6933 #line 1455 "parser.yy"
     6933#line 1454 "parser.yy"
    69346934    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69356935    break;
     
    69386938
    69396939/* Line 1806 of yacc.c  */
    6940 #line 1457 "parser.yy"
     6940#line 1456 "parser.yy"
    69416941    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69426942    break;
     
    69456945
    69466946/* Line 1806 of yacc.c  */
    6947 #line 1459 "parser.yy"
     6947#line 1458 "parser.yy"
    69486948    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    69496949    break;
     
    69526952
    69536953/* Line 1806 of yacc.c  */
    6954 #line 1464 "parser.yy"
     6954#line 1463 "parser.yy"
    69556955    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
    69566956    break;
     
    69596959
    69606960/* Line 1806 of yacc.c  */
    6961 #line 1466 "parser.yy"
     6961#line 1465 "parser.yy"
    69626962    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69636963    break;
     
    69666966
    69676967/* Line 1806 of yacc.c  */
    6968 #line 1468 "parser.yy"
     6968#line 1467 "parser.yy"
    69696969    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69706970    break;
     
    69736973
    69746974/* Line 1806 of yacc.c  */
    6975 #line 1478 "parser.yy"
     6975#line 1477 "parser.yy"
    69766976    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), nullptr, nullptr, (yyvsp[(3) - (4)].decl), true ); }
    69776977    break;
     
    69806980
    69816981/* Line 1806 of yacc.c  */
    6982 #line 1480 "parser.yy"
     6982#line 1479 "parser.yy"
    69836983    {
    69846984                        typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
     
    69906990
    69916991/* Line 1806 of yacc.c  */
    6992 #line 1485 "parser.yy"
     6992#line 1484 "parser.yy"
    69936993    { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
    69946994    break;
     
    69976997
    69986998/* Line 1806 of yacc.c  */
    6999 #line 1487 "parser.yy"
     6999#line 1486 "parser.yy"
    70007000    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), nullptr, (yyvsp[(5) - (6)].decl), true ); }
    70017001    break;
     
    70047004
    70057005/* Line 1806 of yacc.c  */
    7006 #line 1489 "parser.yy"
     7006#line 1488 "parser.yy"
    70077007    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), nullptr, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); }
    70087008    break;
     
    70117011
    70127012/* Line 1806 of yacc.c  */
    7013 #line 1491 "parser.yy"
     7013#line 1490 "parser.yy"
    70147014    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    70157015    break;
     
    70187018
    70197019/* Line 1806 of yacc.c  */
    7020 #line 1496 "parser.yy"
     7020#line 1495 "parser.yy"
    70217021    { (yyval.aggKey) = DeclarationNode::Struct; }
    70227022    break;
     
    70257025
    70267026/* Line 1806 of yacc.c  */
    7027 #line 1498 "parser.yy"
     7027#line 1497 "parser.yy"
    70287028    { (yyval.aggKey) = DeclarationNode::Union; }
    70297029    break;
     
    70327032
    70337033/* Line 1806 of yacc.c  */
    7034 #line 1503 "parser.yy"
     7034#line 1502 "parser.yy"
    70357035    { (yyval.decl) = 0; }
    70367036    break;
     
    70397039
    70407040/* Line 1806 of yacc.c  */
    7041 #line 1505 "parser.yy"
     7041#line 1504 "parser.yy"
    70427042    { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
    70437043    break;
     
    70467046
    70477047/* Line 1806 of yacc.c  */
    7048 #line 1511 "parser.yy"
     7048#line 1510 "parser.yy"
    70497049    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); }
    70507050    break;
     
    70537053
    70547054/* Line 1806 of yacc.c  */
    7055 #line 1514 "parser.yy"
     7055#line 1513 "parser.yy"
    70567056    {   // mark all fields in list
    70577057                        for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     
    70647064
    70657065/* Line 1806 of yacc.c  */
    7066 #line 1524 "parser.yy"
     7066#line 1523 "parser.yy"
    70677067    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
    70687068    break;
     
    70717071
    70727072/* Line 1806 of yacc.c  */
    7073 #line 1526 "parser.yy"
     7073#line 1525 "parser.yy"
    70747074    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
    70757075    break;
     
    70787078
    70797079/* Line 1806 of yacc.c  */
    7080 #line 1528 "parser.yy"
     7080#line 1527 "parser.yy"
    70817081    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
    70827082    break;
     
    70857085
    70867086/* Line 1806 of yacc.c  */
    7087 #line 1533 "parser.yy"
     7087#line 1532 "parser.yy"
    70887088    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    70897089    break;
     
    70927092
    70937093/* Line 1806 of yacc.c  */
    7094 #line 1535 "parser.yy"
     7094#line 1534 "parser.yy"
    70957095    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
    70967096    break;
     
    70997099
    71007100/* Line 1806 of yacc.c  */
    7101 #line 1540 "parser.yy"
     7101#line 1539 "parser.yy"
    71027102    { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
    71037103    break;
     
    71067106
    71077107/* Line 1806 of yacc.c  */
    7108 #line 1542 "parser.yy"
     7108#line 1541 "parser.yy"
    71097109    { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
    71107110    break;
     
    71137113
    71147114/* Line 1806 of yacc.c  */
    7115 #line 1545 "parser.yy"
     7115#line 1544 "parser.yy"
    71167116    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    71177117    break;
     
    71207120
    71217121/* Line 1806 of yacc.c  */
    7122 #line 1548 "parser.yy"
     7122#line 1547 "parser.yy"
    71237123    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    71247124    break;
     
    71277127
    71287128/* Line 1806 of yacc.c  */
    7129 #line 1554 "parser.yy"
     7129#line 1553 "parser.yy"
    71307130    { (yyval.en) = 0; }
    71317131    break;
     
    71347134
    71357135/* Line 1806 of yacc.c  */
    7136 #line 1556 "parser.yy"
     7136#line 1555 "parser.yy"
    71377137    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    71387138    break;
     
    71417141
    71427142/* Line 1806 of yacc.c  */
    7143 #line 1561 "parser.yy"
     7143#line 1560 "parser.yy"
    71447144    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    71457145    break;
     
    71487148
    71497149/* Line 1806 of yacc.c  */
    7150 #line 1570 "parser.yy"
     7150#line 1569 "parser.yy"
    71517151    { (yyval.decl) = DeclarationNode::newEnum( nullptr, (yyvsp[(3) - (5)].decl) ); }
    71527152    break;
     
    71557155
    71567156/* Line 1806 of yacc.c  */
    7157 #line 1572 "parser.yy"
     7157#line 1571 "parser.yy"
    71587158    {
    71597159                        typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
     
    71657165
    71667166/* Line 1806 of yacc.c  */
    7167 #line 1577 "parser.yy"
     7167#line 1576 "parser.yy"
    71687168    { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
    71697169    break;
     
    71727172
    71737173/* Line 1806 of yacc.c  */
    7174 #line 1579 "parser.yy"
     7174#line 1578 "parser.yy"
    71757175    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); }
    71767176    break;
     
    71797179
    71807180/* Line 1806 of yacc.c  */
    7181 #line 1584 "parser.yy"
     7181#line 1583 "parser.yy"
    71827182    { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
    71837183    break;
     
    71867186
    71877187/* Line 1806 of yacc.c  */
    7188 #line 1586 "parser.yy"
     7188#line 1585 "parser.yy"
    71897189    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
    71907190    break;
     
    71937193
    71947194/* Line 1806 of yacc.c  */
    7195 #line 1591 "parser.yy"
     7195#line 1590 "parser.yy"
    71967196    { (yyval.en) = 0; }
    71977197    break;
     
    72007200
    72017201/* Line 1806 of yacc.c  */
    7202 #line 1593 "parser.yy"
     7202#line 1592 "parser.yy"
    72037203    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    72047204    break;
     
    72077207
    72087208/* Line 1806 of yacc.c  */
    7209 #line 1600 "parser.yy"
     7209#line 1599 "parser.yy"
    72107210    { (yyval.decl) = 0; }
    72117211    break;
     
    72147214
    72157215/* Line 1806 of yacc.c  */
    7216 #line 1608 "parser.yy"
     7216#line 1607 "parser.yy"
    72177217    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72187218    break;
     
    72217221
    72227222/* Line 1806 of yacc.c  */
    7223 #line 1610 "parser.yy"
     7223#line 1609 "parser.yy"
    72247224    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    72257225    break;
     
    72287228
    72297229/* Line 1806 of yacc.c  */
    7230 #line 1612 "parser.yy"
     7230#line 1611 "parser.yy"
    72317231    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    72327232    break;
     
    72357235
    72367236/* Line 1806 of yacc.c  */
    7237 #line 1620 "parser.yy"
     7237#line 1619 "parser.yy"
    72387238    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72397239    break;
     
    72427242
    72437243/* Line 1806 of yacc.c  */
    7244 #line 1622 "parser.yy"
     7244#line 1621 "parser.yy"
    72457245    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72467246    break;
     
    72497249
    72507250/* Line 1806 of yacc.c  */
    7251 #line 1624 "parser.yy"
     7251#line 1623 "parser.yy"
    72527252    { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
    72537253    break;
     
    72567256
    72577257/* Line 1806 of yacc.c  */
    7258 #line 1630 "parser.yy"
     7258#line 1629 "parser.yy"
    72597259    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72607260    break;
     
    72637263
    72647264/* Line 1806 of yacc.c  */
    7265 #line 1635 "parser.yy"
     7265#line 1634 "parser.yy"
    72667266    { (yyval.decl) = 0; }
    72677267    break;
     
    72707270
    72717271/* Line 1806 of yacc.c  */
    7272 #line 1642 "parser.yy"
     7272#line 1641 "parser.yy"
    72737273    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    72747274    break;
     
    72777277
    72787278/* Line 1806 of yacc.c  */
    7279 #line 1649 "parser.yy"
     7279#line 1648 "parser.yy"
    72807280    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72817281    break;
     
    72847284
    72857285/* Line 1806 of yacc.c  */
    7286 #line 1651 "parser.yy"
     7286#line 1650 "parser.yy"
    72877287    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72887288    break;
     
    72917291
    72927292/* Line 1806 of yacc.c  */
    7293 #line 1660 "parser.yy"
     7293#line 1659 "parser.yy"
    72947294    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    72957295    break;
     
    72987298
    72997299/* Line 1806 of yacc.c  */
    7300 #line 1663 "parser.yy"
     7300#line 1662 "parser.yy"
    73017301    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    73027302    break;
     
    73057305
    73067306/* Line 1806 of yacc.c  */
    7307 #line 1665 "parser.yy"
     7307#line 1664 "parser.yy"
    73087308    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
    73097309    break;
     
    73127312
    73137313/* Line 1806 of yacc.c  */
    7314 #line 1675 "parser.yy"
     7314#line 1674 "parser.yy"
    73157315    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    73167316    break;
     
    73197319
    73207320/* Line 1806 of yacc.c  */
    7321 #line 1681 "parser.yy"
     7321#line 1680 "parser.yy"
    73227322    {
    73237323                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    73297329
    73307330/* Line 1806 of yacc.c  */
    7331 #line 1686 "parser.yy"
     7331#line 1685 "parser.yy"
    73327332    {
    73337333                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    73397339
    73407340/* Line 1806 of yacc.c  */
    7341 #line 1695 "parser.yy"
     7341#line 1694 "parser.yy"
    73427342    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73437343    break;
     
    73467346
    73477347/* Line 1806 of yacc.c  */
    7348 #line 1704 "parser.yy"
     7348#line 1703 "parser.yy"
    73497349    { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
    73507350    break;
     
    73537353
    73547354/* Line 1806 of yacc.c  */
    7355 #line 1706 "parser.yy"
     7355#line 1705 "parser.yy"
    73567356    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
    73577357    break;
     
    73607360
    73617361/* Line 1806 of yacc.c  */
    7362 #line 1731 "parser.yy"
     7362#line 1730 "parser.yy"
    73637363    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73647364    break;
     
    73677367
    73687368/* Line 1806 of yacc.c  */
    7369 #line 1739 "parser.yy"
     7369#line 1738 "parser.yy"
    73707370    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73717371    break;
     
    73747374
    73757375/* Line 1806 of yacc.c  */
    7376 #line 1744 "parser.yy"
     7376#line 1743 "parser.yy"
    73777377    { (yyval.in) = 0; }
    73787378    break;
     
    73817381
    73827382/* Line 1806 of yacc.c  */
    7383 #line 1746 "parser.yy"
     7383#line 1745 "parser.yy"
    73847384    { (yyval.in) = (yyvsp[(2) - (2)].in); }
    73857385    break;
     
    73887388
    73897389/* Line 1806 of yacc.c  */
    7390 #line 1748 "parser.yy"
     7390#line 1747 "parser.yy"
    73917391    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); }
    73927392    break;
     
    73957395
    73967396/* Line 1806 of yacc.c  */
     7397#line 1751 "parser.yy"
     7398    { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
     7399    break;
     7400
     7401  case 460:
     7402
     7403/* Line 1806 of yacc.c  */
    73977404#line 1752 "parser.yy"
    7398     { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
    7399     break;
    7400 
    7401   case 460:
    7402 
    7403 /* Line 1806 of yacc.c  */
    7404 #line 1753 "parser.yy"
    74057405    { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
    74067406    break;
     
    74097409
    74107410/* Line 1806 of yacc.c  */
    7411 #line 1758 "parser.yy"
     7411#line 1757 "parser.yy"
    74127412    { (yyval.in) = 0; }
    74137413    break;
     
    74167416
    74177417/* Line 1806 of yacc.c  */
     7418#line 1759 "parser.yy"
     7419    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
     7420    break;
     7421
     7422  case 464:
     7423
     7424/* Line 1806 of yacc.c  */
    74187425#line 1760 "parser.yy"
    7419     { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
    7420     break;
    7421 
    7422   case 464:
    7423 
    7424 /* Line 1806 of yacc.c  */
    7425 #line 1761 "parser.yy"
    74267426    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); }
    74277427    break;
     
    74307430
    74317431/* Line 1806 of yacc.c  */
    7432 #line 1763 "parser.yy"
     7432#line 1762 "parser.yy"
    74337433    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_last( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
    74347434    break;
     
    74377437
    74387438/* Line 1806 of yacc.c  */
    7439 #line 1779 "parser.yy"
     7439#line 1778 "parser.yy"
    74407440    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); }
    74417441    break;
     
    74447444
    74457445/* Line 1806 of yacc.c  */
    7446 #line 1785 "parser.yy"
     7446#line 1784 "parser.yy"
    74477447    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) ) ); }
    74487448    break;
     
    74517451
    74527452/* Line 1806 of yacc.c  */
    7453 #line 1791 "parser.yy"
     7453#line 1790 "parser.yy"
    74547454    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); }
    74557455    break;
     
    74587458
    74597459/* Line 1806 of yacc.c  */
    7460 #line 1794 "parser.yy"
     7460#line 1793 "parser.yy"
    74617461    { (yyval.en) = (yyvsp[(3) - (5)].en); }
    74627462    break;
     
    74657465
    74667466/* Line 1806 of yacc.c  */
    7467 #line 1796 "parser.yy"
     7467#line 1795 "parser.yy"
    74687468    { (yyval.en) = (yyvsp[(3) - (5)].en); }
    74697469    break;
     
    74727472
    74737473/* Line 1806 of yacc.c  */
    7474 #line 1798 "parser.yy"
     7474#line 1797 "parser.yy"
    74757475    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); }
    74767476    break;
     
    74797479
    74807480/* Line 1806 of yacc.c  */
    7481 #line 1800 "parser.yy"
     7481#line 1799 "parser.yy"
    74827482    { (yyval.en) = (yyvsp[(4) - (6)].en); }
    74837483    break;
     
    74867486
    74877487/* Line 1806 of yacc.c  */
    7488 #line 1824 "parser.yy"
     7488#line 1823 "parser.yy"
    74897489    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    74907490    break;
     
    74937493
    74947494/* Line 1806 of yacc.c  */
    7495 #line 1826 "parser.yy"
     7495#line 1825 "parser.yy"
    74967496    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    74977497    break;
     
    75007500
    75017501/* Line 1806 of yacc.c  */
    7502 #line 1828 "parser.yy"
     7502#line 1827 "parser.yy"
    75037503    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    75047504    break;
     
    75077507
    75087508/* Line 1806 of yacc.c  */
    7509 #line 1834 "parser.yy"
     7509#line 1833 "parser.yy"
    75107510    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    75117511    break;
     
    75147514
    75157515/* Line 1806 of yacc.c  */
    7516 #line 1836 "parser.yy"
     7516#line 1835 "parser.yy"
    75177517    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    75187518    break;
     
    75217521
    75227522/* Line 1806 of yacc.c  */
    7523 #line 1841 "parser.yy"
     7523#line 1840 "parser.yy"
    75247524    { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    75257525    break;
     
    75287528
    75297529/* Line 1806 of yacc.c  */
    7530 #line 1847 "parser.yy"
     7530#line 1846 "parser.yy"
    75317531    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
    75327532    break;
     
    75357535
    75367536/* Line 1806 of yacc.c  */
    7537 #line 1852 "parser.yy"
     7537#line 1851 "parser.yy"
    75387538    { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
    75397539    break;
     
    75427542
    75437543/* Line 1806 of yacc.c  */
    7544 #line 1854 "parser.yy"
     7544#line 1853 "parser.yy"
    75457545    { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
    75467546    break;
     
    75497549
    75507550/* Line 1806 of yacc.c  */
    7551 #line 1860 "parser.yy"
     7551#line 1859 "parser.yy"
    75527552    { (yyval.tclass) = DeclarationNode::Otype; }
    75537553    break;
     
    75567556
    75577557/* Line 1806 of yacc.c  */
    7558 #line 1862 "parser.yy"
     7558#line 1861 "parser.yy"
    75597559    { (yyval.tclass) = DeclarationNode::Ftype; }
    75607560    break;
     
    75637563
    75647564/* Line 1806 of yacc.c  */
    7565 #line 1864 "parser.yy"
     7565#line 1863 "parser.yy"
    75667566    { (yyval.tclass) = DeclarationNode::Dtype; }
    75677567    break;
     
    75707570
    75717571/* Line 1806 of yacc.c  */
    7572 #line 1869 "parser.yy"
     7572#line 1868 "parser.yy"
    75737573    { (yyval.decl) = 0; }
    75747574    break;
     
    75777577
    75787578/* Line 1806 of yacc.c  */
    7579 #line 1871 "parser.yy"
     7579#line 1870 "parser.yy"
    75807580    { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
    75817581    break;
     
    75847584
    75857585/* Line 1806 of yacc.c  */
    7586 #line 1876 "parser.yy"
     7586#line 1875 "parser.yy"
    75877587    {
    75887588                        typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) );
     
    75947594
    75957595/* Line 1806 of yacc.c  */
    7596 #line 1881 "parser.yy"
     7596#line 1880 "parser.yy"
    75977597    { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
    75987598    break;
     
    76017601
    76027602/* Line 1806 of yacc.c  */
    7603 #line 1883 "parser.yy"
     7603#line 1882 "parser.yy"
    76047604    { (yyval.decl) = 0; }
    76057605    break;
     
    76087608
    76097609/* Line 1806 of yacc.c  */
    7610 #line 1888 "parser.yy"
     7610#line 1887 "parser.yy"
    76117611    { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); }
    76127612    break;
     
    76157615
    76167616/* Line 1806 of yacc.c  */
    7617 #line 1891 "parser.yy"
     7617#line 1890 "parser.yy"
    76187618    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); }
    76197619    break;
     
    76227622
    76237623/* Line 1806 of yacc.c  */
    7624 #line 1893 "parser.yy"
     7624#line 1892 "parser.yy"
    76257625    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
    76267626    break;
     
    76297629
    76307630/* Line 1806 of yacc.c  */
    7631 #line 1898 "parser.yy"
     7631#line 1897 "parser.yy"
    76327632    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    76337633    break;
     
    76367636
    76377637/* Line 1806 of yacc.c  */
    7638 #line 1900 "parser.yy"
     7638#line 1899 "parser.yy"
    76397639    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
    76407640    break;
     
    76437643
    76447644/* Line 1806 of yacc.c  */
    7645 #line 1902 "parser.yy"
     7645#line 1901 "parser.yy"
    76467646    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
    76477647    break;
     
    76507650
    76517651/* Line 1806 of yacc.c  */
    7652 #line 1907 "parser.yy"
     7652#line 1906 "parser.yy"
    76537653    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
    76547654    break;
     
    76577657
    76587658/* Line 1806 of yacc.c  */
    7659 #line 1909 "parser.yy"
     7659#line 1908 "parser.yy"
    76607660    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
    76617661    break;
     
    76647664
    76657665/* Line 1806 of yacc.c  */
    7666 #line 1914 "parser.yy"
     7666#line 1913 "parser.yy"
    76677667    {
    76687668                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD );
     
    76747674
    76757675/* Line 1806 of yacc.c  */
    7676 #line 1919 "parser.yy"
     7676#line 1918 "parser.yy"
    76777677    {
    76787678                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG );
     
    76847684
    76857685/* Line 1806 of yacc.c  */
    7686 #line 1927 "parser.yy"
     7686#line 1926 "parser.yy"
    76877687    {
    76887688                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID );
     
    76947694
    76957695/* Line 1806 of yacc.c  */
    7696 #line 1932 "parser.yy"
     7696#line 1931 "parser.yy"
    76977697    {
    76987698                        typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) );
     
    77047704
    77057705/* Line 1806 of yacc.c  */
    7706 #line 1937 "parser.yy"
     7706#line 1936 "parser.yy"
    77077707    {
    77087708                        typedefTable.leaveTrait();
     
    77157715
    77167716/* Line 1806 of yacc.c  */
    7717 #line 1947 "parser.yy"
     7717#line 1946 "parser.yy"
    77187718    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    77197719    break;
     
    77227722
    77237723/* Line 1806 of yacc.c  */
    7724 #line 1957 "parser.yy"
     7724#line 1956 "parser.yy"
    77257725    {
    77267726                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77327732
    77337733/* Line 1806 of yacc.c  */
    7734 #line 1962 "parser.yy"
     7734#line 1961 "parser.yy"
    77357735    {
    77367736                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77427742
    77437743/* Line 1806 of yacc.c  */
    7744 #line 1967 "parser.yy"
     7744#line 1966 "parser.yy"
    77457745    {
    77467746                        typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    77527752
    77537753/* Line 1806 of yacc.c  */
    7754 #line 1975 "parser.yy"
     7754#line 1974 "parser.yy"
    77557755    {
    77567756                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77627762
    77637763/* Line 1806 of yacc.c  */
    7764 #line 1980 "parser.yy"
     7764#line 1979 "parser.yy"
    77657765    {
    77667766                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77727772
    77737773/* Line 1806 of yacc.c  */
    7774 #line 1990 "parser.yy"
     7774#line 1989 "parser.yy"
    77757775    {}
    77767776    break;
     
    77797779
    77807780/* Line 1806 of yacc.c  */
    7781 #line 1992 "parser.yy"
     7781#line 1991 "parser.yy"
    77827782    { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl);    }
    77837783    break;
     
    77867786
    77877787/* Line 1806 of yacc.c  */
    7788 #line 1998 "parser.yy"
     7788#line 1997 "parser.yy"
    77897789    { (yyval.decl) = (yyvsp[(1) - (3)].decl) != nullptr ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
    77907790    break;
     
    77937793
    77947794/* Line 1806 of yacc.c  */
    7795 #line 2003 "parser.yy"
     7795#line 2002 "parser.yy"
    77967796    { (yyval.decl) = 0; }
    77977797    break;
     
    78007800
    78017801/* Line 1806 of yacc.c  */
    7802 #line 2011 "parser.yy"
     7802#line 2010 "parser.yy"
    78037803    {}
    78047804    break;
     
    78077807
    78087808/* Line 1806 of yacc.c  */
    7809 #line 2013 "parser.yy"
     7809#line 2012 "parser.yy"
    78107810    {
    78117811                        linkageStack.push( linkage );                           // handle nested extern "C"/"Cforall"
     
    78177817
    78187818/* Line 1806 of yacc.c  */
    7819 #line 2018 "parser.yy"
     7819#line 2017 "parser.yy"
    78207820    {
    78217821                        linkage = linkageStack.top();
     
    78287828
    78297829/* Line 1806 of yacc.c  */
    7830 #line 2024 "parser.yy"
     7830#line 2023 "parser.yy"
    78317831    {   // mark all fields in list
    78327832                        for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     
    78397839
    78407840/* Line 1806 of yacc.c  */
    7841 #line 2039 "parser.yy"
     7841#line 2038 "parser.yy"
    78427842    {
    78437843                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78507850
    78517851/* Line 1806 of yacc.c  */
    7852 #line 2045 "parser.yy"
     7852#line 2044 "parser.yy"
    78537853    {
    78547854                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78617861
    78627862/* Line 1806 of yacc.c  */
    7863 #line 2054 "parser.yy"
     7863#line 2053 "parser.yy"
    78647864    {
    78657865                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78727872
    78737873/* Line 1806 of yacc.c  */
    7874 #line 2060 "parser.yy"
     7874#line 2059 "parser.yy"
    78757875    {
    78767876                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78837883
    78847884/* Line 1806 of yacc.c  */
    7885 #line 2066 "parser.yy"
     7885#line 2065 "parser.yy"
    78867886    {
    78877887                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78947894
    78957895/* Line 1806 of yacc.c  */
    7896 #line 2072 "parser.yy"
     7896#line 2071 "parser.yy"
    78977897    {
    78987898                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79057905
    79067906/* Line 1806 of yacc.c  */
    7907 #line 2078 "parser.yy"
     7907#line 2077 "parser.yy"
    79087908    {
    79097909                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79167916
    79177917/* Line 1806 of yacc.c  */
    7918 #line 2086 "parser.yy"
     7918#line 2085 "parser.yy"
    79197919    {
    79207920                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79277927
    79287928/* Line 1806 of yacc.c  */
    7929 #line 2092 "parser.yy"
     7929#line 2091 "parser.yy"
    79307930    {
    79317931                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79387938
    79397939/* Line 1806 of yacc.c  */
    7940 #line 2100 "parser.yy"
     7940#line 2099 "parser.yy"
    79417941    {
    79427942                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79497949
    79507950/* Line 1806 of yacc.c  */
    7951 #line 2106 "parser.yy"
     7951#line 2105 "parser.yy"
    79527952    {
    79537953                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79607960
    79617961/* Line 1806 of yacc.c  */
    7962 #line 2121 "parser.yy"
     7962#line 2120 "parser.yy"
    79637963    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    79647964    break;
     
    79677967
    79687968/* Line 1806 of yacc.c  */
    7969 #line 2126 "parser.yy"
     7969#line 2125 "parser.yy"
    79707970    { delete (yyvsp[(3) - (5)].str); }
    79717971    break;
     
    79747974
    79757975/* Line 1806 of yacc.c  */
    7976 #line 2131 "parser.yy"
     7976#line 2130 "parser.yy"
    79777977    { (yyval.decl) = 0; }
    79787978    break;
     
    79817981
    79827982/* Line 1806 of yacc.c  */
    7983 #line 2138 "parser.yy"
     7983#line 2137 "parser.yy"
    79847984    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    79857985    break;
     
    79887988
    79897989/* Line 1806 of yacc.c  */
    7990 #line 2144 "parser.yy"
     7990#line 2143 "parser.yy"
    79917991    { (yyval.decl) = 0; }
    79927992    break;
     
    79957995
    79967996/* Line 1806 of yacc.c  */
    7997 #line 2155 "parser.yy"
     7997#line 2154 "parser.yy"
    79987998    { delete (yyvsp[(3) - (4)].en); }
    79997999    break;
     
    80028002
    80038003/* Line 1806 of yacc.c  */
     8004#line 2158 "parser.yy"
     8005    { delete (yyvsp[(1) - (1)].tok); }
     8006    break;
     8007
     8008  case 560:
     8009
     8010/* Line 1806 of yacc.c  */
    80048011#line 2159 "parser.yy"
    8005     { delete (yyvsp[(1) - (1)].tok); }
    8006     break;
    8007 
    8008   case 560:
     8012    { delete (yyvsp[(1) - (1)].decl); }
     8013    break;
     8014
     8015  case 561:
    80098016
    80108017/* Line 1806 of yacc.c  */
     
    80138020    break;
    80148021
    8015   case 561:
     8022  case 562:
    80168023
    80178024/* Line 1806 of yacc.c  */
     
    80208027    break;
    80218028
    8022   case 562:
    8023 
    8024 /* Line 1806 of yacc.c  */
    8025 #line 2162 "parser.yy"
    8026     { delete (yyvsp[(1) - (1)].decl); }
    8027     break;
    8028 
    80298029  case 563:
    80308030
    80318031/* Line 1806 of yacc.c  */
    8032 #line 2197 "parser.yy"
     8032#line 2196 "parser.yy"
    80338033    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80348034    break;
     
    80378037
    80388038/* Line 1806 of yacc.c  */
    8039 #line 2200 "parser.yy"
     8039#line 2199 "parser.yy"
    80408040    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80418041    break;
     
    80448044
    80458045/* Line 1806 of yacc.c  */
    8046 #line 2202 "parser.yy"
     8046#line 2201 "parser.yy"
    80478047    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80488048    break;
     
    80518051
    80528052/* Line 1806 of yacc.c  */
    8053 #line 2207 "parser.yy"
     8053#line 2206 "parser.yy"
    80548054    {
    80558055                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    80618061
    80628062/* Line 1806 of yacc.c  */
    8063 #line 2212 "parser.yy"
     8063#line 2211 "parser.yy"
    80648064    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80658065    break;
     
    80688068
    80698069/* Line 1806 of yacc.c  */
    8070 #line 2217 "parser.yy"
     8070#line 2216 "parser.yy"
    80718071    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    80728072    break;
     
    80758075
    80768076/* Line 1806 of yacc.c  */
    8077 #line 2219 "parser.yy"
     8077#line 2218 "parser.yy"
    80788078    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    80798079    break;
     
    80828082
    80838083/* Line 1806 of yacc.c  */
    8084 #line 2221 "parser.yy"
     8084#line 2220 "parser.yy"
    80858085    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80868086    break;
     
    80898089
    80908090/* Line 1806 of yacc.c  */
    8091 #line 2226 "parser.yy"
     8091#line 2225 "parser.yy"
    80928092    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    80938093    break;
     
    80968096
    80978097/* Line 1806 of yacc.c  */
    8098 #line 2228 "parser.yy"
     8098#line 2227 "parser.yy"
    80998099    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    81008100    break;
     
    81038103
    81048104/* Line 1806 of yacc.c  */
    8105 #line 2230 "parser.yy"
     8105#line 2229 "parser.yy"
    81068106    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    81078107    break;
     
    81108110
    81118111/* Line 1806 of yacc.c  */
    8112 #line 2232 "parser.yy"
     8112#line 2231 "parser.yy"
    81138113    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81148114    break;
     
    81178117
    81188118/* Line 1806 of yacc.c  */
    8119 #line 2237 "parser.yy"
     8119#line 2236 "parser.yy"
    81208120    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    81218121    break;
     
    81248124
    81258125/* Line 1806 of yacc.c  */
    8126 #line 2239 "parser.yy"
     8126#line 2238 "parser.yy"
    81278127    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81288128    break;
     
    81318131
    81328132/* Line 1806 of yacc.c  */
    8133 #line 2248 "parser.yy"
     8133#line 2247 "parser.yy"
    81348134    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    81358135    break;
     
    81388138
    81398139/* Line 1806 of yacc.c  */
    8140 #line 2251 "parser.yy"
     8140#line 2250 "parser.yy"
    81418141    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    81428142    break;
     
    81458145
    81468146/* Line 1806 of yacc.c  */
    8147 #line 2256 "parser.yy"
     8147#line 2255 "parser.yy"
    81488148    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    81498149    break;
     
    81528152
    81538153/* Line 1806 of yacc.c  */
    8154 #line 2258 "parser.yy"
     8154#line 2257 "parser.yy"
    81558155    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    81568156    break;
     
    81598159
    81608160/* Line 1806 of yacc.c  */
    8161 #line 2260 "parser.yy"
     8161#line 2259 "parser.yy"
    81628162    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81638163    break;
     
    81668166
    81678167/* Line 1806 of yacc.c  */
    8168 #line 2265 "parser.yy"
     8168#line 2264 "parser.yy"
    81698169    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    81708170    break;
     
    81738173
    81748174/* Line 1806 of yacc.c  */
    8175 #line 2267 "parser.yy"
     8175#line 2266 "parser.yy"
    81768176    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    81778177    break;
     
    81808180
    81818181/* Line 1806 of yacc.c  */
    8182 #line 2269 "parser.yy"
     8182#line 2268 "parser.yy"
    81838183    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81848184    break;
     
    81878187
    81888188/* Line 1806 of yacc.c  */
    8189 #line 2274 "parser.yy"
     8189#line 2273 "parser.yy"
    81908190    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    81918191    break;
     
    81948194
    81958195/* Line 1806 of yacc.c  */
    8196 #line 2276 "parser.yy"
     8196#line 2275 "parser.yy"
    81978197    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    81988198    break;
     
    82018201
    82028202/* Line 1806 of yacc.c  */
    8203 #line 2278 "parser.yy"
     8203#line 2277 "parser.yy"
    82048204    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82058205    break;
     
    82088208
    82098209/* Line 1806 of yacc.c  */
    8210 #line 2293 "parser.yy"
     8210#line 2292 "parser.yy"
    82118211    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
    82128212    break;
     
    82158215
    82168216/* Line 1806 of yacc.c  */
    8217 #line 2295 "parser.yy"
     8217#line 2294 "parser.yy"
    82188218    { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
    82198219    break;
     
    82228222
    82238223/* Line 1806 of yacc.c  */
    8224 #line 2297 "parser.yy"
     8224#line 2296 "parser.yy"
    82258225    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82268226    break;
     
    82298229
    82308230/* Line 1806 of yacc.c  */
    8231 #line 2302 "parser.yy"
     8231#line 2301 "parser.yy"
    82328232    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    82338233    break;
     
    82368236
    82378237/* Line 1806 of yacc.c  */
    8238 #line 2304 "parser.yy"
     8238#line 2303 "parser.yy"
    82398239    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    82408240    break;
     
    82438243
    82448244/* Line 1806 of yacc.c  */
    8245 #line 2306 "parser.yy"
     8245#line 2305 "parser.yy"
    82468246    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82478247    break;
     
    82508250
    82518251/* Line 1806 of yacc.c  */
    8252 #line 2311 "parser.yy"
     8252#line 2310 "parser.yy"
    82538253    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    82548254    break;
     
    82578257
    82588258/* Line 1806 of yacc.c  */
    8259 #line 2313 "parser.yy"
     8259#line 2312 "parser.yy"
    82608260    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    82618261    break;
     
    82648264
    82658265/* Line 1806 of yacc.c  */
    8266 #line 2315 "parser.yy"
     8266#line 2314 "parser.yy"
    82678267    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82688268    break;
     
    82718271
    82728272/* Line 1806 of yacc.c  */
    8273 #line 2330 "parser.yy"
     8273#line 2329 "parser.yy"
    82748274    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82758275    break;
     
    82788278
    82798279/* Line 1806 of yacc.c  */
    8280 #line 2333 "parser.yy"
     8280#line 2332 "parser.yy"
    82818281    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82828282    break;
     
    82858285
    82868286/* Line 1806 of yacc.c  */
    8287 #line 2335 "parser.yy"
     8287#line 2334 "parser.yy"
    82888288    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82898289    break;
     
    82928292
    82938293/* Line 1806 of yacc.c  */
    8294 #line 2341 "parser.yy"
     8294#line 2340 "parser.yy"
    82958295    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82968296    break;
     
    82998299
    83008300/* Line 1806 of yacc.c  */
    8301 #line 2346 "parser.yy"
     8301#line 2345 "parser.yy"
    83028302    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    83038303    break;
     
    83068306
    83078307/* Line 1806 of yacc.c  */
    8308 #line 2348 "parser.yy"
     8308#line 2347 "parser.yy"
    83098309    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    83108310    break;
     
    83138313
    83148314/* Line 1806 of yacc.c  */
    8315 #line 2350 "parser.yy"
     8315#line 2349 "parser.yy"
    83168316    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83178317    break;
     
    83208320
    83218321/* Line 1806 of yacc.c  */
    8322 #line 2355 "parser.yy"
     8322#line 2354 "parser.yy"
    83238323    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    83248324    break;
     
    83278327
    83288328/* Line 1806 of yacc.c  */
    8329 #line 2357 "parser.yy"
     8329#line 2356 "parser.yy"
    83308330    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    83318331    break;
     
    83348334
    83358335/* Line 1806 of yacc.c  */
    8336 #line 2359 "parser.yy"
     8336#line 2358 "parser.yy"
    83378337    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    83388338    break;
     
    83418341
    83428342/* Line 1806 of yacc.c  */
    8343 #line 2361 "parser.yy"
     8343#line 2360 "parser.yy"
    83448344    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83458345    break;
     
    83488348
    83498349/* Line 1806 of yacc.c  */
    8350 #line 2366 "parser.yy"
     8350#line 2365 "parser.yy"
    83518351    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    83528352    break;
     
    83558355
    83568356/* Line 1806 of yacc.c  */
    8357 #line 2368 "parser.yy"
     8357#line 2367 "parser.yy"
    83588358    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    83598359    break;
     
    83628362
    83638363/* Line 1806 of yacc.c  */
    8364 #line 2370 "parser.yy"
     8364#line 2369 "parser.yy"
    83658365    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83668366    break;
     
    83698369
    83708370/* Line 1806 of yacc.c  */
    8371 #line 2380 "parser.yy"
     8371#line 2379 "parser.yy"
    83728372    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83738373    break;
     
    83768376
    83778377/* Line 1806 of yacc.c  */
    8378 #line 2383 "parser.yy"
     8378#line 2382 "parser.yy"
    83798379    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83808380    break;
     
    83838383
    83848384/* Line 1806 of yacc.c  */
    8385 #line 2385 "parser.yy"
     8385#line 2384 "parser.yy"
    83868386    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83878387    break;
     
    83908390
    83918391/* Line 1806 of yacc.c  */
    8392 #line 2390 "parser.yy"
     8392#line 2389 "parser.yy"
    83938393    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    83948394    break;
     
    83978397
    83988398/* Line 1806 of yacc.c  */
    8399 #line 2392 "parser.yy"
     8399#line 2391 "parser.yy"
    84008400    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    84018401    break;
     
    84048404
    84058405/* Line 1806 of yacc.c  */
    8406 #line 2394 "parser.yy"
     8406#line 2393 "parser.yy"
    84078407    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84088408    break;
     
    84118411
    84128412/* Line 1806 of yacc.c  */
    8413 #line 2399 "parser.yy"
     8413#line 2398 "parser.yy"
    84148414    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    84158415    break;
     
    84188418
    84198419/* Line 1806 of yacc.c  */
    8420 #line 2401 "parser.yy"
     8420#line 2400 "parser.yy"
    84218421    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    84228422    break;
     
    84258425
    84268426/* Line 1806 of yacc.c  */
    8427 #line 2403 "parser.yy"
     8427#line 2402 "parser.yy"
    84288428    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    84298429    break;
     
    84328432
    84338433/* Line 1806 of yacc.c  */
    8434 #line 2405 "parser.yy"
     8434#line 2404 "parser.yy"
    84358435    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84368436    break;
     
    84398439
    84408440/* Line 1806 of yacc.c  */
    8441 #line 2410 "parser.yy"
     8441#line 2409 "parser.yy"
    84428442    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    84438443    break;
     
    84468446
    84478447/* Line 1806 of yacc.c  */
    8448 #line 2412 "parser.yy"
     8448#line 2411 "parser.yy"
    84498449    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    84508450    break;
     
    84538453
    84548454/* Line 1806 of yacc.c  */
    8455 #line 2414 "parser.yy"
     8455#line 2413 "parser.yy"
    84568456    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84578457    break;
     
    84608460
    84618461/* Line 1806 of yacc.c  */
    8462 #line 2445 "parser.yy"
     8462#line 2444 "parser.yy"
    84638463    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84648464    break;
     
    84678467
    84688468/* Line 1806 of yacc.c  */
    8469 #line 2448 "parser.yy"
     8469#line 2447 "parser.yy"
    84708470    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84718471    break;
     
    84748474
    84758475/* Line 1806 of yacc.c  */
    8476 #line 2450 "parser.yy"
     8476#line 2449 "parser.yy"
    84778477    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84788478    break;
     
    84818481
    84828482/* Line 1806 of yacc.c  */
    8483 #line 2455 "parser.yy"
     8483#line 2454 "parser.yy"
    84848484    {
    84858485                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    84918491
    84928492/* Line 1806 of yacc.c  */
    8493 #line 2460 "parser.yy"
     8493#line 2459 "parser.yy"
    84948494    {
    84958495                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    85018501
    85028502/* Line 1806 of yacc.c  */
    8503 #line 2468 "parser.yy"
     8503#line 2467 "parser.yy"
    85048504    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    85058505    break;
     
    85088508
    85098509/* Line 1806 of yacc.c  */
    8510 #line 2470 "parser.yy"
     8510#line 2469 "parser.yy"
    85118511    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    85128512    break;
     
    85158515
    85168516/* Line 1806 of yacc.c  */
    8517 #line 2472 "parser.yy"
     8517#line 2471 "parser.yy"
    85188518    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85198519    break;
     
    85228522
    85238523/* Line 1806 of yacc.c  */
    8524 #line 2477 "parser.yy"
     8524#line 2476 "parser.yy"
    85258525    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    85268526    break;
     
    85298529
    85308530/* Line 1806 of yacc.c  */
    8531 #line 2479 "parser.yy"
     8531#line 2478 "parser.yy"
    85328532    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    85338533    break;
     
    85368536
    85378537/* Line 1806 of yacc.c  */
    8538 #line 2484 "parser.yy"
     8538#line 2483 "parser.yy"
    85398539    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    85408540    break;
     
    85438543
    85448544/* Line 1806 of yacc.c  */
    8545 #line 2486 "parser.yy"
     8545#line 2485 "parser.yy"
    85468546    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    85478547    break;
     
    85508550
    85518551/* Line 1806 of yacc.c  */
    8552 #line 2501 "parser.yy"
     8552#line 2500 "parser.yy"
    85538553    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    85548554    break;
     
    85578557
    85588558/* Line 1806 of yacc.c  */
    8559 #line 2503 "parser.yy"
     8559#line 2502 "parser.yy"
    85608560    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    85618561    break;
     
    85648564
    85658565/* Line 1806 of yacc.c  */
    8566 #line 2508 "parser.yy"
     8566#line 2507 "parser.yy"
    85678567    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    85688568    break;
     
    85718571
    85728572/* Line 1806 of yacc.c  */
    8573 #line 2510 "parser.yy"
     8573#line 2509 "parser.yy"
    85748574    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    85758575    break;
     
    85788578
    85798579/* Line 1806 of yacc.c  */
    8580 #line 2512 "parser.yy"
     8580#line 2511 "parser.yy"
    85818581    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    85828582    break;
     
    85858585
    85868586/* Line 1806 of yacc.c  */
    8587 #line 2514 "parser.yy"
     8587#line 2513 "parser.yy"
    85888588    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    85898589    break;
     
    85928592
    85938593/* Line 1806 of yacc.c  */
    8594 #line 2516 "parser.yy"
     8594#line 2515 "parser.yy"
    85958595    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85968596    break;
     
    85998599
    86008600/* Line 1806 of yacc.c  */
    8601 #line 2522 "parser.yy"
     8601#line 2521 "parser.yy"
    86028602    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    86038603    break;
     
    86068606
    86078607/* Line 1806 of yacc.c  */
    8608 #line 2524 "parser.yy"
     8608#line 2523 "parser.yy"
    86098609    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    86108610    break;
     
    86138613
    86148614/* Line 1806 of yacc.c  */
    8615 #line 2526 "parser.yy"
     8615#line 2525 "parser.yy"
    86168616    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86178617    break;
     
    86208620
    86218621/* Line 1806 of yacc.c  */
    8622 #line 2531 "parser.yy"
     8622#line 2530 "parser.yy"
    86238623    { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
    86248624    break;
     
    86278627
    86288628/* Line 1806 of yacc.c  */
    8629 #line 2533 "parser.yy"
     8629#line 2532 "parser.yy"
    86308630    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    86318631    break;
     
    86348634
    86358635/* Line 1806 of yacc.c  */
    8636 #line 2535 "parser.yy"
     8636#line 2534 "parser.yy"
    86378637    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86388638    break;
     
    86418641
    86428642/* Line 1806 of yacc.c  */
    8643 #line 2541 "parser.yy"
     8643#line 2540 "parser.yy"
    86448644    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    86458645    break;
     
    86488648
    86498649/* Line 1806 of yacc.c  */
    8650 #line 2543 "parser.yy"
     8650#line 2542 "parser.yy"
    86518651    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
    86528652    break;
     
    86558655
    86568656/* Line 1806 of yacc.c  */
    8657 #line 2549 "parser.yy"
     8657#line 2548 "parser.yy"
    86588658    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
    86598659    break;
     
    86628662
    86638663/* Line 1806 of yacc.c  */
    8664 #line 2551 "parser.yy"
     8664#line 2550 "parser.yy"
    86658665    { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
    86668666    break;
     
    86698669
    86708670/* Line 1806 of yacc.c  */
    8671 #line 2553 "parser.yy"
     8671#line 2552 "parser.yy"
    86728672    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
    86738673    break;
     
    86768676
    86778677/* Line 1806 of yacc.c  */
    8678 #line 2555 "parser.yy"
     8678#line 2554 "parser.yy"
    86798679    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
    86808680    break;
     
    86838683
    86848684/* Line 1806 of yacc.c  */
    8685 #line 2570 "parser.yy"
     8685#line 2569 "parser.yy"
    86868686    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    86878687    break;
     
    86908690
    86918691/* Line 1806 of yacc.c  */
    8692 #line 2572 "parser.yy"
     8692#line 2571 "parser.yy"
    86938693    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    86948694    break;
     
    86978697
    86988698/* Line 1806 of yacc.c  */
    8699 #line 2577 "parser.yy"
     8699#line 2576 "parser.yy"
    87008700    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    87018701    break;
     
    87048704
    87058705/* Line 1806 of yacc.c  */
    8706 #line 2579 "parser.yy"
     8706#line 2578 "parser.yy"
    87078707    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    87088708    break;
     
    87118711
    87128712/* Line 1806 of yacc.c  */
    8713 #line 2581 "parser.yy"
     8713#line 2580 "parser.yy"
    87148714    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    87158715    break;
     
    87188718
    87198719/* Line 1806 of yacc.c  */
    8720 #line 2583 "parser.yy"
     8720#line 2582 "parser.yy"
    87218721    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    87228722    break;
     
    87258725
    87268726/* Line 1806 of yacc.c  */
    8727 #line 2585 "parser.yy"
     8727#line 2584 "parser.yy"
    87288728    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87298729    break;
     
    87328732
    87338733/* Line 1806 of yacc.c  */
    8734 #line 2591 "parser.yy"
     8734#line 2590 "parser.yy"
    87358735    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    87368736    break;
     
    87398739
    87408740/* Line 1806 of yacc.c  */
    8741 #line 2593 "parser.yy"
     8741#line 2592 "parser.yy"
    87428742    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    87438743    break;
     
    87468746
    87478747/* Line 1806 of yacc.c  */
    8748 #line 2595 "parser.yy"
     8748#line 2594 "parser.yy"
    87498749    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87508750    break;
     
    87538753
    87548754/* Line 1806 of yacc.c  */
    8755 #line 2600 "parser.yy"
     8755#line 2599 "parser.yy"
    87568756    { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
    87578757    break;
     
    87608760
    87618761/* Line 1806 of yacc.c  */
    8762 #line 2602 "parser.yy"
     8762#line 2601 "parser.yy"
    87638763    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    87648764    break;
     
    87678767
    87688768/* Line 1806 of yacc.c  */
    8769 #line 2604 "parser.yy"
     8769#line 2603 "parser.yy"
    87708770    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87718771    break;
     
    87748774
    87758775/* Line 1806 of yacc.c  */
    8776 #line 2611 "parser.yy"
     8776#line 2610 "parser.yy"
    87778777    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    87788778    break;
     
    87818781
    87828782/* Line 1806 of yacc.c  */
    8783 #line 2622 "parser.yy"
     8783#line 2621 "parser.yy"
    87848784    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    87858785    break;
     
    87888788
    87898789/* Line 1806 of yacc.c  */
    8790 #line 2625 "parser.yy"
     8790#line 2624 "parser.yy"
    87918791    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    87928792    break;
     
    87958795
    87968796/* Line 1806 of yacc.c  */
    8797 #line 2627 "parser.yy"
     8797#line 2626 "parser.yy"
    87988798    { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
    87998799    break;
     
    88028802
    88038803/* Line 1806 of yacc.c  */
    8804 #line 2630 "parser.yy"
     8804#line 2629 "parser.yy"
    88058805    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    88068806    break;
     
    88098809
    88108810/* Line 1806 of yacc.c  */
    8811 #line 2632 "parser.yy"
     8811#line 2631 "parser.yy"
    88128812    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
    88138813    break;
     
    88168816
    88178817/* Line 1806 of yacc.c  */
    8818 #line 2634 "parser.yy"
     8818#line 2633 "parser.yy"
    88198819    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
    88208820    break;
     
    88238823
    88248824/* Line 1806 of yacc.c  */
    8825 #line 2648 "parser.yy"
     8825#line 2647 "parser.yy"
    88268826    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    88278827    break;
     
    88308830
    88318831/* Line 1806 of yacc.c  */
    8832 #line 2650 "parser.yy"
     8832#line 2649 "parser.yy"
    88338833    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    88348834    break;
     
    88378837
    88388838/* Line 1806 of yacc.c  */
    8839 #line 2655 "parser.yy"
     8839#line 2654 "parser.yy"
    88408840    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    88418841    break;
     
    88448844
    88458845/* Line 1806 of yacc.c  */
    8846 #line 2657 "parser.yy"
     8846#line 2656 "parser.yy"
    88478847    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    88488848    break;
     
    88518851
    88528852/* Line 1806 of yacc.c  */
    8853 #line 2659 "parser.yy"
     8853#line 2658 "parser.yy"
    88548854    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    88558855    break;
     
    88588858
    88598859/* Line 1806 of yacc.c  */
    8860 #line 2661 "parser.yy"
     8860#line 2660 "parser.yy"
    88618861    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    88628862    break;
     
    88658865
    88668866/* Line 1806 of yacc.c  */
    8867 #line 2663 "parser.yy"
     8867#line 2662 "parser.yy"
    88688868    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    88698869    break;
     
    88728872
    88738873/* Line 1806 of yacc.c  */
    8874 #line 2669 "parser.yy"
     8874#line 2668 "parser.yy"
    88758875    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    88768876    break;
     
    88798879
    88808880/* Line 1806 of yacc.c  */
    8881 #line 2671 "parser.yy"
     8881#line 2670 "parser.yy"
    88828882    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    88838883    break;
     
    88868886
    88878887/* Line 1806 of yacc.c  */
    8888 #line 2673 "parser.yy"
     8888#line 2672 "parser.yy"
    88898889    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    88908890    break;
     
    88938893
    88948894/* Line 1806 of yacc.c  */
    8895 #line 2678 "parser.yy"
     8895#line 2677 "parser.yy"
    88968896    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    88978897    break;
     
    89008900
    89018901/* Line 1806 of yacc.c  */
    8902 #line 2680 "parser.yy"
     8902#line 2679 "parser.yy"
    89038903    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    89048904    break;
     
    89078907
    89088908/* Line 1806 of yacc.c  */
    8909 #line 2690 "parser.yy"
     8909#line 2689 "parser.yy"
    89108910    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    89118911    break;
     
    89148914
    89158915/* Line 1806 of yacc.c  */
    8916 #line 2700 "parser.yy"
     8916#line 2699 "parser.yy"
    89178917    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89188918    break;
     
    89218921
    89228922/* Line 1806 of yacc.c  */
    8923 #line 2702 "parser.yy"
     8923#line 2701 "parser.yy"
    89248924    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89258925    break;
     
    89288928
    89298929/* Line 1806 of yacc.c  */
    8930 #line 2704 "parser.yy"
     8930#line 2703 "parser.yy"
    89318931    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89328932    break;
     
    89358935
    89368936/* Line 1806 of yacc.c  */
    8937 #line 2706 "parser.yy"
     8937#line 2705 "parser.yy"
    89388938    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89398939    break;
     
    89428942
    89438943/* Line 1806 of yacc.c  */
    8944 #line 2708 "parser.yy"
     8944#line 2707 "parser.yy"
    89458945    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89468946    break;
     
    89498949
    89508950/* Line 1806 of yacc.c  */
    8951 #line 2710 "parser.yy"
     8951#line 2709 "parser.yy"
    89528952    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89538953    break;
     
    89568956
    89578957/* Line 1806 of yacc.c  */
    8958 #line 2717 "parser.yy"
     8958#line 2716 "parser.yy"
    89598959    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89608960    break;
     
    89638963
    89648964/* Line 1806 of yacc.c  */
    8965 #line 2719 "parser.yy"
     8965#line 2718 "parser.yy"
    89668966    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    89678967    break;
     
    89708970
    89718971/* Line 1806 of yacc.c  */
    8972 #line 2721 "parser.yy"
     8972#line 2720 "parser.yy"
    89738973    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89748974    break;
     
    89778977
    89788978/* Line 1806 of yacc.c  */
    8979 #line 2723 "parser.yy"
     8979#line 2722 "parser.yy"
    89808980    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    89818981    break;
     
    89848984
    89858985/* Line 1806 of yacc.c  */
    8986 #line 2725 "parser.yy"
     8986#line 2724 "parser.yy"
    89878987    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    89888988    break;
     
    89918991
    89928992/* Line 1806 of yacc.c  */
     8993#line 2726 "parser.yy"
     8994    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8995    break;
     8996
     8997  case 722:
     8998
     8999/* Line 1806 of yacc.c  */
    89939000#line 2728 "parser.yy"
    8994     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8995     break;
    8996 
    8997   case 722:
     9001    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     9002    break;
     9003
     9004  case 723:
    89989005
    89999006/* Line 1806 of yacc.c  */
    90009007#line 2730 "parser.yy"
     9008    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     9009    break;
     9010
     9011  case 724:
     9012
     9013/* Line 1806 of yacc.c  */
     9014#line 2732 "parser.yy"
     9015    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     9016    break;
     9017
     9018  case 725:
     9019
     9020/* Line 1806 of yacc.c  */
     9021#line 2734 "parser.yy"
    90019022    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    90029023    break;
    90039024
    9004   case 723:
    9005 
    9006 /* Line 1806 of yacc.c  */
    9007 #line 2732 "parser.yy"
    9008     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    9009     break;
    9010 
    9011   case 724:
    9012 
    9013 /* Line 1806 of yacc.c  */
    9014 #line 2734 "parser.yy"
    9015     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    9016     break;
    9017 
    9018   case 725:
    9019 
    9020 /* Line 1806 of yacc.c  */
    9021 #line 2736 "parser.yy"
     9025  case 726:
     9026
     9027/* Line 1806 of yacc.c  */
     9028#line 2739 "parser.yy"
     9029    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
     9030    break;
     9031
     9032  case 727:
     9033
     9034/* Line 1806 of yacc.c  */
     9035#line 2741 "parser.yy"
     9036    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
     9037    break;
     9038
     9039  case 728:
     9040
     9041/* Line 1806 of yacc.c  */
     9042#line 2746 "parser.yy"
     9043    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
     9044    break;
     9045
     9046  case 729:
     9047
     9048/* Line 1806 of yacc.c  */
     9049#line 2748 "parser.yy"
     9050    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
     9051    break;
     9052
     9053  case 731:
     9054
     9055/* Line 1806 of yacc.c  */
     9056#line 2775 "parser.yy"
     9057    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     9058    break;
     9059
     9060  case 735:
     9061
     9062/* Line 1806 of yacc.c  */
     9063#line 2786 "parser.yy"
     9064    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     9065    break;
     9066
     9067  case 736:
     9068
     9069/* Line 1806 of yacc.c  */
     9070#line 2788 "parser.yy"
     9071    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     9072    break;
     9073
     9074  case 737:
     9075
     9076/* Line 1806 of yacc.c  */
     9077#line 2790 "parser.yy"
     9078    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     9079    break;
     9080
     9081  case 738:
     9082
     9083/* Line 1806 of yacc.c  */
     9084#line 2792 "parser.yy"
     9085    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     9086    break;
     9087
     9088  case 739:
     9089
     9090/* Line 1806 of yacc.c  */
     9091#line 2794 "parser.yy"
     9092    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     9093    break;
     9094
     9095  case 740:
     9096
     9097/* Line 1806 of yacc.c  */
     9098#line 2796 "parser.yy"
     9099    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     9100    break;
     9101
     9102  case 741:
     9103
     9104/* Line 1806 of yacc.c  */
     9105#line 2803 "parser.yy"
     9106    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     9107    break;
     9108
     9109  case 742:
     9110
     9111/* Line 1806 of yacc.c  */
     9112#line 2805 "parser.yy"
     9113    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     9114    break;
     9115
     9116  case 743:
     9117
     9118/* Line 1806 of yacc.c  */
     9119#line 2807 "parser.yy"
    90229120    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    90239121    break;
    90249122
    9025   case 726:
    9026 
    9027 /* Line 1806 of yacc.c  */
    9028 #line 2741 "parser.yy"
    9029     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    9030     break;
    9031 
    9032   case 727:
    9033 
    9034 /* Line 1806 of yacc.c  */
    9035 #line 2743 "parser.yy"
    9036     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    9037     break;
    9038 
    9039   case 728:
    9040 
    9041 /* Line 1806 of yacc.c  */
    9042 #line 2748 "parser.yy"
    9043     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
    9044     break;
    9045 
    9046   case 729:
    9047 
    9048 /* Line 1806 of yacc.c  */
    9049 #line 2750 "parser.yy"
    9050     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
    9051     break;
    9052 
    9053   case 731:
    9054 
    9055 /* Line 1806 of yacc.c  */
    9056 #line 2777 "parser.yy"
    9057     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    9058     break;
    9059 
    9060   case 735:
    9061 
    9062 /* Line 1806 of yacc.c  */
    9063 #line 2788 "parser.yy"
    9064     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    9065     break;
    9066 
    9067   case 736:
    9068 
    9069 /* Line 1806 of yacc.c  */
    9070 #line 2790 "parser.yy"
    9071     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    9072     break;
    9073 
    9074   case 737:
    9075 
    9076 /* Line 1806 of yacc.c  */
    9077 #line 2792 "parser.yy"
    9078     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    9079     break;
    9080 
    9081   case 738:
    9082 
    9083 /* Line 1806 of yacc.c  */
    9084 #line 2794 "parser.yy"
    9085     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    9086     break;
    9087 
    9088   case 739:
    9089 
    9090 /* Line 1806 of yacc.c  */
    9091 #line 2796 "parser.yy"
    9092     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    9093     break;
    9094 
    9095   case 740:
    9096 
    9097 /* Line 1806 of yacc.c  */
    9098 #line 2798 "parser.yy"
    9099     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    9100     break;
    9101 
    9102   case 741:
    9103 
    9104 /* Line 1806 of yacc.c  */
    9105 #line 2805 "parser.yy"
     9123  case 744:
     9124
     9125/* Line 1806 of yacc.c  */
     9126#line 2809 "parser.yy"
    91069127    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    91079128    break;
    91089129
    9109   case 742:
    9110 
    9111 /* Line 1806 of yacc.c  */
    9112 #line 2807 "parser.yy"
     9130  case 745:
     9131
     9132/* Line 1806 of yacc.c  */
     9133#line 2811 "parser.yy"
    91139134    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    91149135    break;
    91159136
    9116   case 743:
    9117 
    9118 /* Line 1806 of yacc.c  */
    9119 #line 2809 "parser.yy"
     9137  case 746:
     9138
     9139/* Line 1806 of yacc.c  */
     9140#line 2813 "parser.yy"
    91209141    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    91219142    break;
    91229143
    9123   case 744:
    9124 
    9125 /* Line 1806 of yacc.c  */
    9126 #line 2811 "parser.yy"
    9127     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    9128     break;
    9129 
    9130   case 745:
    9131 
    9132 /* Line 1806 of yacc.c  */
    9133 #line 2813 "parser.yy"
    9134     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    9135     break;
    9136 
    9137   case 746:
    9138 
    9139 /* Line 1806 of yacc.c  */
    9140 #line 2815 "parser.yy"
    9141     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    9142     break;
    9143 
    91449144  case 747:
    91459145
    91469146/* Line 1806 of yacc.c  */
    9147 #line 2820 "parser.yy"
     9147#line 2818 "parser.yy"
    91489148    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    91499149    break;
     
    91529152
    91539153/* Line 1806 of yacc.c  */
     9154#line 2823 "parser.yy"
     9155    { (yyval.decl) = DeclarationNode::newFunction( nullptr, DeclarationNode::newTuple( nullptr ), (yyvsp[(4) - (5)].decl), nullptr ); }
     9156    break;
     9157
     9158  case 749:
     9159
     9160/* Line 1806 of yacc.c  */
    91549161#line 2825 "parser.yy"
    9155     { (yyval.decl) = DeclarationNode::newFunction( nullptr, DeclarationNode::newTuple( nullptr ), (yyvsp[(4) - (5)].decl), nullptr ); }
    9156     break;
    9157 
    9158   case 749:
     9162    { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); }
     9163    break;
     9164
     9165  case 750:
    91599166
    91609167/* Line 1806 of yacc.c  */
     
    91639170    break;
    91649171
    9165   case 750:
    9166 
    9167 /* Line 1806 of yacc.c  */
    9168 #line 2829 "parser.yy"
    9169     { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); }
    9170     break;
    9171 
    91729172  case 753:
    91739173
    91749174/* Line 1806 of yacc.c  */
     9175#line 2851 "parser.yy"
     9176    { (yyval.en) = 0; }
     9177    break;
     9178
     9179  case 754:
     9180
     9181/* Line 1806 of yacc.c  */
    91759182#line 2853 "parser.yy"
    9176     { (yyval.en) = 0; }
    9177     break;
    9178 
    9179   case 754:
    9180 
    9181 /* Line 1806 of yacc.c  */
    9182 #line 2855 "parser.yy"
    91839183    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    91849184    break;
     
    94189418
    94199419/* Line 2067 of yacc.c  */
    9420 #line 2858 "parser.yy"
     9420#line 2856 "parser.yy"
    94219421
    94229422// ----end of grammar----
Note: See TracChangeset for help on using the changeset viewer.