Index: src/Parser/ExpressionNode.cc
===================================================================
--- src/Parser/ExpressionNode.cc	(revision 148f7290b223b10641c960429cd37cc278a5903c)
+++ src/Parser/ExpressionNode.cc	(revision 4cb935efa354074c5683f9c0730f6ae143c682ce)
@@ -46,5 +46,5 @@
 // type.
 
-static Type::Qualifiers emptyQualifiers;				// no qualifiers on constants
+Type::Qualifiers emptyQualifiers;				// no qualifiers on constants
 
 static inline bool checkU( char c ) { return c == 'u' || c == 'U'; }
@@ -172,4 +172,10 @@
 } // build_constantStr
 
+Expression *build_constantZeroOne( const std::string & str ) {
+	Expression * ret = new ConstantExpr( Constant( str == "0" ? (Type*)new ZeroType( emptyQualifiers ) : (Type*)new OneType( emptyQualifiers ), str ) );
+	delete &str;										// created by lex
+	return ret;
+} // build_constantChar
+
 Expression * build_field_name_FLOATINGconstant( const std::string & str ) {
 	// str is of the form A.B -> separate at the . and return member expression
Index: src/Parser/ParseNode.h
===================================================================
--- src/Parser/ParseNode.h	(revision 148f7290b223b10641c960429cd37cc278a5903c)
+++ src/Parser/ParseNode.h	(revision 4cb935efa354074c5683f9c0730f6ae143c682ce)
@@ -154,4 +154,5 @@
 Expression * build_constantFloat( const std::string &str );
 Expression * build_constantChar( const std::string &str );
+Expression * build_constantZeroOne( const std::string &str );
 ConstantExpr * build_constantStr( const std::string &str );
 Expression * build_field_name_FLOATINGconstant( const std::string & str );
Index: src/Parser/TypeData.cc
===================================================================
--- src/Parser/TypeData.cc	(revision 148f7290b223b10641c960429cd37cc278a5903c)
+++ src/Parser/TypeData.cc	(revision 4cb935efa354074c5683f9c0730f6ae143c682ce)
@@ -215,6 +215,6 @@
 		break;
 	  case Builtin:
-		assert( false );
-		// newtype->builtin = builtin;
+		assert( builtintype == DeclarationNode::Zero || builtintype == DeclarationNode::One );
+		newtype->builtintype = builtintype;
 		break;
 	} // switch
@@ -445,8 +445,8 @@
 	  case TypeData::Builtin:
 		if(td->builtintype == DeclarationNode::Zero) {
-			return new ZeroType( buildQualifiers( td ) );
+			return new ZeroType( emptyQualifiers );
 		}
 		else if(td->builtintype == DeclarationNode::One) {
-			return new OneType( buildQualifiers( td ) );
+			return new OneType( emptyQualifiers );
 		}
 		else {
Index: src/Parser/parser.cc
===================================================================
--- src/Parser/parser.cc	(revision 148f7290b223b10641c960429cd37cc278a5903c)
+++ src/Parser/parser.cc	(revision 4cb935efa354074c5683f9c0730f6ae143c682ce)
@@ -700,75 +700,75 @@
      384,   386,   388,   390,   392,   394,   396,   398,   407,   408,
      414,   415,   419,   420,   424,   425,   427,   429,   431,   433,
-     435,   440,   442,   444,   450,   451,   459,   462,   464,   466,
-     471,   484,   486,   488,   490,   492,   494,   496,   498,   500,
-     502,   504,   511,   512,   518,   519,   520,   521,   525,   526,
-     533,   534,   536,   538,   543,   544,   546,   551,   552,   554,
-     559,   560,   562,   564,   566,   571,   572,   574,   579,   580,
-     585,   586,   591,   592,   597,   598,   603,   604,   609,   610,
-     613,   620,   625,   626,   634,   635,   639,   640,   641,   642,
-     643,   644,   645,   646,   647,   648,   649,   650,   660,   662,
-     667,   668,   673,   674,   680,   681,   687,   688,   689,   690,
-     691,   692,   693,   694,   695,   705,   712,   714,   724,   725,
-     730,   732,   738,   740,   744,   745,   750,   755,   758,   760,
-     762,   772,   774,   785,   786,   788,   792,   794,   798,   799,
-     804,   805,   809,   814,   815,   819,   821,   827,   828,   832,
-     834,   836,   838,   844,   845,   849,   851,   856,   858,   860,
-     865,   867,   872,   874,   878,   881,   885,   888,   892,   894,
-     896,   898,   903,   905,   907,   912,   914,   916,   918,   920,
-     925,   927,   929,   931,   936,   948,   949,   954,   956,   961,
-     965,   967,   969,   971,   973,   979,   980,   986,   987,   991,
-     992,   997,   999,  1005,  1006,  1008,  1013,  1018,  1028,  1030,
-    1034,  1035,  1040,  1042,  1046,  1047,  1051,  1053,  1057,  1058,
-    1062,  1063,  1067,  1068,  1083,  1084,  1085,  1086,  1087,  1091,
-    1096,  1103,  1113,  1118,  1123,  1131,  1136,  1141,  1146,  1151,
-    1181,  1186,  1193,  1195,  1202,  1207,  1212,  1223,  1228,  1233,
-    1238,  1243,  1252,  1257,  1265,  1266,  1267,  1268,  1274,  1279,
-    1287,  1288,  1289,  1290,  1294,  1295,  1296,  1297,  1302,  1303,
-    1312,  1313,  1318,  1319,  1324,  1326,  1328,  1330,  1332,  1335,
-    1334,  1346,  1347,  1349,  1359,  1360,  1365,  1367,  1369,  1371,
-    1373,  1376,  1378,  1381,  1386,  1388,  1390,  1392,  1394,  1396,
-    1398,  1400,  1402,  1404,  1406,  1408,  1410,  1412,  1414,  1420,
-    1421,  1423,  1425,  1427,  1432,  1433,  1439,  1440,  1442,  1444,
-    1449,  1451,  1453,  1455,  1460,  1461,  1463,  1465,  1470,  1471,
-    1473,  1478,  1479,  1481,  1483,  1488,  1490,  1492,  1497,  1498,
-    1502,  1504,  1510,  1509,  1513,  1515,  1520,  1522,  1528,  1529,
-    1534,  1535,  1537,  1538,  1547,  1548,  1550,  1552,  1557,  1559,
-    1565,  1566,  1568,  1571,  1574,  1579,  1580,  1585,  1590,  1594,
-    1596,  1602,  1601,  1608,  1610,  1616,  1617,  1625,  1626,  1630,
-    1631,  1632,  1634,  1636,  1643,  1644,  1646,  1648,  1653,  1654,
-    1660,  1661,  1665,  1666,  1671,  1672,  1673,  1675,  1683,  1684,
-    1686,  1689,  1691,  1695,  1696,  1697,  1699,  1701,  1705,  1710,
-    1718,  1719,  1728,  1730,  1735,  1736,  1737,  1741,  1742,  1743,
-    1747,  1748,  1749,  1753,  1754,  1755,  1760,  1761,  1762,  1763,
-    1769,  1770,  1772,  1777,  1778,  1783,  1784,  1785,  1786,  1787,
-    1802,  1803,  1808,  1809,  1815,  1817,  1820,  1822,  1824,  1847,
-    1848,  1850,  1852,  1857,  1858,  1860,  1865,  1870,  1871,  1877,
-    1876,  1880,  1884,  1886,  1888,  1894,  1895,  1900,  1905,  1907,
-    1912,  1914,  1915,  1917,  1922,  1924,  1926,  1931,  1933,  1938,
-    1943,  1951,  1957,  1956,  1970,  1971,  1976,  1977,  1981,  1986,
-    1991,  1999,  2004,  2015,  2016,  2021,  2022,  2028,  2029,  2033,
-    2034,  2035,  2038,  2037,  2048,  2057,  2063,  2069,  2078,  2084,
-    2090,  2096,  2102,  2110,  2116,  2124,  2130,  2139,  2140,  2141,
-    2145,  2149,  2151,  2156,  2157,  2161,  2162,  2167,  2173,  2174,
-    2177,  2179,  2180,  2184,  2185,  2186,  2187,  2221,  2223,  2224,
-    2226,  2231,  2236,  2241,  2243,  2245,  2250,  2252,  2254,  2256,
-    2261,  2263,  2272,  2274,  2275,  2280,  2282,  2284,  2289,  2291,
-    2293,  2298,  2300,  2302,  2311,  2312,  2313,  2317,  2319,  2321,
-    2326,  2328,  2330,  2335,  2337,  2339,  2354,  2356,  2357,  2359,
-    2364,  2365,  2370,  2372,  2374,  2379,  2381,  2383,  2385,  2390,
-    2392,  2394,  2404,  2406,  2407,  2409,  2414,  2416,  2418,  2423,
-    2425,  2427,  2429,  2434,  2436,  2438,  2469,  2471,  2472,  2474,
-    2479,  2484,  2492,  2494,  2496,  2501,  2503,  2508,  2510,  2524,
-    2525,  2527,  2532,  2534,  2536,  2538,  2540,  2545,  2546,  2548,
-    2550,  2555,  2557,  2559,  2565,  2567,  2569,  2573,  2575,  2577,
-    2579,  2593,  2594,  2596,  2601,  2603,  2605,  2607,  2609,  2614,
-    2615,  2617,  2619,  2624,  2626,  2628,  2634,  2635,  2637,  2646,
-    2649,  2651,  2654,  2656,  2658,  2671,  2672,  2674,  2679,  2681,
-    2683,  2685,  2687,  2692,  2693,  2695,  2697,  2702,  2704,  2712,
-    2713,  2714,  2719,  2720,  2724,  2726,  2728,  2730,  2732,  2734,
-    2741,  2743,  2745,  2747,  2749,  2752,  2754,  2756,  2758,  2760,
-    2765,  2767,  2769,  2774,  2800,  2801,  2803,  2807,  2808,  2812,
-    2814,  2816,  2818,  2820,  2822,  2829,  2831,  2833,  2835,  2837,
-    2839,  2844,  2851,  2853,  2871,  2873,  2878,  2879
+     435,   440,   442,   444,   456,   457,   465,   468,   470,   472,
+     477,   490,   492,   494,   496,   498,   500,   502,   504,   506,
+     508,   510,   517,   518,   524,   525,   526,   527,   531,   532,
+     539,   540,   542,   544,   549,   550,   552,   557,   558,   560,
+     565,   566,   568,   570,   572,   577,   578,   580,   585,   586,
+     591,   592,   597,   598,   603,   604,   609,   610,   615,   616,
+     619,   626,   631,   632,   640,   641,   645,   646,   647,   648,
+     649,   650,   651,   652,   653,   654,   655,   656,   666,   668,
+     673,   674,   679,   680,   686,   687,   693,   694,   695,   696,
+     697,   698,   699,   700,   701,   711,   718,   720,   730,   731,
+     736,   738,   744,   746,   750,   751,   756,   761,   764,   766,
+     768,   778,   780,   791,   792,   794,   798,   800,   804,   805,
+     810,   811,   815,   820,   821,   825,   827,   833,   834,   838,
+     840,   842,   844,   850,   851,   855,   857,   862,   864,   866,
+     871,   873,   878,   880,   884,   887,   891,   894,   898,   900,
+     902,   904,   909,   911,   913,   918,   920,   922,   924,   926,
+     931,   933,   935,   937,   942,   954,   955,   960,   962,   967,
+     971,   973,   975,   977,   979,   985,   986,   992,   993,   997,
+     998,  1003,  1005,  1011,  1012,  1014,  1019,  1024,  1034,  1036,
+    1040,  1041,  1046,  1048,  1052,  1053,  1057,  1059,  1063,  1064,
+    1068,  1069,  1073,  1074,  1089,  1090,  1091,  1092,  1093,  1097,
+    1102,  1109,  1119,  1124,  1129,  1137,  1142,  1147,  1152,  1157,
+    1187,  1192,  1199,  1201,  1208,  1213,  1218,  1229,  1234,  1239,
+    1244,  1249,  1258,  1263,  1271,  1272,  1273,  1274,  1280,  1285,
+    1293,  1294,  1295,  1296,  1300,  1301,  1302,  1303,  1308,  1309,
+    1318,  1319,  1324,  1325,  1330,  1332,  1334,  1336,  1338,  1341,
+    1340,  1352,  1353,  1355,  1365,  1366,  1371,  1373,  1375,  1377,
+    1379,  1382,  1384,  1387,  1392,  1394,  1396,  1398,  1400,  1402,
+    1404,  1406,  1408,  1410,  1412,  1414,  1416,  1418,  1420,  1426,
+    1427,  1429,  1431,  1433,  1438,  1439,  1445,  1446,  1448,  1450,
+    1455,  1457,  1459,  1461,  1466,  1467,  1469,  1471,  1476,  1477,
+    1479,  1484,  1485,  1487,  1489,  1494,  1496,  1498,  1503,  1504,
+    1508,  1510,  1516,  1515,  1519,  1521,  1526,  1528,  1534,  1535,
+    1540,  1541,  1543,  1544,  1553,  1554,  1556,  1558,  1563,  1565,
+    1571,  1572,  1574,  1577,  1580,  1585,  1586,  1591,  1596,  1600,
+    1602,  1608,  1607,  1614,  1616,  1622,  1623,  1631,  1632,  1636,
+    1637,  1638,  1640,  1642,  1649,  1650,  1652,  1654,  1659,  1660,
+    1666,  1667,  1671,  1672,  1677,  1678,  1679,  1681,  1689,  1690,
+    1692,  1695,  1697,  1701,  1702,  1703,  1705,  1707,  1711,  1716,
+    1724,  1725,  1734,  1736,  1741,  1742,  1743,  1747,  1748,  1749,
+    1753,  1754,  1755,  1759,  1760,  1761,  1766,  1767,  1768,  1769,
+    1775,  1776,  1778,  1783,  1784,  1789,  1790,  1791,  1792,  1793,
+    1808,  1809,  1814,  1815,  1821,  1823,  1826,  1828,  1830,  1853,
+    1854,  1856,  1858,  1863,  1864,  1866,  1871,  1876,  1877,  1883,
+    1882,  1886,  1890,  1892,  1894,  1900,  1901,  1906,  1911,  1913,
+    1918,  1920,  1921,  1923,  1928,  1930,  1932,  1937,  1939,  1944,
+    1949,  1957,  1963,  1962,  1976,  1977,  1982,  1983,  1987,  1992,
+    1997,  2005,  2010,  2021,  2022,  2027,  2028,  2034,  2035,  2039,
+    2040,  2041,  2044,  2043,  2054,  2063,  2069,  2075,  2084,  2090,
+    2096,  2102,  2108,  2116,  2122,  2130,  2136,  2145,  2146,  2147,
+    2151,  2155,  2157,  2162,  2163,  2167,  2168,  2173,  2179,  2180,
+    2183,  2185,  2186,  2190,  2191,  2192,  2193,  2227,  2229,  2230,
+    2232,  2237,  2242,  2247,  2249,  2251,  2256,  2258,  2260,  2262,
+    2267,  2269,  2278,  2280,  2281,  2286,  2288,  2290,  2295,  2297,
+    2299,  2304,  2306,  2308,  2317,  2318,  2319,  2323,  2325,  2327,
+    2332,  2334,  2336,  2341,  2343,  2345,  2360,  2362,  2363,  2365,
+    2370,  2371,  2376,  2378,  2380,  2385,  2387,  2389,  2391,  2396,
+    2398,  2400,  2410,  2412,  2413,  2415,  2420,  2422,  2424,  2429,
+    2431,  2433,  2435,  2440,  2442,  2444,  2475,  2477,  2478,  2480,
+    2485,  2490,  2498,  2500,  2502,  2507,  2509,  2514,  2516,  2530,
+    2531,  2533,  2538,  2540,  2542,  2544,  2546,  2551,  2552,  2554,
+    2556,  2561,  2563,  2565,  2571,  2573,  2575,  2579,  2581,  2583,
+    2585,  2599,  2600,  2602,  2607,  2609,  2611,  2613,  2615,  2620,
+    2621,  2623,  2625,  2630,  2632,  2634,  2640,  2641,  2643,  2652,
+    2655,  2657,  2660,  2662,  2664,  2677,  2678,  2680,  2685,  2687,
+    2689,  2691,  2693,  2698,  2699,  2701,  2703,  2708,  2710,  2718,
+    2719,  2720,  2725,  2726,  2730,  2732,  2734,  2736,  2738,  2740,
+    2747,  2749,  2751,  2753,  2755,  2758,  2760,  2762,  2764,  2766,
+    2771,  2773,  2775,  2780,  2806,  2807,  2809,  2813,  2814,  2818,
+    2820,  2822,  2824,  2826,  2828,  2835,  2837,  2839,  2841,  2843,
+    2845,  2850,  2857,  2859,  2877,  2879,  2884,  2885
 };
 #endif
@@ -4506,5 +4506,5 @@
   case 22:
 #line 364 "parser.yy" /* yacc.c:1646  */
-    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); }
+    { (yyval.en) = new ExpressionNode( build_constantZeroOne( *(yyvsp[0].tok) ) ); }
 #line 4510 "Parser/parser.cc" /* yacc.c:1646  */
     break;
@@ -4660,43 +4660,49 @@
   case 53:
 #line 445 "parser.yy" /* yacc.c:1646  */
