Index: src/Parser/parser.cc
===================================================================
--- src/Parser/parser.cc	(revision d0ffed1543e8d376c606a33965ddc98eef7ec641)
+++ src/Parser/parser.cc	(revision dd020c0cdff72537d5b1dffcf6920c72db9d585a)
@@ -892,6 +892,6 @@
      240,   299,   115,    -1,   242,    -1,   237,   242,    -1,   241,
      237,   242,    -1,   243,    -1,   242,   243,    -1,     5,    -1,
-       7,    -1,     4,    -1,     6,    -1,     8,    -1,     9,    -1,
-      72,    -1,    74,    -1,    16,    -1,    21,    -1,    20,    -1,
+       7,    -1,     4,    -1,     6,    -1,    74,    -1,     8,    -1,
+       9,    -1,    72,    -1,    16,    -1,    21,    -1,    20,    -1,
       18,    -1,    19,    -1,    17,    -1,    22,    -1,    23,    -1,
       15,    -1,    27,    -1,    28,    -1,    29,    -1,    26,    -1,
@@ -1092,49 +1092,49 @@
     1391,  1396,  1397,  1401,  1403,  1405,  1407,  1409,  1412,  1411,
     1423,  1424,  1426,  1436,  1437,  1442,  1444,  1446,  1448,  1450,
-    1453,  1455,  1458,  1463,  1465,  1467,  1469,  1471,  1473,  1475,
-    1477,  1479,  1481,  1483,  1485,  1487,  1489,  1491,  1497,  1498,
-    1500,  1502,  1504,  1509,  1510,  1516,  1517,  1519,  1521,  1526,
-    1528,  1530,  1532,  1537,  1538,  1540,  1542,  1547,  1548,  1550,
-    1555,  1556,  1558,  1560,  1565,  1566,  1568,  1573,  1574,  1576,
-    1578,  1583,  1585,  1587,  1592,  1593,  1597,  1598,  1602,  1605,
-    1604,  1608,  1610,  1614,  1619,  1624,  1626,  1632,  1633,  1638,
-    1639,  1644,  1647,  1655,  1656,  1658,  1660,  1665,  1666,  1672,
-    1673,  1675,  1678,  1681,  1686,  1687,  1692,  1697,  1700,  1699,
-    1703,  1707,  1715,  1717,  1723,  1724,  1732,  1733,  1737,  1738,
-    1739,  1741,  1743,  1750,  1751,  1753,  1755,  1760,  1761,  1767,
-    1768,  1772,  1773,  1778,  1779,  1780,  1782,  1790,  1791,  1793,
-    1796,  1798,  1802,  1803,  1804,  1806,  1808,  1813,  1818,  1826,
-    1828,  1837,  1839,  1844,  1845,  1846,  1850,  1851,  1852,  1856,
-    1857,  1858,  1862,  1863,  1864,  1869,  1870,  1875,  1876,  1878,
-    1883,  1884,  1889,  1890,  1891,  1892,  1893,  1908,  1909,  1914,
-    1915,  1921,  1923,  1926,  1928,  1930,  1953,  1954,  1956,  1958,
-    1963,  1964,  1966,  1971,  1976,  1977,  1983,  1982,  1986,  1990,
-    1992,  1994,  1996,  2002,  2003,  2008,  2013,  2015,  2020,  2022,
-    2023,  2025,  2030,  2032,  2034,  2039,  2041,  2046,  2051,  2059,
-    2065,  2064,  2078,  2079,  2084,  2085,  2089,  2094,  2099,  2107,
-    2112,  2123,  2124,  2129,  2130,  2136,  2137,  2141,  2142,  2143,
-    2148,  2147,  2158,  2166,  2172,  2178,  2187,  2193,  2199,  2205,
-    2211,  2219,  2225,  2233,  2239,  2248,  2249,  2250,  2254,  2260,
-    2261,  2271,  2272,  2276,  2277,  2282,  2287,  2288,  2294,  2295,
-    2297,  2302,  2303,  2304,  2305,  2340,  2342,  2343,  2345,  2350,
-    2355,  2360,  2362,  2364,  2369,  2371,  2373,  2375,  2380,  2382,
-    2391,  2393,  2394,  2399,  2401,  2403,  2408,  2410,  2412,  2417,
-    2419,  2421,  2433,  2434,  2435,  2439,  2441,  2443,  2448,  2450,
-    2452,  2457,  2459,  2461,  2476,  2478,  2479,  2481,  2486,  2487,
-    2492,  2494,  2496,  2501,  2503,  2505,  2507,  2512,  2514,  2516,
-    2526,  2528,  2529,  2531,  2536,  2538,  2540,  2545,  2547,  2549,
-    2551,  2556,  2558,  2560,  2573,  2575,  2576,  2578,  2583,  2588,
-    2596,  2598,  2600,  2605,  2607,  2612,  2614,  2631,  2632,  2634,
-    2639,  2641,  2643,  2645,  2647,  2652,  2653,  2655,  2657,  2662,
-    2664,  2666,  2672,  2674,  2676,  2680,  2682,  2684,  2686,  2720,
-    2721,  2723,  2728,  2730,  2732,  2734,  2736,  2741,  2742,  2744,
-    2746,  2751,  2753,  2755,  2761,  2762,  2764,  2773,  2776,  2778,
-    2781,  2783,  2785,  2799,  2800,  2802,  2807,  2809,  2811,  2813,
-    2815,  2820,  2821,  2823,  2825,  2830,  2832,  2840,  2841,  2842,
-    2847,  2848,  2853,  2855,  2857,  2859,  2861,  2863,  2870,  2872,
-    2874,  2876,  2878,  2881,  2883,  2885,  2887,  2889,  2894,  2896,
-    2898,  2903,  2929,  2930,  2932,  2936,  2937,  2941,  2943,  2945,
-    2947,  2949,  2951,  2958,  2960,  2962,  2964,  2966,  2968,  2973,
-    2980,  2982,  3000,  3002,  3007,  3008
+    1453,  1455,  1457,  1462,  1464,  1466,  1468,  1470,  1472,  1474,
+    1476,  1478,  1480,  1482,  1484,  1486,  1488,  1490,  1496,  1497,
+    1499,  1501,  1503,  1508,  1509,  1515,  1516,  1518,  1520,  1525,
+    1527,  1529,  1531,  1536,  1537,  1539,  1541,  1546,  1547,  1549,
+    1554,  1555,  1557,  1559,  1564,  1565,  1567,  1572,  1573,  1575,
+    1577,  1582,  1584,  1586,  1591,  1592,  1596,  1597,  1601,  1604,
+    1603,  1607,  1609,  1613,  1618,  1623,  1625,  1631,  1632,  1637,
+    1638,  1643,  1646,  1654,  1655,  1657,  1659,  1664,  1665,  1671,
+    1672,  1674,  1677,  1680,  1685,  1686,  1691,  1696,  1699,  1698,
+    1702,  1706,  1714,  1716,  1722,  1723,  1731,  1732,  1736,  1737,
+    1738,  1740,  1742,  1749,  1750,  1752,  1754,  1759,  1760,  1766,
+    1767,  1771,  1772,  1777,  1778,  1779,  1781,  1789,  1790,  1792,
+    1795,  1797,  1801,  1802,  1803,  1805,  1807,  1812,  1817,  1825,
+    1827,  1836,  1838,  1843,  1844,  1845,  1849,  1850,  1851,  1855,
+    1856,  1857,  1861,  1862,  1863,  1868,  1869,  1874,  1875,  1877,
+    1882,  1883,  1888,  1889,  1890,  1891,  1892,  1907,  1908,  1913,
+    1914,  1920,  1922,  1925,  1927,  1929,  1952,  1953,  1955,  1957,
+    1962,  1963,  1965,  1970,  1975,  1976,  1982,  1981,  1985,  1989,
+    1991,  1993,  1995,  2001,  2002,  2007,  2012,  2014,  2019,  2021,
+    2022,  2024,  2029,  2031,  2033,  2038,  2040,  2045,  2050,  2058,
+    2064,  2063,  2077,  2078,  2083,  2084,  2088,  2093,  2098,  2106,
+    2111,  2122,  2123,  2128,  2129,  2135,  2136,  2140,  2141,  2142,
+    2147,  2146,  2157,  2165,  2171,  2177,  2186,  2192,  2198,  2204,
+    2210,  2218,  2224,  2232,  2238,  2247,  2248,  2249,  2253,  2259,
+    2260,  2270,  2271,  2275,  2276,  2281,  2286,  2287,  2293,  2294,
+    2296,  2301,  2302,  2303,  2304,  2339,  2341,  2342,  2344,  2349,
+    2354,  2359,  2361,  2363,  2368,  2370,  2372,  2374,  2379,  2381,
+    2390,  2392,  2393,  2398,  2400,  2402,  2407,  2409,  2411,  2416,
+    2418,  2420,  2432,  2433,  2434,  2438,  2440,  2442,  2447,  2449,
+    2451,  2456,  2458,  2460,  2475,  2477,  2478,  2480,  2485,  2486,
+    2491,  2493,  2495,  2500,  2502,  2504,  2506,  2511,  2513,  2515,
+    2525,  2527,  2528,  2530,  2535,  2537,  2539,  2544,  2546,  2548,
+    2550,  2555,  2557,  2559,  2572,  2574,  2575,  2577,  2582,  2587,
+    2595,  2597,  2599,  2604,  2606,  2611,  2613,  2630,  2631,  2633,
+    2638,  2640,  2642,  2644,  2646,  2651,  2652,  2654,  2656,  2661,
+    2663,  2665,  2671,  2673,  2675,  2679,  2681,  2683,  2685,  2719,
+    2720,  2722,  2727,  2729,  2731,  2733,  2735,  2740,  2741,  2743,
+    2745,  2750,  2752,  2754,  2760,  2761,  2763,  2772,  2775,  2777,
+    2780,  2782,  2784,  2798,  2799,  2801,  2806,  2808,  2810,  2812,
+    2814,  2819,  2820,  2822,  2824,  2829,  2831,  2839,  2840,  2841,
+    2846,  2847,  2852,  2854,  2856,  2858,  2860,  2862,  2869,  2871,
+    2873,  2875,  2877,  2880,  2882,  2884,  2886,  2888,  2893,  2895,
+    2897,  2902,  2928,  2929,  2931,  2935,  2936,  2940,  2942,  2944,
+    2946,  2948,  2950,  2957,  2959,  2961,  2963,  2965,  2967,  2972,
+    2979,  2981,  2999,  3001,  3006,  3007
 };
 #endif
