Changeset 51e076e
- Timestamp:
- Aug 5, 2016, 8:27:33 AM (7 years ago)
- Branches:
- aaron-thesis, arm-eh, 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:
- 9706554, dae881f
- Parents:
- b87e2b6
- Location:
- src/Parser
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/ExpressionNode.cc
rb87e2b6 r51e076e 10 10 // Created On : Sat May 16 13:17:07 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Aug 4 16:11:23 201613 // Update Count : 3 3812 // Last Modified On : Fri Aug 5 07:56:23 2016 13 // Update Count : 375 14 14 // 15 15 … … 365 365 } 366 366 367 Expression *build_and_or( ExpressionNode *expr_node1, ExpressionNode *expr_node2, bool kind ) { 368 return new LogicalExpr( notZeroExpr( maybeBuild<Expression>(expr_node1) ), notZeroExpr( maybeBuild<Expression>(expr_node2) ), kind ); 369 } 370 371 Expression *build_opr1( OperatorNode::Type op, ExpressionNode *expr_node ) { 372 std::list<Expression *> args; 373 args.push_back( new AddressExpr( maybeBuild<Expression>(expr_node) ) ); 374 return new UntypedExpr( new NameExpr( opName[ op ] ), args ); 375 } 376 Expression *build_opr2( OperatorNode::Type op, ExpressionNode *expr_node1, ExpressionNode *expr_node2 ) { 377 std::list<Expression *> args; 378 args.push_back( maybeBuild<Expression>(expr_node1) ); 379 args.push_back( maybeBuild<Expression>(expr_node2) ); 380 return new UntypedExpr( new NameExpr( opName[ op ] ), args ); 381 } 382 383 Expression *build_cond( ExpressionNode *expr_node1, ExpressionNode *expr_node2, ExpressionNode *expr_node3 ) { 384 return new ConditionalExpr( notZeroExpr( maybeBuild<Expression>(expr_node1) ), maybeBuild<Expression>(expr_node2), maybeBuild<Expression>(expr_node3) ); 385 } 386 387 Expression *build_comma( ExpressionNode *expr_node1, ExpressionNode *expr_node2 ) { 388 return new CommaExpr( maybeBuild<Expression>(expr_node1), maybeBuild<Expression>(expr_node2) ); 389 } 390 367 391 CompositeExprNode2::CompositeExprNode2( Expression *expr ) : expr( expr ) {} 368 392 CompositeExprNode2::CompositeExprNode2( const CompositeExprNode2 &other ) : expr( other.expr->clone() ) {} … … 382 406 } // if 383 407 384 switch ( op->get_type()) { 385 case OperatorNode::Incr: 386 case OperatorNode::Decr: 387 case OperatorNode::IncrPost: 388 case OperatorNode::DecrPost: 408 switch ( op->get_type() ) { 389 409 case OperatorNode::Assign: 390 410 case OperatorNode::MulAssn: … … 398 418 case OperatorNode::ERAssn: 399 419 case OperatorNode::OrAssn: 400 // the rewrite rules for these expressions specify that the first argument has its address taken401 420 assert( ! args.empty() ); 402 421 args.front() = new AddressExpr( args.front() ); 403 break;404 default: // do nothing405 ;406 } // switch407 408 switch ( op->get_type() ) {409 case OperatorNode::Incr:410 case OperatorNode::Decr:411 case OperatorNode::IncrPost:412 case OperatorNode::DecrPost:413 case OperatorNode::Assign:414 case OperatorNode::MulAssn:415 case OperatorNode::DivAssn:416 case OperatorNode::ModAssn:417 case OperatorNode::PlusAssn:418 case OperatorNode::MinusAssn:419 case OperatorNode::LSAssn:420 case OperatorNode::RSAssn:421 case OperatorNode::AndAssn:422 case OperatorNode::ERAssn:423 case OperatorNode::OrAssn:424 case OperatorNode::Plus:425 case OperatorNode::Minus:426 case OperatorNode::Mul:427 case OperatorNode::Div:428 case OperatorNode::Mod:429 case OperatorNode::BitOr:430 case OperatorNode::BitAnd:431 case OperatorNode::Xor:432 case OperatorNode::LShift:433 case OperatorNode::RShift:434 case OperatorNode::LThan:435 case OperatorNode::GThan:436 case OperatorNode::LEThan:437 case OperatorNode::GEThan:438 case OperatorNode::Eq:439 case OperatorNode::Neq:440 case OperatorNode::Index:441 case OperatorNode::Range:442 422 case OperatorNode::UnPlus: 443 423 case OperatorNode::UnMinus: … … 447 427 case OperatorNode::LabelAddress: 448 428 return new UntypedExpr( new NameExpr( opName[ op->get_type() ] ), args ); 429 449 430 case OperatorNode::Attr: 450 431 { 451 VarRefNode *var = dynamic_cast<VarRefNode *>( get_args() );432 VarRefNode *var = dynamic_cast<VarRefNode *>( get_args() ); 452 433 assert( var ); 453 434 if ( ! get_args()->get_link() ) { 454 435 return new AttrExpr( maybeBuild<Expression>(var), ( Expression*)0); 455 } else if ( TypeValueNode * arg = dynamic_cast<TypeValueNode *>( get_args()->get_link() ) ) {456 return new AttrExpr( maybeBuild<Expression>(var), arg->get_decl()->buildType() );436 } else if ( TypeValueNode * arg = dynamic_cast<TypeValueNode *>( get_args()->get_link() ) ) { 437 return new AttrExpr( maybeBuild<Expression>(var), arg->get_decl()->buildType() ); 457 438 } else { 458 return new AttrExpr( maybeBuild<Expression>(var), args.back() );439 return new AttrExpr( maybeBuild<Expression>(var), args.back() ); 459 440 } // if 460 441 } 461 case OperatorNode::Or:462 case OperatorNode::And:463 assert( args.size() == 2);464 return new LogicalExpr( notZeroExpr( args.front() ), notZeroExpr( args.back() ), ( op->get_type() == OperatorNode::And ) );465 442 case OperatorNode::Cond: 466 443 { … … 474 451 case OperatorNode::NCond: 475 452 throw UnimplementedError( "GNU 2-argument conditional expression" ); 476 case OperatorNode::Comma:477 {478 assert( args.size() == 2);479 std::list< Expression * >::const_iterator i = args.begin();480 Expression *ret = *i++;481 while ( i != args.end() ) {482 ret = new CommaExpr( ret, *i++ );483 }484 return ret;485 }486 453 // Tuples 487 454 case OperatorNode::TupleC: … … 492 459 } 493 460 default: 494 // shouldn't happen 495 assert( false ); 461 assert( ((void)"CompositeExprNode::build", false) ); 496 462 return 0; 497 463 } // switch -
src/Parser/ParseNode.h
rb87e2b6 r51e076e 10 10 // Created On : Sat May 16 13:28:16 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Aug 4 16:34:16201613 // Update Count : 2 7712 // Last Modified On : Fri Aug 5 07:49:32 2016 13 // Update Count : 288 14 14 // 15 15 … … 232 232 Expression *build_alignOf( ExpressionNode *expr_node ); 233 233 Expression *build_offsetOf( TypeValueNode * arg, VarRefNode *member ); 234 Expression *build_and( ExpressionNode *expr_node1, ExpressionNode *expr_node2 ); 235 Expression *build_and_or( ExpressionNode *expr_node1, ExpressionNode *expr_node2, bool kind ); 236 Expression *build_opr1( OperatorNode::Type op, ExpressionNode *expr_node ); 237 Expression *build_opr2( OperatorNode::Type op, ExpressionNode *expr_node1, ExpressionNode *expr_node2 ); 238 Expression *build_cond( ExpressionNode *expr_node1, ExpressionNode *expr_node2, ExpressionNode *expr_node3 ); 239 Expression *build_comma( ExpressionNode *expr_node1, ExpressionNode *expr_node2 ); 240 241 class CompositeExprNode2 : public ExpressionNode { 242 public: 243 CompositeExprNode2( Expression *expr ); 244 CompositeExprNode2( const CompositeExprNode2 &other ); 245 virtual ~CompositeExprNode2(); 246 247 virtual CompositeExprNode2 *clone() const { return new CompositeExprNode2( *this ); } 248 virtual Expression *build() const { return expr->clone(); } 249 250 virtual void print( std::ostream &, int indent = 0) const; 251 virtual void printOneLine( std::ostream &, int indent = 0) const; 252 private: 253 Expression *expr; 254 }; 234 255 235 256 class CompositeExprNode : public ExpressionNode { … … 258 279 ExpressionNode *function; 259 280 ExpressionNode *arguments; 260 };261 262 class CompositeExprNode2 : public ExpressionNode {263 public:264 CompositeExprNode2( Expression *expr );265 CompositeExprNode2( const CompositeExprNode2 &other );266 virtual ~CompositeExprNode2();267 268 virtual CompositeExprNode2 *clone() const { return new CompositeExprNode2( *this ); }269 virtual Expression *build() const { return expr->clone(); }270 271 virtual void print( std::ostream &, int indent = 0) const;272 virtual void printOneLine( std::ostream &, int indent = 0) const;273 private:274 Expression *expr;275 281 }; 276 282 -
src/Parser/parser.cc
rb87e2b6 r51e076e 1022 1022 371, 373, 375, 383, 384, 390, 391, 392, 397, 399, 1023 1023 404, 405, 409, 413, 415, 417, 419, 424, 427, 429, 1024 431, 43 3, 438, 440, 442, 444, 446, 448, 450, 452,1025 45 4, 456, 458, 465, 466, 468, 472, 473, 474, 475,1026 4 79, 480, 482, 487, 488, 490, 492, 497, 498, 500,1027 50 5, 506, 508, 513, 514, 516, 518, 520, 525, 526,1028 52 8, 533, 534, 539, 540, 545, 546, 551, 552, 557,1029 55 8, 563, 564, 566, 568, 573, 578, 579, 581, 583,1030 5 89, 590, 596, 598, 600, 602, 607, 608, 613, 614,1031 61 5, 616, 617, 618, 619, 620, 621, 622, 626, 627,1032 63 3, 634, 640, 641, 642, 643, 644, 645, 646, 647,1033 6 48, 658, 665, 667, 677, 678, 683, 685, 691, 693,1034 697, 698, 703, 708, 711, 713, 715, 725, 727, 738,1035 7 39, 741, 745, 747, 751, 752, 757, 758, 762, 767,1036 7 68, 772, 774, 780, 781, 785, 787, 789, 791, 797,1037 798, 802, 804, 809, 811, 813, 818, 820, 825, 827,1038 83 1, 834, 838, 841, 845, 847, 851, 853, 860, 862,1039 86 4, 873, 875, 877, 879, 881, 886, 888, 890, 892,1040 897, 910, 911, 916, 918, 923, 927, 929, 931, 933,1041 93 5, 941, 942, 948, 949, 953, 954, 959, 961, 967,1042 9 68, 970, 975, 977, 984, 986, 990, 991, 996, 998,1043 100 2, 1003, 1007, 1009, 1013, 1014, 1018, 1019, 1023, 1024,1044 10 39, 1040, 1041, 1042, 1043, 1047, 1052, 1059, 1069, 1074,1045 10 79, 1087, 1092, 1097, 1102, 1107, 1115, 1137, 1142, 1149,1046 115 1, 1158, 1163, 1168, 1179, 1184, 1189, 1194, 1199, 1208,1047 121 3, 1221, 1222, 1223, 1224, 1230, 1235, 1243, 1244, 1245,1048 124 6, 1250, 1251, 1252, 1253, 1258, 1259, 1268, 1269, 1274,1049 127 5, 1280, 1282, 1284, 1286, 1288, 1291, 1290, 1302, 1303,1050 130 5, 1315, 1316, 1321, 1325, 1327, 1329, 1331, 1333, 1335,1051 13 37, 1339, 1344, 1346, 1348, 1350, 1352, 1354, 1356, 1358,1052 136 0, 1362, 1364, 1366, 1368, 1374, 1375, 1377, 1379, 1381,1053 138 6, 1387, 1393, 1394, 1396, 1398, 1403, 1405, 1407, 1409,1054 141 4, 1415, 1417, 1419, 1424, 1425, 1427, 1432, 1433, 1435,1055 14 37, 1442, 1444, 1446, 1451, 1452, 1456, 1458, 1464, 1463,1056 14 67, 1469, 1474, 1476, 1482, 1483, 1488, 1489, 1491, 1492,1057 150 1, 1502, 1504, 1506, 1511, 1513, 1519, 1520, 1522, 1525,1058 15 28, 1533, 1534, 1539, 1544, 1548, 1550, 1556, 1555, 1562,1059 156 4, 1570, 1571, 1579, 1580, 1584, 1585, 1586, 1588, 1590,1060 1 597, 1598, 1600, 1602, 1607, 1608, 1614, 1615, 1619, 1620,1061 162 5, 1626, 1627, 1629, 1637, 1638, 1640, 1643, 1645, 1649,1062 165 0, 1651, 1653, 1655, 1659, 1664, 1672, 1673, 1682, 1684,1063 16 89, 1690, 1691, 1695, 1696, 1697, 1701, 1702, 1703, 1707,1064 17 08, 1709, 1714, 1715, 1716, 1717, 1723, 1724, 1726, 1731,1065 173 2, 1737, 1738, 1739, 1740, 1741, 1756, 1757, 1762, 1763,1066 177 1, 1773, 1775, 1778, 1780, 1782, 1805, 1806, 1808, 1810,1067 181 5, 1816, 1818, 1823, 1828, 1829, 1835, 1834, 1838, 1842,1068 184 4, 1846, 1852, 1853, 1858, 1863, 1865, 1870, 1872, 1873,1069 187 5, 1880, 1882, 1884, 1889, 1891, 1896, 1901, 1909, 1915,1070 191 4, 1928, 1929, 1934, 1935, 1939, 1944, 1949, 1957, 1962,1071 197 3, 1974, 1985, 1986, 1992, 1993, 1997, 1998, 1999, 2002,1072 200 1, 2012, 2021, 2027, 2033, 2042, 2048, 2054, 2060, 2066,1073 207 4, 2080, 2088, 2094, 2103, 2104, 2105, 2109, 2113, 2115,1074 212 0, 2121, 2125, 2126, 2131, 2137, 2138, 2141, 2143, 2144,1075 21 48, 2149, 2150, 2151, 2185, 2187, 2188, 2190, 2195, 2200,1076 220 5, 2207, 2209, 2214, 2216, 2218, 2220, 2225, 2227, 2236,1077 22 38, 2239, 2244, 2246, 2248, 2253, 2255, 2257, 2262, 2264,1078 226 6, 2275, 2276, 2277, 2281, 2283, 2285, 2290, 2292, 2294,1079 2 299, 2301, 2303, 2318, 2320, 2321, 2323, 2328, 2329, 2334,1080 233 6, 2338, 2343, 2345, 2347, 2349, 2354, 2356, 2358, 2368,1081 237 0, 2371, 2373, 2378, 2380, 2382, 2387, 2389, 2391, 2393,1082 2 398, 2400, 2402, 2433, 2435, 2436, 2438, 2443, 2448, 2456,1083 24 58, 2460, 2465, 2467, 2472, 2474, 2488, 2489, 2491, 2496,1084 2 498, 2500, 2502, 2504, 2509, 2510, 2512, 2514, 2519, 2521,1085 252 3, 2529, 2531, 2533, 2537, 2539, 2541, 2543, 2557, 2558,1086 256 0, 2565, 2567, 2569, 2571, 2573, 2578, 2579, 2581, 2583,1087 25 88, 2590, 2592, 2598, 2599, 2601, 2610, 2613, 2615, 2618,1088 262 0, 2622, 2635, 2636, 2638, 2643, 2645, 2647, 2649, 2651,1089 265 6, 2657, 2659, 2661, 2666, 2668, 2676, 2677, 2678, 2683,1090 268 4, 2688, 2690, 2692, 2694, 2696, 2698, 2705, 2707, 2709,1091 271 1, 2713, 2715, 2717, 2719, 2721, 2723, 2728, 2730, 2732,1092 27 37, 2763, 2764, 2766, 2770, 2771, 2775, 2777, 2779, 2781,1093 278 3, 2785, 2792, 2794, 2796, 2798, 2800, 2802, 2807, 2812,1094 281 4, 2816, 2834, 2836, 2841, 28421024 431, 436, 439, 441, 443, 445, 447, 449, 451, 453, 1025 455, 457, 459, 466, 467, 469, 473, 474, 475, 476, 1026 480, 481, 483, 488, 489, 491, 493, 498, 499, 501, 1027 506, 507, 509, 514, 515, 517, 519, 521, 526, 527, 1028 529, 534, 535, 540, 541, 546, 547, 552, 553, 558, 1029 559, 564, 565, 568, 570, 575, 580, 581, 583, 585, 1030 591, 592, 598, 600, 602, 604, 609, 610, 615, 616, 1031 617, 618, 619, 620, 621, 622, 623, 624, 628, 629, 1032 636, 637, 643, 644, 645, 646, 647, 648, 649, 650, 1033 651, 661, 668, 670, 680, 681, 686, 688, 694, 696, 1034 700, 701, 706, 711, 714, 716, 718, 728, 730, 741, 1035 742, 744, 748, 750, 754, 755, 760, 761, 765, 770, 1036 771, 775, 777, 783, 784, 788, 790, 792, 794, 800, 1037 801, 805, 807, 812, 814, 816, 821, 823, 828, 830, 1038 834, 837, 841, 844, 848, 850, 854, 856, 863, 865, 1039 867, 876, 878, 880, 882, 884, 889, 891, 893, 895, 1040 900, 913, 914, 919, 921, 926, 930, 932, 934, 936, 1041 938, 944, 945, 951, 952, 956, 957, 962, 964, 970, 1042 971, 973, 978, 980, 987, 989, 993, 994, 999, 1001, 1043 1005, 1006, 1010, 1012, 1016, 1017, 1021, 1022, 1026, 1027, 1044 1042, 1043, 1044, 1045, 1046, 1050, 1055, 1062, 1072, 1077, 1045 1082, 1090, 1095, 1100, 1105, 1110, 1118, 1140, 1145, 1152, 1046 1154, 1161, 1166, 1171, 1182, 1187, 1192, 1197, 1202, 1211, 1047 1216, 1224, 1225, 1226, 1227, 1233, 1238, 1246, 1247, 1248, 1048 1249, 1253, 1254, 1255, 1256, 1261, 1262, 1271, 1272, 1277, 1049 1278, 1283, 1285, 1287, 1289, 1291, 1294, 1293, 1305, 1306, 1050 1308, 1318, 1319, 1324, 1328, 1330, 1332, 1334, 1336, 1338, 1051 1340, 1342, 1347, 1349, 1351, 1353, 1355, 1357, 1359, 1361, 1052 1363, 1365, 1367, 1369, 1371, 1377, 1378, 1380, 1382, 1384, 1053 1389, 1390, 1396, 1397, 1399, 1401, 1406, 1408, 1410, 1412, 1054 1417, 1418, 1420, 1422, 1427, 1428, 1430, 1435, 1436, 1438, 1055 1440, 1445, 1447, 1449, 1454, 1455, 1459, 1461, 1467, 1466, 1056 1470, 1472, 1477, 1479, 1485, 1486, 1491, 1492, 1494, 1495, 1057 1504, 1505, 1507, 1509, 1514, 1516, 1522, 1523, 1525, 1528, 1058 1531, 1536, 1537, 1542, 1547, 1551, 1553, 1559, 1558, 1565, 1059 1567, 1573, 1574, 1582, 1583, 1587, 1588, 1589, 1591, 1593, 1060 1600, 1601, 1603, 1605, 1610, 1611, 1617, 1618, 1622, 1623, 1061 1628, 1629, 1630, 1632, 1640, 1641, 1643, 1646, 1648, 1652, 1062 1653, 1654, 1656, 1658, 1662, 1667, 1675, 1676, 1685, 1687, 1063 1692, 1693, 1694, 1698, 1699, 1700, 1704, 1705, 1706, 1710, 1064 1711, 1712, 1717, 1718, 1719, 1720, 1726, 1727, 1729, 1734, 1065 1735, 1740, 1741, 1742, 1743, 1744, 1759, 1760, 1765, 1766, 1066 1774, 1776, 1778, 1781, 1783, 1785, 1808, 1809, 1811, 1813, 1067 1818, 1819, 1821, 1826, 1831, 1832, 1838, 1837, 1841, 1845, 1068 1847, 1849, 1855, 1856, 1861, 1866, 1868, 1873, 1875, 1876, 1069 1878, 1883, 1885, 1887, 1892, 1894, 1899, 1904, 1912, 1918, 1070 1917, 1931, 1932, 1937, 1938, 1942, 1947, 1952, 1960, 1965, 1071 1976, 1977, 1988, 1989, 1995, 1996, 2000, 2001, 2002, 2005, 1072 2004, 2015, 2024, 2030, 2036, 2045, 2051, 2057, 2063, 2069, 1073 2077, 2083, 2091, 2097, 2106, 2107, 2108, 2112, 2116, 2118, 1074 2123, 2124, 2128, 2129, 2134, 2140, 2141, 2144, 2146, 2147, 1075 2151, 2152, 2153, 2154, 2188, 2190, 2191, 2193, 2198, 2203, 1076 2208, 2210, 2212, 2217, 2219, 2221, 2223, 2228, 2230, 2239, 1077 2241, 2242, 2247, 2249, 2251, 2256, 2258, 2260, 2265, 2267, 1078 2269, 2278, 2279, 2280, 2284, 2286, 2288, 2293, 2295, 2297, 1079 2302, 2304, 2306, 2321, 2323, 2324, 2326, 2331, 2332, 2337, 1080 2339, 2341, 2346, 2348, 2350, 2352, 2357, 2359, 2361, 2371, 1081 2373, 2374, 2376, 2381, 2383, 2385, 2390, 2392, 2394, 2396, 1082 2401, 2403, 2405, 2436, 2438, 2439, 2441, 2446, 2451, 2459, 1083 2461, 2463, 2468, 2470, 2475, 2477, 2491, 2492, 2494, 2499, 1084 2501, 2503, 2505, 2507, 2512, 2513, 2515, 2517, 2522, 2524, 1085 2526, 2532, 2534, 2536, 2540, 2542, 2544, 2546, 2560, 2561, 1086 2563, 2568, 2570, 2572, 2574, 2576, 2581, 2582, 2584, 2586, 1087 2591, 2593, 2595, 2601, 2602, 2604, 2613, 2616, 2618, 2621, 1088 2623, 2625, 2638, 2639, 2641, 2646, 2648, 2650, 2652, 2654, 1089 2659, 2660, 2662, 2664, 2669, 2671, 2679, 2680, 2681, 2686, 1090 2687, 2691, 2693, 2695, 2697, 2699, 2701, 2708, 2710, 2712, 1091 2714, 2716, 2718, 2720, 2722, 2724, 2726, 2731, 2733, 2735, 1092 2740, 2766, 2767, 2769, 2773, 2774, 2778, 2780, 2782, 2784, 1093 2786, 2788, 2795, 2797, 2799, 2801, 2803, 2805, 2810, 2815, 1094 2817, 2819, 2837, 2839, 2844, 2845 1095 1095 }; 1096 1096 #endif … … 5299 5299 /* Line 1806 of yacc.c */ 5300 5300 #line 358 "parser.yy" 5301 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::Index ), (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ); }5301 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::Index, (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ) ); } 5302 5302 break; 5303 5303 … … 5327 5327 /* Line 1806 of yacc.c */ 5328 5328 #line 370 "parser.yy" 5329 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::IncrPost ), (yyvsp[(1) - (2)].en) ); }5329 { (yyval.en) = new CompositeExprNode2( build_opr1( OperatorNode::IncrPost, (yyvsp[(1) - (2)].en) ) ); } 5330 5330 break; 5331 5331 … … 5334 5334 /* Line 1806 of yacc.c */ 5335 5335 #line 372 "parser.yy" 5336 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::DecrPost ), (yyvsp[(1) - (2)].en) ); }5336 { (yyval.en) = new CompositeExprNode2( build_opr1( OperatorNode::DecrPost, (yyvsp[(1) - (2)].en) ) ); } 5337 5337 break; 5338 5338 … … 5455 5455 5456 5456 /* Line 1806 of yacc.c */ 5457 #line 434 "parser.yy" 5458 { (yyval.en) = (yyvsp[(1) - (2)].op) == OperatorNode::AddressOf ? (ExpressionNode*) new CompositeExprNode2( build_addressOf( (yyvsp[(2) - (2)].en) ) ) : (ExpressionNode*)new CompositeExprNode( new OperatorNode ( (yyvsp[(1) - (2)].op) ), (yyvsp[(2) - (2)].en) ); } 5457 #line 437 "parser.yy" 5458 { (yyval.en) = (yyvsp[(1) - (2)].op) == OperatorNode::AddressOf ? (ExpressionNode*) new CompositeExprNode2( build_addressOf( (yyvsp[(2) - (2)].en) ) ) 5459 : (ExpressionNode*)new CompositeExprNode( new OperatorNode ( (yyvsp[(1) - (2)].op) ), (yyvsp[(2) - (2)].en) ); } 5459 5460 break; 5460 5461 … … 5462 5463 5463 5464 /* Line 1806 of yacc.c */ 5464 #line 4 39"parser.yy"5465 #line 440 "parser.yy" 5465 5466 { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); } 5466 5467 break; … … 5469 5470 5470 5471 /* Line 1806 of yacc.c */ 5471 #line 44 1"parser.yy"5472 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::Incr ), (yyvsp[(2) - (2)].en) ); }5472 #line 442 "parser.yy" 5473 { (yyval.en) = new CompositeExprNode2( build_opr1( OperatorNode::Incr, (yyvsp[(2) - (2)].en) ) ); } 5473 5474 break; 5474 5475 … … 5476 5477 5477 5478 /* Line 1806 of yacc.c */ 5478 #line 44 3"parser.yy"5479 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::Decr ), (yyvsp[(2) - (2)].en) ); }5479 #line 444 "parser.yy" 5480 { (yyval.en) = new CompositeExprNode2( build_opr1( OperatorNode::Decr, (yyvsp[(2) - (2)].en) ) ); } 5480 5481 break; 5481 5482 … … 5483 5484 5484 5485 /* Line 1806 of yacc.c */ 5485 #line 44 5"parser.yy"5486 #line 446 "parser.yy" 5486 5487 { (yyval.en) = new CompositeExprNode2( build_sizeOf( (yyvsp[(2) - (2)].en) ) ); } 5487 5488 break; … … 5490 5491 5491 5492 /* Line 1806 of yacc.c */ 5492 #line 44 7"parser.yy"5493 #line 448 "parser.yy" 5493 5494 { (yyval.en) = new CompositeExprNode2( build_sizeOf( new TypeValueNode( (yyvsp[(3) - (4)].decl) ) ) ); } 5494 5495 break; … … 5497 5498 5498 5499 /* Line 1806 of yacc.c */ 5499 #line 4 49"parser.yy"5500 #line 450 "parser.yy" 5500 5501 { (yyval.en) = new CompositeExprNode2( build_offsetOf( new TypeValueNode( (yyvsp[(3) - (6)].decl) ), new VarRefNode( (yyvsp[(5) - (6)].tok) ) ) ); } 5501 5502 break; … … 5504 5505 5505 5506 /* Line 1806 of yacc.c */ 5506 #line 45 1"parser.yy"5507 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (1)].tok) ) ); }5507 #line 452 "parser.yy" 5508 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (1)].tok) ) ); } 5508 5509 break; 5509 5510 … … 5511 5512 5512 5513 /* Line 1806 of yacc.c */ 5513 #line 45 3"parser.yy"5514 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), new TypeValueNode( (yyvsp[(3) - (4)].decl) ) ); }5514 #line 454 "parser.yy" 5515 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), new TypeValueNode( (yyvsp[(3) - (4)].decl) ) ); } 5515 5516 break; 5516 5517 … … 5518 5519 5519 5520 /* Line 1806 of yacc.c */ 5520 #line 45 5"parser.yy"5521 #line 456 "parser.yy" 5521 5522 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ); } 5522 5523 break; … … 5525 5526 5526 5527 /* Line 1806 of yacc.c */ 5527 #line 45 7"parser.yy"5528 #line 458 "parser.yy" 5528 5529 { (yyval.en) = new CompositeExprNode2( build_alignOf( (yyvsp[(2) - (2)].en) ) ); } 5529 5530 break; … … 5532 5533 5533 5534 /* Line 1806 of yacc.c */ 5534 #line 4 59"parser.yy"5535 #line 460 "parser.yy" 5535 5536 { (yyval.en) = new CompositeExprNode2( build_alignOf( new TypeValueNode( (yyvsp[(3) - (4)].decl) ) ) ); } 5536 5537 break; … … 5539 5540 5540 5541 /* Line 1806 of yacc.c */ 5541 #line 46 5"parser.yy"5542 #line 466 "parser.yy" 5542 5543 { (yyval.op) = OperatorNode::PointTo; } 5543 5544 break; … … 5546 5547 5547 5548 /* Line 1806 of yacc.c */ 5548 #line 46 6"parser.yy"5549 #line 467 "parser.yy" 5549 5550 { (yyval.op) = OperatorNode::AddressOf; } 5550 5551 break; … … 5553 5554 5554 5555 /* Line 1806 of yacc.c */ 5555 #line 46 8"parser.yy"5556 #line 469 "parser.yy" 5556 5557 { (yyval.op) = OperatorNode::And; } 5557 5558 break; … … 5560 5561 5561 5562 /* Line 1806 of yacc.c */ 5562 #line 47 2"parser.yy"5563 #line 473 "parser.yy" 5563 5564 { (yyval.en) = new OperatorNode( OperatorNode::UnPlus ); } 5564 5565 break; … … 5567 5568 5568 5569 /* Line 1806 of yacc.c */ 5569 #line 47 3"parser.yy"5570 #line 474 "parser.yy" 5570 5571 { (yyval.en) = new OperatorNode( OperatorNode::UnMinus ); } 5571 5572 break; … … 5574 5575 5575 5576 /* Line 1806 of yacc.c */ 5576 #line 47 4"parser.yy"5577 #line 475 "parser.yy" 5577 5578 { (yyval.en) = new OperatorNode( OperatorNode::Neg ); } 5578 5579 break; … … 5581 5582 5582 5583 /* Line 1806 of yacc.c */ 5583 #line 47 5"parser.yy"5584 #line 476 "parser.yy" 5584 5585 { (yyval.en) = new OperatorNode( OperatorNode::BitNeg ); } 5585 5586 break; … … 5588 5589 5589 5590 /* Line 1806 of yacc.c */ 5590 #line 48 1"parser.yy"5591 #line 482 "parser.yy" 5591 5592 { (yyval.en) = new CompositeExprNode2( build_cast( new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ) ); } 5592 5593 break; … … 5595 5596 5596 5597 /* Line 1806 of yacc.c */ 5597 #line 48 3"parser.yy"5598 #line 484 "parser.yy" 5598 5599 { (yyval.en) = new CompositeExprNode2( build_cast( new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ) ); } 5599 5600 break; … … 5602 5603 5603 5604 /* Line 1806 of yacc.c */ 5604 #line 4 89"parser.yy"5605 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::Mul ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5605 #line 490 "parser.yy" 5606 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5606 5607 break; 5607 5608 … … 5609 5610 5610 5611 /* Line 1806 of yacc.c */ 5611 #line 49 1"parser.yy"5612 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::Div ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5612 #line 492 "parser.yy" 5613 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5613 5614 break; 5614 5615 … … 5616 5617 5617 5618 /* Line 1806 of yacc.c */ 5618 #line 49 3"parser.yy"5619 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::Mod ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5619 #line 494 "parser.yy" 5620 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5620 5621 break; 5621 5622 … … 5623 5624 5624 5625 /* Line 1806 of yacc.c */ 5625 #line 499"parser.yy"5626 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::Plus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5626 #line 500 "parser.yy" 5627 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5627 5628 break; 5628 5629 … … 5630 5631 5631 5632 /* Line 1806 of yacc.c */ 5632 #line 50 1"parser.yy"5633 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::Minus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5633 #line 502 "parser.yy" 5634 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5634 5635 break; 5635 5636 … … 5637 5638 5638 5639 /* Line 1806 of yacc.c */ 5639 #line 50 7"parser.yy"5640 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::LShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5640 #line 508 "parser.yy" 5641 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5641 5642 break; 5642 5643 … … 5644 5645 5645 5646 /* Line 1806 of yacc.c */ 5646 #line 5 09"parser.yy"5647 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::RShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5647 #line 510 "parser.yy" 5648 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5648 5649 break; 5649 5650 … … 5651 5652 5652 5653 /* Line 1806 of yacc.c */ 5653 #line 51 5"parser.yy"5654 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::LThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5654 #line 516 "parser.yy" 5655 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5655 5656 break; 5656 5657 … … 5658 5659 5659 5660 /* Line 1806 of yacc.c */ 5660 #line 51 7"parser.yy"5661 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::GThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5661 #line 518 "parser.yy" 5662 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5662 5663 break; 5663 5664 … … 5665 5666 5666 5667 /* Line 1806 of yacc.c */ 5667 #line 5 19"parser.yy"5668 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::LEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5668 #line 520 "parser.yy" 5669 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5669 5670 break; 5670 5671 … … 5672 5673 5673 5674 /* Line 1806 of yacc.c */ 5674 #line 52 1"parser.yy"5675 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::GEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5675 #line 522 "parser.yy" 5676 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5676 5677 break; 5677 5678 … … 5679 5680 5680 5681 /* Line 1806 of yacc.c */ 5681 #line 52 7"parser.yy"5682 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::Eq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5682 #line 528 "parser.yy" 5683 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5683 5684 break; 5684 5685 … … 5686 5687 5687 5688 /* Line 1806 of yacc.c */ 5688 #line 5 29"parser.yy"5689 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::Neq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5689 #line 530 "parser.yy" 5690 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5690 5691 break; 5691 5692 … … 5693 5694 5694 5695 /* Line 1806 of yacc.c */ 5695 #line 53 5"parser.yy"5696 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::BitAnd ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5696 #line 536 "parser.yy" 5697 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5697 5698 break; 5698 5699 … … 5700 5701 5701 5702 /* Line 1806 of yacc.c */ 5702 #line 54 1"parser.yy"5703 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::Xor ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5703 #line 542 "parser.yy" 5704 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5704 5705 break; 5705 5706 … … 5707 5708 5708 5709 /* Line 1806 of yacc.c */ 5709 #line 54 7"parser.yy"5710 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::BitOr ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5710 #line 548 "parser.yy" 5711 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5711 5712 break; 5712 5713 … … 5714 5715 5715 5716 /* Line 1806 of yacc.c */ 5716 #line 55 3"parser.yy"5717 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::And ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5717 #line 554 "parser.yy" 5718 { (yyval.en) = new CompositeExprNode2( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); } 5718 5719 break; 5719 5720 … … 5721 5722 5722 5723 /* Line 1806 of yacc.c */ 5723 #line 5 59"parser.yy"5724 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::Or ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5724 #line 560 "parser.yy" 5725 { (yyval.en) = new CompositeExprNode2( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); } 5725 5726 break; 5726 5727 … … 5728 5729 5729 5730 /* Line 1806 of yacc.c */ 5730 #line 56 5"parser.yy"5731 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en)) ) ); }5731 #line 567 "parser.yy" 5732 { (yyval.en) = new CompositeExprNode2( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); } 5732 5733 break; 5733 5734 … … 5735 5736 5736 5737 /* Line 1806 of yacc.c */ 5737 #line 56 7"parser.yy"5738 { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::NCond ), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ); }5738 #line 569 "parser.yy" 5739 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::NCond ), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ); } 5739 5740 break; 5740 5741 … … 5742 5743 5743 5744 /* Line 1806 of yacc.c */ 5744 #line 5 69"parser.yy"5745 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en)) ) ); }5745 #line 571 "parser.yy" 5746 { (yyval.en) = new CompositeExprNode2( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); } 5746 5747 break; 5747 5748 … … 5749 5750 5750 5751 /* Line 1806 of yacc.c */ 5751 #line 58 0"parser.yy"5752 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5752 #line 582 "parser.yy" 5753 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5753 5754 break; 5754 5755 … … 5756 5757 5757 5758 /* Line 1806 of yacc.c */ 5758 #line 58 2"parser.yy"5759 { (yyval.en) = new CompositeExprNode( (yyvsp[(2) - (3)].en), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5759 #line 584 "parser.yy" 5760 { (yyval.en) = new CompositeExprNode( (yyvsp[(2) - (3)].en), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5760 5761 break; 5761 5762 … … 5763 5764 5764 5765 /* Line 1806 of yacc.c */ 5765 #line 58 4"parser.yy"5766 #line 586 "parser.yy" 5766 5767 { (yyval.en) = ( (yyvsp[(2) - (2)].en) == 0 ) ? (yyvsp[(1) - (2)].en) : new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); } 5767 5768 break; … … 5770 5771 5771 5772 /* Line 1806 of yacc.c */ 5772 #line 5 89"parser.yy"5773 #line 591 "parser.yy" 5773 5774 { (yyval.en) = new NullExprNode; } 5774 5775 break; … … 5777 5778 5778 5779 /* Line 1806 of yacc.c */ 5779 #line 59 7"parser.yy"5780 #line 599 "parser.yy" 5780 5781 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ) ); } 5781 5782 break; … … 5784 5785 5785 5786 /* Line 1806 of yacc.c */ 5786 #line 599"parser.yy"5787 #line 601 "parser.yy" 5787 5788 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (yyvsp[(3) - (5)].en) ); } 5788 5789 break; … … 5791 5792 5792 5793 /* Line 1806 of yacc.c */ 5793 #line 60 1"parser.yy"5794 #line 603 "parser.yy" 5794 5795 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(new NullExprNode)->set_link( (yyvsp[(4) - (6)].en) ) ); } 5795 5796 break; … … 5798 5799 5799 5800 /* Line 1806 of yacc.c */ 5800 #line 60 3"parser.yy"5801 #line 605 "parser.yy" 5801 5802 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_link( flattenCommas( (yyvsp[(5) - (7)].en) ) ) ); } 5802 5803 break; … … 5805 5806 5806 5807 /* Line 1806 of yacc.c */ 5807 #line 6 09"parser.yy"5808 #line 611 "parser.yy" 5808 5809 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); } 5809 5810 break; … … 5812 5813 5813 5814 /* Line 1806 of yacc.c */ 5814 #line 61 3"parser.yy"5815 #line 615 "parser.yy" 5815 5816 { (yyval.en) = new OperatorNode( OperatorNode::MulAssn ); } 5816 5817 break; … … 5819 5820 5820 5821 /* Line 1806 of yacc.c */ 5821 #line 61 4"parser.yy"5822 #line 616 "parser.yy" 5822 5823 { (yyval.en) = new OperatorNode( OperatorNode::DivAssn ); } 5823 5824 break; … … 5826 5827 5827 5828 /* Line 1806 of yacc.c */ 5828 #line 61 5"parser.yy"5829 #line 617 "parser.yy" 5829 5830 { (yyval.en) = new OperatorNode( OperatorNode::ModAssn ); } 5830 5831 break; … … 5833 5834 5834 5835 /* Line 1806 of yacc.c */ 5835 #line 61 6"parser.yy"5836 #line 618 "parser.yy" 5836 5837 { (yyval.en) = new OperatorNode( OperatorNode::PlusAssn ); } 5837 5838 break; … … 5840 5841 5841 5842 /* Line 1806 of yacc.c */ 5842 #line 61 7"parser.yy"5843 #line 619 "parser.yy" 5843 5844 { (yyval.en) = new OperatorNode( OperatorNode::MinusAssn ); } 5844 5845 break; … … 5847 5848 5848 5849 /* Line 1806 of yacc.c */ 5849 #line 6 18"parser.yy"5850 #line 620 "parser.yy" 5850 5851 { (yyval.en) = new OperatorNode( OperatorNode::LSAssn ); } 5851 5852 break; … … 5854 5855 5855 5856 /* Line 1806 of yacc.c */ 5856 #line 6 19"parser.yy"5857 #line 621 "parser.yy" 5857 5858 { (yyval.en) = new OperatorNode( OperatorNode::RSAssn ); } 5858 5859 break; … … 5861 5862 5862 5863 /* Line 1806 of yacc.c */ 5863 #line 62 0"parser.yy"5864 #line 622 "parser.yy" 5864 5865 { (yyval.en) = new OperatorNode( OperatorNode::AndAssn ); } 5865 5866 break; … … 5868 5869 5869 5870 /* Line 1806 of yacc.c */ 5870 #line 62 1"parser.yy"5871 #line 623 "parser.yy" 5871 5872 { (yyval.en) = new OperatorNode( OperatorNode::ERAssn ); } 5872 5873 break; … … 5875 5876 5876 5877 /* Line 1806 of yacc.c */ 5877 #line 62 2"parser.yy"5878 #line 624 "parser.yy" 5878 5879 { (yyval.en) = new OperatorNode( OperatorNode::OrAssn ); } 5879 5880 break; … … 5882 5883 5883 5884 /* Line 1806 of yacc.c */ 5884 #line 6 28"parser.yy"5885 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::Comma ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5885 #line 631 "parser.yy" 5886 { (yyval.en) = new CompositeExprNode2( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5886 5887 break; 5887 5888 … … 5889 5890 5890 5891 /* Line 1806 of yacc.c */ 5891 #line 63 3"parser.yy"5892 #line 636 "parser.yy" 5892 5893 { (yyval.en) = 0; } 5893 5894 break; … … 5896 5897 5897 5898 /* Line 1806 of yacc.c */ 5898 #line 64 2"parser.yy"5899 #line 645 "parser.yy" 5899 5900 { (yyval.sn) = (yyvsp[(1) - (1)].sn); } 5900 5901 break; … … 5903 5904 5904 5905 /* Line 1806 of yacc.c */ 5905 #line 6 49"parser.yy"5906 #line 652 "parser.yy" 5906 5907 { 5907 5908 Token fn; fn.str = new std::string( "^?{}" ); // location undefined … … 5914 5915 5915 5916 /* Line 1806 of yacc.c */ 5916 #line 6 59"parser.yy"5917 #line 662 "parser.yy" 5917 5918 { 5918 5919 (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) ); … … 5923 5924 5924 5925 /* Line 1806 of yacc.c */ 5925 #line 66 6"parser.yy"5926 #line 669 "parser.yy" 5926 5927 { (yyval.sn) = new CompoundStmtNode( (StatementNode *)0 ); } 5927 5928 break; … … 5930 5931 5931 5932 /* Line 1806 of yacc.c */ 5932 #line 67 3"parser.yy"5933 #line 676 "parser.yy" 5933 5934 { (yyval.sn) = new CompoundStmtNode( (yyvsp[(5) - (7)].sn) ); } 5934 5935 break; … … 5937 5938 5938 5939 /* Line 1806 of yacc.c */ 5939 #line 6 79"parser.yy"5940 #line 682 "parser.yy" 5940 5941 { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } } 5941 5942 break; … … 5944 5945 5945 5946 /* Line 1806 of yacc.c */ 5946 #line 68 4"parser.yy"5947 #line 687 "parser.yy" 5947 5948 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5948 5949 break; … … 5951 5952 5952 5953 /* Line 1806 of yacc.c */ 5953 #line 68 6"parser.yy"5954 #line 689 "parser.yy" 5954 5955 { // mark all fields in list 5955 5956 for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_link() ) … … 5962 5963 5963 5964 /* Line 1806 of yacc.c */ 5964 #line 69 2"parser.yy"5965 #line 695 "parser.yy" 5965 5966 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5966 5967 break; … … 5969 5970 5970 5971 /* Line 1806 of yacc.c */ 5971 #line 699"parser.yy"5972 #line 702 "parser.yy" 5972 5973 { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } } 5973 5974 break; … … 5976 5977 5977 5978 /* Line 1806 of yacc.c */ 5978 #line 70 4"parser.yy"5979 #line 707 "parser.yy" 5979 5980 { (yyval.sn) = new StatementNode( StatementNode::Exp, (yyvsp[(1) - (2)].en), 0 ); } 5980 5981 break; … … 5983 5984 5984 5985 /* Line 1806 of yacc.c */ 5985 #line 71 0"parser.yy"5986 #line 713 "parser.yy" 5986 5987 { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); } 5987 5988 break; … … 5990 5991 5991 5992 /* Line 1806 of yacc.c */ 5992 #line 71 2"parser.yy"5993 #line 715 "parser.yy" 5993 5994 { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (7)].en), (StatementNode *)mkList((*(yyvsp[(5) - (7)].sn), *(yyvsp[(7) - (7)].sn) )) ); } 5994 5995 break; … … 5997 5998 5998 5999 /* Line 1806 of yacc.c */ 5999 #line 71 4"parser.yy"6000 #line 717 "parser.yy" 6000 6001 { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); } 6001 6002 break; … … 6004 6005 6005 6006 /* Line 1806 of yacc.c */ 6006 #line 71 6"parser.yy"6007 #line 719 "parser.yy" 6007 6008 { 6008 6009 StatementNode *sw = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); … … 6019 6020 6020 6021 /* Line 1806 of yacc.c */ 6021 #line 72 6"parser.yy"6022 #line 729 "parser.yy" 6022 6023 { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); } 6023 6024 break; … … 6026 6027 6027 6028 /* Line 1806 of yacc.c */ 6028 #line 7 28"parser.yy"6029 #line 731 "parser.yy" 6029 6030 { 6030 6031 StatementNode *sw = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); … … 6036 6037 6037 6038 /* Line 1806 of yacc.c */ 6038 #line 7 38"parser.yy"6039 #line 741 "parser.yy" 6039 6040 { (yyval.en) = (yyvsp[(1) - (1)].en); } 6040 6041 break; … … 6043 6044 6044 6045 /* Line 1806 of yacc.c */ 6045 #line 74 0"parser.yy"6046 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }6046 #line 743 "parser.yy" 6047 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::Range, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 6047 6048 break; 6048 6049 … … 6050 6051 6051 6052 /* Line 1806 of yacc.c */ 6052 #line 74 5"parser.yy"6053 #line 748 "parser.yy" 6053 6054 { (yyval.sn) = new StatementNode( StatementNode::Case, (yyvsp[(1) - (1)].en), 0 ); } 6054 6055 break; … … 6057 6058 6058 6059 /* Line 1806 of yacc.c */ 6059 #line 7 47"parser.yy"6060 #line 750 "parser.yy" 6060 6061 { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_link( new StatementNode( StatementNode::Case, (yyvsp[(3) - (3)].en), 0 ) ) ); } 6061 6062 break; … … 6064 6065 6065 6066 /* Line 1806 of yacc.c */ 6066 #line 75 1"parser.yy"6067 #line 754 "parser.yy" 6067 6068 { (yyval.sn) = (yyvsp[(2) - (3)].sn); } 6068 6069 break; … … 6071 6072 6072 6073 /* Line 1806 of yacc.c */ 6073 #line 75 2"parser.yy"6074 #line 755 "parser.yy" 6074 6075 { (yyval.sn) = new StatementNode( StatementNode::Default ); } 6075 6076 break; … … 6078 6079 6079 6080 /* Line 1806 of yacc.c */ 6080 #line 7 58"parser.yy"6081 #line 761 "parser.yy" 6081 6082 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) )); } 6082 6083 break; … … 6085 6086 6086 6087 /* Line 1806 of yacc.c */ 6087 #line 76 2"parser.yy"6088 #line 765 "parser.yy" 6088 6089 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new CompoundStmtNode( (yyvsp[(2) - (2)].sn) ) ); } 6089 6090 break; … … 6092 6093 6093 6094 /* Line 1806 of yacc.c */ 6094 #line 7 67"parser.yy"6095 #line 770 "parser.yy" 6095 6096 { (yyval.sn) = 0; } 6096 6097 break; … … 6099 6100 6100 6101 /* Line 1806 of yacc.c */ 6101 #line 77 3"parser.yy"6102 #line 776 "parser.yy" 6102 6103 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new CompoundStmtNode( (yyvsp[(2) - (2)].sn) ) ); } 6103 6104 break; … … 6106 6107 6107 6108 /* Line 1806 of yacc.c */ 6108 #line 77 5"parser.yy"6109 #line 778 "parser.yy" 6109 6110 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( new CompoundStmtNode( (yyvsp[(3) - (3)].sn) ) ) ) ); } 6110 6111 break; … … 6113 6114 6114 6115 /* Line 1806 of yacc.c */ 6115 #line 78 0"parser.yy"6116 #line 783 "parser.yy" 6116 6117 { (yyval.sn) = 0; } 6117 6118 break; … … 6120 6121 6121 6122 /* Line 1806 of yacc.c */ 6122 #line 78 6"parser.yy"6123 #line 789 "parser.yy" 6123 6124 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); } 6124 6125 break; … … 6127 6128 6128 6129 /* Line 1806 of yacc.c */ 6129 #line 7 88"parser.yy"6130 #line 791 "parser.yy" 6130 6131 { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new CompoundStmtNode( (StatementNode *)mkList( (*(yyvsp[(2) - (3)].sn), *(yyvsp[(3) - (3)].sn) ) ) ) ); } 6131 6132 break; … … 6134 6135 6135 6136 /* Line 1806 of yacc.c */ 6136 #line 79 0"parser.yy"6137 #line 793 "parser.yy" 6137 6138 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); } 6138 6139 break; … … 6141 6142 6142 6143 /* Line 1806 of yacc.c */ 6143 #line 79 2"parser.yy"6144 #line 795 "parser.yy" 6144 6145 { (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) ) ) ) ) ) ); } 6145 6146 break; … … 6148 6149 6149 6150 /* Line 1806 of yacc.c */ 6150 #line 797"parser.yy"6151 #line 800 "parser.yy" 6151 6152 { (yyval.sn) = new StatementNode( StatementNode::Break ); } 6152 6153 break; … … 6155 6156 6156 6157 /* Line 1806 of yacc.c */ 6157 #line 80 3"parser.yy"6158 #line 806 "parser.yy" 6158 6159 { (yyval.sn) = 0; } 6159 6160 break; … … 6162 6163 6163 6164 /* Line 1806 of yacc.c */ 6164 #line 80 5"parser.yy"6165 #line 808 "parser.yy" 6165 6166 { (yyval.sn) = 0; } 6166 6167 break; … … 6169 6170 6170 6171 /* Line 1806 of yacc.c */ 6171 #line 81 0"parser.yy"6172 #line 813 "parser.yy" 6172 6173 { (yyval.sn) = new StatementNode( StatementNode::While, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); } 6173 6174 break; … … 6176 6177 6177 6178 /* Line 1806 of yacc.c */ 6178 #line 81 2"parser.yy"6179 #line 815 "parser.yy" 6179 6180 { (yyval.sn) = new StatementNode( StatementNode::Do, (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ); } 6180 6181 break; … … 6183 6184 6184 6185 /* Line 1806 of yacc.c */ 6185 #line 81 4"parser.yy"6186 #line 817 "parser.yy" 6186 6187 { (yyval.sn) = new StatementNode( StatementNode::For, (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].sn) ); } 6187 6188 break; … … 6190 6191 6191 6192 /* Line 1806 of yacc.c */ 6192 #line 8 19"parser.yy"6193 #line 822 "parser.yy" 6193 6194 { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); } 6194 6195 break; … … 6197 6198 6198 6199 /* Line 1806 of yacc.c */ 6199 #line 82 1"parser.yy"6200 #line 824 "parser.yy" 6200 6201 { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); } 6201 6202 break; … … 6204 6205 6205 6206 /* Line 1806 of yacc.c */ 6206 #line 82 6"parser.yy"6207 #line 829 "parser.yy" 6207 6208 { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(2) - (3)].tok) ); } 6208 6209 break; … … 6211 6212 6212 6213 /* Line 1806 of yacc.c */ 6213 #line 83 0"parser.yy"6214 #line 833 "parser.yy" 6214 6215 { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(3) - (4)].en) ); } 6215 6216 break; … … 6218 6219 6219 6220 /* Line 1806 of yacc.c */ 6220 #line 83 3"parser.yy"6221 #line 836 "parser.yy" 6221 6222 { (yyval.sn) = new StatementNode( StatementNode::Continue ); } 6222 6223 break; … … 6225 6226 6226 6227 /* Line 1806 of yacc.c */ 6227 #line 8 37"parser.yy"6228 #line 840 "parser.yy" 6228 6229 { (yyval.sn) = new StatementNode( StatementNode::Continue, (yyvsp[(2) - (3)].tok) ); } 6229 6230 break; … … 6232 6233 6233 6234 /* Line 1806 of yacc.c */ 6234 #line 84 0"parser.yy"6235 #line 843 "parser.yy" 6235 6236 { (yyval.sn) = new StatementNode( StatementNode::Break ); } 6236 6237 break; … … 6239 6240 6240 6241 /* Line 1806 of yacc.c */ 6241 #line 84 4"parser.yy"6242 #line 847 "parser.yy" 6242 6243 { (yyval.sn) = new StatementNode( StatementNode::Break, (yyvsp[(2) - (3)].tok) ); } 6243 6244 break; … … 6246 6247 6247 6248 /* Line 1806 of yacc.c */ 6248 #line 84 6"parser.yy"6249 #line 849 "parser.yy" 6249 6250 { (yyval.sn) = new StatementNode( StatementNode::Return, (yyvsp[(2) - (3)].en), 0 ); } 6250 6251 break; … … 6253 6254 6254 6255 /* Line 1806 of yacc.c */ 6255 #line 8 48"parser.yy"6256 #line 851 "parser.yy" 6256 6257 { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); } 6257 6258 break; … … 6260 6261 6261 6262 /* Line 1806 of yacc.c */ 6262 #line 85 2"parser.yy"6263 #line 855 "parser.yy" 6263 6264 { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); } 6264 6265 break; … … 6267 6268 6268 6269 /* Line 1806 of yacc.c */ 6269 #line 85 4"parser.yy"6270 #line 857 "parser.yy" 6270 6271 { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (5)].en), 0 ); } 6271 6272 break; … … 6274 6275 6275 6276 /* Line 1806 of yacc.c */ 6276 #line 86 1"parser.yy"6277 #line 864 "parser.yy" 6277 6278 { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); } 6278 6279 break; … … 6281 6282 6282 6283 /* Line 1806 of yacc.c */ 6283 #line 86 3"parser.yy"6284 #line 866 "parser.yy" 6284 6285 { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); } 6285 6286 break; … … 6288 6289 6289 6290 /* Line 1806 of yacc.c */ 6290 #line 86 5"parser.yy"6291 #line 868 "parser.yy" 6291 6292 { 6292 6293 (yyvsp[(3) - (4)].pn)->set_link( (yyvsp[(4) - (4)].pn) ); … … 6298 6299 6299 6300 /* Line 1806 of yacc.c */ 6300 #line 87 6"parser.yy"6301 #line 879 "parser.yy" 6301 6302 { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); } 6302 6303 break; … … 6305 6306 6306 6307 /* Line 1806 of yacc.c */ 6307 #line 8 78"parser.yy"6308 #line 881 "parser.yy" 6308 6309 { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); } 6309 6310 break; … … 6312 6313 6313 6314 /* Line 1806 of yacc.c */ 6314 #line 88 0"parser.yy"6315 #line 883 "parser.yy" 6315 6316 { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); } 6316 6317 break; … … 6319 6320 6320 6321 /* Line 1806 of yacc.c */ 6321 #line 88 2"parser.yy"6322 #line 885 "parser.yy" 6322 6323 { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); } 6323 6324 break; … … 6326 6327 6327 6328 /* Line 1806 of yacc.c */ 6328 #line 8 87"parser.yy"6329 #line 890 "parser.yy" 6329 6330 { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); } 6330 6331 break; … … 6333 6334 6334 6335 /* Line 1806 of yacc.c */ 6335 #line 8 89"parser.yy"6336 #line 892 "parser.yy" 6336 6337 { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); } 6337 6338 break; … … 6340 6341 6341 6342 /* Line 1806 of yacc.c */ 6342 #line 89 1"parser.yy"6343 #line 894 "parser.yy" 6343 6344 { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); } 6344 6345 break; … … 6347 6348 6348 6349 /* Line 1806 of yacc.c */ 6349 #line 89 3"parser.yy"6350 #line 896 "parser.yy" 6350 6351 { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); } 6351 6352 break; … … 6354 6355 6355 6356 /* Line 1806 of yacc.c */ 6356 #line 898"parser.yy"6357 #line 901 "parser.yy" 6357 6358 { 6358 6359 (yyval.pn) = new StatementNode( StatementNode::Finally, 0, (yyvsp[(2) - (2)].sn) ); … … 6364 6365 6365 6366 /* Line 1806 of yacc.c */ 6366 #line 91 2"parser.yy"6367 #line 915 "parser.yy" 6367 6368 { 6368 6369 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6374 6375 6375 6376 /* Line 1806 of yacc.c */ 6376 #line 9 17"parser.yy"6377 #line 920 "parser.yy" 6377 6378 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 6378 6379 break; … … 6381 6382 6382 6383 /* Line 1806 of yacc.c */ 6383 #line 9 19"parser.yy"6384 #line 922 "parser.yy" 6384 6385 { 6385 6386 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6391 6392 6392 6393 /* Line 1806 of yacc.c */ 6393 #line 9 28"parser.yy"6394 #line 931 "parser.yy" 6394 6395 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ); } 6395 6396 break; … … 6398 6399 6399 6400 /* Line 1806 of yacc.c */ 6400 #line 93 0"parser.yy"6401 #line 933 "parser.yy" 6401 6402 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ); } 6402 6403 break; … … 6405 6406 6406 6407 /* Line 1806 of yacc.c */ 6407 #line 93 2"parser.yy"6408 #line 935 "parser.yy" 6408 6409 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ); } 6409 6410 break; … … 6412 6413 6413 6414 /* Line 1806 of yacc.c */ 6414 #line 93 4"parser.yy"6415 #line 937 "parser.yy" 6415 6416 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].constant) ); } 6416 6417 break; … … 6419 6420 6420 6421 /* Line 1806 of yacc.c */ 6421 #line 93 6"parser.yy"6422 #line 939 "parser.yy" 6422 6423 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].constant), (yyvsp[(12) - (14)].label) ); } 6423 6424 break; … … 6426 6427 6427 6428 /* Line 1806 of yacc.c */ 6428 #line 94 1"parser.yy"6429 #line 944 "parser.yy" 6429 6430 { (yyval.flag) = false; } 6430 6431 break; … … 6433 6434 6434 6435 /* Line 1806 of yacc.c */ 6435 #line 94 3"parser.yy"6436 #line 946 "parser.yy" 6436 6437 { (yyval.flag) = true; } 6437 6438 break; … … 6440 6441 6441 6442 /* Line 1806 of yacc.c */ 6442 #line 9 48"parser.yy"6443 #line 951 "parser.yy" 6443 6444 { (yyval.en) = 0; } 6444 6445 break; … … 6447 6448 6448 6449 /* Line 1806 of yacc.c */ 6449 #line 95 5"parser.yy"6450 #line 958 "parser.yy" 6450 6451 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); } 6451 6452 break; … … 6454 6455 6455 6456 /* Line 1806 of yacc.c */ 6456 #line 96 0"parser.yy"6457 #line 963 "parser.yy" 6457 6458 { (yyval.en) = new AsmExprNode( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ); } 6458 6459 break; … … 6461 6462 6462 6463 /* Line 1806 of yacc.c */ 6463 #line 96 2"parser.yy"6464 #line 965 "parser.yy" 6464 6465 { (yyval.en) = new AsmExprNode( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ); } 6465 6466 break; … … 6468 6469 6469 6470 /* Line 1806 of yacc.c */ 6470 #line 9 67"parser.yy"6471 #line 970 "parser.yy" 6471 6472 { (yyval.constant) = 0; } 6472 6473 break; … … 6475 6476 6476 6477 /* Line 1806 of yacc.c */ 6477 #line 9 69"parser.yy"6478 #line 972 "parser.yy" 6478 6479 { (yyval.constant) = (yyvsp[(1) - (1)].constant); } 6479 6480 break; … … 6482 6483 6483 6484 /* Line 1806 of yacc.c */ 6484 #line 97 1"parser.yy"6485 #line 974 "parser.yy" 6485 6486 { (yyval.constant) = (ConstantNode *)(yyvsp[(1) - (3)].constant)->set_link( (yyvsp[(3) - (3)].constant) ); } 6486 6487 break; … … 6489 6490 6490 6491 /* Line 1806 of yacc.c */ 6491 #line 97 6"parser.yy"6492 #line 979 "parser.yy" 6492 6493 { (yyval.label) = new LabelNode(); (yyval.label)->append_label( (yyvsp[(1) - (1)].tok) ); } 6493 6494 break; … … 6496 6497 6497 6498 /* Line 1806 of yacc.c */ 6498 #line 9 78"parser.yy"6499 #line 981 "parser.yy" 6499 6500 { (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->append_label( (yyvsp[(3) - (3)].tok) ); } 6500 6501 break; … … 6503 6504 6504 6505 /* Line 1806 of yacc.c */ 6505 #line 98 5"parser.yy"6506 #line 988 "parser.yy" 6506 6507 { (yyval.decl) = 0; } 6507 6508 break; … … 6510 6511 6511 6512 /* Line 1806 of yacc.c */ 6512 #line 99 2"parser.yy"6513 #line 995 "parser.yy" 6513 6514 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6514 6515 break; … … 6517 6518 6518 6519 /* Line 1806 of yacc.c */ 6519 #line 997"parser.yy"6520 #line 1000 "parser.yy" 6520 6521 { (yyval.decl) = 0; } 6521 6522 break; … … 6524 6525 6525 6526 /* Line 1806 of yacc.c */ 6526 #line 100 4"parser.yy"6527 #line 1007 "parser.yy" 6527 6528 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6528 6529 break; … … 6531 6532 6532 6533 /* Line 1806 of yacc.c */ 6533 #line 10 18"parser.yy"6534 #line 1021 "parser.yy" 6534 6535 {} 6535 6536 break; … … 6538 6539 6539 6540 /* Line 1806 of yacc.c */ 6540 #line 10 19"parser.yy"6541 #line 1022 "parser.yy" 6541 6542 {} 6542 6543 break; … … 6545 6546 6546 6547 /* Line 1806 of yacc.c */ 6547 #line 10 48"parser.yy"6548 #line 1051 "parser.yy" 6548 6549 { 6549 6550 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6555 6556 6556 6557 /* Line 1806 of yacc.c */ 6557 #line 105 5"parser.yy"6558 #line 1058 "parser.yy" 6558 6559 { 6559 6560 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6565 6566 6566 6567 /* Line 1806 of yacc.c */ 6567 #line 106 0"parser.yy"6568 #line 1063 "parser.yy" 6568 6569 { 6569 6570 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID ); … … 6575 6576 6576 6577 /* Line 1806 of yacc.c */ 6577 #line 107 0"parser.yy"6578 #line 1073 "parser.yy" 6578 6579 { 6579 6580 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); … … 6585 6586 6586 6587 /* Line 1806 of yacc.c */ 6587 #line 107 5"parser.yy"6588 #line 1078 "parser.yy" 6588 6589 { 6589 6590 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); … … 6595 6596 6596 6597 /* Line 1806 of yacc.c */ 6597 #line 108 0"parser.yy"6598 #line 1083 "parser.yy" 6598 6599 { 6599 6600 typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) ); … … 6605 6606 6606 6607 /* Line 1806 of yacc.c */ 6607 #line 10 88"parser.yy"6608 #line 1091 "parser.yy" 6608 6609 { 6609 6610 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6615 6616 6616 6617 /* Line 1806 of yacc.c */ 6617 #line 109 3"parser.yy"6618 #line 1096 "parser.yy" 6618 6619 { 6619 6620 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6625 6626 6626 6627 /* Line 1806 of yacc.c */ 6627 #line 1 098"parser.yy"6628 #line 1101 "parser.yy" 6628 6629 { 6629 6630 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6635 6636 6636 6637 /* Line 1806 of yacc.c */ 6637 #line 110 3"parser.yy"6638 #line 1106 "parser.yy" 6638 6639 { 6639 6640 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6645 6646 6646 6647 /* Line 1806 of yacc.c */ 6647 #line 11 08"parser.yy"6648 #line 1111 "parser.yy" 6648 6649 { 6649 6650 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); … … 6655 6656 6656 6657 /* Line 1806 of yacc.c */ 6657 #line 111 6"parser.yy"6658 #line 1119 "parser.yy" 6658 6659 { 6659 6660 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true ); … … 6664 6665 6665 6666 /* Line 1806 of yacc.c */ 6666 #line 11 39"parser.yy"6667 #line 1142 "parser.yy" 6667 6668 { 6668 6669 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); … … 6673 6674 6674 6675 /* Line 1806 of yacc.c */ 6675 #line 114 3"parser.yy"6676 #line 1146 "parser.yy" 6676 6677 { 6677 6678 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); … … 6682 6683 6683 6684 /* Line 1806 of yacc.c */ 6684 #line 115 0"parser.yy"6685 #line 1153 "parser.yy" 6685 6686 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 6686 6687 break; … … 6689 6690 6690 6691 /* Line 1806 of yacc.c */ 6691 #line 115 4"parser.yy"6692 #line 1157 "parser.yy" 6692 6693 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); } 6693 6694 break; … … 6696 6697 6697 6698 /* Line 1806 of yacc.c */ 6698 #line 11 59"parser.yy"6699 #line 1162 "parser.yy" 6699 6700 { 6700 6701 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6706 6707 6707 6708 /* Line 1806 of yacc.c */ 6708 #line 116 4"parser.yy"6709 #line 1167 "parser.yy" 6709 6710 { 6710 6711 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6716 6717 6717 6718 /* Line 1806 of yacc.c */ 6718 #line 11 69"parser.yy"6719 #line 1172 "parser.yy" 6719 6720 { 6720 6721 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD ); … … 6726 6727 6727 6728 /* Line 1806 of yacc.c */ 6728 #line 118 0"parser.yy"6729 #line 1183 "parser.yy" 6729 6730 { 6730 6731 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6736 6737 6737 6738 /* Line 1806 of yacc.c */ 6738 #line 118 5"parser.yy"6739 #line 1188 "parser.yy" 6739 6740 { 6740 6741 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6746 6747 6747 6748 /* Line 1806 of yacc.c */ 6748 #line 119 0"parser.yy"6749 #line 1193 "parser.yy" 6749 6750 { 6750 6751 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6756 6757 6757 6758 /* Line 1806 of yacc.c */ 6758 #line 119 5"parser.yy"6759 #line 1198 "parser.yy" 6759 6760 { 6760 6761 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6766 6767 6767 6768 /* Line 1806 of yacc.c */ 6768 #line 120 0"parser.yy"6769 #line 1203 "parser.yy" 6769 6770 { 6770 6771 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6776 6777 6777 6778 /* Line 1806 of yacc.c */ 6778 #line 12 09"parser.yy"6779 #line 1212 "parser.yy" 6779 6780 { 6780 6781 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD ); … … 6786 6787 6787 6788 /* Line 1806 of yacc.c */ 6788 #line 121 4"parser.yy"6789 #line 1217 "parser.yy" 6789 6790 { 6790 6791 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD ); … … 6796 6797 6797 6798 /* Line 1806 of yacc.c */ 6798 #line 123 1"parser.yy"6799 #line 1234 "parser.yy" 6799 6800 { 6800 6801 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6806 6807 6807 6808 /* Line 1806 of yacc.c */ 6808 #line 123 6"parser.yy"6809 #line 1239 "parser.yy" 6809 6810 { 6810 6811 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6816 6817 6817 6818 /* Line 1806 of yacc.c */ 6818 #line 12 58"parser.yy"6819 #line 1261 "parser.yy" 6819 6820 { (yyval.decl) = 0; } 6820 6821 break; … … 6823 6824 6824 6825 /* Line 1806 of yacc.c */ 6825 #line 127 0"parser.yy"6826 #line 1273 "parser.yy" 6826 6827 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6827 6828 break; … … 6830 6831 6831 6832 /* Line 1806 of yacc.c */ 6832 #line 128 1"parser.yy"6833 #line 1284 "parser.yy" 6833 6834 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); } 6834 6835 break; … … 6837 6838 6838 6839 /* Line 1806 of yacc.c */ 6839 #line 128 3"parser.yy"6840 #line 1286 "parser.yy" 6840 6841 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); } 6841 6842 break; … … 6844 6845 6845 6846 /* Line 1806 of yacc.c */ 6846 #line 128 5"parser.yy"6847 #line 1288 "parser.yy" 6847 6848 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); } 6848 6849 break; … … 6851 6852 6852 6853 /* Line 1806 of yacc.c */ 6853 #line 12 87"parser.yy"6854 #line 1290 "parser.yy" 6854 6855 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); } 6855 6856 break; … … 6858 6859 6859 6860 /* Line 1806 of yacc.c */ 6860 #line 12 89"parser.yy"6861 #line 1292 "parser.yy" 6861 6862 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); } 6862 6863 break; … … 6865 6866 6866 6867 /* Line 1806 of yacc.c */ 6867 #line 129 1"parser.yy"6868 #line 1294 "parser.yy" 6868 6869 { 6869 6870 typedefTable.enterScope(); … … 6874 6875 6875 6876 /* Line 1806 of yacc.c */ 6876 #line 129 5"parser.yy"6877 #line 1298 "parser.yy" 6877 6878 { 6878 6879 typedefTable.leaveScope(); … … 6884 6885 6885 6886 /* Line 1806 of yacc.c */ 6886 #line 130 4"parser.yy"6887 #line 1307 "parser.yy" 6887 6888 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6888 6889 break; … … 6891 6892 6892 6893 /* Line 1806 of yacc.c */ 6893 #line 130 6"parser.yy"6894 #line 1309 "parser.yy" 6894 6895 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6895 6896 break; … … 6898 6899 6899 6900 /* Line 1806 of yacc.c */ 6900 #line 13 17"parser.yy"6901 #line 1320 "parser.yy" 6901 6902 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6902 6903 break; … … 6905 6906 6906 6907 /* Line 1806 of yacc.c */ 6907 #line 132 6"parser.yy"6908 #line 1329 "parser.yy" 6908 6909 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); } 6909 6910 break; … … 6912 6913 6913 6914 /* Line 1806 of yacc.c */ 6914 #line 13 28"parser.yy"6915 #line 1331 "parser.yy" 6915 6916 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); } 6916 6917 break; … … 6919 6920 6920 6921 /* Line 1806 of yacc.c */ 6921 #line 133 0"parser.yy"6922 #line 1333 "parser.yy" 6922 6923 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); } 6923 6924 break; … … 6926 6927 6927 6928 /* Line 1806 of yacc.c */ 6928 #line 133 2"parser.yy"6929 #line 1335 "parser.yy" 6929 6930 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); } 6930 6931 break; … … 6933 6934 6934 6935 /* Line 1806 of yacc.c */ 6935 #line 133 4"parser.yy"6936 #line 1337 "parser.yy" 6936 6937 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); } 6937 6938 break; … … 6940 6941 6941 6942 /* Line 1806 of yacc.c */ 6942 #line 133 6"parser.yy"6943 #line 1339 "parser.yy" 6943 6944 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); } 6944 6945 break; … … 6947 6948 6948 6949 /* Line 1806 of yacc.c */ 6949 #line 13 38"parser.yy"6950 #line 1341 "parser.yy" 6950 6951 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); } 6951 6952 break; … … 6954 6955 6955 6956 /* Line 1806 of yacc.c */ 6956 #line 134 0"parser.yy"6957 #line 1343 "parser.yy" 6957 6958 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); } 6958 6959 break; … … 6961 6962 6962 6963 /* Line 1806 of yacc.c */ 6963 #line 134 5"parser.yy"6964 #line 1348 "parser.yy" 6964 6965 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); } 6965 6966 break; … … 6968 6969 6969 6970 /* Line 1806 of yacc.c */ 6970 #line 13 47"parser.yy"6971 #line 1350 "parser.yy" 6971 6972 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); } 6972 6973 break; … … 6975 6976 6976 6977 /* Line 1806 of yacc.c */ 6977 #line 13 49"parser.yy"6978 #line 1352 "parser.yy" 6978 6979 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); } 6979 6980 break; … … 6982 6983 6983 6984 /* Line 1806 of yacc.c */ 6984 #line 135 1"parser.yy"6985 #line 1354 "parser.yy" 6985 6986 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); } 6986 6987 break; … … 6989 6990 6990 6991 /* Line 1806 of yacc.c */ 6991 #line 135 3"parser.yy"6992 #line 1356 "parser.yy" 6992 6993 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); } 6993 6994 break; … … 6996 6997 6997 6998 /* Line 1806 of yacc.c */ 6998 #line 135 5"parser.yy"6999 #line 1358 "parser.yy" 6999 7000 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); } 7000 7001 break; … … 7003 7004 7004 7005 /* Line 1806 of yacc.c */ 7005 #line 13 57"parser.yy"7006 #line 1360 "parser.yy" 7006 7007 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); } 7007 7008 break; … … 7010 7011 7011 7012 /* Line 1806 of yacc.c */ 7012 #line 13 59"parser.yy"7013 #line 1362 "parser.yy" 7013 7014 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); } 7014 7015 break; … … 7017 7018 7018 7019 /* Line 1806 of yacc.c */ 7019 #line 136 1"parser.yy"7020 #line 1364 "parser.yy" 7020 7021 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); } 7021 7022 break; … … 7024 7025 7025 7026 /* Line 1806 of yacc.c */ 7026 #line 136 3"parser.yy"7027 #line 1366 "parser.yy" 7027 7028 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); } 7028 7029 break; … … 7031 7032 7032 7033 /* Line 1806 of yacc.c */ 7033 #line 136 5"parser.yy"7034 #line 1368 "parser.yy" 7034 7035 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); } 7035 7036 break; … … 7038 7039 7039 7040 /* Line 1806 of yacc.c */ 7040 #line 13 67"parser.yy"7041 #line 1370 "parser.yy" 7041 7042 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); } 7042 7043 break; … … 7045 7046 7046 7047 /* Line 1806 of yacc.c */ 7047 #line 13 69"parser.yy"7048 #line 1372 "parser.yy" 7048 7049 { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); } 7049 7050 break; … … 7052 7053 7053 7054 /* Line 1806 of yacc.c */ 7054 #line 137 6"parser.yy"7055 #line 1379 "parser.yy" 7055 7056 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7056 7057 break; … … 7059 7060 7060 7061 /* Line 1806 of yacc.c */ 7061 #line 13 78"parser.yy"7062 #line 1381 "parser.yy" 7062 7063 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7063 7064 break; … … 7066 7067 7067 7068 /* Line 1806 of yacc.c */ 7068 #line 138 0"parser.yy"7069 #line 1383 "parser.yy" 7069 7070 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 7070 7071 break; … … 7073 7074 7074 7075 /* Line 1806 of yacc.c */ 7075 #line 138 2"parser.yy"7076 #line 1385 "parser.yy" 7076 7077 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); } 7077 7078 break; … … 7080 7081 7081 7082 /* Line 1806 of yacc.c */ 7082 #line 13 88"parser.yy"7083 #line 1391 "parser.yy" 7083 7084 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 7084 7085 break; … … 7087 7088 7088 7089 /* Line 1806 of yacc.c */ 7089 #line 139 5"parser.yy"7090 #line 1398 "parser.yy" 7090 7091 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7091 7092 break; … … 7094 7095 7095 7096 /* Line 1806 of yacc.c */ 7096 #line 1 397"parser.yy"7097 #line 1400 "parser.yy" 7097 7098 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7098 7099 break; … … 7101 7102 7102 7103 /* Line 1806 of yacc.c */ 7103 #line 1 399"parser.yy"7104 #line 1402 "parser.yy" 7104 7105 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); } 7105 7106 break; … … 7108 7109 7109 7110 /* Line 1806 of yacc.c */ 7110 #line 140 4"parser.yy"7111 #line 1407 "parser.yy" 7111 7112 { (yyval.decl) = (yyvsp[(3) - (4)].decl); } 7112 7113 break; … … 7115 7116 7116 7117 /* Line 1806 of yacc.c */ 7117 #line 140 6"parser.yy"7118 #line 1409 "parser.yy" 7118 7119 { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); } 7119 7120 break; … … 7122 7123 7123 7124 /* Line 1806 of yacc.c */ 7124 #line 14 08"parser.yy"7125 #line 1411 "parser.yy" 7125 7126 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); } 7126 7127 break; … … 7129 7130 7130 7131 /* Line 1806 of yacc.c */ 7131 #line 141 0"parser.yy"7132 #line 1413 "parser.yy" 7132 7133 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 7133 7134 break; … … 7136 7137 7137 7138 /* Line 1806 of yacc.c */ 7138 #line 141 6"parser.yy"7139 #line 1419 "parser.yy" 7139 7140 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7140 7141 break; … … 7143 7144 7144 7145 /* Line 1806 of yacc.c */ 7145 #line 14 18"parser.yy"7146 #line 1421 "parser.yy" 7146 7147 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7147 7148 break; … … 7150 7151 7151 7152 /* Line 1806 of yacc.c */ 7152 #line 142 0"parser.yy"7153 #line 1423 "parser.yy" 7153 7154 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 7154 7155 break; … … 7157 7158 7158 7159 /* Line 1806 of yacc.c */ 7159 #line 142 6"parser.yy"7160 #line 1429 "parser.yy" 7160 7161 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7161 7162 break; … … 7164 7165 7165 7166 /* Line 1806 of yacc.c */ 7166 #line 14 28"parser.yy"7167 #line 1431 "parser.yy" 7167 7168 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7168 7169 break; … … 7171 7172 7172 7173 /* Line 1806 of yacc.c */ 7173 #line 143 4"parser.yy"7174 #line 1437 "parser.yy" 7174 7175 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7175 7176 break; … … 7178 7179 7179 7180 /* Line 1806 of yacc.c */ 7180 #line 143 6"parser.yy"7181 #line 1439 "parser.yy" 7181 7182 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7182 7183 break; … … 7185 7186 7186 7187 /* Line 1806 of yacc.c */ 7187 #line 14 38"parser.yy"7188 #line 1441 "parser.yy" 7188 7189 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 7189 7190 break; … … 7192 7193 7193 7194 /* Line 1806 of yacc.c */ 7194 #line 144 3"parser.yy"7195 #line 1446 "parser.yy" 7195 7196 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); } 7196 7197 break; … … 7199 7200 7200 7201 /* Line 1806 of yacc.c */ 7201 #line 144 5"parser.yy"7202 #line 1448 "parser.yy" 7202 7203 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7203 7204 break; … … 7206 7207 7207 7208 /* Line 1806 of yacc.c */ 7208 #line 14 47"parser.yy"7209 #line 1450 "parser.yy" 7209 7210 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7210 7211 break; … … 7213 7214 7214 7215 /* Line 1806 of yacc.c */ 7215 #line 14 57"parser.yy"7216 #line 1460 "parser.yy" 7216 7217 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl), true ); } 7217 7218 break; … … 7220 7221 7221 7222 /* Line 1806 of yacc.c */ 7222 #line 14 59"parser.yy"7223 #line 1462 "parser.yy" 7223 7224 { 7224 7225 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); … … 7230 7231 7231 7232 /* Line 1806 of yacc.c */ 7232 #line 146 4"parser.yy"7233 #line 1467 "parser.yy" 7233 7234 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); } 7234 7235 break; … … 7237 7238 7238 7239 /* Line 1806 of yacc.c */ 7239 #line 146 6"parser.yy"7240 #line 1469 "parser.yy" 7240 7241 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), 0, (yyvsp[(5) - (6)].decl), true ); } 7241 7242 break; … … 7244 7245 7245 7246 /* Line 1806 of yacc.c */ 7246 #line 14 68"parser.yy"7247 #line 1471 "parser.yy" 7247 7248 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); } 7248 7249 break; … … 7251 7252 7252 7253 /* Line 1806 of yacc.c */ 7253 #line 147 0"parser.yy"7254 #line 1473 "parser.yy" 7254 7255 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 7255 7256 break; … … 7258 7259 7259 7260 /* Line 1806 of yacc.c */ 7260 #line 147 5"parser.yy"7261 #line 1478 "parser.yy" 7261 7262 { (yyval.aggKey) = DeclarationNode::Struct; } 7262 7263 break; … … 7265 7266 7266 7267 /* Line 1806 of yacc.c */ 7267 #line 14 77"parser.yy"7268 #line 1480 "parser.yy" 7268 7269 { (yyval.aggKey) = DeclarationNode::Union; } 7269 7270 break; … … 7272 7273 7273 7274 /* Line 1806 of yacc.c */ 7274 #line 148 2"parser.yy"7275 #line 1485 "parser.yy" 7275 7276 { (yyval.decl) = 0; } 7276 7277 break; … … 7279 7280 7280 7281 /* Line 1806 of yacc.c */ 7281 #line 148 4"parser.yy"7282 #line 1487 "parser.yy" 7282 7283 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 7283 7284 break; … … 7286 7287 7287 7288 /* Line 1806 of yacc.c */ 7288 #line 149 0"parser.yy"7289 #line 1493 "parser.yy" 7289 7290 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); } 7290 7291 break; … … 7293 7294 7294 7295 /* Line 1806 of yacc.c */ 7295 #line 149 3"parser.yy"7296 #line 1496 "parser.yy" 7296 7297 { // mark all fields in list 7297 7298 for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_link() ) … … 7304 7305 7305 7306 /* Line 1806 of yacc.c */ 7306 #line 150 3"parser.yy"7307 #line 1506 "parser.yy" 7307 7308 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); } 7308 7309 break; … … 7311 7312 7312 7313 /* Line 1806 of yacc.c */ 7313 #line 150 5"parser.yy"7314 #line 1508 "parser.yy" 7314 7315 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); } 7315 7316 break; … … 7318 7319 7319 7320 /* Line 1806 of yacc.c */ 7320 #line 15 07"parser.yy"7321 #line 1510 "parser.yy" 7321 7322 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); } 7322 7323 break; … … 7325 7326 7326 7327 /* Line 1806 of yacc.c */ 7327 #line 151 2"parser.yy"7328 #line 1515 "parser.yy" 7328 7329 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7329 7330 break; … … 7332 7333 7333 7334 /* Line 1806 of yacc.c */ 7334 #line 151 4"parser.yy"7335 #line 1517 "parser.yy" 7335 7336 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); } 7336 7337 break; … … 7339 7340 7340 7341 /* Line 1806 of yacc.c */ 7341 #line 15 19"parser.yy"7342 #line 1522 "parser.yy" 7342 7343 { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ } 7343 7344 break; … … 7346 7347 7347 7348 /* Line 1806 of yacc.c */ 7348 #line 152 1"parser.yy"7349 #line 1524 "parser.yy" 7349 7350 { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); } 7350 7351 break; 7351 7352 7352 7353 case 388: 7353 7354 /* Line 1806 of yacc.c */7355 #line 1524 "parser.yy"7356 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }7357 break;7358 7359 case 389:7360 7354 7361 7355 /* Line 1806 of yacc.c */ … … 7364 7358 break; 7365 7359 7360 case 389: 7361 7362 /* Line 1806 of yacc.c */ 7363 #line 1530 "parser.yy" 7364 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 7365 break; 7366 7366 7367 case 391: 7367 7368 7368 7369 /* Line 1806 of yacc.c */ 7369 #line 153 3"parser.yy"7370 #line 1536 "parser.yy" 7370 7371 { (yyval.en) = 0; } 7371 7372 break; … … 7374 7375 7375 7376 /* Line 1806 of yacc.c */ 7376 #line 153 5"parser.yy"7377 #line 1538 "parser.yy" 7377 7378 { (yyval.en) = (yyvsp[(1) - (1)].en); } 7378 7379 break; … … 7381 7382 7382 7383 /* Line 1806 of yacc.c */ 7383 #line 154 0"parser.yy"7384 #line 1543 "parser.yy" 7384 7385 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7385 7386 break; … … 7388 7389 7389 7390 /* Line 1806 of yacc.c */ 7390 #line 15 49"parser.yy"7391 #line 1552 "parser.yy" 7391 7392 { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); } 7392 7393 break; … … 7395 7396 7396 7397 /* Line 1806 of yacc.c */ 7397 #line 155 1"parser.yy"7398 #line 1554 "parser.yy" 7398 7399 { 7399 7400 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); … … 7405 7406 7406 7407 /* Line 1806 of yacc.c */ 7407 #line 155 6"parser.yy"7408 #line 1559 "parser.yy" 7408 7409 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); } 7409 7410 break; … … 7412 7413 7413 7414 /* Line 1806 of yacc.c */ 7414 #line 15 58"parser.yy"7415 #line 1561 "parser.yy" 7415 7416 { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); } 7416 7417 break; … … 7419 7420 7420 7421 /* Line 1806 of yacc.c */ 7421 #line 156 3"parser.yy"7422 #line 1566 "parser.yy" 7422 7423 { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); } 7423 7424 break; … … 7426 7427 7427 7428 /* Line 1806 of yacc.c */ 7428 #line 156 5"parser.yy"7429 #line 1568 "parser.yy" 7429 7430 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); } 7430 7431 break; … … 7433 7434 7434 7435 /* Line 1806 of yacc.c */ 7435 #line 157 0"parser.yy"7436 #line 1573 "parser.yy" 7436 7437 { (yyval.en) = 0; } 7437 7438 break; … … 7440 7441 7441 7442 /* Line 1806 of yacc.c */ 7442 #line 157 2"parser.yy"7443 #line 1575 "parser.yy" 7443 7444 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7444 7445 break; … … 7447 7448 7448 7449 /* Line 1806 of yacc.c */ 7449 #line 15 79"parser.yy"7450 #line 1582 "parser.yy" 7450 7451 { (yyval.decl) = 0; } 7451 7452 break; … … 7454 7455 7455 7456 /* Line 1806 of yacc.c */ 7456 #line 15 87"parser.yy"7457 #line 1590 "parser.yy" 7457 7458 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7458 7459 break; … … 7461 7462 7462 7463 /* Line 1806 of yacc.c */ 7463 #line 15 89"parser.yy"7464 #line 1592 "parser.yy" 7464 7465 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7465 7466 break; … … 7468 7469 7469 7470 /* Line 1806 of yacc.c */ 7470 #line 159 1"parser.yy"7471 #line 1594 "parser.yy" 7471 7472 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7472 7473 break; … … 7475 7476 7476 7477 /* Line 1806 of yacc.c */ 7477 #line 1 599"parser.yy"7478 #line 1602 "parser.yy" 7478 7479 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7479 7480 break; … … 7482 7483 7483 7484 /* Line 1806 of yacc.c */ 7484 #line 160 1"parser.yy"7485 #line 1604 "parser.yy" 7485 7486 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7486 7487 break; … … 7489 7490 7490 7491 /* Line 1806 of yacc.c */ 7491 #line 160 3"parser.yy"7492 #line 1606 "parser.yy" 7492 7493 { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); } 7493 7494 break; … … 7496 7497 7497 7498 /* Line 1806 of yacc.c */ 7498 #line 16 09"parser.yy"7499 #line 1612 "parser.yy" 7499 7500 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7500 7501 break; … … 7503 7504 7504 7505 /* Line 1806 of yacc.c */ 7505 #line 161 4"parser.yy"7506 #line 1617 "parser.yy" 7506 7507 { (yyval.decl) = 0; } 7507 7508 break; … … 7510 7511 7511 7512 /* Line 1806 of yacc.c */ 7512 #line 162 1"parser.yy"7513 #line 1624 "parser.yy" 7513 7514 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7514 7515 break; … … 7517 7518 7518 7519 /* Line 1806 of yacc.c */ 7519 #line 16 28"parser.yy"7520 #line 1631 "parser.yy" 7520 7521 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7521 7522 break; … … 7524 7525 7525 7526 /* Line 1806 of yacc.c */ 7526 #line 163 0"parser.yy"7527 #line 1633 "parser.yy" 7527 7528 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7528 7529 break; 7529 7530 7530 7531 case 425: 7531 7532 /* Line 1806 of yacc.c */7533 #line 1639 "parser.yy"7534 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }7535 break;7536 7537 case 426:7538 7532 7539 7533 /* Line 1806 of yacc.c */ … … 7542 7536 break; 7543 7537 7538 case 426: 7539 7540 /* Line 1806 of yacc.c */ 7541 #line 1645 "parser.yy" 7542 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 7543 break; 7544 7544 7545 case 427: 7545 7546 7546 7547 /* Line 1806 of yacc.c */ 7547 #line 164 4"parser.yy"7548 #line 1647 "parser.yy" 7548 7549 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); } 7549 7550 break; … … 7552 7553 7553 7554 /* Line 1806 of yacc.c */ 7554 #line 165 4"parser.yy"7555 #line 1657 "parser.yy" 7555 7556 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7556 7557 break; … … 7559 7560 7560 7561 /* Line 1806 of yacc.c */ 7561 #line 166 0"parser.yy"7562 #line 1663 "parser.yy" 7562 7563 { 7563 7564 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7569 7570 7570 7571 /* Line 1806 of yacc.c */ 7571 #line 166 5"parser.yy"7572 #line 1668 "parser.yy" 7572 7573 { 7573 7574 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7579 7580 7580 7581 /* Line 1806 of yacc.c */ 7581 #line 167 4"parser.yy"7582 #line 1677 "parser.yy" 7582 7583 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7583 7584 break; … … 7586 7587 7587 7588 /* Line 1806 of yacc.c */ 7588 #line 168 3"parser.yy"7589 #line 1686 "parser.yy" 7589 7590 { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); } 7590 7591 break; … … 7593 7594 7594 7595 /* Line 1806 of yacc.c */ 7595 #line 168 5"parser.yy"7596 #line 1688 "parser.yy" 7596 7597 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); } 7597 7598 break; … … 7600 7601 7601 7602 /* Line 1806 of yacc.c */ 7602 #line 171 0"parser.yy"7603 #line 1713 "parser.yy" 7603 7604 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7604 7605 break; … … 7607 7608 7608 7609 /* Line 1806 of yacc.c */ 7609 #line 17 18"parser.yy"7610 #line 1721 "parser.yy" 7610 7611 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7611 7612 break; … … 7614 7615 7615 7616 /* Line 1806 of yacc.c */ 7616 #line 172 3"parser.yy"7617 #line 1726 "parser.yy" 7617 7618 { (yyval.in) = 0; } 7618 7619 break; … … 7621 7622 7622 7623 /* Line 1806 of yacc.c */ 7623 #line 172 5"parser.yy"7624 #line 1728 "parser.yy" 7624 7625 { (yyval.in) = (yyvsp[(2) - (2)].in); } 7625 7626 break; … … 7628 7629 7629 7630 /* Line 1806 of yacc.c */ 7630 #line 17 27"parser.yy"7631 #line 1730 "parser.yy" 7631 7632 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); } 7632 7633 break; … … 7635 7636 7636 7637 /* Line 1806 of yacc.c */ 7637 #line 173 1"parser.yy"7638 #line 1734 "parser.yy" 7638 7639 { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); } 7639 7640 break; … … 7642 7643 7643 7644 /* Line 1806 of yacc.c */ 7644 #line 173 2"parser.yy"7645 #line 1735 "parser.yy" 7645 7646 { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); } 7646 7647 break; … … 7649 7650 7650 7651 /* Line 1806 of yacc.c */ 7651 #line 17 37"parser.yy"7652 #line 1740 "parser.yy" 7652 7653 { (yyval.in) = 0; } 7653 7654 break; … … 7656 7657 7657 7658 /* Line 1806 of yacc.c */ 7658 #line 17 39"parser.yy"7659 #line 1742 "parser.yy" 7659 7660 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); } 7660 7661 break; … … 7663 7664 7664 7665 /* Line 1806 of yacc.c */ 7665 #line 174 0"parser.yy"7666 #line 1743 "parser.yy" 7666 7667 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link( (yyvsp[(3) - (3)].in) ) ); } 7667 7668 break; … … 7670 7671 7671 7672 /* Line 1806 of yacc.c */ 7672 #line 174 2"parser.yy"7673 #line 1745 "parser.yy" 7673 7674 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_link( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); } 7674 7675 break; … … 7677 7678 7678 7679 /* Line 1806 of yacc.c */ 7679 #line 17 58"parser.yy"7680 #line 1761 "parser.yy" 7680 7681 { (yyval.en) = new VarRefNode( (yyvsp[(1) - (2)].tok) ); } 7681 7682 break; … … 7684 7685 7685 7686 /* Line 1806 of yacc.c */ 7686 #line 176 4"parser.yy"7687 #line 1767 "parser.yy" 7687 7688 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) )); } 7688 7689 break; … … 7691 7692 7692 7693 /* Line 1806 of yacc.c */ 7693 #line 177 2"parser.yy"7694 #line 1775 "parser.yy" 7694 7695 { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(1) - (1)].tok) ) ); } 7695 7696 break; … … 7698 7699 7699 7700 /* Line 1806 of yacc.c */ 7700 #line 177 4"parser.yy"7701 #line 1777 "parser.yy" 7701 7702 { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(2) - (2)].tok) ) ); } 7702 7703 break; … … 7705 7706 7706 7707 /* Line 1806 of yacc.c */ 7707 #line 17 77"parser.yy"7708 #line 1780 "parser.yy" 7708 7709 { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); } 7709 7710 break; … … 7712 7713 7713 7714 /* Line 1806 of yacc.c */ 7714 #line 17 79"parser.yy"7715 #line 1782 "parser.yy" 7715 7716 { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); } 7716 7717 break; … … 7719 7720 7720 7721 /* Line 1806 of yacc.c */ 7721 #line 178 1"parser.yy"7722 { (yyval.en) = new DesignatorNode( new CompositeExprNode ( new OperatorNode( OperatorNode::Range ), (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ), true ); }7722 #line 1784 "parser.yy" 7723 { (yyval.en) = new DesignatorNode( new CompositeExprNode2( build_opr2( OperatorNode::Range, (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ), true ); } 7723 7724 break; 7724 7725 … … 7726 7727 7727 7728 /* Line 1806 of yacc.c */ 7728 #line 178 3"parser.yy"7729 #line 1786 "parser.yy" 7729 7730 { (yyval.en) = new DesignatorNode( (yyvsp[(4) - (6)].en) ); } 7730 7731 break; … … 7733 7734 7734 7735 /* Line 1806 of yacc.c */ 7735 #line 18 07"parser.yy"7736 #line 1810 "parser.yy" 7736 7737 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7737 7738 break; … … 7740 7741 7741 7742 /* Line 1806 of yacc.c */ 7742 #line 18 09"parser.yy"7743 #line 1812 "parser.yy" 7743 7744 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7744 7745 break; … … 7747 7748 7748 7749 /* Line 1806 of yacc.c */ 7749 #line 181 1"parser.yy"7750 #line 1814 "parser.yy" 7750 7751 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 7751 7752 break; … … 7754 7755 7755 7756 /* Line 1806 of yacc.c */ 7756 #line 18 17"parser.yy"7757 #line 1820 "parser.yy" 7757 7758 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7758 7759 break; … … 7761 7762 7762 7763 /* Line 1806 of yacc.c */ 7763 #line 18 19"parser.yy"7764 #line 1822 "parser.yy" 7764 7765 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7765 7766 break; … … 7768 7769 7769 7770 /* Line 1806 of yacc.c */ 7770 #line 182 4"parser.yy"7771 #line 1827 "parser.yy" 7771 7772 { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 7772 7773 break; … … 7775 7776 7776 7777 /* Line 1806 of yacc.c */ 7777 #line 183 0"parser.yy"7778 #line 1833 "parser.yy" 7778 7779 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); } 7779 7780 break; … … 7782 7783 7783 7784 /* Line 1806 of yacc.c */ 7784 #line 183 5"parser.yy"7785 #line 1838 "parser.yy" 7785 7786 { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); } 7786 7787 break; … … 7789 7790 7790 7791 /* Line 1806 of yacc.c */ 7791 #line 18 37"parser.yy"7792 #line 1840 "parser.yy" 7792 7793 { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); } 7793 7794 break; … … 7796 7797 7797 7798 /* Line 1806 of yacc.c */ 7798 #line 184 3"parser.yy"7799 #line 1846 "parser.yy" 7799 7800 { (yyval.tclass) = DeclarationNode::Type; } 7800 7801 break; … … 7803 7804 7804 7805 /* Line 1806 of yacc.c */ 7805 #line 184 5"parser.yy"7806 #line 1848 "parser.yy" 7806 7807 { (yyval.tclass) = DeclarationNode::Ftype; } 7807 7808 break; … … 7810 7811 7811 7812 /* Line 1806 of yacc.c */ 7812 #line 18 47"parser.yy"7813 #line 1850 "parser.yy" 7813 7814 { (yyval.tclass) = DeclarationNode::Dtype; } 7814 7815 break; … … 7817 7818 7818 7819 /* Line 1806 of yacc.c */ 7819 #line 185 2"parser.yy"7820 #line 1855 "parser.yy" 7820 7821 { (yyval.decl) = 0; } 7821 7822 break; … … 7824 7825 7825 7826 /* Line 1806 of yacc.c */ 7826 #line 185 4"parser.yy"7827 #line 1857 "parser.yy" 7827 7828 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 7828 7829 break; … … 7831 7832 7832 7833 /* Line 1806 of yacc.c */ 7833 #line 18 59"parser.yy"7834 #line 1862 "parser.yy" 7834 7835 { 7835 7836 typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) ); … … 7841 7842 7842 7843 /* Line 1806 of yacc.c */ 7843 #line 186 4"parser.yy"7844 #line 1867 "parser.yy" 7844 7845 { (yyval.decl) = (yyvsp[(4) - (5)].decl); } 7845 7846 break; … … 7848 7849 7849 7850 /* Line 1806 of yacc.c */ 7850 #line 186 6"parser.yy"7851 #line 1869 "parser.yy" 7851 7852 { (yyval.decl) = 0; } 7852 7853 break; … … 7855 7856 7856 7857 /* Line 1806 of yacc.c */ 7857 #line 187 1"parser.yy"7858 #line 1874 "parser.yy" 7858 7859 { (yyval.en) = new TypeValueNode( (yyvsp[(1) - (1)].decl) ); } 7859 7860 break; … … 7862 7863 7863 7864 /* Line 1806 of yacc.c */ 7864 #line 187 4"parser.yy"7865 #line 1877 "parser.yy" 7865 7866 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( new TypeValueNode( (yyvsp[(3) - (3)].decl) ))); } 7866 7867 break; … … 7869 7870 7870 7871 /* Line 1806 of yacc.c */ 7871 #line 187 6"parser.yy"7872 #line 1879 "parser.yy" 7872 7873 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); } 7873 7874 break; … … 7876 7877 7877 7878 /* Line 1806 of yacc.c */ 7878 #line 188 1"parser.yy"7879 #line 1884 "parser.yy" 7879 7880 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 7880 7881 break; … … 7883 7884 7884 7885 /* Line 1806 of yacc.c */ 7885 #line 188 3"parser.yy"7886 #line 1886 "parser.yy" 7886 7887 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); } 7887 7888 break; … … 7890 7891 7891 7892 /* Line 1806 of yacc.c */ 7892 #line 188 5"parser.yy"7893 #line 1888 "parser.yy" 7893 7894 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); } 7894 7895 break; … … 7897 7898 7898 7899 /* Line 1806 of yacc.c */ 7899 #line 189 0"parser.yy"7900 #line 1893 "parser.yy" 7900 7901 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); } 7901 7902 break; … … 7904 7905 7905 7906 /* Line 1806 of yacc.c */ 7906 #line 189 2"parser.yy"7907 #line 1895 "parser.yy" 7907 7908 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); } 7908 7909 break; … … 7911 7912 7912 7913 /* Line 1806 of yacc.c */ 7913 #line 1 897"parser.yy"7914 #line 1900 "parser.yy" 7914 7915 { 7915 7916 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD ); … … 7921 7922 7922 7923 /* Line 1806 of yacc.c */ 7923 #line 190 2"parser.yy"7924 #line 1905 "parser.yy" 7924 7925 { 7925 7926 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG ); … … 7931 7932 7932 7933 /* Line 1806 of yacc.c */ 7933 #line 191 0"parser.yy"7934 #line 1913 "parser.yy" 7934 7935 { 7935 7936 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID ); … … 7941 7942 7942 7943 /* Line 1806 of yacc.c */ 7943 #line 191 5"parser.yy"7944 #line 1918 "parser.yy" 7944 7945 { 7945 7946 typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) ); … … 7951 7952 7952 7953 /* Line 1806 of yacc.c */ 7953 #line 192 0"parser.yy"7954 #line 1923 "parser.yy" 7954 7955 { 7955 7956 typedefTable.leaveTrait(); … … 7962 7963 7963 7964 /* Line 1806 of yacc.c */ 7964 #line 193 0"parser.yy"7965 #line 1933 "parser.yy" 7965 7966 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 7966 7967 break; … … 7969 7970 7970 7971 /* Line 1806 of yacc.c */ 7971 #line 194 0"parser.yy"7972 #line 1943 "parser.yy" 7972 7973 { 7973 7974 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7979 7980 7980 7981 /* Line 1806 of yacc.c */ 7981 #line 194 5"parser.yy"7982 #line 1948 "parser.yy" 7982 7983 { 7983 7984 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7989 7990 7990 7991 /* Line 1806 of yacc.c */ 7991 #line 195 0"parser.yy"7992 #line 1953 "parser.yy" 7992 7993 { 7993 7994 typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); … … 7999 8000 8000 8001 /* Line 1806 of yacc.c */ 8001 #line 19 58"parser.yy"8002 #line 1961 "parser.yy" 8002 8003 { 8003 8004 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 8009 8010 8010 8011 /* Line 1806 of yacc.c */ 8011 #line 196 3"parser.yy"8012 #line 1966 "parser.yy" 8012 8013 { 8013 8014 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 8019 8020 8020 8021 /* Line 1806 of yacc.c */ 8021 #line 197 3"parser.yy"8022 #line 1976 "parser.yy" 8022 8023 {} 8023 8024 break; … … 8026 8027 8027 8028 /* Line 1806 of yacc.c */ 8028 #line 197 5"parser.yy"8029 #line 1978 "parser.yy" 8029 8030 { 8030 8031 if ( theTree ) { … … 8039 8040 8040 8041 /* Line 1806 of yacc.c */ 8041 #line 19 87"parser.yy"8042 #line 1990 "parser.yy" 8042 8043 { (yyval.decl) = ( (yyvsp[(1) - (3)].decl) != NULL ) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); } 8043 8044 break; … … 8046 8047 8047 8048 /* Line 1806 of yacc.c */ 8048 #line 199 2"parser.yy"8049 #line 1995 "parser.yy" 8049 8050 { (yyval.decl) = 0; } 8050 8051 break; … … 8053 8054 8054 8055 /* Line 1806 of yacc.c */ 8055 #line 200 0"parser.yy"8056 #line 2003 "parser.yy" 8056 8057 {} 8057 8058 break; … … 8060 8061 8061 8062 /* Line 1806 of yacc.c */ 8062 #line 200 2"parser.yy"8063 #line 2005 "parser.yy" 8063 8064 { 8064 8065 linkageStack.push( linkage ); … … 8070 8071 8071 8072 /* Line 1806 of yacc.c */ 8072 #line 20 07"parser.yy"8073 #line 2010 "parser.yy" 8073 8074 { 8074 8075 linkage = linkageStack.top(); … … 8081 8082 8082 8083 /* Line 1806 of yacc.c */ 8083 #line 201 3"parser.yy"8084 #line 2016 "parser.yy" 8084 8085 { // mark all fields in list 8085 8086 for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_link() ) … … 8092 8093 8093 8094 /* Line 1806 of yacc.c */ 8094 #line 20 28"parser.yy"8095 #line 2031 "parser.yy" 8095 8096 { 8096 8097 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8103 8104 8104 8105 /* Line 1806 of yacc.c */ 8105 #line 203 4"parser.yy"8106 #line 2037 "parser.yy" 8106 8107 { 8107 8108 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8114 8115 8115 8116 /* Line 1806 of yacc.c */ 8116 #line 204 3"parser.yy"8117 #line 2046 "parser.yy" 8117 8118 { 8118 8119 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8125 8126 8126 8127 /* Line 1806 of yacc.c */ 8127 #line 20 49"parser.yy"8128 #line 2052 "parser.yy" 8128 8129 { 8129 8130 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8136 8137 8137 8138 /* Line 1806 of yacc.c */ 8138 #line 205 5"parser.yy"8139 #line 2058 "parser.yy" 8139 8140 { 8140 8141 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8147 8148 8148 8149 /* Line 1806 of yacc.c */ 8149 #line 206 1"parser.yy"8150 #line 2064 "parser.yy" 8150 8151 { 8151 8152 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8158 8159 8159 8160 /* Line 1806 of yacc.c */ 8160 #line 20 67"parser.yy"8161 #line 2070 "parser.yy" 8161 8162 { 8162 8163 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8169 8170 8170 8171 /* Line 1806 of yacc.c */ 8171 #line 207 5"parser.yy"8172 #line 2078 "parser.yy" 8172 8173 { 8173 8174 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8180 8181 8181 8182 /* Line 1806 of yacc.c */ 8182 #line 208 1"parser.yy"8183 #line 2084 "parser.yy" 8183 8184 { 8184 8185 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8191 8192 8192 8193 /* Line 1806 of yacc.c */ 8193 #line 20 89"parser.yy"8194 #line 2092 "parser.yy" 8194 8195 { 8195 8196 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8202 8203 8203 8204 /* Line 1806 of yacc.c */ 8204 #line 209 5"parser.yy"8205 #line 2098 "parser.yy" 8205 8206 { 8206 8207 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8213 8214 8214 8215 /* Line 1806 of yacc.c */ 8215 #line 211 0"parser.yy"8216 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }8216 #line 2113 "parser.yy" 8217 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::Range, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 8217 8218 break; 8218 8219 … … 8220 8221 8221 8222 /* Line 1806 of yacc.c */ 8222 #line 212 0"parser.yy"8223 #line 2123 "parser.yy" 8223 8224 { (yyval.decl) = 0; } 8224 8225 break; … … 8227 8228 8228 8229 /* Line 1806 of yacc.c */ 8229 #line 21 27"parser.yy"8230 #line 2130 "parser.yy" 8230 8231 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 8231 8232 break; … … 8234 8235 8235 8236 /* Line 1806 of yacc.c */ 8236 #line 213 3"parser.yy"8237 #line 2136 "parser.yy" 8237 8238 { (yyval.decl) = 0; } 8238 8239 break; 8239 8240 8240 8241 case 560: 8241 8242 /* Line 1806 of yacc.c */8243 #line 2148 "parser.yy"8244 {}8245 break;8246 8247 case 561:8248 8249 /* Line 1806 of yacc.c */8250 #line 2149 "parser.yy"8251 {}8252 break;8253 8254 case 562:8255 8256 /* Line 1806 of yacc.c */8257 #line 2150 "parser.yy"8258 {}8259 break;8260 8261 case 563:8262 8242 8263 8243 /* Line 1806 of yacc.c */ … … 8266 8246 break; 8267 8247 8248 case 561: 8249 8250 /* Line 1806 of yacc.c */ 8251 #line 2152 "parser.yy" 8252 {} 8253 break; 8254 8255 case 562: 8256 8257 /* Line 1806 of yacc.c */ 8258 #line 2153 "parser.yy" 8259 {} 8260 break; 8261 8262 case 563: 8263 8264 /* Line 1806 of yacc.c */ 8265 #line 2154 "parser.yy" 8266 {} 8267 break; 8268 8268 8269 case 564: 8269 8270 /* Line 1806 of yacc.c */8271 #line 2186 "parser.yy"8272 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8273 break;8274 8275 case 566:8276 8270 8277 8271 /* Line 1806 of yacc.c */ … … 8280 8274 break; 8281 8275 8276 case 566: 8277 8278 /* Line 1806 of yacc.c */ 8279 #line 2192 "parser.yy" 8280 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8281 break; 8282 8282 8283 case 567: 8283 8284 8284 8285 /* Line 1806 of yacc.c */ 8285 #line 219 1"parser.yy"8286 #line 2194 "parser.yy" 8286 8287 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8287 8288 break; … … 8290 8291 8291 8292 /* Line 1806 of yacc.c */ 8292 #line 219 6"parser.yy"8293 #line 2199 "parser.yy" 8293 8294 { 8294 8295 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8300 8301 8301 8302 /* Line 1806 of yacc.c */ 8302 #line 220 1"parser.yy"8303 #line 2204 "parser.yy" 8303 8304 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8304 8305 break; … … 8307 8308 8308 8309 /* Line 1806 of yacc.c */ 8309 #line 220 6"parser.yy"8310 #line 2209 "parser.yy" 8310 8311 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8311 8312 break; … … 8314 8315 8315 8316 /* Line 1806 of yacc.c */ 8316 #line 22 08"parser.yy"8317 #line 2211 "parser.yy" 8317 8318 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8318 8319 break; … … 8321 8322 8322 8323 /* Line 1806 of yacc.c */ 8323 #line 221 0"parser.yy"8324 #line 2213 "parser.yy" 8324 8325 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8325 8326 break; … … 8328 8329 8329 8330 /* Line 1806 of yacc.c */ 8330 #line 221 5"parser.yy"8331 #line 2218 "parser.yy" 8331 8332 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8332 8333 break; … … 8335 8336 8336 8337 /* Line 1806 of yacc.c */ 8337 #line 22 17"parser.yy"8338 #line 2220 "parser.yy" 8338 8339 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8339 8340 break; … … 8342 8343 8343 8344 /* Line 1806 of yacc.c */ 8344 #line 22 19"parser.yy"8345 #line 2222 "parser.yy" 8345 8346 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8346 8347 break; … … 8349 8350 8350 8351 /* Line 1806 of yacc.c */ 8351 #line 222 1"parser.yy"8352 #line 2224 "parser.yy" 8352 8353 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8353 8354 break; … … 8356 8357 8357 8358 /* Line 1806 of yacc.c */ 8358 #line 222 6"parser.yy"8359 #line 2229 "parser.yy" 8359 8360 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8360 8361 break; … … 8363 8364 8364 8365 /* Line 1806 of yacc.c */ 8365 #line 22 28"parser.yy"8366 #line 2231 "parser.yy" 8366 8367 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8367 8368 break; 8368 8369 8369 8370 case 579: 8370 8371 /* Line 1806 of yacc.c */8372 #line 2237 "parser.yy"8373 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8374 break;8375 8376 case 581:8377 8371 8378 8372 /* Line 1806 of yacc.c */ … … 8381 8375 break; 8382 8376 8377 case 581: 8378 8379 /* Line 1806 of yacc.c */ 8380 #line 2243 "parser.yy" 8381 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8382 break; 8383 8383 8384 case 582: 8384 8385 8385 8386 /* Line 1806 of yacc.c */ 8386 #line 224 5"parser.yy"8387 #line 2248 "parser.yy" 8387 8388 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8388 8389 break; … … 8391 8392 8392 8393 /* Line 1806 of yacc.c */ 8393 #line 22 47"parser.yy"8394 #line 2250 "parser.yy" 8394 8395 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8395 8396 break; … … 8398 8399 8399 8400 /* Line 1806 of yacc.c */ 8400 #line 22 49"parser.yy"8401 #line 2252 "parser.yy" 8401 8402 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8402 8403 break; … … 8405 8406 8406 8407 /* Line 1806 of yacc.c */ 8407 #line 225 4"parser.yy"8408 #line 2257 "parser.yy" 8408 8409 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8409 8410 break; … … 8412 8413 8413 8414 /* Line 1806 of yacc.c */ 8414 #line 225 6"parser.yy"8415 #line 2259 "parser.yy" 8415 8416 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8416 8417 break; … … 8419 8420 8420 8421 /* Line 1806 of yacc.c */ 8421 #line 22 58"parser.yy"8422 #line 2261 "parser.yy" 8422 8423 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8423 8424 break; … … 8426 8427 8427 8428 /* Line 1806 of yacc.c */ 8428 #line 226 3"parser.yy"8429 #line 2266 "parser.yy" 8429 8430 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8430 8431 break; … … 8433 8434 8434 8435 /* Line 1806 of yacc.c */ 8435 #line 226 5"parser.yy"8436 #line 2268 "parser.yy" 8436 8437 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8437 8438 break; … … 8440 8441 8441 8442 /* Line 1806 of yacc.c */ 8442 #line 22 67"parser.yy"8443 #line 2270 "parser.yy" 8443 8444 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8444 8445 break; … … 8447 8448 8448 8449 /* Line 1806 of yacc.c */ 8449 #line 228 2"parser.yy"8450 #line 2285 "parser.yy" 8450 8451 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); } 8451 8452 break; … … 8454 8455 8455 8456 /* Line 1806 of yacc.c */ 8456 #line 228 4"parser.yy"8457 #line 2287 "parser.yy" 8457 8458 { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); } 8458 8459 break; … … 8461 8462 8462 8463 /* Line 1806 of yacc.c */ 8463 #line 228 6"parser.yy"8464 #line 2289 "parser.yy" 8464 8465 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8465 8466 break; … … 8468 8469 8469 8470 /* Line 1806 of yacc.c */ 8470 #line 229 1"parser.yy"8471 #line 2294 "parser.yy" 8471 8472 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8472 8473 break; … … 8475 8476 8476 8477 /* Line 1806 of yacc.c */ 8477 #line 229 3"parser.yy"8478 #line 2296 "parser.yy" 8478 8479 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8479 8480 break; … … 8482 8483 8483 8484 /* Line 1806 of yacc.c */ 8484 #line 229 5"parser.yy"8485 #line 2298 "parser.yy" 8485 8486 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8486 8487 break; … … 8489 8490 8490 8491 /* Line 1806 of yacc.c */ 8491 #line 230 0"parser.yy"8492 #line 2303 "parser.yy" 8492 8493 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8493 8494 break; … … 8496 8497 8497 8498 /* Line 1806 of yacc.c */ 8498 #line 230 2"parser.yy"8499 #line 2305 "parser.yy" 8499 8500 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8500 8501 break; … … 8503 8504 8504 8505 /* Line 1806 of yacc.c */ 8505 #line 230 4"parser.yy"8506 #line 2307 "parser.yy" 8506 8507 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8507 8508 break; 8508 8509 8509 8510 case 603: 8510 8511 /* Line 1806 of yacc.c */8512 #line 2319 "parser.yy"8513 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8514 break;8515 8516 case 605:8517 8511 8518 8512 /* Line 1806 of yacc.c */ … … 8521 8515 break; 8522 8516 8517 case 605: 8518 8519 /* Line 1806 of yacc.c */ 8520 #line 2325 "parser.yy" 8521 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8522 break; 8523 8523 8524 case 606: 8524 8525 8525 8526 /* Line 1806 of yacc.c */ 8526 #line 232 4"parser.yy"8527 #line 2327 "parser.yy" 8527 8528 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8528 8529 break; … … 8531 8532 8532 8533 /* Line 1806 of yacc.c */ 8533 #line 233 0"parser.yy"8534 #line 2333 "parser.yy" 8534 8535 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8535 8536 break; … … 8538 8539 8539 8540 /* Line 1806 of yacc.c */ 8540 #line 233 5"parser.yy"8541 #line 2338 "parser.yy" 8541 8542 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8542 8543 break; … … 8545 8546 8546 8547 /* Line 1806 of yacc.c */ 8547 #line 23 37"parser.yy"8548 #line 2340 "parser.yy" 8548 8549 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8549 8550 break; … … 8552 8553 8553 8554 /* Line 1806 of yacc.c */ 8554 #line 23 39"parser.yy"8555 #line 2342 "parser.yy" 8555 8556 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8556 8557 break; … … 8559 8560 8560 8561 /* Line 1806 of yacc.c */ 8561 #line 234 4"parser.yy"8562 #line 2347 "parser.yy" 8562 8563 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8563 8564 break; … … 8566 8567 8567 8568 /* Line 1806 of yacc.c */ 8568 #line 234 6"parser.yy"8569 #line 2349 "parser.yy" 8569 8570 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8570 8571 break; … … 8573 8574 8574 8575 /* Line 1806 of yacc.c */ 8575 #line 23 48"parser.yy"8576 #line 2351 "parser.yy" 8576 8577 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8577 8578 break; … … 8580 8581 8581 8582 /* Line 1806 of yacc.c */ 8582 #line 235 0"parser.yy"8583 #line 2353 "parser.yy" 8583 8584 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8584 8585 break; … … 8587 8588 8588 8589 /* Line 1806 of yacc.c */ 8589 #line 235 5"parser.yy"8590 #line 2358 "parser.yy" 8590 8591 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8591 8592 break; … … 8594 8595 8595 8596 /* Line 1806 of yacc.c */ 8596 #line 23 57"parser.yy"8597 #line 2360 "parser.yy" 8597 8598 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8598 8599 break; … … 8601 8602 8602 8603 /* Line 1806 of yacc.c */ 8603 #line 23 59"parser.yy"8604 #line 2362 "parser.yy" 8604 8605 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8605 8606 break; 8606 8607 8607 8608 case 619: 8608 8609 /* Line 1806 of yacc.c */8610 #line 2369 "parser.yy"8611 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8612 break;8613 8614 case 621:8615 8609 8616 8610 /* Line 1806 of yacc.c */ … … 8619 8613 break; 8620 8614 8615 case 621: 8616 8617 /* Line 1806 of yacc.c */ 8618 #line 2375 "parser.yy" 8619 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8620 break; 8621 8621 8622 case 622: 8622 8623 8623 8624 /* Line 1806 of yacc.c */ 8624 #line 237 4"parser.yy"8625 #line 2377 "parser.yy" 8625 8626 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8626 8627 break; … … 8629 8630 8630 8631 /* Line 1806 of yacc.c */ 8631 #line 23 79"parser.yy"8632 #line 2382 "parser.yy" 8632 8633 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8633 8634 break; … … 8636 8637 8637 8638 /* Line 1806 of yacc.c */ 8638 #line 238 1"parser.yy"8639 #line 2384 "parser.yy" 8639 8640 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8640 8641 break; … … 8643 8644 8644 8645 /* Line 1806 of yacc.c */ 8645 #line 238 3"parser.yy"8646 #line 2386 "parser.yy" 8646 8647 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8647 8648 break; … … 8650 8651 8651 8652 /* Line 1806 of yacc.c */ 8652 #line 23 88"parser.yy"8653 #line 2391 "parser.yy" 8653 8654 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8654 8655 break; … … 8657 8658 8658 8659 /* Line 1806 of yacc.c */ 8659 #line 239 0"parser.yy"8660 #line 2393 "parser.yy" 8660 8661 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8661 8662 break; … … 8664 8665 8665 8666 /* Line 1806 of yacc.c */ 8666 #line 239 2"parser.yy"8667 #line 2395 "parser.yy" 8667 8668 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8668 8669 break; … … 8671 8672 8672 8673 /* Line 1806 of yacc.c */ 8673 #line 239 4"parser.yy"8674 #line 2397 "parser.yy" 8674 8675 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8675 8676 break; … … 8678 8679 8679 8680 /* Line 1806 of yacc.c */ 8680 #line 2 399"parser.yy"8681 #line 2402 "parser.yy" 8681 8682 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8682 8683 break; … … 8685 8686 8686 8687 /* Line 1806 of yacc.c */ 8687 #line 240 1"parser.yy"8688 #line 2404 "parser.yy" 8688 8689 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8689 8690 break; … … 8692 8693 8693 8694 /* Line 1806 of yacc.c */ 8694 #line 240 3"parser.yy"8695 #line 2406 "parser.yy" 8695 8696 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8696 8697 break; 8697 8698 8698 8699 case 633: 8699 8700 /* Line 1806 of yacc.c */8701 #line 2434 "parser.yy"8702 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8703 break;8704 8705 case 635:8706 8700 8707 8701 /* Line 1806 of yacc.c */ … … 8710 8704 break; 8711 8705 8706 case 635: 8707 8708 /* Line 1806 of yacc.c */ 8709 #line 2440 "parser.yy" 8710 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8711 break; 8712 8712 8713 case 636: 8713 8714 8714 8715 /* Line 1806 of yacc.c */ 8715 #line 24 39"parser.yy"8716 #line 2442 "parser.yy" 8716 8717 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8717 8718 break; … … 8720 8721 8721 8722 /* Line 1806 of yacc.c */ 8722 #line 244 4"parser.yy"8723 #line 2447 "parser.yy" 8723 8724 { 8724 8725 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8730 8731 8731 8732 /* Line 1806 of yacc.c */ 8732 #line 24 49"parser.yy"8733 #line 2452 "parser.yy" 8733 8734 { 8734 8735 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8740 8741 8741 8742 /* Line 1806 of yacc.c */ 8742 #line 24 57"parser.yy"8743 #line 2460 "parser.yy" 8743 8744 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8744 8745 break; … … 8747 8748 8748 8749 /* Line 1806 of yacc.c */ 8749 #line 24 59"parser.yy"8750 #line 2462 "parser.yy" 8750 8751 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8751 8752 break; … … 8754 8755 8755 8756 /* Line 1806 of yacc.c */ 8756 #line 246 1"parser.yy"8757 #line 2464 "parser.yy" 8757 8758 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8758 8759 break; … … 8761 8762 8762 8763 /* Line 1806 of yacc.c */ 8763 #line 246 6"parser.yy"8764 #line 2469 "parser.yy" 8764 8765 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8765 8766 break; … … 8768 8769 8769 8770 /* Line 1806 of yacc.c */ 8770 #line 24 68"parser.yy"8771 #line 2471 "parser.yy" 8771 8772 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8772 8773 break; … … 8775 8776 8776 8777 /* Line 1806 of yacc.c */ 8777 #line 247 3"parser.yy"8778 #line 2476 "parser.yy" 8778 8779 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8779 8780 break; … … 8782 8783 8783 8784 /* Line 1806 of yacc.c */ 8784 #line 247 5"parser.yy"8785 #line 2478 "parser.yy" 8785 8786 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8786 8787 break; … … 8789 8790 8790 8791 /* Line 1806 of yacc.c */ 8791 #line 249 0"parser.yy"8792 #line 2493 "parser.yy" 8792 8793 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8793 8794 break; … … 8796 8797 8797 8798 /* Line 1806 of yacc.c */ 8798 #line 249 2"parser.yy"8799 #line 2495 "parser.yy" 8799 8800 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8800 8801 break; … … 8803 8804 8804 8805 /* Line 1806 of yacc.c */ 8805 #line 2 497"parser.yy"8806 #line 2500 "parser.yy" 8806 8807 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8807 8808 break; … … 8810 8811 8811 8812 /* Line 1806 of yacc.c */ 8812 #line 2 499"parser.yy"8813 #line 2502 "parser.yy" 8813 8814 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8814 8815 break; … … 8817 8818 8818 8819 /* Line 1806 of yacc.c */ 8819 #line 250 1"parser.yy"8820 #line 2504 "parser.yy" 8820 8821 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8821 8822 break; … … 8824 8825 8825 8826 /* Line 1806 of yacc.c */ 8826 #line 250 3"parser.yy"8827 #line 2506 "parser.yy" 8827 8828 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8828 8829 break; … … 8831 8832 8832 8833 /* Line 1806 of yacc.c */ 8833 #line 250 5"parser.yy"8834 #line 2508 "parser.yy" 8834 8835 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8835 8836 break; … … 8838 8839 8839 8840 /* Line 1806 of yacc.c */ 8840 #line 251 1"parser.yy"8841 #line 2514 "parser.yy" 8841 8842 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8842 8843 break; … … 8845 8846 8846 8847 /* Line 1806 of yacc.c */ 8847 #line 251 3"parser.yy"8848 #line 2516 "parser.yy" 8848 8849 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8849 8850 break; … … 8852 8853 8853 8854 /* Line 1806 of yacc.c */ 8854 #line 251 5"parser.yy"8855 #line 2518 "parser.yy" 8855 8856 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8856 8857 break; … … 8859 8860 8860 8861 /* Line 1806 of yacc.c */ 8861 #line 252 0"parser.yy"8862 #line 2523 "parser.yy" 8862 8863 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); } 8863 8864 break; … … 8866 8867 8867 8868 /* Line 1806 of yacc.c */ 8868 #line 252 2"parser.yy"8869 #line 2525 "parser.yy" 8869 8870 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8870 8871 break; … … 8873 8874 8874 8875 /* Line 1806 of yacc.c */ 8875 #line 252 4"parser.yy"8876 #line 2527 "parser.yy" 8876 8877 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8877 8878 break; … … 8880 8881 8881 8882 /* Line 1806 of yacc.c */ 8882 #line 253 0"parser.yy"8883 #line 2533 "parser.yy" 8883 8884 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8884 8885 break; … … 8887 8888 8888 8889 /* Line 1806 of yacc.c */ 8889 #line 253 2"parser.yy"8890 #line 2535 "parser.yy" 8890 8891 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); } 8891 8892 break; … … 8894 8895 8895 8896 /* Line 1806 of yacc.c */ 8896 #line 25 38"parser.yy"8897 #line 2541 "parser.yy" 8897 8898 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); } 8898 8899 break; … … 8901 8902 8902 8903 /* Line 1806 of yacc.c */ 8903 #line 254 0"parser.yy"8904 #line 2543 "parser.yy" 8904 8905 { (yyval.decl) = DeclarationNode::newVarArray( 0 ); } 8905 8906 break; … … 8908 8909 8909 8910 /* Line 1806 of yacc.c */ 8910 #line 254 2"parser.yy"8911 #line 2545 "parser.yy" 8911 8912 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); } 8912 8913 break; … … 8915 8916 8916 8917 /* Line 1806 of yacc.c */ 8917 #line 254 4"parser.yy"8918 #line 2547 "parser.yy" 8918 8919 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); } 8919 8920 break; … … 8922 8923 8923 8924 /* Line 1806 of yacc.c */ 8924 #line 25 59"parser.yy"8925 #line 2562 "parser.yy" 8925 8926 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8926 8927 break; … … 8929 8930 8930 8931 /* Line 1806 of yacc.c */ 8931 #line 256 1"parser.yy"8932 #line 2564 "parser.yy" 8932 8933 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8933 8934 break; … … 8936 8937 8937 8938 /* Line 1806 of yacc.c */ 8938 #line 256 6"parser.yy"8939 #line 2569 "parser.yy" 8939 8940 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8940 8941 break; … … 8943 8944 8944 8945 /* Line 1806 of yacc.c */ 8945 #line 25 68"parser.yy"8946 #line 2571 "parser.yy" 8946 8947 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8947 8948 break; … … 8950 8951 8951 8952 /* Line 1806 of yacc.c */ 8952 #line 257 0"parser.yy"8953 #line 2573 "parser.yy" 8953 8954 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8954 8955 break; … … 8957 8958 8958 8959 /* Line 1806 of yacc.c */ 8959 #line 257 2"parser.yy"8960 #line 2575 "parser.yy" 8960 8961 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8961 8962 break; … … 8964 8965 8965 8966 /* Line 1806 of yacc.c */ 8966 #line 257 4"parser.yy"8967 #line 2577 "parser.yy" 8967 8968 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8968 8969 break; … … 8971 8972 8972 8973 /* Line 1806 of yacc.c */ 8973 #line 258 0"parser.yy"8974 #line 2583 "parser.yy" 8974 8975 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8975 8976 break; … … 8978 8979 8979 8980 /* Line 1806 of yacc.c */ 8980 #line 258 2"parser.yy"8981 #line 2585 "parser.yy" 8981 8982 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8982 8983 break; … … 8985 8986 8986 8987 /* Line 1806 of yacc.c */ 8987 #line 258 4"parser.yy"8988 #line 2587 "parser.yy" 8988 8989 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8989 8990 break; … … 8992 8993 8993 8994 /* Line 1806 of yacc.c */ 8994 #line 25 89"parser.yy"8995 #line 2592 "parser.yy" 8995 8996 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); } 8996 8997 break; … … 8999 9000 9000 9001 /* Line 1806 of yacc.c */ 9001 #line 259 1"parser.yy"9002 #line 2594 "parser.yy" 9002 9003 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 9003 9004 break; … … 9006 9007 9007 9008 /* Line 1806 of yacc.c */ 9008 #line 259 3"parser.yy"9009 #line 2596 "parser.yy" 9009 9010 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 9010 9011 break; … … 9013 9014 9014 9015 /* Line 1806 of yacc.c */ 9015 #line 260 0"parser.yy"9016 #line 2603 "parser.yy" 9016 9017 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 9017 9018 break; … … 9020 9021 9021 9022 /* Line 1806 of yacc.c */ 9022 #line 261 1"parser.yy"9023 #line 2614 "parser.yy" 9023 9024 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 9024 9025 break; … … 9027 9028 9028 9029 /* Line 1806 of yacc.c */ 9029 #line 261 4"parser.yy"9030 #line 2617 "parser.yy" 9030 9031 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 9031 9032 break; … … 9034 9035 9035 9036 /* Line 1806 of yacc.c */ 9036 #line 261 6"parser.yy"9037 #line 2619 "parser.yy" 9037 9038 { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); } 9038 9039 break; … … 9041 9042 9042 9043 /* Line 1806 of yacc.c */ 9043 #line 26 19"parser.yy"9044 #line 2622 "parser.yy" 9044 9045 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 9045 9046 break; … … 9048 9049 9049 9050 /* Line 1806 of yacc.c */ 9050 #line 262 1"parser.yy"9051 #line 2624 "parser.yy" 9051 9052 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); } 9052 9053 break; … … 9055 9056 9056 9057 /* Line 1806 of yacc.c */ 9057 #line 262 3"parser.yy"9058 #line 2626 "parser.yy" 9058 9059 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); } 9059 9060 break; … … 9062 9063 9063 9064 /* Line 1806 of yacc.c */ 9064 #line 26 37"parser.yy"9065 #line 2640 "parser.yy" 9065 9066 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 9066 9067 break; … … 9069 9070 9070 9071 /* Line 1806 of yacc.c */ 9071 #line 26 39"parser.yy"9072 #line 2642 "parser.yy" 9072 9073 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 9073 9074 break; … … 9076 9077 9077 9078 /* Line 1806 of yacc.c */ 9078 #line 264 4"parser.yy"9079 #line 2647 "parser.yy" 9079 9080 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 9080 9081 break; … … 9083 9084 9084 9085 /* Line 1806 of yacc.c */ 9085 #line 264 6"parser.yy"9086 #line 2649 "parser.yy" 9086 9087 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 9087 9088 break; … … 9090 9091 9091 9092 /* Line 1806 of yacc.c */ 9092 #line 26 48"parser.yy"9093 #line 2651 "parser.yy" 9093 9094 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 9094 9095 break; … … 9097 9098 9098 9099 /* Line 1806 of yacc.c */ 9099 #line 265 0"parser.yy"9100 #line 2653 "parser.yy" 9100 9101 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 9101 9102 break; … … 9104 9105 9105 9106 /* Line 1806 of yacc.c */ 9106 #line 265 2"parser.yy"9107 #line 2655 "parser.yy" 9107 9108 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 9108 9109 break; … … 9111 9112 9112 9113 /* Line 1806 of yacc.c */ 9113 #line 26 58"parser.yy"9114 #line 2661 "parser.yy" 9114 9115 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 9115 9116 break; … … 9118 9119 9119 9120 /* Line 1806 of yacc.c */ 9120 #line 266 0"parser.yy"9121 #line 2663 "parser.yy" 9121 9122 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 9122 9123 break; … … 9125 9126 9126 9127 /* Line 1806 of yacc.c */ 9127 #line 266 2"parser.yy"9128 #line 2665 "parser.yy" 9128 9129 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 9129 9130 break; … … 9132 9133 9133 9134 /* Line 1806 of yacc.c */ 9134 #line 26 67"parser.yy"9135 #line 2670 "parser.yy" 9135 9136 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 9136 9137 break; … … 9139 9140 9140 9141 /* Line 1806 of yacc.c */ 9141 #line 26 69"parser.yy"9142 #line 2672 "parser.yy" 9142 9143 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 9143 9144 break; … … 9146 9147 9147 9148 /* Line 1806 of yacc.c */ 9148 #line 26 79"parser.yy"9149 #line 2682 "parser.yy" 9149 9150 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 9150 9151 break; … … 9153 9154 9154 9155 /* Line 1806 of yacc.c */ 9155 #line 26 89"parser.yy"9156 #line 2692 "parser.yy" 9156 9157 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9157 9158 break; … … 9160 9161 9161 9162 /* Line 1806 of yacc.c */ 9162 #line 269 1"parser.yy"9163 #line 2694 "parser.yy" 9163 9164 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9164 9165 break; … … 9167 9168 9168 9169 /* Line 1806 of yacc.c */ 9169 #line 269 3"parser.yy"9170 #line 2696 "parser.yy" 9170 9171 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9171 9172 break; … … 9174 9175 9175 9176 /* Line 1806 of yacc.c */ 9176 #line 269 5"parser.yy"9177 #line 2698 "parser.yy" 9177 9178 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9178 9179 break; … … 9181 9182 9182 9183 /* Line 1806 of yacc.c */ 9183 #line 2 697"parser.yy"9184 #line 2700 "parser.yy" 9184 9185 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9185 9186 break; … … 9188 9189 9189 9190 /* Line 1806 of yacc.c */ 9190 #line 2 699"parser.yy"9191 #line 2702 "parser.yy" 9191 9192 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9192 9193 break; … … 9195 9196 9196 9197 /* Line 1806 of yacc.c */ 9197 #line 270 6"parser.yy"9198 #line 2709 "parser.yy" 9198 9199 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9199 9200 break; … … 9202 9203 9203 9204 /* Line 1806 of yacc.c */ 9204 #line 27 08"parser.yy"9205 #line 2711 "parser.yy" 9205 9206 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9206 9207 break; … … 9209 9210 9210 9211 /* Line 1806 of yacc.c */ 9211 #line 271 0"parser.yy"9212 #line 2713 "parser.yy" 9212 9213 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9213 9214 break; … … 9216 9217 9217 9218 /* Line 1806 of yacc.c */ 9218 #line 271 2"parser.yy"9219 #line 2715 "parser.yy" 9219 9220 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 9220 9221 break; … … 9223 9224 9224 9225 /* Line 1806 of yacc.c */ 9225 #line 271 4"parser.yy"9226 #line 2717 "parser.yy" 9226 9227 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9227 9228 break; … … 9230 9231 9231 9232 /* Line 1806 of yacc.c */ 9232 #line 271 6"parser.yy"9233 #line 2719 "parser.yy" 9233 9234 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9234 9235 break; … … 9237 9238 9238 9239 /* Line 1806 of yacc.c */ 9239 #line 27 18"parser.yy"9240 #line 2721 "parser.yy" 9240 9241 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9241 9242 break; … … 9244 9245 9245 9246 /* Line 1806 of yacc.c */ 9246 #line 272 0"parser.yy"9247 #line 2723 "parser.yy" 9247 9248 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9248 9249 break; … … 9251 9252 9252 9253 /* Line 1806 of yacc.c */ 9253 #line 272 2"parser.yy"9254 #line 2725 "parser.yy" 9254 9255 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 9255 9256 break; … … 9258 9259 9259 9260 /* Line 1806 of yacc.c */ 9260 #line 272 4"parser.yy"9261 #line 2727 "parser.yy" 9261 9262 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9262 9263 break; … … 9265 9266 9266 9267 /* Line 1806 of yacc.c */ 9267 #line 27 29"parser.yy"9268 #line 2732 "parser.yy" 9268 9269 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 9269 9270 break; … … 9272 9273 9273 9274 /* Line 1806 of yacc.c */ 9274 #line 273 1"parser.yy"9275 #line 2734 "parser.yy" 9275 9276 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 9276 9277 break; … … 9279 9280 9280 9281 /* Line 1806 of yacc.c */ 9281 #line 273 6"parser.yy"9282 #line 2739 "parser.yy" 9282 9283 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); } 9283 9284 break; … … 9286 9287 9287 9288 /* Line 1806 of yacc.c */ 9288 #line 27 38"parser.yy"9289 #line 2741 "parser.yy" 9289 9290 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); } 9290 9291 break; … … 9293 9294 9294 9295 /* Line 1806 of yacc.c */ 9295 #line 276 5"parser.yy"9296 #line 2768 "parser.yy" 9296 9297 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 9297 9298 break; … … 9300 9301 9301 9302 /* Line 1806 of yacc.c */ 9302 #line 277 6"parser.yy"9303 #line 2779 "parser.yy" 9303 9304 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9304 9305 break; … … 9307 9308 9308 9309 /* Line 1806 of yacc.c */ 9309 #line 27 78"parser.yy"9310 #line 2781 "parser.yy" 9310 9311 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9311 9312 break; … … 9314 9315 9315 9316 /* Line 1806 of yacc.c */ 9316 #line 278 0"parser.yy"9317 #line 2783 "parser.yy" 9317 9318 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9318 9319 break; … … 9321 9322 9322 9323 /* Line 1806 of yacc.c */ 9323 #line 278 2"parser.yy"9324 #line 2785 "parser.yy" 9324 9325 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9325 9326 break; … … 9328 9329 9329 9330 /* Line 1806 of yacc.c */ 9330 #line 278 4"parser.yy"9331 #line 2787 "parser.yy" 9331 9332 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9332 9333 break; … … 9335 9336 9336 9337 /* Line 1806 of yacc.c */ 9337 #line 278 6"parser.yy"9338 #line 2789 "parser.yy" 9338 9339 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9339 9340 break; … … 9342 9343 9343 9344 /* Line 1806 of yacc.c */ 9344 #line 279 3"parser.yy"9345 #line 2796 "parser.yy" 9345 9346 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9346 9347 break; … … 9349 9350 9350 9351 /* Line 1806 of yacc.c */ 9351 #line 279 5"parser.yy"9352 #line 2798 "parser.yy" 9352 9353 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9353 9354 break; … … 9356 9357 9357 9358 /* Line 1806 of yacc.c */ 9358 #line 2 797"parser.yy"9359 #line 2800 "parser.yy" 9359 9360 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9360 9361 break; … … 9363 9364 9364 9365 /* Line 1806 of yacc.c */ 9365 #line 2 799"parser.yy"9366 #line 2802 "parser.yy" 9366 9367 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9367 9368 break; … … 9370 9371 9371 9372 /* Line 1806 of yacc.c */ 9372 #line 280 1"parser.yy"9373 #line 2804 "parser.yy" 9373 9374 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9374 9375 break; … … 9377 9378 9378 9379 /* Line 1806 of yacc.c */ 9379 #line 280 3"parser.yy"9380 #line 2806 "parser.yy" 9380 9381 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9381 9382 break; … … 9384 9385 9385 9386 /* Line 1806 of yacc.c */ 9386 #line 28 08"parser.yy"9387 #line 2811 "parser.yy" 9387 9388 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 9388 9389 break; … … 9391 9392 9392 9393 /* Line 1806 of yacc.c */ 9393 #line 281 3"parser.yy"9394 #line 2816 "parser.yy" 9394 9395 { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); } 9395 9396 break; … … 9398 9399 9399 9400 /* Line 1806 of yacc.c */ 9400 #line 281 5"parser.yy"9401 #line 2818 "parser.yy" 9401 9402 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); } 9402 9403 break; … … 9405 9406 9406 9407 /* Line 1806 of yacc.c */ 9407 #line 28 17"parser.yy"9408 #line 2820 "parser.yy" 9408 9409 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); } 9409 9410 break; … … 9412 9413 9413 9414 /* Line 1806 of yacc.c */ 9414 #line 284 1"parser.yy"9415 #line 2844 "parser.yy" 9415 9416 { (yyval.en) = 0; } 9416 9417 break; … … 9419 9420 9420 9421 /* Line 1806 of yacc.c */ 9421 #line 284 3"parser.yy"9422 #line 2846 "parser.yy" 9422 9423 { (yyval.en) = (yyvsp[(2) - (2)].en); } 9423 9424 break; … … 9426 9427 9427 9428 /* Line 1806 of yacc.c */ 9428 #line 94 29"Parser/parser.cc"9429 #line 9430 "Parser/parser.cc" 9429 9430 default: break; 9430 9431 } … … 9657 9658 9658 9659 /* Line 2067 of yacc.c */ 9659 #line 284 6"parser.yy"9660 #line 2849 "parser.yy" 9660 9661 9661 9662 // ----end of grammar---- -
src/Parser/parser.yy
rb87e2b6 r51e076e 10 10 // Created On : Sat Sep 1 20:22:55 2001 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Aug 4 16:56:28201613 // Update Count : 1 69412 // Last Modified On : Fri Aug 5 08:15:57 2016 13 // Update Count : 1721 14 14 // 15 15 … … 356 356 // little advantage to this feature and many disadvantages. It is possible to write x[(i,j)] in CFA, which is 357 357 // equivalent to the old x[i,j]. 358 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::Index ), $1, $4); }358 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::Index, $1, $4 ) ); } 359 359 | postfix_expression '(' argument_expression_list ')' 360 360 { $$ = new CompositeExprNode( $1, $3 ); } … … 368 368 | postfix_expression ARROW '[' push field_list pop ']' // CFA, tuple field selector 369 369 | postfix_expression ICR 370 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::IncrPost ), $1); }370 { $$ = new CompositeExprNode2( build_opr1( OperatorNode::IncrPost, $1 ) ); } 371 371 | postfix_expression DECR 372 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::DecrPost ), $1); }372 { $$ = new CompositeExprNode2( build_opr1( OperatorNode::DecrPost, $1 ) ); } 373 373 | '(' type_name_no_function ')' '{' initializer_list comma_opt '}' // C99 374 374 { $$ = new CompoundLiteralNode( $2, new InitializerNode( $5, true ) ); } … … 431 431 | EXTENSION cast_expression // GCC 432 432 { $$ = $2->set_extension( true ); } 433 | ptrref_operator cast_expression // CFA434 { $$ = $1 == OperatorNode::AddressOf ? (ExpressionNode*) new CompositeExprNode2( build_addressOf( $2 ) ) : (ExpressionNode*)new CompositeExprNode( new OperatorNode ( $1 ), $2 ); }435 433 // '*' ('&') is separated from unary_operator because of shift/reduce conflict in: 436 434 // { * X; } // dereference X 437 435 // { * int X; } // CFA declaration of pointer to int 436 | ptrref_operator cast_expression // CFA 437 { $$ = $1 == OperatorNode::AddressOf ? (ExpressionNode*) new CompositeExprNode2( build_addressOf( $2 ) ) 438 : (ExpressionNode*)new CompositeExprNode( new OperatorNode ( $1 ), $2 ); } 438 439 | unary_operator cast_expression 439 440 { $$ = new CompositeExprNode( $1, $2 ); } 440 441 | ICR unary_expression 441 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Incr ), $2); }442 { $$ = new CompositeExprNode2( build_opr1( OperatorNode::Incr, $2 ) ); } 442 443 | DECR unary_expression 443 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Decr ), $2); }444 { $$ = new CompositeExprNode2( build_opr1( OperatorNode::Decr, $2 ) ); } 444 445 | SIZEOF unary_expression 445 446 { $$ = new CompositeExprNode2( build_sizeOf( $2 ) ); } … … 449 450 { $$ = new CompositeExprNode2( build_offsetOf( new TypeValueNode( $3 ), new VarRefNode( $5 ) ) ); } 450 451 | ATTR_IDENTIFIER 451 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( $1 ) ); }452 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( $1 ) ); } 452 453 | ATTR_IDENTIFIER '(' type_name ')' 453 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( $1 ), new TypeValueNode( $3 ) ); }454 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( $1 ), new TypeValueNode( $3 ) ); } 454 455 | ATTR_IDENTIFIER '(' argument_expression ')' 455 456 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( $1 ), $3 ); } … … 487 488 cast_expression 488 489 | multiplicative_expression '*' cast_expression 489 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::Mul ), $1, $3); }490 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::Mul, $1, $3 ) ); } 490 491 | multiplicative_expression '/' cast_expression 491 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::Div ), $1, $3); }492 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::Div, $1, $3 ) ); } 492 493 | multiplicative_expression '%' cast_expression 493 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::Mod ), $1, $3); }494 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::Mod, $1, $3 ) ); } 494 495 ; 495 496 … … 497 498 multiplicative_expression 498 499 | additive_expression '+' multiplicative_expression 499 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::Plus ), $1, $3); }500 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::Plus, $1, $3 ) ); } 500 501 | additive_expression '-' multiplicative_expression 501 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::Minus ), $1, $3); }502 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::Minus, $1, $3 ) ); } 502 503 ; 503 504 … … 505 506 additive_expression 506 507 | shift_expression LS additive_expression 507 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::LShift ), $1, $3); }508 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::LShift, $1, $3 ) ); } 508 509 | shift_expression RS additive_expression 509 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::RShift ), $1, $3); }510 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::RShift, $1, $3 ) ); } 510 511 ; 511 512 … … 513 514 shift_expression 514 515 | relational_expression '<' shift_expression 515 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::LThan ), $1, $3); }516 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::LThan, $1, $3 ) ); } 516 517 | relational_expression '>' shift_expression 517 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::GThan ), $1, $3); }518 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::GThan, $1, $3 ) ); } 518 519 | relational_expression LE shift_expression 519 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::LEThan ), $1, $3); }520 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::LEThan, $1, $3 ) ); } 520 521 | relational_expression GE shift_expression 521 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::GEThan ), $1, $3); }522 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::GEThan, $1, $3 ) ); } 522 523 ; 523 524 … … 525 526 relational_expression 526 527 | equality_expression EQ relational_expression 527 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::Eq ), $1, $3); }528 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::Eq, $1, $3 ) ); } 528 529 | equality_expression NE relational_expression 529 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::Neq ), $1, $3); }530 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::Neq, $1, $3 ) ); } 530 531 ; 531 532 … … 533 534 equality_expression 534 535 | AND_expression '&' equality_expression 535 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::BitAnd ), $1, $3); }536 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::BitAnd, $1, $3 ) ); } 536 537 ; 537 538 … … 539 540 AND_expression 540 541 | exclusive_OR_expression '^' AND_expression 541 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::Xor ), $1, $3); }542 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::Xor, $1, $3 ) ); } 542 543 ; 543 544 … … 545 546 exclusive_OR_expression 546 547 | inclusive_OR_expression '|' exclusive_OR_expression 547 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::BitOr ), $1, $3); }548 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::BitOr, $1, $3 ) ); } 548 549 ; 549 550 … … 551 552 inclusive_OR_expression 552 553 | logical_AND_expression ANDAND inclusive_OR_expression 553 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::And ), $1, $3); }554 { $$ = new CompositeExprNode2( build_and_or( $1, $3, true ) ); } 554 555 ; 555 556 … … 557 558 logical_AND_expression 558 559 | logical_OR_expression OROR logical_AND_expression 559 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::Or ), $1, $3); }560 { $$ = new CompositeExprNode2( build_and_or( $1, $3, false ) ); } 560 561 ; 561 562 … … 563 564 logical_OR_expression 564 565 | logical_OR_expression '?' comma_expression ':' conditional_expression 565 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*$1, *$3, *$5 )) ); }566 { $$ = new CompositeExprNode2( build_cond( $1, $3, $5 ) ); } 566 567 | logical_OR_expression '?' /* empty */ ':' conditional_expression // GCC, omitted first operand 567 { $$ =new CompositeExprNode( new OperatorNode( OperatorNode::NCond ), $1, $4 ); }568 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::NCond ), $1, $4 ); } 568 569 | logical_OR_expression '?' comma_expression ':' tuple // CFA, tuple expression 569 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*$1, *$3, *$5 )) ); }570 { $$ = new CompositeExprNode2( build_cond( $1, $3, $5 ) ); } 570 571 ; 571 572 … … 578 579 conditional_expression 579 580 | unary_expression '=' assignment_expression 580 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), $1, $3 ); }581 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), $1, $3 ); } 581 582 | unary_expression assignment_operator assignment_expression 582 { $$ = new CompositeExprNode( $2, $1, $3 ); }583 { $$ = new CompositeExprNode( $2, $1, $3 ); } 583 584 | tuple assignment_opt // CFA, tuple expression 584 585 { $$ = ( $2 == 0 ) ? $1 : new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), $1, $2 ); } … … 626 627 assignment_expression 627 628 | comma_expression ',' assignment_expression // { $$ = (ExpressionNode *)$1->add_to_list( $3 ); } 628 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Comma ), $1, $3 ); } 629 //{ $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Comma ), $1, $3 ); } 630 { $$ = new CompositeExprNode2( build_comma( $1, $3 ) ); } 629 631 ; 630 632 … … 738 740 constant_expression { $$ = $1; } 739 741 | constant_expression ELLIPSIS constant_expression // GCC, subrange 740 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::Range ), $1, $3); }742 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::Range, $1, $3 ) ); } 741 743 | subrange // CFA, subrange 742 744 ; … … 1779 1781 { $$ = new DesignatorNode( $3, true ); } 1780 1782 | '[' push constant_expression ELLIPSIS constant_expression pop ']' // GCC, multiple array elements 1781 { $$ = new DesignatorNode( new CompositeExprNode ( new OperatorNode( OperatorNode::Range ), $3, $5), true ); }1783 { $$ = new DesignatorNode( new CompositeExprNode2( build_opr2( OperatorNode::Range, $3, $5 ) ), true ); } 1782 1784 | '.' '[' push field_list pop ']' // CFA, tuple field selector 1783 1785 { $$ = new DesignatorNode( $4 ); } … … 2108 2110 subrange: 2109 2111 constant_expression '~' constant_expression // CFA, integer subrange 2110 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::Range ), $1, $3); }2112 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::Range, $1, $3 ) ); } 2111 2113 ; 2112 2114
Note: See TracChangeset
for help on using the changeset viewer.