-    { (yyval.en) = new ExpressionNode( build_field_name_fraction_constants( build_varref( (yyvsp[-1].tok) ), (yyvsp[0].en) ) ); }
-#line 4664 "Parser/parser.cc" /* yacc.c:1646  */
+    {
+			if( (*(yyvsp[-1].tok)) == "0" || (*(yyvsp[-1].tok)) == "1" ) {
+				(yyval.en) = new ExpressionNode( build_field_name_fraction_constants( build_constantZeroOne( *(yyvsp[-1].tok) ), (yyvsp[0].en) ) );
+			} else {
+				(yyval.en) = new ExpressionNode( build_field_name_fraction_constants( build_varref( (yyvsp[-1].tok) ), (yyvsp[0].en) ) );
+			}
+		}
+#line 4670 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 54:
-#line 450 "parser.yy" /* yacc.c:1646  */
+#line 456 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = nullptr; }
-#line 4670 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4676 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 55:
-#line 452 "parser.yy" /* yacc.c:1646  */
+#line 458 "parser.yy" /* yacc.c:1646  */
     {
 			Expression * constant = build_field_name_REALFRACTIONconstant( *(yyvsp[0].tok) );
 			(yyval.en) = (yyvsp[-1].en) != nullptr ? new ExpressionNode( build_fieldSel( (yyvsp[-1].en),  constant ) ) : new ExpressionNode( constant );
 		}
-#line 4679 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4685 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 57:
-#line 463 "parser.yy" /* yacc.c:1646  */
+#line 469 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = (yyvsp[0].en); }
-#line 4685 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4691 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 58:
-#line 465 "parser.yy" /* yacc.c:1646  */
+#line 471 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = new ExpressionNode( (yyvsp[0].constant) ); }
-#line 4691 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4697 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 59:
-#line 467 "parser.yy" /* yacc.c:1646  */
+#line 473 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = (yyvsp[0].en)->set_extension( true ); }
-#line 4697 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4703 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 60:
-#line 472 "parser.yy" /* yacc.c:1646  */
+#line 478 "parser.yy" /* yacc.c:1646  */
     {
 			switch ( (yyvsp[-1].op) ) {
@@ -4711,357 +4717,357 @@
 			}
 		}
-#line 4714 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4720 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 61:
-#line 485 "parser.yy" /* yacc.c:1646  */
+#line 491 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[-1].op), (yyvsp[0].en) ) ); }
-#line 4720 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4726 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 62:
-#line 487 "parser.yy" /* yacc.c:1646  */
+#line 493 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[0].en) ) ); }
-#line 4726 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4732 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 63:
-#line 489 "parser.yy" /* yacc.c:1646  */
+#line 495 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[0].en) ) ); }
-#line 4732 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4738 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 64:
-#line 491 "parser.yy" /* yacc.c:1646  */
+#line 497 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[0].en) ) ); }
-#line 4738 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4744 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 65:
-#line 493 "parser.yy" /* yacc.c:1646  */
+#line 499 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[-1].decl) ) ); }
-#line 4744 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4750 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 66:
-#line 495 "parser.yy" /* yacc.c:1646  */
+#line 501 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[0].en) ) ); }
-#line 4750 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4756 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 67:
-#line 497 "parser.yy" /* yacc.c:1646  */
+#line 503 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[-1].decl) ) ); }
-#line 4756 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4762 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 68:
-#line 499 "parser.yy" /* yacc.c:1646  */
+#line 505 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[-3].decl), build_varref( (yyvsp[-1].tok) ) ) ); }
-#line 4762 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4768 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 69:
-#line 501 "parser.yy" /* yacc.c:1646  */
+#line 507 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[0].tok) ), nullptr ) ); }
-#line 4768 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4774 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 70:
-#line 503 "parser.yy" /* yacc.c:1646  */
+#line 509 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[-3].tok) ), (yyvsp[-1].en) ) ); }
-#line 4774 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4780 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 71:
-#line 505 "parser.yy" /* yacc.c:1646  */
+#line 511 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[-3].tok) ), (yyvsp[-1].decl) ) ); }
-#line 4780 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4786 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 72:
-#line 511 "parser.yy" /* yacc.c:1646  */
+#line 517 "parser.yy" /* yacc.c:1646  */
     { (yyval.op) = OperKinds::PointTo; }
-#line 4786 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4792 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 73:
-#line 512 "parser.yy" /* yacc.c:1646  */
+#line 518 "parser.yy" /* yacc.c:1646  */
     { (yyval.op) = OperKinds::AddressOf; }
-#line 4792 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4798 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 74:
-#line 518 "parser.yy" /* yacc.c:1646  */
+#line 524 "parser.yy" /* yacc.c:1646  */
     { (yyval.op) = OperKinds::UnPlus; }
-#line 4798 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4804 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 75:
-#line 519 "parser.yy" /* yacc.c:1646  */
+#line 525 "parser.yy" /* yacc.c:1646  */
     { (yyval.op) = OperKinds::UnMinus; }
-#line 4804 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4810 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 76:
-#line 520 "parser.yy" /* yacc.c:1646  */
+#line 526 "parser.yy" /* yacc.c:1646  */
     { (yyval.op) = OperKinds::Neg; }
-#line 4810 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4816 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 77:
-#line 521 "parser.yy" /* yacc.c:1646  */
+#line 527 "parser.yy" /* yacc.c:1646  */
     { (yyval.op) = OperKinds::BitNeg; }
-#line 4816 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4822 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 79:
-#line 527 "parser.yy" /* yacc.c:1646  */
+#line 533 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[-2].decl), (yyvsp[0].en) ) ); }
-#line 4822 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4828 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 81:
-#line 535 "parser.yy" /* yacc.c:1646  */
+#line 541 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
-#line 4828 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4834 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 82:
-#line 537 "parser.yy" /* yacc.c:1646  */
+#line 543 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
-#line 4834 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4840 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 83:
-#line 539 "parser.yy" /* yacc.c:1646  */
+#line 545 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
-#line 4840 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4846 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 85:
-#line 545 "parser.yy" /* yacc.c:1646  */
+#line 551 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
-#line 4846 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4852 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 86:
-#line 547 "parser.yy" /* yacc.c:1646  */
+#line 553 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
-#line 4852 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4858 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 88:
-#line 553 "parser.yy" /* yacc.c:1646  */
+#line 559 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
-#line 4858 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4864 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 89:
-#line 555 "parser.yy" /* yacc.c:1646  */
+#line 561 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
-#line 4864 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4870 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 91:
-#line 561 "parser.yy" /* yacc.c:1646  */
+#line 567 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
-#line 4870 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4876 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 92:
-#line 563 "parser.yy" /* yacc.c:1646  */
+#line 569 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
-#line 4876 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4882 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 93:
-#line 565 "parser.yy" /* yacc.c:1646  */
+#line 571 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
-#line 4882 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4888 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 94:
-#line 567 "parser.yy" /* yacc.c:1646  */
+#line 573 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
-#line 4888 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4894 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 96:
-#line 573 "parser.yy" /* yacc.c:1646  */
+#line 579 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
-#line 4894 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4900 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 97:
-#line 575 "parser.yy" /* yacc.c:1646  */
+#line 581 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
-#line 4900 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4906 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 99:
-#line 581 "parser.yy" /* yacc.c:1646  */
+#line 587 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
-#line 4906 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4912 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 101:
-#line 587 "parser.yy" /* yacc.c:1646  */
+#line 593 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
-#line 4912 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4918 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 103:
-#line 593 "parser.yy" /* yacc.c:1646  */
+#line 599 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[-2].en), (yyvsp[0].en) ) ); }
-#line 4918 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4924 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 105:
-#line 599 "parser.yy" /* yacc.c:1646  */
+#line 605 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[-2].en), (yyvsp[0].en), true ) ); }
-#line 4924 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4930 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 107:
-#line 605 "parser.yy" /* yacc.c:1646  */
+#line 611 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[-2].en), (yyvsp[0].en), false ) ); }
-#line 4930 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4936 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 109:
-#line 611 "parser.yy" /* yacc.c:1646  */
+#line 617 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[-4].en), (yyvsp[-2].en), (yyvsp[0].en) ) ); }
-#line 4936 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4942 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 110:
-#line 614 "parser.yy" /* yacc.c:1646  */
+#line 620 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[-3].en), (yyvsp[-3].en), (yyvsp[0].en) ) ); }
-#line 4942 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4948 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 113:
-#line 627 "parser.yy" /* yacc.c:1646  */
+#line 633 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[-1].op), (yyvsp[-2].en), (yyvsp[0].en) ) ); }
-#line 4948 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4954 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 114:
-#line 634 "parser.yy" /* yacc.c:1646  */
+#line 640 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = nullptr; }
-#line 4954 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4960 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 116:
-#line 639 "parser.yy" /* yacc.c:1646  */
+#line 645 "parser.yy" /* yacc.c:1646  */
     { (yyval.op) = OperKinds::Assign; }
-#line 4960 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4966 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 117:
-#line 640 "parser.yy" /* yacc.c:1646  */
+#line 646 "parser.yy" /* yacc.c:1646  */
     { (yyval.op) = OperKinds::AtAssn; }
-#line 4966 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4972 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 118:
-#line 641 "parser.yy" /* yacc.c:1646  */
+#line 647 "parser.yy" /* yacc.c:1646  */
     { (yyval.op) = OperKinds::MulAssn; }
-#line 4972 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4978 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 119:
-#line 642 "parser.yy" /* yacc.c:1646  */
+#line 648 "parser.yy" /* yacc.c:1646  */
     { (yyval.op) = OperKinds::DivAssn; }
-#line 4978 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4984 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 120:
-#line 643 "parser.yy" /* yacc.c:1646  */
+#line 649 "parser.yy" /* yacc.c:1646  */
     { (yyval.op) = OperKinds::ModAssn; }
-#line 4984 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4990 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 121:
-#line 644 "parser.yy" /* yacc.c:1646  */
+#line 650 "parser.yy" /* yacc.c:1646  */
     { (yyval.op) = OperKinds::PlusAssn; }
-#line 4990 "Parser/parser.cc" /* yacc.c:1646  */
+#line 4996 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 122:
-#line 645 "parser.yy" /* yacc.c:1646  */
+#line 651 "parser.yy" /* yacc.c:1646  */
     { (yyval.op) = OperKinds::MinusAssn; }
-#line 4996 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5002 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 123:
-#line 646 "parser.yy" /* yacc.c:1646  */
+#line 652 "parser.yy" /* yacc.c:1646  */
     { (yyval.op) = OperKinds::LSAssn; }
-#line 5002 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5008 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 124:
-#line 647 "parser.yy" /* yacc.c:1646  */
+#line 653 "parser.yy" /* yacc.c:1646  */
     { (yyval.op) = OperKinds::RSAssn; }
-#line 5008 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5014 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 125:
-#line 648 "parser.yy" /* yacc.c:1646  */
+#line 654 "parser.yy" /* yacc.c:1646  */
     { (yyval.op) = OperKinds::AndAssn; }
-#line 5014 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5020 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 126:
-#line 649 "parser.yy" /* yacc.c:1646  */
+#line 655 "parser.yy" /* yacc.c:1646  */
     { (yyval.op) = OperKinds::ERAssn; }
-#line 5020 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5026 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 127:
-#line 650 "parser.yy" /* yacc.c:1646  */
+#line 656 "parser.yy" /* yacc.c:1646  */
     { (yyval.op) = OperKinds::OrAssn; }
-#line 5026 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5032 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 128:
-#line 661 "parser.yy" /* yacc.c:1646  */
+#line 667 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[-2].en) ) ) ); }
-#line 5032 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5038 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 129:
-#line 663 "parser.yy" /* yacc.c:1646  */
+#line 669 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[-4].en)->set_last( (yyvsp[-2].en) ) ) ); }
-#line 5038 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5044 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 131:
-#line 669 "parser.yy" /* yacc.c:1646  */
+#line 675 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); }
-#line 5044 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5050 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 133:
-#line 675 "parser.yy" /* yacc.c:1646  */
+#line 681 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[-2].en), (yyvsp[0].en) ) ); }
-#line 5050 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5056 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 134:
-#line 680 "parser.yy" /* yacc.c:1646  */
+#line 686 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = 0; }
-#line 5056 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5062 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 138:
-#line 689 "parser.yy" /* yacc.c:1646  */
+#line 695 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = (yyvsp[0].sn); }
-#line 5062 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5068 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 144:
-#line 696 "parser.yy" /* yacc.c:1646  */
+#line 702 "parser.yy" /* yacc.c:1646  */
     {
 			Token fn;
@@ -5069,41 +5075,41 @@
 			(yyval.sn) = new StatementNode( build_expr( new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[-4].en) )->set_last( (yyvsp[-2].en) ) ) ) ) );
 		}
-#line 5072 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5078 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 145:
-#line 706 "parser.yy" /* yacc.c:1646  */
+#line 712 "parser.yy" /* yacc.c:1646  */
     {
 			(yyval.sn) = (yyvsp[0].sn)->add_label( (yyvsp[-3].tok) );
 		}
-#line 5080 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5086 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 146:
-#line 713 "parser.yy" /* yacc.c:1646  */
+#line 719 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) ); }
-#line 5086 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5092 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 147:
-#line 720 "parser.yy" /* yacc.c:1646  */
+#line 726 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = new StatementNode( build_compound( (yyvsp[-2].sn) ) ); }
-#line 5092 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5098 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 149:
-#line 726 "parser.yy" /* yacc.c:1646  */
+#line 732 "parser.yy" /* yacc.c:1646  */
     { if ( (yyvsp[-2].sn) != 0 ) { (yyvsp[-2].sn)->set_last( (yyvsp[0].sn) ); (yyval.sn) = (yyvsp[-2].sn); } }
-#line 5098 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5104 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 150:
-#line 731 "parser.yy" /* yacc.c:1646  */
+#line 737 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = new StatementNode( (yyvsp[0].decl) ); }
-#line 5104 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5110 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 151:
-#line 733 "parser.yy" /* yacc.c:1646  */
+#line 739 "parser.yy" /* yacc.c:1646  */
     {	// mark all fields in list
 			for ( DeclarationNode *iter = (yyvsp[0].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
@@ -5111,45 +5117,45 @@
 			(yyval.sn) = new StatementNode( (yyvsp[0].decl) );
 		}
-#line 5114 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5120 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 152:
-#line 739 "parser.yy" /* yacc.c:1646  */
+#line 745 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = new StatementNode( (yyvsp[0].decl) ); }
-#line 5120 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5126 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 155:
-#line 746 "parser.yy" /* yacc.c:1646  */
+#line 752 "parser.yy" /* yacc.c:1646  */
     { if ( (yyvsp[-1].sn) != 0 ) { (yyvsp[-1].sn)->set_last( (yyvsp[0].sn) ); (yyval.sn) = (yyvsp[-1].sn); } }
-#line 5126 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5132 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 156:
-#line 751 "parser.yy" /* yacc.c:1646  */
+#line 757 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = new StatementNode( build_expr( (yyvsp[-1].en) ) ); }
-#line 5132 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5138 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 157:
-#line 757 "parser.yy" /* yacc.c:1646  */
+#line 763 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = new StatementNode( build_if( (yyvsp[-2].en), (yyvsp[0].sn), nullptr ) ); }
-#line 5138 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5144 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 158:
-#line 759 "parser.yy" /* yacc.c:1646  */
+#line 765 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = new StatementNode( build_if( (yyvsp[-4].en), (yyvsp[-2].sn), (yyvsp[0].sn) ) ); }
-#line 5144 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5150 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 159:
-#line 761 "parser.yy" /* yacc.c:1646  */
+#line 767 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = new StatementNode( build_switch( (yyvsp[-2].en), (yyvsp[0].sn) ) ); }
-#line 5150 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5156 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 160:
-#line 763 "parser.yy" /* yacc.c:1646  */
+#line 769 "parser.yy" /* yacc.c:1646  */
     {
 			StatementNode *sw = new StatementNode( build_switch( (yyvsp[-6].en), (yyvsp[-1].sn) ) );
@@ -5161,1121 +5167,1121 @@
 			(yyval.sn) = (yyvsp[-2].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[-2].decl) ))->set_last( sw )) ) ) : sw;
 		}
-#line 5164 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5170 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 161:
-#line 773 "parser.yy" /* yacc.c:1646  */
+#line 779 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = new StatementNode( build_switch( (yyvsp[-2].en), (yyvsp[0].sn) ) ); }
-#line 5170 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5176 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 162:
-#line 775 "parser.yy" /* yacc.c:1646  */
+#line 781 "parser.yy" /* yacc.c:1646  */
     {
 			StatementNode *sw = new StatementNode( build_switch( (yyvsp[-6].en), (yyvsp[-1].sn) ) );
 			(yyval.sn) = (yyvsp[-2].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[-2].decl) ))->set_last( sw )) ) ) : sw;
 		}
