Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/parser.cc

    r064e3ff r8688ce1  
    354354        LabelNode *label;
    355355        InitializerNode *in;
    356         OperatorNode::Type op;
    357356        bool flag;
    358357
     
    360359
    361360/* Line 293 of yacc.c  */
    362 #line 363 "Parser/parser.cc"
     361#line 362 "Parser/parser.cc"
    363362} YYSTYPE;
    364363# define YYSTYPE_IS_TRIVIAL 1
     
    372371
    373372/* Line 343 of yacc.c  */
    374 #line 375 "Parser/parser.cc"
     373#line 374 "Parser/parser.cc"
    375374
    376375#ifdef short
     
    10171016static const yytype_uint16 yyrline[] =
    10181017{
    1019        0,   292,   292,   298,   307,   308,   309,   313,   314,   315,
    1020      319,   320,   324,   325,   329,   330,   334,   335,   341,   343,
    1021      345,   347,   352,   353,   359,   363,   365,   366,   368,   369,
    1022      371,   373,   375,   383,   384,   390,   391,   392,   397,   399,
    1023      404,   405,   409,   413,   415,   417,   419,   424,   427,   429,
    1024      431,   433,   438,   440,   442,   444,   446,   448,   450,   452,
    1025      454,   456,   458,   465,   466,   468,   472,   473,   474,   475,
    1026      479,   480,   482,   487,   488,   490,   492,   497,   498,   500,
    1027      505,   506,   508,   513,   514,   516,   518,   520,   525,   526,
    1028      528,   533,   534,   539,   540,   545,   546,   551,   552,   557,
    1029      558,   563,   564,   566,   568,   573,   578,   579,   581,   583,
    1030      589,   590,   596,   598,   600,   602,   607,   608,   613,   614,
    1031      615,   616,   617,   618,   619,   620,   621,   622,   626,   627,
    1032      633,   634,   640,   641,   642,   643,   644,   645,   646,   647,
    1033      648,   658,   665,   667,   677,   678,   683,   685,   691,   693,
    1034      697,   698,   703,   708,   711,   713,   715,   725,   727,   738,
    1035      739,   741,   745,   747,   751,   752,   757,   758,   762,   767,
    1036      768,   772,   774,   780,   781,   785,   787,   789,   791,   797,
    1037      798,   802,   804,   809,   811,   813,   818,   820,   825,   827,
    1038      831,   834,   838,   841,   845,   847,   851,   853,   860,   862,
    1039      864,   873,   875,   877,   879,   881,   886,   888,   890,   892,
    1040      897,   910,   911,   916,   918,   923,   927,   929,   931,   933,
    1041      935,   941,   942,   948,   949,   953,   954,   959,   961,   967,
    1042      968,   970,   975,   977,   984,   986,   990,   991,   996,   998,
    1043     1002,  1003,  1007,  1009,  1013,  1014,  1018,  1019,  1023,  1024,
    1044     1039,  1040,  1041,  1042,  1043,  1047,  1052,  1059,  1069,  1074,
    1045     1079,  1087,  1092,  1097,  1102,  1107,  1115,  1137,  1142,  1149,
    1046     1151,  1158,  1163,  1168,  1179,  1184,  1189,  1194,  1199,  1208,
    1047     1213,  1221,  1222,  1223,  1224,  1230,  1235,  1243,  1244,  1245,
    1048     1246,  1250,  1251,  1252,  1253,  1258,  1259,  1268,  1269,  1274,
    1049     1275,  1280,  1282,  1284,  1286,  1288,  1291,  1290,  1302,  1303,
    1050     1305,  1315,  1316,  1321,  1325,  1327,  1329,  1331,  1333,  1335,
    1051     1337,  1339,  1344,  1346,  1348,  1350,  1352,  1354,  1356,  1358,
    1052     1360,  1362,  1364,  1366,  1368,  1374,  1375,  1377,  1379,  1381,
    1053     1386,  1387,  1393,  1394,  1396,  1398,  1403,  1405,  1407,  1409,
    1054     1414,  1415,  1417,  1419,  1424,  1425,  1427,  1432,  1433,  1435,
    1055     1437,  1442,  1444,  1446,  1451,  1452,  1456,  1458,  1464,  1463,
    1056     1467,  1469,  1474,  1476,  1482,  1483,  1488,  1489,  1491,  1492,
    1057     1501,  1502,  1504,  1506,  1511,  1513,  1519,  1520,  1522,  1525,
    1058     1528,  1533,  1534,  1539,  1544,  1548,  1550,  1556,  1555,  1562,
    1059     1564,  1570,  1571,  1579,  1580,  1584,  1585,  1586,  1588,  1590,
    1060     1597,  1598,  1600,  1602,  1607,  1608,  1614,  1615,  1619,  1620,
    1061     1625,  1626,  1627,  1629,  1637,  1638,  1640,  1643,  1645,  1649,
    1062     1650,  1651,  1653,  1655,  1659,  1664,  1672,  1673,  1682,  1684,
    1063     1689,  1690,  1691,  1695,  1696,  1697,  1701,  1702,  1703,  1707,
    1064     1708,  1709,  1714,  1715,  1716,  1717,  1723,  1724,  1726,  1731,
    1065     1732,  1737,  1738,  1739,  1740,  1741,  1756,  1757,  1762,  1763,
    1066     1771,  1773,  1775,  1778,  1780,  1782,  1805,  1806,  1808,  1810,
    1067     1815,  1816,  1818,  1823,  1828,  1829,  1835,  1834,  1838,  1842,
    1068     1844,  1846,  1852,  1853,  1858,  1863,  1865,  1870,  1872,  1873,
    1069     1875,  1880,  1882,  1884,  1889,  1891,  1896,  1901,  1909,  1915,
    1070     1914,  1928,  1929,  1934,  1935,  1939,  1944,  1949,  1957,  1962,
    1071     1973,  1974,  1985,  1986,  1992,  1993,  1997,  1998,  1999,  2002,
    1072     2001,  2012,  2021,  2027,  2033,  2042,  2048,  2054,  2060,  2066,
    1073     2074,  2080,  2088,  2094,  2103,  2104,  2105,  2109,  2113,  2115,
    1074     2120,  2121,  2125,  2126,  2131,  2137,  2138,  2141,  2143,  2144,
    1075     2148,  2149,  2150,  2151,  2185,  2187,  2188,  2190,  2195,  2200,
    1076     2205,  2207,  2209,  2214,  2216,  2218,  2220,  2225,  2227,  2236,
    1077     2238,  2239,  2244,  2246,  2248,  2253,  2255,  2257,  2262,  2264,
    1078     2266,  2275,  2276,  2277,  2281,  2283,  2285,  2290,  2292,  2294,
    1079     2299,  2301,  2303,  2318,  2320,  2321,  2323,  2328,  2329,  2334,
    1080     2336,  2338,  2343,  2345,  2347,  2349,  2354,  2356,  2358,  2368,
    1081     2370,  2371,  2373,  2378,  2380,  2382,  2387,  2389,  2391,  2393,
    1082     2398,  2400,  2402,  2433,  2435,  2436,  2438,  2443,  2448,  2456,
    1083     2458,  2460,  2465,  2467,  2472,  2474,  2488,  2489,  2491,  2496,
    1084     2498,  2500,  2502,  2504,  2509,  2510,  2512,  2514,  2519,  2521,
    1085     2523,  2529,  2531,  2533,  2537,  2539,  2541,  2543,  2557,  2558,
    1086     2560,  2565,  2567,  2569,  2571,  2573,  2578,  2579,  2581,  2583,
    1087     2588,  2590,  2592,  2598,  2599,  2601,  2610,  2613,  2615,  2618,
    1088     2620,  2622,  2635,  2636,  2638,  2643,  2645,  2647,  2649,  2651,
    1089     2656,  2657,  2659,  2661,  2666,  2668,  2676,  2677,  2678,  2683,
    1090     2684,  2688,  2690,  2692,  2694,  2696,  2698,  2705,  2707,  2709,
    1091     2711,  2713,  2715,  2717,  2719,  2721,  2723,  2728,  2730,  2732,
    1092     2737,  2763,  2764,  2766,  2770,  2771,  2775,  2777,  2779,  2781,
    1093     2783,  2785,  2792,  2794,  2796,  2798,  2800,  2802,  2807,  2812,
    1094     2814,  2816,  2834,  2836,  2841,  2842
     1018       0,   290,   290,   296,   305,   306,   307,   311,   312,   313,
     1019     317,   318,   322,   323,   327,   328,   332,   333,   339,   341,
     1020     343,   345,   350,   351,   357,   361,   363,   364,   366,   367,
     1021     369,   371,   373,   381,   382,   388,   389,   390,   395,   397,
     1022     402,   403,   407,   411,   413,   415,   417,   422,   425,   427,
     1023     429,   431,   436,   438,   440,   442,   444,   446,   448,   450,
     1024     452,   454,   456,   463,   464,   466,   470,   471,   472,   473,
     1025     477,   478,   480,   485,   486,   488,   490,   495,   496,   498,
     1026     503,   504,   506,   511,   512,   514,   516,   518,   523,   524,
     1027     526,   531,   532,   537,   538,   543,   544,   549,   550,   555,
     1028     556,   561,   562,   564,   566,   571,   576,   577,   579,   581,
     1029     587,   588,   594,   596,   598,   600,   605,   606,   611,   612,
     1030     613,   614,   615,   616,   617,   618,   619,   620,   624,   625,
     1031     631,   632,   638,   639,   640,   641,   642,   643,   644,   645,
     1032     646,   656,   663,   665,   675,   676,   681,   683,   689,   691,
     1033     695,   696,   701,   706,   709,   711,   713,   723,   725,   736,
     1034     737,   739,   743,   744,   748,   749,   754,   755,   759,   764,
     1035     765,   769,   771,   777,   778,   782,   784,   786,   788,   794,
     1036     795,   799,   801,   806,   808,   810,   815,   817,   822,   824,
     1037     828,   831,   835,   838,   842,   844,   848,   850,   857,   859,
     1038     861,   870,   872,   874,   876,   878,   883,   885,   887,   889,
     1039     894,   907,   908,   913,   915,   920,   924,   926,   928,   930,
     1040     932,   938,   939,   945,   946,   950,   951,   956,   958,   964,
     1041     965,   967,   972,   974,   981,   983,   987,   988,   993,   995,
     1042     999,  1000,  1004,  1006,  1010,  1011,  1015,  1016,  1020,  1021,
     1043    1036,  1037,  1038,  1039,  1040,  1044,  1049,  1056,  1066,  1071,
     1044    1076,  1084,  1089,  1094,  1099,  1104,  1112,  1134,  1139,  1146,
     1045    1148,  1155,  1160,  1165,  1176,  1181,  1186,  1191,  1196,  1205,
     1046    1210,  1218,  1219,  1220,  1221,  1227,  1232,  1240,  1241,  1242,
     1047    1243,  1247,  1248,  1249,  1250,  1255,  1256,  1265,  1266,  1271,
     1048    1272,  1277,  1279,  1281,  1283,  1285,  1288,  1287,  1299,  1300,
     1049    1302,  1312,  1313,  1318,  1322,  1324,  1326,  1328,  1330,  1332,
     1050    1334,  1336,  1341,  1343,  1345,  1347,  1349,  1351,  1353,  1355,
     1051    1357,  1359,  1361,  1363,  1365,  1371,  1372,  1374,  1376,  1378,
     1052    1383,  1384,  1390,  1391,  1393,  1395,  1400,  1402,  1404,  1406,
     1053    1411,  1412,  1414,  1416,  1421,  1422,  1424,  1429,  1430,  1432,
     1054    1434,  1439,  1441,  1443,  1448,  1449,  1453,  1455,  1461,  1460,
     1055    1464,  1466,  1471,  1473,  1479,  1480,  1485,  1486,  1488,  1489,
     1056    1498,  1499,  1501,  1503,  1508,  1510,  1516,  1517,  1519,  1522,
     1057    1525,  1530,  1531,  1536,  1541,  1545,  1547,  1553,  1552,  1559,
     1058    1561,  1567,  1568,  1576,  1577,  1581,  1582,  1583,  1585,  1587,
     1059    1594,  1595,  1597,  1599,  1604,  1605,  1611,  1612,  1616,  1617,
     1060    1622,  1623,  1624,  1626,  1634,  1635,  1637,  1640,  1642,  1646,
     1061    1647,  1648,  1650,  1652,  1656,  1661,  1669,  1670,  1679,  1681,
     1062    1686,  1687,  1688,  1692,  1693,  1694,  1698,  1699,  1700,  1704,
     1063    1705,  1706,  1711,  1712,  1713,  1714,  1720,  1721,  1723,  1728,
     1064    1729,  1734,  1735,  1736,  1737,  1738,  1753,  1754,  1759,  1760,
     1065    1768,  1770,  1772,  1775,  1777,  1779,  1802,  1803,  1805,  1807,
     1066    1812,  1813,  1815,  1820,  1825,  1826,  1832,  1831,  1835,  1839,
     1067    1841,  1843,  1849,  1850,  1855,  1860,  1862,  1867,  1869,  1870,
     1068    1872,  1877,  1879,  1881,  1886,  1888,  1893,  1898,  1906,  1912,
     1069    1911,  1925,  1926,  1931,  1932,  1936,  1941,  1946,  1954,  1959,
     1070    1970,  1971,  1982,  1983,  1989,  1990,  1994,  1995,  1996,  1999,
     1071    1998,  2009,  2018,  2024,  2030,  2039,  2045,  2051,  2057,  2063,
     1072    2071,  2077,  2085,  2091,  2100,  2101,  2102,  2106,  2110,  2112,
     1073    2117,  2118,  2122,  2123,  2128,  2134,  2135,  2138,  2140,  2141,
     1074    2145,  2146,  2147,  2148,  2182,  2184,  2185,  2187,  2192,  2197,
     1075    2202,  2204,  2206,  2211,  2213,  2215,  2217,  2222,  2224,  2233,
     1076    2235,  2236,  2241,  2243,  2245,  2250,  2252,  2254,  2259,  2261,
     1077    2263,  2272,  2273,  2274,  2278,  2280,  2282,  2287,  2289,  2291,
     1078    2296,  2298,  2300,  2315,  2317,  2318,  2320,  2325,  2326,  2331,
     1079    2333,  2335,  2340,  2342,  2344,  2346,  2351,  2353,  2355,  2365,
     1080    2367,  2368,  2370,  2375,  2377,  2379,  2384,  2386,  2388,  2390,
     1081    2395,  2397,  2399,  2430,  2432,  2433,  2435,  2440,  2445,  2453,
     1082    2455,  2457,  2462,  2464,  2469,  2471,  2485,  2486,  2488,  2493,
     1083    2495,  2497,  2499,  2501,  2506,  2507,  2509,  2511,  2516,  2518,
     1084    2520,  2526,  2528,  2530,  2534,  2536,  2538,  2540,  2554,  2555,
     1085    2557,  2562,  2564,  2566,  2568,  2570,  2575,  2576,  2578,  2580,
     1086    2585,  2587,  2589,  2595,  2596,  2598,  2607,  2610,  2612,  2615,
     1087    2617,  2619,  2632,  2633,  2635,  2640,  2642,  2644,  2646,  2648,
     1088    2653,  2654,  2656,  2658,  2663,  2665,  2673,  2674,  2675,  2680,
     1089    2681,  2685,  2687,  2689,  2691,  2693,  2695,  2702,  2704,  2706,
     1090    2708,  2710,  2712,  2714,  2716,  2718,  2720,  2725,  2727,  2729,
     1091    2734,  2760,  2761,  2763,  2767,  2768,  2772,  2774,  2776,  2778,
     1092    2780,  2782,  2789,  2791,  2793,  2795,  2797,  2799,  2804,  2809,
     1093    2811,  2813,  2831,  2833,  2838,  2839
    10951094};
    10961095#endif
     
    52175216
    52185217/* Line 1806 of yacc.c  */
    5219 #line 292 "parser.yy"
     5218#line 290 "parser.yy"
    52205219    {
    52215220                        typedefTable.enterScope();
     
    52265225
    52275226/* Line 1806 of yacc.c  */
    5228 #line 298 "parser.yy"
     5227#line 296 "parser.yy"
    52295228    {
    52305229                        typedefTable.leaveScope();
     
    52355234
    52365235/* Line 1806 of yacc.c  */
     5236#line 305 "parser.yy"
     5237    { (yyval.constant) = makeConstantInteger( *(yyvsp[(1) - (1)].tok) ); }
     5238    break;
     5239
     5240  case 5:
     5241
     5242/* Line 1806 of yacc.c  */
     5243#line 306 "parser.yy"
     5244    { (yyval.constant) = makeConstantFloat( *(yyvsp[(1) - (1)].tok) ); }
     5245    break;
     5246
     5247  case 6:
     5248
     5249/* Line 1806 of yacc.c  */
    52375250#line 307 "parser.yy"
    5238     { (yyval.constant) = makeConstantInteger( *(yyvsp[(1) - (1)].tok) ); }
    5239     break;
    5240 
    5241   case 5:
    5242 
    5243 /* Line 1806 of yacc.c  */
    5244 #line 308 "parser.yy"
    5245     { (yyval.constant) = makeConstantFloat( *(yyvsp[(1) - (1)].tok) ); }
    5246     break;
    5247 
    5248   case 6:
    5249 
    5250 /* Line 1806 of yacc.c  */
    5251 #line 309 "parser.yy"
    52525251    { (yyval.constant) = makeConstantChar( *(yyvsp[(1) - (1)].tok) ); }
    52535252    break;
     
    52565255
    52575256/* Line 1806 of yacc.c  */
    5258 #line 334 "parser.yy"
     5257#line 332 "parser.yy"
    52595258    { (yyval.constant) = makeConstantStr( *(yyvsp[(1) - (1)].tok) ); }
    52605259    break;
     
    52635262
    52645263/* Line 1806 of yacc.c  */
    5265 #line 335 "parser.yy"
     5264#line 333 "parser.yy"
    52665265    { (yyval.constant) = (yyvsp[(1) - (2)].constant)->appendstr( (yyvsp[(2) - (2)].tok) ); }
    52675266    break;
    52685267
    52695268  case 18:
     5269
     5270/* Line 1806 of yacc.c  */
     5271#line 340 "parser.yy"
     5272    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }
     5273    break;
     5274
     5275  case 19:
    52705276
    52715277/* Line 1806 of yacc.c  */
     
    52745280    break;
    52755281
    5276   case 19:
     5282  case 20:
    52775283
    52785284/* Line 1806 of yacc.c  */
    52795285#line 344 "parser.yy"
    5280     { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }
    5281     break;
    5282 
    5283   case 20:
     5286    { (yyval.en) = (yyvsp[(2) - (3)].en); }
     5287    break;
     5288
     5289  case 21:
    52845290
    52855291/* Line 1806 of yacc.c  */
    52865292#line 346 "parser.yy"
    5287     { (yyval.en) = (yyvsp[(2) - (3)].en); }
    5288     break;
    5289 
    5290   case 21:
    5291 
    5292 /* Line 1806 of yacc.c  */
    5293 #line 348 "parser.yy"
    52945293    { (yyval.en) = new ValofExprNode( (yyvsp[(2) - (3)].sn) ); }
    52955294    break;
     
    52985297
    52995298/* Line 1806 of yacc.c  */
     5299#line 356 "parser.yy"
     5300    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Index ), (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ); }
     5301    break;
     5302
     5303  case 24:
     5304
     5305/* Line 1806 of yacc.c  */
    53005306#line 358 "parser.yy"
    5301     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Index ), (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ); }
    5302     break;
    5303 
    5304   case 24:
    5305 
    5306 /* Line 1806 of yacc.c  */
    5307 #line 360 "parser.yy"
    53085307    { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ); }
    53095308    break;
     
    53125311
    53135312/* Line 1806 of yacc.c  */
    5314 #line 364 "parser.yy"
    5315     { (yyval.en) = new CompositeExprNode2( build_fieldSel( (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) ) ) ); }
     5313#line 362 "parser.yy"
     5314    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) )); }
    53165315    break;
    53175316
     
    53195318
    53205319/* Line 1806 of yacc.c  */
    5321 #line 367 "parser.yy"
    5322     { (yyval.en) = new CompositeExprNode2( build_pfieldSel( (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) ) ) ); }
     5320#line 365 "parser.yy"
     5321    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) )); }
    53235322    break;
    53245323
     
    53265325
    53275326/* Line 1806 of yacc.c  */
     5327#line 368 "parser.yy"
     5328    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::IncrPost ), (yyvsp[(1) - (2)].en) ); }
     5329    break;
     5330
     5331  case 30:
     5332
     5333/* Line 1806 of yacc.c  */
    53285334#line 370 "parser.yy"
    5329     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::IncrPost ), (yyvsp[(1) - (2)].en) ); }
    5330     break;
    5331 
    5332   case 30:
     5335    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::DecrPost ), (yyvsp[(1) - (2)].en) ); }
     5336    break;
     5337
     5338  case 31:
    53335339
    53345340/* Line 1806 of yacc.c  */
    53355341#line 372 "parser.yy"
    5336     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::DecrPost ), (yyvsp[(1) - (2)].en) ); }
    5337     break;
    5338 
    5339   case 31:
     5342    { (yyval.en) = new CompoundLiteralNode( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ); }
     5343    break;
     5344
     5345  case 32:
    53405346
    53415347/* Line 1806 of yacc.c  */
    53425348#line 374 "parser.yy"
    5343     { (yyval.en) = new CompoundLiteralNode( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ); }
    5344     break;
    5345 
    5346   case 32:
    5347 
    5348 /* Line 1806 of yacc.c  */
    5349 #line 376 "parser.yy"
    53505349    {
    53515350                        Token fn; fn.str = new std::string( "?{}" ); // location undefined
     
    53575356
    53585357/* Line 1806 of yacc.c  */
    5359 #line 385 "parser.yy"
     5358#line 383 "parser.yy"
    53605359    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); }
    53615360    break;
     
    53645363
    53655364/* Line 1806 of yacc.c  */
    5366 #line 390 "parser.yy"
     5365#line 388 "parser.yy"
    53675366    { (yyval.en) = 0; }
    53685367    break;
     
    53715370
    53725371/* Line 1806 of yacc.c  */
    5373 #line 393 "parser.yy"
     5372#line 391 "parser.yy"
    53745373    { (yyval.en) = (yyvsp[(3) - (3)].en)->set_argName( (yyvsp[(1) - (3)].tok) ); }
    53755374    break;
     
    53785377
    53795378/* Line 1806 of yacc.c  */
     5379#line 396 "parser.yy"
     5380    { (yyval.en) = (yyvsp[(7) - (7)].en)->set_argName( (yyvsp[(3) - (7)].en) ); }
     5381    break;
     5382
     5383  case 39:
     5384
     5385/* Line 1806 of yacc.c  */
    53805386#line 398 "parser.yy"
    5381     { (yyval.en) = (yyvsp[(7) - (7)].en)->set_argName( (yyvsp[(3) - (7)].en) ); }
    5382     break;
    5383 
    5384   case 39:
    5385 
    5386 /* Line 1806 of yacc.c  */
    5387 #line 400 "parser.yy"
    53885387    { (yyval.en) = (yyvsp[(9) - (9)].en)->set_argName( new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (9)].en)->set_link( flattenCommas( (yyvsp[(5) - (9)].en) )))); }
    53895388    break;
     
    53925391
    53935392/* Line 1806 of yacc.c  */
    5394 #line 405 "parser.yy"
     5393#line 403 "parser.yy"
    53955394    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
    53965395    break;
     
    53995398
    54005399/* Line 1806 of yacc.c  */
    5401 #line 410 "parser.yy"
     5400#line 408 "parser.yy"
    54025401    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }
    54035402    break;
     
    54065405
    54075406/* Line 1806 of yacc.c  */
     5407#line 412 "parser.yy"
     5408    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); }
     5409    break;
     5410
     5411  case 44:
     5412
     5413/* Line 1806 of yacc.c  */
    54085414#line 414 "parser.yy"
    5409     { (yyval.en) = new CompositeExprNode2( build_fieldSel( (yyvsp[(3) - (3)].en), new VarRefNode( (yyvsp[(1) - (3)].tok) ) ) ); }
    5410     break;
    5411 
    5412   case 44:
     5415    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); }
     5416    break;
     5417
     5418  case 45:
    54135419
    54145420/* Line 1806 of yacc.c  */
    54155421#line 416 "parser.yy"
    5416     { (yyval.en) = new CompositeExprNode2( build_fieldSel( (yyvsp[(5) - (7)].en), new VarRefNode( (yyvsp[(1) - (7)].tok) ) ) ); }
    5417     break;
    5418 
    5419   case 45:
     5422    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); }
     5423    break;
     5424
     5425  case 46:
    54205426
    54215427/* Line 1806 of yacc.c  */
    54225428#line 418 "parser.yy"
    5423     { (yyval.en) = new CompositeExprNode2( build_pfieldSel( (yyvsp[(3) - (3)].en), new VarRefNode( (yyvsp[(1) - (3)].tok) ) ) ); }
    5424     break;
    5425 
    5426   case 46:
    5427 
    5428 /* Line 1806 of yacc.c  */
    5429 #line 420 "parser.yy"
    5430     { (yyval.en) = new CompositeExprNode2( build_pfieldSel( (yyvsp[(5) - (7)].en), new VarRefNode( (yyvsp[(1) - (7)].tok) ) ) ); }
     5429    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); }
    54315430    break;
    54325431
    54335432  case 48:
     5433
     5434/* Line 1806 of yacc.c  */
     5435#line 426 "parser.yy"
     5436    { (yyval.en) = (yyvsp[(1) - (1)].constant); }
     5437    break;
     5438
     5439  case 49:
    54345440
    54355441/* Line 1806 of yacc.c  */
     
    54385444    break;
    54395445
    5440   case 49:
     5446  case 50:
    54415447
    54425448/* Line 1806 of yacc.c  */
    54435449#line 430 "parser.yy"
    5444     { (yyval.en) = (yyvsp[(1) - (1)].constant); }
    5445     break;
    5446 
    5447   case 50:
     5450    { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); }
     5451    break;
     5452
     5453  case 51:
    54485454
    54495455/* Line 1806 of yacc.c  */
    54505456#line 432 "parser.yy"
    5451     { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); }
    5452     break;
    5453 
    5454   case 51:
    5455 
    5456 /* Line 1806 of yacc.c  */
    5457 #line 434 "parser.yy"
    5458     { (yyval.en) = (yyvsp[(1) - (2)].op) == OperatorNode::AddressOf ? (ExpressionNode*) new CompositeExprNode2( build_addressOf( (yyvsp[(2) - (2)].en) ) ) : (ExpressionNode*)new CompositeExprNode( new OperatorNode ( (yyvsp[(1) - (2)].op) ), (yyvsp[(2) - (2)].en) ); }
     5457    { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); }
    54595458    break;
    54605459
     
    54625461
    54635462/* Line 1806 of yacc.c  */
     5463#line 437 "parser.yy"
     5464    { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); }
     5465    break;
     5466
     5467  case 53:
     5468
     5469/* Line 1806 of yacc.c  */
    54645470#line 439 "parser.yy"
    5465     { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); }
    5466     break;
    5467 
    5468   case 53:
     5471    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Incr ), (yyvsp[(2) - (2)].en) ); }
     5472    break;
     5473
     5474  case 54:
    54695475
    54705476/* Line 1806 of yacc.c  */
    54715477#line 441 "parser.yy"
    5472     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Incr ), (yyvsp[(2) - (2)].en) ); }
    5473     break;
    5474 
    5475   case 54:
     5478    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Decr ), (yyvsp[(2) - (2)].en) ); }
     5479    break;
     5480
     5481  case 55:
    54765482
    54775483/* Line 1806 of yacc.c  */
    54785484#line 443 "parser.yy"
    5479     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Decr ), (yyvsp[(2) - (2)].en) ); }
    5480     break;
    5481 
    5482   case 55:
     5485    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), (yyvsp[(2) - (2)].en) ); }
     5486    break;
     5487
     5488  case 56:
    54835489
    54845490/* Line 1806 of yacc.c  */
    54855491#line 445 "parser.yy"
    5486     { (yyval.en) = new CompositeExprNode2( build_sizeOf( (yyvsp[(2) - (2)].en) ) ); }
    5487     break;
    5488 
    5489   case 56:
     5492    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }
     5493    break;
     5494
     5495  case 57:
    54905496
    54915497/* Line 1806 of yacc.c  */
    54925498#line 447 "parser.yy"
    5493     { (yyval.en) = new CompositeExprNode2( build_sizeOf( new TypeValueNode( (yyvsp[(3) - (4)].decl) ) ) ); }
    5494     break;
    5495 
    5496   case 57:
     5499    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::OffsetOf ), new TypeValueNode( (yyvsp[(3) - (6)].decl) ), new VarRefNode( (yyvsp[(5) - (6)].tok) )); }
     5500    break;
     5501
     5502  case 58:
    54975503
    54985504/* Line 1806 of yacc.c  */
    54995505#line 449 "parser.yy"
    5500     { (yyval.en) = new CompositeExprNode2( build_offsetOf( new TypeValueNode( (yyvsp[(3) - (6)].decl) ), new VarRefNode( (yyvsp[(5) - (6)].tok) ) ) ); }
    5501     break;
    5502 
    5503   case 58:
     5506    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (1)].tok) )); }
     5507    break;
     5508
     5509  case 59:
    55045510
    55055511/* Line 1806 of yacc.c  */
    55065512#line 451 "parser.yy"
    5507     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (1)].tok) )); }
    5508     break;
    5509 
    5510   case 59:
     5513    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }
     5514    break;
     5515
     5516  case 60:
    55115517
    55125518/* Line 1806 of yacc.c  */
    55135519#line 453 "parser.yy"
    5514     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }
    5515     break;
    5516 
    5517   case 60:
     5520    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ); }
     5521    break;
     5522
     5523  case 61:
    55185524
    55195525/* Line 1806 of yacc.c  */
    55205526#line 455 "parser.yy"
    5521     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ); }
    5522     break;
    5523 
    5524   case 61:
     5527    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), (yyvsp[(2) - (2)].en) ); }
     5528    break;
     5529
     5530  case 62:
    55255531
    55265532/* Line 1806 of yacc.c  */
    55275533#line 457 "parser.yy"
    5528     { (yyval.en) = new CompositeExprNode2( build_alignOf( (yyvsp[(2) - (2)].en) ) ); }
    5529     break;
    5530 
    5531   case 62:
    5532 
    5533 /* Line 1806 of yacc.c  */
    5534 #line 459 "parser.yy"
    5535     { (yyval.en) = new CompositeExprNode2( build_alignOf( new TypeValueNode( (yyvsp[(3) - (4)].decl) ) ) ); }
     5534    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) ) ); }
    55365535    break;
    55375536
     
    55395538
    55405539/* Line 1806 of yacc.c  */
    5541 #line 465 "parser.yy"
    5542     { (yyval.op) = OperatorNode::PointTo; }
     5540#line 463 "parser.yy"
     5541    { (yyval.en) = new OperatorNode( OperatorNode::PointTo ); }
    55435542    break;
    55445543
     
    55465545
    55475546/* Line 1806 of yacc.c  */
     5547#line 464 "parser.yy"
     5548    { (yyval.en) = new OperatorNode( OperatorNode::AddressOf ); }
     5549    break;
     5550
     5551  case 65:
     5552
     5553/* Line 1806 of yacc.c  */
    55485554#line 466 "parser.yy"
    5549     { (yyval.op) = OperatorNode::AddressOf; }
    5550     break;
    5551 
    5552   case 65:
    5553 
    5554 /* Line 1806 of yacc.c  */
    5555 #line 468 "parser.yy"
    5556     { (yyval.op) = OperatorNode::And; }
     5555    { (yyval.en) = new OperatorNode( OperatorNode::And ); }
    55575556    break;
    55585557
     
    55605559
    55615560/* Line 1806 of yacc.c  */
     5561#line 470 "parser.yy"
     5562    { (yyval.en) = new OperatorNode( OperatorNode::UnPlus ); }
     5563    break;
     5564
     5565  case 67:
     5566
     5567/* Line 1806 of yacc.c  */
     5568#line 471 "parser.yy"
     5569    { (yyval.en) = new OperatorNode( OperatorNode::UnMinus ); }
     5570    break;
     5571
     5572  case 68:
     5573
     5574/* Line 1806 of yacc.c  */
    55625575#line 472 "parser.yy"
    5563     { (yyval.en) = new OperatorNode( OperatorNode::UnPlus ); }
    5564     break;
    5565 
    5566   case 67:
     5576    { (yyval.en) = new OperatorNode( OperatorNode::Neg ); }
     5577    break;
     5578
     5579  case 69:
    55675580
    55685581/* Line 1806 of yacc.c  */
    55695582#line 473 "parser.yy"
    5570     { (yyval.en) = new OperatorNode( OperatorNode::UnMinus ); }
    5571     break;
    5572 
    5573   case 68:
    5574 
    5575 /* Line 1806 of yacc.c  */
    5576 #line 474 "parser.yy"
    5577     { (yyval.en) = new OperatorNode( OperatorNode::Neg ); }
    5578     break;
    5579 
    5580   case 69:
    5581 
    5582 /* Line 1806 of yacc.c  */
    5583 #line 475 "parser.yy"
    55845583    { (yyval.en) = new OperatorNode( OperatorNode::BitNeg ); }
    55855584    break;
     
    55885587
    55895588/* Line 1806 of yacc.c  */
     5589#line 479 "parser.yy"
     5590    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ); }
     5591    break;
     5592
     5593  case 72:
     5594
     5595/* Line 1806 of yacc.c  */
    55905596#line 481 "parser.yy"
    5591     { (yyval.en) = new CompositeExprNode2( build_cast( new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ) ); }
    5592     break;
    5593 
    5594   case 72:
    5595 
    5596 /* Line 1806 of yacc.c  */
    5597 #line 483 "parser.yy"
    5598     { (yyval.en) = new CompositeExprNode2( build_cast( new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ) ); }
     5597    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ); }
    55995598    break;
    56005599
     
    56025601
    56035602/* Line 1806 of yacc.c  */
     5603#line 487 "parser.yy"
     5604    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mul ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5605    break;
     5606
     5607  case 75:
     5608
     5609/* Line 1806 of yacc.c  */
    56045610#line 489 "parser.yy"
    5605     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mul ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5606     break;
    5607 
    5608   case 75:
     5611    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Div ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5612    break;
     5613
     5614  case 76:
    56095615
    56105616/* Line 1806 of yacc.c  */
    56115617#line 491 "parser.yy"
    5612     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Div ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5613     break;
    5614 
    5615   case 76:
    5616 
    5617 /* Line 1806 of yacc.c  */
    5618 #line 493 "parser.yy"
    56195618    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mod ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    56205619    break;
     
    56235622
    56245623/* Line 1806 of yacc.c  */
     5624#line 497 "parser.yy"
     5625    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Plus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5626    break;
     5627
     5628  case 79:
     5629
     5630/* Line 1806 of yacc.c  */
    56255631#line 499 "parser.yy"
    5626     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Plus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5627     break;
    5628 
    5629   case 79:
    5630 
    5631 /* Line 1806 of yacc.c  */
    5632 #line 501 "parser.yy"
    56335632    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Minus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    56345633    break;
     
    56375636
    56385637/* Line 1806 of yacc.c  */
     5638#line 505 "parser.yy"
     5639    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5640    break;
     5641
     5642  case 82:
     5643
     5644/* Line 1806 of yacc.c  */
    56395645#line 507 "parser.yy"
    5640     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5641     break;
    5642 
    5643   case 82:
    5644 
    5645 /* Line 1806 of yacc.c  */
    5646 #line 509 "parser.yy"
    56475646    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::RShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    56485647    break;
     
    56515650
    56525651/* Line 1806 of yacc.c  */
     5652#line 513 "parser.yy"
     5653    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5654    break;
     5655
     5656  case 85:
     5657
     5658/* Line 1806 of yacc.c  */
    56535659#line 515 "parser.yy"
    5654     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5655     break;
    5656 
    5657   case 85:
     5660    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5661    break;
     5662
     5663  case 86:
    56585664
    56595665/* Line 1806 of yacc.c  */
    56605666#line 517 "parser.yy"
    5661     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5662     break;
    5663 
    5664   case 86:
     5667    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5668    break;
     5669
     5670  case 87:
    56655671
    56665672/* Line 1806 of yacc.c  */
    56675673#line 519 "parser.yy"
    5668     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5669     break;
    5670 
    5671   case 87:
    5672 
    5673 /* Line 1806 of yacc.c  */
    5674 #line 521 "parser.yy"
    56755674    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    56765675    break;
     
    56795678
    56805679/* Line 1806 of yacc.c  */
     5680#line 525 "parser.yy"
     5681    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Eq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5682    break;
     5683
     5684  case 90:
     5685
     5686/* Line 1806 of yacc.c  */
    56815687#line 527 "parser.yy"
    5682     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Eq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5683     break;
    5684 
    5685   case 90:
    5686 
    5687 /* Line 1806 of yacc.c  */
    5688 #line 529 "parser.yy"
    56895688    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Neq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    56905689    break;
     
    56935692
    56945693/* Line 1806 of yacc.c  */
    5695 #line 535 "parser.yy"
     5694#line 533 "parser.yy"
    56965695    { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::BitAnd ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    56975696    break;
     
    57005699
    57015700/* Line 1806 of yacc.c  */
    5702 #line 541 "parser.yy"
     5701#line 539 "parser.yy"
    57035702    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Xor ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    57045703    break;
     
    57075706
    57085707/* Line 1806 of yacc.c  */
    5709 #line 547 "parser.yy"
     5708#line 545 "parser.yy"
    57105709    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::BitOr ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    57115710    break;
     
    57145713
    57155714/* Line 1806 of yacc.c  */
    5716 #line 553 "parser.yy"
     5715#line 551 "parser.yy"
    57175716    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::And ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    57185717    break;
     
    57215720
    57225721/* Line 1806 of yacc.c  */
    5723 #line 559 "parser.yy"
     5722#line 557 "parser.yy"
    57245723    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Or ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    57255724    break;
     
    57285727
    57295728/* Line 1806 of yacc.c  */
     5729#line 563 "parser.yy"
     5730    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); }
     5731    break;
     5732
     5733  case 103:
     5734
     5735/* Line 1806 of yacc.c  */
    57305736#line 565 "parser.yy"
     5737    { (yyval.en)=new CompositeExprNode( new OperatorNode( OperatorNode::NCond ), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ); }
     5738    break;
     5739
     5740  case 104:
     5741
     5742/* Line 1806 of yacc.c  */
     5743#line 567 "parser.yy"
    57315744    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); }
    57325745    break;
    57335746
    5734   case 103:
    5735 
    5736 /* Line 1806 of yacc.c  */
    5737 #line 567 "parser.yy"
    5738     { (yyval.en)=new CompositeExprNode( new OperatorNode( OperatorNode::NCond ), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ); }
    5739     break;
    5740 
    5741   case 104:
    5742 
    5743 /* Line 1806 of yacc.c  */
    5744 #line 569 "parser.yy"
    5745     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); }
    5746     break;
    5747 
    57485747  case 107:
    57495748
    57505749/* Line 1806 of yacc.c  */
     5750#line 578 "parser.yy"
     5751    { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5752    break;
     5753
     5754  case 108:
     5755
     5756/* Line 1806 of yacc.c  */
    57515757#line 580 "parser.yy"
    5752     { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5753     break;
    5754 
    5755   case 108:
     5758    { (yyval.en) =new CompositeExprNode( (yyvsp[(2) - (3)].en), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5759    break;
     5760
     5761  case 109:
    57565762
    57575763/* Line 1806 of yacc.c  */
    57585764#line 582 "parser.yy"
    5759     { (yyval.en) =new CompositeExprNode( (yyvsp[(2) - (3)].en), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5760     break;
    5761 
    5762   case 109:
    5763 
    5764 /* Line 1806 of yacc.c  */
    5765 #line 584 "parser.yy"
    57665765    { (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) ); }
    57675766    break;
     
    57705769
    57715770/* Line 1806 of yacc.c  */
    5772 #line 589 "parser.yy"
     5771#line 587 "parser.yy"
    57735772    { (yyval.en) = new NullExprNode; }
    57745773    break;
     
    57775776
    57785777/* Line 1806 of yacc.c  */
     5778#line 595 "parser.yy"
     5779    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ) ); }
     5780    break;
     5781
     5782  case 113:
     5783
     5784/* Line 1806 of yacc.c  */
    57795785#line 597 "parser.yy"
    5780     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ) ); }
    5781     break;
    5782 
    5783   case 113:
     5786    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (yyvsp[(3) - (5)].en) ); }
     5787    break;
     5788
     5789  case 114:
    57845790
    57855791/* Line 1806 of yacc.c  */
    57865792#line 599 "parser.yy"
    5787     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (yyvsp[(3) - (5)].en) ); }
    5788     break;
    5789 
    5790   case 114:
     5793    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(new NullExprNode)->set_link( (yyvsp[(4) - (6)].en) ) ); }
     5794    break;
     5795
     5796  case 115:
    57915797
    57925798/* Line 1806 of yacc.c  */
    57935799#line 601 "parser.yy"
    5794     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(new NullExprNode)->set_link( (yyvsp[(4) - (6)].en) ) ); }
    5795     break;
    5796 
    5797   case 115:
    5798 
    5799 /* Line 1806 of yacc.c  */
    5800 #line 603 "parser.yy"
    58015800    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_link( flattenCommas( (yyvsp[(5) - (7)].en) ) ) ); }
    58025801    break;
     
    58055804
    58065805/* Line 1806 of yacc.c  */
    5807 #line 609 "parser.yy"
     5806#line 607 "parser.yy"
    58085807    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
    58095808    break;
     
    58125811
    58135812/* Line 1806 of yacc.c  */
     5813#line 611 "parser.yy"
     5814    { (yyval.en) = new OperatorNode( OperatorNode::MulAssn ); }
     5815    break;
     5816
     5817  case 119:
     5818
     5819/* Line 1806 of yacc.c  */
     5820#line 612 "parser.yy"
     5821    { (yyval.en) = new OperatorNode( OperatorNode::DivAssn ); }
     5822    break;
     5823
     5824  case 120:
     5825
     5826/* Line 1806 of yacc.c  */
    58145827#line 613 "parser.yy"
    5815     { (yyval.en) = new OperatorNode( OperatorNode::MulAssn ); }
    5816     break;
    5817 
    5818   case 119:
     5828    { (yyval.en) = new OperatorNode( OperatorNode::ModAssn ); }
     5829    break;
     5830
     5831  case 121:
    58195832
    58205833/* Line 1806 of yacc.c  */
    58215834#line 614 "parser.yy"
    5822     { (yyval.en) = new OperatorNode( OperatorNode::DivAssn ); }
    5823     break;
    5824 
    5825   case 120:
     5835    { (yyval.en) = new OperatorNode( OperatorNode::PlusAssn ); }
     5836    break;
     5837
     5838  case 122:
    58265839
    58275840/* Line 1806 of yacc.c  */
    58285841#line 615 "parser.yy"
    5829     { (yyval.en) = new OperatorNode( OperatorNode::ModAssn ); }
    5830     break;
    5831 
    5832   case 121:
     5842    { (yyval.en) = new OperatorNode( OperatorNode::MinusAssn ); }
     5843    break;
     5844
     5845  case 123:
    58335846
    58345847/* Line 1806 of yacc.c  */
    58355848#line 616 "parser.yy"
    5836     { (yyval.en) = new OperatorNode( OperatorNode::PlusAssn ); }
    5837     break;
    5838 
    5839   case 122:
     5849    { (yyval.en) = new OperatorNode( OperatorNode::LSAssn ); }
     5850    break;
     5851
     5852  case 124:
    58405853
    58415854/* Line 1806 of yacc.c  */
    58425855#line 617 "parser.yy"
    5843     { (yyval.en) = new OperatorNode( OperatorNode::MinusAssn ); }
    5844     break;
    5845 
    5846   case 123:
     5856    { (yyval.en) = new OperatorNode( OperatorNode::RSAssn ); }
     5857    break;
     5858
     5859  case 125:
    58475860
    58485861/* Line 1806 of yacc.c  */
    58495862#line 618 "parser.yy"
    5850     { (yyval.en) = new OperatorNode( OperatorNode::LSAssn ); }
    5851     break;
    5852 
    5853   case 124:
     5863    { (yyval.en) = new OperatorNode( OperatorNode::AndAssn ); }
     5864    break;
     5865
     5866  case 126:
    58545867
    58555868/* Line 1806 of yacc.c  */
    58565869#line 619 "parser.yy"
    5857     { (yyval.en) = new OperatorNode( OperatorNode::RSAssn ); }
    5858     break;
    5859 
    5860   case 125:
     5870    { (yyval.en) = new OperatorNode( OperatorNode::ERAssn ); }
     5871    break;
     5872
     5873  case 127:
    58615874
    58625875/* Line 1806 of yacc.c  */
    58635876#line 620 "parser.yy"
    5864     { (yyval.en) = new OperatorNode( OperatorNode::AndAssn ); }
    5865     break;
    5866 
    5867   case 126:
    5868 
    5869 /* Line 1806 of yacc.c  */
    5870 #line 621 "parser.yy"
    5871     { (yyval.en) = new OperatorNode( OperatorNode::ERAssn ); }
    5872     break;
    5873 
    5874   case 127:
    5875 
    5876 /* Line 1806 of yacc.c  */
    5877 #line 622 "parser.yy"
    58785877    { (yyval.en) = new OperatorNode( OperatorNode::OrAssn ); }
    58795878    break;
     
    58825881
    58835882/* Line 1806 of yacc.c  */
    5884 #line 628 "parser.yy"
     5883#line 626 "parser.yy"
    58855884    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Comma ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    58865885    break;
     
    58895888
    58905889/* Line 1806 of yacc.c  */
    5891 #line 633 "parser.yy"
     5890#line 631 "parser.yy"
    58925891    { (yyval.en) = 0; }
    58935892    break;
     
    58965895
    58975896/* Line 1806 of yacc.c  */
    5898 #line 642 "parser.yy"
     5897#line 640 "parser.yy"
    58995898    { (yyval.sn) = (yyvsp[(1) - (1)].sn); }
    59005899    break;
     
    59035902
    59045903/* Line 1806 of yacc.c  */
    5905 #line 649 "parser.yy"
     5904#line 647 "parser.yy"
    59065905    {
    59075906                        Token fn; fn.str = new std::string( "^?{}" ); // location undefined
     
    59145913
    59155914/* Line 1806 of yacc.c  */
    5916 #line 659 "parser.yy"
     5915#line 657 "parser.yy"
    59175916    {
    59185917                        (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) );
     
    59235922
    59245923/* Line 1806 of yacc.c  */
    5925 #line 666 "parser.yy"
     5924#line 664 "parser.yy"
    59265925    { (yyval.sn) = new CompoundStmtNode( (StatementNode *)0 ); }
    59275926    break;
     
    59305929
    59315930/* Line 1806 of yacc.c  */
    5932 #line 673 "parser.yy"
     5931#line 671 "parser.yy"
    59335932    { (yyval.sn) = new CompoundStmtNode( (yyvsp[(5) - (7)].sn) ); }
    59345933    break;
     
    59375936
    59385937/* Line 1806 of yacc.c  */
    5939 #line 679 "parser.yy"
     5938#line 677 "parser.yy"
    59405939    { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
    59415940    break;
     
    59445943
    59455944/* Line 1806 of yacc.c  */
     5945#line 682 "parser.yy"
     5946    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
     5947    break;
     5948
     5949  case 147:
     5950
     5951/* Line 1806 of yacc.c  */
    59465952#line 684 "parser.yy"
    5947     { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    5948     break;
    5949 
    5950   case 147:
    5951 
    5952 /* Line 1806 of yacc.c  */
    5953 #line 686 "parser.yy"
    59545953    {   // mark all fields in list
    59555954                        for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_link() )
     
    59625961
    59635962/* Line 1806 of yacc.c  */
    5964 #line 692 "parser.yy"
     5963#line 690 "parser.yy"
    59655964    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    59665965    break;
     
    59695968
    59705969/* Line 1806 of yacc.c  */
    5971 #line 699 "parser.yy"
     5970#line 697 "parser.yy"
    59725971    { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
    59735972    break;
     
    59765975
    59775976/* Line 1806 of yacc.c  */
    5978 #line 704 "parser.yy"
     5977#line 702 "parser.yy"
    59795978    { (yyval.sn) = new StatementNode( StatementNode::Exp, (yyvsp[(1) - (2)].en), 0 ); }
    59805979    break;
     
    59835982
    59845983/* Line 1806 of yacc.c  */
     5984#line 708 "parser.yy"
     5985    { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
     5986    break;
     5987
     5988  case 154:
     5989
     5990/* Line 1806 of yacc.c  */
    59855991#line 710 "parser.yy"
    5986     { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    5987     break;
    5988 
    5989   case 154:
     5992    { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (7)].en), (StatementNode *)mkList((*(yyvsp[(5) - (7)].sn), *(yyvsp[(7) - (7)].sn) )) ); }
     5993    break;
     5994
     5995  case 155:
    59905996
    59915997/* Line 1806 of yacc.c  */
    59925998#line 712 "parser.yy"
    5993     { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (7)].en), (StatementNode *)mkList((*(yyvsp[(5) - (7)].sn), *(yyvsp[(7) - (7)].sn) )) ); }
    5994     break;
    5995 
    5996   case 155:
     5999    { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
     6000    break;
     6001
     6002  case 156:
    59976003
    59986004/* Line 1806 of yacc.c  */
    59996005#line 714 "parser.yy"
    6000     { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    6001     break;
    6002 
    6003   case 156:
    6004 
    6005 /* Line 1806 of yacc.c  */
    6006 #line 716 "parser.yy"
    60076006    {
    60086007                        StatementNode *sw = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) );
     
    60196018
    60206019/* Line 1806 of yacc.c  */
     6020#line 724 "parser.yy"
     6021    { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
     6022    break;
     6023
     6024  case 158:
     6025
     6026/* Line 1806 of yacc.c  */
    60216027#line 726 "parser.yy"
    6022     { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    6023     break;
    6024 
    6025   case 158:
    6026 
    6027 /* Line 1806 of yacc.c  */
    6028 #line 728 "parser.yy"
    60296028    {
    60306029                        StatementNode *sw = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) );
     
    60366035
    60376036/* Line 1806 of yacc.c  */
     6037#line 736 "parser.yy"
     6038    { (yyval.en) = (yyvsp[(1) - (1)].en); }
     6039    break;
     6040
     6041  case 160:
     6042
     6043/* Line 1806 of yacc.c  */
    60386044#line 738 "parser.yy"
    6039     { (yyval.en) = (yyvsp[(1) - (1)].en); }
    6040     break;
    6041 
    6042   case 160:
    6043 
    6044 /* Line 1806 of yacc.c  */
    6045 #line 740 "parser.yy"
    60466045    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    60476046    break;
     
    60506049
    60516050/* Line 1806 of yacc.c  */
    6052 #line 745 "parser.yy"
     6051#line 743 "parser.yy"
    60536052    { (yyval.sn) = new StatementNode( StatementNode::Case, (yyvsp[(1) - (1)].en), 0 ); }
    60546053    break;
     
    60576056
    60586057/* Line 1806 of yacc.c  */
    6059 #line 747 "parser.yy"
     6058#line 744 "parser.yy"
    60606059    { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_link( new StatementNode( StatementNode::Case, (yyvsp[(3) - (3)].en), 0 ) ) ); }
    60616060    break;
     
    60646063
    60656064/* Line 1806 of yacc.c  */
    6066 #line 751 "parser.yy"
     6065#line 748 "parser.yy"
    60676066    { (yyval.sn) = (yyvsp[(2) - (3)].sn); }
    60686067    break;
     
    60716070
    60726071/* Line 1806 of yacc.c  */
    6073 #line 752 "parser.yy"
     6072#line 749 "parser.yy"
    60746073    { (yyval.sn) = new StatementNode( StatementNode::Default ); }
    60756074    break;
     
    60786077
    60796078/* Line 1806 of yacc.c  */
    6080 #line 758 "parser.yy"
     6079#line 755 "parser.yy"
    60816080    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) )); }
    60826081    break;
     
    60856084
    60866085/* Line 1806 of yacc.c  */
    6087 #line 762 "parser.yy"
     6086#line 759 "parser.yy"
    60886087    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new CompoundStmtNode( (yyvsp[(2) - (2)].sn) ) ); }
    60896088    break;
     
    60926091
    60936092/* Line 1806 of yacc.c  */
    6094 #line 767 "parser.yy"
     6093#line 764 "parser.yy"
    60956094    { (yyval.sn) = 0; }
    60966095    break;
     
    60996098
    61006099/* Line 1806 of yacc.c  */
    6101 #line 773 "parser.yy"
     6100#line 770 "parser.yy"
    61026101    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new CompoundStmtNode( (yyvsp[(2) - (2)].sn) ) ); }
    61036102    break;
     
    61066105
    61076106/* Line 1806 of yacc.c  */
    6108 #line 775 "parser.yy"
     6107#line 772 "parser.yy"
    61096108    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( new CompoundStmtNode( (yyvsp[(3) - (3)].sn) ) ) ) ); }
    61106109    break;
     
    61136112
    61146113/* Line 1806 of yacc.c  */
    6115 #line 780 "parser.yy"
     6114#line 777 "parser.yy"
    61166115    { (yyval.sn) = 0; }
    61176116    break;
     
    61206119
    61216120/* Line 1806 of yacc.c  */
    6122 #line 786 "parser.yy"
     6121#line 783 "parser.yy"
    61236122    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    61246123    break;
     
    61276126
    61286127/* Line 1806 of yacc.c  */
    6129 #line 788 "parser.yy"
     6128#line 785 "parser.yy"
    61306129    { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new CompoundStmtNode( (StatementNode *)mkList( (*(yyvsp[(2) - (3)].sn), *(yyvsp[(3) - (3)].sn) ) ) ) ); }
    61316130    break;
     
    61346133
    61356134/* Line 1806 of yacc.c  */
    6136 #line 790 "parser.yy"
     6135#line 787 "parser.yy"
    61376136    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
    61386137    break;
     
    61416140
    61426141/* Line 1806 of yacc.c  */
    6143 #line 792 "parser.yy"
     6142#line 789 "parser.yy"
    61446143    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_link( (yyvsp[(2) - (4)].sn)->append_last_case( new CompoundStmtNode( (StatementNode *)mkList( (*(yyvsp[(3) - (4)].sn), *(yyvsp[(4) - (4)].sn) ) ) ) ) ) ); }
    61456144    break;
     
    61486147
    61496148/* Line 1806 of yacc.c  */
    6150 #line 797 "parser.yy"
     6149#line 794 "parser.yy"
    61516150    { (yyval.sn) = new StatementNode( StatementNode::Break ); }
    61526151    break;
     
    61556154
    61566155/* Line 1806 of yacc.c  */
    6157 #line 803 "parser.yy"
     6156#line 800 "parser.yy"
    61586157    { (yyval.sn) = 0; }
    61596158    break;
     
    61626161
    61636162/* Line 1806 of yacc.c  */
    6164 #line 805 "parser.yy"
     6163#line 802 "parser.yy"
    61656164    { (yyval.sn) = 0; }
    61666165    break;
     
    61696168
    61706169/* Line 1806 of yacc.c  */
    6171 #line 810 "parser.yy"
     6170#line 807 "parser.yy"
    61726171    { (yyval.sn) = new StatementNode( StatementNode::While, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    61736172    break;
     
    61766175
    61776176/* Line 1806 of yacc.c  */
    6178 #line 812 "parser.yy"
     6177#line 809 "parser.yy"
    61796178    { (yyval.sn) = new StatementNode( StatementNode::Do, (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ); }
    61806179    break;
     
    61836182
    61846183/* Line 1806 of yacc.c  */
    6185 #line 814 "parser.yy"
     6184#line 811 "parser.yy"
    61866185    { (yyval.sn) = new StatementNode( StatementNode::For, (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].sn) ); }
    61876186    break;
     
    61906189
    61916190/* Line 1806 of yacc.c  */
    6192 #line 819 "parser.yy"
     6191#line 816 "parser.yy"
    61936192    { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
    61946193    break;
     
    61976196
    61986197/* Line 1806 of yacc.c  */
    6199 #line 821 "parser.yy"
     6198#line 818 "parser.yy"
    62006199    { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
    62016200    break;
     
    62046203
    62056204/* Line 1806 of yacc.c  */
    6206 #line 826 "parser.yy"
     6205#line 823 "parser.yy"
    62076206    { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(2) - (3)].tok) ); }
    62086207    break;
     
    62116210
    62126211/* Line 1806 of yacc.c  */
     6212#line 827 "parser.yy"
     6213    { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(3) - (4)].en) ); }
     6214    break;
     6215
     6216  case 190:
     6217
     6218/* Line 1806 of yacc.c  */
    62136219#line 830 "parser.yy"
    6214     { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(3) - (4)].en) ); }
    6215     break;
    6216 
    6217   case 190:
    6218 
    6219 /* Line 1806 of yacc.c  */
    6220 #line 833 "parser.yy"
    62216220    { (yyval.sn) = new StatementNode( StatementNode::Continue ); }
    62226221    break;
     
    62256224
    62266225/* Line 1806 of yacc.c  */
     6226#line 834 "parser.yy"
     6227    { (yyval.sn) = new StatementNode( StatementNode::Continue, (yyvsp[(2) - (3)].tok) ); }
     6228    break;
     6229
     6230  case 192:
     6231
     6232/* Line 1806 of yacc.c  */
    62276233#line 837 "parser.yy"
    6228     { (yyval.sn) = new StatementNode( StatementNode::Continue, (yyvsp[(2) - (3)].tok) ); }
    6229     break;
    6230 
    6231   case 192:
    6232 
    6233 /* Line 1806 of yacc.c  */
    6234 #line 840 "parser.yy"
    62356234    { (yyval.sn) = new StatementNode( StatementNode::Break ); }
    62366235    break;
     
    62396238
    62406239/* Line 1806 of yacc.c  */
    6241 #line 844 "parser.yy"
     6240#line 841 "parser.yy"
    62426241    { (yyval.sn) = new StatementNode( StatementNode::Break, (yyvsp[(2) - (3)].tok) ); }
    62436242    break;
     
    62466245
    62476246/* Line 1806 of yacc.c  */
    6248 #line 846 "parser.yy"
     6247#line 843 "parser.yy"
    62496248    { (yyval.sn) = new StatementNode( StatementNode::Return, (yyvsp[(2) - (3)].en), 0 ); }
    62506249    break;
     
    62536252
    62546253/* Line 1806 of yacc.c  */
    6255 #line 848 "parser.yy"
     6254#line 845 "parser.yy"
    62566255    { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); }
    62576256    break;
     
    62606259
    62616260/* Line 1806 of yacc.c  */
    6262 #line 852 "parser.yy"
     6261#line 849 "parser.yy"
    62636262    { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); }
    62646263    break;
     
    62676266
    62686267/* Line 1806 of yacc.c  */
    6269 #line 854 "parser.yy"
     6268#line 851 "parser.yy"
    62706269    { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (5)].en), 0 ); }
    62716270    break;
     
    62746273
    62756274/* Line 1806 of yacc.c  */
    6276 #line 861 "parser.yy"
     6275#line 858 "parser.yy"
    62776276    { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); }
    62786277    break;
     
    62816280
    62826281/* Line 1806 of yacc.c  */
    6283 #line 863 "parser.yy"
     6282#line 860 "parser.yy"
    62846283    { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); }
    62856284    break;
     
    62886287
    62896288/* Line 1806 of yacc.c  */
    6290 #line 865 "parser.yy"
     6289#line 862 "parser.yy"
    62916290    {
    62926291                        (yyvsp[(3) - (4)].pn)->set_link( (yyvsp[(4) - (4)].pn) );
     
    62986297
    62996298/* Line 1806 of yacc.c  */
    6300 #line 876 "parser.yy"
     6299#line 873 "parser.yy"
    63016300    { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); }
    63026301    break;
     
    63056304
    63066305/* Line 1806 of yacc.c  */
    6307 #line 878 "parser.yy"
     6306#line 875 "parser.yy"
    63086307    { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); }
    63096308    break;
     
    63126311
    63136312/* Line 1806 of yacc.c  */
    6314 #line 880 "parser.yy"
     6313#line 877 "parser.yy"
    63156314    { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); }
    63166315    break;
     
    63196318
    63206319/* Line 1806 of yacc.c  */
    6321 #line 882 "parser.yy"
     6320#line 879 "parser.yy"
    63226321    { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); }
    63236322    break;
     
    63266325
    63276326/* Line 1806 of yacc.c  */
    6328 #line 887 "parser.yy"
     6327#line 884 "parser.yy"
    63296328    { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); }
    63306329    break;
     
    63336332
    63346333/* Line 1806 of yacc.c  */
    6335 #line 889 "parser.yy"
     6334#line 886 "parser.yy"
    63366335    { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); }
    63376336    break;
     
    63406339
    63416340/* Line 1806 of yacc.c  */
    6342 #line 891 "parser.yy"
     6341#line 888 "parser.yy"
    63436342    { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); }
    63446343    break;
     
    63476346
    63486347/* Line 1806 of yacc.c  */
    6349 #line 893 "parser.yy"
     6348#line 890 "parser.yy"
    63506349    { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); }
    63516350    break;
     
    63546353
    63556354/* Line 1806 of yacc.c  */
    6356 #line 898 "parser.yy"
     6355#line 895 "parser.yy"
    63576356    {
    63586357                        (yyval.pn) = new StatementNode( StatementNode::Finally, 0, (yyvsp[(2) - (2)].sn) );
     
    63646363
    63656364/* Line 1806 of yacc.c  */
    6366 #line 912 "parser.yy"
     6365#line 909 "parser.yy"
    63676366    {
    63686367                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63746373
    63756374/* Line 1806 of yacc.c  */
    6376 #line 917 "parser.yy"
     6375#line 914 "parser.yy"
    63776376    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    63786377    break;
     
    63816380
    63826381/* Line 1806 of yacc.c  */
    6383 #line 919 "parser.yy"
     6382#line 916 "parser.yy"
    63846383    {
    63856384                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63916390
    63926391/* Line 1806 of yacc.c  */
    6393 #line 928 "parser.yy"
     6392#line 925 "parser.yy"
    63946393    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ); }
    63956394    break;
     
    63986397
    63996398/* Line 1806 of yacc.c  */
    6400 #line 930 "parser.yy"
     6399#line 927 "parser.yy"
    64016400    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ); }
    64026401    break;
     
    64056404
    64066405/* Line 1806 of yacc.c  */
    6407 #line 932 "parser.yy"
     6406#line 929 "parser.yy"
    64086407    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ); }
    64096408    break;
     
    64126411
    64136412/* Line 1806 of yacc.c  */
    6414 #line 934 "parser.yy"
     6413#line 931 "parser.yy"
    64156414    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].constant) ); }
    64166415    break;
     
    64196418
    64206419/* Line 1806 of yacc.c  */
    6421 #line 936 "parser.yy"
     6420#line 933 "parser.yy"
    64226421    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].constant), (yyvsp[(12) - (14)].label) ); }
    64236422    break;
     
    64266425
    64276426/* Line 1806 of yacc.c  */
    6428 #line 941 "parser.yy"
     6427#line 938 "parser.yy"
    64296428    { (yyval.flag) = false; }
    64306429    break;
     
    64336432
    64346433/* Line 1806 of yacc.c  */
    6435 #line 943 "parser.yy"
     6434#line 940 "parser.yy"
    64366435    { (yyval.flag) = true; }
    64376436    break;
     
    64406439
    64416440/* Line 1806 of yacc.c  */
    6442 #line 948 "parser.yy"
     6441#line 945 "parser.yy"
    64436442    { (yyval.en) = 0; }
    64446443    break;
     
    64476446
    64486447/* Line 1806 of yacc.c  */
    6449 #line 955 "parser.yy"
     6448#line 952 "parser.yy"
    64506449    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
    64516450    break;
     
    64546453
    64556454/* Line 1806 of yacc.c  */
    6456 #line 960 "parser.yy"
     6455#line 957 "parser.yy"
    64576456    { (yyval.en) = new AsmExprNode( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ); }
    64586457    break;
     
    64616460
    64626461/* Line 1806 of yacc.c  */
    6463 #line 962 "parser.yy"
     6462#line 959 "parser.yy"
    64646463    { (yyval.en) = new AsmExprNode( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ); }
    64656464    break;
     
    64686467
    64696468/* Line 1806 of yacc.c  */
    6470 #line 967 "parser.yy"
     6469#line 964 "parser.yy"
    64716470    { (yyval.constant) = 0; }
    64726471    break;
     
    64756474
    64766475/* Line 1806 of yacc.c  */
    6477 #line 969 "parser.yy"
     6476#line 966 "parser.yy"
    64786477    { (yyval.constant) = (yyvsp[(1) - (1)].constant); }
    64796478    break;
     
    64826481
    64836482/* Line 1806 of yacc.c  */
    6484 #line 971 "parser.yy"
     6483#line 968 "parser.yy"
    64856484    { (yyval.constant) = (ConstantNode *)(yyvsp[(1) - (3)].constant)->set_link( (yyvsp[(3) - (3)].constant) ); }
    64866485    break;
     
    64896488
    64906489/* Line 1806 of yacc.c  */
    6491 #line 976 "parser.yy"
     6490#line 973 "parser.yy"
    64926491    { (yyval.label) = new LabelNode(); (yyval.label)->append_label( (yyvsp[(1) - (1)].tok) ); }
    64936492    break;
     
    64966495
    64976496/* Line 1806 of yacc.c  */
    6498 #line 978 "parser.yy"
     6497#line 975 "parser.yy"
    64996498    { (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->append_label( (yyvsp[(3) - (3)].tok) ); }
    65006499    break;
     
    65036502
    65046503/* Line 1806 of yacc.c  */
    6505 #line 985 "parser.yy"
     6504#line 982 "parser.yy"
    65066505    { (yyval.decl) = 0; }
    65076506    break;
     
    65106509
    65116510/* Line 1806 of yacc.c  */
    6512 #line 992 "parser.yy"
     6511#line 989 "parser.yy"
    65136512    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    65146513    break;
     
    65176516
    65186517/* Line 1806 of yacc.c  */
    6519 #line 997 "parser.yy"
     6518#line 994 "parser.yy"
    65206519    { (yyval.decl) = 0; }
    65216520    break;
     
    65246523
    65256524/* Line 1806 of yacc.c  */
    6526 #line 1004 "parser.yy"
     6525#line 1001 "parser.yy"
    65276526    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    65286527    break;
     
    65316530
    65326531/* Line 1806 of yacc.c  */
    6533 #line 1018 "parser.yy"
     6532#line 1015 "parser.yy"
    65346533    {}
    65356534    break;
     
    65386537
    65396538/* Line 1806 of yacc.c  */
    6540 #line 1019 "parser.yy"
     6539#line 1016 "parser.yy"
    65416540    {}
    65426541    break;
     
    65456544
    65466545/* Line 1806 of yacc.c  */
    6547 #line 1048 "parser.yy"
     6546#line 1045 "parser.yy"
    65486547    {
    65496548                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    65556554
    65566555/* Line 1806 of yacc.c  */
    6557 #line 1055 "parser.yy"
     6556#line 1052 "parser.yy"
    65586557    {
    65596558                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    65656564
    65666565/* Line 1806 of yacc.c  */
    6567 #line 1060 "parser.yy"
     6566#line 1057 "parser.yy"
    65686567    {
    65696568                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID );
     
    65756574
    65766575/* Line 1806 of yacc.c  */
    6577 #line 1070 "parser.yy"
     6576#line 1067 "parser.yy"
    65786577    {
    65796578                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    65856584
    65866585/* Line 1806 of yacc.c  */
    6587 #line 1075 "parser.yy"
     6586#line 1072 "parser.yy"
    65886587    {
    65896588                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    65956594
    65966595/* Line 1806 of yacc.c  */
    6597 #line 1080 "parser.yy"
     6596#line 1077 "parser.yy"
    65986597    {
    65996598                        typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) );
     
    66056604
    66066605/* Line 1806 of yacc.c  */
    6607 #line 1088 "parser.yy"
     6606#line 1085 "parser.yy"
    66086607    {
    66096608                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    66156614
    66166615/* Line 1806 of yacc.c  */
    6617 #line 1093 "parser.yy"
     6616#line 1090 "parser.yy"
    66186617    {
    66196618                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    66256624
    66266625/* Line 1806 of yacc.c  */
    6627 #line 1098 "parser.yy"
     6626#line 1095 "parser.yy"
    66286627    {
    66296628                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    66356634
    66366635/* Line 1806 of yacc.c  */
    6637 #line 1103 "parser.yy"
     6636#line 1100 "parser.yy"
    66386637    {
    66396638                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    66456644
    66466645/* Line 1806 of yacc.c  */
    6647 #line 1108 "parser.yy"
     6646#line 1105 "parser.yy"
    66486647    {
    66496648                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    66556654
    66566655/* Line 1806 of yacc.c  */
    6657 #line 1116 "parser.yy"
     6656#line 1113 "parser.yy"
    66586657    {
    66596658                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true );
     
    66646663
    66656664/* Line 1806 of yacc.c  */
    6666 #line 1139 "parser.yy"
     6665#line 1136 "parser.yy"
    66676666    {
    66686667                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    66736672
    66746673/* Line 1806 of yacc.c  */
    6675 #line 1143 "parser.yy"
     6674#line 1140 "parser.yy"
    66766675    {
    66776676                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    66826681
    66836682/* Line 1806 of yacc.c  */
    6684 #line 1150 "parser.yy"
     6683#line 1147 "parser.yy"
    66856684    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    66866685    break;
     
    66896688
    66906689/* Line 1806 of yacc.c  */
    6691 #line 1154 "parser.yy"
     6690#line 1151 "parser.yy"
    66926691    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
    66936692    break;
     
    66966695
    66976696/* Line 1806 of yacc.c  */
    6698 #line 1159 "parser.yy"
     6697#line 1156 "parser.yy"
    66996698    {
    67006699                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    67066705
    67076706/* Line 1806 of yacc.c  */
    6708 #line 1164 "parser.yy"
     6707#line 1161 "parser.yy"
    67096708    {
    67106709                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    67166715
    67176716/* Line 1806 of yacc.c  */
    6718 #line 1169 "parser.yy"
     6717#line 1166 "parser.yy"
    67196718    {
    67206719                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD );
     
    67266725
    67276726/* Line 1806 of yacc.c  */
    6728 #line 1180 "parser.yy"
     6727#line 1177 "parser.yy"
    67296728    {
    67306729                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    67366735
    67376736/* Line 1806 of yacc.c  */
    6738 #line 1185 "parser.yy"
     6737#line 1182 "parser.yy"
    67396738    {
    67406739                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    67466745
    67476746/* Line 1806 of yacc.c  */
    6748 #line 1190 "parser.yy"
     6747#line 1187 "parser.yy"
    67496748    {
    67506749                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    67566755
    67576756/* Line 1806 of yacc.c  */
    6758 #line 1195 "parser.yy"
     6757#line 1192 "parser.yy"
    67596758    {
    67606759                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    67666765
    67676766/* Line 1806 of yacc.c  */
    6768 #line 1200 "parser.yy"
     6767#line 1197 "parser.yy"
    67696768    {
    67706769                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    67766775
    67776776/* Line 1806 of yacc.c  */
    6778 #line 1209 "parser.yy"
     6777#line 1206 "parser.yy"
    67796778    {
    67806779                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD );
     
    67866785
    67876786/* Line 1806 of yacc.c  */
    6788 #line 1214 "parser.yy"
     6787#line 1211 "parser.yy"
    67896788    {
    67906789                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD );
     
    67966795
    67976796/* Line 1806 of yacc.c  */
    6798 #line 1231 "parser.yy"
     6797#line 1228 "parser.yy"
    67996798    {
    68006799                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    68066805
    68076806/* Line 1806 of yacc.c  */
    6808 #line 1236 "parser.yy"
     6807#line 1233 "parser.yy"
    68096808    {
    68106809                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    68166815
    68176816/* Line 1806 of yacc.c  */
    6818 #line 1258 "parser.yy"
     6817#line 1255 "parser.yy"
    68196818    { (yyval.decl) = 0; }
    68206819    break;
     
    68236822
    68246823/* Line 1806 of yacc.c  */
    6825 #line 1270 "parser.yy"
     6824#line 1267 "parser.yy"
    68266825    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68276826    break;
     
    68306829
    68316830/* Line 1806 of yacc.c  */
    6832 #line 1281 "parser.yy"
     6831#line 1278 "parser.yy"
    68336832    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
    68346833    break;
     
    68376836
    68386837/* Line 1806 of yacc.c  */
    6839 #line 1283 "parser.yy"
     6838#line 1280 "parser.yy"
    68406839    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
    68416840    break;
     
    68446843
    68456844/* Line 1806 of yacc.c  */
    6846 #line 1285 "parser.yy"
     6845#line 1282 "parser.yy"
    68476846    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
    68486847    break;
     
    68516850
    68526851/* Line 1806 of yacc.c  */
    6853 #line 1287 "parser.yy"
     6852#line 1284 "parser.yy"
    68546853    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
    68556854    break;
     
    68586857
    68596858/* Line 1806 of yacc.c  */
    6860 #line 1289 "parser.yy"
     6859#line 1286 "parser.yy"
    68616860    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
    68626861    break;
     
    68656864
    68666865/* Line 1806 of yacc.c  */
    6867 #line 1291 "parser.yy"
     6866#line 1288 "parser.yy"
    68686867    {
    68696868                        typedefTable.enterScope();
     
    68746873
    68756874/* Line 1806 of yacc.c  */
    6876 #line 1295 "parser.yy"
     6875#line 1292 "parser.yy"
    68776876    {
    68786877                        typedefTable.leaveScope();
     
    68846883
    68856884/* Line 1806 of yacc.c  */
    6886 #line 1304 "parser.yy"
     6885#line 1301 "parser.yy"
    68876886    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68886887    break;
     
    68916890
    68926891/* Line 1806 of yacc.c  */
    6893 #line 1306 "parser.yy"
     6892#line 1303 "parser.yy"
    68946893    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    68956894    break;
     
    68986897
    68996898/* Line 1806 of yacc.c  */
    6900 #line 1317 "parser.yy"
     6899#line 1314 "parser.yy"
    69016900    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69026901    break;
     
    69056904
    69066905/* Line 1806 of yacc.c  */
    6907 #line 1326 "parser.yy"
     6906#line 1323 "parser.yy"
    69086907    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
    69096908    break;
     
    69126911
    69136912/* Line 1806 of yacc.c  */
    6914 #line 1328 "parser.yy"
     6913#line 1325 "parser.yy"
    69156914    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
    69166915    break;
     
    69196918
    69206919/* Line 1806 of yacc.c  */
    6921 #line 1330 "parser.yy"
     6920#line 1327 "parser.yy"
    69226921    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
    69236922    break;
     
    69266925
    69276926/* Line 1806 of yacc.c  */
    6928 #line 1332 "parser.yy"
     6927#line 1329 "parser.yy"
    69296928    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
    69306929    break;
     
    69336932
    69346933/* Line 1806 of yacc.c  */
    6935 #line 1334 "parser.yy"
     6934#line 1331 "parser.yy"
    69366935    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); }
    69376936    break;
     
    69406939
    69416940/* Line 1806 of yacc.c  */
    6942 #line 1336 "parser.yy"
     6941#line 1333 "parser.yy"
    69436942    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
    69446943    break;
     
    69476946
    69486947/* Line 1806 of yacc.c  */
    6949 #line 1338 "parser.yy"
     6948#line 1335 "parser.yy"
    69506949    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); }
    69516950    break;
     
    69546953
    69556954/* Line 1806 of yacc.c  */
    6956 #line 1340 "parser.yy"
     6955#line 1337 "parser.yy"
    69576956    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
    69586957    break;
     
    69616960
    69626961/* Line 1806 of yacc.c  */
    6963 #line 1345 "parser.yy"
     6962#line 1342 "parser.yy"
    69646963    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
    69656964    break;
     
    69686967
    69696968/* Line 1806 of yacc.c  */
    6970 #line 1347 "parser.yy"
     6969#line 1344 "parser.yy"
    69716970    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
    69726971    break;
     
    69756974
    69766975/* Line 1806 of yacc.c  */
    6977 #line 1349 "parser.yy"
     6976#line 1346 "parser.yy"
    69786977    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
    69796978    break;
     
    69826981
    69836982/* Line 1806 of yacc.c  */
    6984 #line 1351 "parser.yy"
     6983#line 1348 "parser.yy"
    69856984    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
    69866985    break;
     
    69896988
    69906989/* Line 1806 of yacc.c  */
    6991 #line 1353 "parser.yy"
     6990#line 1350 "parser.yy"
    69926991    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); }
    69936992    break;
     
    69966995
    69976996/* Line 1806 of yacc.c  */
    6998 #line 1355 "parser.yy"
     6997#line 1352 "parser.yy"
    69996998    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); }
    70006999    break;
     
    70037002
    70047003/* Line 1806 of yacc.c  */
    7005 #line 1357 "parser.yy"
     7004#line 1354 "parser.yy"
    70067005    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); }
    70077006    break;
     
    70107009
    70117010/* Line 1806 of yacc.c  */
    7012 #line 1359 "parser.yy"
     7011#line 1356 "parser.yy"
    70137012    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); }
    70147013    break;
     
    70177016
    70187017/* Line 1806 of yacc.c  */
    7019 #line 1361 "parser.yy"
     7018#line 1358 "parser.yy"
    70207019    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
    70217020    break;
     
    70247023
    70257024/* Line 1806 of yacc.c  */
    7026 #line 1363 "parser.yy"
     7025#line 1360 "parser.yy"
    70277026    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
    70287027    break;
     
    70317030
    70327031/* Line 1806 of yacc.c  */
    7033 #line 1365 "parser.yy"
     7032#line 1362 "parser.yy"
    70347033    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); }
    70357034    break;
     
    70387037
    70397038/* Line 1806 of yacc.c  */
    7040 #line 1367 "parser.yy"
     7039#line 1364 "parser.yy"
    70417040    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); }
    70427041    break;
     
    70457044
    70467045/* Line 1806 of yacc.c  */
    7047 #line 1369 "parser.yy"
     7046#line 1366 "parser.yy"
    70487047    { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
    70497048    break;
     
    70527051
    70537052/* Line 1806 of yacc.c  */
    7054 #line 1376 "parser.yy"
     7053#line 1373 "parser.yy"
    70557054    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    70567055    break;
     
    70597058
    70607059/* Line 1806 of yacc.c  */
    7061 #line 1378 "parser.yy"
     7060#line 1375 "parser.yy"
    70627061    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    70637062    break;
     
    70667065
    70677066/* Line 1806 of yacc.c  */
    7068 #line 1380 "parser.yy"
     7067#line 1377 "parser.yy"
    70697068    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    70707069    break;
     
    70737072
    70747073/* Line 1806 of yacc.c  */
    7075 #line 1382 "parser.yy"
     7074#line 1379 "parser.yy"
    70767075    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
    70777076    break;
     
    70807079
    70817080/* Line 1806 of yacc.c  */
    7082 #line 1388 "parser.yy"
     7081#line 1385 "parser.yy"
    70837082    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    70847083    break;
     
    70877086
    70887087/* Line 1806 of yacc.c  */
    7089 #line 1395 "parser.yy"
     7088#line 1392 "parser.yy"
    70907089    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    70917090    break;
     
    70947093
    70957094/* Line 1806 of yacc.c  */
    7096 #line 1397 "parser.yy"
     7095#line 1394 "parser.yy"
    70977096    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    70987097    break;
     
    71017100
    71027101/* Line 1806 of yacc.c  */
    7103 #line 1399 "parser.yy"
     7102#line 1396 "parser.yy"
    71047103    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
    71057104    break;
     
    71087107
    71097108/* Line 1806 of yacc.c  */
    7110 #line 1404 "parser.yy"
     7109#line 1401 "parser.yy"
    71117110    { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
    71127111    break;
     
    71157114
    71167115/* Line 1806 of yacc.c  */
    7117 #line 1406 "parser.yy"
     7116#line 1403 "parser.yy"
    71187117    { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
    71197118    break;
     
    71227121
    71237122/* Line 1806 of yacc.c  */
    7124 #line 1408 "parser.yy"
     7123#line 1405 "parser.yy"
    71257124    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
    71267125    break;
     
    71297128
    71307129/* Line 1806 of yacc.c  */
    7131 #line 1410 "parser.yy"
     7130#line 1407 "parser.yy"
    71327131    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    71337132    break;
     
    71367135
    71377136/* Line 1806 of yacc.c  */
    7138 #line 1416 "parser.yy"
     7137#line 1413 "parser.yy"
    71397138    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    71407139    break;
     
    71437142
    71447143/* Line 1806 of yacc.c  */
    7145 #line 1418 "parser.yy"
     7144#line 1415 "parser.yy"
    71467145    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    71477146    break;
     
    71507149
    71517150/* Line 1806 of yacc.c  */
    7152 #line 1420 "parser.yy"
     7151#line 1417 "parser.yy"
    71537152    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    71547153    break;
     
    71577156
    71587157/* Line 1806 of yacc.c  */
    7159 #line 1426 "parser.yy"
     7158#line 1423 "parser.yy"
    71607159    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    71617160    break;
     
    71647163
    71657164/* Line 1806 of yacc.c  */
    7166 #line 1428 "parser.yy"
     7165#line 1425 "parser.yy"
    71677166    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    71687167    break;
     
    71717170
    71727171/* Line 1806 of yacc.c  */
    7173 #line 1434 "parser.yy"
     7172#line 1431 "parser.yy"
    71747173    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    71757174    break;
     
    71787177
    71797178/* Line 1806 of yacc.c  */
    7180 #line 1436 "parser.yy"
     7179#line 1433 "parser.yy"
    71817180    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    71827181    break;
     
    71857184
    71867185/* Line 1806 of yacc.c  */
    7187 #line 1438 "parser.yy"
     7186#line 1435 "parser.yy"
    71887187    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    71897188    break;
     
    71927191
    71937192/* Line 1806 of yacc.c  */
    7194 #line 1443 "parser.yy"
     7193#line 1440 "parser.yy"
    71957194    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
    71967195    break;
     
    71997198
    72007199/* Line 1806 of yacc.c  */
    7201 #line 1445 "parser.yy"
     7200#line 1442 "parser.yy"
    72027201    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    72037202    break;
     
    72067205
    72077206/* Line 1806 of yacc.c  */
    7208 #line 1447 "parser.yy"
     7207#line 1444 "parser.yy"
    72097208    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    72107209    break;
     
    72137212
    72147213/* Line 1806 of yacc.c  */
    7215 #line 1457 "parser.yy"
     7214#line 1454 "parser.yy"
    72167215    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl), true ); }
    72177216    break;
     
    72207219
    72217220/* Line 1806 of yacc.c  */
    7222 #line 1459 "parser.yy"
     7221#line 1456 "parser.yy"
    72237222    {
    72247223                        typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
     
    72307229
    72317230/* Line 1806 of yacc.c  */
    7232 #line 1464 "parser.yy"
     7231#line 1461 "parser.yy"
    72337232    { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
    72347233    break;
     
    72377236
    72387237/* Line 1806 of yacc.c  */
    7239 #line 1466 "parser.yy"
     7238#line 1463 "parser.yy"
    72407239    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), 0, (yyvsp[(5) - (6)].decl), true ); }
    72417240    break;
     
    72447243
    72457244/* Line 1806 of yacc.c  */
    7246 #line 1468 "parser.yy"
     7245#line 1465 "parser.yy"
    72477246    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); }
    72487247    break;
     
    72517250
    72527251/* Line 1806 of yacc.c  */
    7253 #line 1470 "parser.yy"
     7252#line 1467 "parser.yy"
    72547253    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    72557254    break;
     
    72587257
    72597258/* Line 1806 of yacc.c  */
    7260 #line 1475 "parser.yy"
     7259#line 1472 "parser.yy"
    72617260    { (yyval.aggKey) = DeclarationNode::Struct; }
    72627261    break;
     
    72657264
    72667265/* Line 1806 of yacc.c  */
    7267 #line 1477 "parser.yy"
     7266#line 1474 "parser.yy"
    72687267    { (yyval.aggKey) = DeclarationNode::Union; }
    72697268    break;
     
    72727271
    72737272/* Line 1806 of yacc.c  */
    7274 #line 1482 "parser.yy"
     7273#line 1479 "parser.yy"
    72757274    { (yyval.decl) = 0; }
    72767275    break;
     
    72797278
    72807279/* Line 1806 of yacc.c  */
    7281 #line 1484 "parser.yy"
     7280#line 1481 "parser.yy"
    72827281    { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
    72837282    break;
     
    72867285
    72877286/* Line 1806 of yacc.c  */
     7287#line 1487 "parser.yy"
     7288    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); }
     7289    break;
     7290
     7291  case 379:
     7292
     7293/* Line 1806 of yacc.c  */
    72887294#line 1490 "parser.yy"
    7289     { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); }
    7290     break;
    7291 
    7292   case 379:
    7293 
    7294 /* Line 1806 of yacc.c  */
    7295 #line 1493 "parser.yy"
    72967295    {   // mark all fields in list
    72977296                        for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_link() )
     
    73047303
    73057304/* Line 1806 of yacc.c  */
    7306 #line 1503 "parser.yy"
     7305#line 1500 "parser.yy"
    73077306    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
    73087307    break;
     
    73117310
    73127311/* Line 1806 of yacc.c  */
    7313 #line 1505 "parser.yy"
     7312#line 1502 "parser.yy"
    73147313    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
    73157314    break;
     
    73187317
    73197318/* Line 1806 of yacc.c  */
    7320 #line 1507 "parser.yy"
     7319#line 1504 "parser.yy"
    73217320    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
    73227321    break;
     
    73257324
    73267325/* Line 1806 of yacc.c  */
    7327 #line 1512 "parser.yy"
     7326#line 1509 "parser.yy"
    73287327    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73297328    break;
     
    73327331
    73337332/* Line 1806 of yacc.c  */
    7334 #line 1514 "parser.yy"
     7333#line 1511 "parser.yy"
    73357334    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
    73367335    break;
     
    73397338
    73407339/* Line 1806 of yacc.c  */
    7341 #line 1519 "parser.yy"
     7340#line 1516 "parser.yy"
    73427341    { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
    73437342    break;
     
    73467345
    73477346/* Line 1806 of yacc.c  */
     7347#line 1518 "parser.yy"
     7348    { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
     7349    break;
     7350
     7351  case 388:
     7352
     7353/* Line 1806 of yacc.c  */
    73487354#line 1521 "parser.yy"
    7349     { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
    7350     break;
    7351 
    7352   case 388:
     7355    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
     7356    break;
     7357
     7358  case 389:
    73537359
    73547360/* Line 1806 of yacc.c  */
     
    73577363    break;
    73587364
    7359   case 389:
    7360 
    7361 /* Line 1806 of yacc.c  */
    7362 #line 1527 "parser.yy"
    7363     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    7364     break;
    7365 
    73667365  case 391:
    73677366
    73687367/* Line 1806 of yacc.c  */
    7369 #line 1533 "parser.yy"
     7368#line 1530 "parser.yy"
    73707369    { (yyval.en) = 0; }
    73717370    break;
     
    73747373
    73757374/* Line 1806 of yacc.c  */
    7376 #line 1535 "parser.yy"
     7375#line 1532 "parser.yy"
    73777376    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    73787377    break;
     
    73817380
    73827381/* Line 1806 of yacc.c  */
    7383 #line 1540 "parser.yy"
     7382#line 1537 "parser.yy"
    73847383    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    73857384    break;
     
    73887387
    73897388/* Line 1806 of yacc.c  */
    7390 #line 1549 "parser.yy"
     7389#line 1546 "parser.yy"
    73917390    { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); }
    73927391    break;
     
    73957394
    73967395/* Line 1806 of yacc.c  */
    7397 #line 1551 "parser.yy"
     7396#line 1548 "parser.yy"
    73987397    {
    73997398                        typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
     
    74057404
    74067405/* Line 1806 of yacc.c  */
    7407 #line 1556 "parser.yy"
     7406#line 1553 "parser.yy"
    74087407    { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
    74097408    break;
     
    74127411
    74137412/* Line 1806 of yacc.c  */
    7414 #line 1558 "parser.yy"
     7413#line 1555 "parser.yy"
    74157414    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); }
    74167415    break;
     
    74197418
    74207419/* Line 1806 of yacc.c  */
    7421 #line 1563 "parser.yy"
     7420#line 1560 "parser.yy"
    74227421    { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
    74237422    break;
     
    74267425
    74277426/* Line 1806 of yacc.c  */
    7428 #line 1565 "parser.yy"
     7427#line 1562 "parser.yy"
    74297428    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
    74307429    break;
     
    74337432
    74347433/* Line 1806 of yacc.c  */
    7435 #line 1570 "parser.yy"
     7434#line 1567 "parser.yy"
    74367435    { (yyval.en) = 0; }
    74377436    break;
     
    74407439
    74417440/* Line 1806 of yacc.c  */
    7442 #line 1572 "parser.yy"
     7441#line 1569 "parser.yy"
    74437442    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    74447443    break;
     
    74477446
    74487447/* Line 1806 of yacc.c  */
    7449 #line 1579 "parser.yy"
     7448#line 1576 "parser.yy"
    74507449    { (yyval.decl) = 0; }
    74517450    break;
     
    74547453
    74557454/* Line 1806 of yacc.c  */
    7456 #line 1587 "parser.yy"
     7455#line 1584 "parser.yy"
    74577456    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    74587457    break;
     
    74617460
    74627461/* Line 1806 of yacc.c  */
    7463 #line 1589 "parser.yy"
     7462#line 1586 "parser.yy"
    74647463    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    74657464    break;
     
    74687467
    74697468/* Line 1806 of yacc.c  */
    7470 #line 1591 "parser.yy"
     7469#line 1588 "parser.yy"
    74717470    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    74727471    break;
     
    74757474
    74767475/* Line 1806 of yacc.c  */
    7477 #line 1599 "parser.yy"
     7476#line 1596 "parser.yy"
    74787477    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    74797478    break;
     
    74827481
    74837482/* Line 1806 of yacc.c  */
    7484 #line 1601 "parser.yy"
     7483#line 1598 "parser.yy"
    74857484    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    74867485    break;
     
    74897488
    74907489/* Line 1806 of yacc.c  */
    7491 #line 1603 "parser.yy"
     7490#line 1600 "parser.yy"
    74927491    { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
    74937492    break;
     
    74967495
    74977496/* Line 1806 of yacc.c  */
    7498 #line 1609 "parser.yy"
     7497#line 1606 "parser.yy"
    74997498    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    75007499    break;
     
    75037502
    75047503/* Line 1806 of yacc.c  */
    7505 #line 1614 "parser.yy"
     7504#line 1611 "parser.yy"
    75067505    { (yyval.decl) = 0; }
    75077506    break;
     
    75107509
    75117510/* Line 1806 of yacc.c  */
    7512 #line 1621 "parser.yy"
     7511#line 1618 "parser.yy"
    75137512    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    75147513    break;
     
    75177516
    75187517/* Line 1806 of yacc.c  */
    7519 #line 1628 "parser.yy"
     7518#line 1625 "parser.yy"
    75207519    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    75217520    break;
     
    75247523
    75257524/* Line 1806 of yacc.c  */
    7526 #line 1630 "parser.yy"
     7525#line 1627 "parser.yy"
    75277526    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    75287527    break;
    75297528
    75307529  case 425:
     7530
     7531/* Line 1806 of yacc.c  */
     7532#line 1636 "parser.yy"
     7533    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
     7534    break;
     7535
     7536  case 426:
    75317537
    75327538/* Line 1806 of yacc.c  */
     
    75357541    break;
    75367542
    7537   case 426:
    7538 
    7539 /* Line 1806 of yacc.c  */
    7540 #line 1642 "parser.yy"
    7541     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    7542     break;
    7543 
    75447543  case 427:
    75457544
    75467545/* Line 1806 of yacc.c  */
    7547 #line 1644 "parser.yy"
     7546#line 1641 "parser.yy"
    75487547    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
    75497548    break;
     
    75527551
    75537552/* Line 1806 of yacc.c  */
    7554 #line 1654 "parser.yy"
     7553#line 1651 "parser.yy"
    75557554    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    75567555    break;
     
    75597558
    75607559/* Line 1806 of yacc.c  */
    7561 #line 1660 "parser.yy"
     7560#line 1657 "parser.yy"
    75627561    {
    75637562                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    75697568
    75707569/* Line 1806 of yacc.c  */
    7571 #line 1665 "parser.yy"
     7570#line 1662 "parser.yy"
    75727571    {
    75737572                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    75797578
    75807579/* Line 1806 of yacc.c  */
    7581 #line 1674 "parser.yy"
     7580#line 1671 "parser.yy"
    75827581    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    75837582    break;
     
    75867585
    75877586/* Line 1806 of yacc.c  */
    7588 #line 1683 "parser.yy"
     7587#line 1680 "parser.yy"
    75897588    { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
    75907589    break;
     
    75937592
    75947593/* Line 1806 of yacc.c  */
    7595 #line 1685 "parser.yy"
     7594#line 1682 "parser.yy"
    75967595    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
    75977596    break;
     
    76007599
    76017600/* Line 1806 of yacc.c  */
    7602 #line 1710 "parser.yy"
     7601#line 1707 "parser.yy"
    76037602    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    76047603    break;
     
    76077606
    76087607/* Line 1806 of yacc.c  */
    7609 #line 1718 "parser.yy"
     7608#line 1715 "parser.yy"
    76107609    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    76117610    break;
     
    76147613
    76157614/* Line 1806 of yacc.c  */
    7616 #line 1723 "parser.yy"
     7615#line 1720 "parser.yy"
    76177616    { (yyval.in) = 0; }
    76187617    break;
     
    76217620
    76227621/* Line 1806 of yacc.c  */
    7623 #line 1725 "parser.yy"
     7622#line 1722 "parser.yy"
    76247623    { (yyval.in) = (yyvsp[(2) - (2)].in); }
    76257624    break;
     
    76287627
    76297628/* Line 1806 of yacc.c  */
    7630 #line 1727 "parser.yy"
     7629#line 1724 "parser.yy"
    76317630    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); }
    76327631    break;
     
    76357634
    76367635/* Line 1806 of yacc.c  */
    7637 #line 1731 "parser.yy"
     7636#line 1728 "parser.yy"
    76387637    { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
    76397638    break;
     
    76427641
    76437642/* Line 1806 of yacc.c  */
    7644 #line 1732 "parser.yy"
     7643#line 1729 "parser.yy"
    76457644    { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
    76467645    break;
     
    76497648
    76507649/* Line 1806 of yacc.c  */
     7650#line 1734 "parser.yy"
     7651    { (yyval.in) = 0; }
     7652    break;
     7653
     7654  case 463:
     7655
     7656/* Line 1806 of yacc.c  */
     7657#line 1736 "parser.yy"
     7658    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
     7659    break;
     7660
     7661  case 464:
     7662
     7663/* Line 1806 of yacc.c  */
    76517664#line 1737 "parser.yy"
    7652     { (yyval.in) = 0; }
    7653     break;
    7654 
    7655   case 463:
     7665    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link( (yyvsp[(3) - (3)].in) ) ); }
     7666    break;
     7667
     7668  case 465:
    76567669
    76577670/* Line 1806 of yacc.c  */
    76587671#line 1739 "parser.yy"
    7659     { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
    7660     break;
    7661 
    7662   case 464:
    7663 
    7664 /* Line 1806 of yacc.c  */
    7665 #line 1740 "parser.yy"
    7666     { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link( (yyvsp[(3) - (3)].in) ) ); }
    7667     break;
    7668 
    7669   case 465:
    7670 
    7671 /* Line 1806 of yacc.c  */
    7672 #line 1742 "parser.yy"
    76737672    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_link( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
    76747673    break;
     
    76777676
    76787677/* Line 1806 of yacc.c  */
    7679 #line 1758 "parser.yy"
     7678#line 1755 "parser.yy"
    76807679    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (2)].tok) ); }
    76817680    break;
     
    76847683
    76857684/* Line 1806 of yacc.c  */
    7686 #line 1764 "parser.yy"
     7685#line 1761 "parser.yy"
    76877686    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) )); }
    76887687    break;
     
    76917690
    76927691/* Line 1806 of yacc.c  */
    7693 #line 1772 "parser.yy"
     7692#line 1769 "parser.yy"
    76947693    { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(1) - (1)].tok) ) ); }
    76957694    break;
     
    76987697
    76997698/* Line 1806 of yacc.c  */
     7699#line 1771 "parser.yy"
     7700    { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(2) - (2)].tok) ) ); }
     7701    break;
     7702
     7703  case 472:
     7704
     7705/* Line 1806 of yacc.c  */
    77007706#line 1774 "parser.yy"
    7701     { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(2) - (2)].tok) ) ); }
    7702     break;
    7703 
    7704   case 472:
    7705 
    7706 /* Line 1806 of yacc.c  */
    7707 #line 1777 "parser.yy"
    77087707    { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); }
    77097708    break;
     
    77127711
    77137712/* Line 1806 of yacc.c  */
    7714 #line 1779 "parser.yy"
     7713#line 1776 "parser.yy"
    77157714    { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); }
    77167715    break;
     
    77197718
    77207719/* Line 1806 of yacc.c  */
    7721 #line 1781 "parser.yy"
     7720#line 1778 "parser.yy"
    77227721    { (yyval.en) = new DesignatorNode( new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ), true ); }
    77237722    break;
     
    77267725
    77277726/* Line 1806 of yacc.c  */
    7728 #line 1783 "parser.yy"
     7727#line 1780 "parser.yy"
    77297728    { (yyval.en) = new DesignatorNode( (yyvsp[(4) - (6)].en) ); }
    77307729    break;
     
    77337732
    77347733/* Line 1806 of yacc.c  */
    7735 #line 1807 "parser.yy"
     7734#line 1804 "parser.yy"
    77367735    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    77377736    break;
     
    77407739
    77417740/* Line 1806 of yacc.c  */
    7742 #line 1809 "parser.yy"
     7741#line 1806 "parser.yy"
    77437742    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    77447743    break;
     
    77477746
    77487747/* Line 1806 of yacc.c  */
    7749 #line 1811 "parser.yy"
     7748#line 1808 "parser.yy"
    77507749    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    77517750    break;
     
    77547753
    77557754/* Line 1806 of yacc.c  */
    7756 #line 1817 "parser.yy"
     7755#line 1814 "parser.yy"
    77577756    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    77587757    break;
     
    77617760
    77627761/* Line 1806 of yacc.c  */
    7763 #line 1819 "parser.yy"
     7762#line 1816 "parser.yy"
    77647763    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    77657764    break;
     
    77687767
    77697768/* Line 1806 of yacc.c  */
    7770 #line 1824 "parser.yy"
     7769#line 1821 "parser.yy"
    77717770    { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    77727771    break;
     
    77757774
    77767775/* Line 1806 of yacc.c  */
    7777 #line 1830 "parser.yy"
     7776#line 1827 "parser.yy"
    77787777    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
    77797778    break;
     
    77827781
    77837782/* Line 1806 of yacc.c  */
    7784 #line 1835 "parser.yy"
     7783#line 1832 "parser.yy"
    77857784    { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
    77867785    break;
     
    77897788
    77907789/* Line 1806 of yacc.c  */
    7791 #line 1837 "parser.yy"
     7790#line 1834 "parser.yy"
    77927791    { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
    77937792    break;
     
    77967795
    77977796/* Line 1806 of yacc.c  */
    7798 #line 1843 "parser.yy"
     7797#line 1840 "parser.yy"
    77997798    { (yyval.tclass) = DeclarationNode::Type; }
    78007799    break;
     
    78037802
    78047803/* Line 1806 of yacc.c  */
    7805 #line 1845 "parser.yy"
     7804#line 1842 "parser.yy"
    78067805    { (yyval.tclass) = DeclarationNode::Ftype; }
    78077806    break;
     
    78107809
    78117810/* Line 1806 of yacc.c  */
    7812 #line 1847 "parser.yy"
     7811#line 1844 "parser.yy"
    78137812    { (yyval.tclass) = DeclarationNode::Dtype; }
    78147813    break;
     
    78177816
    78187817/* Line 1806 of yacc.c  */
    7819 #line 1852 "parser.yy"
     7818#line 1849 "parser.yy"
    78207819    { (yyval.decl) = 0; }
    78217820    break;
     
    78247823
    78257824/* Line 1806 of yacc.c  */
    7826 #line 1854 "parser.yy"
     7825#line 1851 "parser.yy"
    78277826    { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
    78287827    break;
     
    78317830
    78327831/* Line 1806 of yacc.c  */
    7833 #line 1859 "parser.yy"
     7832#line 1856 "parser.yy"
    78347833    {
    78357834                        typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) );
     
    78417840
    78427841/* Line 1806 of yacc.c  */
    7843 #line 1864 "parser.yy"
     7842#line 1861 "parser.yy"
    78447843    { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
    78457844    break;
     
    78487847
    78497848/* Line 1806 of yacc.c  */
    7850 #line 1866 "parser.yy"
     7849#line 1863 "parser.yy"
    78517850    { (yyval.decl) = 0; }
    78527851    break;
     
    78557854
    78567855/* Line 1806 of yacc.c  */
     7856#line 1868 "parser.yy"
     7857    { (yyval.en) = new TypeValueNode( (yyvsp[(1) - (1)].decl) ); }
     7858    break;
     7859
     7860  case 499:
     7861
     7862/* Line 1806 of yacc.c  */
    78577863#line 1871 "parser.yy"
    7858     { (yyval.en) = new TypeValueNode( (yyvsp[(1) - (1)].decl) ); }
    7859     break;
    7860 
    7861   case 499:
    7862 
    7863 /* Line 1806 of yacc.c  */
    7864 #line 1874 "parser.yy"
    78657864    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( new TypeValueNode( (yyvsp[(3) - (3)].decl) ))); }
    78667865    break;
     
    78697868
    78707869/* Line 1806 of yacc.c  */
    7871 #line 1876 "parser.yy"
     7870#line 1873 "parser.yy"
    78727871    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); }
    78737872    break;
     
    78767875
    78777876/* Line 1806 of yacc.c  */
    7878 #line 1881 "parser.yy"
     7877#line 1878 "parser.yy"
    78797878    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    78807879    break;
     
    78837882
    78847883/* Line 1806 of yacc.c  */
    7885 #line 1883 "parser.yy"
     7884#line 1880 "parser.yy"
    78867885    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
    78877886    break;
     
    78907889
    78917890/* Line 1806 of yacc.c  */
    7892 #line 1885 "parser.yy"
     7891#line 1882 "parser.yy"
    78937892    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
    78947893    break;
     
    78977896
    78987897/* Line 1806 of yacc.c  */
    7899 #line 1890 "parser.yy"
     7898#line 1887 "parser.yy"
    79007899    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
    79017900    break;
     
    79047903
    79057904/* Line 1806 of yacc.c  */
    7906 #line 1892 "parser.yy"
     7905#line 1889 "parser.yy"
    79077906    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
    79087907    break;
     
    79117910
    79127911/* Line 1806 of yacc.c  */
    7913 #line 1897 "parser.yy"
     7912#line 1894 "parser.yy"
    79147913    {
    79157914                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD );
     
    79217920
    79227921/* Line 1806 of yacc.c  */
    7923 #line 1902 "parser.yy"
     7922#line 1899 "parser.yy"
    79247923    {
    79257924                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG );
     
    79317930
    79327931/* Line 1806 of yacc.c  */
    7933 #line 1910 "parser.yy"
     7932#line 1907 "parser.yy"
    79347933    {
    79357934                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID );
     
    79417940
    79427941/* Line 1806 of yacc.c  */
    7943 #line 1915 "parser.yy"
     7942#line 1912 "parser.yy"
    79447943    {
    79457944                        typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) );
     
    79517950
    79527951/* Line 1806 of yacc.c  */
    7953 #line 1920 "parser.yy"
     7952#line 1917 "parser.yy"
    79547953    {
    79557954                        typedefTable.leaveTrait();
     
    79627961
    79637962/* Line 1806 of yacc.c  */
    7964 #line 1930 "parser.yy"
     7963#line 1927 "parser.yy"
    79657964    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    79667965    break;
     
    79697968
    79707969/* Line 1806 of yacc.c  */
    7971 #line 1940 "parser.yy"
     7970#line 1937 "parser.yy"
    79727971    {
    79737972                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    79797978
    79807979/* Line 1806 of yacc.c  */
    7981 #line 1945 "parser.yy"
     7980#line 1942 "parser.yy"
    79827981    {
    79837982                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    79897988
    79907989/* Line 1806 of yacc.c  */
    7991 #line 1950 "parser.yy"
     7990#line 1947 "parser.yy"
    79927991    {
    79937992                        typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    79997998
    80007999/* Line 1806 of yacc.c  */
    8001 #line 1958 "parser.yy"
     8000#line 1955 "parser.yy"
    80028001    {
    80038002                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    80098008
    80108009/* Line 1806 of yacc.c  */
    8011 #line 1963 "parser.yy"
     8010#line 1960 "parser.yy"
    80128011    {
    80138012                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    80198018
    80208019/* Line 1806 of yacc.c  */
    8021 #line 1973 "parser.yy"
     8020#line 1970 "parser.yy"
    80228021    {}
    80238022    break;
     
    80268025
    80278026/* Line 1806 of yacc.c  */
    8028 #line 1975 "parser.yy"
     8027#line 1972 "parser.yy"
    80298028    {
    80308029                        if ( theTree ) {
     
    80398038
    80408039/* Line 1806 of yacc.c  */
    8041 #line 1987 "parser.yy"
     8040#line 1984 "parser.yy"
    80428041    { (yyval.decl) = ( (yyvsp[(1) - (3)].decl) != NULL ) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
    80438042    break;
     
    80468045
    80478046/* Line 1806 of yacc.c  */
    8048 #line 1992 "parser.yy"
     8047#line 1989 "parser.yy"
    80498048    { (yyval.decl) = 0; }
    80508049    break;
     
    80538052
    80548053/* Line 1806 of yacc.c  */
    8055 #line 2000 "parser.yy"
     8054#line 1997 "parser.yy"
    80568055    {}
    80578056    break;
     
    80608059
    80618060/* Line 1806 of yacc.c  */
    8062 #line 2002 "parser.yy"
     8061#line 1999 "parser.yy"
    80638062    {
    80648063                        linkageStack.push( linkage );
     
    80708069
    80718070/* Line 1806 of yacc.c  */
    8072 #line 2007 "parser.yy"
     8071#line 2004 "parser.yy"
    80738072    {
    80748073                        linkage = linkageStack.top();
     
    80818080
    80828081/* Line 1806 of yacc.c  */
    8083 #line 2013 "parser.yy"
     8082#line 2010 "parser.yy"
    80848083    {   // mark all fields in list
    80858084                        for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_link() )
     
    80928091
    80938092/* Line 1806 of yacc.c  */
    8094 #line 2028 "parser.yy"
     8093#line 2025 "parser.yy"
    80958094    {
    80968095                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    81038102
    81048103/* Line 1806 of yacc.c  */
    8105 #line 2034 "parser.yy"
     8104#line 2031 "parser.yy"
    81068105    {
    81078106                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    81148113
    81158114/* Line 1806 of yacc.c  */
    8116 #line 2043 "parser.yy"
     8115#line 2040 "parser.yy"
    81178116    {
    81188117                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    81258124
    81268125/* Line 1806 of yacc.c  */
    8127 #line 2049 "parser.yy"
     8126#line 2046 "parser.yy"
    81288127    {
    81298128                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    81368135
    81378136/* Line 1806 of yacc.c  */
    8138 #line 2055 "parser.yy"
     8137#line 2052 "parser.yy"
    81398138    {
    81408139                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    81478146
    81488147/* Line 1806 of yacc.c  */
    8149 #line 2061 "parser.yy"
     8148#line 2058 "parser.yy"
    81508149    {
    81518150                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    81588157
    81598158/* Line 1806 of yacc.c  */
    8160 #line 2067 "parser.yy"
     8159#line 2064 "parser.yy"
    81618160    {
    81628161                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    81698168
    81708169/* Line 1806 of yacc.c  */
    8171 #line 2075 "parser.yy"
     8170#line 2072 "parser.yy"
    81728171    {
    81738172                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    81808179
    81818180/* Line 1806 of yacc.c  */
    8182 #line 2081 "parser.yy"
     8181#line 2078 "parser.yy"
    81838182    {
    81848183                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    81918190
    81928191/* Line 1806 of yacc.c  */
    8193 #line 2089 "parser.yy"
     8192#line 2086 "parser.yy"
    81948193    {
    81958194                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    82028201
    82038202/* Line 1806 of yacc.c  */
    8204 #line 2095 "parser.yy"
     8203#line 2092 "parser.yy"
    82058204    {
    82068205                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    82138212
    82148213/* Line 1806 of yacc.c  */
    8215 #line 2110 "parser.yy"
     8214#line 2107 "parser.yy"
    82168215    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    82178216    break;
     
    82208219
    82218220/* Line 1806 of yacc.c  */
    8222 #line 2120 "parser.yy"
     8221#line 2117 "parser.yy"
    82238222    { (yyval.decl) = 0; }
    82248223    break;
     
    82278226
    82288227/* Line 1806 of yacc.c  */
    8229 #line 2127 "parser.yy"
     8228#line 2124 "parser.yy"
    82308229    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    82318230    break;
     
    82348233
    82358234/* Line 1806 of yacc.c  */
    8236 #line 2133 "parser.yy"
     8235#line 2130 "parser.yy"
    82378236    { (yyval.decl) = 0; }
    82388237    break;
    82398238
    82408239  case 560:
     8240
     8241/* Line 1806 of yacc.c  */
     8242#line 2145 "parser.yy"
     8243    {}
     8244    break;
     8245
     8246  case 561:
     8247
     8248/* Line 1806 of yacc.c  */
     8249#line 2146 "parser.yy"
     8250    {}
     8251    break;
     8252
     8253  case 562:
     8254
     8255/* Line 1806 of yacc.c  */
     8256#line 2147 "parser.yy"
     8257    {}
     8258    break;
     8259
     8260  case 563:
    82418261
    82428262/* Line 1806 of yacc.c  */
     
    82458265    break;
    82468266
    8247   case 561:
    8248 
    8249 /* Line 1806 of yacc.c  */
    8250 #line 2149 "parser.yy"
    8251     {}
    8252     break;
    8253 
    8254   case 562:
    8255 
    8256 /* Line 1806 of yacc.c  */
    8257 #line 2150 "parser.yy"
    8258     {}
    8259     break;
    8260 
    8261   case 563:
    8262 
    8263 /* Line 1806 of yacc.c  */
    8264 #line 2151 "parser.yy"
    8265     {}
    8266     break;
    8267 
    82688267  case 564:
     8268
     8269/* Line 1806 of yacc.c  */
     8270#line 2183 "parser.yy"
     8271    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8272    break;
     8273
     8274  case 566:
    82698275
    82708276/* Line 1806 of yacc.c  */
     
    82738279    break;
    82748280
    8275   case 566:
    8276 
    8277 /* Line 1806 of yacc.c  */
    8278 #line 2189 "parser.yy"
     8281  case 567:
     8282
     8283/* Line 1806 of yacc.c  */
     8284#line 2188 "parser.yy"
    82798285    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82808286    break;
    82818287
    8282   case 567:
    8283 
    8284 /* Line 1806 of yacc.c  */
    8285 #line 2191 "parser.yy"
    8286     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8287     break;
    8288 
    82898288  case 568:
    82908289
    82918290/* Line 1806 of yacc.c  */
    8292 #line 2196 "parser.yy"
     8291#line 2193 "parser.yy"
    82938292    {
    82948293                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    83008299
    83018300/* Line 1806 of yacc.c  */
    8302 #line 2201 "parser.yy"
     8301#line 2198 "parser.yy"
    83038302    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83048303    break;
     
    83078306
    83088307/* Line 1806 of yacc.c  */
    8309 #line 2206 "parser.yy"
     8308#line 2203 "parser.yy"
    83108309    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    83118310    break;
     
    83148313
    83158314/* Line 1806 of yacc.c  */
    8316 #line 2208 "parser.yy"
     8315#line 2205 "parser.yy"
    83178316    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    83188317    break;
     
    83218320
    83228321/* Line 1806 of yacc.c  */
    8323 #line 2210 "parser.yy"
     8322#line 2207 "parser.yy"
    83248323    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83258324    break;
     
    83288327
    83298328/* Line 1806 of yacc.c  */
    8330 #line 2215 "parser.yy"
     8329#line 2212 "parser.yy"
    83318330    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    83328331    break;
     
    83358334
    83368335/* Line 1806 of yacc.c  */
    8337 #line 2217 "parser.yy"
     8336#line 2214 "parser.yy"
    83388337    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    83398338    break;
     
    83428341
    83438342/* Line 1806 of yacc.c  */
    8344 #line 2219 "parser.yy"
     8343#line 2216 "parser.yy"
    83458344    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    83468345    break;
     
    83498348
    83508349/* Line 1806 of yacc.c  */
    8351 #line 2221 "parser.yy"
     8350#line 2218 "parser.yy"
    83528351    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83538352    break;
     
    83568355
    83578356/* Line 1806 of yacc.c  */
    8358 #line 2226 "parser.yy"
     8357#line 2223 "parser.yy"
    83598358    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    83608359    break;
     
    83638362
    83648363/* Line 1806 of yacc.c  */
    8365 #line 2228 "parser.yy"
     8364#line 2225 "parser.yy"
    83668365    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83678366    break;
    83688367
    83698368  case 579:
     8369
     8370/* Line 1806 of yacc.c  */
     8371#line 2234 "parser.yy"
     8372    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8373    break;
     8374
     8375  case 581:
    83708376
    83718377/* Line 1806 of yacc.c  */
     
    83748380    break;
    83758381
    8376   case 581:
    8377 
    8378 /* Line 1806 of yacc.c  */
    8379 #line 2240 "parser.yy"
     8382  case 582:
     8383
     8384/* Line 1806 of yacc.c  */
     8385#line 2242 "parser.yy"
     8386    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8387    break;
     8388
     8389  case 583:
     8390
     8391/* Line 1806 of yacc.c  */
     8392#line 2244 "parser.yy"
     8393    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8394    break;
     8395
     8396  case 584:
     8397
     8398/* Line 1806 of yacc.c  */
     8399#line 2246 "parser.yy"
     8400    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8401    break;
     8402
     8403  case 585:
     8404
     8405/* Line 1806 of yacc.c  */
     8406#line 2251 "parser.yy"
     8407    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8408    break;
     8409
     8410  case 586:
     8411
     8412/* Line 1806 of yacc.c  */
     8413#line 2253 "parser.yy"
     8414    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8415    break;
     8416
     8417  case 587:
     8418
     8419/* Line 1806 of yacc.c  */
     8420#line 2255 "parser.yy"
     8421    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8422    break;
     8423
     8424  case 588:
     8425
     8426/* Line 1806 of yacc.c  */
     8427#line 2260 "parser.yy"
     8428    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8429    break;
     8430
     8431  case 589:
     8432
     8433/* Line 1806 of yacc.c  */
     8434#line 2262 "parser.yy"
     8435    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8436    break;
     8437
     8438  case 590:
     8439
     8440/* Line 1806 of yacc.c  */
     8441#line 2264 "parser.yy"
     8442    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8443    break;
     8444
     8445  case 594:
     8446
     8447/* Line 1806 of yacc.c  */
     8448#line 2279 "parser.yy"
     8449    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
     8450    break;
     8451
     8452  case 595:
     8453
     8454/* Line 1806 of yacc.c  */
     8455#line 2281 "parser.yy"
     8456    { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
     8457    break;
     8458
     8459  case 596:
     8460
     8461/* Line 1806 of yacc.c  */
     8462#line 2283 "parser.yy"
     8463    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8464    break;
     8465
     8466  case 597:
     8467
     8468/* Line 1806 of yacc.c  */
     8469#line 2288 "parser.yy"
     8470    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8471    break;
     8472
     8473  case 598:
     8474
     8475/* Line 1806 of yacc.c  */
     8476#line 2290 "parser.yy"
     8477    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8478    break;
     8479
     8480  case 599:
     8481
     8482/* Line 1806 of yacc.c  */
     8483#line 2292 "parser.yy"
     8484    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8485    break;
     8486
     8487  case 600:
     8488
     8489/* Line 1806 of yacc.c  */
     8490#line 2297 "parser.yy"
     8491    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8492    break;
     8493
     8494  case 601:
     8495
     8496/* Line 1806 of yacc.c  */
     8497#line 2299 "parser.yy"
     8498    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8499    break;
     8500
     8501  case 602:
     8502
     8503/* Line 1806 of yacc.c  */
     8504#line 2301 "parser.yy"
     8505    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8506    break;
     8507
     8508  case 603:
     8509
     8510/* Line 1806 of yacc.c  */
     8511#line 2316 "parser.yy"
    83808512    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83818513    break;
    83828514
    8383   case 582:
    8384 
    8385 /* Line 1806 of yacc.c  */
    8386 #line 2245 "parser.yy"
    8387     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8388     break;
    8389 
    8390   case 583:
    8391 
    8392 /* Line 1806 of yacc.c  */
    8393 #line 2247 "parser.yy"
    8394     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8395     break;
    8396 
    8397   case 584:
    8398 
    8399 /* Line 1806 of yacc.c  */
    8400 #line 2249 "parser.yy"
    8401     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8402     break;
    8403 
    8404   case 585:
    8405 
    8406 /* Line 1806 of yacc.c  */
    8407 #line 2254 "parser.yy"
    8408     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8409     break;
    8410 
    8411   case 586:
    8412 
    8413 /* Line 1806 of yacc.c  */
    8414 #line 2256 "parser.yy"
    8415     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8416     break;
    8417 
    8418   case 587:
    8419 
    8420 /* Line 1806 of yacc.c  */
    8421 #line 2258 "parser.yy"
    8422     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8423     break;
    8424 
    8425   case 588:
    8426 
    8427 /* Line 1806 of yacc.c  */
    8428 #line 2263 "parser.yy"
    8429     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8430     break;
    8431 
    8432   case 589:
    8433 
    8434 /* Line 1806 of yacc.c  */
    8435 #line 2265 "parser.yy"
    8436     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8437     break;
    8438 
    8439   case 590:
    8440 
    8441 /* Line 1806 of yacc.c  */
    8442 #line 2267 "parser.yy"
    8443     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8444     break;
    8445 
    8446   case 594:
    8447 
    8448 /* Line 1806 of yacc.c  */
    8449 #line 2282 "parser.yy"
    8450     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
    8451     break;
    8452 
    8453   case 595:
    8454 
    8455 /* Line 1806 of yacc.c  */
    8456 #line 2284 "parser.yy"
    8457     { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
    8458     break;
    8459 
    8460   case 596:
    8461 
    8462 /* Line 1806 of yacc.c  */
    8463 #line 2286 "parser.yy"
    8464     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8465     break;
    8466 
    8467   case 597:
    8468 
    8469 /* Line 1806 of yacc.c  */
    8470 #line 2291 "parser.yy"
    8471     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8472     break;
    8473 
    8474   case 598:
    8475 
    8476 /* Line 1806 of yacc.c  */
    8477 #line 2293 "parser.yy"
    8478     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8479     break;
    8480 
    8481   case 599:
    8482 
    8483 /* Line 1806 of yacc.c  */
    8484 #line 2295 "parser.yy"
    8485     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8486     break;
    8487 
    8488   case 600:
    8489 
    8490 /* Line 1806 of yacc.c  */
    8491 #line 2300 "parser.yy"
    8492     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8493     break;
    8494 
    8495   case 601:
    8496 
    8497 /* Line 1806 of yacc.c  */
    8498 #line 2302 "parser.yy"
    8499     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8500     break;
    8501 
    8502   case 602:
    8503 
    8504 /* Line 1806 of yacc.c  */
    8505 #line 2304 "parser.yy"
    8506     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8507     break;
    8508 
    8509   case 603:
     8515  case 605:
    85108516
    85118517/* Line 1806 of yacc.c  */
     
    85148520    break;
    85158521
    8516   case 605:
    8517 
    8518 /* Line 1806 of yacc.c  */
    8519 #line 2322 "parser.yy"
     8522  case 606:
     8523
     8524/* Line 1806 of yacc.c  */
     8525#line 2321 "parser.yy"
    85208526    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    85218527    break;
    85228528
    8523   case 606:
    8524 
    8525 /* Line 1806 of yacc.c  */
    8526 #line 2324 "parser.yy"
     8529  case 608:
     8530
     8531/* Line 1806 of yacc.c  */
     8532#line 2327 "parser.yy"
     8533    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8534    break;
     8535
     8536  case 609:
     8537
     8538/* Line 1806 of yacc.c  */
     8539#line 2332 "parser.yy"
     8540    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8541    break;
     8542
     8543  case 610:
     8544
     8545/* Line 1806 of yacc.c  */
     8546#line 2334 "parser.yy"
     8547    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8548    break;
     8549
     8550  case 611:
     8551
     8552/* Line 1806 of yacc.c  */
     8553#line 2336 "parser.yy"
     8554    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8555    break;
     8556
     8557  case 612:
     8558
     8559/* Line 1806 of yacc.c  */
     8560#line 2341 "parser.yy"
     8561    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8562    break;
     8563
     8564  case 613:
     8565
     8566/* Line 1806 of yacc.c  */
     8567#line 2343 "parser.yy"
     8568    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8569    break;
     8570
     8571  case 614:
     8572
     8573/* Line 1806 of yacc.c  */
     8574#line 2345 "parser.yy"
     8575    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8576    break;
     8577
     8578  case 615:
     8579
     8580/* Line 1806 of yacc.c  */
     8581#line 2347 "parser.yy"
     8582    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8583    break;
     8584
     8585  case 616:
     8586
     8587/* Line 1806 of yacc.c  */
     8588#line 2352 "parser.yy"
     8589    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8590    break;
     8591
     8592  case 617:
     8593
     8594/* Line 1806 of yacc.c  */
     8595#line 2354 "parser.yy"
     8596    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8597    break;
     8598
     8599  case 618:
     8600
     8601/* Line 1806 of yacc.c  */
     8602#line 2356 "parser.yy"
     8603    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8604    break;
     8605
     8606  case 619:
     8607
     8608/* Line 1806 of yacc.c  */
     8609#line 2366 "parser.yy"
    85278610    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    85288611    break;
    85298612
    8530   case 608:
    8531 
    8532 /* Line 1806 of yacc.c  */
    8533 #line 2330 "parser.yy"
    8534     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8535     break;
    8536 
    8537   case 609:
    8538 
    8539 /* Line 1806 of yacc.c  */
    8540 #line 2335 "parser.yy"
    8541     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8542     break;
    8543 
    8544   case 610:
    8545 
    8546 /* Line 1806 of yacc.c  */
    8547 #line 2337 "parser.yy"
    8548     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8549     break;
    8550 
    8551   case 611:
    8552 
    8553 /* Line 1806 of yacc.c  */
    8554 #line 2339 "parser.yy"
    8555     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8556     break;
    8557 
    8558   case 612:
    8559 
    8560 /* Line 1806 of yacc.c  */
    8561 #line 2344 "parser.yy"
    8562     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8563     break;
    8564 
    8565   case 613:
    8566 
    8567 /* Line 1806 of yacc.c  */
    8568 #line 2346 "parser.yy"
    8569     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8570     break;
    8571 
    8572   case 614:
    8573 
    8574 /* Line 1806 of yacc.c  */
    8575 #line 2348 "parser.yy"
    8576     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8577     break;
    8578 
    8579   case 615:
    8580 
    8581 /* Line 1806 of yacc.c  */
    8582 #line 2350 "parser.yy"
    8583     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8584     break;
    8585 
    8586   case 616:
    8587 
    8588 /* Line 1806 of yacc.c  */
    8589 #line 2355 "parser.yy"
    8590     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8591     break;
    8592 
    8593   case 617:
    8594 
    8595 /* Line 1806 of yacc.c  */
    8596 #line 2357 "parser.yy"
    8597     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8598     break;
    8599 
    8600   case 618:
    8601 
    8602 /* Line 1806 of yacc.c  */
    8603 #line 2359 "parser.yy"
    8604     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8605     break;
    8606 
    8607   case 619:
     8613  case 621:
    86088614
    86098615/* Line 1806 of yacc.c  */
     
    86128618    break;
    86138619
    8614   case 621:
    8615 
    8616 /* Line 1806 of yacc.c  */
    8617 #line 2372 "parser.yy"
     8620  case 622:
     8621
     8622/* Line 1806 of yacc.c  */
     8623#line 2371 "parser.yy"
    86188624    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    86198625    break;
    86208626
    8621   case 622:
    8622 
    8623 /* Line 1806 of yacc.c  */
    8624 #line 2374 "parser.yy"
     8627  case 623:
     8628
     8629/* Line 1806 of yacc.c  */
     8630#line 2376 "parser.yy"
     8631    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8632    break;
     8633
     8634  case 624:
     8635
     8636/* Line 1806 of yacc.c  */
     8637#line 2378 "parser.yy"
     8638    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8639    break;
     8640
     8641  case 625:
     8642
     8643/* Line 1806 of yacc.c  */
     8644#line 2380 "parser.yy"
     8645    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8646    break;
     8647
     8648  case 626:
     8649
     8650/* Line 1806 of yacc.c  */
     8651#line 2385 "parser.yy"
     8652    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8653    break;
     8654
     8655  case 627:
     8656
     8657/* Line 1806 of yacc.c  */
     8658#line 2387 "parser.yy"
     8659    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8660    break;
     8661
     8662  case 628:
     8663
     8664/* Line 1806 of yacc.c  */
     8665#line 2389 "parser.yy"
     8666    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8667    break;
     8668
     8669  case 629:
     8670
     8671/* Line 1806 of yacc.c  */
     8672#line 2391 "parser.yy"
     8673    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8674    break;
     8675
     8676  case 630:
     8677
     8678/* Line 1806 of yacc.c  */
     8679#line 2396 "parser.yy"
     8680    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8681    break;
     8682
     8683  case 631:
     8684
     8685/* Line 1806 of yacc.c  */
     8686#line 2398 "parser.yy"
     8687    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8688    break;
     8689
     8690  case 632:
     8691
     8692/* Line 1806 of yacc.c  */
     8693#line 2400 "parser.yy"
     8694    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8695    break;
     8696
     8697  case 633:
     8698
     8699/* Line 1806 of yacc.c  */
     8700#line 2431 "parser.yy"
    86258701    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    86268702    break;
    86278703
    8628   case 623:
    8629 
    8630 /* Line 1806 of yacc.c  */
    8631 #line 2379 "parser.yy"
    8632     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8633     break;
    8634 
    8635   case 624:
    8636 
    8637 /* Line 1806 of yacc.c  */
    8638 #line 2381 "parser.yy"
    8639     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8640     break;
    8641 
    8642   case 625:
    8643 
    8644 /* Line 1806 of yacc.c  */
    8645 #line 2383 "parser.yy"
    8646     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8647     break;
    8648 
    8649   case 626:
    8650 
    8651 /* Line 1806 of yacc.c  */
    8652 #line 2388 "parser.yy"
    8653     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8654     break;
    8655 
    8656   case 627:
    8657 
    8658 /* Line 1806 of yacc.c  */
    8659 #line 2390 "parser.yy"
    8660     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8661     break;
    8662 
    8663   case 628:
    8664 
    8665 /* Line 1806 of yacc.c  */
    8666 #line 2392 "parser.yy"
    8667     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8668     break;
    8669 
    8670   case 629:
    8671 
    8672 /* Line 1806 of yacc.c  */
    8673 #line 2394 "parser.yy"
    8674     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8675     break;
    8676 
    8677   case 630:
    8678 
    8679 /* Line 1806 of yacc.c  */
    8680 #line 2399 "parser.yy"
    8681     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8682     break;
    8683 
    8684   case 631:
    8685 
    8686 /* Line 1806 of yacc.c  */
    8687 #line 2401 "parser.yy"
    8688     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8689     break;
    8690 
    8691   case 632:
    8692 
    8693 /* Line 1806 of yacc.c  */
    8694 #line 2403 "parser.yy"
    8695     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8696     break;
    8697 
    8698   case 633:
     8704  case 635:
    86998705
    87008706/* Line 1806 of yacc.c  */
     
    87038709    break;
    87048710
    8705   case 635:
    8706 
    8707 /* Line 1806 of yacc.c  */
    8708 #line 2437 "parser.yy"
     8711  case 636:
     8712
     8713/* Line 1806 of yacc.c  */
     8714#line 2436 "parser.yy"
    87098715    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    87108716    break;
    87118717
    8712   case 636:
    8713 
    8714 /* Line 1806 of yacc.c  */
    8715 #line 2439 "parser.yy"
    8716     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8717     break;
    8718 
    87198718  case 637:
    87208719
    87218720/* Line 1806 of yacc.c  */
    8722 #line 2444 "parser.yy"
     8721#line 2441 "parser.yy"
    87238722    {
    87248723                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    87308729
    87318730/* Line 1806 of yacc.c  */
    8732 #line 2449 "parser.yy"
     8731#line 2446 "parser.yy"
    87338732    {
    87348733                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    87408739
    87418740/* Line 1806 of yacc.c  */
    8742 #line 2457 "parser.yy"
     8741#line 2454 "parser.yy"
    87438742    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    87448743    break;
     
    87478746
    87488747/* Line 1806 of yacc.c  */
    8749 #line 2459 "parser.yy"
     8748#line 2456 "parser.yy"
    87508749    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    87518750    break;
     
    87548753
    87558754/* Line 1806 of yacc.c  */
    8756 #line 2461 "parser.yy"
     8755#line 2458 "parser.yy"
    87578756    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87588757    break;
     
    87618760
    87628761/* Line 1806 of yacc.c  */
    8763 #line 2466 "parser.yy"
     8762#line 2463 "parser.yy"
    87648763    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    87658764    break;
     
    87688767
    87698768/* Line 1806 of yacc.c  */
    8770 #line 2468 "parser.yy"
     8769#line 2465 "parser.yy"
    87718770    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    87728771    break;
     
    87758774
    87768775/* Line 1806 of yacc.c  */
    8777 #line 2473 "parser.yy"
     8776#line 2470 "parser.yy"
    87788777    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    87798778    break;
     
    87828781
    87838782/* Line 1806 of yacc.c  */
    8784 #line 2475 "parser.yy"
     8783#line 2472 "parser.yy"
    87858784    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    87868785    break;
     
    87898788
    87908789/* Line 1806 of yacc.c  */
    8791 #line 2490 "parser.yy"
     8790#line 2487 "parser.yy"
    87928791    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    87938792    break;
     
    87968795
    87978796/* Line 1806 of yacc.c  */
    8798 #line 2492 "parser.yy"
     8797#line 2489 "parser.yy"
    87998798    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    88008799    break;
     
    88038802
    88048803/* Line 1806 of yacc.c  */
    8805 #line 2497 "parser.yy"
     8804#line 2494 "parser.yy"
    88068805    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    88078806    break;
     
    88108809
    88118810/* Line 1806 of yacc.c  */
    8812 #line 2499 "parser.yy"
     8811#line 2496 "parser.yy"
    88138812    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    88148813    break;
     
    88178816
    88188817/* Line 1806 of yacc.c  */
    8819 #line 2501 "parser.yy"
     8818#line 2498 "parser.yy"
    88208819    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    88218820    break;
     
    88248823
    88258824/* Line 1806 of yacc.c  */
    8826 #line 2503 "parser.yy"
     8825#line 2500 "parser.yy"
    88278826    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    88288827    break;
     
    88318830
    88328831/* Line 1806 of yacc.c  */
    8833 #line 2505 "parser.yy"
     8832#line 2502 "parser.yy"
    88348833    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    88358834    break;
     
    88388837
    88398838/* Line 1806 of yacc.c  */
    8840 #line 2511 "parser.yy"
     8839#line 2508 "parser.yy"
    88418840    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    88428841    break;
     
    88458844
    88468845/* Line 1806 of yacc.c  */
    8847 #line 2513 "parser.yy"
     8846#line 2510 "parser.yy"
    88488847    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    88498848    break;
     
    88528851
    88538852/* Line 1806 of yacc.c  */
    8854 #line 2515 "parser.yy"
     8853#line 2512 "parser.yy"
    88558854    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    88568855    break;
     
    88598858
    88608859/* Line 1806 of yacc.c  */
    8861 #line 2520 "parser.yy"
     8860#line 2517 "parser.yy"
    88628861    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    88638862    break;
     
    88668865
    88678866/* Line 1806 of yacc.c  */
    8868 #line 2522 "parser.yy"
     8867#line 2519 "parser.yy"
    88698868    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    88708869    break;
     
    88738872
    88748873/* Line 1806 of yacc.c  */
    8875 #line 2524 "parser.yy"
     8874#line 2521 "parser.yy"
    88768875    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    88778876    break;
     
    88808879
    88818880/* Line 1806 of yacc.c  */
    8882 #line 2530 "parser.yy"
     8881#line 2527 "parser.yy"
    88838882    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    88848883    break;
     
    88878886
    88888887/* Line 1806 of yacc.c  */
    8889 #line 2532 "parser.yy"
     8888#line 2529 "parser.yy"
    88908889    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
    88918890    break;
     
    88948893
    88958894/* Line 1806 of yacc.c  */
    8896 #line 2538 "parser.yy"
     8895#line 2535 "parser.yy"
    88978896    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
    88988897    break;
     
    89018900
    89028901/* Line 1806 of yacc.c  */
    8903 #line 2540 "parser.yy"
     8902#line 2537 "parser.yy"
    89048903    { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
    89058904    break;
     
    89088907
    89098908/* Line 1806 of yacc.c  */
    8910 #line 2542 "parser.yy"
     8909#line 2539 "parser.yy"
    89118910    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
    89128911    break;
     
    89158914
    89168915/* Line 1806 of yacc.c  */
    8917 #line 2544 "parser.yy"
     8916#line 2541 "parser.yy"
    89188917    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
    89198918    break;
     
    89228921
    89238922/* Line 1806 of yacc.c  */
    8924 #line 2559 "parser.yy"
     8923#line 2556 "parser.yy"
    89258924    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    89268925    break;
     
    89298928
    89308929/* Line 1806 of yacc.c  */
    8931 #line 2561 "parser.yy"
     8930#line 2558 "parser.yy"
    89328931    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    89338932    break;
     
    89368935
    89378936/* Line 1806 of yacc.c  */
    8938 #line 2566 "parser.yy"
     8937#line 2563 "parser.yy"
    89398938    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    89408939    break;
     
    89438942
    89448943/* Line 1806 of yacc.c  */
    8945 #line 2568 "parser.yy"
     8944#line 2565 "parser.yy"
    89468945    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    89478946    break;
     
    89508949
    89518950/* Line 1806 of yacc.c  */
    8952 #line 2570 "parser.yy"
     8951#line 2567 "parser.yy"
    89538952    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    89548953    break;
     
    89578956
    89588957/* Line 1806 of yacc.c  */
    8959 #line 2572 "parser.yy"
     8958#line 2569 "parser.yy"
    89608959    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    89618960    break;
     
    89648963
    89658964/* Line 1806 of yacc.c  */
    8966 #line 2574 "parser.yy"
     8965#line 2571 "parser.yy"
    89678966    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    89688967    break;
     
    89718970
    89728971/* Line 1806 of yacc.c  */
    8973 #line 2580 "parser.yy"
     8972#line 2577 "parser.yy"
    89748973    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    89758974    break;
     
    89788977
    89798978/* Line 1806 of yacc.c  */
    8980 #line 2582 "parser.yy"
     8979#line 2579 "parser.yy"
    89818980    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    89828981    break;
     
    89858984
    89868985/* Line 1806 of yacc.c  */
    8987 #line 2584 "parser.yy"
     8986#line 2581 "parser.yy"
    89888987    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    89898988    break;
     
    89928991
    89938992/* Line 1806 of yacc.c  */
    8994 #line 2589 "parser.yy"
     8993#line 2586 "parser.yy"
    89958994    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    89968995    break;
     
    89998998
    90008999/* Line 1806 of yacc.c  */
    9001 #line 2591 "parser.yy"
     9000#line 2588 "parser.yy"
    90029001    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    90039002    break;
     
    90069005
    90079006/* Line 1806 of yacc.c  */
    9008 #line 2593 "parser.yy"
     9007#line 2590 "parser.yy"
    90099008    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    90109009    break;
     
    90139012
    90149013/* Line 1806 of yacc.c  */
    9015 #line 2600 "parser.yy"
     9014#line 2597 "parser.yy"
    90169015    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    90179016    break;
     
    90209019
    90219020/* Line 1806 of yacc.c  */
     9021#line 2608 "parser.yy"
     9022    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     9023    break;
     9024
     9025  case 687:
     9026
     9027/* Line 1806 of yacc.c  */
    90229028#line 2611 "parser.yy"
    9023     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    9024     break;
    9025 
    9026   case 687:
    9027 
    9028 /* Line 1806 of yacc.c  */
    9029 #line 2614 "parser.yy"
    90309029    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    90319030    break;
     
    90349033
    90359034/* Line 1806 of yacc.c  */
     9035#line 2613 "parser.yy"
     9036    { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
     9037    break;
     9038
     9039  case 689:
     9040
     9041/* Line 1806 of yacc.c  */
    90369042#line 2616 "parser.yy"
    9037     { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
    9038     break;
    9039 
    9040   case 689:
    9041 
    9042 /* Line 1806 of yacc.c  */
    9043 #line 2619 "parser.yy"
    90449043    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    90459044    break;
     
    90489047
    90499048/* Line 1806 of yacc.c  */
    9050 #line 2621 "parser.yy"
     9049#line 2618 "parser.yy"
    90519050    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
    90529051    break;
     
    90559054
    90569055/* Line 1806 of yacc.c  */
    9057 #line 2623 "parser.yy"
     9056#line 2620 "parser.yy"
    90589057    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
    90599058    break;
     
    90629061
    90639062/* Line 1806 of yacc.c  */
    9064 #line 2637 "parser.yy"
     9063#line 2634 "parser.yy"
    90659064    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    90669065    break;
     
    90699068
    90709069/* Line 1806 of yacc.c  */
    9071 #line 2639 "parser.yy"
     9070#line 2636 "parser.yy"
    90729071    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    90739072    break;
     
    90769075
    90779076/* Line 1806 of yacc.c  */
    9078 #line 2644 "parser.yy"
     9077#line 2641 "parser.yy"
    90799078    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    90809079    break;
     
    90839082
    90849083/* Line 1806 of yacc.c  */
    9085 #line 2646 "parser.yy"
     9084#line 2643 "parser.yy"
    90869085    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    90879086    break;
     
    90909089
    90919090/* Line 1806 of yacc.c  */
    9092 #line 2648 "parser.yy"
     9091#line 2645 "parser.yy"
    90939092    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    90949093    break;
     
    90979096
    90989097/* Line 1806 of yacc.c  */
    9099 #line 2650 "parser.yy"
     9098#line 2647 "parser.yy"
    91009099    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    91019100    break;
     
    91049103
    91059104/* Line 1806 of yacc.c  */
    9106 #line 2652 "parser.yy"
     9105#line 2649 "parser.yy"
    91079106    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    91089107    break;
     
    91119110
    91129111/* Line 1806 of yacc.c  */
    9113 #line 2658 "parser.yy"
     9112#line 2655 "parser.yy"
    91149113    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    91159114    break;
     
    91189117
    91199118/* Line 1806 of yacc.c  */
    9120 #line 2660 "parser.yy"
     9119#line 2657 "parser.yy"
    91219120    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    91229121    break;
     
    91259124
    91269125/* Line 1806 of yacc.c  */
    9127 #line 2662 "parser.yy"
     9126#line 2659 "parser.yy"
    91289127    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    91299128    break;
     
    91329131
    91339132/* Line 1806 of yacc.c  */
    9134 #line 2667 "parser.yy"
     9133#line 2664 "parser.yy"
    91359134    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    91369135    break;
     
    91399138
    91409139/* Line 1806 of yacc.c  */
    9141 #line 2669 "parser.yy"
     9140#line 2666 "parser.yy"
    91429141    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    91439142    break;
     
    91469145
    91479146/* Line 1806 of yacc.c  */
    9148 #line 2679 "parser.yy"
     9147#line 2676 "parser.yy"
    91499148    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    91509149    break;
     
    91539152
    91549153/* Line 1806 of yacc.c  */
    9155 #line 2689 "parser.yy"
     9154#line 2686 "parser.yy"
    91569155    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    91579156    break;
     
    91609159
    91619160/* Line 1806 of yacc.c  */
    9162 #line 2691 "parser.yy"
     9161#line 2688 "parser.yy"
    91639162    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    91649163    break;
     
    91679166
    91689167/* Line 1806 of yacc.c  */
    9169 #line 2693 "parser.yy"
     9168#line 2690 "parser.yy"
    91709169    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    91719170    break;
     
    91749173
    91759174/* Line 1806 of yacc.c  */
    9176 #line 2695 "parser.yy"
     9175#line 2692 "parser.yy"
    91779176    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    91789177    break;
     
    91819180
    91829181/* Line 1806 of yacc.c  */
    9183 #line 2697 "parser.yy"
     9182#line 2694 "parser.yy"
    91849183    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    91859184    break;
     
    91889187
    91899188/* Line 1806 of yacc.c  */
    9190 #line 2699 "parser.yy"
     9189#line 2696 "parser.yy"
    91919190    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    91929191    break;
     
    91959194
    91969195/* Line 1806 of yacc.c  */
    9197 #line 2706 "parser.yy"
     9196#line 2703 "parser.yy"
    91989197    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    91999198    break;
     
    92029201
    92039202/* Line 1806 of yacc.c  */
    9204 #line 2708 "parser.yy"
     9203#line 2705 "parser.yy"
    92059204    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    92069205    break;
     
    92099208
    92109209/* Line 1806 of yacc.c  */
    9211 #line 2710 "parser.yy"
     9210#line 2707 "parser.yy"
    92129211    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    92139212    break;
     
    92169215
    92179216/* Line 1806 of yacc.c  */
    9218 #line 2712 "parser.yy"
     9217#line 2709 "parser.yy"
    92199218    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    92209219    break;
     
    92239222
    92249223/* Line 1806 of yacc.c  */
    9225 #line 2714 "parser.yy"
     9224#line 2711 "parser.yy"
    92269225    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    92279226    break;
     
    92309229
    92319230/* Line 1806 of yacc.c  */
    9232 #line 2716 "parser.yy"
     9231#line 2713 "parser.yy"
    92339232    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    92349233    break;
     
    92379236
    92389237/* Line 1806 of yacc.c  */
    9239 #line 2718 "parser.yy"
     9238#line 2715 "parser.yy"
    92409239    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    92419240    break;
     
    92449243
    92459244/* Line 1806 of yacc.c  */
    9246 #line 2720 "parser.yy"
     9245#line 2717 "parser.yy"
    92479246    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    92489247    break;
     
    92519250
    92529251/* Line 1806 of yacc.c  */
    9253 #line 2722 "parser.yy"
     9252#line 2719 "parser.yy"
    92549253    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    92559254    break;
     
    92589257
    92599258/* Line 1806 of yacc.c  */
    9260 #line 2724 "parser.yy"
     9259#line 2721 "parser.yy"
    92619260    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    92629261    break;
     
    92659264
    92669265/* Line 1806 of yacc.c  */
    9267 #line 2729 "parser.yy"
     9266#line 2726 "parser.yy"
    92689267    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    92699268    break;
     
    92729271
    92739272/* Line 1806 of yacc.c  */
    9274 #line 2731 "parser.yy"
     9273#line 2728 "parser.yy"
    92759274    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    92769275    break;
     
    92799278
    92809279/* Line 1806 of yacc.c  */
    9281 #line 2736 "parser.yy"
     9280#line 2733 "parser.yy"
    92829281    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
    92839282    break;
     
    92869285
    92879286/* Line 1806 of yacc.c  */
    9288 #line 2738 "parser.yy"
     9287#line 2735 "parser.yy"
    92899288    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
    92909289    break;
     
    92939292
    92949293/* Line 1806 of yacc.c  */
    9295 #line 2765 "parser.yy"
     9294#line 2762 "parser.yy"
    92969295    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    92979296    break;
     
    93009299
    93019300/* Line 1806 of yacc.c  */
    9302 #line 2776 "parser.yy"
     9301#line 2773 "parser.yy"
    93039302    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    93049303    break;
     
    93079306
    93089307/* Line 1806 of yacc.c  */
    9309 #line 2778 "parser.yy"
     9308#line 2775 "parser.yy"
    93109309    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    93119310    break;
     
    93149313
    93159314/* Line 1806 of yacc.c  */
    9316 #line 2780 "parser.yy"
     9315#line 2777 "parser.yy"
    93179316    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    93189317    break;
     
    93219320
    93229321/* Line 1806 of yacc.c  */
    9323 #line 2782 "parser.yy"
     9322#line 2779 "parser.yy"
    93249323    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    93259324    break;
     
    93289327
    93299328/* Line 1806 of yacc.c  */
    9330 #line 2784 "parser.yy"
     9329#line 2781 "parser.yy"
    93319330    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    93329331    break;
     
    93359334
    93369335/* Line 1806 of yacc.c  */
    9337 #line 2786 "parser.yy"
     9336#line 2783 "parser.yy"
    93389337    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    93399338    break;
     
    93429341
    93439342/* Line 1806 of yacc.c  */
    9344 #line 2793 "parser.yy"
     9343#line 2790 "parser.yy"
    93459344    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    93469345    break;
     
    93499348
    93509349/* Line 1806 of yacc.c  */
    9351 #line 2795 "parser.yy"
     9350#line 2792 "parser.yy"
    93529351    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    93539352    break;
     
    93569355
    93579356/* Line 1806 of yacc.c  */
    9358 #line 2797 "parser.yy"
     9357#line 2794 "parser.yy"
    93599358    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    93609359    break;
     
    93639362
    93649363/* Line 1806 of yacc.c  */
    9365 #line 2799 "parser.yy"
     9364#line 2796 "parser.yy"
    93669365    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    93679366    break;
     
    93709369
    93719370/* Line 1806 of yacc.c  */
    9372 #line 2801 "parser.yy"
     9371#line 2798 "parser.yy"
    93739372    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    93749373    break;
     
    93779376
    93789377/* Line 1806 of yacc.c  */
    9379 #line 2803 "parser.yy"
     9378#line 2800 "parser.yy"
    93809379    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    93819380    break;
     
    93849383
    93859384/* Line 1806 of yacc.c  */
    9386 #line 2808 "parser.yy"
     9385#line 2805 "parser.yy"
    93879386    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    93889387    break;
     
    93919390
    93929391/* Line 1806 of yacc.c  */
    9393 #line 2813 "parser.yy"
     9392#line 2810 "parser.yy"
    93949393    { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); }
    93959394    break;
     
    93989397
    93999398/* Line 1806 of yacc.c  */
    9400 #line 2815 "parser.yy"
     9399#line 2812 "parser.yy"
    94019400    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    94029401    break;
     
    94059404
    94069405/* Line 1806 of yacc.c  */
    9407 #line 2817 "parser.yy"
     9406#line 2814 "parser.yy"
    94089407    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    94099408    break;
     
    94129411
    94139412/* Line 1806 of yacc.c  */
    9414 #line 2841 "parser.yy"
     9413#line 2838 "parser.yy"
    94159414    { (yyval.en) = 0; }
    94169415    break;
     
    94199418
    94209419/* Line 1806 of yacc.c  */
    9421 #line 2843 "parser.yy"
     9420#line 2840 "parser.yy"
    94229421    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    94239422    break;
     
    94269425
    94279426/* Line 1806 of yacc.c  */
    9428 #line 9429 "Parser/parser.cc"
     9427#line 9428 "Parser/parser.cc"
    94299428      default: break;
    94309429    }
     
    96579656
    96589657/* Line 2067 of yacc.c  */
    9659 #line 2846 "parser.yy"
     9658#line 2843 "parser.yy"
    96609659
    96619660// ----end of grammar----
Note: See TracChangeset for help on using the changeset viewer.