Index: src/Parser/parser.cc
===================================================================
--- src/Parser/parser.cc	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
+++ src/Parser/parser.cc	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
@@ -71,4 +71,5 @@
 #define YYDEBUG_LEXER_TEXT (yylval)						// lexer loads this up each time
 #define YYDEBUG 1										// get the pretty debugging code to compile
+extern char *yytext;
 
 #undef __GNUC_MINOR__
@@ -88,5 +89,5 @@
 
 /* Line 268 of yacc.c  */
-#line 91 "Parser/parser.cc"
+#line 92 "Parser/parser.cc"
 
 /* Enabling traces.  */
@@ -323,5 +324,5 @@
 
 /* Line 293 of yacc.c  */
-#line 107 "parser.yy"
+#line 108 "parser.yy"
 
 	Token tok;
@@ -338,5 +339,5 @@
 
 /* Line 293 of yacc.c  */
-#line 341 "Parser/parser.cc"
+#line 342 "Parser/parser.cc"
 } YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
@@ -350,5 +351,5 @@
 
 /* Line 343 of yacc.c  */
-#line 353 "Parser/parser.cc"
+#line 354 "Parser/parser.cc"
 
 #ifdef short
@@ -990,78 +991,78 @@
 static const yytype_uint16 yyrline[] =
 {
-       0,   281,   281,   287,   297,   298,   299,   303,   304,   305,
-     309,   310,   314,   318,   319,   323,   324,   330,   332,   334,
-     336,   338,   340,   345,   346,   352,   354,   356,   357,   359,
-     360,   362,   365,   370,   371,   377,   378,   379,   384,   386,
-     391,   392,   396,   398,   400,   402,   404,   409,   410,   412,
-     414,   416,   418,   420,   426,   428,   430,   432,   434,   436,
-     438,   440,   445,   446,   447,   448,   452,   453,   455,   460,
-     461,   463,   465,   470,   471,   473,   478,   479,   481,   486,
-     487,   489,   491,   493,   498,   499,   501,   506,   507,   512,
-     513,   518,   519,   524,   525,   530,   531,   536,   537,   539,
-     541,   546,   551,   552,   554,   556,   562,   563,   569,   571,
-     573,   575,   580,   581,   586,   587,   588,   589,   590,   591,
-     592,   593,   594,   595,   599,   600,   606,   607,   613,   614,
-     615,   616,   617,   618,   619,   620,   624,   629,   631,   641,
-     642,   647,   649,   651,   653,   657,   658,   663,   668,   671,
-     673,   675,   681,   683,   691,   692,   694,   698,   699,   704,
-     705,   710,   711,   715,   720,   721,   725,   727,   733,   734,
-     738,   740,   742,   744,   750,   751,   755,   756,   760,   762,
-     764,   769,   771,   776,   778,   782,   786,   790,   794,   798,
-     800,   802,   807,   809,   811,   820,   823,   825,   830,   832,
-     837,   850,   851,   856,   858,   863,   867,   869,   871,   873,
-     877,   879,   883,   884,   888,   892,   893,   899,   901,   905,
-     906,   911,   913,   917,   918,   922,   924,   928,   929,   933,
-     934,   938,   939,   955,   956,   957,   958,   959,   963,   968,
-     975,   985,   990,   995,  1003,  1008,  1013,  1018,  1023,  1031,
-    1036,  1049,  1055,  1062,  1064,  1071,  1076,  1081,  1093,  1098,
-    1103,  1108,  1113,  1121,  1126,  1134,  1135,  1136,  1137,  1143,
-    1148,  1156,  1157,  1158,  1159,  1163,  1164,  1165,  1166,  1171,
-    1172,  1182,  1183,  1188,  1189,  1194,  1196,  1198,  1200,  1202,
-    1205,  1204,  1216,  1217,  1219,  1229,  1230,  1235,  1239,  1241,
-    1243,  1245,  1247,  1250,  1255,  1257,  1259,  1261,  1263,  1265,
-    1267,  1269,  1271,  1273,  1275,  1277,  1283,  1284,  1286,  1288,
-    1290,  1295,  1296,  1302,  1303,  1305,  1307,  1312,  1314,  1316,
-    1318,  1323,  1324,  1326,  1328,  1333,  1334,  1336,  1341,  1342,
-    1344,  1346,  1351,  1353,  1355,  1360,  1361,  1365,  1367,  1369,
-    1371,  1373,  1375,  1377,  1379,  1382,  1387,  1389,  1394,  1396,
-    1401,  1402,  1404,  1405,  1410,  1411,  1413,  1415,  1420,  1422,
-    1428,  1429,  1431,  1434,  1437,  1442,  1443,  1448,  1453,  1457,
-    1459,  1461,  1466,  1468,  1474,  1475,  1483,  1484,  1488,  1489,
-    1490,  1492,  1494,  1502,  1503,  1505,  1507,  1512,  1513,  1519,
-    1520,  1524,  1525,  1530,  1531,  1532,  1534,  1543,  1544,  1546,
-    1549,  1551,  1555,  1556,  1557,  1559,  1561,  1565,  1570,  1578,
-    1579,  1588,  1590,  1595,  1596,  1597,  1601,  1602,  1603,  1607,
-    1608,  1609,  1613,  1614,  1615,  1620,  1621,  1622,  1623,  1629,
-    1630,  1634,  1635,  1639,  1640,  1641,  1642,  1657,  1658,  1663,
-    1664,  1668,  1670,  1674,  1676,  1678,  1702,  1703,  1705,  1707,
-    1712,  1714,  1716,  1721,  1722,  1728,  1727,  1731,  1735,  1737,
-    1739,  1745,  1746,  1751,  1756,  1758,  1763,  1765,  1766,  1768,
-    1773,  1775,  1777,  1782,  1784,  1789,  1794,  1802,  1808,  1807,
-    1821,  1822,  1827,  1828,  1832,  1837,  1842,  1850,  1855,  1866,
-    1867,  1878,  1879,  1885,  1886,  1890,  1891,  1892,  1895,  1894,
-    1905,  1910,  1917,  1923,  1932,  1938,  1944,  1950,  1956,  1964,
-    1970,  1978,  1984,  1993,  1994,  1995,  1999,  2003,  2005,  2008,
-    2010,  2014,  2015,  2019,  2023,  2024,  2027,  2029,  2030,  2034,
-    2035,  2036,  2037,  2072,  2073,  2074,  2075,  2079,  2084,  2089,
-    2091,  2093,  2098,  2100,  2102,  2104,  2109,  2111,  2121,  2122,
-    2123,  2127,  2129,  2131,  2136,  2138,  2140,  2145,  2147,  2149,
-    2158,  2159,  2160,  2164,  2166,  2168,  2173,  2175,  2177,  2182,
-    2184,  2186,  2201,  2202,  2203,  2204,  2208,  2213,  2218,  2220,
-    2222,  2227,  2229,  2231,  2233,  2238,  2240,  2242,  2252,  2253,
-    2254,  2255,  2259,  2261,  2263,  2268,  2270,  2272,  2274,  2279,
-    2281,  2283,  2314,  2315,  2316,  2317,  2321,  2329,  2331,  2333,
-    2338,  2340,  2345,  2347,  2361,  2362,  2363,  2367,  2369,  2371,
-    2373,  2375,  2380,  2381,  2383,  2385,  2390,  2392,  2394,  2400,
-    2402,  2404,  2408,  2410,  2412,  2414,  2428,  2429,  2430,  2434,
-    2436,  2438,  2440,  2442,  2447,  2448,  2450,  2452,  2457,  2459,
-    2461,  2467,  2468,  2470,  2480,  2483,  2485,  2488,  2490,  2492,
-    2505,  2506,  2507,  2511,  2513,  2515,  2517,  2519,  2524,  2525,
-    2527,  2529,  2534,  2536,  2544,  2545,  2546,  2551,  2552,  2556,
-    2558,  2560,  2562,  2564,  2566,  2573,  2575,  2577,  2579,  2581,
-    2583,  2585,  2587,  2589,  2591,  2596,  2598,  2600,  2605,  2631,
-    2632,  2634,  2638,  2639,  2643,  2645,  2647,  2649,  2651,  2653,
-    2660,  2662,  2664,  2666,  2668,  2670,  2675,  2680,  2682,  2684,
-    2704,  2706,  2711,  2712
+       0,   282,   282,   288,   298,   299,   300,   304,   305,   306,
+     310,   311,   315,   319,   320,   324,   325,   331,   333,   335,
+     337,   339,   341,   346,   347,   353,   355,   357,   358,   360,
+     361,   363,   366,   371,   372,   378,   379,   380,   385,   387,
+     392,   393,   397,   399,   401,   403,   405,   410,   411,   413,
+     415,   417,   419,   421,   427,   429,   431,   433,   435,   437,
+     439,   441,   446,   447,   448,   449,   453,   454,   456,   461,
+     462,   464,   466,   471,   472,   474,   479,   480,   482,   487,
+     488,   490,   492,   494,   499,   500,   502,   507,   508,   513,
+     514,   519,   520,   525,   526,   531,   532,   537,   538,   540,
+     542,   547,   552,   553,   555,   557,   563,   564,   570,   572,
+     574,   576,   581,   582,   587,   588,   589,   590,   591,   592,
+     593,   594,   595,   596,   600,   601,   607,   608,   614,   615,
+     616,   617,   618,   619,   620,   621,   625,   630,   632,   642,
+     643,   648,   650,   652,   654,   658,   659,   664,   669,   672,
+     674,   676,   682,   684,   692,   693,   695,   699,   700,   705,
+     706,   711,   712,   716,   721,   722,   726,   728,   734,   735,
+     739,   741,   743,   745,   751,   752,   756,   757,   761,   763,
+     765,   770,   772,   777,   779,   783,   787,   791,   795,   799,
+     801,   803,   808,   810,   812,   821,   824,   826,   831,   833,
+     838,   851,   852,   857,   859,   864,   868,   870,   872,   874,
+     878,   880,   884,   885,   889,   893,   894,   900,   902,   906,
+     907,   912,   914,   918,   919,   923,   925,   929,   930,   934,
+     935,   939,   940,   956,   957,   958,   959,   960,   964,   969,
+     976,   986,   991,   996,  1004,  1009,  1014,  1019,  1024,  1032,
+    1037,  1050,  1056,  1063,  1065,  1072,  1077,  1082,  1094,  1099,
+    1104,  1109,  1114,  1122,  1127,  1135,  1136,  1137,  1138,  1144,
+    1149,  1157,  1158,  1159,  1160,  1164,  1165,  1166,  1167,  1172,
+    1173,  1183,  1184,  1189,  1190,  1195,  1197,  1199,  1201,  1203,
+    1206,  1205,  1217,  1218,  1220,  1230,  1231,  1236,  1240,  1242,
+    1244,  1246,  1248,  1251,  1256,  1258,  1260,  1262,  1264,  1266,
+    1268,  1270,  1272,  1274,  1276,  1278,  1284,  1285,  1287,  1289,
+    1291,  1296,  1297,  1303,  1304,  1306,  1308,  1313,  1315,  1317,
+    1319,  1324,  1325,  1327,  1329,  1334,  1335,  1337,  1342,  1343,
+    1345,  1347,  1352,  1354,  1356,  1361,  1362,  1366,  1368,  1370,
+    1372,  1374,  1376,  1378,  1380,  1383,  1388,  1390,  1395,  1397,
+    1402,  1403,  1405,  1406,  1411,  1412,  1414,  1416,  1421,  1423,
+    1429,  1430,  1432,  1435,  1438,  1443,  1444,  1449,  1454,  1458,
+    1460,  1462,  1467,  1469,  1475,  1476,  1484,  1485,  1489,  1490,
+    1491,  1493,  1495,  1503,  1504,  1506,  1508,  1513,  1514,  1520,
+    1521,  1525,  1526,  1531,  1532,  1533,  1535,  1544,  1545,  1547,
+    1550,  1552,  1556,  1557,  1558,  1560,  1562,  1566,  1571,  1579,
+    1580,  1589,  1591,  1596,  1597,  1598,  1602,  1603,  1604,  1608,
+    1609,  1610,  1614,  1615,  1616,  1621,  1622,  1623,  1624,  1630,
+    1631,  1635,  1636,  1640,  1641,  1642,  1643,  1658,  1659,  1664,
+    1665,  1669,  1671,  1675,  1677,  1679,  1703,  1704,  1706,  1708,
+    1713,  1715,  1717,  1722,  1723,  1729,  1728,  1732,  1736,  1738,
+    1740,  1746,  1747,  1752,  1757,  1759,  1764,  1766,  1767,  1769,
+    1774,  1776,  1778,  1783,  1785,  1790,  1795,  1803,  1809,  1808,
+    1822,  1823,  1828,  1829,  1833,  1838,  1843,  1851,  1856,  1867,
+    1868,  1879,  1880,  1886,  1887,  1891,  1892,  1893,  1896,  1895,
+    1906,  1911,  1918,  1924,  1933,  1939,  1945,  1951,  1957,  1965,
+    1971,  1979,  1985,  1994,  1995,  1996,  2000,  2004,  2006,  2009,
+    2011,  2015,  2016,  2020,  2024,  2025,  2028,  2030,  2031,  2035,
+    2036,  2037,  2038,  2073,  2074,  2075,  2076,  2080,  2085,  2090,
+    2092,  2094,  2099,  2101,  2103,  2105,  2110,  2112,  2122,  2123,
+    2124,  2128,  2130,  2132,  2137,  2139,  2141,  2146,  2148,  2150,
+    2159,  2160,  2161,  2165,  2167,  2169,  2174,  2176,  2178,  2183,
+    2185,  2187,  2202,  2203,  2204,  2205,  2209,  2214,  2219,  2221,
+    2223,  2228,  2230,  2232,  2234,  2239,  2241,  2243,  2253,  2254,
+    2255,  2256,  2260,  2262,  2264,  2269,  2271,  2273,  2275,  2280,
+    2282,  2284,  2315,  2316,  2317,  2318,  2322,  2330,  2332,  2334,
+    2339,  2341,  2346,  2348,  2362,  2363,  2364,  2368,  2370,  2372,
+    2374,  2376,  2381,  2382,  2384,  2386,  2391,  2393,  2395,  2401,
+    2403,  2405,  2409,  2411,  2413,  2415,  2429,  2430,  2431,  2435,
+    2437,  2439,  2441,  2443,  2448,  2449,  2451,  2453,  2458,  2460,
+    2462,  2468,  2469,  2471,  2481,  2484,  2486,  2489,  2491,  2493,
+    2506,  2507,  2508,  2512,  2514,  2516,  2518,  2520,  2525,  2526,
+    2528,  2530,  2535,  2537,  2545,  2546,  2547,  2552,  2553,  2557,
+    2559,  2561,  2563,  2565,  2567,  2574,  2576,  2578,  2580,  2582,
+    2584,  2586,  2588,  2590,  2592,  2597,  2599,  2601,  2606,  2632,
+    2633,  2635,  2639,  2640,  2644,  2646,  2648,  2650,  2652,  2654,
+    2661,  2663,  2665,  2667,  2669,  2671,  2676,  2681,  2683,  2685,
+    2705,  2707,  2712,  2713
 };
 #endif