-#line 5179 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5185 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 163:
-#line 785 "parser.yy" /* yacc.c:1646  */
+#line 791 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = (yyvsp[0].en); }
-#line 5185 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5191 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 164:
-#line 787 "parser.yy" /* yacc.c:1646  */
+#line 793 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = new ExpressionNode( build_range( (yyvsp[-2].en), (yyvsp[0].en) ) ); }
-#line 5191 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5197 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 166:
-#line 792 "parser.yy" /* yacc.c:1646  */
+#line 798 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = new StatementNode( build_case( (yyvsp[0].en) ) ); }
-#line 5197 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5203 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 167:
-#line 794 "parser.yy" /* yacc.c:1646  */
+#line 800 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = (StatementNode *)((yyvsp[-2].sn)->set_last( new StatementNode( build_case( (yyvsp[0].en) ) ) ) ); }
-#line 5203 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5209 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 168:
-#line 798 "parser.yy" /* yacc.c:1646  */
+#line 804 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = (yyvsp[-1].sn); }
-#line 5209 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5215 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 169:
-#line 799 "parser.yy" /* yacc.c:1646  */
+#line 805 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = new StatementNode( build_default() ); }
-#line 5215 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5221 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 171:
-#line 805 "parser.yy" /* yacc.c:1646  */
+#line 811 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = (StatementNode *)( (yyvsp[-1].sn)->set_last( (yyvsp[0].sn) )); }
-#line 5221 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5227 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 172:
-#line 809 "parser.yy" /* yacc.c:1646  */
+#line 815 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ); }
-#line 5227 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5233 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 173:
-#line 814 "parser.yy" /* yacc.c:1646  */
+#line 820 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = 0; }
-#line 5233 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5239 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 175:
-#line 820 "parser.yy" /* yacc.c:1646  */
+#line 826 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ); }
-#line 5239 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5245 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 176:
-#line 822 "parser.yy" /* yacc.c:1646  */
+#line 828 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = (StatementNode *)( (yyvsp[-2].sn)->set_last( (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ) ) ); }
-#line 5245 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5251 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 177:
-#line 827 "parser.yy" /* yacc.c:1646  */
+#line 833 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = 0; }
-#line 5251 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5257 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 179:
-#line 833 "parser.yy" /* yacc.c:1646  */
+#line 839 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( (yyvsp[0].sn) ); }
-#line 5257 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5263 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 180:
-#line 835 "parser.yy" /* yacc.c:1646  */
+#line 841 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = (yyvsp[-2].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[-1].sn)->set_last( (yyvsp[0].sn) ) ) ) ); }
-#line 5263 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5269 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 181:
-#line 837 "parser.yy" /* yacc.c:1646  */
+#line 843 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = (StatementNode *)( (yyvsp[-2].sn)->set_last( (yyvsp[-1].sn)->append_last_case( (yyvsp[0].sn) ))); }
-#line 5269 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5275 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 182:
-#line 839 "parser.yy" /* yacc.c:1646  */
+#line 845 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = (StatementNode *)( (yyvsp[-3].sn)->set_last( (yyvsp[-2].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[-1].sn)->set_last( (yyvsp[0].sn) ) ) ) ) ) ); }
-#line 5275 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5281 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 183:
-#line 844 "parser.yy" /* yacc.c:1646  */
+#line 850 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
-#line 5281 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5287 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 185:
-#line 850 "parser.yy" /* yacc.c:1646  */
-    { (yyval.sn) = 0; }
-#line 5287 "Parser/parser.cc" /* yacc.c:1646  */
-    break;
-
-  case 186:
-#line 852 "parser.yy" /* yacc.c:1646  */
+#line 856 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = 0; }
 #line 5293 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
+  case 186:
+#line 858 "parser.yy" /* yacc.c:1646  */
+    { (yyval.sn) = 0; }
+#line 5299 "Parser/parser.cc" /* yacc.c:1646  */
+    break;
+
   case 187:
-#line 857 "parser.yy" /* yacc.c:1646  */
+#line 863 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = new StatementNode( build_while( (yyvsp[-2].en), (yyvsp[0].sn) ) ); }
-#line 5299 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5305 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 188:
-#line 859 "parser.yy" /* yacc.c:1646  */
+#line 865 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = new StatementNode( build_while( (yyvsp[-2].en), (yyvsp[-5].sn), true ) ); }
-#line 5305 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5311 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 189:
-#line 861 "parser.yy" /* yacc.c:1646  */
+#line 867 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = new StatementNode( build_for( (yyvsp[-2].fctl), (yyvsp[0].sn) ) ); }
-#line 5311 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5317 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 190:
-#line 866 "parser.yy" /* yacc.c:1646  */
+#line 872 "parser.yy" /* yacc.c:1646  */
     { (yyval.fctl) = new ForCtl( (yyvsp[-5].en), (yyvsp[-2].en), (yyvsp[0].en) ); }
-#line 5317 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5323 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 191:
-#line 868 "parser.yy" /* yacc.c:1646  */
+#line 874 "parser.yy" /* yacc.c:1646  */
     { (yyval.fctl) = new ForCtl( (yyvsp[-3].decl), (yyvsp[-2].en), (yyvsp[0].en) ); }
-#line 5323 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5329 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 192:
-#line 873 "parser.yy" /* yacc.c:1646  */
+#line 879 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = new StatementNode( build_branch( (yyvsp[-1].tok), BranchStmt::Goto ) ); }
-#line 5329 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5335 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 193:
-#line 877 "parser.yy" /* yacc.c:1646  */
+#line 883 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[-1].en) ) ); }
-#line 5335 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5341 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 194:
-#line 880 "parser.yy" /* yacc.c:1646  */
+#line 886 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Continue ) ); }
-#line 5341 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5347 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 195:
-#line 884 "parser.yy" /* yacc.c:1646  */
+#line 890 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = new StatementNode( build_branch( (yyvsp[-1].tok), BranchStmt::Continue ) ); }
-#line 5347 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5353 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 196:
-#line 887 "parser.yy" /* yacc.c:1646  */
+#line 893 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
-#line 5353 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5359 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 197:
-#line 891 "parser.yy" /* yacc.c:1646  */
+#line 897 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = new StatementNode( build_branch( (yyvsp[-1].tok), BranchStmt::Break ) ); }
-#line 5359 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5365 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 198:
-#line 893 "parser.yy" /* yacc.c:1646  */
+#line 899 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = new StatementNode( build_return( (yyvsp[-1].en) ) ); }
-#line 5365 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5371 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 199:
-#line 895 "parser.yy" /* yacc.c:1646  */
-    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-1].en) ) ); }
-#line 5371 "Parser/parser.cc" /* yacc.c:1646  */
-    break;
-
-  case 200:
-#line 897 "parser.yy" /* yacc.c:1646  */
+#line 901 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-1].en) ) ); }
 #line 5377 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
+  case 200:
+#line 903 "parser.yy" /* yacc.c:1646  */
+    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-1].en) ) ); }
+#line 5383 "Parser/parser.cc" /* yacc.c:1646  */
+    break;
+
   case 201:
-#line 899 "parser.yy" /* yacc.c:1646  */
+#line 905 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-3].en) ) ); }
-#line 5383 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5389 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 202:
-#line 904 "parser.yy" /* yacc.c:1646  */
+#line 910 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = new StatementNode( build_try( (yyvsp[-1].sn), (yyvsp[0].sn), 0 ) ); }
-#line 5389 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5395 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 203:
-#line 906 "parser.yy" /* yacc.c:1646  */
+#line 912 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = new StatementNode( build_try( (yyvsp[-1].sn), 0, (yyvsp[0].sn) ) ); }
-#line 5395 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5401 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 204:
-#line 908 "parser.yy" /* yacc.c:1646  */
+#line 914 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = new StatementNode( build_try( (yyvsp[-2].sn), (yyvsp[-1].sn), (yyvsp[0].sn) ) ); }
-#line 5401 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5407 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 206:
-#line 915 "parser.yy" /* yacc.c:1646  */
+#line 921 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ); }
-#line 5407 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5413 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 207:
-#line 917 "parser.yy" /* yacc.c:1646  */
+#line 923 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = (StatementNode *)(yyvsp[-5].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ) ); }
-#line 5413 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5419 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 208:
-#line 919 "parser.yy" /* yacc.c:1646  */
+#line 925 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ); }
-#line 5419 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5425 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 209:
-#line 921 "parser.yy" /* yacc.c:1646  */
+#line 927 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = (StatementNode *)(yyvsp[-5].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ) ); }
-#line 5425 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5431 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 210:
-#line 926 "parser.yy" /* yacc.c:1646  */
+#line 932 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ); }
-#line 5431 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5437 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 211:
-#line 928 "parser.yy" /* yacc.c:1646  */
+#line 934 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = (StatementNode *)(yyvsp[-9].sn)->set_last( new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ) ); }
-#line 5437 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5443 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 212:
-#line 930 "parser.yy" /* yacc.c:1646  */
+#line 936 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ); }
-#line 5443 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5449 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 213:
-#line 932 "parser.yy" /* yacc.c:1646  */
+#line 938 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = (StatementNode *)(yyvsp[-9].sn)->set_last( new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ) ); }
-#line 5449 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5455 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 214:
-#line 937 "parser.yy" /* yacc.c:1646  */
+#line 943 "parser.yy" /* yacc.c:1646  */
     {
 			(yyval.sn) = new StatementNode( build_finally( (yyvsp[0].sn) ) );
 		}
-#line 5457 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5463 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 216:
-#line 950 "parser.yy" /* yacc.c:1646  */
+#line 956 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
 			(yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) );
 		}
-#line 5466 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5472 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 217:
-#line 955 "parser.yy" /* yacc.c:1646  */
+#line 961 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); }
-#line 5472 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5478 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 218:
-#line 957 "parser.yy" /* yacc.c:1646  */
+#line 963 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
 			(yyval.decl) = (yyvsp[-1].decl)->addName( (yyvsp[0].tok) );
 		}
-#line 5481 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5487 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 220:
-#line 966 "parser.yy" /* yacc.c:1646  */
+#line 972 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-4].flag), (yyvsp[-2].constant), 0 ) ); }
-#line 5487 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5493 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 221:
-#line 968 "parser.yy" /* yacc.c:1646  */
+#line 974 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-6].flag), (yyvsp[-4].constant), (yyvsp[-2].en) ) ); }
-#line 5493 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5499 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 222:
-#line 970 "parser.yy" /* yacc.c:1646  */
+#line 976 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-8].flag), (yyvsp[-6].constant), (yyvsp[-4].en), (yyvsp[-2].en) ) ); }
-#line 5499 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5505 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 223:
-#line 972 "parser.yy" /* yacc.c:1646  */
+#line 978 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-10].flag), (yyvsp[-8].constant), (yyvsp[-6].en), (yyvsp[-4].en), (yyvsp[-2].en) ) ); }
-#line 5505 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5511 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 224:
-#line 974 "parser.yy" /* yacc.c:1646  */
+#line 980 "parser.yy" /* yacc.c:1646  */
     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-12].flag), (yyvsp[-9].constant), 0, (yyvsp[-6].en), (yyvsp[-4].en), (yyvsp[-2].label) ) ); }
-#line 5511 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5517 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 225:
-#line 979 "parser.yy" /* yacc.c:1646  */
+#line 985 "parser.yy" /* yacc.c:1646  */
     { (yyval.flag) = false; }
-#line 5517 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5523 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 226:
-#line 981 "parser.yy" /* yacc.c:1646  */
+#line 987 "parser.yy" /* yacc.c:1646  */
     { (yyval.flag) = true; }
-#line 5523 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5529 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 227:
-#line 986 "parser.yy" /* yacc.c:1646  */
+#line 992 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = 0; }
-#line 5529 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5535 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 230:
-#line 993 "parser.yy" /* yacc.c:1646  */
+#line 999 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); }
-#line 5535 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5541 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 231:
-#line 998 "parser.yy" /* yacc.c:1646  */
+#line 1004 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[-3].constant), (yyvsp[-1].en) ) ); }
-#line 5541 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5547 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 232:
-#line 1000 "parser.yy" /* yacc.c:1646  */
+#line 1006 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[-5].en), (yyvsp[-3].constant), (yyvsp[-1].en) ) ); }
-#line 5547 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5553 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 233:
-#line 1005 "parser.yy" /* yacc.c:1646  */
+#line 1011 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = 0; }
-#line 5553 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5559 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 234:
-#line 1007 "parser.yy" /* yacc.c:1646  */
+#line 1013 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = new ExpressionNode( (yyvsp[0].constant) ); }
-#line 5559 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5565 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 235:
-#line 1009 "parser.yy" /* yacc.c:1646  */
+#line 1015 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( new ExpressionNode( (yyvsp[0].constant) ) ); }
-#line 5565 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5571 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 236:
-#line 1014 "parser.yy" /* yacc.c:1646  */
+#line 1020 "parser.yy" /* yacc.c:1646  */
     {
 			(yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[0].tok) );
 			delete (yyvsp[0].tok);									// allocated by lexer
 		}
-#line 5574 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5580 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 237:
-#line 1019 "parser.yy" /* yacc.c:1646  */
+#line 1025 "parser.yy" /* yacc.c:1646  */
     {
 			(yyval.label) = (yyvsp[-2].label); (yyvsp[-2].label)->labels.push_back( *(yyvsp[0].tok) );
 			delete (yyvsp[0].tok);									// allocated by lexer
 		}
-#line 5583 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5589 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 238:
-#line 1029 "parser.yy" /* yacc.c:1646  */
+#line 1035 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = 0; }
-#line 5589 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5595 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 241:
-#line 1036 "parser.yy" /* yacc.c:1646  */
+#line 1042 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); }
-#line 5595 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5601 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 242:
-#line 1041 "parser.yy" /* yacc.c:1646  */
+#line 1047 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = 0; }
-#line 5601 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5607 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 245:
-#line 1048 "parser.yy" /* yacc.c:1646  */
+#line 1054 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); }
-#line 5607 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5613 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 250:
-#line 1062 "parser.yy" /* yacc.c:1646  */
-    {}
-#line 5613 "Parser/parser.cc" /* yacc.c:1646  */
-    break;
-
-  case 251:
-#line 1063 "parser.yy" /* yacc.c:1646  */
+#line 1068 "parser.yy" /* yacc.c:1646  */
     {}
 #line 5619 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
+  case 251:
+#line 1069 "parser.yy" /* yacc.c:1646  */
+    {}
+#line 5625 "Parser/parser.cc" /* yacc.c:1646  */
+    break;
+
   case 259:
-#line 1092 "parser.yy" /* yacc.c:1646  */
+#line 1098 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
 			(yyval.decl) = (yyvsp[-1].decl)->addInitializer( (yyvsp[0].in) );
 		}
-#line 5628 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5634 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 260:
-#line 1099 "parser.yy" /* yacc.c:1646  */
+#line 1105 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
 			(yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[-2].decl) )->addInitializer( (yyvsp[0].in) );;
 		}
-#line 5637 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5643 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 261:
-#line 1104 "parser.yy" /* yacc.c:1646  */
+#line 1110 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.addToEnclosingScope( *(yyvsp[-1].tok), TypedefTable::ID );
 			(yyval.decl) = (yyvsp[-5].decl)->appendList( (yyvsp[-5].decl)->cloneType( (yyvsp[-1].tok) )->addInitializer( (yyvsp[0].in) ) );
 		}
-#line 5646 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5652 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 262:
-#line 1114 "parser.yy" /* yacc.c:1646  */
+#line 1120 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.setNextIdentifier( *(yyvsp[-1].tok) );
 			(yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) );
 		}
-#line 5655 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5661 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 263:
-#line 1119 "parser.yy" /* yacc.c:1646  */
+#line 1125 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.setNextIdentifier( *(yyvsp[-1].tok) );
 			(yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) );
 		}
-#line 5664 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5670 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 264:
-#line 1124 "parser.yy" /* yacc.c:1646  */
+#line 1130 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.setNextIdentifier( *(yyvsp[-1].tok) );
 			(yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-3].decl) )->addName( (yyvsp[-1].tok) );
 		}
-#line 5673 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5679 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 265:
-#line 1132 "parser.yy" /* yacc.c:1646  */
+#line 1138 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
 			(yyval.decl) = (yyvsp[0].decl);
 		}
-#line 5682 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5688 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 266:
-#line 1137 "parser.yy" /* yacc.c:1646  */
+#line 1143 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
 			(yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) );
 		}
-#line 5691 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5697 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 267:
-#line 1142 "parser.yy" /* yacc.c:1646  */
+#line 1148 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
 			(yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) );
 		}
-#line 5700 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5706 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 268:
-#line 1147 "parser.yy" /* yacc.c:1646  */
+#line 1153 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
 			(yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[-1].decl) );
 		}
-#line 5709 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5715 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 269:
-#line 1152 "parser.yy" /* yacc.c:1646  */
+#line 1158 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::ID );
 			(yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) );
 		}
-#line 5718 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5724 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 270:
-#line 1183 "parser.yy" /* yacc.c:1646  */
+#line 1189 "parser.yy" /* yacc.c:1646  */
     {
 			(yyval.decl) = DeclarationNode::newFunction( (yyvsp[-5].tok), (yyvsp[-6].decl), (yyvsp[-2].decl), 0, true );
 		}
-#line 5726 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5732 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 271:
-#line 1187 "parser.yy" /* yacc.c:1646  */
+#line 1193 "parser.yy" /* yacc.c:1646  */
     {
 			(yyval.decl) = DeclarationNode::newFunction( (yyvsp[-5].tok), (yyvsp[-6].decl), (yyvsp[-2].decl), 0, true );
 		}
-#line 5734 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5740 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 272:
-#line 1194 "parser.yy" /* yacc.c:1646  */
+#line 1200 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-2].decl) ); }
-#line 5740 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5746 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 273:
-#line 1198 "parser.yy" /* yacc.c:1646  */
+#line 1204 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-6].decl)->appendList( (yyvsp[-2].decl) ) ); }
-#line 5746 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5752 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 274:
-#line 1203 "parser.yy" /* yacc.c:1646  */
+#line 1209 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.addToEnclosingScope( TypedefTable::TD );
 			(yyval.decl) = (yyvsp[0].decl)->addTypedef();
 		}
-#line 5755 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5761 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 275:
-#line 1208 "parser.yy" /* yacc.c:1646  */
+#line 1214 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.addToEnclosingScope( TypedefTable::TD );
 			(yyval.decl) = (yyvsp[0].decl)->addTypedef();
 		}
-#line 5764 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5770 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 276:
-#line 1213 "parser.yy" /* yacc.c:1646  */
+#line 1219 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::TD );
 			(yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) );
 		}
-#line 5773 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5779 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 277:
-#line 1224 "parser.yy" /* yacc.c:1646  */
+#line 1230 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.addToEnclosingScope( TypedefTable::TD );
 			(yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) )->addTypedef();
 		}
-#line 5782 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5788 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 278:
-#line 1229 "parser.yy" /* yacc.c:1646  */
+#line 1235 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.addToEnclosingScope( TypedefTable::TD );
 			(yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneBaseType( (yyvsp[0].decl) )->addTypedef() );
 		}
