Changeset 8a95629


Ignore:
Timestamp:
Jun 10, 2015, 2:26:44 PM (8 years ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, gc_noraii, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, string, with_gc
Children:
b1d6dd5, b5c5684
Parents:
0b2961f
Message:

fix parsing error for syntax error message, work on regression testing

Location:
src
Files:
2 deleted
5 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/parser.cc

    r0b2961f r8a95629  
    7171#define YYDEBUG_LEXER_TEXT (yylval)                                             // lexer loads this up each time
    7272#define YYDEBUG 1                                                                               // get the pretty debugging code to compile
     73extern char *yytext;
    7374
    7475#undef __GNUC_MINOR__
     
    8889
    8990/* Line 268 of yacc.c  */
    90 #line 91 "Parser/parser.cc"
     91#line 92 "Parser/parser.cc"
    9192
    9293/* Enabling traces.  */
     
    323324
    324325/* Line 293 of yacc.c  */
    325 #line 107 "parser.yy"
     326#line 108 "parser.yy"
    326327
    327328        Token tok;
     
    338339
    339340/* Line 293 of yacc.c  */
    340 #line 341 "Parser/parser.cc"
     341#line 342 "Parser/parser.cc"
    341342} YYSTYPE;
    342343# define YYSTYPE_IS_TRIVIAL 1
     
    350351
    351352/* Line 343 of yacc.c  */
    352 #line 353 "Parser/parser.cc"
     353#line 354 "Parser/parser.cc"
    353354
    354355#ifdef short
     
    990991static const yytype_uint16 yyrline[] =
    991992{
    992        0,   281,   281,   287,   297,   298,   299,   303,   304,   305,
    993      309,   310,   314,   318,   319,   323,   324,   330,   332,   334,
    994      336,   338,   340,   345,   346,   352,   354,   356,   357,   359,
    995      360,   362,   365,   370,   371,   377,   378,   379,   384,   386,
    996      391,   392,   396,   398,   400,   402,   404,   409,   410,   412,
    997      414,   416,   418,   420,   426,   428,   430,   432,   434,   436,
    998      438,   440,   445,   446,   447,   448,   452,   453,   455,   460,
    999      461,   463,   465,   470,   471,   473,   478,   479,   481,   486,
    1000      487,   489,   491,   493,   498,   499,   501,   506,   507,   512,
    1001      513,   518,   519,   524,   525,   530,   531,   536,   537,   539,
    1002      541,   546,   551,   552,   554,   556,   562,   563,   569,   571,
    1003      573,   575,   580,   581,   586,   587,   588,   589,   590,   591,
    1004      592,   593,   594,   595,   599,   600,   606,   607,   613,   614,
    1005      615,   616,   617,   618,   619,   620,   624,   629,   631,   641,
    1006      642,   647,   649,   651,   653,   657,   658,   663,   668,   671,
    1007      673,   675,   681,   683,   691,   692,   694,   698,   699,   704,
    1008      705,   710,   711,   715,   720,   721,   725,   727,   733,   734,
    1009      738,   740,   742,   744,   750,   751,   755,   756,   760,   762,
    1010      764,   769,   771,   776,   778,   782,   786,   790,   794,   798,
    1011      800,   802,   807,   809,   811,   820,   823,   825,   830,   832,
    1012      837,   850,   851,   856,   858,   863,   867,   869,   871,   873,
    1013      877,   879,   883,   884,   888,   892,   893,   899,   901,   905,
    1014      906,   911,   913,   917,   918,   922,   924,   928,   929,   933,
    1015      934,   938,   939,   955,   956,   957,   958,   959,   963,   968,
    1016      975,   985,   990,   995,  1003,  1008,  1013,  1018,  1023,  1031,
    1017     1036,  1049,  1055,  1062,  1064,  1071,  1076,  1081,  1093,  1098,
    1018     1103,  1108,  1113,  1121,  1126,  1134,  1135,  1136,  1137,  1143,
    1019     1148,  1156,  1157,  1158,  1159,  1163,  1164,  1165,  1166,  1171,
    1020     1172,  1182,  1183,  1188,  1189,  1194,  1196,  1198,  1200,  1202,
    1021     1205,  1204,  1216,  1217,  1219,  1229,  1230,  1235,  1239,  1241,
    1022     1243,  1245,  1247,  1250,  1255,  1257,  1259,  1261,  1263,  1265,
    1023     1267,  1269,  1271,  1273,  1275,  1277,  1283,  1284,  1286,  1288,
    1024     1290,  1295,  1296,  1302,  1303,  1305,  1307,  1312,  1314,  1316,
    1025     1318,  1323,  1324,  1326,  1328,  1333,  1334,  1336,  1341,  1342,
    1026     1344,  1346,  1351,  1353,  1355,  1360,  1361,  1365,  1367,  1369,
    1027     1371,  1373,  1375,  1377,  1379,  1382,  1387,  1389,  1394,  1396,
    1028     1401,  1402,  1404,  1405,  1410,  1411,  1413,  1415,  1420,  1422,
    1029     1428,  1429,  1431,  1434,  1437,  1442,  1443,  1448,  1453,  1457,
    1030     1459,  1461,  1466,  1468,  1474,  1475,  1483,  1484,  1488,  1489,
    1031     1490,  1492,  1494,  1502,  1503,  1505,  1507,  1512,  1513,  1519,
    1032     1520,  1524,  1525,  1530,  1531,  1532,  1534,  1543,  1544,  1546,
    1033     1549,  1551,  1555,  1556,  1557,  1559,  1561,  1565,  1570,  1578,
    1034     1579,  1588,  1590,  1595,  1596,  1597,  1601,  1602,  1603,  1607,
    1035     1608,  1609,  1613,  1614,  1615,  1620,  1621,  1622,  1623,  1629,
    1036     1630,  1634,  1635,  1639,  1640,  1641,  1642,  1657,  1658,  1663,
    1037     1664,  1668,  1670,  1674,  1676,  1678,  1702,  1703,  1705,  1707,
    1038     1712,  1714,  1716,  1721,  1722,  1728,  1727,  1731,  1735,  1737,
    1039     1739,  1745,  1746,  1751,  1756,  1758,  1763,  1765,  1766,  1768,
    1040     1773,  1775,  1777,  1782,  1784,  1789,  1794,  1802,  1808,  1807,
    1041     1821,  1822,  1827,  1828,  1832,  1837,  1842,  1850,  1855,  1866,
    1042     1867,  1878,  1879,  1885,  1886,  1890,  1891,  1892,  1895,  1894,
    1043     1905,  1910,  1917,  1923,  1932,  1938,  1944,  1950,  1956,  1964,
    1044     1970,  1978,  1984,  1993,  1994,  1995,  1999,  2003,  2005,  2008,
    1045     2010,  2014,  2015,  2019,  2023,  2024,  2027,  2029,  2030,  2034,
    1046     2035,  2036,  2037,  2072,  2073,  2074,  2075,  2079,  2084,  2089,
    1047     2091,  2093,  2098,  2100,  2102,  2104,  2109,  2111,  2121,  2122,
    1048     2123,  2127,  2129,  2131,  2136,  2138,  2140,  2145,  2147,  2149,
    1049     2158,  2159,  2160,  2164,  2166,  2168,  2173,  2175,  2177,  2182,
    1050     2184,  2186,  2201,  2202,  2203,  2204,  2208,  2213,  2218,  2220,
    1051     2222,  2227,  2229,  2231,  2233,  2238,  2240,  2242,  2252,  2253,
    1052     2254,  2255,  2259,  2261,  2263,  2268,  2270,  2272,  2274,  2279,
    1053     2281,  2283,  2314,  2315,  2316,  2317,  2321,  2329,  2331,  2333,
    1054     2338,  2340,  2345,  2347,  2361,  2362,  2363,  2367,  2369,  2371,
    1055     2373,  2375,  2380,  2381,  2383,  2385,  2390,  2392,  2394,  2400,
    1056     2402,  2404,  2408,  2410,  2412,  2414,  2428,  2429,  2430,  2434,
    1057     2436,  2438,  2440,  2442,  2447,  2448,  2450,  2452,  2457,  2459,
    1058     2461,  2467,  2468,  2470,  2480,  2483,  2485,  2488,  2490,  2492,
    1059     2505,  2506,  2507,  2511,  2513,  2515,  2517,  2519,  2524,  2525,
    1060     2527,  2529,  2534,  2536,  2544,  2545,  2546,  2551,  2552,  2556,
    1061     2558,  2560,  2562,  2564,  2566,  2573,  2575,  2577,  2579,  2581,
    1062     2583,  2585,  2587,  2589,  2591,  2596,  2598,  2600,  2605,  2631,
    1063     2632,  2634,  2638,  2639,  2643,  2645,  2647,  2649,  2651,  2653,
    1064     2660,  2662,  2664,  2666,  2668,  2670,  2675,  2680,  2682,  2684,
    1065     2704,  2706,  2711,  2712
     993       0,   282,   282,   288,   298,   299,   300,   304,   305,   306,
     994     310,   311,   315,   319,   320,   324,   325,   331,   333,   335,
     995     337,   339,   341,   346,   347,   353,   355,   357,   358,   360,
     996     361,   363,   366,   371,   372,   378,   379,   380,   385,   387,
     997     392,   393,   397,   399,   401,   403,   405,   410,   411,   413,
     998     415,   417,   419,   421,   427,   429,   431,   433,   435,   437,
     999     439,   441,   446,   447,   448,   449,   453,   454,   456,   461,
     1000     462,   464,   466,   471,   472,   474,   479,   480,   482,   487,
     1001     488,   490,   492,   494,   499,   500,   502,   507,   508,   513,
     1002     514,   519,   520,   525,   526,   531,   532,   537,   538,   540,
     1003     542,   547,   552,   553,   555,   557,   563,   564,   570,   572,
     1004     574,   576,   581,   582,   587,   588,   589,   590,   591,   592,
     1005     593,   594,   595,   596,   600,   601,   607,   608,   614,   615,
     1006     616,   617,   618,   619,   620,   621,   625,   630,   632,   642,
     1007     643,   648,   650,   652,   654,   658,   659,   664,   669,   672,
     1008     674,   676,   682,   684,   692,   693,   695,   699,   700,   705,
     1009     706,   711,   712,   716,   721,   722,   726,   728,   734,   735,
     1010     739,   741,   743,   745,   751,   752,   756,   757,   761,   763,
     1011     765,   770,   772,   777,   779,   783,   787,   791,   795,   799,
     1012     801,   803,   808,   810,   812,   821,   824,   826,   831,   833,
     1013     838,   851,   852,   857,   859,   864,   868,   870,   872,   874,
     1014     878,   880,   884,   885,   889,   893,   894,   900,   902,   906,
     1015     907,   912,   914,   918,   919,   923,   925,   929,   930,   934,
     1016     935,   939,   940,   956,   957,   958,   959,   960,   964,   969,
     1017     976,   986,   991,   996,  1004,  1009,  1014,  1019,  1024,  1032,
     1018    1037,  1050,  1056,  1063,  1065,  1072,  1077,  1082,  1094,  1099,
     1019    1104,  1109,  1114,  1122,  1127,  1135,  1136,  1137,  1138,  1144,
     1020    1149,  1157,  1158,  1159,  1160,  1164,  1165,  1166,  1167,  1172,
     1021    1173,  1183,  1184,  1189,  1190,  1195,  1197,  1199,  1201,  1203,
     1022    1206,  1205,  1217,  1218,  1220,  1230,  1231,  1236,  1240,  1242,
     1023    1244,  1246,  1248,  1251,  1256,  1258,  1260,  1262,  1264,  1266,
     1024    1268,  1270,  1272,  1274,  1276,  1278,  1284,  1285,  1287,  1289,
     1025    1291,  1296,  1297,  1303,  1304,  1306,  1308,  1313,  1315,  1317,
     1026    1319,  1324,  1325,  1327,  1329,  1334,  1335,  1337,  1342,  1343,
     1027    1345,  1347,  1352,  1354,  1356,  1361,  1362,  1366,  1368,  1370,
     1028    1372,  1374,  1376,  1378,  1380,  1383,  1388,  1390,  1395,  1397,
     1029    1402,  1403,  1405,  1406,  1411,  1412,  1414,  1416,  1421,  1423,
     1030    1429,  1430,  1432,  1435,  1438,  1443,  1444,  1449,  1454,  1458,
     1031    1460,  1462,  1467,  1469,  1475,  1476,  1484,  1485,  1489,  1490,
     1032    1491,  1493,  1495,  1503,  1504,  1506,  1508,  1513,  1514,  1520,
     1033    1521,  1525,  1526,  1531,  1532,  1533,  1535,  1544,  1545,  1547,
     1034    1550,  1552,  1556,  1557,  1558,  1560,  1562,  1566,  1571,  1579,
     1035    1580,  1589,  1591,  1596,  1597,  1598,  1602,  1603,  1604,  1608,
     1036    1609,  1610,  1614,  1615,  1616,  1621,  1622,  1623,  1624,  1630,
     1037    1631,  1635,  1636,  1640,  1641,  1642,  1643,  1658,  1659,  1664,
     1038    1665,  1669,  1671,  1675,  1677,  1679,  1703,  1704,  1706,  1708,
     1039    1713,  1715,  1717,  1722,  1723,  1729,  1728,  1732,  1736,  1738,
     1040    1740,  1746,  1747,  1752,  1757,  1759,  1764,  1766,  1767,  1769,
     1041    1774,  1776,  1778,  1783,  1785,  1790,  1795,  1803,  1809,  1808,
     1042    1822,  1823,  1828,  1829,  1833,  1838,  1843,  1851,  1856,  1867,
     1043    1868,  1879,  1880,  1886,  1887,  1891,  1892,  1893,  1896,  1895,
     1044    1906,  1911,  1918,  1924,  1933,  1939,  1945,  1951,  1957,  1965,
     1045    1971,  1979,  1985,  1994,  1995,  1996,  2000,  2004,  2006,  2009,
     1046    2011,  2015,  2016,  2020,  2024,  2025,  2028,  2030,  2031,  2035,
     1047    2036,  2037,  2038,  2073,  2074,  2075,  2076,  2080,  2085,  2090,
     1048    2092,  2094,  2099,  2101,  2103,  2105,  2110,  2112,  2122,  2123,
     1049    2124,  2128,  2130,  2132,  2137,  2139,  2141,  2146,  2148,  2150,
     1050    2159,  2160,  2161,  2165,  2167,  2169,  2174,  2176,  2178,  2183,
     1051    2185,  2187,  2202,  2203,  2204,  2205,  2209,  2214,  2219,  2221,
     1052    2223,  2228,  2230,  2232,  2234,  2239,  2241,  2243,  2253,  2254,
     1053    2255,  2256,  2260,  2262,  2264,  2269,  2271,  2273,  2275,  2280,
     1054    2282,  2284,  2315,  2316,  2317,  2318,  2322,  2330,  2332,  2334,
     1055    2339,  2341,  2346,  2348,  2362,  2363,  2364,  2368,  2370,  2372,
     1056    2374,  2376,  2381,  2382,  2384,  2386,  2391,  2393,  2395,  2401,
     1057    2403,  2405,  2409,  2411,  2413,  2415,  2429,  2430,  2431,  2435,
     1058    2437,  2439,  2441,  2443,  2448,  2449,  2451,  2453,  2458,  2460,
     1059    2462,  2468,  2469,  2471,  2481,  2484,  2486,  2489,  2491,  2493,
     1060    2506,  2507,  2508,  2512,  2514,  2516,  2518,  2520,  2525,  2526,
     1061    2528,  2530,  2535,  2537,  2545,  2546,  2547,  2552,  2553,  2557,
     1062    2559,  2561,  2563,  2565,  2567,  2574,  2576,  2578,  2580,  2582,
     1063    2584,  2586,  2588,  2590,  2592,  2597,  2599,  2601,  2606,  2632,
     1064    2633,  2635,  2639,  2640,  2644,  2646,  2648,  2650,  2652,  2654,
     1065    2661,  2663,  2665,  2667,  2669,  2671,  2676,  2681,  2683,  2685,
     1066    2705,  2707,  2712,  2713
    10661067};
    10671068#endif
     
    51715172
    51725173/* Line 1806 of yacc.c  */
    5173 #line 281 "parser.yy"
     5174#line 282 "parser.yy"
    51745175    {
    51755176                        typedefTable.enterScope();
     
    51805181
    51815182/* Line 1806 of yacc.c  */
    5182 #line 287 "parser.yy"
     5183#line 288 "parser.yy"
    51835184    {
    51845185                        typedefTable.leaveScope();
     
    51895190
    51905191/* Line 1806 of yacc.c  */
    5191 #line 297 "parser.yy"
     5192#line 298 "parser.yy"
    51925193    { (yyval.constant) = new ConstantNode( ConstantNode::Integer, (yyvsp[(1) - (1)].tok) ); }
    51935194    break;
     
    51965197
    51975198/* Line 1806 of yacc.c  */
    5198 #line 298 "parser.yy"
     5199#line 299 "parser.yy"
    51995200    { (yyval.constant) = new ConstantNode( ConstantNode::Float, (yyvsp[(1) - (1)].tok) ); }
    52005201    break;
     
    52035204
    52045205/* Line 1806 of yacc.c  */
    5205 #line 299 "parser.yy"
     5206#line 300 "parser.yy"
    52065207    { (yyval.constant) = new ConstantNode( ConstantNode::Character, (yyvsp[(1) - (1)].tok) ); }
    52075208    break;
     
    52105211
    52115212/* Line 1806 of yacc.c  */
    5212 #line 323 "parser.yy"
     5213#line 324 "parser.yy"
    52135214    { (yyval.constant) = new ConstantNode( ConstantNode::String, (yyvsp[(1) - (1)].tok) ); }
    52145215    break;
     
    52175218
    52185219/* Line 1806 of yacc.c  */
    5219 #line 324 "parser.yy"
     5220#line 325 "parser.yy"
    52205221    { (yyval.constant) = (yyvsp[(1) - (2)].constant)->appendstr( (yyvsp[(2) - (2)].tok) ); }
    52215222    break;
     
    52245225
    52255226/* Line 1806 of yacc.c  */
    5226 #line 331 "parser.yy"
     5227#line 332 "parser.yy"
    52275228    { (yyval.en) = new VarRefNode((yyvsp[(1) - (1)].tok)); }
    52285229    break;
     
    52315232
    52325233/* Line 1806 of yacc.c  */
    5233 #line 333 "parser.yy"
     5234#line 334 "parser.yy"
    52345235    { (yyval.en) = new VarRefNode((yyvsp[(1) - (1)].tok)); }
    52355236    break;
     
    52385239
    52395240/* Line 1806 of yacc.c  */
    5240 #line 335 "parser.yy"
     5241#line 336 "parser.yy"
    52415242    { (yyval.en) = (yyvsp[(1) - (1)].constant); }
    52425243    break;
     
    52455246
    52465247/* Line 1806 of yacc.c  */
    5247 #line 337 "parser.yy"
     5248#line 338 "parser.yy"
    52485249    { (yyval.en) = (yyvsp[(1) - (1)].constant); }
    52495250    break;
     
    52525253
    52535254/* Line 1806 of yacc.c  */
    5254 #line 339 "parser.yy"
     5255#line 340 "parser.yy"
    52555256    { (yyval.en) = (yyvsp[(2) - (3)].en); }
    52565257    break;
     
    52595260
    52605261/* Line 1806 of yacc.c  */
    5261 #line 341 "parser.yy"
     5262#line 342 "parser.yy"
    52625263    { (yyval.en) = new ValofExprNode((yyvsp[(2) - (3)].sn)); }
    52635264    break;
     
    52665267
    52675268/* Line 1806 of yacc.c  */
    5268 #line 351 "parser.yy"
     5269#line 352 "parser.yy"
    52695270    { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Index), (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en)); }
    52705271    break;
     
    52735274
    52745275/* Line 1806 of yacc.c  */
    5275 #line 353 "parser.yy"
     5276#line 354 "parser.yy"
    52765277    { (yyval.en) = new CompositeExprNode((yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en)); }
    52775278    break;
     
    52805281
    52815282/* Line 1806 of yacc.c  */
    5282 #line 355 "parser.yy"
     5283#line 356 "parser.yy"
    52835284    { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::FieldSel), (yyvsp[(1) - (3)].en), new VarRefNode((yyvsp[(3) - (3)].tok))); }
    52845285    break;
     
    52875288
    52885289/* Line 1806 of yacc.c  */
    5289 #line 358 "parser.yy"
     5290#line 359 "parser.yy"
    52905291    { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::PFieldSel), (yyvsp[(1) - (3)].en), new VarRefNode((yyvsp[(3) - (3)].tok))); }
    52915292    break;
     
    52945295
    52955296/* Line 1806 of yacc.c  */
    5296 #line 361 "parser.yy"
     5297#line 362 "parser.yy"
    52975298    { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::IncrPost), (yyvsp[(1) - (2)].en)); }
    52985299    break;
     
    53015302
    53025303/* Line 1806 of yacc.c  */
    5303 #line 363 "parser.yy"
     5304#line 364 "parser.yy"
    53045305    { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::DecrPost), (yyvsp[(1) - (2)].en)); }
    53055306    break;
     
    53085309
    53095310/* Line 1806 of yacc.c  */
    5310 #line 366 "parser.yy"
     5311#line 367 "parser.yy"
    53115312    { (yyval.en) = 0; }
    53125313    break;
     
    53155316
    53165317/* Line 1806 of yacc.c  */
    5317 #line 372 "parser.yy"
     5318#line 373 "parser.yy"
    53185319    { (yyval.en) = (ExpressionNode *)((yyvsp[(1) - (3)].en)->set_link((yyvsp[(3) - (3)].en))); }
    53195320    break;
     
    53225323
    53235324/* Line 1806 of yacc.c  */
    5324 #line 377 "parser.yy"
     5325#line 378 "parser.yy"
    53255326    { (yyval.en) = 0; }
    53265327    break;
     
    53295330
    53305331/* Line 1806 of yacc.c  */
    5331 #line 380 "parser.yy"
     5332#line 381 "parser.yy"
    53325333    { (yyval.en) = (yyvsp[(3) - (3)].en)->set_asArgName((yyvsp[(1) - (3)].tok)); }
    53335334    break;
     
    53365337
    53375338/* Line 1806 of yacc.c  */
    5338 #line 385 "parser.yy"
     5339#line 386 "parser.yy"
    53395340    { (yyval.en) = (yyvsp[(7) - (7)].en)->set_asArgName((yyvsp[(3) - (7)].en)); }
    53405341    break;
     
    53435344
    53445345/* Line 1806 of yacc.c  */
    5345 #line 387 "parser.yy"
     5346#line 388 "parser.yy"
    53465347    { (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) )))); }
    53475348    break;
     
    53505351
    53515352/* Line 1806 of yacc.c  */
    5352 #line 392 "parser.yy"
     5353#line 393 "parser.yy"
    53535354    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
    53545355    break;
     
    53575358
    53585359/* Line 1806 of yacc.c  */
    5359 #line 397 "parser.yy"
     5360#line 398 "parser.yy"
    53605361    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }
    53615362    break;
     
    53645365
    53655366/* Line 1806 of yacc.c  */
    5366 #line 399 "parser.yy"
     5367#line 400 "parser.yy"
    53675368    { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::FieldSel), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en)); }
    53685369    break;
     
    53715372
    53725373/* Line 1806 of yacc.c  */
    5373 #line 401 "parser.yy"
     5374#line 402 "parser.yy"
    53745375    { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::FieldSel), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en)); }
    53755376    break;
     
    53785379
    53795380/* Line 1806 of yacc.c  */
    5380 #line 403 "parser.yy"
     5381#line 404 "parser.yy"
    53815382    { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::PFieldSel), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en)); }
    53825383    break;
     
    53855386
    53865387/* Line 1806 of yacc.c  */
    5387 #line 405 "parser.yy"
     5388#line 406 "parser.yy"
    53885389    { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::PFieldSel), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en)); }
    53895390    break;
     
    53925393
    53935394/* Line 1806 of yacc.c  */
    5394 #line 411 "parser.yy"
     5395#line 412 "parser.yy"
    53955396    { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Incr), (yyvsp[(2) - (2)].en)); }
    53965397    break;
     
    53995400
    54005401/* Line 1806 of yacc.c  */
    5401 #line 413 "parser.yy"
     5402#line 414 "parser.yy"
    54025403    { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Decr), (yyvsp[(2) - (2)].en)); }
    54035404    break;
     
    54065407
    54075408/* Line 1806 of yacc.c  */
    5408 #line 415 "parser.yy"
     5409#line 416 "parser.yy"
    54095410    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    54105411    break;
     
    54135414
    54145415/* Line 1806 of yacc.c  */
    5415 #line 417 "parser.yy"
     5416#line 418 "parser.yy"
    54165417    { (yyval.en) = new CompositeExprNode((yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en)); }
    54175418    break;
     
    54205421
    54215422/* Line 1806 of yacc.c  */
    5422 #line 419 "parser.yy"
     5423#line 420 "parser.yy"
    54235424    { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Neg), (yyvsp[(2) - (2)].en)); }
    54245425    break;
     
    54275428
    54285429/* Line 1806 of yacc.c  */
    5429 #line 421 "parser.yy"
     5430#line 422 "parser.yy"
    54305431    { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::PointTo), (yyvsp[(2) - (2)].en)); }
    54315432    break;
     
    54345435
    54355436/* Line 1806 of yacc.c  */
    5436 #line 427 "parser.yy"
     5437#line 428 "parser.yy"
    54375438    { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::SizeOf), (yyvsp[(2) - (2)].en)); }
    54385439    break;
     
    54415442
    54425443/* Line 1806 of yacc.c  */
    5443 #line 429 "parser.yy"
     5444#line 430 "parser.yy"
    54445445    { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::SizeOf), new TypeValueNode((yyvsp[(3) - (4)].decl))); }
    54455446    break;
     
    54485449
    54495450/* Line 1806 of yacc.c  */
    5450 #line 431 "parser.yy"
     5451#line 432 "parser.yy"
    54515452    { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Attr), new VarRefNode((yyvsp[(1) - (1)].tok))); }
    54525453    break;
     
    54555456
    54565457/* Line 1806 of yacc.c  */
    5457 #line 433 "parser.yy"
     5458#line 434 "parser.yy"
    54585459    { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Attr), new VarRefNode((yyvsp[(1) - (4)].tok)), new TypeValueNode((yyvsp[(3) - (4)].decl))); }
    54595460    break;
     
    54625463
    54635464/* Line 1806 of yacc.c  */
    5464 #line 435 "parser.yy"
     5465#line 436 "parser.yy"
    54655466    { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Attr), new VarRefNode((yyvsp[(1) - (4)].tok)), (yyvsp[(3) - (4)].en)); }
    54665467    break;
     
    54695470
    54705471/* Line 1806 of yacc.c  */
    5471 #line 437 "parser.yy"
     5472#line 438 "parser.yy"
    54725473    { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::AlignOf), (yyvsp[(2) - (2)].en)); }
    54735474    break;
     
    54765477
    54775478/* Line 1806 of yacc.c  */
    5478 #line 439 "parser.yy"
     5479#line 440 "parser.yy"
    54795480    { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::AlignOf), new TypeValueNode((yyvsp[(3) - (4)].decl))); }
    54805481    break;
     
    54835484
    54845485/* Line 1806 of yacc.c  */
    5485 #line 441 "parser.yy"
     5486#line 442 "parser.yy"
    54865487    { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::LabelAddress), new VarRefNode((yyvsp[(2) - (2)].tok), true)); }
    54875488    break;
     
    54905491
    54915492/* Line 1806 of yacc.c  */
    5492 #line 445 "parser.yy"
     5493#line 446 "parser.yy"
    54935494    { (yyval.en) = new OperatorNode(OperatorNode::AddressOf); }
    54945495    break;
     
    54975498
    54985499/* Line 1806 of yacc.c  */
    5499 #line 446 "parser.yy"
     5500#line 447 "parser.yy"
    55005501    { (yyval.en) = new OperatorNode(OperatorNode::UnPlus); }
    55015502    break;
     
    55045505
    55055506/* Line 1806 of yacc.c  */
    5506 #line 447 "parser.yy"
     5507#line 448 "parser.yy"
    55075508    { (yyval.en) = new OperatorNode(OperatorNode::UnMinus); }
    55085509    break;
     
    55115512
    55125513/* Line 1806 of yacc.c  */
    5513 #line 448 "parser.yy"
     5514#line 449 "parser.yy"
    55145515    { (yyval.en) = new OperatorNode(OperatorNode::BitNeg); }
    55155516    break;
     
    55185519
    55195520/* Line 1806 of yacc.c  */
    5520 #line 454 "parser.yy"
     5521#line 455 "parser.yy"
    55215522    { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Cast), new TypeValueNode((yyvsp[(2) - (4)].decl)), (yyvsp[(4) - (4)].en)); }
    55225523    break;
     
    55255526
    55265527/* Line 1806 of yacc.c  */
    5527 #line 456 "parser.yy"
     5528#line 457 "parser.yy"
    55285529    { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Cast), new TypeValueNode((yyvsp[(2) - (4)].decl)), (yyvsp[(4) - (4)].en)); }
    55295530    break;
     
    55325533
    55335534/* Line 1806 of yacc.c  */
    5534 #line 462 "parser.yy"
     5535#line 463 "parser.yy"
    55355536    { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Mul),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); }
    55365537    break;
     
    55395540
    55405541/* Line 1806 of yacc.c  */
    5541 #line 464 "parser.yy"
     5542#line 465 "parser.yy"
    55425543    { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Div),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); }
    55435544    break;
     
    55465547
    55475548/* Line 1806 of yacc.c  */
    5548 #line 466 "parser.yy"
     5549#line 467 "parser.yy"
    55495550    { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Mod),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); }
    55505551    break;
     
    55535554
    55545555/* Line 1806 of yacc.c  */
    5555 #line 472 "parser.yy"
     5556#line 473 "parser.yy"
    55565557    { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Plus),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); }
    55575558    break;
     
    55605561
    55615562/* Line 1806 of yacc.c  */
    5562 #line 474 "parser.yy"
     5563#line 475 "parser.yy"
    55635564    { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Minus),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); }
    55645565    break;
     
    55675568
    55685569/* Line 1806 of yacc.c  */
    5569 #line 480 "parser.yy"
     5570#line 481 "parser.yy"
    55705571    { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::LShift),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); }
    55715572    break;
     
    55745575
    55755576/* Line 1806 of yacc.c  */
    5576 #line 482 "parser.yy"
     5577#line 483 "parser.yy"
    55775578    { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::RShift),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); }
    55785579    break;
     
    55815582
    55825583/* Line 1806 of yacc.c  */
    5583 #line 488 "parser.yy"
     5584#line 489 "parser.yy"
    55845585    { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::LThan),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); }
    55855586    break;
     
    55885589
    55895590/* Line 1806 of yacc.c  */
    5590 #line 490 "parser.yy"
     5591#line 491 "parser.yy"
    55915592    { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::GThan),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); }
    55925593    break;
     
    55955596
    55965597/* Line 1806 of yacc.c  */
    5597 #line 492 "parser.yy"
     5598#line 493 "parser.yy"
    55985599    { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::LEThan),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); }
    55995600    break;
     
    56025603
    56035604/* Line 1806 of yacc.c  */
    5604 #line 494 "parser.yy"
     5605#line 495 "parser.yy"
    56055606    { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::GEThan),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); }
    56065607    break;
     
    56095610
    56105611/* Line 1806 of yacc.c  */
    5611 #line 500 "parser.yy"
     5612#line 501 "parser.yy"
    56125613    { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Eq), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en)); }
    56135614    break;
     
    56165617
    56175618/* Line 1806 of yacc.c  */
    5618 #line 502 "parser.yy"
     5619#line 503 "parser.yy"
    56195620    { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Neq), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en)); }
    56205621    break;
     
    56235624
    56245625/* Line 1806 of yacc.c  */
    5625 #line 508 "parser.yy"
     5626#line 509 "parser.yy"
    56265627    { (yyval.en) =new CompositeExprNode(new OperatorNode(OperatorNode::BitAnd), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en)); }
    56275628    break;
     
    56305631
    56315632/* Line 1806 of yacc.c  */
    5632 #line 514 "parser.yy"
     5633#line 515 "parser.yy"
    56335634    { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Xor), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en)); }
    56345635    break;
     
    56375638
    56385639/* Line 1806 of yacc.c  */
    5639 #line 520 "parser.yy"
     5640#line 521 "parser.yy"
    56405641    { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::BitOr), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en)); }
    56415642    break;
     
    56445645
    56455646/* Line 1806 of yacc.c  */
    5646 #line 526 "parser.yy"
     5647#line 527 "parser.yy"
    56475648    { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::And), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en)); }
    56485649    break;
     
    56515652
    56525653/* Line 1806 of yacc.c  */
    5653 #line 532 "parser.yy"
     5654#line 533 "parser.yy"
    56545655    { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Or), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en)); }
    56555656    break;
     
    56585659
    56595660/* Line 1806 of yacc.c  */
    5660 #line 538 "parser.yy"
     5661#line 539 "parser.yy"
    56615662    { (yyval.en) = new CompositeExprNode( new OperatorNode(OperatorNode::Cond), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en)) ) ); }
    56625663    break;
     
    56655666
    56665667/* Line 1806 of yacc.c  */
    5667 #line 540 "parser.yy"
     5668#line 541 "parser.yy"
    56685669    { (yyval.en)=new CompositeExprNode(new OperatorNode(OperatorNode::NCond),(yyvsp[(1) - (4)].en),(yyvsp[(4) - (4)].en)); }
    56695670    break;
     
    56725673
    56735674/* Line 1806 of yacc.c  */
    5674 #line 542 "parser.yy"
     5675#line 543 "parser.yy"
    56755676    { (yyval.en) = new CompositeExprNode( new OperatorNode(OperatorNode::Cond), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en)) ) ); }
    56765677    break;
     
    56795680
    56805681/* Line 1806 of yacc.c  */
    5681 #line 553 "parser.yy"
     5682#line 554 "parser.yy"
    56825683    { (yyval.en) =new CompositeExprNode(new OperatorNode(OperatorNode::Assign), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en)); }
    56835684    break;
     
    56865687
    56875688/* Line 1806 of yacc.c  */
    5688 #line 555 "parser.yy"
     5689#line 556 "parser.yy"
    56895690    { (yyval.en) =new CompositeExprNode((yyvsp[(2) - (3)].en), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en)); }
    56905691    break;
     
    56935694
    56945695/* Line 1806 of yacc.c  */
    5695 #line 557 "parser.yy"
     5696#line 558 "parser.yy"
    56965697    { (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) ); }
    56975698    break;
     
    57005701
    57015702/* Line 1806 of yacc.c  */
    5702 #line 562 "parser.yy"
     5703#line 563 "parser.yy"
    57035704    { (yyval.en) = new NullExprNode; }
    57045705    break;
     
    57075708
    57085709/* Line 1806 of yacc.c  */
    5709 #line 570 "parser.yy"
     5710#line 571 "parser.yy"
    57105711    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ) ); }
    57115712    break;
     
    57145715
    57155716/* Line 1806 of yacc.c  */
    5716 #line 572 "parser.yy"
     5717#line 573 "parser.yy"
    57175718    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (yyvsp[(3) - (5)].en) ); }
    57185719    break;
     
    57215722
    57225723/* Line 1806 of yacc.c  */
    5723 #line 574 "parser.yy"
     5724#line 575 "parser.yy"
    57245725    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(new NullExprNode)->set_link( (yyvsp[(4) - (6)].en) ) ); }
    57255726    break;
     
    57285729
    57295730/* Line 1806 of yacc.c  */
    5730 #line 576 "parser.yy"
     5731#line 577 "parser.yy"
    57315732    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_link( flattenCommas( (yyvsp[(5) - (7)].en) ) ) ); }
    57325733    break;
     
    57355736
    57365737/* Line 1806 of yacc.c  */
    5737 #line 582 "parser.yy"
     5738#line 583 "parser.yy"
    57385739    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
    57395740    break;
     
    57425743
    57435744/* Line 1806 of yacc.c  */
    5744 #line 586 "parser.yy"
     5745#line 587 "parser.yy"
    57455746    { (yyval.en) = new OperatorNode(OperatorNode::MulAssn); }
    57465747    break;
     
    57495750
    57505751/* Line 1806 of yacc.c  */
    5751 #line 587 "parser.yy"
     5752#line 588 "parser.yy"
    57525753    { (yyval.en) = new OperatorNode(OperatorNode::DivAssn); }
    57535754    break;
     
    57565757
    57575758/* Line 1806 of yacc.c  */
    5758 #line 588 "parser.yy"
     5759#line 589 "parser.yy"
    57595760    { (yyval.en) = new OperatorNode(OperatorNode::ModAssn); }
    57605761    break;
     
    57635764
    57645765/* Line 1806 of yacc.c  */
    5765 #line 589 "parser.yy"
     5766#line 590 "parser.yy"
    57665767    { (yyval.en) = new OperatorNode(OperatorNode::PlusAssn); }
    57675768    break;
     
    57705771
    57715772/* Line 1806 of yacc.c  */
    5772 #line 590 "parser.yy"
     5773#line 591 "parser.yy"
    57735774    { (yyval.en) = new OperatorNode(OperatorNode::MinusAssn); }
    57745775    break;
     
    57775778
    57785779/* Line 1806 of yacc.c  */
    5779 #line 591 "parser.yy"
     5780#line 592 "parser.yy"
    57805781    { (yyval.en) = new OperatorNode(OperatorNode::LSAssn); }
    57815782    break;
     
    57845785
    57855786/* Line 1806 of yacc.c  */
    5786 #line 592 "parser.yy"
     5787#line 593 "parser.yy"
    57875788    { (yyval.en) = new OperatorNode(OperatorNode::RSAssn); }
    57885789    break;
     
    57915792
    57925793/* Line 1806 of yacc.c  */
    5793 #line 593 "parser.yy"
     5794#line 594 "parser.yy"
    57945795    { (yyval.en) = new OperatorNode(OperatorNode::AndAssn); }
    57955796    break;
     
    57985799
    57995800/* Line 1806 of yacc.c  */
    5800 #line 594 "parser.yy"
     5801#line 595 "parser.yy"
    58015802    { (yyval.en) = new OperatorNode(OperatorNode::ERAssn); }
    58025803    break;
     
    58055806
    58065807/* Line 1806 of yacc.c  */
    5807 #line 595 "parser.yy"
     5808#line 596 "parser.yy"
    58085809    { (yyval.en) = new OperatorNode(OperatorNode::OrAssn); }
    58095810    break;
     
    58125813
    58135814/* Line 1806 of yacc.c  */
    5814 #line 601 "parser.yy"
     5815#line 602 "parser.yy"
    58155816    { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Comma),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); }
    58165817    break;
     
    58195820
    58205821/* Line 1806 of yacc.c  */
    5821 #line 606 "parser.yy"
     5822#line 607 "parser.yy"
    58225823    { (yyval.en) = 0; }
    58235824    break;
     
    58265827
    58275828/* Line 1806 of yacc.c  */
    5828 #line 615 "parser.yy"
     5829#line 616 "parser.yy"
    58295830    { (yyval.sn) = (yyvsp[(1) - (1)].sn); }
    58305831    break;
     
    58335834
    58345835/* Line 1806 of yacc.c  */
    5835 #line 625 "parser.yy"
     5836#line 626 "parser.yy"
    58365837    { (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label((yyvsp[(1) - (4)].tok));}
    58375838    break;
     
    58405841
    58415842/* Line 1806 of yacc.c  */
    5842 #line 630 "parser.yy"
     5843#line 631 "parser.yy"
    58435844    { (yyval.sn) = new CompoundStmtNode( (StatementNode *)0 ); }
    58445845    break;
     
    58475848
    58485849/* Line 1806 of yacc.c  */
    5849 #line 637 "parser.yy"
     5850#line 638 "parser.yy"
    58505851    { (yyval.sn) = new CompoundStmtNode( (yyvsp[(5) - (7)].sn) ); }
    58515852    break;
     
    58545855
    58555856/* Line 1806 of yacc.c  */
    5856 #line 643 "parser.yy"
     5857#line 644 "parser.yy"
    58575858    { if ((yyvsp[(1) - (3)].sn) != 0) { (yyvsp[(1) - (3)].sn)->set_link((yyvsp[(3) - (3)].sn)); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
    58585859    break;
     
    58615862
    58625863/* Line 1806 of yacc.c  */
    5863 #line 648 "parser.yy"
     5864#line 649 "parser.yy"
    58645865    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    58655866    break;
     
    58685869
    58695870/* Line 1806 of yacc.c  */
    5870 #line 650 "parser.yy"
     5871#line 651 "parser.yy"
    58715872    { (yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) ); }
    58725873    break;
     
    58755876
    58765877/* Line 1806 of yacc.c  */
    5877 #line 652 "parser.yy"
     5878#line 653 "parser.yy"
    58785879    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    58795880    break;
     
    58825883
    58835884/* Line 1806 of yacc.c  */
    5884 #line 659 "parser.yy"
     5885#line 660 "parser.yy"
    58855886    { if ((yyvsp[(1) - (2)].sn) != 0) { (yyvsp[(1) - (2)].sn)->set_link((yyvsp[(2) - (2)].sn)); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
    58865887    break;
     
    58895890
    58905891/* Line 1806 of yacc.c  */
    5891 #line 664 "parser.yy"
     5892#line 665 "parser.yy"
    58925893    { (yyval.sn) = new StatementNode(StatementNode::Exp, (yyvsp[(1) - (2)].en), 0); }
    58935894    break;
     
    58965897
    58975898/* Line 1806 of yacc.c  */
    5898 #line 670 "parser.yy"
     5899#line 671 "parser.yy"
    58995900    { (yyval.sn) = new StatementNode(StatementNode::If, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn)); }
    59005901    break;
     
    59035904
    59045905/* Line 1806 of yacc.c  */
    5905 #line 672 "parser.yy"
     5906#line 673 "parser.yy"
    59065907    { (yyval.sn) = new StatementNode(StatementNode::If, (yyvsp[(3) - (7)].en), (StatementNode *)mkList((*(yyvsp[(5) - (7)].sn), *(yyvsp[(7) - (7)].sn))) ); }
    59075908    break;
     
    59105911
    59115912/* Line 1806 of yacc.c  */
    5912 #line 674 "parser.yy"
     5913#line 675 "parser.yy"
    59135914    { (yyval.sn) = new StatementNode(StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn)); }
    59145915    break;
     
    59175918
    59185919/* Line 1806 of yacc.c  */
    5919 #line 676 "parser.yy"
     5920#line 677 "parser.yy"
    59205921    { (yyval.sn) = new StatementNode(StatementNode::Switch, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn)); /* xxx */ }
    59215922    break;
     
    59245925
    59255926/* Line 1806 of yacc.c  */
    5926 #line 682 "parser.yy"
     5927#line 683 "parser.yy"
    59275928    { (yyval.sn) = new StatementNode(StatementNode::Choose, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn)); }
    59285929    break;
     
    59315932
    59325933/* Line 1806 of yacc.c  */
    5933 #line 684 "parser.yy"
     5934#line 685 "parser.yy"
    59345935    { (yyval.sn) = new StatementNode(StatementNode::Choose, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn)); }
    59355936    break;
     
    59385939
    59395940/* Line 1806 of yacc.c  */
    5940 #line 691 "parser.yy"
     5941#line 692 "parser.yy"
    59415942    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    59425943    break;
     
    59455946
    59465947/* Line 1806 of yacc.c  */
    5947 #line 693 "parser.yy"
     5948#line 694 "parser.yy"
    59485949    { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Range),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); }
    59495950    break;
     
    59525953
    59535954/* Line 1806 of yacc.c  */
    5954 #line 700 "parser.yy"
     5955#line 701 "parser.yy"
    59555956    { (yyval.en) = new CompositeExprNode(new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(tupleContents((yyvsp[(1) - (3)].en)))->set_link((yyvsp[(3) - (3)].en)) ); }
    59565957    break;
     
    59595960
    59605961/* Line 1806 of yacc.c  */
    5961 #line 704 "parser.yy"
     5962#line 705 "parser.yy"
    59625963    { (yyval.sn) = new StatementNode(StatementNode::Case, (yyvsp[(2) - (3)].en), 0); }
    59635964    break;
     
    59665967
    59675968/* Line 1806 of yacc.c  */
    5968 #line 705 "parser.yy"
     5969#line 706 "parser.yy"
    59695970    { (yyval.sn) = new StatementNode(StatementNode::Default); }
    59705971    break;
     
    59735974
    59745975/* Line 1806 of yacc.c  */
    5975 #line 711 "parser.yy"
     5976#line 712 "parser.yy"
    59765977    { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (2)].sn)->set_link((yyvsp[(2) - (2)].sn))); }
    59775978    break;
     
    59805981
    59815982/* Line 1806 of yacc.c  */
    5982 #line 715 "parser.yy"
     5983#line 716 "parser.yy"
    59835984    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case((yyvsp[(2) - (2)].sn)); }
    59845985    break;
     
    59875988
    59885989/* Line 1806 of yacc.c  */
    5989 #line 720 "parser.yy"
     5990#line 721 "parser.yy"
    59905991    { (yyval.sn) = 0; }
    59915992    break;
     
    59945995
    59955996/* Line 1806 of yacc.c  */
    5996 #line 726 "parser.yy"
     5997#line 727 "parser.yy"
    59975998    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case((yyvsp[(2) - (2)].sn)); }
    59985999    break;
     
    60016002
    60026003/* Line 1806 of yacc.c  */
    6003 #line 728 "parser.yy"
     6004#line 729 "parser.yy"
    60046005    { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_link((yyvsp[(2) - (3)].sn)->append_last_case((yyvsp[(3) - (3)].sn)))); }
    60056006    break;
     
    60086009
    60096010/* Line 1806 of yacc.c  */
    6010 #line 733 "parser.yy"
     6011#line 734 "parser.yy"
    60116012    { (yyval.sn) = 0; }
    60126013    break;
     
    60156016
    60166017/* Line 1806 of yacc.c  */
    6017 #line 739 "parser.yy"
     6018#line 740 "parser.yy"
    60186019    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case((yyvsp[(2) - (2)].sn)); }
    60196020    break;
     
    60226023
    60236024/* Line 1806 of yacc.c  */
    6024 #line 741 "parser.yy"
     6025#line 742 "parser.yy"
    60256026    { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].sn)))); }
    60266027    break;
     
    60296030
    60306031/* Line 1806 of yacc.c  */
    6031 #line 743 "parser.yy"
     6032#line 744 "parser.yy"
    60326033    { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_link((yyvsp[(2) - (3)].sn)->append_last_case((yyvsp[(3) - (3)].sn)))); }
    60336034    break;
     
    60366037
    60376038/* Line 1806 of yacc.c  */
    6038 #line 745 "parser.yy"
     6039#line 746 "parser.yy"
    60396040    { (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)))))); }
    60406041    break;
     
    60436044
    60446045/* Line 1806 of yacc.c  */
    6045 #line 750 "parser.yy"
     6046#line 751 "parser.yy"
    60466047    { (yyval.sn) = 0; }
    60476048    break;
    60486049
    60496050  case 176:
    6050 
    6051 /* Line 1806 of yacc.c  */
    6052 #line 755 "parser.yy"
    6053     { (yyval.sn) = new StatementNode(StatementNode::Fallthru, 0, 0); }
    6054     break;
    6055 
    6056   case 177:
    60576051
    60586052/* Line 1806 of yacc.c  */
     
    60616055    break;
    60626056
     6057  case 177:
     6058
     6059/* Line 1806 of yacc.c  */
     6060#line 757 "parser.yy"
     6061    { (yyval.sn) = new StatementNode(StatementNode::Fallthru, 0, 0); }
     6062    break;
     6063
    60636064  case 178:
    60646065
    60656066/* Line 1806 of yacc.c  */
    6066 #line 761 "parser.yy"
     6067#line 762 "parser.yy"
    60676068    { (yyval.sn) = new StatementNode(StatementNode::While, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn)); }
    60686069    break;
     
    60716072
    60726073/* Line 1806 of yacc.c  */
    6073 #line 763 "parser.yy"
     6074#line 764 "parser.yy"
    60746075    { (yyval.sn) = new StatementNode(StatementNode::Do, (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn)); }
    60756076    break;
     
    60786079
    60796080/* Line 1806 of yacc.c  */
    6080 #line 765 "parser.yy"
     6081#line 766 "parser.yy"
    60816082    { (yyval.sn) = new StatementNode(StatementNode::For, (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].sn)); }
    60826083    break;
     
    60856086
    60866087/* Line 1806 of yacc.c  */
    6087 #line 770 "parser.yy"
     6088#line 771 "parser.yy"
    60886089    { (yyval.en) = new ForCtlExprNode((yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en)); }
    60896090    break;
     
    60926093
    60936094/* Line 1806 of yacc.c  */
    6094 #line 772 "parser.yy"
     6095#line 773 "parser.yy"
    60956096    { (yyval.en) = new ForCtlExprNode((yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en)); }
    60966097    break;
     
    60996100
    61006101/* Line 1806 of yacc.c  */
    6101 #line 777 "parser.yy"
     6102#line 778 "parser.yy"
    61026103    { (yyval.sn) = new StatementNode(StatementNode::Goto, (yyvsp[(2) - (3)].tok)); }
    61036104    break;
     
    61066107
    61076108/* Line 1806 of yacc.c  */
    6108 #line 781 "parser.yy"
     6109#line 782 "parser.yy"
    61096110    { (yyval.sn) = new StatementNode(StatementNode::Goto, (yyvsp[(3) - (4)].en)); }
    61106111    break;
     
    61136114
    61146115/* Line 1806 of yacc.c  */
    6115 #line 785 "parser.yy"
     6116#line 786 "parser.yy"
    61166117    { (yyval.sn) = new StatementNode(StatementNode::Continue, 0, 0); }
    61176118    break;
     
    61206121
    61216122/* Line 1806 of yacc.c  */
    6122 #line 789 "parser.yy"
     6123#line 790 "parser.yy"
    61236124    { (yyval.sn) = new StatementNode(StatementNode::Continue, (yyvsp[(2) - (3)].tok)); }
    61246125    break;
     
    61276128
    61286129/* Line 1806 of yacc.c  */
    6129 #line 793 "parser.yy"
     6130#line 794 "parser.yy"
    61306131    { (yyval.sn) = new StatementNode(StatementNode::Break, 0, 0); }
    61316132    break;
     
    61346135
    61356136/* Line 1806 of yacc.c  */
    6136 #line 797 "parser.yy"
     6137#line 798 "parser.yy"
    61376138    { (yyval.sn) = new StatementNode(StatementNode::Break, (yyvsp[(2) - (3)].tok) ); }
    61386139    break;
     
    61416142
    61426143/* Line 1806 of yacc.c  */
    6143 #line 799 "parser.yy"
     6144#line 800 "parser.yy"
    61446145    { (yyval.sn) = new StatementNode(StatementNode::Return, (yyvsp[(2) - (3)].en), 0); }
    61456146    break;
     
    61486149
    61496150/* Line 1806 of yacc.c  */
    6150 #line 801 "parser.yy"
     6151#line 802 "parser.yy"
    61516152    { (yyval.sn) = new StatementNode(StatementNode::Throw, (yyvsp[(2) - (3)].en), 0); }
    61526153    break;
     
    61556156
    61566157/* Line 1806 of yacc.c  */
    6157 #line 803 "parser.yy"
     6158#line 804 "parser.yy"
    61586159    { (yyval.sn) = new StatementNode(StatementNode::Throw, 0, 0); }
    61596160    break;
     
    61626163
    61636164/* Line 1806 of yacc.c  */
    6164 #line 808 "parser.yy"
     6165#line 809 "parser.yy"
    61656166    { (yyval.sn) = new StatementNode(StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn))))); }
    61666167    break;
     
    61696170
    61706171/* Line 1806 of yacc.c  */
    6171 #line 810 "parser.yy"
     6172#line 811 "parser.yy"
    61726173    { (yyval.sn) = new StatementNode(StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn))))); }
    61736174    break;
     
    61766177
    61776178/* Line 1806 of yacc.c  */
    6178 #line 812 "parser.yy"
     6179#line 813 "parser.yy"
    61796180    {
    61806181                        (yyvsp[(3) - (4)].pn)->set_link((yyvsp[(4) - (4)].pn));
     
    61866187
    61876188/* Line 1806 of yacc.c  */
    6188 #line 824 "parser.yy"
     6189#line 825 "parser.yy"
    61896190    { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); }
    61906191    break;
     
    61936194
    61946195/* Line 1806 of yacc.c  */
    6195 #line 826 "parser.yy"
     6196#line 827 "parser.yy"
    61966197    { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); }
    61976198    break;
     
    62006201
    62016202/* Line 1806 of yacc.c  */
    6202 #line 831 "parser.yy"
     6203#line 832 "parser.yy"
    62036204    { (yyval.pn) = StatementNode::newCatchStmt((yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn)); }
    62046205    break;
     
    62076208
    62086209/* Line 1806 of yacc.c  */
    6209 #line 833 "parser.yy"
     6210#line 834 "parser.yy"
    62106211    { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt((yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn)) ); }
    62116212    break;
     
    62146215
    62156216/* Line 1806 of yacc.c  */
    6216 #line 838 "parser.yy"
     6217#line 839 "parser.yy"
    62176218    {
    62186219                        (yyval.pn) = new StatementNode(StatementNode::Finally, 0, (yyvsp[(2) - (2)].sn));
     
    62246225
    62256226/* Line 1806 of yacc.c  */
    6226 #line 852 "parser.yy"
     6227#line 853 "parser.yy"
    62276228    {
    62286229                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    62346235
    62356236/* Line 1806 of yacc.c  */
    6236 #line 857 "parser.yy"
     6237#line 858 "parser.yy"
    62376238    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    62386239    break;
     
    62416242
    62426243/* Line 1806 of yacc.c  */
    6243 #line 859 "parser.yy"
     6244#line 860 "parser.yy"
    62446245    {
    62456246                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    62516252
    62526253/* Line 1806 of yacc.c  */
    6253 #line 868 "parser.yy"
     6254#line 869 "parser.yy"
    62546255    { (yyval.sn) = new StatementNode(StatementNode::Asm, 0, 0); }
    62556256    break;
     
    62586259
    62596260/* Line 1806 of yacc.c  */
    6260 #line 870 "parser.yy"
     6261#line 871 "parser.yy"
    62616262    { (yyval.sn) = new StatementNode(StatementNode::Asm, 0, 0); }
    62626263    break;
     
    62656266
    62666267/* Line 1806 of yacc.c  */
    6267 #line 872 "parser.yy"
     6268#line 873 "parser.yy"
    62686269    { (yyval.sn) = new StatementNode(StatementNode::Asm, 0, 0); }
    62696270    break;
     
    62726273
    62736274/* Line 1806 of yacc.c  */
    6274 #line 874 "parser.yy"
     6275#line 875 "parser.yy"
    62756276    { (yyval.sn) = new StatementNode(StatementNode::Asm, 0, 0); }
    62766277    break;
     
    62796280
    62806281/* Line 1806 of yacc.c  */
    6281 #line 888 "parser.yy"
     6282#line 889 "parser.yy"
    62826283    {}
    62836284    break;
     
    62866287
    62876288/* Line 1806 of yacc.c  */
    6288 #line 892 "parser.yy"
     6289#line 893 "parser.yy"
    62896290    {}
    62906291    break;
     
    62936294
    62946295/* Line 1806 of yacc.c  */
    6295 #line 900 "parser.yy"
     6296#line 901 "parser.yy"
    62966297    { (yyval.decl) = 0; }
    62976298    break;
     
    63006301
    63016302/* Line 1806 of yacc.c  */
    6302 #line 907 "parser.yy"
     6303#line 908 "parser.yy"
    63036304    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    63046305    break;
     
    63076308
    63086309/* Line 1806 of yacc.c  */
    6309 #line 912 "parser.yy"
     6310#line 913 "parser.yy"
    63106311    { (yyval.decl) = 0; }
    63116312    break;
     
    63146315
    63156316/* Line 1806 of yacc.c  */
    6316 #line 919 "parser.yy"
     6317#line 920 "parser.yy"
    63176318    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    63186319    break;
    63196320
    63206321  case 229:
    6321 
    6322 /* Line 1806 of yacc.c  */
    6323 #line 933 "parser.yy"
    6324     {}
    6325     break;
    6326 
    6327   case 230:
    63286322
    63296323/* Line 1806 of yacc.c  */
     
    63326326    break;
    63336327
     6328  case 230:
     6329
     6330/* Line 1806 of yacc.c  */
     6331#line 935 "parser.yy"
     6332    {}
     6333    break;
     6334
    63346335  case 238:
    63356336
    63366337/* Line 1806 of yacc.c  */
    6337 #line 964 "parser.yy"
     6338#line 965 "parser.yy"
    63386339    {
    63396340                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63456346
    63466347/* Line 1806 of yacc.c  */
    6347 #line 971 "parser.yy"
     6348#line 972 "parser.yy"
    63486349    {
    63496350                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63556356
    63566357/* Line 1806 of yacc.c  */
    6357 #line 976 "parser.yy"
     6358#line 977 "parser.yy"
    63586359    {
    63596360                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID );
     
    63656366
    63666367/* Line 1806 of yacc.c  */
    6367 #line 986 "parser.yy"
     6368#line 987 "parser.yy"
    63686369    {
    63696370                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    63756376
    63766377/* Line 1806 of yacc.c  */
    6377 #line 991 "parser.yy"
     6378#line 992 "parser.yy"
    63786379    {
    63796380                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    63856386
    63866387/* Line 1806 of yacc.c  */
    6387 #line 996 "parser.yy"
     6388#line 997 "parser.yy"
    63886389    {
    63896390                        typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) );
     
    63956396
    63966397/* Line 1806 of yacc.c  */
    6397 #line 1004 "parser.yy"
     6398#line 1005 "parser.yy"
    63986399    {
    63996400                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64056406
    64066407/* Line 1806 of yacc.c  */
    6407 #line 1009 "parser.yy"
     6408#line 1010 "parser.yy"
    64086409    {
    64096410                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64156416
    64166417/* Line 1806 of yacc.c  */
    6417 #line 1014 "parser.yy"
     6418#line 1015 "parser.yy"
    64186419    {
    64196420                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64256426
    64266427/* Line 1806 of yacc.c  */
    6427 #line 1019 "parser.yy"
     6428#line 1020 "parser.yy"
    64286429    {
    64296430                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64356436
    64366437/* Line 1806 of yacc.c  */
    6437 #line 1024 "parser.yy"
     6438#line 1025 "parser.yy"
    64386439    {
    64396440                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    64456446
    64466447/* Line 1806 of yacc.c  */
    6447 #line 1032 "parser.yy"
     6448#line 1033 "parser.yy"
    64486449    {
    64496450                        typedefTable.setNextIdentifier( *((yyvsp[(5) - (10)].tok)) );
     
    64556456
    64566457/* Line 1806 of yacc.c  */
    6457 #line 1037 "parser.yy"
     6458#line 1038 "parser.yy"
    64586459    {
    64596460                        typedefTable.setNextIdentifier( *((yyvsp[(5) - (10)].tok)) );
     
    64656466
    64666467/* Line 1806 of yacc.c  */
    6467 #line 1052 "parser.yy"
     6468#line 1053 "parser.yy"
    64686469    {
    64696470                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    64746475
    64756476/* Line 1806 of yacc.c  */
    6476 #line 1056 "parser.yy"
     6477#line 1057 "parser.yy"
    64776478    {
    64786479                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    64836484
    64846485/* Line 1806 of yacc.c  */
    6485 #line 1063 "parser.yy"
     6486#line 1064 "parser.yy"
    64866487    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    64876488    break;
     
    64906491
    64916492/* Line 1806 of yacc.c  */
    6492 #line 1067 "parser.yy"
     6493#line 1068 "parser.yy"
    64936494    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
    64946495    break;
     
    64976498
    64986499/* Line 1806 of yacc.c  */
    6499 #line 1072 "parser.yy"
     6500#line 1073 "parser.yy"
    65006501    {
    65016502                        typedefTable.addToEnclosingScope( TypedefTable::TD);
     
    65076508
    65086509/* Line 1806 of yacc.c  */
    6509 #line 1077 "parser.yy"
     6510#line 1078 "parser.yy"
    65106511    {
    65116512                        typedefTable.addToEnclosingScope( TypedefTable::TD);
     
    65176518
    65186519/* Line 1806 of yacc.c  */
    6519 #line 1082 "parser.yy"
     6520#line 1083 "parser.yy"
    65206521    {
    65216522                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD);
     
    65276528
    65286529/* Line 1806 of yacc.c  */
    6529 #line 1094 "parser.yy"
     6530#line 1095 "parser.yy"
    65306531    {
    65316532                        typedefTable.addToEnclosingScope( TypedefTable::TD);
     
    65376538
    65386539/* Line 1806 of yacc.c  */
    6539 #line 1099 "parser.yy"
     6540#line 1100 "parser.yy"
    65406541    {
    65416542                        typedefTable.addToEnclosingScope( TypedefTable::TD);
     
    65476548
    65486549/* Line 1806 of yacc.c  */
    6549 #line 1104 "parser.yy"
     6550#line 1105 "parser.yy"
    65506551    {
    65516552                        typedefTable.addToEnclosingScope( TypedefTable::TD);
     
    65576558
    65586559/* Line 1806 of yacc.c  */
    6559 #line 1109 "parser.yy"
     6560#line 1110 "parser.yy"
    65606561    {
    65616562                        typedefTable.addToEnclosingScope( TypedefTable::TD);
     
    65676568
    65686569/* Line 1806 of yacc.c  */
    6569 #line 1114 "parser.yy"
     6570#line 1115 "parser.yy"
    65706571    {
    65716572                        typedefTable.addToEnclosingScope( TypedefTable::TD);
     
    65776578
    65786579/* Line 1806 of yacc.c  */
    6579 #line 1122 "parser.yy"
     6580#line 1123 "parser.yy"
    65806581    {
    65816582                        typedefTable.addToEnclosingScope(*((yyvsp[(2) - (4)].tok)), TypedefTable::TD);
     
    65876588
    65886589/* Line 1806 of yacc.c  */
    6589 #line 1127 "parser.yy"
     6590#line 1128 "parser.yy"
    65906591    {
    65916592                        typedefTable.addToEnclosingScope(*((yyvsp[(5) - (7)].tok)), TypedefTable::TD);
     
    65976598
    65986599/* Line 1806 of yacc.c  */
    6599 #line 1144 "parser.yy"
     6600#line 1145 "parser.yy"
    66006601    {
    66016602                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    66076608
    66086609/* Line 1806 of yacc.c  */
    6609 #line 1149 "parser.yy"
     6610#line 1150 "parser.yy"
    66106611    {
    66116612                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    66176618
    66186619/* Line 1806 of yacc.c  */
    6619 #line 1171 "parser.yy"
     6620#line 1172 "parser.yy"
    66206621    { (yyval.decl) = 0; }
    66216622    break;
     
    66246625
    66256626/* Line 1806 of yacc.c  */
    6626 #line 1184 "parser.yy"
     6627#line 1185 "parser.yy"
    66276628    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    66286629    break;
     
    66316632
    66326633/* Line 1806 of yacc.c  */
    6633 #line 1190 "parser.yy"
     6634#line 1191 "parser.yy"
    66346635    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Attribute ); }
    66356636    break;
     
    66386639
    66396640/* Line 1806 of yacc.c  */
    6640 #line 1195 "parser.yy"
     6641#line 1196 "parser.yy"
    66416642    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
    66426643    break;
     
    66456646
    66466647/* Line 1806 of yacc.c  */
    6647 #line 1197 "parser.yy"
     6648#line 1198 "parser.yy"
    66486649    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
    66496650    break;
     
    66526653
    66536654/* Line 1806 of yacc.c  */
    6654 #line 1199 "parser.yy"
     6655#line 1200 "parser.yy"
    66556656    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
    66566657    break;
     
    66596660
    66606661/* Line 1806 of yacc.c  */
    6661 #line 1201 "parser.yy"
     6662#line 1202 "parser.yy"
    66626663    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
    66636664    break;
     
    66666667
    66676668/* Line 1806 of yacc.c  */
    6668 #line 1203 "parser.yy"
     6669#line 1204 "parser.yy"
    66696670    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
    66706671    break;
     
    66736674
    66746675/* Line 1806 of yacc.c  */
    6675 #line 1205 "parser.yy"
     6676#line 1206 "parser.yy"
    66766677    {
    66776678                        typedefTable.enterScope();
     
    66826683
    66836684/* Line 1806 of yacc.c  */
    6684 #line 1209 "parser.yy"
     6685#line 1210 "parser.yy"
    66856686    {
    66866687                        typedefTable.leaveScope();
     
    66926693
    66936694/* Line 1806 of yacc.c  */
    6694 #line 1218 "parser.yy"
     6695#line 1219 "parser.yy"
    66956696    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    66966697    break;
     
    66996700
    67006701/* Line 1806 of yacc.c  */
    6701 #line 1220 "parser.yy"
     6702#line 1221 "parser.yy"
    67026703    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    67036704    break;
     
    67066707
    67076708/* Line 1806 of yacc.c  */
    6708 #line 1231 "parser.yy"
     6709#line 1232 "parser.yy"
    67096710    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    67106711    break;
     
    67136714
    67146715/* Line 1806 of yacc.c  */
    6715 #line 1240 "parser.yy"
     6716#line 1241 "parser.yy"
    67166717    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
    67176718    break;
     
    67206721
    67216722/* Line 1806 of yacc.c  */
    6722 #line 1242 "parser.yy"
     6723#line 1243 "parser.yy"
    67236724    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
    67246725    break;
     
    67276728
    67286729/* Line 1806 of yacc.c  */
    6729 #line 1244 "parser.yy"
     6730#line 1245 "parser.yy"
    67306731    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
    67316732    break;
     
    67346735
    67356736/* Line 1806 of yacc.c  */
    6736 #line 1246 "parser.yy"
     6737#line 1247 "parser.yy"
    67376738    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
    67386739    break;
     
    67416742
    67426743/* Line 1806 of yacc.c  */
    6743 #line 1249 "parser.yy"
     6744#line 1250 "parser.yy"
    67446745    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); }
    67456746    break;
     
    67486749
    67496750/* Line 1806 of yacc.c  */
    6750 #line 1251 "parser.yy"
     6751#line 1252 "parser.yy"
    67516752    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
    67526753    break;
     
    67556756
    67566757/* Line 1806 of yacc.c  */
    6757 #line 1256 "parser.yy"
     6758#line 1257 "parser.yy"
    67586759    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
    67596760    break;
     
    67626763
    67636764/* Line 1806 of yacc.c  */
    6764 #line 1258 "parser.yy"
     6765#line 1259 "parser.yy"
    67656766    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
    67666767    break;
     
    67696770
    67706771/* Line 1806 of yacc.c  */
    6771 #line 1260 "parser.yy"
     6772#line 1261 "parser.yy"
    67726773    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
    67736774    break;
     
    67766777
    67776778/* Line 1806 of yacc.c  */
    6778 #line 1262 "parser.yy"
     6779#line 1263 "parser.yy"
    67796780    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
    67806781    break;
     
    67836784
    67846785/* Line 1806 of yacc.c  */
    6785 #line 1264 "parser.yy"
     6786#line 1265 "parser.yy"
    67866787    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); }
    67876788    break;
     
    67906791
    67916792/* Line 1806 of yacc.c  */
    6792 #line 1266 "parser.yy"
     6793#line 1267 "parser.yy"
    67936794    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); }
    67946795    break;
     
    67976798
    67986799/* Line 1806 of yacc.c  */
    6799 #line 1268 "parser.yy"
     6800#line 1269 "parser.yy"
    68006801    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); }
    68016802    break;
     
    68046805
    68056806/* Line 1806 of yacc.c  */
    6806 #line 1270 "parser.yy"
     6807#line 1271 "parser.yy"
    68076808    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); }
    68086809    break;
     
    68116812
    68126813/* Line 1806 of yacc.c  */
    6813 #line 1272 "parser.yy"
     6814#line 1273 "parser.yy"
    68146815    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
    68156816    break;
     
    68186819
    68196820/* Line 1806 of yacc.c  */
    6820 #line 1274 "parser.yy"
     6821#line 1275 "parser.yy"
    68216822    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
    68226823    break;
     
    68256826
    68266827/* Line 1806 of yacc.c  */
    6827 #line 1276 "parser.yy"
     6828#line 1277 "parser.yy"
    68286829    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); }
    68296830    break;
     
    68326833
    68336834/* Line 1806 of yacc.c  */
    6834 #line 1278 "parser.yy"
     6835#line 1279 "parser.yy"
    68356836    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); }
    68366837    break;
     
    68396840
    68406841/* Line 1806 of yacc.c  */
    6841 #line 1285 "parser.yy"
     6842#line 1286 "parser.yy"
    68426843    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68436844    break;
     
    68466847
    68476848/* Line 1806 of yacc.c  */
    6848 #line 1287 "parser.yy"
     6849#line 1288 "parser.yy"
    68496850    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68506851    break;
     
    68536854
    68546855/* Line 1806 of yacc.c  */
    6855 #line 1289 "parser.yy"
     6856#line 1290 "parser.yy"
    68566857    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    68576858    break;
     
    68606861
    68616862/* Line 1806 of yacc.c  */
    6862 #line 1291 "parser.yy"
     6863#line 1292 "parser.yy"
    68636864    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
    68646865    break;
     
    68676868
    68686869/* Line 1806 of yacc.c  */
    6869 #line 1297 "parser.yy"
     6870#line 1298 "parser.yy"
    68706871    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    68716872    break;
     
    68746875
    68756876/* Line 1806 of yacc.c  */
    6876 #line 1304 "parser.yy"
     6877#line 1305 "parser.yy"
    68776878    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68786879    break;
     
    68816882
    68826883/* Line 1806 of yacc.c  */
    6883 #line 1306 "parser.yy"
     6884#line 1307 "parser.yy"
    68846885    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68856886    break;
     
    68886889
    68896890/* Line 1806 of yacc.c  */
    6890 #line 1308 "parser.yy"
     6891#line 1309 "parser.yy"
    68916892    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
    68926893    break;
     
    68956896
    68966897/* Line 1806 of yacc.c  */
    6897 #line 1313 "parser.yy"
     6898#line 1314 "parser.yy"
    68986899    { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
    68996900    break;
     
    69026903
    69036904/* Line 1806 of yacc.c  */
    6904 #line 1315 "parser.yy"
     6905#line 1316 "parser.yy"
    69056906    { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
    69066907    break;
     
    69096910
    69106911/* Line 1806 of yacc.c  */
    6911 #line 1317 "parser.yy"
     6912#line 1318 "parser.yy"
    69126913    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
    69136914    break;
     
    69166917
    69176918/* Line 1806 of yacc.c  */
    6918 #line 1319 "parser.yy"
     6919#line 1320 "parser.yy"
    69196920    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    69206921    break;
     
    69236924
    69246925/* Line 1806 of yacc.c  */
    6925 #line 1325 "parser.yy"
     6926#line 1326 "parser.yy"
    69266927    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69276928    break;
     
    69306931
    69316932/* Line 1806 of yacc.c  */
    6932 #line 1327 "parser.yy"
     6933#line 1328 "parser.yy"
    69336934    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69346935    break;
     
    69376938
    69386939/* Line 1806 of yacc.c  */
    6939 #line 1329 "parser.yy"
     6940#line 1330 "parser.yy"
    69406941    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    69416942    break;
     
    69446945
    69456946/* Line 1806 of yacc.c  */
    6946 #line 1335 "parser.yy"
     6947#line 1336 "parser.yy"
    69476948    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69486949    break;
     
    69516952
    69526953/* Line 1806 of yacc.c  */
    6953 #line 1337 "parser.yy"
     6954#line 1338 "parser.yy"
    69546955    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69556956    break;
     
    69586959
    69596960/* Line 1806 of yacc.c  */
    6960 #line 1343 "parser.yy"
     6961#line 1344 "parser.yy"
    69616962    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69626963    break;
     
    69656966
    69666967/* Line 1806 of yacc.c  */
    6967 #line 1345 "parser.yy"
     6968#line 1346 "parser.yy"
    69686969    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69696970    break;
     
    69726973
    69736974/* Line 1806 of yacc.c  */
    6974 #line 1347 "parser.yy"
     6975#line 1348 "parser.yy"
    69756976    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    69766977    break;
     
    69796980
    69806981/* Line 1806 of yacc.c  */
    6981 #line 1352 "parser.yy"
     6982#line 1353 "parser.yy"
    69826983    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
    69836984    break;
     
    69866987
    69876988/* Line 1806 of yacc.c  */
    6988 #line 1354 "parser.yy"
     6989#line 1355 "parser.yy"
    69896990    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69906991    break;
     
    69936994
    69946995/* Line 1806 of yacc.c  */
    6995 #line 1356 "parser.yy"
     6996#line 1357 "parser.yy"
    69966997    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69976998    break;
     
    70007001
    70017002/* Line 1806 of yacc.c  */
    7002 #line 1366 "parser.yy"
     7003#line 1367 "parser.yy"
    70037004    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, 0, (yyvsp[(3) - (4)].decl) ); }
    70047005    break;
     
    70077008
    70087009/* Line 1806 of yacc.c  */
    7009 #line 1368 "parser.yy"
     7010#line 1369 "parser.yy"
    70107011    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), 0, 0, 0 ); }
    70117012    break;
     
    70147015
    70157016/* Line 1806 of yacc.c  */
    7016 #line 1370 "parser.yy"
     7017#line 1371 "parser.yy"
    70177018    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (5)].aggKey), (yyvsp[(2) - (5)].tok), 0, 0, (yyvsp[(4) - (5)].decl) ); }
    70187019    break;
     
    70217022
    70227023/* Line 1806 of yacc.c  */
    7023 #line 1372 "parser.yy"
     7024#line 1373 "parser.yy"
    70247025    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (9)].aggKey), 0, (yyvsp[(4) - (9)].decl), 0, (yyvsp[(8) - (9)].decl) ); }
    70257026    break;
     
    70287029
    70297030/* Line 1806 of yacc.c  */
    7030 #line 1374 "parser.yy"
     7031#line 1375 "parser.yy"
    70317032    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), (yyvsp[(7) - (7)].tok), (yyvsp[(4) - (7)].decl), 0, 0 ); }
    70327033    break;
     
    70357036
    70367037/* Line 1806 of yacc.c  */
    7037 #line 1376 "parser.yy"
     7038#line 1377 "parser.yy"
    70387039    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (10)].aggKey), (yyvsp[(7) - (10)].tok), (yyvsp[(4) - (10)].decl), 0, (yyvsp[(9) - (10)].decl) ); }
    70397040    break;
     
    70427043
    70437044/* Line 1806 of yacc.c  */
    7044 #line 1378 "parser.yy"
     7045#line 1379 "parser.yy"
    70457046    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (12)].aggKey), 0, (yyvsp[(4) - (12)].decl), (yyvsp[(8) - (12)].en), (yyvsp[(11) - (12)].decl) ); }
    70467047    break;
     
    70497050
    70507051/* Line 1806 of yacc.c  */
    7051 #line 1381 "parser.yy"
     7052#line 1382 "parser.yy"
    70527053    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), (yyvsp[(7) - (7)].tok), 0, (yyvsp[(4) - (7)].en), 0 ); }
    70537054    break;
     
    70567057
    70577058/* Line 1806 of yacc.c  */
    7058 #line 1383 "parser.yy"
     7059#line 1384 "parser.yy"
    70597060    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (13)].aggKey), (yyvsp[(10) - (13)].tok), (yyvsp[(4) - (13)].decl), (yyvsp[(8) - (13)].en), (yyvsp[(12) - (13)].decl) ); }
    70607061    break;
     
    70637064
    70647065/* Line 1806 of yacc.c  */
    7065 #line 1388 "parser.yy"
     7066#line 1389 "parser.yy"
    70667067    { (yyval.aggKey) = DeclarationNode::Struct; }
    70677068    break;
     
    70707071
    70717072/* Line 1806 of yacc.c  */
    7072 #line 1390 "parser.yy"
     7073#line 1391 "parser.yy"
    70737074    { (yyval.aggKey) = DeclarationNode::Union; }
    70747075    break;
     
    70777078
    70787079/* Line 1806 of yacc.c  */
    7079 #line 1395 "parser.yy"
     7080#line 1396 "parser.yy"
    70807081    { (yyval.decl) = (yyvsp[(1) - (1)].decl); }
    70817082    break;
     
    70847085
    70857086/* Line 1806 of yacc.c  */
    7086 #line 1397 "parser.yy"
     7087#line 1398 "parser.yy"
    70877088    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
    70887089    break;
     
    70917092
    70927093/* Line 1806 of yacc.c  */
    7093 #line 1403 "parser.yy"
     7094#line 1404 "parser.yy"
    70947095    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    70957096    break;
     
    70987099
    70997100/* Line 1806 of yacc.c  */
    7100 #line 1406 "parser.yy"
     7101#line 1407 "parser.yy"
    71017102    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    71027103    break;
     
    71057106
    71067107/* Line 1806 of yacc.c  */
    7107 #line 1412 "parser.yy"
     7108#line 1413 "parser.yy"
    71087109    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
    71097110    break;
     
    71127113
    71137114/* Line 1806 of yacc.c  */
    7114 #line 1414 "parser.yy"
     7115#line 1415 "parser.yy"
    71157116    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
    71167117    break;
     
    71197120
    71207121/* Line 1806 of yacc.c  */
    7121 #line 1416 "parser.yy"
     7122#line 1417 "parser.yy"
    71227123    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
    71237124    break;
     
    71267127
    71277128/* Line 1806 of yacc.c  */
    7128 #line 1421 "parser.yy"
     7129#line 1422 "parser.yy"
    71297130    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    71307131    break;
     
    71337134
    71347135/* Line 1806 of yacc.c  */
    7135 #line 1423 "parser.yy"
     7136#line 1424 "parser.yy"
    71367137    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
    71377138    break;
     
    71407141
    71417142/* Line 1806 of yacc.c  */
    7142 #line 1428 "parser.yy"
     7143#line 1429 "parser.yy"
    71437144    { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
    71447145    break;
     
    71477148
    71487149/* Line 1806 of yacc.c  */
    7149 #line 1430 "parser.yy"
     7150#line 1431 "parser.yy"
    71507151    { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
    71517152    break;
     
    71547155
    71557156/* Line 1806 of yacc.c  */
    7156 #line 1433 "parser.yy"
     7157#line 1434 "parser.yy"
    71577158    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    71587159    break;
     
    71617162
    71627163/* Line 1806 of yacc.c  */
    7163 #line 1436 "parser.yy"
     7164#line 1437 "parser.yy"
    71647165    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    71657166    break;
     
    71687169
    71697170/* Line 1806 of yacc.c  */
    7170 #line 1442 "parser.yy"
     7171#line 1443 "parser.yy"
    71717172    { (yyval.en) = 0; }
    71727173    break;
     
    71757176
    71767177/* Line 1806 of yacc.c  */
    7177 #line 1444 "parser.yy"
     7178#line 1445 "parser.yy"
    71787179    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    71797180    break;
     
    71827183
    71837184/* Line 1806 of yacc.c  */
    7184 #line 1449 "parser.yy"
     7185#line 1450 "parser.yy"
    71857186    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    71867187    break;
     
    71897190
    71907191/* Line 1806 of yacc.c  */
    7191 #line 1458 "parser.yy"
     7192#line 1459 "parser.yy"
    71927193    { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); }
    71937194    break;
     
    71967197
    71977198/* Line 1806 of yacc.c  */
    7198 #line 1460 "parser.yy"
     7199#line 1461 "parser.yy"
    71997200    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (6)].tok), (yyvsp[(4) - (6)].decl) ); }
    72007201    break;
     
    72037204
    72047205/* Line 1806 of yacc.c  */
    7205 #line 1462 "parser.yy"
     7206#line 1463 "parser.yy"
    72067207    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (2)].tok), 0 ); }
    72077208    break;
     
    72107211
    72117212/* Line 1806 of yacc.c  */
    7212 #line 1467 "parser.yy"
     7213#line 1468 "parser.yy"
    72137214    { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
    72147215    break;
     
    72177218
    72187219/* Line 1806 of yacc.c  */
    7219 #line 1469 "parser.yy"
     7220#line 1470 "parser.yy"
    72207221    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
    72217222    break;
     
    72247225
    72257226/* Line 1806 of yacc.c  */
    7226 #line 1474 "parser.yy"
     7227#line 1475 "parser.yy"
    72277228    { (yyval.en) = 0; }
    72287229    break;
     
    72317232
    72327233/* Line 1806 of yacc.c  */
    7233 #line 1476 "parser.yy"
     7234#line 1477 "parser.yy"
    72347235    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    72357236    break;
     
    72387239
    72397240/* Line 1806 of yacc.c  */
    7240 #line 1483 "parser.yy"
     7241#line 1484 "parser.yy"
    72417242    { (yyval.decl) = 0; }
    72427243    break;
     
    72457246
    72467247/* Line 1806 of yacc.c  */
    7247 #line 1491 "parser.yy"
     7248#line 1492 "parser.yy"
    72487249    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72497250    break;
     
    72527253
    72537254/* Line 1806 of yacc.c  */
    7254 #line 1493 "parser.yy"
     7255#line 1494 "parser.yy"
    72557256    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    72567257    break;
     
    72597260
    72607261/* Line 1806 of yacc.c  */
    7261 #line 1495 "parser.yy"
     7262#line 1496 "parser.yy"
    72627263    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    72637264    break;
     
    72667267
    72677268/* Line 1806 of yacc.c  */
    7268 #line 1504 "parser.yy"
     7269#line 1505 "parser.yy"
    72697270    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72707271    break;
     
    72737274
    72747275/* Line 1806 of yacc.c  */
    7275 #line 1506 "parser.yy"
     7276#line 1507 "parser.yy"
    72767277    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72777278    break;
     
    72807281
    72817282/* Line 1806 of yacc.c  */
    7282 #line 1508 "parser.yy"
     7283#line 1509 "parser.yy"
    72837284    { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
    72847285    break;
     
    72877288
    72887289/* Line 1806 of yacc.c  */
    7289 #line 1514 "parser.yy"
     7290#line 1515 "parser.yy"
    72907291    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72917292    break;
     
    72947295
    72957296/* Line 1806 of yacc.c  */
    7296 #line 1519 "parser.yy"
     7297#line 1520 "parser.yy"
    72977298    { (yyval.decl) = 0; }
    72987299    break;
     
    73017302
    73027303/* Line 1806 of yacc.c  */
    7303 #line 1526 "parser.yy"
     7304#line 1527 "parser.yy"
    73047305    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    73057306    break;
     
    73087309
    73097310/* Line 1806 of yacc.c  */
    7310 #line 1533 "parser.yy"
     7311#line 1534 "parser.yy"
    73117312    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    73127313    break;
     
    73157316
    73167317/* Line 1806 of yacc.c  */
    7317 #line 1535 "parser.yy"
     7318#line 1536 "parser.yy"
    73187319    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    73197320    break;
     
    73227323
    73237324/* Line 1806 of yacc.c  */
    7324 #line 1545 "parser.yy"
     7325#line 1546 "parser.yy"
    73257326    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    73267327    break;
     
    73297330
    73307331/* Line 1806 of yacc.c  */
    7331 #line 1548 "parser.yy"
     7332#line 1549 "parser.yy"
    73327333    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    73337334    break;
     
    73367337
    73377338/* Line 1806 of yacc.c  */
    7338 #line 1550 "parser.yy"
     7339#line 1551 "parser.yy"
    73397340    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
    73407341    break;
     
    73437344
    73447345/* Line 1806 of yacc.c  */
    7345 #line 1560 "parser.yy"
     7346#line 1561 "parser.yy"
    73467347    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    73477348    break;
     
    73507351
    73517352/* Line 1806 of yacc.c  */
    7352 #line 1566 "parser.yy"
     7353#line 1567 "parser.yy"
    73537354    {
    73547355                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    73607361
    73617362/* Line 1806 of yacc.c  */
    7362 #line 1571 "parser.yy"
     7363#line 1572 "parser.yy"
    73637364    {
    73647365                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    73707371
    73717372/* Line 1806 of yacc.c  */
    7372 #line 1580 "parser.yy"
     7373#line 1581 "parser.yy"
    73737374    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73747375    break;
     
    73777378
    73787379/* Line 1806 of yacc.c  */
    7379 #line 1589 "parser.yy"
     7380#line 1590 "parser.yy"
    73807381    { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
    73817382    break;
     
    73847385
    73857386/* Line 1806 of yacc.c  */
    7386 #line 1591 "parser.yy"
     7387#line 1592 "parser.yy"
    73877388    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
    73887389    break;
     
    73917392
    73927393/* Line 1806 of yacc.c  */
    7393 #line 1616 "parser.yy"
     7394#line 1617 "parser.yy"
    73947395    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73957396    break;
     
    73987399
    73997400/* Line 1806 of yacc.c  */
    7400 #line 1624 "parser.yy"
     7401#line 1625 "parser.yy"
    74017402    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    74027403    break;
     
    74057406
    74067407/* Line 1806 of yacc.c  */
    7407 #line 1629 "parser.yy"
     7408#line 1630 "parser.yy"
    74087409    { (yyval.in) = 0; }
    74097410    break;
     
    74127413
    74137414/* Line 1806 of yacc.c  */
    7414 #line 1630 "parser.yy"
     7415#line 1631 "parser.yy"
    74157416    { (yyval.in) = (yyvsp[(2) - (2)].in); }
    74167417    break;
     
    74197420
    74207421/* Line 1806 of yacc.c  */
    7421 #line 1634 "parser.yy"
     7422#line 1635 "parser.yy"
    74227423    { (yyval.in) = new InitializerNode((yyvsp[(1) - (1)].en)); }
    74237424    break;
     
    74267427
    74277428/* Line 1806 of yacc.c  */
    7428 #line 1635 "parser.yy"
     7429#line 1636 "parser.yy"
    74297430    { (yyval.in) = new InitializerNode((yyvsp[(2) - (4)].in), true); }
    74307431    break;
     
    74337434
    74347435/* Line 1806 of yacc.c  */
    7435 #line 1640 "parser.yy"
     7436#line 1641 "parser.yy"
    74367437    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
    74377438    break;
     
    74407441
    74417442/* Line 1806 of yacc.c  */
    7442 #line 1641 "parser.yy"
     7443#line 1642 "parser.yy"
    74437444    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link((yyvsp[(3) - (3)].in)) ); }
    74447445    break;
     
    74477448
    74487449/* Line 1806 of yacc.c  */
    7449 #line 1643 "parser.yy"
     7450#line 1644 "parser.yy"
    74507451    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_link( (yyvsp[(4) - (4)].in)->set_designators((yyvsp[(3) - (4)].en)) ) ); }
    74517452    break;
     
    74547455
    74557456/* Line 1806 of yacc.c  */
    7456 #line 1659 "parser.yy"
     7457#line 1660 "parser.yy"
    74577458    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (2)].tok) ); }
    74587459    break;
     
    74617462
    74627463/* Line 1806 of yacc.c  */
    7463 #line 1664 "parser.yy"
     7464#line 1665 "parser.yy"
    74647465    { (yyval.en) = (ExpressionNode *)((yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) )); }
    74657466    break;
     
    74687469
    74697470/* Line 1806 of yacc.c  */
    7470 #line 1669 "parser.yy"
     7471#line 1670 "parser.yy"
    74717472    { (yyval.en) = new VarRefNode( (yyvsp[(2) - (2)].tok) ); }
    74727473    break;
     
    74757476
    74767477/* Line 1806 of yacc.c  */
    7477 #line 1673 "parser.yy"
     7478#line 1674 "parser.yy"
    74787479    { (yyval.en) = (yyvsp[(3) - (5)].en); }
    74797480    break;
     
    74827483
    74837484/* Line 1806 of yacc.c  */
    7484 #line 1675 "parser.yy"
     7485#line 1676 "parser.yy"
    74857486    { (yyval.en) = (yyvsp[(3) - (5)].en); }
    74867487    break;
     
    74897490
    74907491/* Line 1806 of yacc.c  */
    7491 #line 1677 "parser.yy"
     7492#line 1678 "parser.yy"
    74927493    { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Range), (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en)); }
    74937494    break;
     
    74967497
    74977498/* Line 1806 of yacc.c  */
    7498 #line 1679 "parser.yy"
     7499#line 1680 "parser.yy"
    74997500    { (yyval.en) = (yyvsp[(4) - (6)].en); }
    75007501    break;
     
    75037504
    75047505/* Line 1806 of yacc.c  */
    7505 #line 1704 "parser.yy"
     7506#line 1705 "parser.yy"
    75067507    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    75077508    break;
     
    75107511
    75117512/* Line 1806 of yacc.c  */
    7512 #line 1706 "parser.yy"
     7513#line 1707 "parser.yy"
    75137514    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    75147515    break;
     
    75177518
    75187519/* Line 1806 of yacc.c  */
    7519 #line 1708 "parser.yy"
     7520#line 1709 "parser.yy"
    75207521    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    75217522    break;
     
    75247525
    75257526/* Line 1806 of yacc.c  */
    7526 #line 1713 "parser.yy"
     7527#line 1714 "parser.yy"
    75277528    { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    75287529    break;
     
    75317532
    75327533/* Line 1806 of yacc.c  */
    7533 #line 1715 "parser.yy"
     7534#line 1716 "parser.yy"
    75347535    { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(2) - (5)].tok), (yyvsp[(4) - (5)].en) )->addQualifiers( (yyvsp[(1) - (5)].decl) ); }
    75357536    break;
     
    75387539
    75397540/* Line 1806 of yacc.c  */
    7540 #line 1717 "parser.yy"
     7541#line 1718 "parser.yy"
    75417542    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    75427543    break;
     
    75457546
    75467547/* Line 1806 of yacc.c  */
    7547 #line 1723 "parser.yy"
     7548#line 1724 "parser.yy"
    75487549    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
    75497550    break;
     
    75527553
    75537554/* Line 1806 of yacc.c  */
    7554 #line 1728 "parser.yy"
     7555#line 1729 "parser.yy"
    75557556    { typedefTable.addToEnclosingScope(*((yyvsp[(2) - (2)].tok)), TypedefTable::TD); }
    75567557    break;
     
    75597560
    75607561/* Line 1806 of yacc.c  */
    7561 #line 1730 "parser.yy"
     7562#line 1731 "parser.yy"
    75627563    { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
    75637564    break;
     
    75667567
    75677568/* Line 1806 of yacc.c  */
    7568 #line 1736 "parser.yy"
     7569#line 1737 "parser.yy"
    75697570    { (yyval.tclass) = DeclarationNode::Type; }
    75707571    break;
     
    75737574
    75747575/* Line 1806 of yacc.c  */
    7575 #line 1738 "parser.yy"
     7576#line 1739 "parser.yy"
    75767577    { (yyval.tclass) = DeclarationNode::Ftype; }
    75777578    break;
     
    75807581
    75817582/* Line 1806 of yacc.c  */
    7582 #line 1740 "parser.yy"
     7583#line 1741 "parser.yy"
    75837584    { (yyval.tclass) = DeclarationNode::Dtype; }
    75847585    break;
     
    75877588
    75887589/* Line 1806 of yacc.c  */
    7589 #line 1745 "parser.yy"
     7590#line 1746 "parser.yy"
    75907591    { (yyval.decl) = 0; }
    75917592    break;
     
    75947595
    75957596/* Line 1806 of yacc.c  */
    7596 #line 1747 "parser.yy"
     7597#line 1748 "parser.yy"
    75977598    { (yyval.decl) = (yyvsp[(1) - (2)].decl) == 0 ? (yyvsp[(2) - (2)].decl) : (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
    75987599    break;
     
    76017602
    76027603/* Line 1806 of yacc.c  */
    7603 #line 1752 "parser.yy"
     7604#line 1753 "parser.yy"
    76047605    {
    76057606                        typedefTable.openContext( *((yyvsp[(2) - (5)].tok)) );
     
    76117612
    76127613/* Line 1806 of yacc.c  */
    7613 #line 1757 "parser.yy"
     7614#line 1758 "parser.yy"
    76147615    { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
    76157616    break;
     
    76187619
    76197620/* Line 1806 of yacc.c  */
    7620 #line 1759 "parser.yy"
     7621#line 1760 "parser.yy"
    76217622    { (yyval.decl) = 0; }
    76227623    break;
     
    76257626
    76267627/* Line 1806 of yacc.c  */
    7627 #line 1764 "parser.yy"
     7628#line 1765 "parser.yy"
    76287629    { (yyval.en) = new TypeValueNode( (yyvsp[(1) - (1)].decl) ); }
    76297630    break;
     
    76327633
    76337634/* Line 1806 of yacc.c  */
    7634 #line 1767 "parser.yy"
     7635#line 1768 "parser.yy"
    76357636    { (yyval.en) = (ExpressionNode *)((yyvsp[(1) - (3)].en)->set_link(new TypeValueNode( (yyvsp[(3) - (3)].decl) ))); }
    76367637    break;
     
    76397640
    76407641/* Line 1806 of yacc.c  */
    7641 #line 1769 "parser.yy"
     7642#line 1770 "parser.yy"
    76427643    { (yyval.en) = (ExpressionNode *)((yyvsp[(1) - (3)].en)->set_link((yyvsp[(3) - (3)].en))); }
    76437644    break;
     
    76467647
    76477648/* Line 1806 of yacc.c  */
    7648 #line 1774 "parser.yy"
     7649#line 1775 "parser.yy"
    76497650    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    76507651    break;
     
    76537654
    76547655/* Line 1806 of yacc.c  */
    7655 #line 1776 "parser.yy"
     7656#line 1777 "parser.yy"
    76567657    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
    76577658    break;
     
    76607661
    76617662/* Line 1806 of yacc.c  */
    7662 #line 1778 "parser.yy"
     7663#line 1779 "parser.yy"
    76637664    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
    76647665    break;
     
    76677668
    76687669/* Line 1806 of yacc.c  */
    7669 #line 1783 "parser.yy"
     7670#line 1784 "parser.yy"
    76707671    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
    76717672    break;
     
    76747675
    76757676/* Line 1806 of yacc.c  */
    7676 #line 1785 "parser.yy"
     7677#line 1786 "parser.yy"
    76777678    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
    76787679    break;
     
    76817682
    76827683/* Line 1806 of yacc.c  */
    7683 #line 1790 "parser.yy"
     7684#line 1791 "parser.yy"
    76847685    {
    76857686                        typedefTable.addToEnclosingScope(*((yyvsp[(1) - (1)].tok)), TypedefTable::TD);
     
    76917692
    76927693/* Line 1806 of yacc.c  */
    7693 #line 1795 "parser.yy"
     7694#line 1796 "parser.yy"
    76947695    {
    76957696                        typedefTable.addToEnclosingScope(*((yyvsp[(1) - (6)].tok)), TypedefTable::TG);
     
    77017702
    77027703/* Line 1806 of yacc.c  */
    7703 #line 1803 "parser.yy"
     7704#line 1804 "parser.yy"
    77047705    {
    77057706                        typedefTable.addToEnclosingScope(*((yyvsp[(2) - (9)].tok)), TypedefTable::ID );
     
    77117712
    77127713/* Line 1806 of yacc.c  */
    7713 #line 1808 "parser.yy"
     7714#line 1809 "parser.yy"
    77147715    {
    77157716                        typedefTable.enterContext( *((yyvsp[(2) - (8)].tok)) );
     
    77217722
    77227723/* Line 1806 of yacc.c  */
    7723 #line 1813 "parser.yy"
     7724#line 1814 "parser.yy"
    77247725    {
    77257726                        typedefTable.leaveContext();
     
    77327733
    77337734/* Line 1806 of yacc.c  */
    7734 #line 1823 "parser.yy"
     7735#line 1824 "parser.yy"
    77357736    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    77367737    break;
     
    77397740
    77407741/* Line 1806 of yacc.c  */
    7741 #line 1833 "parser.yy"
     7742#line 1834 "parser.yy"
    77427743    {
    77437744                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77497750
    77507751/* Line 1806 of yacc.c  */
    7751 #line 1838 "parser.yy"
     7752#line 1839 "parser.yy"
    77527753    {
    77537754                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77597760
    77607761/* Line 1806 of yacc.c  */
    7761 #line 1843 "parser.yy"
     7762#line 1844 "parser.yy"
    77627763    {
    77637764                        typedefTable.addToEnclosingScope2( *((yyvsp[(5) - (5)].tok)), TypedefTable::ID );
     
    77697770
    77707771/* Line 1806 of yacc.c  */
    7771 #line 1851 "parser.yy"
     7772#line 1852 "parser.yy"
    77727773    {
    77737774                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77797780
    77807781/* Line 1806 of yacc.c  */
    7781 #line 1856 "parser.yy"
     7782#line 1857 "parser.yy"
    77827783    {
    77837784                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77897790
    77907791/* Line 1806 of yacc.c  */
    7791 #line 1866 "parser.yy"
     7792#line 1867 "parser.yy"
    77927793    {}
    77937794    break;
     
    77967797
    77977798/* Line 1806 of yacc.c  */
    7798 #line 1868 "parser.yy"
     7799#line 1869 "parser.yy"
    77997800    {
    78007801                        if ( theTree ) {
     
    78097810
    78107811/* Line 1806 of yacc.c  */
    7811 #line 1880 "parser.yy"
     7812#line 1881 "parser.yy"
    78127813    { (yyval.decl) = ((yyvsp[(1) - (3)].decl) != NULL ) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
    78137814    break;
     
    78167817
    78177818/* Line 1806 of yacc.c  */
    7818 #line 1885 "parser.yy"
     7819#line 1886 "parser.yy"
    78197820    { (yyval.decl) = 0; }
    78207821    break;
     
    78237824
    78247825/* Line 1806 of yacc.c  */
    7825 #line 1893 "parser.yy"
     7826#line 1894 "parser.yy"
    78267827    {}
    78277828    break;
     
    78307831
    78317832/* Line 1806 of yacc.c  */
    7832 #line 1895 "parser.yy"
     7833#line 1896 "parser.yy"
    78337834    {
    78347835                        linkageStack.push( linkage );
     
    78407841
    78417842/* Line 1806 of yacc.c  */
    7842 #line 1900 "parser.yy"
     7843#line 1901 "parser.yy"
    78437844    {
    78447845                        linkage = linkageStack.top();
     
    78517852
    78527853/* Line 1806 of yacc.c  */
    7853 #line 1906 "parser.yy"
     7854#line 1907 "parser.yy"
    78547855    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    78557856    break;
     
    78587859
    78597860/* Line 1806 of yacc.c  */
    7860 #line 1918 "parser.yy"
     7861#line 1919 "parser.yy"
    78617862    {
    78627863                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78697870
    78707871/* Line 1806 of yacc.c  */
    7871 #line 1924 "parser.yy"
     7872#line 1925 "parser.yy"
    78727873    {
    78737874                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78807881
    78817882/* Line 1806 of yacc.c  */
    7882 #line 1933 "parser.yy"
     7883#line 1934 "parser.yy"
    78837884    {
    78847885                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78917892
    78927893/* Line 1806 of yacc.c  */
    7893 #line 1939 "parser.yy"
     7894#line 1940 "parser.yy"
    78947895    {
    78957896                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79027903
    79037904/* Line 1806 of yacc.c  */
    7904 #line 1945 "parser.yy"
     7905#line 1946 "parser.yy"
    79057906    {
    79067907                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79137914
    79147915/* Line 1806 of yacc.c  */
    7915 #line 1951 "parser.yy"
     7916#line 1952 "parser.yy"
    79167917    {
    79177918                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79247925
    79257926/* Line 1806 of yacc.c  */
    7926 #line 1957 "parser.yy"
     7927#line 1958 "parser.yy"
    79277928    {
    79287929                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79357936
    79367937/* Line 1806 of yacc.c  */
    7937 #line 1965 "parser.yy"
     7938#line 1966 "parser.yy"
    79387939    {
    79397940                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79467947
    79477948/* Line 1806 of yacc.c  */
    7948 #line 1971 "parser.yy"
     7949#line 1972 "parser.yy"
    79497950    {
    79507951                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79577958
    79587959/* Line 1806 of yacc.c  */
    7959 #line 1979 "parser.yy"
     7960#line 1980 "parser.yy"
    79607961    {
    79617962                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79687969
    79697970/* Line 1806 of yacc.c  */
    7970 #line 1985 "parser.yy"
     7971#line 1986 "parser.yy"
    79717972    {
    79727973                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79797980
    79807981/* Line 1806 of yacc.c  */
    7981 #line 2000 "parser.yy"
     7982#line 2001 "parser.yy"
    79827983    { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Range), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en)); }
    79837984    break;
    79847985
    79857986  case 539:
    7986 
    7987 /* Line 1806 of yacc.c  */
    7988 #line 2034 "parser.yy"
    7989     {}
    7990     break;
    7991 
    7992   case 540:
    79937987
    79947988/* Line 1806 of yacc.c  */
     
    79977991    break;
    79987992
    7999   case 541:
     7993  case 540:
    80007994
    80017995/* Line 1806 of yacc.c  */
     
    80047998    break;
    80057999
    8006   case 542:
     8000  case 541:
    80078001
    80088002/* Line 1806 of yacc.c  */
     
    80118005    break;
    80128006
     8007  case 542:
     8008
     8009/* Line 1806 of yacc.c  */
     8010#line 2038 "parser.yy"
     8011    {}
     8012    break;
     8013
    80138014  case 547:
    80148015
    80158016/* Line 1806 of yacc.c  */
    8016 #line 2080 "parser.yy"
     8017#line 2081 "parser.yy"
    80178018    {
    80188019                        typedefTable.setNextIdentifier( *((yyvsp[(1) - (1)].tok)) );
     
    80248025
    80258026/* Line 1806 of yacc.c  */
    8026 #line 2085 "parser.yy"
     8027#line 2086 "parser.yy"
    80278028    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80288029    break;
     
    80318032
    80328033/* Line 1806 of yacc.c  */
    8033 #line 2090 "parser.yy"
     8034#line 2091 "parser.yy"
    80348035    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    80358036    break;
     
    80388039
    80398040/* Line 1806 of yacc.c  */
    8040 #line 2092 "parser.yy"
     8041#line 2093 "parser.yy"
    80418042    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    80428043    break;
     
    80458046
    80468047/* Line 1806 of yacc.c  */
    8047 #line 2094 "parser.yy"
     8048#line 2095 "parser.yy"
    80488049    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80498050    break;
     
    80528053
    80538054/* Line 1806 of yacc.c  */
    8054 #line 2099 "parser.yy"
     8055#line 2100 "parser.yy"
    80558056    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    80568057    break;
     
    80598060
    80608061/* Line 1806 of yacc.c  */
    8061 #line 2101 "parser.yy"
     8062#line 2102 "parser.yy"
    80628063    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    80638064    break;
     
    80668067
    80678068/* Line 1806 of yacc.c  */
    8068 #line 2103 "parser.yy"
     8069#line 2104 "parser.yy"
    80698070    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    80708071    break;
     
    80738074
    80748075/* Line 1806 of yacc.c  */
    8075 #line 2105 "parser.yy"
     8076#line 2106 "parser.yy"
    80768077    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80778078    break;
     
    80808081
    80818082/* Line 1806 of yacc.c  */
    8082 #line 2110 "parser.yy"
     8083#line 2111 "parser.yy"
    80838084    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    80848085    break;
     
    80878088
    80888089/* Line 1806 of yacc.c  */
    8089 #line 2112 "parser.yy"
     8090#line 2113 "parser.yy"
    80908091    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80918092    break;
     
    80948095
    80958096/* Line 1806 of yacc.c  */
    8096 #line 2128 "parser.yy"
     8097#line 2129 "parser.yy"
    80978098    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    80988099    break;
     
    81018102
    81028103/* Line 1806 of yacc.c  */
    8103 #line 2130 "parser.yy"
     8104#line 2131 "parser.yy"
    81048105    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    81058106    break;
     
    81088109
    81098110/* Line 1806 of yacc.c  */
    8110 #line 2132 "parser.yy"
     8111#line 2133 "parser.yy"
    81118112    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81128113    break;
     
    81158116
    81168117/* Line 1806 of yacc.c  */
    8117 #line 2137 "parser.yy"
     8118#line 2138 "parser.yy"
    81188119    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    81198120    break;
     
    81228123
    81238124/* Line 1806 of yacc.c  */
    8124 #line 2139 "parser.yy"
     8125#line 2140 "parser.yy"
    81258126    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    81268127    break;
     
    81298130
    81308131/* Line 1806 of yacc.c  */
    8131 #line 2141 "parser.yy"
     8132#line 2142 "parser.yy"
    81328133    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81338134    break;
     
    81368137
    81378138/* Line 1806 of yacc.c  */
    8138 #line 2146 "parser.yy"
     8139#line 2147 "parser.yy"
    81398140    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    81408141    break;
     
    81438144
    81448145/* Line 1806 of yacc.c  */
    8145 #line 2148 "parser.yy"
     8146#line 2149 "parser.yy"
    81468147    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    81478148    break;
     
    81508151
    81518152/* Line 1806 of yacc.c  */
    8152 #line 2150 "parser.yy"
     8153#line 2151 "parser.yy"
    81538154    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81548155    break;
     
    81578158
    81588159/* Line 1806 of yacc.c  */
    8159 #line 2165 "parser.yy"
     8160#line 2166 "parser.yy"
    81608161    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
    81618162    break;
     
    81648165
    81658166/* Line 1806 of yacc.c  */
    8166 #line 2167 "parser.yy"
     8167#line 2168 "parser.yy"
    81678168    { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
    81688169    break;
     
    81718172
    81728173/* Line 1806 of yacc.c  */
    8173 #line 2169 "parser.yy"
     8174#line 2170 "parser.yy"
    81748175    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81758176    break;
     
    81788179
    81798180/* Line 1806 of yacc.c  */
    8180 #line 2174 "parser.yy"
     8181#line 2175 "parser.yy"
    81818182    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    81828183    break;
     
    81858186
    81868187/* Line 1806 of yacc.c  */
    8187 #line 2176 "parser.yy"
     8188#line 2177 "parser.yy"
    81888189    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    81898190    break;
     
    81928193
    81938194/* Line 1806 of yacc.c  */
    8194 #line 2178 "parser.yy"
     8195#line 2179 "parser.yy"
    81958196    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81968197    break;
     
    81998200
    82008201/* Line 1806 of yacc.c  */
    8201 #line 2183 "parser.yy"
     8202#line 2184 "parser.yy"
    82028203    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    82038204    break;
     
    82068207
    82078208/* Line 1806 of yacc.c  */
    8208 #line 2185 "parser.yy"
     8209#line 2186 "parser.yy"
    82098210    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    82108211    break;
     
    82138214
    82148215/* Line 1806 of yacc.c  */
    8215 #line 2187 "parser.yy"
     8216#line 2188 "parser.yy"
    82168217    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82178218    break;
     
    82208221
    82218222/* Line 1806 of yacc.c  */
    8222 #line 2209 "parser.yy"
     8223#line 2210 "parser.yy"
    82238224    {
    82248225                        typedefTable.setNextIdentifier( *((yyvsp[(1) - (1)].tok)) );
     
    82308231
    82318232/* Line 1806 of yacc.c  */
    8232 #line 2214 "parser.yy"
     8233#line 2215 "parser.yy"
    82338234    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82348235    break;
     
    82378238
    82388239/* Line 1806 of yacc.c  */
    8239 #line 2219 "parser.yy"
     8240#line 2220 "parser.yy"
    82408241    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    82418242    break;
     
    82448245
    82458246/* Line 1806 of yacc.c  */
    8246 #line 2221 "parser.yy"
     8247#line 2222 "parser.yy"
    82478248    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    82488249    break;
     
    82518252
    82528253/* Line 1806 of yacc.c  */
    8253 #line 2223 "parser.yy"
     8254#line 2224 "parser.yy"
    82548255    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82558256    break;
     
    82588259
    82598260/* Line 1806 of yacc.c  */
    8260 #line 2228 "parser.yy"
     8261#line 2229 "parser.yy"
    82618262    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    82628263    break;
     
    82658266
    82668267/* Line 1806 of yacc.c  */
    8267 #line 2230 "parser.yy"
     8268#line 2231 "parser.yy"
    82688269    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    82698270    break;
     
    82728273
    82738274/* Line 1806 of yacc.c  */
    8274 #line 2232 "parser.yy"
     8275#line 2233 "parser.yy"
    82758276    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    82768277    break;
     
    82798280
    82808281/* Line 1806 of yacc.c  */
    8281 #line 2234 "parser.yy"
     8282#line 2235 "parser.yy"
    82828283    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82838284    break;
     
    82868287
    82878288/* Line 1806 of yacc.c  */
    8288 #line 2239 "parser.yy"
     8289#line 2240 "parser.yy"
    82898290    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    82908291    break;
     
    82938294
    82948295/* Line 1806 of yacc.c  */
    8295 #line 2241 "parser.yy"
     8296#line 2242 "parser.yy"
    82968297    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    82978298    break;
     
    83008301
    83018302/* Line 1806 of yacc.c  */
    8302 #line 2243 "parser.yy"
     8303#line 2244 "parser.yy"
    83038304    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83048305    break;
     
    83078308
    83088309/* Line 1806 of yacc.c  */
    8309 #line 2260 "parser.yy"
     8310#line 2261 "parser.yy"
    83108311    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    83118312    break;
     
    83148315
    83158316/* Line 1806 of yacc.c  */
    8316 #line 2262 "parser.yy"
     8317#line 2263 "parser.yy"
    83178318    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    83188319    break;
     
    83218322
    83228323/* Line 1806 of yacc.c  */
    8323 #line 2264 "parser.yy"
     8324#line 2265 "parser.yy"
    83248325    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83258326    break;
     
    83288329
    83298330/* Line 1806 of yacc.c  */
    8330 #line 2269 "parser.yy"
     8331#line 2270 "parser.yy"
    83318332    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    83328333    break;
     
    83358336
    83368337/* Line 1806 of yacc.c  */
    8337 #line 2271 "parser.yy"
     8338#line 2272 "parser.yy"
    83388339    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    83398340    break;
     
    83428343
    83438344/* Line 1806 of yacc.c  */
    8344 #line 2273 "parser.yy"
     8345#line 2274 "parser.yy"
    83458346    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    83468347    break;
     
    83498350
    83508351/* Line 1806 of yacc.c  */
    8351 #line 2275 "parser.yy"
     8352#line 2276 "parser.yy"
    83528353    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83538354    break;
     
    83568357
    83578358/* Line 1806 of yacc.c  */
    8358 #line 2280 "parser.yy"
     8359#line 2281 "parser.yy"
    83598360    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    83608361    break;
     
    83638364
    83648365/* Line 1806 of yacc.c  */
    8365 #line 2282 "parser.yy"
     8366#line 2283 "parser.yy"
    83668367    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    83678368    break;
     
    83708371
    83718372/* Line 1806 of yacc.c  */
    8372 #line 2284 "parser.yy"
     8373#line 2285 "parser.yy"
    83738374    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83748375    break;
     
    83778378
    83788379/* Line 1806 of yacc.c  */
    8379 #line 2322 "parser.yy"
     8380#line 2323 "parser.yy"
    83808381    {
    83818382                        typedefTable.setNextIdentifier( *((yyvsp[(1) - (1)].tok)) );
     
    83878388
    83888389/* Line 1806 of yacc.c  */
    8389 #line 2330 "parser.yy"
     8390#line 2331 "parser.yy"
    83908391    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    83918392    break;
     
    83948395
    83958396/* Line 1806 of yacc.c  */
    8396 #line 2332 "parser.yy"
     8397#line 2333 "parser.yy"
    83978398    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    83988399    break;
     
    84018402
    84028403/* Line 1806 of yacc.c  */
    8403 #line 2334 "parser.yy"
     8404#line 2335 "parser.yy"
    84048405    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84058406    break;
     
    84088409
    84098410/* Line 1806 of yacc.c  */
    8410 #line 2339 "parser.yy"
     8411#line 2340 "parser.yy"
    84118412    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    84128413    break;
     
    84158416
    84168417/* Line 1806 of yacc.c  */
    8417 #line 2341 "parser.yy"
     8418#line 2342 "parser.yy"
    84188419    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    84198420    break;
     
    84228423
    84238424/* Line 1806 of yacc.c  */
    8424 #line 2346 "parser.yy"
     8425#line 2347 "parser.yy"
    84258426    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    84268427    break;
     
    84298430
    84308431/* Line 1806 of yacc.c  */
    8431 #line 2348 "parser.yy"
     8432#line 2349 "parser.yy"
    84328433    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    84338434    break;
     
    84368437
    84378438/* Line 1806 of yacc.c  */
    8438 #line 2368 "parser.yy"
     8439#line 2369 "parser.yy"
    84398440    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    84408441    break;
     
    84438444
    84448445/* Line 1806 of yacc.c  */
    8445 #line 2370 "parser.yy"
     8446#line 2371 "parser.yy"
    84468447    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    84478448    break;
     
    84508451
    84518452/* Line 1806 of yacc.c  */
    8452 #line 2372 "parser.yy"
     8453#line 2373 "parser.yy"
    84538454    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    84548455    break;
     
    84578458
    84588459/* Line 1806 of yacc.c  */
    8459 #line 2374 "parser.yy"
     8460#line 2375 "parser.yy"
    84608461    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    84618462    break;
     
    84648465
    84658466/* Line 1806 of yacc.c  */
    8466 #line 2376 "parser.yy"
     8467#line 2377 "parser.yy"
    84678468    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84688469    break;
     
    84718472
    84728473/* Line 1806 of yacc.c  */
    8473 #line 2382 "parser.yy"
     8474#line 2383 "parser.yy"
    84748475    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    84758476    break;
     
    84788479
    84798480/* Line 1806 of yacc.c  */
    8480 #line 2384 "parser.yy"
     8481#line 2385 "parser.yy"
    84818482    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    84828483    break;
     
    84858486
    84868487/* Line 1806 of yacc.c  */
    8487 #line 2386 "parser.yy"
     8488#line 2387 "parser.yy"
    84888489    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84898490    break;
     
    84928493
    84938494/* Line 1806 of yacc.c  */
    8494 #line 2391 "parser.yy"
     8495#line 2392 "parser.yy"
    84958496    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    84968497    break;
     
    84998500
    85008501/* Line 1806 of yacc.c  */
    8501 #line 2393 "parser.yy"
     8502#line 2394 "parser.yy"
    85028503    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    85038504    break;
     
    85068507
    85078508/* Line 1806 of yacc.c  */
    8508 #line 2395 "parser.yy"
     8509#line 2396 "parser.yy"
    85098510    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85108511    break;
     
    85138514
    85148515/* Line 1806 of yacc.c  */
    8515 #line 2401 "parser.yy"
     8516#line 2402 "parser.yy"
    85168517    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    85178518    break;
     
    85208521
    85218522/* Line 1806 of yacc.c  */
    8522 #line 2403 "parser.yy"
     8523#line 2404 "parser.yy"
    85238524    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(5) - (5)].decl) ); }
    85248525    break;
     
    85278528
    85288529/* Line 1806 of yacc.c  */
    8529 #line 2409 "parser.yy"
     8530#line 2410 "parser.yy"
    85308531    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
    85318532    break;
     
    85348535
    85358536/* Line 1806 of yacc.c  */
    8536 #line 2411 "parser.yy"
     8537#line 2412 "parser.yy"
    85378538    { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
    85388539    break;
     
    85418542
    85428543/* Line 1806 of yacc.c  */
    8543 #line 2413 "parser.yy"
     8544#line 2414 "parser.yy"
    85448545    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
    85458546    break;
     
    85488549
    85498550/* Line 1806 of yacc.c  */
    8550 #line 2415 "parser.yy"
     8551#line 2416 "parser.yy"
    85518552    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
    85528553    break;
     
    85558556
    85568557/* Line 1806 of yacc.c  */
    8557 #line 2435 "parser.yy"
     8558#line 2436 "parser.yy"
    85588559    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    85598560    break;
     
    85628563
    85638564/* Line 1806 of yacc.c  */
    8564 #line 2437 "parser.yy"
     8565#line 2438 "parser.yy"
    85658566    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    85668567    break;
     
    85698570
    85708571/* Line 1806 of yacc.c  */
    8571 #line 2439 "parser.yy"
     8572#line 2440 "parser.yy"
    85728573    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    85738574    break;
     
    85768577
    85778578/* Line 1806 of yacc.c  */
    8578 #line 2441 "parser.yy"
     8579#line 2442 "parser.yy"
    85798580    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    85808581    break;
     
    85838584
    85848585/* Line 1806 of yacc.c  */
    8585 #line 2443 "parser.yy"
     8586#line 2444 "parser.yy"
    85868587    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85878588    break;
     
    85908591
    85918592/* Line 1806 of yacc.c  */
    8592 #line 2449 "parser.yy"
     8593#line 2450 "parser.yy"
    85938594    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    85948595    break;
     
    85978598
    85988599/* Line 1806 of yacc.c  */
    8599 #line 2451 "parser.yy"
     8600#line 2452 "parser.yy"
    86008601    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    86018602    break;
     
    86048605
    86058606/* Line 1806 of yacc.c  */
    8606 #line 2453 "parser.yy"
     8607#line 2454 "parser.yy"
    86078608    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86088609    break;
     
    86118612
    86128613/* Line 1806 of yacc.c  */
    8613 #line 2458 "parser.yy"
     8614#line 2459 "parser.yy"
    86148615    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    86158616    break;
     
    86188619
    86198620/* Line 1806 of yacc.c  */
    8620 #line 2460 "parser.yy"
     8621#line 2461 "parser.yy"
    86218622    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    86228623    break;
     
    86258626
    86268627/* Line 1806 of yacc.c  */
    8627 #line 2462 "parser.yy"
     8628#line 2463 "parser.yy"
    86288629    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86298630    break;
     
    86328633
    86338634/* Line 1806 of yacc.c  */
    8634 #line 2469 "parser.yy"
     8635#line 2470 "parser.yy"
    86358636    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    86368637    break;
     
    86398640
    86408641/* Line 1806 of yacc.c  */
    8641 #line 2481 "parser.yy"
     8642#line 2482 "parser.yy"
    86428643    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    86438644    break;
     
    86468647
    86478648/* Line 1806 of yacc.c  */
    8648 #line 2484 "parser.yy"
     8649#line 2485 "parser.yy"
    86498650    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    86508651    break;
     
    86538654
    86548655/* Line 1806 of yacc.c  */
    8655 #line 2486 "parser.yy"
     8656#line 2487 "parser.yy"
    86568657    { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
    86578658    break;
     
    86608661
    86618662/* Line 1806 of yacc.c  */
    8662 #line 2489 "parser.yy"
     8663#line 2490 "parser.yy"
    86638664    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    86648665    break;
     
    86678668
    86688669/* Line 1806 of yacc.c  */
    8669 #line 2491 "parser.yy"
     8670#line 2492 "parser.yy"
    86708671    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
    86718672    break;
     
    86748675
    86758676/* Line 1806 of yacc.c  */
    8676 #line 2493 "parser.yy"
     8677#line 2494 "parser.yy"
    86778678    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
    86788679    break;
     
    86818682
    86828683/* Line 1806 of yacc.c  */
    8683 #line 2512 "parser.yy"
     8684#line 2513 "parser.yy"
    86848685    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    86858686    break;
     
    86888689
    86898690/* Line 1806 of yacc.c  */
    8690 #line 2514 "parser.yy"
     8691#line 2515 "parser.yy"
    86918692    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    86928693    break;
     
    86958696
    86968697/* Line 1806 of yacc.c  */
    8697 #line 2516 "parser.yy"
     8698#line 2517 "parser.yy"
    86988699    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    86998700    break;
     
    87028703
    87038704/* Line 1806 of yacc.c  */
    8704 #line 2518 "parser.yy"
     8705#line 2519 "parser.yy"
    87058706    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    87068707    break;
     
    87098710
    87108711/* Line 1806 of yacc.c  */
    8711 #line 2520 "parser.yy"
     8712#line 2521 "parser.yy"
    87128713    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87138714    break;
     
    87168717
    87178718/* Line 1806 of yacc.c  */
    8718 #line 2526 "parser.yy"
     8719#line 2527 "parser.yy"
    87198720    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    87208721    break;
     
    87238724
    87248725/* Line 1806 of yacc.c  */
    8725 #line 2528 "parser.yy"
     8726#line 2529 "parser.yy"
    87268727    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    87278728    break;
     
    87308731
    87318732/* Line 1806 of yacc.c  */
    8732 #line 2530 "parser.yy"
     8733#line 2531 "parser.yy"
    87338734    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87348735    break;
     
    87378738
    87388739/* Line 1806 of yacc.c  */
    8739 #line 2535 "parser.yy"
     8740#line 2536 "parser.yy"
    87408741    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    87418742    break;
     
    87448745
    87458746/* Line 1806 of yacc.c  */
    8746 #line 2537 "parser.yy"
     8747#line 2538 "parser.yy"
    87478748    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87488749    break;
     
    87518752
    87528753/* Line 1806 of yacc.c  */
    8753 #line 2547 "parser.yy"
     8754#line 2548 "parser.yy"
    87548755    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    87558756    break;
     
    87588759
    87598760/* Line 1806 of yacc.c  */
    8760 #line 2557 "parser.yy"
     8761#line 2558 "parser.yy"
    87618762    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    87628763    break;
     
    87658766
    87668767/* Line 1806 of yacc.c  */
    8767 #line 2559 "parser.yy"
     8768#line 2560 "parser.yy"
    87688769    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    87698770    break;
     
    87728773
    87738774/* Line 1806 of yacc.c  */
    8774 #line 2561 "parser.yy"
     8775#line 2562 "parser.yy"
    87758776    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    87768777    break;
     
    87798780
    87808781/* Line 1806 of yacc.c  */
    8781 #line 2563 "parser.yy"
     8782#line 2564 "parser.yy"
    87828783    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    87838784    break;
     
    87868787
    87878788/* Line 1806 of yacc.c  */
    8788 #line 2565 "parser.yy"
     8789#line 2566 "parser.yy"
    87898790    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    87908791    break;
     
    87938794
    87948795/* Line 1806 of yacc.c  */
    8795 #line 2567 "parser.yy"
     8796#line 2568 "parser.yy"
    87968797    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    87978798    break;
     
    88008801
    88018802/* Line 1806 of yacc.c  */
    8802 #line 2574 "parser.yy"
     8803#line 2575 "parser.yy"
    88038804    { (yyval.decl) = (yyvsp[(5) - (5)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    88048805    break;
     
    88078808
    88088809/* Line 1806 of yacc.c  */
    8809 #line 2576 "parser.yy"
     8810#line 2577 "parser.yy"
    88108811    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    88118812    break;
     
    88148815
    88158816/* Line 1806 of yacc.c  */
    8816 #line 2578 "parser.yy"
     8817#line 2579 "parser.yy"
    88178818    { (yyval.decl) = (yyvsp[(6) - (6)].decl)->addNewArray( (yyvsp[(5) - (6)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    88188819    break;
     
    88218822
    88228823/* Line 1806 of yacc.c  */
    8823 #line 2580 "parser.yy"
     8824#line 2581 "parser.yy"
    88248825    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    88258826    break;
     
    88288829
    88298830/* Line 1806 of yacc.c  */
    8830 #line 2582 "parser.yy"
     8831#line 2583 "parser.yy"
    88318832    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    88328833    break;
     
    88358836
    88368837/* Line 1806 of yacc.c  */
    8837 #line 2584 "parser.yy"
     8838#line 2585 "parser.yy"
    88388839    { (yyval.decl) = (yyvsp[(5) - (5)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    88398840    break;
     
    88428843
    88438844/* Line 1806 of yacc.c  */
    8844 #line 2586 "parser.yy"
     8845#line 2587 "parser.yy"
    88458846    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    88468847    break;
     
    88498850
    88508851/* Line 1806 of yacc.c  */
    8851 #line 2588 "parser.yy"
     8852#line 2589 "parser.yy"
    88528853    { (yyval.decl) = (yyvsp[(6) - (6)].decl)->addNewArray( (yyvsp[(5) - (6)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    88538854    break;
     
    88568857
    88578858/* Line 1806 of yacc.c  */
    8858 #line 2590 "parser.yy"
     8859#line 2591 "parser.yy"
    88598860    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    88608861    break;
     
    88638864
    88648865/* Line 1806 of yacc.c  */
    8865 #line 2592 "parser.yy"
     8866#line 2593 "parser.yy"
    88668867    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    88678868    break;
     
    88708871
    88718872/* Line 1806 of yacc.c  */
    8872 #line 2597 "parser.yy"
     8873#line 2598 "parser.yy"
    88738874    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    88748875    break;
     
    88778878
    88788879/* Line 1806 of yacc.c  */
    8879 #line 2599 "parser.yy"
     8880#line 2600 "parser.yy"
    88808881    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    88818882    break;
     
    88848885
    88858886/* Line 1806 of yacc.c  */
    8886 #line 2604 "parser.yy"
     8887#line 2605 "parser.yy"
    88878888    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
    88888889    break;
     
    88918892
    88928893/* Line 1806 of yacc.c  */
    8893 #line 2606 "parser.yy"
     8894#line 2607 "parser.yy"
    88948895    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
    88958896    break;
     
    88988899
    88998900/* Line 1806 of yacc.c  */
    8900 #line 2633 "parser.yy"
     8901#line 2634 "parser.yy"
    89018902    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    89028903    break;
     
    89058906
    89068907/* Line 1806 of yacc.c  */
    8907 #line 2644 "parser.yy"
     8908#line 2645 "parser.yy"
    89088909    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89098910    break;
     
    89128913
    89138914/* Line 1806 of yacc.c  */
    8914 #line 2646 "parser.yy"
     8915#line 2647 "parser.yy"
    89158916    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89168917    break;
     
    89198920
    89208921/* Line 1806 of yacc.c  */
    8921 #line 2648 "parser.yy"
     8922#line 2649 "parser.yy"
    89228923    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89238924    break;
     
    89268927
    89278928/* Line 1806 of yacc.c  */
    8928 #line 2650 "parser.yy"
     8929#line 2651 "parser.yy"
    89298930    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89308931    break;
     
    89338934
    89348935/* Line 1806 of yacc.c  */
    8935 #line 2652 "parser.yy"
     8936#line 2653 "parser.yy"
    89368937    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89378938    break;
     
    89408941
    89418942/* Line 1806 of yacc.c  */
    8942 #line 2654 "parser.yy"
     8943#line 2655 "parser.yy"
    89438944    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89448945    break;
     
    89478948
    89488949/* Line 1806 of yacc.c  */
    8949 #line 2661 "parser.yy"
     8950#line 2662 "parser.yy"
    89508951    { (yyval.decl) = (yyvsp[(5) - (5)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89518952    break;
     
    89548955
    89558956/* Line 1806 of yacc.c  */
    8956 #line 2663 "parser.yy"
     8957#line 2664 "parser.yy"
    89578958    { (yyval.decl) = (yyvsp[(6) - (6)].decl)->addNewArray( (yyvsp[(5) - (6)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89588959    break;
     
    89618962
    89628963/* Line 1806 of yacc.c  */
    8963 #line 2665 "parser.yy"
     8964#line 2666 "parser.yy"
    89648965    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    89658966    break;
     
    89688969
    89698970/* Line 1806 of yacc.c  */
    8970 #line 2667 "parser.yy"
     8971#line 2668 "parser.yy"
    89718972    { (yyval.decl) = (yyvsp[(5) - (5)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89728973    break;
     
    89758976
    89768977/* Line 1806 of yacc.c  */
    8977 #line 2669 "parser.yy"
     8978#line 2670 "parser.yy"
    89788979    { (yyval.decl) = (yyvsp[(6) - (6)].decl)->addNewArray( (yyvsp[(5) - (6)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89798980    break;
     
    89828983
    89838984/* Line 1806 of yacc.c  */
    8984 #line 2671 "parser.yy"
     8985#line 2672 "parser.yy"
    89858986    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    89868987    break;
     
    89898990
    89908991/* Line 1806 of yacc.c  */
    8991 #line 2676 "parser.yy"
     8992#line 2677 "parser.yy"
    89928993    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    89938994    break;
     
    89968997
    89978998/* Line 1806 of yacc.c  */
    8998 #line 2681 "parser.yy"
     8999#line 2682 "parser.yy"
    89999000    { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (7)].decl), 0 ); }
    90009001    break;
     
    90039004
    90049005/* Line 1806 of yacc.c  */
    9005 #line 2683 "parser.yy"
     9006#line 2684 "parser.yy"
    90069007    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    90079008    break;
     
    90109011
    90119012/* Line 1806 of yacc.c  */
    9012 #line 2685 "parser.yy"
     9013#line 2686 "parser.yy"
    90139014    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    90149015    break;
     
    90179018
    90189019/* Line 1806 of yacc.c  */
    9019 #line 2711 "parser.yy"
     9020#line 2712 "parser.yy"
    90209021    { (yyval.en) = 0; }
    90219022    break;
     
    90249025
    90259026/* Line 1806 of yacc.c  */
    9026 #line 2713 "parser.yy"
     9027#line 2714 "parser.yy"
    90279028    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    90289029    break;
     
    90319032
    90329033/* Line 1806 of yacc.c  */
    9033 #line 9034 "Parser/parser.cc"
     9034#line 9035 "Parser/parser.cc"
    90349035      default: break;
    90359036    }
     
    92629263
    92639264/* Line 2067 of yacc.c  */
    9264 #line 2716 "parser.yy"
     9265#line 2717 "parser.yy"
    92659266
    92669267// ----end of grammar----
     
    92719272            std::cout << "in file " << yyfilename << " ";
    92729273        } // if
    9273         std::cout << "at line " << yylineno << " reading token \"" << *(yylval.tok.str) << "\"" << std::endl;
     9274//      std::cout << "at line " << yylineno << " reading token \"" << *(yylval.tok.str) << "\"" << std::endl;
     9275        std::cout << "at line " << yylineno << " reading token \"" << yytext << "\"" << std::endl;
    92749276}
    92759277
  • src/Parser/parser.h

    r0b2961f r8a95629  
    246246
    247247/* Line 2068 of yacc.c  */
    248 #line 107 "parser.yy"
     248#line 108 "parser.yy"
    249249
    250250        Token tok;
  • src/Parser/parser.yy

    r0b2961f r8a95629  
    1010// Created On       : Sat Sep  1 20:22:55 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Jun  8 20:31:07 2015
    13 // Update Count     : 1030
     12// Last Modified On : Wed Jun 10 14:22:15 2015
     13// Update Count     : 1039
    1414//
    1515
     
    4646#define YYDEBUG_LEXER_TEXT (yylval)                                             // lexer loads this up each time
    4747#define YYDEBUG 1                                                                               // get the pretty debugging code to compile
     48extern char *yytext;
    4849
    4950#undef __GNUC_MINOR__
     
    27222723            std::cout << "in file " << yyfilename << " ";
    27232724        } // if
    2724         std::cout << "at line " << yylineno << " reading token \"" << *(yylval.tok.str) << "\"" << std::endl;
     2725        std::cout << "at line " << yylineno << " reading token \"" << yytext << "\"" << std::endl;
    27252726}
    27262727
  • src/Tests/SynTree/Forall.c

    r0b2961f r8a95629  
     1int ?=?( int*, int );
     2float ?=?( float*, float );
     3int * ?=?( int **, int * );
     4float * ?=?( float **, float * );
     5char ?=?( char*, char );
     6void (* ?=?( void (**)(void), void (*)(void) ))(void);
     7
     8void g1() {
     9        forall( type T ) T f( T );
     10        void f( int );
     11        void h( void (*p)(void) );
     12 
     13        int x;
     14        void (*y)(void);
     15        char z;
     16        float w;
     17 
     18        f( x );
     19        f( y );
     20        f( z );
     21        f( w );
     22        h( f( y ) );
     23}
     24
     25void g2() {
     26        forall( type T ) void f( T, T );
     27        forall( type T, type U ) void f( T, U );
     28 
     29        int x;
     30        float y;
     31        int *z;
     32        float *w;
     33 
     34        f( x, y );
     35        f( z, w );
     36        f( x, z );
     37}
     38
    139typedef forall ( type T ) int (*f)( int );
    240
  • src/Tests/Syntax/Attributes.c

    r0b2961f r8a95629  
    2121    return 7;
    2222}
     23
     24int @voon;
     25double @voon;
     26
     27int @bort(int);
     28int @bort(double);
     29
     30void g( int );
     31
     32void f() {
     33        float x;
     34        double x;
     35        @bort(x);
     36        @bort(int);
     37        g( @voon );
     38}
     39
     40// Local Variables: //
     41// tab-width: 4 //
     42// End: //
Note: See TracChangeset for help on using the changeset viewer.