Ignore:
Timestamp:
Oct 19, 2016, 10:32:04 PM (8 years ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
Children:
315f634, fe7b281
Parents:
c2183a3
Message:

small changes to bring me up to date

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/parser.cc

    rc2183a3 r9059213  
    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,   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
     1029     413,   417,   421,   423,   425,   427,   432,   434,   438,   441,
     1030     443,   445,   450,   463,   465,   467,   469,   471,   473,   475,
     1031     477,   479,   481,   483,   490,   491,   497,   498,   499,   500,
     1032     504,   505,   507,   512,   513,   515,   517,   522,   523,   525,
     1033     530,   531,   533,   538,   539,   541,   543,   545,   550,   551,
     1034     553,   558,   559,   564,   565,   570,   571,   576,   577,   582,
     1035     583,   588,   589,   592,   594,   599,   604,   605,   607,   613,
     1036     614,   618,   619,   620,   621,   622,   623,   624,   625,   626,
     1037     627,   628,   629,   635,   637,   639,   641,   646,   647,   652,
     1038     653,   659,   660,   666,   667,   668,   669,   670,   671,   672,
     1039     673,   674,   684,   691,   693,   703,   704,   709,   711,   717,
     1040     719,   723,   724,   729,   734,   737,   739,   741,   751,   753,
     1041     764,   765,   767,   771,   773,   777,   778,   783,   784,   788,
     1042     793,   794,   798,   800,   806,   807,   811,   813,   815,   817,
     1043     823,   824,   828,   830,   835,   837,   839,   844,   846,   851,
     1044     853,   857,   860,   864,   867,   871,   873,   875,   877,   882,
     1045     884,   886,   891,   893,   895,   897,   899,   904,   906,   908,
     1046     910,   915,   927,   928,   933,   935,   940,   944,   946,   948,
     1047     950,   952,   958,   959,   965,   966,   970,   971,   976,   978,
     1048     984,   985,   987,   992,   997,  1007,  1009,  1013,  1014,  1019,
     1049    1021,  1025,  1026,  1030,  1032,  1036,  1037,  1041,  1042,  1046,
     1050    1047,  1062,  1063,  1064,  1065,  1066,  1070,  1075,  1082,  1092,
     1051    1097,  1102,  1110,  1115,  1120,  1125,  1130,  1138,  1160,  1165,
     1052    1172,  1174,  1181,  1186,  1191,  1202,  1207,  1212,  1217,  1222,
     1053    1231,  1236,  1244,  1245,  1246,  1247,  1253,  1258,  1266,  1267,
     1054    1268,  1269,  1273,  1274,  1275,  1276,  1281,  1282,  1291,  1292,
     1055    1297,  1298,  1303,  1305,  1307,  1309,  1311,  1314,  1313,  1325,
     1056    1326,  1328,  1338,  1339,  1344,  1346,  1348,  1350,  1352,  1355,
     1057    1357,  1360,  1365,  1367,  1369,  1371,  1373,  1375,  1377,  1379,
     1058    1381,  1383,  1385,  1387,  1389,  1395,  1396,  1398,  1400,  1402,
     1059    1407,  1408,  1414,  1415,  1417,  1419,  1424,  1426,  1428,  1430,
     1060    1435,  1436,  1438,  1440,  1445,  1446,  1448,  1453,  1454,  1456,
     1061    1458,  1463,  1465,  1467,  1472,  1473,  1477,  1479,  1485,  1484,
     1062    1488,  1490,  1495,  1497,  1503,  1504,  1509,  1510,  1512,  1513,
     1063    1522,  1523,  1525,  1527,  1532,  1534,  1540,  1541,  1543,  1546,
     1064    1549,  1554,  1555,  1560,  1565,  1569,  1571,  1577,  1576,  1583,
     1065    1585,  1591,  1592,  1600,  1601,  1605,  1606,  1607,  1609,  1611,
     1066    1618,  1619,  1621,  1623,  1628,  1629,  1635,  1636,  1640,  1641,
     1067    1646,  1647,  1648,  1650,  1658,  1659,  1661,  1664,  1666,  1670,
     1068    1671,  1672,  1674,  1676,  1680,  1685,  1693,  1694,  1703,  1705,
     1069    1710,  1711,  1712,  1716,  1717,  1718,  1722,  1723,  1724,  1728,
     1070    1729,  1730,  1735,  1736,  1737,  1738,  1744,  1745,  1747,  1752,
     1071    1753,  1758,  1759,  1760,  1761,  1762,  1777,  1778,  1783,  1784,
     1072    1790,  1792,  1795,  1797,  1799,  1822,  1823,  1825,  1827,  1832,
     1073    1833,  1835,  1840,  1845,  1846,  1852,  1851,  1855,  1859,  1861,
     1074    1863,  1869,  1870,  1875,  1880,  1882,  1887,  1889,  1890,  1892,
     1075    1897,  1899,  1901,  1906,  1908,  1913,  1918,  1926,  1932,  1931,
     1076    1945,  1946,  1951,  1952,  1956,  1961,  1966,  1974,  1979,  1990,
     1077    1991,  1996,  1997,  2003,  2004,  2008,  2009,  2010,  2013,  2012,
     1078    2023,  2032,  2038,  2044,  2053,  2059,  2065,  2071,  2077,  2085,
     1079    2091,  2099,  2105,  2114,  2115,  2116,  2120,  2124,  2126,  2131,
     1080    2132,  2136,  2137,  2142,  2148,  2149,  2152,  2154,  2155,  2159,
     1081    2160,  2161,  2162,  2196,  2198,  2199,  2201,  2206,  2211,  2216,
     1082    2218,  2220,  2225,  2227,  2229,  2231,  2236,  2238,  2247,  2249,
     1083    2250,  2255,  2257,  2259,  2264,  2266,  2268,  2273,  2275,  2277,
     1084    2286,  2287,  2288,  2292,  2294,  2296,  2301,  2303,  2305,  2310,
     1085    2312,  2314,  2329,  2331,  2332,  2334,  2339,  2340,  2345,  2347,
     1086    2349,  2354,  2356,  2358,  2360,  2365,  2367,  2369,  2379,  2381,
     1087    2382,  2384,  2389,  2391,  2393,  2398,  2400,  2402,  2404,  2409,
     1088    2411,  2413,  2444,  2446,  2447,  2449,  2454,  2459,  2467,  2469,
     1089    2471,  2476,  2478,  2483,  2485,  2499,  2500,  2502,  2507,  2509,
     1090    2511,  2513,  2515,  2520,  2521,  2523,  2525,  2530,  2532,  2534,
     1091    2540,  2542,  2544,  2548,  2550,  2552,  2554,  2568,  2569,  2571,
     1092    2576,  2578,  2580,  2582,  2584,  2589,  2590,  2592,  2594,  2599,
     1093    2601,  2603,  2609,  2610,  2612,  2621,  2624,  2626,  2629,  2631,
     1094    2633,  2646,  2647,  2649,  2654,  2656,  2658,  2660,  2662,  2667,
     1095    2668,  2670,  2672,  2677,  2679,  2687,  2688,  2689,  2694,  2695,
     1096    2699,  2701,  2703,  2705,  2707,  2709,  2716,  2718,  2720,  2722,
     1097    2724,  2727,  2729,  2731,  2733,  2735,  2740,  2742,  2744,  2749,
     1098    2775,  2776,  2778,  2782,  2783,  2787,  2789,  2791,  2793,  2795,
     1099    2797,  2804,  2806,  2808,  2810,  2812,  2814,  2819,  2824,  2826,
     1100    2828,  2846,  2848,  2853,  2854
    11011101};
    11021102#endif
     
    51815181
    51825182/* Line 1806 of yacc.c  */
    5183 #line 441 "parser.yy"
     5183#line 442 "parser.yy"
    51845184    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    51855185    break;
     
    51885188
    51895189/* Line 1806 of yacc.c  */
    5190 #line 443 "parser.yy"
     5190#line 444 "parser.yy"
    51915191    { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
    51925192    break;
     
    51955195
    51965196/* Line 1806 of yacc.c  */
    5197 #line 445 "parser.yy"
     5197#line 446 "parser.yy"
    51985198    { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); }
    51995199    break;
     
    52025202
    52035203/* Line 1806 of yacc.c  */
    5204 #line 450 "parser.yy"
     5204#line 451 "parser.yy"
    52055205    {
    52065206                        switch ( (yyvsp[(1) - (2)].op) ) {
     
    52205220
    52215221/* Line 1806 of yacc.c  */
    5222 #line 463 "parser.yy"
     5222#line 464 "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 465 "parser.yy"
     5229#line 466 "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 467 "parser.yy"
     5236#line 468 "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 469 "parser.yy"
     5243#line 470 "parser.yy"
    52445244    { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); }
    52455245    break;
     
    52485248
    52495249/* Line 1806 of yacc.c  */
    5250 #line 471 "parser.yy"
     5250#line 472 "parser.yy"
    52515251    { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); }
    52525252    break;
     
    52555255
    52565256/* Line 1806 of yacc.c  */
    5257 #line 473 "parser.yy"
     5257#line 474 "parser.yy"
    52585258    { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); }
    52595259    break;
     
    52625262
    52635263/* Line 1806 of yacc.c  */
    5264 #line 475 "parser.yy"
     5264#line 476 "parser.yy"
    52655265    { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); }
    52665266    break;
     
    52695269
    52705270/* Line 1806 of yacc.c  */
    5271 #line 477 "parser.yy"
     5271#line 478 "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 479 "parser.yy"
     5278#line 480 "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 481 "parser.yy"
     5285#line 482 "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 483 "parser.yy"
     5292#line 484 "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"
     5299#line 490 "parser.yy"
    53005300    { (yyval.op) = OperKinds::PointTo; }
    53015301    break;
     
    53045304
    53055305/* Line 1806 of yacc.c  */
    5306 #line 490 "parser.yy"
     5306#line 491 "parser.yy"
    53075307    { (yyval.op) = OperKinds::AddressOf; }
    53085308    break;
     
    53115311
    53125312/* Line 1806 of yacc.c  */
    5313 #line 496 "parser.yy"
     5313#line 497 "parser.yy"
    53145314    { (yyval.op) = OperKinds::UnPlus; }
    53155315    break;
     
    53185318
    53195319/* Line 1806 of yacc.c  */
    5320 #line 497 "parser.yy"
     5320#line 498 "parser.yy"
    53215321    { (yyval.op) = OperKinds::UnMinus; }
    53225322    break;
     
    53255325
    53265326/* Line 1806 of yacc.c  */
    5327 #line 498 "parser.yy"
     5327#line 499 "parser.yy"
    53285328    { (yyval.op) = OperKinds::Neg; }
    53295329    break;
     
    53325332
    53335333/* Line 1806 of yacc.c  */
    5334 #line 499 "parser.yy"
     5334#line 500 "parser.yy"
    53355335    { (yyval.op) = OperKinds::BitNeg; }
    53365336    break;
     
    53395339
    53405340/* Line 1806 of yacc.c  */
    5341 #line 505 "parser.yy"
     5341#line 506 "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 507 "parser.yy"
     5348#line 508 "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 513 "parser.yy"
     5355#line 514 "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 515 "parser.yy"
     5362#line 516 "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 517 "parser.yy"
     5369#line 518 "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 523 "parser.yy"
     5376#line 524 "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 525 "parser.yy"
     5383#line 526 "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 531 "parser.yy"
     5390#line 532 "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 533 "parser.yy"
     5397#line 534 "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 539 "parser.yy"
     5404#line 540 "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 541 "parser.yy"
     5411#line 542 "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 543 "parser.yy"
     5418#line 544 "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 545 "parser.yy"
     5425#line 546 "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 551 "parser.yy"
     5432#line 552 "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 553 "parser.yy"
     5439#line 554 "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 559 "parser.yy"
     5446#line 560 "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 565 "parser.yy"
     5453#line 566 "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 571 "parser.yy"
     5460#line 572 "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 577 "parser.yy"
     5467#line 578 "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 583 "parser.yy"
     5474#line 584 "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 589 "parser.yy"
     5481#line 590 "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 592 "parser.yy"
     5488#line 593 "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 594 "parser.yy"
     5495#line 595 "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 605 "parser.yy"
     5502#line 606 "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 607 "parser.yy"
     5509#line 608 "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 612 "parser.yy"
     5516#line 613 "parser.yy"
    55175517    { (yyval.en) = nullptr; }
    55185518    break;
     
    55215521
    55225522/* Line 1806 of yacc.c  */
    5523 #line 617 "parser.yy"
     5523#line 618 "parser.yy"
    55245524    { (yyval.op) = OperKinds::Assign; }
    55255525    break;
     
    55285528
    55295529/* Line 1806 of yacc.c  */
    5530 #line 618 "parser.yy"
     5530#line 619 "parser.yy"
    55315531    { (yyval.op) = OperKinds::AtAssn; }
    55325532    break;
     
    55355535
    55365536/* Line 1806 of yacc.c  */
    5537 #line 619 "parser.yy"
     5537#line 620 "parser.yy"
    55385538    { (yyval.op) = OperKinds::MulAssn; }
    55395539    break;
     
    55425542
    55435543/* Line 1806 of yacc.c  */
    5544 #line 620 "parser.yy"
     5544#line 621 "parser.yy"
    55455545    { (yyval.op) = OperKinds::DivAssn; }
    55465546    break;
     
    55495549
    55505550/* Line 1806 of yacc.c  */
    5551 #line 621 "parser.yy"
     5551#line 622 "parser.yy"
    55525552    { (yyval.op) = OperKinds::ModAssn; }
    55535553    break;
     
    55565556
    55575557/* Line 1806 of yacc.c  */
    5558 #line 622 "parser.yy"
     5558#line 623 "parser.yy"
    55595559    { (yyval.op) = OperKinds::PlusAssn; }
    55605560    break;
     
    55635563
    55645564/* Line 1806 of yacc.c  */
    5565 #line 623 "parser.yy"
     5565#line 624 "parser.yy"
    55665566    { (yyval.op) = OperKinds::MinusAssn; }
    55675567    break;
     
    55705570
    55715571/* Line 1806 of yacc.c  */
    5572 #line 624 "parser.yy"
     5572#line 625 "parser.yy"
    55735573    { (yyval.op) = OperKinds::LSAssn; }
    55745574    break;
     
    55775577
    55785578/* Line 1806 of yacc.c  */
    5579 #line 625 "parser.yy"
     5579#line 626 "parser.yy"
    55805580    { (yyval.op) = OperKinds::RSAssn; }
    55815581    break;
     
    55845584
    55855585/* Line 1806 of yacc.c  */
    5586 #line 626 "parser.yy"
     5586#line 627 "parser.yy"
    55875587    { (yyval.op) = OperKinds::AndAssn; }
    55885588    break;
     
    55915591
    55925592/* Line 1806 of yacc.c  */
    5593 #line 627 "parser.yy"
     5593#line 628 "parser.yy"
    55945594    { (yyval.op) = OperKinds::ERAssn; }
    55955595    break;
     
    55985598
    55995599/* Line 1806 of yacc.c  */
    5600 #line 628 "parser.yy"
     5600#line 629 "parser.yy"
    56015601    { (yyval.op) = OperKinds::OrAssn; }
    56025602    break;
     
    56055605
    56065606/* Line 1806 of yacc.c  */
    5607 #line 635 "parser.yy"
     5607#line 636 "parser.yy"
    56085608    { (yyval.en) = new ExpressionNode( build_tuple() ); }
    56095609    break;
     
    56125612
    56135613/* Line 1806 of yacc.c  */
    5614 #line 637 "parser.yy"
     5614#line 638 "parser.yy"
    56155615    { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[(3) - (5)].en) ) ); }
    56165616    break;
     
    56195619
    56205620/* Line 1806 of yacc.c  */
    5621 #line 639 "parser.yy"
     5621#line 640 "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 641 "parser.yy"
     5628#line 642 "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 647 "parser.yy"
     5635#line 648 "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 653 "parser.yy"
     5642#line 654 "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 658 "parser.yy"
     5649#line 659 "parser.yy"
    56505650    { (yyval.en) = 0; }
    56515651    break;
     
    56545654
    56555655/* Line 1806 of yacc.c  */
    5656 #line 667 "parser.yy"
     5656#line 668 "parser.yy"
    56575657    { (yyval.sn) = (yyvsp[(1) - (1)].sn); }
    56585658    break;
     
    56615661
    56625662/* Line 1806 of yacc.c  */
    5663 #line 674 "parser.yy"
     5663#line 675 "parser.yy"
    56645664    {
    56655665                        Token fn;
     
    56725672
    56735673/* Line 1806 of yacc.c  */
    5674 #line 684 "parser.yy"
     5674#line 685 "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 691 "parser.yy"
     5683#line 692 "parser.yy"
    56845684    { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) ); }
    56855685    break;
     
    56885688
    56895689/* Line 1806 of yacc.c  */
    5690 #line 698 "parser.yy"
     5690#line 699 "parser.yy"
    56915691    { (yyval.sn) = new StatementNode( build_compound( (yyvsp[(5) - (7)].sn) ) ); }
    56925692    break;
     
    56955695
    56965696/* Line 1806 of yacc.c  */
    5697 #line 704 "parser.yy"
     5697#line 705 "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 709 "parser.yy"
     5704#line 710 "parser.yy"
    57055705    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    57065706    break;
     
    57095709
    57105710/* Line 1806 of yacc.c  */
    5711 #line 711 "parser.yy"
     5711#line 712 "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 717 "parser.yy"
     5722#line 718 "parser.yy"
    57235723    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    57245724    break;
     
    57275727
    57285728/* Line 1806 of yacc.c  */
    5729 #line 724 "parser.yy"
     5729#line 725 "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 729 "parser.yy"
     5736#line 730 "parser.yy"
    57375737    { (yyval.sn) = new StatementNode( build_expr( (yyvsp[(1) - (2)].en) ) ); }
    57385738    break;
     
    57415741
    57425742/* Line 1806 of yacc.c  */
    5743 #line 735 "parser.yy"
     5743#line 736 "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 737 "parser.yy"
     5750#line 738 "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 739 "parser.yy"
     5757#line 740 "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 741 "parser.yy"
     5764#line 742 "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 751 "parser.yy"
     5779#line 752 "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 753 "parser.yy"
     5786#line 754 "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 763 "parser.yy"
     5796#line 764 "parser.yy"
    57975797    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    57985798    break;
     
    58015801
    58025802/* Line 1806 of yacc.c  */
    5803 #line 765 "parser.yy"
     5803#line 766 "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 770 "parser.yy"
     5810#line 771 "parser.yy"
    58115811    { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); }
    58125812    break;
     
    58155815
    58165816/* Line 1806 of yacc.c  */
    5817 #line 772 "parser.yy"
     5817#line 773 "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"
     5824#line 777 "parser.yy"
    58255825    { (yyval.sn) = (yyvsp[(2) - (3)].sn); }
    58265826    break;
     
    58295829
    58305830/* Line 1806 of yacc.c  */
    5831 #line 777 "parser.yy"
     5831#line 778 "parser.yy"
    58325832    { (yyval.sn) = new StatementNode( build_default() ); }
    58335833    break;
     
    58365836
    58375837/* Line 1806 of yacc.c  */
    5838 #line 783 "parser.yy"
     5838#line 784 "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 787 "parser.yy"
     5845#line 788 "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 792 "parser.yy"
     5852#line 793 "parser.yy"
    58535853    { (yyval.sn) = 0; }
    58545854    break;
     
    58575857
    58585858/* Line 1806 of yacc.c  */
    5859 #line 798 "parser.yy"
     5859#line 799 "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 800 "parser.yy"
     5866#line 801 "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 805 "parser.yy"
     5873#line 806 "parser.yy"
    58745874    { (yyval.sn) = 0; }
    58755875    break;
     
    58785878
    58795879/* Line 1806 of yacc.c  */
    5880 #line 811 "parser.yy"
     5880#line 812 "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 813 "parser.yy"
     5887#line 814 "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 815 "parser.yy"
     5894#line 816 "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 817 "parser.yy"
     5901#line 818 "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 822 "parser.yy"
     5908#line 823 "parser.yy"
    59095909    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
    59105910    break;
     
    59135913
    59145914/* Line 1806 of yacc.c  */
    5915 #line 828 "parser.yy"
     5915#line 829 "parser.yy"
    59165916    { (yyval.sn) = 0; }
    59175917    break;
     
    59205920
    59215921/* Line 1806 of yacc.c  */
    5922 #line 830 "parser.yy"
     5922#line 831 "parser.yy"
    59235923    { (yyval.sn) = 0; }
    59245924    break;
     
    59275927
    59285928/* Line 1806 of yacc.c  */
    5929 #line 835 "parser.yy"
     5929#line 836 "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 837 "parser.yy"
     5936#line 838 "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 839 "parser.yy"
     5943#line 840 "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 844 "parser.yy"
     5950#line 845 "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 846 "parser.yy"
     5957#line 847 "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 851 "parser.yy"
     5964#line 852 "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 855 "parser.yy"
     5971#line 856 "parser.yy"
    59725972    { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); }
    59735973    break;
     
    59765976
    59775977/* Line 1806 of yacc.c  */
    5978 #line 858 "parser.yy"
     5978#line 859 "parser.yy"
    59795979    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Continue ) ); }
    59805980    break;
     
    59835983
    59845984/* Line 1806 of yacc.c  */
    5985 #line 862 "parser.yy"
     5985#line 863 "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 865 "parser.yy"
     5992#line 866 "parser.yy"
    59935993    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
    59945994    break;
     
    59975997
    59985998/* Line 1806 of yacc.c  */
    5999 #line 869 "parser.yy"
     5999#line 870 "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 871 "parser.yy"
     6006#line 872 "parser.yy"
    60076007    { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); }
    60086008    break;
     
    60116011
    60126012/* Line 1806 of yacc.c  */
    6013 #line 873 "parser.yy"
     6013#line 874 "parser.yy"
    60146014    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
    60156015    break;
     
    60186018
    60196019/* Line 1806 of yacc.c  */
    6020 #line 875 "parser.yy"
     6020#line 876 "parser.yy"
    60216021    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
    60226022    break;
     
    60256025
    60266026/* Line 1806 of yacc.c  */
    6027 #line 877 "parser.yy"
     6027#line 878 "parser.yy"
    60286028    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (5)].en) ) ); }
    60296029    break;
     
    60326032
    60336033/* Line 1806 of yacc.c  */
    6034 #line 882 "parser.yy"
     6034#line 883 "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 884 "parser.yy"
     6041#line 885 "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 886 "parser.yy"
     6048#line 887 "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 893 "parser.yy"
     6055#line 894 "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 895 "parser.yy"
     6062#line 896 "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 897 "parser.yy"
     6069#line 898 "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 899 "parser.yy"
     6076#line 900 "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 904 "parser.yy"
     6083#line 905 "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 906 "parser.yy"
     6090#line 907 "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 908 "parser.yy"
     6097#line 909 "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 910 "parser.yy"
     6104#line 911 "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 915 "parser.yy"
     6111#line 916 "parser.yy"
    61126112    {
    61136113                        (yyval.sn) = new StatementNode( build_finally( (yyvsp[(2) - (2)].sn) ) );
     
    61186118
    61196119/* Line 1806 of yacc.c  */
    6120 #line 928 "parser.yy"
     6120#line 929 "parser.yy"
    61216121    {
    61226122                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    61286128
    61296129/* Line 1806 of yacc.c  */
    6130 #line 933 "parser.yy"
     6130#line 934 "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 935 "parser.yy"
     6137#line 936 "parser.yy"
    61386138    {
    61396139                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    61456145
    61466146/* Line 1806 of yacc.c  */
    6147 #line 944 "parser.yy"
     6147#line 945 "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 946 "parser.yy"
     6154#line 947 "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 948 "parser.yy"
     6161#line 949 "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 950 "parser.yy"
     6168#line 951 "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 952 "parser.yy"
     6175#line 953 "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 957 "parser.yy"
     6182#line 958 "parser.yy"
    61836183    { (yyval.flag) = false; }
    61846184    break;
     
    61876187
    61886188/* Line 1806 of yacc.c  */
    6189 #line 959 "parser.yy"
     6189#line 960 "parser.yy"
    61906190    { (yyval.flag) = true; }
    61916191    break;
     
    61946194
    61956195/* Line 1806 of yacc.c  */
    6196 #line 964 "parser.yy"
     6196#line 965 "parser.yy"
    61976197    { (yyval.en) = 0; }
    61986198    break;
     
    62016201
    62026202/* Line 1806 of yacc.c  */
    6203 #line 971 "parser.yy"
     6203#line 972 "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 976 "parser.yy"
     6210#line 977 "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 978 "parser.yy"
     6217#line 979 "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 983 "parser.yy"
     6224#line 984 "parser.yy"
    62256225    { (yyval.en) = 0; }
    62266226    break;
     
    62296229
    62306230/* Line 1806 of yacc.c  */
    6231 #line 985 "parser.yy"
     6231#line 986 "parser.yy"
    62326232    { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
    62336233    break;
     
    62366236
    62376237/* Line 1806 of yacc.c  */
    6238 #line 987 "parser.yy"
     6238#line 988 "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 992 "parser.yy"
     6245#line 993 "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 997 "parser.yy"
     6255#line 998 "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 1007 "parser.yy"
     6265#line 1008 "parser.yy"
    62666266    { (yyval.decl) = 0; }
    62676267    break;
     
    62706270
    62716271/* Line 1806 of yacc.c  */
    6272 #line 1014 "parser.yy"
     6272#line 1015 "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 1019 "parser.yy"
     6279#line 1020 "parser.yy"
    62806280    { (yyval.decl) = 0; }
    62816281    break;
     
    62846284
    62856285/* Line 1806 of yacc.c  */
    6286 #line 1026 "parser.yy"
     6286#line 1027 "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:
    62986291
    62996292/* Line 1806 of yacc.c  */
     
    63026295    break;
    63036296
     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 1070 "parser.yy"
     6307#line 1071 "parser.yy"
    63086308    {
    63096309                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63156315
    63166316/* Line 1806 of yacc.c  */
    6317 #line 1077 "parser.yy"
     6317#line 1078 "parser.yy"
    63186318    {
    63196319                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63256325
    63266326/* Line 1806 of yacc.c  */
    6327 #line 1082 "parser.yy"
     6327#line 1083 "parser.yy"
    63286328    {
    63296329                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID );
     
    63356335
    63366336/* Line 1806 of yacc.c  */
    6337 #line 1092 "parser.yy"
     6337#line 1093 "parser.yy"
    63386338    {
    63396339                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    63456345
    63466346/* Line 1806 of yacc.c  */
    6347 #line 1097 "parser.yy"
     6347#line 1098 "parser.yy"
    63486348    {
    63496349                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    63556355
    63566356/* Line 1806 of yacc.c  */
    6357 #line 1102 "parser.yy"
     6357#line 1103 "parser.yy"
    63586358    {
    63596359                        typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) );
     
    63656365
    63666366/* Line 1806 of yacc.c  */
    6367 #line 1110 "parser.yy"
     6367#line 1111 "parser.yy"
    63686368    {
    63696369                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63756375
    63766376/* Line 1806 of yacc.c  */
    6377 #line 1115 "parser.yy"
     6377#line 1116 "parser.yy"
    63786378    {
    63796379                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63856385
    63866386/* Line 1806 of yacc.c  */
    6387 #line 1120 "parser.yy"
     6387#line 1121 "parser.yy"
    63886388    {
    63896389                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63956395
    63966396/* Line 1806 of yacc.c  */
    6397 #line 1125 "parser.yy"
     6397#line 1126 "parser.yy"
    63986398    {
    63996399                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64056405
    64066406/* Line 1806 of yacc.c  */
    6407 #line 1130 "parser.yy"
     6407#line 1131 "parser.yy"
    64086408    {
    64096409                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    64156415
    64166416/* Line 1806 of yacc.c  */
    6417 #line 1138 "parser.yy"
     6417#line 1139 "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 1161 "parser.yy"
     6426#line 1162 "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 1165 "parser.yy"
     6435#line 1166 "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 1172 "parser.yy"
     6444#line 1173 "parser.yy"
    64456445    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    64466446    break;
     
    64496449
    64506450/* Line 1806 of yacc.c  */
    6451 #line 1176 "parser.yy"
     6451#line 1177 "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 1181 "parser.yy"
     6458#line 1182 "parser.yy"
    64596459    {
    64606460                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64666466
    64676467/* Line 1806 of yacc.c  */
    6468 #line 1186 "parser.yy"
     6468#line 1187 "parser.yy"
    64696469    {
    64706470                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64766476
    64776477/* Line 1806 of yacc.c  */
    6478 #line 1191 "parser.yy"
     6478#line 1192 "parser.yy"
    64796479    {
    64806480                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD );
     
    64866486
    64876487/* Line 1806 of yacc.c  */
    6488 #line 1202 "parser.yy"
     6488#line 1203 "parser.yy"
    64896489    {
    64906490                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64966496
    64976497/* Line 1806 of yacc.c  */
    6498 #line 1207 "parser.yy"
     6498#line 1208 "parser.yy"
    64996499    {
    65006500                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65066506
    65076507/* Line 1806 of yacc.c  */
    6508 #line 1212 "parser.yy"
     6508#line 1213 "parser.yy"
    65096509    {
    65106510                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65166516
    65176517/* Line 1806 of yacc.c  */
    6518 #line 1217 "parser.yy"
     6518#line 1218 "parser.yy"
    65196519    {
    65206520                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65266526
    65276527/* Line 1806 of yacc.c  */
    6528 #line 1222 "parser.yy"
     6528#line 1223 "parser.yy"
    65296529    {
    65306530                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65366536
    65376537/* Line 1806 of yacc.c  */
    6538 #line 1231 "parser.yy"
     6538#line 1232 "parser.yy"
    65396539    {
    65406540                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD );
     
    65466546
    65476547/* Line 1806 of yacc.c  */
    6548 #line 1236 "parser.yy"
     6548#line 1237 "parser.yy"
    65496549    {
    65506550                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD );
     
    65566556
    65576557/* Line 1806 of yacc.c  */
    6558 #line 1253 "parser.yy"
     6558#line 1254 "parser.yy"
    65596559    {
    65606560                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    65666566
    65676567/* Line 1806 of yacc.c  */
    6568 #line 1258 "parser.yy"
     6568#line 1259 "parser.yy"
    65696569    {
    65706570                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    65766576
    65776577/* Line 1806 of yacc.c  */
    6578 #line 1280 "parser.yy"
     6578#line 1281 "parser.yy"
    65796579    { (yyval.decl) = 0; }
    65806580    break;
     
    65836583
    65846584/* Line 1806 of yacc.c  */
    6585 #line 1292 "parser.yy"
     6585#line 1293 "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 1303 "parser.yy"
     6592#line 1304 "parser.yy"
    65936593    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
    65946594    break;
     
    65976597
    65986598/* Line 1806 of yacc.c  */
    6599 #line 1305 "parser.yy"
     6599#line 1306 "parser.yy"
    66006600    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
    66016601    break;
     
    66046604
    66056605/* Line 1806 of yacc.c  */
    6606 #line 1307 "parser.yy"
     6606#line 1308 "parser.yy"
    66076607    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
    66086608    break;
     
    66116611
    66126612/* Line 1806 of yacc.c  */
    6613 #line 1309 "parser.yy"
     6613#line 1310 "parser.yy"
    66146614    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
    66156615    break;
     
    66186618
    66196619/* Line 1806 of yacc.c  */
    6620 #line 1311 "parser.yy"
     6620#line 1312 "parser.yy"
    66216621    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
    66226622    break;
     
    66256625
    66266626/* Line 1806 of yacc.c  */
    6627 #line 1313 "parser.yy"
     6627#line 1314 "parser.yy"
    66286628    {
    66296629                        typedefTable.enterScope();
     
    66346634
    66356635/* Line 1806 of yacc.c  */
    6636 #line 1317 "parser.yy"
     6636#line 1318 "parser.yy"
    66376637    {
    66386638                        typedefTable.leaveScope();
     
    66446644
    66456645/* Line 1806 of yacc.c  */
    6646 #line 1326 "parser.yy"
     6646#line 1327 "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 1328 "parser.yy"
     6653#line 1329 "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 1339 "parser.yy"
     6660#line 1340 "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 1344 "parser.yy"
     6667#line 1345 "parser.yy"
    66686668    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
    66696669    break;
     
    66726672
    66736673/* Line 1806 of yacc.c  */
    6674 #line 1346 "parser.yy"
     6674#line 1347 "parser.yy"
    66756675    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
    66766676    break;
     
    66796679
    66806680/* Line 1806 of yacc.c  */
    6681 #line 1348 "parser.yy"
     6681#line 1349 "parser.yy"
    66826682    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
    66836683    break;
     
    66866686
    66876687/* Line 1806 of yacc.c  */
    6688 #line 1350 "parser.yy"
     6688#line 1351 "parser.yy"
    66896689    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
    66906690    break;
     
    66936693
    66946694/* Line 1806 of yacc.c  */
    6695 #line 1353 "parser.yy"
     6695#line 1354 "parser.yy"
    66966696    { (yyval.decl) = new DeclarationNode; (yyval.decl)->isInline = true; }
    66976697    break;
     
    67006700
    67016701/* Line 1806 of yacc.c  */
    6702 #line 1355 "parser.yy"
     6702#line 1356 "parser.yy"
    67036703    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
    67046704    break;
     
    67076707
    67086708/* Line 1806 of yacc.c  */
    6709 #line 1358 "parser.yy"
     6709#line 1359 "parser.yy"
    67106710    { (yyval.decl) = new DeclarationNode; (yyval.decl)->isNoreturn = true; }
    67116711    break;
     
    67146714
    67156715/* Line 1806 of yacc.c  */
    6716 #line 1360 "parser.yy"
     6716#line 1361 "parser.yy"
    67176717    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
    67186718    break;
     
    67216721
    67226722/* Line 1806 of yacc.c  */
    6723 #line 1365 "parser.yy"
     6723#line 1366 "parser.yy"
    67246724    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
    67256725    break;
     
    67286728
    67296729/* Line 1806 of yacc.c  */
    6730 #line 1367 "parser.yy"
     6730#line 1368 "parser.yy"
    67316731    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
    67326732    break;
     
    67356735
    67366736/* Line 1806 of yacc.c  */
    6737 #line 1369 "parser.yy"
     6737#line 1370 "parser.yy"
    67386738    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
    67396739    break;
     
    67426742
    67436743/* Line 1806 of yacc.c  */
    6744 #line 1371 "parser.yy"
     6744#line 1372 "parser.yy"
    67456745    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
    67466746    break;
     
    67496749
    67506750/* Line 1806 of yacc.c  */
    6751 #line 1373 "parser.yy"
     6751#line 1374 "parser.yy"
    67526752    { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Long ); }
    67536753    break;
     
    67566756
    67576757/* Line 1806 of yacc.c  */
    6758 #line 1375 "parser.yy"
     6758#line 1376 "parser.yy"
    67596759    { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Short ); }
    67606760    break;
     
    67636763
    67646764/* Line 1806 of yacc.c  */
    6765 #line 1377 "parser.yy"
     6765#line 1378 "parser.yy"
    67666766    { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Signed ); }
    67676767    break;
     
    67706770
    67716771/* Line 1806 of yacc.c  */
    6772 #line 1379 "parser.yy"
     6772#line 1380 "parser.yy"
    67736773    { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Unsigned ); }
    67746774    break;
     
    67776777
    67786778/* Line 1806 of yacc.c  */
    6779 #line 1381 "parser.yy"
     6779#line 1382 "parser.yy"
    67806780    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
    67816781    break;
     
    67846784
    67856785/* Line 1806 of yacc.c  */
    6786 #line 1383 "parser.yy"
     6786#line 1384 "parser.yy"
    67876787    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
    67886788    break;
     
    67916791
    67926792/* Line 1806 of yacc.c  */
    6793 #line 1385 "parser.yy"
     6793#line 1386 "parser.yy"
    67946794    { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Complex ); }
    67956795    break;
     
    67986798
    67996799/* Line 1806 of yacc.c  */
    6800 #line 1387 "parser.yy"
     6800#line 1388 "parser.yy"
    68016801    { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Imaginary ); }
    68026802    break;
     
    68056805
    68066806/* Line 1806 of yacc.c  */
    6807 #line 1389 "parser.yy"
     6807#line 1390 "parser.yy"
    68086808    { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
    68096809    break;
     
    68126812
    68136813/* Line 1806 of yacc.c  */
    6814 #line 1396 "parser.yy"
     6814#line 1397 "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 1398 "parser.yy"
     6821#line 1399 "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 1400 "parser.yy"
     6828#line 1401 "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 1402 "parser.yy"
     6835#line 1403 "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 1408 "parser.yy"
     6842#line 1409 "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 1415 "parser.yy"
     6849#line 1416 "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 1417 "parser.yy"
     6856#line 1418 "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 1419 "parser.yy"
     6863#line 1420 "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 1424 "parser.yy"
     6870#line 1425 "parser.yy"
    68716871    { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
    68726872    break;
     
    68756875
    68766876/* Line 1806 of yacc.c  */
    6877 #line 1426 "parser.yy"
     6877#line 1427 "parser.yy"
    68786878    { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
    68796879    break;
     
    68826882
    68836883/* Line 1806 of yacc.c  */
    6884 #line 1428 "parser.yy"
     6884#line 1429 "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 1430 "parser.yy"
     6891#line 1431 "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 1436 "parser.yy"
     6898#line 1437 "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 1438 "parser.yy"
     6905#line 1439 "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 1440 "parser.yy"
     6912#line 1441 "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 1446 "parser.yy"
     6919#line 1447 "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 1448 "parser.yy"
     6926#line 1449 "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 1454 "parser.yy"
     6933#line 1455 "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 1456 "parser.yy"
     6940#line 1457 "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 1458 "parser.yy"
     6947#line 1459 "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 1463 "parser.yy"
     6954#line 1464 "parser.yy"
    69556955    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
    69566956    break;
     
    69596959
    69606960/* Line 1806 of yacc.c  */
    6961 #line 1465 "parser.yy"
     6961#line 1466 "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 1467 "parser.yy"
     6968#line 1468 "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 1477 "parser.yy"
     6975#line 1478 "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 1479 "parser.yy"
     6982#line 1480 "parser.yy"
    69836983    {
    69846984                        typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
     
    69906990
    69916991/* Line 1806 of yacc.c  */
    6992 #line 1484 "parser.yy"
     6992#line 1485 "parser.yy"
    69936993    { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
    69946994    break;
     
    69976997
    69986998/* Line 1806 of yacc.c  */
    6999 #line 1486 "parser.yy"
     6999#line 1487 "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 1488 "parser.yy"
     7006#line 1489 "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 1490 "parser.yy"
     7013#line 1491 "parser.yy"
    70147014    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    70157015    break;
     
    70187018
    70197019/* Line 1806 of yacc.c  */
    7020 #line 1495 "parser.yy"
     7020#line 1496 "parser.yy"
    70217021    { (yyval.aggKey) = DeclarationNode::Struct; }
    70227022    break;
     
    70257025
    70267026/* Line 1806 of yacc.c  */
    7027 #line 1497 "parser.yy"
     7027#line 1498 "parser.yy"
    70287028    { (yyval.aggKey) = DeclarationNode::Union; }
    70297029    break;
     
    70327032
    70337033/* Line 1806 of yacc.c  */
    7034 #line 1502 "parser.yy"
     7034#line 1503 "parser.yy"
    70357035    { (yyval.decl) = 0; }
    70367036    break;
     
    70397039
    70407040/* Line 1806 of yacc.c  */
    7041 #line 1504 "parser.yy"
     7041#line 1505 "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 1510 "parser.yy"
     7048#line 1511 "parser.yy"
    70497049    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); }
    70507050    break;
     
    70537053
    70547054/* Line 1806 of yacc.c  */
    7055 #line 1513 "parser.yy"
     7055#line 1514 "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 1523 "parser.yy"
     7066#line 1524 "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 1525 "parser.yy"
     7073#line 1526 "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 1527 "parser.yy"
     7080#line 1528 "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 1532 "parser.yy"
     7087#line 1533 "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 1534 "parser.yy"
     7094#line 1535 "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 1539 "parser.yy"
     7101#line 1540 "parser.yy"
    71027102    { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
    71037103    break;
     
    71067106
    71077107/* Line 1806 of yacc.c  */
    7108 #line 1541 "parser.yy"
     7108#line 1542 "parser.yy"
    71097109    { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
    71107110    break;
     
    71137113
    71147114/* Line 1806 of yacc.c  */
    7115 #line 1544 "parser.yy"
     7115#line 1545 "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 1547 "parser.yy"
     7122#line 1548 "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 1553 "parser.yy"
     7129#line 1554 "parser.yy"
    71307130    { (yyval.en) = 0; }
    71317131    break;
     
    71347134
    71357135/* Line 1806 of yacc.c  */
    7136 #line 1555 "parser.yy"
     7136#line 1556 "parser.yy"
    71377137    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    71387138    break;
     
    71417141
    71427142/* Line 1806 of yacc.c  */
    7143 #line 1560 "parser.yy"
     7143#line 1561 "parser.yy"
    71447144    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    71457145    break;
     
    71487148
    71497149/* Line 1806 of yacc.c  */
    7150 #line 1569 "parser.yy"
     7150#line 1570 "parser.yy"
    71517151    { (yyval.decl) = DeclarationNode::newEnum( nullptr, (yyvsp[(3) - (5)].decl) ); }
    71527152    break;
     
    71557155
    71567156/* Line 1806 of yacc.c  */
    7157 #line 1571 "parser.yy"
     7157#line 1572 "parser.yy"
    71587158    {
    71597159                        typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
     
    71657165
    71667166/* Line 1806 of yacc.c  */
    7167 #line 1576 "parser.yy"
     7167#line 1577 "parser.yy"
    71687168    { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
    71697169    break;
     
    71727172
    71737173/* Line 1806 of yacc.c  */
    7174 #line 1578 "parser.yy"
     7174#line 1579 "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 1583 "parser.yy"
     7181#line 1584 "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 1585 "parser.yy"
     7188#line 1586 "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 1590 "parser.yy"
     7195#line 1591 "parser.yy"
    71967196    { (yyval.en) = 0; }
    71977197    break;
     
    72007200
    72017201/* Line 1806 of yacc.c  */
    7202 #line 1592 "parser.yy"
     7202#line 1593 "parser.yy"
    72037203    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    72047204    break;
     
    72077207
    72087208/* Line 1806 of yacc.c  */
    7209 #line 1599 "parser.yy"
     7209#line 1600 "parser.yy"
    72107210    { (yyval.decl) = 0; }
    72117211    break;
     
    72147214
    72157215/* Line 1806 of yacc.c  */
    7216 #line 1607 "parser.yy"
     7216#line 1608 "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 1609 "parser.yy"
     7223#line 1610 "parser.yy"
    72247224    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    72257225    break;
     
    72287228
    72297229/* Line 1806 of yacc.c  */
    7230 #line 1611 "parser.yy"
     7230#line 1612 "parser.yy"
    72317231    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    72327232    break;
     
    72357235
    72367236/* Line 1806 of yacc.c  */
    7237 #line 1619 "parser.yy"
     7237#line 1620 "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 1621 "parser.yy"
     7244#line 1622 "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 1623 "parser.yy"
     7251#line 1624 "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 1629 "parser.yy"
     7258#line 1630 "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 1634 "parser.yy"
     7265#line 1635 "parser.yy"
    72667266    { (yyval.decl) = 0; }
    72677267    break;
     
    72707270
    72717271/* Line 1806 of yacc.c  */
    7272 #line 1641 "parser.yy"
     7272#line 1642 "parser.yy"
    72737273    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    72747274    break;
     
    72777277
    72787278/* Line 1806 of yacc.c  */
    7279 #line 1648 "parser.yy"
     7279#line 1649 "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 1650 "parser.yy"
     7286#line 1651 "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 1659 "parser.yy"
     7293#line 1660 "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 1662 "parser.yy"
     7300#line 1663 "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 1664 "parser.yy"
     7307#line 1665 "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 1674 "parser.yy"
     7314#line 1675 "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 1680 "parser.yy"
     7321#line 1681 "parser.yy"
    73227322    {
    73237323                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    73297329
    73307330/* Line 1806 of yacc.c  */
    7331 #line 1685 "parser.yy"
     7331#line 1686 "parser.yy"
    73327332    {
    73337333                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    73397339
    73407340/* Line 1806 of yacc.c  */
    7341 #line 1694 "parser.yy"
     7341#line 1695 "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 1703 "parser.yy"
     7348#line 1704 "parser.yy"
    73497349    { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
    73507350    break;
     
    73537353
    73547354/* Line 1806 of yacc.c  */
    7355 #line 1705 "parser.yy"
     7355#line 1706 "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 1730 "parser.yy"
     7362#line 1731 "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 1738 "parser.yy"
     7369#line 1739 "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 1743 "parser.yy"
     7376#line 1744 "parser.yy"
    73777377    { (yyval.in) = 0; }
    73787378    break;
     
    73817381
    73827382/* Line 1806 of yacc.c  */
    7383 #line 1745 "parser.yy"
     7383#line 1746 "parser.yy"
    73847384    { (yyval.in) = (yyvsp[(2) - (2)].in); }
    73857385    break;
     
    73887388
    73897389/* Line 1806 of yacc.c  */
    7390 #line 1747 "parser.yy"
     7390#line 1748 "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"
     7397#line 1752 "parser.yy"
    73987398    { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
    73997399    break;
     
    74027402
    74037403/* Line 1806 of yacc.c  */
    7404 #line 1752 "parser.yy"
     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 1757 "parser.yy"
     7411#line 1758 "parser.yy"
    74127412    { (yyval.in) = 0; }
    74137413    break;
     
    74167416
    74177417/* Line 1806 of yacc.c  */
    7418 #line 1759 "parser.yy"
     7418#line 1760 "parser.yy"
    74197419    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
    74207420    break;
     
    74237423
    74247424/* Line 1806 of yacc.c  */
    7425 #line 1760 "parser.yy"
     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 1762 "parser.yy"
     7432#line 1763 "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 1778 "parser.yy"
     7439#line 1779 "parser.yy"
    74407440    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); }
    74417441    break;
     
    74447444
    74457445/* Line 1806 of yacc.c  */
    7446 #line 1784 "parser.yy"
     7446#line 1785 "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 1790 "parser.yy"
     7453#line 1791 "parser.yy"
    74547454    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); }
    74557455    break;
     
    74587458
    74597459/* Line 1806 of yacc.c  */
    7460 #line 1793 "parser.yy"
     7460#line 1794 "parser.yy"
    74617461    { (yyval.en) = (yyvsp[(3) - (5)].en); }
    74627462    break;
     
    74657465
    74667466/* Line 1806 of yacc.c  */
    7467 #line 1795 "parser.yy"
     7467#line 1796 "parser.yy"
    74687468    { (yyval.en) = (yyvsp[(3) - (5)].en); }
    74697469    break;
     
    74727472
    74737473/* Line 1806 of yacc.c  */
    7474 #line 1797 "parser.yy"
     7474#line 1798 "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 1799 "parser.yy"
     7481#line 1800 "parser.yy"
    74827482    { (yyval.en) = (yyvsp[(4) - (6)].en); }
    74837483    break;
     
    74867486
    74877487/* Line 1806 of yacc.c  */
    7488 #line 1823 "parser.yy"
     7488#line 1824 "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 1825 "parser.yy"
     7495#line 1826 "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 1827 "parser.yy"
     7502#line 1828 "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 1833 "parser.yy"
     7509#line 1834 "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 1835 "parser.yy"
     7516#line 1836 "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 1840 "parser.yy"
     7523#line 1841 "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 1846 "parser.yy"
     7530#line 1847 "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 1851 "parser.yy"
     7537#line 1852 "parser.yy"
    75387538    { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
    75397539    break;
     
    75427542
    75437543/* Line 1806 of yacc.c  */
    7544 #line 1853 "parser.yy"
     7544#line 1854 "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 1859 "parser.yy"
     7551#line 1860 "parser.yy"
    75527552    { (yyval.tclass) = DeclarationNode::Otype; }
    75537553    break;
     
    75567556
    75577557/* Line 1806 of yacc.c  */
    7558 #line 1861 "parser.yy"
     7558#line 1862 "parser.yy"
    75597559    { (yyval.tclass) = DeclarationNode::Ftype; }
    75607560    break;
     
    75637563
    75647564/* Line 1806 of yacc.c  */
    7565 #line 1863 "parser.yy"
     7565#line 1864 "parser.yy"
    75667566    { (yyval.tclass) = DeclarationNode::Dtype; }
    75677567    break;
     
    75707570
    75717571/* Line 1806 of yacc.c  */
    7572 #line 1868 "parser.yy"
     7572#line 1869 "parser.yy"
    75737573    { (yyval.decl) = 0; }
    75747574    break;
     
    75777577
    75787578/* Line 1806 of yacc.c  */
    7579 #line 1870 "parser.yy"
     7579#line 1871 "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 1875 "parser.yy"
     7586#line 1876 "parser.yy"
    75877587    {
    75887588                        typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) );
     
    75947594
    75957595/* Line 1806 of yacc.c  */
    7596 #line 1880 "parser.yy"
     7596#line 1881 "parser.yy"
    75977597    { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
    75987598    break;
     
    76017601
    76027602/* Line 1806 of yacc.c  */
    7603 #line 1882 "parser.yy"
     7603#line 1883 "parser.yy"
    76047604    { (yyval.decl) = 0; }
    76057605    break;
     
    76087608
    76097609/* Line 1806 of yacc.c  */
    7610 #line 1887 "parser.yy"
     7610#line 1888 "parser.yy"
    76117611    { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); }
    76127612    break;
     
    76157615
    76167616/* Line 1806 of yacc.c  */
    7617 #line 1890 "parser.yy"
     7617#line 1891 "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 1892 "parser.yy"
     7624#line 1893 "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 1897 "parser.yy"
     7631#line 1898 "parser.yy"
    76327632    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    76337633    break;
     
    76367636
    76377637/* Line 1806 of yacc.c  */
    7638 #line 1899 "parser.yy"
     7638#line 1900 "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 1901 "parser.yy"
     7645#line 1902 "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 1906 "parser.yy"
     7652#line 1907 "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 1908 "parser.yy"
     7659#line 1909 "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 1913 "parser.yy"
     7666#line 1914 "parser.yy"
    76677667    {
    76687668                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD );
     
    76747674
    76757675/* Line 1806 of yacc.c  */
    7676 #line 1918 "parser.yy"
     7676#line 1919 "parser.yy"
    76777677    {
    76787678                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG );
     
    76847684
    76857685/* Line 1806 of yacc.c  */
    7686 #line 1926 "parser.yy"
     7686#line 1927 "parser.yy"
    76877687    {
    76887688                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID );
     
    76947694
    76957695/* Line 1806 of yacc.c  */
    7696 #line 1931 "parser.yy"
     7696#line 1932 "parser.yy"
    76977697    {
    76987698                        typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) );
     
    77047704
    77057705/* Line 1806 of yacc.c  */
    7706 #line 1936 "parser.yy"
     7706#line 1937 "parser.yy"
    77077707    {
    77087708                        typedefTable.leaveTrait();
     
    77157715
    77167716/* Line 1806 of yacc.c  */
    7717 #line 1946 "parser.yy"
     7717#line 1947 "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 1956 "parser.yy"
     7724#line 1957 "parser.yy"
    77257725    {
    77267726                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77327732
    77337733/* Line 1806 of yacc.c  */
    7734 #line 1961 "parser.yy"
     7734#line 1962 "parser.yy"
    77357735    {
    77367736                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77427742
    77437743/* Line 1806 of yacc.c  */
    7744 #line 1966 "parser.yy"
     7744#line 1967 "parser.yy"
    77457745    {
    77467746                        typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    77527752
    77537753/* Line 1806 of yacc.c  */
    7754 #line 1974 "parser.yy"
     7754#line 1975 "parser.yy"
    77557755    {
    77567756                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77627762
    77637763/* Line 1806 of yacc.c  */
    7764 #line 1979 "parser.yy"
     7764#line 1980 "parser.yy"
    77657765    {
    77667766                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77727772
    77737773/* Line 1806 of yacc.c  */
    7774 #line 1989 "parser.yy"
     7774#line 1990 "parser.yy"
    77757775    {}
    77767776    break;
     
    77797779
    77807780/* Line 1806 of yacc.c  */
    7781 #line 1991 "parser.yy"
     7781#line 1992 "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 1997 "parser.yy"
     7788#line 1998 "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 2002 "parser.yy"
     7795#line 2003 "parser.yy"
    77967796    { (yyval.decl) = 0; }
    77977797    break;
     
    78007800
    78017801/* Line 1806 of yacc.c  */
    7802 #line 2010 "parser.yy"
     7802#line 2011 "parser.yy"
    78037803    {}
    78047804    break;
     
    78077807
    78087808/* Line 1806 of yacc.c  */
    7809 #line 2012 "parser.yy"
     7809#line 2013 "parser.yy"
    78107810    {
    78117811                        linkageStack.push( linkage );                           // handle nested extern "C"/"Cforall"
     
    78177817
    78187818/* Line 1806 of yacc.c  */
    7819 #line 2017 "parser.yy"
     7819#line 2018 "parser.yy"
    78207820    {
    78217821                        linkage = linkageStack.top();
     
    78287828
    78297829/* Line 1806 of yacc.c  */
    7830 #line 2023 "parser.yy"
     7830#line 2024 "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 2038 "parser.yy"
     7841#line 2039 "parser.yy"
    78427842    {
    78437843                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78507850
    78517851/* Line 1806 of yacc.c  */
    7852 #line 2044 "parser.yy"
     7852#line 2045 "parser.yy"
    78537853    {
    78547854                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78617861
    78627862/* Line 1806 of yacc.c  */
    7863 #line 2053 "parser.yy"
     7863#line 2054 "parser.yy"
    78647864    {
    78657865                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78727872
    78737873/* Line 1806 of yacc.c  */
    7874 #line 2059 "parser.yy"
     7874#line 2060 "parser.yy"
    78757875    {
    78767876                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78837883
    78847884/* Line 1806 of yacc.c  */
    7885 #line 2065 "parser.yy"
     7885#line 2066 "parser.yy"
    78867886    {
    78877887                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78947894
    78957895/* Line 1806 of yacc.c  */
    7896 #line 2071 "parser.yy"
     7896#line 2072 "parser.yy"
    78977897    {
    78987898                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79057905
    79067906/* Line 1806 of yacc.c  */
    7907 #line 2077 "parser.yy"
     7907#line 2078 "parser.yy"
    79087908    {
    79097909                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79167916
    79177917/* Line 1806 of yacc.c  */
    7918 #line 2085 "parser.yy"
     7918#line 2086 "parser.yy"
    79197919    {
    79207920                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79277927
    79287928/* Line 1806 of yacc.c  */
    7929 #line 2091 "parser.yy"
     7929#line 2092 "parser.yy"
    79307930    {
    79317931                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79387938
    79397939/* Line 1806 of yacc.c  */
    7940 #line 2099 "parser.yy"
     7940#line 2100 "parser.yy"
    79417941    {
    79427942                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79497949
    79507950/* Line 1806 of yacc.c  */
    7951 #line 2105 "parser.yy"
     7951#line 2106 "parser.yy"
    79527952    {
    79537953                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79607960
    79617961/* Line 1806 of yacc.c  */
    7962 #line 2120 "parser.yy"
     7962#line 2121 "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 2125 "parser.yy"
     7969#line 2126 "parser.yy"
    79707970    { delete (yyvsp[(3) - (5)].str); }
    79717971    break;
     
    79747974
    79757975/* Line 1806 of yacc.c  */
    7976 #line 2130 "parser.yy"
     7976#line 2131 "parser.yy"
    79777977    { (yyval.decl) = 0; }
    79787978    break;
     
    79817981
    79827982/* Line 1806 of yacc.c  */
    7983 #line 2137 "parser.yy"
     7983#line 2138 "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 2143 "parser.yy"
     7990#line 2144 "parser.yy"
    79917991    { (yyval.decl) = 0; }
    79927992    break;
     
    79957995
    79967996/* Line 1806 of yacc.c  */
    7997 #line 2154 "parser.yy"
     7997#line 2155 "parser.yy"
    79987998    { delete (yyvsp[(3) - (4)].en); }
    79997999    break;
     
    80028002
    80038003/* Line 1806 of yacc.c  */
    8004 #line 2158 "parser.yy"
     8004#line 2159 "parser.yy"
    80058005    { delete (yyvsp[(1) - (1)].tok); }
    80068006    break;
    80078007
    80088008  case 560:
    8009 
    8010 /* Line 1806 of yacc.c  */
    8011 #line 2159 "parser.yy"
    8012     { delete (yyvsp[(1) - (1)].decl); }
    8013     break;
    8014 
    8015   case 561:
    80168009
    80178010/* Line 1806 of yacc.c  */
     
    80208013    break;
    80218014
    8022   case 562:
     8015  case 561:
    80238016
    80248017/* Line 1806 of yacc.c  */
     
    80278020    break;
    80288021
     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 2196 "parser.yy"
     8032#line 2197 "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 2199 "parser.yy"
     8039#line 2200 "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 2201 "parser.yy"
     8046#line 2202 "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 2206 "parser.yy"
     8053#line 2207 "parser.yy"
    80548054    {
    80558055                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    80618061
    80628062/* Line 1806 of yacc.c  */
    8063 #line 2211 "parser.yy"
     8063#line 2212 "parser.yy"
    80648064    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80658065    break;
     
    80688068
    80698069/* Line 1806 of yacc.c  */
    8070 #line 2216 "parser.yy"
     8070#line 2217 "parser.yy"
    80718071    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    80728072    break;
     
    80758075
    80768076/* Line 1806 of yacc.c  */
    8077 #line 2218 "parser.yy"
     8077#line 2219 "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 2220 "parser.yy"
     8084#line 2221 "parser.yy"
    80858085    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80868086    break;
     
    80898089
    80908090/* Line 1806 of yacc.c  */
    8091 #line 2225 "parser.yy"
     8091#line 2226 "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 2227 "parser.yy"
     8098#line 2228 "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 2229 "parser.yy"
     8105#line 2230 "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 2231 "parser.yy"
     8112#line 2232 "parser.yy"
    81138113    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81148114    break;
     
    81178117
    81188118/* Line 1806 of yacc.c  */
    8119 #line 2236 "parser.yy"
     8119#line 2237 "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 2238 "parser.yy"
     8126#line 2239 "parser.yy"
    81278127    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81288128    break;
     
    81318131
    81328132/* Line 1806 of yacc.c  */
    8133 #line 2247 "parser.yy"
     8133#line 2248 "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 2250 "parser.yy"
     8140#line 2251 "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 2255 "parser.yy"
     8147#line 2256 "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 2257 "parser.yy"
     8154#line 2258 "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 2259 "parser.yy"
     8161#line 2260 "parser.yy"
    81628162    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81638163    break;
     
    81668166
    81678167/* Line 1806 of yacc.c  */
    8168 #line 2264 "parser.yy"
     8168#line 2265 "parser.yy"
    81698169    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    81708170    break;
     
    81738173
    81748174/* Line 1806 of yacc.c  */
    8175 #line 2266 "parser.yy"
     8175#line 2267 "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 2268 "parser.yy"
     8182#line 2269 "parser.yy"
    81838183    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81848184    break;
     
    81878187
    81888188/* Line 1806 of yacc.c  */
    8189 #line 2273 "parser.yy"
     8189#line 2274 "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 2275 "parser.yy"
     8196#line 2276 "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 2277 "parser.yy"
     8203#line 2278 "parser.yy"
    82048204    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82058205    break;
     
    82088208
    82098209/* Line 1806 of yacc.c  */
    8210 #line 2292 "parser.yy"
     8210#line 2293 "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 2294 "parser.yy"
     8217#line 2295 "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 2296 "parser.yy"
     8224#line 2297 "parser.yy"
    82258225    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82268226    break;
     
    82298229
    82308230/* Line 1806 of yacc.c  */
    8231 #line 2301 "parser.yy"
     8231#line 2302 "parser.yy"
    82328232    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    82338233    break;
     
    82368236
    82378237/* Line 1806 of yacc.c  */
    8238 #line 2303 "parser.yy"
     8238#line 2304 "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 2305 "parser.yy"
     8245#line 2306 "parser.yy"
    82468246    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82478247    break;
     
    82508250
    82518251/* Line 1806 of yacc.c  */
    8252 #line 2310 "parser.yy"
     8252#line 2311 "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 2312 "parser.yy"
     8259#line 2313 "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 2314 "parser.yy"
     8266#line 2315 "parser.yy"
    82678267    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82688268    break;
     
    82718271
    82728272/* Line 1806 of yacc.c  */
    8273 #line 2329 "parser.yy"
     8273#line 2330 "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 2332 "parser.yy"
     8280#line 2333 "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 2334 "parser.yy"
     8287#line 2335 "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 2340 "parser.yy"
     8294#line 2341 "parser.yy"
    82958295    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82968296    break;
     
    82998299
    83008300/* Line 1806 of yacc.c  */
    8301 #line 2345 "parser.yy"
     8301#line 2346 "parser.yy"
    83028302    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    83038303    break;
     
    83068306
    83078307/* Line 1806 of yacc.c  */
    8308 #line 2347 "parser.yy"
     8308#line 2348 "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 2349 "parser.yy"
     8315#line 2350 "parser.yy"
    83168316    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83178317    break;
     
    83208320
    83218321/* Line 1806 of yacc.c  */
    8322 #line 2354 "parser.yy"
     8322#line 2355 "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 2356 "parser.yy"
     8329#line 2357 "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 2358 "parser.yy"
     8336#line 2359 "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 2360 "parser.yy"
     8343#line 2361 "parser.yy"
    83448344    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83458345    break;
     
    83488348
    83498349/* Line 1806 of yacc.c  */
    8350 #line 2365 "parser.yy"
     8350#line 2366 "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 2367 "parser.yy"
     8357#line 2368 "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 2369 "parser.yy"
     8364#line 2370 "parser.yy"
    83658365    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83668366    break;
     
    83698369
    83708370/* Line 1806 of yacc.c  */
    8371 #line 2379 "parser.yy"
     8371#line 2380 "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 2382 "parser.yy"
     8378#line 2383 "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 2384 "parser.yy"
     8385#line 2385 "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 2389 "parser.yy"
     8392#line 2390 "parser.yy"
    83938393    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    83948394    break;
     
    83978397
    83988398/* Line 1806 of yacc.c  */
    8399 #line 2391 "parser.yy"
     8399#line 2392 "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 2393 "parser.yy"
     8406#line 2394 "parser.yy"
    84078407    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84088408    break;
     
    84118411
    84128412/* Line 1806 of yacc.c  */
    8413 #line 2398 "parser.yy"
     8413#line 2399 "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 2400 "parser.yy"
     8420#line 2401 "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 2402 "parser.yy"
     8427#line 2403 "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 2404 "parser.yy"
     8434#line 2405 "parser.yy"
    84358435    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84368436    break;
     
    84398439
    84408440/* Line 1806 of yacc.c  */
    8441 #line 2409 "parser.yy"
     8441#line 2410 "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 2411 "parser.yy"
     8448#line 2412 "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 2413 "parser.yy"
     8455#line 2414 "parser.yy"
    84568456    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84578457    break;
     
    84608460
    84618461/* Line 1806 of yacc.c  */
    8462 #line 2444 "parser.yy"
     8462#line 2445 "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 2447 "parser.yy"
     8469#line 2448 "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 2449 "parser.yy"
     8476#line 2450 "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 2454 "parser.yy"
     8483#line 2455 "parser.yy"
    84848484    {
    84858485                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    84918491
    84928492/* Line 1806 of yacc.c  */
    8493 #line 2459 "parser.yy"
     8493#line 2460 "parser.yy"
    84948494    {
    84958495                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    85018501
    85028502/* Line 1806 of yacc.c  */
    8503 #line 2467 "parser.yy"
     8503#line 2468 "parser.yy"
    85048504    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    85058505    break;
     
    85088508
    85098509/* Line 1806 of yacc.c  */
    8510 #line 2469 "parser.yy"
     8510#line 2470 "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 2471 "parser.yy"
     8517#line 2472 "parser.yy"
    85188518    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85198519    break;
     
    85228522
    85238523/* Line 1806 of yacc.c  */
    8524 #line 2476 "parser.yy"
     8524#line 2477 "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 2478 "parser.yy"
     8531#line 2479 "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 2483 "parser.yy"
     8538#line 2484 "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 2485 "parser.yy"
     8545#line 2486 "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 2500 "parser.yy"
     8552#line 2501 "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 2502 "parser.yy"
     8559#line 2503 "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 2507 "parser.yy"
     8566#line 2508 "parser.yy"
    85678567    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    85688568    break;
     
    85718571
    85728572/* Line 1806 of yacc.c  */
    8573 #line 2509 "parser.yy"
     8573#line 2510 "parser.yy"
    85748574    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    85758575    break;
     
    85788578
    85798579/* Line 1806 of yacc.c  */
    8580 #line 2511 "parser.yy"
     8580#line 2512 "parser.yy"
    85818581    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    85828582    break;
     
    85858585
    85868586/* Line 1806 of yacc.c  */
    8587 #line 2513 "parser.yy"
     8587#line 2514 "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 2515 "parser.yy"
     8594#line 2516 "parser.yy"
    85958595    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85968596    break;
     
    85998599
    86008600/* Line 1806 of yacc.c  */
    8601 #line 2521 "parser.yy"
     8601#line 2522 "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 2523 "parser.yy"
     8608#line 2524 "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 2525 "parser.yy"
     8615#line 2526 "parser.yy"
    86168616    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86178617    break;
     
    86208620
    86218621/* Line 1806 of yacc.c  */
    8622 #line 2530 "parser.yy"
     8622#line 2531 "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 2532 "parser.yy"
     8629#line 2533 "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 2534 "parser.yy"
     8636#line 2535 "parser.yy"
    86378637    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86388638    break;
     
    86418641
    86428642/* Line 1806 of yacc.c  */
    8643 #line 2540 "parser.yy"
     8643#line 2541 "parser.yy"
    86448644    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    86458645    break;
     
    86488648
    86498649/* Line 1806 of yacc.c  */
    8650 #line 2542 "parser.yy"
     8650#line 2543 "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 2548 "parser.yy"
     8657#line 2549 "parser.yy"
    86588658    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
    86598659    break;
     
    86628662
    86638663/* Line 1806 of yacc.c  */
    8664 #line 2550 "parser.yy"
     8664#line 2551 "parser.yy"
    86658665    { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
    86668666    break;
     
    86698669
    86708670/* Line 1806 of yacc.c  */
    8671 #line 2552 "parser.yy"
     8671#line 2553 "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 2554 "parser.yy"
     8678#line 2555 "parser.yy"
    86798679    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
    86808680    break;
     
    86838683
    86848684/* Line 1806 of yacc.c  */
    8685 #line 2569 "parser.yy"
     8685#line 2570 "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 2571 "parser.yy"
     8692#line 2572 "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 2576 "parser.yy"
     8699#line 2577 "parser.yy"
    87008700    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    87018701    break;
     
    87048704
    87058705/* Line 1806 of yacc.c  */
    8706 #line 2578 "parser.yy"
     8706#line 2579 "parser.yy"
    87078707    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    87088708    break;
     
    87118711
    87128712/* Line 1806 of yacc.c  */
    8713 #line 2580 "parser.yy"
     8713#line 2581 "parser.yy"
    87148714    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    87158715    break;
     
    87188718
    87198719/* Line 1806 of yacc.c  */
    8720 #line 2582 "parser.yy"
     8720#line 2583 "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 2584 "parser.yy"
     8727#line 2585 "parser.yy"
    87288728    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87298729    break;
     
    87328732
    87338733/* Line 1806 of yacc.c  */
    8734 #line 2590 "parser.yy"
     8734#line 2591 "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 2592 "parser.yy"
     8741#line 2593 "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 2594 "parser.yy"
     8748#line 2595 "parser.yy"
    87498749    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87508750    break;
     
    87538753
    87548754/* Line 1806 of yacc.c  */
    8755 #line 2599 "parser.yy"
     8755#line 2600 "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 2601 "parser.yy"
     8762#line 2602 "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 2603 "parser.yy"
     8769#line 2604 "parser.yy"
    87708770    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87718771    break;
     
    87748774
    87758775/* Line 1806 of yacc.c  */
    8776 #line 2610 "parser.yy"
     8776#line 2611 "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 2621 "parser.yy"
     8783#line 2622 "parser.yy"
    87848784    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    87858785    break;
     
    87888788
    87898789/* Line 1806 of yacc.c  */
    8790 #line 2624 "parser.yy"
     8790#line 2625 "parser.yy"
    87918791    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    87928792    break;
     
    87958795
    87968796/* Line 1806 of yacc.c  */
    8797 #line 2626 "parser.yy"
     8797#line 2627 "parser.yy"
    87988798    { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
    87998799    break;
     
    88028802
    88038803/* Line 1806 of yacc.c  */
    8804 #line 2629 "parser.yy"
     8804#line 2630 "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 2631 "parser.yy"
     8811#line 2632 "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 2633 "parser.yy"
     8818#line 2634 "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 2647 "parser.yy"
     8825#line 2648 "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 2649 "parser.yy"
     8832#line 2650 "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 2654 "parser.yy"
     8839#line 2655 "parser.yy"
    88408840    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    88418841    break;
     
    88448844
    88458845/* Line 1806 of yacc.c  */
    8846 #line 2656 "parser.yy"
     8846#line 2657 "parser.yy"
    88478847    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    88488848    break;
     
    88518851
    88528852/* Line 1806 of yacc.c  */
    8853 #line 2658 "parser.yy"
     8853#line 2659 "parser.yy"
    88548854    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    88558855    break;
     
    88588858
    88598859/* Line 1806 of yacc.c  */
    8860 #line 2660 "parser.yy"
     8860#line 2661 "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 2662 "parser.yy"
     8867#line 2663 "parser.yy"
    88688868    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    88698869    break;
     
    88728872
    88738873/* Line 1806 of yacc.c  */
    8874 #line 2668 "parser.yy"
     8874#line 2669 "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 2670 "parser.yy"
     8881#line 2671 "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 2672 "parser.yy"
     8888#line 2673 "parser.yy"
    88898889    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    88908890    break;
     
    88938893
    88948894/* Line 1806 of yacc.c  */
    8895 #line 2677 "parser.yy"
     8895#line 2678 "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 2679 "parser.yy"
     8902#line 2680 "parser.yy"
    89038903    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    89048904    break;
     
    89078907
    89088908/* Line 1806 of yacc.c  */
    8909 #line 2689 "parser.yy"
     8909#line 2690 "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 2699 "parser.yy"
     8916#line 2700 "parser.yy"
    89178917    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89188918    break;
     
    89218921
    89228922/* Line 1806 of yacc.c  */
    8923 #line 2701 "parser.yy"
     8923#line 2702 "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 2703 "parser.yy"
     8930#line 2704 "parser.yy"
    89318931    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89328932    break;
     
    89358935
    89368936/* Line 1806 of yacc.c  */
    8937 #line 2705 "parser.yy"
     8937#line 2706 "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 2707 "parser.yy"
     8944#line 2708 "parser.yy"
    89458945    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89468946    break;
     
    89498949
    89508950/* Line 1806 of yacc.c  */
    8951 #line 2709 "parser.yy"
     8951#line 2710 "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 2716 "parser.yy"
     8958#line 2717 "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 2718 "parser.yy"
     8965#line 2719 "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 2720 "parser.yy"
     8972#line 2721 "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 2722 "parser.yy"
     8979#line 2723 "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 2724 "parser.yy"
     8986#line 2725 "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"
     8993#line 2728 "parser.yy"
    89948994    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89958995    break;
     
    89988998
    89998999/* Line 1806 of yacc.c  */
    9000 #line 2728 "parser.yy"
     9000#line 2730 "parser.yy"
    90019001    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    90029002    break;
     
    90059005
    90069006/* Line 1806 of yacc.c  */
    9007 #line 2730 "parser.yy"
     9007#line 2732 "parser.yy"
    90089008    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    90099009    break;
     
    90129012
    90139013/* Line 1806 of yacc.c  */
    9014 #line 2732 "parser.yy"
     9014#line 2734 "parser.yy"
    90159015    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    90169016    break;
     
    90199019
    90209020/* Line 1806 of yacc.c  */
    9021 #line 2734 "parser.yy"
     9021#line 2736 "parser.yy"
    90229022    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    90239023    break;
     
    90269026
    90279027/* Line 1806 of yacc.c  */
    9028 #line 2739 "parser.yy"
     9028#line 2741 "parser.yy"
    90299029    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    90309030    break;
     
    90339033
    90349034/* Line 1806 of yacc.c  */
    9035 #line 2741 "parser.yy"
     9035#line 2743 "parser.yy"
    90369036    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    90379037    break;
     
    90409040
    90419041/* Line 1806 of yacc.c  */
    9042 #line 2746 "parser.yy"
     9042#line 2748 "parser.yy"
    90439043    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
    90449044    break;
     
    90479047
    90489048/* Line 1806 of yacc.c  */
    9049 #line 2748 "parser.yy"
     9049#line 2750 "parser.yy"
    90509050    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
    90519051    break;
     
    90549054
    90559055/* Line 1806 of yacc.c  */
    9056 #line 2775 "parser.yy"
     9056#line 2777 "parser.yy"
    90579057    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    90589058    break;
     
    90619061
    90629062/* Line 1806 of yacc.c  */
    9063 #line 2786 "parser.yy"
     9063#line 2788 "parser.yy"
    90649064    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    90659065    break;
     
    90689068
    90699069/* Line 1806 of yacc.c  */
    9070 #line 2788 "parser.yy"
     9070#line 2790 "parser.yy"
    90719071    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    90729072    break;
     
    90759075
    90769076/* Line 1806 of yacc.c  */
    9077 #line 2790 "parser.yy"
     9077#line 2792 "parser.yy"
    90789078    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    90799079    break;
     
    90829082
    90839083/* Line 1806 of yacc.c  */
    9084 #line 2792 "parser.yy"
     9084#line 2794 "parser.yy"
    90859085    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    90869086    break;
     
    90899089
    90909090/* Line 1806 of yacc.c  */
    9091 #line 2794 "parser.yy"
     9091#line 2796 "parser.yy"
    90929092    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    90939093    break;
     
    90969096
    90979097/* Line 1806 of yacc.c  */
    9098 #line 2796 "parser.yy"
     9098#line 2798 "parser.yy"
    90999099    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    91009100    break;
     
    91039103
    91049104/* Line 1806 of yacc.c  */
    9105 #line 2803 "parser.yy"
     9105#line 2805 "parser.yy"
    91069106    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    91079107    break;
     
    91109110
    91119111/* Line 1806 of yacc.c  */
    9112 #line 2805 "parser.yy"
     9112#line 2807 "parser.yy"
    91139113    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    91149114    break;
     
    91179117
    91189118/* Line 1806 of yacc.c  */
    9119 #line 2807 "parser.yy"
     9119#line 2809 "parser.yy"
    91209120    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    91219121    break;
     
    91249124
    91259125/* Line 1806 of yacc.c  */
    9126 #line 2809 "parser.yy"
     9126#line 2811 "parser.yy"
    91279127    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    91289128    break;
     
    91319131
    91329132/* Line 1806 of yacc.c  */
    9133 #line 2811 "parser.yy"
     9133#line 2813 "parser.yy"
    91349134    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    91359135    break;
     
    91389138
    91399139/* Line 1806 of yacc.c  */
    9140 #line 2813 "parser.yy"
     9140#line 2815 "parser.yy"
    91419141    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    91429142    break;
     
    91459145
    91469146/* Line 1806 of yacc.c  */
    9147 #line 2818 "parser.yy"
     9147#line 2820 "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"
     9154#line 2825 "parser.yy"
    91559155    { (yyval.decl) = DeclarationNode::newFunction( nullptr, DeclarationNode::newTuple( nullptr ), (yyvsp[(4) - (5)].decl), nullptr ); }
    91569156    break;
    91579157
    91589158  case 749:
    9159 
    9160 /* Line 1806 of yacc.c  */
    9161 #line 2825 "parser.yy"
    9162     { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); }
    9163     break;
    9164 
    9165   case 750:
    91669159
    91679160/* Line 1806 of yacc.c  */
     
    91709163    break;
    91719164
     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"
     9175#line 2853 "parser.yy"
    91769176    { (yyval.en) = 0; }
    91779177    break;
     
    91809180
    91819181/* Line 1806 of yacc.c  */
    9182 #line 2853 "parser.yy"
     9182#line 2855 "parser.yy"
    91839183    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    91849184    break;
     
    94189418
    94199419/* Line 2067 of yacc.c  */
    9420 #line 2856 "parser.yy"
     9420#line 2858 "parser.yy"
    94219421
    94229422// ----end of grammar----
Note: See TracChangeset for help on using the changeset viewer.