-#line 5791 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5797 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 279:
-#line 1234 "parser.yy" /* yacc.c:1646  */
+#line 1240 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.addToEnclosingScope( TypedefTable::TD );
 			(yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[-3].decl) )->addTypedef();
 		}
-#line 5800 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5806 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 280:
-#line 1239 "parser.yy" /* yacc.c:1646  */
+#line 1245 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.addToEnclosingScope( TypedefTable::TD );
 			(yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-2].decl) )->addTypedef();
 		}
-#line 5809 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5815 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 281:
-#line 1244 "parser.yy" /* yacc.c:1646  */
+#line 1250 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.addToEnclosingScope( TypedefTable::TD );
 			(yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-3].decl) )->addTypedef()->addType( (yyvsp[-3].decl) );
 		}
-#line 5818 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5824 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 282:
-#line 1253 "parser.yy" /* yacc.c:1646  */
+#line 1259 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.addToEnclosingScope( *(yyvsp[-2].tok), TypedefTable::TD );
 			(yyval.decl) = DeclarationNode::newName( 0 ); // XXX
 		}
-#line 5827 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5833 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 283:
-#line 1258 "parser.yy" /* yacc.c:1646  */
+#line 1264 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.addToEnclosingScope( *(yyvsp[-2].tok), TypedefTable::TD );
 			(yyval.decl) = DeclarationNode::newName( 0 ); // XXX
 		}
-#line 5836 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5842 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 288:
-#line 1275 "parser.yy" /* yacc.c:1646  */
+#line 1281 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
 			(yyval.decl) = ( (yyvsp[-2].decl)->addType( (yyvsp[-3].decl) ))->addInitializer( (yyvsp[0].in) );
 		}
-#line 5845 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5851 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 289:
-#line 1280 "parser.yy" /* yacc.c:1646  */
+#line 1286 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
 			(yyval.decl) = (yyvsp[-5].decl)->appendList( (yyvsp[-5].decl)->cloneBaseType( (yyvsp[-2].decl)->addInitializer( (yyvsp[0].in) ) ) );
 		}
-#line 5854 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5860 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 298:
-#line 1302 "parser.yy" /* yacc.c:1646  */
+#line 1308 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = 0; }
-#line 5860 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5866 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 301:
-#line 1314 "parser.yy" /* yacc.c:1646  */
+#line 1320 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
-#line 5866 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5872 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 304:
-#line 1325 "parser.yy" /* yacc.c:1646  */
+#line 1331 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
-#line 5872 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5878 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 305:
-#line 1327 "parser.yy" /* yacc.c:1646  */
+#line 1333 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
-#line 5878 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5884 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 306:
-#line 1329 "parser.yy" /* yacc.c:1646  */
+#line 1335 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
-#line 5884 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5890 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 307:
-#line 1331 "parser.yy" /* yacc.c:1646  */
+#line 1337 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
-#line 5890 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5896 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 308:
-#line 1333 "parser.yy" /* yacc.c:1646  */
+#line 1339 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
-#line 5896 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5902 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 309:
-#line 1335 "parser.yy" /* yacc.c:1646  */
+#line 1341 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.enterScope();
 		}
-#line 5904 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5910 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 310:
-#line 1339 "parser.yy" /* yacc.c:1646  */
+#line 1345 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.leaveScope();
 			(yyval.decl) = DeclarationNode::newForall( (yyvsp[-1].decl) );
 		}
-#line 5913 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5919 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 312:
-#line 1348 "parser.yy" /* yacc.c:1646  */
+#line 1354 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
-#line 5919 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5925 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 313:
-#line 1350 "parser.yy" /* yacc.c:1646  */
+#line 1356 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); }
-#line 5925 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5931 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 315:
-#line 1361 "parser.yy" /* yacc.c:1646  */
+#line 1367 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
-#line 5931 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5937 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 316:
-#line 1366 "parser.yy" /* yacc.c:1646  */
+#line 1372 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
-#line 5937 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5943 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 317:
-#line 1368 "parser.yy" /* yacc.c:1646  */
+#line 1374 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
-#line 5943 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5949 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 318:
-#line 1370 "parser.yy" /* yacc.c:1646  */
+#line 1376 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
-#line 5949 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5955 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 319:
-#line 1372 "parser.yy" /* yacc.c:1646  */
+#line 1378 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
-#line 5955 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5961 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 320:
-#line 1375 "parser.yy" /* yacc.c:1646  */
+#line 1381 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = new DeclarationNode; (yyval.decl)->isInline = true; }
-#line 5961 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5967 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 321:
-#line 1377 "parser.yy" /* yacc.c:1646  */
+#line 1383 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
-#line 5967 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5973 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 322:
-#line 1380 "parser.yy" /* yacc.c:1646  */
+#line 1386 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = new DeclarationNode; (yyval.decl)->isNoreturn = true; }
-#line 5973 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5979 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 323:
-#line 1382 "parser.yy" /* yacc.c:1646  */
+#line 1388 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
-#line 5979 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5985 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 324:
-#line 1387 "parser.yy" /* yacc.c:1646  */
+#line 1393 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
-#line 5985 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5991 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 325:
-#line 1389 "parser.yy" /* yacc.c:1646  */
+#line 1395 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
-#line 5991 "Parser/parser.cc" /* yacc.c:1646  */
+#line 5997 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 326:
-#line 1391 "parser.yy" /* yacc.c:1646  */
+#line 1397 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
-#line 5997 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6003 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 327:
-#line 1393 "parser.yy" /* yacc.c:1646  */
+#line 1399 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
-#line 6003 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6009 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 328:
-#line 1395 "parser.yy" /* yacc.c:1646  */
+#line 1401 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Long ); }
-#line 6009 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6015 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 329:
-#line 1397 "parser.yy" /* yacc.c:1646  */
+#line 1403 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Short ); }
-#line 6015 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6021 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 330:
-#line 1399 "parser.yy" /* yacc.c:1646  */
+#line 1405 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Signed ); }
-#line 6021 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6027 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 331:
-#line 1401 "parser.yy" /* yacc.c:1646  */
+#line 1407 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Unsigned ); }
-#line 6027 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6033 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 332:
-#line 1403 "parser.yy" /* yacc.c:1646  */
+#line 1409 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
-#line 6033 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6039 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 333:
-#line 1405 "parser.yy" /* yacc.c:1646  */
+#line 1411 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
-#line 6039 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6045 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 334:
-#line 1407 "parser.yy" /* yacc.c:1646  */
+#line 1413 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Complex ); }
-#line 6045 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6051 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 335:
-#line 1409 "parser.yy" /* yacc.c:1646  */
+#line 1415 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Imaginary ); }
-#line 6051 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6057 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 336:
-#line 1411 "parser.yy" /* yacc.c:1646  */
+#line 1417 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
-#line 6057 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6063 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 337:
-#line 1413 "parser.yy" /* yacc.c:1646  */
+#line 1419 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Zero ); }
-#line 6063 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6069 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 338:
-#line 1415 "parser.yy" /* yacc.c:1646  */
+#line 1421 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::One ); }
-#line 6069 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6075 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 340:
-#line 1422 "parser.yy" /* yacc.c:1646  */
+#line 1428 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
-#line 6075 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6081 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 341:
-#line 1424 "parser.yy" /* yacc.c:1646  */
+#line 1430 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
-#line 6081 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6087 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 342:
-#line 1426 "parser.yy" /* yacc.c:1646  */
+#line 1432 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); }
-#line 6087 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6093 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 343:
-#line 1428 "parser.yy" /* yacc.c:1646  */
+#line 1434 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) )->addType( (yyvsp[-2].decl) ); }
-#line 6093 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6099 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 345:
-#line 1434 "parser.yy" /* yacc.c:1646  */
+#line 1440 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[0].decl) ); }
-#line 6099 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6105 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 347:
-#line 1441 "parser.yy" /* yacc.c:1646  */
+#line 1447 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
-#line 6105 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6111 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 348:
-#line 1443 "parser.yy" /* yacc.c:1646  */
+#line 1449 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
-#line 6111 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6117 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 349:
-#line 1445 "parser.yy" /* yacc.c:1646  */
+#line 1451 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl)->addType( (yyvsp[0].decl) ); }
-#line 6117 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6123 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 350:
-#line 1450 "parser.yy" /* yacc.c:1646  */
+#line 1456 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl); }
-#line 6123 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6129 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 351:
-#line 1452 "parser.yy" /* yacc.c:1646  */
+#line 1458 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[-1].en) ); }
-#line 6129 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6135 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 352:
-#line 1454 "parser.yy" /* yacc.c:1646  */
+#line 1460 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[-3].tok), (yyvsp[-1].decl) ); }
-#line 6135 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6141 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 353:
-#line 1456 "parser.yy" /* yacc.c:1646  */
+#line 1462 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[-3].tok), (yyvsp[-1].en) ); }
-#line 6141 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6147 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 355:
-#line 1462 "parser.yy" /* yacc.c:1646  */
+#line 1468 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
-#line 6147 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6153 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 356:
-#line 1464 "parser.yy" /* yacc.c:1646  */
+#line 1470 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
-#line 6153 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6159 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 357:
-#line 1466 "parser.yy" /* yacc.c:1646  */
+#line 1472 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); }
-#line 6159 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6165 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 359:
-#line 1472 "parser.yy" /* yacc.c:1646  */
+#line 1478 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
-#line 6165 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6171 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 360:
-#line 1474 "parser.yy" /* yacc.c:1646  */
+#line 1480 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
-#line 6171 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6177 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 362:
-#line 1480 "parser.yy" /* yacc.c:1646  */
+#line 1486 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
-#line 6177 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6183 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 363:
-#line 1482 "parser.yy" /* yacc.c:1646  */
+#line 1488 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
-#line 6183 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6189 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 364:
-#line 1484 "parser.yy" /* yacc.c:1646  */
+#line 1490 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); }
-#line 6189 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6195 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 365:
-#line 1489 "parser.yy" /* yacc.c:1646  */
+#line 1495 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[0].tok) ); }
-#line 6195 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6201 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 366:
-#line 1491 "parser.yy" /* yacc.c:1646  */
+#line 1497 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[0].tok) )->addQualifiers( (yyvsp[-1].decl) ); }
-#line 6201 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6207 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 367:
-#line 1493 "parser.yy" /* yacc.c:1646  */
+#line 1499 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
-#line 6207 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6213 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 370:
-#line 1503 "parser.yy" /* yacc.c:1646  */
+#line 1509 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-3].aggKey), nullptr, nullptr, (yyvsp[-1].decl), true ); }
-#line 6213 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6219 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 371:
-#line 1505 "parser.yy" /* yacc.c:1646  */
+#line 1511 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.makeTypedef( *(yyvsp[0].tok) );
 			(yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-1].aggKey), (yyvsp[0].tok), nullptr, nullptr, false );
 		}
-#line 6222 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6228 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 372:
-#line 1510 "parser.yy" /* yacc.c:1646  */
+#line 1516 "parser.yy" /* yacc.c:1646  */
     { typedefTable.makeTypedef( *(yyvsp[0].tok) ); }
-#line 6228 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6234 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 373:
-#line 1512 "parser.yy" /* yacc.c:1646  */
+#line 1518 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-5].aggKey), (yyvsp[-4].tok), nullptr, (yyvsp[-1].decl), true ); }
-#line 6234 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6240 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 374:
-#line 1514 "parser.yy" /* yacc.c:1646  */
+#line 1520 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-6].aggKey), nullptr, (yyvsp[-4].en), (yyvsp[-1].decl), false ); }
-#line 6240 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6246 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 375:
-#line 1516 "parser.yy" /* yacc.c:1646  */
+#line 1522 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl); }
-#line 6246 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6252 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 376:
-#line 1521 "parser.yy" /* yacc.c:1646  */
+#line 1527 "parser.yy" /* yacc.c:1646  */
     { (yyval.aggKey) = DeclarationNode::Struct; }
-#line 6252 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6258 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 377:
-#line 1523 "parser.yy" /* yacc.c:1646  */
+#line 1529 "parser.yy" /* yacc.c:1646  */
     { (yyval.aggKey) = DeclarationNode::Union; }
-#line 6258 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6264 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 378:
-#line 1528 "parser.yy" /* yacc.c:1646  */
+#line 1534 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = 0; }
-#line 6264 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6270 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 379:
-#line 1530 "parser.yy" /* yacc.c:1646  */
+#line 1536 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl) != 0 ? (yyvsp[-1].decl)->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); }
-#line 6270 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6276 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 381:
-#line 1536 "parser.yy" /* yacc.c:1646  */
+#line 1542 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl)->set_extension( true ); }
-#line 6276 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6282 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 383:
-#line 1539 "parser.yy" /* yacc.c:1646  */
+#line 1545 "parser.yy" /* yacc.c:1646  */
     {	// mark all fields in list
 			for ( DeclarationNode *iter = (yyvsp[-1].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
@@ -6283,561 +6289,561 @@
 			(yyval.decl) = (yyvsp[-1].decl);
 		}
-#line 6286 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6292 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 385:
-#line 1549 "parser.yy" /* yacc.c:1646  */
+#line 1555 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl)->addName( (yyvsp[0].tok) ); }
-#line 6292 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6298 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 386:
-#line 1551 "parser.yy" /* yacc.c:1646  */
+#line 1557 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[-2].decl)->cloneType( (yyvsp[0].tok) ) ); }
-#line 6298 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6304 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 387:
-#line 1553 "parser.yy" /* yacc.c:1646  */
+#line 1559 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl)->appendList( (yyvsp[-1].decl)->cloneType( 0 ) ); }
-#line 6304 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6310 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 388:
-#line 1558 "parser.yy" /* yacc.c:1646  */
+#line 1564 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); }
-#line 6310 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6316 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 389:
-#line 1560 "parser.yy" /* yacc.c:1646  */
+#line 1566 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-3].decl)->appendList( (yyvsp[-3].decl)->cloneBaseType( (yyvsp[0].decl) ) ); }
-#line 6316 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6322 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 390:
-#line 1565 "parser.yy" /* yacc.c:1646  */
+#line 1571 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
-#line 6322 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6328 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 391:
-#line 1567 "parser.yy" /* yacc.c:1646  */
+#line 1573 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[0].en) ); }
-#line 6328 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6334 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 392:
-#line 1570 "parser.yy" /* yacc.c:1646  */
-    { (yyval.decl) = (yyvsp[-1].decl)->addBitfield( (yyvsp[0].en) ); }
-#line 6334 "Parser/parser.cc" /* yacc.c:1646  */
-    break;
-
-  case 393:
-#line 1573 "parser.yy" /* yacc.c:1646  */
+#line 1576 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl)->addBitfield( (yyvsp[0].en) ); }
 #line 6340 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
+  case 393:
+#line 1579 "parser.yy" /* yacc.c:1646  */
+    { (yyval.decl) = (yyvsp[-1].decl)->addBitfield( (yyvsp[0].en) ); }
+#line 6346 "Parser/parser.cc" /* yacc.c:1646  */
+    break;
+
   case 395:
-#line 1579 "parser.yy" /* yacc.c:1646  */
+#line 1585 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = 0; }
-#line 6346 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6352 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 396:
-#line 1581 "parser.yy" /* yacc.c:1646  */
-    { (yyval.en) = (yyvsp[0].en); }
-#line 6352 "Parser/parser.cc" /* yacc.c:1646  */
-    break;
-
-  case 397:
-#line 1586 "parser.yy" /* yacc.c:1646  */
+#line 1587 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = (yyvsp[0].en); }
 #line 6358 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
+  case 397:
+#line 1592 "parser.yy" /* yacc.c:1646  */
+    { (yyval.en) = (yyvsp[0].en); }
+#line 6364 "Parser/parser.cc" /* yacc.c:1646  */
+    break;
+
   case 399:
-#line 1595 "parser.yy" /* yacc.c:1646  */
+#line 1601 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newEnum( nullptr, (yyvsp[-2].decl) ); }
-#line 6364 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6370 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 400:
-#line 1597 "parser.yy" /* yacc.c:1646  */
+#line 1603 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.makeTypedef( *(yyvsp[0].tok) );
 			(yyval.decl) = DeclarationNode::newEnum( (yyvsp[0].tok), 0 );
 		}
-#line 6373 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6379 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 401:
-#line 1602 "parser.yy" /* yacc.c:1646  */
+#line 1608 "parser.yy" /* yacc.c:1646  */
     { typedefTable.makeTypedef( *(yyvsp[0].tok) ); }
-#line 6379 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6385 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 402:
-#line 1604 "parser.yy" /* yacc.c:1646  */
+#line 1610 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[-5].tok), (yyvsp[-2].decl) ); }
-#line 6385 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6391 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 403:
-#line 1609 "parser.yy" /* yacc.c:1646  */
+#line 1615 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[-1].tok), (yyvsp[0].en) ); }
-#line 6391 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6397 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 404:
-#line 1611 "parser.yy" /* yacc.c:1646  */
+#line 1617 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-3].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[-1].tok), (yyvsp[0].en) ) ); }
-#line 6397 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6403 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 405:
-#line 1616 "parser.yy" /* yacc.c:1646  */
+#line 1622 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = 0; }
-#line 6403 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6409 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 406:
-#line 1618 "parser.yy" /* yacc.c:1646  */
+#line 1624 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = (yyvsp[0].en); }
-#line 6409 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6415 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 407:
-#line 1625 "parser.yy" /* yacc.c:1646  */
+#line 1631 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = 0; }
-#line 6415 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6421 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 411:
-#line 1633 "parser.yy" /* yacc.c:1646  */
+#line 1639 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); }
-#line 6421 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6427 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 412:
-#line 1635 "parser.yy" /* yacc.c:1646  */
-    { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); }
-#line 6427 "Parser/parser.cc" /* yacc.c:1646  */
-    break;
-
-  case 413:
-#line 1637 "parser.yy" /* yacc.c:1646  */
+#line 1641 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); }
 #line 6433 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