@@ -1451,8 +1451,8 @@
 static const yytype_uint16 yydefact[] =
 {
-     307,   307,   327,   325,   328,   326,   329,   330,   313,   315,
+     307,   307,   327,   325,   328,   326,   330,   331,   313,   315,
      314,     0,   316,   341,   333,   338,   336,   337,   335,   334,
      339,   340,   346,   347,   345,   342,   343,   344,   571,   395,
-     396,     0,     0,     0,   307,     0,   317,   331,   332,     9,
+     396,     0,     0,     0,   307,     0,   317,   332,   329,     9,
      381,     0,    10,    16,    17,     0,     2,    72,    73,   589,
       11,   307,   547,   253,     3,   477,     3,   266,     0,     3,
@@ -6909,5 +6909,5 @@
 /* Line 1806 of yacc.c  */
 #line 1402 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
+    { (yyval.decl) = DeclarationNode::newTypeQualifier( DeclarationNode::Const ); }
     break;
 
@@ -6916,5 +6916,5 @@
 /* Line 1806 of yacc.c  */
 #line 1404 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
+    { (yyval.decl) = DeclarationNode::newTypeQualifier( DeclarationNode::Restrict ); }
     break;
 
@@ -6923,5 +6923,5 @@
 /* Line 1806 of yacc.c  */
 #line 1406 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
+    { (yyval.decl) = DeclarationNode::newTypeQualifier( DeclarationNode::Volatile ); }
     break;
 
@@ -6930,5 +6930,5 @@
 /* Line 1806 of yacc.c  */
 #line 1408 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
+    { (yyval.decl) = DeclarationNode::newTypeQualifier( DeclarationNode::Lvalue ); }
     break;
 
@@ -6937,5 +6937,5 @@
 /* Line 1806 of yacc.c  */
 #line 1410 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
+    { (yyval.decl) = DeclarationNode::newTypeQualifier( DeclarationNode::Atomic ); }
     break;
 
@@ -7011,6 +7011,6 @@
 
 /* Line 1806 of yacc.c  */
-#line 1452 "parser.yy"
-    { (yyval.decl) = new DeclarationNode; (yyval.decl)->isInline = true; }
+#line 1451 "parser.yy"
+    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
     break;
 
@@ -7019,5 +7019,5 @@
 /* Line 1806 of yacc.c  */
 #line 1454 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
+    { (yyval.decl) = DeclarationNode::newFuncSpecifier( DeclarationNode::Inline ); }
     break;
 
@@ -7025,6 +7025,6 @@
 
 /* Line 1806 of yacc.c  */
-#line 1457 "parser.yy"
-    { (yyval.decl) = new DeclarationNode; (yyval.decl)->isNoreturn = true; }
+#line 1456 "parser.yy"
+    { (yyval.decl) = DeclarationNode::newFuncSpecifier( DeclarationNode::Fortran ); }
     break;
 
@@ -7032,6 +7032,6 @@
 
 /* Line 1806 of yacc.c  */
-#line 1459 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
+#line 1458 "parser.yy"
+    { (yyval.decl) = DeclarationNode::newFuncSpecifier( DeclarationNode::Noreturn ); }
     break;
 
@@ -7039,5 +7039,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1464 "parser.yy"
+#line 1463 "parser.yy"
     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
     break;
@@ -7046,5 +7046,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1466 "parser.yy"
+#line 1465 "parser.yy"
     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
     break;
@@ -7053,5 +7053,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1468 "parser.yy"
+#line 1467 "parser.yy"
     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
     break;
@@ -7060,5 +7060,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1470 "parser.yy"
+#line 1469 "parser.yy"
     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
     break;
@@ -7067,5 +7067,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1472 "parser.yy"
+#line 1471 "parser.yy"
     { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Long ); }
     break;