@@ -5171,5 +5172,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 281 "parser.yy"
+#line 282 "parser.yy"
     {
 			typedefTable.enterScope();
@@ -5180,5 +5181,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 287 "parser.yy"
+#line 288 "parser.yy"
     {
 			typedefTable.leaveScope();
@@ -5189,5 +5190,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 297 "parser.yy"
+#line 298 "parser.yy"
     { (yyval.constant) = new ConstantNode( ConstantNode::Integer, (yyvsp[(1) - (1)].tok) ); }
     break;
@@ -5196,5 +5197,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 298 "parser.yy"
+#line 299 "parser.yy"
     { (yyval.constant) = new ConstantNode( ConstantNode::Float, (yyvsp[(1) - (1)].tok) ); }
     break;
@@ -5203,5 +5204,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 299 "parser.yy"
+#line 300 "parser.yy"
     { (yyval.constant) = new ConstantNode( ConstantNode::Character, (yyvsp[(1) - (1)].tok) ); }
     break;
@@ -5210,5 +5211,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 323 "parser.yy"
+#line 324 "parser.yy"
     { (yyval.constant) = new ConstantNode( ConstantNode::String, (yyvsp[(1) - (1)].tok) ); }
     break;
@@ -5217,5 +5218,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 324 "parser.yy"
+#line 325 "parser.yy"
     { (yyval.constant) = (yyvsp[(1) - (2)].constant)->appendstr( (yyvsp[(2) - (2)].tok) ); }
     break;
@@ -5224,5 +5225,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 331 "parser.yy"
+#line 332 "parser.yy"
     { (yyval.en) = new VarRefNode((yyvsp[(1) - (1)].tok)); }
     break;
@@ -5231,5 +5232,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 333 "parser.yy"
+#line 334 "parser.yy"
     { (yyval.en) = new VarRefNode((yyvsp[(1) - (1)].tok)); }
     break;
@@ -5238,5 +5239,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 335 "parser.yy"
+#line 336 "parser.yy"
     { (yyval.en) = (yyvsp[(1) - (1)].constant); }
     break;
@@ -5245,5 +5246,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 337 "parser.yy"
+#line 338 "parser.yy"
     { (yyval.en) = (yyvsp[(1) - (1)].constant); }
     break;
@@ -5252,5 +5253,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 339 "parser.yy"
+#line 340 "parser.yy"
     { (yyval.en) = (yyvsp[(2) - (3)].en); }
     break;
@@ -5259,5 +5260,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 341 "parser.yy"
+#line 342 "parser.yy"
     { (yyval.en) = new ValofExprNode((yyvsp[(2) - (3)].sn)); }
     break;
@@ -5266,5 +5267,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 351 "parser.yy"
+#line 352 "parser.yy"
     { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Index), (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en)); }
     break;
@@ -5273,5 +5274,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 353 "parser.yy"
+#line 354 "parser.yy"
     { (yyval.en) = new CompositeExprNode((yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en)); }
     break;
@@ -5280,5 +5281,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 355 "parser.yy"
+#line 356 "parser.yy"
     { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::FieldSel), (yyvsp[(1) - (3)].en), new VarRefNode((yyvsp[(3) - (3)].tok))); }
     break;
@@ -5287,5 +5288,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 358 "parser.yy"
+#line 359 "parser.yy"
     { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::PFieldSel), (yyvsp[(1) - (3)].en), new VarRefNode((yyvsp[(3) - (3)].tok))); }
     break;
@@ -5294,5 +5295,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 361 "parser.yy"
+#line 362 "parser.yy"
     { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::IncrPost), (yyvsp[(1) - (2)].en)); }
     break;
@@ -5301,5 +5302,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 363 "parser.yy"
+#line 364 "parser.yy"
     { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::DecrPost), (yyvsp[(1) - (2)].en)); }
     break;
@@ -5308,5 +5309,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 366 "parser.yy"
+#line 367 "parser.yy"
     { (yyval.en) = 0; }
     break;
@@ -5315,5 +5316,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 372 "parser.yy"
+#line 373 "parser.yy"
     { (yyval.en) = (ExpressionNode *)((yyvsp[(1) - (3)].en)->set_link((yyvsp[(3) - (3)].en))); }
     break;
@@ -5322,5 +5323,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 377 "parser.yy"
+#line 378 "parser.yy"
     { (yyval.en) = 0; }
     break;
@@ -5329,5 +5330,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 380 "parser.yy"
+#line 381 "parser.yy"
     { (yyval.en) = (yyvsp[(3) - (3)].en)->set_asArgName((yyvsp[(1) - (3)].tok)); }
     break;
@@ -5336,5 +5337,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 385 "parser.yy"
+#line 386 "parser.yy"
     { (yyval.en) = (yyvsp[(7) - (7)].en)->set_asArgName((yyvsp[(3) - (7)].en)); }
     break;
@@ -5343,5 +5344,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 387 "parser.yy"
+#line 388 "parser.yy"
     { (yyval.en) = (yyvsp[(9) - (9)].en)->set_asArgName( new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (9)].en)->set_link( flattenCommas( (yyvsp[(5) - (9)].en) )))); }
     break;
@@ -5350,5 +5351,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 392 "parser.yy"
+#line 393 "parser.yy"
     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
     break;
@@ -5357,5 +5358,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 397 "parser.yy"
+#line 398 "parser.yy"
     { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }
     break;
@@ -5364,5 +5365,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 399 "parser.yy"
+#line 400 "parser.yy"
     { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::FieldSel), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en)); }
     break;
@@ -5371,5 +5372,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 401 "parser.yy"
+#line 402 "parser.yy"
     { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::FieldSel), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en)); }
     break;
@@ -5378,5 +5379,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 403 "parser.yy"
+#line 404 "parser.yy"
     { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::PFieldSel), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en)); }
     break;
@@ -5385,5 +5386,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 405 "parser.yy"
+#line 406 "parser.yy"
     { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::PFieldSel), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en)); }
     break;
@@ -5392,5 +5393,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 411 "parser.yy"
+#line 412 "parser.yy"
     { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Incr), (yyvsp[(2) - (2)].en)); }
     break;
@@ -5399,5 +5400,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 413 "parser.yy"
+#line 414 "parser.yy"
     { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Decr), (yyvsp[(2) - (2)].en)); }
     break;
@@ -5406,5 +5407,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 415 "parser.yy"
+#line 416 "parser.yy"
     { (yyval.en) = (yyvsp[(2) - (2)].en); }
     break;
@@ -5413,5 +5414,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 417 "parser.yy"
+#line 418 "parser.yy"
     { (yyval.en) = new CompositeExprNode((yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en)); }
     break;
@@ -5420,5 +5421,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 419 "parser.yy"
+#line 420 "parser.yy"
     { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Neg), (yyvsp[(2) - (2)].en)); }
     break;