+  case 413:
+#line 1643 "parser.yy" /* yacc.c:1646  */
+    { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); }
+#line 6439 "Parser/parser.cc" /* yacc.c:1646  */
+    break;
+
   case 415:
-#line 1645 "parser.yy" /* yacc.c:1646  */
-    { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); }
-#line 6439 "Parser/parser.cc" /* yacc.c:1646  */
-    break;
-
-  case 416:
-#line 1647 "parser.yy" /* yacc.c:1646  */
+#line 1651 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); }
 #line 6445 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
+  case 416:
+#line 1653 "parser.yy" /* yacc.c:1646  */
+    { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); }
+#line 6451 "Parser/parser.cc" /* yacc.c:1646  */
+    break;
+
   case 417:
-#line 1649 "parser.yy" /* yacc.c:1646  */
+#line 1655 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-8].decl)->appendList( (yyvsp[-4].decl) )->appendList( (yyvsp[0].decl) ); }
-#line 6451 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6457 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 419:
-#line 1655 "parser.yy" /* yacc.c:1646  */
+#line 1661 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); }
-#line 6457 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6463 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 420:
-#line 1660 "parser.yy" /* yacc.c:1646  */
+#line 1666 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = 0; }
-#line 6463 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6469 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 423:
-#line 1667 "parser.yy" /* yacc.c:1646  */
+#line 1673 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); }
-#line 6469 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6475 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 426:
-#line 1674 "parser.yy" /* yacc.c:1646  */
-    { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); }
-#line 6475 "Parser/parser.cc" /* yacc.c:1646  */
-    break;
-
-  case 427:
-#line 1676 "parser.yy" /* yacc.c:1646  */
+#line 1680 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); }
 #line 6481 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
+  case 427:
+#line 1682 "parser.yy" /* yacc.c:1646  */
+    { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); }
+#line 6487 "Parser/parser.cc" /* yacc.c:1646  */
+    break;
+
   case 429:
-#line 1685 "parser.yy" /* yacc.c:1646  */
-    { (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) ); }
-#line 6487 "Parser/parser.cc" /* yacc.c:1646  */
-    break;
-
-  case 430:
-#line 1688 "parser.yy" /* yacc.c:1646  */
+#line 1691 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) ); }
 #line 6493 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
+  case 430:
+#line 1694 "parser.yy" /* yacc.c:1646  */
+    { (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) ); }
+#line 6499 "Parser/parser.cc" /* yacc.c:1646  */
+    break;
+
   case 431:
-#line 1690 "parser.yy" /* yacc.c:1646  */
+#line 1696 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) )->addQualifiers( (yyvsp[-3].decl) ); }
-#line 6499 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6505 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 436:
-#line 1700 "parser.yy" /* yacc.c:1646  */
+#line 1706 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
-#line 6505 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6511 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 438:
-#line 1706 "parser.yy" /* yacc.c:1646  */
+#line 1712 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
 			(yyval.decl) = (yyvsp[-1].decl)->addType( (yyvsp[-2].decl) )->addInitializer( new InitializerNode( (yyvsp[0].en) ) );
 		}
-#line 6514 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6520 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 439:
-#line 1711 "parser.yy" /* yacc.c:1646  */
+#line 1717 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
 			(yyval.decl) = (yyvsp[-1].decl)->addType( (yyvsp[-2].decl) )->addInitializer( new InitializerNode( (yyvsp[0].en) ) );
 		}
-#line 6523 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6529 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 441:
-#line 1720 "parser.yy" /* yacc.c:1646  */
+#line 1726 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); }
-#line 6529 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6535 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 442:
-#line 1729 "parser.yy" /* yacc.c:1646  */
+#line 1735 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) ); }
-#line 6535 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6541 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 443:
-#line 1731 "parser.yy" /* yacc.c:1646  */
+#line 1737 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-2].decl)->appendList( DeclarationNode::newName( (yyvsp[0].tok) ) ); }
-#line 6541 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6547 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 455:
-#line 1756 "parser.yy" /* yacc.c:1646  */
-    { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); }
-#line 6547 "Parser/parser.cc" /* yacc.c:1646  */
-    break;
-
-  case 459:
-#line 1764 "parser.yy" /* yacc.c:1646  */
+#line 1762 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); }
 #line 6553 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
+  case 459:
+#line 1770 "parser.yy" /* yacc.c:1646  */
+    { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); }
+#line 6559 "Parser/parser.cc" /* yacc.c:1646  */
+    break;
+
   case 460:
-#line 1769 "parser.yy" /* yacc.c:1646  */
+#line 1775 "parser.yy" /* yacc.c:1646  */
     { (yyval.in) = 0; }
-#line 6559 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6565 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 461:
-#line 1771 "parser.yy" /* yacc.c:1646  */
+#line 1777 "parser.yy" /* yacc.c:1646  */
     { (yyval.in) = (yyvsp[0].in); }
-#line 6565 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6571 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 462:
-#line 1773 "parser.yy" /* yacc.c:1646  */
+#line 1779 "parser.yy" /* yacc.c:1646  */
     { (yyval.in) = (yyvsp[0].in)->set_maybeConstructed( false ); }
-#line 6571 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6577 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 463:
-#line 1777 "parser.yy" /* yacc.c:1646  */
+#line 1783 "parser.yy" /* yacc.c:1646  */
     { (yyval.in) = new InitializerNode( (yyvsp[0].en) ); }
-#line 6577 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6583 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 464:
-#line 1778 "parser.yy" /* yacc.c:1646  */
+#line 1784 "parser.yy" /* yacc.c:1646  */
     { (yyval.in) = new InitializerNode( (yyvsp[-2].in), true ); }
-#line 6583 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6589 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 465:
-#line 1783 "parser.yy" /* yacc.c:1646  */
+#line 1789 "parser.yy" /* yacc.c:1646  */
     { (yyval.in) = 0; }
-#line 6589 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6595 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 467:
-#line 1785 "parser.yy" /* yacc.c:1646  */
+#line 1791 "parser.yy" /* yacc.c:1646  */
     { (yyval.in) = (yyvsp[0].in)->set_designators( (yyvsp[-1].en) ); }
-#line 6595 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6601 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 468:
-#line 1786 "parser.yy" /* yacc.c:1646  */
+#line 1792 "parser.yy" /* yacc.c:1646  */
     { (yyval.in) = (InitializerNode *)( (yyvsp[-2].in)->set_last( (yyvsp[0].in) ) ); }
-#line 6601 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6607 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 469:
-#line 1788 "parser.yy" /* yacc.c:1646  */
+#line 1794 "parser.yy" /* yacc.c:1646  */
     { (yyval.in) = (InitializerNode *)( (yyvsp[-3].in)->set_last( (yyvsp[0].in)->set_designators( (yyvsp[-1].en) ) ) ); }
-#line 6607 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6613 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 471:
-#line 1804 "parser.yy" /* yacc.c:1646  */
+#line 1810 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[-1].tok) ) ); }
-#line 6613 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6619 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 473:
-#line 1810 "parser.yy" /* yacc.c:1646  */
+#line 1816 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = (ExpressionNode *)( (yyvsp[-1].en)->set_last( (yyvsp[0].en) ) ); }
-#line 6619 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6625 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 474:
-#line 1816 "parser.yy" /* yacc.c:1646  */
+#line 1822 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); }
-#line 6625 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6631 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 475:
-#line 1819 "parser.yy" /* yacc.c:1646  */
-    { (yyval.en) = (yyvsp[-2].en); }
-#line 6631 "Parser/parser.cc" /* yacc.c:1646  */
-    break;
-
-  case 476:
-#line 1821 "parser.yy" /* yacc.c:1646  */
+#line 1825 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = (yyvsp[-2].en); }
 #line 6637 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
+  case 476:
+#line 1827 "parser.yy" /* yacc.c:1646  */
+    { (yyval.en) = (yyvsp[-2].en); }
+#line 6643 "Parser/parser.cc" /* yacc.c:1646  */
+    break;
+
   case 477:
-#line 1823 "parser.yy" /* yacc.c:1646  */
+#line 1829 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = new ExpressionNode( build_range( (yyvsp[-4].en), (yyvsp[-2].en) ) ); }
-#line 6643 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6649 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 478:
-#line 1825 "parser.yy" /* yacc.c:1646  */
+#line 1831 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = (yyvsp[-2].en); }
-#line 6649 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6655 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 480:
-#line 1849 "parser.yy" /* yacc.c:1646  */
+#line 1855 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
-#line 6655 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6661 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 481:
-#line 1851 "parser.yy" /* yacc.c:1646  */
+#line 1857 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
-#line 6661 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6667 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 482:
-#line 1853 "parser.yy" /* yacc.c:1646  */
+#line 1859 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); }
-#line 6667 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6673 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 484:
-#line 1859 "parser.yy" /* yacc.c:1646  */
+#line 1865 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
-#line 6673 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6679 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 485:
-#line 1861 "parser.yy" /* yacc.c:1646  */
+#line 1867 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
-#line 6679 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6685 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 486:
-#line 1866 "parser.yy" /* yacc.c:1646  */
+#line 1872 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[-3].tok), (yyvsp[-1].en) ); }
-#line 6685 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6691 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 488:
-#line 1872 "parser.yy" /* yacc.c:1646  */
+#line 1878 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-3].decl)->appendList( (yyvsp[-1].decl) ); }
-#line 6691 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6697 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 489:
-#line 1877 "parser.yy" /* yacc.c:1646  */
+#line 1883 "parser.yy" /* yacc.c:1646  */
     { typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::TD ); }
-#line 6697 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6703 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 490:
-#line 1879 "parser.yy" /* yacc.c:1646  */
+#line 1885 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[-3].tclass), (yyvsp[-2].tok) )->addAssertions( (yyvsp[0].decl) ); }
-#line 6703 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6709 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 492:
-#line 1885 "parser.yy" /* yacc.c:1646  */
+#line 1891 "parser.yy" /* yacc.c:1646  */
     { (yyval.tclass) = DeclarationNode::Otype; }
-#line 6709 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6715 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 493:
-#line 1887 "parser.yy" /* yacc.c:1646  */
+#line 1893 "parser.yy" /* yacc.c:1646  */
     { (yyval.tclass) = DeclarationNode::Ftype; }
-#line 6715 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6721 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 494:
-#line 1889 "parser.yy" /* yacc.c:1646  */
+#line 1895 "parser.yy" /* yacc.c:1646  */
     { (yyval.tclass) = DeclarationNode::Dtype; }
-#line 6721 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6727 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 495:
-#line 1894 "parser.yy" /* yacc.c:1646  */
+#line 1900 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = 0; }
-#line 6727 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6733 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 496:
-#line 1896 "parser.yy" /* yacc.c:1646  */
+#line 1902 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl) != 0 ? (yyvsp[-1].decl)->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); }
-#line 6733 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6739 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 497:
-#line 1901 "parser.yy" /* yacc.c:1646  */
+#line 1907 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.openTrait( *(yyvsp[-3].tok) );
 			(yyval.decl) = DeclarationNode::newTraitUse( (yyvsp[-3].tok), (yyvsp[-1].en) );
 		}
-#line 6742 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6748 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 498:
-#line 1906 "parser.yy" /* yacc.c:1646  */
+#line 1912 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl); }
-#line 6748 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6754 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 499:
-#line 1908 "parser.yy" /* yacc.c:1646  */
+#line 1914 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = 0; }
-#line 6754 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6760 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 500:
-#line 1913 "parser.yy" /* yacc.c:1646  */
+#line 1919 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[0].decl) ) ); }
-#line 6760 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6766 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 502:
-#line 1916 "parser.yy" /* yacc.c:1646  */
+#line 1922 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = (ExpressionNode *)( (yyvsp[-2].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[0].decl) ) ) ) ); }
-#line 6766 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6772 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 503:
-#line 1918 "parser.yy" /* yacc.c:1646  */
+#line 1924 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = (ExpressionNode *)( (yyvsp[-2].en)->set_last( (yyvsp[0].en) )); }
-#line 6772 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6778 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 504:
-#line 1923 "parser.yy" /* yacc.c:1646  */
+#line 1929 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl); }
-#line 6778 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6784 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 505:
-#line 1925 "parser.yy" /* yacc.c:1646  */
+#line 1931 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-2].decl) ); }
-#line 6784 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6790 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 506:
-#line 1927 "parser.yy" /* yacc.c:1646  */
+#line 1933 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl)->copyStorageClasses( (yyvsp[-2].decl) ) ); }
-#line 6790 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6796 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 507:
-#line 1932 "parser.yy" /* yacc.c:1646  */
+#line 1938 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl)->addAssertions( (yyvsp[0].decl) ); }
-#line 6796 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6802 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 508:
-#line 1934 "parser.yy" /* yacc.c:1646  */
+#line 1940 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-3].decl)->addAssertions( (yyvsp[-2].decl) )->addType( (yyvsp[0].decl) ); }
-#line 6802 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6808 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 509:
-#line 1939 "parser.yy" /* yacc.c:1646  */
+#line 1945 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::TD );
 			(yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[0].tok), 0 );
 		}
-#line 6811 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6817 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 510:
-#line 1944 "parser.yy" /* yacc.c:1646  */
+#line 1950 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.addToEnclosingScope( *(yyvsp[-5].tok), TypedefTable::TG );
 			(yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[-5].tok), (yyvsp[-2].decl) );
 		}
-#line 6820 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6826 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 511:
-#line 1952 "parser.yy" /* yacc.c:1646  */
+#line 1958 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.addToEnclosingScope( *(yyvsp[-7].tok), TypedefTable::ID );
 			(yyval.decl) = DeclarationNode::newTrait( (yyvsp[-7].tok), (yyvsp[-4].decl), 0 );
 		}
-#line 6829 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6835 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 512:
-#line 1957 "parser.yy" /* yacc.c:1646  */
+#line 1963 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.enterTrait( *(yyvsp[-6].tok) );
 			typedefTable.enterScope();
 		}
-#line 6838 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6844 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 513:
-#line 1962 "parser.yy" /* yacc.c:1646  */
+#line 1968 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.leaveTrait();
@@ -6845,99 +6851,99 @@
 			(yyval.decl) = DeclarationNode::newTrait( (yyvsp[-9].tok), (yyvsp[-6].decl), (yyvsp[-1].decl) );
 		}
-#line 6848 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6854 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 515:
-#line 1972 "parser.yy" /* yacc.c:1646  */
+#line 1978 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); }
-#line 6854 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6860 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 518:
-#line 1982 "parser.yy" /* yacc.c:1646  */
+#line 1988 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.addToEnclosingScope2( TypedefTable::ID );
 			(yyval.decl) = (yyvsp[0].decl);
 		}
-#line 6863 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6869 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 519:
-#line 1987 "parser.yy" /* yacc.c:1646  */
+#line 1993 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.addToEnclosingScope2( TypedefTable::ID );
 			(yyval.decl) = (yyvsp[0].decl);
 		}
-#line 6872 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6878 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 520:
-#line 1992 "parser.yy" /* yacc.c:1646  */
+#line 1998 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.addToEnclosingScope2( *(yyvsp[0].tok), TypedefTable::ID );
 			(yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) );
 		}
-#line 6881 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6887 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 521:
-#line 2000 "parser.yy" /* yacc.c:1646  */
+#line 2006 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.addToEnclosingScope2( TypedefTable::ID );
 			(yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) );
 		}
-#line 6890 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6896 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 522:
-#line 2005 "parser.yy" /* yacc.c:1646  */
+#line 2011 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.addToEnclosingScope2( TypedefTable::ID );
 			(yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneBaseType( (yyvsp[0].decl) ) );
 		}
-#line 6899 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6905 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 523:
-#line 2015 "parser.yy" /* yacc.c:1646  */
+#line 2021 "parser.yy" /* yacc.c:1646  */
     {}
-#line 6905 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6911 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 524:
-#line 2017 "parser.yy" /* yacc.c:1646  */
+#line 2023 "parser.yy" /* yacc.c:1646  */
     { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl);	}
-#line 6911 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6917 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 526:
-#line 2023 "parser.yy" /* yacc.c:1646  */
+#line 2029 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-2].decl) != nullptr ? (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); }
-#line 6917 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6923 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 527:
-#line 2028 "parser.yy" /* yacc.c:1646  */
+#line 2034 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = 0; }
-#line 6923 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6929 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 531:
-#line 2036 "parser.yy" /* yacc.c:1646  */
+#line 2042 "parser.yy" /* yacc.c:1646  */
     {}
-#line 6929 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6935 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 532:
-#line 2038 "parser.yy" /* yacc.c:1646  */
+#line 2044 "parser.yy" /* yacc.c:1646  */
     {
 			linkageStack.push( linkage );				// handle nested extern "C"/"Cforall"
 			linkage = LinkageSpec::linkageCheck( (yyvsp[0].tok) );
 		}
-#line 6938 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6944 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 533:
-#line 2043 "parser.yy" /* yacc.c:1646  */
+#line 2049 "parser.yy" /* yacc.c:1646  */
     {
 			linkage = linkageStack.top();
@@ -6945,9 +6951,9 @@
 			(yyval.decl) = (yyvsp[-1].decl);
 		}
-#line 6948 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6954 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 534:
-#line 2049 "parser.yy" /* yacc.c:1646  */
+#line 2055 "parser.yy" /* yacc.c:1646  */
     {	// mark all fields in list
 			for ( DeclarationNode *iter = (yyvsp[0].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
@@ -6955,9 +6961,9 @@
 			(yyval.decl) = (yyvsp[0].decl);
 		}
-#line 6958 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6964 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 536:
-#line 2064 "parser.yy" /* yacc.c:1646  */
+#line 2070 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -6965,9 +6971,9 @@
 			(yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) );
 		}