@@ -7074,5 +7074,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1474 "parser.yy"
+#line 1473 "parser.yy"
     { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Short ); }
     break;
@@ -7081,5 +7081,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1476 "parser.yy"
+#line 1475 "parser.yy"
     { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Signed ); }
     break;
@@ -7088,5 +7088,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1478 "parser.yy"
+#line 1477 "parser.yy"
     { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Unsigned ); }
     break;
@@ -7095,5 +7095,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1480 "parser.yy"
+#line 1479 "parser.yy"
     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
     break;
@@ -7102,5 +7102,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1482 "parser.yy"
+#line 1481 "parser.yy"
     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
     break;
@@ -7109,5 +7109,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1484 "parser.yy"
+#line 1483 "parser.yy"
     { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Complex ); }
     break;
@@ -7116,5 +7116,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1486 "parser.yy"
+#line 1485 "parser.yy"
     { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Imaginary ); }
     break;
@@ -7123,5 +7123,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1488 "parser.yy"
+#line 1487 "parser.yy"
     { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
     break;
@@ -7130,5 +7130,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1490 "parser.yy"
+#line 1489 "parser.yy"
     { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Zero ); }
     break;
@@ -7137,5 +7137,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1492 "parser.yy"
+#line 1491 "parser.yy"
     { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::One ); }
     break;
@@ -7144,5 +7144,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1499 "parser.yy"
+#line 1498 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -7151,5 +7151,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1501 "parser.yy"
+#line 1500 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -7158,5 +7158,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1503 "parser.yy"
+#line 1502 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     break;
@@ -7165,5 +7165,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1505 "parser.yy"
+#line 1504 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
     break;
@@ -7172,5 +7172,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1511 "parser.yy"
+#line 1510 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     break;
@@ -7179,5 +7179,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1518 "parser.yy"
+#line 1517 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -7186,5 +7186,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1520 "parser.yy"
+#line 1519 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -7193,5 +7193,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1522 "parser.yy"
+#line 1521 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -7200,5 +7200,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1527 "parser.yy"
+#line 1526 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
     break;
@@ -7207,5 +7207,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1529 "parser.yy"
+#line 1528 "parser.yy"
     { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
     break;
@@ -7214,5 +7214,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1531 "parser.yy"
+#line 1530 "parser.yy"
     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
     break;
@@ -7221,5 +7221,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1533 "parser.yy"
+#line 1532 "parser.yy"
     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
     break;
@@ -7228,5 +7228,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1539 "parser.yy"
+#line 1538 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -7235,5 +7235,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1541 "parser.yy"
+#line 1540 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -7242,5 +7242,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1543 "parser.yy"
+#line 1542 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     break;
@@ -7249,5 +7249,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1549 "parser.yy"
+#line 1548 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -7256,5 +7256,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1551 "parser.yy"
+#line 1550 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -7263,5 +7263,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1557 "parser.yy"
+#line 1556 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -7270,5 +7270,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1559 "parser.yy"
+#line 1558 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -7277,5 +7277,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1561 "parser.yy"
+#line 1560 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     break;
@@ -7284,5 +7284,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1567 "parser.yy"
+#line 1566 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -7291,5 +7291,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1569 "parser.yy"
+#line 1568 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -7298,5 +7298,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1575 "parser.yy"
+#line 1574 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -7305,5 +7305,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1577 "parser.yy"
+#line 1576 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -7312,5 +7312,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1579 "parser.yy"
+#line 1578 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     break;
@@ -7319,5 +7319,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1584 "parser.yy"
+#line 1583 "parser.yy"
     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
     break;
@@ -7326,5 +7326,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1586 "parser.yy"
+#line 1585 "parser.yy"
     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -7333,5 +7333,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1588 "parser.yy"
+#line 1587 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -7340,5 +7340,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1603 "parser.yy"
+#line 1602 "parser.yy"
     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (5)].aggKey), nullptr, nullptr, (yyvsp[(4) - (5)].decl), true )->addQualifiers( (yyvsp[(2) - (5)].decl) ); }
     break;
@@ -7347,5 +7347,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1605 "parser.yy"
+#line 1604 "parser.yy"
     { typedefTable.makeTypedef( *(yyvsp[(3) - (3)].tok) ); }
     break;
@@ -7354,5 +7354,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1607 "parser.yy"
+#line 1606 "parser.yy"
     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), (yyvsp[(3) - (7)].tok), nullptr, (yyvsp[(6) - (7)].decl), true )->addQualifiers( (yyvsp[(2) - (7)].decl) ); }
     break;
@@ -7361,5 +7361,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1609 "parser.yy"
+#line 1608 "parser.yy"
     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (8)].aggKey), nullptr, (yyvsp[(4) - (8)].en), (yyvsp[(7) - (8)].decl), false )->addQualifiers( (yyvsp[(2) - (8)].decl) ); }
     break;