@@ -5427,5 +5428,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 421 "parser.yy"
+#line 422 "parser.yy"
     { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::PointTo), (yyvsp[(2) - (2)].en)); }
     break;
@@ -5434,5 +5435,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 427 "parser.yy"
+#line 428 "parser.yy"
     { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::SizeOf), (yyvsp[(2) - (2)].en)); }
     break;
@@ -5441,5 +5442,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 429 "parser.yy"
+#line 430 "parser.yy"
     { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::SizeOf), new TypeValueNode((yyvsp[(3) - (4)].decl))); }
     break;
@@ -5448,5 +5449,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 431 "parser.yy"
+#line 432 "parser.yy"
     { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Attr), new VarRefNode((yyvsp[(1) - (1)].tok))); }
     break;
@@ -5455,5 +5456,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 433 "parser.yy"
+#line 434 "parser.yy"
     { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Attr), new VarRefNode((yyvsp[(1) - (4)].tok)), new TypeValueNode((yyvsp[(3) - (4)].decl))); }
     break;
@@ -5462,5 +5463,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 435 "parser.yy"
+#line 436 "parser.yy"
     { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Attr), new VarRefNode((yyvsp[(1) - (4)].tok)), (yyvsp[(3) - (4)].en)); }
     break;
@@ -5469,5 +5470,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 437 "parser.yy"
+#line 438 "parser.yy"
     { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::AlignOf), (yyvsp[(2) - (2)].en)); }
     break;
@@ -5476,5 +5477,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 439 "parser.yy"
+#line 440 "parser.yy"
     { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::AlignOf), new TypeValueNode((yyvsp[(3) - (4)].decl))); }
     break;
@@ -5483,5 +5484,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 441 "parser.yy"
+#line 442 "parser.yy"
     { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::LabelAddress), new VarRefNode((yyvsp[(2) - (2)].tok), true)); }
     break;
@@ -5490,5 +5491,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 445 "parser.yy"
+#line 446 "parser.yy"
     { (yyval.en) = new OperatorNode(OperatorNode::AddressOf); }
     break;
@@ -5497,5 +5498,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 446 "parser.yy"
+#line 447 "parser.yy"
     { (yyval.en) = new OperatorNode(OperatorNode::UnPlus); }
     break;
@@ -5504,5 +5505,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 447 "parser.yy"
+#line 448 "parser.yy"
     { (yyval.en) = new OperatorNode(OperatorNode::UnMinus); }
     break;
@@ -5511,5 +5512,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 448 "parser.yy"
+#line 449 "parser.yy"
     { (yyval.en) = new OperatorNode(OperatorNode::BitNeg); }
     break;
@@ -5518,5 +5519,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 454 "parser.yy"
+#line 455 "parser.yy"
     { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Cast), new TypeValueNode((yyvsp[(2) - (4)].decl)), (yyvsp[(4) - (4)].en)); }
     break;
@@ -5525,5 +5526,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 456 "parser.yy"
+#line 457 "parser.yy"
     { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Cast), new TypeValueNode((yyvsp[(2) - (4)].decl)), (yyvsp[(4) - (4)].en)); }
     break;
@@ -5532,5 +5533,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 462 "parser.yy"
+#line 463 "parser.yy"
     { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Mul),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); }
     break;
@@ -5539,5 +5540,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 464 "parser.yy"
+#line 465 "parser.yy"
     { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Div),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); }
     break;
@@ -5546,5 +5547,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 466 "parser.yy"
+#line 467 "parser.yy"
     { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Mod),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); }
     break;
@@ -5553,5 +5554,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 472 "parser.yy"
+#line 473 "parser.yy"
     { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Plus),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); }
     break;
@@ -5560,5 +5561,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 474 "parser.yy"
+#line 475 "parser.yy"
     { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Minus),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); }
     break;
@@ -5567,5 +5568,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 480 "parser.yy"
+#line 481 "parser.yy"
     { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::LShift),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); }
     break;
@@ -5574,5 +5575,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 482 "parser.yy"
+#line 483 "parser.yy"
     { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::RShift),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); }
     break;
@@ -5581,5 +5582,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 488 "parser.yy"
+#line 489 "parser.yy"
     { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::LThan),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); }
     break;
@@ -5588,5 +5589,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 490 "parser.yy"
+#line 491 "parser.yy"
     { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::GThan),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); }
     break;
@@ -5595,5 +5596,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 492 "parser.yy"
+#line 493 "parser.yy"
     { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::LEThan),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); }
     break;
@@ -5602,5 +5603,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 494 "parser.yy"
+#line 495 "parser.yy"
     { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::GEThan),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); }
     break;
@@ -5609,5 +5610,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 500 "parser.yy"
+#line 501 "parser.yy"
     { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Eq), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en)); }
     break;
@@ -5616,5 +5617,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 502 "parser.yy"
+#line 503 "parser.yy"
     { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Neq), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en)); }
     break;
@@ -5623,5 +5624,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 508 "parser.yy"
+#line 509 "parser.yy"
     { (yyval.en) =new CompositeExprNode(new OperatorNode(OperatorNode::BitAnd), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en)); }
     break;
@@ -5630,5 +5631,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 514 "parser.yy"
+#line 515 "parser.yy"
     { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Xor), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en)); }
     break;
@@ -5637,5 +5638,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 520 "parser.yy"
+#line 521 "parser.yy"
     { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::BitOr), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en)); }
     break;
@@ -5644,5 +5645,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 526 "parser.yy"
+#line 527 "parser.yy"
     { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::And), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en)); }
     break;
@@ -5651,5 +5652,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 532 "parser.yy"
+#line 533 "parser.yy"
     { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Or), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en)); }
     break;
@@ -5658,5 +5659,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 538 "parser.yy"
+#line 539 "parser.yy"
     { (yyval.en) = new CompositeExprNode( new OperatorNode(OperatorNode::Cond), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en)) ) ); }
     break;
@@ -5665,5 +5666,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 540 "parser.yy"
+#line 541 "parser.yy"
     { (yyval.en)=new CompositeExprNode(new OperatorNode(OperatorNode::NCond),(yyvsp[(1) - (4)].en),(yyvsp[(4) - (4)].en)); }
     break;
@@ -5672,5 +5673,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 542 "parser.yy"
+#line 543 "parser.yy"
     { (yyval.en) = new CompositeExprNode( new OperatorNode(OperatorNode::Cond), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en)) ) ); }
     break;
@@ -5679,5 +5680,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 553 "parser.yy"
+#line 554 "parser.yy"
     { (yyval.en) =new CompositeExprNode(new OperatorNode(OperatorNode::Assign), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en)); }
     break;
@@ -5686,5 +5687,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 555 "parser.yy"
+#line 556 "parser.yy"
     { (yyval.en) =new CompositeExprNode((yyvsp[(2) - (3)].en), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en)); }
     break;
@@ -5693,5 +5694,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 557 "parser.yy"
+#line 558 "parser.yy"
     { (yyval.en) = ((yyvsp[(2) - (2)].en) == 0) ? (yyvsp[(1) - (2)].en) : new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); }
     break;
@@ -5700,5 +5701,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 562 "parser.yy"
+#line 563 "parser.yy"
     { (yyval.en) = new NullExprNode; }
     break;
@@ -5707,5 +5708,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 570 "parser.yy"
+#line 571 "parser.yy"
     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ) ); }
     break;
@@ -5714,5 +5715,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 572 "parser.yy"
+#line 573 "parser.yy"
     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (yyvsp[(3) - (5)].en) ); }
     break;
@@ -5721,5 +5722,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 574 "parser.yy"
+#line 575 "parser.yy"
     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(new NullExprNode)->set_link( (yyvsp[(4) - (6)].en) ) ); }
     break;
@@ -5728,5 +5729,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 576 "parser.yy"
+#line 577 "parser.yy"
     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_link( flattenCommas( (yyvsp[(5) - (7)].en) ) ) ); }
     break;
@@ -5735,5 +5736,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 582 "parser.yy"
+#line 583 "parser.yy"
     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
     break;
@@ -5742,5 +5743,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 586 "parser.yy"
+#line 587 "parser.yy"
     { (yyval.en) = new OperatorNode(OperatorNode::MulAssn); }
     break;
@@ -5749,5 +5750,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 587 "parser.yy"
+#line 588 "parser.yy"
     { (yyval.en) = new OperatorNode(OperatorNode::DivAssn); }
     break;
@@ -5756,5 +5757,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 588 "parser.yy"
+#line 589 "parser.yy"
     { (yyval.en) = new OperatorNode(OperatorNode::ModAssn); }
     break;
@@ -5763,5 +5764,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 589 "parser.yy"
+#line 590 "parser.yy"
     { (yyval.en) = new OperatorNode(OperatorNode::PlusAssn); }
     break;
@@ -5770,5 +5771,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 590 "parser.yy"
+#line 591 "parser.yy"
     { (yyval.en) = new OperatorNode(OperatorNode::MinusAssn); }
     break;
@@ -5777,5 +5778,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 591 "parser.yy"
+#line 592 "parser.yy"
     { (yyval.en) = new OperatorNode(OperatorNode::LSAssn); }
     break;
@@ -5784,5 +5785,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 592 "parser.yy"
+#line 593 "parser.yy"
     { (yyval.en) = new OperatorNode(OperatorNode::RSAssn); }
     break;
@@ -5791,5 +5792,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 593 "parser.yy"
+#line 594 "parser.yy"
     { (yyval.en) = new OperatorNode(OperatorNode::AndAssn); }
     break;
@@ -5798,5 +5799,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 594 "parser.yy"
+#line 595 "parser.yy"
     { (yyval.en) = new OperatorNode(OperatorNode::ERAssn); }
     break;
@@ -5805,5 +5806,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 595 "parser.yy"
+#line 596 "parser.yy"
     { (yyval.en) = new OperatorNode(OperatorNode::OrAssn); }
     break;
@@ -5812,5 +5813,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 601 "parser.yy"
+#line 602 "parser.yy"
     { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Comma),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); }
     break;
@@ -5819,5 +5820,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 606 "parser.yy"
+#line 607 "parser.yy"
     { (yyval.en) = 0; }
     break;
@@ -5826,5 +5827,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 615 "parser.yy"
+#line 616 "parser.yy"
     { (yyval.sn) = (yyvsp[(1) - (1)].sn); }
     break;
