Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/parser.cc

    r3cfe27f r4040425  
    7777#include <cstdio>
    7878#include <stack>
     79#include "TypedefTable.h"
    7980#include "lex.h"
    80 #include "parser.h"
    8181#include "ParseNode.h"
    82 #include "TypedefTable.h"
    8382#include "TypeData.h"
    8483#include "LinkageSpec.h"
     
    9190
    9291/* Line 268 of yacc.c  */
    93 #line 94 "Parser/parser.cc"
     92#line 93 "Parser/parser.cc"
    9493
    9594/* Enabling traces.  */
     
    342341
    343342/* Line 293 of yacc.c  */
    344 #line 112 "parser.yy"
     343#line 111 "parser.yy"
    345344
    346345        Token tok;
     
    359358
    360359/* Line 293 of yacc.c  */
    361 #line 362 "Parser/parser.cc"
     360#line 361 "Parser/parser.cc"
    362361} YYSTYPE;
    363362# define YYSTYPE_IS_TRIVIAL 1
     
    371370
    372371/* Line 343 of yacc.c  */
    373 #line 374 "Parser/parser.cc"
     372#line 373 "Parser/parser.cc"
    374373
    375374#ifdef short
     
    10161015static const yytype_uint16 yyrline[] =
    10171016{
    1018        0,   292,   292,   298,   307,   308,   309,   313,   314,   315,
    1019      319,   320,   324,   325,   329,   330,   334,   335,   341,   343,
    1020      345,   347,   352,   353,   359,   363,   365,   366,   368,   369,
    1021      371,   373,   375,   383,   384,   390,   391,   392,   397,   399,
    1022      404,   405,   409,   413,   415,   417,   419,   424,   427,   429,
    1023      431,   433,   435,   437,   439,   441,   447,   449,   451,   453,
    1024      455,   457,   459,   461,   463,   468,   469,   470,   471,   475,
    1025      476,   478,   483,   484,   486,   488,   493,   494,   496,   501,
    1026      502,   504,   509,   510,   512,   514,   516,   521,   522,   524,
    1027      529,   530,   535,   536,   541,   542,   547,   548,   553,   554,
    1028      559,   560,   562,   564,   569,   574,   575,   577,   579,   585,
    1029      586,   592,   594,   596,   598,   603,   604,   609,   610,   611,
    1030      612,   613,   614,   615,   616,   617,   618,   622,   623,   629,
    1031      630,   636,   637,   638,   639,   640,   641,   642,   643,   644,
    1032      653,   660,   662,   672,   673,   678,   680,   682,   684,   688,
    1033      689,   694,   699,   702,   704,   706,   711,   713,   721,   722,
    1034      724,   728,   729,   734,   735,   740,   741,   745,   750,   751,
    1035      755,   757,   763,   764,   768,   770,   772,   774,   780,   781,
    1036      785,   786,   790,   792,   794,   799,   801,   806,   808,   812,
    1037      815,   819,   822,   826,   828,   832,   834,   841,   843,   845,
    1038      854,   856,   858,   860,   862,   867,   869,   871,   873,   878,
    1039      891,   892,   897,   899,   904,   908,   910,   912,   914,   916,
    1040      922,   923,   929,   930,   934,   935,   940,   942,   948,   949,
    1041      951,   956,   958,   965,   967,   971,   972,   977,   979,   983,
    1042      984,   988,   990,   994,   995,   999,  1000,  1004,  1005,  1020,
    1043     1021,  1022,  1023,  1024,  1028,  1033,  1040,  1050,  1055,  1060,
    1044     1068,  1073,  1078,  1083,  1088,  1096,  1118,  1123,  1130,  1132,
    1045     1139,  1144,  1149,  1160,  1165,  1170,  1175,  1180,  1189,  1194,
    1046     1202,  1203,  1204,  1205,  1211,  1216,  1224,  1225,  1226,  1227,
    1047     1231,  1232,  1233,  1234,  1239,  1240,  1249,  1250,  1255,  1256,
    1048     1261,  1263,  1265,  1267,  1269,  1272,  1271,  1283,  1284,  1286,
    1049     1296,  1297,  1302,  1306,  1308,  1310,  1312,  1314,  1316,  1318,
    1050     1320,  1325,  1327,  1329,  1331,  1333,  1335,  1337,  1339,  1341,
    1051     1343,  1345,  1347,  1349,  1355,  1356,  1358,  1360,  1362,  1367,
    1052     1368,  1374,  1375,  1377,  1379,  1384,  1386,  1388,  1390,  1395,
    1053     1396,  1398,  1400,  1405,  1406,  1408,  1413,  1414,  1416,  1418,
    1054     1423,  1425,  1427,  1432,  1433,  1437,  1439,  1441,  1443,  1445,
    1055     1450,  1452,  1457,  1459,  1464,  1465,  1467,  1468,  1473,  1474,
    1056     1476,  1478,  1483,  1485,  1491,  1492,  1494,  1497,  1500,  1505,
    1057     1506,  1511,  1516,  1520,  1522,  1524,  1529,  1531,  1537,  1538,
    1058     1546,  1547,  1551,  1552,  1553,  1555,  1557,  1564,  1565,  1567,
    1059     1569,  1574,  1575,  1581,  1582,  1586,  1587,  1592,  1593,  1594,
    1060     1596,  1604,  1605,  1607,  1610,  1612,  1616,  1617,  1618,  1620,
    1061     1622,  1626,  1631,  1639,  1640,  1649,  1651,  1656,  1657,  1658,
    1062     1662,  1663,  1664,  1668,  1669,  1670,  1674,  1675,  1676,  1681,
    1063     1682,  1683,  1684,  1690,  1691,  1693,  1698,  1699,  1704,  1705,
    1064     1706,  1707,  1708,  1723,  1724,  1729,  1730,  1738,  1740,  1742,
    1065     1745,  1747,  1749,  1772,  1773,  1775,  1777,  1782,  1783,  1785,
    1066     1790,  1795,  1796,  1802,  1801,  1805,  1809,  1811,  1813,  1819,
    1067     1820,  1825,  1830,  1832,  1837,  1839,  1840,  1842,  1847,  1849,
    1068     1851,  1856,  1858,  1863,  1868,  1876,  1882,  1881,  1895,  1896,
    1069     1901,  1902,  1906,  1911,  1916,  1924,  1929,  1940,  1941,  1952,
    1070     1953,  1959,  1960,  1964,  1965,  1966,  1969,  1968,  1979,  1984,
    1071     1989,  1995,  2004,  2010,  2016,  2022,  2028,  2036,  2042,  2050,
    1072     2056,  2065,  2066,  2067,  2071,  2075,  2077,  2082,  2083,  2087,
    1073     2088,  2093,  2099,  2100,  2103,  2105,  2106,  2110,  2111,  2112,
    1074     2113,  2147,  2149,  2150,  2152,  2157,  2162,  2167,  2169,  2171,
    1075     2176,  2178,  2180,  2182,  2187,  2189,  2199,  2201,  2202,  2207,
    1076     2209,  2211,  2216,  2218,  2220,  2225,  2227,  2229,  2238,  2239,
    1077     2240,  2244,  2246,  2248,  2253,  2255,  2257,  2262,  2264,  2266,
    1078     2281,  2283,  2284,  2286,  2291,  2292,  2297,  2299,  2301,  2306,
    1079     2308,  2310,  2312,  2317,  2319,  2321,  2331,  2333,  2334,  2336,
    1080     2341,  2343,  2345,  2350,  2352,  2354,  2356,  2361,  2363,  2365,
    1081     2396,  2398,  2399,  2401,  2406,  2411,  2419,  2421,  2423,  2428,
    1082     2430,  2435,  2437,  2451,  2452,  2454,  2459,  2461,  2463,  2465,
    1083     2467,  2472,  2473,  2475,  2477,  2482,  2484,  2486,  2492,  2494,
    1084     2496,  2500,  2502,  2504,  2506,  2520,  2521,  2523,  2528,  2530,
    1085     2532,  2534,  2536,  2541,  2542,  2544,  2546,  2551,  2553,  2555,
    1086     2561,  2562,  2564,  2573,  2576,  2578,  2581,  2583,  2585,  2598,
    1087     2599,  2601,  2606,  2608,  2610,  2612,  2614,  2619,  2620,  2622,
    1088     2624,  2629,  2631,  2639,  2640,  2641,  2646,  2647,  2651,  2653,
    1089     2655,  2657,  2659,  2661,  2668,  2670,  2672,  2674,  2676,  2678,
    1090     2680,  2682,  2684,  2686,  2691,  2693,  2695,  2700,  2726,  2727,
    1091     2729,  2733,  2734,  2738,  2740,  2742,  2744,  2746,  2748,  2755,
    1092     2757,  2759,  2761,  2763,  2765,  2770,  2775,  2777,  2779,  2797,
    1093     2799,  2804,  2805
     1017       0,   291,   291,   297,   306,   307,   308,   312,   313,   314,
     1018     318,   319,   323,   324,   328,   329,   333,   334,   340,   342,
     1019     344,   346,   351,   352,   358,   362,   364,   365,   367,   368,
     1020     370,   372,   374,   382,   383,   389,   390,   391,   396,   398,
     1021     403,   404,   408,   412,   414,   416,   418,   423,   426,   428,
     1022     430,   432,   434,   436,   438,   440,   446,   448,   450,   452,
     1023     454,   456,   458,   460,   462,   467,   468,   469,   470,   474,
     1024     475,   477,   482,   483,   485,   487,   492,   493,   495,   500,
     1025     501,   503,   508,   509,   511,   513,   515,   520,   521,   523,
     1026     528,   529,   534,   535,   540,   541,   546,   547,   552,   553,
     1027     558,   559,   561,   563,   568,   573,   574,   576,   578,   584,
     1028     585,   591,   593,   595,   597,   602,   603,   608,   609,   610,
     1029     611,   612,   613,   614,   615,   616,   617,   621,   622,   628,
     1030     629,   635,   636,   637,   638,   639,   640,   641,   642,   643,
     1031     652,   659,   661,   671,   672,   677,   679,   681,   683,   687,
     1032     688,   693,   698,   701,   703,   705,   710,   712,   720,   721,
     1033     723,   727,   728,   733,   734,   739,   740,   744,   749,   750,
     1034     754,   756,   762,   763,   767,   769,   771,   773,   779,   780,
     1035     784,   785,   789,   791,   793,   798,   800,   805,   807,   811,
     1036     814,   818,   821,   825,   827,   831,   833,   840,   842,   844,
     1037     853,   855,   857,   859,   861,   866,   868,   870,   872,   877,
     1038     890,   891,   896,   898,   903,   907,   909,   911,   913,   915,
     1039     921,   922,   928,   929,   933,   934,   939,   941,   947,   948,
     1040     950,   955,   957,   964,   966,   970,   971,   976,   978,   982,
     1041     983,   987,   989,   993,   994,   998,   999,  1003,  1004,  1019,
     1042    1020,  1021,  1022,  1023,  1027,  1032,  1039,  1049,  1054,  1059,
     1043    1067,  1072,  1077,  1082,  1087,  1095,  1117,  1122,  1129,  1131,
     1044    1138,  1143,  1148,  1159,  1164,  1169,  1174,  1179,  1188,  1193,
     1045    1201,  1202,  1203,  1204,  1210,  1215,  1223,  1224,  1225,  1226,
     1046    1230,  1231,  1232,  1233,  1238,  1239,  1248,  1249,  1254,  1255,
     1047    1260,  1262,  1264,  1266,  1268,  1271,  1270,  1282,  1283,  1285,
     1048    1295,  1296,  1301,  1305,  1307,  1309,  1311,  1313,  1315,  1317,
     1049    1319,  1324,  1326,  1328,  1330,  1332,  1334,  1336,  1338,  1340,
     1050    1342,  1344,  1346,  1348,  1354,  1355,  1357,  1359,  1361,  1366,
     1051    1367,  1373,  1374,  1376,  1378,  1383,  1385,  1387,  1389,  1394,
     1052    1395,  1397,  1399,  1404,  1405,  1407,  1412,  1413,  1415,  1417,
     1053    1422,  1424,  1426,  1431,  1432,  1436,  1438,  1440,  1442,  1444,
     1054    1449,  1451,  1456,  1458,  1463,  1464,  1466,  1467,  1472,  1473,
     1055    1475,  1477,  1482,  1484,  1490,  1491,  1493,  1496,  1499,  1504,
     1056    1505,  1510,  1515,  1519,  1521,  1523,  1528,  1530,  1536,  1537,
     1057    1545,  1546,  1550,  1551,  1552,  1554,  1556,  1563,  1564,  1566,
     1058    1568,  1573,  1574,  1580,  1581,  1585,  1586,  1591,  1592,  1593,
     1059    1595,  1603,  1604,  1606,  1609,  1611,  1615,  1616,  1617,  1619,
     1060    1621,  1625,  1630,  1638,  1639,  1648,  1650,  1655,  1656,  1657,
     1061    1661,  1662,  1663,  1667,  1668,  1669,  1673,  1674,  1675,  1680,
     1062    1681,  1682,  1683,  1689,  1690,  1692,  1697,  1698,  1703,  1704,
     1063    1705,  1706,  1707,  1722,  1723,  1728,  1729,  1737,  1739,  1741,
     1064    1744,  1746,  1748,  1771,  1772,  1774,  1776,  1781,  1782,  1784,
     1065    1789,  1794,  1795,  1801,  1800,  1804,  1808,  1810,  1812,  1818,
     1066    1819,  1824,  1829,  1831,  1836,  1838,  1839,  1841,  1846,  1848,
     1067    1850,  1855,  1857,  1862,  1867,  1875,  1881,  1880,  1894,  1895,
     1068    1900,  1901,  1905,  1910,  1915,  1923,  1928,  1939,  1940,  1951,
     1069    1952,  1958,  1959,  1963,  1964,  1965,  1968,  1967,  1978,  1983,
     1070    1988,  1994,  2003,  2009,  2015,  2021,  2027,  2035,  2041,  2049,
     1071    2055,  2064,  2065,  2066,  2070,  2074,  2076,  2081,  2082,  2086,
     1072    2087,  2092,  2098,  2099,  2102,  2104,  2105,  2109,  2110,  2111,
     1073    2112,  2146,  2148,  2149,  2151,  2156,  2161,  2166,  2168,  2170,
     1074    2175,  2177,  2179,  2181,  2186,  2188,  2198,  2200,  2201,  2206,
     1075    2208,  2210,  2215,  2217,  2219,  2224,  2226,  2228,  2237,  2238,
     1076    2239,  2243,  2245,  2247,  2252,  2254,  2256,  2261,  2263,  2265,
     1077    2280,  2282,  2283,  2285,  2290,  2291,  2296,  2298,  2300,  2305,
     1078    2307,  2309,  2311,  2316,  2318,  2320,  2330,  2332,  2333,  2335,
     1079    2340,  2342,  2344,  2349,  2351,  2353,  2355,  2360,  2362,  2364,
     1080    2395,  2397,  2398,  2400,  2405,  2410,  2418,  2420,  2422,  2427,
     1081    2429,  2434,  2436,  2450,  2451,  2453,  2458,  2460,  2462,  2464,
     1082    2466,  2471,  2472,  2474,  2476,  2481,  2483,  2485,  2491,  2493,
     1083    2495,  2499,  2501,  2503,  2505,  2519,  2520,  2522,  2527,  2529,
     1084    2531,  2533,  2535,  2540,  2541,  2543,  2545,  2550,  2552,  2554,
     1085    2560,  2561,  2563,  2572,  2575,  2577,  2580,  2582,  2584,  2597,
     1086    2598,  2600,  2605,  2607,  2609,  2611,  2613,  2618,  2619,  2621,
     1087    2623,  2628,  2630,  2638,  2639,  2640,  2645,  2646,  2650,  2652,
     1088    2654,  2656,  2658,  2660,  2667,  2669,  2671,  2673,  2675,  2677,
     1089    2679,  2681,  2683,  2685,  2690,  2692,  2694,  2699,  2725,  2726,
     1090    2728,  2732,  2733,  2737,  2739,  2741,  2743,  2745,  2747,  2754,
     1091    2756,  2758,  2760,  2762,  2764,  2769,  2774,  2776,  2778,  2796,
     1092    2798,  2803,  2804
    10941093};
    10951094#endif
     
    50565055
    50575056/* Line 1806 of yacc.c  */
    5058 #line 292 "parser.yy"
     5057#line 291 "parser.yy"
    50595058    {
    50605059                        typedefTable.enterScope();
     
    50655064
    50665065/* Line 1806 of yacc.c  */
    5067 #line 298 "parser.yy"
     5066#line 297 "parser.yy"
    50685067    {
    50695068                        typedefTable.leaveScope();
     
    50745073
    50755074/* Line 1806 of yacc.c  */
     5075#line 306 "parser.yy"
     5076    { (yyval.constant) = new ConstantNode( ConstantNode::Integer, (yyvsp[(1) - (1)].tok) ); }
     5077    break;
     5078
     5079  case 5:
     5080
     5081/* Line 1806 of yacc.c  */
    50765082#line 307 "parser.yy"
    5077     { (yyval.constant) = new ConstantNode( ConstantNode::Integer, (yyvsp[(1) - (1)].tok) ); }
    5078     break;
    5079 
    5080   case 5:
     5083    { (yyval.constant) = new ConstantNode( ConstantNode::Float, (yyvsp[(1) - (1)].tok) ); }
     5084    break;
     5085
     5086  case 6:
    50815087
    50825088/* Line 1806 of yacc.c  */
    50835089#line 308 "parser.yy"
    5084     { (yyval.constant) = new ConstantNode( ConstantNode::Float, (yyvsp[(1) - (1)].tok) ); }
    5085     break;
    5086 
    5087   case 6:
    5088 
    5089 /* Line 1806 of yacc.c  */
    5090 #line 309 "parser.yy"
    50915090    { (yyval.constant) = new ConstantNode( ConstantNode::Character, (yyvsp[(1) - (1)].tok) ); }
    50925091    break;
     
    50955094
    50965095/* Line 1806 of yacc.c  */
     5096#line 333 "parser.yy"
     5097    { (yyval.constant) = new ConstantNode( ConstantNode::String, (yyvsp[(1) - (1)].tok) ); }
     5098    break;
     5099
     5100  case 17:
     5101
     5102/* Line 1806 of yacc.c  */
    50975103#line 334 "parser.yy"
    5098     { (yyval.constant) = new ConstantNode( ConstantNode::String, (yyvsp[(1) - (1)].tok) ); }
    5099     break;
    5100 
    5101   case 17:
    5102 
    5103 /* Line 1806 of yacc.c  */
    5104 #line 335 "parser.yy"
    51055104    { (yyval.constant) = (yyvsp[(1) - (2)].constant)->appendstr( (yyvsp[(2) - (2)].tok) ); }
    51065105    break;
     
    51095108
    51105109/* Line 1806 of yacc.c  */
    5111 #line 342 "parser.yy"
     5110#line 341 "parser.yy"
    51125111    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }
    51135112    break;
     
    51165115
    51175116/* Line 1806 of yacc.c  */
    5118 #line 344 "parser.yy"
     5117#line 343 "parser.yy"
    51195118    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }
    51205119    break;
     
    51235122
    51245123/* Line 1806 of yacc.c  */
    5125 #line 346 "parser.yy"
     5124#line 345 "parser.yy"
    51265125    { (yyval.en) = (yyvsp[(2) - (3)].en); }
    51275126    break;
     
    51305129
    51315130/* Line 1806 of yacc.c  */
    5132 #line 348 "parser.yy"
     5131#line 347 "parser.yy"
    51335132    { (yyval.en) = new ValofExprNode( (yyvsp[(2) - (3)].sn) ); }
    51345133    break;
     
    51375136
    51385137/* Line 1806 of yacc.c  */
    5139 #line 358 "parser.yy"
     5138#line 357 "parser.yy"
    51405139    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Index ), (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ); }
    51415140    break;
     
    51445143
    51455144/* Line 1806 of yacc.c  */
    5146 #line 360 "parser.yy"
     5145#line 359 "parser.yy"
    51475146    { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ); }
    51485147    break;
     
    51515150
    51525151/* Line 1806 of yacc.c  */
    5153 #line 364 "parser.yy"
     5152#line 363 "parser.yy"
    51545153    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) )); }
    51555154    break;
     
    51585157
    51595158/* Line 1806 of yacc.c  */
    5160 #line 367 "parser.yy"
     5159#line 366 "parser.yy"
    51615160    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) )); }
    51625161    break;
     
    51655164
    51665165/* Line 1806 of yacc.c  */
    5167 #line 370 "parser.yy"
     5166#line 369 "parser.yy"
    51685167    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::IncrPost ), (yyvsp[(1) - (2)].en) ); }
    51695168    break;
     
    51725171
    51735172/* Line 1806 of yacc.c  */
    5174 #line 372 "parser.yy"
     5173#line 371 "parser.yy"
    51755174    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::DecrPost ), (yyvsp[(1) - (2)].en) ); }
    51765175    break;
     
    51795178
    51805179/* Line 1806 of yacc.c  */
    5181 #line 374 "parser.yy"
     5180#line 373 "parser.yy"
    51825181    { (yyval.en) = 0; }
    51835182    break;
     
    51865185
    51875186/* Line 1806 of yacc.c  */
    5188 #line 376 "parser.yy"
     5187#line 375 "parser.yy"
    51895188    {
    51905189                        Token fn; fn.str = new std::string( "?{}" ); // location undefined
     
    51965195
    51975196/* Line 1806 of yacc.c  */
    5198 #line 385 "parser.yy"
     5197#line 384 "parser.yy"
    51995198    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); }
    52005199    break;
     
    52035202
    52045203/* Line 1806 of yacc.c  */
    5205 #line 390 "parser.yy"
     5204#line 389 "parser.yy"
    52065205    { (yyval.en) = 0; }
    52075206    break;
     
    52105209
    52115210/* Line 1806 of yacc.c  */
    5212 #line 393 "parser.yy"
     5211#line 392 "parser.yy"
    52135212    { (yyval.en) = (yyvsp[(3) - (3)].en)->set_argName( (yyvsp[(1) - (3)].tok) ); }
    52145213    break;
     
    52175216
    52185217/* Line 1806 of yacc.c  */
    5219 #line 398 "parser.yy"
     5218#line 397 "parser.yy"
    52205219    { (yyval.en) = (yyvsp[(7) - (7)].en)->set_argName( (yyvsp[(3) - (7)].en) ); }
    52215220    break;
     
    52245223
    52255224/* Line 1806 of yacc.c  */
    5226 #line 400 "parser.yy"
     5225#line 399 "parser.yy"
    52275226    { (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) )))); }
    52285227    break;
     
    52315230
    52325231/* Line 1806 of yacc.c  */
    5233 #line 405 "parser.yy"
     5232#line 404 "parser.yy"
    52345233    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
    52355234    break;
     
    52385237
    52395238/* Line 1806 of yacc.c  */
    5240 #line 410 "parser.yy"
     5239#line 409 "parser.yy"
    52415240    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }
    52425241    break;
     
    52455244
    52465245/* Line 1806 of yacc.c  */
    5247 #line 414 "parser.yy"
     5246#line 413 "parser.yy"
    52485247    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); }
    52495248    break;
     
    52525251
    52535252/* Line 1806 of yacc.c  */
    5254 #line 416 "parser.yy"
     5253#line 415 "parser.yy"
    52555254    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); }
    52565255    break;
     
    52595258
    52605259/* Line 1806 of yacc.c  */
    5261 #line 418 "parser.yy"
     5260#line 417 "parser.yy"
    52625261    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); }
    52635262    break;
     
    52665265
    52675266/* Line 1806 of yacc.c  */
    5268 #line 420 "parser.yy"
     5267#line 419 "parser.yy"
    52695268    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); }
    52705269    break;
     
    52735272
    52745273/* Line 1806 of yacc.c  */
    5275 #line 428 "parser.yy"
     5274#line 427 "parser.yy"
    52765275    { (yyval.en) = (yyvsp[(1) - (1)].constant); }
    52775276    break;
     
    52805279
    52815280/* Line 1806 of yacc.c  */
    5282 #line 430 "parser.yy"
     5281#line 429 "parser.yy"
    52835282    { (yyval.en) = (yyvsp[(1) - (1)].constant); }
    52845283    break;
     
    52875286
    52885287/* Line 1806 of yacc.c  */
    5289 #line 432 "parser.yy"
     5288#line 431 "parser.yy"
    52905289    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Incr ), (yyvsp[(2) - (2)].en) ); }
    52915290    break;
     
    52945293
    52955294/* Line 1806 of yacc.c  */
    5296 #line 434 "parser.yy"
     5295#line 433 "parser.yy"
    52975296    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Decr ), (yyvsp[(2) - (2)].en) ); }
    52985297    break;
     
    53015300
    53025301/* Line 1806 of yacc.c  */
    5303 #line 436 "parser.yy"
     5302#line 435 "parser.yy"
    53045303    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    53055304    break;
     
    53085307
    53095308/* Line 1806 of yacc.c  */
    5310 #line 438 "parser.yy"
     5309#line 437 "parser.yy"
    53115310    { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); }
    53125311    break;
     
    53155314
    53165315/* Line 1806 of yacc.c  */
    5317 #line 440 "parser.yy"
     5316#line 439 "parser.yy"
    53185317    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Neg ), (yyvsp[(2) - (2)].en) ); }
    53195318    break;
     
    53225321
    53235322/* Line 1806 of yacc.c  */
    5324 #line 442 "parser.yy"
     5323#line 441 "parser.yy"
    53255324    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PointTo ), (yyvsp[(2) - (2)].en) ); }
    53265325    break;
     
    53295328
    53305329/* Line 1806 of yacc.c  */
    5331 #line 448 "parser.yy"
     5330#line 447 "parser.yy"
    53325331    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), (yyvsp[(2) - (2)].en) ); }
    53335332    break;
     
    53365335
    53375336/* Line 1806 of yacc.c  */
    5338 #line 450 "parser.yy"
     5337#line 449 "parser.yy"
    53395338    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }
    53405339    break;
     
    53435342
    53445343/* Line 1806 of yacc.c  */
    5345 #line 452 "parser.yy"
     5344#line 451 "parser.yy"
    53465345    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::OffsetOf ), new TypeValueNode( (yyvsp[(3) - (6)].decl) ), new VarRefNode( (yyvsp[(5) - (6)].tok) )); }
    53475346    break;
     
    53505349
    53515350/* Line 1806 of yacc.c  */
    5352 #line 454 "parser.yy"
     5351#line 453 "parser.yy"
    53535352    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (1)].tok) )); }
    53545353    break;
     
    53575356
    53585357/* Line 1806 of yacc.c  */
    5359 #line 456 "parser.yy"
     5358#line 455 "parser.yy"
    53605359    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }
    53615360    break;
     
    53645363
    53655364/* Line 1806 of yacc.c  */
    5366 #line 458 "parser.yy"
     5365#line 457 "parser.yy"
    53675366    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ); }
    53685367    break;
     
    53715370
    53725371/* Line 1806 of yacc.c  */
    5373 #line 460 "parser.yy"
     5372#line 459 "parser.yy"
    53745373    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), (yyvsp[(2) - (2)].en) ); }
    53755374    break;
     
    53785377
    53795378/* Line 1806 of yacc.c  */
    5380 #line 462 "parser.yy"
     5379#line 461 "parser.yy"
    53815380    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) ) ); }
    53825381    break;
     
    53855384
    53865385/* Line 1806 of yacc.c  */
    5387 #line 464 "parser.yy"
     5386#line 463 "parser.yy"
    53885387    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LabelAddress ), new VarRefNode( (yyvsp[(2) - (2)].tok), true ) ); }
    53895388    break;
     
    53925391
    53935392/* Line 1806 of yacc.c  */
     5393#line 467 "parser.yy"
     5394    { (yyval.en) = new OperatorNode( OperatorNode::AddressOf ); }
     5395    break;
     5396
     5397  case 66:
     5398
     5399/* Line 1806 of yacc.c  */
    53945400#line 468 "parser.yy"
    5395     { (yyval.en) = new OperatorNode( OperatorNode::AddressOf ); }
    5396     break;
    5397 
    5398   case 66:
     5401    { (yyval.en) = new OperatorNode( OperatorNode::UnPlus ); }
     5402    break;
     5403
     5404  case 67:
    53995405
    54005406/* Line 1806 of yacc.c  */
    54015407#line 469 "parser.yy"
    5402     { (yyval.en) = new OperatorNode( OperatorNode::UnPlus ); }
    5403     break;
    5404 
    5405   case 67:
     5408    { (yyval.en) = new OperatorNode( OperatorNode::UnMinus ); }
     5409    break;
     5410
     5411  case 68:
    54065412
    54075413/* Line 1806 of yacc.c  */
    54085414#line 470 "parser.yy"
    5409     { (yyval.en) = new OperatorNode( OperatorNode::UnMinus ); }
    5410     break;
    5411 
    5412   case 68:
    5413 
    5414 /* Line 1806 of yacc.c  */
    5415 #line 471 "parser.yy"
    54165415    { (yyval.en) = new OperatorNode( OperatorNode::BitNeg ); }
    54175416    break;
     
    54205419
    54215420/* Line 1806 of yacc.c  */
    5422 #line 477 "parser.yy"
     5421#line 476 "parser.yy"
    54235422    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ); }
    54245423    break;
     
    54275426
    54285427/* Line 1806 of yacc.c  */
    5429 #line 479 "parser.yy"
     5428#line 478 "parser.yy"
    54305429    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ); }
    54315430    break;
     
    54345433
    54355434/* Line 1806 of yacc.c  */
    5436 #line 485 "parser.yy"
     5435#line 484 "parser.yy"
    54375436    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mul ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54385437    break;
     
    54415440
    54425441/* Line 1806 of yacc.c  */
    5443 #line 487 "parser.yy"
     5442#line 486 "parser.yy"
    54445443    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Div ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54455444    break;
     
    54485447
    54495448/* Line 1806 of yacc.c  */
    5450 #line 489 "parser.yy"
     5449#line 488 "parser.yy"
    54515450    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mod ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54525451    break;
     
    54555454
    54565455/* Line 1806 of yacc.c  */
    5457 #line 495 "parser.yy"
     5456#line 494 "parser.yy"
    54585457    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Plus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54595458    break;
     
    54625461
    54635462/* Line 1806 of yacc.c  */
    5464 #line 497 "parser.yy"
     5463#line 496 "parser.yy"
    54655464    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Minus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54665465    break;
     
    54695468
    54705469/* Line 1806 of yacc.c  */
    5471 #line 503 "parser.yy"
     5470#line 502 "parser.yy"
    54725471    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54735472    break;
     
    54765475
    54775476/* Line 1806 of yacc.c  */
    5478 #line 505 "parser.yy"
     5477#line 504 "parser.yy"
    54795478    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::RShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54805479    break;
     
    54835482
    54845483/* Line 1806 of yacc.c  */
    5485 #line 511 "parser.yy"
     5484#line 510 "parser.yy"
    54865485    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54875486    break;
     
    54905489
    54915490/* Line 1806 of yacc.c  */
    5492 #line 513 "parser.yy"
     5491#line 512 "parser.yy"
    54935492    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    54945493    break;
     
    54975496
    54985497/* Line 1806 of yacc.c  */
    5499 #line 515 "parser.yy"
     5498#line 514 "parser.yy"
    55005499    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    55015500    break;
     
    55045503
    55055504/* Line 1806 of yacc.c  */
    5506 #line 517 "parser.yy"
     5505#line 516 "parser.yy"
    55075506    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    55085507    break;
     
    55115510
    55125511/* Line 1806 of yacc.c  */
    5513 #line 523 "parser.yy"
     5512#line 522 "parser.yy"
    55145513    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Eq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    55155514    break;
     
    55185517
    55195518/* Line 1806 of yacc.c  */
    5520 #line 525 "parser.yy"
     5519#line 524 "parser.yy"
    55215520    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Neq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    55225521    break;
     
    55255524
    55265525/* Line 1806 of yacc.c  */
    5527 #line 531 "parser.yy"
     5526#line 530 "parser.yy"
    55285527    { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::BitAnd ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    55295528    break;
     
    55325531
    55335532/* Line 1806 of yacc.c  */
    5534 #line 537 "parser.yy"
     5533#line 536 "parser.yy"
    55355534    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Xor ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    55365535    break;
     
    55395538
    55405539/* Line 1806 of yacc.c  */
    5541 #line 543 "parser.yy"
     5540#line 542 "parser.yy"
    55425541    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::BitOr ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    55435542    break;
     
    55465545
    55475546/* Line 1806 of yacc.c  */
    5548 #line 549 "parser.yy"
     5547#line 548 "parser.yy"
    55495548    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::And ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    55505549    break;
     
    55535552
    55545553/* Line 1806 of yacc.c  */
    5555 #line 555 "parser.yy"
     5554#line 554 "parser.yy"
    55565555    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Or ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    55575556    break;
     
    55605559
    55615560/* Line 1806 of yacc.c  */
    5562 #line 561 "parser.yy"
     5561#line 560 "parser.yy"
    55635562    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); }
    55645563    break;
     
    55675566
    55685567/* Line 1806 of yacc.c  */
    5569 #line 563 "parser.yy"
     5568#line 562 "parser.yy"
    55705569    { (yyval.en)=new CompositeExprNode( new OperatorNode( OperatorNode::NCond ), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ); }
    55715570    break;
     
    55745573
    55755574/* Line 1806 of yacc.c  */
    5576 #line 565 "parser.yy"
     5575#line 564 "parser.yy"
    55775576    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); }
    55785577    break;
     
    55815580
    55825581/* Line 1806 of yacc.c  */
    5583 #line 576 "parser.yy"
     5582#line 575 "parser.yy"
    55845583    { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    55855584    break;
     
    55885587
    55895588/* Line 1806 of yacc.c  */
    5590 #line 578 "parser.yy"
     5589#line 577 "parser.yy"
    55915590    { (yyval.en) =new CompositeExprNode( (yyvsp[(2) - (3)].en), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    55925591    break;
     
    55955594
    55965595/* Line 1806 of yacc.c  */
    5597 #line 580 "parser.yy"
     5596#line 579 "parser.yy"
    55985597    { (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) ); }
    55995598    break;
     
    56025601
    56035602/* Line 1806 of yacc.c  */
    5604 #line 585 "parser.yy"
     5603#line 584 "parser.yy"
    56055604    { (yyval.en) = new NullExprNode; }
    56065605    break;
     
    56095608
    56105609/* Line 1806 of yacc.c  */
    5611 #line 593 "parser.yy"
     5610#line 592 "parser.yy"
    56125611    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ) ); }
    56135612    break;
     
    56165615
    56175616/* Line 1806 of yacc.c  */
    5618 #line 595 "parser.yy"
     5617#line 594 "parser.yy"
    56195618    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (yyvsp[(3) - (5)].en) ); }
    56205619    break;
     
    56235622
    56245623/* Line 1806 of yacc.c  */
    5625 #line 597 "parser.yy"
     5624#line 596 "parser.yy"
    56265625    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(new NullExprNode)->set_link( (yyvsp[(4) - (6)].en) ) ); }
    56275626    break;
     
    56305629
    56315630/* Line 1806 of yacc.c  */
    5632 #line 599 "parser.yy"
     5631#line 598 "parser.yy"
    56335632    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_link( flattenCommas( (yyvsp[(5) - (7)].en) ) ) ); }
    56345633    break;
     
    56375636
    56385637/* Line 1806 of yacc.c  */
    5639 #line 605 "parser.yy"
     5638#line 604 "parser.yy"
    56405639    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
    56415640    break;
     
    56445643
    56455644/* Line 1806 of yacc.c  */
     5645#line 608 "parser.yy"
     5646    { (yyval.en) = new OperatorNode( OperatorNode::MulAssn ); }
     5647    break;
     5648
     5649  case 118:
     5650
     5651/* Line 1806 of yacc.c  */
    56465652#line 609 "parser.yy"
    5647     { (yyval.en) = new OperatorNode( OperatorNode::MulAssn ); }
    5648     break;
    5649 
    5650   case 118:
     5653    { (yyval.en) = new OperatorNode( OperatorNode::DivAssn ); }
     5654    break;
     5655
     5656  case 119:
    56515657
    56525658/* Line 1806 of yacc.c  */
    56535659#line 610 "parser.yy"
    5654     { (yyval.en) = new OperatorNode( OperatorNode::DivAssn ); }
    5655     break;
    5656 
    5657   case 119:
     5660    { (yyval.en) = new OperatorNode( OperatorNode::ModAssn ); }
     5661    break;
     5662
     5663  case 120:
    56585664
    56595665/* Line 1806 of yacc.c  */
    56605666#line 611 "parser.yy"
    5661     { (yyval.en) = new OperatorNode( OperatorNode::ModAssn ); }
    5662     break;
    5663 
    5664   case 120:
     5667    { (yyval.en) = new OperatorNode( OperatorNode::PlusAssn ); }
     5668    break;
     5669
     5670  case 121:
    56655671
    56665672/* Line 1806 of yacc.c  */
    56675673#line 612 "parser.yy"
    5668     { (yyval.en) = new OperatorNode( OperatorNode::PlusAssn ); }
    5669     break;
    5670 
    5671   case 121:
     5674    { (yyval.en) = new OperatorNode( OperatorNode::MinusAssn ); }
     5675    break;
     5676
     5677  case 122:
    56725678
    56735679/* Line 1806 of yacc.c  */
    56745680#line 613 "parser.yy"
    5675     { (yyval.en) = new OperatorNode( OperatorNode::MinusAssn ); }
    5676     break;
    5677 
    5678   case 122:
     5681    { (yyval.en) = new OperatorNode( OperatorNode::LSAssn ); }
     5682    break;
     5683
     5684  case 123:
    56795685
    56805686/* Line 1806 of yacc.c  */
    56815687#line 614 "parser.yy"
    5682     { (yyval.en) = new OperatorNode( OperatorNode::LSAssn ); }
    5683     break;
    5684 
    5685   case 123:
     5688    { (yyval.en) = new OperatorNode( OperatorNode::RSAssn ); }
     5689    break;
     5690
     5691  case 124:
    56865692
    56875693/* Line 1806 of yacc.c  */
    56885694#line 615 "parser.yy"
    5689     { (yyval.en) = new OperatorNode( OperatorNode::RSAssn ); }
    5690     break;
    5691 
    5692   case 124:
     5695    { (yyval.en) = new OperatorNode( OperatorNode::AndAssn ); }
     5696    break;
     5697
     5698  case 125:
    56935699
    56945700/* Line 1806 of yacc.c  */
    56955701#line 616 "parser.yy"
    5696     { (yyval.en) = new OperatorNode( OperatorNode::AndAssn ); }
    5697     break;
    5698 
    5699   case 125:
     5702    { (yyval.en) = new OperatorNode( OperatorNode::ERAssn ); }
     5703    break;
     5704
     5705  case 126:
    57005706
    57015707/* Line 1806 of yacc.c  */
    57025708#line 617 "parser.yy"
    5703     { (yyval.en) = new OperatorNode( OperatorNode::ERAssn ); }
    5704     break;
    5705 
    5706   case 126:
    5707 
    5708 /* Line 1806 of yacc.c  */
    5709 #line 618 "parser.yy"
    57105709    { (yyval.en) = new OperatorNode( OperatorNode::OrAssn ); }
    57115710    break;
     
    57145713
    57155714/* Line 1806 of yacc.c  */
    5716 #line 624 "parser.yy"
     5715#line 623 "parser.yy"
    57175716    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Comma ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    57185717    break;
     
    57215720
    57225721/* Line 1806 of yacc.c  */
    5723 #line 629 "parser.yy"
     5722#line 628 "parser.yy"
    57245723    { (yyval.en) = 0; }
    57255724    break;
     
    57285727
    57295728/* Line 1806 of yacc.c  */
    5730 #line 638 "parser.yy"
     5729#line 637 "parser.yy"
    57315730    { (yyval.sn) = (yyvsp[(1) - (1)].sn); }
    57325731    break;
     
    57355734
    57365735/* Line 1806 of yacc.c  */
    5737 #line 645 "parser.yy"
     5736#line 644 "parser.yy"
    57385737    {
    57395738                        Token fn; fn.str = new std::string( "^?{}" ); // location undefined
     
    57465745
    57475746/* Line 1806 of yacc.c  */
    5748 #line 654 "parser.yy"
     5747#line 653 "parser.yy"
    57495748    {
    57505749                        (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) );
     
    57555754
    57565755/* Line 1806 of yacc.c  */
    5757 #line 661 "parser.yy"
     5756#line 660 "parser.yy"
    57585757    { (yyval.sn) = new CompoundStmtNode( (StatementNode *)0 ); }
    57595758    break;
     
    57625761
    57635762/* Line 1806 of yacc.c  */
    5764 #line 668 "parser.yy"
     5763#line 667 "parser.yy"
    57655764    { (yyval.sn) = new CompoundStmtNode( (yyvsp[(5) - (7)].sn) ); }
    57665765    break;
     
    57695768
    57705769/* Line 1806 of yacc.c  */
    5771 #line 674 "parser.yy"
     5770#line 673 "parser.yy"
    57725771    { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
    57735772    break;
     
    57765775
    57775776/* Line 1806 of yacc.c  */
    5778 #line 679 "parser.yy"
     5777#line 678 "parser.yy"
    57795778    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    57805779    break;
     
    57835782
    57845783/* Line 1806 of yacc.c  */
    5785 #line 681 "parser.yy"
     5784#line 680 "parser.yy"
    57865785    { (yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) ); }
    57875786    break;
     
    57905789
    57915790/* Line 1806 of yacc.c  */
    5792 #line 683 "parser.yy"
     5791#line 682 "parser.yy"
    57935792    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    57945793    break;
     
    57975796
    57985797/* Line 1806 of yacc.c  */
    5799 #line 690 "parser.yy"
     5798#line 689 "parser.yy"
    58005799    { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
    58015800    break;
     
    58045803
    58055804/* Line 1806 of yacc.c  */
    5806 #line 695 "parser.yy"
     5805#line 694 "parser.yy"
    58075806    { (yyval.sn) = new StatementNode( StatementNode::Exp, (yyvsp[(1) - (2)].en), 0 ); }
    58085807    break;
     
    58115810
    58125811/* Line 1806 of yacc.c  */
    5813 #line 701 "parser.yy"
     5812#line 700 "parser.yy"
    58145813    { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    58155814    break;
     
    58185817
    58195818/* Line 1806 of yacc.c  */
    5820 #line 703 "parser.yy"
     5819#line 702 "parser.yy"
    58215820    { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (7)].en), (StatementNode *)mkList((*(yyvsp[(5) - (7)].sn), *(yyvsp[(7) - (7)].sn) )) ); }
    58225821    break;
     
    58255824
    58265825/* Line 1806 of yacc.c  */
    5827 #line 705 "parser.yy"
     5826#line 704 "parser.yy"
    58285827    { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    58295828    break;
     
    58325831
    58335832/* Line 1806 of yacc.c  */
    5834 #line 707 "parser.yy"
     5833#line 706 "parser.yy"
    58355834    { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); /* xxx */ }
    58365835    break;
     
    58395838
    58405839/* Line 1806 of yacc.c  */
    5841 #line 712 "parser.yy"
     5840#line 711 "parser.yy"
    58425841    { (yyval.sn) = new StatementNode( StatementNode::Choose, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    58435842    break;
     
    58465845
    58475846/* Line 1806 of yacc.c  */
    5848 #line 714 "parser.yy"
     5847#line 713 "parser.yy"
    58495848    { (yyval.sn) = new StatementNode( StatementNode::Choose, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); }
    58505849    break;
     
    58535852
    58545853/* Line 1806 of yacc.c  */
    5855 #line 721 "parser.yy"
     5854#line 720 "parser.yy"
    58565855    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    58575856    break;
     
    58605859
    58615860/* Line 1806 of yacc.c  */
    5862 #line 723 "parser.yy"
     5861#line 722 "parser.yy"
    58635862    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    58645863    break;
     
    58675866
    58685867/* Line 1806 of yacc.c  */
    5869 #line 730 "parser.yy"
     5868#line 729 "parser.yy"
    58705869    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(tupleContents( (yyvsp[(1) - (3)].en) ))->set_link( (yyvsp[(3) - (3)].en) ) ); }
    58715870    break;
     
    58745873
    58755874/* Line 1806 of yacc.c  */
     5875#line 733 "parser.yy"
     5876    { (yyval.sn) = new StatementNode( StatementNode::Case, (yyvsp[(2) - (3)].en), 0 ); }
     5877    break;
     5878
     5879  case 164:
     5880
     5881/* Line 1806 of yacc.c  */
    58765882#line 734 "parser.yy"
    5877     { (yyval.sn) = new StatementNode( StatementNode::Case, (yyvsp[(2) - (3)].en), 0 ); }
    5878     break;
    5879 
    5880   case 164:
    5881 
    5882 /* Line 1806 of yacc.c  */
    5883 #line 735 "parser.yy"
    58845883    { (yyval.sn) = new StatementNode( StatementNode::Default ); }
    58855884    break;
     
    58885887
    58895888/* Line 1806 of yacc.c  */
    5890 #line 741 "parser.yy"
     5889#line 740 "parser.yy"
    58915890    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) )); }
    58925891    break;
     
    58955894
    58965895/* Line 1806 of yacc.c  */
    5897 #line 745 "parser.yy"
     5896#line 744 "parser.yy"
    58985897    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    58995898    break;
     
    59025901
    59035902/* Line 1806 of yacc.c  */
    5904 #line 750 "parser.yy"
     5903#line 749 "parser.yy"
    59055904    { (yyval.sn) = 0; }
    59065905    break;
     
    59095908
    59105909/* Line 1806 of yacc.c  */
    5911 #line 756 "parser.yy"
     5910#line 755 "parser.yy"
    59125911    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    59135912    break;
     
    59165915
    59175916/* Line 1806 of yacc.c  */
    5918 #line 758 "parser.yy"
     5917#line 757 "parser.yy"
    59195918    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
    59205919    break;
     
    59235922
    59245923/* Line 1806 of yacc.c  */
    5925 #line 763 "parser.yy"
     5924#line 762 "parser.yy"
    59265925    { (yyval.sn) = 0; }
    59275926    break;
     
    59305929
    59315930/* Line 1806 of yacc.c  */
    5932 #line 769 "parser.yy"
     5931#line 768 "parser.yy"
    59335932    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    59345933    break;
     
    59375936
    59385937/* Line 1806 of yacc.c  */
    5939 #line 771 "parser.yy"
     5938#line 770 "parser.yy"
    59405939    { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].sn) ))); }
    59415940    break;
     
    59445943
    59455944/* Line 1806 of yacc.c  */
    5946 #line 773 "parser.yy"
     5945#line 772 "parser.yy"
    59475946    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
    59485947    break;
     
    59515950
    59525951/* Line 1806 of yacc.c  */
    5953 #line 775 "parser.yy"
     5952#line 774 "parser.yy"
    59545953    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_link( (yyvsp[(2) - (4)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(3) - (4)].sn),*(yyvsp[(4) - (4)].sn) ))))); }
    59555954    break;
     
    59585957
    59595958/* Line 1806 of yacc.c  */
    5960 #line 780 "parser.yy"
     5959#line 779 "parser.yy"
    59615960    { (yyval.sn) = 0; }
    59625961    break;
    59635962
    59645963  case 180:
     5964
     5965/* Line 1806 of yacc.c  */
     5966#line 784 "parser.yy"
     5967    { (yyval.sn) = new StatementNode( StatementNode::Fallthru ); }
     5968    break;
     5969
     5970  case 181:
    59655971
    59665972/* Line 1806 of yacc.c  */
     
    59695975    break;
    59705976
    5971   case 181:
    5972 
    5973 /* Line 1806 of yacc.c  */
    5974 #line 786 "parser.yy"
    5975     { (yyval.sn) = new StatementNode( StatementNode::Fallthru ); }
    5976     break;
    5977 
    59785977  case 182:
    59795978
    59805979/* Line 1806 of yacc.c  */
    5981 #line 791 "parser.yy"
     5980#line 790 "parser.yy"
    59825981    { (yyval.sn) = new StatementNode( StatementNode::While, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    59835982    break;
     
    59865985
    59875986/* Line 1806 of yacc.c  */
    5988 #line 793 "parser.yy"
     5987#line 792 "parser.yy"
    59895988    { (yyval.sn) = new StatementNode( StatementNode::Do, (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ); }
    59905989    break;
     
    59935992
    59945993/* Line 1806 of yacc.c  */
    5995 #line 795 "parser.yy"
     5994#line 794 "parser.yy"
    59965995    { (yyval.sn) = new StatementNode( StatementNode::For, (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].sn) ); }
    59975996    break;
     
    60005999
    60016000/* Line 1806 of yacc.c  */
    6002 #line 800 "parser.yy"
     6001#line 799 "parser.yy"
    60036002    { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
    60046003    break;
     
    60076006
    60086007/* Line 1806 of yacc.c  */
    6009 #line 802 "parser.yy"
     6008#line 801 "parser.yy"
    60106009    { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
    60116010    break;
     
    60146013
    60156014/* Line 1806 of yacc.c  */
    6016 #line 807 "parser.yy"
     6015#line 806 "parser.yy"
    60176016    { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(2) - (3)].tok) ); }
    60186017    break;
     
    60216020
    60226021/* Line 1806 of yacc.c  */
    6023 #line 811 "parser.yy"
     6022#line 810 "parser.yy"
    60246023    { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(3) - (4)].en) ); }
    60256024    break;
     
    60286027
    60296028/* Line 1806 of yacc.c  */
    6030 #line 814 "parser.yy"
     6029#line 813 "parser.yy"
    60316030    { (yyval.sn) = new StatementNode( StatementNode::Continue ); }
    60326031    break;
     
    60356034
    60366035/* Line 1806 of yacc.c  */
    6037 #line 818 "parser.yy"
     6036#line 817 "parser.yy"
    60386037    { (yyval.sn) = new StatementNode( StatementNode::Continue, (yyvsp[(2) - (3)].tok) ); }
    60396038    break;
     
    60426041
    60436042/* Line 1806 of yacc.c  */
    6044 #line 821 "parser.yy"
     6043#line 820 "parser.yy"
    60456044    { (yyval.sn) = new StatementNode( StatementNode::Break ); }
    60466045    break;
     
    60496048
    60506049/* Line 1806 of yacc.c  */
    6051 #line 825 "parser.yy"
     6050#line 824 "parser.yy"
    60526051    { (yyval.sn) = new StatementNode( StatementNode::Break, (yyvsp[(2) - (3)].tok) ); }
    60536052    break;
     
    60566055
    60576056/* Line 1806 of yacc.c  */
    6058 #line 827 "parser.yy"
     6057#line 826 "parser.yy"
    60596058    { (yyval.sn) = new StatementNode( StatementNode::Return, (yyvsp[(2) - (3)].en), 0 ); }
    60606059    break;
     
    60636062
    60646063/* Line 1806 of yacc.c  */
    6065 #line 829 "parser.yy"
     6064#line 828 "parser.yy"
    60666065    { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); }
    60676066    break;
     
    60706069
    60716070/* Line 1806 of yacc.c  */
    6072 #line 833 "parser.yy"
     6071#line 832 "parser.yy"
    60736072    { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); }
    60746073    break;
     
    60776076
    60786077/* Line 1806 of yacc.c  */
    6079 #line 835 "parser.yy"
     6078#line 834 "parser.yy"
    60806079    { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (5)].en), 0 ); }
    60816080    break;
     
    60846083
    60856084/* Line 1806 of yacc.c  */
    6086 #line 842 "parser.yy"
     6085#line 841 "parser.yy"
    60876086    { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); }
    60886087    break;
     
    60916090
    60926091/* Line 1806 of yacc.c  */
    6093 #line 844 "parser.yy"
     6092#line 843 "parser.yy"
    60946093    { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); }
    60956094    break;
     
    60986097
    60996098/* Line 1806 of yacc.c  */
    6100 #line 846 "parser.yy"
     6099#line 845 "parser.yy"
    61016100    {
    61026101                        (yyvsp[(3) - (4)].pn)->set_link( (yyvsp[(4) - (4)].pn) );
     
    61086107
    61096108/* Line 1806 of yacc.c  */
    6110 #line 857 "parser.yy"
     6109#line 856 "parser.yy"
    61116110    { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); }
    61126111    break;
     
    61156114
    61166115/* Line 1806 of yacc.c  */
    6117 #line 859 "parser.yy"
     6116#line 858 "parser.yy"
    61186117    { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); }
    61196118    break;
     
    61226121
    61236122/* Line 1806 of yacc.c  */
    6124 #line 861 "parser.yy"
     6123#line 860 "parser.yy"
    61256124    { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); }
    61266125    break;
     
    61296128
    61306129/* Line 1806 of yacc.c  */
    6131 #line 863 "parser.yy"
     6130#line 862 "parser.yy"
    61326131    { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); }
    61336132    break;
     
    61366135
    61376136/* Line 1806 of yacc.c  */
    6138 #line 868 "parser.yy"
     6137#line 867 "parser.yy"
    61396138    { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); }
    61406139    break;
     
    61436142
    61446143/* Line 1806 of yacc.c  */
    6145 #line 870 "parser.yy"
     6144#line 869 "parser.yy"
    61466145    { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); }
    61476146    break;
     
    61506149
    61516150/* Line 1806 of yacc.c  */
    6152 #line 872 "parser.yy"
     6151#line 871 "parser.yy"
    61536152    { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); }
    61546153    break;
     
    61576156
    61586157/* Line 1806 of yacc.c  */
    6159 #line 874 "parser.yy"
     6158#line 873 "parser.yy"
    61606159    { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); }
    61616160    break;
     
    61646163
    61656164/* Line 1806 of yacc.c  */
    6166 #line 879 "parser.yy"
     6165#line 878 "parser.yy"
    61676166    {
    61686167                        (yyval.pn) = new StatementNode( StatementNode::Finally, 0, (yyvsp[(2) - (2)].sn) );
     
    61746173
    61756174/* Line 1806 of yacc.c  */
    6176 #line 893 "parser.yy"
     6175#line 892 "parser.yy"
    61776176    {
    61786177                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    61846183
    61856184/* Line 1806 of yacc.c  */
    6186 #line 898 "parser.yy"
     6185#line 897 "parser.yy"
    61876186    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    61886187    break;
     
    61916190
    61926191/* Line 1806 of yacc.c  */
    6193 #line 900 "parser.yy"
     6192#line 899 "parser.yy"
    61946193    {
    61956194                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    62016200
    62026201/* Line 1806 of yacc.c  */
    6203 #line 909 "parser.yy"
     6202#line 908 "parser.yy"
    62046203    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ); }
    62056204    break;
     
    62086207
    62096208/* Line 1806 of yacc.c  */
    6210 #line 911 "parser.yy"
     6209#line 910 "parser.yy"
    62116210    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ); }
    62126211    break;
     
    62156214
    62166215/* Line 1806 of yacc.c  */
    6217 #line 913 "parser.yy"
     6216#line 912 "parser.yy"
    62186217    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ); }
    62196218    break;
     
    62226221
    62236222/* Line 1806 of yacc.c  */
    6224 #line 915 "parser.yy"
     6223#line 914 "parser.yy"
    62256224    { (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) ); }
    62266225    break;
     
    62296228
    62306229/* Line 1806 of yacc.c  */
    6231 #line 917 "parser.yy"
     6230#line 916 "parser.yy"
    62326231    { (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) ); }
    62336232    break;
     
    62366235
    62376236/* Line 1806 of yacc.c  */
    6238 #line 922 "parser.yy"
     6237#line 921 "parser.yy"
    62396238    { (yyval.flag) = false; }
    62406239    break;
     
    62436242
    62446243/* Line 1806 of yacc.c  */
    6245 #line 924 "parser.yy"
     6244#line 923 "parser.yy"
    62466245    { (yyval.flag) = true; }
    62476246    break;
     
    62506249
    62516250/* Line 1806 of yacc.c  */
    6252 #line 929 "parser.yy"
     6251#line 928 "parser.yy"
    62536252    { (yyval.en) = 0; }
    62546253    break;
     
    62576256
    62586257/* Line 1806 of yacc.c  */
    6259 #line 936 "parser.yy"
     6258#line 935 "parser.yy"
    62606259    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
    62616260    break;
     
    62646263
    62656264/* Line 1806 of yacc.c  */
    6266 #line 941 "parser.yy"
     6265#line 940 "parser.yy"
    62676266    { (yyval.en) = new AsmExprNode( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ); }
    62686267    break;
     
    62716270
    62726271/* Line 1806 of yacc.c  */
    6273 #line 943 "parser.yy"
     6272#line 942 "parser.yy"
    62746273    { (yyval.en) = new AsmExprNode( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ); }
    62756274    break;
     
    62786277
    62796278/* Line 1806 of yacc.c  */
    6280 #line 948 "parser.yy"
     6279#line 947 "parser.yy"
    62816280    { (yyval.constant) = 0; }
    62826281    break;
     
    62856284
    62866285/* Line 1806 of yacc.c  */
    6287 #line 950 "parser.yy"
     6286#line 949 "parser.yy"
    62886287    { (yyval.constant) = (yyvsp[(1) - (1)].constant); }
    62896288    break;
     
    62926291
    62936292/* Line 1806 of yacc.c  */
    6294 #line 952 "parser.yy"
     6293#line 951 "parser.yy"
    62956294    { (yyval.constant) = (ConstantNode *)(yyvsp[(1) - (3)].constant)->set_link( (yyvsp[(3) - (3)].constant) ); }
    62966295    break;
     
    62996298
    63006299/* Line 1806 of yacc.c  */
    6301 #line 957 "parser.yy"
     6300#line 956 "parser.yy"
    63026301    { (yyval.label) = new LabelNode(); (yyval.label)->append_label( (yyvsp[(1) - (1)].tok) ); }
    63036302    break;
     
    63066305
    63076306/* Line 1806 of yacc.c  */
    6308 #line 959 "parser.yy"
     6307#line 958 "parser.yy"
    63096308    { (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->append_label( (yyvsp[(3) - (3)].tok) ); }
    63106309    break;
     
    63136312
    63146313/* Line 1806 of yacc.c  */
    6315 #line 966 "parser.yy"
     6314#line 965 "parser.yy"
    63166315    { (yyval.decl) = 0; }
    63176316    break;
     
    63206319
    63216320/* Line 1806 of yacc.c  */
    6322 #line 973 "parser.yy"
     6321#line 972 "parser.yy"
    63236322    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    63246323    break;
     
    63276326
    63286327/* Line 1806 of yacc.c  */
    6329 #line 978 "parser.yy"
     6328#line 977 "parser.yy"
    63306329    { (yyval.decl) = 0; }
    63316330    break;
     
    63346333
    63356334/* Line 1806 of yacc.c  */
    6336 #line 985 "parser.yy"
     6335#line 984 "parser.yy"
    63376336    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    63386337    break;
    63396338
    63406339  case 245:
     6340
     6341/* Line 1806 of yacc.c  */
     6342#line 998 "parser.yy"
     6343    {}
     6344    break;
     6345
     6346  case 246:
    63416347
    63426348/* Line 1806 of yacc.c  */
     
    63456351    break;
    63466352
    6347   case 246:
    6348 
    6349 /* Line 1806 of yacc.c  */
    6350 #line 1000 "parser.yy"
    6351     {}
    6352     break;
    6353 
    63546353  case 254:
    63556354
    63566355/* Line 1806 of yacc.c  */
    6357 #line 1029 "parser.yy"
     6356#line 1028 "parser.yy"
    63586357    {
    63596358                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6360                         (yyval.decl) = (yyvsp[(1) - (2)].decl)->addInitializer( (yyvsp[(2) - (2)].in) );
     6359                        (yyval.decl) = (yyvsp[(1) - (2)].decl);
    63616360                }
    63626361    break;
     
    63656364
    63666365/* Line 1806 of yacc.c  */
    6367 #line 1036 "parser.yy"
     6366#line 1035 "parser.yy"
    63686367    {
    63696368                        typedefTable.addToEnclosingScope( TypedefTable::ID );
    6370                         (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addInitializer( (yyvsp[(3) - (3)].in) );;
     6369                        (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) );
    63716370                }
    63726371    break;
     
    63756374
    63766375/* Line 1806 of yacc.c  */
    6377 #line 1041 "parser.yy"
     6376#line 1040 "parser.yy"
    63786377    {
    63796378                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID );
    6380                         (yyval.decl) = (yyvsp[(1) - (6)].decl)->appendList( (yyvsp[(1) - (6)].decl)->cloneType( (yyvsp[(5) - (6)].tok) )->addInitializer( (yyvsp[(6) - (6)].in) ) );
     6379                        (yyval.decl) = (yyvsp[(1) - (6)].decl)->appendList( (yyvsp[(1) - (6)].decl)->cloneType( (yyvsp[(5) - (6)].tok) ) );
    63816380                }
    63826381    break;
     
    63856384
    63866385/* Line 1806 of yacc.c  */
    6387 #line 1051 "parser.yy"
     6386#line 1050 "parser.yy"
    63886387    {
    63896388                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    63956394
    63966395/* Line 1806 of yacc.c  */
    6397 #line 1056 "parser.yy"
     6396#line 1055 "parser.yy"
    63986397    {
    63996398                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    64056404
    64066405/* Line 1806 of yacc.c  */
    6407 #line 1061 "parser.yy"
     6406#line 1060 "parser.yy"
    64086407    {
    64096408                        typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) );
     
    64156414
    64166415/* Line 1806 of yacc.c  */
    6417 #line 1069 "parser.yy"
     6416#line 1068 "parser.yy"
    64186417    {
    64196418                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64256424
    64266425/* Line 1806 of yacc.c  */
    6427 #line 1074 "parser.yy"
     6426#line 1073 "parser.yy"
    64286427    {
    64296428                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64356434
    64366435/* Line 1806 of yacc.c  */
    6437 #line 1079 "parser.yy"
     6436#line 1078 "parser.yy"
    64386437    {
    64396438                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64456444
    64466445/* Line 1806 of yacc.c  */
    6447 #line 1084 "parser.yy"
     6446#line 1083 "parser.yy"
    64486447    {
    64496448                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64556454
    64566455/* Line 1806 of yacc.c  */
    6457 #line 1089 "parser.yy"
     6456#line 1088 "parser.yy"
    64586457    {
    64596458                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    64656464
    64666465/* Line 1806 of yacc.c  */
    6467 #line 1097 "parser.yy"
     6466#line 1096 "parser.yy"
    64686467    {
    64696468                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true );
     
    64746473
    64756474/* Line 1806 of yacc.c  */
    6476 #line 1120 "parser.yy"
     6475#line 1119 "parser.yy"
    64776476    {
    64786477                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    64836482
    64846483/* Line 1806 of yacc.c  */
    6485 #line 1124 "parser.yy"
     6484#line 1123 "parser.yy"
    64866485    {
    64876486                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    64926491
    64936492/* Line 1806 of yacc.c  */
    6494 #line 1131 "parser.yy"
     6493#line 1130 "parser.yy"
    64956494    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    64966495    break;
     
    64996498
    65006499/* Line 1806 of yacc.c  */
    6501 #line 1135 "parser.yy"
     6500#line 1134 "parser.yy"
    65026501    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
    65036502    break;
     
    65066505
    65076506/* Line 1806 of yacc.c  */
    6508 #line 1140 "parser.yy"
     6507#line 1139 "parser.yy"
    65096508    {
    65106509                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65166515
    65176516/* Line 1806 of yacc.c  */
    6518 #line 1145 "parser.yy"
     6517#line 1144 "parser.yy"
    65196518    {
    65206519                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65266525
    65276526/* Line 1806 of yacc.c  */
    6528 #line 1150 "parser.yy"
     6527#line 1149 "parser.yy"
    65296528    {
    65306529                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD );
     
    65366535
    65376536/* Line 1806 of yacc.c  */
    6538 #line 1161 "parser.yy"
     6537#line 1160 "parser.yy"
    65396538    {
    65406539                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65466545
    65476546/* Line 1806 of yacc.c  */
    6548 #line 1166 "parser.yy"
     6547#line 1165 "parser.yy"
    65496548    {
    65506549                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65566555
    65576556/* Line 1806 of yacc.c  */
    6558 #line 1171 "parser.yy"
     6557#line 1170 "parser.yy"
    65596558    {
    65606559                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65666565
    65676566/* Line 1806 of yacc.c  */
    6568 #line 1176 "parser.yy"
     6567#line 1175 "parser.yy"
    65696568    {
    65706569                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65766575
    65776576/* Line 1806 of yacc.c  */
    6578 #line 1181 "parser.yy"
     6577#line 1180 "parser.yy"
    65796578    {
    65806579                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65866585
    65876586/* Line 1806 of yacc.c  */
    6588 #line 1190 "parser.yy"
     6587#line 1189 "parser.yy"
    65896588    {
    65906589                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD );
     
    65966595
    65976596/* Line 1806 of yacc.c  */
    6598 #line 1195 "parser.yy"
     6597#line 1194 "parser.yy"
    65996598    {
    66006599                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD );
     
    66066605
    66076606/* Line 1806 of yacc.c  */
    6608 #line 1212 "parser.yy"
     6607#line 1211 "parser.yy"
    66096608    {
    66106609                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    66166615
    66176616/* Line 1806 of yacc.c  */
    6618 #line 1217 "parser.yy"
     6617#line 1216 "parser.yy"
    66196618    {
    66206619                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    66266625
    66276626/* Line 1806 of yacc.c  */
    6628 #line 1239 "parser.yy"
     6627#line 1238 "parser.yy"
    66296628    { (yyval.decl) = 0; }
    66306629    break;
     
    66336632
    66346633/* Line 1806 of yacc.c  */
    6635 #line 1251 "parser.yy"
     6634#line 1250 "parser.yy"
    66366635    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    66376636    break;
     
    66406639
    66416640/* Line 1806 of yacc.c  */
    6642 #line 1262 "parser.yy"
     6641#line 1261 "parser.yy"
    66436642    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
    66446643    break;
     
    66476646
    66486647/* Line 1806 of yacc.c  */
    6649 #line 1264 "parser.yy"
     6648#line 1263 "parser.yy"
    66506649    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
    66516650    break;
     
    66546653
    66556654/* Line 1806 of yacc.c  */
    6656 #line 1266 "parser.yy"
     6655#line 1265 "parser.yy"
    66576656    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
    66586657    break;
     
    66616660
    66626661/* Line 1806 of yacc.c  */
    6663 #line 1268 "parser.yy"
     6662#line 1267 "parser.yy"
    66646663    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
    66656664    break;
     
    66686667
    66696668/* Line 1806 of yacc.c  */
    6670 #line 1270 "parser.yy"
     6669#line 1269 "parser.yy"
    66716670    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
    66726671    break;
     
    66756674
    66766675/* Line 1806 of yacc.c  */
    6677 #line 1272 "parser.yy"
     6676#line 1271 "parser.yy"
    66786677    {
    66796678                        typedefTable.enterScope();
     
    66846683
    66856684/* Line 1806 of yacc.c  */
    6686 #line 1276 "parser.yy"
     6685#line 1275 "parser.yy"
    66876686    {
    66886687                        typedefTable.leaveScope();
     
    66946693
    66956694/* Line 1806 of yacc.c  */
    6696 #line 1285 "parser.yy"
     6695#line 1284 "parser.yy"
    66976696    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    66986697    break;
     
    67016700
    67026701/* Line 1806 of yacc.c  */
    6703 #line 1287 "parser.yy"
     6702#line 1286 "parser.yy"
    67046703    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    67056704    break;
     
    67086707
    67096708/* Line 1806 of yacc.c  */
    6710 #line 1298 "parser.yy"
     6709#line 1297 "parser.yy"
    67116710    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    67126711    break;
     
    67156714
    67166715/* Line 1806 of yacc.c  */
    6717 #line 1307 "parser.yy"
     6716#line 1306 "parser.yy"
    67186717    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
    67196718    break;
     
    67226721
    67236722/* Line 1806 of yacc.c  */
    6724 #line 1309 "parser.yy"
     6723#line 1308 "parser.yy"
    67256724    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
    67266725    break;
     
    67296728
    67306729/* Line 1806 of yacc.c  */
    6731 #line 1311 "parser.yy"
     6730#line 1310 "parser.yy"
    67326731    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
    67336732    break;
     
    67366735
    67376736/* Line 1806 of yacc.c  */
    6738 #line 1313 "parser.yy"
     6737#line 1312 "parser.yy"
    67396738    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
    67406739    break;
     
    67436742
    67446743/* Line 1806 of yacc.c  */
    6745 #line 1315 "parser.yy"
     6744#line 1314 "parser.yy"
    67466745    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); }
    67476746    break;
     
    67506749
    67516750/* Line 1806 of yacc.c  */
    6752 #line 1317 "parser.yy"
     6751#line 1316 "parser.yy"
    67536752    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
    67546753    break;
     
    67576756
    67586757/* Line 1806 of yacc.c  */
    6759 #line 1319 "parser.yy"
     6758#line 1318 "parser.yy"
    67606759    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); }
    67616760    break;
     
    67646763
    67656764/* Line 1806 of yacc.c  */
    6766 #line 1321 "parser.yy"
     6765#line 1320 "parser.yy"
    67676766    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
    67686767    break;
     
    67716770
    67726771/* Line 1806 of yacc.c  */
    6773 #line 1326 "parser.yy"
     6772#line 1325 "parser.yy"
    67746773    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
    67756774    break;
     
    67786777
    67796778/* Line 1806 of yacc.c  */
    6780 #line 1328 "parser.yy"
     6779#line 1327 "parser.yy"
    67816780    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
    67826781    break;
     
    67856784
    67866785/* Line 1806 of yacc.c  */
    6787 #line 1330 "parser.yy"
     6786#line 1329 "parser.yy"
    67886787    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
    67896788    break;
     
    67926791
    67936792/* Line 1806 of yacc.c  */
    6794 #line 1332 "parser.yy"
     6793#line 1331 "parser.yy"
    67956794    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
    67966795    break;
     
    67996798
    68006799/* Line 1806 of yacc.c  */
    6801 #line 1334 "parser.yy"
     6800#line 1333 "parser.yy"
    68026801    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); }
    68036802    break;
     
    68066805
    68076806/* Line 1806 of yacc.c  */
    6808 #line 1336 "parser.yy"
     6807#line 1335 "parser.yy"
    68096808    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); }
    68106809    break;
     
    68136812
    68146813/* Line 1806 of yacc.c  */
    6815 #line 1338 "parser.yy"
     6814#line 1337 "parser.yy"
    68166815    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); }
    68176816    break;
     
    68206819
    68216820/* Line 1806 of yacc.c  */
    6822 #line 1340 "parser.yy"
     6821#line 1339 "parser.yy"
    68236822    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); }
    68246823    break;
     
    68276826
    68286827/* Line 1806 of yacc.c  */
    6829 #line 1342 "parser.yy"
     6828#line 1341 "parser.yy"
    68306829    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
    68316830    break;
     
    68346833
    68356834/* Line 1806 of yacc.c  */
    6836 #line 1344 "parser.yy"
     6835#line 1343 "parser.yy"
    68376836    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
    68386837    break;
     
    68416840
    68426841/* Line 1806 of yacc.c  */
    6843 #line 1346 "parser.yy"
     6842#line 1345 "parser.yy"
    68446843    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); }
    68456844    break;
     
    68486847
    68496848/* Line 1806 of yacc.c  */
    6850 #line 1348 "parser.yy"
     6849#line 1347 "parser.yy"
    68516850    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); }
    68526851    break;
     
    68556854
    68566855/* Line 1806 of yacc.c  */
    6857 #line 1350 "parser.yy"
     6856#line 1349 "parser.yy"
    68586857    { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
    68596858    break;
     
    68626861
    68636862/* Line 1806 of yacc.c  */
    6864 #line 1357 "parser.yy"
     6863#line 1356 "parser.yy"
    68656864    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68666865    break;
     
    68696868
    68706869/* Line 1806 of yacc.c  */
    6871 #line 1359 "parser.yy"
     6870#line 1358 "parser.yy"
    68726871    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68736872    break;
     
    68766875
    68776876/* Line 1806 of yacc.c  */
    6878 #line 1361 "parser.yy"
     6877#line 1360 "parser.yy"
    68796878    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    68806879    break;
     
    68836882
    68846883/* Line 1806 of yacc.c  */
    6885 #line 1363 "parser.yy"
     6884#line 1362 "parser.yy"
    68866885    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
    68876886    break;
     
    68906889
    68916890/* Line 1806 of yacc.c  */
    6892 #line 1369 "parser.yy"
     6891#line 1368 "parser.yy"
    68936892    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    68946893    break;
     
    68976896
    68986897/* Line 1806 of yacc.c  */
    6899 #line 1376 "parser.yy"
     6898#line 1375 "parser.yy"
    69006899    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69016900    break;
     
    69046903
    69056904/* Line 1806 of yacc.c  */
    6906 #line 1378 "parser.yy"
     6905#line 1377 "parser.yy"
    69076906    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69086907    break;
     
    69116910
    69126911/* Line 1806 of yacc.c  */
    6913 #line 1380 "parser.yy"
     6912#line 1379 "parser.yy"
    69146913    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
    69156914    break;
     
    69186917
    69196918/* Line 1806 of yacc.c  */
    6920 #line 1385 "parser.yy"
     6919#line 1384 "parser.yy"
    69216920    { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
    69226921    break;
     
    69256924
    69266925/* Line 1806 of yacc.c  */
    6927 #line 1387 "parser.yy"
     6926#line 1386 "parser.yy"
    69286927    { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
    69296928    break;
     
    69326931
    69336932/* Line 1806 of yacc.c  */
    6934 #line 1389 "parser.yy"
     6933#line 1388 "parser.yy"
    69356934    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
    69366935    break;
     
    69396938
    69406939/* Line 1806 of yacc.c  */
    6941 #line 1391 "parser.yy"
     6940#line 1390 "parser.yy"
    69426941    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    69436942    break;
     
    69466945
    69476946/* Line 1806 of yacc.c  */
    6948 #line 1397 "parser.yy"
     6947#line 1396 "parser.yy"
    69496948    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69506949    break;
     
    69536952
    69546953/* Line 1806 of yacc.c  */
    6955 #line 1399 "parser.yy"
     6954#line 1398 "parser.yy"
    69566955    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69576956    break;
     
    69606959
    69616960/* Line 1806 of yacc.c  */
    6962 #line 1401 "parser.yy"
     6961#line 1400 "parser.yy"
    69636962    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    69646963    break;
     
    69676966
    69686967/* Line 1806 of yacc.c  */
    6969 #line 1407 "parser.yy"
     6968#line 1406 "parser.yy"
    69706969    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69716970    break;
     
    69746973
    69756974/* Line 1806 of yacc.c  */
    6976 #line 1409 "parser.yy"
     6975#line 1408 "parser.yy"
    69776976    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69786977    break;
     
    69816980
    69826981/* Line 1806 of yacc.c  */
    6983 #line 1415 "parser.yy"
     6982#line 1414 "parser.yy"
    69846983    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69856984    break;
     
    69886987
    69896988/* Line 1806 of yacc.c  */
    6990 #line 1417 "parser.yy"
     6989#line 1416 "parser.yy"
    69916990    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69926991    break;
     
    69956994
    69966995/* Line 1806 of yacc.c  */
    6997 #line 1419 "parser.yy"
     6996#line 1418 "parser.yy"
    69986997    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    69996998    break;
     
    70027001
    70037002/* Line 1806 of yacc.c  */
    7004 #line 1424 "parser.yy"
     7003#line 1423 "parser.yy"
    70057004    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
    70067005    break;
     
    70097008
    70107009/* Line 1806 of yacc.c  */
    7011 #line 1426 "parser.yy"
     7010#line 1425 "parser.yy"
    70127011    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    70137012    break;
     
    70167015
    70177016/* Line 1806 of yacc.c  */
    7018 #line 1428 "parser.yy"
     7017#line 1427 "parser.yy"
    70197018    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    70207019    break;
     
    70237022
    70247023/* Line 1806 of yacc.c  */
    7025 #line 1438 "parser.yy"
     7024#line 1437 "parser.yy"
    70267025    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl) ); }
    70277026    break;
     
    70307029
    70317030/* Line 1806 of yacc.c  */
    7032 #line 1440 "parser.yy"
     7031#line 1439 "parser.yy"
    70337032    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), 0, 0 ); }
    70347033    break;
     
    70377036
    70387037/* Line 1806 of yacc.c  */
    7039 #line 1442 "parser.yy"
     7038#line 1441 "parser.yy"
    70407039    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (5)].aggKey), (yyvsp[(2) - (5)].tok), 0, (yyvsp[(4) - (5)].decl) ); }
    70417040    break;
     
    70447043
    70457044/* Line 1806 of yacc.c  */
    7046 #line 1444 "parser.yy"
     7045#line 1443 "parser.yy"
    70477046    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl) ); }
    70487047    break;
     
    70517050
    70527051/* Line 1806 of yacc.c  */
    7053 #line 1446 "parser.yy"
     7052#line 1445 "parser.yy"
    70547053    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    70557054    break;
     
    70587057
    70597058/* Line 1806 of yacc.c  */
    7060 #line 1451 "parser.yy"
     7059#line 1450 "parser.yy"
    70617060    { (yyval.aggKey) = DeclarationNode::Struct; }
    70627061    break;
     
    70657064
    70667065/* Line 1806 of yacc.c  */
    7067 #line 1453 "parser.yy"
     7066#line 1452 "parser.yy"
    70687067    { (yyval.aggKey) = DeclarationNode::Union; }
    70697068    break;
     
    70727071
    70737072/* Line 1806 of yacc.c  */
    7074 #line 1458 "parser.yy"
     7073#line 1457 "parser.yy"
    70757074    { (yyval.decl) = (yyvsp[(1) - (1)].decl); }
    70767075    break;
     
    70797078
    70807079/* Line 1806 of yacc.c  */
    7081 #line 1460 "parser.yy"
     7080#line 1459 "parser.yy"
    70827081    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
    70837082    break;
     
    70867085
    70877086/* Line 1806 of yacc.c  */
    7088 #line 1466 "parser.yy"
     7087#line 1465 "parser.yy"
    70897088    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    70907089    break;
     
    70937092
    70947093/* Line 1806 of yacc.c  */
    7095 #line 1469 "parser.yy"
     7094#line 1468 "parser.yy"
    70967095    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    70977096    break;
     
    71007099
    71017100/* Line 1806 of yacc.c  */
    7102 #line 1475 "parser.yy"
     7101#line 1474 "parser.yy"
    71037102    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
    71047103    break;
     
    71077106
    71087107/* Line 1806 of yacc.c  */
    7109 #line 1477 "parser.yy"
     7108#line 1476 "parser.yy"
    71107109    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
    71117110    break;
     
    71147113
    71157114/* Line 1806 of yacc.c  */
    7116 #line 1479 "parser.yy"
     7115#line 1478 "parser.yy"
    71177116    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
    71187117    break;
     
    71217120
    71227121/* Line 1806 of yacc.c  */
    7123 #line 1484 "parser.yy"
     7122#line 1483 "parser.yy"
    71247123    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    71257124    break;
     
    71287127
    71297128/* Line 1806 of yacc.c  */
    7130 #line 1486 "parser.yy"
     7129#line 1485 "parser.yy"
    71317130    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
    71327131    break;
     
    71357134
    71367135/* Line 1806 of yacc.c  */
    7137 #line 1491 "parser.yy"
     7136#line 1490 "parser.yy"
    71387137    { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
    71397138    break;
     
    71427141
    71437142/* Line 1806 of yacc.c  */
    7144 #line 1493 "parser.yy"
     7143#line 1492 "parser.yy"
    71457144    { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
    71467145    break;
     
    71497148
    71507149/* Line 1806 of yacc.c  */
    7151 #line 1496 "parser.yy"
     7150#line 1495 "parser.yy"
    71527151    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    71537152    break;
     
    71567155
    71577156/* Line 1806 of yacc.c  */
    7158 #line 1499 "parser.yy"
     7157#line 1498 "parser.yy"
    71597158    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    71607159    break;
     
    71637162
    71647163/* Line 1806 of yacc.c  */
    7165 #line 1505 "parser.yy"
     7164#line 1504 "parser.yy"
    71667165    { (yyval.en) = 0; }
    71677166    break;
     
    71707169
    71717170/* Line 1806 of yacc.c  */
    7172 #line 1507 "parser.yy"
     7171#line 1506 "parser.yy"
    71737172    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    71747173    break;
     
    71777176
    71787177/* Line 1806 of yacc.c  */
    7179 #line 1512 "parser.yy"
     7178#line 1511 "parser.yy"
    71807179    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    71817180    break;
     
    71847183
    71857184/* Line 1806 of yacc.c  */
    7186 #line 1521 "parser.yy"
     7185#line 1520 "parser.yy"
    71877186    { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); }
    71887187    break;
     
    71917190
    71927191/* Line 1806 of yacc.c  */
    7193 #line 1523 "parser.yy"
     7192#line 1522 "parser.yy"
    71947193    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (6)].tok), (yyvsp[(4) - (6)].decl) ); }
    71957194    break;
     
    71987197
    71997198/* Line 1806 of yacc.c  */
    7200 #line 1525 "parser.yy"
     7199#line 1524 "parser.yy"
    72017200    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (2)].tok), 0 ); }
    72027201    break;
     
    72057204
    72067205/* Line 1806 of yacc.c  */
    7207 #line 1530 "parser.yy"
     7206#line 1529 "parser.yy"
    72087207    { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
    72097208    break;
     
    72127211
    72137212/* Line 1806 of yacc.c  */
    7214 #line 1532 "parser.yy"
     7213#line 1531 "parser.yy"
    72157214    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
    72167215    break;
     
    72197218
    72207219/* Line 1806 of yacc.c  */
    7221 #line 1537 "parser.yy"
     7220#line 1536 "parser.yy"
    72227221    { (yyval.en) = 0; }
    72237222    break;
     
    72267225
    72277226/* Line 1806 of yacc.c  */
    7228 #line 1539 "parser.yy"
     7227#line 1538 "parser.yy"
    72297228    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    72307229    break;
     
    72337232
    72347233/* Line 1806 of yacc.c  */
    7235 #line 1546 "parser.yy"
     7234#line 1545 "parser.yy"
    72367235    { (yyval.decl) = 0; }
    72377236    break;
     
    72407239
    72417240/* Line 1806 of yacc.c  */
    7242 #line 1554 "parser.yy"
     7241#line 1553 "parser.yy"
    72437242    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72447243    break;
     
    72477246
    72487247/* Line 1806 of yacc.c  */
    7249 #line 1556 "parser.yy"
     7248#line 1555 "parser.yy"
    72507249    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    72517250    break;
     
    72547253
    72557254/* Line 1806 of yacc.c  */
    7256 #line 1558 "parser.yy"
     7255#line 1557 "parser.yy"
    72577256    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    72587257    break;
     
    72617260
    72627261/* Line 1806 of yacc.c  */
    7263 #line 1566 "parser.yy"
     7262#line 1565 "parser.yy"
    72647263    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72657264    break;
     
    72687267
    72697268/* Line 1806 of yacc.c  */
    7270 #line 1568 "parser.yy"
     7269#line 1567 "parser.yy"
    72717270    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72727271    break;
     
    72757274
    72767275/* Line 1806 of yacc.c  */
    7277 #line 1570 "parser.yy"
     7276#line 1569 "parser.yy"
    72787277    { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
    72797278    break;
     
    72827281
    72837282/* Line 1806 of yacc.c  */
    7284 #line 1576 "parser.yy"
     7283#line 1575 "parser.yy"
    72857284    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72867285    break;
     
    72897288
    72907289/* Line 1806 of yacc.c  */
    7291 #line 1581 "parser.yy"
     7290#line 1580 "parser.yy"
    72927291    { (yyval.decl) = 0; }
    72937292    break;
     
    72967295
    72977296/* Line 1806 of yacc.c  */
    7298 #line 1588 "parser.yy"
     7297#line 1587 "parser.yy"
    72997298    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    73007299    break;
     
    73037302
    73047303/* Line 1806 of yacc.c  */
    7305 #line 1595 "parser.yy"
     7304#line 1594 "parser.yy"
    73067305    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    73077306    break;
     
    73107309
    73117310/* Line 1806 of yacc.c  */
    7312 #line 1597 "parser.yy"
     7311#line 1596 "parser.yy"
    73137312    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    73147313    break;
     
    73177316
    73187317/* Line 1806 of yacc.c  */
    7319 #line 1606 "parser.yy"
     7318#line 1605 "parser.yy"
    73207319    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    73217320    break;
     
    73247323
    73257324/* Line 1806 of yacc.c  */
    7326 #line 1609 "parser.yy"
     7325#line 1608 "parser.yy"
    73277326    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    73287327    break;
     
    73317330
    73327331/* Line 1806 of yacc.c  */
    7333 #line 1611 "parser.yy"
     7332#line 1610 "parser.yy"
    73347333    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
    73357334    break;
     
    73387337
    73397338/* Line 1806 of yacc.c  */
    7340 #line 1621 "parser.yy"
     7339#line 1620 "parser.yy"
    73417340    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    73427341    break;
     
    73457344
    73467345/* Line 1806 of yacc.c  */
    7347 #line 1627 "parser.yy"
     7346#line 1626 "parser.yy"
    73487347    {
    73497348                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    73557354
    73567355/* Line 1806 of yacc.c  */
    7357 #line 1632 "parser.yy"
     7356#line 1631 "parser.yy"
    73587357    {
    73597358                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    73657364
    73667365/* Line 1806 of yacc.c  */
    7367 #line 1641 "parser.yy"
     7366#line 1640 "parser.yy"
    73687367    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73697368    break;
     
    73727371
    73737372/* Line 1806 of yacc.c  */
    7374 #line 1650 "parser.yy"
     7373#line 1649 "parser.yy"
    73757374    { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
    73767375    break;
     
    73797378
    73807379/* Line 1806 of yacc.c  */
    7381 #line 1652 "parser.yy"
     7380#line 1651 "parser.yy"
    73827381    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
    73837382    break;
     
    73867385
    73877386/* Line 1806 of yacc.c  */
    7388 #line 1677 "parser.yy"
     7387#line 1676 "parser.yy"
    73897388    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73907389    break;
     
    73937392
    73947393/* Line 1806 of yacc.c  */
    7395 #line 1685 "parser.yy"
     7394#line 1684 "parser.yy"
    73967395    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73977396    break;
     
    74007399
    74017400/* Line 1806 of yacc.c  */
    7402 #line 1690 "parser.yy"
     7401#line 1689 "parser.yy"
    74037402    { (yyval.in) = 0; }
    74047403    break;
     
    74077406
    74087407/* Line 1806 of yacc.c  */
    7409 #line 1692 "parser.yy"
     7408#line 1691 "parser.yy"
    74107409    { (yyval.in) = (yyvsp[(2) - (2)].in); }
    74117410    break;
     
    74147413
    74157414/* Line 1806 of yacc.c  */
    7416 #line 1694 "parser.yy"
     7415#line 1693 "parser.yy"
    74177416    { (yyval.in) = (yyvsp[(2) - (2)].in); }
    74187417    break;
     
    74217420
    74227421/* Line 1806 of yacc.c  */
     7422#line 1697 "parser.yy"
     7423    { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
     7424    break;
     7425
     7426  case 457:
     7427
     7428/* Line 1806 of yacc.c  */
    74237429#line 1698 "parser.yy"
    7424     { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
    7425     break;
    7426 
    7427   case 457:
    7428 
    7429 /* Line 1806 of yacc.c  */
    7430 #line 1699 "parser.yy"
    74317430    { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
    74327431    break;
     
    74357434
    74367435/* Line 1806 of yacc.c  */
    7437 #line 1704 "parser.yy"
     7436#line 1703 "parser.yy"
    74387437    { (yyval.in) = 0; }
    74397438    break;
     
    74427441
    74437442/* Line 1806 of yacc.c  */
     7443#line 1705 "parser.yy"
     7444    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
     7445    break;
     7446
     7447  case 461:
     7448
     7449/* Line 1806 of yacc.c  */
    74447450#line 1706 "parser.yy"
    7445     { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
    7446     break;
    7447 
    7448   case 461:
    7449 
    7450 /* Line 1806 of yacc.c  */
    7451 #line 1707 "parser.yy"
    74527451    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link( (yyvsp[(3) - (3)].in) ) ); }
    74537452    break;
     
    74567455
    74577456/* Line 1806 of yacc.c  */
    7458 #line 1709 "parser.yy"
     7457#line 1708 "parser.yy"
    74597458    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_link( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
    74607459    break;
     
    74637462
    74647463/* Line 1806 of yacc.c  */
    7465 #line 1725 "parser.yy"
     7464#line 1724 "parser.yy"
    74667465    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (2)].tok) ); }
    74677466    break;
     
    74707469
    74717470/* Line 1806 of yacc.c  */
    7472 #line 1731 "parser.yy"
     7471#line 1730 "parser.yy"
    74737472    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) )); }
    74747473    break;
     
    74777476
    74787477/* Line 1806 of yacc.c  */
    7479 #line 1739 "parser.yy"
     7478#line 1738 "parser.yy"
    74807479    { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(1) - (1)].tok) ) ); }
    74817480    break;
     
    74847483
    74857484/* Line 1806 of yacc.c  */
    7486 #line 1741 "parser.yy"
     7485#line 1740 "parser.yy"
    74877486    { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(2) - (2)].tok) ) ); }
    74887487    break;
     
    74917490
    74927491/* Line 1806 of yacc.c  */
    7493 #line 1744 "parser.yy"
     7492#line 1743 "parser.yy"
    74947493    { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); }
    74957494    break;
     
    74987497
    74997498/* Line 1806 of yacc.c  */
    7500 #line 1746 "parser.yy"
     7499#line 1745 "parser.yy"
    75017500    { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); }
    75027501    break;
     
    75057504
    75067505/* Line 1806 of yacc.c  */
    7507 #line 1748 "parser.yy"
     7506#line 1747 "parser.yy"
    75087507    { (yyval.en) = new DesignatorNode( new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ), true ); }
    75097508    break;
     
    75127511
    75137512/* Line 1806 of yacc.c  */
    7514 #line 1750 "parser.yy"
     7513#line 1749 "parser.yy"
    75157514    { (yyval.en) = new DesignatorNode( (yyvsp[(4) - (6)].en) ); }
    75167515    break;
     
    75197518
    75207519/* Line 1806 of yacc.c  */
    7521 #line 1774 "parser.yy"
     7520#line 1773 "parser.yy"
    75227521    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    75237522    break;
     
    75267525
    75277526/* Line 1806 of yacc.c  */
    7528 #line 1776 "parser.yy"
     7527#line 1775 "parser.yy"
    75297528    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    75307529    break;
     
    75337532
    75347533/* Line 1806 of yacc.c  */
    7535 #line 1778 "parser.yy"
     7534#line 1777 "parser.yy"
    75367535    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    75377536    break;
     
    75407539
    75417540/* Line 1806 of yacc.c  */
    7542 #line 1784 "parser.yy"
     7541#line 1783 "parser.yy"
    75437542    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    75447543    break;
     
    75477546
    75487547/* Line 1806 of yacc.c  */
    7549 #line 1786 "parser.yy"
     7548#line 1785 "parser.yy"
    75507549    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    75517550    break;
     
    75547553
    75557554/* Line 1806 of yacc.c  */
    7556 #line 1791 "parser.yy"
     7555#line 1790 "parser.yy"
    75577556    { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    75587557    break;
     
    75617560
    75627561/* Line 1806 of yacc.c  */
    7563 #line 1797 "parser.yy"
     7562#line 1796 "parser.yy"
    75647563    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
    75657564    break;
     
    75687567
    75697568/* Line 1806 of yacc.c  */
    7570 #line 1802 "parser.yy"
     7569#line 1801 "parser.yy"
    75717570    { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
    75727571    break;
     
    75757574
    75767575/* Line 1806 of yacc.c  */
    7577 #line 1804 "parser.yy"
     7576#line 1803 "parser.yy"
    75787577    { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
    75797578    break;
     
    75827581
    75837582/* Line 1806 of yacc.c  */
    7584 #line 1810 "parser.yy"
     7583#line 1809 "parser.yy"
    75857584    { (yyval.tclass) = DeclarationNode::Type; }
    75867585    break;
     
    75897588
    75907589/* Line 1806 of yacc.c  */
    7591 #line 1812 "parser.yy"
     7590#line 1811 "parser.yy"
    75927591    { (yyval.tclass) = DeclarationNode::Ftype; }
    75937592    break;
     
    75967595
    75977596/* Line 1806 of yacc.c  */
    7598 #line 1814 "parser.yy"
     7597#line 1813 "parser.yy"
    75997598    { (yyval.tclass) = DeclarationNode::Dtype; }
    76007599    break;
     
    76037602
    76047603/* Line 1806 of yacc.c  */
    7605 #line 1819 "parser.yy"
     7604#line 1818 "parser.yy"
    76067605    { (yyval.decl) = 0; }
    76077606    break;
     
    76107609
    76117610/* Line 1806 of yacc.c  */
    7612 #line 1821 "parser.yy"
     7611#line 1820 "parser.yy"
    76137612    { (yyval.decl) = (yyvsp[(1) - (2)].decl) == 0 ? (yyvsp[(2) - (2)].decl) : (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
    76147613    break;
     
    76177616
    76187617/* Line 1806 of yacc.c  */
    7619 #line 1826 "parser.yy"
     7618#line 1825 "parser.yy"
    76207619    {
    76217620                        typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) );
     
    76277626
    76287627/* Line 1806 of yacc.c  */
    7629 #line 1831 "parser.yy"
     7628#line 1830 "parser.yy"
    76307629    { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
    76317630    break;
     
    76347633
    76357634/* Line 1806 of yacc.c  */
    7636 #line 1833 "parser.yy"
     7635#line 1832 "parser.yy"
    76377636    { (yyval.decl) = 0; }
    76387637    break;
     
    76417640
    76427641/* Line 1806 of yacc.c  */
    7643 #line 1838 "parser.yy"
     7642#line 1837 "parser.yy"
    76447643    { (yyval.en) = new TypeValueNode( (yyvsp[(1) - (1)].decl) ); }
    76457644    break;
     
    76487647
    76497648/* Line 1806 of yacc.c  */
    7650 #line 1841 "parser.yy"
     7649#line 1840 "parser.yy"
    76517650    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( new TypeValueNode( (yyvsp[(3) - (3)].decl) ))); }
    76527651    break;
     
    76557654
    76567655/* Line 1806 of yacc.c  */
    7657 #line 1843 "parser.yy"
     7656#line 1842 "parser.yy"
    76587657    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); }
    76597658    break;
     
    76627661
    76637662/* Line 1806 of yacc.c  */
    7664 #line 1848 "parser.yy"
     7663#line 1847 "parser.yy"
    76657664    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    76667665    break;
     
    76697668
    76707669/* Line 1806 of yacc.c  */
    7671 #line 1850 "parser.yy"
     7670#line 1849 "parser.yy"
    76727671    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
    76737672    break;
     
    76767675
    76777676/* Line 1806 of yacc.c  */
    7678 #line 1852 "parser.yy"
     7677#line 1851 "parser.yy"
    76797678    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
    76807679    break;
     
    76837682
    76847683/* Line 1806 of yacc.c  */
    7685 #line 1857 "parser.yy"
     7684#line 1856 "parser.yy"
    76867685    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
    76877686    break;
     
    76907689
    76917690/* Line 1806 of yacc.c  */
    7692 #line 1859 "parser.yy"
     7691#line 1858 "parser.yy"
    76937692    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
    76947693    break;
     
    76977696
    76987697/* Line 1806 of yacc.c  */
    7699 #line 1864 "parser.yy"
     7698#line 1863 "parser.yy"
    77007699    {
    77017700                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD );
     
    77077706
    77087707/* Line 1806 of yacc.c  */
    7709 #line 1869 "parser.yy"
     7708#line 1868 "parser.yy"
    77107709    {
    77117710                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG );
     
    77177716
    77187717/* Line 1806 of yacc.c  */
    7719 #line 1877 "parser.yy"
     7718#line 1876 "parser.yy"
    77207719    {
    77217720                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID );
     
    77277726
    77287727/* Line 1806 of yacc.c  */
    7729 #line 1882 "parser.yy"
     7728#line 1881 "parser.yy"
    77307729    {
    77317730                        typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) );
     
    77377736
    77387737/* Line 1806 of yacc.c  */
    7739 #line 1887 "parser.yy"
     7738#line 1886 "parser.yy"
    77407739    {
    77417740                        typedefTable.leaveTrait();
     
    77487747
    77497748/* Line 1806 of yacc.c  */
    7750 #line 1897 "parser.yy"
     7749#line 1896 "parser.yy"
    77517750    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    77527751    break;
     
    77557754
    77567755/* Line 1806 of yacc.c  */
    7757 #line 1907 "parser.yy"
     7756#line 1906 "parser.yy"
    77587757    {
    77597758                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77657764
    77667765/* Line 1806 of yacc.c  */
    7767 #line 1912 "parser.yy"
     7766#line 1911 "parser.yy"
    77687767    {
    77697768                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77757774
    77767775/* Line 1806 of yacc.c  */
    7777 #line 1917 "parser.yy"
     7776#line 1916 "parser.yy"
    77787777    {
    77797778                        typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    77857784
    77867785/* Line 1806 of yacc.c  */
    7787 #line 1925 "parser.yy"
     7786#line 1924 "parser.yy"
    77887787    {
    77897788                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77957794
    77967795/* Line 1806 of yacc.c  */
    7797 #line 1930 "parser.yy"
     7796#line 1929 "parser.yy"
    77987797    {
    77997798                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    78057804
    78067805/* Line 1806 of yacc.c  */
    7807 #line 1940 "parser.yy"
     7806#line 1939 "parser.yy"
    78087807    {}
    78097808    break;
     
    78127811
    78137812/* Line 1806 of yacc.c  */
    7814 #line 1942 "parser.yy"
     7813#line 1941 "parser.yy"
    78157814    {
    78167815                        if ( theTree ) {
     
    78257824
    78267825/* Line 1806 of yacc.c  */
    7827 #line 1954 "parser.yy"
     7826#line 1953 "parser.yy"
    78287827    { (yyval.decl) = ( (yyvsp[(1) - (3)].decl) != NULL ) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
    78297828    break;
     
    78327831
    78337832/* Line 1806 of yacc.c  */
    7834 #line 1959 "parser.yy"
     7833#line 1958 "parser.yy"
    78357834    { (yyval.decl) = 0; }
    78367835    break;
     
    78397838
    78407839/* Line 1806 of yacc.c  */
    7841 #line 1967 "parser.yy"
     7840#line 1966 "parser.yy"
    78427841    {}
    78437842    break;
     
    78467845
    78477846/* Line 1806 of yacc.c  */
    7848 #line 1969 "parser.yy"
     7847#line 1968 "parser.yy"
    78497848    {
    78507849                        linkageStack.push( linkage );
     
    78567855
    78577856/* Line 1806 of yacc.c  */
    7858 #line 1974 "parser.yy"
     7857#line 1973 "parser.yy"
    78597858    {
    78607859                        linkage = linkageStack.top();
     
    78677866
    78687867/* Line 1806 of yacc.c  */
    7869 #line 1980 "parser.yy"
     7868#line 1979 "parser.yy"
    78707869    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    78717870    break;
     
    78747873
    78757874/* Line 1806 of yacc.c  */
    7876 #line 1990 "parser.yy"
     7875#line 1989 "parser.yy"
    78777876    {
    78787877                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78857884
    78867885/* Line 1806 of yacc.c  */
    7887 #line 1996 "parser.yy"
     7886#line 1995 "parser.yy"
    78887887    {
    78897888                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78967895
    78977896/* Line 1806 of yacc.c  */
    7898 #line 2005 "parser.yy"
     7897#line 2004 "parser.yy"
    78997898    {
    79007899                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79077906
    79087907/* Line 1806 of yacc.c  */
    7909 #line 2011 "parser.yy"
     7908#line 2010 "parser.yy"
    79107909    {
    79117910                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79187917
    79197918/* Line 1806 of yacc.c  */
    7920 #line 2017 "parser.yy"
     7919#line 2016 "parser.yy"
    79217920    {
    79227921                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79297928
    79307929/* Line 1806 of yacc.c  */
    7931 #line 2023 "parser.yy"
     7930#line 2022 "parser.yy"
    79327931    {
    79337932                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79407939
    79417940/* Line 1806 of yacc.c  */
    7942 #line 2029 "parser.yy"
     7941#line 2028 "parser.yy"
    79437942    {
    79447943                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79517950
    79527951/* Line 1806 of yacc.c  */
    7953 #line 2037 "parser.yy"
     7952#line 2036 "parser.yy"
    79547953    {
    79557954                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79627961
    79637962/* Line 1806 of yacc.c  */
    7964 #line 2043 "parser.yy"
     7963#line 2042 "parser.yy"
    79657964    {
    79667965                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79737972
    79747973/* Line 1806 of yacc.c  */
    7975 #line 2051 "parser.yy"
     7974#line 2050 "parser.yy"
    79767975    {
    79777976                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79847983
    79857984/* Line 1806 of yacc.c  */
    7986 #line 2057 "parser.yy"
     7985#line 2056 "parser.yy"
    79877986    {
    79887987                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79957994
    79967995/* Line 1806 of yacc.c  */
    7997 #line 2072 "parser.yy"
     7996#line 2071 "parser.yy"
    79987997    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    79997998    break;
     
    80028001
    80038002/* Line 1806 of yacc.c  */
    8004 #line 2082 "parser.yy"
     8003#line 2081 "parser.yy"
    80058004    { (yyval.decl) = 0; }
    80068005    break;
     
    80098008
    80108009/* Line 1806 of yacc.c  */
    8011 #line 2089 "parser.yy"
     8010#line 2088 "parser.yy"
    80128011    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    80138012    break;
     
    80168015
    80178016/* Line 1806 of yacc.c  */
    8018 #line 2095 "parser.yy"
     8017#line 2094 "parser.yy"
    80198018    { (yyval.decl) = 0; }
    80208019    break;
    80218020
    80228021  case 557:
     8022
     8023/* Line 1806 of yacc.c  */
     8024#line 2109 "parser.yy"
     8025    {}
     8026    break;
     8027
     8028  case 558:
    80238029
    80248030/* Line 1806 of yacc.c  */
     
    80278033    break;
    80288034
    8029   case 558:
     8035  case 559:
    80308036
    80318037/* Line 1806 of yacc.c  */
     
    80348040    break;
    80358041
    8036   case 559:
     8042  case 560:
    80378043
    80388044/* Line 1806 of yacc.c  */
     
    80418047    break;
    80428048
    8043   case 560:
    8044 
    8045 /* Line 1806 of yacc.c  */
    8046 #line 2113 "parser.yy"
    8047     {}
    8048     break;
    8049 
    80508049  case 561:
    80518050
    80528051/* Line 1806 of yacc.c  */
    8053 #line 2148 "parser.yy"
     8052#line 2147 "parser.yy"
    80548053    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80558054    break;
     
    80588057
    80598058/* Line 1806 of yacc.c  */
    8060 #line 2151 "parser.yy"
     8059#line 2150 "parser.yy"
    80618060    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80628061    break;
     
    80658064
    80668065/* Line 1806 of yacc.c  */
    8067 #line 2153 "parser.yy"
     8066#line 2152 "parser.yy"
    80688067    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80698068    break;
     
    80728071
    80738072/* Line 1806 of yacc.c  */
    8074 #line 2158 "parser.yy"
     8073#line 2157 "parser.yy"
    80758074    {
    80768075                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    80828081
    80838082/* Line 1806 of yacc.c  */
    8084 #line 2163 "parser.yy"
     8083#line 2162 "parser.yy"
    80858084    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80868085    break;
     
    80898088
    80908089/* Line 1806 of yacc.c  */
    8091 #line 2168 "parser.yy"
     8090#line 2167 "parser.yy"
    80928091    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    80938092    break;
     
    80968095
    80978096/* Line 1806 of yacc.c  */
    8098 #line 2170 "parser.yy"
     8097#line 2169 "parser.yy"
    80998098    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    81008099    break;
     
    81038102
    81048103/* Line 1806 of yacc.c  */
    8105 #line 2172 "parser.yy"
     8104#line 2171 "parser.yy"
    81068105    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81078106    break;
     
    81108109
    81118110/* Line 1806 of yacc.c  */
    8112 #line 2177 "parser.yy"
     8111#line 2176 "parser.yy"
    81138112    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    81148113    break;
     
    81178116
    81188117/* Line 1806 of yacc.c  */
    8119 #line 2179 "parser.yy"
     8118#line 2178 "parser.yy"
    81208119    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    81218120    break;
     
    81248123
    81258124/* Line 1806 of yacc.c  */
    8126 #line 2181 "parser.yy"
     8125#line 2180 "parser.yy"
    81278126    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    81288127    break;
     
    81318130
    81328131/* Line 1806 of yacc.c  */
    8133 #line 2183 "parser.yy"
     8132#line 2182 "parser.yy"
    81348133    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81358134    break;
     
    81388137
    81398138/* Line 1806 of yacc.c  */
    8140 #line 2188 "parser.yy"
     8139#line 2187 "parser.yy"
    81418140    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    81428141    break;
     
    81458144
    81468145/* Line 1806 of yacc.c  */
    8147 #line 2190 "parser.yy"
     8146#line 2189 "parser.yy"
    81488147    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81498148    break;
     
    81528151
    81538152/* Line 1806 of yacc.c  */
    8154 #line 2200 "parser.yy"
     8153#line 2199 "parser.yy"
    81558154    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    81568155    break;
     
    81598158
    81608159/* Line 1806 of yacc.c  */
    8161 #line 2203 "parser.yy"
     8160#line 2202 "parser.yy"
    81628161    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    81638162    break;
     
    81668165
    81678166/* Line 1806 of yacc.c  */
    8168 #line 2208 "parser.yy"
     8167#line 2207 "parser.yy"
    81698168    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    81708169    break;
     
    81738172
    81748173/* Line 1806 of yacc.c  */
    8175 #line 2210 "parser.yy"
     8174#line 2209 "parser.yy"
    81768175    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    81778176    break;
     
    81808179
    81818180/* Line 1806 of yacc.c  */
    8182 #line 2212 "parser.yy"
     8181#line 2211 "parser.yy"
    81838182    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81848183    break;
     
    81878186
    81888187/* Line 1806 of yacc.c  */
    8189 #line 2217 "parser.yy"
     8188#line 2216 "parser.yy"
    81908189    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    81918190    break;
     
    81948193
    81958194/* Line 1806 of yacc.c  */
    8196 #line 2219 "parser.yy"
     8195#line 2218 "parser.yy"
    81978196    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    81988197    break;
     
    82018200
    82028201/* Line 1806 of yacc.c  */
    8203 #line 2221 "parser.yy"
     8202#line 2220 "parser.yy"
    82048203    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82058204    break;
     
    82088207
    82098208/* Line 1806 of yacc.c  */
    8210 #line 2226 "parser.yy"
     8209#line 2225 "parser.yy"
    82118210    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    82128211    break;
     
    82158214
    82168215/* Line 1806 of yacc.c  */
    8217 #line 2228 "parser.yy"
     8216#line 2227 "parser.yy"
    82188217    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    82198218    break;
     
    82228221
    82238222/* Line 1806 of yacc.c  */
    8224 #line 2230 "parser.yy"
     8223#line 2229 "parser.yy"
    82258224    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82268225    break;
     
    82298228
    82308229/* Line 1806 of yacc.c  */
    8231 #line 2245 "parser.yy"
     8230#line 2244 "parser.yy"
    82328231    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
    82338232    break;
     
    82368235
    82378236/* Line 1806 of yacc.c  */
    8238 #line 2247 "parser.yy"
     8237#line 2246 "parser.yy"
    82398238    { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
    82408239    break;
     
    82438242
    82448243/* Line 1806 of yacc.c  */
    8245 #line 2249 "parser.yy"
     8244#line 2248 "parser.yy"
    82468245    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82478246    break;
     
    82508249
    82518250/* Line 1806 of yacc.c  */
    8252 #line 2254 "parser.yy"
     8251#line 2253 "parser.yy"
    82538252    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    82548253    break;
     
    82578256
    82588257/* Line 1806 of yacc.c  */
    8259 #line 2256 "parser.yy"
     8258#line 2255 "parser.yy"
    82608259    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    82618260    break;
     
    82648263
    82658264/* Line 1806 of yacc.c  */
    8266 #line 2258 "parser.yy"
     8265#line 2257 "parser.yy"
    82678266    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82688267    break;
     
    82718270
    82728271/* Line 1806 of yacc.c  */
    8273 #line 2263 "parser.yy"
     8272#line 2262 "parser.yy"
    82748273    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    82758274    break;
     
    82788277
    82798278/* Line 1806 of yacc.c  */
    8280 #line 2265 "parser.yy"
     8279#line 2264 "parser.yy"
    82818280    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    82828281    break;
     
    82858284
    82868285/* Line 1806 of yacc.c  */
    8287 #line 2267 "parser.yy"
     8286#line 2266 "parser.yy"
    82888287    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82898288    break;
     
    82928291
    82938292/* Line 1806 of yacc.c  */
    8294 #line 2282 "parser.yy"
     8293#line 2281 "parser.yy"
    82958294    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82968295    break;
     
    82998298
    83008299/* Line 1806 of yacc.c  */
    8301 #line 2285 "parser.yy"
     8300#line 2284 "parser.yy"
    83028301    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83038302    break;
     
    83068305
    83078306/* Line 1806 of yacc.c  */
    8308 #line 2287 "parser.yy"
     8307#line 2286 "parser.yy"
    83098308    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83108309    break;
     
    83138312
    83148313/* Line 1806 of yacc.c  */
    8315 #line 2293 "parser.yy"
     8314#line 2292 "parser.yy"
    83168315    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83178316    break;
     
    83208319
    83218320/* Line 1806 of yacc.c  */
    8322 #line 2298 "parser.yy"
     8321#line 2297 "parser.yy"
    83238322    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    83248323    break;
     
    83278326
    83288327/* Line 1806 of yacc.c  */
    8329 #line 2300 "parser.yy"
     8328#line 2299 "parser.yy"
    83308329    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    83318330    break;
     
    83348333
    83358334/* Line 1806 of yacc.c  */
    8336 #line 2302 "parser.yy"
     8335#line 2301 "parser.yy"
    83378336    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83388337    break;
     
    83418340
    83428341/* Line 1806 of yacc.c  */
    8343 #line 2307 "parser.yy"
     8342#line 2306 "parser.yy"
    83448343    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    83458344    break;
     
    83488347
    83498348/* Line 1806 of yacc.c  */
    8350 #line 2309 "parser.yy"
     8349#line 2308 "parser.yy"
    83518350    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    83528351    break;
     
    83558354
    83568355/* Line 1806 of yacc.c  */
    8357 #line 2311 "parser.yy"
     8356#line 2310 "parser.yy"
    83588357    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    83598358    break;
     
    83628361
    83638362/* Line 1806 of yacc.c  */
    8364 #line 2313 "parser.yy"
     8363#line 2312 "parser.yy"
    83658364    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83668365    break;
     
    83698368
    83708369/* Line 1806 of yacc.c  */
    8371 #line 2318 "parser.yy"
     8370#line 2317 "parser.yy"
    83728371    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    83738372    break;
     
    83768375
    83778376/* Line 1806 of yacc.c  */
    8378 #line 2320 "parser.yy"
     8377#line 2319 "parser.yy"
    83798378    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    83808379    break;
     
    83838382
    83848383/* Line 1806 of yacc.c  */
    8385 #line 2322 "parser.yy"
     8384#line 2321 "parser.yy"
    83868385    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83878386    break;
     
    83908389
    83918390/* Line 1806 of yacc.c  */
    8392 #line 2332 "parser.yy"
     8391#line 2331 "parser.yy"
    83938392    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83948393    break;
     
    83978396
    83988397/* Line 1806 of yacc.c  */
    8399 #line 2335 "parser.yy"
     8398#line 2334 "parser.yy"
    84008399    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84018400    break;
     
    84048403
    84058404/* Line 1806 of yacc.c  */
    8406 #line 2337 "parser.yy"
     8405#line 2336 "parser.yy"
    84078406    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84088407    break;
     
    84118410
    84128411/* Line 1806 of yacc.c  */
    8413 #line 2342 "parser.yy"
     8412#line 2341 "parser.yy"
    84148413    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    84158414    break;
     
    84188417
    84198418/* Line 1806 of yacc.c  */
    8420 #line 2344 "parser.yy"
     8419#line 2343 "parser.yy"
    84218420    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    84228421    break;
     
    84258424
    84268425/* Line 1806 of yacc.c  */
    8427 #line 2346 "parser.yy"
     8426#line 2345 "parser.yy"
    84288427    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84298428    break;
     
    84328431
    84338432/* Line 1806 of yacc.c  */
    8434 #line 2351 "parser.yy"
     8433#line 2350 "parser.yy"
    84358434    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    84368435    break;
     
    84398438
    84408439/* Line 1806 of yacc.c  */
    8441 #line 2353 "parser.yy"
     8440#line 2352 "parser.yy"
    84428441    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    84438442    break;
     
    84468445
    84478446/* Line 1806 of yacc.c  */
    8448 #line 2355 "parser.yy"
     8447#line 2354 "parser.yy"
    84498448    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    84508449    break;
     
    84538452
    84548453/* Line 1806 of yacc.c  */
    8455 #line 2357 "parser.yy"
     8454#line 2356 "parser.yy"
    84568455    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84578456    break;
     
    84608459
    84618460/* Line 1806 of yacc.c  */
    8462 #line 2362 "parser.yy"
     8461#line 2361 "parser.yy"
    84638462    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    84648463    break;
     
    84678466
    84688467/* Line 1806 of yacc.c  */
    8469 #line 2364 "parser.yy"
     8468#line 2363 "parser.yy"
    84708469    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    84718470    break;
     
    84748473
    84758474/* Line 1806 of yacc.c  */
    8476 #line 2366 "parser.yy"
     8475#line 2365 "parser.yy"
    84778476    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84788477    break;
     
    84818480
    84828481/* Line 1806 of yacc.c  */
    8483 #line 2397 "parser.yy"
     8482#line 2396 "parser.yy"
    84848483    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84858484    break;
     
    84888487
    84898488/* Line 1806 of yacc.c  */
    8490 #line 2400 "parser.yy"
     8489#line 2399 "parser.yy"
    84918490    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84928491    break;
     
    84958494
    84968495/* Line 1806 of yacc.c  */
    8497 #line 2402 "parser.yy"
     8496#line 2401 "parser.yy"
    84988497    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84998498    break;
     
    85028501
    85038502/* Line 1806 of yacc.c  */
    8504 #line 2407 "parser.yy"
     8503#line 2406 "parser.yy"
    85058504    {
    85068505                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    85128511
    85138512/* Line 1806 of yacc.c  */
    8514 #line 2412 "parser.yy"
     8513#line 2411 "parser.yy"
    85158514    {
    85168515                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    85228521
    85238522/* Line 1806 of yacc.c  */
    8524 #line 2420 "parser.yy"
     8523#line 2419 "parser.yy"
    85258524    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    85268525    break;
     
    85298528
    85308529/* Line 1806 of yacc.c  */
    8531 #line 2422 "parser.yy"
     8530#line 2421 "parser.yy"
    85328531    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    85338532    break;
     
    85368535
    85378536/* Line 1806 of yacc.c  */
    8538 #line 2424 "parser.yy"
     8537#line 2423 "parser.yy"
    85398538    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85408539    break;
     
    85438542
    85448543/* Line 1806 of yacc.c  */
    8545 #line 2429 "parser.yy"
     8544#line 2428 "parser.yy"
    85468545    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    85478546    break;
     
    85508549
    85518550/* Line 1806 of yacc.c  */
    8552 #line 2431 "parser.yy"
     8551#line 2430 "parser.yy"
    85538552    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    85548553    break;
     
    85578556
    85588557/* Line 1806 of yacc.c  */
    8559 #line 2436 "parser.yy"
     8558#line 2435 "parser.yy"
    85608559    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    85618560    break;
     
    85648563
    85658564/* Line 1806 of yacc.c  */
    8566 #line 2438 "parser.yy"
     8565#line 2437 "parser.yy"
    85678566    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    85688567    break;
     
    85718570
    85728571/* Line 1806 of yacc.c  */
    8573 #line 2453 "parser.yy"
     8572#line 2452 "parser.yy"
    85748573    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    85758574    break;
     
    85788577
    85798578/* Line 1806 of yacc.c  */
    8580 #line 2455 "parser.yy"
     8579#line 2454 "parser.yy"
    85818580    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    85828581    break;
     
    85858584
    85868585/* Line 1806 of yacc.c  */
    8587 #line 2460 "parser.yy"
     8586#line 2459 "parser.yy"
    85888587    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    85898588    break;
     
    85928591
    85938592/* Line 1806 of yacc.c  */
    8594 #line 2462 "parser.yy"
     8593#line 2461 "parser.yy"
    85958594    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    85968595    break;
     
    85998598
    86008599/* Line 1806 of yacc.c  */
    8601 #line 2464 "parser.yy"
     8600#line 2463 "parser.yy"
    86028601    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    86038602    break;
     
    86068605
    86078606/* Line 1806 of yacc.c  */
    8608 #line 2466 "parser.yy"
     8607#line 2465 "parser.yy"
    86098608    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    86108609    break;
     
    86138612
    86148613/* Line 1806 of yacc.c  */
    8615 #line 2468 "parser.yy"
     8614#line 2467 "parser.yy"
    86168615    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86178616    break;
     
    86208619
    86218620/* Line 1806 of yacc.c  */
    8622 #line 2474 "parser.yy"
     8621#line 2473 "parser.yy"
    86238622    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    86248623    break;
     
    86278626
    86288627/* Line 1806 of yacc.c  */
    8629 #line 2476 "parser.yy"
     8628#line 2475 "parser.yy"
    86308629    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    86318630    break;
     
    86348633
    86358634/* Line 1806 of yacc.c  */
    8636 #line 2478 "parser.yy"
     8635#line 2477 "parser.yy"
    86378636    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86388637    break;
     
    86418640
    86428641/* Line 1806 of yacc.c  */
    8643 #line 2483 "parser.yy"
     8642#line 2482 "parser.yy"
    86448643    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    86458644    break;
     
    86488647
    86498648/* Line 1806 of yacc.c  */
    8650 #line 2485 "parser.yy"
     8649#line 2484 "parser.yy"
    86518650    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    86528651    break;
     
    86558654
    86568655/* Line 1806 of yacc.c  */
    8657 #line 2487 "parser.yy"
     8656#line 2486 "parser.yy"
    86588657    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86598658    break;
     
    86628661
    86638662/* Line 1806 of yacc.c  */
    8664 #line 2493 "parser.yy"
     8663#line 2492 "parser.yy"
    86658664    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    86668665    break;
     
    86698668
    86708669/* Line 1806 of yacc.c  */
    8671 #line 2495 "parser.yy"
     8670#line 2494 "parser.yy"
    86728671    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
    86738672    break;
     
    86768675
    86778676/* Line 1806 of yacc.c  */
    8678 #line 2501 "parser.yy"
     8677#line 2500 "parser.yy"
    86798678    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
    86808679    break;
     
    86838682
    86848683/* Line 1806 of yacc.c  */
    8685 #line 2503 "parser.yy"
     8684#line 2502 "parser.yy"
    86868685    { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
    86878686    break;
     
    86908689
    86918690/* Line 1806 of yacc.c  */
    8692 #line 2505 "parser.yy"
     8691#line 2504 "parser.yy"
    86938692    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
    86948693    break;
     
    86978696
    86988697/* Line 1806 of yacc.c  */
    8699 #line 2507 "parser.yy"
     8698#line 2506 "parser.yy"
    87008699    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
    87018700    break;
     
    87048703
    87058704/* Line 1806 of yacc.c  */
    8706 #line 2522 "parser.yy"
     8705#line 2521 "parser.yy"
    87078706    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    87088707    break;
     
    87118710
    87128711/* Line 1806 of yacc.c  */
    8713 #line 2524 "parser.yy"
     8712#line 2523 "parser.yy"
    87148713    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    87158714    break;
     
    87188717
    87198718/* Line 1806 of yacc.c  */
    8720 #line 2529 "parser.yy"
     8719#line 2528 "parser.yy"
    87218720    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    87228721    break;
     
    87258724
    87268725/* Line 1806 of yacc.c  */
    8727 #line 2531 "parser.yy"
     8726#line 2530 "parser.yy"
    87288727    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    87298728    break;
     
    87328731
    87338732/* Line 1806 of yacc.c  */
    8734 #line 2533 "parser.yy"
     8733#line 2532 "parser.yy"
    87358734    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    87368735    break;
     
    87398738
    87408739/* Line 1806 of yacc.c  */
    8741 #line 2535 "parser.yy"
     8740#line 2534 "parser.yy"
    87428741    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    87438742    break;
     
    87468745
    87478746/* Line 1806 of yacc.c  */
    8748 #line 2537 "parser.yy"
     8747#line 2536 "parser.yy"
    87498748    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87508749    break;
     
    87538752
    87548753/* Line 1806 of yacc.c  */
    8755 #line 2543 "parser.yy"
     8754#line 2542 "parser.yy"
    87568755    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    87578756    break;
     
    87608759
    87618760/* Line 1806 of yacc.c  */
    8762 #line 2545 "parser.yy"
     8761#line 2544 "parser.yy"
    87638762    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    87648763    break;
     
    87678766
    87688767/* Line 1806 of yacc.c  */
    8769 #line 2547 "parser.yy"
     8768#line 2546 "parser.yy"
    87708769    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87718770    break;
     
    87748773
    87758774/* Line 1806 of yacc.c  */
    8776 #line 2552 "parser.yy"
     8775#line 2551 "parser.yy"
    87778776    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    87788777    break;
     
    87818780
    87828781/* Line 1806 of yacc.c  */
    8783 #line 2554 "parser.yy"
     8782#line 2553 "parser.yy"
    87848783    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    87858784    break;
     
    87888787
    87898788/* Line 1806 of yacc.c  */
    8790 #line 2556 "parser.yy"
     8789#line 2555 "parser.yy"
    87918790    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87928791    break;
     
    87958794
    87968795/* Line 1806 of yacc.c  */
    8797 #line 2563 "parser.yy"
     8796#line 2562 "parser.yy"
    87988797    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    87998798    break;
     
    88028801
    88038802/* Line 1806 of yacc.c  */
    8804 #line 2574 "parser.yy"
     8803#line 2573 "parser.yy"
    88058804    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    88068805    break;
     
    88098808
    88108809/* Line 1806 of yacc.c  */
    8811 #line 2577 "parser.yy"
     8810#line 2576 "parser.yy"
    88128811    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    88138812    break;
     
    88168815
    88178816/* Line 1806 of yacc.c  */
    8818 #line 2579 "parser.yy"
     8817#line 2578 "parser.yy"
    88198818    { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
    88208819    break;
     
    88238822
    88248823/* Line 1806 of yacc.c  */
    8825 #line 2582 "parser.yy"
     8824#line 2581 "parser.yy"
    88268825    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    88278826    break;
     
    88308829
    88318830/* Line 1806 of yacc.c  */
    8832 #line 2584 "parser.yy"
     8831#line 2583 "parser.yy"
    88338832    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
    88348833    break;
     
    88378836
    88388837/* Line 1806 of yacc.c  */
    8839 #line 2586 "parser.yy"
     8838#line 2585 "parser.yy"
    88408839    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
    88418840    break;
     
    88448843
    88458844/* Line 1806 of yacc.c  */
    8846 #line 2600 "parser.yy"
     8845#line 2599 "parser.yy"
    88478846    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    88488847    break;
     
    88518850
    88528851/* Line 1806 of yacc.c  */
    8853 #line 2602 "parser.yy"
     8852#line 2601 "parser.yy"
    88548853    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    88558854    break;
     
    88588857
    88598858/* Line 1806 of yacc.c  */
    8860 #line 2607 "parser.yy"
     8859#line 2606 "parser.yy"
    88618860    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    88628861    break;
     
    88658864
    88668865/* Line 1806 of yacc.c  */
    8867 #line 2609 "parser.yy"
     8866#line 2608 "parser.yy"
    88688867    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    88698868    break;
     
    88728871
    88738872/* Line 1806 of yacc.c  */
    8874 #line 2611 "parser.yy"
     8873#line 2610 "parser.yy"
    88758874    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    88768875    break;
     
    88798878
    88808879/* Line 1806 of yacc.c  */
    8881 #line 2613 "parser.yy"
     8880#line 2612 "parser.yy"
    88828881    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    88838882    break;
     
    88868885
    88878886/* Line 1806 of yacc.c  */
    8888 #line 2615 "parser.yy"
     8887#line 2614 "parser.yy"
    88898888    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    88908889    break;
     
    88938892
    88948893/* Line 1806 of yacc.c  */
    8895 #line 2621 "parser.yy"
     8894#line 2620 "parser.yy"
    88968895    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    88978896    break;
     
    89008899
    89018900/* Line 1806 of yacc.c  */
    8902 #line 2623 "parser.yy"
     8901#line 2622 "parser.yy"
    89038902    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    89048903    break;
     
    89078906
    89088907/* Line 1806 of yacc.c  */
    8909 #line 2625 "parser.yy"
     8908#line 2624 "parser.yy"
    89108909    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    89118910    break;
     
    89148913
    89158914/* Line 1806 of yacc.c  */
    8916 #line 2630 "parser.yy"
     8915#line 2629 "parser.yy"
    89178916    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    89188917    break;
     
    89218920
    89228921/* Line 1806 of yacc.c  */
    8923 #line 2632 "parser.yy"
     8922#line 2631 "parser.yy"
    89248923    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    89258924    break;
     
    89288927
    89298928/* Line 1806 of yacc.c  */
    8930 #line 2642 "parser.yy"
     8929#line 2641 "parser.yy"
    89318930    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    89328931    break;
     
    89358934
    89368935/* Line 1806 of yacc.c  */
    8937 #line 2652 "parser.yy"
     8936#line 2651 "parser.yy"
    89388937    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89398938    break;
     
    89428941
    89438942/* Line 1806 of yacc.c  */
    8944 #line 2654 "parser.yy"
     8943#line 2653 "parser.yy"
    89458944    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89468945    break;
     
    89498948
    89508949/* Line 1806 of yacc.c  */
    8951 #line 2656 "parser.yy"
     8950#line 2655 "parser.yy"
    89528951    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89538952    break;
     
    89568955
    89578956/* Line 1806 of yacc.c  */
    8958 #line 2658 "parser.yy"
     8957#line 2657 "parser.yy"
    89598958    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89608959    break;
     
    89638962
    89648963/* Line 1806 of yacc.c  */
    8965 #line 2660 "parser.yy"
     8964#line 2659 "parser.yy"
    89668965    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89678966    break;
     
    89708969
    89718970/* Line 1806 of yacc.c  */
    8972 #line 2662 "parser.yy"
     8971#line 2661 "parser.yy"
    89738972    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89748973    break;
     
    89778976
    89788977/* Line 1806 of yacc.c  */
    8979 #line 2669 "parser.yy"
     8978#line 2668 "parser.yy"
    89808979    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89818980    break;
     
    89848983
    89858984/* Line 1806 of yacc.c  */
    8986 #line 2671 "parser.yy"
     8985#line 2670 "parser.yy"
    89878986    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    89888987    break;
     
    89918990
    89928991/* Line 1806 of yacc.c  */
    8993 #line 2673 "parser.yy"
     8992#line 2672 "parser.yy"
    89948993    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89958994    break;
     
    89988997
    89998998/* Line 1806 of yacc.c  */
    9000 #line 2675 "parser.yy"
     8999#line 2674 "parser.yy"
    90019000    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    90029001    break;
     
    90059004
    90069005/* Line 1806 of yacc.c  */
    9007 #line 2677 "parser.yy"
     9006#line 2676 "parser.yy"
    90089007    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    90099008    break;
     
    90129011
    90139012/* Line 1806 of yacc.c  */
    9014 #line 2679 "parser.yy"
     9013#line 2678 "parser.yy"
    90159014    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    90169015    break;
     
    90199018
    90209019/* Line 1806 of yacc.c  */
    9021 #line 2681 "parser.yy"
     9020#line 2680 "parser.yy"
    90229021    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    90239022    break;
     
    90269025
    90279026/* Line 1806 of yacc.c  */
    9028 #line 2683 "parser.yy"
     9027#line 2682 "parser.yy"
    90299028    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    90309029    break;
     
    90339032
    90349033/* Line 1806 of yacc.c  */
    9035 #line 2685 "parser.yy"
     9034#line 2684 "parser.yy"
    90369035    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    90379036    break;
     
    90409039
    90419040/* Line 1806 of yacc.c  */
    9042 #line 2687 "parser.yy"
     9041#line 2686 "parser.yy"
    90439042    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    90449043    break;
     
    90479046
    90489047/* Line 1806 of yacc.c  */
    9049 #line 2692 "parser.yy"
     9048#line 2691 "parser.yy"
    90509049    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    90519050    break;
     
    90549053
    90559054/* Line 1806 of yacc.c  */
    9056 #line 2694 "parser.yy"
     9055#line 2693 "parser.yy"
    90579056    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    90589057    break;
     
    90619060
    90629061/* Line 1806 of yacc.c  */
    9063 #line 2699 "parser.yy"
     9062#line 2698 "parser.yy"
    90649063    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
    90659064    break;
     
    90689067
    90699068/* Line 1806 of yacc.c  */
    9070 #line 2701 "parser.yy"
     9069#line 2700 "parser.yy"
    90719070    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
    90729071    break;
     
    90759074
    90769075/* Line 1806 of yacc.c  */
    9077 #line 2728 "parser.yy"
     9076#line 2727 "parser.yy"
    90789077    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    90799078    break;
     
    90829081
    90839082/* Line 1806 of yacc.c  */
    9084 #line 2739 "parser.yy"
     9083#line 2738 "parser.yy"
    90859084    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    90869085    break;
     
    90899088
    90909089/* Line 1806 of yacc.c  */
    9091 #line 2741 "parser.yy"
     9090#line 2740 "parser.yy"
    90929091    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    90939092    break;
     
    90969095
    90979096/* Line 1806 of yacc.c  */
    9098 #line 2743 "parser.yy"
     9097#line 2742 "parser.yy"
    90999098    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    91009099    break;
     
    91039102
    91049103/* Line 1806 of yacc.c  */
    9105 #line 2745 "parser.yy"
     9104#line 2744 "parser.yy"
    91069105    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    91079106    break;
     
    91109109
    91119110/* Line 1806 of yacc.c  */
    9112 #line 2747 "parser.yy"
     9111#line 2746 "parser.yy"
    91139112    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    91149113    break;
     
    91179116
    91189117/* Line 1806 of yacc.c  */
    9119 #line 2749 "parser.yy"
     9118#line 2748 "parser.yy"
    91209119    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    91219120    break;
     
    91249123
    91259124/* Line 1806 of yacc.c  */
    9126 #line 2756 "parser.yy"
     9125#line 2755 "parser.yy"
    91279126    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    91289127    break;
     
    91319130
    91329131/* Line 1806 of yacc.c  */
    9133 #line 2758 "parser.yy"
     9132#line 2757 "parser.yy"
    91349133    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    91359134    break;
     
    91389137
    91399138/* Line 1806 of yacc.c  */
    9140 #line 2760 "parser.yy"
     9139#line 2759 "parser.yy"
    91419140    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    91429141    break;
     
    91459144
    91469145/* Line 1806 of yacc.c  */
    9147 #line 2762 "parser.yy"
     9146#line 2761 "parser.yy"
    91489147    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    91499148    break;
     
    91529151
    91539152/* Line 1806 of yacc.c  */
    9154 #line 2764 "parser.yy"
     9153#line 2763 "parser.yy"
    91559154    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    91569155    break;
     
    91599158
    91609159/* Line 1806 of yacc.c  */
    9161 #line 2766 "parser.yy"
     9160#line 2765 "parser.yy"
    91629161    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    91639162    break;
     
    91669165
    91679166/* Line 1806 of yacc.c  */
    9168 #line 2771 "parser.yy"
     9167#line 2770 "parser.yy"
    91699168    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    91709169    break;
     
    91739172
    91749173/* Line 1806 of yacc.c  */
    9175 #line 2776 "parser.yy"
     9174#line 2775 "parser.yy"
    91769175    { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); }
    91779176    break;
     
    91809179
    91819180/* Line 1806 of yacc.c  */
    9182 #line 2778 "parser.yy"
     9181#line 2777 "parser.yy"
    91839182    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    91849183    break;
     
    91879186
    91889187/* Line 1806 of yacc.c  */
    9189 #line 2780 "parser.yy"
     9188#line 2779 "parser.yy"
    91909189    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    91919190    break;
     
    91949193
    91959194/* Line 1806 of yacc.c  */
    9196 #line 2804 "parser.yy"
     9195#line 2803 "parser.yy"
    91979196    { (yyval.en) = 0; }
    91989197    break;
     
    92019200
    92029201/* Line 1806 of yacc.c  */
    9203 #line 2806 "parser.yy"
     9202#line 2805 "parser.yy"
    92049203    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    92059204    break;
     
    92089207
    92099208/* Line 1806 of yacc.c  */
    9210 #line 9211 "Parser/parser.cc"
     9209#line 9210 "Parser/parser.cc"
    92119210      default: break;
    92129211    }
     
    94399438
    94409439/* Line 2067 of yacc.c  */
    9441 #line 2809 "parser.yy"
     9440#line 2808 "parser.yy"
    94429441
    94439442// ----end of grammar----
Note: See TracChangeset for help on using the changeset viewer.