@@ -7368,5 +7368,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1615 "parser.yy"
+#line 1614 "parser.yy"
     {
 			typedefTable.makeTypedef( *(yyvsp[(3) - (3)].tok) );
@@ -7378,5 +7378,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1620 "parser.yy"
+#line 1619 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) ); }
     break;
@@ -7385,5 +7385,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1625 "parser.yy"
+#line 1624 "parser.yy"
     { (yyval.aggKey) = DeclarationNode::Struct; }
     break;
@@ -7392,5 +7392,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1627 "parser.yy"
+#line 1626 "parser.yy"
     { (yyval.aggKey) = DeclarationNode::Union; }
     break;
@@ -7399,5 +7399,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1632 "parser.yy"
+#line 1631 "parser.yy"
     { (yyval.decl) = nullptr; }
     break;
@@ -7406,5 +7406,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1634 "parser.yy"
+#line 1633 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl) ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
     break;
@@ -7413,5 +7413,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1640 "parser.yy"
+#line 1639 "parser.yy"
     {
 			distExt( (yyvsp[(2) - (3)].decl) );								// mark all fields in list
@@ -7423,5 +7423,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1645 "parser.yy"
+#line 1644 "parser.yy"
     {
 			(yyval.decl) = distAttr( (yyvsp[(1) - (3)].decl), (yyvsp[(2) - (3)].decl) ); }
@@ -7431,5 +7431,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1648 "parser.yy"
+#line 1647 "parser.yy"
     {
 			distExt( (yyvsp[(3) - (4)].decl) );								// mark all fields in list
@@ -7441,5 +7441,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1657 "parser.yy"
+#line 1656 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
     break;
@@ -7448,5 +7448,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1659 "parser.yy"
+#line 1658 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
     break;
@@ -7455,5 +7455,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1661 "parser.yy"
+#line 1660 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
     break;
@@ -7462,5 +7462,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1667 "parser.yy"
+#line 1666 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(4) - (4)].decl)->addQualifiers( (yyvsp[(3) - (4)].decl) ) ); }
     break;
@@ -7469,5 +7469,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1672 "parser.yy"
+#line 1671 "parser.yy"
     { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
     break;
@@ -7476,5 +7476,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1674 "parser.yy"
+#line 1673 "parser.yy"
     { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
     break;
@@ -7483,5 +7483,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1677 "parser.yy"
+#line 1676 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
     break;
@@ -7490,5 +7490,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1680 "parser.yy"
+#line 1679 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
     break;
@@ -7497,5 +7497,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1686 "parser.yy"
+#line 1685 "parser.yy"
     { (yyval.en) = nullptr; }
     break;
@@ -7504,5 +7504,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1688 "parser.yy"
+#line 1687 "parser.yy"
     { (yyval.en) = (yyvsp[(1) - (1)].en); }
     break;
@@ -7511,5 +7511,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1693 "parser.yy"
+#line 1692 "parser.yy"
     { (yyval.en) = (yyvsp[(2) - (2)].en); }
     break;
@@ -7518,5 +7518,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1698 "parser.yy"
+#line 1697 "parser.yy"
     { (yyval.decl) = DeclarationNode::newEnum( nullptr, (yyvsp[(4) - (6)].decl), true )->addQualifiers( (yyvsp[(2) - (6)].decl) ); }
     break;
@@ -7525,5 +7525,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1700 "parser.yy"
+#line 1699 "parser.yy"
     { typedefTable.makeTypedef( *(yyvsp[(3) - (3)].tok) ); }
     break;
@@ -7532,5 +7532,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1702 "parser.yy"
+#line 1701 "parser.yy"
     { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(3) - (8)].tok), (yyvsp[(6) - (8)].decl), true )->addQualifiers( (yyvsp[(2) - (8)].decl) ); }
     break;
@@ -7539,5 +7539,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1708 "parser.yy"
+#line 1707 "parser.yy"
     {
 			typedefTable.makeTypedef( *(yyvsp[(3) - (3)].tok) );
@@ -7549,5 +7549,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1716 "parser.yy"
+#line 1715 "parser.yy"
     { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
     break;
@@ -7556,5 +7556,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1718 "parser.yy"
+#line 1717 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
     break;
@@ -7563,5 +7563,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1723 "parser.yy"
+#line 1722 "parser.yy"
     { (yyval.en) = nullptr; }
     break;
@@ -7570,5 +7570,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1725 "parser.yy"
+#line 1724 "parser.yy"
     { (yyval.en) = (yyvsp[(2) - (2)].en); }
     break;
@@ -7577,5 +7577,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1732 "parser.yy"
+#line 1731 "parser.yy"
     { (yyval.decl) = nullptr; }
     break;
@@ -7584,5 +7584,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1740 "parser.yy"
+#line 1739 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     break;
@@ -7591,5 +7591,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1742 "parser.yy"
+#line 1741 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     break;
@@ -7598,5 +7598,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1744 "parser.yy"
+#line 1743 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     break;
@@ -7605,5 +7605,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1752 "parser.yy"
+#line 1751 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     break;
@@ -7612,5 +7612,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1754 "parser.yy"
+#line 1753 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     break;
@@ -7619,5 +7619,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1756 "parser.yy"
+#line 1755 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
     break;
@@ -7626,5 +7626,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1762 "parser.yy"
+#line 1761 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     break;
@@ -7633,5 +7633,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1767 "parser.yy"
+#line 1766 "parser.yy"
     { (yyval.decl) = nullptr; }
     break;
@@ -7640,5 +7640,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1774 "parser.yy"
+#line 1773 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     break;
@@ -7647,5 +7647,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1781 "parser.yy"
+#line 1780 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     break;
@@ -7654,5 +7654,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1783 "parser.yy"
+#line 1782 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     break;
@@ -7661,5 +7661,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1792 "parser.yy"
+#line 1791 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
     break;
@@ -7668,5 +7668,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1795 "parser.yy"
+#line 1794 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
     break;
@@ -7675,5 +7675,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1797 "parser.yy"
+#line 1796 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
     break;
@@ -7682,5 +7682,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1807 "parser.yy"
+#line 1806 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -7689,5 +7689,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1814 "parser.yy"
+#line 1813 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -7699,5 +7699,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1819 "parser.yy"
+#line 1818 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -7709,5 +7709,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1827 "parser.yy"
+#line 1826 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addInitializer( (yyvsp[(2) - (2)].en) ? new InitializerNode( (yyvsp[(2) - (2)].en) ) : nullptr ); }
     break;
@@ -7716,5 +7716,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1829 "parser.yy"
+#line 1828 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( (yyvsp[(3) - (3)].en) ? new InitializerNode( (yyvsp[(3) - (3)].en) ) : nullptr ); }
     break;
@@ -7723,5 +7723,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1838 "parser.yy"
+#line 1837 "parser.yy"
     { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
     break;
@@ -7730,5 +7730,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1840 "parser.yy"
+#line 1839 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
     break;
@@ -7737,5 +7737,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1865 "parser.yy"
+#line 1864 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -7744,5 +7744,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1875 "parser.yy"
+#line 1874 "parser.yy"
     { (yyval.in) = nullptr; }
     break;
@@ -7751,5 +7751,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1877 "parser.yy"
+#line 1876 "parser.yy"
     { (yyval.in) = (yyvsp[(2) - (2)].in); }
     break;
@@ -7758,5 +7758,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1879 "parser.yy"
+#line 1878 "parser.yy"
     { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); }
     break;
@@ -7765,12 +7765,12 @@
 
 /* Line 1806 of yacc.c  */
+#line 1882 "parser.yy"
+    { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
+    break;
+
+  case 481:
+
+/* Line 1806 of yacc.c  */
 #line 1883 "parser.yy"
-    { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
-    break;
-
-  case 481:
-
-/* Line 1806 of yacc.c  */
-#line 1884 "parser.yy"
     { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
     break;
@@ -7779,5 +7779,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1889 "parser.yy"
+#line 1888 "parser.yy"
     { (yyval.in) = nullptr; }
     break;
@@ -7786,12 +7786,12 @@
 
 /* Line 1806 of yacc.c  */
+#line 1890 "parser.yy"
+    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
+    break;
+
+  case 485:
+
+/* Line 1806 of yacc.c  */
 #line 1891 "parser.yy"
-    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
-    break;
-
-  case 485:
-
-/* Line 1806 of yacc.c  */
-#line 1892 "parser.yy"
     { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); }
     break;
@@ -7800,5 +7800,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1894 "parser.yy"
+#line 1893 "parser.yy"
     { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_last( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
     break;
@@ -7807,5 +7807,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1910 "parser.yy"
+#line 1909 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); }
     break;
@@ -7814,5 +7814,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1916 "parser.yy"
+#line 1915 "parser.yy"
     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) ) ); }
     break;
@@ -7821,5 +7821,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1922 "parser.yy"
+#line 1921 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); }
     break;
@@ -7828,5 +7828,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1925 "parser.yy"
+#line 1924 "parser.yy"
     { (yyval.en) = (yyvsp[(3) - (5)].en); }
     break;
@@ -7835,5 +7835,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1927 "parser.yy"
+#line 1926 "parser.yy"
     { (yyval.en) = (yyvsp[(3) - (5)].en); }
     break;
@@ -7842,5 +7842,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1929 "parser.yy"
+#line 1928 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); }
     break;
@@ -7849,5 +7849,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1931 "parser.yy"
+#line 1930 "parser.yy"
     { (yyval.en) = (yyvsp[(4) - (6)].en); }
     break;
@@ -7856,5 +7856,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1955 "parser.yy"
+#line 1954 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -7863,5 +7863,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1957 "parser.yy"
+#line 1956 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -7870,5 +7870,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1959 "parser.yy"
+#line 1958 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     break;
@@ -7877,5 +7877,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1965 "parser.yy"
+#line 1964 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -7884,5 +7884,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1967 "parser.yy"
+#line 1966 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -7891,5 +7891,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1972 "parser.yy"
+#line 1971 "parser.yy"
     { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
     break;
@@ -7898,5 +7898,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1978 "parser.yy"
+#line 1977 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
     break;
@@ -7905,5 +7905,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1983 "parser.yy"
+#line 1982 "parser.yy"
     { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
     break;
@@ -7912,5 +7912,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1985 "parser.yy"
+#line 1984 "parser.yy"
     { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -7919,5 +7919,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1991 "parser.yy"
+#line 1990 "parser.yy"
     { (yyval.tclass) = DeclarationNode::Otype; }
     break;
@@ -7926,5 +7926,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1993 "parser.yy"
+#line 1992 "parser.yy"
     { (yyval.tclass) = DeclarationNode::Dtype; }
     break;
@@ -7933,5 +7933,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1995 "parser.yy"
+#line 1994 "parser.yy"
     { (yyval.tclass) = DeclarationNode::Ftype; }
     break;
@@ -7940,5 +7940,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1997 "parser.yy"
+#line 1996 "parser.yy"
     { (yyval.tclass) = DeclarationNode::Ttype; }
     break;
@@ -7947,5 +7947,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2002 "parser.yy"
+#line 2001 "parser.yy"
     { (yyval.decl) = nullptr; }
     break;
@@ -7954,5 +7954,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2004 "parser.yy"
+#line 2003 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl) ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
     break;
@@ -7961,5 +7961,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2009 "parser.yy"
+#line 2008 "parser.yy"
     {
 			typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) );
@@ -7971,5 +7971,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2014 "parser.yy"
+#line 2013 "parser.yy"
     { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
     break;
@@ -7978,5 +7978,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2016 "parser.yy"
+#line 2015 "parser.yy"
     { (yyval.decl) = nullptr; }
     break;
@@ -7985,5 +7985,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2021 "parser.yy"
+#line 2020 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); }
     break;
@@ -7992,5 +7992,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2024 "parser.yy"
+#line 2023 "parser.yy"
     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); }
     break;
@@ -7999,5 +7999,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2026 "parser.yy"
+#line 2025 "parser.yy"
     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
     break;
@@ -8006,5 +8006,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2031 "parser.yy"
+#line 2030 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
     break;
@@ -8013,5 +8013,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2033 "parser.yy"
+#line 2032 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
     break;
@@ -8020,5 +8020,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2035 "parser.yy"
+#line 2034 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
     break;
@@ -8027,5 +8027,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2040 "parser.yy"
+#line 2039 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8034,5 +8034,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2042 "parser.yy"
+#line 2041 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8041,5 +8041,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2047 "parser.yy"
+#line 2046 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD );
@@ -8051,5 +8051,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2052 "parser.yy"
+#line 2051 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG );
@@ -8061,5 +8061,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2060 "parser.yy"
+#line 2059 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID );
@@ -8071,5 +8071,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2065 "parser.yy"
+#line 2064 "parser.yy"
     {
 			typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) );
@@ -8081,5 +8081,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2070 "parser.yy"
+#line 2069 "parser.yy"
     {
 			typedefTable.leaveTrait();
@@ -8092,5 +8092,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2080 "parser.yy"
+#line 2079 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
     break;
@@ -8099,5 +8099,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2090 "parser.yy"
+#line 2089 "parser.yy"
     {
 			typedefTable.addToEnclosingScope2( TypedefTable::ID );
@@ -8109,5 +8109,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2095 "parser.yy"
+#line 2094 "parser.yy"
     {
 			typedefTable.addToEnclosingScope2( TypedefTable::ID );
@@ -8119,5 +8119,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2100 "parser.yy"
+#line 2099 "parser.yy"
     {
 			typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
@@ -8129,5 +8129,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2108 "parser.yy"
+#line 2107 "parser.yy"
     {
 			typedefTable.addToEnclosingScope2( TypedefTable::ID );
@@ -8139,5 +8139,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2113 "parser.yy"
+#line 2112 "parser.yy"
     {
 			typedefTable.addToEnclosingScope2( TypedefTable::ID );
@@ -8149,5 +8149,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2123 "parser.yy"
+#line 2122 "parser.yy"
     {}
     break;
@@ -8156,5 +8156,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2125 "parser.yy"
+#line 2124 "parser.yy"
     { parseTree = parseTree ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl);	}
     break;
@@ -8163,5 +8163,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2131 "parser.yy"
+#line 2130 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
     break;
@@ -8170,5 +8170,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2136 "parser.yy"
+#line 2135 "parser.yy"
     { (yyval.decl) = nullptr; }
     break;
@@ -8177,5 +8177,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2144 "parser.yy"
+#line 2143 "parser.yy"
     {
 			(yyval.decl) = DeclarationNode::newAsmStmt( new StatementNode( build_asmstmt( false, (yyvsp[(3) - (5)].constant), 0 ) ) );
@@ -8186,5 +8186,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2148 "parser.yy"
+#line 2147 "parser.yy"
     {
 			linkageStack.push( linkage );				// handle nested extern "C"/"Cforall"
@@ -8196,5 +8196,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2153 "parser.yy"
+#line 2152 "parser.yy"
     {
 			linkage = linkageStack.top();
@@ -8207,5 +8207,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2159 "parser.yy"
+#line 2158 "parser.yy"
     {
 			distExt( (yyvsp[(2) - (2)].decl) );								// mark all fields in list
@@ -8217,5 +8217,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2173 "parser.yy"
+#line 2172 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -8228,5 +8228,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2179 "parser.yy"
+#line 2178 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -8239,5 +8239,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2188 "parser.yy"
+#line 2187 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -8250,5 +8250,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2194 "parser.yy"
+#line 2193 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -8261,5 +8261,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2200 "parser.yy"
+#line 2199 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -8272,5 +8272,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2206 "parser.yy"
+#line 2205 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -8283,5 +8283,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2212 "parser.yy"
+#line 2211 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -8294,5 +8294,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2220 "parser.yy"
+#line 2219 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -8305,5 +8305,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2226 "parser.yy"
+#line 2225 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -8316,5 +8316,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2234 "parser.yy"
+#line 2233 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -8327,5 +8327,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2240 "parser.yy"
+#line 2239 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -8338,5 +8338,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2255 "parser.yy"
+#line 2254 "parser.yy"
     { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     break;
@@ -8345,5 +8345,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2260 "parser.yy"
+#line 2259 "parser.yy"
     { (yyval.decl) = nullptr; }
     break;
@@ -8352,5 +8352,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2262 "parser.yy"
+#line 2261 "parser.yy"
     {
 			DeclarationNode * name = new DeclarationNode();
@@ -8363,5 +8363,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2271 "parser.yy"
+#line 2270 "parser.yy"
     { (yyval.decl) = nullptr; }
     break;
@@ -8370,5 +8370,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2278 "parser.yy"
+#line 2277 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -8377,5 +8377,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2283 "parser.yy"
+#line 2282 "parser.yy"
     { (yyval.decl) = (yyvsp[(4) - (6)].decl); }
     break;
@@ -8384,5 +8384,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2289 "parser.yy"
+#line 2288 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
     break;
@@ -8391,5 +8391,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2294 "parser.yy"
+#line 2293 "parser.yy"
     { (yyval.decl) = nullptr; }
     break;
@@ -8398,5 +8398,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2296 "parser.yy"
+#line 2295 "parser.yy"
     { (yyval.decl) = DeclarationNode::newAttribute( (yyvsp[(1) - (1)].tok) ); }
     break;
@@ -8405,5 +8405,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2298 "parser.yy"
+#line 2297 "parser.yy"
     { (yyval.decl) = DeclarationNode::newAttribute( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
     break;
@@ -8412,5 +8412,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2306 "parser.yy"
+#line 2305 "parser.yy"
     { (yyval.tok) = Token{ new string( "__const__" ) }; }
     break;
@@ -8419,5 +8419,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2341 "parser.yy"
+#line 2340 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8426,5 +8426,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2344 "parser.yy"
+#line 2343 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8433,5 +8433,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2346 "parser.yy"
+#line 2345 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8440,5 +8440,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2351 "parser.yy"
+#line 2350 "parser.yy"
     {
 			typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
@@ -8450,5 +8450,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2356 "parser.yy"
+#line 2355 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8457,5 +8457,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2361 "parser.yy"
+#line 2360 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8464,5 +8464,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2363 "parser.yy"
+#line 2362 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     break;
@@ -8471,5 +8471,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2365 "parser.yy"
+#line 2364 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8478,5 +8478,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2370 "parser.yy"
+#line 2369 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8485,5 +8485,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2372 "parser.yy"
+#line 2371 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8492,5 +8492,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2374 "parser.yy"
+#line 2373 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8499,5 +8499,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2376 "parser.yy"
+#line 2375 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8506,5 +8506,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2381 "parser.yy"
+#line 2380 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     break;
@@ -8513,5 +8513,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2383 "parser.yy"
+#line 2382 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8520,5 +8520,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2392 "parser.yy"
+#line 2391 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8527,5 +8527,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2395 "parser.yy"
+#line 2394 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8534,5 +8534,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2400 "parser.yy"
+#line 2399 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     break;
@@ -8541,5 +8541,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2402 "parser.yy"
+#line 2401 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     break;
@@ -8548,5 +8548,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2404 "parser.yy"
+#line 2403 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8555,5 +8555,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2409 "parser.yy"
+#line 2408 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8562,5 +8562,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2411 "parser.yy"
+#line 2410 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     break;
@@ -8569,5 +8569,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2413 "parser.yy"
+#line 2412 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8576,5 +8576,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2418 "parser.yy"
+#line 2417 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8583,5 +8583,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2420 "parser.yy"
+#line 2419 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8590,5 +8590,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2422 "parser.yy"
+#line 2421 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8597,5 +8597,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2440 "parser.yy"
+#line 2439 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
     break;
@@ -8604,5 +8604,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2442 "parser.yy"
+#line 2441 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     break;
@@ -8611,5 +8611,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2444 "parser.yy"
+#line 2443 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8618,5 +8618,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2449 "parser.yy"
+#line 2448 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8625,5 +8625,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2451 "parser.yy"
+#line 2450 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     break;
@@ -8632,5 +8632,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2453 "parser.yy"
+#line 2452 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8639,5 +8639,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2458 "parser.yy"
+#line 2457 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8646,5 +8646,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2460 "parser.yy"
+#line 2459 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8653,5 +8653,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2462 "parser.yy"
+#line 2461 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8660,5 +8660,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2477 "parser.yy"
+#line 2476 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8667,5 +8667,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2480 "parser.yy"
+#line 2479 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8674,5 +8674,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2482 "parser.yy"
+#line 2481 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8681,5 +8681,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2488 "parser.yy"
+#line 2487 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8688,5 +8688,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2493 "parser.yy"
+#line 2492 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8695,5 +8695,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2495 "parser.yy"
+#line 2494 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     break;
@@ -8702,5 +8702,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2497 "parser.yy"
+#line 2496 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8709,5 +8709,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2502 "parser.yy"
+#line 2501 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8716,5 +8716,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2504 "parser.yy"
+#line 2503 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8723,5 +8723,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2506 "parser.yy"
+#line 2505 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8730,5 +8730,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2508 "parser.yy"
+#line 2507 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8737,5 +8737,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2513 "parser.yy"
+#line 2512 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     break;
@@ -8744,5 +8744,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2515 "parser.yy"
+#line 2514 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     break;
@@ -8751,5 +8751,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2517 "parser.yy"
+#line 2516 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8758,5 +8758,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2527 "parser.yy"
+#line 2526 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8765,5 +8765,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2530 "parser.yy"
+#line 2529 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8772,5 +8772,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2532 "parser.yy"
+#line 2531 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8779,5 +8779,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2537 "parser.yy"
+#line 2536 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8786,5 +8786,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2539 "parser.yy"
+#line 2538 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     break;
@@ -8793,5 +8793,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2541 "parser.yy"
+#line 2540 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8800,5 +8800,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2546 "parser.yy"
+#line 2545 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8807,5 +8807,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2548 "parser.yy"
+#line 2547 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8814,5 +8814,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2550 "parser.yy"
+#line 2549 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8821,5 +8821,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2552 "parser.yy"
+#line 2551 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8828,5 +8828,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2557 "parser.yy"
+#line 2556 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     break;
@@ -8835,5 +8835,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2559 "parser.yy"
+#line 2558 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     break;
@@ -8842,5 +8842,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2561 "parser.yy"
+#line 2560 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8849,5 +8849,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2574 "parser.yy"
+#line 2573 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8856,5 +8856,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2577 "parser.yy"
+#line 2576 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8863,5 +8863,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2579 "parser.yy"
+#line 2578 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8870,5 +8870,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2584 "parser.yy"
+#line 2583 "parser.yy"
     {
 			typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
@@ -8880,5 +8880,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2589 "parser.yy"
+#line 2588 "parser.yy"
     {
 			typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
@@ -8890,5 +8890,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2597 "parser.yy"
+#line 2596 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8897,5 +8897,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2599 "parser.yy"
+#line 2598 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     break;
@@ -8904,5 +8904,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2601 "parser.yy"
+#line 2600 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8911,5 +8911,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2606 "parser.yy"
+#line 2605 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8918,5 +8918,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2608 "parser.yy"
+#line 2607 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8925,5 +8925,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2613 "parser.yy"
+#line 2612 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     break;
@@ -8932,5 +8932,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2615 "parser.yy"
+#line 2614 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     break;
@@ -8939,5 +8939,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2633 "parser.yy"
+#line 2632 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8946,5 +8946,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2635 "parser.yy"
+#line 2634 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8953,5 +8953,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2640 "parser.yy"
+#line 2639 "parser.yy"
     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     break;
@@ -8960,5 +8960,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2642 "parser.yy"
+#line 2641 "parser.yy"
     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8967,5 +8967,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2644 "parser.yy"
+#line 2643 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8974,5 +8974,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2646 "parser.yy"
+#line 2645 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     break;
@@ -8981,5 +8981,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2648 "parser.yy"
+#line 2647 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8988,5 +8988,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2654 "parser.yy"
+#line 2653 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8995,5 +8995,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2656 "parser.yy"
+#line 2655 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -9002,5 +9002,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2658 "parser.yy"
+#line 2657 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -9009,5 +9009,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2663 "parser.yy"
+#line 2662 "parser.yy"
     { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
     break;
@@ -9016,5 +9016,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2665 "parser.yy"
+#line 2664 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     break;
@@ -9023,5 +9023,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2667 "parser.yy"
+#line 2666 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -9030,5 +9030,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2673 "parser.yy"
+#line 2672 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     break;
@@ -9037,5 +9037,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2675 "parser.yy"
+#line 2674 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
     break;
@@ -9044,5 +9044,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2681 "parser.yy"
+#line 2680 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
     break;
@@ -9051,5 +9051,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2683 "parser.yy"
+#line 2682 "parser.yy"
     { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
     break;
@@ -9058,5 +9058,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2685 "parser.yy"
+#line 2684 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
     break;
@@ -9065,5 +9065,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2687 "parser.yy"
+#line 2686 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
     break;
@@ -9072,5 +9072,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2722 "parser.yy"
+#line 2721 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -9079,5 +9079,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2724 "parser.yy"
+#line 2723 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -9086,5 +9086,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2729 "parser.yy"
+#line 2728 "parser.yy"
     { (yyval.decl) = DeclarationNode::newPointer( nullptr ); }
     break;
@@ -9093,5 +9093,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2731 "parser.yy"
+#line 2730 "parser.yy"
     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -9100,5 +9100,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2733 "parser.yy"
+#line 2732 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( nullptr ) ); }
     break;
@@ -9107,5 +9107,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2735 "parser.yy"
+#line 2734 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     break;
@@ -9114,5 +9114,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2737 "parser.yy"
+#line 2736 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -9121,5 +9121,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2743 "parser.yy"
+#line 2742 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -9128,5 +9128,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2745 "parser.yy"
+#line 2744 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -9135,5 +9135,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2747 "parser.yy"
+#line 2746 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -9142,5 +9142,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2752 "parser.yy"
+#line 2751 "parser.yy"
     { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
     break;
@@ -9149,5 +9149,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2754 "parser.yy"
+#line 2753 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     break;
@@ -9156,5 +9156,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2756 "parser.yy"
+#line 2755 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -9163,5 +9163,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2763 "parser.yy"
+#line 2762 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -9170,5 +9170,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2774 "parser.yy"
+#line 2773 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     break;
@@ -9177,5 +9177,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2777 "parser.yy"
+#line 2776 "parser.yy"
     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
     break;
@@ -9184,5 +9184,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2779 "parser.yy"
+#line 2778 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
     break;
@@ -9191,5 +9191,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2782 "parser.yy"
+#line 2781 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
     break;
@@ -9198,5 +9198,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2784 "parser.yy"
+#line 2783 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
     break;
@@ -9205,5 +9205,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2786 "parser.yy"
+#line 2785 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
     break;
@@ -9212,5 +9212,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2801 "parser.yy"
+#line 2800 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -9219,5 +9219,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2803 "parser.yy"
+#line 2802 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -9226,5 +9226,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2808 "parser.yy"
+#line 2807 "parser.yy"
     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     break;
@@ -9233,5 +9233,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2810 "parser.yy"
+#line 2809 "parser.yy"
     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -9240,5 +9240,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2812 "parser.yy"
+#line 2811 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -9247,5 +9247,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2814 "parser.yy"
+#line 2813 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     break;
@@ -9254,5 +9254,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2816 "parser.yy"
+#line 2815 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -9261,5 +9261,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2822 "parser.yy"
+#line 2821 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -9268,5 +9268,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2824 "parser.yy"
+#line 2823 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -9275,5 +9275,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2826 "parser.yy"
+#line 2825 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -9282,5 +9282,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2831 "parser.yy"
+#line 2830 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     break;
@@ -9289,5 +9289,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2833 "parser.yy"
+#line 2832 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -9296,5 +9296,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2843 "parser.yy"
+#line 2842 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -9303,5 +9303,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2854 "parser.yy"
+#line 2853 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -9310,5 +9310,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2856 "parser.yy"
+#line 2855 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     break;
@@ -9317,5 +9317,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2858 "parser.yy"
+#line 2857 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -9324,5 +9324,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2860 "parser.yy"
+#line 2859 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     break;
@@ -9331,5 +9331,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2862 "parser.yy"
+#line 2861 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -9338,5 +9338,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2864 "parser.yy"
+#line 2863 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     break;
@@ -9345,5 +9345,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2871 "parser.yy"
+#line 2870 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     break;
@@ -9352,5 +9352,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2873 "parser.yy"
+#line 2872 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -9359,5 +9359,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2875 "parser.yy"
+#line 2874 "parser.yy"
     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     break;
@@ -9366,5 +9366,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2877 "parser.yy"
+#line 2876 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     break;
@@ -9373,5 +9373,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2879 "parser.yy"
+#line 2878 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -9380,5 +9380,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2882 "parser.yy"
+#line 2881 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     break;
@@ -9387,5 +9387,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2884 "parser.yy"
+#line 2883 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -9394,5 +9394,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2886 "parser.yy"
+#line 2885 "parser.yy"
     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     break;
@@ -9401,5 +9401,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2888 "parser.yy"
+#line 2887 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     break;
@@ -9408,5 +9408,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2890 "parser.yy"
+#line 2889 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -9415,5 +9415,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2895 "parser.yy"
+#line 2894 "parser.yy"
     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
     break;
@@ -9422,5 +9422,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2897 "parser.yy"
+#line 2896 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
     break;
@@ -9429,5 +9429,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2902 "parser.yy"
+#line 2901 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
     break;
@@ -9436,5 +9436,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2904 "parser.yy"
+#line 2903 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
     break;
@@ -9443,5 +9443,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2931 "parser.yy"
+#line 2930 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -9450,5 +9450,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2942 "parser.yy"
+#line 2941 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -9457,5 +9457,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2944 "parser.yy"
+#line 2943 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     break;
@@ -9464,5 +9464,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2946 "parser.yy"
+#line 2945 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -9471,5 +9471,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2948 "parser.yy"
+#line 2947 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     break;
@@ -9478,5 +9478,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2950 "parser.yy"
+#line 2949 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -9485,5 +9485,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2952 "parser.yy"
+#line 2951 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     break;
@@ -9492,5 +9492,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2959 "parser.yy"
+#line 2958 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     break;
@@ -9499,5 +9499,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2961 "parser.yy"
+#line 2960 "parser.yy"
     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     break;
@@ -9506,5 +9506,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2963 "parser.yy"
+#line 2962 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -9513,5 +9513,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2965 "parser.yy"
+#line 2964 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     break;
@@ -9520,5 +9520,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2967 "parser.yy"
+#line 2966 "parser.yy"
     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     break;
@@ -9527,5 +9527,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2969 "parser.yy"
+#line 2968 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -9534,5 +9534,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2974 "parser.yy"
+#line 2973 "parser.yy"
     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
     break;
@@ -9541,5 +9541,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2981 "parser.yy"
+#line 2980 "parser.yy"
     { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); }
     break;
@@ -9548,5 +9548,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2983 "parser.yy"
+#line 2982 "parser.yy"
     { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); }
     break;
@@ -9555,5 +9555,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 3007 "parser.yy"
+#line 3006 "parser.yy"
     { (yyval.en) = nullptr; }
     break;
@@ -9562,5 +9562,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 3009 "parser.yy"
+#line 3008 "parser.yy"
     { (yyval.en) = (yyvsp[(2) - (2)].en); }
     break;
@@ -9800,5 +9800,5 @@
 
 /* Line 2067 of yacc.c  */
-#line 3012 "parser.yy"
+#line 3011 "parser.yy"
 
 // ----end of grammar----