@@ -5833,5 +5834,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 625 "parser.yy"
+#line 626 "parser.yy"
     { (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label((yyvsp[(1) - (4)].tok));}
     break;
@@ -5840,5 +5841,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 630 "parser.yy"
+#line 631 "parser.yy"
     { (yyval.sn) = new CompoundStmtNode( (StatementNode *)0 ); }
     break;
@@ -5847,5 +5848,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 637 "parser.yy"
+#line 638 "parser.yy"
     { (yyval.sn) = new CompoundStmtNode( (yyvsp[(5) - (7)].sn) ); }
     break;
@@ -5854,5 +5855,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 643 "parser.yy"
+#line 644 "parser.yy"
     { if ((yyvsp[(1) - (3)].sn) != 0) { (yyvsp[(1) - (3)].sn)->set_link((yyvsp[(3) - (3)].sn)); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
     break;
@@ -5861,5 +5862,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 648 "parser.yy"
+#line 649 "parser.yy"
     { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
     break;
@@ -5868,5 +5869,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 650 "parser.yy"
+#line 651 "parser.yy"
     { (yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -5875,5 +5876,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 652 "parser.yy"
+#line 653 "parser.yy"
     { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
     break;
@@ -5882,5 +5883,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 659 "parser.yy"
+#line 660 "parser.yy"
     { if ((yyvsp[(1) - (2)].sn) != 0) { (yyvsp[(1) - (2)].sn)->set_link((yyvsp[(2) - (2)].sn)); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
     break;
@@ -5889,5 +5890,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 664 "parser.yy"
+#line 665 "parser.yy"
     { (yyval.sn) = new StatementNode(StatementNode::Exp, (yyvsp[(1) - (2)].en), 0); }
     break;
@@ -5896,5 +5897,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 670 "parser.yy"
+#line 671 "parser.yy"
     { (yyval.sn) = new StatementNode(StatementNode::If, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn)); }
     break;
@@ -5903,5 +5904,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 672 "parser.yy"
+#line 673 "parser.yy"
     { (yyval.sn) = new StatementNode(StatementNode::If, (yyvsp[(3) - (7)].en), (StatementNode *)mkList((*(yyvsp[(5) - (7)].sn), *(yyvsp[(7) - (7)].sn))) ); }
     break;
@@ -5910,5 +5911,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 674 "parser.yy"
+#line 675 "parser.yy"
     { (yyval.sn) = new StatementNode(StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn)); }
     break;
@@ -5917,5 +5918,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 676 "parser.yy"
+#line 677 "parser.yy"
     { (yyval.sn) = new StatementNode(StatementNode::Switch, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn)); /* xxx */ }
     break;
@@ -5924,5 +5925,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 682 "parser.yy"
+#line 683 "parser.yy"
     { (yyval.sn) = new StatementNode(StatementNode::Choose, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn)); }
     break;
@@ -5931,5 +5932,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 684 "parser.yy"
+#line 685 "parser.yy"
     { (yyval.sn) = new StatementNode(StatementNode::Choose, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn)); }
     break;
@@ -5938,5 +5939,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 691 "parser.yy"
+#line 692 "parser.yy"
     { (yyval.en) = (yyvsp[(1) - (1)].en); }
     break;
@@ -5945,5 +5946,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 693 "parser.yy"
+#line 694 "parser.yy"
     { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Range),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); }
     break;
@@ -5952,5 +5953,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 700 "parser.yy"
+#line 701 "parser.yy"
     { (yyval.en) = new CompositeExprNode(new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(tupleContents((yyvsp[(1) - (3)].en)))->set_link((yyvsp[(3) - (3)].en)) ); }
     break;
@@ -5959,5 +5960,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 704 "parser.yy"
+#line 705 "parser.yy"
     { (yyval.sn) = new StatementNode(StatementNode::Case, (yyvsp[(2) - (3)].en), 0); }
     break;
@@ -5966,5 +5967,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 705 "parser.yy"
+#line 706 "parser.yy"
     { (yyval.sn) = new StatementNode(StatementNode::Default); }
     break;
@@ -5973,5 +5974,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 711 "parser.yy"
+#line 712 "parser.yy"
     { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (2)].sn)->set_link((yyvsp[(2) - (2)].sn))); }
     break;
@@ -5980,5 +5981,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 715 "parser.yy"
+#line 716 "parser.yy"
     { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case((yyvsp[(2) - (2)].sn)); }
     break;
@@ -5987,5 +5988,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 720 "parser.yy"
+#line 721 "parser.yy"
     { (yyval.sn) = 0; }
     break;
@@ -5994,5 +5995,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 726 "parser.yy"
+#line 727 "parser.yy"
     { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case((yyvsp[(2) - (2)].sn)); }
     break;
@@ -6001,5 +6002,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 728 "parser.yy"
+#line 729 "parser.yy"
     { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_link((yyvsp[(2) - (3)].sn)->append_last_case((yyvsp[(3) - (3)].sn)))); }
     break;
@@ -6008,5 +6009,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 733 "parser.yy"
+#line 734 "parser.yy"
     { (yyval.sn) = 0; }
     break;
@@ -6015,5 +6016,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 739 "parser.yy"
+#line 740 "parser.yy"
     { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case((yyvsp[(2) - (2)].sn)); }
     break;
@@ -6022,5 +6023,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 741 "parser.yy"
+#line 742 "parser.yy"
     { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].sn)))); }
     break;
@@ -6029,5 +6030,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 743 "parser.yy"
+#line 744 "parser.yy"
     { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_link((yyvsp[(2) - (3)].sn)->append_last_case((yyvsp[(3) - (3)].sn)))); }
     break;
@@ -6036,5 +6037,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 745 "parser.yy"
+#line 746 "parser.yy"
     { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (4)].sn)->set_link((yyvsp[(2) - (4)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(3) - (4)].sn),*(yyvsp[(4) - (4)].sn)))))); }
     break;
@@ -6043,16 +6044,9 @@
 
 /* Line 1806 of yacc.c  */
-#line 750 "parser.yy"
+#line 751 "parser.yy"
     { (yyval.sn) = 0; }
     break;
 
   case 176:
-
-/* Line 1806 of yacc.c  */
-#line 755 "parser.yy"
-    { (yyval.sn) = new StatementNode(StatementNode::Fallthru, 0, 0); }
-    break;
-
-  case 177:
 
 /* Line 1806 of yacc.c  */
@@ -6061,8 +6055,15 @@
     break;
 
+  case 177:
+
+/* Line 1806 of yacc.c  */
+#line 757 "parser.yy"
+    { (yyval.sn) = new StatementNode(StatementNode::Fallthru, 0, 0); }
+    break;
+
   case 178:
 
 /* Line 1806 of yacc.c  */
-#line 761 "parser.yy"
+#line 762 "parser.yy"
     { (yyval.sn) = new StatementNode(StatementNode::While, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn)); }
     break;
@@ -6071,5 +6072,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 763 "parser.yy"
+#line 764 "parser.yy"
     { (yyval.sn) = new StatementNode(StatementNode::Do, (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn)); }
     break;
@@ -6078,5 +6079,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 765 "parser.yy"
+#line 766 "parser.yy"
     { (yyval.sn) = new StatementNode(StatementNode::For, (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].sn)); }
     break;
@@ -6085,5 +6086,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 770 "parser.yy"
+#line 771 "parser.yy"
     { (yyval.en) = new ForCtlExprNode((yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en)); }
     break;
@@ -6092,5 +6093,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 772 "parser.yy"
+#line 773 "parser.yy"
     { (yyval.en) = new ForCtlExprNode((yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en)); }
     break;
@@ -6099,5 +6100,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 777 "parser.yy"
+#line 778 "parser.yy"
     { (yyval.sn) = new StatementNode(StatementNode::Goto, (yyvsp[(2) - (3)].tok)); }
     break;
@@ -6106,5 +6107,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 781 "parser.yy"
+#line 782 "parser.yy"
     { (yyval.sn) = new StatementNode(StatementNode::Goto, (yyvsp[(3) - (4)].en)); }
     break;
@@ -6113,5 +6114,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 785 "parser.yy"
+#line 786 "parser.yy"
     { (yyval.sn) = new StatementNode(StatementNode::Continue, 0, 0); }
     break;
@@ -6120,5 +6121,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 789 "parser.yy"
+#line 790 "parser.yy"
     { (yyval.sn) = new StatementNode(StatementNode::Continue, (yyvsp[(2) - (3)].tok)); }
     break;
@@ -6127,5 +6128,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 793 "parser.yy"
+#line 794 "parser.yy"
     { (yyval.sn) = new StatementNode(StatementNode::Break, 0, 0); }
     break;
@@ -6134,5 +6135,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 797 "parser.yy"
+#line 798 "parser.yy"
     { (yyval.sn) = new StatementNode(StatementNode::Break, (yyvsp[(2) - (3)].tok) ); }
     break;
@@ -6141,5 +6142,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 799 "parser.yy"
+#line 800 "parser.yy"
     { (yyval.sn) = new StatementNode(StatementNode::Return, (yyvsp[(2) - (3)].en), 0); }
     break;
@@ -6148,5 +6149,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 801 "parser.yy"
+#line 802 "parser.yy"
     { (yyval.sn) = new StatementNode(StatementNode::Throw, (yyvsp[(2) - (3)].en), 0); }
     break;
@@ -6155,5 +6156,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 803 "parser.yy"
+#line 804 "parser.yy"
     { (yyval.sn) = new StatementNode(StatementNode::Throw, 0, 0); }
     break;
@@ -6162,5 +6163,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 808 "parser.yy"
+#line 809 "parser.yy"
     { (yyval.sn) = new StatementNode(StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn))))); }
     break;
@@ -6169,5 +6170,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 810 "parser.yy"
+#line 811 "parser.yy"
     { (yyval.sn) = new StatementNode(StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn))))); }
     break;
@@ -6176,5 +6177,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 812 "parser.yy"
+#line 813 "parser.yy"
     {
 			(yyvsp[(3) - (4)].pn)->set_link((yyvsp[(4) - (4)].pn));
@@ -6186,5 +6187,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 824 "parser.yy"
+#line 825 "parser.yy"
     { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); }
     break;
@@ -6193,5 +6194,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 826 "parser.yy"
+#line 827 "parser.yy"
     { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); }
     break;
@@ -6200,5 +6201,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 831 "parser.yy"
+#line 832 "parser.yy"
     { (yyval.pn) = StatementNode::newCatchStmt((yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn)); }
     break;
@@ -6207,5 +6208,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 833 "parser.yy"
+#line 834 "parser.yy"
     { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt((yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn)) ); }
     break;
