Changes in / [dac593fd:71b5d4d3]


Ignore:
Files:
1 added
7 edited

Legend:

Unmodified
Added
Removed
  • Jenkins/FullBuild

    rdac593fd r71b5d4d3  
    1818
    1919        echo(result.result)
    20 
    2120        if(result.result != 'SUCCESS') {
    2221                sh("wget -q -O - ${result.absoluteUrl}/consoleText")
    23                 error(result.result)
    2422        }
    2523}
  • src/Parser/ParseNode.h

    rdac593fd r71b5d4d3  
    1010// Created On       : Sat May 16 13:28:16 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Aug 11 12:24:11 2016
    13 // Update Count     : 443
     12// Last Modified On : Wed Aug 10 21:51:49 2016
     13// Update Count     : 437
    1414//
    1515
     
    363363        // StatementNode *add_controlexp( ExpressionNode * );
    364364        StatementNode *append_block( StatementNode * );
    365         virtual StatementNode *append_last_case( StatementNode * );
     365        StatementNode *append_last_case( StatementNode * );
    366366
    367367        void print( std::ostream &os, int indent = 0) const;
     
    392392                return this;
    393393        }
    394         virtual StatementNode *append_last_case( StatementNode * );
    395394        virtual std::list<std::string> get_labels() const { assert( false ); return StatementNode::get_labels(); }
    396395
     
    412411};
    413412
    414 Statement *build_expr( ExpressionNode *ctl );
    415413Statement *build_if( ExpressionNode *ctl, StatementNode *then_stmt, StatementNode *else_stmt );
    416414Statement *build_switch( ExpressionNode *ctl, StatementNode *stmt );
    417 Statement *build_case( ExpressionNode *ctl );
    418 Statement *build_default();
    419415Statement *build_while( ExpressionNode *ctl, StatementNode *stmt, bool kind = false );
    420416Statement *build_for( ForCtl *forctl, StatementNode *stmt );
    421417Statement *build_branch( std::string identifier, BranchStmt::Type kind );
    422 Statement *build_computedgoto( ExpressionNode *ctl );
    423 Statement *build_return( ExpressionNode *ctl );
    424 Statement *build_throw( ExpressionNode *ctl );
     418Statement *build_case( ExpressionNode *ctl );
     419Statement *build_default();
    425420
    426421//##############################################################################
  • src/Parser/StatementNode.cc

    rdac593fd r71b5d4d3  
    1010// Created On       : Sat May 16 14:59:41 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Aug 11 16:19:45 2016
    13 // Update Count     : 210
     12// Last Modified On : Wed Aug 10 22:08:38 2016
     13// Update Count     : 173
    1414//
    1515
     
    118118
    119119StatementNode *StatementNode::append_last_case( StatementNode *stmt ) {
    120         assert( false );
    121120        if ( stmt != 0 ) {
    122121                StatementNode *next = ( StatementNode *)get_link();
    123122                if ( next && ( next->get_type() == StatementNode::Case || next->get_type() == StatementNode::Default ) )
    124                         next->append_last_case( stmt );
     123                        next->append_last_case ( stmt );
    125124                else
    126125                        if ( block == 0 )
     
    129128                                block->set_link( stmt );
    130129        } // if
    131         return this;
    132 }
    133 
    134 StatementNode *StatementNode2::append_last_case( StatementNode *stmt ) {
    135         StatementNode *prev = this;
    136         for ( StatementNode * curr = prev; curr != nullptr; curr = (StatementNode *)curr->get_link() ) {
    137                 StatementNode2 *node = dynamic_cast<StatementNode2 *>(curr);
    138                 assert( node );
    139                 assert( dynamic_cast<CaseStmt *>(node->stmt) );
    140                 prev = curr;
    141         } // for
    142         StatementNode2 *node = dynamic_cast<StatementNode2 *>(prev);
    143         std::list<Statement *> stmts;
    144         buildList( stmt, stmts );
    145         CaseStmt * caseStmt;
    146         caseStmt = dynamic_cast<CaseStmt *>(node->stmt);
    147         caseStmt->get_statements().splice( caseStmt->get_statements().end(), stmts );
    148130        return this;
    149131}
     
    223205                                return new NullStmt( labs );
    224206                }
    225                 assert( false );
    226207          case If:
    227208                // {
     
    239220                assert( false );
    240221          case Switch:
    241                 // return new SwitchStmt( labs, maybeBuild<Expression>(get_control()), branches );
     222                //return new SwitchStmt( labs, maybeBuild<Expression>(get_control()), branches );
    242223                assert( false );
    243224          case Case:
    244                 //return new CaseStmt( labs, maybeBuild<Expression>(get_control() ), branches );
     225                return new CaseStmt( labs, maybeBuild<Expression>(get_control() ), branches );
    245226                assert( false );
    246227          case Default:
    247                 //return new CaseStmt( labs, 0, branches, true );
     228                return new CaseStmt( labs, 0, branches, true );
    248229                assert( false );
    249230          case While:
     
    279260                assert( false );
    280261          case Goto:
    281                 // {
    282                 //      if ( get_target() == "" ) {                                     // computed goto
    283                 //              assert( get_control() != 0 );
    284                 //              return new BranchStmt( labs, maybeBuild<Expression>(get_control()), BranchStmt::Goto );
    285                 //      } // if
    286 
    287                 //      return new BranchStmt( labs, get_target(), BranchStmt::Goto );
    288                 // }
    289                 assert( false );
     262                {
     263                        if ( get_target() == "" ) {                                     // computed goto
     264                                assert( get_control() != 0 );
     265                                return new BranchStmt( labs, maybeBuild<Expression>(get_control()), BranchStmt::Goto );
     266                        } // if
     267
     268                        return new BranchStmt( labs, get_target(), BranchStmt::Goto );
     269                }
    290270          case Break:
    291                 // return new BranchStmt( labs, get_target(), BranchStmt::Break );
     271                return new BranchStmt( labs, get_target(), BranchStmt::Break );
    292272                assert( false );
    293273          case Continue:
    294                 // return new BranchStmt( labs, get_target(), BranchStmt::Continue );
     274                return new BranchStmt( labs, get_target(), BranchStmt::Continue );
    295275                assert( false );
    296276          case Return:
    297277          case Throw :
    298                 // buildList( get_control(), exps );
    299                 // if ( exps.size() ==0 )
    300                 //      return new ReturnStmt( labs, 0, type == Throw );
    301                 // if ( exps.size() > 0 )
    302                 //      return new ReturnStmt( labs, exps.back(), type == Throw );
    303                 assert( false );
     278                buildList( get_control(), exps );
     279                if ( exps.size() ==0 )
     280                        return new ReturnStmt( labs, 0, type == Throw );
     281                if ( exps.size() > 0 )
     282                        return new ReturnStmt( labs, exps.back(), type == Throw );
    304283          case Try:
    305284                {
     
    335314}
    336315
    337 Statement *build_expr( ExpressionNode *ctl ) {
    338         Expression *e = maybeBuild< Expression >( ctl );
    339 
    340         if ( e )
    341                 return new ExprStmt( noLabels, e );
    342         else
    343                 return new NullStmt( noLabels );
    344 }
    345 
    346316Statement *build_if( ExpressionNode *ctl, StatementNode *then_stmt, StatementNode *else_stmt ) {
    347317        Statement *thenb, *elseb = 0;
     
    368338Statement *build_case( ExpressionNode *ctl ) {
    369339        std::list<Statement *> branches;
     340        buildList<Statement, StatementNode>( nullptr, branches );
    370341        return new CaseStmt( noLabels, maybeBuild<Expression>(ctl), branches );
    371342}
     
    406377Statement *build_branch( std::string identifier, BranchStmt::Type kind ) {
    407378        return new BranchStmt( noLabels, identifier, kind );
    408 }
    409 Statement *build_computedgoto( ExpressionNode *ctl ) {
    410         return new BranchStmt( noLabels, maybeBuild<Expression>(ctl), BranchStmt::Goto );
    411 }
    412 
    413 Statement *build_return( ExpressionNode *ctl ) {
    414         std::list<Expression *> exps;
    415         buildList( ctl, exps );
    416         return new ReturnStmt( noLabels, exps.size() > 0 ? exps.back() : nullptr );
    417 }
    418 Statement *build_throw( ExpressionNode *ctl ) {
    419         std::list<Expression *> exps;
    420         buildList( ctl, exps );
    421         return new ReturnStmt( noLabels, exps.size() > 0 ? exps.back() : nullptr, true );
    422379}
    423380
  • src/Parser/parser.cc

    rdac593fd r71b5d4d3  
    10351035     657,   658,   659,   660,   661,   662,   663,   673,   680,   682,
    10361036     692,   693,   698,   700,   706,   708,   712,   713,   718,   723,
    1037      726,   728,   730,   740,   742,   753,   754,   756,   761,   763,
    1038      767,   768,   773,   774,   778,   783,   784,   788,   790,   796,
    1039      797,   801,   803,   805,   807,   813,   814,   818,   820,   825,
    1040      827,   829,   834,   836,   841,   843,   847,   850,   854,   857,
    1041      861,   863,   865,   867,   872,   874,   876,   885,   887,   889,
    1042      891,   893,   898,   900,   902,   904,   909,   922,   923,   928,
    1043      930,   935,   939,   941,   943,   945,   947,   953,   954,   960,
    1044      961,   965,   966,   971,   973,   979,   980,   982,   987,   989,
    1045      996,   998,  1002,  1003,  1008,  1010,  1014,  1015,  1019,  1021,
    1046     1025,  1026,  1030,  1031,  1035,  1036,  1051,  1052,  1053,  1054,
    1047     1055,  1059,  1064,  1071,  1081,  1086,  1091,  1099,  1104,  1109,
    1048     1114,  1119,  1127,  1149,  1154,  1161,  1163,  1170,  1175,  1180,
    1049     1191,  1196,  1201,  1206,  1211,  1220,  1225,  1233,  1234,  1235,
    1050     1236,  1242,  1247,  1255,  1256,  1257,  1258,  1262,  1263,  1264,
    1051     1265,  1270,  1271,  1280,  1281,  1286,  1287,  1292,  1294,  1296,
    1052     1298,  1300,  1303,  1302,  1314,  1315,  1317,  1327,  1328,  1333,
    1053     1337,  1339,  1341,  1343,  1345,  1347,  1349,  1351,  1356,  1358,
    1054     1360,  1362,  1364,  1366,  1368,  1370,  1372,  1374,  1376,  1378,
    1055     1380,  1386,  1387,  1389,  1391,  1393,  1398,  1399,  1405,  1406,
    1056     1408,  1410,  1415,  1417,  1419,  1421,  1426,  1427,  1429,  1431,
    1057     1436,  1437,  1439,  1444,  1445,  1447,  1449,  1454,  1456,  1458,
    1058     1463,  1464,  1468,  1470,  1476,  1475,  1479,  1481,  1486,  1488,
    1059     1494,  1495,  1500,  1501,  1503,  1504,  1513,  1514,  1516,  1518,
    1060     1523,  1525,  1531,  1532,  1534,  1537,  1540,  1545,  1546,  1551,
    1061     1556,  1560,  1562,  1568,  1567,  1574,  1576,  1582,  1583,  1591,
    1062     1592,  1596,  1597,  1598,  1600,  1602,  1609,  1610,  1612,  1614,
    1063     1619,  1620,  1626,  1627,  1631,  1632,  1637,  1638,  1639,  1641,
    1064     1649,  1650,  1652,  1655,  1657,  1661,  1662,  1663,  1665,  1667,
    1065     1671,  1676,  1684,  1685,  1694,  1696,  1701,  1702,  1703,  1707,
    1066     1708,  1709,  1713,  1714,  1715,  1719,  1720,  1721,  1726,  1727,
    1067     1728,  1729,  1735,  1736,  1738,  1743,  1744,  1749,  1750,  1751,
    1068     1752,  1753,  1768,  1769,  1774,  1775,  1781,  1783,  1786,  1788,
    1069     1790,  1813,  1814,  1816,  1818,  1823,  1824,  1826,  1831,  1836,
    1070     1837,  1843,  1842,  1846,  1850,  1852,  1854,  1860,  1861,  1866,
    1071     1871,  1873,  1878,  1880,  1881,  1883,  1888,  1890,  1892,  1897,
    1072     1899,  1904,  1909,  1917,  1923,  1922,  1936,  1937,  1942,  1943,
    1073     1947,  1952,  1957,  1965,  1970,  1981,  1982,  1993,  1994,  2000,
    1074     2001,  2005,  2006,  2007,  2010,  2009,  2020,  2029,  2035,  2041,
    1075     2050,  2056,  2062,  2068,  2074,  2082,  2088,  2096,  2102,  2111,
    1076     2112,  2113,  2117,  2121,  2123,  2128,  2129,  2133,  2134,  2139,
    1077     2145,  2146,  2149,  2151,  2152,  2156,  2157,  2158,  2159,  2193,
    1078     2195,  2196,  2198,  2203,  2208,  2213,  2215,  2217,  2222,  2224,
    1079     2226,  2228,  2233,  2235,  2244,  2246,  2247,  2252,  2254,  2256,
    1080     2261,  2263,  2265,  2270,  2272,  2274,  2283,  2284,  2285,  2289,
    1081     2291,  2293,  2298,  2300,  2302,  2307,  2309,  2311,  2326,  2328,
    1082     2329,  2331,  2336,  2337,  2342,  2344,  2346,  2351,  2353,  2355,
    1083     2357,  2362,  2364,  2366,  2376,  2378,  2379,  2381,  2386,  2388,
    1084     2390,  2395,  2397,  2399,  2401,  2406,  2408,  2410,  2441,  2443,
    1085     2444,  2446,  2451,  2456,  2464,  2466,  2468,  2473,  2475,  2480,
    1086     2482,  2496,  2497,  2499,  2504,  2506,  2508,  2510,  2512,  2517,
    1087     2518,  2520,  2522,  2527,  2529,  2531,  2537,  2539,  2541,  2545,
    1088     2547,  2549,  2551,  2565,  2566,  2568,  2573,  2575,  2577,  2579,
    1089     2581,  2586,  2587,  2589,  2591,  2596,  2598,  2600,  2606,  2607,
    1090     2609,  2618,  2621,  2623,  2626,  2628,  2630,  2643,  2644,  2646,
    1091     2651,  2653,  2655,  2657,  2659,  2664,  2665,  2667,  2669,  2674,
    1092     2676,  2684,  2685,  2686,  2691,  2692,  2696,  2698,  2700,  2702,
    1093     2704,  2706,  2713,  2715,  2717,  2719,  2721,  2723,  2725,  2727,
    1094     2729,  2731,  2736,  2738,  2740,  2745,  2771,  2772,  2774,  2778,
    1095     2779,  2783,  2785,  2787,  2789,  2791,  2793,  2800,  2802,  2804,
    1096     2806,  2808,  2810,  2815,  2820,  2822,  2824,  2842,  2844,  2849,
    1097     2850
     1037     726,   728,   730,   740,   742,   753,   754,   756,   760,   762,
     1038     766,   767,   772,   773,   777,   782,   783,   787,   789,   795,
     1039     796,   800,   802,   804,   806,   812,   813,   817,   819,   824,
     1040     826,   828,   833,   835,   840,   843,   847,   851,   856,   860,
     1041     865,   867,   871,   873,   880,   882,   884,   893,   895,   897,
     1042     899,   901,   906,   908,   910,   912,   917,   930,   931,   936,
     1043     938,   943,   947,   949,   951,   953,   955,   961,   962,   968,
     1044     969,   973,   974,   979,   981,   987,   988,   990,   995,   997,
     1045    1004,  1006,  1010,  1011,  1016,  1018,  1022,  1023,  1027,  1029,
     1046    1033,  1034,  1038,  1039,  1043,  1044,  1059,  1060,  1061,  1062,
     1047    1063,  1067,  1072,  1079,  1089,  1094,  1099,  1107,  1112,  1117,
     1048    1122,  1127,  1135,  1157,  1162,  1169,  1171,  1178,  1183,  1188,
     1049    1199,  1204,  1209,  1214,  1219,  1228,  1233,  1241,  1242,  1243,
     1050    1244,  1250,  1255,  1263,  1264,  1265,  1266,  1270,  1271,  1272,
     1051    1273,  1278,  1279,  1288,  1289,  1294,  1295,  1300,  1302,  1304,
     1052    1306,  1308,  1311,  1310,  1322,  1323,  1325,  1335,  1336,  1341,
     1053    1345,  1347,  1349,  1351,  1353,  1355,  1357,  1359,  1364,  1366,
     1054    1368,  1370,  1372,  1374,  1376,  1378,  1380,  1382,  1384,  1386,
     1055    1388,  1394,  1395,  1397,  1399,  1401,  1406,  1407,  1413,  1414,
     1056    1416,  1418,  1423,  1425,  1427,  1429,  1434,  1435,  1437,  1439,
     1057    1444,  1445,  1447,  1452,  1453,  1455,  1457,  1462,  1464,  1466,
     1058    1471,  1472,  1476,  1478,  1484,  1483,  1487,  1489,  1494,  1496,
     1059    1502,  1503,  1508,  1509,  1511,  1512,  1521,  1522,  1524,  1526,
     1060    1531,  1533,  1539,  1540,  1542,  1545,  1548,  1553,  1554,  1559,
     1061    1564,  1568,  1570,  1576,  1575,  1582,  1584,  1590,  1591,  1599,
     1062    1600,  1604,  1605,  1606,  1608,  1610,  1617,  1618,  1620,  1622,
     1063    1627,  1628,  1634,  1635,  1639,  1640,  1645,  1646,  1647,  1649,
     1064    1657,  1658,  1660,  1663,  1665,  1669,  1670,  1671,  1673,  1675,
     1065    1679,  1684,  1692,  1693,  1702,  1704,  1709,  1710,  1711,  1715,
     1066    1716,  1717,  1721,  1722,  1723,  1727,  1728,  1729,  1734,  1735,
     1067    1736,  1737,  1743,  1744,  1746,  1751,  1752,  1757,  1758,  1759,
     1068    1760,  1761,  1776,  1777,  1782,  1783,  1789,  1791,  1794,  1796,
     1069    1798,  1821,  1822,  1824,  1826,  1831,  1832,  1834,  1839,  1844,
     1070    1845,  1851,  1850,  1854,  1858,  1860,  1862,  1868,  1869,  1874,
     1071    1879,  1881,  1886,  1888,  1889,  1891,  1896,  1898,  1900,  1905,
     1072    1907,  1912,  1917,  1925,  1931,  1930,  1944,  1945,  1950,  1951,
     1073    1955,  1960,  1965,  1973,  1978,  1989,  1990,  2001,  2002,  2008,
     1074    2009,  2013,  2014,  2015,  2018,  2017,  2028,  2037,  2043,  2049,
     1075    2058,  2064,  2070,  2076,  2082,  2090,  2096,  2104,  2110,  2119,
     1076    2120,  2121,  2125,  2129,  2131,  2136,  2137,  2141,  2142,  2147,
     1077    2153,  2154,  2157,  2159,  2160,  2164,  2165,  2166,  2167,  2201,
     1078    2203,  2204,  2206,  2211,  2216,  2221,  2223,  2225,  2230,  2232,
     1079    2234,  2236,  2241,  2243,  2252,  2254,  2255,  2260,  2262,  2264,
     1080    2269,  2271,  2273,  2278,  2280,  2282,  2291,  2292,  2293,  2297,
     1081    2299,  2301,  2306,  2308,  2310,  2315,  2317,  2319,  2334,  2336,
     1082    2337,  2339,  2344,  2345,  2350,  2352,  2354,  2359,  2361,  2363,
     1083    2365,  2370,  2372,  2374,  2384,  2386,  2387,  2389,  2394,  2396,
     1084    2398,  2403,  2405,  2407,  2409,  2414,  2416,  2418,  2449,  2451,
     1085    2452,  2454,  2459,  2464,  2472,  2474,  2476,  2481,  2483,  2488,
     1086    2490,  2504,  2505,  2507,  2512,  2514,  2516,  2518,  2520,  2525,
     1087    2526,  2528,  2530,  2535,  2537,  2539,  2545,  2547,  2549,  2553,
     1088    2555,  2557,  2559,  2573,  2574,  2576,  2581,  2583,  2585,  2587,
     1089    2589,  2594,  2595,  2597,  2599,  2604,  2606,  2608,  2614,  2615,
     1090    2617,  2626,  2629,  2631,  2634,  2636,  2638,  2651,  2652,  2654,
     1091    2659,  2661,  2663,  2665,  2667,  2672,  2673,  2675,  2677,  2682,
     1092    2684,  2692,  2693,  2694,  2699,  2700,  2704,  2706,  2708,  2710,
     1093    2712,  2714,  2721,  2723,  2725,  2727,  2729,  2731,  2733,  2735,
     1094    2737,  2739,  2744,  2746,  2748,  2753,  2779,  2780,  2782,  2786,
     1095    2787,  2791,  2793,  2795,  2797,  2799,  2801,  2808,  2810,  2812,
     1096    2814,  2816,  2818,  2823,  2828,  2830,  2832,  2850,  2852,  2857,
     1097    2858
    10981098};
    10991099#endif
     
    56385638                        Token fn;
    56395639                        fn.str = new std::string( "^?{}" ); // location undefined
    5640                         (yyval.sn) = new StatementNode2( build_expr( new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[(2) - (6)].en) )->set_link( (yyvsp[(4) - (6)].en) ) ) ) ) );
     5640                        (yyval.sn) = new StatementNode( StatementNode::Exp, new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[(2) - (6)].en) )->set_link( (yyvsp[(4) - (6)].en) ) ) ), 0 );
    56415641                }
    56425642    break;
     
    57085708/* Line 1806 of yacc.c  */
    57095709#line 719 "parser.yy"
    5710     { (yyval.sn) = new StatementNode2( build_expr( (yyvsp[(1) - (2)].en) ) ); }
     5710    { (yyval.sn) = new StatementNode( StatementNode::Exp, (yyvsp[(1) - (2)].en), 0 ); }
    57115711    break;
    57125712
     
    57815781
    57825782/* Line 1806 of yacc.c  */
    5783 #line 761 "parser.yy"
    5784     { (yyval.sn) = new StatementNode2( build_case( (yyvsp[(1) - (1)].en) ) ); }
     5783#line 760 "parser.yy"
     5784    { (yyval.sn) = new StatementNode( StatementNode::Case, (yyvsp[(1) - (1)].en), 0 ); }
    57855785    break;
    57865786
     
    57885788
    57895789/* Line 1806 of yacc.c  */
    5790 #line 763 "parser.yy"
    5791     { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_link( new StatementNode2( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); }
     5790#line 762 "parser.yy"
     5791    { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_link( new StatementNode( StatementNode::Case, (yyvsp[(3) - (3)].en), 0 ) ) ); }
    57925792    break;
    57935793
     
    57955795
    57965796/* Line 1806 of yacc.c  */
     5797#line 766 "parser.yy"
     5798    { (yyval.sn) = (yyvsp[(2) - (3)].sn); }
     5799    break;
     5800
     5801  case 161:
     5802
     5803/* Line 1806 of yacc.c  */
    57975804#line 767 "parser.yy"
    5798     { (yyval.sn) = (yyvsp[(2) - (3)].sn); }
    5799     break;
    5800 
    5801   case 161:
    5802 
    5803 /* Line 1806 of yacc.c  */
    5804 #line 768 "parser.yy"
    5805     { (yyval.sn) = new StatementNode2( build_default() ); }
     5805    { (yyval.sn) = new StatementNode( StatementNode::Default ); }
    58065806    break;
    58075807
     
    58095809
    58105810/* Line 1806 of yacc.c  */
    5811 #line 774 "parser.yy"
     5811#line 773 "parser.yy"
    58125812    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) )); }
    58135813    break;
     
    58165816
    58175817/* Line 1806 of yacc.c  */
    5818 #line 778 "parser.yy"
     5818#line 777 "parser.yy"
    58195819    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new CompoundStmtNode( (yyvsp[(2) - (2)].sn) ) ); }
    58205820    break;
     
    58235823
    58245824/* Line 1806 of yacc.c  */
    5825 #line 783 "parser.yy"
     5825#line 782 "parser.yy"
    58265826    { (yyval.sn) = 0; }
    58275827    break;
     
    58305830
    58315831/* Line 1806 of yacc.c  */
    5832 #line 789 "parser.yy"
     5832#line 788 "parser.yy"
    58335833    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new CompoundStmtNode( (yyvsp[(2) - (2)].sn) ) ); }
    58345834    break;
     
    58375837
    58385838/* Line 1806 of yacc.c  */
    5839 #line 791 "parser.yy"
     5839#line 790 "parser.yy"
    58405840    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( new CompoundStmtNode( (yyvsp[(3) - (3)].sn) ) ) ) ); }
    58415841    break;
     
    58445844
    58455845/* Line 1806 of yacc.c  */
    5846 #line 796 "parser.yy"
     5846#line 795 "parser.yy"
    58475847    { (yyval.sn) = 0; }
    58485848    break;
     
    58515851
    58525852/* Line 1806 of yacc.c  */
    5853 #line 802 "parser.yy"
     5853#line 801 "parser.yy"
    58545854    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    58555855    break;
     
    58585858
    58595859/* Line 1806 of yacc.c  */
    5860 #line 804 "parser.yy"
     5860#line 803 "parser.yy"
    58615861    { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new CompoundStmtNode( (StatementNode *)mkList( (*(yyvsp[(2) - (3)].sn), *(yyvsp[(3) - (3)].sn) ) ) ) ); }
    58625862    break;
     
    58655865
    58665866/* Line 1806 of yacc.c  */
    5867 #line 806 "parser.yy"
     5867#line 805 "parser.yy"
    58685868    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
    58695869    break;
     
    58725872
    58735873/* Line 1806 of yacc.c  */
    5874 #line 808 "parser.yy"
     5874#line 807 "parser.yy"
    58755875    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_link( (yyvsp[(2) - (4)].sn)->append_last_case( new CompoundStmtNode( (StatementNode *)mkList( (*(yyvsp[(3) - (4)].sn), *(yyvsp[(4) - (4)].sn) ) ) ) ) ) ); }
    58765876    break;
     
    58795879
    58805880/* Line 1806 of yacc.c  */
    5881 #line 813 "parser.yy"
    5882     { (yyval.sn) = new StatementNode2( build_branch( "", BranchStmt::Break ) ); }
     5881#line 812 "parser.yy"
     5882    { (yyval.sn) = new StatementNode( StatementNode::Break ); }
    58835883    break;
    58845884
     
    58865886
    58875887/* Line 1806 of yacc.c  */
    5888 #line 819 "parser.yy"
     5888#line 818 "parser.yy"
    58895889    { (yyval.sn) = 0; }
    58905890    break;
     
    58935893
    58945894/* Line 1806 of yacc.c  */
    5895 #line 821 "parser.yy"
     5895#line 820 "parser.yy"
    58965896    { (yyval.sn) = 0; }
    58975897    break;
     
    59005900
    59015901/* Line 1806 of yacc.c  */
    5902 #line 826 "parser.yy"
     5902#line 825 "parser.yy"
    59035903    { (yyval.sn) = new StatementNode2( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    59045904    break;
     
    59075907
    59085908/* Line 1806 of yacc.c  */
    5909 #line 828 "parser.yy"
     5909#line 827 "parser.yy"
    59105910    { (yyval.sn) = new StatementNode2( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ) ); }
    59115911    break;
     
    59145914
    59155915/* Line 1806 of yacc.c  */
    5916 #line 830 "parser.yy"
     5916#line 829 "parser.yy"
    59175917    { (yyval.sn) = new StatementNode2( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); }
    59185918    break;
     
    59215921
    59225922/* Line 1806 of yacc.c  */
    5923 #line 835 "parser.yy"
     5923#line 834 "parser.yy"
    59245924    { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
    59255925    break;
     
    59285928
    59295929/* Line 1806 of yacc.c  */
    5930 #line 837 "parser.yy"
     5930#line 836 "parser.yy"
    59315931    { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
    59325932    break;
     
    59435943/* Line 1806 of yacc.c  */
    59445944#line 846 "parser.yy"
    5945     { (yyval.sn) = new StatementNode2( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); }
     5945    { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(3) - (4)].en) ); }
    59465946    break;
    59475947
     
    59495949
    59505950/* Line 1806 of yacc.c  */
    5951 #line 849 "parser.yy"
     5951#line 850 "parser.yy"
    59525952    { (yyval.sn) = new StatementNode2( build_branch( "", BranchStmt::Continue ) ); }
    59535953    break;
     
    59565956
    59575957/* Line 1806 of yacc.c  */
    5958 #line 853 "parser.yy"
     5958#line 855 "parser.yy"
    59595959    { (yyval.sn) = new StatementNode2( build_branch( *(yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); delete (yyvsp[(2) - (3)].tok); }
    59605960    break;
     
    59635963
    59645964/* Line 1806 of yacc.c  */
    5965 #line 856 "parser.yy"
     5965#line 859 "parser.yy"
    59665966    { (yyval.sn) = new StatementNode2( build_branch( "", BranchStmt::Break ) ); }
    59675967    break;
     
    59705970
    59715971/* Line 1806 of yacc.c  */
    5972 #line 860 "parser.yy"
     5972#line 864 "parser.yy"
    59735973    { (yyval.sn) = new StatementNode2( build_branch( *(yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); delete (yyvsp[(2) - (3)].tok); }
    59745974    break;
     
    59775977
    59785978/* Line 1806 of yacc.c  */
    5979 #line 862 "parser.yy"
    5980     { (yyval.sn) = new StatementNode2( build_return( (yyvsp[(2) - (3)].en) ) ); }
     5979#line 866 "parser.yy"
     5980    { (yyval.sn) = new StatementNode( StatementNode::Return, (yyvsp[(2) - (3)].en), 0 ); }
    59815981    break;
    59825982
     
    59845984
    59855985/* Line 1806 of yacc.c  */
    5986 #line 864 "parser.yy"
    5987     { (yyval.sn) = new StatementNode2( build_throw( (yyvsp[(2) - (3)].en) ) ); }
     5986#line 868 "parser.yy"
     5987    { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); }
    59885988    break;
    59895989
     
    59915991
    59925992/* Line 1806 of yacc.c  */
    5993 #line 866 "parser.yy"
    5994     { (yyval.sn) = new StatementNode2( build_throw( (yyvsp[(2) - (3)].en) ) ); }
     5993#line 872 "parser.yy"
     5994    { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); }
    59955995    break;
    59965996
     
    59985998
    59995999/* Line 1806 of yacc.c  */
    6000 #line 868 "parser.yy"
    6001     { (yyval.sn) = new StatementNode2( build_throw( (yyvsp[(2) - (5)].en) ) ); }
     6000#line 874 "parser.yy"
     6001    { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (5)].en), 0 ); }
    60026002    break;
    60036003
     
    60056005
    60066006/* Line 1806 of yacc.c  */
    6007 #line 873 "parser.yy"
     6007#line 881 "parser.yy"
    60086008    { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); }
    60096009    break;
     
    60126012
    60136013/* Line 1806 of yacc.c  */
    6014 #line 875 "parser.yy"
     6014#line 883 "parser.yy"
    60156015    { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); }
    60166016    break;
     
    60196019
    60206020/* Line 1806 of yacc.c  */
    6021 #line 877 "parser.yy"
     6021#line 885 "parser.yy"
    60226022    {
    60236023                        (yyvsp[(3) - (4)].pn)->set_link( (yyvsp[(4) - (4)].pn) );
     
    60296029
    60306030/* Line 1806 of yacc.c  */
    6031 #line 888 "parser.yy"
     6031#line 896 "parser.yy"
    60326032    { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); }
    60336033    break;
     
    60366036
    60376037/* Line 1806 of yacc.c  */
    6038 #line 890 "parser.yy"
     6038#line 898 "parser.yy"
    60396039    { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); }
    60406040    break;
     
    60436043
    60446044/* Line 1806 of yacc.c  */
    6045 #line 892 "parser.yy"
     6045#line 900 "parser.yy"
    60466046    { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); }
    60476047    break;
     
    60506050
    60516051/* Line 1806 of yacc.c  */
    6052 #line 894 "parser.yy"
     6052#line 902 "parser.yy"
    60536053    { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); }
    60546054    break;
     
    60576057
    60586058/* Line 1806 of yacc.c  */
    6059 #line 899 "parser.yy"
     6059#line 907 "parser.yy"
    60606060    { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); }
    60616061    break;
     
    60646064
    60656065/* Line 1806 of yacc.c  */
    6066 #line 901 "parser.yy"
     6066#line 909 "parser.yy"
    60676067    { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); }
    60686068    break;
     
    60716071
    60726072/* Line 1806 of yacc.c  */
    6073 #line 903 "parser.yy"
     6073#line 911 "parser.yy"
    60746074    { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); }
    60756075    break;
     
    60786078
    60796079/* Line 1806 of yacc.c  */
    6080 #line 905 "parser.yy"
     6080#line 913 "parser.yy"
    60816081    { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); }
    60826082    break;
     
    60856085
    60866086/* Line 1806 of yacc.c  */
    6087 #line 910 "parser.yy"
     6087#line 918 "parser.yy"
    60886088    {
    60896089                        (yyval.pn) = new StatementNode( StatementNode::Finally, 0, (yyvsp[(2) - (2)].sn) );
     
    60956095
    60966096/* Line 1806 of yacc.c  */
    6097 #line 924 "parser.yy"
     6097#line 932 "parser.yy"
    60986098    {
    60996099                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    61056105
    61066106/* Line 1806 of yacc.c  */
    6107 #line 929 "parser.yy"
     6107#line 937 "parser.yy"
    61086108    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    61096109    break;
     
    61126112
    61136113/* Line 1806 of yacc.c  */
    6114 #line 931 "parser.yy"
     6114#line 939 "parser.yy"
    61156115    {
    61166116                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    61226122
    61236123/* Line 1806 of yacc.c  */
    6124 #line 940 "parser.yy"
     6124#line 948 "parser.yy"
    61256125    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ); }
    61266126    break;
     
    61296129
    61306130/* Line 1806 of yacc.c  */
    6131 #line 942 "parser.yy"
     6131#line 950 "parser.yy"
    61326132    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ); }
    61336133    break;
     
    61366136
    61376137/* Line 1806 of yacc.c  */
    6138 #line 944 "parser.yy"
     6138#line 952 "parser.yy"
    61396139    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ); }
    61406140    break;
     
    61436143
    61446144/* Line 1806 of yacc.c  */
    6145 #line 946 "parser.yy"
     6145#line 954 "parser.yy"
    61466146    { (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)].en) ); }
    61476147    break;
     
    61506150
    61516151/* Line 1806 of yacc.c  */
    6152 #line 948 "parser.yy"
     6152#line 956 "parser.yy"
    61536153    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].en), (yyvsp[(12) - (14)].label) ); }
    61546154    break;
     
    61576157
    61586158/* Line 1806 of yacc.c  */
    6159 #line 953 "parser.yy"
     6159#line 961 "parser.yy"
    61606160    { (yyval.flag) = false; }
    61616161    break;
     
    61646164
    61656165/* Line 1806 of yacc.c  */
    6166 #line 955 "parser.yy"
     6166#line 963 "parser.yy"
    61676167    { (yyval.flag) = true; }
    61686168    break;
     
    61716171
    61726172/* Line 1806 of yacc.c  */
    6173 #line 960 "parser.yy"
     6173#line 968 "parser.yy"
    61746174    { (yyval.en) = 0; }
    61756175    break;
     
    61786178
    61796179/* Line 1806 of yacc.c  */
    6180 #line 967 "parser.yy"
     6180#line 975 "parser.yy"
    61816181    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
    61826182    break;
     
    61856185
    61866186/* Line 1806 of yacc.c  */
    6187 #line 972 "parser.yy"
     6187#line 980 "parser.yy"
    61886188    { (yyval.en) = new ExpressionNode( build_asm( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); }
    61896189    break;
     
    61926192
    61936193/* Line 1806 of yacc.c  */
    6194 #line 974 "parser.yy"
     6194#line 982 "parser.yy"
    61956195    { (yyval.en) = new ExpressionNode( build_asm( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); }
    61966196    break;
     
    61996199
    62006200/* Line 1806 of yacc.c  */
    6201 #line 979 "parser.yy"
     6201#line 987 "parser.yy"
    62026202    { (yyval.en) = 0; }
    62036203    break;
     
    62066206
    62076207/* Line 1806 of yacc.c  */
    6208 #line 981 "parser.yy"
     6208#line 989 "parser.yy"
    62096209    { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
    62106210    break;
     
    62136213
    62146214/* Line 1806 of yacc.c  */
    6215 #line 983 "parser.yy"
     6215#line 991 "parser.yy"
    62166216    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); }
    62176217    break;
     
    62206220
    62216221/* Line 1806 of yacc.c  */
    6222 #line 988 "parser.yy"
     6222#line 996 "parser.yy"
    62236223    { (yyval.label) = new LabelNode(); (yyval.label)->append_label( (yyvsp[(1) - (1)].tok) ); }
    62246224    break;
     
    62276227
    62286228/* Line 1806 of yacc.c  */
    6229 #line 990 "parser.yy"
     6229#line 998 "parser.yy"
    62306230    { (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->append_label( (yyvsp[(3) - (3)].tok) ); }
    62316231    break;
     
    62346234
    62356235/* Line 1806 of yacc.c  */
    6236 #line 997 "parser.yy"
     6236#line 1005 "parser.yy"
    62376237    { (yyval.decl) = 0; }
    62386238    break;
     
    62416241
    62426242/* Line 1806 of yacc.c  */
    6243 #line 1004 "parser.yy"
     6243#line 1012 "parser.yy"
    62446244    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    62456245    break;
     
    62486248
    62496249/* Line 1806 of yacc.c  */
    6250 #line 1009 "parser.yy"
     6250#line 1017 "parser.yy"
    62516251    { (yyval.decl) = 0; }
    62526252    break;
     
    62556255
    62566256/* Line 1806 of yacc.c  */
    6257 #line 1016 "parser.yy"
     6257#line 1024 "parser.yy"
    62586258    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    62596259    break;
     
    62626262
    62636263/* Line 1806 of yacc.c  */
    6264 #line 1030 "parser.yy"
     6264#line 1038 "parser.yy"
    62656265    {}
    62666266    break;
     
    62696269
    62706270/* Line 1806 of yacc.c  */
    6271 #line 1031 "parser.yy"
     6271#line 1039 "parser.yy"
    62726272    {}
    62736273    break;
     
    62766276
    62776277/* Line 1806 of yacc.c  */
    6278 #line 1060 "parser.yy"
     6278#line 1068 "parser.yy"
    62796279    {
    62806280                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    62866286
    62876287/* Line 1806 of yacc.c  */
    6288 #line 1067 "parser.yy"
     6288#line 1075 "parser.yy"
    62896289    {
    62906290                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    62966296
    62976297/* Line 1806 of yacc.c  */
    6298 #line 1072 "parser.yy"
     6298#line 1080 "parser.yy"
    62996299    {
    63006300                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID );
     
    63066306
    63076307/* Line 1806 of yacc.c  */
    6308 #line 1082 "parser.yy"
     6308#line 1090 "parser.yy"
    63096309    {
    63106310                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    63166316
    63176317/* Line 1806 of yacc.c  */
    6318 #line 1087 "parser.yy"
     6318#line 1095 "parser.yy"
    63196319    {
    63206320                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    63266326
    63276327/* Line 1806 of yacc.c  */
    6328 #line 1092 "parser.yy"
     6328#line 1100 "parser.yy"
    63296329    {
    63306330                        typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) );
     
    63366336
    63376337/* Line 1806 of yacc.c  */
    6338 #line 1100 "parser.yy"
     6338#line 1108 "parser.yy"
    63396339    {
    63406340                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63466346
    63476347/* Line 1806 of yacc.c  */
    6348 #line 1105 "parser.yy"
     6348#line 1113 "parser.yy"
    63496349    {
    63506350                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63566356
    63576357/* Line 1806 of yacc.c  */
    6358 #line 1110 "parser.yy"
     6358#line 1118 "parser.yy"
    63596359    {
    63606360                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63666366
    63676367/* Line 1806 of yacc.c  */
    6368 #line 1115 "parser.yy"
     6368#line 1123 "parser.yy"
    63696369    {
    63706370                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63766376
    63776377/* Line 1806 of yacc.c  */
    6378 #line 1120 "parser.yy"
     6378#line 1128 "parser.yy"
    63796379    {
    63806380                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    63866386
    63876387/* Line 1806 of yacc.c  */
    6388 #line 1128 "parser.yy"
     6388#line 1136 "parser.yy"
    63896389    {
    63906390                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true );
     
    63956395
    63966396/* Line 1806 of yacc.c  */
    6397 #line 1151 "parser.yy"
     6397#line 1159 "parser.yy"
    63986398    {
    63996399                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    64046404
    64056405/* Line 1806 of yacc.c  */
    6406 #line 1155 "parser.yy"
     6406#line 1163 "parser.yy"
    64076407    {
    64086408                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    64136413
    64146414/* Line 1806 of yacc.c  */
    6415 #line 1162 "parser.yy"
     6415#line 1170 "parser.yy"
    64166416    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    64176417    break;
     
    64206420
    64216421/* Line 1806 of yacc.c  */
    6422 #line 1166 "parser.yy"
     6422#line 1174 "parser.yy"
    64236423    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
    64246424    break;
     
    64276427
    64286428/* Line 1806 of yacc.c  */
    6429 #line 1171 "parser.yy"
     6429#line 1179 "parser.yy"
    64306430    {
    64316431                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64376437
    64386438/* Line 1806 of yacc.c  */
    6439 #line 1176 "parser.yy"
     6439#line 1184 "parser.yy"
    64406440    {
    64416441                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64476447
    64486448/* Line 1806 of yacc.c  */
    6449 #line 1181 "parser.yy"
     6449#line 1189 "parser.yy"
    64506450    {
    64516451                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD );
     
    64576457
    64586458/* Line 1806 of yacc.c  */
    6459 #line 1192 "parser.yy"
     6459#line 1200 "parser.yy"
    64606460    {
    64616461                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64676467
    64686468/* Line 1806 of yacc.c  */
    6469 #line 1197 "parser.yy"
     6469#line 1205 "parser.yy"
    64706470    {
    64716471                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64776477
    64786478/* Line 1806 of yacc.c  */
    6479 #line 1202 "parser.yy"
     6479#line 1210 "parser.yy"
    64806480    {
    64816481                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64876487
    64886488/* Line 1806 of yacc.c  */
    6489 #line 1207 "parser.yy"
     6489#line 1215 "parser.yy"
    64906490    {
    64916491                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64976497
    64986498/* Line 1806 of yacc.c  */
    6499 #line 1212 "parser.yy"
     6499#line 1220 "parser.yy"
    65006500    {
    65016501                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65076507
    65086508/* Line 1806 of yacc.c  */
    6509 #line 1221 "parser.yy"
     6509#line 1229 "parser.yy"
    65106510    {
    65116511                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD );
     
    65176517
    65186518/* Line 1806 of yacc.c  */
    6519 #line 1226 "parser.yy"
     6519#line 1234 "parser.yy"
    65206520    {
    65216521                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD );
     
    65276527
    65286528/* Line 1806 of yacc.c  */
    6529 #line 1243 "parser.yy"
     6529#line 1251 "parser.yy"
    65306530    {
    65316531                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    65376537
    65386538/* Line 1806 of yacc.c  */
    6539 #line 1248 "parser.yy"
     6539#line 1256 "parser.yy"
    65406540    {
    65416541                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    65476547
    65486548/* Line 1806 of yacc.c  */
    6549 #line 1270 "parser.yy"
     6549#line 1278 "parser.yy"
    65506550    { (yyval.decl) = 0; }
    65516551    break;
     
    65546554
    65556555/* Line 1806 of yacc.c  */
    6556 #line 1282 "parser.yy"
     6556#line 1290 "parser.yy"
    65576557    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    65586558    break;
     
    65616561
    65626562/* Line 1806 of yacc.c  */
    6563 #line 1293 "parser.yy"
     6563#line 1301 "parser.yy"
    65646564    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
    65656565    break;
     
    65686568
    65696569/* Line 1806 of yacc.c  */
    6570 #line 1295 "parser.yy"
     6570#line 1303 "parser.yy"
    65716571    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
    65726572    break;
     
    65756575
    65766576/* Line 1806 of yacc.c  */
    6577 #line 1297 "parser.yy"
     6577#line 1305 "parser.yy"
    65786578    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
    65796579    break;
     
    65826582
    65836583/* Line 1806 of yacc.c  */
    6584 #line 1299 "parser.yy"
     6584#line 1307 "parser.yy"
    65856585    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
    65866586    break;
     
    65896589
    65906590/* Line 1806 of yacc.c  */
    6591 #line 1301 "parser.yy"
     6591#line 1309 "parser.yy"
    65926592    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
    65936593    break;
     
    65966596
    65976597/* Line 1806 of yacc.c  */
    6598 #line 1303 "parser.yy"
     6598#line 1311 "parser.yy"
    65996599    {
    66006600                        typedefTable.enterScope();
     
    66056605
    66066606/* Line 1806 of yacc.c  */
    6607 #line 1307 "parser.yy"
     6607#line 1315 "parser.yy"
    66086608    {
    66096609                        typedefTable.leaveScope();
     
    66156615
    66166616/* Line 1806 of yacc.c  */
    6617 #line 1316 "parser.yy"
     6617#line 1324 "parser.yy"
    66186618    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    66196619    break;
     
    66226622
    66236623/* Line 1806 of yacc.c  */
    6624 #line 1318 "parser.yy"
     6624#line 1326 "parser.yy"
    66256625    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    66266626    break;
     
    66296629
    66306630/* Line 1806 of yacc.c  */
    6631 #line 1329 "parser.yy"
     6631#line 1337 "parser.yy"
    66326632    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    66336633    break;
     
    66366636
    66376637/* Line 1806 of yacc.c  */
    6638 #line 1338 "parser.yy"
     6638#line 1346 "parser.yy"
    66396639    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
    66406640    break;
     
    66436643
    66446644/* Line 1806 of yacc.c  */
    6645 #line 1340 "parser.yy"
     6645#line 1348 "parser.yy"
    66466646    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
    66476647    break;
     
    66506650
    66516651/* Line 1806 of yacc.c  */
    6652 #line 1342 "parser.yy"
     6652#line 1350 "parser.yy"
    66536653    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
    66546654    break;
     
    66576657
    66586658/* Line 1806 of yacc.c  */
    6659 #line 1344 "parser.yy"
     6659#line 1352 "parser.yy"
    66606660    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
    66616661    break;
     
    66646664
    66656665/* Line 1806 of yacc.c  */
    6666 #line 1346 "parser.yy"
     6666#line 1354 "parser.yy"
    66676667    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); }
    66686668    break;
     
    66716671
    66726672/* Line 1806 of yacc.c  */
    6673 #line 1348 "parser.yy"
     6673#line 1356 "parser.yy"
    66746674    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
    66756675    break;
     
    66786678
    66796679/* Line 1806 of yacc.c  */
    6680 #line 1350 "parser.yy"
     6680#line 1358 "parser.yy"
    66816681    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); }
    66826682    break;
     
    66856685
    66866686/* Line 1806 of yacc.c  */
    6687 #line 1352 "parser.yy"
     6687#line 1360 "parser.yy"
    66886688    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
    66896689    break;
     
    66926692
    66936693/* Line 1806 of yacc.c  */
    6694 #line 1357 "parser.yy"
     6694#line 1365 "parser.yy"
    66956695    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
    66966696    break;
     
    66996699
    67006700/* Line 1806 of yacc.c  */
    6701 #line 1359 "parser.yy"
     6701#line 1367 "parser.yy"
    67026702    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
    67036703    break;
     
    67066706
    67076707/* Line 1806 of yacc.c  */
    6708 #line 1361 "parser.yy"
     6708#line 1369 "parser.yy"
    67096709    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
    67106710    break;
     
    67136713
    67146714/* Line 1806 of yacc.c  */
    6715 #line 1363 "parser.yy"
     6715#line 1371 "parser.yy"
    67166716    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
    67176717    break;
     
    67206720
    67216721/* Line 1806 of yacc.c  */
    6722 #line 1365 "parser.yy"
     6722#line 1373 "parser.yy"
    67236723    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); }
    67246724    break;
     
    67276727
    67286728/* Line 1806 of yacc.c  */
    6729 #line 1367 "parser.yy"
     6729#line 1375 "parser.yy"
    67306730    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); }
    67316731    break;
     
    67346734
    67356735/* Line 1806 of yacc.c  */
    6736 #line 1369 "parser.yy"
     6736#line 1377 "parser.yy"
    67376737    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); }
    67386738    break;
     
    67416741
    67426742/* Line 1806 of yacc.c  */
    6743 #line 1371 "parser.yy"
     6743#line 1379 "parser.yy"
    67446744    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); }
    67456745    break;
     
    67486748
    67496749/* Line 1806 of yacc.c  */
    6750 #line 1373 "parser.yy"
     6750#line 1381 "parser.yy"
    67516751    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
    67526752    break;
     
    67556755
    67566756/* Line 1806 of yacc.c  */
    6757 #line 1375 "parser.yy"
     6757#line 1383 "parser.yy"
    67586758    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
    67596759    break;
     
    67626762
    67636763/* Line 1806 of yacc.c  */
    6764 #line 1377 "parser.yy"
     6764#line 1385 "parser.yy"
    67656765    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); }
    67666766    break;
     
    67696769
    67706770/* Line 1806 of yacc.c  */
    6771 #line 1379 "parser.yy"
     6771#line 1387 "parser.yy"
    67726772    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); }
    67736773    break;
     
    67766776
    67776777/* Line 1806 of yacc.c  */
    6778 #line 1381 "parser.yy"
     6778#line 1389 "parser.yy"
    67796779    { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
    67806780    break;
     
    67836783
    67846784/* Line 1806 of yacc.c  */
    6785 #line 1388 "parser.yy"
     6785#line 1396 "parser.yy"
    67866786    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    67876787    break;
     
    67906790
    67916791/* Line 1806 of yacc.c  */
    6792 #line 1390 "parser.yy"
     6792#line 1398 "parser.yy"
    67936793    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    67946794    break;
     
    67976797
    67986798/* Line 1806 of yacc.c  */
    6799 #line 1392 "parser.yy"
     6799#line 1400 "parser.yy"
    68006800    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    68016801    break;
     
    68046804
    68056805/* Line 1806 of yacc.c  */
    6806 #line 1394 "parser.yy"
     6806#line 1402 "parser.yy"
    68076807    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
    68086808    break;
     
    68116811
    68126812/* Line 1806 of yacc.c  */
    6813 #line 1400 "parser.yy"
     6813#line 1408 "parser.yy"
    68146814    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    68156815    break;
     
    68186818
    68196819/* Line 1806 of yacc.c  */
    6820 #line 1407 "parser.yy"
     6820#line 1415 "parser.yy"
    68216821    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68226822    break;
     
    68256825
    68266826/* Line 1806 of yacc.c  */
    6827 #line 1409 "parser.yy"
     6827#line 1417 "parser.yy"
    68286828    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68296829    break;
     
    68326832
    68336833/* Line 1806 of yacc.c  */
    6834 #line 1411 "parser.yy"
     6834#line 1419 "parser.yy"
    68356835    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
    68366836    break;
     
    68396839
    68406840/* Line 1806 of yacc.c  */
    6841 #line 1416 "parser.yy"
     6841#line 1424 "parser.yy"
    68426842    { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
    68436843    break;
     
    68466846
    68476847/* Line 1806 of yacc.c  */
    6848 #line 1418 "parser.yy"
     6848#line 1426 "parser.yy"
    68496849    { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
    68506850    break;
     
    68536853
    68546854/* Line 1806 of yacc.c  */
    6855 #line 1420 "parser.yy"
     6855#line 1428 "parser.yy"
    68566856    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
    68576857    break;
     
    68606860
    68616861/* Line 1806 of yacc.c  */
    6862 #line 1422 "parser.yy"
     6862#line 1430 "parser.yy"
    68636863    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    68646864    break;
     
    68676867
    68686868/* Line 1806 of yacc.c  */
    6869 #line 1428 "parser.yy"
     6869#line 1436 "parser.yy"
    68706870    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68716871    break;
     
    68746874
    68756875/* Line 1806 of yacc.c  */
    6876 #line 1430 "parser.yy"
     6876#line 1438 "parser.yy"
    68776877    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68786878    break;
     
    68816881
    68826882/* Line 1806 of yacc.c  */
    6883 #line 1432 "parser.yy"
     6883#line 1440 "parser.yy"
    68846884    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    68856885    break;
    68866886
    68876887  case 351:
    6888 
    6889 /* Line 1806 of yacc.c  */
    6890 #line 1438 "parser.yy"
    6891     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    6892     break;
    6893 
    6894   case 352:
    6895 
    6896 /* Line 1806 of yacc.c  */
    6897 #line 1440 "parser.yy"
    6898     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    6899     break;
    6900 
    6901   case 354:
    69026888
    69036889/* Line 1806 of yacc.c  */
     
    69066892    break;
    69076893
    6908   case 355:
     6894  case 352:
    69096895
    69106896/* Line 1806 of yacc.c  */
     
    69136899    break;
    69146900
     6901  case 354:
     6902
     6903/* Line 1806 of yacc.c  */
     6904#line 1454 "parser.yy"
     6905    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6906    break;
     6907
     6908  case 355:
     6909
     6910/* Line 1806 of yacc.c  */
     6911#line 1456 "parser.yy"
     6912    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6913    break;
     6914
    69156915  case 356:
    69166916
    69176917/* Line 1806 of yacc.c  */
    6918 #line 1450 "parser.yy"
     6918#line 1458 "parser.yy"
    69196919    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    69206920    break;
     
    69236923
    69246924/* Line 1806 of yacc.c  */
    6925 #line 1455 "parser.yy"
     6925#line 1463 "parser.yy"
    69266926    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
    69276927    break;
     
    69306930
    69316931/* Line 1806 of yacc.c  */
    6932 #line 1457 "parser.yy"
     6932#line 1465 "parser.yy"
    69336933    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69346934    break;
     
    69376937
    69386938/* Line 1806 of yacc.c  */
    6939 #line 1459 "parser.yy"
     6939#line 1467 "parser.yy"
    69406940    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69416941    break;
     
    69446944
    69456945/* Line 1806 of yacc.c  */
    6946 #line 1469 "parser.yy"
     6946#line 1477 "parser.yy"
    69476947    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl), true ); }
    69486948    break;
     
    69516951
    69526952/* Line 1806 of yacc.c  */
    6953 #line 1471 "parser.yy"
     6953#line 1479 "parser.yy"
    69546954    {
    69556955                        typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
     
    69616961
    69626962/* Line 1806 of yacc.c  */
    6963 #line 1476 "parser.yy"
     6963#line 1484 "parser.yy"
    69646964    { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
    69656965    break;
     
    69686968
    69696969/* Line 1806 of yacc.c  */
    6970 #line 1478 "parser.yy"
     6970#line 1486 "parser.yy"
    69716971    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), 0, (yyvsp[(5) - (6)].decl), true ); }
    69726972    break;
     
    69756975
    69766976/* Line 1806 of yacc.c  */
    6977 #line 1480 "parser.yy"
     6977#line 1488 "parser.yy"
    69786978    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); }
    69796979    break;
     
    69826982
    69836983/* Line 1806 of yacc.c  */
    6984 #line 1482 "parser.yy"
     6984#line 1490 "parser.yy"
    69856985    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    69866986    break;
     
    69896989
    69906990/* Line 1806 of yacc.c  */
    6991 #line 1487 "parser.yy"
     6991#line 1495 "parser.yy"
    69926992    { (yyval.aggKey) = DeclarationNode::Struct; }
    69936993    break;
     
    69966996
    69976997/* Line 1806 of yacc.c  */
    6998 #line 1489 "parser.yy"
     6998#line 1497 "parser.yy"
    69996999    { (yyval.aggKey) = DeclarationNode::Union; }
    70007000    break;
     
    70037003
    70047004/* Line 1806 of yacc.c  */
    7005 #line 1494 "parser.yy"
     7005#line 1502 "parser.yy"
    70067006    { (yyval.decl) = 0; }
    70077007    break;
     
    70107010
    70117011/* Line 1806 of yacc.c  */
    7012 #line 1496 "parser.yy"
     7012#line 1504 "parser.yy"
    70137013    { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
    70147014    break;
     
    70177017
    70187018/* Line 1806 of yacc.c  */
    7019 #line 1502 "parser.yy"
     7019#line 1510 "parser.yy"
    70207020    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); }
    70217021    break;
     
    70247024
    70257025/* Line 1806 of yacc.c  */
    7026 #line 1505 "parser.yy"
     7026#line 1513 "parser.yy"
    70277027    {   // mark all fields in list
    70287028                        for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_link() )
     
    70357035
    70367036/* Line 1806 of yacc.c  */
    7037 #line 1515 "parser.yy"
     7037#line 1523 "parser.yy"
    70387038    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
    70397039    break;
     
    70427042
    70437043/* Line 1806 of yacc.c  */
    7044 #line 1517 "parser.yy"
     7044#line 1525 "parser.yy"
    70457045    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
    70467046    break;
     
    70497049
    70507050/* Line 1806 of yacc.c  */
    7051 #line 1519 "parser.yy"
     7051#line 1527 "parser.yy"
    70527052    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
    70537053    break;
     
    70567056
    70577057/* Line 1806 of yacc.c  */
    7058 #line 1524 "parser.yy"
     7058#line 1532 "parser.yy"
    70597059    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    70607060    break;
     
    70637063
    70647064/* Line 1806 of yacc.c  */
    7065 #line 1526 "parser.yy"
     7065#line 1534 "parser.yy"
    70667066    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
    70677067    break;
     
    70707070
    70717071/* Line 1806 of yacc.c  */
    7072 #line 1531 "parser.yy"
     7072#line 1539 "parser.yy"
    70737073    { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
    70747074    break;
     
    70777077
    70787078/* Line 1806 of yacc.c  */
    7079 #line 1533 "parser.yy"
     7079#line 1541 "parser.yy"
    70807080    { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
    70817081    break;
     
    70847084
    70857085/* Line 1806 of yacc.c  */
    7086 #line 1536 "parser.yy"
     7086#line 1544 "parser.yy"
    70877087    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    70887088    break;
     
    70917091
    70927092/* Line 1806 of yacc.c  */
    7093 #line 1539 "parser.yy"
     7093#line 1547 "parser.yy"
    70947094    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    70957095    break;
     
    70987098
    70997099/* Line 1806 of yacc.c  */
    7100 #line 1545 "parser.yy"
     7100#line 1553 "parser.yy"
    71017101    { (yyval.en) = 0; }
    71027102    break;
     
    71057105
    71067106/* Line 1806 of yacc.c  */
    7107 #line 1547 "parser.yy"
     7107#line 1555 "parser.yy"
    71087108    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    71097109    break;
     
    71127112
    71137113/* Line 1806 of yacc.c  */
    7114 #line 1552 "parser.yy"
     7114#line 1560 "parser.yy"
    71157115    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    71167116    break;
     
    71197119
    71207120/* Line 1806 of yacc.c  */
    7121 #line 1561 "parser.yy"
     7121#line 1569 "parser.yy"
    71227122    { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); }
    71237123    break;
     
    71267126
    71277127/* Line 1806 of yacc.c  */
    7128 #line 1563 "parser.yy"
     7128#line 1571 "parser.yy"
    71297129    {
    71307130                        typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
     
    71367136
    71377137/* Line 1806 of yacc.c  */
    7138 #line 1568 "parser.yy"
     7138#line 1576 "parser.yy"
    71397139    { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
    71407140    break;
     
    71437143
    71447144/* Line 1806 of yacc.c  */
    7145 #line 1570 "parser.yy"
     7145#line 1578 "parser.yy"
    71467146    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); }
    71477147    break;
     
    71507150
    71517151/* Line 1806 of yacc.c  */
    7152 #line 1575 "parser.yy"
     7152#line 1583 "parser.yy"
    71537153    { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
    71547154    break;
     
    71577157
    71587158/* Line 1806 of yacc.c  */
    7159 #line 1577 "parser.yy"
     7159#line 1585 "parser.yy"
    71607160    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
    71617161    break;
     
    71647164
    71657165/* Line 1806 of yacc.c  */
    7166 #line 1582 "parser.yy"
     7166#line 1590 "parser.yy"
    71677167    { (yyval.en) = 0; }
    71687168    break;
     
    71717171
    71727172/* Line 1806 of yacc.c  */
    7173 #line 1584 "parser.yy"
     7173#line 1592 "parser.yy"
    71747174    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    71757175    break;
     
    71787178
    71797179/* Line 1806 of yacc.c  */
    7180 #line 1591 "parser.yy"
     7180#line 1599 "parser.yy"
    71817181    { (yyval.decl) = 0; }
    71827182    break;
     
    71857185
    71867186/* Line 1806 of yacc.c  */
    7187 #line 1599 "parser.yy"
     7187#line 1607 "parser.yy"
    71887188    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    71897189    break;
     
    71927192
    71937193/* Line 1806 of yacc.c  */
    7194 #line 1601 "parser.yy"
     7194#line 1609 "parser.yy"
    71957195    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    71967196    break;
     
    71997199
    72007200/* Line 1806 of yacc.c  */
    7201 #line 1603 "parser.yy"
     7201#line 1611 "parser.yy"
    72027202    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    72037203    break;
     
    72067206
    72077207/* Line 1806 of yacc.c  */
    7208 #line 1611 "parser.yy"
     7208#line 1619 "parser.yy"
    72097209    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72107210    break;
    72117211
    72127212  case 408:
    7213 
    7214 /* Line 1806 of yacc.c  */
    7215 #line 1613 "parser.yy"
    7216     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7217     break;
    7218 
    7219   case 409:
    7220 
    7221 /* Line 1806 of yacc.c  */
    7222 #line 1615 "parser.yy"
    7223     { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
    7224     break;
    7225 
    7226   case 411:
    72277213
    72287214/* Line 1806 of yacc.c  */
     
    72317217    break;
    72327218
     7219  case 409:
     7220
     7221/* Line 1806 of yacc.c  */
     7222#line 1623 "parser.yy"
     7223    { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
     7224    break;
     7225
     7226  case 411:
     7227
     7228/* Line 1806 of yacc.c  */
     7229#line 1629 "parser.yy"
     7230    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7231    break;
     7232
    72337233  case 412:
    72347234
    72357235/* Line 1806 of yacc.c  */
    7236 #line 1626 "parser.yy"
     7236#line 1634 "parser.yy"
    72377237    { (yyval.decl) = 0; }
    72387238    break;
     
    72417241
    72427242/* Line 1806 of yacc.c  */
    7243 #line 1633 "parser.yy"
     7243#line 1641 "parser.yy"
    72447244    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    72457245    break;
     
    72487248
    72497249/* Line 1806 of yacc.c  */
    7250 #line 1640 "parser.yy"
     7250#line 1648 "parser.yy"
    72517251    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72527252    break;
     
    72557255
    72567256/* Line 1806 of yacc.c  */
    7257 #line 1642 "parser.yy"
     7257#line 1650 "parser.yy"
    72587258    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72597259    break;
     
    72627262
    72637263/* Line 1806 of yacc.c  */
    7264 #line 1651 "parser.yy"
     7264#line 1659 "parser.yy"
    72657265    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    72667266    break;
     
    72697269
    72707270/* Line 1806 of yacc.c  */
    7271 #line 1654 "parser.yy"
     7271#line 1662 "parser.yy"
    72727272    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    72737273    break;
     
    72767276
    72777277/* Line 1806 of yacc.c  */
    7278 #line 1656 "parser.yy"
     7278#line 1664 "parser.yy"
    72797279    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
    72807280    break;
     
    72837283
    72847284/* Line 1806 of yacc.c  */
    7285 #line 1666 "parser.yy"
     7285#line 1674 "parser.yy"
    72867286    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    72877287    break;
     
    72907290
    72917291/* Line 1806 of yacc.c  */
    7292 #line 1672 "parser.yy"
     7292#line 1680 "parser.yy"
    72937293    {
    72947294                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    73007300
    73017301/* Line 1806 of yacc.c  */
    7302 #line 1677 "parser.yy"
     7302#line 1685 "parser.yy"
    73037303    {
    73047304                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    73107310
    73117311/* Line 1806 of yacc.c  */
    7312 #line 1686 "parser.yy"
     7312#line 1694 "parser.yy"
    73137313    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73147314    break;
     
    73177317
    73187318/* Line 1806 of yacc.c  */
    7319 #line 1695 "parser.yy"
     7319#line 1703 "parser.yy"
    73207320    { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
    73217321    break;
     
    73247324
    73257325/* Line 1806 of yacc.c  */
    7326 #line 1697 "parser.yy"
     7326#line 1705 "parser.yy"
    73277327    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
    73287328    break;
    73297329
    73307330  case 447:
    7331 
    7332 /* Line 1806 of yacc.c  */
    7333 #line 1722 "parser.yy"
    7334     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    7335     break;
    7336 
    7337   case 451:
    73387331
    73397332/* Line 1806 of yacc.c  */
     
    73427335    break;
    73437336
     7337  case 451:
     7338
     7339/* Line 1806 of yacc.c  */
     7340#line 1738 "parser.yy"
     7341    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7342    break;
     7343
    73447344  case 452:
    73457345
    73467346/* Line 1806 of yacc.c  */
    7347 #line 1735 "parser.yy"
     7347#line 1743 "parser.yy"
    73487348    { (yyval.in) = 0; }
    73497349    break;
     
    73527352
    73537353/* Line 1806 of yacc.c  */
    7354 #line 1737 "parser.yy"
     7354#line 1745 "parser.yy"
    73557355    { (yyval.in) = (yyvsp[(2) - (2)].in); }
    73567356    break;
     
    73597359
    73607360/* Line 1806 of yacc.c  */
    7361 #line 1739 "parser.yy"
     7361#line 1747 "parser.yy"
    73627362    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); }
    73637363    break;
     
    73667366
    73677367/* Line 1806 of yacc.c  */
    7368 #line 1743 "parser.yy"
     7368#line 1751 "parser.yy"
    73697369    { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
    73707370    break;
     
    73737373
    73747374/* Line 1806 of yacc.c  */
    7375 #line 1744 "parser.yy"
     7375#line 1752 "parser.yy"
    73767376    { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
    73777377    break;
     
    73807380
    73817381/* Line 1806 of yacc.c  */
    7382 #line 1749 "parser.yy"
     7382#line 1757 "parser.yy"
    73837383    { (yyval.in) = 0; }
    73847384    break;
     
    73877387
    73887388/* Line 1806 of yacc.c  */
    7389 #line 1751 "parser.yy"
     7389#line 1759 "parser.yy"
    73907390    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
    73917391    break;
     
    73947394
    73957395/* Line 1806 of yacc.c  */
    7396 #line 1752 "parser.yy"
     7396#line 1760 "parser.yy"
    73977397    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link( (yyvsp[(3) - (3)].in) ) ); }
    73987398    break;
     
    74017401
    74027402/* Line 1806 of yacc.c  */
    7403 #line 1754 "parser.yy"
     7403#line 1762 "parser.yy"
    74047404    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_link( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
    74057405    break;
     
    74087408
    74097409/* Line 1806 of yacc.c  */
    7410 #line 1770 "parser.yy"
     7410#line 1778 "parser.yy"
    74117411    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); }
    74127412    break;
     
    74157415
    74167416/* Line 1806 of yacc.c  */
    7417 #line 1776 "parser.yy"
     7417#line 1784 "parser.yy"
    74187418    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) ) ); }
    74197419    break;
     
    74227422
    74237423/* Line 1806 of yacc.c  */
    7424 #line 1782 "parser.yy"
     7424#line 1790 "parser.yy"
    74257425    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); }
    74267426    break;
     
    74297429
    74307430/* Line 1806 of yacc.c  */
    7431 #line 1785 "parser.yy"
     7431#line 1793 "parser.yy"
    74327432    { (yyval.en) = (yyvsp[(3) - (5)].en); }
    74337433    break;
     
    74367436
    74377437/* Line 1806 of yacc.c  */
    7438 #line 1787 "parser.yy"
     7438#line 1795 "parser.yy"
    74397439    { (yyval.en) = (yyvsp[(3) - (5)].en); }
    74407440    break;
     
    74437443
    74447444/* Line 1806 of yacc.c  */
    7445 #line 1789 "parser.yy"
     7445#line 1797 "parser.yy"
    74467446    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); }
    74477447    break;
     
    74507450
    74517451/* Line 1806 of yacc.c  */
    7452 #line 1791 "parser.yy"
     7452#line 1799 "parser.yy"
    74537453    { (yyval.en) = (yyvsp[(4) - (6)].en); }
    74547454    break;
     
    74577457
    74587458/* Line 1806 of yacc.c  */
    7459 #line 1815 "parser.yy"
     7459#line 1823 "parser.yy"
    74607460    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    74617461    break;
     
    74647464
    74657465/* Line 1806 of yacc.c  */
    7466 #line 1817 "parser.yy"
     7466#line 1825 "parser.yy"
    74677467    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    74687468    break;
     
    74717471
    74727472/* Line 1806 of yacc.c  */
    7473 #line 1819 "parser.yy"
     7473#line 1827 "parser.yy"
    74747474    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    74757475    break;
     
    74787478
    74797479/* Line 1806 of yacc.c  */
    7480 #line 1825 "parser.yy"
     7480#line 1833 "parser.yy"
    74817481    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    74827482    break;
     
    74857485
    74867486/* Line 1806 of yacc.c  */
    7487 #line 1827 "parser.yy"
     7487#line 1835 "parser.yy"
    74887488    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    74897489    break;
     
    74927492
    74937493/* Line 1806 of yacc.c  */
    7494 #line 1832 "parser.yy"
     7494#line 1840 "parser.yy"
    74957495    { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    74967496    break;
     
    74997499
    75007500/* Line 1806 of yacc.c  */
    7501 #line 1838 "parser.yy"
     7501#line 1846 "parser.yy"
    75027502    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
    75037503    break;
     
    75067506
    75077507/* Line 1806 of yacc.c  */
    7508 #line 1843 "parser.yy"
     7508#line 1851 "parser.yy"
    75097509    { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
    75107510    break;
     
    75137513
    75147514/* Line 1806 of yacc.c  */
    7515 #line 1845 "parser.yy"
     7515#line 1853 "parser.yy"
    75167516    { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
    75177517    break;
     
    75207520
    75217521/* Line 1806 of yacc.c  */
    7522 #line 1851 "parser.yy"
     7522#line 1859 "parser.yy"
    75237523    { (yyval.tclass) = DeclarationNode::Type; }
    75247524    break;
     
    75277527
    75287528/* Line 1806 of yacc.c  */
    7529 #line 1853 "parser.yy"
     7529#line 1861 "parser.yy"
    75307530    { (yyval.tclass) = DeclarationNode::Ftype; }
    75317531    break;
     
    75347534
    75357535/* Line 1806 of yacc.c  */
    7536 #line 1855 "parser.yy"
     7536#line 1863 "parser.yy"
    75377537    { (yyval.tclass) = DeclarationNode::Dtype; }
    75387538    break;
     
    75417541
    75427542/* Line 1806 of yacc.c  */
    7543 #line 1860 "parser.yy"
     7543#line 1868 "parser.yy"
    75447544    { (yyval.decl) = 0; }
    75457545    break;
     
    75487548
    75497549/* Line 1806 of yacc.c  */
    7550 #line 1862 "parser.yy"
     7550#line 1870 "parser.yy"
    75517551    { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
    75527552    break;
     
    75557555
    75567556/* Line 1806 of yacc.c  */
    7557 #line 1867 "parser.yy"
     7557#line 1875 "parser.yy"
    75587558    {
    75597559                        typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) );
     
    75657565
    75667566/* Line 1806 of yacc.c  */
    7567 #line 1872 "parser.yy"
     7567#line 1880 "parser.yy"
    75687568    { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
    75697569    break;
     
    75727572
    75737573/* Line 1806 of yacc.c  */
    7574 #line 1874 "parser.yy"
     7574#line 1882 "parser.yy"
    75757575    { (yyval.decl) = 0; }
    75767576    break;
     
    75797579
    75807580/* Line 1806 of yacc.c  */
    7581 #line 1879 "parser.yy"
     7581#line 1887 "parser.yy"
    75827582    { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); }
    75837583    break;
     
    75867586
    75877587/* Line 1806 of yacc.c  */
    7588 #line 1882 "parser.yy"
     7588#line 1890 "parser.yy"
    75897589    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); }
    75907590    break;
     
    75937593
    75947594/* Line 1806 of yacc.c  */
    7595 #line 1884 "parser.yy"
     7595#line 1892 "parser.yy"
    75967596    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); }
    75977597    break;
     
    76007600
    76017601/* Line 1806 of yacc.c  */
    7602 #line 1889 "parser.yy"
     7602#line 1897 "parser.yy"
    76037603    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    76047604    break;
     
    76077607
    76087608/* Line 1806 of yacc.c  */
    7609 #line 1891 "parser.yy"
     7609#line 1899 "parser.yy"
    76107610    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
    76117611    break;
     
    76147614
    76157615/* Line 1806 of yacc.c  */
    7616 #line 1893 "parser.yy"
     7616#line 1901 "parser.yy"
    76177617    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
    76187618    break;
     
    76217621
    76227622/* Line 1806 of yacc.c  */
    7623 #line 1898 "parser.yy"
     7623#line 1906 "parser.yy"
    76247624    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
    76257625    break;
     
    76287628
    76297629/* Line 1806 of yacc.c  */
    7630 #line 1900 "parser.yy"
     7630#line 1908 "parser.yy"
    76317631    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
    76327632    break;
     
    76357635
    76367636/* Line 1806 of yacc.c  */
    7637 #line 1905 "parser.yy"
     7637#line 1913 "parser.yy"
    76387638    {
    76397639                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD );
     
    76457645
    76467646/* Line 1806 of yacc.c  */
    7647 #line 1910 "parser.yy"
     7647#line 1918 "parser.yy"
    76487648    {
    76497649                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG );
     
    76557655
    76567656/* Line 1806 of yacc.c  */
    7657 #line 1918 "parser.yy"
     7657#line 1926 "parser.yy"
    76587658    {
    76597659                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID );
     
    76657665
    76667666/* Line 1806 of yacc.c  */
    7667 #line 1923 "parser.yy"
     7667#line 1931 "parser.yy"
    76687668    {
    76697669                        typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) );
     
    76757675
    76767676/* Line 1806 of yacc.c  */
    7677 #line 1928 "parser.yy"
     7677#line 1936 "parser.yy"
    76787678    {
    76797679                        typedefTable.leaveTrait();
     
    76867686
    76877687/* Line 1806 of yacc.c  */
    7688 #line 1938 "parser.yy"
     7688#line 1946 "parser.yy"
    76897689    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    76907690    break;
     
    76937693
    76947694/* Line 1806 of yacc.c  */
    7695 #line 1948 "parser.yy"
     7695#line 1956 "parser.yy"
    76967696    {
    76977697                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77037703
    77047704/* Line 1806 of yacc.c  */
    7705 #line 1953 "parser.yy"
     7705#line 1961 "parser.yy"
    77067706    {
    77077707                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77137713
    77147714/* Line 1806 of yacc.c  */
    7715 #line 1958 "parser.yy"
     7715#line 1966 "parser.yy"
    77167716    {
    77177717                        typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    77237723
    77247724/* Line 1806 of yacc.c  */
    7725 #line 1966 "parser.yy"
     7725#line 1974 "parser.yy"
    77267726    {
    77277727                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77337733
    77347734/* Line 1806 of yacc.c  */
    7735 #line 1971 "parser.yy"
     7735#line 1979 "parser.yy"
    77367736    {
    77377737                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77437743
    77447744/* Line 1806 of yacc.c  */
    7745 #line 1981 "parser.yy"
     7745#line 1989 "parser.yy"
    77467746    {}
    77477747    break;
     
    77507750
    77517751/* Line 1806 of yacc.c  */
    7752 #line 1983 "parser.yy"
     7752#line 1991 "parser.yy"
    77537753    {
    77547754                        if ( theTree ) {
     
    77637763
    77647764/* Line 1806 of yacc.c  */
    7765 #line 1995 "parser.yy"
     7765#line 2003 "parser.yy"
    77667766    { (yyval.decl) = ( (yyvsp[(1) - (3)].decl) != NULL ) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
    77677767    break;
     
    77707770
    77717771/* Line 1806 of yacc.c  */
    7772 #line 2000 "parser.yy"
     7772#line 2008 "parser.yy"
    77737773    { (yyval.decl) = 0; }
    77747774    break;
     
    77777777
    77787778/* Line 1806 of yacc.c  */
    7779 #line 2008 "parser.yy"
     7779#line 2016 "parser.yy"
    77807780    {}
    77817781    break;
     
    77847784
    77857785/* Line 1806 of yacc.c  */
    7786 #line 2010 "parser.yy"
     7786#line 2018 "parser.yy"
    77877787    {
    77887788                        linkageStack.push( linkage );
     
    77947794
    77957795/* Line 1806 of yacc.c  */
    7796 #line 2015 "parser.yy"
     7796#line 2023 "parser.yy"
    77977797    {
    77987798                        linkage = linkageStack.top();
     
    78057805
    78067806/* Line 1806 of yacc.c  */
    7807 #line 2021 "parser.yy"
     7807#line 2029 "parser.yy"
    78087808    {   // mark all fields in list
    78097809                        for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_link() )
     
    78167816
    78177817/* Line 1806 of yacc.c  */
    7818 #line 2036 "parser.yy"
     7818#line 2044 "parser.yy"
    78197819    {
    78207820                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78277827
    78287828/* Line 1806 of yacc.c  */
    7829 #line 2042 "parser.yy"
     7829#line 2050 "parser.yy"
    78307830    {
    78317831                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78387838
    78397839/* Line 1806 of yacc.c  */
    7840 #line 2051 "parser.yy"
     7840#line 2059 "parser.yy"
    78417841    {
    78427842                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78497849
    78507850/* Line 1806 of yacc.c  */
    7851 #line 2057 "parser.yy"
     7851#line 2065 "parser.yy"
    78527852    {
    78537853                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78607860
    78617861/* Line 1806 of yacc.c  */
    7862 #line 2063 "parser.yy"
     7862#line 2071 "parser.yy"
    78637863    {
    78647864                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78717871
    78727872/* Line 1806 of yacc.c  */
    7873 #line 2069 "parser.yy"
     7873#line 2077 "parser.yy"
    78747874    {
    78757875                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78827882
    78837883/* Line 1806 of yacc.c  */
    7884 #line 2075 "parser.yy"
     7884#line 2083 "parser.yy"
    78857885    {
    78867886                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78937893
    78947894/* Line 1806 of yacc.c  */
    7895 #line 2083 "parser.yy"
     7895#line 2091 "parser.yy"
    78967896    {
    78977897                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79027902
    79037903  case 536:
    7904 
    7905 /* Line 1806 of yacc.c  */
    7906 #line 2089 "parser.yy"
    7907     {
    7908                         typedefTable.addToEnclosingScope( TypedefTable::ID );
    7909                         typedefTable.leaveScope();
    7910                         (yyval.decl) = (yyvsp[(2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addQualifiers( (yyvsp[(1) - (5)].decl) );
    7911                 }
    7912     break;
    7913 
    7914   case 537:
    79157904
    79167905/* Line 1806 of yacc.c  */
     
    79237912    break;
    79247913
     7914  case 537:
     7915
     7916/* Line 1806 of yacc.c  */
     7917#line 2105 "parser.yy"
     7918    {
     7919                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     7920                        typedefTable.leaveScope();
     7921                        (yyval.decl) = (yyvsp[(2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addQualifiers( (yyvsp[(1) - (5)].decl) );
     7922                }
     7923    break;
     7924
    79257925  case 538:
    79267926
    79277927/* Line 1806 of yacc.c  */
    7928 #line 2103 "parser.yy"
     7928#line 2111 "parser.yy"
    79297929    {
    79307930                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79377937
    79387938/* Line 1806 of yacc.c  */
    7939 #line 2118 "parser.yy"
     7939#line 2126 "parser.yy"
    79407940    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    79417941    break;
     
    79447944
    79457945/* Line 1806 of yacc.c  */
    7946 #line 2128 "parser.yy"
     7946#line 2136 "parser.yy"
    79477947    { (yyval.decl) = 0; }
    79487948    break;
     
    79517951
    79527952/* Line 1806 of yacc.c  */
    7953 #line 2135 "parser.yy"
     7953#line 2143 "parser.yy"
    79547954    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    79557955    break;
     
    79587958
    79597959/* Line 1806 of yacc.c  */
    7960 #line 2141 "parser.yy"
     7960#line 2149 "parser.yy"
    79617961    { (yyval.decl) = 0; }
    79627962    break;
     
    79657965
    79667966/* Line 1806 of yacc.c  */
    7967 #line 2156 "parser.yy"
     7967#line 2164 "parser.yy"
    79687968    {}
    79697969    break;
     
    79727972
    79737973/* Line 1806 of yacc.c  */
    7974 #line 2157 "parser.yy"
     7974#line 2165 "parser.yy"
    79757975    {}
    79767976    break;
     
    79797979
    79807980/* Line 1806 of yacc.c  */
    7981 #line 2158 "parser.yy"
     7981#line 2166 "parser.yy"
    79827982    {}
    79837983    break;
     
    79867986
    79877987/* Line 1806 of yacc.c  */
    7988 #line 2159 "parser.yy"
     7988#line 2167 "parser.yy"
    79897989    {}
    79907990    break;
     
    79937993
    79947994/* Line 1806 of yacc.c  */
    7995 #line 2194 "parser.yy"
     7995#line 2202 "parser.yy"
    79967996    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    79977997    break;
     
    80008000
    80018001/* Line 1806 of yacc.c  */
    8002 #line 2197 "parser.yy"
     8002#line 2205 "parser.yy"
    80038003    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80048004    break;
     
    80078007
    80088008/* Line 1806 of yacc.c  */
    8009 #line 2199 "parser.yy"
     8009#line 2207 "parser.yy"
    80108010    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80118011    break;
     
    80148014
    80158015/* Line 1806 of yacc.c  */
    8016 #line 2204 "parser.yy"
     8016#line 2212 "parser.yy"
    80178017    {
    80188018                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    80248024
    80258025/* Line 1806 of yacc.c  */
    8026 #line 2209 "parser.yy"
     8026#line 2217 "parser.yy"
    80278027    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80288028    break;
     
    80318031
    80328032/* Line 1806 of yacc.c  */
    8033 #line 2214 "parser.yy"
     8033#line 2222 "parser.yy"
    80348034    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    80358035    break;
     
    80388038
    80398039/* Line 1806 of yacc.c  */
    8040 #line 2216 "parser.yy"
     8040#line 2224 "parser.yy"
    80418041    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    80428042    break;
     
    80458045
    80468046/* Line 1806 of yacc.c  */
    8047 #line 2218 "parser.yy"
     8047#line 2226 "parser.yy"
    80488048    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80498049    break;
     
    80528052
    80538053/* Line 1806 of yacc.c  */
    8054 #line 2223 "parser.yy"
     8054#line 2231 "parser.yy"
    80558055    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    80568056    break;
     
    80598059
    80608060/* Line 1806 of yacc.c  */
    8061 #line 2225 "parser.yy"
     8061#line 2233 "parser.yy"
    80628062    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    80638063    break;
     
    80668066
    80678067/* Line 1806 of yacc.c  */
    8068 #line 2227 "parser.yy"
     8068#line 2235 "parser.yy"
    80698069    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    80708070    break;
     
    80738073
    80748074/* Line 1806 of yacc.c  */
    8075 #line 2229 "parser.yy"
     8075#line 2237 "parser.yy"
    80768076    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80778077    break;
     
    80808080
    80818081/* Line 1806 of yacc.c  */
    8082 #line 2234 "parser.yy"
     8082#line 2242 "parser.yy"
    80838083    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    80848084    break;
     
    80878087
    80888088/* Line 1806 of yacc.c  */
    8089 #line 2236 "parser.yy"
     8089#line 2244 "parser.yy"
    80908090    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80918091    break;
     
    80948094
    80958095/* Line 1806 of yacc.c  */
    8096 #line 2245 "parser.yy"
     8096#line 2253 "parser.yy"
    80978097    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80988098    break;
     
    81018101
    81028102/* Line 1806 of yacc.c  */
    8103 #line 2248 "parser.yy"
     8103#line 2256 "parser.yy"
    81048104    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    81058105    break;
     
    81088108
    81098109/* Line 1806 of yacc.c  */
    8110 #line 2253 "parser.yy"
     8110#line 2261 "parser.yy"
    81118111    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    81128112    break;
     
    81158115
    81168116/* Line 1806 of yacc.c  */
    8117 #line 2255 "parser.yy"
     8117#line 2263 "parser.yy"
    81188118    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    81198119    break;
     
    81228122
    81238123/* Line 1806 of yacc.c  */
    8124 #line 2257 "parser.yy"
     8124#line 2265 "parser.yy"
    81258125    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81268126    break;
     
    81298129
    81308130/* Line 1806 of yacc.c  */
    8131 #line 2262 "parser.yy"
     8131#line 2270 "parser.yy"
    81328132    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    81338133    break;
     
    81368136
    81378137/* Line 1806 of yacc.c  */
    8138 #line 2264 "parser.yy"
     8138#line 2272 "parser.yy"
    81398139    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    81408140    break;
     
    81438143
    81448144/* Line 1806 of yacc.c  */
    8145 #line 2266 "parser.yy"
     8145#line 2274 "parser.yy"
    81468146    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81478147    break;
     
    81508150
    81518151/* Line 1806 of yacc.c  */
    8152 #line 2271 "parser.yy"
     8152#line 2279 "parser.yy"
    81538153    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    81548154    break;
     
    81578157
    81588158/* Line 1806 of yacc.c  */
    8159 #line 2273 "parser.yy"
     8159#line 2281 "parser.yy"
    81608160    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    81618161    break;
     
    81648164
    81658165/* Line 1806 of yacc.c  */
    8166 #line 2275 "parser.yy"
     8166#line 2283 "parser.yy"
    81678167    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81688168    break;
     
    81718171
    81728172/* Line 1806 of yacc.c  */
    8173 #line 2290 "parser.yy"
     8173#line 2298 "parser.yy"
    81748174    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
    81758175    break;
     
    81788178
    81798179/* Line 1806 of yacc.c  */
    8180 #line 2292 "parser.yy"
     8180#line 2300 "parser.yy"
    81818181    { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
    81828182    break;
     
    81858185
    81868186/* Line 1806 of yacc.c  */
    8187 #line 2294 "parser.yy"
     8187#line 2302 "parser.yy"
    81888188    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81898189    break;
     
    81928192
    81938193/* Line 1806 of yacc.c  */
    8194 #line 2299 "parser.yy"
     8194#line 2307 "parser.yy"
    81958195    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    81968196    break;
     
    81998199
    82008200/* Line 1806 of yacc.c  */
    8201 #line 2301 "parser.yy"
     8201#line 2309 "parser.yy"
    82028202    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    82038203    break;
     
    82068206
    82078207/* Line 1806 of yacc.c  */
    8208 #line 2303 "parser.yy"
     8208#line 2311 "parser.yy"
    82098209    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82108210    break;
     
    82138213
    82148214/* Line 1806 of yacc.c  */
    8215 #line 2308 "parser.yy"
     8215#line 2316 "parser.yy"
    82168216    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    82178217    break;
     
    82208220
    82218221/* Line 1806 of yacc.c  */
    8222 #line 2310 "parser.yy"
     8222#line 2318 "parser.yy"
    82238223    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    82248224    break;
     
    82278227
    82288228/* Line 1806 of yacc.c  */
    8229 #line 2312 "parser.yy"
     8229#line 2320 "parser.yy"
    82308230    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82318231    break;
     
    82348234
    82358235/* Line 1806 of yacc.c  */
    8236 #line 2327 "parser.yy"
     8236#line 2335 "parser.yy"
    82378237    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82388238    break;
     
    82418241
    82428242/* Line 1806 of yacc.c  */
    8243 #line 2330 "parser.yy"
     8243#line 2338 "parser.yy"
    82448244    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82458245    break;
     
    82488248
    82498249/* Line 1806 of yacc.c  */
    8250 #line 2332 "parser.yy"
     8250#line 2340 "parser.yy"
    82518251    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82528252    break;
     
    82558255
    82568256/* Line 1806 of yacc.c  */
    8257 #line 2338 "parser.yy"
     8257#line 2346 "parser.yy"
    82588258    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82598259    break;
     
    82628262
    82638263/* Line 1806 of yacc.c  */
    8264 #line 2343 "parser.yy"
     8264#line 2351 "parser.yy"
    82658265    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    82668266    break;
     
    82698269
    82708270/* Line 1806 of yacc.c  */
    8271 #line 2345 "parser.yy"
     8271#line 2353 "parser.yy"
    82728272    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    82738273    break;
     
    82768276
    82778277/* Line 1806 of yacc.c  */
    8278 #line 2347 "parser.yy"
     8278#line 2355 "parser.yy"
    82798279    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82808280    break;
     
    82838283
    82848284/* Line 1806 of yacc.c  */
    8285 #line 2352 "parser.yy"
     8285#line 2360 "parser.yy"
    82868286    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    82878287    break;
     
    82908290
    82918291/* Line 1806 of yacc.c  */
    8292 #line 2354 "parser.yy"
     8292#line 2362 "parser.yy"
    82938293    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    82948294    break;
     
    82978297
    82988298/* Line 1806 of yacc.c  */
    8299 #line 2356 "parser.yy"
     8299#line 2364 "parser.yy"
    83008300    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    83018301    break;
     
    83048304
    83058305/* Line 1806 of yacc.c  */
    8306 #line 2358 "parser.yy"
     8306#line 2366 "parser.yy"
    83078307    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83088308    break;
     
    83118311
    83128312/* Line 1806 of yacc.c  */
    8313 #line 2363 "parser.yy"
     8313#line 2371 "parser.yy"
    83148314    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    83158315    break;
     
    83188318
    83198319/* Line 1806 of yacc.c  */
    8320 #line 2365 "parser.yy"
     8320#line 2373 "parser.yy"
    83218321    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    83228322    break;
     
    83258325
    83268326/* Line 1806 of yacc.c  */
    8327 #line 2367 "parser.yy"
     8327#line 2375 "parser.yy"
    83288328    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83298329    break;
     
    83328332
    83338333/* Line 1806 of yacc.c  */
    8334 #line 2377 "parser.yy"
     8334#line 2385 "parser.yy"
    83358335    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83368336    break;
     
    83398339
    83408340/* Line 1806 of yacc.c  */
    8341 #line 2380 "parser.yy"
     8341#line 2388 "parser.yy"
    83428342    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83438343    break;
     
    83468346
    83478347/* Line 1806 of yacc.c  */
    8348 #line 2382 "parser.yy"
     8348#line 2390 "parser.yy"
    83498349    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83508350    break;
     
    83538353
    83548354/* Line 1806 of yacc.c  */
    8355 #line 2387 "parser.yy"
     8355#line 2395 "parser.yy"
    83568356    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    83578357    break;
     
    83608360
    83618361/* Line 1806 of yacc.c  */
    8362 #line 2389 "parser.yy"
     8362#line 2397 "parser.yy"
    83638363    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    83648364    break;
     
    83678367
    83688368/* Line 1806 of yacc.c  */
    8369 #line 2391 "parser.yy"
     8369#line 2399 "parser.yy"
    83708370    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83718371    break;
     
    83748374
    83758375/* Line 1806 of yacc.c  */
    8376 #line 2396 "parser.yy"
     8376#line 2404 "parser.yy"
    83778377    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    83788378    break;
     
    83818381
    83828382/* Line 1806 of yacc.c  */
    8383 #line 2398 "parser.yy"
     8383#line 2406 "parser.yy"
    83848384    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    83858385    break;
     
    83888388
    83898389/* Line 1806 of yacc.c  */
    8390 #line 2400 "parser.yy"
     8390#line 2408 "parser.yy"
    83918391    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    83928392    break;
     
    83958395
    83968396/* Line 1806 of yacc.c  */
    8397 #line 2402 "parser.yy"
     8397#line 2410 "parser.yy"
    83988398    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83998399    break;
     
    84028402
    84038403/* Line 1806 of yacc.c  */
    8404 #line 2407 "parser.yy"
     8404#line 2415 "parser.yy"
    84058405    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    84068406    break;
     
    84098409
    84108410/* Line 1806 of yacc.c  */
    8411 #line 2409 "parser.yy"
     8411#line 2417 "parser.yy"
    84128412    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    84138413    break;
     
    84168416
    84178417/* Line 1806 of yacc.c  */
    8418 #line 2411 "parser.yy"
     8418#line 2419 "parser.yy"
    84198419    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84208420    break;
     
    84238423
    84248424/* Line 1806 of yacc.c  */
    8425 #line 2442 "parser.yy"
     8425#line 2450 "parser.yy"
    84268426    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84278427    break;
     
    84308430
    84318431/* Line 1806 of yacc.c  */
    8432 #line 2445 "parser.yy"
     8432#line 2453 "parser.yy"
    84338433    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84348434    break;
     
    84378437
    84388438/* Line 1806 of yacc.c  */
    8439 #line 2447 "parser.yy"
     8439#line 2455 "parser.yy"
    84408440    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84418441    break;
     
    84448444
    84458445/* Line 1806 of yacc.c  */
    8446 #line 2452 "parser.yy"
     8446#line 2460 "parser.yy"
    84478447    {
    84488448                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    84548454
    84558455/* Line 1806 of yacc.c  */
    8456 #line 2457 "parser.yy"
     8456#line 2465 "parser.yy"
    84578457    {
    84588458                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    84648464
    84658465/* Line 1806 of yacc.c  */
    8466 #line 2465 "parser.yy"
     8466#line 2473 "parser.yy"
    84678467    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    84688468    break;
     
    84718471
    84728472/* Line 1806 of yacc.c  */
    8473 #line 2467 "parser.yy"
     8473#line 2475 "parser.yy"
    84748474    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    84758475    break;
     
    84788478
    84798479/* Line 1806 of yacc.c  */
    8480 #line 2469 "parser.yy"
     8480#line 2477 "parser.yy"
    84818481    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84828482    break;
     
    84858485
    84868486/* Line 1806 of yacc.c  */
    8487 #line 2474 "parser.yy"
     8487#line 2482 "parser.yy"
    84888488    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    84898489    break;
     
    84928492
    84938493/* Line 1806 of yacc.c  */
    8494 #line 2476 "parser.yy"
     8494#line 2484 "parser.yy"
    84958495    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    84968496    break;
     
    84998499
    85008500/* Line 1806 of yacc.c  */
    8501 #line 2481 "parser.yy"
     8501#line 2489 "parser.yy"
    85028502    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    85038503    break;
     
    85068506
    85078507/* Line 1806 of yacc.c  */
    8508 #line 2483 "parser.yy"
     8508#line 2491 "parser.yy"
    85098509    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    85108510    break;
     
    85138513
    85148514/* Line 1806 of yacc.c  */
    8515 #line 2498 "parser.yy"
     8515#line 2506 "parser.yy"
    85168516    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    85178517    break;
     
    85208520
    85218521/* Line 1806 of yacc.c  */
    8522 #line 2500 "parser.yy"
     8522#line 2508 "parser.yy"
    85238523    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    85248524    break;
     
    85278527
    85288528/* Line 1806 of yacc.c  */
    8529 #line 2505 "parser.yy"
     8529#line 2513 "parser.yy"
    85308530    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    85318531    break;
     
    85348534
    85358535/* Line 1806 of yacc.c  */
    8536 #line 2507 "parser.yy"
     8536#line 2515 "parser.yy"
    85378537    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    85388538    break;
     
    85418541
    85428542/* Line 1806 of yacc.c  */
    8543 #line 2509 "parser.yy"
     8543#line 2517 "parser.yy"
    85448544    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    85458545    break;
     
    85488548
    85498549/* Line 1806 of yacc.c  */
    8550 #line 2511 "parser.yy"
     8550#line 2519 "parser.yy"
    85518551    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    85528552    break;
     
    85558555
    85568556/* Line 1806 of yacc.c  */
    8557 #line 2513 "parser.yy"
     8557#line 2521 "parser.yy"
    85588558    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85598559    break;
     
    85628562
    85638563/* Line 1806 of yacc.c  */
    8564 #line 2519 "parser.yy"
     8564#line 2527 "parser.yy"
    85658565    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    85668566    break;
     
    85698569
    85708570/* Line 1806 of yacc.c  */
    8571 #line 2521 "parser.yy"
     8571#line 2529 "parser.yy"
    85728572    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    85738573    break;
     
    85768576
    85778577/* Line 1806 of yacc.c  */
    8578 #line 2523 "parser.yy"
     8578#line 2531 "parser.yy"
    85798579    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85808580    break;
     
    85838583
    85848584/* Line 1806 of yacc.c  */
    8585 #line 2528 "parser.yy"
     8585#line 2536 "parser.yy"
    85868586    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    85878587    break;
     
    85908590
    85918591/* Line 1806 of yacc.c  */
    8592 #line 2530 "parser.yy"
     8592#line 2538 "parser.yy"
    85938593    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    85948594    break;
     
    85978597
    85988598/* Line 1806 of yacc.c  */
    8599 #line 2532 "parser.yy"
     8599#line 2540 "parser.yy"
    86008600    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86018601    break;
     
    86048604
    86058605/* Line 1806 of yacc.c  */
    8606 #line 2538 "parser.yy"
     8606#line 2546 "parser.yy"
    86078607    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    86088608    break;
     
    86118611
    86128612/* Line 1806 of yacc.c  */
    8613 #line 2540 "parser.yy"
     8613#line 2548 "parser.yy"
    86148614    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
    86158615    break;
     
    86188618
    86198619/* Line 1806 of yacc.c  */
    8620 #line 2546 "parser.yy"
     8620#line 2554 "parser.yy"
    86218621    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
    86228622    break;
     
    86258625
    86268626/* Line 1806 of yacc.c  */
    8627 #line 2548 "parser.yy"
     8627#line 2556 "parser.yy"
    86288628    { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
    86298629    break;
     
    86328632
    86338633/* Line 1806 of yacc.c  */
    8634 #line 2550 "parser.yy"
     8634#line 2558 "parser.yy"
    86358635    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
    86368636    break;
     
    86398639
    86408640/* Line 1806 of yacc.c  */
    8641 #line 2552 "parser.yy"
     8641#line 2560 "parser.yy"
    86428642    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
    86438643    break;
     
    86468646
    86478647/* Line 1806 of yacc.c  */
    8648 #line 2567 "parser.yy"
     8648#line 2575 "parser.yy"
    86498649    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    86508650    break;
     
    86538653
    86548654/* Line 1806 of yacc.c  */
    8655 #line 2569 "parser.yy"
     8655#line 2577 "parser.yy"
    86568656    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    86578657    break;
     
    86608660
    86618661/* Line 1806 of yacc.c  */
    8662 #line 2574 "parser.yy"
     8662#line 2582 "parser.yy"
    86638663    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    86648664    break;
     
    86678667
    86688668/* Line 1806 of yacc.c  */
    8669 #line 2576 "parser.yy"
     8669#line 2584 "parser.yy"
    86708670    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    86718671    break;
     
    86748674
    86758675/* Line 1806 of yacc.c  */
    8676 #line 2578 "parser.yy"
     8676#line 2586 "parser.yy"
    86778677    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    86788678    break;
     
    86818681
    86828682/* Line 1806 of yacc.c  */
    8683 #line 2580 "parser.yy"
     8683#line 2588 "parser.yy"
    86848684    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    86858685    break;
     
    86888688
    86898689/* Line 1806 of yacc.c  */
    8690 #line 2582 "parser.yy"
     8690#line 2590 "parser.yy"
    86918691    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86928692    break;
     
    86958695
    86968696/* Line 1806 of yacc.c  */
    8697 #line 2588 "parser.yy"
     8697#line 2596 "parser.yy"
    86988698    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    86998699    break;
     
    87028702
    87038703/* Line 1806 of yacc.c  */
    8704 #line 2590 "parser.yy"
     8704#line 2598 "parser.yy"
    87058705    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    87068706    break;
     
    87098709
    87108710/* Line 1806 of yacc.c  */
    8711 #line 2592 "parser.yy"
     8711#line 2600 "parser.yy"
    87128712    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87138713    break;
     
    87168716
    87178717/* Line 1806 of yacc.c  */
    8718 #line 2597 "parser.yy"
     8718#line 2605 "parser.yy"
    87198719    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    87208720    break;
     
    87238723
    87248724/* Line 1806 of yacc.c  */
    8725 #line 2599 "parser.yy"
     8725#line 2607 "parser.yy"
    87268726    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    87278727    break;
     
    87308730
    87318731/* Line 1806 of yacc.c  */
    8732 #line 2601 "parser.yy"
     8732#line 2609 "parser.yy"
    87338733    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87348734    break;
     
    87378737
    87388738/* Line 1806 of yacc.c  */
    8739 #line 2608 "parser.yy"
     8739#line 2616 "parser.yy"
    87408740    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    87418741    break;
     
    87448744
    87458745/* Line 1806 of yacc.c  */
    8746 #line 2619 "parser.yy"
     8746#line 2627 "parser.yy"
    87478747    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    87488748    break;
     
    87518751
    87528752/* Line 1806 of yacc.c  */
    8753 #line 2622 "parser.yy"
     8753#line 2630 "parser.yy"
    87548754    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    87558755    break;
     
    87588758
    87598759/* Line 1806 of yacc.c  */
    8760 #line 2624 "parser.yy"
     8760#line 2632 "parser.yy"
    87618761    { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
    87628762    break;
     
    87658765
    87668766/* Line 1806 of yacc.c  */
    8767 #line 2627 "parser.yy"
     8767#line 2635 "parser.yy"
    87688768    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    87698769    break;
     
    87728772
    87738773/* Line 1806 of yacc.c  */
    8774 #line 2629 "parser.yy"
     8774#line 2637 "parser.yy"
    87758775    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
    87768776    break;
     
    87798779
    87808780/* Line 1806 of yacc.c  */
    8781 #line 2631 "parser.yy"
     8781#line 2639 "parser.yy"
    87828782    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
    87838783    break;
     
    87868786
    87878787/* Line 1806 of yacc.c  */
    8788 #line 2645 "parser.yy"
     8788#line 2653 "parser.yy"
    87898789    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    87908790    break;
     
    87938793
    87948794/* Line 1806 of yacc.c  */
    8795 #line 2647 "parser.yy"
     8795#line 2655 "parser.yy"
    87968796    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    87978797    break;
     
    88008800
    88018801/* Line 1806 of yacc.c  */
    8802 #line 2652 "parser.yy"
     8802#line 2660 "parser.yy"
    88038803    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    88048804    break;
     
    88078807
    88088808/* Line 1806 of yacc.c  */
    8809 #line 2654 "parser.yy"
     8809#line 2662 "parser.yy"
    88108810    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    88118811    break;
     
    88148814
    88158815/* Line 1806 of yacc.c  */
    8816 #line 2656 "parser.yy"
     8816#line 2664 "parser.yy"
    88178817    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    88188818    break;
     
    88218821
    88228822/* Line 1806 of yacc.c  */
    8823 #line 2658 "parser.yy"
     8823#line 2666 "parser.yy"
    88248824    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    88258825    break;
     
    88288828
    88298829/* Line 1806 of yacc.c  */
    8830 #line 2660 "parser.yy"
     8830#line 2668 "parser.yy"
    88318831    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    88328832    break;
     
    88358835
    88368836/* Line 1806 of yacc.c  */
    8837 #line 2666 "parser.yy"
     8837#line 2674 "parser.yy"
    88388838    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    88398839    break;
     
    88428842
    88438843/* Line 1806 of yacc.c  */
    8844 #line 2668 "parser.yy"
     8844#line 2676 "parser.yy"
    88458845    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    88468846    break;
     
    88498849
    88508850/* Line 1806 of yacc.c  */
    8851 #line 2670 "parser.yy"
     8851#line 2678 "parser.yy"
    88528852    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    88538853    break;
     
    88568856
    88578857/* Line 1806 of yacc.c  */
    8858 #line 2675 "parser.yy"
     8858#line 2683 "parser.yy"
    88598859    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    88608860    break;
     
    88638863
    88648864/* Line 1806 of yacc.c  */
    8865 #line 2677 "parser.yy"
     8865#line 2685 "parser.yy"
    88668866    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    88678867    break;
     
    88708870
    88718871/* Line 1806 of yacc.c  */
    8872 #line 2687 "parser.yy"
     8872#line 2695 "parser.yy"
    88738873    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    88748874    break;
    88758875
    88768876  case 706:
    8877 
    8878 /* Line 1806 of yacc.c  */
    8879 #line 2697 "parser.yy"
    8880     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    8881     break;
    8882 
    8883   case 707:
    8884 
    8885 /* Line 1806 of yacc.c  */
    8886 #line 2699 "parser.yy"
    8887     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    8888     break;
    8889 
    8890   case 708:
    8891 
    8892 /* Line 1806 of yacc.c  */
    8893 #line 2701 "parser.yy"
    8894     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    8895     break;
    8896 
    8897   case 709:
    8898 
    8899 /* Line 1806 of yacc.c  */
    8900 #line 2703 "parser.yy"
    8901     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    8902     break;
    8903 
    8904   case 710:
    89058877
    89068878/* Line 1806 of yacc.c  */
     
    89098881    break;
    89108882
    8911   case 711:
     8883  case 707:
    89128884
    89138885/* Line 1806 of yacc.c  */
     
    89168888    break;
    89178889
     8890  case 708:
     8891
     8892/* Line 1806 of yacc.c  */
     8893#line 2709 "parser.yy"
     8894    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8895    break;
     8896
     8897  case 709:
     8898
     8899/* Line 1806 of yacc.c  */
     8900#line 2711 "parser.yy"
     8901    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8902    break;
     8903
     8904  case 710:
     8905
     8906/* Line 1806 of yacc.c  */
     8907#line 2713 "parser.yy"
     8908    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8909    break;
     8910
     8911  case 711:
     8912
     8913/* Line 1806 of yacc.c  */
     8914#line 2715 "parser.yy"
     8915    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8916    break;
     8917
    89188918  case 712:
    89198919
    89208920/* Line 1806 of yacc.c  */
    8921 #line 2714 "parser.yy"
     8921#line 2722 "parser.yy"
    89228922    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89238923    break;
     
    89268926
    89278927/* Line 1806 of yacc.c  */
    8928 #line 2716 "parser.yy"
     8928#line 2724 "parser.yy"
    89298929    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    89308930    break;
     
    89338933
    89348934/* Line 1806 of yacc.c  */
    8935 #line 2718 "parser.yy"
     8935#line 2726 "parser.yy"
    89368936    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89378937    break;
     
    89408940
    89418941/* Line 1806 of yacc.c  */
    8942 #line 2720 "parser.yy"
     8942#line 2728 "parser.yy"
    89438943    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    89448944    break;
     
    89478947
    89488948/* Line 1806 of yacc.c  */
    8949 #line 2722 "parser.yy"
     8949#line 2730 "parser.yy"
    89508950    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    89518951    break;
     
    89548954
    89558955/* Line 1806 of yacc.c  */
    8956 #line 2724 "parser.yy"
     8956#line 2732 "parser.yy"
    89578957    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89588958    break;
     
    89618961
    89628962/* Line 1806 of yacc.c  */
    8963 #line 2726 "parser.yy"
     8963#line 2734 "parser.yy"
    89648964    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    89658965    break;
     
    89688968
    89698969/* Line 1806 of yacc.c  */
    8970 #line 2728 "parser.yy"
     8970#line 2736 "parser.yy"
    89718971    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89728972    break;
     
    89758975
    89768976/* Line 1806 of yacc.c  */
    8977 #line 2730 "parser.yy"
     8977#line 2738 "parser.yy"
    89788978    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    89798979    break;
     
    89828982
    89838983/* Line 1806 of yacc.c  */
    8984 #line 2732 "parser.yy"
     8984#line 2740 "parser.yy"
    89858985    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    89868986    break;
     
    89898989
    89908990/* Line 1806 of yacc.c  */
    8991 #line 2737 "parser.yy"
     8991#line 2745 "parser.yy"
    89928992    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    89938993    break;
     
    89968996
    89978997/* Line 1806 of yacc.c  */
    8998 #line 2739 "parser.yy"
     8998#line 2747 "parser.yy"
    89998999    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    90009000    break;
     
    90039003
    90049004/* Line 1806 of yacc.c  */
    9005 #line 2744 "parser.yy"
     9005#line 2752 "parser.yy"
    90069006    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
    90079007    break;
     
    90109010
    90119011/* Line 1806 of yacc.c  */
    9012 #line 2746 "parser.yy"
     9012#line 2754 "parser.yy"
    90139013    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
    90149014    break;
     
    90179017
    90189018/* Line 1806 of yacc.c  */
    9019 #line 2773 "parser.yy"
     9019#line 2781 "parser.yy"
    90209020    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    90219021    break;
    90229022
    90239023  case 731:
    9024 
    9025 /* Line 1806 of yacc.c  */
    9026 #line 2784 "parser.yy"
    9027     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    9028     break;
    9029 
    9030   case 732:
    9031 
    9032 /* Line 1806 of yacc.c  */
    9033 #line 2786 "parser.yy"
    9034     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    9035     break;
    9036 
    9037   case 733:
    9038 
    9039 /* Line 1806 of yacc.c  */
    9040 #line 2788 "parser.yy"
    9041     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    9042     break;
    9043 
    9044   case 734:
    9045 
    9046 /* Line 1806 of yacc.c  */
    9047 #line 2790 "parser.yy"
    9048     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    9049     break;
    9050 
    9051   case 735:
    90529024
    90539025/* Line 1806 of yacc.c  */
     
    90569028    break;
    90579029
    9058   case 736:
     9030  case 732:
    90599031
    90609032/* Line 1806 of yacc.c  */
     
    90639035    break;
    90649036
     9037  case 733:
     9038
     9039/* Line 1806 of yacc.c  */
     9040#line 2796 "parser.yy"
     9041    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     9042    break;
     9043
     9044  case 734:
     9045
     9046/* Line 1806 of yacc.c  */
     9047#line 2798 "parser.yy"
     9048    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     9049    break;
     9050
     9051  case 735:
     9052
     9053/* Line 1806 of yacc.c  */
     9054#line 2800 "parser.yy"
     9055    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     9056    break;
     9057
     9058  case 736:
     9059
     9060/* Line 1806 of yacc.c  */
     9061#line 2802 "parser.yy"
     9062    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     9063    break;
     9064
    90659065  case 737:
    90669066
    90679067/* Line 1806 of yacc.c  */
    9068 #line 2801 "parser.yy"
     9068#line 2809 "parser.yy"
    90699069    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    90709070    break;
     
    90739073
    90749074/* Line 1806 of yacc.c  */
    9075 #line 2803 "parser.yy"
     9075#line 2811 "parser.yy"
    90769076    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    90779077    break;
     
    90809080
    90819081/* Line 1806 of yacc.c  */
    9082 #line 2805 "parser.yy"
     9082#line 2813 "parser.yy"
    90839083    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    90849084    break;
     
    90879087
    90889088/* Line 1806 of yacc.c  */
    9089 #line 2807 "parser.yy"
     9089#line 2815 "parser.yy"
    90909090    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    90919091    break;
     
    90949094
    90959095/* Line 1806 of yacc.c  */
    9096 #line 2809 "parser.yy"
     9096#line 2817 "parser.yy"
    90979097    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    90989098    break;
     
    91019101
    91029102/* Line 1806 of yacc.c  */
    9103 #line 2811 "parser.yy"
     9103#line 2819 "parser.yy"
    91049104    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    91059105    break;
     
    91089108
    91099109/* Line 1806 of yacc.c  */
    9110 #line 2816 "parser.yy"
     9110#line 2824 "parser.yy"
    91119111    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    91129112    break;
     
    91159115
    91169116/* Line 1806 of yacc.c  */
    9117 #line 2821 "parser.yy"
     9117#line 2829 "parser.yy"
    91189118    { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); }
    91199119    break;
     
    91229122
    91239123/* Line 1806 of yacc.c  */
    9124 #line 2823 "parser.yy"
     9124#line 2831 "parser.yy"
    91259125    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    91269126    break;
     
    91299129
    91309130/* Line 1806 of yacc.c  */
    9131 #line 2825 "parser.yy"
     9131#line 2833 "parser.yy"
    91329132    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    91339133    break;
     
    91369136
    91379137/* Line 1806 of yacc.c  */
    9138 #line 2849 "parser.yy"
     9138#line 2857 "parser.yy"
    91399139    { (yyval.en) = 0; }
    91409140    break;
     
    91439143
    91449144/* Line 1806 of yacc.c  */
    9145 #line 2851 "parser.yy"
     9145#line 2859 "parser.yy"
    91469146    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    91479147    break;
     
    93819381
    93829382/* Line 2067 of yacc.c  */
    9383 #line 2854 "parser.yy"
     9383#line 2862 "parser.yy"
    93849384
    93859385// ----end of grammar----
  • src/Parser/parser.yy

    rdac593fd r71b5d4d3  
    1010// Created On       : Sat Sep  1 20:22:55 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Aug 11 18:02:57 2016
    13 // Update Count     : 1861
     12// Last Modified On : Wed Aug 10 23:03:05 2016
     13// Update Count     : 1846
    1414//
    1515
     
    665665                        Token fn;
    666666                        fn.str = new std::string( "^?{}" ); // location undefined
    667                         $$ = new StatementNode2( build_expr( new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( $2 )->set_link( $4 ) ) ) ) );
     667                        $$ = new StatementNode( StatementNode::Exp, new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( $2 )->set_link( $4 ) ) ), 0 );
    668668                }
    669669        ;
     
    717717expression_statement:
    718718        comma_expression_opt ';'
    719                 { $$ = new StatementNode2( build_expr( $1 ) ); }
     719                { $$ = new StatementNode( StatementNode::Exp, $1, 0 ); }
    720720        ;
    721721
     
    758758
    759759case_value_list:                                                                                // CFA
    760         //case_value                                                                    { $$ = new StatementNode( StatementNode::Case, $1, 0 ); }
    761         case_value                                                                      { $$ = new StatementNode2( build_case( $1 ) ); }
     760        case_value                                                                      { $$ = new StatementNode( StatementNode::Case, $1, 0 ); }
    762761                // convert case list, e.g., "case 1, 3, 5:" into "case 1: case 3: case 5"
    763         | case_value_list ',' case_value                        { $$ = (StatementNode *)($1->set_link( new StatementNode2( build_case( $3 ) ) ) ); }
     762        | case_value_list ',' case_value                        { $$ = (StatementNode *)($1->set_link( new StatementNode( StatementNode::Case, $3, 0 ) ) ); }
    764763        ;
    765764
    766765case_label:                                                                                             // CFA
    767766        CASE case_value_list ':'                                        { $$ = $2; }
    768         | DEFAULT ':'                                                           { $$ = new StatementNode2( build_default() ); }
     767        | DEFAULT ':'                                                           { $$ = new StatementNode( StatementNode::Default ); }
    769768                // A semantic check is required to ensure only one default clause per switch/choose statement.
    770769        ;
     
    811810fall_through_opt:                                                                               // CFA
    812811        // empty
    813                 { $$ = new StatementNode2( build_branch( "", BranchStmt::Break ) ); } // insert implicit break
     812                { $$ = new StatementNode( StatementNode::Break ); }     // insert implicit break
    814813        | fall_through
    815814        ;
     
    840839jump_statement:
    841840        GOTO IDENTIFIER ';'
     841                //{ $$ = new StatementNode( StatementNode::Goto, $2 ); }
    842842                { $$ = new StatementNode2( build_branch( *$2, BranchStmt::Goto ) ); }
    843843        | GOTO '*' comma_expression ';'                                         // GCC, computed goto
    844844                // The syntax for the GCC computed goto violates normal expression precedence, e.g., goto *i+3; => goto *(i+3);
    845845                // whereas normal operator precedence yields goto (*i)+3;
    846                 { $$ = new StatementNode2( build_computedgoto( $3 ) ); }
     846                { $$ = new StatementNode( StatementNode::Goto, $3 ); }
    847847        | CONTINUE ';'
    848848                // A semantic check is required to ensure this statement appears only in the body of an iteration statement.
     849                //{ $$ = new StatementNode( StatementNode::Continue ); }
    849850                { $$ = new StatementNode2( build_branch( "", BranchStmt::Continue ) ); }
    850851        | CONTINUE IDENTIFIER ';'                                                       // CFA, multi-level continue
    851852                // A semantic check is required to ensure this statement appears only in the body of an iteration statement, and
    852853                // the target of the transfer appears only at the start of an iteration statement.
     854                //{ $$ = new StatementNode( StatementNode::Continue, $2 ); }
    853855                { $$ = new StatementNode2( build_branch( *$2, BranchStmt::Continue ) ); delete $2; }
    854856        | BREAK ';'
    855857                // A semantic check is required to ensure this statement appears only in the body of an iteration statement.
     858                //{ $$ = new StatementNode( StatementNode::Break ); }
    856859                { $$ = new StatementNode2( build_branch( "", BranchStmt::Break ) ); }
    857860        | BREAK IDENTIFIER ';'                                                          // CFA, multi-level exit
    858861                // A semantic check is required to ensure this statement appears only in the body of an iteration statement, and
    859862                // the target of the transfer appears only at the start of an iteration statement.
     863                //{ $$ = new StatementNode( StatementNode::Break, $2 ); }
    860864                { $$ = new StatementNode2( build_branch( *$2, BranchStmt::Break ) ); delete $2; }
    861865        | RETURN comma_expression_opt ';'
    862                 { $$ = new StatementNode2( build_return( $2 ) ); }
    863         | THROW assignment_expression_opt ';'                           // handles rethrow
    864                 { $$ = new StatementNode2( build_throw( $2 ) ); }
    865         | THROWRESUME assignment_expression_opt ';'                     // handles reresume
    866                 { $$ = new StatementNode2( build_throw( $2 ) ); }
    867         | THROWRESUME assignment_expression_opt AT assignment_expression ';' // handles reresume
    868                 { $$ = new StatementNode2( build_throw( $2 ) ); }
     866                { $$ = new StatementNode( StatementNode::Return, $2, 0 ); }
     867        | THROW assignment_expression_opt ';'
     868                { $$ = new StatementNode( StatementNode::Throw, $2, 0 ); }
     869//      | THROW ';'
     870//              { $$ = new StatementNode( StatementNode::Throw ); }
     871        | THROWRESUME assignment_expression_opt ';'
     872                { $$ = new StatementNode( StatementNode::Throw, $2, 0 ); }
     873        | THROWRESUME assignment_expression_opt AT assignment_expression ';'
     874                { $$ = new StatementNode( StatementNode::Throw, $2, 0 ); }
     875//      | THROWRESUME ';'
     876//              { $$ = new StatementNode( StatementNode::Throw ); }
    869877        ;
    870878
  • src/libcfa/Makefile.am

    rdac593fd r71b5d4d3  
    1111## Created On       : Sun May 31 08:54:01 2015
    1212## Last Modified By : Peter A. Buhr
    13 ## Last Modified On : Thu Aug 11 15:36:32 2016
    14 ## Update Count     : 198
     13## Last Modified On : Sat Aug  6 16:15:15 2016
     14## Update Count     : 197
    1515###############################################################################
    1616
     
    5656CC = ${abs_top_srcdir}/src/driver/cfa
    5757
    58 headers = limits stdlib math iostream fstream iterator rational # containers/vector
     58headers = limits stdlib math iostream fstream iterator rational containers/vector
    5959libobjs = ${headers:=.o}
    6060
  • src/libcfa/Makefile.in

    rdac593fd r71b5d4d3  
    8989libcfa_a_AR = $(AR) $(ARFLAGS)
    9090libcfa_a_LIBADD =
     91am__dirstamp = $(am__leading_dot)dirstamp
    9192am__objects_1 = limits.$(OBJEXT) stdlib.$(OBJEXT) math.$(OBJEXT) \
    9293        iostream.$(OBJEXT) fstream.$(OBJEXT) iterator.$(OBJEXT) \
    93         rational.$(OBJEXT)
     94        rational.$(OBJEXT) containers/vector.$(OBJEXT)
    9495am_libcfa_a_OBJECTS = libcfa-prelude.$(OBJEXT) $(am__objects_1)
    9596libcfa_a_OBJECTS = $(am_libcfa_a_OBJECTS)
     
    233234cfalib_DATA = builtins.cf extras.cf prelude.cf
    234235MAINTAINERCLEANFILES = builtins.cf extras.cf ${addprefix ${libdir}/,${cfalib_DATA}} ${addprefix ${libdir}/,${lib_LIBRARIES}}
    235 headers = limits stdlib math iostream fstream iterator rational # containers/vector
     236headers = limits stdlib math iostream fstream iterator rational containers/vector
    236237libobjs = ${headers:=.o}
    237238libcfa_a_SOURCES = libcfa-prelude.c ${headers:=.c}
     
    303304clean-libLIBRARIES:
    304305        -test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES)
     306containers/$(am__dirstamp):
     307        @$(MKDIR_P) containers
     308        @: > containers/$(am__dirstamp)
     309containers/$(DEPDIR)/$(am__dirstamp):
     310        @$(MKDIR_P) containers/$(DEPDIR)
     311        @: > containers/$(DEPDIR)/$(am__dirstamp)
     312containers/vector.$(OBJEXT): containers/$(am__dirstamp) \
     313        containers/$(DEPDIR)/$(am__dirstamp)
    305314libcfa.a: $(libcfa_a_OBJECTS) $(libcfa_a_DEPENDENCIES) $(EXTRA_libcfa_a_DEPENDENCIES)
    306315        $(AM_V_at)-rm -f libcfa.a
     
    310319mostlyclean-compile:
    311320        -rm -f *.$(OBJEXT)
     321        -rm -f containers/vector.$(OBJEXT)
    312322
    313323distclean-compile:
     
    322332@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rational.Po@am__quote@
    323333@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stdlib.Po@am__quote@
     334@AMDEP_TRUE@@am__include@ @am__quote@containers/$(DEPDIR)/vector.Po@am__quote@
    324335
    325336.c.o:
     
    494505        -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
    495506        -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
     507        -rm -f containers/$(DEPDIR)/$(am__dirstamp)
     508        -rm -f containers/$(am__dirstamp)
    496509
    497510maintainer-clean-generic:
     
    504517
    505518distclean: distclean-am
    506         -rm -rf ./$(DEPDIR)
     519        -rm -rf ./$(DEPDIR) containers/$(DEPDIR)
    507520        -rm -f Makefile
    508521distclean-am: clean-am distclean-compile distclean-generic \
     
    550563
    551564maintainer-clean: maintainer-clean-am
    552         -rm -rf ./$(DEPDIR)
     565        -rm -rf ./$(DEPDIR) containers/$(DEPDIR)
    553566        -rm -f Makefile
    554567maintainer-clean-am: distclean-am maintainer-clean-generic \
Note: See TracChangeset for help on using the changeset viewer.