Changeset 8cc5cb0
- Timestamp:
- Aug 11, 2016, 6:09:33 PM (8 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- 1ca15c1
- Parents:
- 6f7424a
- Location:
- src/Parser
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/ParseNode.h
r6f7424a r8cc5cb0 10 10 // Created On : Sat May 16 13:28:16 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Aug 10 21:51:49201613 // Update Count : 4 3712 // Last Modified On : Thu Aug 11 12:24:11 2016 13 // Update Count : 443 14 14 // 15 15 … … 363 363 // StatementNode *add_controlexp( ExpressionNode * ); 364 364 StatementNode *append_block( StatementNode * ); 365 StatementNode *append_last_case( StatementNode * );365 virtual StatementNode *append_last_case( StatementNode * ); 366 366 367 367 void print( std::ostream &os, int indent = 0) const; … … 392 392 return this; 393 393 } 394 virtual StatementNode *append_last_case( StatementNode * ); 394 395 virtual std::list<std::string> get_labels() const { assert( false ); return StatementNode::get_labels(); } 395 396 … … 411 412 }; 412 413 414 Statement *build_expr( ExpressionNode *ctl ); 413 415 Statement *build_if( ExpressionNode *ctl, StatementNode *then_stmt, StatementNode *else_stmt ); 414 416 Statement *build_switch( ExpressionNode *ctl, StatementNode *stmt ); 417 Statement *build_case( ExpressionNode *ctl ); 418 Statement *build_default(); 415 419 Statement *build_while( ExpressionNode *ctl, StatementNode *stmt, bool kind = false ); 416 420 Statement *build_for( ForCtl *forctl, StatementNode *stmt ); 417 421 Statement *build_branch( std::string identifier, BranchStmt::Type kind ); 418 Statement *build_case( ExpressionNode *ctl ); 419 Statement *build_default(); 422 Statement *build_computedgoto( ExpressionNode *ctl ); 423 Statement *build_return( ExpressionNode *ctl ); 424 Statement *build_throw( ExpressionNode *ctl ); 420 425 421 426 //############################################################################## -
src/Parser/StatementNode.cc
r6f7424a r8cc5cb0 10 10 // Created On : Sat May 16 14:59:41 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Aug 10 22:08:38201613 // Update Count : 17312 // Last Modified On : Thu Aug 11 16:19:45 2016 13 // Update Count : 210 14 14 // 15 15 … … 118 118 119 119 StatementNode *StatementNode::append_last_case( StatementNode *stmt ) { 120 assert( false ); 120 121 if ( stmt != 0 ) { 121 122 StatementNode *next = ( StatementNode *)get_link(); 122 123 if ( next && ( next->get_type() == StatementNode::Case || next->get_type() == StatementNode::Default ) ) 123 next->append_last_case 124 next->append_last_case( stmt ); 124 125 else 125 126 if ( block == 0 ) … … 128 129 block->set_link( stmt ); 129 130 } // 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 ); 130 148 return this; 131 149 } … … 205 223 return new NullStmt( labs ); 206 224 } 225 assert( false ); 207 226 case If: 208 227 // { … … 220 239 assert( false ); 221 240 case Switch: 222 // return new SwitchStmt( labs, maybeBuild<Expression>(get_control()), branches );241 // return new SwitchStmt( labs, maybeBuild<Expression>(get_control()), branches ); 223 242 assert( false ); 224 243 case Case: 225 return new CaseStmt( labs, maybeBuild<Expression>(get_control() ), branches );244 //return new CaseStmt( labs, maybeBuild<Expression>(get_control() ), branches ); 226 245 assert( false ); 227 246 case Default: 228 return new CaseStmt( labs, 0, branches, true );247 //return new CaseStmt( labs, 0, branches, true ); 229 248 assert( false ); 230 249 case While: … … 260 279 assert( false ); 261 280 case Goto: 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 } 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 ); 270 290 case Break: 271 return new BranchStmt( labs, get_target(), BranchStmt::Break );291 // return new BranchStmt( labs, get_target(), BranchStmt::Break ); 272 292 assert( false ); 273 293 case Continue: 274 return new BranchStmt( labs, get_target(), BranchStmt::Continue );294 // return new BranchStmt( labs, get_target(), BranchStmt::Continue ); 275 295 assert( false ); 276 296 case Return: 277 297 case Throw : 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 ); 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 ); 283 304 case Try: 284 305 { … … 314 335 } 315 336 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 316 346 Statement *build_if( ExpressionNode *ctl, StatementNode *then_stmt, StatementNode *else_stmt ) { 317 347 Statement *thenb, *elseb = 0; … … 338 368 Statement *build_case( ExpressionNode *ctl ) { 339 369 std::list<Statement *> branches; 340 buildList<Statement, StatementNode>( nullptr, branches );341 370 return new CaseStmt( noLabels, maybeBuild<Expression>(ctl), branches ); 342 371 } … … 377 406 Statement *build_branch( std::string identifier, BranchStmt::Type kind ) { 378 407 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 ); 379 422 } 380 423 -
src/Parser/parser.cc
r6f7424a r8cc5cb0 1035 1035 657, 658, 659, 660, 661, 662, 663, 673, 680, 682, 1036 1036 692, 693, 698, 700, 706, 708, 712, 713, 718, 723, 1037 726, 728, 730, 740, 742, 753, 754, 756, 76 0, 762,1038 76 6, 767, 772, 773, 777, 782, 783, 787, 789, 795,1039 79 6, 800, 802, 804, 806, 812, 813, 817, 819, 824,1040 82 6, 828, 833, 835, 840, 843, 847, 851, 856, 860,1041 86 5, 867, 871, 873, 880, 882, 884, 893, 895, 897,1042 89 9, 901, 906, 908, 910, 912, 917, 930, 931, 936,1043 93 8, 943, 947, 949, 951, 953, 955, 961, 962, 968,1044 96 9, 973, 974, 979, 981, 987, 988, 990, 995, 997,1045 1004, 1006, 1010, 1011, 1016, 1018, 1022, 1023, 1027, 1029,1046 10 33, 1034, 1038, 1039, 1043, 1044, 1059, 1060, 1061, 1062,1047 10 63, 1067, 1072, 1079, 1089, 1094, 1099, 1107, 1112, 1117,1048 11 22, 1127, 1135, 1157, 1162, 1169, 1171, 1178, 1183, 1188,1049 119 9, 1204, 1209, 1214, 1219, 1228, 1233, 1241, 1242, 1243,1050 12 44, 1250, 1255, 1263, 1264, 1265, 1266, 1270, 1271, 1272,1051 12 73, 1278, 1279, 1288, 1289, 1294, 1295, 1300, 1302, 1304,1052 1 306, 1308, 1311, 1310, 1322, 1323, 1325, 1335, 1336, 1341,1053 13 45, 1347, 1349, 1351, 1353, 1355, 1357, 1359, 1364, 1366,1054 136 8, 1370, 1372, 1374, 1376, 1378, 1380, 1382, 1384, 1386,1055 138 8, 1394, 1395, 1397, 1399, 1401, 1406, 1407, 1413, 1414,1056 14 16, 1418, 1423, 1425, 1427, 1429, 1434, 1435, 1437, 1439,1057 14 44, 1445, 1447, 1452, 1453, 1455, 1457, 1462, 1464, 1466,1058 14 71, 1472, 1476, 1478, 1484, 1483, 1487, 1489, 1494, 1496,1059 1 502, 1503, 1508, 1509, 1511, 1512, 1521, 1522, 1524, 1526,1060 15 31, 1533, 1539, 1540, 1542, 1545, 1548, 1553, 1554, 1559,1061 15 64, 1568, 1570, 1576, 1575, 1582, 1584, 1590, 1591, 1599,1062 1 600, 1604, 1605, 1606, 1608, 1610, 1617, 1618, 1620, 1622,1063 16 27, 1628, 1634, 1635, 1639, 1640, 1645, 1646, 1647, 1649,1064 16 57, 1658, 1660, 1663, 1665, 1669, 1670, 1671, 1673, 1675,1065 167 9, 1684, 1692, 1693, 1702, 1704, 1709, 1710, 1711, 1715,1066 17 16, 1717, 1721, 1722, 1723, 1727, 1728, 1729, 1734, 1735,1067 17 36, 1737, 1743, 1744, 1746, 1751, 1752, 1757, 1758, 1759,1068 17 60, 1761, 1776, 1777, 1782, 1783, 1789, 1791, 1794, 1796,1069 179 8, 1821, 1822, 1824, 1826, 1831, 1832, 1834, 1839, 1844,1070 18 45, 1851, 1850, 1854, 1858, 1860, 1862, 1868, 1869, 1874,1071 187 9, 1881, 1886, 1888, 1889, 1891, 1896, 1898, 1900, 1905,1072 1 907, 1912, 1917, 1925, 1931, 1930, 1944, 1945, 1950, 1951,1073 19 55, 1960, 1965, 1973, 1978, 1989, 1990, 2001, 2002, 2008,1074 200 9, 2013, 2014, 2015, 2018, 2017, 2028, 2037, 2043, 2049,1075 205 8, 2064, 2070, 2076, 2082, 2090, 2096, 2104, 2110, 2119,1076 21 20, 2121, 2125, 2129, 2131, 2136, 2137, 2141, 2142, 2147,1077 21 53, 2154, 2157, 2159, 2160, 2164, 2165, 2166, 2167, 2201,1078 2 203, 2204, 2206, 2211, 2216, 2221, 2223, 2225, 2230, 2232,1079 22 34, 2236, 2241, 2243, 2252, 2254, 2255, 2260, 2262, 2264,1080 226 9, 2271, 2273, 2278, 2280, 2282, 2291, 2292, 2293, 2297,1081 229 9, 2301, 2306, 2308, 2310, 2315, 2317, 2319, 2334, 2336,1082 23 37, 2339, 2344, 2345, 2350, 2352, 2354, 2359, 2361, 2363,1083 23 65, 2370, 2372, 2374, 2384, 2386, 2387, 2389, 2394, 2396,1084 239 8, 2403, 2405, 2407, 2409, 2414, 2416, 2418, 2449, 2451,1085 24 52, 2454, 2459, 2464, 2472, 2474, 2476, 2481, 2483, 2488,1086 24 90, 2504, 2505, 2507, 2512, 2514, 2516, 2518, 2520, 2525,1087 25 26, 2528, 2530, 2535, 2537, 2539, 2545, 2547, 2549, 2553,1088 25 55, 2557, 2559, 2573, 2574, 2576, 2581, 2583, 2585, 2587,1089 258 9, 2594, 2595, 2597, 2599, 2604, 2606, 2608, 2614, 2615,1090 26 17, 2626, 2629, 2631, 2634, 2636, 2638, 2651, 2652, 2654,1091 265 9, 2661, 2663, 2665, 2667, 2672, 2673, 2675, 2677, 2682,1092 26 84, 2692, 2693, 2694, 2699, 2700, 2704, 2706, 2708, 2710,1093 27 12, 2714, 2721, 2723, 2725, 2727, 2729, 2731, 2733, 2735,1094 27 37, 2739, 2744, 2746, 2748, 2753, 2779, 2780, 2782, 2786,1095 27 87, 2791, 2793, 2795, 2797, 2799, 2801, 2808, 2810, 2812,1096 28 14, 2816, 2818, 2823, 2828, 2830, 2832, 2850, 2852, 2857,1097 285 81037 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 1098 1098 }; 1099 1099 #endif … … 5638 5638 Token fn; 5639 5639 fn.str = new std::string( "^?{}" ); // location undefined 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);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) ) ) ) ) ); 5641 5641 } 5642 5642 break; … … 5708 5708 /* Line 1806 of yacc.c */ 5709 5709 #line 719 "parser.yy" 5710 { (yyval.sn) = new StatementNode ( StatementNode::Exp, (yyvsp[(1) - (2)].en), 0); }5710 { (yyval.sn) = new StatementNode2( build_expr( (yyvsp[(1) - (2)].en) ) ); } 5711 5711 break; 5712 5712 … … 5781 5781 5782 5782 /* Line 1806 of yacc.c */ 5783 #line 76 0"parser.yy"5784 { (yyval.sn) = new StatementNode ( StatementNode::Case, (yyvsp[(1) - (1)].en), 0); }5783 #line 761 "parser.yy" 5784 { (yyval.sn) = new StatementNode2( build_case( (yyvsp[(1) - (1)].en) ) ); } 5785 5785 break; 5786 5786 … … 5788 5788 5789 5789 /* Line 1806 of yacc.c */ 5790 #line 76 2"parser.yy"5791 { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_link( new StatementNode ( StatementNode::Case, (yyvsp[(3) - (3)].en), 0) ) ); }5790 #line 763 "parser.yy" 5791 { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_link( new StatementNode2( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); } 5792 5792 break; 5793 5793 … … 5795 5795 5796 5796 /* Line 1806 of yacc.c */ 5797 #line 76 6"parser.yy"5797 #line 767 "parser.yy" 5798 5798 { (yyval.sn) = (yyvsp[(2) - (3)].sn); } 5799 5799 break; … … 5802 5802 5803 5803 /* Line 1806 of yacc.c */ 5804 #line 76 7"parser.yy"5805 { (yyval.sn) = new StatementNode ( StatementNode::Default); }5804 #line 768 "parser.yy" 5805 { (yyval.sn) = new StatementNode2( build_default() ); } 5806 5806 break; 5807 5807 … … 5809 5809 5810 5810 /* Line 1806 of yacc.c */ 5811 #line 77 3"parser.yy"5811 #line 774 "parser.yy" 5812 5812 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) )); } 5813 5813 break; … … 5816 5816 5817 5817 /* Line 1806 of yacc.c */ 5818 #line 77 7"parser.yy"5818 #line 778 "parser.yy" 5819 5819 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new CompoundStmtNode( (yyvsp[(2) - (2)].sn) ) ); } 5820 5820 break; … … 5823 5823 5824 5824 /* Line 1806 of yacc.c */ 5825 #line 78 2"parser.yy"5825 #line 783 "parser.yy" 5826 5826 { (yyval.sn) = 0; } 5827 5827 break; … … 5830 5830 5831 5831 /* Line 1806 of yacc.c */ 5832 #line 78 8"parser.yy"5832 #line 789 "parser.yy" 5833 5833 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new CompoundStmtNode( (yyvsp[(2) - (2)].sn) ) ); } 5834 5834 break; … … 5837 5837 5838 5838 /* Line 1806 of yacc.c */ 5839 #line 79 0"parser.yy"5839 #line 791 "parser.yy" 5840 5840 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( new CompoundStmtNode( (yyvsp[(3) - (3)].sn) ) ) ) ); } 5841 5841 break; … … 5844 5844 5845 5845 /* Line 1806 of yacc.c */ 5846 #line 79 5"parser.yy"5846 #line 796 "parser.yy" 5847 5847 { (yyval.sn) = 0; } 5848 5848 break; … … 5851 5851 5852 5852 /* Line 1806 of yacc.c */ 5853 #line 80 1"parser.yy"5853 #line 802 "parser.yy" 5854 5854 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); } 5855 5855 break; … … 5858 5858 5859 5859 /* Line 1806 of yacc.c */ 5860 #line 80 3"parser.yy"5860 #line 804 "parser.yy" 5861 5861 { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new CompoundStmtNode( (StatementNode *)mkList( (*(yyvsp[(2) - (3)].sn), *(yyvsp[(3) - (3)].sn) ) ) ) ); } 5862 5862 break; … … 5865 5865 5866 5866 /* Line 1806 of yacc.c */ 5867 #line 80 5"parser.yy"5867 #line 806 "parser.yy" 5868 5868 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); } 5869 5869 break; … … 5872 5872 5873 5873 /* Line 1806 of yacc.c */ 5874 #line 80 7"parser.yy"5874 #line 808 "parser.yy" 5875 5875 { (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) ) ) ) ) ) ); } 5876 5876 break; … … 5879 5879 5880 5880 /* Line 1806 of yacc.c */ 5881 #line 81 2"parser.yy"5882 { (yyval.sn) = new StatementNode ( StatementNode::Break); }5881 #line 813 "parser.yy" 5882 { (yyval.sn) = new StatementNode2( build_branch( "", BranchStmt::Break ) ); } 5883 5883 break; 5884 5884 … … 5886 5886 5887 5887 /* Line 1806 of yacc.c */ 5888 #line 81 8"parser.yy"5888 #line 819 "parser.yy" 5889 5889 { (yyval.sn) = 0; } 5890 5890 break; … … 5893 5893 5894 5894 /* Line 1806 of yacc.c */ 5895 #line 82 0"parser.yy"5895 #line 821 "parser.yy" 5896 5896 { (yyval.sn) = 0; } 5897 5897 break; … … 5900 5900 5901 5901 /* Line 1806 of yacc.c */ 5902 #line 82 5"parser.yy"5902 #line 826 "parser.yy" 5903 5903 { (yyval.sn) = new StatementNode2( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5904 5904 break; … … 5907 5907 5908 5908 /* Line 1806 of yacc.c */ 5909 #line 82 7"parser.yy"5909 #line 828 "parser.yy" 5910 5910 { (yyval.sn) = new StatementNode2( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ) ); } 5911 5911 break; … … 5914 5914 5915 5915 /* Line 1806 of yacc.c */ 5916 #line 8 29"parser.yy"5916 #line 830 "parser.yy" 5917 5917 { (yyval.sn) = new StatementNode2( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); } 5918 5918 break; … … 5921 5921 5922 5922 /* Line 1806 of yacc.c */ 5923 #line 83 4"parser.yy"5923 #line 835 "parser.yy" 5924 5924 { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); } 5925 5925 break; … … 5928 5928 5929 5929 /* Line 1806 of yacc.c */ 5930 #line 83 6"parser.yy"5930 #line 837 "parser.yy" 5931 5931 { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); } 5932 5932 break; … … 5943 5943 /* Line 1806 of yacc.c */ 5944 5944 #line 846 "parser.yy" 5945 { (yyval.sn) = new StatementNode ( StatementNode::Goto, (yyvsp[(3) - (4)].en) ); }5945 { (yyval.sn) = new StatementNode2( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); } 5946 5946 break; 5947 5947 … … 5949 5949 5950 5950 /* Line 1806 of yacc.c */ 5951 #line 8 50"parser.yy"5951 #line 849 "parser.yy" 5952 5952 { (yyval.sn) = new StatementNode2( build_branch( "", BranchStmt::Continue ) ); } 5953 5953 break; … … 5956 5956 5957 5957 /* Line 1806 of yacc.c */ 5958 #line 85 5"parser.yy"5958 #line 853 "parser.yy" 5959 5959 { (yyval.sn) = new StatementNode2( build_branch( *(yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); delete (yyvsp[(2) - (3)].tok); } 5960 5960 break; … … 5963 5963 5964 5964 /* Line 1806 of yacc.c */ 5965 #line 85 9"parser.yy"5965 #line 856 "parser.yy" 5966 5966 { (yyval.sn) = new StatementNode2( build_branch( "", BranchStmt::Break ) ); } 5967 5967 break; … … 5970 5970 5971 5971 /* Line 1806 of yacc.c */ 5972 #line 860 "parser.yy" 5973 { (yyval.sn) = new StatementNode2( build_branch( *(yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); delete (yyvsp[(2) - (3)].tok); } 5974 break; 5975 5976 case 190: 5977 5978 /* Line 1806 of yacc.c */ 5979 #line 862 "parser.yy" 5980 { (yyval.sn) = new StatementNode2( build_return( (yyvsp[(2) - (3)].en) ) ); } 5981 break; 5982 5983 case 191: 5984 5985 /* Line 1806 of yacc.c */ 5972 5986 #line 864 "parser.yy" 5973 { (yyval.sn) = new StatementNode2( build_ branch( *(yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); delete (yyvsp[(2) - (3)].tok); }5974 break; 5975 5976 case 19 0:5987 { (yyval.sn) = new StatementNode2( build_throw( (yyvsp[(2) - (3)].en) ) ); } 5988 break; 5989 5990 case 192: 5977 5991 5978 5992 /* Line 1806 of yacc.c */ 5979 5993 #line 866 "parser.yy" 5980 { (yyval.sn) = new StatementNode ( StatementNode::Return, (yyvsp[(2) - (3)].en), 0); }5981 break; 5982 5983 case 19 1:5994 { (yyval.sn) = new StatementNode2( build_throw( (yyvsp[(2) - (3)].en) ) ); } 5995 break; 5996 5997 case 193: 5984 5998 5985 5999 /* Line 1806 of yacc.c */ 5986 6000 #line 868 "parser.yy" 5987 { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); } 5988 break; 5989 5990 case 192: 5991 5992 /* Line 1806 of yacc.c */ 5993 #line 872 "parser.yy" 5994 { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); } 5995 break; 5996 5997 case 193: 5998 5999 /* Line 1806 of yacc.c */ 6000 #line 874 "parser.yy" 6001 { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (5)].en), 0 ); } 6001 { (yyval.sn) = new StatementNode2( build_throw( (yyvsp[(2) - (5)].en) ) ); } 6002 6002 break; 6003 6003 … … 6005 6005 6006 6006 /* Line 1806 of yacc.c */ 6007 #line 8 81"parser.yy"6007 #line 873 "parser.yy" 6008 6008 { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); } 6009 6009 break; … … 6012 6012 6013 6013 /* Line 1806 of yacc.c */ 6014 #line 8 83"parser.yy"6014 #line 875 "parser.yy" 6015 6015 { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); } 6016 6016 break; … … 6019 6019 6020 6020 /* Line 1806 of yacc.c */ 6021 #line 8 85"parser.yy"6021 #line 877 "parser.yy" 6022 6022 { 6023 6023 (yyvsp[(3) - (4)].pn)->set_link( (yyvsp[(4) - (4)].pn) ); … … 6029 6029 6030 6030 /* Line 1806 of yacc.c */ 6031 #line 8 96"parser.yy"6031 #line 888 "parser.yy" 6032 6032 { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); } 6033 6033 break; … … 6036 6036 6037 6037 /* Line 1806 of yacc.c */ 6038 #line 89 8"parser.yy"6038 #line 890 "parser.yy" 6039 6039 { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); } 6040 6040 break; … … 6043 6043 6044 6044 /* Line 1806 of yacc.c */ 6045 #line 900"parser.yy"6045 #line 892 "parser.yy" 6046 6046 { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); } 6047 6047 break; … … 6050 6050 6051 6051 /* Line 1806 of yacc.c */ 6052 #line 902"parser.yy"6052 #line 894 "parser.yy" 6053 6053 { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); } 6054 6054 break; … … 6057 6057 6058 6058 /* Line 1806 of yacc.c */ 6059 #line 907"parser.yy"6059 #line 899 "parser.yy" 6060 6060 { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); } 6061 6061 break; … … 6064 6064 6065 6065 /* Line 1806 of yacc.c */ 6066 #line 90 9"parser.yy"6066 #line 901 "parser.yy" 6067 6067 { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); } 6068 6068 break; … … 6071 6071 6072 6072 /* Line 1806 of yacc.c */ 6073 #line 9 11"parser.yy"6073 #line 903 "parser.yy" 6074 6074 { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); } 6075 6075 break; … … 6078 6078 6079 6079 /* Line 1806 of yacc.c */ 6080 #line 9 13"parser.yy"6080 #line 905 "parser.yy" 6081 6081 { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); } 6082 6082 break; … … 6085 6085 6086 6086 /* Line 1806 of yacc.c */ 6087 #line 91 8"parser.yy"6087 #line 910 "parser.yy" 6088 6088 { 6089 6089 (yyval.pn) = new StatementNode( StatementNode::Finally, 0, (yyvsp[(2) - (2)].sn) ); … … 6095 6095 6096 6096 /* Line 1806 of yacc.c */ 6097 #line 9 32"parser.yy"6097 #line 924 "parser.yy" 6098 6098 { 6099 6099 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6105 6105 6106 6106 /* Line 1806 of yacc.c */ 6107 #line 9 37"parser.yy"6107 #line 929 "parser.yy" 6108 6108 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 6109 6109 break; … … 6112 6112 6113 6113 /* Line 1806 of yacc.c */ 6114 #line 93 9"parser.yy"6114 #line 931 "parser.yy" 6115 6115 { 6116 6116 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6122 6122 6123 6123 /* Line 1806 of yacc.c */ 6124 #line 940 "parser.yy" 6125 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ); } 6126 break; 6127 6128 case 213: 6129 6130 /* Line 1806 of yacc.c */ 6131 #line 942 "parser.yy" 6132 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ); } 6133 break; 6134 6135 case 214: 6136 6137 /* Line 1806 of yacc.c */ 6138 #line 944 "parser.yy" 6139 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ); } 6140 break; 6141 6142 case 215: 6143 6144 /* Line 1806 of yacc.c */ 6145 #line 946 "parser.yy" 6146 { (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) ); } 6147 break; 6148 6149 case 216: 6150 6151 /* Line 1806 of yacc.c */ 6124 6152 #line 948 "parser.yy" 6125 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ); }6126 break;6127 6128 case 213:6129 6130 /* Line 1806 of yacc.c */6131 #line 950 "parser.yy"6132 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ); }6133 break;6134 6135 case 214:6136 6137 /* Line 1806 of yacc.c */6138 #line 952 "parser.yy"6139 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ); }6140 break;6141 6142 case 215:6143 6144 /* Line 1806 of yacc.c */6145 #line 954 "parser.yy"6146 { (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) ); }6147 break;6148 6149 case 216:6150 6151 /* Line 1806 of yacc.c */6152 #line 956 "parser.yy"6153 6153 { (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) ); } 6154 6154 break; … … 6157 6157 6158 6158 /* Line 1806 of yacc.c */ 6159 #line 9 61"parser.yy"6159 #line 953 "parser.yy" 6160 6160 { (yyval.flag) = false; } 6161 6161 break; … … 6164 6164 6165 6165 /* Line 1806 of yacc.c */ 6166 #line 9 63"parser.yy"6166 #line 955 "parser.yy" 6167 6167 { (yyval.flag) = true; } 6168 6168 break; … … 6171 6171 6172 6172 /* Line 1806 of yacc.c */ 6173 #line 96 8"parser.yy"6173 #line 960 "parser.yy" 6174 6174 { (yyval.en) = 0; } 6175 6175 break; … … 6178 6178 6179 6179 /* Line 1806 of yacc.c */ 6180 #line 9 75"parser.yy"6180 #line 967 "parser.yy" 6181 6181 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); } 6182 6182 break; … … 6185 6185 6186 6186 /* Line 1806 of yacc.c */ 6187 #line 9 80"parser.yy"6187 #line 972 "parser.yy" 6188 6188 { (yyval.en) = new ExpressionNode( build_asm( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); } 6189 6189 break; … … 6192 6192 6193 6193 /* Line 1806 of yacc.c */ 6194 #line 9 82"parser.yy"6194 #line 974 "parser.yy" 6195 6195 { (yyval.en) = new ExpressionNode( build_asm( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); } 6196 6196 break; … … 6199 6199 6200 6200 /* Line 1806 of yacc.c */ 6201 #line 9 87"parser.yy"6201 #line 979 "parser.yy" 6202 6202 { (yyval.en) = 0; } 6203 6203 break; … … 6206 6206 6207 6207 /* Line 1806 of yacc.c */ 6208 #line 98 9"parser.yy"6208 #line 981 "parser.yy" 6209 6209 { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); } 6210 6210 break; … … 6213 6213 6214 6214 /* Line 1806 of yacc.c */ 6215 #line 9 91"parser.yy"6215 #line 983 "parser.yy" 6216 6216 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); } 6217 6217 break; … … 6220 6220 6221 6221 /* Line 1806 of yacc.c */ 6222 #line 9 96"parser.yy"6222 #line 988 "parser.yy" 6223 6223 { (yyval.label) = new LabelNode(); (yyval.label)->append_label( (yyvsp[(1) - (1)].tok) ); } 6224 6224 break; … … 6227 6227 6228 6228 /* Line 1806 of yacc.c */ 6229 #line 99 8"parser.yy"6229 #line 990 "parser.yy" 6230 6230 { (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->append_label( (yyvsp[(3) - (3)].tok) ); } 6231 6231 break; … … 6234 6234 6235 6235 /* Line 1806 of yacc.c */ 6236 #line 1005"parser.yy"6236 #line 997 "parser.yy" 6237 6237 { (yyval.decl) = 0; } 6238 6238 break; … … 6241 6241 6242 6242 /* Line 1806 of yacc.c */ 6243 #line 10 12"parser.yy"6243 #line 1004 "parser.yy" 6244 6244 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6245 6245 break; … … 6248 6248 6249 6249 /* Line 1806 of yacc.c */ 6250 #line 10 17"parser.yy"6250 #line 1009 "parser.yy" 6251 6251 { (yyval.decl) = 0; } 6252 6252 break; … … 6255 6255 6256 6256 /* Line 1806 of yacc.c */ 6257 #line 10 24"parser.yy"6257 #line 1016 "parser.yy" 6258 6258 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6259 6259 break; … … 6262 6262 6263 6263 /* Line 1806 of yacc.c */ 6264 #line 103 8"parser.yy"6264 #line 1030 "parser.yy" 6265 6265 {} 6266 6266 break; … … 6269 6269 6270 6270 /* Line 1806 of yacc.c */ 6271 #line 103 9"parser.yy"6271 #line 1031 "parser.yy" 6272 6272 {} 6273 6273 break; … … 6276 6276 6277 6277 /* Line 1806 of yacc.c */ 6278 #line 106 8"parser.yy"6278 #line 1060 "parser.yy" 6279 6279 { 6280 6280 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6286 6286 6287 6287 /* Line 1806 of yacc.c */ 6288 #line 10 75"parser.yy"6288 #line 1067 "parser.yy" 6289 6289 { 6290 6290 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6296 6296 6297 6297 /* Line 1806 of yacc.c */ 6298 #line 10 80"parser.yy"6298 #line 1072 "parser.yy" 6299 6299 { 6300 6300 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID ); … … 6306 6306 6307 6307 /* Line 1806 of yacc.c */ 6308 #line 10 90"parser.yy"6308 #line 1082 "parser.yy" 6309 6309 { 6310 6310 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); … … 6316 6316 6317 6317 /* Line 1806 of yacc.c */ 6318 #line 10 95"parser.yy"6318 #line 1087 "parser.yy" 6319 6319 { 6320 6320 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); … … 6326 6326 6327 6327 /* Line 1806 of yacc.c */ 6328 #line 1 100"parser.yy"6328 #line 1092 "parser.yy" 6329 6329 { 6330 6330 typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) ); … … 6336 6336 6337 6337 /* Line 1806 of yacc.c */ 6338 #line 110 8"parser.yy"6338 #line 1100 "parser.yy" 6339 6339 { 6340 6340 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6346 6346 6347 6347 /* Line 1806 of yacc.c */ 6348 #line 11 13"parser.yy"6348 #line 1105 "parser.yy" 6349 6349 { 6350 6350 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6356 6356 6357 6357 /* Line 1806 of yacc.c */ 6358 #line 111 8"parser.yy"6358 #line 1110 "parser.yy" 6359 6359 { 6360 6360 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6366 6366 6367 6367 /* Line 1806 of yacc.c */ 6368 #line 11 23"parser.yy"6368 #line 1115 "parser.yy" 6369 6369 { 6370 6370 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6376 6376 6377 6377 /* Line 1806 of yacc.c */ 6378 #line 112 8"parser.yy"6378 #line 1120 "parser.yy" 6379 6379 { 6380 6380 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); … … 6386 6386 6387 6387 /* Line 1806 of yacc.c */ 6388 #line 11 36"parser.yy"6388 #line 1128 "parser.yy" 6389 6389 { 6390 6390 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true ); … … 6395 6395 6396 6396 /* Line 1806 of yacc.c */ 6397 #line 115 9"parser.yy"6397 #line 1151 "parser.yy" 6398 6398 { 6399 6399 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); … … 6404 6404 6405 6405 /* Line 1806 of yacc.c */ 6406 #line 11 63"parser.yy"6406 #line 1155 "parser.yy" 6407 6407 { 6408 6408 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); … … 6413 6413 6414 6414 /* Line 1806 of yacc.c */ 6415 #line 11 70"parser.yy"6415 #line 1162 "parser.yy" 6416 6416 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 6417 6417 break; … … 6420 6420 6421 6421 /* Line 1806 of yacc.c */ 6422 #line 11 74"parser.yy"6422 #line 1166 "parser.yy" 6423 6423 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); } 6424 6424 break; … … 6427 6427 6428 6428 /* Line 1806 of yacc.c */ 6429 #line 117 9"parser.yy"6429 #line 1171 "parser.yy" 6430 6430 { 6431 6431 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6437 6437 6438 6438 /* Line 1806 of yacc.c */ 6439 #line 11 84"parser.yy"6439 #line 1176 "parser.yy" 6440 6440 { 6441 6441 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6447 6447 6448 6448 /* Line 1806 of yacc.c */ 6449 #line 118 9"parser.yy"6449 #line 1181 "parser.yy" 6450 6450 { 6451 6451 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD ); … … 6457 6457 6458 6458 /* Line 1806 of yacc.c */ 6459 #line 1 200"parser.yy"6459 #line 1192 "parser.yy" 6460 6460 { 6461 6461 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6467 6467 6468 6468 /* Line 1806 of yacc.c */ 6469 #line 1 205"parser.yy"6469 #line 1197 "parser.yy" 6470 6470 { 6471 6471 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6477 6477 6478 6478 /* Line 1806 of yacc.c */ 6479 #line 12 10"parser.yy"6479 #line 1202 "parser.yy" 6480 6480 { 6481 6481 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6487 6487 6488 6488 /* Line 1806 of yacc.c */ 6489 #line 12 15"parser.yy"6489 #line 1207 "parser.yy" 6490 6490 { 6491 6491 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6497 6497 6498 6498 /* Line 1806 of yacc.c */ 6499 #line 12 20"parser.yy"6499 #line 1212 "parser.yy" 6500 6500 { 6501 6501 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6507 6507 6508 6508 /* Line 1806 of yacc.c */ 6509 #line 122 9"parser.yy"6509 #line 1221 "parser.yy" 6510 6510 { 6511 6511 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD ); … … 6517 6517 6518 6518 /* Line 1806 of yacc.c */ 6519 #line 12 34"parser.yy"6519 #line 1226 "parser.yy" 6520 6520 { 6521 6521 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD ); … … 6527 6527 6528 6528 /* Line 1806 of yacc.c */ 6529 #line 12 51"parser.yy"6529 #line 1243 "parser.yy" 6530 6530 { 6531 6531 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6537 6537 6538 6538 /* Line 1806 of yacc.c */ 6539 #line 12 56"parser.yy"6539 #line 1248 "parser.yy" 6540 6540 { 6541 6541 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6547 6547 6548 6548 /* Line 1806 of yacc.c */ 6549 #line 127 8"parser.yy"6549 #line 1270 "parser.yy" 6550 6550 { (yyval.decl) = 0; } 6551 6551 break; … … 6554 6554 6555 6555 /* Line 1806 of yacc.c */ 6556 #line 12 90"parser.yy"6556 #line 1282 "parser.yy" 6557 6557 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6558 6558 break; … … 6561 6561 6562 6562 /* Line 1806 of yacc.c */ 6563 #line 1293 "parser.yy" 6564 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); } 6565 break; 6566 6567 case 298: 6568 6569 /* Line 1806 of yacc.c */ 6570 #line 1295 "parser.yy" 6571 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); } 6572 break; 6573 6574 case 299: 6575 6576 /* Line 1806 of yacc.c */ 6577 #line 1297 "parser.yy" 6578 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); } 6579 break; 6580 6581 case 300: 6582 6583 /* Line 1806 of yacc.c */ 6584 #line 1299 "parser.yy" 6585 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); } 6586 break; 6587 6588 case 301: 6589 6590 /* Line 1806 of yacc.c */ 6563 6591 #line 1301 "parser.yy" 6564 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode:: Const); }6565 break; 6566 6567 case 298:6592 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); } 6593 break; 6594 6595 case 302: 6568 6596 6569 6597 /* Line 1806 of yacc.c */ 6570 6598 #line 1303 "parser.yy" 6571 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }6572 break;6573 6574 case 299:6575 6576 /* Line 1806 of yacc.c */6577 #line 1305 "parser.yy"6578 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }6579 break;6580 6581 case 300:6582 6583 /* Line 1806 of yacc.c */6584 #line 1307 "parser.yy"6585 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }6586 break;6587 6588 case 301:6589 6590 /* Line 1806 of yacc.c */6591 #line 1309 "parser.yy"6592 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }6593 break;6594 6595 case 302:6596 6597 /* Line 1806 of yacc.c */6598 #line 1311 "parser.yy"6599 6599 { 6600 6600 typedefTable.enterScope(); … … 6605 6605 6606 6606 /* Line 1806 of yacc.c */ 6607 #line 13 15"parser.yy"6607 #line 1307 "parser.yy" 6608 6608 { 6609 6609 typedefTable.leaveScope(); … … 6615 6615 6616 6616 /* Line 1806 of yacc.c */ 6617 #line 13 24"parser.yy"6617 #line 1316 "parser.yy" 6618 6618 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6619 6619 break; … … 6622 6622 6623 6623 /* Line 1806 of yacc.c */ 6624 #line 13 26"parser.yy"6624 #line 1318 "parser.yy" 6625 6625 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6626 6626 break; … … 6629 6629 6630 6630 /* Line 1806 of yacc.c */ 6631 #line 13 37"parser.yy"6631 #line 1329 "parser.yy" 6632 6632 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6633 6633 break; … … 6636 6636 6637 6637 /* Line 1806 of yacc.c */ 6638 #line 1338 "parser.yy" 6639 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); } 6640 break; 6641 6642 case 311: 6643 6644 /* Line 1806 of yacc.c */ 6645 #line 1340 "parser.yy" 6646 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); } 6647 break; 6648 6649 case 312: 6650 6651 /* Line 1806 of yacc.c */ 6652 #line 1342 "parser.yy" 6653 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); } 6654 break; 6655 6656 case 313: 6657 6658 /* Line 1806 of yacc.c */ 6659 #line 1344 "parser.yy" 6660 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); } 6661 break; 6662 6663 case 314: 6664 6665 /* Line 1806 of yacc.c */ 6638 6666 #line 1346 "parser.yy" 6639 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode:: Extern); }6640 break; 6641 6642 case 31 1:6667 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); } 6668 break; 6669 6670 case 315: 6643 6671 6644 6672 /* Line 1806 of yacc.c */ 6645 6673 #line 1348 "parser.yy" 6646 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode:: Static); }6647 break; 6648 6649 case 31 2:6674 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); } 6675 break; 6676 6677 case 316: 6650 6678 6651 6679 /* Line 1806 of yacc.c */ 6652 6680 #line 1350 "parser.yy" 6653 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode:: Auto); }6654 break; 6655 6656 case 31 3:6681 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); } 6682 break; 6683 6684 case 317: 6657 6685 6658 6686 /* Line 1806 of yacc.c */ 6659 6687 #line 1352 "parser.yy" 6660 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }6661 break;6662 6663 case 314:6664 6665 /* Line 1806 of yacc.c */6666 #line 1354 "parser.yy"6667 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); }6668 break;6669 6670 case 315:6671 6672 /* Line 1806 of yacc.c */6673 #line 1356 "parser.yy"6674 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }6675 break;6676 6677 case 316:6678 6679 /* Line 1806 of yacc.c */6680 #line 1358 "parser.yy"6681 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); }6682 break;6683 6684 case 317:6685 6686 /* Line 1806 of yacc.c */6687 #line 1360 "parser.yy"6688 6688 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); } 6689 6689 break; … … 6692 6692 6693 6693 /* Line 1806 of yacc.c */ 6694 #line 1357 "parser.yy" 6695 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); } 6696 break; 6697 6698 case 319: 6699 6700 /* Line 1806 of yacc.c */ 6701 #line 1359 "parser.yy" 6702 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); } 6703 break; 6704 6705 case 320: 6706 6707 /* Line 1806 of yacc.c */ 6708 #line 1361 "parser.yy" 6709 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); } 6710 break; 6711 6712 case 321: 6713 6714 /* Line 1806 of yacc.c */ 6715 #line 1363 "parser.yy" 6716 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); } 6717 break; 6718 6719 case 322: 6720 6721 /* Line 1806 of yacc.c */ 6694 6722 #line 1365 "parser.yy" 6695 { (yyval.decl) = DeclarationNode::new BasicType( DeclarationNode::Char); }6696 break; 6697 6698 case 3 19:6723 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); } 6724 break; 6725 6726 case 323: 6699 6727 6700 6728 /* Line 1806 of yacc.c */ 6701 6729 #line 1367 "parser.yy" 6702 { (yyval.decl) = DeclarationNode::new BasicType( DeclarationNode::Double); }6703 break; 6704 6705 case 32 0:6730 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); } 6731 break; 6732 6733 case 324: 6706 6734 6707 6735 /* Line 1806 of yacc.c */ 6708 6736 #line 1369 "parser.yy" 6709 { (yyval.decl) = DeclarationNode::new BasicType( DeclarationNode::Float); }6710 break; 6711 6712 case 32 1:6737 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); } 6738 break; 6739 6740 case 325: 6713 6741 6714 6742 /* Line 1806 of yacc.c */ 6715 6743 #line 1371 "parser.yy" 6716 { (yyval.decl) = DeclarationNode::new BasicType( DeclarationNode::Int); }6717 break; 6718 6719 case 32 2:6744 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); } 6745 break; 6746 6747 case 326: 6720 6748 6721 6749 /* Line 1806 of yacc.c */ 6722 6750 #line 1373 "parser.yy" 6723 { (yyval.decl) = DeclarationNode::new Modifier( DeclarationNode::Long); }6724 break; 6725 6726 case 32 3:6751 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); } 6752 break; 6753 6754 case 327: 6727 6755 6728 6756 /* Line 1806 of yacc.c */ 6729 6757 #line 1375 "parser.yy" 6730 { (yyval.decl) = DeclarationNode::new Modifier( DeclarationNode::Short); }6731 break; 6732 6733 case 32 4:6758 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); } 6759 break; 6760 6761 case 328: 6734 6762 6735 6763 /* Line 1806 of yacc.c */ 6736 6764 #line 1377 "parser.yy" 6737 { (yyval.decl) = DeclarationNode::new Modifier( DeclarationNode::Signed); }6738 break; 6739 6740 case 32 5:6765 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); } 6766 break; 6767 6768 case 329: 6741 6769 6742 6770 /* Line 1806 of yacc.c */ 6743 6771 #line 1379 "parser.yy" 6744 { (yyval.decl) = DeclarationNode::new Modifier( DeclarationNode::Unsigned); }6745 break; 6746 6747 case 3 26:6772 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); } 6773 break; 6774 6775 case 330: 6748 6776 6749 6777 /* Line 1806 of yacc.c */ 6750 6778 #line 1381 "parser.yy" 6751 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }6752 break;6753 6754 case 327:6755 6756 /* Line 1806 of yacc.c */6757 #line 1383 "parser.yy"6758 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }6759 break;6760 6761 case 328:6762 6763 /* Line 1806 of yacc.c */6764 #line 1385 "parser.yy"6765 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); }6766 break;6767 6768 case 329:6769 6770 /* Line 1806 of yacc.c */6771 #line 1387 "parser.yy"6772 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); }6773 break;6774 6775 case 330:6776 6777 /* Line 1806 of yacc.c */6778 #line 1389 "parser.yy"6779 6779 { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); } 6780 6780 break; … … 6783 6783 6784 6784 /* Line 1806 of yacc.c */ 6785 #line 13 96"parser.yy"6785 #line 1388 "parser.yy" 6786 6786 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6787 6787 break; … … 6790 6790 6791 6791 /* Line 1806 of yacc.c */ 6792 #line 139 8"parser.yy"6792 #line 1390 "parser.yy" 6793 6793 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6794 6794 break; … … 6797 6797 6798 6798 /* Line 1806 of yacc.c */ 6799 #line 1392 "parser.yy" 6800 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6801 break; 6802 6803 case 335: 6804 6805 /* Line 1806 of yacc.c */ 6806 #line 1394 "parser.yy" 6807 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); } 6808 break; 6809 6810 case 337: 6811 6812 /* Line 1806 of yacc.c */ 6799 6813 #line 1400 "parser.yy" 6814 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6815 break; 6816 6817 case 339: 6818 6819 /* Line 1806 of yacc.c */ 6820 #line 1407 "parser.yy" 6821 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6822 break; 6823 6824 case 340: 6825 6826 /* Line 1806 of yacc.c */ 6827 #line 1409 "parser.yy" 6828 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6829 break; 6830 6831 case 341: 6832 6833 /* Line 1806 of yacc.c */ 6834 #line 1411 "parser.yy" 6835 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); } 6836 break; 6837 6838 case 342: 6839 6840 /* Line 1806 of yacc.c */ 6841 #line 1416 "parser.yy" 6842 { (yyval.decl) = (yyvsp[(3) - (4)].decl); } 6843 break; 6844 6845 case 343: 6846 6847 /* Line 1806 of yacc.c */ 6848 #line 1418 "parser.yy" 6849 { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); } 6850 break; 6851 6852 case 344: 6853 6854 /* Line 1806 of yacc.c */ 6855 #line 1420 "parser.yy" 6856 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); } 6857 break; 6858 6859 case 345: 6860 6861 /* Line 1806 of yacc.c */ 6862 #line 1422 "parser.yy" 6863 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 6864 break; 6865 6866 case 347: 6867 6868 /* Line 1806 of yacc.c */ 6869 #line 1428 "parser.yy" 6870 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6871 break; 6872 6873 case 348: 6874 6875 /* Line 1806 of yacc.c */ 6876 #line 1430 "parser.yy" 6877 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6878 break; 6879 6880 case 349: 6881 6882 /* Line 1806 of yacc.c */ 6883 #line 1432 "parser.yy" 6800 6884 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6801 6885 break; 6802 6886 6803 case 335: 6804 6805 /* Line 1806 of yacc.c */ 6806 #line 1402 "parser.yy" 6807 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); } 6808 break; 6809 6810 case 337: 6811 6812 /* Line 1806 of yacc.c */ 6813 #line 1408 "parser.yy" 6814 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6815 break; 6816 6817 case 339: 6818 6819 /* Line 1806 of yacc.c */ 6820 #line 1415 "parser.yy" 6887 case 351: 6888 6889 /* Line 1806 of yacc.c */ 6890 #line 1438 "parser.yy" 6821 6891 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6822 6892 break; 6823 6893 6824 case 3 40:6825 6826 /* Line 1806 of yacc.c */ 6827 #line 14 17"parser.yy"6894 case 352: 6895 6896 /* Line 1806 of yacc.c */ 6897 #line 1440 "parser.yy" 6828 6898 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6829 6899 break; 6830 6900 6831 case 341: 6832 6833 /* Line 1806 of yacc.c */ 6834 #line 1419 "parser.yy" 6835 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); } 6836 break; 6837 6838 case 342: 6839 6840 /* Line 1806 of yacc.c */ 6841 #line 1424 "parser.yy" 6842 { (yyval.decl) = (yyvsp[(3) - (4)].decl); } 6843 break; 6844 6845 case 343: 6846 6847 /* Line 1806 of yacc.c */ 6848 #line 1426 "parser.yy" 6849 { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); } 6850 break; 6851 6852 case 344: 6853 6854 /* Line 1806 of yacc.c */ 6855 #line 1428 "parser.yy" 6856 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); } 6857 break; 6858 6859 case 345: 6860 6861 /* Line 1806 of yacc.c */ 6862 #line 1430 "parser.yy" 6863 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 6864 break; 6865 6866 case 347: 6867 6868 /* Line 1806 of yacc.c */ 6869 #line 1436 "parser.yy" 6870 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6871 break; 6872 6873 case 348: 6874 6875 /* Line 1806 of yacc.c */ 6876 #line 1438 "parser.yy" 6877 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6878 break; 6879 6880 case 349: 6881 6882 /* Line 1806 of yacc.c */ 6883 #line 1440 "parser.yy" 6884 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6885 break; 6886 6887 case 351: 6901 case 354: 6888 6902 6889 6903 /* Line 1806 of yacc.c */ … … 6892 6906 break; 6893 6907 6894 case 35 2:6908 case 355: 6895 6909 6896 6910 /* Line 1806 of yacc.c */ … … 6899 6913 break; 6900 6914 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" 6915 case 356: 6916 6917 /* Line 1806 of yacc.c */ 6918 #line 1450 "parser.yy" 6919 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6920 break; 6921 6922 case 357: 6923 6924 /* Line 1806 of yacc.c */ 6925 #line 1455 "parser.yy" 6926 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); } 6927 break; 6928 6929 case 358: 6930 6931 /* Line 1806 of yacc.c */ 6932 #line 1457 "parser.yy" 6933 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6934 break; 6935 6936 case 359: 6937 6938 /* Line 1806 of yacc.c */ 6939 #line 1459 "parser.yy" 6912 6940 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6913 6941 break; 6914 6942 6915 case 356:6916 6917 /* Line 1806 of yacc.c */6918 #line 1458 "parser.yy"6919 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }6920 break;6921 6922 case 357:6923 6924 /* Line 1806 of yacc.c */6925 #line 1463 "parser.yy"6926 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }6927 break;6928 6929 case 358:6930 6931 /* Line 1806 of yacc.c */6932 #line 1465 "parser.yy"6933 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }6934 break;6935 6936 case 359:6937 6938 /* Line 1806 of yacc.c */6939 #line 1467 "parser.yy"6940 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }6941 break;6942 6943 6943 case 362: 6944 6944 6945 6945 /* Line 1806 of yacc.c */ 6946 #line 14 77"parser.yy"6946 #line 1469 "parser.yy" 6947 6947 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl), true ); } 6948 6948 break; … … 6951 6951 6952 6952 /* Line 1806 of yacc.c */ 6953 #line 147 9"parser.yy"6953 #line 1471 "parser.yy" 6954 6954 { 6955 6955 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); … … 6961 6961 6962 6962 /* Line 1806 of yacc.c */ 6963 #line 14 84"parser.yy"6963 #line 1476 "parser.yy" 6964 6964 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); } 6965 6965 break; … … 6968 6968 6969 6969 /* Line 1806 of yacc.c */ 6970 #line 14 86"parser.yy"6970 #line 1478 "parser.yy" 6971 6971 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), 0, (yyvsp[(5) - (6)].decl), true ); } 6972 6972 break; … … 6975 6975 6976 6976 /* Line 1806 of yacc.c */ 6977 #line 148 8"parser.yy"6977 #line 1480 "parser.yy" 6978 6978 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); } 6979 6979 break; … … 6982 6982 6983 6983 /* Line 1806 of yacc.c */ 6984 #line 14 90"parser.yy"6984 #line 1482 "parser.yy" 6985 6985 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 6986 6986 break; … … 6989 6989 6990 6990 /* Line 1806 of yacc.c */ 6991 #line 14 95"parser.yy"6991 #line 1487 "parser.yy" 6992 6992 { (yyval.aggKey) = DeclarationNode::Struct; } 6993 6993 break; … … 6996 6996 6997 6997 /* Line 1806 of yacc.c */ 6998 #line 14 97"parser.yy"6998 #line 1489 "parser.yy" 6999 6999 { (yyval.aggKey) = DeclarationNode::Union; } 7000 7000 break; … … 7003 7003 7004 7004 /* Line 1806 of yacc.c */ 7005 #line 1494 "parser.yy" 7006 { (yyval.decl) = 0; } 7007 break; 7008 7009 case 371: 7010 7011 /* Line 1806 of yacc.c */ 7012 #line 1496 "parser.yy" 7013 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 7014 break; 7015 7016 case 373: 7017 7018 /* Line 1806 of yacc.c */ 7005 7019 #line 1502 "parser.yy" 7006 { (yyval.decl) = 0; }7007 break;7008 7009 case 371:7010 7011 /* Line 1806 of yacc.c */7012 #line 1504 "parser.yy"7013 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }7014 break;7015 7016 case 373:7017 7018 /* Line 1806 of yacc.c */7019 #line 1510 "parser.yy"7020 7020 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); } 7021 7021 break; … … 7024 7024 7025 7025 /* Line 1806 of yacc.c */ 7026 #line 15 13"parser.yy"7026 #line 1505 "parser.yy" 7027 7027 { // mark all fields in list 7028 7028 for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_link() ) … … 7035 7035 7036 7036 /* Line 1806 of yacc.c */ 7037 #line 15 23"parser.yy"7037 #line 1515 "parser.yy" 7038 7038 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); } 7039 7039 break; … … 7042 7042 7043 7043 /* Line 1806 of yacc.c */ 7044 #line 15 25"parser.yy"7044 #line 1517 "parser.yy" 7045 7045 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); } 7046 7046 break; … … 7049 7049 7050 7050 /* Line 1806 of yacc.c */ 7051 #line 15 27"parser.yy"7051 #line 1519 "parser.yy" 7052 7052 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); } 7053 7053 break; … … 7056 7056 7057 7057 /* Line 1806 of yacc.c */ 7058 #line 15 32"parser.yy"7058 #line 1524 "parser.yy" 7059 7059 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7060 7060 break; … … 7063 7063 7064 7064 /* Line 1806 of yacc.c */ 7065 #line 15 34"parser.yy"7065 #line 1526 "parser.yy" 7066 7066 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); } 7067 7067 break; … … 7070 7070 7071 7071 /* Line 1806 of yacc.c */ 7072 #line 1531 "parser.yy" 7073 { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ } 7074 break; 7075 7076 case 383: 7077 7078 /* Line 1806 of yacc.c */ 7079 #line 1533 "parser.yy" 7080 { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); } 7081 break; 7082 7083 case 384: 7084 7085 /* Line 1806 of yacc.c */ 7086 #line 1536 "parser.yy" 7087 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 7088 break; 7089 7090 case 385: 7091 7092 /* Line 1806 of yacc.c */ 7072 7093 #line 1539 "parser.yy" 7073 { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }7074 break;7075 7076 case 383:7077 7078 /* Line 1806 of yacc.c */7079 #line 1541 "parser.yy"7080 { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }7081 break;7082 7083 case 384:7084 7085 /* Line 1806 of yacc.c */7086 #line 1544 "parser.yy"7087 7094 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 7088 7095 break; 7089 7096 7090 case 385: 7097 case 387: 7098 7099 /* Line 1806 of yacc.c */ 7100 #line 1545 "parser.yy" 7101 { (yyval.en) = 0; } 7102 break; 7103 7104 case 388: 7091 7105 7092 7106 /* Line 1806 of yacc.c */ 7093 7107 #line 1547 "parser.yy" 7094 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }7095 break;7096 7097 case 387:7098 7099 /* Line 1806 of yacc.c */7100 #line 1553 "parser.yy"7101 { (yyval.en) = 0; }7102 break;7103 7104 case 388:7105 7106 /* Line 1806 of yacc.c */7107 #line 1555 "parser.yy"7108 7108 { (yyval.en) = (yyvsp[(1) - (1)].en); } 7109 7109 break; … … 7112 7112 7113 7113 /* Line 1806 of yacc.c */ 7114 #line 15 60"parser.yy"7114 #line 1552 "parser.yy" 7115 7115 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7116 7116 break; … … 7119 7119 7120 7120 /* Line 1806 of yacc.c */ 7121 #line 156 9"parser.yy"7121 #line 1561 "parser.yy" 7122 7122 { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); } 7123 7123 break; … … 7126 7126 7127 7127 /* Line 1806 of yacc.c */ 7128 #line 15 71"parser.yy"7128 #line 1563 "parser.yy" 7129 7129 { 7130 7130 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); … … 7136 7136 7137 7137 /* Line 1806 of yacc.c */ 7138 #line 15 76"parser.yy"7138 #line 1568 "parser.yy" 7139 7139 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); } 7140 7140 break; … … 7143 7143 7144 7144 /* Line 1806 of yacc.c */ 7145 #line 157 8"parser.yy"7145 #line 1570 "parser.yy" 7146 7146 { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); } 7147 7147 break; … … 7150 7150 7151 7151 /* Line 1806 of yacc.c */ 7152 #line 15 83"parser.yy"7152 #line 1575 "parser.yy" 7153 7153 { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); } 7154 7154 break; … … 7157 7157 7158 7158 /* Line 1806 of yacc.c */ 7159 #line 15 85"parser.yy"7159 #line 1577 "parser.yy" 7160 7160 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); } 7161 7161 break; … … 7164 7164 7165 7165 /* Line 1806 of yacc.c */ 7166 #line 15 90"parser.yy"7166 #line 1582 "parser.yy" 7167 7167 { (yyval.en) = 0; } 7168 7168 break; … … 7171 7171 7172 7172 /* Line 1806 of yacc.c */ 7173 #line 15 92"parser.yy"7173 #line 1584 "parser.yy" 7174 7174 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7175 7175 break; … … 7178 7178 7179 7179 /* Line 1806 of yacc.c */ 7180 #line 1591 "parser.yy" 7181 { (yyval.decl) = 0; } 7182 break; 7183 7184 case 403: 7185 7186 /* Line 1806 of yacc.c */ 7180 7187 #line 1599 "parser.yy" 7181 { (yyval.decl) = 0; }7182 break;7183 7184 case 403:7185 7186 /* Line 1806 of yacc.c */7187 #line 1607 "parser.yy"7188 7188 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7189 7189 break; … … 7192 7192 7193 7193 /* Line 1806 of yacc.c */ 7194 #line 160 9"parser.yy"7194 #line 1601 "parser.yy" 7195 7195 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7196 7196 break; … … 7199 7199 7200 7200 /* Line 1806 of yacc.c */ 7201 #line 1603 "parser.yy" 7202 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7203 break; 7204 7205 case 407: 7206 7207 /* Line 1806 of yacc.c */ 7201 7208 #line 1611 "parser.yy" 7202 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }7203 break;7204 7205 case 407:7206 7207 /* Line 1806 of yacc.c */7208 #line 1619 "parser.yy"7209 7209 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7210 7210 break; 7211 7211 7212 7212 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: 7213 7227 7214 7228 /* Line 1806 of yacc.c */ … … 7217 7231 break; 7218 7232 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" 7233 case 412: 7234 7235 /* Line 1806 of yacc.c */ 7236 #line 1626 "parser.yy" 7237 { (yyval.decl) = 0; } 7238 break; 7239 7240 case 415: 7241 7242 /* Line 1806 of yacc.c */ 7243 #line 1633 "parser.yy" 7244 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7245 break; 7246 7247 case 418: 7248 7249 /* Line 1806 of yacc.c */ 7250 #line 1640 "parser.yy" 7230 7251 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7231 7252 break; 7232 7253 7233 case 412: 7234 7235 /* Line 1806 of yacc.c */ 7236 #line 1634 "parser.yy" 7237 { (yyval.decl) = 0; } 7238 break; 7239 7240 case 415: 7241 7242 /* Line 1806 of yacc.c */ 7243 #line 1641 "parser.yy" 7244 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7245 break; 7246 7247 case 418: 7248 7249 /* Line 1806 of yacc.c */ 7250 #line 1648 "parser.yy" 7254 case 419: 7255 7256 /* Line 1806 of yacc.c */ 7257 #line 1642 "parser.yy" 7251 7258 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7252 7259 break; 7253 7260 7254 case 419:7255 7256 /* Line 1806 of yacc.c */7257 #line 1650 "parser.yy"7258 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }7259 break;7260 7261 7261 case 421: 7262 7262 7263 7263 /* Line 1806 of yacc.c */ 7264 #line 165 9"parser.yy"7264 #line 1651 "parser.yy" 7265 7265 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 7266 7266 break; … … 7269 7269 7270 7270 /* Line 1806 of yacc.c */ 7271 #line 16 62"parser.yy"7271 #line 1654 "parser.yy" 7272 7272 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 7273 7273 break; … … 7276 7276 7277 7277 /* Line 1806 of yacc.c */ 7278 #line 16 64"parser.yy"7278 #line 1656 "parser.yy" 7279 7279 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); } 7280 7280 break; … … 7283 7283 7284 7284 /* Line 1806 of yacc.c */ 7285 #line 16 74"parser.yy"7285 #line 1666 "parser.yy" 7286 7286 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7287 7287 break; … … 7290 7290 7291 7291 /* Line 1806 of yacc.c */ 7292 #line 16 80"parser.yy"7292 #line 1672 "parser.yy" 7293 7293 { 7294 7294 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7300 7300 7301 7301 /* Line 1806 of yacc.c */ 7302 #line 16 85"parser.yy"7302 #line 1677 "parser.yy" 7303 7303 { 7304 7304 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7310 7310 7311 7311 /* Line 1806 of yacc.c */ 7312 #line 16 94"parser.yy"7312 #line 1686 "parser.yy" 7313 7313 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7314 7314 break; … … 7317 7317 7318 7318 /* Line 1806 of yacc.c */ 7319 #line 1 703"parser.yy"7319 #line 1695 "parser.yy" 7320 7320 { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); } 7321 7321 break; … … 7324 7324 7325 7325 /* Line 1806 of yacc.c */ 7326 #line 1 705"parser.yy"7326 #line 1697 "parser.yy" 7327 7327 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); } 7328 7328 break; 7329 7329 7330 7330 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: 7331 7338 7332 7339 /* Line 1806 of yacc.c */ … … 7335 7342 break; 7336 7343 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 7344 7344 case 452: 7345 7345 7346 7346 /* Line 1806 of yacc.c */ 7347 #line 1735 "parser.yy" 7348 { (yyval.in) = 0; } 7349 break; 7350 7351 case 453: 7352 7353 /* Line 1806 of yacc.c */ 7354 #line 1737 "parser.yy" 7355 { (yyval.in) = (yyvsp[(2) - (2)].in); } 7356 break; 7357 7358 case 454: 7359 7360 /* Line 1806 of yacc.c */ 7361 #line 1739 "parser.yy" 7362 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); } 7363 break; 7364 7365 case 455: 7366 7367 /* Line 1806 of yacc.c */ 7347 7368 #line 1743 "parser.yy" 7369 { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); } 7370 break; 7371 7372 case 456: 7373 7374 /* Line 1806 of yacc.c */ 7375 #line 1744 "parser.yy" 7376 { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); } 7377 break; 7378 7379 case 457: 7380 7381 /* Line 1806 of yacc.c */ 7382 #line 1749 "parser.yy" 7348 7383 { (yyval.in) = 0; } 7349 7384 break; 7350 7385 7351 case 453: 7352 7353 /* Line 1806 of yacc.c */ 7354 #line 1745 "parser.yy" 7355 { (yyval.in) = (yyvsp[(2) - (2)].in); } 7356 break; 7357 7358 case 454: 7359 7360 /* Line 1806 of yacc.c */ 7361 #line 1747 "parser.yy" 7362 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); } 7363 break; 7364 7365 case 455: 7386 case 459: 7366 7387 7367 7388 /* Line 1806 of yacc.c */ 7368 7389 #line 1751 "parser.yy" 7369 { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }7370 break; 7371 7372 case 4 56:7390 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); } 7391 break; 7392 7393 case 460: 7373 7394 7374 7395 /* Line 1806 of yacc.c */ 7375 7396 #line 1752 "parser.yy" 7376 { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }7377 break;7378 7379 case 457:7380 7381 /* Line 1806 of yacc.c */7382 #line 1757 "parser.yy"7383 { (yyval.in) = 0; }7384 break;7385 7386 case 459:7387 7388 /* Line 1806 of yacc.c */7389 #line 1759 "parser.yy"7390 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }7391 break;7392 7393 case 460:7394 7395 /* Line 1806 of yacc.c */7396 #line 1760 "parser.yy"7397 7397 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link( (yyvsp[(3) - (3)].in) ) ); } 7398 7398 break; … … 7401 7401 7402 7402 /* Line 1806 of yacc.c */ 7403 #line 17 62"parser.yy"7403 #line 1754 "parser.yy" 7404 7404 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_link( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); } 7405 7405 break; … … 7408 7408 7409 7409 /* Line 1806 of yacc.c */ 7410 #line 177 8"parser.yy"7410 #line 1770 "parser.yy" 7411 7411 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); } 7412 7412 break; … … 7415 7415 7416 7416 /* Line 1806 of yacc.c */ 7417 #line 17 84"parser.yy"7417 #line 1776 "parser.yy" 7418 7418 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) ) ); } 7419 7419 break; … … 7422 7422 7423 7423 /* Line 1806 of yacc.c */ 7424 #line 17 90"parser.yy"7424 #line 1782 "parser.yy" 7425 7425 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); } 7426 7426 break; … … 7429 7429 7430 7430 /* Line 1806 of yacc.c */ 7431 #line 17 93"parser.yy"7431 #line 1785 "parser.yy" 7432 7432 { (yyval.en) = (yyvsp[(3) - (5)].en); } 7433 7433 break; … … 7436 7436 7437 7437 /* Line 1806 of yacc.c */ 7438 #line 17 95"parser.yy"7438 #line 1787 "parser.yy" 7439 7439 { (yyval.en) = (yyvsp[(3) - (5)].en); } 7440 7440 break; … … 7443 7443 7444 7444 /* Line 1806 of yacc.c */ 7445 #line 17 97"parser.yy"7445 #line 1789 "parser.yy" 7446 7446 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); } 7447 7447 break; … … 7450 7450 7451 7451 /* Line 1806 of yacc.c */ 7452 #line 179 9"parser.yy"7452 #line 1791 "parser.yy" 7453 7453 { (yyval.en) = (yyvsp[(4) - (6)].en); } 7454 7454 break; … … 7457 7457 7458 7458 /* Line 1806 of yacc.c */ 7459 #line 18 23"parser.yy"7459 #line 1815 "parser.yy" 7460 7460 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7461 7461 break; … … 7464 7464 7465 7465 /* Line 1806 of yacc.c */ 7466 #line 1817 "parser.yy" 7467 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7468 break; 7469 7470 case 474: 7471 7472 /* Line 1806 of yacc.c */ 7473 #line 1819 "parser.yy" 7474 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 7475 break; 7476 7477 case 476: 7478 7479 /* Line 1806 of yacc.c */ 7466 7480 #line 1825 "parser.yy" 7481 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7482 break; 7483 7484 case 477: 7485 7486 /* Line 1806 of yacc.c */ 7487 #line 1827 "parser.yy" 7467 7488 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7468 7489 break; 7469 7490 7470 case 474:7471 7472 /* Line 1806 of yacc.c */7473 #line 1827 "parser.yy"7474 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }7475 break;7476 7477 case 476:7478 7479 /* Line 1806 of yacc.c */7480 #line 1833 "parser.yy"7481 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }7482 break;7483 7484 case 477:7485 7486 /* Line 1806 of yacc.c */7487 #line 1835 "parser.yy"7488 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }7489 break;7490 7491 7491 case 478: 7492 7492 7493 7493 /* Line 1806 of yacc.c */ 7494 #line 18 40"parser.yy"7494 #line 1832 "parser.yy" 7495 7495 { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 7496 7496 break; … … 7499 7499 7500 7500 /* Line 1806 of yacc.c */ 7501 #line 18 46"parser.yy"7501 #line 1838 "parser.yy" 7502 7502 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); } 7503 7503 break; … … 7506 7506 7507 7507 /* Line 1806 of yacc.c */ 7508 #line 1843 "parser.yy" 7509 { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); } 7510 break; 7511 7512 case 482: 7513 7514 /* Line 1806 of yacc.c */ 7515 #line 1845 "parser.yy" 7516 { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); } 7517 break; 7518 7519 case 484: 7520 7521 /* Line 1806 of yacc.c */ 7508 7522 #line 1851 "parser.yy" 7509 { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }7510 break; 7511 7512 case 48 2:7523 { (yyval.tclass) = DeclarationNode::Type; } 7524 break; 7525 7526 case 485: 7513 7527 7514 7528 /* Line 1806 of yacc.c */ 7515 7529 #line 1853 "parser.yy" 7516 { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }7517 break;7518 7519 case 484:7520 7521 /* Line 1806 of yacc.c */7522 #line 1859 "parser.yy"7523 { (yyval.tclass) = DeclarationNode::Type; }7524 break;7525 7526 case 485:7527 7528 /* Line 1806 of yacc.c */7529 #line 1861 "parser.yy"7530 7530 { (yyval.tclass) = DeclarationNode::Ftype; } 7531 7531 break; … … 7534 7534 7535 7535 /* Line 1806 of yacc.c */ 7536 #line 18 63"parser.yy"7536 #line 1855 "parser.yy" 7537 7537 { (yyval.tclass) = DeclarationNode::Dtype; } 7538 7538 break; … … 7541 7541 7542 7542 /* Line 1806 of yacc.c */ 7543 #line 186 8"parser.yy"7543 #line 1860 "parser.yy" 7544 7544 { (yyval.decl) = 0; } 7545 7545 break; … … 7548 7548 7549 7549 /* Line 1806 of yacc.c */ 7550 #line 18 70"parser.yy"7550 #line 1862 "parser.yy" 7551 7551 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 7552 7552 break; … … 7555 7555 7556 7556 /* Line 1806 of yacc.c */ 7557 #line 18 75"parser.yy"7557 #line 1867 "parser.yy" 7558 7558 { 7559 7559 typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) ); … … 7565 7565 7566 7566 /* Line 1806 of yacc.c */ 7567 #line 18 80"parser.yy"7567 #line 1872 "parser.yy" 7568 7568 { (yyval.decl) = (yyvsp[(4) - (5)].decl); } 7569 7569 break; … … 7572 7572 7573 7573 /* Line 1806 of yacc.c */ 7574 #line 1874 "parser.yy" 7575 { (yyval.decl) = 0; } 7576 break; 7577 7578 case 492: 7579 7580 /* Line 1806 of yacc.c */ 7581 #line 1879 "parser.yy" 7582 { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); } 7583 break; 7584 7585 case 494: 7586 7587 /* Line 1806 of yacc.c */ 7574 7588 #line 1882 "parser.yy" 7575 { (yyval.decl) = 0; }7576 break;7577 7578 case 492:7579 7580 /* Line 1806 of yacc.c */7581 #line 1887 "parser.yy"7582 { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); }7583 break;7584 7585 case 494:7586 7587 /* Line 1806 of yacc.c */7588 #line 1890 "parser.yy"7589 7589 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); } 7590 7590 break; … … 7593 7593 7594 7594 /* Line 1806 of yacc.c */ 7595 #line 18 92"parser.yy"7595 #line 1884 "parser.yy" 7596 7596 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); } 7597 7597 break; … … 7600 7600 7601 7601 /* Line 1806 of yacc.c */ 7602 #line 18 97"parser.yy"7602 #line 1889 "parser.yy" 7603 7603 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 7604 7604 break; … … 7607 7607 7608 7608 /* Line 1806 of yacc.c */ 7609 #line 189 9"parser.yy"7609 #line 1891 "parser.yy" 7610 7610 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); } 7611 7611 break; … … 7614 7614 7615 7615 /* Line 1806 of yacc.c */ 7616 #line 1 901"parser.yy"7616 #line 1893 "parser.yy" 7617 7617 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); } 7618 7618 break; … … 7621 7621 7622 7622 /* Line 1806 of yacc.c */ 7623 #line 1 906"parser.yy"7623 #line 1898 "parser.yy" 7624 7624 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); } 7625 7625 break; … … 7628 7628 7629 7629 /* Line 1806 of yacc.c */ 7630 #line 190 8"parser.yy"7630 #line 1900 "parser.yy" 7631 7631 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); } 7632 7632 break; … … 7635 7635 7636 7636 /* Line 1806 of yacc.c */ 7637 #line 19 13"parser.yy"7637 #line 1905 "parser.yy" 7638 7638 { 7639 7639 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD ); … … 7645 7645 7646 7646 /* Line 1806 of yacc.c */ 7647 #line 191 8"parser.yy"7647 #line 1910 "parser.yy" 7648 7648 { 7649 7649 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG ); … … 7655 7655 7656 7656 /* Line 1806 of yacc.c */ 7657 #line 19 26"parser.yy"7657 #line 1918 "parser.yy" 7658 7658 { 7659 7659 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID ); … … 7665 7665 7666 7666 /* Line 1806 of yacc.c */ 7667 #line 19 31"parser.yy"7667 #line 1923 "parser.yy" 7668 7668 { 7669 7669 typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) ); … … 7675 7675 7676 7676 /* Line 1806 of yacc.c */ 7677 #line 19 36"parser.yy"7677 #line 1928 "parser.yy" 7678 7678 { 7679 7679 typedefTable.leaveTrait(); … … 7686 7686 7687 7687 /* Line 1806 of yacc.c */ 7688 #line 19 46"parser.yy"7688 #line 1938 "parser.yy" 7689 7689 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 7690 7690 break; … … 7693 7693 7694 7694 /* Line 1806 of yacc.c */ 7695 #line 19 56"parser.yy"7695 #line 1948 "parser.yy" 7696 7696 { 7697 7697 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7703 7703 7704 7704 /* Line 1806 of yacc.c */ 7705 #line 19 61"parser.yy"7705 #line 1953 "parser.yy" 7706 7706 { 7707 7707 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7713 7713 7714 7714 /* Line 1806 of yacc.c */ 7715 #line 19 66"parser.yy"7715 #line 1958 "parser.yy" 7716 7716 { 7717 7717 typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); … … 7723 7723 7724 7724 /* Line 1806 of yacc.c */ 7725 #line 19 74"parser.yy"7725 #line 1966 "parser.yy" 7726 7726 { 7727 7727 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7733 7733 7734 7734 /* Line 1806 of yacc.c */ 7735 #line 197 9"parser.yy"7735 #line 1971 "parser.yy" 7736 7736 { 7737 7737 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7743 7743 7744 7744 /* Line 1806 of yacc.c */ 7745 #line 198 9"parser.yy"7745 #line 1981 "parser.yy" 7746 7746 {} 7747 7747 break; … … 7750 7750 7751 7751 /* Line 1806 of yacc.c */ 7752 #line 19 91"parser.yy"7752 #line 1983 "parser.yy" 7753 7753 { 7754 7754 if ( theTree ) { … … 7763 7763 7764 7764 /* Line 1806 of yacc.c */ 7765 #line 2003"parser.yy"7765 #line 1995 "parser.yy" 7766 7766 { (yyval.decl) = ( (yyvsp[(1) - (3)].decl) != NULL ) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); } 7767 7767 break; … … 7770 7770 7771 7771 /* Line 1806 of yacc.c */ 7772 #line 2000 "parser.yy" 7773 { (yyval.decl) = 0; } 7774 break; 7775 7776 case 523: 7777 7778 /* Line 1806 of yacc.c */ 7772 7779 #line 2008 "parser.yy" 7773 { (yyval.decl) = 0; }7774 break;7775 7776 case 523:7777 7778 /* Line 1806 of yacc.c */7779 #line 2016 "parser.yy"7780 7780 {} 7781 7781 break; … … 7784 7784 7785 7785 /* Line 1806 of yacc.c */ 7786 #line 201 8"parser.yy"7786 #line 2010 "parser.yy" 7787 7787 { 7788 7788 linkageStack.push( linkage ); … … 7794 7794 7795 7795 /* Line 1806 of yacc.c */ 7796 #line 20 23"parser.yy"7796 #line 2015 "parser.yy" 7797 7797 { 7798 7798 linkage = linkageStack.top(); … … 7805 7805 7806 7806 /* Line 1806 of yacc.c */ 7807 #line 202 9"parser.yy"7807 #line 2021 "parser.yy" 7808 7808 { // mark all fields in list 7809 7809 for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_link() ) … … 7816 7816 7817 7817 /* Line 1806 of yacc.c */ 7818 #line 20 44"parser.yy"7818 #line 2036 "parser.yy" 7819 7819 { 7820 7820 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7827 7827 7828 7828 /* Line 1806 of yacc.c */ 7829 #line 20 50"parser.yy"7829 #line 2042 "parser.yy" 7830 7830 { 7831 7831 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7838 7838 7839 7839 /* Line 1806 of yacc.c */ 7840 #line 205 9"parser.yy"7840 #line 2051 "parser.yy" 7841 7841 { 7842 7842 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7849 7849 7850 7850 /* Line 1806 of yacc.c */ 7851 #line 20 65"parser.yy"7851 #line 2057 "parser.yy" 7852 7852 { 7853 7853 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7860 7860 7861 7861 /* Line 1806 of yacc.c */ 7862 #line 20 71"parser.yy"7862 #line 2063 "parser.yy" 7863 7863 { 7864 7864 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7871 7871 7872 7872 /* Line 1806 of yacc.c */ 7873 #line 20 77"parser.yy"7873 #line 2069 "parser.yy" 7874 7874 { 7875 7875 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7882 7882 7883 7883 /* Line 1806 of yacc.c */ 7884 #line 20 83"parser.yy"7884 #line 2075 "parser.yy" 7885 7885 { 7886 7886 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7893 7893 7894 7894 /* Line 1806 of yacc.c */ 7895 #line 20 91"parser.yy"7895 #line 2083 "parser.yy" 7896 7896 { 7897 7897 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7902 7902 7903 7903 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: 7904 7915 7905 7916 /* Line 1806 of yacc.c */ … … 7912 7923 break; 7913 7924 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 7925 7925 case 538: 7926 7926 7927 7927 /* Line 1806 of yacc.c */ 7928 #line 21 11"parser.yy"7928 #line 2103 "parser.yy" 7929 7929 { 7930 7930 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7937 7937 7938 7938 /* Line 1806 of yacc.c */ 7939 #line 21 26"parser.yy"7939 #line 2118 "parser.yy" 7940 7940 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 7941 7941 break; … … 7944 7944 7945 7945 /* Line 1806 of yacc.c */ 7946 #line 21 36"parser.yy"7946 #line 2128 "parser.yy" 7947 7947 { (yyval.decl) = 0; } 7948 7948 break; … … 7951 7951 7952 7952 /* Line 1806 of yacc.c */ 7953 #line 21 43"parser.yy"7953 #line 2135 "parser.yy" 7954 7954 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7955 7955 break; … … 7958 7958 7959 7959 /* Line 1806 of yacc.c */ 7960 #line 214 9"parser.yy"7960 #line 2141 "parser.yy" 7961 7961 { (yyval.decl) = 0; } 7962 7962 break; … … 7965 7965 7966 7966 /* Line 1806 of yacc.c */ 7967 #line 21 64"parser.yy"7967 #line 2156 "parser.yy" 7968 7968 {} 7969 7969 break; … … 7972 7972 7973 7973 /* Line 1806 of yacc.c */ 7974 #line 21 65"parser.yy"7974 #line 2157 "parser.yy" 7975 7975 {} 7976 7976 break; … … 7979 7979 7980 7980 /* Line 1806 of yacc.c */ 7981 #line 21 66"parser.yy"7981 #line 2158 "parser.yy" 7982 7982 {} 7983 7983 break; … … 7986 7986 7987 7987 /* Line 1806 of yacc.c */ 7988 #line 21 67"parser.yy"7988 #line 2159 "parser.yy" 7989 7989 {} 7990 7990 break; … … 7993 7993 7994 7994 /* Line 1806 of yacc.c */ 7995 #line 2 202"parser.yy"7995 #line 2194 "parser.yy" 7996 7996 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7997 7997 break; … … 8000 8000 8001 8001 /* Line 1806 of yacc.c */ 8002 #line 2 205"parser.yy"8002 #line 2197 "parser.yy" 8003 8003 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8004 8004 break; … … 8007 8007 8008 8008 /* Line 1806 of yacc.c */ 8009 #line 2 207"parser.yy"8009 #line 2199 "parser.yy" 8010 8010 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8011 8011 break; … … 8014 8014 8015 8015 /* Line 1806 of yacc.c */ 8016 #line 22 12"parser.yy"8016 #line 2204 "parser.yy" 8017 8017 { 8018 8018 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8024 8024 8025 8025 /* Line 1806 of yacc.c */ 8026 #line 22 17"parser.yy"8026 #line 2209 "parser.yy" 8027 8027 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8028 8028 break; … … 8031 8031 8032 8032 /* Line 1806 of yacc.c */ 8033 #line 22 22"parser.yy"8033 #line 2214 "parser.yy" 8034 8034 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8035 8035 break; … … 8038 8038 8039 8039 /* Line 1806 of yacc.c */ 8040 #line 22 24"parser.yy"8040 #line 2216 "parser.yy" 8041 8041 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8042 8042 break; … … 8045 8045 8046 8046 /* Line 1806 of yacc.c */ 8047 #line 22 26"parser.yy"8047 #line 2218 "parser.yy" 8048 8048 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8049 8049 break; … … 8052 8052 8053 8053 /* Line 1806 of yacc.c */ 8054 #line 22 31"parser.yy"8054 #line 2223 "parser.yy" 8055 8055 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8056 8056 break; … … 8059 8059 8060 8060 /* Line 1806 of yacc.c */ 8061 #line 22 33"parser.yy"8061 #line 2225 "parser.yy" 8062 8062 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8063 8063 break; … … 8066 8066 8067 8067 /* Line 1806 of yacc.c */ 8068 #line 22 35"parser.yy"8068 #line 2227 "parser.yy" 8069 8069 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8070 8070 break; … … 8073 8073 8074 8074 /* Line 1806 of yacc.c */ 8075 #line 22 37"parser.yy"8075 #line 2229 "parser.yy" 8076 8076 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8077 8077 break; … … 8080 8080 8081 8081 /* Line 1806 of yacc.c */ 8082 #line 22 42"parser.yy"8082 #line 2234 "parser.yy" 8083 8083 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8084 8084 break; … … 8087 8087 8088 8088 /* Line 1806 of yacc.c */ 8089 #line 22 44"parser.yy"8089 #line 2236 "parser.yy" 8090 8090 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8091 8091 break; … … 8094 8094 8095 8095 /* Line 1806 of yacc.c */ 8096 #line 2245 "parser.yy" 8097 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8098 break; 8099 8100 case 576: 8101 8102 /* Line 1806 of yacc.c */ 8103 #line 2248 "parser.yy" 8104 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8105 break; 8106 8107 case 577: 8108 8109 /* Line 1806 of yacc.c */ 8096 8110 #line 2253 "parser.yy" 8111 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8112 break; 8113 8114 case 578: 8115 8116 /* Line 1806 of yacc.c */ 8117 #line 2255 "parser.yy" 8118 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8119 break; 8120 8121 case 579: 8122 8123 /* Line 1806 of yacc.c */ 8124 #line 2257 "parser.yy" 8125 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8126 break; 8127 8128 case 580: 8129 8130 /* Line 1806 of yacc.c */ 8131 #line 2262 "parser.yy" 8132 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8133 break; 8134 8135 case 581: 8136 8137 /* Line 1806 of yacc.c */ 8138 #line 2264 "parser.yy" 8139 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8140 break; 8141 8142 case 582: 8143 8144 /* Line 1806 of yacc.c */ 8145 #line 2266 "parser.yy" 8146 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8147 break; 8148 8149 case 583: 8150 8151 /* Line 1806 of yacc.c */ 8152 #line 2271 "parser.yy" 8153 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8154 break; 8155 8156 case 584: 8157 8158 /* Line 1806 of yacc.c */ 8159 #line 2273 "parser.yy" 8160 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8161 break; 8162 8163 case 585: 8164 8165 /* Line 1806 of yacc.c */ 8166 #line 2275 "parser.yy" 8167 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8168 break; 8169 8170 case 589: 8171 8172 /* Line 1806 of yacc.c */ 8173 #line 2290 "parser.yy" 8174 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); } 8175 break; 8176 8177 case 590: 8178 8179 /* Line 1806 of yacc.c */ 8180 #line 2292 "parser.yy" 8181 { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); } 8182 break; 8183 8184 case 591: 8185 8186 /* Line 1806 of yacc.c */ 8187 #line 2294 "parser.yy" 8188 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8189 break; 8190 8191 case 592: 8192 8193 /* Line 1806 of yacc.c */ 8194 #line 2299 "parser.yy" 8195 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8196 break; 8197 8198 case 593: 8199 8200 /* Line 1806 of yacc.c */ 8201 #line 2301 "parser.yy" 8202 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8203 break; 8204 8205 case 594: 8206 8207 /* Line 1806 of yacc.c */ 8208 #line 2303 "parser.yy" 8209 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8210 break; 8211 8212 case 595: 8213 8214 /* Line 1806 of yacc.c */ 8215 #line 2308 "parser.yy" 8216 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8217 break; 8218 8219 case 596: 8220 8221 /* Line 1806 of yacc.c */ 8222 #line 2310 "parser.yy" 8223 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8224 break; 8225 8226 case 597: 8227 8228 /* Line 1806 of yacc.c */ 8229 #line 2312 "parser.yy" 8230 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8231 break; 8232 8233 case 598: 8234 8235 /* Line 1806 of yacc.c */ 8236 #line 2327 "parser.yy" 8097 8237 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8098 8238 break; 8099 8239 8100 case 576:8101 8102 /* Line 1806 of yacc.c */ 8103 #line 2 256"parser.yy"8240 case 600: 8241 8242 /* Line 1806 of yacc.c */ 8243 #line 2330 "parser.yy" 8104 8244 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8105 8245 break; 8106 8246 8107 case 577: 8108 8109 /* Line 1806 of yacc.c */ 8110 #line 2261 "parser.yy" 8247 case 601: 8248 8249 /* Line 1806 of yacc.c */ 8250 #line 2332 "parser.yy" 8251 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8252 break; 8253 8254 case 603: 8255 8256 /* Line 1806 of yacc.c */ 8257 #line 2338 "parser.yy" 8258 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8259 break; 8260 8261 case 604: 8262 8263 /* Line 1806 of yacc.c */ 8264 #line 2343 "parser.yy" 8265 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8266 break; 8267 8268 case 605: 8269 8270 /* Line 1806 of yacc.c */ 8271 #line 2345 "parser.yy" 8272 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8273 break; 8274 8275 case 606: 8276 8277 /* Line 1806 of yacc.c */ 8278 #line 2347 "parser.yy" 8279 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8280 break; 8281 8282 case 607: 8283 8284 /* Line 1806 of yacc.c */ 8285 #line 2352 "parser.yy" 8286 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8287 break; 8288 8289 case 608: 8290 8291 /* Line 1806 of yacc.c */ 8292 #line 2354 "parser.yy" 8293 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8294 break; 8295 8296 case 609: 8297 8298 /* Line 1806 of yacc.c */ 8299 #line 2356 "parser.yy" 8300 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8301 break; 8302 8303 case 610: 8304 8305 /* Line 1806 of yacc.c */ 8306 #line 2358 "parser.yy" 8307 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8308 break; 8309 8310 case 611: 8311 8312 /* Line 1806 of yacc.c */ 8313 #line 2363 "parser.yy" 8111 8314 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8112 8315 break; 8113 8316 8114 case 578:8115 8116 /* Line 1806 of yacc.c */ 8117 #line 2 263"parser.yy"8317 case 612: 8318 8319 /* Line 1806 of yacc.c */ 8320 #line 2365 "parser.yy" 8118 8321 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8119 8322 break; 8120 8323 8121 case 579:8122 8123 /* Line 1806 of yacc.c */ 8124 #line 2 265"parser.yy"8324 case 613: 8325 8326 /* Line 1806 of yacc.c */ 8327 #line 2367 "parser.yy" 8125 8328 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8126 8329 break; 8127 8330 8128 case 580: 8129 8130 /* Line 1806 of yacc.c */ 8131 #line 2270 "parser.yy" 8331 case 614: 8332 8333 /* Line 1806 of yacc.c */ 8334 #line 2377 "parser.yy" 8335 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8336 break; 8337 8338 case 616: 8339 8340 /* Line 1806 of yacc.c */ 8341 #line 2380 "parser.yy" 8342 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8343 break; 8344 8345 case 617: 8346 8347 /* Line 1806 of yacc.c */ 8348 #line 2382 "parser.yy" 8349 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8350 break; 8351 8352 case 618: 8353 8354 /* Line 1806 of yacc.c */ 8355 #line 2387 "parser.yy" 8132 8356 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8133 8357 break; 8134 8358 8135 case 581:8136 8137 /* Line 1806 of yacc.c */ 8138 #line 2 272"parser.yy"8359 case 619: 8360 8361 /* Line 1806 of yacc.c */ 8362 #line 2389 "parser.yy" 8139 8363 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8140 8364 break; 8141 8365 8142 case 582:8143 8144 /* Line 1806 of yacc.c */ 8145 #line 2 274"parser.yy"8366 case 620: 8367 8368 /* Line 1806 of yacc.c */ 8369 #line 2391 "parser.yy" 8146 8370 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8147 8371 break; 8148 8372 8149 case 583: 8150 8151 /* Line 1806 of yacc.c */ 8152 #line 2279 "parser.yy" 8373 case 621: 8374 8375 /* Line 1806 of yacc.c */ 8376 #line 2396 "parser.yy" 8377 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8378 break; 8379 8380 case 622: 8381 8382 /* Line 1806 of yacc.c */ 8383 #line 2398 "parser.yy" 8153 8384 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8154 8385 break; 8155 8386 8156 case 584:8157 8158 /* Line 1806 of yacc.c */ 8159 #line 2 281"parser.yy"8387 case 623: 8388 8389 /* Line 1806 of yacc.c */ 8390 #line 2400 "parser.yy" 8160 8391 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8161 8392 break; 8162 8393 8163 case 585:8164 8165 /* Line 1806 of yacc.c */ 8166 #line 2 283"parser.yy"8394 case 624: 8395 8396 /* Line 1806 of yacc.c */ 8397 #line 2402 "parser.yy" 8167 8398 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8168 8399 break; 8169 8400 8170 case 589:8171 8172 /* Line 1806 of yacc.c */ 8173 #line 2 298"parser.yy"8174 { (yyval.decl) = (yyvsp[(1) - ( 4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }8175 break; 8176 8177 case 590:8178 8179 /* Line 1806 of yacc.c */ 8180 #line 2 300"parser.yy"8181 { (yyval.decl) = (yyvsp[(2) - ( 6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }8182 break; 8183 8184 case 591:8185 8186 /* Line 1806 of yacc.c */ 8187 #line 2 302"parser.yy"8401 case 625: 8402 8403 /* Line 1806 of yacc.c */ 8404 #line 2407 "parser.yy" 8405 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8406 break; 8407 8408 case 626: 8409 8410 /* Line 1806 of yacc.c */ 8411 #line 2409 "parser.yy" 8412 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8413 break; 8414 8415 case 627: 8416 8417 /* Line 1806 of yacc.c */ 8418 #line 2411 "parser.yy" 8188 8419 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8189 8420 break; 8190 8421 8191 case 592: 8192 8193 /* Line 1806 of yacc.c */ 8194 #line 2307 "parser.yy" 8195 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8196 break; 8197 8198 case 593: 8199 8200 /* Line 1806 of yacc.c */ 8201 #line 2309 "parser.yy" 8202 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8203 break; 8204 8205 case 594: 8206 8207 /* Line 1806 of yacc.c */ 8208 #line 2311 "parser.yy" 8209 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8210 break; 8211 8212 case 595: 8213 8214 /* Line 1806 of yacc.c */ 8215 #line 2316 "parser.yy" 8216 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8217 break; 8218 8219 case 596: 8220 8221 /* Line 1806 of yacc.c */ 8222 #line 2318 "parser.yy" 8223 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8224 break; 8225 8226 case 597: 8227 8228 /* Line 1806 of yacc.c */ 8229 #line 2320 "parser.yy" 8230 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8231 break; 8232 8233 case 598: 8234 8235 /* Line 1806 of yacc.c */ 8236 #line 2335 "parser.yy" 8422 case 628: 8423 8424 /* Line 1806 of yacc.c */ 8425 #line 2442 "parser.yy" 8237 8426 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8238 8427 break; 8239 8428 8240 case 6 00:8241 8242 /* Line 1806 of yacc.c */ 8243 #line 2 338"parser.yy"8429 case 630: 8430 8431 /* Line 1806 of yacc.c */ 8432 #line 2445 "parser.yy" 8244 8433 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8245 8434 break; 8246 8435 8247 case 6 01:8248 8249 /* Line 1806 of yacc.c */ 8250 #line 2 340"parser.yy"8436 case 631: 8437 8438 /* Line 1806 of yacc.c */ 8439 #line 2447 "parser.yy" 8251 8440 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8252 8441 break; 8253 8442 8254 case 603:8255 8256 /* Line 1806 of yacc.c */8257 #line 2346 "parser.yy"8258 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8259 break;8260 8261 case 604:8262 8263 /* Line 1806 of yacc.c */8264 #line 2351 "parser.yy"8265 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }8266 break;8267 8268 case 605:8269 8270 /* Line 1806 of yacc.c */8271 #line 2353 "parser.yy"8272 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }8273 break;8274 8275 case 606:8276 8277 /* Line 1806 of yacc.c */8278 #line 2355 "parser.yy"8279 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8280 break;8281 8282 case 607:8283 8284 /* Line 1806 of yacc.c */8285 #line 2360 "parser.yy"8286 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }8287 break;8288 8289 case 608:8290 8291 /* Line 1806 of yacc.c */8292 #line 2362 "parser.yy"8293 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8294 break;8295 8296 case 609:8297 8298 /* Line 1806 of yacc.c */8299 #line 2364 "parser.yy"8300 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8301 break;8302 8303 case 610:8304 8305 /* Line 1806 of yacc.c */8306 #line 2366 "parser.yy"8307 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8308 break;8309 8310 case 611:8311 8312 /* Line 1806 of yacc.c */8313 #line 2371 "parser.yy"8314 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }8315 break;8316 8317 case 612:8318 8319 /* Line 1806 of yacc.c */8320 #line 2373 "parser.yy"8321 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }8322 break;8323 8324 case 613:8325 8326 /* Line 1806 of yacc.c */8327 #line 2375 "parser.yy"8328 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8329 break;8330 8331 case 614:8332 8333 /* Line 1806 of yacc.c */8334 #line 2385 "parser.yy"8335 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8336 break;8337 8338 case 616:8339 8340 /* Line 1806 of yacc.c */8341 #line 2388 "parser.yy"8342 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8343 break;8344 8345 case 617:8346 8347 /* Line 1806 of yacc.c */8348 #line 2390 "parser.yy"8349 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8350 break;8351 8352 case 618:8353 8354 /* Line 1806 of yacc.c */8355 #line 2395 "parser.yy"8356 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }8357 break;8358 8359 case 619:8360 8361 /* Line 1806 of yacc.c */8362 #line 2397 "parser.yy"8363 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }8364 break;8365 8366 case 620:8367 8368 /* Line 1806 of yacc.c */8369 #line 2399 "parser.yy"8370 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8371 break;8372 8373 case 621:8374 8375 /* Line 1806 of yacc.c */8376 #line 2404 "parser.yy"8377 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }8378 break;8379 8380 case 622:8381 8382 /* Line 1806 of yacc.c */8383 #line 2406 "parser.yy"8384 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8385 break;8386 8387 case 623:8388 8389 /* Line 1806 of yacc.c */8390 #line 2408 "parser.yy"8391 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8392 break;8393 8394 case 624:8395 8396 /* Line 1806 of yacc.c */8397 #line 2410 "parser.yy"8398 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8399 break;8400 8401 case 625:8402 8403 /* Line 1806 of yacc.c */8404 #line 2415 "parser.yy"8405 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }8406 break;8407 8408 case 626:8409 8410 /* Line 1806 of yacc.c */8411 #line 2417 "parser.yy"8412 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }8413 break;8414 8415 case 627:8416 8417 /* Line 1806 of yacc.c */8418 #line 2419 "parser.yy"8419 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8420 break;8421 8422 case 628:8423 8424 /* Line 1806 of yacc.c */8425 #line 2450 "parser.yy"8426 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8427 break;8428 8429 case 630:8430 8431 /* Line 1806 of yacc.c */8432 #line 2453 "parser.yy"8433 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8434 break;8435 8436 case 631:8437 8438 /* Line 1806 of yacc.c */8439 #line 2455 "parser.yy"8440 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8441 break;8442 8443 8443 case 632: 8444 8444 8445 8445 /* Line 1806 of yacc.c */ 8446 #line 24 60"parser.yy"8446 #line 2452 "parser.yy" 8447 8447 { 8448 8448 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8454 8454 8455 8455 /* Line 1806 of yacc.c */ 8456 #line 24 65"parser.yy"8456 #line 2457 "parser.yy" 8457 8457 { 8458 8458 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8464 8464 8465 8465 /* Line 1806 of yacc.c */ 8466 #line 24 73"parser.yy"8466 #line 2465 "parser.yy" 8467 8467 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8468 8468 break; … … 8471 8471 8472 8472 /* Line 1806 of yacc.c */ 8473 #line 24 75"parser.yy"8473 #line 2467 "parser.yy" 8474 8474 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8475 8475 break; … … 8478 8478 8479 8479 /* Line 1806 of yacc.c */ 8480 #line 24 77"parser.yy"8480 #line 2469 "parser.yy" 8481 8481 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8482 8482 break; … … 8485 8485 8486 8486 /* Line 1806 of yacc.c */ 8487 #line 24 82"parser.yy"8487 #line 2474 "parser.yy" 8488 8488 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8489 8489 break; … … 8492 8492 8493 8493 /* Line 1806 of yacc.c */ 8494 #line 24 84"parser.yy"8494 #line 2476 "parser.yy" 8495 8495 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8496 8496 break; … … 8499 8499 8500 8500 /* Line 1806 of yacc.c */ 8501 #line 248 9"parser.yy"8501 #line 2481 "parser.yy" 8502 8502 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8503 8503 break; … … 8506 8506 8507 8507 /* Line 1806 of yacc.c */ 8508 #line 24 91"parser.yy"8508 #line 2483 "parser.yy" 8509 8509 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8510 8510 break; … … 8513 8513 8514 8514 /* Line 1806 of yacc.c */ 8515 #line 2 506"parser.yy"8515 #line 2498 "parser.yy" 8516 8516 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8517 8517 break; … … 8520 8520 8521 8521 /* Line 1806 of yacc.c */ 8522 #line 250 8"parser.yy"8522 #line 2500 "parser.yy" 8523 8523 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8524 8524 break; … … 8527 8527 8528 8528 /* Line 1806 of yacc.c */ 8529 #line 2505 "parser.yy" 8530 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8531 break; 8532 8533 case 645: 8534 8535 /* Line 1806 of yacc.c */ 8536 #line 2507 "parser.yy" 8537 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8538 break; 8539 8540 case 646: 8541 8542 /* Line 1806 of yacc.c */ 8543 #line 2509 "parser.yy" 8544 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8545 break; 8546 8547 case 647: 8548 8549 /* Line 1806 of yacc.c */ 8550 #line 2511 "parser.yy" 8551 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8552 break; 8553 8554 case 648: 8555 8556 /* Line 1806 of yacc.c */ 8529 8557 #line 2513 "parser.yy" 8558 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8559 break; 8560 8561 case 650: 8562 8563 /* Line 1806 of yacc.c */ 8564 #line 2519 "parser.yy" 8565 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8566 break; 8567 8568 case 651: 8569 8570 /* Line 1806 of yacc.c */ 8571 #line 2521 "parser.yy" 8572 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8573 break; 8574 8575 case 652: 8576 8577 /* Line 1806 of yacc.c */ 8578 #line 2523 "parser.yy" 8579 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8580 break; 8581 8582 case 653: 8583 8584 /* Line 1806 of yacc.c */ 8585 #line 2528 "parser.yy" 8586 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); } 8587 break; 8588 8589 case 654: 8590 8591 /* Line 1806 of yacc.c */ 8592 #line 2530 "parser.yy" 8593 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8594 break; 8595 8596 case 655: 8597 8598 /* Line 1806 of yacc.c */ 8599 #line 2532 "parser.yy" 8600 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8601 break; 8602 8603 case 656: 8604 8605 /* Line 1806 of yacc.c */ 8606 #line 2538 "parser.yy" 8607 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8608 break; 8609 8610 case 657: 8611 8612 /* Line 1806 of yacc.c */ 8613 #line 2540 "parser.yy" 8614 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); } 8615 break; 8616 8617 case 659: 8618 8619 /* Line 1806 of yacc.c */ 8620 #line 2546 "parser.yy" 8621 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); } 8622 break; 8623 8624 case 660: 8625 8626 /* Line 1806 of yacc.c */ 8627 #line 2548 "parser.yy" 8628 { (yyval.decl) = DeclarationNode::newVarArray( 0 ); } 8629 break; 8630 8631 case 661: 8632 8633 /* Line 1806 of yacc.c */ 8634 #line 2550 "parser.yy" 8635 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); } 8636 break; 8637 8638 case 662: 8639 8640 /* Line 1806 of yacc.c */ 8641 #line 2552 "parser.yy" 8642 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); } 8643 break; 8644 8645 case 664: 8646 8647 /* Line 1806 of yacc.c */ 8648 #line 2567 "parser.yy" 8649 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8650 break; 8651 8652 case 665: 8653 8654 /* Line 1806 of yacc.c */ 8655 #line 2569 "parser.yy" 8656 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8657 break; 8658 8659 case 666: 8660 8661 /* Line 1806 of yacc.c */ 8662 #line 2574 "parser.yy" 8530 8663 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8531 8664 break; 8532 8665 8533 case 6 45:8534 8535 /* Line 1806 of yacc.c */ 8536 #line 25 15"parser.yy"8666 case 667: 8667 8668 /* Line 1806 of yacc.c */ 8669 #line 2576 "parser.yy" 8537 8670 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8538 8671 break; 8539 8672 8540 case 6 46:8541 8542 /* Line 1806 of yacc.c */ 8543 #line 25 17"parser.yy"8673 case 668: 8674 8675 /* Line 1806 of yacc.c */ 8676 #line 2578 "parser.yy" 8544 8677 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8545 8678 break; 8546 8679 8547 case 6 47:8548 8549 /* Line 1806 of yacc.c */ 8550 #line 25 19"parser.yy"8680 case 669: 8681 8682 /* Line 1806 of yacc.c */ 8683 #line 2580 "parser.yy" 8551 8684 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8552 8685 break; 8553 8686 8554 case 6 48:8555 8556 /* Line 1806 of yacc.c */ 8557 #line 25 21"parser.yy"8687 case 670: 8688 8689 /* Line 1806 of yacc.c */ 8690 #line 2582 "parser.yy" 8558 8691 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8559 8692 break; 8560 8693 8561 case 6 50:8562 8563 /* Line 1806 of yacc.c */ 8564 #line 25 27"parser.yy"8694 case 672: 8695 8696 /* Line 1806 of yacc.c */ 8697 #line 2588 "parser.yy" 8565 8698 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8566 8699 break; 8567 8700 8568 case 6 51:8569 8570 /* Line 1806 of yacc.c */ 8571 #line 25 29"parser.yy"8701 case 673: 8702 8703 /* Line 1806 of yacc.c */ 8704 #line 2590 "parser.yy" 8572 8705 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8573 8706 break; 8574 8707 8575 case 6 52:8576 8577 /* Line 1806 of yacc.c */ 8578 #line 25 31"parser.yy"8708 case 674: 8709 8710 /* Line 1806 of yacc.c */ 8711 #line 2592 "parser.yy" 8579 8712 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8580 8713 break; 8581 8714 8582 case 6 53:8583 8584 /* Line 1806 of yacc.c */ 8585 #line 25 36"parser.yy"8715 case 675: 8716 8717 /* Line 1806 of yacc.c */ 8718 #line 2597 "parser.yy" 8586 8719 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); } 8587 8720 break; 8588 8721 8589 case 6 54:8590 8591 /* Line 1806 of yacc.c */ 8592 #line 25 38"parser.yy"8722 case 676: 8723 8724 /* Line 1806 of yacc.c */ 8725 #line 2599 "parser.yy" 8593 8726 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8594 8727 break; 8595 8728 8596 case 6 55:8597 8598 /* Line 1806 of yacc.c */ 8599 #line 2 540"parser.yy"8729 case 677: 8730 8731 /* Line 1806 of yacc.c */ 8732 #line 2601 "parser.yy" 8600 8733 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8601 8734 break; 8602 8735 8603 case 656: 8604 8605 /* Line 1806 of yacc.c */ 8606 #line 2546 "parser.yy" 8736 case 679: 8737 8738 /* Line 1806 of yacc.c */ 8739 #line 2608 "parser.yy" 8740 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8741 break; 8742 8743 case 681: 8744 8745 /* Line 1806 of yacc.c */ 8746 #line 2619 "parser.yy" 8607 8747 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8608 8748 break; 8609 8749 8610 case 6 57:8611 8612 /* Line 1806 of yacc.c */ 8613 #line 2 548"parser.yy"8614 { (yyval.decl) = DeclarationNode::new Array( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }8615 break; 8616 8617 case 6 59:8618 8619 /* Line 1806 of yacc.c */ 8620 #line 2 554 "parser.yy"8621 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }8622 break; 8623 8624 case 6 60:8625 8626 /* Line 1806 of yacc.c */ 8627 #line 2 556"parser.yy"8628 { (yyval.decl) = DeclarationNode::new VarArray( 0); }8629 break; 8630 8631 case 6 61:8632 8633 /* Line 1806 of yacc.c */ 8634 #line 2 558"parser.yy"8635 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false )); }8636 break; 8637 8638 case 6 62:8639 8640 /* Line 1806 of yacc.c */ 8641 #line 2 560"parser.yy"8642 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 )); }8643 break; 8644 8645 case 6 64:8646 8647 /* Line 1806 of yacc.c */ 8648 #line 2 575 "parser.yy"8750 case 682: 8751 8752 /* Line 1806 of yacc.c */ 8753 #line 2622 "parser.yy" 8754 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 8755 break; 8756 8757 case 683: 8758 8759 /* Line 1806 of yacc.c */ 8760 #line 2624 "parser.yy" 8761 { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); } 8762 break; 8763 8764 case 684: 8765 8766 /* Line 1806 of yacc.c */ 8767 #line 2627 "parser.yy" 8768 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 8769 break; 8770 8771 case 685: 8772 8773 /* Line 1806 of yacc.c */ 8774 #line 2629 "parser.yy" 8775 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); } 8776 break; 8777 8778 case 686: 8779 8780 /* Line 1806 of yacc.c */ 8781 #line 2631 "parser.yy" 8782 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); } 8783 break; 8784 8785 case 688: 8786 8787 /* Line 1806 of yacc.c */ 8788 #line 2645 "parser.yy" 8649 8789 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8650 8790 break; 8651 8791 8652 case 6 65:8653 8654 /* Line 1806 of yacc.c */ 8655 #line 2 577 "parser.yy"8792 case 689: 8793 8794 /* Line 1806 of yacc.c */ 8795 #line 2647 "parser.yy" 8656 8796 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8657 8797 break; 8658 8798 8659 case 6 66:8660 8661 /* Line 1806 of yacc.c */ 8662 #line 2 582 "parser.yy"8799 case 690: 8800 8801 /* Line 1806 of yacc.c */ 8802 #line 2652 "parser.yy" 8663 8803 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8664 8804 break; 8665 8805 8666 case 6 67:8667 8668 /* Line 1806 of yacc.c */ 8669 #line 2 584 "parser.yy"8806 case 691: 8807 8808 /* Line 1806 of yacc.c */ 8809 #line 2654 "parser.yy" 8670 8810 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8671 8811 break; 8672 8812 8673 case 6 68:8674 8675 /* Line 1806 of yacc.c */ 8676 #line 2 586 "parser.yy"8813 case 692: 8814 8815 /* Line 1806 of yacc.c */ 8816 #line 2656 "parser.yy" 8677 8817 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8678 8818 break; 8679 8819 8680 case 6 69:8681 8682 /* Line 1806 of yacc.c */ 8683 #line 2 588 "parser.yy"8820 case 693: 8821 8822 /* Line 1806 of yacc.c */ 8823 #line 2658 "parser.yy" 8684 8824 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8685 8825 break; 8686 8826 8687 case 6 70:8688 8689 /* Line 1806 of yacc.c */ 8690 #line 2 590 "parser.yy"8827 case 694: 8828 8829 /* Line 1806 of yacc.c */ 8830 #line 2660 "parser.yy" 8691 8831 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8692 8832 break; 8693 8833 8694 case 6 72:8695 8696 /* Line 1806 of yacc.c */ 8697 #line 2 596 "parser.yy"8834 case 696: 8835 8836 /* Line 1806 of yacc.c */ 8837 #line 2666 "parser.yy" 8698 8838 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8699 8839 break; 8700 8840 8701 case 6 73:8702 8703 /* Line 1806 of yacc.c */ 8704 #line 2 598 "parser.yy"8841 case 697: 8842 8843 /* Line 1806 of yacc.c */ 8844 #line 2668 "parser.yy" 8705 8845 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8706 8846 break; 8707 8847 8708 case 6 74:8709 8710 /* Line 1806 of yacc.c */ 8711 #line 26 00 "parser.yy"8848 case 698: 8849 8850 /* Line 1806 of yacc.c */ 8851 #line 2670 "parser.yy" 8712 8852 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8713 8853 break; 8714 8854 8715 case 675: 8716 8717 /* Line 1806 of yacc.c */ 8718 #line 2605 "parser.yy" 8719 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); } 8720 break; 8721 8722 case 676: 8723 8724 /* Line 1806 of yacc.c */ 8725 #line 2607 "parser.yy" 8855 case 699: 8856 8857 /* Line 1806 of yacc.c */ 8858 #line 2675 "parser.yy" 8726 8859 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8727 8860 break; 8728 8861 8729 case 677:8730 8731 /* Line 1806 of yacc.c */ 8732 #line 26 09"parser.yy"8862 case 700: 8863 8864 /* Line 1806 of yacc.c */ 8865 #line 2677 "parser.yy" 8733 8866 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8734 8867 break; 8735 8868 8736 case 679:8737 8738 /* Line 1806 of yacc.c */8739 #line 2616 "parser.yy"8740 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }8741 break;8742 8743 case 681:8744 8745 /* Line 1806 of yacc.c */8746 #line 2627 "parser.yy"8747 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }8748 break;8749 8750 case 682:8751 8752 /* Line 1806 of yacc.c */8753 #line 2630 "parser.yy"8754 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }8755 break;8756 8757 case 683:8758 8759 /* Line 1806 of yacc.c */8760 #line 2632 "parser.yy"8761 { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }8762 break;8763 8764 case 684:8765 8766 /* Line 1806 of yacc.c */8767 #line 2635 "parser.yy"8768 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }8769 break;8770 8771 case 685:8772 8773 /* Line 1806 of yacc.c */8774 #line 2637 "parser.yy"8775 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }8776 break;8777 8778 case 686:8779 8780 /* Line 1806 of yacc.c */8781 #line 2639 "parser.yy"8782 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }8783 break;8784 8785 case 688:8786 8787 /* Line 1806 of yacc.c */8788 #line 2653 "parser.yy"8789 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8790 break;8791 8792 case 689:8793 8794 /* Line 1806 of yacc.c */8795 #line 2655 "parser.yy"8796 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8797 break;8798 8799 case 690:8800 8801 /* Line 1806 of yacc.c */8802 #line 2660 "parser.yy"8803 { (yyval.decl) = DeclarationNode::newPointer( 0 ); }8804 break;8805 8806 case 691:8807 8808 /* Line 1806 of yacc.c */8809 #line 2662 "parser.yy"8810 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }8811 break;8812 8813 case 692:8814 8815 /* Line 1806 of yacc.c */8816 #line 2664 "parser.yy"8817 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }8818 break;8819 8820 case 693:8821 8822 /* Line 1806 of yacc.c */8823 #line 2666 "parser.yy"8824 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }8825 break;8826 8827 case 694:8828 8829 /* Line 1806 of yacc.c */8830 #line 2668 "parser.yy"8831 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8832 break;8833 8834 case 696:8835 8836 /* Line 1806 of yacc.c */8837 #line 2674 "parser.yy"8838 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8839 break;8840 8841 case 697:8842 8843 /* Line 1806 of yacc.c */8844 #line 2676 "parser.yy"8845 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8846 break;8847 8848 case 698:8849 8850 /* Line 1806 of yacc.c */8851 #line 2678 "parser.yy"8852 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8853 break;8854 8855 case 699:8856 8857 /* Line 1806 of yacc.c */8858 #line 2683 "parser.yy"8859 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }8860 break;8861 8862 case 700:8863 8864 /* Line 1806 of yacc.c */8865 #line 2685 "parser.yy"8866 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8867 break;8868 8869 8869 case 703: 8870 8870 8871 8871 /* Line 1806 of yacc.c */ 8872 #line 26 95"parser.yy"8872 #line 2687 "parser.yy" 8873 8873 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 8874 8874 break; 8875 8875 8876 8876 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: 8877 8905 8878 8906 /* Line 1806 of yacc.c */ … … 8881 8909 break; 8882 8910 8883 case 7 07:8911 case 711: 8884 8912 8885 8913 /* Line 1806 of yacc.c */ … … 8888 8916 break; 8889 8917 8890 case 708: 8891 8892 /* Line 1806 of yacc.c */ 8893 #line 2709 "parser.yy" 8918 case 712: 8919 8920 /* Line 1806 of yacc.c */ 8921 #line 2714 "parser.yy" 8922 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8923 break; 8924 8925 case 713: 8926 8927 /* Line 1806 of yacc.c */ 8928 #line 2716 "parser.yy" 8929 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8930 break; 8931 8932 case 714: 8933 8934 /* Line 1806 of yacc.c */ 8935 #line 2718 "parser.yy" 8936 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8937 break; 8938 8939 case 715: 8940 8941 /* Line 1806 of yacc.c */ 8942 #line 2720 "parser.yy" 8943 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 8944 break; 8945 8946 case 716: 8947 8948 /* Line 1806 of yacc.c */ 8949 #line 2722 "parser.yy" 8950 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8951 break; 8952 8953 case 717: 8954 8955 /* Line 1806 of yacc.c */ 8956 #line 2724 "parser.yy" 8957 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8958 break; 8959 8960 case 718: 8961 8962 /* Line 1806 of yacc.c */ 8963 #line 2726 "parser.yy" 8964 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8965 break; 8966 8967 case 719: 8968 8969 /* Line 1806 of yacc.c */ 8970 #line 2728 "parser.yy" 8971 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8972 break; 8973 8974 case 720: 8975 8976 /* Line 1806 of yacc.c */ 8977 #line 2730 "parser.yy" 8978 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 8979 break; 8980 8981 case 721: 8982 8983 /* Line 1806 of yacc.c */ 8984 #line 2732 "parser.yy" 8985 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8986 break; 8987 8988 case 722: 8989 8990 /* Line 1806 of yacc.c */ 8991 #line 2737 "parser.yy" 8992 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 8993 break; 8994 8995 case 723: 8996 8997 /* Line 1806 of yacc.c */ 8998 #line 2739 "parser.yy" 8999 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 9000 break; 9001 9002 case 724: 9003 9004 /* Line 1806 of yacc.c */ 9005 #line 2744 "parser.yy" 9006 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); } 9007 break; 9008 9009 case 725: 9010 9011 /* Line 1806 of yacc.c */ 9012 #line 2746 "parser.yy" 9013 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); } 9014 break; 9015 9016 case 727: 9017 9018 /* Line 1806 of yacc.c */ 9019 #line 2773 "parser.yy" 9020 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 9021 break; 9022 9023 case 731: 9024 9025 /* Line 1806 of yacc.c */ 9026 #line 2784 "parser.yy" 8894 9027 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8895 9028 break; 8896 9029 8897 case 7 09:8898 8899 /* Line 1806 of yacc.c */ 8900 #line 27 11"parser.yy"9030 case 732: 9031 9032 /* Line 1806 of yacc.c */ 9033 #line 2786 "parser.yy" 8901 9034 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8902 9035 break; 8903 9036 8904 case 7 10:8905 8906 /* Line 1806 of yacc.c */ 8907 #line 27 13"parser.yy"9037 case 733: 9038 9039 /* Line 1806 of yacc.c */ 9040 #line 2788 "parser.yy" 8908 9041 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8909 9042 break; 8910 9043 8911 case 7 11:8912 8913 /* Line 1806 of yacc.c */ 8914 #line 27 15"parser.yy"9044 case 734: 9045 9046 /* Line 1806 of yacc.c */ 9047 #line 2790 "parser.yy" 8915 9048 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8916 9049 break; 8917 9050 8918 case 712: 8919 8920 /* Line 1806 of yacc.c */ 8921 #line 2722 "parser.yy" 8922 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8923 break; 8924 8925 case 713: 8926 8927 /* Line 1806 of yacc.c */ 8928 #line 2724 "parser.yy" 8929 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8930 break; 8931 8932 case 714: 8933 8934 /* Line 1806 of yacc.c */ 8935 #line 2726 "parser.yy" 8936 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8937 break; 8938 8939 case 715: 8940 8941 /* Line 1806 of yacc.c */ 8942 #line 2728 "parser.yy" 8943 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 8944 break; 8945 8946 case 716: 8947 8948 /* Line 1806 of yacc.c */ 8949 #line 2730 "parser.yy" 8950 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8951 break; 8952 8953 case 717: 8954 8955 /* Line 1806 of yacc.c */ 8956 #line 2732 "parser.yy" 8957 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8958 break; 8959 8960 case 718: 8961 8962 /* Line 1806 of yacc.c */ 8963 #line 2734 "parser.yy" 8964 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8965 break; 8966 8967 case 719: 8968 8969 /* Line 1806 of yacc.c */ 8970 #line 2736 "parser.yy" 8971 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8972 break; 8973 8974 case 720: 8975 8976 /* Line 1806 of yacc.c */ 8977 #line 2738 "parser.yy" 8978 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 8979 break; 8980 8981 case 721: 8982 8983 /* Line 1806 of yacc.c */ 8984 #line 2740 "parser.yy" 8985 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8986 break; 8987 8988 case 722: 8989 8990 /* Line 1806 of yacc.c */ 8991 #line 2745 "parser.yy" 8992 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 8993 break; 8994 8995 case 723: 8996 8997 /* Line 1806 of yacc.c */ 8998 #line 2747 "parser.yy" 8999 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 9000 break; 9001 9002 case 724: 9003 9004 /* Line 1806 of yacc.c */ 9005 #line 2752 "parser.yy" 9006 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); } 9007 break; 9008 9009 case 725: 9010 9011 /* Line 1806 of yacc.c */ 9012 #line 2754 "parser.yy" 9013 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); } 9014 break; 9015 9016 case 727: 9017 9018 /* Line 1806 of yacc.c */ 9019 #line 2781 "parser.yy" 9020 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 9021 break; 9022 9023 case 731: 9051 case 735: 9024 9052 9025 9053 /* Line 1806 of yacc.c */ … … 9028 9056 break; 9029 9057 9030 case 73 2:9058 case 736: 9031 9059 9032 9060 /* Line 1806 of yacc.c */ … … 9035 9063 break; 9036 9064 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 9065 9065 case 737: 9066 9066 9067 9067 /* Line 1806 of yacc.c */ 9068 #line 2801 "parser.yy" 9069 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9070 break; 9071 9072 case 738: 9073 9074 /* Line 1806 of yacc.c */ 9075 #line 2803 "parser.yy" 9076 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9077 break; 9078 9079 case 739: 9080 9081 /* Line 1806 of yacc.c */ 9082 #line 2805 "parser.yy" 9083 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9084 break; 9085 9086 case 740: 9087 9088 /* Line 1806 of yacc.c */ 9089 #line 2807 "parser.yy" 9090 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9091 break; 9092 9093 case 741: 9094 9095 /* Line 1806 of yacc.c */ 9068 9096 #line 2809 "parser.yy" 9069 { (yyval.decl) = (yyvsp[( 3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }9070 break; 9071 9072 case 7 38:9097 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9098 break; 9099 9100 case 742: 9073 9101 9074 9102 /* Line 1806 of yacc.c */ 9075 9103 #line 2811 "parser.yy" 9076 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }9077 break;9078 9079 case 739:9080 9081 /* Line 1806 of yacc.c */9082 #line 2813 "parser.yy"9083 9104 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9084 9105 break; 9085 9106 9086 case 740:9087 9088 /* Line 1806 of yacc.c */9089 #line 2815 "parser.yy"9090 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }9091 break;9092 9093 case 741:9094 9095 /* Line 1806 of yacc.c */9096 #line 2817 "parser.yy"9097 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }9098 break;9099 9100 case 742:9101 9102 /* Line 1806 of yacc.c */9103 #line 2819 "parser.yy"9104 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }9105 break;9106 9107 9107 case 743: 9108 9108 9109 9109 /* Line 1806 of yacc.c */ 9110 #line 28 24"parser.yy"9110 #line 2816 "parser.yy" 9111 9111 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 9112 9112 break; … … 9115 9115 9116 9116 /* Line 1806 of yacc.c */ 9117 #line 282 9"parser.yy"9117 #line 2821 "parser.yy" 9118 9118 { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); } 9119 9119 break; … … 9122 9122 9123 9123 /* Line 1806 of yacc.c */ 9124 #line 28 31"parser.yy"9124 #line 2823 "parser.yy" 9125 9125 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); } 9126 9126 break; … … 9129 9129 9130 9130 /* Line 1806 of yacc.c */ 9131 #line 28 33"parser.yy"9131 #line 2825 "parser.yy" 9132 9132 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); } 9133 9133 break; … … 9136 9136 9137 9137 /* Line 1806 of yacc.c */ 9138 #line 28 57"parser.yy"9138 #line 2849 "parser.yy" 9139 9139 { (yyval.en) = 0; } 9140 9140 break; … … 9143 9143 9144 9144 /* Line 1806 of yacc.c */ 9145 #line 285 9"parser.yy"9145 #line 2851 "parser.yy" 9146 9146 { (yyval.en) = (yyvsp[(2) - (2)].en); } 9147 9147 break; … … 9381 9381 9382 9382 /* Line 2067 of yacc.c */ 9383 #line 28 62"parser.yy"9383 #line 2854 "parser.yy" 9384 9384 9385 9385 // ----end of grammar---- -
src/Parser/parser.yy
r6f7424a r8cc5cb0 10 10 // Created On : Sat Sep 1 20:22:55 2001 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Aug 10 23:03:05201613 // Update Count : 18 4612 // Last Modified On : Thu Aug 11 18:02:57 2016 13 // Update Count : 1861 14 14 // 15 15 … … 665 665 Token fn; 666 666 fn.str = new std::string( "^?{}" ); // location undefined 667 $$ = new StatementNode ( StatementNode::Exp, new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( $2 )->set_link( $4 ) ) ), 0);667 $$ = new StatementNode2( build_expr( new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( $2 )->set_link( $4 ) ) ) ) ); 668 668 } 669 669 ; … … 717 717 expression_statement: 718 718 comma_expression_opt ';' 719 { $$ = new StatementNode ( StatementNode::Exp, $1, 0); }719 { $$ = new StatementNode2( build_expr( $1 ) ); } 720 720 ; 721 721 … … 758 758 759 759 case_value_list: // CFA 760 case_value { $$ = new StatementNode( StatementNode::Case, $1, 0 ); } 760 //case_value { $$ = new StatementNode( StatementNode::Case, $1, 0 ); } 761 case_value { $$ = new StatementNode2( build_case( $1 ) ); } 761 762 // convert case list, e.g., "case 1, 3, 5:" into "case 1: case 3: case 5" 762 | case_value_list ',' case_value { $$ = (StatementNode *)($1->set_link( new StatementNode ( StatementNode::Case, $3, 0) ) ); }763 | case_value_list ',' case_value { $$ = (StatementNode *)($1->set_link( new StatementNode2( build_case( $3 ) ) ) ); } 763 764 ; 764 765 765 766 case_label: // CFA 766 767 CASE case_value_list ':' { $$ = $2; } 767 | DEFAULT ':' { $$ = new StatementNode ( StatementNode::Default); }768 | DEFAULT ':' { $$ = new StatementNode2( build_default() ); } 768 769 // A semantic check is required to ensure only one default clause per switch/choose statement. 769 770 ; … … 810 811 fall_through_opt: // CFA 811 812 // empty 812 { $$ = new StatementNode ( StatementNode::Break ); }// insert implicit break813 { $$ = new StatementNode2( build_branch( "", BranchStmt::Break ) ); } // insert implicit break 813 814 | fall_through 814 815 ; … … 839 840 jump_statement: 840 841 GOTO IDENTIFIER ';' 841 //{ $$ = new StatementNode( StatementNode::Goto, $2 ); }842 842 { $$ = new StatementNode2( build_branch( *$2, BranchStmt::Goto ) ); } 843 843 | GOTO '*' comma_expression ';' // GCC, computed goto 844 844 // The syntax for the GCC computed goto violates normal expression precedence, e.g., goto *i+3; => goto *(i+3); 845 845 // whereas normal operator precedence yields goto (*i)+3; 846 { $$ = new StatementNode ( StatementNode::Goto, $3); }846 { $$ = new StatementNode2( build_computedgoto( $3 ) ); } 847 847 | CONTINUE ';' 848 848 // A semantic check is required to ensure this statement appears only in the body of an iteration statement. 849 //{ $$ = new StatementNode( StatementNode::Continue ); }850 849 { $$ = new StatementNode2( build_branch( "", BranchStmt::Continue ) ); } 851 850 | CONTINUE IDENTIFIER ';' // CFA, multi-level continue 852 851 // A semantic check is required to ensure this statement appears only in the body of an iteration statement, and 853 852 // the target of the transfer appears only at the start of an iteration statement. 854 //{ $$ = new StatementNode( StatementNode::Continue, $2 ); }855 853 { $$ = new StatementNode2( build_branch( *$2, BranchStmt::Continue ) ); delete $2; } 856 854 | BREAK ';' 857 855 // A semantic check is required to ensure this statement appears only in the body of an iteration statement. 858 //{ $$ = new StatementNode( StatementNode::Break ); }859 856 { $$ = new StatementNode2( build_branch( "", BranchStmt::Break ) ); } 860 857 | BREAK IDENTIFIER ';' // CFA, multi-level exit 861 858 // A semantic check is required to ensure this statement appears only in the body of an iteration statement, and 862 859 // the target of the transfer appears only at the start of an iteration statement. 863 //{ $$ = new StatementNode( StatementNode::Break, $2 ); }864 860 { $$ = new StatementNode2( build_branch( *$2, BranchStmt::Break ) ); delete $2; } 865 861 | RETURN comma_expression_opt ';' 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 ); } 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 ) ); } 877 869 ; 878 870
Note: See TracChangeset
for help on using the changeset viewer.