@@ -6214,5 +6215,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 838 "parser.yy"
+#line 839 "parser.yy"
     {
 			(yyval.pn) = new StatementNode(StatementNode::Finally, 0, (yyvsp[(2) - (2)].sn));
@@ -6224,5 +6225,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 852 "parser.yy"
+#line 853 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -6234,5 +6235,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 857 "parser.yy"
+#line 858 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -6241,5 +6242,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 859 "parser.yy"
+#line 860 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -6251,5 +6252,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 868 "parser.yy"
+#line 869 "parser.yy"
     { (yyval.sn) = new StatementNode(StatementNode::Asm, 0, 0); }
     break;
@@ -6258,5 +6259,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 870 "parser.yy"
+#line 871 "parser.yy"
     { (yyval.sn) = new StatementNode(StatementNode::Asm, 0, 0); }
     break;
@@ -6265,5 +6266,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 872 "parser.yy"
+#line 873 "parser.yy"
     { (yyval.sn) = new StatementNode(StatementNode::Asm, 0, 0); }
     break;
@@ -6272,5 +6273,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 874 "parser.yy"
+#line 875 "parser.yy"
     { (yyval.sn) = new StatementNode(StatementNode::Asm, 0, 0); }
     break;
@@ -6279,5 +6280,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 888 "parser.yy"
+#line 889 "parser.yy"
     {}
     break;
@@ -6286,5 +6287,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 892 "parser.yy"
+#line 893 "parser.yy"
     {}
     break;
@@ -6293,5 +6294,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 900 "parser.yy"
+#line 901 "parser.yy"
     { (yyval.decl) = 0; }
     break;
@@ -6300,5 +6301,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 907 "parser.yy"
+#line 908 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
     break;
@@ -6307,5 +6308,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 912 "parser.yy"
+#line 913 "parser.yy"
     { (yyval.decl) = 0; }
     break;
@@ -6314,16 +6315,9 @@
 
 /* Line 1806 of yacc.c  */
-#line 919 "parser.yy"
+#line 920 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
     break;
 
   case 229:
-
-/* Line 1806 of yacc.c  */
-#line 933 "parser.yy"
-    {}
-    break;
-
-  case 230:
 
 /* Line 1806 of yacc.c  */
@@ -6332,8 +6326,15 @@
     break;
 
+  case 230:
+
+/* Line 1806 of yacc.c  */
+#line 935 "parser.yy"
+    {}
+    break;
+
   case 238:
 
 /* Line 1806 of yacc.c  */
-#line 964 "parser.yy"
+#line 965 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -6345,5 +6346,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 971 "parser.yy"
+#line 972 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -6355,5 +6356,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 976 "parser.yy"
+#line 977 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID );
@@ -6365,5 +6366,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 986 "parser.yy"
+#line 987 "parser.yy"
     {
 			typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
@@ -6375,5 +6376,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 991 "parser.yy"
+#line 992 "parser.yy"
     {
 			typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
@@ -6385,5 +6386,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 996 "parser.yy"
+#line 997 "parser.yy"
     {
 			typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) );
@@ -6395,5 +6396,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1004 "parser.yy"
+#line 1005 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -6405,5 +6406,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1009 "parser.yy"
+#line 1010 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -6415,5 +6416,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1014 "parser.yy"
+#line 1015 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -6425,5 +6426,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1019 "parser.yy"
+#line 1020 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -6435,5 +6436,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1024 "parser.yy"
+#line 1025 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
@@ -6445,5 +6446,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1032 "parser.yy"
+#line 1033 "parser.yy"
     {
 			typedefTable.setNextIdentifier( *((yyvsp[(5) - (10)].tok)) );
@@ -6455,5 +6456,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1037 "parser.yy"
+#line 1038 "parser.yy"
     {
 			typedefTable.setNextIdentifier( *((yyvsp[(5) - (10)].tok)) );
@@ -6465,5 +6466,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1052 "parser.yy"
+#line 1053 "parser.yy"
     {
 			(yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
@@ -6474,5 +6475,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1056 "parser.yy"
+#line 1057 "parser.yy"
     {
 			(yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
@@ -6483,5 +6484,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1063 "parser.yy"
+#line 1064 "parser.yy"
     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
     break;
@@ -6490,5 +6491,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1067 "parser.yy"
+#line 1068 "parser.yy"
     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
     break;
@@ -6497,5 +6498,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1072 "parser.yy"
+#line 1073 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::TD);
@@ -6507,5 +6508,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1077 "parser.yy"
+#line 1078 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::TD);
@@ -6517,5 +6518,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1082 "parser.yy"
+#line 1083 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD);
@@ -6527,5 +6528,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1094 "parser.yy"
+#line 1095 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::TD);
@@ -6537,5 +6538,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1099 "parser.yy"
+#line 1100 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::TD);
@@ -6547,5 +6548,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1104 "parser.yy"
+#line 1105 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::TD);
@@ -6557,5 +6558,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1109 "parser.yy"
+#line 1110 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::TD);
@@ -6567,5 +6568,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1114 "parser.yy"
+#line 1115 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::TD);
@@ -6577,5 +6578,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1122 "parser.yy"
+#line 1123 "parser.yy"
     {
 			typedefTable.addToEnclosingScope(*((yyvsp[(2) - (4)].tok)), TypedefTable::TD);
@@ -6587,5 +6588,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1127 "parser.yy"
+#line 1128 "parser.yy"
     {
 			typedefTable.addToEnclosingScope(*((yyvsp[(5) - (7)].tok)), TypedefTable::TD);
@@ -6597,5 +6598,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1144 "parser.yy"
+#line 1145 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -6607,5 +6608,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1149 "parser.yy"
+#line 1150 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -6617,5 +6618,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1171 "parser.yy"
+#line 1172 "parser.yy"
     { (yyval.decl) = 0; }
     break;
@@ -6624,5 +6625,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1184 "parser.yy"
+#line 1185 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -6631,5 +6632,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1190 "parser.yy"
+#line 1191 "parser.yy"
     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Attribute ); }
     break;
@@ -6638,5 +6639,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1195 "parser.yy"
+#line 1196 "parser.yy"
     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
     break;
@@ -6645,5 +6646,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1197 "parser.yy"
+#line 1198 "parser.yy"
     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
     break;
@@ -6652,5 +6653,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1199 "parser.yy"
+#line 1200 "parser.yy"
     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
     break;
@@ -6659,5 +6660,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1201 "parser.yy"
+#line 1202 "parser.yy"
     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
     break;
@@ -6666,5 +6667,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1203 "parser.yy"
+#line 1204 "parser.yy"
     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
     break;
@@ -6673,5 +6674,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1205 "parser.yy"
+#line 1206 "parser.yy"
     {
 			typedefTable.enterScope();
@@ -6682,5 +6683,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1209 "parser.yy"
+#line 1210 "parser.yy"
     {
 			typedefTable.leaveScope();
@@ -6692,5 +6693,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1218 "parser.yy"
+#line 1219 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -6699,5 +6700,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1220 "parser.yy"
+#line 1221 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     break;
@@ -6706,5 +6707,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1231 "parser.yy"
+#line 1232 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -6713,5 +6714,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1240 "parser.yy"
+#line 1241 "parser.yy"
     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
     break;
@@ -6720,5 +6721,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1242 "parser.yy"
+#line 1243 "parser.yy"
     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
     break;
@@ -6727,5 +6728,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1244 "parser.yy"
+#line 1245 "parser.yy"
     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
     break;
@@ -6734,5 +6735,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1246 "parser.yy"
+#line 1247 "parser.yy"
     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
     break;
@@ -6741,5 +6742,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1249 "parser.yy"
+#line 1250 "parser.yy"
     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); }
     break;
@@ -6748,5 +6749,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1251 "parser.yy"
+#line 1252 "parser.yy"
     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
     break;
@@ -6755,5 +6756,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1256 "parser.yy"
+#line 1257 "parser.yy"
     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
     break;
@@ -6762,5 +6763,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1258 "parser.yy"
+#line 1259 "parser.yy"
     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
     break;
@@ -6769,5 +6770,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1260 "parser.yy"
+#line 1261 "parser.yy"
     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
     break;
@@ -6776,5 +6777,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1262 "parser.yy"
+#line 1263 "parser.yy"
     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
     break;
@@ -6783,5 +6784,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1264 "parser.yy"
+#line 1265 "parser.yy"
     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); }
     break;
@@ -6790,5 +6791,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1266 "parser.yy"
+#line 1267 "parser.yy"
     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); }
     break;
@@ -6797,5 +6798,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1268 "parser.yy"
+#line 1269 "parser.yy"
     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); }
     break;
@@ -6804,5 +6805,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1270 "parser.yy"
+#line 1271 "parser.yy"
     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); }
     break;
@@ -6811,5 +6812,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1272 "parser.yy"
+#line 1273 "parser.yy"
     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
     break;
@@ -6818,5 +6819,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1274 "parser.yy"
+#line 1275 "parser.yy"
     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
     break;
@@ -6825,5 +6826,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1276 "parser.yy"
+#line 1277 "parser.yy"
     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); }
     break;
@@ -6832,5 +6833,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1278 "parser.yy"
+#line 1279 "parser.yy"
     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); }
     break;
@@ -6839,5 +6840,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1285 "parser.yy"
+#line 1286 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -6846,5 +6847,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1287 "parser.yy"
+#line 1288 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -6853,5 +6854,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1289 "parser.yy"
+#line 1290 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     break;
@@ -6860,5 +6861,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1291 "parser.yy"
+#line 1292 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
     break;
@@ -6867,5 +6868,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1297 "parser.yy"
+#line 1298 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     break;
@@ -6874,5 +6875,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1304 "parser.yy"
+#line 1305 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -6881,5 +6882,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1306 "parser.yy"
+#line 1307 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -6888,5 +6889,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1308 "parser.yy"
+#line 1309 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -6895,5 +6896,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1313 "parser.yy"
+#line 1314 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
     break;
@@ -6902,5 +6903,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1315 "parser.yy"
+#line 1316 "parser.yy"
     { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
     break;
@@ -6909,5 +6910,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1317 "parser.yy"
+#line 1318 "parser.yy"
     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
     break;
@@ -6916,5 +6917,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1319 "parser.yy"
+#line 1320 "parser.yy"
     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
     break;
@@ -6923,5 +6924,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1325 "parser.yy"
+#line 1326 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -6930,5 +6931,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1327 "parser.yy"
+#line 1328 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -6937,5 +6938,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1329 "parser.yy"
+#line 1330 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     break;
@@ -6944,5 +6945,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1335 "parser.yy"
+#line 1336 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -6951,5 +6952,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1337 "parser.yy"
+#line 1338 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -6958,5 +6959,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1343 "parser.yy"
+#line 1344 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -6965,5 +6966,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1345 "parser.yy"
+#line 1346 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -6972,5 +6973,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1347 "parser.yy"
+#line 1348 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     break;
@@ -6979,5 +6980,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1352 "parser.yy"
+#line 1353 "parser.yy"
     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
     break;
@@ -6986,5 +6987,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1354 "parser.yy"
+#line 1355 "parser.yy"
     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -6993,5 +6994,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1356 "parser.yy"
+#line 1357 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -7000,5 +7001,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1366 "parser.yy"
+#line 1367 "parser.yy"
     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, 0, (yyvsp[(3) - (4)].decl) ); }
     break;
@@ -7007,5 +7008,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1368 "parser.yy"
+#line 1369 "parser.yy"
     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), 0, 0, 0 ); }
     break;
@@ -7014,5 +7015,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1370 "parser.yy"
+#line 1371 "parser.yy"
     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (5)].aggKey), (yyvsp[(2) - (5)].tok), 0, 0, (yyvsp[(4) - (5)].decl) ); }
     break;
@@ -7021,5 +7022,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1372 "parser.yy"
+#line 1373 "parser.yy"
     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (9)].aggKey), 0, (yyvsp[(4) - (9)].decl), 0, (yyvsp[(8) - (9)].decl) ); }
     break;
@@ -7028,5 +7029,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1374 "parser.yy"
+#line 1375 "parser.yy"
     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), (yyvsp[(7) - (7)].tok), (yyvsp[(4) - (7)].decl), 0, 0 ); }
     break;