-#line 6968 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6974 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 537:
-#line 2070 "parser.yy" /* yacc.c:1646  */
+#line 2076 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -6975,9 +6981,9 @@
 			(yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) );
 		}
-#line 6978 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6984 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 538:
-#line 2079 "parser.yy" /* yacc.c:1646  */
+#line 2085 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -6985,9 +6991,9 @@
 			(yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) );
 		}
-#line 6988 "Parser/parser.cc" /* yacc.c:1646  */
+#line 6994 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 539:
-#line 2085 "parser.yy" /* yacc.c:1646  */
+#line 2091 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -6995,9 +7001,9 @@
 			(yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addType( (yyvsp[-2].decl) );
 		}
-#line 6998 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7004 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 540:
-#line 2091 "parser.yy" /* yacc.c:1646  */
+#line 2097 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -7005,9 +7011,9 @@
 			(yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) );
 		}
-#line 7008 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7014 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 541:
-#line 2097 "parser.yy" /* yacc.c:1646  */
+#line 2103 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -7015,9 +7021,9 @@
 			(yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) );
 		}
-#line 7018 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7024 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 542:
-#line 2103 "parser.yy" /* yacc.c:1646  */
+#line 2109 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -7025,9 +7031,9 @@
 			(yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[-3].decl) );
 		}
-#line 7028 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7034 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 543:
-#line 2111 "parser.yy" /* yacc.c:1646  */
+#line 2117 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -7035,9 +7041,9 @@
 			(yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addType( (yyvsp[-4].decl) );
 		}
-#line 7038 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7044 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 544:
-#line 2117 "parser.yy" /* yacc.c:1646  */
+#line 2123 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -7045,9 +7051,9 @@
 			(yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) );
 		}
-#line 7048 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7054 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 545:
-#line 2125 "parser.yy" /* yacc.c:1646  */
+#line 2131 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -7055,9 +7061,9 @@
 			(yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) );
 		}
-#line 7058 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7064 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 546:
-#line 2131 "parser.yy" /* yacc.c:1646  */
+#line 2137 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -7065,1056 +7071,1056 @@
 			(yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) )->addQualifiers( (yyvsp[-5].decl) );
 		}
-#line 7068 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7074 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 550:
-#line 2146 "parser.yy" /* yacc.c:1646  */
+#line 2152 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = new ExpressionNode( build_range( (yyvsp[-2].en), (yyvsp[0].en) ) ); }
-#line 7074 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7080 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 552:
-#line 2151 "parser.yy" /* yacc.c:1646  */
+#line 2157 "parser.yy" /* yacc.c:1646  */
     { delete (yyvsp[-2].str); }
-#line 7080 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7086 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 553:
-#line 2156 "parser.yy" /* yacc.c:1646  */
+#line 2162 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = 0; }
-#line 7086 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7092 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 556:
-#line 2163 "parser.yy" /* yacc.c:1646  */
+#line 2169 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
-#line 7092 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7098 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 557:
-#line 2169 "parser.yy" /* yacc.c:1646  */
+#line 2175 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = 0; }
-#line 7098 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7104 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 562:
-#line 2180 "parser.yy" /* yacc.c:1646  */
+#line 2186 "parser.yy" /* yacc.c:1646  */
     { delete (yyvsp[-1].en); }
-#line 7104 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7110 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 563:
-#line 2184 "parser.yy" /* yacc.c:1646  */
+#line 2190 "parser.yy" /* yacc.c:1646  */
     { delete (yyvsp[0].tok); }
-#line 7110 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7116 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 564:
-#line 2185 "parser.yy" /* yacc.c:1646  */
-    { delete (yyvsp[0].decl); }
-#line 7116 "Parser/parser.cc" /* yacc.c:1646  */
-    break;
-
-  case 565:
-#line 2186 "parser.yy" /* yacc.c:1646  */
+#line 2191 "parser.yy" /* yacc.c:1646  */
     { delete (yyvsp[0].decl); }
 #line 7122 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
-  case 566:
-#line 2187 "parser.yy" /* yacc.c:1646  */
+  case 565:
+#line 2192 "parser.yy" /* yacc.c:1646  */
     { delete (yyvsp[0].decl); }
 #line 7128 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
+  case 566:
+#line 2193 "parser.yy" /* yacc.c:1646  */
+    { delete (yyvsp[0].decl); }
+#line 7134 "Parser/parser.cc" /* yacc.c:1646  */
+    break;
+
   case 567:
-#line 2222 "parser.yy" /* yacc.c:1646  */
-    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
-#line 7134 "Parser/parser.cc" /* yacc.c:1646  */
-    break;
-
-  case 569:
-#line 2225 "parser.yy" /* yacc.c:1646  */
+#line 2228 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
 #line 7140 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
-  case 570:
-#line 2227 "parser.yy" /* yacc.c:1646  */
+  case 569:
+#line 2231 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
 #line 7146 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
+  case 570:
+#line 2233 "parser.yy" /* yacc.c:1646  */
+    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
+#line 7152 "Parser/parser.cc" /* yacc.c:1646  */
+    break;
+
   case 571:
-#line 2232 "parser.yy" /* yacc.c:1646  */
+#line 2238 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.setNextIdentifier( *(yyvsp[0].tok) );
 			(yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) );
 		}
-#line 7155 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7161 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 572:
-#line 2237 "parser.yy" /* yacc.c:1646  */
+#line 2243 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl); }
-#line 7161 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7167 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 573:
-#line 2242 "parser.yy" /* yacc.c:1646  */
+#line 2248 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
-#line 7167 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7173 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 574:
-#line 2244 "parser.yy" /* yacc.c:1646  */
+#line 2250 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
-#line 7173 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7179 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 575:
-#line 2246 "parser.yy" /* yacc.c:1646  */
+#line 2252 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl); }
-#line 7179 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7185 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 576:
-#line 2251 "parser.yy" /* yacc.c:1646  */
+#line 2257 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); }
-#line 7185 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7191 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 577:
-#line 2253 "parser.yy" /* yacc.c:1646  */
-    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
-#line 7191 "Parser/parser.cc" /* yacc.c:1646  */
-    break;
-
-  case 578:
-#line 2255 "parser.yy" /* yacc.c:1646  */
+#line 2259 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
 #line 7197 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
+  case 578:
+#line 2261 "parser.yy" /* yacc.c:1646  */
+    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
+#line 7203 "Parser/parser.cc" /* yacc.c:1646  */
+    break;
+
   case 579:
-#line 2257 "parser.yy" /* yacc.c:1646  */
+#line 2263 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl); }
-#line 7203 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7209 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 580:
-#line 2262 "parser.yy" /* yacc.c:1646  */
+#line 2268 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
-#line 7209 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7215 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 581:
-#line 2264 "parser.yy" /* yacc.c:1646  */
+#line 2270 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl); }
-#line 7215 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7221 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 582:
-#line 2273 "parser.yy" /* yacc.c:1646  */
-    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
-#line 7221 "Parser/parser.cc" /* yacc.c:1646  */
-    break;
-
-  case 584:
-#line 2276 "parser.yy" /* yacc.c:1646  */
+#line 2279 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
 #line 7227 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
+  case 584:
+#line 2282 "parser.yy" /* yacc.c:1646  */
+    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
+#line 7233 "Parser/parser.cc" /* yacc.c:1646  */
+    break;
+
   case 585:
-#line 2281 "parser.yy" /* yacc.c:1646  */
+#line 2287 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); }
-#line 7233 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7239 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 586:
-#line 2283 "parser.yy" /* yacc.c:1646  */
+#line 2289 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
-#line 7239 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7245 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 587:
-#line 2285 "parser.yy" /* yacc.c:1646  */
+#line 2291 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl); }
-#line 7245 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7251 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 588:
-#line 2290 "parser.yy" /* yacc.c:1646  */
+#line 2296 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
-#line 7251 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7257 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 589:
-#line 2292 "parser.yy" /* yacc.c:1646  */
+#line 2298 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
-#line 7257 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7263 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 590:
-#line 2294 "parser.yy" /* yacc.c:1646  */
+#line 2300 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl); }
-#line 7263 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7269 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 591:
-#line 2299 "parser.yy" /* yacc.c:1646  */
-    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
-#line 7269 "Parser/parser.cc" /* yacc.c:1646  */
-    break;
-
-  case 592:
-#line 2301 "parser.yy" /* yacc.c:1646  */
+#line 2305 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
 #line 7275 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
+  case 592:
+#line 2307 "parser.yy" /* yacc.c:1646  */
+    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
+#line 7281 "Parser/parser.cc" /* yacc.c:1646  */
+    break;
+
   case 593:
-#line 2303 "parser.yy" /* yacc.c:1646  */
+#line 2309 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl); }
-#line 7281 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7287 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 597:
-#line 2318 "parser.yy" /* yacc.c:1646  */
+#line 2324 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-3].decl)->addIdList( (yyvsp[-1].decl) ); }
-#line 7287 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7293 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 598:
-#line 2320 "parser.yy" /* yacc.c:1646  */
+#line 2326 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-4].decl)->addIdList( (yyvsp[-1].decl) ); }
-#line 7293 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7299 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 599:
-#line 2322 "parser.yy" /* yacc.c:1646  */
+#line 2328 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl); }
-#line 7299 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7305 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 600:
-#line 2327 "parser.yy" /* yacc.c:1646  */
+#line 2333 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
-#line 7305 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7311 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 601:
-#line 2329 "parser.yy" /* yacc.c:1646  */
+#line 2335 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
-#line 7311 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7317 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 602:
-#line 2331 "parser.yy" /* yacc.c:1646  */
+#line 2337 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl); }
-#line 7317 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7323 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 603:
-#line 2336 "parser.yy" /* yacc.c:1646  */
-    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
-#line 7323 "Parser/parser.cc" /* yacc.c:1646  */
-    break;
-
-  case 604:
-#line 2338 "parser.yy" /* yacc.c:1646  */
+#line 2342 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
 #line 7329 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
+  case 604:
+#line 2344 "parser.yy" /* yacc.c:1646  */
+    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
+#line 7335 "Parser/parser.cc" /* yacc.c:1646  */
+    break;
+
   case 605:
-#line 2340 "parser.yy" /* yacc.c:1646  */
+#line 2346 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl); }
-#line 7335 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7341 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 606:
-#line 2355 "parser.yy" /* yacc.c:1646  */
-    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
-#line 7341 "Parser/parser.cc" /* yacc.c:1646  */
-    break;
-
-  case 608:
-#line 2358 "parser.yy" /* yacc.c:1646  */
+#line 2361 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
 #line 7347 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
-  case 609:
-#line 2360 "parser.yy" /* yacc.c:1646  */
+  case 608:
+#line 2364 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
 #line 7353 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
+  case 609:
+#line 2366 "parser.yy" /* yacc.c:1646  */
+    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
+#line 7359 "Parser/parser.cc" /* yacc.c:1646  */
+    break;
+
   case 611:
-#line 2366 "parser.yy" /* yacc.c:1646  */
+#line 2372 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl); }
-#line 7359 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7365 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 612:
-#line 2371 "parser.yy" /* yacc.c:1646  */
+#line 2377 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
-#line 7365 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7371 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 613:
-#line 2373 "parser.yy" /* yacc.c:1646  */
+#line 2379 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
-#line 7371 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7377 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 614:
-#line 2375 "parser.yy" /* yacc.c:1646  */
+#line 2381 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl); }
-#line 7377 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7383 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 615:
-#line 2380 "parser.yy" /* yacc.c:1646  */
+#line 2386 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); }
-#line 7383 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7389 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 616:
-#line 2382 "parser.yy" /* yacc.c:1646  */
-    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
-#line 7389 "Parser/parser.cc" /* yacc.c:1646  */
-    break;
-
-  case 617:
-#line 2384 "parser.yy" /* yacc.c:1646  */
+#line 2388 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
 #line 7395 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
+  case 617:
+#line 2390 "parser.yy" /* yacc.c:1646  */
+    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
+#line 7401 "Parser/parser.cc" /* yacc.c:1646  */
+    break;
+
   case 618:
-#line 2386 "parser.yy" /* yacc.c:1646  */
+#line 2392 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl); }
-#line 7401 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7407 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 619:
-#line 2391 "parser.yy" /* yacc.c:1646  */
+#line 2397 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); }
-#line 7407 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7413 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 620:
-#line 2393 "parser.yy" /* yacc.c:1646  */
+#line 2399 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
-#line 7413 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7419 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 621:
-#line 2395 "parser.yy" /* yacc.c:1646  */
+#line 2401 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl); }
-#line 7419 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7425 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 622:
-#line 2405 "parser.yy" /* yacc.c:1646  */
-    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
-#line 7425 "Parser/parser.cc" /* yacc.c:1646  */
-    break;
-
-  case 624:
-#line 2408 "parser.yy" /* yacc.c:1646  */
+#line 2411 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
 #line 7431 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
-  case 625:
-#line 2410 "parser.yy" /* yacc.c:1646  */
+  case 624:
+#line 2414 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
 #line 7437 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
+  case 625:
+#line 2416 "parser.yy" /* yacc.c:1646  */
+    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
+#line 7443 "Parser/parser.cc" /* yacc.c:1646  */
+    break;
+
   case 626:
-#line 2415 "parser.yy" /* yacc.c:1646  */
+#line 2421 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
-#line 7443 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7449 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 627:
-#line 2417 "parser.yy" /* yacc.c:1646  */
+#line 2423 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
-#line 7449 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7455 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 628:
-#line 2419 "parser.yy" /* yacc.c:1646  */
+#line 2425 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl); }
-#line 7455 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7461 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 629:
-#line 2424 "parser.yy" /* yacc.c:1646  */
+#line 2430 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); }
-#line 7461 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7467 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 630:
-#line 2426 "parser.yy" /* yacc.c:1646  */
-    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
-#line 7467 "Parser/parser.cc" /* yacc.c:1646  */
-    break;
-
-  case 631:
-#line 2428 "parser.yy" /* yacc.c:1646  */
+#line 2432 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
 #line 7473 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
+  case 631:
+#line 2434 "parser.yy" /* yacc.c:1646  */
+    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
+#line 7479 "Parser/parser.cc" /* yacc.c:1646  */
+    break;
+
   case 632:
-#line 2430 "parser.yy" /* yacc.c:1646  */
+#line 2436 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl); }
-#line 7479 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7485 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 633:
-#line 2435 "parser.yy" /* yacc.c:1646  */
+#line 2441 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); }
-#line 7485 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7491 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 634:
-#line 2437 "parser.yy" /* yacc.c:1646  */
+#line 2443 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
-#line 7491 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7497 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 635:
-#line 2439 "parser.yy" /* yacc.c:1646  */
+#line 2445 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl); }
-#line 7497 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7503 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 636:
-#line 2470 "parser.yy" /* yacc.c:1646  */
-    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
-#line 7503 "Parser/parser.cc" /* yacc.c:1646  */
-    break;
-
-  case 638:
-#line 2473 "parser.yy" /* yacc.c:1646  */
+#line 2476 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
 #line 7509 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
-  case 639:
-#line 2475 "parser.yy" /* yacc.c:1646  */
+  case 638:
+#line 2479 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
 #line 7515 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
+  case 639:
+#line 2481 "parser.yy" /* yacc.c:1646  */
+    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
+#line 7521 "Parser/parser.cc" /* yacc.c:1646  */
+    break;
+
   case 640:
-#line 2480 "parser.yy" /* yacc.c:1646  */
+#line 2486 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.setNextIdentifier( *(yyvsp[0].tok) );
 			(yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) );
 		}
-#line 7524 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7530 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 641:
-#line 2485 "parser.yy" /* yacc.c:1646  */
+#line 2491 "parser.yy" /* yacc.c:1646  */
     {
 			typedefTable.setNextIdentifier( *(yyvsp[0].tok) );
 			(yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) );
 		}
-#line 7533 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7539 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 642:
-#line 2493 "parser.yy" /* yacc.c:1646  */
+#line 2499 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
-#line 7539 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7545 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 643:
-#line 2495 "parser.yy" /* yacc.c:1646  */
+#line 2501 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
-#line 7545 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7551 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 644:
-#line 2497 "parser.yy" /* yacc.c:1646  */
+#line 2503 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl); }
-#line 7551 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7557 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 645:
-#line 2502 "parser.yy" /* yacc.c:1646  */
+#line 2508 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); }
-#line 7557 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7563 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 646:
-#line 2504 "parser.yy" /* yacc.c:1646  */
+#line 2510 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
-#line 7563 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7569 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 647:
-#line 2509 "parser.yy" /* yacc.c:1646  */
+#line 2515 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); }
-#line 7569 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7575 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 648:
-#line 2511 "parser.yy" /* yacc.c:1646  */
+#line 2517 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
-#line 7575 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7581 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 650:
-#line 2526 "parser.yy" /* yacc.c:1646  */
-    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
-#line 7581 "Parser/parser.cc" /* yacc.c:1646  */
-    break;
-
-  case 651:
-#line 2528 "parser.yy" /* yacc.c:1646  */
+#line 2532 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
 #line 7587 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
+  case 651:
+#line 2534 "parser.yy" /* yacc.c:1646  */
+    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
+#line 7593 "Parser/parser.cc" /* yacc.c:1646  */
+    break;
+
   case 652:
-#line 2533 "parser.yy" /* yacc.c:1646  */
+#line 2539 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
-#line 7593 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7599 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 653:
-#line 2535 "parser.yy" /* yacc.c:1646  */
+#line 2541 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[0].decl) ); }
-#line 7599 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7605 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 654:
-#line 2537 "parser.yy" /* yacc.c:1646  */
+#line 2543 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
-#line 7605 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7611 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 655:
-#line 2539 "parser.yy" /* yacc.c:1646  */
+#line 2545 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
-#line 7611 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7617 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 656:
-#line 2541 "parser.yy" /* yacc.c:1646  */
+#line 2547 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl); }
-#line 7617 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7623 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 658:
-#line 2547 "parser.yy" /* yacc.c:1646  */
-    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
-#line 7623 "Parser/parser.cc" /* yacc.c:1646  */
-    break;
-
-  case 659:
-#line 2549 "parser.yy" /* yacc.c:1646  */
+#line 2553 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
 #line 7629 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
+  case 659:
+#line 2555 "parser.yy" /* yacc.c:1646  */
+    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
+#line 7635 "Parser/parser.cc" /* yacc.c:1646  */
+    break;
+
   case 660:
-#line 2551 "parser.yy" /* yacc.c:1646  */
+#line 2557 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl); }
-#line 7635 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7641 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 661:
-#line 2556 "parser.yy" /* yacc.c:1646  */
+#line 2562 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[-2].decl), nullptr ); }
-#line 7641 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7647 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 662:
-#line 2558 "parser.yy" /* yacc.c:1646  */
+#line 2564 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
-#line 7647 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7653 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 663:
-#line 2560 "parser.yy" /* yacc.c:1646  */
+#line 2566 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl); }
-#line 7653 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7659 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 664:
-#line 2566 "parser.yy" /* yacc.c:1646  */
+#line 2572 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
-#line 7659 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7665 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 665:
-#line 2568 "parser.yy" /* yacc.c:1646  */
+#line 2574 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[0].decl) ); }
-#line 7665 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7671 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 667:
-#line 2574 "parser.yy" /* yacc.c:1646  */
+#line 2580 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), 0, false ); }
-#line 7671 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7677 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 668:
-#line 2576 "parser.yy" /* yacc.c:1646  */
+#line 2582 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
-#line 7677 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7683 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 669:
-#line 2578 "parser.yy" /* yacc.c:1646  */
+#line 2584 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-5].decl)->addArray( DeclarationNode::newArray( (yyvsp[-2].en), 0, false ) ); }
-#line 7683 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7689 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 670:
-#line 2580 "parser.yy" /* yacc.c:1646  */
+#line 2586 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-5].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
-#line 7689 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7695 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 672:
-#line 2595 "parser.yy" /* yacc.c:1646  */
-    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
-#line 7695 "Parser/parser.cc" /* yacc.c:1646  */
-    break;
-
-  case 673:
-#line 2597 "parser.yy" /* yacc.c:1646  */
+#line 2601 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
 #line 7701 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
+  case 673:
+#line 2603 "parser.yy" /* yacc.c:1646  */
+    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
+#line 7707 "Parser/parser.cc" /* yacc.c:1646  */
+    break;
+
   case 674:
-#line 2602 "parser.yy" /* yacc.c:1646  */
+#line 2608 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
-#line 7707 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7713 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 675:
-#line 2604 "parser.yy" /* yacc.c:1646  */
+#line 2610 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[0].decl) ); }
-#line 7713 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7719 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 676:
-#line 2606 "parser.yy" /* yacc.c:1646  */
+#line 2612 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
-#line 7719 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7725 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 677:
-#line 2608 "parser.yy" /* yacc.c:1646  */
+#line 2614 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
-#line 7725 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7731 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 678:
-#line 2610 "parser.yy" /* yacc.c:1646  */
+#line 2616 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl); }
-#line 7731 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7737 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 680:
-#line 2616 "parser.yy" /* yacc.c:1646  */
-    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
-#line 7737 "Parser/parser.cc" /* yacc.c:1646  */
-    break;
-
-  case 681:
-#line 2618 "parser.yy" /* yacc.c:1646  */
+#line 2622 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
 #line 7743 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
+  case 681:
+#line 2624 "parser.yy" /* yacc.c:1646  */
+    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
+#line 7749 "Parser/parser.cc" /* yacc.c:1646  */
+    break;
+
   case 682:
-#line 2620 "parser.yy" /* yacc.c:1646  */
+#line 2626 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl); }
-#line 7749 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7755 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 683:
-#line 2625 "parser.yy" /* yacc.c:1646  */
+#line 2631 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[-2].decl), nullptr ); }
-#line 7755 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7761 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 684:
-#line 2627 "parser.yy" /* yacc.c:1646  */
+#line 2633 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
-#line 7761 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7767 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 685:
-#line 2629 "parser.yy" /* yacc.c:1646  */
+#line 2635 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl); }
-#line 7767 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7773 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 687:
-#line 2636 "parser.yy" /* yacc.c:1646  */
+#line 2642 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); }
-#line 7773 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7779 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 689:
-#line 2647 "parser.yy" /* yacc.c:1646  */
+#line 2653 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
-#line 7779 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7785 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 690:
-#line 2650 "parser.yy" /* yacc.c:1646  */
+#line 2656 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[-3].decl) ); }
-#line 7785 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7791 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 691:
-#line 2652 "parser.yy" /* yacc.c:1646  */
+#line 2658 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[-2].decl), false ); }
-#line 7791 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7797 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 692:
-#line 2655 "parser.yy" /* yacc.c:1646  */
+#line 2661 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), false ); }
-#line 7797 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7803 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 693:
-#line 2657 "parser.yy" /* yacc.c:1646  */
+#line 2663 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), true ); }
-#line 7803 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7809 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 694:
-#line 2659 "parser.yy" /* yacc.c:1646  */
+#line 2665 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-4].decl), true ); }
-#line 7809 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7815 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 696:
-#line 2673 "parser.yy" /* yacc.c:1646  */
-    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
-#line 7815 "Parser/parser.cc" /* yacc.c:1646  */
-    break;
-
-  case 697:
-#line 2675 "parser.yy" /* yacc.c:1646  */
+#line 2679 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
 #line 7821 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
+  case 697:
+#line 2681 "parser.yy" /* yacc.c:1646  */
+    { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); }
+#line 7827 "Parser/parser.cc" /* yacc.c:1646  */
+    break;
+
   case 698:
-#line 2680 "parser.yy" /* yacc.c:1646  */
+#line 2686 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
-#line 7827 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7833 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 699:
-#line 2682 "parser.yy" /* yacc.c:1646  */
+#line 2688 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[0].decl) ); }
-#line 7833 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7839 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 700:
-#line 2684 "parser.yy" /* yacc.c:1646  */
+#line 2690 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
-#line 7839 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7845 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 701:
-#line 2686 "parser.yy" /* yacc.c:1646  */
+#line 2692 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); }
-#line 7845 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7851 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 702:
-#line 2688 "parser.yy" /* yacc.c:1646  */
+#line 2694 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl); }
-#line 7851 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7857 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 704:
-#line 2694 "parser.yy" /* yacc.c:1646  */
-    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
-#line 7857 "Parser/parser.cc" /* yacc.c:1646  */
-    break;
-
-  case 705:
-#line 2696 "parser.yy" /* yacc.c:1646  */
+#line 2700 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
 #line 7863 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
+  case 705:
+#line 2702 "parser.yy" /* yacc.c:1646  */
+    { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); }
+#line 7869 "Parser/parser.cc" /* yacc.c:1646  */
+    break;
+
   case 706:
-#line 2698 "parser.yy" /* yacc.c:1646  */
+#line 2704 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl); }
-#line 7869 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7875 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 707:
-#line 2703 "parser.yy" /* yacc.c:1646  */
+#line 2709 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); }
-#line 7875 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7881 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 708:
-#line 2705 "parser.yy" /* yacc.c:1646  */
+#line 2711 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[-1].decl); }
-#line 7881 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7887 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 711:
-#line 2715 "parser.yy" /* yacc.c:1646  */
+#line 2721 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
-#line 7887 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7893 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 714:
-#line 2725 "parser.yy" /* yacc.c:1646  */
+#line 2731 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
-#line 7893 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7899 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 715:
-#line 2727 "parser.yy" /* yacc.c:1646  */
+#line 2733 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); }
-#line 7899 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7905 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 716:
-#line 2729 "parser.yy" /* yacc.c:1646  */
+#line 2735 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
-#line 7905 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7911 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 717:
-#line 2731 "parser.yy" /* yacc.c:1646  */
+#line 2737 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); }
-#line 7911 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7917 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 718:
-#line 2733 "parser.yy" /* yacc.c:1646  */
+#line 2739 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
-#line 7917 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7923 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 719:
-#line 2735 "parser.yy" /* yacc.c:1646  */
+#line 2741 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); }
-#line 7923 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7929 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 720:
-#line 2742 "parser.yy" /* yacc.c:1646  */
+#line 2748 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
-#line 7929 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7935 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 721:
-#line 2744 "parser.yy" /* yacc.c:1646  */
-    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
-#line 7935 "Parser/parser.cc" /* yacc.c:1646  */
-    break;
-
-  case 722:
-#line 2746 "parser.yy" /* yacc.c:1646  */
-    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
-#line 7941 "Parser/parser.cc" /* yacc.c:1646  */
-    break;
-
-  case 723:
-#line 2748 "parser.yy" /* yacc.c:1646  */
-    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( (yyvsp[-2].decl) ); }
-#line 7947 "Parser/parser.cc" /* yacc.c:1646  */
-    break;
-
-  case 724:
 #line 2750 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
+#line 7941 "Parser/parser.cc" /* yacc.c:1646  */
+    break;
+
+  case 722:
+#line 2752 "parser.yy" /* yacc.c:1646  */
+    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
+#line 7947 "Parser/parser.cc" /* yacc.c:1646  */
+    break;
+
+  case 723:
+#line 2754 "parser.yy" /* yacc.c:1646  */
+    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( (yyvsp[-2].decl) ); }
 #line 7953 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
+  case 724:
+#line 2756 "parser.yy" /* yacc.c:1646  */
+    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
+#line 7959 "Parser/parser.cc" /* yacc.c:1646  */
+    break;
+
   case 725:
-#line 2753 "parser.yy" /* yacc.c:1646  */
+#line 2759 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
-#line 7959 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7965 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 726:
-#line 2755 "parser.yy" /* yacc.c:1646  */
-    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
-#line 7965 "Parser/parser.cc" /* yacc.c:1646  */
-    break;
-
-  case 727:
-#line 2757 "parser.yy" /* yacc.c:1646  */
-    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
-#line 7971 "Parser/parser.cc" /* yacc.c:1646  */
-    break;
-
-  case 728:
-#line 2759 "parser.yy" /* yacc.c:1646  */
-    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( (yyvsp[-2].decl) ); }
-#line 7977 "Parser/parser.cc" /* yacc.c:1646  */
-    break;
-
-  case 729:
 #line 2761 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
+#line 7971 "Parser/parser.cc" /* yacc.c:1646  */
+    break;
+
+  case 727:
+#line 2763 "parser.yy" /* yacc.c:1646  */
+    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
+#line 7977 "Parser/parser.cc" /* yacc.c:1646  */
+    break;
+
+  case 728:
+#line 2765 "parser.yy" /* yacc.c:1646  */
+    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( (yyvsp[-2].decl) ); }
 #line 7983 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
+  case 729:
+#line 2767 "parser.yy" /* yacc.c:1646  */
+    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
+#line 7989 "Parser/parser.cc" /* yacc.c:1646  */
+    break;
+
   case 730:
-#line 2766 "parser.yy" /* yacc.c:1646  */
+#line 2772 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[-3].decl) ); }
-#line 7989 "Parser/parser.cc" /* yacc.c:1646  */
+#line 7995 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 731:
-#line 2768 "parser.yy" /* yacc.c:1646  */
+#line 2774 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), false ); }
-#line 7995 "Parser/parser.cc" /* yacc.c:1646  */
+#line 8001 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 732:
-#line 2773 "parser.yy" /* yacc.c:1646  */
+#line 2779 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), true ); }
-#line 8001 "Parser/parser.cc" /* yacc.c:1646  */
+#line 8007 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 733:
-#line 2775 "parser.yy" /* yacc.c:1646  */
+#line 2781 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl)->addQualifiers( (yyvsp[-4].decl) ), true ); }
-#line 8007 "Parser/parser.cc" /* yacc.c:1646  */
+#line 8013 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 735:
-#line 2802 "parser.yy" /* yacc.c:1646  */
+#line 2808 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); }
-#line 8013 "Parser/parser.cc" /* yacc.c:1646  */
+#line 8019 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 739:
-#line 2813 "parser.yy" /* yacc.c:1646  */
+#line 2819 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
-#line 8019 "Parser/parser.cc" /* yacc.c:1646  */
+#line 8025 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 740:
-#line 2815 "parser.yy" /* yacc.c:1646  */
+#line 2821 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); }
-#line 8025 "Parser/parser.cc" /* yacc.c:1646  */
+#line 8031 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 741:
-#line 2817 "parser.yy" /* yacc.c:1646  */
+#line 2823 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
-#line 8031 "Parser/parser.cc" /* yacc.c:1646  */
+#line 8037 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 742:
-#line 2819 "parser.yy" /* yacc.c:1646  */
+#line 2825 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); }
-#line 8037 "Parser/parser.cc" /* yacc.c:1646  */
+#line 8043 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 743:
-#line 2821 "parser.yy" /* yacc.c:1646  */
+#line 2827 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
-#line 8043 "Parser/parser.cc" /* yacc.c:1646  */
+#line 8049 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 744:
-#line 2823 "parser.yy" /* yacc.c:1646  */
+#line 2829 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); }
-#line 8049 "Parser/parser.cc" /* yacc.c:1646  */
+#line 8055 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 745:
-#line 2830 "parser.yy" /* yacc.c:1646  */
-    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
-#line 8055 "Parser/parser.cc" /* yacc.c:1646  */
-    break;
-
-  case 746:
-#line 2832 "parser.yy" /* yacc.c:1646  */
-    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
-#line 8061 "Parser/parser.cc" /* yacc.c:1646  */
-    break;
-
-  case 747:
-#line 2834 "parser.yy" /* yacc.c:1646  */
-    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
-#line 8067 "Parser/parser.cc" /* yacc.c:1646  */
-    break;
-
-  case 748:
 #line 2836 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
-#line 8073 "Parser/parser.cc" /* yacc.c:1646  */
-    break;
-
-  case 749:
+#line 8061 "Parser/parser.cc" /* yacc.c:1646  */
+    break;
+
+  case 746:
 #line 2838 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
-#line 8079 "Parser/parser.cc" /* yacc.c:1646  */
-    break;
-
-  case 750:
+#line 8067 "Parser/parser.cc" /* yacc.c:1646  */
+    break;
+
+  case 747:
 #line 2840 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
+#line 8073 "Parser/parser.cc" /* yacc.c:1646  */
+    break;
+
+  case 748:
+#line 2842 "parser.yy" /* yacc.c:1646  */
+    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
+#line 8079 "Parser/parser.cc" /* yacc.c:1646  */
+    break;
+
+  case 749:
+#line 2844 "parser.yy" /* yacc.c:1646  */
+    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
 #line 8085 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
+  case 750:
+#line 2846 "parser.yy" /* yacc.c:1646  */
+    { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }
+#line 8091 "Parser/parser.cc" /* yacc.c:1646  */
+    break;
+
   case 751:
-#line 2845 "parser.yy" /* yacc.c:1646  */
+#line 2851 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-2].decl) ); }
-#line 8091 "Parser/parser.cc" /* yacc.c:1646  */
+#line 8097 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 752:
-#line 2852 "parser.yy" /* yacc.c:1646  */
-    { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[-5].decl), (yyvsp[-2].decl), nullptr ); }
-#line 8097 "Parser/parser.cc" /* yacc.c:1646  */
-    break;
-
-  case 753:
-#line 2854 "parser.yy" /* yacc.c:1646  */
+#line 2858 "parser.yy" /* yacc.c:1646  */
     { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[-5].decl), (yyvsp[-2].decl), nullptr ); }
 #line 8103 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
+  case 753:
+#line 2860 "parser.yy" /* yacc.c:1646  */
+    { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[-5].decl), (yyvsp[-2].decl), nullptr ); }
+#line 8109 "Parser/parser.cc" /* yacc.c:1646  */
+    break;
+
   case 756:
-#line 2878 "parser.yy" /* yacc.c:1646  */
+#line 2884 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = 0; }
-#line 8109 "Parser/parser.cc" /* yacc.c:1646  */
+#line 8115 "Parser/parser.cc" /* yacc.c:1646  */
     break;
 
   case 757:
-#line 2880 "parser.yy" /* yacc.c:1646  */
+#line 2886 "parser.yy" /* yacc.c:1646  */
     { (yyval.en) = (yyvsp[0].en); }
-#line 8115 "Parser/parser.cc" /* yacc.c:1646  */
-    break;
-
-
-#line 8119 "Parser/parser.cc" /* yacc.c:1646  */
+#line 8121 "Parser/parser.cc" /* yacc.c:1646  */
+    break;
+
+
+#line 8125 "Parser/parser.cc" /* yacc.c:1646  */
       default: break;
     }
@@ -8344,5 +8350,5 @@
   return yyresult;
 }
-#line 2883 "parser.yy" /* yacc.c:1906  */
+#line 2889 "parser.yy" /* yacc.c:1906  */
 
 // ----end of grammar----
Index: src/Parser/parser.yy
===================================================================
--- src/Parser/parser.yy	(revision 148f7290b223b10641c960429cd37cc278a5903c)
+++ src/Parser/parser.yy	(revision 4cb935efa354074c5683f9c0730f6ae143c682ce)
@@ -362,5 +362,5 @@
 		{ $$ = new ExpressionNode( build_varref( $1 ) ); }
 	| zero_one
-		{ $$ = new ExpressionNode( build_varref( $1 ) ); }
+		{ $$ = new ExpressionNode( build_constantZeroOne( *$1 ) ); }
 	| tuple
 	| '(' comma_expression ')'