@@ -7035,5 +7036,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1376 "parser.yy"
+#line 1377 "parser.yy"
     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (10)].aggKey), (yyvsp[(7) - (10)].tok), (yyvsp[(4) - (10)].decl), 0, (yyvsp[(9) - (10)].decl) ); }
     break;
@@ -7042,5 +7043,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1378 "parser.yy"
+#line 1379 "parser.yy"
     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (12)].aggKey), 0, (yyvsp[(4) - (12)].decl), (yyvsp[(8) - (12)].en), (yyvsp[(11) - (12)].decl) ); }
     break;
@@ -7049,5 +7050,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1381 "parser.yy"
+#line 1382 "parser.yy"
     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), (yyvsp[(7) - (7)].tok), 0, (yyvsp[(4) - (7)].en), 0 ); }
     break;
@@ -7056,5 +7057,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1383 "parser.yy"
+#line 1384 "parser.yy"
     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (13)].aggKey), (yyvsp[(10) - (13)].tok), (yyvsp[(4) - (13)].decl), (yyvsp[(8) - (13)].en), (yyvsp[(12) - (13)].decl) ); }
     break;
@@ -7063,5 +7064,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1388 "parser.yy"
+#line 1389 "parser.yy"
     { (yyval.aggKey) = DeclarationNode::Struct; }
     break;
@@ -7070,5 +7071,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1390 "parser.yy"
+#line 1391 "parser.yy"
     { (yyval.aggKey) = DeclarationNode::Union; }
     break;
@@ -7077,5 +7078,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1395 "parser.yy"
+#line 1396 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (1)].decl); }
     break;
@@ -7084,5 +7085,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1397 "parser.yy"
+#line 1398 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -7091,5 +7092,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1403 "parser.yy"
+#line 1404 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -7098,5 +7099,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1406 "parser.yy"
+#line 1407 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -7105,5 +7106,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1412 "parser.yy"
+#line 1413 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
     break;
@@ -7112,5 +7113,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1414 "parser.yy"
+#line 1415 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
     break;
@@ -7119,5 +7120,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1416 "parser.yy"
+#line 1417 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
     break;
@@ -7126,5 +7127,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1421 "parser.yy"
+#line 1422 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -7133,5 +7134,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1423 "parser.yy"
+#line 1424 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
     break;
@@ -7140,5 +7141,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1428 "parser.yy"
+#line 1429 "parser.yy"
     { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
     break;
@@ -7147,5 +7148,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1430 "parser.yy"
+#line 1431 "parser.yy"
     { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
     break;
@@ -7154,5 +7155,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1433 "parser.yy"
+#line 1434 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
     break;
@@ -7161,5 +7162,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1436 "parser.yy"
+#line 1437 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
     break;
@@ -7168,5 +7169,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1442 "parser.yy"
+#line 1443 "parser.yy"
     { (yyval.en) = 0; }
     break;
@@ -7175,5 +7176,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1444 "parser.yy"
+#line 1445 "parser.yy"
     { (yyval.en) = (yyvsp[(1) - (1)].en); }
     break;
@@ -7182,5 +7183,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1449 "parser.yy"
+#line 1450 "parser.yy"
     { (yyval.en) = (yyvsp[(2) - (2)].en); }
     break;
@@ -7189,5 +7190,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1458 "parser.yy"
+#line 1459 "parser.yy"
     { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); }
     break;
@@ -7196,5 +7197,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1460 "parser.yy"
+#line 1461 "parser.yy"
     { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (6)].tok), (yyvsp[(4) - (6)].decl) ); }
     break;
@@ -7203,5 +7204,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1462 "parser.yy"
+#line 1463 "parser.yy"
     { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (2)].tok), 0 ); }
     break;
@@ -7210,5 +7211,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1467 "parser.yy"
+#line 1468 "parser.yy"
     { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
     break;
@@ -7217,5 +7218,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1469 "parser.yy"
+#line 1470 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
     break;
@@ -7224,5 +7225,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1474 "parser.yy"
+#line 1475 "parser.yy"
     { (yyval.en) = 0; }
     break;
@@ -7231,5 +7232,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1476 "parser.yy"
+#line 1477 "parser.yy"
     { (yyval.en) = (yyvsp[(2) - (2)].en); }
     break;
@@ -7238,5 +7239,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1483 "parser.yy"
+#line 1484 "parser.yy"
     { (yyval.decl) = 0; }
     break;
@@ -7245,5 +7246,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1491 "parser.yy"
+#line 1492 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     break;
@@ -7252,5 +7253,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1493 "parser.yy"
+#line 1494 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     break;
@@ -7259,5 +7260,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1495 "parser.yy"
+#line 1496 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     break;
@@ -7266,5 +7267,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1504 "parser.yy"
+#line 1505 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     break;
@@ -7273,5 +7274,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1506 "parser.yy"
+#line 1507 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     break;
@@ -7280,5 +7281,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1508 "parser.yy"
+#line 1509 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
     break;
@@ -7287,5 +7288,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1514 "parser.yy"
+#line 1515 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     break;
@@ -7294,5 +7295,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1519 "parser.yy"
+#line 1520 "parser.yy"
     { (yyval.decl) = 0; }
     break;
@@ -7301,5 +7302,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1526 "parser.yy"
+#line 1527 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     break;
@@ -7308,5 +7309,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1533 "parser.yy"
+#line 1534 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     break;
@@ -7315,5 +7316,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1535 "parser.yy"
+#line 1536 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     break;
@@ -7322,5 +7323,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1545 "parser.yy"
+#line 1546 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
     break;
@@ -7329,5 +7330,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1548 "parser.yy"
+#line 1549 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
     break;
@@ -7336,5 +7337,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1550 "parser.yy"
+#line 1551 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
     break;
@@ -7343,5 +7344,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1560 "parser.yy"
+#line 1561 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -7350,5 +7351,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1566 "parser.yy"
+#line 1567 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -7360,5 +7361,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1571 "parser.yy"
+#line 1572 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -7370,5 +7371,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1580 "parser.yy"
+#line 1581 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -7377,5 +7378,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1589 "parser.yy"
+#line 1590 "parser.yy"
     { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
     break;
@@ -7384,5 +7385,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1591 "parser.yy"
+#line 1592 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
     break;
@@ -7391,5 +7392,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1616 "parser.yy"
+#line 1617 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -7398,5 +7399,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1624 "parser.yy"
+#line 1625 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -7405,5 +7406,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1629 "parser.yy"
+#line 1630 "parser.yy"
     { (yyval.in) = 0; }
     break;
@@ -7412,5 +7413,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1630 "parser.yy"
+#line 1631 "parser.yy"
     { (yyval.in) = (yyvsp[(2) - (2)].in); }
     break;
@@ -7419,5 +7420,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1634 "parser.yy"
+#line 1635 "parser.yy"
     { (yyval.in) = new InitializerNode((yyvsp[(1) - (1)].en)); }
     break;
@@ -7426,5 +7427,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1635 "parser.yy"
+#line 1636 "parser.yy"
     { (yyval.in) = new InitializerNode((yyvsp[(2) - (4)].in), true); }
     break;
@@ -7433,5 +7434,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1640 "parser.yy"
+#line 1641 "parser.yy"
     { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
     break;
@@ -7440,5 +7441,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1641 "parser.yy"
+#line 1642 "parser.yy"
     { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link((yyvsp[(3) - (3)].in)) ); }
     break;
@@ -7447,5 +7448,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1643 "parser.yy"
+#line 1644 "parser.yy"
     { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_link( (yyvsp[(4) - (4)].in)->set_designators((yyvsp[(3) - (4)].en)) ) ); }
     break;
@@ -7454,5 +7455,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1659 "parser.yy"
+#line 1660 "parser.yy"
     { (yyval.en) = new VarRefNode( (yyvsp[(1) - (2)].tok) ); }
     break;
@@ -7461,5 +7462,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1664 "parser.yy"
+#line 1665 "parser.yy"
     { (yyval.en) = (ExpressionNode *)((yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) )); }
     break;
@@ -7468,5 +7469,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1669 "parser.yy"
+#line 1670 "parser.yy"
     { (yyval.en) = new VarRefNode( (yyvsp[(2) - (2)].tok) ); }
     break;
@@ -7475,5 +7476,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1673 "parser.yy"
+#line 1674 "parser.yy"
     { (yyval.en) = (yyvsp[(3) - (5)].en); }
     break;
@@ -7482,5 +7483,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1675 "parser.yy"
+#line 1676 "parser.yy"
     { (yyval.en) = (yyvsp[(3) - (5)].en); }
     break;
@@ -7489,5 +7490,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1677 "parser.yy"
+#line 1678 "parser.yy"
     { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Range), (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en)); }
     break;
@@ -7496,5 +7497,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1679 "parser.yy"
+#line 1680 "parser.yy"
     { (yyval.en) = (yyvsp[(4) - (6)].en); }
     break;
@@ -7503,5 +7504,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1704 "parser.yy"
+#line 1705 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -7510,5 +7511,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1706 "parser.yy"
+#line 1707 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -7517,5 +7518,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1708 "parser.yy"
+#line 1709 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     break;
@@ -7524,5 +7525,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1713 "parser.yy"
+#line 1714 "parser.yy"
     { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
     break;
@@ -7531,5 +7532,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1715 "parser.yy"
+#line 1716 "parser.yy"
     { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(2) - (5)].tok), (yyvsp[(4) - (5)].en) )->addQualifiers( (yyvsp[(1) - (5)].decl) ); }
     break;
@@ -7538,5 +7539,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1717 "parser.yy"
+#line 1718 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -7545,5 +7546,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1723 "parser.yy"
+#line 1724 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
     break;
@@ -7552,5 +7553,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1728 "parser.yy"
+#line 1729 "parser.yy"
     { typedefTable.addToEnclosingScope(*((yyvsp[(2) - (2)].tok)), TypedefTable::TD); }
     break;
@@ -7559,5 +7560,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1730 "parser.yy"
+#line 1731 "parser.yy"
     { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -7566,5 +7567,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1736 "parser.yy"
+#line 1737 "parser.yy"
     { (yyval.tclass) = DeclarationNode::Type; }
     break;
@@ -7573,5 +7574,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1738 "parser.yy"
+#line 1739 "parser.yy"
     { (yyval.tclass) = DeclarationNode::Ftype; }
     break;
@@ -7580,5 +7581,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1740 "parser.yy"
+#line 1741 "parser.yy"
     { (yyval.tclass) = DeclarationNode::Dtype; }
     break;
@@ -7587,5 +7588,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1745 "parser.yy"
+#line 1746 "parser.yy"
     { (yyval.decl) = 0; }
     break;
@@ -7594,5 +7595,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1747 "parser.yy"
+#line 1748 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl) == 0 ? (yyvsp[(2) - (2)].decl) : (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -7601,5 +7602,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1752 "parser.yy"
+#line 1753 "parser.yy"
     {
 			typedefTable.openContext( *((yyvsp[(2) - (5)].tok)) );
@@ -7611,5 +7612,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1757 "parser.yy"
+#line 1758 "parser.yy"
     { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
     break;
@@ -7618,5 +7619,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1759 "parser.yy"
+#line 1760 "parser.yy"
     { (yyval.decl) = 0; }
     break;
@@ -7625,5 +7626,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1764 "parser.yy"
+#line 1765 "parser.yy"
     { (yyval.en) = new TypeValueNode( (yyvsp[(1) - (1)].decl) ); }
     break;
@@ -7632,5 +7633,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1767 "parser.yy"
+#line 1768 "parser.yy"
     { (yyval.en) = (ExpressionNode *)((yyvsp[(1) - (3)].en)->set_link(new TypeValueNode( (yyvsp[(3) - (3)].decl) ))); }
     break;
@@ -7639,5 +7640,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1769 "parser.yy"
+#line 1770 "parser.yy"
     { (yyval.en) = (ExpressionNode *)((yyvsp[(1) - (3)].en)->set_link((yyvsp[(3) - (3)].en))); }
     break;
@@ -7646,5 +7647,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1774 "parser.yy"
+#line 1775 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
     break;
@@ -7653,5 +7654,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1776 "parser.yy"
+#line 1777 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
     break;
@@ -7660,5 +7661,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1778 "parser.yy"
+#line 1779 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
     break;
@@ -7667,5 +7668,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1783 "parser.yy"
+#line 1784 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -7674,5 +7675,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1785 "parser.yy"
+#line 1786 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -7681,5 +7682,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1790 "parser.yy"
+#line 1791 "parser.yy"
     {
 			typedefTable.addToEnclosingScope(*((yyvsp[(1) - (1)].tok)), TypedefTable::TD);
@@ -7691,5 +7692,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1795 "parser.yy"
+#line 1796 "parser.yy"
     {
 			typedefTable.addToEnclosingScope(*((yyvsp[(1) - (6)].tok)), TypedefTable::TG);
@@ -7701,5 +7702,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1803 "parser.yy"
+#line 1804 "parser.yy"
     {
 			typedefTable.addToEnclosingScope(*((yyvsp[(2) - (9)].tok)), TypedefTable::ID );
@@ -7711,5 +7712,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1808 "parser.yy"
+#line 1809 "parser.yy"
     {
 			typedefTable.enterContext( *((yyvsp[(2) - (8)].tok)) );
@@ -7721,5 +7722,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1813 "parser.yy"
+#line 1814 "parser.yy"
     {
 			typedefTable.leaveContext();
@@ -7732,5 +7733,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1823 "parser.yy"
+#line 1824 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
     break;
@@ -7739,5 +7740,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1833 "parser.yy"
+#line 1834 "parser.yy"
     {
 			typedefTable.addToEnclosingScope2( TypedefTable::ID );
@@ -7749,5 +7750,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1838 "parser.yy"
+#line 1839 "parser.yy"
     {
 			typedefTable.addToEnclosingScope2( TypedefTable::ID );
@@ -7759,5 +7760,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1843 "parser.yy"
+#line 1844 "parser.yy"
     {
 			typedefTable.addToEnclosingScope2( *((yyvsp[(5) - (5)].tok)), TypedefTable::ID );
@@ -7769,5 +7770,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1851 "parser.yy"
+#line 1852 "parser.yy"
     {
 			typedefTable.addToEnclosingScope2( TypedefTable::ID );
@@ -7779,5 +7780,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1856 "parser.yy"
+#line 1857 "parser.yy"
     {
 			typedefTable.addToEnclosingScope2( TypedefTable::ID );
@@ -7789,5 +7790,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1866 "parser.yy"
+#line 1867 "parser.yy"
     {}
     break;
@@ -7796,5 +7797,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1868 "parser.yy"
+#line 1869 "parser.yy"
     {
 			if ( theTree ) {
@@ -7809,5 +7810,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1880 "parser.yy"
+#line 1881 "parser.yy"
     { (yyval.decl) = ((yyvsp[(1) - (3)].decl) != NULL ) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
     break;
@@ -7816,5 +7817,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1885 "parser.yy"
+#line 1886 "parser.yy"
     { (yyval.decl) = 0; }
     break;
@@ -7823,5 +7824,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1893 "parser.yy"
+#line 1894 "parser.yy"
     {}
     break;
@@ -7830,5 +7831,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1895 "parser.yy"
+#line 1896 "parser.yy"
     {
 			linkageStack.push( linkage );
@@ -7840,5 +7841,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1900 "parser.yy"
+#line 1901 "parser.yy"
     {
 			linkage = linkageStack.top();
@@ -7851,5 +7852,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1906 "parser.yy"
+#line 1907 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
     break;
@@ -7858,5 +7859,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1918 "parser.yy"
+#line 1919 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -7869,5 +7870,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1924 "parser.yy"
+#line 1925 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -7880,5 +7881,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1933 "parser.yy"
+#line 1934 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -7891,5 +7892,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1939 "parser.yy"
+#line 1940 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -7902,5 +7903,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1945 "parser.yy"
+#line 1946 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -7913,5 +7914,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1951 "parser.yy"
+#line 1952 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -7924,5 +7925,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1957 "parser.yy"
+#line 1958 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -7935,5 +7936,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1965 "parser.yy"
+#line 1966 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -7946,5 +7947,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1971 "parser.yy"
+#line 1972 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -7957,5 +7958,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1979 "parser.yy"
+#line 1980 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -7968,5 +7969,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 1985 "parser.yy"
+#line 1986 "parser.yy"
     {
 			typedefTable.addToEnclosingScope( TypedefTable::ID );
@@ -7979,16 +7980,9 @@
 
 /* Line 1806 of yacc.c  */
-#line 2000 "parser.yy"
+#line 2001 "parser.yy"
     { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Range), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en)); }
     break;
 
   case 539:
-
-/* Line 1806 of yacc.c  */
-#line 2034 "parser.yy"
-    {}
-    break;
-
-  case 540:
 
 /* Line 1806 of yacc.c  */
@@ -7997,5 +7991,5 @@
     break;
 
-  case 541:
+  case 540:
 
 /* Line 1806 of yacc.c  */
@@ -8004,5 +7998,5 @@
     break;
 
-  case 542:
+  case 541:
 
 /* Line 1806 of yacc.c  */
@@ -8011,8 +8005,15 @@
     break;
 
+  case 542:
+
+/* Line 1806 of yacc.c  */
+#line 2038 "parser.yy"
+    {}
+    break;
+
   case 547:
 
 /* Line 1806 of yacc.c  */
-#line 2080 "parser.yy"
+#line 2081 "parser.yy"
     {
 			typedefTable.setNextIdentifier( *((yyvsp[(1) - (1)].tok)) );
@@ -8024,5 +8025,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2085 "parser.yy"
+#line 2086 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8031,5 +8032,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2090 "parser.yy"
+#line 2091 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8038,5 +8039,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2092 "parser.yy"
+#line 2093 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     break;
@@ -8045,5 +8046,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2094 "parser.yy"
+#line 2095 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8052,5 +8053,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2099 "parser.yy"
+#line 2100 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8059,5 +8060,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2101 "parser.yy"
+#line 2102 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8066,5 +8067,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2103 "parser.yy"
+#line 2104 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8073,5 +8074,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2105 "parser.yy"
+#line 2106 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8080,5 +8081,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2110 "parser.yy"
+#line 2111 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     break;
@@ -8087,5 +8088,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2112 "parser.yy"
+#line 2113 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8094,5 +8095,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2128 "parser.yy"
+#line 2129 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     break;
@@ -8101,5 +8102,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2130 "parser.yy"
+#line 2131 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     break;
@@ -8108,5 +8109,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2132 "parser.yy"
+#line 2133 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8115,5 +8116,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2137 "parser.yy"
+#line 2138 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8122,5 +8123,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2139 "parser.yy"
+#line 2140 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     break;
@@ -8129,5 +8130,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2141 "parser.yy"
+#line 2142 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8136,5 +8137,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2146 "parser.yy"
+#line 2147 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8143,5 +8144,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2148 "parser.yy"
+#line 2149 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8150,5 +8151,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2150 "parser.yy"
+#line 2151 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8157,5 +8158,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2165 "parser.yy"
+#line 2166 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
     break;
@@ -8164,5 +8165,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2167 "parser.yy"
+#line 2168 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
     break;
@@ -8171,5 +8172,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2169 "parser.yy"
+#line 2170 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8178,5 +8179,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2174 "parser.yy"
+#line 2175 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8185,5 +8186,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2176 "parser.yy"
+#line 2177 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     break;
@@ -8192,5 +8193,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2178 "parser.yy"
+#line 2179 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8199,5 +8200,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2183 "parser.yy"
+#line 2184 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8206,5 +8207,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2185 "parser.yy"
+#line 2186 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8213,5 +8214,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2187 "parser.yy"
+#line 2188 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8220,5 +8221,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2209 "parser.yy"
+#line 2210 "parser.yy"
     {
 			typedefTable.setNextIdentifier( *((yyvsp[(1) - (1)].tok)) );
@@ -8230,5 +8231,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2214 "parser.yy"
+#line 2215 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8237,5 +8238,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2219 "parser.yy"
+#line 2220 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8244,5 +8245,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2221 "parser.yy"
+#line 2222 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     break;
@@ -8251,5 +8252,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2223 "parser.yy"
+#line 2224 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8258,5 +8259,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2228 "parser.yy"
+#line 2229 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8265,5 +8266,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2230 "parser.yy"
+#line 2231 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8272,5 +8273,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2232 "parser.yy"
+#line 2233 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8279,5 +8280,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2234 "parser.yy"
+#line 2235 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8286,5 +8287,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2239 "parser.yy"
+#line 2240 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     break;
@@ -8293,5 +8294,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2241 "parser.yy"
+#line 2242 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     break;
@@ -8300,5 +8301,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2243 "parser.yy"
+#line 2244 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8307,5 +8308,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2260 "parser.yy"
+#line 2261 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8314,5 +8315,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2262 "parser.yy"
+#line 2263 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     break;
@@ -8321,5 +8322,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2264 "parser.yy"
+#line 2265 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8328,5 +8329,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2269 "parser.yy"
+#line 2270 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8335,5 +8336,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2271 "parser.yy"
+#line 2272 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8342,5 +8343,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2273 "parser.yy"
+#line 2274 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8349,5 +8350,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2275 "parser.yy"
+#line 2276 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8356,5 +8357,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2280 "parser.yy"
+#line 2281 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     break;
@@ -8363,5 +8364,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2282 "parser.yy"
+#line 2283 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     break;
@@ -8370,5 +8371,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2284 "parser.yy"
+#line 2285 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8377,5 +8378,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2322 "parser.yy"
+#line 2323 "parser.yy"
     {
 			typedefTable.setNextIdentifier( *((yyvsp[(1) - (1)].tok)) );
@@ -8387,5 +8388,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2330 "parser.yy"
+#line 2331 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8394,5 +8395,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2332 "parser.yy"
+#line 2333 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     break;
@@ -8401,5 +8402,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2334 "parser.yy"
+#line 2335 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8408,5 +8409,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2339 "parser.yy"
+#line 2340 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8415,5 +8416,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2341 "parser.yy"
+#line 2342 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8422,5 +8423,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2346 "parser.yy"
+#line 2347 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     break;
@@ -8429,5 +8430,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2348 "parser.yy"
+#line 2349 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     break;
@@ -8436,5 +8437,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2368 "parser.yy"
+#line 2369 "parser.yy"
     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     break;
@@ -8443,5 +8444,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2370 "parser.yy"
+#line 2371 "parser.yy"
     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8450,5 +8451,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2372 "parser.yy"
+#line 2373 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8457,5 +8458,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2374 "parser.yy"
+#line 2375 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     break;
@@ -8464,5 +8465,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2376 "parser.yy"
+#line 2377 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8471,5 +8472,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2382 "parser.yy"
+#line 2383 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8478,5 +8479,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2384 "parser.yy"
+#line 2385 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8485,5 +8486,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2386 "parser.yy"
+#line 2387 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8492,5 +8493,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2391 "parser.yy"
+#line 2392 "parser.yy"
     { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
     break;
@@ -8499,5 +8500,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2393 "parser.yy"
+#line 2394 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     break;
@@ -8506,5 +8507,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2395 "parser.yy"
+#line 2396 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8513,5 +8514,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2401 "parser.yy"
+#line 2402 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     break;
@@ -8520,5 +8521,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2403 "parser.yy"
+#line 2404 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(5) - (5)].decl) ); }
     break;
@@ -8527,5 +8528,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2409 "parser.yy"
+#line 2410 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
     break;
@@ -8534,5 +8535,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2411 "parser.yy"
+#line 2412 "parser.yy"
     { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
     break;
@@ -8541,5 +8542,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2413 "parser.yy"
+#line 2414 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
     break;
@@ -8548,5 +8549,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2415 "parser.yy"
+#line 2416 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
     break;
@@ -8555,5 +8556,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2435 "parser.yy"
+#line 2436 "parser.yy"
     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     break;
@@ -8562,5 +8563,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2437 "parser.yy"
+#line 2438 "parser.yy"
     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8569,5 +8570,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2439 "parser.yy"
+#line 2440 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8576,5 +8577,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2441 "parser.yy"
+#line 2442 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     break;
@@ -8583,5 +8584,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2443 "parser.yy"
+#line 2444 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8590,5 +8591,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2449 "parser.yy"
+#line 2450 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8597,5 +8598,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2451 "parser.yy"
+#line 2452 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8604,5 +8605,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2453 "parser.yy"
+#line 2454 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8611,5 +8612,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2458 "parser.yy"
+#line 2459 "parser.yy"
     { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
     break;
@@ -8618,5 +8619,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2460 "parser.yy"
+#line 2461 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     break;
@@ -8625,5 +8626,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2462 "parser.yy"
+#line 2463 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8632,5 +8633,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2469 "parser.yy"
+#line 2470 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8639,5 +8640,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2481 "parser.yy"
+#line 2482 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     break;
@@ -8646,5 +8647,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2484 "parser.yy"
+#line 2485 "parser.yy"
     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
     break;
@@ -8653,5 +8654,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2486 "parser.yy"
+#line 2487 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
     break;
@@ -8660,5 +8661,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2489 "parser.yy"
+#line 2490 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
     break;
@@ -8667,5 +8668,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2491 "parser.yy"
+#line 2492 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
     break;
@@ -8674,5 +8675,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2493 "parser.yy"
+#line 2494 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
     break;
@@ -8681,5 +8682,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2512 "parser.yy"
+#line 2513 "parser.yy"
     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     break;
@@ -8688,5 +8689,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2514 "parser.yy"
+#line 2515 "parser.yy"
     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8695,5 +8696,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2516 "parser.yy"
+#line 2517 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8702,5 +8703,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2518 "parser.yy"
+#line 2519 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     break;
@@ -8709,5 +8710,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2520 "parser.yy"
+#line 2521 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8716,5 +8717,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2526 "parser.yy"
+#line 2527 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8723,5 +8724,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2528 "parser.yy"
+#line 2529 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8730,5 +8731,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2530 "parser.yy"
+#line 2531 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8737,5 +8738,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2535 "parser.yy"
+#line 2536 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     break;
@@ -8744,5 +8745,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2537 "parser.yy"
+#line 2538 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8751,5 +8752,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2547 "parser.yy"
+#line 2548 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -8758,5 +8759,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2557 "parser.yy"
+#line 2558 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8765,5 +8766,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2559 "parser.yy"
+#line 2560 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     break;
@@ -8772,5 +8773,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2561 "parser.yy"
+#line 2562 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8779,5 +8780,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2563 "parser.yy"
+#line 2564 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     break;
@@ -8786,5 +8787,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2565 "parser.yy"
+#line 2566 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8793,5 +8794,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2567 "parser.yy"
+#line 2568 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     break;
@@ -8800,5 +8801,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2574 "parser.yy"
+#line 2575 "parser.yy"
     { (yyval.decl) = (yyvsp[(5) - (5)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     break;
@@ -8807,5 +8808,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2576 "parser.yy"
+#line 2577 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -8814,5 +8815,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2578 "parser.yy"
+#line 2579 "parser.yy"
     { (yyval.decl) = (yyvsp[(6) - (6)].decl)->addNewArray( (yyvsp[(5) - (6)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     break;
@@ -8821,5 +8822,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2580 "parser.yy"
+#line 2581 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     break;
@@ -8828,5 +8829,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2582 "parser.yy"
+#line 2583 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -8835,5 +8836,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2584 "parser.yy"
+#line 2585 "parser.yy"
     { (yyval.decl) = (yyvsp[(5) - (5)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     break;
@@ -8842,5 +8843,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2586 "parser.yy"
+#line 2587 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -8849,5 +8850,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2588 "parser.yy"
+#line 2589 "parser.yy"
     { (yyval.decl) = (yyvsp[(6) - (6)].decl)->addNewArray( (yyvsp[(5) - (6)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     break;
@@ -8856,5 +8857,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2590 "parser.yy"
+#line 2591 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     break;
@@ -8863,5 +8864,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2592 "parser.yy"
+#line 2593 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -8870,5 +8871,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2597 "parser.yy"
+#line 2598 "parser.yy"
     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
     break;
@@ -8877,5 +8878,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2599 "parser.yy"
+#line 2600 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
     break;
@@ -8884,5 +8885,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2604 "parser.yy"
+#line 2605 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
     break;
@@ -8891,5 +8892,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2606 "parser.yy"
+#line 2607 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
     break;
@@ -8898,5 +8899,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2633 "parser.yy"
+#line 2634 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -8905,5 +8906,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2644 "parser.yy"
+#line 2645 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8912,5 +8913,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2646 "parser.yy"
+#line 2647 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     break;
@@ -8919,5 +8920,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2648 "parser.yy"
+#line 2649 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8926,5 +8927,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2650 "parser.yy"
+#line 2651 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     break;
@@ -8933,5 +8934,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2652 "parser.yy"
+#line 2653 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8940,5 +8941,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2654 "parser.yy"
+#line 2655 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     break;
@@ -8947,5 +8948,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2661 "parser.yy"
+#line 2662 "parser.yy"
     { (yyval.decl) = (yyvsp[(5) - (5)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     break;
@@ -8954,5 +8955,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2663 "parser.yy"
+#line 2664 "parser.yy"
     { (yyval.decl) = (yyvsp[(6) - (6)].decl)->addNewArray( (yyvsp[(5) - (6)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     break;
@@ -8961,5 +8962,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2665 "parser.yy"
+#line 2666 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -8968,5 +8969,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2667 "parser.yy"
+#line 2668 "parser.yy"
     { (yyval.decl) = (yyvsp[(5) - (5)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     break;
@@ -8975,5 +8976,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2669 "parser.yy"
+#line 2670 "parser.yy"
     { (yyval.decl) = (yyvsp[(6) - (6)].decl)->addNewArray( (yyvsp[(5) - (6)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     break;
@@ -8982,5 +8983,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2671 "parser.yy"
+#line 2672 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -8989,5 +8990,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2676 "parser.yy"
+#line 2677 "parser.yy"
     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
     break;
@@ -8996,5 +8997,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2681 "parser.yy"
+#line 2682 "parser.yy"
     { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (7)].decl), 0 ); }
     break;
@@ -9003,5 +9004,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2683 "parser.yy"
+#line 2684 "parser.yy"
     { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
     break;
@@ -9010,5 +9011,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2685 "parser.yy"
+#line 2686 "parser.yy"
     { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
     break;
@@ -9017,5 +9018,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2711 "parser.yy"
+#line 2712 "parser.yy"
     { (yyval.en) = 0; }
     break;
@@ -9024,5 +9025,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2713 "parser.yy"
+#line 2714 "parser.yy"
     { (yyval.en) = (yyvsp[(2) - (2)].en); }
     break;
@@ -9031,5 +9032,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 9034 "Parser/parser.cc"
+#line 9035 "Parser/parser.cc"
       default: break;
     }
@@ -9262,5 +9263,5 @@
 
 /* Line 2067 of yacc.c  */
-#line 2716 "parser.yy"
+#line 2717 "parser.yy"
 
 // ----end of grammar----
@@ -9271,5 +9272,6 @@
 	    std::cout << "in file " << yyfilename << " ";
 	} // if
-	std::cout << "at line " << yylineno << " reading token \"" << *(yylval.tok.str) << "\"" << std::endl;
+//	std::cout << "at line " << yylineno << " reading token \"" << *(yylval.tok.str) << "\"" << std::endl;
+	std::cout << "at line " << yylineno << " reading token \"" << yytext << "\"" << std::endl;
 }
 
Index: src/Parser/parser.h
===================================================================
--- src/Parser/parser.h	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
+++ src/Parser/parser.h	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
@@ -246,5 +246,5 @@
 
 /* Line 2068 of yacc.c  */
-#line 107 "parser.yy"
+#line 108 "parser.yy"
 
 	Token tok;
Index: src/Parser/parser.yy
===================================================================
--- src/Parser/parser.yy	(revision 5f2f2d75adcd9f673ef8bda86f25d409347089be)
+++ src/Parser/parser.yy	(revision 8a95629f07fa647caf0004c609a305c6db9b1816)
@@ -10,6 +10,6 @@
 // Created On       : Sat Sep  1 20:22:55 2001
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon Jun  8 20:31:07 2015
-// Update Count     : 1030
+// Last Modified On : Wed Jun 10 14:22:15 2015
+// Update Count     : 1039
 // 
 
@@ -46,4 +46,5 @@
 #define YYDEBUG_LEXER_TEXT (yylval)						// lexer loads this up each time
 #define YYDEBUG 1										// get the pretty debugging code to compile
+extern char *yytext;
 
 #undef __GNUC_MINOR__
@@ -2722,5 +2723,5 @@
 	    std::cout << "in file " << yyfilename << " ";
 	} // if
-	std::cout << "at line " << yylineno << " reading token \"" << *(yylval.tok.str) << "\"" << std::endl;
+	std::cout << "at line " << yylineno << " reading token \"" << yytext << "\"" << std::endl;
 }
 