@@ -443,5 +443,11 @@
 		{ $$ = new ExpressionNode( build_field_name_fraction_constants( build_field_name_FLOATINGconstant( *$1 ), $2 ) ); }
 	| no_attr_identifier fraction_constants
-		{ $$ = new ExpressionNode( build_field_name_fraction_constants( build_varref( $1 ), $2 ) ); }
+		{
+			if( (*$1) == "0" || (*$1) == "1" ) {
+				$$ = new ExpressionNode( build_field_name_fraction_constants( build_constantZeroOne( *$1 ), $2 ) );
+			} else {
+				$$ = new ExpressionNode( build_field_name_fraction_constants( build_varref( $1 ), $2 ) );
+			}
+		}
 	;
 
Index: src/Parser/parseutility.cc
===================================================================
--- src/Parser/parseutility.cc	(revision 148f7290b223b10641c960429cd37cc278a5903c)
+++ src/Parser/parseutility.cc	(revision 4cb935efa354074c5683f9c0730f6ae143c682ce)
@@ -5,5 +5,5 @@
 // file "LICENCE" distributed with Cforall.
 //
-// parseutility.cc -- 
+// parseutility.cc --
 //
 // Author           : Rodolfo G. Esteves
@@ -12,5 +12,5 @@
 // Last Modified On : Sun Aug 14 23:45:03 2016
 // Update Count     : 3
-// 
+//
 
 #include "parseutility.h"
@@ -26,5 +26,5 @@
 	UntypedExpr *comparison = new UntypedExpr( new NameExpr( "?!=?" ) );
 	comparison->get_args().push_back( orig );
-	comparison->get_args().push_back( new NameExpr( "0" ) );
+	comparison->get_args().push_back( new ConstantExpr( Constant( new ZeroType( emptyQualifiers ), "0" ) ) );
 	return new CastExpr( comparison, new BasicType( Type::Qualifiers(), BasicType::SignedInt ) );
 }
Index: src/ResolvExpr/CommonType.cc
===================================================================
--- src/ResolvExpr/CommonType.cc	(revision 148f7290b223b10641c960429cd37cc278a5903c)
+++ src/ResolvExpr/CommonType.cc	(revision 4cb935efa354074c5683f9c0730f6ae143c682ce)
@@ -243,4 +243,7 @@
 					result->get_qualifiers() += zeroType->get_qualifiers();
 				}
+			} else if ( widenSecond && dynamic_cast< OneType* >( type2 ) ) {
+				result = new BasicType( zeroType->get_qualifiers(), BasicType::SignedInt );
+				result->get_qualifiers() += type2->get_qualifiers();
 			}
 		}
@@ -254,4 +257,7 @@
 					result->get_qualifiers() += oneType->get_qualifiers();
 				}
+			} else if ( widenSecond && dynamic_cast< ZeroType* >( type2 ) ) {
+				result = new BasicType( oneType->get_qualifiers(), BasicType::SignedInt );
+				result->get_qualifiers() += type2->get_qualifiers();
 			}
 		}
Index: src/SymTab/Autogen.h
===================================================================
--- src/SymTab/Autogen.h	(revision 148f7290b223b10641c960429cd37cc278a5903c)
+++ src/SymTab/Autogen.h	(revision 4cb935efa354074c5683f9c0730f6ae143c682ce)
@@ -88,5 +88,5 @@
 		if ( forward ) {
 			// generate: for ( int i = 0; i < 0; ++i )
-			begin = new NameExpr( "0" );
+			begin = new ConstantExpr( Constant( new ZeroType( emptyQualifiers ), "0" ) );
 			end = array->get_dimension()->clone();
 			cmp = new NameExpr( "?<?" );
@@ -96,6 +96,6 @@
 			begin = new UntypedExpr( new NameExpr( "?-?" ) );
 			((UntypedExpr*)begin)->get_args().push_back( array->get_dimension()->clone() );
-			((UntypedExpr*)begin)->get_args().push_back( new NameExpr( "1" ) );
-			end = new NameExpr( "0" );
+			((UntypedExpr*)begin)->get_args().push_back( new ConstantExpr( Constant( new OneType( emptyQualifiers ), "1" ) ) );
+			end = new ConstantExpr( Constant( new ZeroType( emptyQualifiers ), "0" ) );
 			cmp = new NameExpr( "?>=?" );
 			update = new NameExpr( "--?" );
@@ -175,3 +175,2 @@
 } // namespace SymTab
 #endif // AUTOGEN_H
-
Index: src/SynTree/Expression.cc
===================================================================
--- src/SynTree/Expression.cc	(revision 148f7290b223b10641c960429cd37cc278a5903c)
+++ src/SynTree/Expression.cc	(revision 4cb935efa354074c5683f9c0730f6ae143c682ce)
@@ -422,5 +422,8 @@
 }
 
-NameExpr::NameExpr( std::string _name, Expression *_aname ) : Expression( _aname ), name(_name) {}
+NameExpr::NameExpr( std::string _name, Expression *_aname ) : Expression( _aname ), name(_name) {
+	assertf(_name != "0", "Zero is not a valid name\n");
+	assertf(_name != "1", "One is not a valid name\n");
+}
 
 NameExpr::NameExpr( const NameExpr &other ) : Expression( other ), name( other.name ) {
Index: src/SynTree/Type.h
===================================================================
--- src/SynTree/Type.h	(revision 148f7290b223b10641c960429cd37cc278a5903c)
+++ src/SynTree/Type.h	(revision 4cb935efa354074c5683f9c0730f6ae143c682ce)
@@ -81,4 +81,6 @@
 	ForallList forall;
 };
+
+extern Type::Qualifiers emptyQualifiers;				// no qualifiers on constants
 
 class VoidType : public Type {
Index: src/libcfa/prelude.cf
===================================================================
--- src/libcfa/prelude.cf	(revision 148f7290b223b10641c960429cd37cc278a5903c)
+++ src/libcfa/prelude.cf	(revision 4cb935efa354074c5683f9c0730f6ae143c682ce)
@@ -22,8 +22,5 @@
 // ------------------------------------------------------------
 
-const int 0, 1;
-
-forall ( dtype DT ) const DT * const	0;
-forall ( ftype FT ) FT * const		0;
+//We have none
 
 // ------------------------------------------------------------
@@ -249,17 +246,19 @@
 // ------------------------------------------------------------
 
-signed int ?==?( _Bool, _Bool ),					?!=?( _Bool, _Bool );
-signed int ?==?( signed int, signed int ),				?!=?( signed int, signed int );
-signed int ?==?( unsigned int, unsigned int ),				?!=?( unsigned int, unsigned int );
-signed int ?==?( signed long int, signed long int ),			?!=?( signed long int, signed long int );
-signed int ?==?( unsigned long int, unsigned long int ),		?!=?( unsigned long int, unsigned long int );
+signed int ?==?( _Bool, _Bool ),							?!=?( _Bool, _Bool );
+signed int ?==?( signed int, signed int ),					?!=?( signed int, signed int );
+signed int ?==?( unsigned int, unsigned int ),					?!=?( unsigned int, unsigned int );
+signed int ?==?( signed long int, signed long int ),				?!=?( signed long int, signed long int );
+signed int ?==?( unsigned long int, unsigned long int ),			?!=?( unsigned long int, unsigned long int );
 signed int ?==?( signed long long int, long long int  signed),		?!=?( signed long long int, signed long long int );
 signed int ?==?( unsigned long long int, unsigned long long int ),	?!=?( unsigned long long int, unsigned long long int );
-signed int ?==?( float, float ),					?!=?( float, float );
-signed int ?==?( double, double ),					?!=?( double, double );
-signed int ?==?( long double, long double ),				?!=?( long double, long double );
-signed int ?==?( float _Complex, float _Complex ),			?!=?( float _Complex, float _Complex );
-signed int ?==?( double _Complex, double _Complex ),			?!=?( double _Complex, double _Complex );
+signed int ?==?( float, float ),							?!=?( float, float );
+signed int ?==?( double, double ),							?!=?( double, double );
+signed int ?==?( long double, long double ),					?!=?( long double, long double );
+signed int ?==?( float _Complex, float _Complex ),				?!=?( float _Complex, float _Complex );
+signed int ?==?( double _Complex, double _Complex ),				?!=?( double _Complex, double _Complex );
 signed int ?==?( long double _Complex, long double _Complex ),		?!=?( long double _Complex, long double _Complex );
+signed int ?==?( zero_t, zero_t ),							?!=?( zero_t, zero_t );
+signed int ?==?( one_t, one_t ),							?!=?( one_t, one_t );
 
 forall( dtype DT ) signed int ?==?(		   DT *,		DT * );
@@ -279,12 +278,12 @@
 forall( dtype DT ) signed int ?!=?( const volatile void *, const volatile DT * );
 
-forall( dtype DT ) signed int ?==?( const volatile DT *, forall( dtype DT2 )const DT2 * );
-forall( dtype DT ) signed int ?==?( forall( dtype DT2 )const DT2 *, const volatile DT * );
-forall( ftype FT ) signed int ?==?( FT *, forall( ftype FT2 )FT2 * );
-forall( ftype FT ) signed int ?==?( forall( ftype FT2 )FT2 *, FT * );
-forall( dtype DT ) signed int ?!=?( const volatile DT *, forall( dtype DT2 )const DT2 * );
-forall( dtype DT ) signed int ?!=?( forall( dtype DT2 )const DT2 *, const volatile DT * );
-forall( ftype FT ) signed int ?!=?( FT *, forall( ftype FT2 )FT2 * );
-forall( ftype FT ) signed int ?!=?( forall( ftype FT2 )FT2 *, FT * );
+// forall( dtype DT ) signed int ?==?( const volatile DT *, forall( dtype DT2 )const DT2 * );
+// forall( dtype DT ) signed int ?==?( forall( dtype DT2 )const DT2 *, const volatile DT * );
+// forall( ftype FT ) signed int ?==?( FT *, forall( ftype FT2 )FT2 * );
+// forall( ftype FT ) signed int ?==?( forall( ftype FT2 )FT2 *, FT * );
+// forall( dtype DT ) signed int ?!=?( const volatile DT *, forall( dtype DT2 )const DT2 * );
+// forall( dtype DT ) signed int ?!=?( forall( dtype DT2 )const DT2 *, const volatile DT * );
+// forall( ftype FT ) signed int ?!=?( FT *, forall( ftype FT2 )FT2 * );
+// forall( ftype FT ) signed int ?!=?( forall( ftype FT2 )FT2 *, FT * );
 
 // ------------------------------------------------------------
@@ -458,4 +457,7 @@
 signed long long int	?=?( signed long long int *, signed long long int ),	?=?( volatile signed long long int *, signed long long int );
 unsigned long long int	?=?( unsigned long long int *, unsigned long long int ), ?=?( volatile unsigned long long int *, unsigned long long int );
+zero_t		?=?( zero_t *, zero_t );
+one_t			?=?( one_t *, one_t );
+
 
 _Bool			?*=?( _Bool *, _Bool ),					?*=?( volatile _Bool *, _Bool );
@@ -654,4 +656,6 @@
 void	?{}( double _Complex * );
 void	?{}( long double _Complex * );
+void	?{}( zero_t * );
+void	?{}( one_t * );
 
 // copy ctor
@@ -674,4 +678,6 @@
 void	?{}( double _Complex *, double _Complex);
 void	?{}( long double _Complex *, long double _Complex);
+void	?{}( zero_t *, zero_t );
+void	?{}( one_t *, one_t );
 
 // dtor
@@ -694,4 +700,6 @@
 void	^?{}( double _Complex * );
 void	^?{}( long double _Complex * );
+void	^?{}( zero_t * );
+void	^?{}( one_t * );
 
 // // default ctor
Index: src/tests/.expect/32/declarationSpecifier.txt
===================================================================
--- src/tests/.expect/32/declarationSpecifier.txt	(revision 148f7290b223b10641c960429cd37cc278a5903c)
+++ src/tests/.expect/32/declarationSpecifier.txt	(revision 4cb935efa354074c5683f9c0730f6ae143c682ce)
@@ -623,5 +623,5 @@
 int main(int __argc__i_1, const char **__argv__PPCc_1){
     int _retVal0 = { 0 };
-    ((void)(_retVal0=0) /* ?{} */);
+    ((void)(_retVal0=((int )0)) /* ?{} */);
     return ((int )_retVal0);
 }
Index: src/tests/.expect/32/extension.txt
===================================================================
--- src/tests/.expect/32/extension.txt	(revision 148f7290b223b10641c960429cd37cc278a5903c)
+++ src/tests/.expect/32/extension.txt	(revision 4cb935efa354074c5683f9c0730f6ae143c682ce)
@@ -101,8 +101,8 @@
     ((void)(_tmp_cp_ret3) /* ^?{} */);
     ((void)__extension__ sizeof(3));
-    ((void)__extension__ (((int )(3!=0)) || ((int )(4!=0))));
+    ((void)__extension__ (((int )(3!=((int )0))) || ((int )(4!=((int )0)))));
     ((void)__extension__ __alignof__(__extension__ __a__i_2));
-    ((void)(((int )(__extension__ __a__i_2!=0)) || ((int )((((int )(__extension__ __b__i_2!=0)) && ((int )(__extension__ __c__i_2!=0)))!=0))));
-    ((void)(((int )((__extension__ __a__i_2>__extension__ __b__i_2)!=0)) ? __extension__ __c__i_2 : __extension__ __c__i_2));
+    ((void)(((int )(__extension__ __a__i_2!=((int )0))) || ((int )((((int )(__extension__ __b__i_2!=((int )0))) && ((int )(__extension__ __c__i_2!=((int )0))))!=((int )0)))));
+    ((void)(((int )((__extension__ __a__i_2>__extension__ __b__i_2)!=((int )0))) ? __extension__ __c__i_2 : __extension__ __c__i_2));
     ((void)(__extension__ __a__i_2=__extension__ (__extension__ __b__i_2+__extension__ __c__i_2)));
     ((void)((__extension__ __a__i_2 , __extension__ __b__i_2) , __extension__ __c__i_2));
Index: src/tests/.expect/32/gccExtensions.txt
===================================================================
--- src/tests/.expect/32/gccExtensions.txt	(revision 148f7290b223b10641c960429cd37cc278a5903c)
+++ src/tests/.expect/32/gccExtensions.txt	(revision 4cb935efa354074c5683f9c0730f6ae143c682ce)
@@ -158,5 +158,5 @@
     int __m3__A0A0i_2[((unsigned int )10)][((unsigned int )10)];
     int _retVal0 = { 0 };
-    ((void)(_retVal0=0) /* ?{} */);
+    ((void)(_retVal0=((int )0)) /* ?{} */);
     return ((int )_retVal0);
 }
Index: src/tests/.expect/64/declarationSpecifier.txt
===================================================================
--- src/tests/.expect/64/declarationSpecifier.txt	(revision 148f7290b223b10641c960429cd37cc278a5903c)
+++ src/tests/.expect/64/declarationSpecifier.txt	(revision 4cb935efa354074c5683f9c0730f6ae143c682ce)
@@ -623,5 +623,5 @@
 int main(int __argc__i_1, const char **__argv__PPCc_1){
     int _retVal0 = { 0 };
-    ((void)(_retVal0=0) /* ?{} */);
+    ((void)(_retVal0=((int )0)) /* ?{} */);
     return ((int )_retVal0);
 }
Index: src/tests/.expect/64/extension.txt
===================================================================
--- src/tests/.expect/64/extension.txt	(revision 148f7290b223b10641c960429cd37cc278a5903c)
+++ src/tests/.expect/64/extension.txt	(revision 4cb935efa354074c5683f9c0730f6ae143c682ce)
@@ -101,8 +101,8 @@
     ((void)(_tmp_cp_ret3) /* ^?{} */);
     ((void)__extension__ sizeof(3));
-    ((void)__extension__ (((int )(3!=0)) || ((int )(4!=0))));
+    ((void)__extension__ (((int )(3!=((int )0))) || ((int )(4!=((int )0)))));
     ((void)__extension__ __alignof__(__extension__ __a__i_2));
-    ((void)(((int )(__extension__ __a__i_2!=0)) || ((int )((((int )(__extension__ __b__i_2!=0)) && ((int )(__extension__ __c__i_2!=0)))!=0))));
-    ((void)(((int )((__extension__ __a__i_2>__extension__ __b__i_2)!=0)) ? __extension__ __c__i_2 : __extension__ __c__i_2));
+    ((void)(((int )(__extension__ __a__i_2!=((int )0))) || ((int )((((int )(__extension__ __b__i_2!=((int )0))) && ((int )(__extension__ __c__i_2!=((int )0))))!=((int )0)))));
+    ((void)(((int )((__extension__ __a__i_2>__extension__ __b__i_2)!=((int )0))) ? __extension__ __c__i_2 : __extension__ __c__i_2));
     ((void)(__extension__ __a__i_2=__extension__ (__extension__ __b__i_2+__extension__ __c__i_2)));
     ((void)((__extension__ __a__i_2 , __extension__ __b__i_2) , __extension__ __c__i_2));
Index: src/tests/.expect/64/gccExtensions.txt
===================================================================
--- src/tests/.expect/64/gccExtensions.txt	(revision 148f7290b223b10641c960429cd37cc278a5903c)
+++ src/tests/.expect/64/gccExtensions.txt	(revision 4cb935efa354074c5683f9c0730f6ae143c682ce)
@@ -158,5 +158,5 @@
     int __m3__A0A0i_2[((long unsigned int )10)][((long unsigned int )10)];
     int _retVal0 = { 0 };
-    ((void)(_retVal0=0) /* ?{} */);
+    ((void)(_retVal0=((int )0)) /* ?{} */);
     return ((int )_retVal0);
 }
