Changeset 4cb935e
- Timestamp:
- Dec 1, 2016, 12:46:34 PM (7 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- 78b3f52
- Parents:
- 148f7290
- Location:
- src
- Files:
-
- 17 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/ExpressionNode.cc
r148f7290 r4cb935e 46 46 // type. 47 47 48 staticType::Qualifiers emptyQualifiers; // no qualifiers on constants48 Type::Qualifiers emptyQualifiers; // no qualifiers on constants 49 49 50 50 static inline bool checkU( char c ) { return c == 'u' || c == 'U'; } … … 172 172 } // build_constantStr 173 173 174 Expression *build_constantZeroOne( const std::string & str ) { 175 Expression * ret = new ConstantExpr( Constant( str == "0" ? (Type*)new ZeroType( emptyQualifiers ) : (Type*)new OneType( emptyQualifiers ), str ) ); 176 delete &str; // created by lex 177 return ret; 178 } // build_constantChar 179 174 180 Expression * build_field_name_FLOATINGconstant( const std::string & str ) { 175 181 // str is of the form A.B -> separate at the . and return member expression -
src/Parser/ParseNode.h
r148f7290 r4cb935e 154 154 Expression * build_constantFloat( const std::string &str ); 155 155 Expression * build_constantChar( const std::string &str ); 156 Expression * build_constantZeroOne( const std::string &str ); 156 157 ConstantExpr * build_constantStr( const std::string &str ); 157 158 Expression * build_field_name_FLOATINGconstant( const std::string & str ); -
src/Parser/TypeData.cc
r148f7290 r4cb935e 215 215 break; 216 216 case Builtin: 217 assert( false );218 // newtype->builtin = builtin;217 assert( builtintype == DeclarationNode::Zero || builtintype == DeclarationNode::One ); 218 newtype->builtintype = builtintype; 219 219 break; 220 220 } // switch … … 445 445 case TypeData::Builtin: 446 446 if(td->builtintype == DeclarationNode::Zero) { 447 return new ZeroType( buildQualifiers( td ));447 return new ZeroType( emptyQualifiers ); 448 448 } 449 449 else if(td->builtintype == DeclarationNode::One) { 450 return new OneType( buildQualifiers( td ));450 return new OneType( emptyQualifiers ); 451 451 } 452 452 else { -
src/Parser/parser.cc
r148f7290 r4cb935e 700 700 384, 386, 388, 390, 392, 394, 396, 398, 407, 408, 701 701 414, 415, 419, 420, 424, 425, 427, 429, 431, 433, 702 435, 440, 442, 444, 45 0, 451, 459, 462, 464, 466,703 47 1, 484, 486, 488, 490, 492, 494, 496, 498, 500,704 50 2, 504, 511, 512, 518, 519, 520, 521, 525, 526,705 53 3, 534, 536, 538, 543, 544, 546, 551, 552, 554,706 5 59, 560, 562, 564, 566, 571, 572, 574, 579, 580,707 5 85, 586, 591, 592, 597, 598, 603, 604, 609, 610,708 61 3, 620, 625, 626, 634, 635, 639, 640, 641, 642,709 64 3, 644, 645, 646, 647, 648, 649, 650, 660, 662,710 6 67, 668, 673, 674, 680, 681, 687, 688, 689, 690,711 69 1, 692, 693, 694, 695, 705, 712, 714, 724, 725,712 73 0, 732, 738, 740, 744, 745, 750, 755, 758, 760,713 76 2, 772, 774, 785, 786, 788, 792, 794, 798, 799,714 8 04, 805, 809, 814, 815, 819, 821, 827, 828, 832,715 8 34, 836, 838, 844, 845, 849, 851, 856, 858, 860,716 8 65, 867, 872, 874, 878, 881, 885, 888, 892, 894,717 896, 898, 903, 905, 907, 912, 914, 916, 918, 920,718 9 25, 927, 929, 931, 936, 948, 949, 954, 956, 961,719 9 65, 967, 969, 971, 973, 979, 980, 986, 987, 991,720 99 2, 997, 999, 1005, 1006, 1008, 1013, 1018, 1028, 1030,721 10 34, 1035, 1040, 1042, 1046, 1047, 1051, 1053, 1057, 1058,722 106 2, 1063, 1067, 1068, 1083, 1084, 1085, 1086, 1087, 1091,723 1 096, 1103, 1113, 1118, 1123, 1131, 1136, 1141, 1146, 1151,724 118 1, 1186, 1193, 1195, 1202, 1207, 1212, 1223, 1228, 1233,725 12 38, 1243, 1252, 1257, 1265, 1266, 1267, 1268, 1274, 1279,726 12 87, 1288, 1289, 1290, 1294, 1295, 1296, 1297, 1302, 1303,727 131 2, 1313, 1318, 1319, 1324, 1326, 1328, 1330, 1332, 1335,728 13 34, 1346, 1347, 1349, 1359, 1360, 1365, 1367, 1369, 1371,729 137 3, 1376, 1378, 1381, 1386, 1388, 1390, 1392, 1394, 1396,730 1 398, 1400, 1402, 1404, 1406, 1408, 1410, 1412, 1414, 1420,731 142 1, 1423, 1425, 1427, 1432, 1433, 1439, 1440, 1442, 1444,732 14 49, 1451, 1453, 1455, 1460, 1461, 1463, 1465, 1470, 1471,733 147 3, 1478, 1479, 1481, 1483, 1488, 1490, 1492, 1497, 1498,734 150 2, 1504, 1510, 1509, 1513, 1515, 1520, 1522, 1528, 1529,735 15 34, 1535, 1537, 1538, 1547, 1548, 1550, 1552, 1557, 1559,736 15 65, 1566, 1568, 1571, 1574, 1579, 1580, 1585, 1590, 1594,737 1 596, 1602, 1601, 1608, 1610, 1616, 1617, 1625, 1626, 1630,738 163 1, 1632, 1634, 1636, 1643, 1644, 1646, 1648, 1653, 1654,739 166 0, 1661, 1665, 1666, 1671, 1672, 1673, 1675, 1683, 1684,740 16 86, 1689, 1691, 1695, 1696, 1697, 1699, 1701, 1705, 1710,741 17 18, 1719, 1728, 1730, 1735, 1736, 1737, 1741, 1742, 1743,742 17 47, 1748, 1749, 1753, 1754, 1755, 1760, 1761, 1762, 1763,743 17 69, 1770, 1772, 1777, 1778, 1783, 1784, 1785, 1786, 1787,744 180 2, 1803, 1808, 1809, 1815, 1817, 1820, 1822, 1824, 1847,745 18 48, 1850, 1852, 1857, 1858, 1860, 1865, 1870, 1871, 1877,746 18 76, 1880, 1884, 1886, 1888, 1894, 1895, 1900, 1905, 1907,747 191 2, 1914, 1915, 1917, 1922, 1924, 1926, 1931, 1933, 1938,748 194 3, 1951, 1957, 1956, 1970, 1971, 1976, 1977, 1981, 1986,749 199 1, 1999, 2004, 2015, 2016, 2021, 2022, 2028, 2029, 2033,750 20 34, 2035, 2038, 2037, 2048, 2057, 2063, 2069, 2078, 2084,751 209 0, 2096, 2102, 2110, 2116, 2124, 2130, 2139, 2140, 2141,752 21 45, 2149, 2151, 2156, 2157, 2161, 2162, 2167, 2173, 2174,753 21 77, 2179, 2180, 2184, 2185, 2186, 2187, 2221, 2223, 2224,754 22 26, 2231, 2236, 2241, 2243, 2245, 2250, 2252, 2254, 2256,755 226 1, 2263, 2272, 2274, 2275, 2280, 2282, 2284, 2289, 2291,756 229 3, 2298, 2300, 2302, 2311, 2312, 2313, 2317, 2319, 2321,757 23 26, 2328, 2330, 2335, 2337, 2339, 2354, 2356, 2357, 2359,758 23 64, 2365, 2370, 2372, 2374, 2379, 2381, 2383, 2385, 2390,759 239 2, 2394, 2404, 2406, 2407, 2409, 2414, 2416, 2418, 2423,760 24 25, 2427, 2429, 2434, 2436, 2438, 2469, 2471, 2472, 2474,761 24 79, 2484, 2492, 2494, 2496, 2501, 2503, 2508, 2510, 2524,762 25 25, 2527, 2532, 2534, 2536, 2538, 2540, 2545, 2546, 2548,763 255 0, 2555, 2557, 2559, 2565, 2567, 2569, 2573, 2575, 2577,764 25 79, 2593, 2594, 2596, 2601, 2603, 2605, 2607, 2609, 2614,765 26 15, 2617, 2619, 2624, 2626, 2628, 2634, 2635, 2637, 2646,766 26 49, 2651, 2654, 2656, 2658, 2671, 2672, 2674, 2679, 2681,767 268 3, 2685, 2687, 2692, 2693, 2695, 2697, 2702, 2704, 2712,768 271 3, 2714, 2719, 2720, 2724, 2726, 2728, 2730, 2732, 2734,769 274 1, 2743, 2745, 2747, 2749, 2752, 2754, 2756, 2758, 2760,770 27 65, 2767, 2769, 2774, 2800, 2801, 2803, 2807, 2808, 2812,771 28 14, 2816, 2818, 2820, 2822, 2829, 2831, 2833, 2835, 2837,772 28 39, 2844, 2851, 2853, 2871, 2873, 2878, 2879702 435, 440, 442, 444, 456, 457, 465, 468, 470, 472, 703 477, 490, 492, 494, 496, 498, 500, 502, 504, 506, 704 508, 510, 517, 518, 524, 525, 526, 527, 531, 532, 705 539, 540, 542, 544, 549, 550, 552, 557, 558, 560, 706 565, 566, 568, 570, 572, 577, 578, 580, 585, 586, 707 591, 592, 597, 598, 603, 604, 609, 610, 615, 616, 708 619, 626, 631, 632, 640, 641, 645, 646, 647, 648, 709 649, 650, 651, 652, 653, 654, 655, 656, 666, 668, 710 673, 674, 679, 680, 686, 687, 693, 694, 695, 696, 711 697, 698, 699, 700, 701, 711, 718, 720, 730, 731, 712 736, 738, 744, 746, 750, 751, 756, 761, 764, 766, 713 768, 778, 780, 791, 792, 794, 798, 800, 804, 805, 714 810, 811, 815, 820, 821, 825, 827, 833, 834, 838, 715 840, 842, 844, 850, 851, 855, 857, 862, 864, 866, 716 871, 873, 878, 880, 884, 887, 891, 894, 898, 900, 717 902, 904, 909, 911, 913, 918, 920, 922, 924, 926, 718 931, 933, 935, 937, 942, 954, 955, 960, 962, 967, 719 971, 973, 975, 977, 979, 985, 986, 992, 993, 997, 720 998, 1003, 1005, 1011, 1012, 1014, 1019, 1024, 1034, 1036, 721 1040, 1041, 1046, 1048, 1052, 1053, 1057, 1059, 1063, 1064, 722 1068, 1069, 1073, 1074, 1089, 1090, 1091, 1092, 1093, 1097, 723 1102, 1109, 1119, 1124, 1129, 1137, 1142, 1147, 1152, 1157, 724 1187, 1192, 1199, 1201, 1208, 1213, 1218, 1229, 1234, 1239, 725 1244, 1249, 1258, 1263, 1271, 1272, 1273, 1274, 1280, 1285, 726 1293, 1294, 1295, 1296, 1300, 1301, 1302, 1303, 1308, 1309, 727 1318, 1319, 1324, 1325, 1330, 1332, 1334, 1336, 1338, 1341, 728 1340, 1352, 1353, 1355, 1365, 1366, 1371, 1373, 1375, 1377, 729 1379, 1382, 1384, 1387, 1392, 1394, 1396, 1398, 1400, 1402, 730 1404, 1406, 1408, 1410, 1412, 1414, 1416, 1418, 1420, 1426, 731 1427, 1429, 1431, 1433, 1438, 1439, 1445, 1446, 1448, 1450, 732 1455, 1457, 1459, 1461, 1466, 1467, 1469, 1471, 1476, 1477, 733 1479, 1484, 1485, 1487, 1489, 1494, 1496, 1498, 1503, 1504, 734 1508, 1510, 1516, 1515, 1519, 1521, 1526, 1528, 1534, 1535, 735 1540, 1541, 1543, 1544, 1553, 1554, 1556, 1558, 1563, 1565, 736 1571, 1572, 1574, 1577, 1580, 1585, 1586, 1591, 1596, 1600, 737 1602, 1608, 1607, 1614, 1616, 1622, 1623, 1631, 1632, 1636, 738 1637, 1638, 1640, 1642, 1649, 1650, 1652, 1654, 1659, 1660, 739 1666, 1667, 1671, 1672, 1677, 1678, 1679, 1681, 1689, 1690, 740 1692, 1695, 1697, 1701, 1702, 1703, 1705, 1707, 1711, 1716, 741 1724, 1725, 1734, 1736, 1741, 1742, 1743, 1747, 1748, 1749, 742 1753, 1754, 1755, 1759, 1760, 1761, 1766, 1767, 1768, 1769, 743 1775, 1776, 1778, 1783, 1784, 1789, 1790, 1791, 1792, 1793, 744 1808, 1809, 1814, 1815, 1821, 1823, 1826, 1828, 1830, 1853, 745 1854, 1856, 1858, 1863, 1864, 1866, 1871, 1876, 1877, 1883, 746 1882, 1886, 1890, 1892, 1894, 1900, 1901, 1906, 1911, 1913, 747 1918, 1920, 1921, 1923, 1928, 1930, 1932, 1937, 1939, 1944, 748 1949, 1957, 1963, 1962, 1976, 1977, 1982, 1983, 1987, 1992, 749 1997, 2005, 2010, 2021, 2022, 2027, 2028, 2034, 2035, 2039, 750 2040, 2041, 2044, 2043, 2054, 2063, 2069, 2075, 2084, 2090, 751 2096, 2102, 2108, 2116, 2122, 2130, 2136, 2145, 2146, 2147, 752 2151, 2155, 2157, 2162, 2163, 2167, 2168, 2173, 2179, 2180, 753 2183, 2185, 2186, 2190, 2191, 2192, 2193, 2227, 2229, 2230, 754 2232, 2237, 2242, 2247, 2249, 2251, 2256, 2258, 2260, 2262, 755 2267, 2269, 2278, 2280, 2281, 2286, 2288, 2290, 2295, 2297, 756 2299, 2304, 2306, 2308, 2317, 2318, 2319, 2323, 2325, 2327, 757 2332, 2334, 2336, 2341, 2343, 2345, 2360, 2362, 2363, 2365, 758 2370, 2371, 2376, 2378, 2380, 2385, 2387, 2389, 2391, 2396, 759 2398, 2400, 2410, 2412, 2413, 2415, 2420, 2422, 2424, 2429, 760 2431, 2433, 2435, 2440, 2442, 2444, 2475, 2477, 2478, 2480, 761 2485, 2490, 2498, 2500, 2502, 2507, 2509, 2514, 2516, 2530, 762 2531, 2533, 2538, 2540, 2542, 2544, 2546, 2551, 2552, 2554, 763 2556, 2561, 2563, 2565, 2571, 2573, 2575, 2579, 2581, 2583, 764 2585, 2599, 2600, 2602, 2607, 2609, 2611, 2613, 2615, 2620, 765 2621, 2623, 2625, 2630, 2632, 2634, 2640, 2641, 2643, 2652, 766 2655, 2657, 2660, 2662, 2664, 2677, 2678, 2680, 2685, 2687, 767 2689, 2691, 2693, 2698, 2699, 2701, 2703, 2708, 2710, 2718, 768 2719, 2720, 2725, 2726, 2730, 2732, 2734, 2736, 2738, 2740, 769 2747, 2749, 2751, 2753, 2755, 2758, 2760, 2762, 2764, 2766, 770 2771, 2773, 2775, 2780, 2806, 2807, 2809, 2813, 2814, 2818, 771 2820, 2822, 2824, 2826, 2828, 2835, 2837, 2839, 2841, 2843, 772 2845, 2850, 2857, 2859, 2877, 2879, 2884, 2885 773 773 }; 774 774 #endif … … 4506 4506 case 22: 4507 4507 #line 364 "parser.yy" /* yacc.c:1646 */ 4508 { (yyval.en) = new ExpressionNode( build_ varref((yyvsp[0].tok) ) ); }4508 { (yyval.en) = new ExpressionNode( build_constantZeroOne( *(yyvsp[0].tok) ) ); } 4509 4509 #line 4510 "Parser/parser.cc" /* yacc.c:1646 */ 4510 4510 break; … … 4660 4660 case 53: 4661 4661 #line 445 "parser.yy" /* yacc.c:1646 */ 4662 { (yyval.en) = new ExpressionNode( build_field_name_fraction_constants( build_varref( (yyvsp[-1].tok) ), (yyvsp[0].en) ) ); } 4663 #line 4664 "Parser/parser.cc" /* yacc.c:1646 */ 4662 { 4663 if( (*(yyvsp[-1].tok)) == "0" || (*(yyvsp[-1].tok)) == "1" ) { 4664 (yyval.en) = new ExpressionNode( build_field_name_fraction_constants( build_constantZeroOne( *(yyvsp[-1].tok) ), (yyvsp[0].en) ) ); 4665 } else { 4666 (yyval.en) = new ExpressionNode( build_field_name_fraction_constants( build_varref( (yyvsp[-1].tok) ), (yyvsp[0].en) ) ); 4667 } 4668 } 4669 #line 4670 "Parser/parser.cc" /* yacc.c:1646 */ 4664 4670 break; 4665 4671 4666 4672 case 54: 4667 #line 45 0"parser.yy" /* yacc.c:1646 */4673 #line 456 "parser.yy" /* yacc.c:1646 */ 4668 4674 { (yyval.en) = nullptr; } 4669 #line 467 0"Parser/parser.cc" /* yacc.c:1646 */4675 #line 4676 "Parser/parser.cc" /* yacc.c:1646 */ 4670 4676 break; 4671 4677 4672 4678 case 55: 4673 #line 45 2"parser.yy" /* yacc.c:1646 */4679 #line 458 "parser.yy" /* yacc.c:1646 */ 4674 4680 { 4675 4681 Expression * constant = build_field_name_REALFRACTIONconstant( *(yyvsp[0].tok) ); 4676 4682 (yyval.en) = (yyvsp[-1].en) != nullptr ? new ExpressionNode( build_fieldSel( (yyvsp[-1].en), constant ) ) : new ExpressionNode( constant ); 4677 4683 } 4678 #line 46 79"Parser/parser.cc" /* yacc.c:1646 */4684 #line 4685 "Parser/parser.cc" /* yacc.c:1646 */ 4679 4685 break; 4680 4686 4681 4687 case 57: 4682 #line 46 3"parser.yy" /* yacc.c:1646 */4688 #line 469 "parser.yy" /* yacc.c:1646 */ 4683 4689 { (yyval.en) = (yyvsp[0].en); } 4684 #line 46 85"Parser/parser.cc" /* yacc.c:1646 */4690 #line 4691 "Parser/parser.cc" /* yacc.c:1646 */ 4685 4691 break; 4686 4692 4687 4693 case 58: 4688 #line 4 65"parser.yy" /* yacc.c:1646 */4694 #line 471 "parser.yy" /* yacc.c:1646 */ 4689 4695 { (yyval.en) = new ExpressionNode( (yyvsp[0].constant) ); } 4690 #line 469 1"Parser/parser.cc" /* yacc.c:1646 */4696 #line 4697 "Parser/parser.cc" /* yacc.c:1646 */ 4691 4697 break; 4692 4698 4693 4699 case 59: 4694 #line 4 67"parser.yy" /* yacc.c:1646 */4700 #line 473 "parser.yy" /* yacc.c:1646 */ 4695 4701 { (yyval.en) = (yyvsp[0].en)->set_extension( true ); } 4696 #line 4 697"Parser/parser.cc" /* yacc.c:1646 */4702 #line 4703 "Parser/parser.cc" /* yacc.c:1646 */ 4697 4703 break; 4698 4704 4699 4705 case 60: 4700 #line 47 2"parser.yy" /* yacc.c:1646 */4706 #line 478 "parser.yy" /* yacc.c:1646 */ 4701 4707 { 4702 4708 switch ( (yyvsp[-1].op) ) { … … 4711 4717 } 4712 4718 } 4713 #line 47 14"Parser/parser.cc" /* yacc.c:1646 */4719 #line 4720 "Parser/parser.cc" /* yacc.c:1646 */ 4714 4720 break; 4715 4721 4716 4722 case 61: 4717 #line 4 85"parser.yy" /* yacc.c:1646 */4723 #line 491 "parser.yy" /* yacc.c:1646 */ 4718 4724 { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[-1].op), (yyvsp[0].en) ) ); } 4719 #line 472 0"Parser/parser.cc" /* yacc.c:1646 */4725 #line 4726 "Parser/parser.cc" /* yacc.c:1646 */ 4720 4726 break; 4721 4727 4722 4728 case 62: 4723 #line 4 87"parser.yy" /* yacc.c:1646 */4729 #line 493 "parser.yy" /* yacc.c:1646 */ 4724 4730 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[0].en) ) ); } 4725 #line 47 26"Parser/parser.cc" /* yacc.c:1646 */4731 #line 4732 "Parser/parser.cc" /* yacc.c:1646 */ 4726 4732 break; 4727 4733 4728 4734 case 63: 4729 #line 4 89"parser.yy" /* yacc.c:1646 */4735 #line 495 "parser.yy" /* yacc.c:1646 */ 4730 4736 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[0].en) ) ); } 4731 #line 473 2"Parser/parser.cc" /* yacc.c:1646 */4737 #line 4738 "Parser/parser.cc" /* yacc.c:1646 */ 4732 4738 break; 4733 4739 4734 4740 case 64: 4735 #line 49 1"parser.yy" /* yacc.c:1646 */4741 #line 497 "parser.yy" /* yacc.c:1646 */ 4736 4742 { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[0].en) ) ); } 4737 #line 47 38"Parser/parser.cc" /* yacc.c:1646 */4743 #line 4744 "Parser/parser.cc" /* yacc.c:1646 */ 4738 4744 break; 4739 4745 4740 4746 case 65: 4741 #line 49 3"parser.yy" /* yacc.c:1646 */4747 #line 499 "parser.yy" /* yacc.c:1646 */ 4742 4748 { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[-1].decl) ) ); } 4743 #line 47 44"Parser/parser.cc" /* yacc.c:1646 */4749 #line 4750 "Parser/parser.cc" /* yacc.c:1646 */ 4744 4750 break; 4745 4751 4746 4752 case 66: 4747 #line 495"parser.yy" /* yacc.c:1646 */4753 #line 501 "parser.yy" /* yacc.c:1646 */ 4748 4754 { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[0].en) ) ); } 4749 #line 475 0"Parser/parser.cc" /* yacc.c:1646 */4755 #line 4756 "Parser/parser.cc" /* yacc.c:1646 */ 4750 4756 break; 4751 4757 4752 4758 case 67: 4753 #line 497"parser.yy" /* yacc.c:1646 */4759 #line 503 "parser.yy" /* yacc.c:1646 */ 4754 4760 { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[-1].decl) ) ); } 4755 #line 47 56"Parser/parser.cc" /* yacc.c:1646 */4761 #line 4762 "Parser/parser.cc" /* yacc.c:1646 */ 4756 4762 break; 4757 4763 4758 4764 case 68: 4759 #line 499"parser.yy" /* yacc.c:1646 */4765 #line 505 "parser.yy" /* yacc.c:1646 */ 4760 4766 { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[-3].decl), build_varref( (yyvsp[-1].tok) ) ) ); } 4761 #line 476 2"Parser/parser.cc" /* yacc.c:1646 */4767 #line 4768 "Parser/parser.cc" /* yacc.c:1646 */ 4762 4768 break; 4763 4769 4764 4770 case 69: 4765 #line 50 1"parser.yy" /* yacc.c:1646 */4771 #line 507 "parser.yy" /* yacc.c:1646 */ 4766 4772 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[0].tok) ), nullptr ) ); } 4767 #line 47 68"Parser/parser.cc" /* yacc.c:1646 */4773 #line 4774 "Parser/parser.cc" /* yacc.c:1646 */ 4768 4774 break; 4769 4775 4770 4776 case 70: 4771 #line 50 3"parser.yy" /* yacc.c:1646 */4777 #line 509 "parser.yy" /* yacc.c:1646 */ 4772 4778 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[-3].tok) ), (yyvsp[-1].en) ) ); } 4773 #line 47 74"Parser/parser.cc" /* yacc.c:1646 */4779 #line 4780 "Parser/parser.cc" /* yacc.c:1646 */ 4774 4780 break; 4775 4781 4776 4782 case 71: 4777 #line 5 05"parser.yy" /* yacc.c:1646 */4783 #line 511 "parser.yy" /* yacc.c:1646 */ 4778 4784 { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[-3].tok) ), (yyvsp[-1].decl) ) ); } 4779 #line 478 0"Parser/parser.cc" /* yacc.c:1646 */4785 #line 4786 "Parser/parser.cc" /* yacc.c:1646 */ 4780 4786 break; 4781 4787 4782 4788 case 72: 4783 #line 51 1"parser.yy" /* yacc.c:1646 */4789 #line 517 "parser.yy" /* yacc.c:1646 */ 4784 4790 { (yyval.op) = OperKinds::PointTo; } 4785 #line 47 86"Parser/parser.cc" /* yacc.c:1646 */4791 #line 4792 "Parser/parser.cc" /* yacc.c:1646 */ 4786 4792 break; 4787 4793 4788 4794 case 73: 4789 #line 51 2"parser.yy" /* yacc.c:1646 */4795 #line 518 "parser.yy" /* yacc.c:1646 */ 4790 4796 { (yyval.op) = OperKinds::AddressOf; } 4791 #line 479 2"Parser/parser.cc" /* yacc.c:1646 */4797 #line 4798 "Parser/parser.cc" /* yacc.c:1646 */ 4792 4798 break; 4793 4799 4794 4800 case 74: 4795 #line 5 18"parser.yy" /* yacc.c:1646 */4801 #line 524 "parser.yy" /* yacc.c:1646 */ 4796 4802 { (yyval.op) = OperKinds::UnPlus; } 4797 #line 4 798"Parser/parser.cc" /* yacc.c:1646 */4803 #line 4804 "Parser/parser.cc" /* yacc.c:1646 */ 4798 4804 break; 4799 4805 4800 4806 case 75: 4801 #line 5 19"parser.yy" /* yacc.c:1646 */4807 #line 525 "parser.yy" /* yacc.c:1646 */ 4802 4808 { (yyval.op) = OperKinds::UnMinus; } 4803 #line 48 04"Parser/parser.cc" /* yacc.c:1646 */4809 #line 4810 "Parser/parser.cc" /* yacc.c:1646 */ 4804 4810 break; 4805 4811 4806 4812 case 76: 4807 #line 52 0"parser.yy" /* yacc.c:1646 */4813 #line 526 "parser.yy" /* yacc.c:1646 */ 4808 4814 { (yyval.op) = OperKinds::Neg; } 4809 #line 481 0"Parser/parser.cc" /* yacc.c:1646 */4815 #line 4816 "Parser/parser.cc" /* yacc.c:1646 */ 4810 4816 break; 4811 4817 4812 4818 case 77: 4813 #line 52 1"parser.yy" /* yacc.c:1646 */4819 #line 527 "parser.yy" /* yacc.c:1646 */ 4814 4820 { (yyval.op) = OperKinds::BitNeg; } 4815 #line 48 16"Parser/parser.cc" /* yacc.c:1646 */4821 #line 4822 "Parser/parser.cc" /* yacc.c:1646 */ 4816 4822 break; 4817 4823 4818 4824 case 79: 4819 #line 5 27"parser.yy" /* yacc.c:1646 */4825 #line 533 "parser.yy" /* yacc.c:1646 */ 4820 4826 { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[-2].decl), (yyvsp[0].en) ) ); } 4821 #line 482 2"Parser/parser.cc" /* yacc.c:1646 */4827 #line 4828 "Parser/parser.cc" /* yacc.c:1646 */ 4822 4828 break; 4823 4829 4824 4830 case 81: 4825 #line 5 35"parser.yy" /* yacc.c:1646 */4831 #line 541 "parser.yy" /* yacc.c:1646 */ 4826 4832 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4827 #line 48 28"Parser/parser.cc" /* yacc.c:1646 */4833 #line 4834 "Parser/parser.cc" /* yacc.c:1646 */ 4828 4834 break; 4829 4835 4830 4836 case 82: 4831 #line 5 37"parser.yy" /* yacc.c:1646 */4837 #line 543 "parser.yy" /* yacc.c:1646 */ 4832 4838 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4833 #line 48 34"Parser/parser.cc" /* yacc.c:1646 */4839 #line 4840 "Parser/parser.cc" /* yacc.c:1646 */ 4834 4840 break; 4835 4841 4836 4842 case 83: 4837 #line 5 39"parser.yy" /* yacc.c:1646 */4843 #line 545 "parser.yy" /* yacc.c:1646 */ 4838 4844 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4839 #line 484 0"Parser/parser.cc" /* yacc.c:1646 */4845 #line 4846 "Parser/parser.cc" /* yacc.c:1646 */ 4840 4846 break; 4841 4847 4842 4848 case 85: 4843 #line 5 45"parser.yy" /* yacc.c:1646 */4849 #line 551 "parser.yy" /* yacc.c:1646 */ 4844 4850 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4845 #line 48 46"Parser/parser.cc" /* yacc.c:1646 */4851 #line 4852 "Parser/parser.cc" /* yacc.c:1646 */ 4846 4852 break; 4847 4853 4848 4854 case 86: 4849 #line 5 47"parser.yy" /* yacc.c:1646 */4855 #line 553 "parser.yy" /* yacc.c:1646 */ 4850 4856 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4851 #line 485 2"Parser/parser.cc" /* yacc.c:1646 */4857 #line 4858 "Parser/parser.cc" /* yacc.c:1646 */ 4852 4858 break; 4853 4859 4854 4860 case 88: 4855 #line 55 3"parser.yy" /* yacc.c:1646 */4861 #line 559 "parser.yy" /* yacc.c:1646 */ 4856 4862 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4857 #line 48 58"Parser/parser.cc" /* yacc.c:1646 */4863 #line 4864 "Parser/parser.cc" /* yacc.c:1646 */ 4858 4864 break; 4859 4865 4860 4866 case 89: 4861 #line 5 55"parser.yy" /* yacc.c:1646 */4867 #line 561 "parser.yy" /* yacc.c:1646 */ 4862 4868 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4863 #line 48 64"Parser/parser.cc" /* yacc.c:1646 */4869 #line 4870 "Parser/parser.cc" /* yacc.c:1646 */ 4864 4870 break; 4865 4871 4866 4872 case 91: 4867 #line 56 1"parser.yy" /* yacc.c:1646 */4873 #line 567 "parser.yy" /* yacc.c:1646 */ 4868 4874 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4869 #line 487 0"Parser/parser.cc" /* yacc.c:1646 */4875 #line 4876 "Parser/parser.cc" /* yacc.c:1646 */ 4870 4876 break; 4871 4877 4872 4878 case 92: 4873 #line 56 3"parser.yy" /* yacc.c:1646 */4879 #line 569 "parser.yy" /* yacc.c:1646 */ 4874 4880 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4875 #line 48 76"Parser/parser.cc" /* yacc.c:1646 */4881 #line 4882 "Parser/parser.cc" /* yacc.c:1646 */ 4876 4882 break; 4877 4883 4878 4884 case 93: 4879 #line 5 65"parser.yy" /* yacc.c:1646 */4885 #line 571 "parser.yy" /* yacc.c:1646 */ 4880 4886 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4881 #line 488 2"Parser/parser.cc" /* yacc.c:1646 */4887 #line 4888 "Parser/parser.cc" /* yacc.c:1646 */ 4882 4888 break; 4883 4889 4884 4890 case 94: 4885 #line 5 67"parser.yy" /* yacc.c:1646 */4891 #line 573 "parser.yy" /* yacc.c:1646 */ 4886 4892 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4887 #line 48 88"Parser/parser.cc" /* yacc.c:1646 */4893 #line 4894 "Parser/parser.cc" /* yacc.c:1646 */ 4888 4894 break; 4889 4895 4890 4896 case 96: 4891 #line 57 3"parser.yy" /* yacc.c:1646 */4897 #line 579 "parser.yy" /* yacc.c:1646 */ 4892 4898 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4893 #line 4 894"Parser/parser.cc" /* yacc.c:1646 */4899 #line 4900 "Parser/parser.cc" /* yacc.c:1646 */ 4894 4900 break; 4895 4901 4896 4902 case 97: 4897 #line 5 75"parser.yy" /* yacc.c:1646 */4903 #line 581 "parser.yy" /* yacc.c:1646 */ 4898 4904 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4899 #line 490 0"Parser/parser.cc" /* yacc.c:1646 */4905 #line 4906 "Parser/parser.cc" /* yacc.c:1646 */ 4900 4906 break; 4901 4907 4902 4908 case 99: 4903 #line 58 1"parser.yy" /* yacc.c:1646 */4909 #line 587 "parser.yy" /* yacc.c:1646 */ 4904 4910 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4905 #line 49 06"Parser/parser.cc" /* yacc.c:1646 */4911 #line 4912 "Parser/parser.cc" /* yacc.c:1646 */ 4906 4912 break; 4907 4913 4908 4914 case 101: 4909 #line 5 87"parser.yy" /* yacc.c:1646 */4915 #line 593 "parser.yy" /* yacc.c:1646 */ 4910 4916 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4911 #line 491 2"Parser/parser.cc" /* yacc.c:1646 */4917 #line 4918 "Parser/parser.cc" /* yacc.c:1646 */ 4912 4918 break; 4913 4919 4914 4920 case 103: 4915 #line 59 3"parser.yy" /* yacc.c:1646 */4921 #line 599 "parser.yy" /* yacc.c:1646 */ 4916 4922 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4917 #line 49 18"Parser/parser.cc" /* yacc.c:1646 */4923 #line 4924 "Parser/parser.cc" /* yacc.c:1646 */ 4918 4924 break; 4919 4925 4920 4926 case 105: 4921 #line 599"parser.yy" /* yacc.c:1646 */4927 #line 605 "parser.yy" /* yacc.c:1646 */ 4922 4928 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[-2].en), (yyvsp[0].en), true ) ); } 4923 #line 49 24"Parser/parser.cc" /* yacc.c:1646 */4929 #line 4930 "Parser/parser.cc" /* yacc.c:1646 */ 4924 4930 break; 4925 4931 4926 4932 case 107: 4927 #line 6 05"parser.yy" /* yacc.c:1646 */4933 #line 611 "parser.yy" /* yacc.c:1646 */ 4928 4934 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[-2].en), (yyvsp[0].en), false ) ); } 4929 #line 493 0"Parser/parser.cc" /* yacc.c:1646 */4935 #line 4936 "Parser/parser.cc" /* yacc.c:1646 */ 4930 4936 break; 4931 4937 4932 4938 case 109: 4933 #line 61 1"parser.yy" /* yacc.c:1646 */4939 #line 617 "parser.yy" /* yacc.c:1646 */ 4934 4940 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[-4].en), (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4935 #line 49 36"Parser/parser.cc" /* yacc.c:1646 */4941 #line 4942 "Parser/parser.cc" /* yacc.c:1646 */ 4936 4942 break; 4937 4943 4938 4944 case 110: 4939 #line 6 14"parser.yy" /* yacc.c:1646 */4945 #line 620 "parser.yy" /* yacc.c:1646 */ 4940 4946 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[-3].en), (yyvsp[-3].en), (yyvsp[0].en) ) ); } 4941 #line 494 2"Parser/parser.cc" /* yacc.c:1646 */4947 #line 4948 "Parser/parser.cc" /* yacc.c:1646 */ 4942 4948 break; 4943 4949 4944 4950 case 113: 4945 #line 6 27"parser.yy" /* yacc.c:1646 */4951 #line 633 "parser.yy" /* yacc.c:1646 */ 4946 4952 { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[-1].op), (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4947 #line 49 48"Parser/parser.cc" /* yacc.c:1646 */4953 #line 4954 "Parser/parser.cc" /* yacc.c:1646 */ 4948 4954 break; 4949 4955 4950 4956 case 114: 4951 #line 6 34"parser.yy" /* yacc.c:1646 */4957 #line 640 "parser.yy" /* yacc.c:1646 */ 4952 4958 { (yyval.en) = nullptr; } 4953 #line 49 54"Parser/parser.cc" /* yacc.c:1646 */4959 #line 4960 "Parser/parser.cc" /* yacc.c:1646 */ 4954 4960 break; 4955 4961 4956 4962 case 116: 4957 #line 6 39"parser.yy" /* yacc.c:1646 */4963 #line 645 "parser.yy" /* yacc.c:1646 */ 4958 4964 { (yyval.op) = OperKinds::Assign; } 4959 #line 496 0"Parser/parser.cc" /* yacc.c:1646 */4965 #line 4966 "Parser/parser.cc" /* yacc.c:1646 */ 4960 4966 break; 4961 4967 4962 4968 case 117: 4963 #line 64 0"parser.yy" /* yacc.c:1646 */4969 #line 646 "parser.yy" /* yacc.c:1646 */ 4964 4970 { (yyval.op) = OperKinds::AtAssn; } 4965 #line 49 66"Parser/parser.cc" /* yacc.c:1646 */4971 #line 4972 "Parser/parser.cc" /* yacc.c:1646 */ 4966 4972 break; 4967 4973 4968 4974 case 118: 4969 #line 64 1"parser.yy" /* yacc.c:1646 */4975 #line 647 "parser.yy" /* yacc.c:1646 */ 4970 4976 { (yyval.op) = OperKinds::MulAssn; } 4971 #line 497 2"Parser/parser.cc" /* yacc.c:1646 */4977 #line 4978 "Parser/parser.cc" /* yacc.c:1646 */ 4972 4978 break; 4973 4979 4974 4980 case 119: 4975 #line 64 2"parser.yy" /* yacc.c:1646 */4981 #line 648 "parser.yy" /* yacc.c:1646 */ 4976 4982 { (yyval.op) = OperKinds::DivAssn; } 4977 #line 49 78"Parser/parser.cc" /* yacc.c:1646 */4983 #line 4984 "Parser/parser.cc" /* yacc.c:1646 */ 4978 4984 break; 4979 4985 4980 4986 case 120: 4981 #line 64 3"parser.yy" /* yacc.c:1646 */4987 #line 649 "parser.yy" /* yacc.c:1646 */ 4982 4988 { (yyval.op) = OperKinds::ModAssn; } 4983 #line 49 84"Parser/parser.cc" /* yacc.c:1646 */4989 #line 4990 "Parser/parser.cc" /* yacc.c:1646 */ 4984 4990 break; 4985 4991 4986 4992 case 121: 4987 #line 6 44"parser.yy" /* yacc.c:1646 */4993 #line 650 "parser.yy" /* yacc.c:1646 */ 4988 4994 { (yyval.op) = OperKinds::PlusAssn; } 4989 #line 499 0"Parser/parser.cc" /* yacc.c:1646 */4995 #line 4996 "Parser/parser.cc" /* yacc.c:1646 */ 4990 4996 break; 4991 4997 4992 4998 case 122: 4993 #line 6 45"parser.yy" /* yacc.c:1646 */4999 #line 651 "parser.yy" /* yacc.c:1646 */ 4994 5000 { (yyval.op) = OperKinds::MinusAssn; } 4995 #line 4996"Parser/parser.cc" /* yacc.c:1646 */5001 #line 5002 "Parser/parser.cc" /* yacc.c:1646 */ 4996 5002 break; 4997 5003 4998 5004 case 123: 4999 #line 6 46"parser.yy" /* yacc.c:1646 */5005 #line 652 "parser.yy" /* yacc.c:1646 */ 5000 5006 { (yyval.op) = OperKinds::LSAssn; } 5001 #line 500 2"Parser/parser.cc" /* yacc.c:1646 */5007 #line 5008 "Parser/parser.cc" /* yacc.c:1646 */ 5002 5008 break; 5003 5009 5004 5010 case 124: 5005 #line 6 47"parser.yy" /* yacc.c:1646 */5011 #line 653 "parser.yy" /* yacc.c:1646 */ 5006 5012 { (yyval.op) = OperKinds::RSAssn; } 5007 #line 50 08"Parser/parser.cc" /* yacc.c:1646 */5013 #line 5014 "Parser/parser.cc" /* yacc.c:1646 */ 5008 5014 break; 5009 5015 5010 5016 case 125: 5011 #line 6 48"parser.yy" /* yacc.c:1646 */5017 #line 654 "parser.yy" /* yacc.c:1646 */ 5012 5018 { (yyval.op) = OperKinds::AndAssn; } 5013 #line 50 14"Parser/parser.cc" /* yacc.c:1646 */5019 #line 5020 "Parser/parser.cc" /* yacc.c:1646 */ 5014 5020 break; 5015 5021 5016 5022 case 126: 5017 #line 6 49"parser.yy" /* yacc.c:1646 */5023 #line 655 "parser.yy" /* yacc.c:1646 */ 5018 5024 { (yyval.op) = OperKinds::ERAssn; } 5019 #line 502 0"Parser/parser.cc" /* yacc.c:1646 */5025 #line 5026 "Parser/parser.cc" /* yacc.c:1646 */ 5020 5026 break; 5021 5027 5022 5028 case 127: 5023 #line 65 0"parser.yy" /* yacc.c:1646 */5029 #line 656 "parser.yy" /* yacc.c:1646 */ 5024 5030 { (yyval.op) = OperKinds::OrAssn; } 5025 #line 50 26"Parser/parser.cc" /* yacc.c:1646 */5031 #line 5032 "Parser/parser.cc" /* yacc.c:1646 */ 5026 5032 break; 5027 5033 5028 5034 case 128: 5029 #line 66 1"parser.yy" /* yacc.c:1646 */5035 #line 667 "parser.yy" /* yacc.c:1646 */ 5030 5036 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[-2].en) ) ) ); } 5031 #line 503 2"Parser/parser.cc" /* yacc.c:1646 */5037 #line 5038 "Parser/parser.cc" /* yacc.c:1646 */ 5032 5038 break; 5033 5039 5034 5040 case 129: 5035 #line 66 3"parser.yy" /* yacc.c:1646 */5041 #line 669 "parser.yy" /* yacc.c:1646 */ 5036 5042 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[-4].en)->set_last( (yyvsp[-2].en) ) ) ); } 5037 #line 50 38"Parser/parser.cc" /* yacc.c:1646 */5043 #line 5044 "Parser/parser.cc" /* yacc.c:1646 */ 5038 5044 break; 5039 5045 5040 5046 case 131: 5041 #line 6 69"parser.yy" /* yacc.c:1646 */5047 #line 675 "parser.yy" /* yacc.c:1646 */ 5042 5048 { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); } 5043 #line 50 44"Parser/parser.cc" /* yacc.c:1646 */5049 #line 5050 "Parser/parser.cc" /* yacc.c:1646 */ 5044 5050 break; 5045 5051 5046 5052 case 133: 5047 #line 6 75"parser.yy" /* yacc.c:1646 */5053 #line 681 "parser.yy" /* yacc.c:1646 */ 5048 5054 { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[-2].en), (yyvsp[0].en) ) ); } 5049 #line 505 0"Parser/parser.cc" /* yacc.c:1646 */5055 #line 5056 "Parser/parser.cc" /* yacc.c:1646 */ 5050 5056 break; 5051 5057 5052 5058 case 134: 5053 #line 68 0"parser.yy" /* yacc.c:1646 */5059 #line 686 "parser.yy" /* yacc.c:1646 */ 5054 5060 { (yyval.en) = 0; } 5055 #line 50 56"Parser/parser.cc" /* yacc.c:1646 */5061 #line 5062 "Parser/parser.cc" /* yacc.c:1646 */ 5056 5062 break; 5057 5063 5058 5064 case 138: 5059 #line 6 89"parser.yy" /* yacc.c:1646 */5065 #line 695 "parser.yy" /* yacc.c:1646 */ 5060 5066 { (yyval.sn) = (yyvsp[0].sn); } 5061 #line 506 2"Parser/parser.cc" /* yacc.c:1646 */5067 #line 5068 "Parser/parser.cc" /* yacc.c:1646 */ 5062 5068 break; 5063 5069 5064 5070 case 144: 5065 #line 696"parser.yy" /* yacc.c:1646 */5071 #line 702 "parser.yy" /* yacc.c:1646 */ 5066 5072 { 5067 5073 Token fn; … … 5069 5075 (yyval.sn) = new StatementNode( build_expr( new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[-4].en) )->set_last( (yyvsp[-2].en) ) ) ) ) ); 5070 5076 } 5071 #line 507 2"Parser/parser.cc" /* yacc.c:1646 */5077 #line 5078 "Parser/parser.cc" /* yacc.c:1646 */ 5072 5078 break; 5073 5079 5074 5080 case 145: 5075 #line 7 06"parser.yy" /* yacc.c:1646 */5081 #line 712 "parser.yy" /* yacc.c:1646 */ 5076 5082 { 5077 5083 (yyval.sn) = (yyvsp[0].sn)->add_label( (yyvsp[-3].tok) ); 5078 5084 } 5079 #line 508 0"Parser/parser.cc" /* yacc.c:1646 */5085 #line 5086 "Parser/parser.cc" /* yacc.c:1646 */ 5080 5086 break; 5081 5087 5082 5088 case 146: 5083 #line 71 3"parser.yy" /* yacc.c:1646 */5089 #line 719 "parser.yy" /* yacc.c:1646 */ 5084 5090 { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) ); } 5085 #line 50 86"Parser/parser.cc" /* yacc.c:1646 */5091 #line 5092 "Parser/parser.cc" /* yacc.c:1646 */ 5086 5092 break; 5087 5093 5088 5094 case 147: 5089 #line 72 0"parser.yy" /* yacc.c:1646 */5095 #line 726 "parser.yy" /* yacc.c:1646 */ 5090 5096 { (yyval.sn) = new StatementNode( build_compound( (yyvsp[-2].sn) ) ); } 5091 #line 509 2"Parser/parser.cc" /* yacc.c:1646 */5097 #line 5098 "Parser/parser.cc" /* yacc.c:1646 */ 5092 5098 break; 5093 5099 5094 5100 case 149: 5095 #line 7 26"parser.yy" /* yacc.c:1646 */5101 #line 732 "parser.yy" /* yacc.c:1646 */ 5096 5102 { if ( (yyvsp[-2].sn) != 0 ) { (yyvsp[-2].sn)->set_last( (yyvsp[0].sn) ); (yyval.sn) = (yyvsp[-2].sn); } } 5097 #line 5 098"Parser/parser.cc" /* yacc.c:1646 */5103 #line 5104 "Parser/parser.cc" /* yacc.c:1646 */ 5098 5104 break; 5099 5105 5100 5106 case 150: 5101 #line 73 1"parser.yy" /* yacc.c:1646 */5107 #line 737 "parser.yy" /* yacc.c:1646 */ 5102 5108 { (yyval.sn) = new StatementNode( (yyvsp[0].decl) ); } 5103 #line 51 04"Parser/parser.cc" /* yacc.c:1646 */5109 #line 5110 "Parser/parser.cc" /* yacc.c:1646 */ 5104 5110 break; 5105 5111 5106 5112 case 151: 5107 #line 73 3"parser.yy" /* yacc.c:1646 */5113 #line 739 "parser.yy" /* yacc.c:1646 */ 5108 5114 { // mark all fields in list 5109 5115 for ( DeclarationNode *iter = (yyvsp[0].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) … … 5111 5117 (yyval.sn) = new StatementNode( (yyvsp[0].decl) ); 5112 5118 } 5113 #line 51 14"Parser/parser.cc" /* yacc.c:1646 */5119 #line 5120 "Parser/parser.cc" /* yacc.c:1646 */ 5114 5120 break; 5115 5121 5116 5122 case 152: 5117 #line 7 39"parser.yy" /* yacc.c:1646 */5123 #line 745 "parser.yy" /* yacc.c:1646 */ 5118 5124 { (yyval.sn) = new StatementNode( (yyvsp[0].decl) ); } 5119 #line 512 0"Parser/parser.cc" /* yacc.c:1646 */5125 #line 5126 "Parser/parser.cc" /* yacc.c:1646 */ 5120 5126 break; 5121 5127 5122 5128 case 155: 5123 #line 7 46"parser.yy" /* yacc.c:1646 */5129 #line 752 "parser.yy" /* yacc.c:1646 */ 5124 5130 { if ( (yyvsp[-1].sn) != 0 ) { (yyvsp[-1].sn)->set_last( (yyvsp[0].sn) ); (yyval.sn) = (yyvsp[-1].sn); } } 5125 #line 51 26"Parser/parser.cc" /* yacc.c:1646 */5131 #line 5132 "Parser/parser.cc" /* yacc.c:1646 */ 5126 5132 break; 5127 5133 5128 5134 case 156: 5129 #line 75 1"parser.yy" /* yacc.c:1646 */5135 #line 757 "parser.yy" /* yacc.c:1646 */ 5130 5136 { (yyval.sn) = new StatementNode( build_expr( (yyvsp[-1].en) ) ); } 5131 #line 513 2"Parser/parser.cc" /* yacc.c:1646 */5137 #line 5138 "Parser/parser.cc" /* yacc.c:1646 */ 5132 5138 break; 5133 5139 5134 5140 case 157: 5135 #line 7 57"parser.yy" /* yacc.c:1646 */5141 #line 763 "parser.yy" /* yacc.c:1646 */ 5136 5142 { (yyval.sn) = new StatementNode( build_if( (yyvsp[-2].en), (yyvsp[0].sn), nullptr ) ); } 5137 #line 51 38"Parser/parser.cc" /* yacc.c:1646 */5143 #line 5144 "Parser/parser.cc" /* yacc.c:1646 */ 5138 5144 break; 5139 5145 5140 5146 case 158: 5141 #line 7 59"parser.yy" /* yacc.c:1646 */5147 #line 765 "parser.yy" /* yacc.c:1646 */ 5142 5148 { (yyval.sn) = new StatementNode( build_if( (yyvsp[-4].en), (yyvsp[-2].sn), (yyvsp[0].sn) ) ); } 5143 #line 51 44"Parser/parser.cc" /* yacc.c:1646 */5149 #line 5150 "Parser/parser.cc" /* yacc.c:1646 */ 5144 5150 break; 5145 5151 5146 5152 case 159: 5147 #line 76 1"parser.yy" /* yacc.c:1646 */5153 #line 767 "parser.yy" /* yacc.c:1646 */ 5148 5154 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[-2].en), (yyvsp[0].sn) ) ); } 5149 #line 515 0"Parser/parser.cc" /* yacc.c:1646 */5155 #line 5156 "Parser/parser.cc" /* yacc.c:1646 */ 5150 5156 break; 5151 5157 5152 5158 case 160: 5153 #line 76 3"parser.yy" /* yacc.c:1646 */5159 #line 769 "parser.yy" /* yacc.c:1646 */ 5154 5160 { 5155 5161 StatementNode *sw = new StatementNode( build_switch( (yyvsp[-6].en), (yyvsp[-1].sn) ) ); … … 5161 5167 (yyval.sn) = (yyvsp[-2].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[-2].decl) ))->set_last( sw )) ) ) : sw; 5162 5168 } 5163 #line 51 64"Parser/parser.cc" /* yacc.c:1646 */5169 #line 5170 "Parser/parser.cc" /* yacc.c:1646 */ 5164 5170 break; 5165 5171 5166 5172 case 161: 5167 #line 77 3"parser.yy" /* yacc.c:1646 */5173 #line 779 "parser.yy" /* yacc.c:1646 */ 5168 5174 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[-2].en), (yyvsp[0].sn) ) ); } 5169 #line 517 0"Parser/parser.cc" /* yacc.c:1646 */5175 #line 5176 "Parser/parser.cc" /* yacc.c:1646 */ 5170 5176 break; 5171 5177 5172 5178 case 162: 5173 #line 7 75"parser.yy" /* yacc.c:1646 */5179 #line 781 "parser.yy" /* yacc.c:1646 */ 5174 5180 { 5175 5181 StatementNode *sw = new StatementNode( build_switch( (yyvsp[-6].en), (yyvsp[-1].sn) ) ); 5176 5182 (yyval.sn) = (yyvsp[-2].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[-2].decl) ))->set_last( sw )) ) ) : sw; 5177 5183 } 5178 #line 51 79"Parser/parser.cc" /* yacc.c:1646 */5184 #line 5185 "Parser/parser.cc" /* yacc.c:1646 */ 5179 5185 break; 5180 5186 5181 5187 case 163: 5182 #line 7 85"parser.yy" /* yacc.c:1646 */5188 #line 791 "parser.yy" /* yacc.c:1646 */ 5183 5189 { (yyval.en) = (yyvsp[0].en); } 5184 #line 51 85"Parser/parser.cc" /* yacc.c:1646 */5190 #line 5191 "Parser/parser.cc" /* yacc.c:1646 */ 5185 5191 break; 5186 5192 5187 5193 case 164: 5188 #line 7 87"parser.yy" /* yacc.c:1646 */5194 #line 793 "parser.yy" /* yacc.c:1646 */ 5189 5195 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[-2].en), (yyvsp[0].en) ) ); } 5190 #line 519 1"Parser/parser.cc" /* yacc.c:1646 */5196 #line 5197 "Parser/parser.cc" /* yacc.c:1646 */ 5191 5197 break; 5192 5198 5193 5199 case 166: 5194 #line 79 2"parser.yy" /* yacc.c:1646 */5200 #line 798 "parser.yy" /* yacc.c:1646 */ 5195 5201 { (yyval.sn) = new StatementNode( build_case( (yyvsp[0].en) ) ); } 5196 #line 5 197"Parser/parser.cc" /* yacc.c:1646 */5202 #line 5203 "Parser/parser.cc" /* yacc.c:1646 */ 5197 5203 break; 5198 5204 5199 5205 case 167: 5200 #line 794"parser.yy" /* yacc.c:1646 */5206 #line 800 "parser.yy" /* yacc.c:1646 */ 5201 5207 { (yyval.sn) = (StatementNode *)((yyvsp[-2].sn)->set_last( new StatementNode( build_case( (yyvsp[0].en) ) ) ) ); } 5202 #line 520 3"Parser/parser.cc" /* yacc.c:1646 */5208 #line 5209 "Parser/parser.cc" /* yacc.c:1646 */ 5203 5209 break; 5204 5210 5205 5211 case 168: 5206 #line 798"parser.yy" /* yacc.c:1646 */5212 #line 804 "parser.yy" /* yacc.c:1646 */ 5207 5213 { (yyval.sn) = (yyvsp[-1].sn); } 5208 #line 52 09"Parser/parser.cc" /* yacc.c:1646 */5214 #line 5215 "Parser/parser.cc" /* yacc.c:1646 */ 5209 5215 break; 5210 5216 5211 5217 case 169: 5212 #line 799"parser.yy" /* yacc.c:1646 */5218 #line 805 "parser.yy" /* yacc.c:1646 */ 5213 5219 { (yyval.sn) = new StatementNode( build_default() ); } 5214 #line 52 15"Parser/parser.cc" /* yacc.c:1646 */5220 #line 5221 "Parser/parser.cc" /* yacc.c:1646 */ 5215 5221 break; 5216 5222 5217 5223 case 171: 5218 #line 8 05"parser.yy" /* yacc.c:1646 */5224 #line 811 "parser.yy" /* yacc.c:1646 */ 5219 5225 { (yyval.sn) = (StatementNode *)( (yyvsp[-1].sn)->set_last( (yyvsp[0].sn) )); } 5220 #line 522 1"Parser/parser.cc" /* yacc.c:1646 */5226 #line 5227 "Parser/parser.cc" /* yacc.c:1646 */ 5221 5227 break; 5222 5228 5223 5229 case 172: 5224 #line 8 09"parser.yy" /* yacc.c:1646 */5230 #line 815 "parser.yy" /* yacc.c:1646 */ 5225 5231 { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ); } 5226 #line 52 27"Parser/parser.cc" /* yacc.c:1646 */5232 #line 5233 "Parser/parser.cc" /* yacc.c:1646 */ 5227 5233 break; 5228 5234 5229 5235 case 173: 5230 #line 8 14"parser.yy" /* yacc.c:1646 */5236 #line 820 "parser.yy" /* yacc.c:1646 */ 5231 5237 { (yyval.sn) = 0; } 5232 #line 523 3"Parser/parser.cc" /* yacc.c:1646 */5238 #line 5239 "Parser/parser.cc" /* yacc.c:1646 */ 5233 5239 break; 5234 5240 5235 5241 case 175: 5236 #line 82 0"parser.yy" /* yacc.c:1646 */5242 #line 826 "parser.yy" /* yacc.c:1646 */ 5237 5243 { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ); } 5238 #line 52 39"Parser/parser.cc" /* yacc.c:1646 */5244 #line 5245 "Parser/parser.cc" /* yacc.c:1646 */ 5239 5245 break; 5240 5246 5241 5247 case 176: 5242 #line 82 2"parser.yy" /* yacc.c:1646 */5248 #line 828 "parser.yy" /* yacc.c:1646 */ 5243 5249 { (yyval.sn) = (StatementNode *)( (yyvsp[-2].sn)->set_last( (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ) ) ); } 5244 #line 52 45"Parser/parser.cc" /* yacc.c:1646 */5250 #line 5251 "Parser/parser.cc" /* yacc.c:1646 */ 5245 5251 break; 5246 5252 5247 5253 case 177: 5248 #line 8 27"parser.yy" /* yacc.c:1646 */5254 #line 833 "parser.yy" /* yacc.c:1646 */ 5249 5255 { (yyval.sn) = 0; } 5250 #line 525 1"Parser/parser.cc" /* yacc.c:1646 */5256 #line 5257 "Parser/parser.cc" /* yacc.c:1646 */ 5251 5257 break; 5252 5258 5253 5259 case 179: 5254 #line 83 3"parser.yy" /* yacc.c:1646 */5260 #line 839 "parser.yy" /* yacc.c:1646 */ 5255 5261 { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( (yyvsp[0].sn) ); } 5256 #line 52 57"Parser/parser.cc" /* yacc.c:1646 */5262 #line 5263 "Parser/parser.cc" /* yacc.c:1646 */ 5257 5263 break; 5258 5264 5259 5265 case 180: 5260 #line 8 35"parser.yy" /* yacc.c:1646 */5266 #line 841 "parser.yy" /* yacc.c:1646 */ 5261 5267 { (yyval.sn) = (yyvsp[-2].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[-1].sn)->set_last( (yyvsp[0].sn) ) ) ) ); } 5262 #line 526 3"Parser/parser.cc" /* yacc.c:1646 */5268 #line 5269 "Parser/parser.cc" /* yacc.c:1646 */ 5263 5269 break; 5264 5270 5265 5271 case 181: 5266 #line 8 37"parser.yy" /* yacc.c:1646 */5272 #line 843 "parser.yy" /* yacc.c:1646 */ 5267 5273 { (yyval.sn) = (StatementNode *)( (yyvsp[-2].sn)->set_last( (yyvsp[-1].sn)->append_last_case( (yyvsp[0].sn) ))); } 5268 #line 52 69"Parser/parser.cc" /* yacc.c:1646 */5274 #line 5275 "Parser/parser.cc" /* yacc.c:1646 */ 5269 5275 break; 5270 5276 5271 5277 case 182: 5272 #line 8 39"parser.yy" /* yacc.c:1646 */5278 #line 845 "parser.yy" /* yacc.c:1646 */ 5273 5279 { (yyval.sn) = (StatementNode *)( (yyvsp[-3].sn)->set_last( (yyvsp[-2].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[-1].sn)->set_last( (yyvsp[0].sn) ) ) ) ) ) ); } 5274 #line 52 75"Parser/parser.cc" /* yacc.c:1646 */5280 #line 5281 "Parser/parser.cc" /* yacc.c:1646 */ 5275 5281 break; 5276 5282 5277 5283 case 183: 5278 #line 8 44"parser.yy" /* yacc.c:1646 */5284 #line 850 "parser.yy" /* yacc.c:1646 */ 5279 5285 { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); } 5280 #line 528 1"Parser/parser.cc" /* yacc.c:1646 */5286 #line 5287 "Parser/parser.cc" /* yacc.c:1646 */ 5281 5287 break; 5282 5288 5283 5289 case 185: 5284 #line 850 "parser.yy" /* yacc.c:1646 */ 5285 { (yyval.sn) = 0; } 5286 #line 5287 "Parser/parser.cc" /* yacc.c:1646 */ 5287 break; 5288 5289 case 186: 5290 #line 852 "parser.yy" /* yacc.c:1646 */ 5290 #line 856 "parser.yy" /* yacc.c:1646 */ 5291 5291 { (yyval.sn) = 0; } 5292 5292 #line 5293 "Parser/parser.cc" /* yacc.c:1646 */ 5293 5293 break; 5294 5294 5295 case 186: 5296 #line 858 "parser.yy" /* yacc.c:1646 */ 5297 { (yyval.sn) = 0; } 5298 #line 5299 "Parser/parser.cc" /* yacc.c:1646 */ 5299 break; 5300 5295 5301 case 187: 5296 #line 8 57"parser.yy" /* yacc.c:1646 */5302 #line 863 "parser.yy" /* yacc.c:1646 */ 5297 5303 { (yyval.sn) = new StatementNode( build_while( (yyvsp[-2].en), (yyvsp[0].sn) ) ); } 5298 #line 5 299"Parser/parser.cc" /* yacc.c:1646 */5304 #line 5305 "Parser/parser.cc" /* yacc.c:1646 */ 5299 5305 break; 5300 5306 5301 5307 case 188: 5302 #line 8 59"parser.yy" /* yacc.c:1646 */5308 #line 865 "parser.yy" /* yacc.c:1646 */ 5303 5309 { (yyval.sn) = new StatementNode( build_while( (yyvsp[-2].en), (yyvsp[-5].sn), true ) ); } 5304 #line 53 05"Parser/parser.cc" /* yacc.c:1646 */5310 #line 5311 "Parser/parser.cc" /* yacc.c:1646 */ 5305 5311 break; 5306 5312 5307 5313 case 189: 5308 #line 86 1"parser.yy" /* yacc.c:1646 */5314 #line 867 "parser.yy" /* yacc.c:1646 */ 5309 5315 { (yyval.sn) = new StatementNode( build_for( (yyvsp[-2].fctl), (yyvsp[0].sn) ) ); } 5310 #line 531 1"Parser/parser.cc" /* yacc.c:1646 */5316 #line 5317 "Parser/parser.cc" /* yacc.c:1646 */ 5311 5317 break; 5312 5318 5313 5319 case 190: 5314 #line 8 66"parser.yy" /* yacc.c:1646 */5320 #line 872 "parser.yy" /* yacc.c:1646 */ 5315 5321 { (yyval.fctl) = new ForCtl( (yyvsp[-5].en), (yyvsp[-2].en), (yyvsp[0].en) ); } 5316 #line 53 17"Parser/parser.cc" /* yacc.c:1646 */5322 #line 5323 "Parser/parser.cc" /* yacc.c:1646 */ 5317 5323 break; 5318 5324 5319 5325 case 191: 5320 #line 8 68"parser.yy" /* yacc.c:1646 */5326 #line 874 "parser.yy" /* yacc.c:1646 */ 5321 5327 { (yyval.fctl) = new ForCtl( (yyvsp[-3].decl), (yyvsp[-2].en), (yyvsp[0].en) ); } 5322 #line 532 3"Parser/parser.cc" /* yacc.c:1646 */5328 #line 5329 "Parser/parser.cc" /* yacc.c:1646 */ 5323 5329 break; 5324 5330 5325 5331 case 192: 5326 #line 87 3"parser.yy" /* yacc.c:1646 */5332 #line 879 "parser.yy" /* yacc.c:1646 */ 5327 5333 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[-1].tok), BranchStmt::Goto ) ); } 5328 #line 53 29"Parser/parser.cc" /* yacc.c:1646 */5334 #line 5335 "Parser/parser.cc" /* yacc.c:1646 */ 5329 5335 break; 5330 5336 5331 5337 case 193: 5332 #line 8 77"parser.yy" /* yacc.c:1646 */5338 #line 883 "parser.yy" /* yacc.c:1646 */ 5333 5339 { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[-1].en) ) ); } 5334 #line 53 35"Parser/parser.cc" /* yacc.c:1646 */5340 #line 5341 "Parser/parser.cc" /* yacc.c:1646 */ 5335 5341 break; 5336 5342 5337 5343 case 194: 5338 #line 88 0"parser.yy" /* yacc.c:1646 */5344 #line 886 "parser.yy" /* yacc.c:1646 */ 5339 5345 { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Continue ) ); } 5340 #line 534 1"Parser/parser.cc" /* yacc.c:1646 */5346 #line 5347 "Parser/parser.cc" /* yacc.c:1646 */ 5341 5347 break; 5342 5348 5343 5349 case 195: 5344 #line 8 84"parser.yy" /* yacc.c:1646 */5350 #line 890 "parser.yy" /* yacc.c:1646 */ 5345 5351 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[-1].tok), BranchStmt::Continue ) ); } 5346 #line 53 47"Parser/parser.cc" /* yacc.c:1646 */5352 #line 5353 "Parser/parser.cc" /* yacc.c:1646 */ 5347 5353 break; 5348 5354 5349 5355 case 196: 5350 #line 8 87"parser.yy" /* yacc.c:1646 */5356 #line 893 "parser.yy" /* yacc.c:1646 */ 5351 5357 { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); } 5352 #line 535 3"Parser/parser.cc" /* yacc.c:1646 */5358 #line 5359 "Parser/parser.cc" /* yacc.c:1646 */ 5353 5359 break; 5354 5360 5355 5361 case 197: 5356 #line 89 1"parser.yy" /* yacc.c:1646 */5362 #line 897 "parser.yy" /* yacc.c:1646 */ 5357 5363 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[-1].tok), BranchStmt::Break ) ); } 5358 #line 53 59"Parser/parser.cc" /* yacc.c:1646 */5364 #line 5365 "Parser/parser.cc" /* yacc.c:1646 */ 5359 5365 break; 5360 5366 5361 5367 case 198: 5362 #line 89 3"parser.yy" /* yacc.c:1646 */5368 #line 899 "parser.yy" /* yacc.c:1646 */ 5363 5369 { (yyval.sn) = new StatementNode( build_return( (yyvsp[-1].en) ) ); } 5364 #line 53 65"Parser/parser.cc" /* yacc.c:1646 */5370 #line 5371 "Parser/parser.cc" /* yacc.c:1646 */ 5365 5371 break; 5366 5372 5367 5373 case 199: 5368 #line 895 "parser.yy" /* yacc.c:1646 */ 5369 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-1].en) ) ); } 5370 #line 5371 "Parser/parser.cc" /* yacc.c:1646 */ 5371 break; 5372 5373 case 200: 5374 #line 897 "parser.yy" /* yacc.c:1646 */ 5374 #line 901 "parser.yy" /* yacc.c:1646 */ 5375 5375 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-1].en) ) ); } 5376 5376 #line 5377 "Parser/parser.cc" /* yacc.c:1646 */ 5377 5377 break; 5378 5378 5379 case 200: 5380 #line 903 "parser.yy" /* yacc.c:1646 */ 5381 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-1].en) ) ); } 5382 #line 5383 "Parser/parser.cc" /* yacc.c:1646 */ 5383 break; 5384 5379 5385 case 201: 5380 #line 899"parser.yy" /* yacc.c:1646 */5386 #line 905 "parser.yy" /* yacc.c:1646 */ 5381 5387 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-3].en) ) ); } 5382 #line 538 3"Parser/parser.cc" /* yacc.c:1646 */5388 #line 5389 "Parser/parser.cc" /* yacc.c:1646 */ 5383 5389 break; 5384 5390 5385 5391 case 202: 5386 #line 9 04"parser.yy" /* yacc.c:1646 */5392 #line 910 "parser.yy" /* yacc.c:1646 */ 5387 5393 { (yyval.sn) = new StatementNode( build_try( (yyvsp[-1].sn), (yyvsp[0].sn), 0 ) ); } 5388 #line 53 89"Parser/parser.cc" /* yacc.c:1646 */5394 #line 5395 "Parser/parser.cc" /* yacc.c:1646 */ 5389 5395 break; 5390 5396 5391 5397 case 203: 5392 #line 9 06"parser.yy" /* yacc.c:1646 */5398 #line 912 "parser.yy" /* yacc.c:1646 */ 5393 5399 { (yyval.sn) = new StatementNode( build_try( (yyvsp[-1].sn), 0, (yyvsp[0].sn) ) ); } 5394 #line 5 395"Parser/parser.cc" /* yacc.c:1646 */5400 #line 5401 "Parser/parser.cc" /* yacc.c:1646 */ 5395 5401 break; 5396 5402 5397 5403 case 204: 5398 #line 9 08"parser.yy" /* yacc.c:1646 */5404 #line 914 "parser.yy" /* yacc.c:1646 */ 5399 5405 { (yyval.sn) = new StatementNode( build_try( (yyvsp[-2].sn), (yyvsp[-1].sn), (yyvsp[0].sn) ) ); } 5400 #line 540 1"Parser/parser.cc" /* yacc.c:1646 */5406 #line 5407 "Parser/parser.cc" /* yacc.c:1646 */ 5401 5407 break; 5402 5408 5403 5409 case 206: 5404 #line 9 15"parser.yy" /* yacc.c:1646 */5410 #line 921 "parser.yy" /* yacc.c:1646 */ 5405 5411 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ); } 5406 #line 54 07"Parser/parser.cc" /* yacc.c:1646 */5412 #line 5413 "Parser/parser.cc" /* yacc.c:1646 */ 5407 5413 break; 5408 5414 5409 5415 case 207: 5410 #line 9 17"parser.yy" /* yacc.c:1646 */5416 #line 923 "parser.yy" /* yacc.c:1646 */ 5411 5417 { (yyval.sn) = (StatementNode *)(yyvsp[-5].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ) ); } 5412 #line 541 3"Parser/parser.cc" /* yacc.c:1646 */5418 #line 5419 "Parser/parser.cc" /* yacc.c:1646 */ 5413 5419 break; 5414 5420 5415 5421 case 208: 5416 #line 9 19"parser.yy" /* yacc.c:1646 */5422 #line 925 "parser.yy" /* yacc.c:1646 */ 5417 5423 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ); } 5418 #line 54 19"Parser/parser.cc" /* yacc.c:1646 */5424 #line 5425 "Parser/parser.cc" /* yacc.c:1646 */ 5419 5425 break; 5420 5426 5421 5427 case 209: 5422 #line 92 1"parser.yy" /* yacc.c:1646 */5428 #line 927 "parser.yy" /* yacc.c:1646 */ 5423 5429 { (yyval.sn) = (StatementNode *)(yyvsp[-5].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ) ); } 5424 #line 54 25"Parser/parser.cc" /* yacc.c:1646 */5430 #line 5431 "Parser/parser.cc" /* yacc.c:1646 */ 5425 5431 break; 5426 5432 5427 5433 case 210: 5428 #line 9 26"parser.yy" /* yacc.c:1646 */5434 #line 932 "parser.yy" /* yacc.c:1646 */ 5429 5435 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ); } 5430 #line 543 1"Parser/parser.cc" /* yacc.c:1646 */5436 #line 5437 "Parser/parser.cc" /* yacc.c:1646 */ 5431 5437 break; 5432 5438 5433 5439 case 211: 5434 #line 9 28"parser.yy" /* yacc.c:1646 */5440 #line 934 "parser.yy" /* yacc.c:1646 */ 5435 5441 { (yyval.sn) = (StatementNode *)(yyvsp[-9].sn)->set_last( new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ) ); } 5436 #line 54 37"Parser/parser.cc" /* yacc.c:1646 */5442 #line 5443 "Parser/parser.cc" /* yacc.c:1646 */ 5437 5443 break; 5438 5444 5439 5445 case 212: 5440 #line 93 0"parser.yy" /* yacc.c:1646 */5446 #line 936 "parser.yy" /* yacc.c:1646 */ 5441 5447 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ); } 5442 #line 544 3"Parser/parser.cc" /* yacc.c:1646 */5448 #line 5449 "Parser/parser.cc" /* yacc.c:1646 */ 5443 5449 break; 5444 5450 5445 5451 case 213: 5446 #line 93 2"parser.yy" /* yacc.c:1646 */5452 #line 938 "parser.yy" /* yacc.c:1646 */ 5447 5453 { (yyval.sn) = (StatementNode *)(yyvsp[-9].sn)->set_last( new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ) ); } 5448 #line 54 49"Parser/parser.cc" /* yacc.c:1646 */5454 #line 5455 "Parser/parser.cc" /* yacc.c:1646 */ 5449 5455 break; 5450 5456 5451 5457 case 214: 5452 #line 9 37"parser.yy" /* yacc.c:1646 */5458 #line 943 "parser.yy" /* yacc.c:1646 */ 5453 5459 { 5454 5460 (yyval.sn) = new StatementNode( build_finally( (yyvsp[0].sn) ) ); 5455 5461 } 5456 #line 54 57"Parser/parser.cc" /* yacc.c:1646 */5462 #line 5463 "Parser/parser.cc" /* yacc.c:1646 */ 5457 5463 break; 5458 5464 5459 5465 case 216: 5460 #line 95 0"parser.yy" /* yacc.c:1646 */5466 #line 956 "parser.yy" /* yacc.c:1646 */ 5461 5467 { 5462 5468 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5463 5469 (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); 5464 5470 } 5465 #line 54 66"Parser/parser.cc" /* yacc.c:1646 */5471 #line 5472 "Parser/parser.cc" /* yacc.c:1646 */ 5466 5472 break; 5467 5473 5468 5474 case 217: 5469 #line 9 55"parser.yy" /* yacc.c:1646 */5475 #line 961 "parser.yy" /* yacc.c:1646 */ 5470 5476 { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); } 5471 #line 547 2"Parser/parser.cc" /* yacc.c:1646 */5477 #line 5478 "Parser/parser.cc" /* yacc.c:1646 */ 5472 5478 break; 5473 5479 5474 5480 case 218: 5475 #line 9 57"parser.yy" /* yacc.c:1646 */5481 #line 963 "parser.yy" /* yacc.c:1646 */ 5476 5482 { 5477 5483 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5478 5484 (yyval.decl) = (yyvsp[-1].decl)->addName( (yyvsp[0].tok) ); 5479 5485 } 5480 #line 548 1"Parser/parser.cc" /* yacc.c:1646 */5486 #line 5487 "Parser/parser.cc" /* yacc.c:1646 */ 5481 5487 break; 5482 5488 5483 5489 case 220: 5484 #line 9 66"parser.yy" /* yacc.c:1646 */5490 #line 972 "parser.yy" /* yacc.c:1646 */ 5485 5491 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-4].flag), (yyvsp[-2].constant), 0 ) ); } 5486 #line 54 87"Parser/parser.cc" /* yacc.c:1646 */5492 #line 5493 "Parser/parser.cc" /* yacc.c:1646 */ 5487 5493 break; 5488 5494 5489 5495 case 221: 5490 #line 9 68"parser.yy" /* yacc.c:1646 */5496 #line 974 "parser.yy" /* yacc.c:1646 */ 5491 5497 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-6].flag), (yyvsp[-4].constant), (yyvsp[-2].en) ) ); } 5492 #line 549 3"Parser/parser.cc" /* yacc.c:1646 */5498 #line 5499 "Parser/parser.cc" /* yacc.c:1646 */ 5493 5499 break; 5494 5500 5495 5501 case 222: 5496 #line 97 0"parser.yy" /* yacc.c:1646 */5502 #line 976 "parser.yy" /* yacc.c:1646 */ 5497 5503 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-8].flag), (yyvsp[-6].constant), (yyvsp[-4].en), (yyvsp[-2].en) ) ); } 5498 #line 5 499"Parser/parser.cc" /* yacc.c:1646 */5504 #line 5505 "Parser/parser.cc" /* yacc.c:1646 */ 5499 5505 break; 5500 5506 5501 5507 case 223: 5502 #line 97 2"parser.yy" /* yacc.c:1646 */5508 #line 978 "parser.yy" /* yacc.c:1646 */ 5503 5509 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-10].flag), (yyvsp[-8].constant), (yyvsp[-6].en), (yyvsp[-4].en), (yyvsp[-2].en) ) ); } 5504 #line 55 05"Parser/parser.cc" /* yacc.c:1646 */5510 #line 5511 "Parser/parser.cc" /* yacc.c:1646 */ 5505 5511 break; 5506 5512 5507 5513 case 224: 5508 #line 9 74"parser.yy" /* yacc.c:1646 */5514 #line 980 "parser.yy" /* yacc.c:1646 */ 5509 5515 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-12].flag), (yyvsp[-9].constant), 0, (yyvsp[-6].en), (yyvsp[-4].en), (yyvsp[-2].label) ) ); } 5510 #line 551 1"Parser/parser.cc" /* yacc.c:1646 */5516 #line 5517 "Parser/parser.cc" /* yacc.c:1646 */ 5511 5517 break; 5512 5518 5513 5519 case 225: 5514 #line 9 79"parser.yy" /* yacc.c:1646 */5520 #line 985 "parser.yy" /* yacc.c:1646 */ 5515 5521 { (yyval.flag) = false; } 5516 #line 55 17"Parser/parser.cc" /* yacc.c:1646 */5522 #line 5523 "Parser/parser.cc" /* yacc.c:1646 */ 5517 5523 break; 5518 5524 5519 5525 case 226: 5520 #line 98 1"parser.yy" /* yacc.c:1646 */5526 #line 987 "parser.yy" /* yacc.c:1646 */ 5521 5527 { (yyval.flag) = true; } 5522 #line 552 3"Parser/parser.cc" /* yacc.c:1646 */5528 #line 5529 "Parser/parser.cc" /* yacc.c:1646 */ 5523 5529 break; 5524 5530 5525 5531 case 227: 5526 #line 9 86"parser.yy" /* yacc.c:1646 */5532 #line 992 "parser.yy" /* yacc.c:1646 */ 5527 5533 { (yyval.en) = 0; } 5528 #line 55 29"Parser/parser.cc" /* yacc.c:1646 */5534 #line 5535 "Parser/parser.cc" /* yacc.c:1646 */ 5529 5535 break; 5530 5536 5531 5537 case 230: 5532 #line 99 3"parser.yy" /* yacc.c:1646 */5538 #line 999 "parser.yy" /* yacc.c:1646 */ 5533 5539 { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); } 5534 #line 55 35"Parser/parser.cc" /* yacc.c:1646 */5540 #line 5541 "Parser/parser.cc" /* yacc.c:1646 */ 5535 5541 break; 5536 5542 5537 5543 case 231: 5538 #line 998"parser.yy" /* yacc.c:1646 */5544 #line 1004 "parser.yy" /* yacc.c:1646 */ 5539 5545 { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[-3].constant), (yyvsp[-1].en) ) ); } 5540 #line 554 1"Parser/parser.cc" /* yacc.c:1646 */5546 #line 5547 "Parser/parser.cc" /* yacc.c:1646 */ 5541 5547 break; 5542 5548 5543 5549 case 232: 5544 #line 100 0"parser.yy" /* yacc.c:1646 */5550 #line 1006 "parser.yy" /* yacc.c:1646 */ 5545 5551 { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[-5].en), (yyvsp[-3].constant), (yyvsp[-1].en) ) ); } 5546 #line 55 47"Parser/parser.cc" /* yacc.c:1646 */5552 #line 5553 "Parser/parser.cc" /* yacc.c:1646 */ 5547 5553 break; 5548 5554 5549 5555 case 233: 5550 #line 10 05"parser.yy" /* yacc.c:1646 */5556 #line 1011 "parser.yy" /* yacc.c:1646 */ 5551 5557 { (yyval.en) = 0; } 5552 #line 555 3"Parser/parser.cc" /* yacc.c:1646 */5558 #line 5559 "Parser/parser.cc" /* yacc.c:1646 */ 5553 5559 break; 5554 5560 5555 5561 case 234: 5556 #line 10 07"parser.yy" /* yacc.c:1646 */5562 #line 1013 "parser.yy" /* yacc.c:1646 */ 5557 5563 { (yyval.en) = new ExpressionNode( (yyvsp[0].constant) ); } 5558 #line 55 59"Parser/parser.cc" /* yacc.c:1646 */5564 #line 5565 "Parser/parser.cc" /* yacc.c:1646 */ 5559 5565 break; 5560 5566 5561 5567 case 235: 5562 #line 10 09"parser.yy" /* yacc.c:1646 */5568 #line 1015 "parser.yy" /* yacc.c:1646 */ 5563 5569 { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( new ExpressionNode( (yyvsp[0].constant) ) ); } 5564 #line 55 65"Parser/parser.cc" /* yacc.c:1646 */5570 #line 5571 "Parser/parser.cc" /* yacc.c:1646 */ 5565 5571 break; 5566 5572 5567 5573 case 236: 5568 #line 10 14"parser.yy" /* yacc.c:1646 */5574 #line 1020 "parser.yy" /* yacc.c:1646 */ 5569 5575 { 5570 5576 (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[0].tok) ); 5571 5577 delete (yyvsp[0].tok); // allocated by lexer 5572 5578 } 5573 #line 55 74"Parser/parser.cc" /* yacc.c:1646 */5579 #line 5580 "Parser/parser.cc" /* yacc.c:1646 */ 5574 5580 break; 5575 5581 5576 5582 case 237: 5577 #line 10 19"parser.yy" /* yacc.c:1646 */5583 #line 1025 "parser.yy" /* yacc.c:1646 */ 5578 5584 { 5579 5585 (yyval.label) = (yyvsp[-2].label); (yyvsp[-2].label)->labels.push_back( *(yyvsp[0].tok) ); 5580 5586 delete (yyvsp[0].tok); // allocated by lexer 5581 5587 } 5582 #line 558 3"Parser/parser.cc" /* yacc.c:1646 */5588 #line 5589 "Parser/parser.cc" /* yacc.c:1646 */ 5583 5589 break; 5584 5590 5585 5591 case 238: 5586 #line 10 29"parser.yy" /* yacc.c:1646 */5592 #line 1035 "parser.yy" /* yacc.c:1646 */ 5587 5593 { (yyval.decl) = 0; } 5588 #line 55 89"Parser/parser.cc" /* yacc.c:1646 */5594 #line 5595 "Parser/parser.cc" /* yacc.c:1646 */ 5589 5595 break; 5590 5596 5591 5597 case 241: 5592 #line 10 36"parser.yy" /* yacc.c:1646 */5598 #line 1042 "parser.yy" /* yacc.c:1646 */ 5593 5599 { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); } 5594 #line 5 595"Parser/parser.cc" /* yacc.c:1646 */5600 #line 5601 "Parser/parser.cc" /* yacc.c:1646 */ 5595 5601 break; 5596 5602 5597 5603 case 242: 5598 #line 104 1"parser.yy" /* yacc.c:1646 */5604 #line 1047 "parser.yy" /* yacc.c:1646 */ 5599 5605 { (yyval.decl) = 0; } 5600 #line 560 1"Parser/parser.cc" /* yacc.c:1646 */5606 #line 5607 "Parser/parser.cc" /* yacc.c:1646 */ 5601 5607 break; 5602 5608 5603 5609 case 245: 5604 #line 10 48"parser.yy" /* yacc.c:1646 */5610 #line 1054 "parser.yy" /* yacc.c:1646 */ 5605 5611 { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); } 5606 #line 56 07"Parser/parser.cc" /* yacc.c:1646 */5612 #line 5613 "Parser/parser.cc" /* yacc.c:1646 */ 5607 5613 break; 5608 5614 5609 5615 case 250: 5610 #line 1062 "parser.yy" /* yacc.c:1646 */ 5611 {} 5612 #line 5613 "Parser/parser.cc" /* yacc.c:1646 */ 5613 break; 5614 5615 case 251: 5616 #line 1063 "parser.yy" /* yacc.c:1646 */ 5616 #line 1068 "parser.yy" /* yacc.c:1646 */ 5617 5617 {} 5618 5618 #line 5619 "Parser/parser.cc" /* yacc.c:1646 */ 5619 5619 break; 5620 5620 5621 case 251: 5622 #line 1069 "parser.yy" /* yacc.c:1646 */ 5623 {} 5624 #line 5625 "Parser/parser.cc" /* yacc.c:1646 */ 5625 break; 5626 5621 5627 case 259: 5622 #line 109 2"parser.yy" /* yacc.c:1646 */5628 #line 1098 "parser.yy" /* yacc.c:1646 */ 5623 5629 { 5624 5630 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5625 5631 (yyval.decl) = (yyvsp[-1].decl)->addInitializer( (yyvsp[0].in) ); 5626 5632 } 5627 #line 56 28"Parser/parser.cc" /* yacc.c:1646 */5633 #line 5634 "Parser/parser.cc" /* yacc.c:1646 */ 5628 5634 break; 5629 5635 5630 5636 case 260: 5631 #line 1 099"parser.yy" /* yacc.c:1646 */5637 #line 1105 "parser.yy" /* yacc.c:1646 */ 5632 5638 { 5633 5639 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5634 5640 (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[-2].decl) )->addInitializer( (yyvsp[0].in) );; 5635 5641 } 5636 #line 56 37"Parser/parser.cc" /* yacc.c:1646 */5642 #line 5643 "Parser/parser.cc" /* yacc.c:1646 */ 5637 5643 break; 5638 5644 5639 5645 case 261: 5640 #line 11 04"parser.yy" /* yacc.c:1646 */5646 #line 1110 "parser.yy" /* yacc.c:1646 */ 5641 5647 { 5642 5648 typedefTable.addToEnclosingScope( *(yyvsp[-1].tok), TypedefTable::ID ); 5643 5649 (yyval.decl) = (yyvsp[-5].decl)->appendList( (yyvsp[-5].decl)->cloneType( (yyvsp[-1].tok) )->addInitializer( (yyvsp[0].in) ) ); 5644 5650 } 5645 #line 56 46"Parser/parser.cc" /* yacc.c:1646 */5651 #line 5652 "Parser/parser.cc" /* yacc.c:1646 */ 5646 5652 break; 5647 5653 5648 5654 case 262: 5649 #line 11 14"parser.yy" /* yacc.c:1646 */5655 #line 1120 "parser.yy" /* yacc.c:1646 */ 5650 5656 { 5651 5657 typedefTable.setNextIdentifier( *(yyvsp[-1].tok) ); 5652 5658 (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) ); 5653 5659 } 5654 #line 56 55"Parser/parser.cc" /* yacc.c:1646 */5660 #line 5661 "Parser/parser.cc" /* yacc.c:1646 */ 5655 5661 break; 5656 5662 5657 5663 case 263: 5658 #line 11 19"parser.yy" /* yacc.c:1646 */5664 #line 1125 "parser.yy" /* yacc.c:1646 */ 5659 5665 { 5660 5666 typedefTable.setNextIdentifier( *(yyvsp[-1].tok) ); 5661 5667 (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) ); 5662 5668 } 5663 #line 56 64"Parser/parser.cc" /* yacc.c:1646 */5669 #line 5670 "Parser/parser.cc" /* yacc.c:1646 */ 5664 5670 break; 5665 5671 5666 5672 case 264: 5667 #line 11 24"parser.yy" /* yacc.c:1646 */5673 #line 1130 "parser.yy" /* yacc.c:1646 */ 5668 5674 { 5669 5675 typedefTable.setNextIdentifier( *(yyvsp[-1].tok) ); 5670 5676 (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-3].decl) )->addName( (yyvsp[-1].tok) ); 5671 5677 } 5672 #line 567 3"Parser/parser.cc" /* yacc.c:1646 */5678 #line 5679 "Parser/parser.cc" /* yacc.c:1646 */ 5673 5679 break; 5674 5680 5675 5681 case 265: 5676 #line 113 2"parser.yy" /* yacc.c:1646 */5682 #line 1138 "parser.yy" /* yacc.c:1646 */ 5677 5683 { 5678 5684 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5679 5685 (yyval.decl) = (yyvsp[0].decl); 5680 5686 } 5681 #line 568 2"Parser/parser.cc" /* yacc.c:1646 */5687 #line 5688 "Parser/parser.cc" /* yacc.c:1646 */ 5682 5688 break; 5683 5689 5684 5690 case 266: 5685 #line 11 37"parser.yy" /* yacc.c:1646 */5691 #line 1143 "parser.yy" /* yacc.c:1646 */ 5686 5692 { 5687 5693 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5688 5694 (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); 5689 5695 } 5690 #line 569 1"Parser/parser.cc" /* yacc.c:1646 */5696 #line 5697 "Parser/parser.cc" /* yacc.c:1646 */ 5691 5697 break; 5692 5698 5693 5699 case 267: 5694 #line 114 2"parser.yy" /* yacc.c:1646 */5700 #line 1148 "parser.yy" /* yacc.c:1646 */ 5695 5701 { 5696 5702 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5697 5703 (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); 5698 5704 } 5699 #line 570 0"Parser/parser.cc" /* yacc.c:1646 */5705 #line 5706 "Parser/parser.cc" /* yacc.c:1646 */ 5700 5706 break; 5701 5707 5702 5708 case 268: 5703 #line 11 47"parser.yy" /* yacc.c:1646 */5709 #line 1153 "parser.yy" /* yacc.c:1646 */ 5704 5710 { 5705 5711 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5706 5712 (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[-1].decl) ); 5707 5713 } 5708 #line 57 09"Parser/parser.cc" /* yacc.c:1646 */5714 #line 5715 "Parser/parser.cc" /* yacc.c:1646 */ 5709 5715 break; 5710 5716 5711 5717 case 269: 5712 #line 115 2"parser.yy" /* yacc.c:1646 */5718 #line 1158 "parser.yy" /* yacc.c:1646 */ 5713 5719 { 5714 5720 typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::ID ); 5715 5721 (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) ); 5716 5722 } 5717 #line 57 18"Parser/parser.cc" /* yacc.c:1646 */5723 #line 5724 "Parser/parser.cc" /* yacc.c:1646 */ 5718 5724 break; 5719 5725 5720 5726 case 270: 5721 #line 118 3"parser.yy" /* yacc.c:1646 */5727 #line 1189 "parser.yy" /* yacc.c:1646 */ 5722 5728 { 5723 5729 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[-5].tok), (yyvsp[-6].decl), (yyvsp[-2].decl), 0, true ); 5724 5730 } 5725 #line 57 26"Parser/parser.cc" /* yacc.c:1646 */5731 #line 5732 "Parser/parser.cc" /* yacc.c:1646 */ 5726 5732 break; 5727 5733 5728 5734 case 271: 5729 #line 11 87"parser.yy" /* yacc.c:1646 */5735 #line 1193 "parser.yy" /* yacc.c:1646 */ 5730 5736 { 5731 5737 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[-5].tok), (yyvsp[-6].decl), (yyvsp[-2].decl), 0, true ); 5732 5738 } 5733 #line 57 34"Parser/parser.cc" /* yacc.c:1646 */5739 #line 5740 "Parser/parser.cc" /* yacc.c:1646 */ 5734 5740 break; 5735 5741 5736 5742 case 272: 5737 #line 1 194"parser.yy" /* yacc.c:1646 */5743 #line 1200 "parser.yy" /* yacc.c:1646 */ 5738 5744 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-2].decl) ); } 5739 #line 574 0"Parser/parser.cc" /* yacc.c:1646 */5745 #line 5746 "Parser/parser.cc" /* yacc.c:1646 */ 5740 5746 break; 5741 5747 5742 5748 case 273: 5743 #line 1 198"parser.yy" /* yacc.c:1646 */5749 #line 1204 "parser.yy" /* yacc.c:1646 */ 5744 5750 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-6].decl)->appendList( (yyvsp[-2].decl) ) ); } 5745 #line 57 46"Parser/parser.cc" /* yacc.c:1646 */5751 #line 5752 "Parser/parser.cc" /* yacc.c:1646 */ 5746 5752 break; 5747 5753 5748 5754 case 274: 5749 #line 120 3"parser.yy" /* yacc.c:1646 */5755 #line 1209 "parser.yy" /* yacc.c:1646 */ 5750 5756 { 5751 5757 typedefTable.addToEnclosingScope( TypedefTable::TD ); 5752 5758 (yyval.decl) = (yyvsp[0].decl)->addTypedef(); 5753 5759 } 5754 #line 57 55"Parser/parser.cc" /* yacc.c:1646 */5760 #line 5761 "Parser/parser.cc" /* yacc.c:1646 */ 5755 5761 break; 5756 5762 5757 5763 case 275: 5758 #line 12 08"parser.yy" /* yacc.c:1646 */5764 #line 1214 "parser.yy" /* yacc.c:1646 */ 5759 5765 { 5760 5766 typedefTable.addToEnclosingScope( TypedefTable::TD ); 5761 5767 (yyval.decl) = (yyvsp[0].decl)->addTypedef(); 5762 5768 } 5763 #line 57 64"Parser/parser.cc" /* yacc.c:1646 */5769 #line 5770 "Parser/parser.cc" /* yacc.c:1646 */ 5764 5770 break; 5765 5771 5766 5772 case 276: 5767 #line 121 3"parser.yy" /* yacc.c:1646 */5773 #line 1219 "parser.yy" /* yacc.c:1646 */ 5768 5774 { 5769 5775 typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::TD ); 5770 5776 (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) ); 5771 5777 } 5772 #line 577 3"Parser/parser.cc" /* yacc.c:1646 */5778 #line 5779 "Parser/parser.cc" /* yacc.c:1646 */ 5773 5779 break; 5774 5780 5775 5781 case 277: 5776 #line 12 24"parser.yy" /* yacc.c:1646 */5782 #line 1230 "parser.yy" /* yacc.c:1646 */ 5777 5783 { 5778 5784 typedefTable.addToEnclosingScope( TypedefTable::TD ); 5779 5785 (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) )->addTypedef(); 5780 5786 } 5781 #line 578 2"Parser/parser.cc" /* yacc.c:1646 */5787 #line 5788 "Parser/parser.cc" /* yacc.c:1646 */ 5782 5788 break; 5783 5789 5784 5790 case 278: 5785 #line 12 29"parser.yy" /* yacc.c:1646 */5791 #line 1235 "parser.yy" /* yacc.c:1646 */ 5786 5792 { 5787 5793 typedefTable.addToEnclosingScope( TypedefTable::TD ); 5788 5794 (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneBaseType( (yyvsp[0].decl) )->addTypedef() ); 5789 5795 } 5790 #line 579 1"Parser/parser.cc" /* yacc.c:1646 */5796 #line 5797 "Parser/parser.cc" /* yacc.c:1646 */ 5791 5797 break; 5792 5798 5793 5799 case 279: 5794 #line 12 34"parser.yy" /* yacc.c:1646 */5800 #line 1240 "parser.yy" /* yacc.c:1646 */ 5795 5801 { 5796 5802 typedefTable.addToEnclosingScope( TypedefTable::TD ); 5797 5803 (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[-3].decl) )->addTypedef(); 5798 5804 } 5799 #line 580 0"Parser/parser.cc" /* yacc.c:1646 */5805 #line 5806 "Parser/parser.cc" /* yacc.c:1646 */ 5800 5806 break; 5801 5807 5802 5808 case 280: 5803 #line 12 39"parser.yy" /* yacc.c:1646 */5809 #line 1245 "parser.yy" /* yacc.c:1646 */ 5804 5810 { 5805 5811 typedefTable.addToEnclosingScope( TypedefTable::TD ); 5806 5812 (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-2].decl) )->addTypedef(); 5807 5813 } 5808 #line 58 09"Parser/parser.cc" /* yacc.c:1646 */5814 #line 5815 "Parser/parser.cc" /* yacc.c:1646 */ 5809 5815 break; 5810 5816 5811 5817 case 281: 5812 #line 12 44"parser.yy" /* yacc.c:1646 */5818 #line 1250 "parser.yy" /* yacc.c:1646 */ 5813 5819 { 5814 5820 typedefTable.addToEnclosingScope( TypedefTable::TD ); 5815 5821 (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-3].decl) )->addTypedef()->addType( (yyvsp[-3].decl) ); 5816 5822 } 5817 #line 58 18"Parser/parser.cc" /* yacc.c:1646 */5823 #line 5824 "Parser/parser.cc" /* yacc.c:1646 */ 5818 5824 break; 5819 5825 5820 5826 case 282: 5821 #line 125 3"parser.yy" /* yacc.c:1646 */5827 #line 1259 "parser.yy" /* yacc.c:1646 */ 5822 5828 { 5823 5829 typedefTable.addToEnclosingScope( *(yyvsp[-2].tok), TypedefTable::TD ); 5824 5830 (yyval.decl) = DeclarationNode::newName( 0 ); // XXX 5825 5831 } 5826 #line 58 27"Parser/parser.cc" /* yacc.c:1646 */5832 #line 5833 "Parser/parser.cc" /* yacc.c:1646 */ 5827 5833 break; 5828 5834 5829 5835 case 283: 5830 #line 12 58"parser.yy" /* yacc.c:1646 */5836 #line 1264 "parser.yy" /* yacc.c:1646 */ 5831 5837 { 5832 5838 typedefTable.addToEnclosingScope( *(yyvsp[-2].tok), TypedefTable::TD ); 5833 5839 (yyval.decl) = DeclarationNode::newName( 0 ); // XXX 5834 5840 } 5835 #line 58 36"Parser/parser.cc" /* yacc.c:1646 */5841 #line 5842 "Parser/parser.cc" /* yacc.c:1646 */ 5836 5842 break; 5837 5843 5838 5844 case 288: 5839 #line 12 75"parser.yy" /* yacc.c:1646 */5845 #line 1281 "parser.yy" /* yacc.c:1646 */ 5840 5846 { 5841 5847 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5842 5848 (yyval.decl) = ( (yyvsp[-2].decl)->addType( (yyvsp[-3].decl) ))->addInitializer( (yyvsp[0].in) ); 5843 5849 } 5844 #line 58 45"Parser/parser.cc" /* yacc.c:1646 */5850 #line 5851 "Parser/parser.cc" /* yacc.c:1646 */ 5845 5851 break; 5846 5852 5847 5853 case 289: 5848 #line 128 0"parser.yy" /* yacc.c:1646 */5854 #line 1286 "parser.yy" /* yacc.c:1646 */ 5849 5855 { 5850 5856 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5851 5857 (yyval.decl) = (yyvsp[-5].decl)->appendList( (yyvsp[-5].decl)->cloneBaseType( (yyvsp[-2].decl)->addInitializer( (yyvsp[0].in) ) ) ); 5852 5858 } 5853 #line 58 54"Parser/parser.cc" /* yacc.c:1646 */5859 #line 5860 "Parser/parser.cc" /* yacc.c:1646 */ 5854 5860 break; 5855 5861 5856 5862 case 298: 5857 #line 130 2"parser.yy" /* yacc.c:1646 */5863 #line 1308 "parser.yy" /* yacc.c:1646 */ 5858 5864 { (yyval.decl) = 0; } 5859 #line 586 0"Parser/parser.cc" /* yacc.c:1646 */5865 #line 5866 "Parser/parser.cc" /* yacc.c:1646 */ 5860 5866 break; 5861 5867 5862 5868 case 301: 5863 #line 13 14"parser.yy" /* yacc.c:1646 */5869 #line 1320 "parser.yy" /* yacc.c:1646 */ 5864 5870 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 5865 #line 58 66"Parser/parser.cc" /* yacc.c:1646 */5871 #line 5872 "Parser/parser.cc" /* yacc.c:1646 */ 5866 5872 break; 5867 5873 5868 5874 case 304: 5869 #line 13 25"parser.yy" /* yacc.c:1646 */5875 #line 1331 "parser.yy" /* yacc.c:1646 */ 5870 5876 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); } 5871 #line 587 2"Parser/parser.cc" /* yacc.c:1646 */5877 #line 5878 "Parser/parser.cc" /* yacc.c:1646 */ 5872 5878 break; 5873 5879 5874 5880 case 305: 5875 #line 13 27"parser.yy" /* yacc.c:1646 */5881 #line 1333 "parser.yy" /* yacc.c:1646 */ 5876 5882 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); } 5877 #line 58 78"Parser/parser.cc" /* yacc.c:1646 */5883 #line 5884 "Parser/parser.cc" /* yacc.c:1646 */ 5878 5884 break; 5879 5885 5880 5886 case 306: 5881 #line 13 29"parser.yy" /* yacc.c:1646 */5887 #line 1335 "parser.yy" /* yacc.c:1646 */ 5882 5888 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); } 5883 #line 58 84"Parser/parser.cc" /* yacc.c:1646 */5889 #line 5890 "Parser/parser.cc" /* yacc.c:1646 */ 5884 5890 break; 5885 5891 5886 5892 case 307: 5887 #line 133 1"parser.yy" /* yacc.c:1646 */5893 #line 1337 "parser.yy" /* yacc.c:1646 */ 5888 5894 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); } 5889 #line 589 0"Parser/parser.cc" /* yacc.c:1646 */5895 #line 5896 "Parser/parser.cc" /* yacc.c:1646 */ 5890 5896 break; 5891 5897 5892 5898 case 308: 5893 #line 133 3"parser.yy" /* yacc.c:1646 */5899 #line 1339 "parser.yy" /* yacc.c:1646 */ 5894 5900 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); } 5895 #line 5 896"Parser/parser.cc" /* yacc.c:1646 */5901 #line 5902 "Parser/parser.cc" /* yacc.c:1646 */ 5896 5902 break; 5897 5903 5898 5904 case 309: 5899 #line 13 35"parser.yy" /* yacc.c:1646 */5905 #line 1341 "parser.yy" /* yacc.c:1646 */ 5900 5906 { 5901 5907 typedefTable.enterScope(); 5902 5908 } 5903 #line 59 04"Parser/parser.cc" /* yacc.c:1646 */5909 #line 5910 "Parser/parser.cc" /* yacc.c:1646 */ 5904 5910 break; 5905 5911 5906 5912 case 310: 5907 #line 13 39"parser.yy" /* yacc.c:1646 */5913 #line 1345 "parser.yy" /* yacc.c:1646 */ 5908 5914 { 5909 5915 typedefTable.leaveScope(); 5910 5916 (yyval.decl) = DeclarationNode::newForall( (yyvsp[-1].decl) ); 5911 5917 } 5912 #line 591 3"Parser/parser.cc" /* yacc.c:1646 */5918 #line 5919 "Parser/parser.cc" /* yacc.c:1646 */ 5913 5919 break; 5914 5920 5915 5921 case 312: 5916 #line 13 48"parser.yy" /* yacc.c:1646 */5922 #line 1354 "parser.yy" /* yacc.c:1646 */ 5917 5923 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 5918 #line 59 19"Parser/parser.cc" /* yacc.c:1646 */5924 #line 5925 "Parser/parser.cc" /* yacc.c:1646 */ 5919 5925 break; 5920 5926 5921 5927 case 313: 5922 #line 135 0"parser.yy" /* yacc.c:1646 */5928 #line 1356 "parser.yy" /* yacc.c:1646 */ 5923 5929 { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); } 5924 #line 59 25"Parser/parser.cc" /* yacc.c:1646 */5930 #line 5931 "Parser/parser.cc" /* yacc.c:1646 */ 5925 5931 break; 5926 5932 5927 5933 case 315: 5928 #line 136 1"parser.yy" /* yacc.c:1646 */5934 #line 1367 "parser.yy" /* yacc.c:1646 */ 5929 5935 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 5930 #line 593 1"Parser/parser.cc" /* yacc.c:1646 */5936 #line 5937 "Parser/parser.cc" /* yacc.c:1646 */ 5931 5937 break; 5932 5938 5933 5939 case 316: 5934 #line 13 66"parser.yy" /* yacc.c:1646 */5940 #line 1372 "parser.yy" /* yacc.c:1646 */ 5935 5941 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); } 5936 #line 59 37"Parser/parser.cc" /* yacc.c:1646 */5942 #line 5943 "Parser/parser.cc" /* yacc.c:1646 */ 5937 5943 break; 5938 5944 5939 5945 case 317: 5940 #line 13 68"parser.yy" /* yacc.c:1646 */5946 #line 1374 "parser.yy" /* yacc.c:1646 */ 5941 5947 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); } 5942 #line 594 3"Parser/parser.cc" /* yacc.c:1646 */5948 #line 5949 "Parser/parser.cc" /* yacc.c:1646 */ 5943 5949 break; 5944 5950 5945 5951 case 318: 5946 #line 137 0"parser.yy" /* yacc.c:1646 */5952 #line 1376 "parser.yy" /* yacc.c:1646 */ 5947 5953 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); } 5948 #line 59 49"Parser/parser.cc" /* yacc.c:1646 */5954 #line 5955 "Parser/parser.cc" /* yacc.c:1646 */ 5949 5955 break; 5950 5956 5951 5957 case 319: 5952 #line 137 2"parser.yy" /* yacc.c:1646 */5958 #line 1378 "parser.yy" /* yacc.c:1646 */ 5953 5959 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); } 5954 #line 59 55"Parser/parser.cc" /* yacc.c:1646 */5960 #line 5961 "Parser/parser.cc" /* yacc.c:1646 */ 5955 5961 break; 5956 5962 5957 5963 case 320: 5958 #line 13 75"parser.yy" /* yacc.c:1646 */5964 #line 1381 "parser.yy" /* yacc.c:1646 */ 5959 5965 { (yyval.decl) = new DeclarationNode; (yyval.decl)->isInline = true; } 5960 #line 596 1"Parser/parser.cc" /* yacc.c:1646 */5966 #line 5967 "Parser/parser.cc" /* yacc.c:1646 */ 5961 5967 break; 5962 5968 5963 5969 case 321: 5964 #line 13 77"parser.yy" /* yacc.c:1646 */5970 #line 1383 "parser.yy" /* yacc.c:1646 */ 5965 5971 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); } 5966 #line 59 67"Parser/parser.cc" /* yacc.c:1646 */5972 #line 5973 "Parser/parser.cc" /* yacc.c:1646 */ 5967 5973 break; 5968 5974 5969 5975 case 322: 5970 #line 138 0"parser.yy" /* yacc.c:1646 */5976 #line 1386 "parser.yy" /* yacc.c:1646 */ 5971 5977 { (yyval.decl) = new DeclarationNode; (yyval.decl)->isNoreturn = true; } 5972 #line 597 3"Parser/parser.cc" /* yacc.c:1646 */5978 #line 5979 "Parser/parser.cc" /* yacc.c:1646 */ 5973 5979 break; 5974 5980 5975 5981 case 323: 5976 #line 138 2"parser.yy" /* yacc.c:1646 */5982 #line 1388 "parser.yy" /* yacc.c:1646 */ 5977 5983 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); } 5978 #line 59 79"Parser/parser.cc" /* yacc.c:1646 */5984 #line 5985 "Parser/parser.cc" /* yacc.c:1646 */ 5979 5985 break; 5980 5986 5981 5987 case 324: 5982 #line 13 87"parser.yy" /* yacc.c:1646 */5988 #line 1393 "parser.yy" /* yacc.c:1646 */ 5983 5989 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); } 5984 #line 59 85"Parser/parser.cc" /* yacc.c:1646 */5990 #line 5991 "Parser/parser.cc" /* yacc.c:1646 */ 5985 5991 break; 5986 5992 5987 5993 case 325: 5988 #line 13 89"parser.yy" /* yacc.c:1646 */5994 #line 1395 "parser.yy" /* yacc.c:1646 */ 5989 5995 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); } 5990 #line 599 1"Parser/parser.cc" /* yacc.c:1646 */5996 #line 5997 "Parser/parser.cc" /* yacc.c:1646 */ 5991 5997 break; 5992 5998 5993 5999 case 326: 5994 #line 139 1"parser.yy" /* yacc.c:1646 */6000 #line 1397 "parser.yy" /* yacc.c:1646 */ 5995 6001 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); } 5996 #line 5997"Parser/parser.cc" /* yacc.c:1646 */6002 #line 6003 "Parser/parser.cc" /* yacc.c:1646 */ 5997 6003 break; 5998 6004 5999 6005 case 327: 6000 #line 139 3"parser.yy" /* yacc.c:1646 */6006 #line 1399 "parser.yy" /* yacc.c:1646 */ 6001 6007 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); } 6002 #line 600 3"Parser/parser.cc" /* yacc.c:1646 */6008 #line 6009 "Parser/parser.cc" /* yacc.c:1646 */ 6003 6009 break; 6004 6010 6005 6011 case 328: 6006 #line 1 395"parser.yy" /* yacc.c:1646 */6012 #line 1401 "parser.yy" /* yacc.c:1646 */ 6007 6013 { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Long ); } 6008 #line 60 09"Parser/parser.cc" /* yacc.c:1646 */6014 #line 6015 "Parser/parser.cc" /* yacc.c:1646 */ 6009 6015 break; 6010 6016 6011 6017 case 329: 6012 #line 1 397"parser.yy" /* yacc.c:1646 */6018 #line 1403 "parser.yy" /* yacc.c:1646 */ 6013 6019 { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Short ); } 6014 #line 60 15"Parser/parser.cc" /* yacc.c:1646 */6020 #line 6021 "Parser/parser.cc" /* yacc.c:1646 */ 6015 6021 break; 6016 6022 6017 6023 case 330: 6018 #line 1 399"parser.yy" /* yacc.c:1646 */6024 #line 1405 "parser.yy" /* yacc.c:1646 */ 6019 6025 { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Signed ); } 6020 #line 602 1"Parser/parser.cc" /* yacc.c:1646 */6026 #line 6027 "Parser/parser.cc" /* yacc.c:1646 */ 6021 6027 break; 6022 6028 6023 6029 case 331: 6024 #line 140 1"parser.yy" /* yacc.c:1646 */6030 #line 1407 "parser.yy" /* yacc.c:1646 */ 6025 6031 { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Unsigned ); } 6026 #line 60 27"Parser/parser.cc" /* yacc.c:1646 */6032 #line 6033 "Parser/parser.cc" /* yacc.c:1646 */ 6027 6033 break; 6028 6034 6029 6035 case 332: 6030 #line 140 3"parser.yy" /* yacc.c:1646 */6036 #line 1409 "parser.yy" /* yacc.c:1646 */ 6031 6037 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); } 6032 #line 603 3"Parser/parser.cc" /* yacc.c:1646 */6038 #line 6039 "Parser/parser.cc" /* yacc.c:1646 */ 6033 6039 break; 6034 6040 6035 6041 case 333: 6036 #line 14 05"parser.yy" /* yacc.c:1646 */6042 #line 1411 "parser.yy" /* yacc.c:1646 */ 6037 6043 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); } 6038 #line 60 39"Parser/parser.cc" /* yacc.c:1646 */6044 #line 6045 "Parser/parser.cc" /* yacc.c:1646 */ 6039 6045 break; 6040 6046 6041 6047 case 334: 6042 #line 14 07"parser.yy" /* yacc.c:1646 */6048 #line 1413 "parser.yy" /* yacc.c:1646 */ 6043 6049 { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Complex ); } 6044 #line 60 45"Parser/parser.cc" /* yacc.c:1646 */6050 #line 6051 "Parser/parser.cc" /* yacc.c:1646 */ 6045 6051 break; 6046 6052 6047 6053 case 335: 6048 #line 14 09"parser.yy" /* yacc.c:1646 */6054 #line 1415 "parser.yy" /* yacc.c:1646 */ 6049 6055 { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Imaginary ); } 6050 #line 605 1"Parser/parser.cc" /* yacc.c:1646 */6056 #line 6057 "Parser/parser.cc" /* yacc.c:1646 */ 6051 6057 break; 6052 6058 6053 6059 case 336: 6054 #line 141 1"parser.yy" /* yacc.c:1646 */6060 #line 1417 "parser.yy" /* yacc.c:1646 */ 6055 6061 { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); } 6056 #line 60 57"Parser/parser.cc" /* yacc.c:1646 */6062 #line 6063 "Parser/parser.cc" /* yacc.c:1646 */ 6057 6063 break; 6058 6064 6059 6065 case 337: 6060 #line 141 3"parser.yy" /* yacc.c:1646 */6066 #line 1419 "parser.yy" /* yacc.c:1646 */ 6061 6067 { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Zero ); } 6062 #line 606 3"Parser/parser.cc" /* yacc.c:1646 */6068 #line 6069 "Parser/parser.cc" /* yacc.c:1646 */ 6063 6069 break; 6064 6070 6065 6071 case 338: 6066 #line 14 15"parser.yy" /* yacc.c:1646 */6072 #line 1421 "parser.yy" /* yacc.c:1646 */ 6067 6073 { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::One ); } 6068 #line 60 69"Parser/parser.cc" /* yacc.c:1646 */6074 #line 6075 "Parser/parser.cc" /* yacc.c:1646 */ 6069 6075 break; 6070 6076 6071 6077 case 340: 6072 #line 142 2"parser.yy" /* yacc.c:1646 */6078 #line 1428 "parser.yy" /* yacc.c:1646 */ 6073 6079 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6074 #line 60 75"Parser/parser.cc" /* yacc.c:1646 */6080 #line 6081 "Parser/parser.cc" /* yacc.c:1646 */ 6075 6081 break; 6076 6082 6077 6083 case 341: 6078 #line 14 24"parser.yy" /* yacc.c:1646 */6084 #line 1430 "parser.yy" /* yacc.c:1646 */ 6079 6085 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6080 #line 608 1"Parser/parser.cc" /* yacc.c:1646 */6086 #line 6087 "Parser/parser.cc" /* yacc.c:1646 */ 6081 6087 break; 6082 6088 6083 6089 case 342: 6084 #line 14 26"parser.yy" /* yacc.c:1646 */6090 #line 1432 "parser.yy" /* yacc.c:1646 */ 6085 6091 { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); } 6086 #line 60 87"Parser/parser.cc" /* yacc.c:1646 */6092 #line 6093 "Parser/parser.cc" /* yacc.c:1646 */ 6087 6093 break; 6088 6094 6089 6095 case 343: 6090 #line 14 28"parser.yy" /* yacc.c:1646 */6096 #line 1434 "parser.yy" /* yacc.c:1646 */ 6091 6097 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) )->addType( (yyvsp[-2].decl) ); } 6092 #line 609 3"Parser/parser.cc" /* yacc.c:1646 */6098 #line 6099 "Parser/parser.cc" /* yacc.c:1646 */ 6093 6099 break; 6094 6100 6095 6101 case 345: 6096 #line 14 34"parser.yy" /* yacc.c:1646 */6102 #line 1440 "parser.yy" /* yacc.c:1646 */ 6097 6103 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[0].decl) ); } 6098 #line 6 099"Parser/parser.cc" /* yacc.c:1646 */6104 #line 6105 "Parser/parser.cc" /* yacc.c:1646 */ 6099 6105 break; 6100 6106 6101 6107 case 347: 6102 #line 144 1"parser.yy" /* yacc.c:1646 */6108 #line 1447 "parser.yy" /* yacc.c:1646 */ 6103 6109 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6104 #line 61 05"Parser/parser.cc" /* yacc.c:1646 */6110 #line 6111 "Parser/parser.cc" /* yacc.c:1646 */ 6105 6111 break; 6106 6112 6107 6113 case 348: 6108 #line 144 3"parser.yy" /* yacc.c:1646 */6114 #line 1449 "parser.yy" /* yacc.c:1646 */ 6109 6115 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6110 #line 611 1"Parser/parser.cc" /* yacc.c:1646 */6116 #line 6117 "Parser/parser.cc" /* yacc.c:1646 */ 6111 6117 break; 6112 6118 6113 6119 case 349: 6114 #line 14 45"parser.yy" /* yacc.c:1646 */6120 #line 1451 "parser.yy" /* yacc.c:1646 */ 6115 6121 { (yyval.decl) = (yyvsp[-1].decl)->addType( (yyvsp[0].decl) ); } 6116 #line 61 17"Parser/parser.cc" /* yacc.c:1646 */6122 #line 6123 "Parser/parser.cc" /* yacc.c:1646 */ 6117 6123 break; 6118 6124 6119 6125 case 350: 6120 #line 145 0"parser.yy" /* yacc.c:1646 */6126 #line 1456 "parser.yy" /* yacc.c:1646 */ 6121 6127 { (yyval.decl) = (yyvsp[-1].decl); } 6122 #line 612 3"Parser/parser.cc" /* yacc.c:1646 */6128 #line 6129 "Parser/parser.cc" /* yacc.c:1646 */ 6123 6129 break; 6124 6130 6125 6131 case 351: 6126 #line 145 2"parser.yy" /* yacc.c:1646 */6132 #line 1458 "parser.yy" /* yacc.c:1646 */ 6127 6133 { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[-1].en) ); } 6128 #line 61 29"Parser/parser.cc" /* yacc.c:1646 */6134 #line 6135 "Parser/parser.cc" /* yacc.c:1646 */ 6129 6135 break; 6130 6136 6131 6137 case 352: 6132 #line 14 54"parser.yy" /* yacc.c:1646 */6138 #line 1460 "parser.yy" /* yacc.c:1646 */ 6133 6139 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[-3].tok), (yyvsp[-1].decl) ); } 6134 #line 61 35"Parser/parser.cc" /* yacc.c:1646 */6140 #line 6141 "Parser/parser.cc" /* yacc.c:1646 */ 6135 6141 break; 6136 6142 6137 6143 case 353: 6138 #line 14 56"parser.yy" /* yacc.c:1646 */6144 #line 1462 "parser.yy" /* yacc.c:1646 */ 6139 6145 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[-3].tok), (yyvsp[-1].en) ); } 6140 #line 614 1"Parser/parser.cc" /* yacc.c:1646 */6146 #line 6147 "Parser/parser.cc" /* yacc.c:1646 */ 6141 6147 break; 6142 6148 6143 6149 case 355: 6144 #line 146 2"parser.yy" /* yacc.c:1646 */6150 #line 1468 "parser.yy" /* yacc.c:1646 */ 6145 6151 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6146 #line 61 47"Parser/parser.cc" /* yacc.c:1646 */6152 #line 6153 "Parser/parser.cc" /* yacc.c:1646 */ 6147 6153 break; 6148 6154 6149 6155 case 356: 6150 #line 14 64"parser.yy" /* yacc.c:1646 */6156 #line 1470 "parser.yy" /* yacc.c:1646 */ 6151 6157 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6152 #line 615 3"Parser/parser.cc" /* yacc.c:1646 */6158 #line 6159 "Parser/parser.cc" /* yacc.c:1646 */ 6153 6159 break; 6154 6160 6155 6161 case 357: 6156 #line 14 66"parser.yy" /* yacc.c:1646 */6162 #line 1472 "parser.yy" /* yacc.c:1646 */ 6157 6163 { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); } 6158 #line 61 59"Parser/parser.cc" /* yacc.c:1646 */6164 #line 6165 "Parser/parser.cc" /* yacc.c:1646 */ 6159 6165 break; 6160 6166 6161 6167 case 359: 6162 #line 147 2"parser.yy" /* yacc.c:1646 */6168 #line 1478 "parser.yy" /* yacc.c:1646 */ 6163 6169 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6164 #line 61 65"Parser/parser.cc" /* yacc.c:1646 */6170 #line 6171 "Parser/parser.cc" /* yacc.c:1646 */ 6165 6171 break; 6166 6172 6167 6173 case 360: 6168 #line 14 74"parser.yy" /* yacc.c:1646 */6174 #line 1480 "parser.yy" /* yacc.c:1646 */ 6169 6175 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6170 #line 617 1"Parser/parser.cc" /* yacc.c:1646 */6176 #line 6177 "Parser/parser.cc" /* yacc.c:1646 */ 6171 6177 break; 6172 6178 6173 6179 case 362: 6174 #line 148 0"parser.yy" /* yacc.c:1646 */6180 #line 1486 "parser.yy" /* yacc.c:1646 */ 6175 6181 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6176 #line 61 77"Parser/parser.cc" /* yacc.c:1646 */6182 #line 6183 "Parser/parser.cc" /* yacc.c:1646 */ 6177 6183 break; 6178 6184 6179 6185 case 363: 6180 #line 148 2"parser.yy" /* yacc.c:1646 */6186 #line 1488 "parser.yy" /* yacc.c:1646 */ 6181 6187 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6182 #line 618 3"Parser/parser.cc" /* yacc.c:1646 */6188 #line 6189 "Parser/parser.cc" /* yacc.c:1646 */ 6183 6189 break; 6184 6190 6185 6191 case 364: 6186 #line 14 84"parser.yy" /* yacc.c:1646 */6192 #line 1490 "parser.yy" /* yacc.c:1646 */ 6187 6193 { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); } 6188 #line 61 89"Parser/parser.cc" /* yacc.c:1646 */6194 #line 6195 "Parser/parser.cc" /* yacc.c:1646 */ 6189 6195 break; 6190 6196 6191 6197 case 365: 6192 #line 14 89"parser.yy" /* yacc.c:1646 */6198 #line 1495 "parser.yy" /* yacc.c:1646 */ 6193 6199 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[0].tok) ); } 6194 #line 6 195"Parser/parser.cc" /* yacc.c:1646 */6200 #line 6201 "Parser/parser.cc" /* yacc.c:1646 */ 6195 6201 break; 6196 6202 6197 6203 case 366: 6198 #line 149 1"parser.yy" /* yacc.c:1646 */6204 #line 1497 "parser.yy" /* yacc.c:1646 */ 6199 6205 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[0].tok) )->addQualifiers( (yyvsp[-1].decl) ); } 6200 #line 620 1"Parser/parser.cc" /* yacc.c:1646 */6206 #line 6207 "Parser/parser.cc" /* yacc.c:1646 */ 6201 6207 break; 6202 6208 6203 6209 case 367: 6204 #line 149 3"parser.yy" /* yacc.c:1646 */6210 #line 1499 "parser.yy" /* yacc.c:1646 */ 6205 6211 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6206 #line 62 07"Parser/parser.cc" /* yacc.c:1646 */6212 #line 6213 "Parser/parser.cc" /* yacc.c:1646 */ 6207 6213 break; 6208 6214 6209 6215 case 370: 6210 #line 150 3"parser.yy" /* yacc.c:1646 */6216 #line 1509 "parser.yy" /* yacc.c:1646 */ 6211 6217 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-3].aggKey), nullptr, nullptr, (yyvsp[-1].decl), true ); } 6212 #line 621 3"Parser/parser.cc" /* yacc.c:1646 */6218 #line 6219 "Parser/parser.cc" /* yacc.c:1646 */ 6213 6219 break; 6214 6220 6215 6221 case 371: 6216 #line 15 05"parser.yy" /* yacc.c:1646 */6222 #line 1511 "parser.yy" /* yacc.c:1646 */ 6217 6223 { 6218 6224 typedefTable.makeTypedef( *(yyvsp[0].tok) ); 6219 6225 (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-1].aggKey), (yyvsp[0].tok), nullptr, nullptr, false ); 6220 6226 } 6221 #line 622 2"Parser/parser.cc" /* yacc.c:1646 */6227 #line 6228 "Parser/parser.cc" /* yacc.c:1646 */ 6222 6228 break; 6223 6229 6224 6230 case 372: 6225 #line 151 0"parser.yy" /* yacc.c:1646 */6231 #line 1516 "parser.yy" /* yacc.c:1646 */ 6226 6232 { typedefTable.makeTypedef( *(yyvsp[0].tok) ); } 6227 #line 62 28"Parser/parser.cc" /* yacc.c:1646 */6233 #line 6234 "Parser/parser.cc" /* yacc.c:1646 */ 6228 6234 break; 6229 6235 6230 6236 case 373: 6231 #line 151 2"parser.yy" /* yacc.c:1646 */6237 #line 1518 "parser.yy" /* yacc.c:1646 */ 6232 6238 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-5].aggKey), (yyvsp[-4].tok), nullptr, (yyvsp[-1].decl), true ); } 6233 #line 62 34"Parser/parser.cc" /* yacc.c:1646 */6239 #line 6240 "Parser/parser.cc" /* yacc.c:1646 */ 6234 6240 break; 6235 6241 6236 6242 case 374: 6237 #line 15 14"parser.yy" /* yacc.c:1646 */6243 #line 1520 "parser.yy" /* yacc.c:1646 */ 6238 6244 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-6].aggKey), nullptr, (yyvsp[-4].en), (yyvsp[-1].decl), false ); } 6239 #line 624 0"Parser/parser.cc" /* yacc.c:1646 */6245 #line 6246 "Parser/parser.cc" /* yacc.c:1646 */ 6240 6246 break; 6241 6247 6242 6248 case 375: 6243 #line 15 16"parser.yy" /* yacc.c:1646 */6249 #line 1522 "parser.yy" /* yacc.c:1646 */ 6244 6250 { (yyval.decl) = (yyvsp[0].decl); } 6245 #line 62 46"Parser/parser.cc" /* yacc.c:1646 */6251 #line 6252 "Parser/parser.cc" /* yacc.c:1646 */ 6246 6252 break; 6247 6253 6248 6254 case 376: 6249 #line 152 1"parser.yy" /* yacc.c:1646 */6255 #line 1527 "parser.yy" /* yacc.c:1646 */ 6250 6256 { (yyval.aggKey) = DeclarationNode::Struct; } 6251 #line 625 2"Parser/parser.cc" /* yacc.c:1646 */6257 #line 6258 "Parser/parser.cc" /* yacc.c:1646 */ 6252 6258 break; 6253 6259 6254 6260 case 377: 6255 #line 152 3"parser.yy" /* yacc.c:1646 */6261 #line 1529 "parser.yy" /* yacc.c:1646 */ 6256 6262 { (yyval.aggKey) = DeclarationNode::Union; } 6257 #line 62 58"Parser/parser.cc" /* yacc.c:1646 */6263 #line 6264 "Parser/parser.cc" /* yacc.c:1646 */ 6258 6264 break; 6259 6265 6260 6266 case 378: 6261 #line 15 28"parser.yy" /* yacc.c:1646 */6267 #line 1534 "parser.yy" /* yacc.c:1646 */ 6262 6268 { (yyval.decl) = 0; } 6263 #line 62 64"Parser/parser.cc" /* yacc.c:1646 */6269 #line 6270 "Parser/parser.cc" /* yacc.c:1646 */ 6264 6270 break; 6265 6271 6266 6272 case 379: 6267 #line 153 0"parser.yy" /* yacc.c:1646 */6273 #line 1536 "parser.yy" /* yacc.c:1646 */ 6268 6274 { (yyval.decl) = (yyvsp[-1].decl) != 0 ? (yyvsp[-1].decl)->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); } 6269 #line 627 0"Parser/parser.cc" /* yacc.c:1646 */6275 #line 6276 "Parser/parser.cc" /* yacc.c:1646 */ 6270 6276 break; 6271 6277 6272 6278 case 381: 6273 #line 15 36"parser.yy" /* yacc.c:1646 */6279 #line 1542 "parser.yy" /* yacc.c:1646 */ 6274 6280 { (yyval.decl) = (yyvsp[-1].decl)->set_extension( true ); } 6275 #line 62 76"Parser/parser.cc" /* yacc.c:1646 */6281 #line 6282 "Parser/parser.cc" /* yacc.c:1646 */ 6276 6282 break; 6277 6283 6278 6284 case 383: 6279 #line 15 39"parser.yy" /* yacc.c:1646 */6285 #line 1545 "parser.yy" /* yacc.c:1646 */ 6280 6286 { // mark all fields in list 6281 6287 for ( DeclarationNode *iter = (yyvsp[-1].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) … … 6283 6289 (yyval.decl) = (yyvsp[-1].decl); 6284 6290 } 6285 #line 62 86"Parser/parser.cc" /* yacc.c:1646 */6291 #line 6292 "Parser/parser.cc" /* yacc.c:1646 */ 6286 6292 break; 6287 6293 6288 6294 case 385: 6289 #line 15 49"parser.yy" /* yacc.c:1646 */6295 #line 1555 "parser.yy" /* yacc.c:1646 */ 6290 6296 { (yyval.decl) = (yyvsp[-1].decl)->addName( (yyvsp[0].tok) ); } 6291 #line 629 2"Parser/parser.cc" /* yacc.c:1646 */6297 #line 6298 "Parser/parser.cc" /* yacc.c:1646 */ 6292 6298 break; 6293 6299 6294 6300 case 386: 6295 #line 155 1"parser.yy" /* yacc.c:1646 */6301 #line 1557 "parser.yy" /* yacc.c:1646 */ 6296 6302 { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[-2].decl)->cloneType( (yyvsp[0].tok) ) ); } 6297 #line 6 298"Parser/parser.cc" /* yacc.c:1646 */6303 #line 6304 "Parser/parser.cc" /* yacc.c:1646 */ 6298 6304 break; 6299 6305 6300 6306 case 387: 6301 #line 155 3"parser.yy" /* yacc.c:1646 */6307 #line 1559 "parser.yy" /* yacc.c:1646 */ 6302 6308 { (yyval.decl) = (yyvsp[-1].decl)->appendList( (yyvsp[-1].decl)->cloneType( 0 ) ); } 6303 #line 63 04"Parser/parser.cc" /* yacc.c:1646 */6309 #line 6310 "Parser/parser.cc" /* yacc.c:1646 */ 6304 6310 break; 6305 6311 6306 6312 case 388: 6307 #line 15 58"parser.yy" /* yacc.c:1646 */6313 #line 1564 "parser.yy" /* yacc.c:1646 */ 6308 6314 { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); } 6309 #line 631 0"Parser/parser.cc" /* yacc.c:1646 */6315 #line 6316 "Parser/parser.cc" /* yacc.c:1646 */ 6310 6316 break; 6311 6317 6312 6318 case 389: 6313 #line 156 0"parser.yy" /* yacc.c:1646 */6319 #line 1566 "parser.yy" /* yacc.c:1646 */ 6314 6320 { (yyval.decl) = (yyvsp[-3].decl)->appendList( (yyvsp[-3].decl)->cloneBaseType( (yyvsp[0].decl) ) ); } 6315 #line 63 16"Parser/parser.cc" /* yacc.c:1646 */6321 #line 6322 "Parser/parser.cc" /* yacc.c:1646 */ 6316 6322 break; 6317 6323 6318 6324 case 390: 6319 #line 15 65"parser.yy" /* yacc.c:1646 */6325 #line 1571 "parser.yy" /* yacc.c:1646 */ 6320 6326 { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ } 6321 #line 632 2"Parser/parser.cc" /* yacc.c:1646 */6327 #line 6328 "Parser/parser.cc" /* yacc.c:1646 */ 6322 6328 break; 6323 6329 6324 6330 case 391: 6325 #line 15 67"parser.yy" /* yacc.c:1646 */6331 #line 1573 "parser.yy" /* yacc.c:1646 */ 6326 6332 { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[0].en) ); } 6327 #line 63 28"Parser/parser.cc" /* yacc.c:1646 */6333 #line 6334 "Parser/parser.cc" /* yacc.c:1646 */ 6328 6334 break; 6329 6335 6330 6336 case 392: 6331 #line 1570 "parser.yy" /* yacc.c:1646 */ 6332 { (yyval.decl) = (yyvsp[-1].decl)->addBitfield( (yyvsp[0].en) ); } 6333 #line 6334 "Parser/parser.cc" /* yacc.c:1646 */ 6334 break; 6335 6336 case 393: 6337 #line 1573 "parser.yy" /* yacc.c:1646 */ 6337 #line 1576 "parser.yy" /* yacc.c:1646 */ 6338 6338 { (yyval.decl) = (yyvsp[-1].decl)->addBitfield( (yyvsp[0].en) ); } 6339 6339 #line 6340 "Parser/parser.cc" /* yacc.c:1646 */ 6340 6340 break; 6341 6341 6342 case 393: 6343 #line 1579 "parser.yy" /* yacc.c:1646 */ 6344 { (yyval.decl) = (yyvsp[-1].decl)->addBitfield( (yyvsp[0].en) ); } 6345 #line 6346 "Parser/parser.cc" /* yacc.c:1646 */ 6346 break; 6347 6342 6348 case 395: 6343 #line 15 79"parser.yy" /* yacc.c:1646 */6349 #line 1585 "parser.yy" /* yacc.c:1646 */ 6344 6350 { (yyval.en) = 0; } 6345 #line 63 46"Parser/parser.cc" /* yacc.c:1646 */6351 #line 6352 "Parser/parser.cc" /* yacc.c:1646 */ 6346 6352 break; 6347 6353 6348 6354 case 396: 6349 #line 1581 "parser.yy" /* yacc.c:1646 */ 6350 { (yyval.en) = (yyvsp[0].en); } 6351 #line 6352 "Parser/parser.cc" /* yacc.c:1646 */ 6352 break; 6353 6354 case 397: 6355 #line 1586 "parser.yy" /* yacc.c:1646 */ 6355 #line 1587 "parser.yy" /* yacc.c:1646 */ 6356 6356 { (yyval.en) = (yyvsp[0].en); } 6357 6357 #line 6358 "Parser/parser.cc" /* yacc.c:1646 */ 6358 6358 break; 6359 6359 6360 case 397: 6361 #line 1592 "parser.yy" /* yacc.c:1646 */ 6362 { (yyval.en) = (yyvsp[0].en); } 6363 #line 6364 "Parser/parser.cc" /* yacc.c:1646 */ 6364 break; 6365 6360 6366 case 399: 6361 #line 1 595"parser.yy" /* yacc.c:1646 */6367 #line 1601 "parser.yy" /* yacc.c:1646 */ 6362 6368 { (yyval.decl) = DeclarationNode::newEnum( nullptr, (yyvsp[-2].decl) ); } 6363 #line 63 64"Parser/parser.cc" /* yacc.c:1646 */6369 #line 6370 "Parser/parser.cc" /* yacc.c:1646 */ 6364 6370 break; 6365 6371 6366 6372 case 400: 6367 #line 1 597"parser.yy" /* yacc.c:1646 */6373 #line 1603 "parser.yy" /* yacc.c:1646 */ 6368 6374 { 6369 6375 typedefTable.makeTypedef( *(yyvsp[0].tok) ); 6370 6376 (yyval.decl) = DeclarationNode::newEnum( (yyvsp[0].tok), 0 ); 6371 6377 } 6372 #line 637 3"Parser/parser.cc" /* yacc.c:1646 */6378 #line 6379 "Parser/parser.cc" /* yacc.c:1646 */ 6373 6379 break; 6374 6380 6375 6381 case 401: 6376 #line 160 2"parser.yy" /* yacc.c:1646 */6382 #line 1608 "parser.yy" /* yacc.c:1646 */ 6377 6383 { typedefTable.makeTypedef( *(yyvsp[0].tok) ); } 6378 #line 63 79"Parser/parser.cc" /* yacc.c:1646 */6384 #line 6385 "Parser/parser.cc" /* yacc.c:1646 */ 6379 6385 break; 6380 6386 6381 6387 case 402: 6382 #line 16 04"parser.yy" /* yacc.c:1646 */6388 #line 1610 "parser.yy" /* yacc.c:1646 */ 6383 6389 { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[-5].tok), (yyvsp[-2].decl) ); } 6384 #line 63 85"Parser/parser.cc" /* yacc.c:1646 */6390 #line 6391 "Parser/parser.cc" /* yacc.c:1646 */ 6385 6391 break; 6386 6392 6387 6393 case 403: 6388 #line 16 09"parser.yy" /* yacc.c:1646 */6394 #line 1615 "parser.yy" /* yacc.c:1646 */ 6389 6395 { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[-1].tok), (yyvsp[0].en) ); } 6390 #line 639 1"Parser/parser.cc" /* yacc.c:1646 */6396 #line 6397 "Parser/parser.cc" /* yacc.c:1646 */ 6391 6397 break; 6392 6398 6393 6399 case 404: 6394 #line 161 1"parser.yy" /* yacc.c:1646 */6400 #line 1617 "parser.yy" /* yacc.c:1646 */ 6395 6401 { (yyval.decl) = (yyvsp[-3].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[-1].tok), (yyvsp[0].en) ) ); } 6396 #line 6 397"Parser/parser.cc" /* yacc.c:1646 */6402 #line 6403 "Parser/parser.cc" /* yacc.c:1646 */ 6397 6403 break; 6398 6404 6399 6405 case 405: 6400 #line 16 16"parser.yy" /* yacc.c:1646 */6406 #line 1622 "parser.yy" /* yacc.c:1646 */ 6401 6407 { (yyval.en) = 0; } 6402 #line 640 3"Parser/parser.cc" /* yacc.c:1646 */6408 #line 6409 "Parser/parser.cc" /* yacc.c:1646 */ 6403 6409 break; 6404 6410 6405 6411 case 406: 6406 #line 16 18"parser.yy" /* yacc.c:1646 */6412 #line 1624 "parser.yy" /* yacc.c:1646 */ 6407 6413 { (yyval.en) = (yyvsp[0].en); } 6408 #line 64 09"Parser/parser.cc" /* yacc.c:1646 */6414 #line 6415 "Parser/parser.cc" /* yacc.c:1646 */ 6409 6415 break; 6410 6416 6411 6417 case 407: 6412 #line 16 25"parser.yy" /* yacc.c:1646 */6418 #line 1631 "parser.yy" /* yacc.c:1646 */ 6413 6419 { (yyval.decl) = 0; } 6414 #line 64 15"Parser/parser.cc" /* yacc.c:1646 */6420 #line 6421 "Parser/parser.cc" /* yacc.c:1646 */ 6415 6421 break; 6416 6422 6417 6423 case 411: 6418 #line 163 3"parser.yy" /* yacc.c:1646 */6424 #line 1639 "parser.yy" /* yacc.c:1646 */ 6419 6425 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6420 #line 642 1"Parser/parser.cc" /* yacc.c:1646 */6426 #line 6427 "Parser/parser.cc" /* yacc.c:1646 */ 6421 6427 break; 6422 6428 6423 6429 case 412: 6424 #line 1635 "parser.yy" /* yacc.c:1646 */ 6425 { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); } 6426 #line 6427 "Parser/parser.cc" /* yacc.c:1646 */ 6427 break; 6428 6429 case 413: 6430 #line 1637 "parser.yy" /* yacc.c:1646 */ 6430 #line 1641 "parser.yy" /* yacc.c:1646 */ 6431 6431 { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); } 6432 6432 #line 6433 "Parser/parser.cc" /* yacc.c:1646 */ 6433 6433 break; 6434 6434 6435 case 413: 6436 #line 1643 "parser.yy" /* yacc.c:1646 */ 6437 { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); } 6438 #line 6439 "Parser/parser.cc" /* yacc.c:1646 */ 6439 break; 6440 6435 6441 case 415: 6436 #line 1645 "parser.yy" /* yacc.c:1646 */ 6437 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6438 #line 6439 "Parser/parser.cc" /* yacc.c:1646 */ 6439 break; 6440 6441 case 416: 6442 #line 1647 "parser.yy" /* yacc.c:1646 */ 6442 #line 1651 "parser.yy" /* yacc.c:1646 */ 6443 6443 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6444 6444 #line 6445 "Parser/parser.cc" /* yacc.c:1646 */ 6445 6445 break; 6446 6446 6447 case 416: 6448 #line 1653 "parser.yy" /* yacc.c:1646 */ 6449 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6450 #line 6451 "Parser/parser.cc" /* yacc.c:1646 */ 6451 break; 6452 6447 6453 case 417: 6448 #line 16 49"parser.yy" /* yacc.c:1646 */6454 #line 1655 "parser.yy" /* yacc.c:1646 */ 6449 6455 { (yyval.decl) = (yyvsp[-8].decl)->appendList( (yyvsp[-4].decl) )->appendList( (yyvsp[0].decl) ); } 6450 #line 645 1"Parser/parser.cc" /* yacc.c:1646 */6456 #line 6457 "Parser/parser.cc" /* yacc.c:1646 */ 6451 6457 break; 6452 6458 6453 6459 case 419: 6454 #line 16 55"parser.yy" /* yacc.c:1646 */6460 #line 1661 "parser.yy" /* yacc.c:1646 */ 6455 6461 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6456 #line 64 57"Parser/parser.cc" /* yacc.c:1646 */6462 #line 6463 "Parser/parser.cc" /* yacc.c:1646 */ 6457 6463 break; 6458 6464 6459 6465 case 420: 6460 #line 166 0"parser.yy" /* yacc.c:1646 */6466 #line 1666 "parser.yy" /* yacc.c:1646 */ 6461 6467 { (yyval.decl) = 0; } 6462 #line 646 3"Parser/parser.cc" /* yacc.c:1646 */6468 #line 6469 "Parser/parser.cc" /* yacc.c:1646 */ 6463 6469 break; 6464 6470 6465 6471 case 423: 6466 #line 16 67"parser.yy" /* yacc.c:1646 */6472 #line 1673 "parser.yy" /* yacc.c:1646 */ 6467 6473 { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); } 6468 #line 64 69"Parser/parser.cc" /* yacc.c:1646 */6474 #line 6475 "Parser/parser.cc" /* yacc.c:1646 */ 6469 6475 break; 6470 6476 6471 6477 case 426: 6472 #line 1674 "parser.yy" /* yacc.c:1646 */ 6473 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6474 #line 6475 "Parser/parser.cc" /* yacc.c:1646 */ 6475 break; 6476 6477 case 427: 6478 #line 1676 "parser.yy" /* yacc.c:1646 */ 6478 #line 1680 "parser.yy" /* yacc.c:1646 */ 6479 6479 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6480 6480 #line 6481 "Parser/parser.cc" /* yacc.c:1646 */ 6481 6481 break; 6482 6482 6483 case 427: 6484 #line 1682 "parser.yy" /* yacc.c:1646 */ 6485 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6486 #line 6487 "Parser/parser.cc" /* yacc.c:1646 */ 6487 break; 6488 6483 6489 case 429: 6484 #line 1685 "parser.yy" /* yacc.c:1646 */ 6485 { (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) ); } 6486 #line 6487 "Parser/parser.cc" /* yacc.c:1646 */ 6487 break; 6488 6489 case 430: 6490 #line 1688 "parser.yy" /* yacc.c:1646 */ 6490 #line 1691 "parser.yy" /* yacc.c:1646 */ 6491 6491 { (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) ); } 6492 6492 #line 6493 "Parser/parser.cc" /* yacc.c:1646 */ 6493 6493 break; 6494 6494 6495 case 430: 6496 #line 1694 "parser.yy" /* yacc.c:1646 */ 6497 { (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) ); } 6498 #line 6499 "Parser/parser.cc" /* yacc.c:1646 */ 6499 break; 6500 6495 6501 case 431: 6496 #line 169 0"parser.yy" /* yacc.c:1646 */6502 #line 1696 "parser.yy" /* yacc.c:1646 */ 6497 6503 { (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) )->addQualifiers( (yyvsp[-3].decl) ); } 6498 #line 6 499"Parser/parser.cc" /* yacc.c:1646 */6504 #line 6505 "Parser/parser.cc" /* yacc.c:1646 */ 6499 6505 break; 6500 6506 6501 6507 case 436: 6502 #line 170 0"parser.yy" /* yacc.c:1646 */6508 #line 1706 "parser.yy" /* yacc.c:1646 */ 6503 6509 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6504 #line 65 05"Parser/parser.cc" /* yacc.c:1646 */6510 #line 6511 "Parser/parser.cc" /* yacc.c:1646 */ 6505 6511 break; 6506 6512 6507 6513 case 438: 6508 #line 17 06"parser.yy" /* yacc.c:1646 */6514 #line 1712 "parser.yy" /* yacc.c:1646 */ 6509 6515 { 6510 6516 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6511 6517 (yyval.decl) = (yyvsp[-1].decl)->addType( (yyvsp[-2].decl) )->addInitializer( new InitializerNode( (yyvsp[0].en) ) ); 6512 6518 } 6513 #line 65 14"Parser/parser.cc" /* yacc.c:1646 */6519 #line 6520 "Parser/parser.cc" /* yacc.c:1646 */ 6514 6520 break; 6515 6521 6516 6522 case 439: 6517 #line 171 1"parser.yy" /* yacc.c:1646 */6523 #line 1717 "parser.yy" /* yacc.c:1646 */ 6518 6524 { 6519 6525 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6520 6526 (yyval.decl) = (yyvsp[-1].decl)->addType( (yyvsp[-2].decl) )->addInitializer( new InitializerNode( (yyvsp[0].en) ) ); 6521 6527 } 6522 #line 652 3"Parser/parser.cc" /* yacc.c:1646 */6528 #line 6529 "Parser/parser.cc" /* yacc.c:1646 */ 6523 6529 break; 6524 6530 6525 6531 case 441: 6526 #line 172 0"parser.yy" /* yacc.c:1646 */6532 #line 1726 "parser.yy" /* yacc.c:1646 */ 6527 6533 { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); } 6528 #line 65 29"Parser/parser.cc" /* yacc.c:1646 */6534 #line 6535 "Parser/parser.cc" /* yacc.c:1646 */ 6529 6535 break; 6530 6536 6531 6537 case 442: 6532 #line 17 29"parser.yy" /* yacc.c:1646 */6538 #line 1735 "parser.yy" /* yacc.c:1646 */ 6533 6539 { (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) ); } 6534 #line 65 35"Parser/parser.cc" /* yacc.c:1646 */6540 #line 6541 "Parser/parser.cc" /* yacc.c:1646 */ 6535 6541 break; 6536 6542 6537 6543 case 443: 6538 #line 173 1"parser.yy" /* yacc.c:1646 */6544 #line 1737 "parser.yy" /* yacc.c:1646 */ 6539 6545 { (yyval.decl) = (yyvsp[-2].decl)->appendList( DeclarationNode::newName( (yyvsp[0].tok) ) ); } 6540 #line 654 1"Parser/parser.cc" /* yacc.c:1646 */6546 #line 6547 "Parser/parser.cc" /* yacc.c:1646 */ 6541 6547 break; 6542 6548 6543 6549 case 455: 6544 #line 1756 "parser.yy" /* yacc.c:1646 */ 6545 { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); } 6546 #line 6547 "Parser/parser.cc" /* yacc.c:1646 */ 6547 break; 6548 6549 case 459: 6550 #line 1764 "parser.yy" /* yacc.c:1646 */ 6550 #line 1762 "parser.yy" /* yacc.c:1646 */ 6551 6551 { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); } 6552 6552 #line 6553 "Parser/parser.cc" /* yacc.c:1646 */ 6553 6553 break; 6554 6554 6555 case 459: 6556 #line 1770 "parser.yy" /* yacc.c:1646 */ 6557 { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); } 6558 #line 6559 "Parser/parser.cc" /* yacc.c:1646 */ 6559 break; 6560 6555 6561 case 460: 6556 #line 17 69"parser.yy" /* yacc.c:1646 */6562 #line 1775 "parser.yy" /* yacc.c:1646 */ 6557 6563 { (yyval.in) = 0; } 6558 #line 65 59"Parser/parser.cc" /* yacc.c:1646 */6564 #line 6565 "Parser/parser.cc" /* yacc.c:1646 */ 6559 6565 break; 6560 6566 6561 6567 case 461: 6562 #line 177 1"parser.yy" /* yacc.c:1646 */6568 #line 1777 "parser.yy" /* yacc.c:1646 */ 6563 6569 { (yyval.in) = (yyvsp[0].in); } 6564 #line 65 65"Parser/parser.cc" /* yacc.c:1646 */6570 #line 6571 "Parser/parser.cc" /* yacc.c:1646 */ 6565 6571 break; 6566 6572 6567 6573 case 462: 6568 #line 177 3"parser.yy" /* yacc.c:1646 */6574 #line 1779 "parser.yy" /* yacc.c:1646 */ 6569 6575 { (yyval.in) = (yyvsp[0].in)->set_maybeConstructed( false ); } 6570 #line 657 1"Parser/parser.cc" /* yacc.c:1646 */6576 #line 6577 "Parser/parser.cc" /* yacc.c:1646 */ 6571 6577 break; 6572 6578 6573 6579 case 463: 6574 #line 17 77"parser.yy" /* yacc.c:1646 */6580 #line 1783 "parser.yy" /* yacc.c:1646 */ 6575 6581 { (yyval.in) = new InitializerNode( (yyvsp[0].en) ); } 6576 #line 65 77"Parser/parser.cc" /* yacc.c:1646 */6582 #line 6583 "Parser/parser.cc" /* yacc.c:1646 */ 6577 6583 break; 6578 6584 6579 6585 case 464: 6580 #line 17 78"parser.yy" /* yacc.c:1646 */6586 #line 1784 "parser.yy" /* yacc.c:1646 */ 6581 6587 { (yyval.in) = new InitializerNode( (yyvsp[-2].in), true ); } 6582 #line 658 3"Parser/parser.cc" /* yacc.c:1646 */6588 #line 6589 "Parser/parser.cc" /* yacc.c:1646 */ 6583 6589 break; 6584 6590 6585 6591 case 465: 6586 #line 178 3"parser.yy" /* yacc.c:1646 */6592 #line 1789 "parser.yy" /* yacc.c:1646 */ 6587 6593 { (yyval.in) = 0; } 6588 #line 65 89"Parser/parser.cc" /* yacc.c:1646 */6594 #line 6595 "Parser/parser.cc" /* yacc.c:1646 */ 6589 6595 break; 6590 6596 6591 6597 case 467: 6592 #line 17 85"parser.yy" /* yacc.c:1646 */6598 #line 1791 "parser.yy" /* yacc.c:1646 */ 6593 6599 { (yyval.in) = (yyvsp[0].in)->set_designators( (yyvsp[-1].en) ); } 6594 #line 6 595"Parser/parser.cc" /* yacc.c:1646 */6600 #line 6601 "Parser/parser.cc" /* yacc.c:1646 */ 6595 6601 break; 6596 6602 6597 6603 case 468: 6598 #line 17 86"parser.yy" /* yacc.c:1646 */6604 #line 1792 "parser.yy" /* yacc.c:1646 */ 6599 6605 { (yyval.in) = (InitializerNode *)( (yyvsp[-2].in)->set_last( (yyvsp[0].in) ) ); } 6600 #line 660 1"Parser/parser.cc" /* yacc.c:1646 */6606 #line 6607 "Parser/parser.cc" /* yacc.c:1646 */ 6601 6607 break; 6602 6608 6603 6609 case 469: 6604 #line 17 88"parser.yy" /* yacc.c:1646 */6610 #line 1794 "parser.yy" /* yacc.c:1646 */ 6605 6611 { (yyval.in) = (InitializerNode *)( (yyvsp[-3].in)->set_last( (yyvsp[0].in)->set_designators( (yyvsp[-1].en) ) ) ); } 6606 #line 66 07"Parser/parser.cc" /* yacc.c:1646 */6612 #line 6613 "Parser/parser.cc" /* yacc.c:1646 */ 6607 6613 break; 6608 6614 6609 6615 case 471: 6610 #line 18 04"parser.yy" /* yacc.c:1646 */6616 #line 1810 "parser.yy" /* yacc.c:1646 */ 6611 6617 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[-1].tok) ) ); } 6612 #line 661 3"Parser/parser.cc" /* yacc.c:1646 */6618 #line 6619 "Parser/parser.cc" /* yacc.c:1646 */ 6613 6619 break; 6614 6620 6615 6621 case 473: 6616 #line 181 0"parser.yy" /* yacc.c:1646 */6622 #line 1816 "parser.yy" /* yacc.c:1646 */ 6617 6623 { (yyval.en) = (ExpressionNode *)( (yyvsp[-1].en)->set_last( (yyvsp[0].en) ) ); } 6618 #line 66 19"Parser/parser.cc" /* yacc.c:1646 */6624 #line 6625 "Parser/parser.cc" /* yacc.c:1646 */ 6619 6625 break; 6620 6626 6621 6627 case 474: 6622 #line 18 16"parser.yy" /* yacc.c:1646 */6628 #line 1822 "parser.yy" /* yacc.c:1646 */ 6623 6629 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); } 6624 #line 66 25"Parser/parser.cc" /* yacc.c:1646 */6630 #line 6631 "Parser/parser.cc" /* yacc.c:1646 */ 6625 6631 break; 6626 6632 6627 6633 case 475: 6628 #line 1819 "parser.yy" /* yacc.c:1646 */ 6629 { (yyval.en) = (yyvsp[-2].en); } 6630 #line 6631 "Parser/parser.cc" /* yacc.c:1646 */ 6631 break; 6632 6633 case 476: 6634 #line 1821 "parser.yy" /* yacc.c:1646 */ 6634 #line 1825 "parser.yy" /* yacc.c:1646 */ 6635 6635 { (yyval.en) = (yyvsp[-2].en); } 6636 6636 #line 6637 "Parser/parser.cc" /* yacc.c:1646 */ 6637 6637 break; 6638 6638 6639 case 476: 6640 #line 1827 "parser.yy" /* yacc.c:1646 */ 6641 { (yyval.en) = (yyvsp[-2].en); } 6642 #line 6643 "Parser/parser.cc" /* yacc.c:1646 */ 6643 break; 6644 6639 6645 case 477: 6640 #line 182 3"parser.yy" /* yacc.c:1646 */6646 #line 1829 "parser.yy" /* yacc.c:1646 */ 6641 6647 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[-4].en), (yyvsp[-2].en) ) ); } 6642 #line 664 3"Parser/parser.cc" /* yacc.c:1646 */6648 #line 6649 "Parser/parser.cc" /* yacc.c:1646 */ 6643 6649 break; 6644 6650 6645 6651 case 478: 6646 #line 18 25"parser.yy" /* yacc.c:1646 */6652 #line 1831 "parser.yy" /* yacc.c:1646 */ 6647 6653 { (yyval.en) = (yyvsp[-2].en); } 6648 #line 66 49"Parser/parser.cc" /* yacc.c:1646 */6654 #line 6655 "Parser/parser.cc" /* yacc.c:1646 */ 6649 6655 break; 6650 6656 6651 6657 case 480: 6652 #line 18 49"parser.yy" /* yacc.c:1646 */6658 #line 1855 "parser.yy" /* yacc.c:1646 */ 6653 6659 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6654 #line 66 55"Parser/parser.cc" /* yacc.c:1646 */6660 #line 6661 "Parser/parser.cc" /* yacc.c:1646 */ 6655 6661 break; 6656 6662 6657 6663 case 481: 6658 #line 185 1"parser.yy" /* yacc.c:1646 */6664 #line 1857 "parser.yy" /* yacc.c:1646 */ 6659 6665 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6660 #line 666 1"Parser/parser.cc" /* yacc.c:1646 */6666 #line 6667 "Parser/parser.cc" /* yacc.c:1646 */ 6661 6667 break; 6662 6668 6663 6669 case 482: 6664 #line 185 3"parser.yy" /* yacc.c:1646 */6670 #line 1859 "parser.yy" /* yacc.c:1646 */ 6665 6671 { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); } 6666 #line 66 67"Parser/parser.cc" /* yacc.c:1646 */6672 #line 6673 "Parser/parser.cc" /* yacc.c:1646 */ 6667 6673 break; 6668 6674 6669 6675 case 484: 6670 #line 18 59"parser.yy" /* yacc.c:1646 */6676 #line 1865 "parser.yy" /* yacc.c:1646 */ 6671 6677 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6672 #line 667 3"Parser/parser.cc" /* yacc.c:1646 */6678 #line 6679 "Parser/parser.cc" /* yacc.c:1646 */ 6673 6679 break; 6674 6680 6675 6681 case 485: 6676 #line 186 1"parser.yy" /* yacc.c:1646 */6682 #line 1867 "parser.yy" /* yacc.c:1646 */ 6677 6683 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6678 #line 66 79"Parser/parser.cc" /* yacc.c:1646 */6684 #line 6685 "Parser/parser.cc" /* yacc.c:1646 */ 6679 6685 break; 6680 6686 6681 6687 case 486: 6682 #line 18 66"parser.yy" /* yacc.c:1646 */6688 #line 1872 "parser.yy" /* yacc.c:1646 */ 6683 6689 { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[-3].tok), (yyvsp[-1].en) ); } 6684 #line 66 85"Parser/parser.cc" /* yacc.c:1646 */6690 #line 6691 "Parser/parser.cc" /* yacc.c:1646 */ 6685 6691 break; 6686 6692 6687 6693 case 488: 6688 #line 187 2"parser.yy" /* yacc.c:1646 */6694 #line 1878 "parser.yy" /* yacc.c:1646 */ 6689 6695 { (yyval.decl) = (yyvsp[-3].decl)->appendList( (yyvsp[-1].decl) ); } 6690 #line 669 1"Parser/parser.cc" /* yacc.c:1646 */6696 #line 6697 "Parser/parser.cc" /* yacc.c:1646 */ 6691 6697 break; 6692 6698 6693 6699 case 489: 6694 #line 18 77"parser.yy" /* yacc.c:1646 */6700 #line 1883 "parser.yy" /* yacc.c:1646 */ 6695 6701 { typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::TD ); } 6696 #line 6 697"Parser/parser.cc" /* yacc.c:1646 */6702 #line 6703 "Parser/parser.cc" /* yacc.c:1646 */ 6697 6703 break; 6698 6704 6699 6705 case 490: 6700 #line 18 79"parser.yy" /* yacc.c:1646 */6706 #line 1885 "parser.yy" /* yacc.c:1646 */ 6701 6707 { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[-3].tclass), (yyvsp[-2].tok) )->addAssertions( (yyvsp[0].decl) ); } 6702 #line 670 3"Parser/parser.cc" /* yacc.c:1646 */6708 #line 6709 "Parser/parser.cc" /* yacc.c:1646 */ 6703 6709 break; 6704 6710 6705 6711 case 492: 6706 #line 18 85"parser.yy" /* yacc.c:1646 */6712 #line 1891 "parser.yy" /* yacc.c:1646 */ 6707 6713 { (yyval.tclass) = DeclarationNode::Otype; } 6708 #line 67 09"Parser/parser.cc" /* yacc.c:1646 */6714 #line 6715 "Parser/parser.cc" /* yacc.c:1646 */ 6709 6715 break; 6710 6716 6711 6717 case 493: 6712 #line 18 87"parser.yy" /* yacc.c:1646 */6718 #line 1893 "parser.yy" /* yacc.c:1646 */ 6713 6719 { (yyval.tclass) = DeclarationNode::Ftype; } 6714 #line 67 15"Parser/parser.cc" /* yacc.c:1646 */6720 #line 6721 "Parser/parser.cc" /* yacc.c:1646 */ 6715 6721 break; 6716 6722 6717 6723 case 494: 6718 #line 18 89"parser.yy" /* yacc.c:1646 */6724 #line 1895 "parser.yy" /* yacc.c:1646 */ 6719 6725 { (yyval.tclass) = DeclarationNode::Dtype; } 6720 #line 672 1"Parser/parser.cc" /* yacc.c:1646 */6726 #line 6727 "Parser/parser.cc" /* yacc.c:1646 */ 6721 6727 break; 6722 6728 6723 6729 case 495: 6724 #line 1 894"parser.yy" /* yacc.c:1646 */6730 #line 1900 "parser.yy" /* yacc.c:1646 */ 6725 6731 { (yyval.decl) = 0; } 6726 #line 67 27"Parser/parser.cc" /* yacc.c:1646 */6732 #line 6733 "Parser/parser.cc" /* yacc.c:1646 */ 6727 6733 break; 6728 6734 6729 6735 case 496: 6730 #line 1 896"parser.yy" /* yacc.c:1646 */6736 #line 1902 "parser.yy" /* yacc.c:1646 */ 6731 6737 { (yyval.decl) = (yyvsp[-1].decl) != 0 ? (yyvsp[-1].decl)->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); } 6732 #line 673 3"Parser/parser.cc" /* yacc.c:1646 */6738 #line 6739 "Parser/parser.cc" /* yacc.c:1646 */ 6733 6739 break; 6734 6740 6735 6741 case 497: 6736 #line 190 1"parser.yy" /* yacc.c:1646 */6742 #line 1907 "parser.yy" /* yacc.c:1646 */ 6737 6743 { 6738 6744 typedefTable.openTrait( *(yyvsp[-3].tok) ); 6739 6745 (yyval.decl) = DeclarationNode::newTraitUse( (yyvsp[-3].tok), (yyvsp[-1].en) ); 6740 6746 } 6741 #line 674 2"Parser/parser.cc" /* yacc.c:1646 */6747 #line 6748 "Parser/parser.cc" /* yacc.c:1646 */ 6742 6748 break; 6743 6749 6744 6750 case 498: 6745 #line 19 06"parser.yy" /* yacc.c:1646 */6751 #line 1912 "parser.yy" /* yacc.c:1646 */ 6746 6752 { (yyval.decl) = (yyvsp[-1].decl); } 6747 #line 67 48"Parser/parser.cc" /* yacc.c:1646 */6753 #line 6754 "Parser/parser.cc" /* yacc.c:1646 */ 6748 6754 break; 6749 6755 6750 6756 case 499: 6751 #line 19 08"parser.yy" /* yacc.c:1646 */6757 #line 1914 "parser.yy" /* yacc.c:1646 */ 6752 6758 { (yyval.decl) = 0; } 6753 #line 67 54"Parser/parser.cc" /* yacc.c:1646 */6759 #line 6760 "Parser/parser.cc" /* yacc.c:1646 */ 6754 6760 break; 6755 6761 6756 6762 case 500: 6757 #line 191 3"parser.yy" /* yacc.c:1646 */6763 #line 1919 "parser.yy" /* yacc.c:1646 */ 6758 6764 { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[0].decl) ) ); } 6759 #line 676 0"Parser/parser.cc" /* yacc.c:1646 */6765 #line 6766 "Parser/parser.cc" /* yacc.c:1646 */ 6760 6766 break; 6761 6767 6762 6768 case 502: 6763 #line 19 16"parser.yy" /* yacc.c:1646 */6769 #line 1922 "parser.yy" /* yacc.c:1646 */ 6764 6770 { (yyval.en) = (ExpressionNode *)( (yyvsp[-2].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[0].decl) ) ) ) ); } 6765 #line 67 66"Parser/parser.cc" /* yacc.c:1646 */6771 #line 6772 "Parser/parser.cc" /* yacc.c:1646 */ 6766 6772 break; 6767 6773 6768 6774 case 503: 6769 #line 19 18"parser.yy" /* yacc.c:1646 */6775 #line 1924 "parser.yy" /* yacc.c:1646 */ 6770 6776 { (yyval.en) = (ExpressionNode *)( (yyvsp[-2].en)->set_last( (yyvsp[0].en) )); } 6771 #line 677 2"Parser/parser.cc" /* yacc.c:1646 */6777 #line 6778 "Parser/parser.cc" /* yacc.c:1646 */ 6772 6778 break; 6773 6779 6774 6780 case 504: 6775 #line 192 3"parser.yy" /* yacc.c:1646 */6781 #line 1929 "parser.yy" /* yacc.c:1646 */ 6776 6782 { (yyval.decl) = (yyvsp[0].decl); } 6777 #line 67 78"Parser/parser.cc" /* yacc.c:1646 */6783 #line 6784 "Parser/parser.cc" /* yacc.c:1646 */ 6778 6784 break; 6779 6785 6780 6786 case 505: 6781 #line 19 25"parser.yy" /* yacc.c:1646 */6787 #line 1931 "parser.yy" /* yacc.c:1646 */ 6782 6788 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-2].decl) ); } 6783 #line 67 84"Parser/parser.cc" /* yacc.c:1646 */6789 #line 6790 "Parser/parser.cc" /* yacc.c:1646 */ 6784 6790 break; 6785 6791 6786 6792 case 506: 6787 #line 19 27"parser.yy" /* yacc.c:1646 */6793 #line 1933 "parser.yy" /* yacc.c:1646 */ 6788 6794 { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl)->copyStorageClasses( (yyvsp[-2].decl) ) ); } 6789 #line 679 0"Parser/parser.cc" /* yacc.c:1646 */6795 #line 6796 "Parser/parser.cc" /* yacc.c:1646 */ 6790 6796 break; 6791 6797 6792 6798 case 507: 6793 #line 193 2"parser.yy" /* yacc.c:1646 */6799 #line 1938 "parser.yy" /* yacc.c:1646 */ 6794 6800 { (yyval.decl) = (yyvsp[-1].decl)->addAssertions( (yyvsp[0].decl) ); } 6795 #line 6 796"Parser/parser.cc" /* yacc.c:1646 */6801 #line 6802 "Parser/parser.cc" /* yacc.c:1646 */ 6796 6802 break; 6797 6803 6798 6804 case 508: 6799 #line 19 34"parser.yy" /* yacc.c:1646 */6805 #line 1940 "parser.yy" /* yacc.c:1646 */ 6800 6806 { (yyval.decl) = (yyvsp[-3].decl)->addAssertions( (yyvsp[-2].decl) )->addType( (yyvsp[0].decl) ); } 6801 #line 680 2"Parser/parser.cc" /* yacc.c:1646 */6807 #line 6808 "Parser/parser.cc" /* yacc.c:1646 */ 6802 6808 break; 6803 6809 6804 6810 case 509: 6805 #line 19 39"parser.yy" /* yacc.c:1646 */6811 #line 1945 "parser.yy" /* yacc.c:1646 */ 6806 6812 { 6807 6813 typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::TD ); 6808 6814 (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[0].tok), 0 ); 6809 6815 } 6810 #line 681 1"Parser/parser.cc" /* yacc.c:1646 */6816 #line 6817 "Parser/parser.cc" /* yacc.c:1646 */ 6811 6817 break; 6812 6818 6813 6819 case 510: 6814 #line 19 44"parser.yy" /* yacc.c:1646 */6820 #line 1950 "parser.yy" /* yacc.c:1646 */ 6815 6821 { 6816 6822 typedefTable.addToEnclosingScope( *(yyvsp[-5].tok), TypedefTable::TG ); 6817 6823 (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[-5].tok), (yyvsp[-2].decl) ); 6818 6824 } 6819 #line 682 0"Parser/parser.cc" /* yacc.c:1646 */6825 #line 6826 "Parser/parser.cc" /* yacc.c:1646 */ 6820 6826 break; 6821 6827 6822 6828 case 511: 6823 #line 195 2"parser.yy" /* yacc.c:1646 */6829 #line 1958 "parser.yy" /* yacc.c:1646 */ 6824 6830 { 6825 6831 typedefTable.addToEnclosingScope( *(yyvsp[-7].tok), TypedefTable::ID ); 6826 6832 (yyval.decl) = DeclarationNode::newTrait( (yyvsp[-7].tok), (yyvsp[-4].decl), 0 ); 6827 6833 } 6828 #line 68 29"Parser/parser.cc" /* yacc.c:1646 */6834 #line 6835 "Parser/parser.cc" /* yacc.c:1646 */ 6829 6835 break; 6830 6836 6831 6837 case 512: 6832 #line 19 57"parser.yy" /* yacc.c:1646 */6838 #line 1963 "parser.yy" /* yacc.c:1646 */ 6833 6839 { 6834 6840 typedefTable.enterTrait( *(yyvsp[-6].tok) ); 6835 6841 typedefTable.enterScope(); 6836 6842 } 6837 #line 68 38"Parser/parser.cc" /* yacc.c:1646 */6843 #line 6844 "Parser/parser.cc" /* yacc.c:1646 */ 6838 6844 break; 6839 6845 6840 6846 case 513: 6841 #line 196 2"parser.yy" /* yacc.c:1646 */6847 #line 1968 "parser.yy" /* yacc.c:1646 */ 6842 6848 { 6843 6849 typedefTable.leaveTrait(); … … 6845 6851 (yyval.decl) = DeclarationNode::newTrait( (yyvsp[-9].tok), (yyvsp[-6].decl), (yyvsp[-1].decl) ); 6846 6852 } 6847 #line 68 48"Parser/parser.cc" /* yacc.c:1646 */6853 #line 6854 "Parser/parser.cc" /* yacc.c:1646 */ 6848 6854 break; 6849 6855 6850 6856 case 515: 6851 #line 197 2"parser.yy" /* yacc.c:1646 */6857 #line 1978 "parser.yy" /* yacc.c:1646 */ 6852 6858 { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); } 6853 #line 68 54"Parser/parser.cc" /* yacc.c:1646 */6859 #line 6860 "Parser/parser.cc" /* yacc.c:1646 */ 6854 6860 break; 6855 6861 6856 6862 case 518: 6857 #line 198 2"parser.yy" /* yacc.c:1646 */6863 #line 1988 "parser.yy" /* yacc.c:1646 */ 6858 6864 { 6859 6865 typedefTable.addToEnclosingScope2( TypedefTable::ID ); 6860 6866 (yyval.decl) = (yyvsp[0].decl); 6861 6867 } 6862 #line 686 3"Parser/parser.cc" /* yacc.c:1646 */6868 #line 6869 "Parser/parser.cc" /* yacc.c:1646 */ 6863 6869 break; 6864 6870 6865 6871 case 519: 6866 #line 19 87"parser.yy" /* yacc.c:1646 */6872 #line 1993 "parser.yy" /* yacc.c:1646 */ 6867 6873 { 6868 6874 typedefTable.addToEnclosingScope2( TypedefTable::ID ); 6869 6875 (yyval.decl) = (yyvsp[0].decl); 6870 6876 } 6871 #line 687 2"Parser/parser.cc" /* yacc.c:1646 */6877 #line 6878 "Parser/parser.cc" /* yacc.c:1646 */ 6872 6878 break; 6873 6879 6874 6880 case 520: 6875 #line 199 2"parser.yy" /* yacc.c:1646 */6881 #line 1998 "parser.yy" /* yacc.c:1646 */ 6876 6882 { 6877 6883 typedefTable.addToEnclosingScope2( *(yyvsp[0].tok), TypedefTable::ID ); 6878 6884 (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) ); 6879 6885 } 6880 #line 688 1"Parser/parser.cc" /* yacc.c:1646 */6886 #line 6887 "Parser/parser.cc" /* yacc.c:1646 */ 6881 6887 break; 6882 6888 6883 6889 case 521: 6884 #line 200 0"parser.yy" /* yacc.c:1646 */6890 #line 2006 "parser.yy" /* yacc.c:1646 */ 6885 6891 { 6886 6892 typedefTable.addToEnclosingScope2( TypedefTable::ID ); 6887 6893 (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); 6888 6894 } 6889 #line 689 0"Parser/parser.cc" /* yacc.c:1646 */6895 #line 6896 "Parser/parser.cc" /* yacc.c:1646 */ 6890 6896 break; 6891 6897 6892 6898 case 522: 6893 #line 20 05"parser.yy" /* yacc.c:1646 */6899 #line 2011 "parser.yy" /* yacc.c:1646 */ 6894 6900 { 6895 6901 typedefTable.addToEnclosingScope2( TypedefTable::ID ); 6896 6902 (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneBaseType( (yyvsp[0].decl) ) ); 6897 6903 } 6898 #line 6 899"Parser/parser.cc" /* yacc.c:1646 */6904 #line 6905 "Parser/parser.cc" /* yacc.c:1646 */ 6899 6905 break; 6900 6906 6901 6907 case 523: 6902 #line 20 15"parser.yy" /* yacc.c:1646 */6908 #line 2021 "parser.yy" /* yacc.c:1646 */ 6903 6909 {} 6904 #line 69 05"Parser/parser.cc" /* yacc.c:1646 */6910 #line 6911 "Parser/parser.cc" /* yacc.c:1646 */ 6905 6911 break; 6906 6912 6907 6913 case 524: 6908 #line 20 17"parser.yy" /* yacc.c:1646 */6914 #line 2023 "parser.yy" /* yacc.c:1646 */ 6909 6915 { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); } 6910 #line 691 1"Parser/parser.cc" /* yacc.c:1646 */6916 #line 6917 "Parser/parser.cc" /* yacc.c:1646 */ 6911 6917 break; 6912 6918 6913 6919 case 526: 6914 #line 202 3"parser.yy" /* yacc.c:1646 */6920 #line 2029 "parser.yy" /* yacc.c:1646 */ 6915 6921 { (yyval.decl) = (yyvsp[-2].decl) != nullptr ? (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); } 6916 #line 69 17"Parser/parser.cc" /* yacc.c:1646 */6922 #line 6923 "Parser/parser.cc" /* yacc.c:1646 */ 6917 6923 break; 6918 6924 6919 6925 case 527: 6920 #line 20 28"parser.yy" /* yacc.c:1646 */6926 #line 2034 "parser.yy" /* yacc.c:1646 */ 6921 6927 { (yyval.decl) = 0; } 6922 #line 692 3"Parser/parser.cc" /* yacc.c:1646 */6928 #line 6929 "Parser/parser.cc" /* yacc.c:1646 */ 6923 6929 break; 6924 6930 6925 6931 case 531: 6926 #line 20 36"parser.yy" /* yacc.c:1646 */6932 #line 2042 "parser.yy" /* yacc.c:1646 */ 6927 6933 {} 6928 #line 69 29"Parser/parser.cc" /* yacc.c:1646 */6934 #line 6935 "Parser/parser.cc" /* yacc.c:1646 */ 6929 6935 break; 6930 6936 6931 6937 case 532: 6932 #line 20 38"parser.yy" /* yacc.c:1646 */6938 #line 2044 "parser.yy" /* yacc.c:1646 */ 6933 6939 { 6934 6940 linkageStack.push( linkage ); // handle nested extern "C"/"Cforall" 6935 6941 linkage = LinkageSpec::linkageCheck( (yyvsp[0].tok) ); 6936 6942 } 6937 #line 69 38"Parser/parser.cc" /* yacc.c:1646 */6943 #line 6944 "Parser/parser.cc" /* yacc.c:1646 */ 6938 6944 break; 6939 6945 6940 6946 case 533: 6941 #line 204 3"parser.yy" /* yacc.c:1646 */6947 #line 2049 "parser.yy" /* yacc.c:1646 */ 6942 6948 { 6943 6949 linkage = linkageStack.top(); … … 6945 6951 (yyval.decl) = (yyvsp[-1].decl); 6946 6952 } 6947 #line 69 48"Parser/parser.cc" /* yacc.c:1646 */6953 #line 6954 "Parser/parser.cc" /* yacc.c:1646 */ 6948 6954 break; 6949 6955 6950 6956 case 534: 6951 #line 20 49"parser.yy" /* yacc.c:1646 */6957 #line 2055 "parser.yy" /* yacc.c:1646 */ 6952 6958 { // mark all fields in list 6953 6959 for ( DeclarationNode *iter = (yyvsp[0].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) … … 6955 6961 (yyval.decl) = (yyvsp[0].decl); 6956 6962 } 6957 #line 69 58"Parser/parser.cc" /* yacc.c:1646 */6963 #line 6964 "Parser/parser.cc" /* yacc.c:1646 */ 6958 6964 break; 6959 6965 6960 6966 case 536: 6961 #line 20 64"parser.yy" /* yacc.c:1646 */6967 #line 2070 "parser.yy" /* yacc.c:1646 */ 6962 6968 { 6963 6969 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6965 6971 (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) ); 6966 6972 } 6967 #line 69 68"Parser/parser.cc" /* yacc.c:1646 */6973 #line 6974 "Parser/parser.cc" /* yacc.c:1646 */ 6968 6974 break; 6969 6975 6970 6976 case 537: 6971 #line 207 0"parser.yy" /* yacc.c:1646 */6977 #line 2076 "parser.yy" /* yacc.c:1646 */ 6972 6978 { 6973 6979 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6975 6981 (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) ); 6976 6982 } 6977 #line 69 78"Parser/parser.cc" /* yacc.c:1646 */6983 #line 6984 "Parser/parser.cc" /* yacc.c:1646 */ 6978 6984 break; 6979 6985 6980 6986 case 538: 6981 #line 20 79"parser.yy" /* yacc.c:1646 */6987 #line 2085 "parser.yy" /* yacc.c:1646 */ 6982 6988 { 6983 6989 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6985 6991 (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) ); 6986 6992 } 6987 #line 69 88"Parser/parser.cc" /* yacc.c:1646 */6993 #line 6994 "Parser/parser.cc" /* yacc.c:1646 */ 6988 6994 break; 6989 6995 6990 6996 case 539: 6991 #line 20 85"parser.yy" /* yacc.c:1646 */6997 #line 2091 "parser.yy" /* yacc.c:1646 */ 6992 6998 { 6993 6999 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6995 7001 (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addType( (yyvsp[-2].decl) ); 6996 7002 } 6997 #line 6998"Parser/parser.cc" /* yacc.c:1646 */7003 #line 7004 "Parser/parser.cc" /* yacc.c:1646 */ 6998 7004 break; 6999 7005 7000 7006 case 540: 7001 #line 209 1"parser.yy" /* yacc.c:1646 */7007 #line 2097 "parser.yy" /* yacc.c:1646 */ 7002 7008 { 7003 7009 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7005 7011 (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) ); 7006 7012 } 7007 #line 70 08"Parser/parser.cc" /* yacc.c:1646 */7013 #line 7014 "Parser/parser.cc" /* yacc.c:1646 */ 7008 7014 break; 7009 7015 7010 7016 case 541: 7011 #line 2 097"parser.yy" /* yacc.c:1646 */7017 #line 2103 "parser.yy" /* yacc.c:1646 */ 7012 7018 { 7013 7019 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7015 7021 (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) ); 7016 7022 } 7017 #line 70 18"Parser/parser.cc" /* yacc.c:1646 */7023 #line 7024 "Parser/parser.cc" /* yacc.c:1646 */ 7018 7024 break; 7019 7025 7020 7026 case 542: 7021 #line 210 3"parser.yy" /* yacc.c:1646 */7027 #line 2109 "parser.yy" /* yacc.c:1646 */ 7022 7028 { 7023 7029 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7025 7031 (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[-3].decl) ); 7026 7032 } 7027 #line 70 28"Parser/parser.cc" /* yacc.c:1646 */7033 #line 7034 "Parser/parser.cc" /* yacc.c:1646 */ 7028 7034 break; 7029 7035 7030 7036 case 543: 7031 #line 211 1"parser.yy" /* yacc.c:1646 */7037 #line 2117 "parser.yy" /* yacc.c:1646 */ 7032 7038 { 7033 7039 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7035 7041 (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addType( (yyvsp[-4].decl) ); 7036 7042 } 7037 #line 70 38"Parser/parser.cc" /* yacc.c:1646 */7043 #line 7044 "Parser/parser.cc" /* yacc.c:1646 */ 7038 7044 break; 7039 7045 7040 7046 case 544: 7041 #line 21 17"parser.yy" /* yacc.c:1646 */7047 #line 2123 "parser.yy" /* yacc.c:1646 */ 7042 7048 { 7043 7049 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7045 7051 (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) ); 7046 7052 } 7047 #line 70 48"Parser/parser.cc" /* yacc.c:1646 */7053 #line 7054 "Parser/parser.cc" /* yacc.c:1646 */ 7048 7054 break; 7049 7055 7050 7056 case 545: 7051 #line 21 25"parser.yy" /* yacc.c:1646 */7057 #line 2131 "parser.yy" /* yacc.c:1646 */ 7052 7058 { 7053 7059 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7055 7061 (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) ); 7056 7062 } 7057 #line 70 58"Parser/parser.cc" /* yacc.c:1646 */7063 #line 7064 "Parser/parser.cc" /* yacc.c:1646 */ 7058 7064 break; 7059 7065 7060 7066 case 546: 7061 #line 213 1"parser.yy" /* yacc.c:1646 */7067 #line 2137 "parser.yy" /* yacc.c:1646 */ 7062 7068 { 7063 7069 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7065 7071 (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) )->addQualifiers( (yyvsp[-5].decl) ); 7066 7072 } 7067 #line 70 68"Parser/parser.cc" /* yacc.c:1646 */7073 #line 7074 "Parser/parser.cc" /* yacc.c:1646 */ 7068 7074 break; 7069 7075 7070 7076 case 550: 7071 #line 21 46"parser.yy" /* yacc.c:1646 */7077 #line 2152 "parser.yy" /* yacc.c:1646 */ 7072 7078 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[-2].en), (yyvsp[0].en) ) ); } 7073 #line 70 74"Parser/parser.cc" /* yacc.c:1646 */7079 #line 7080 "Parser/parser.cc" /* yacc.c:1646 */ 7074 7080 break; 7075 7081 7076 7082 case 552: 7077 #line 215 1"parser.yy" /* yacc.c:1646 */7083 #line 2157 "parser.yy" /* yacc.c:1646 */ 7078 7084 { delete (yyvsp[-2].str); } 7079 #line 708 0"Parser/parser.cc" /* yacc.c:1646 */7085 #line 7086 "Parser/parser.cc" /* yacc.c:1646 */ 7080 7086 break; 7081 7087 7082 7088 case 553: 7083 #line 21 56"parser.yy" /* yacc.c:1646 */7089 #line 2162 "parser.yy" /* yacc.c:1646 */ 7084 7090 { (yyval.decl) = 0; } 7085 #line 70 86"Parser/parser.cc" /* yacc.c:1646 */7091 #line 7092 "Parser/parser.cc" /* yacc.c:1646 */ 7086 7092 break; 7087 7093 7088 7094 case 556: 7089 #line 216 3"parser.yy" /* yacc.c:1646 */7095 #line 2169 "parser.yy" /* yacc.c:1646 */ 7090 7096 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 7091 #line 709 2"Parser/parser.cc" /* yacc.c:1646 */7097 #line 7098 "Parser/parser.cc" /* yacc.c:1646 */ 7092 7098 break; 7093 7099 7094 7100 case 557: 7095 #line 21 69"parser.yy" /* yacc.c:1646 */7101 #line 2175 "parser.yy" /* yacc.c:1646 */ 7096 7102 { (yyval.decl) = 0; } 7097 #line 7 098"Parser/parser.cc" /* yacc.c:1646 */7103 #line 7104 "Parser/parser.cc" /* yacc.c:1646 */ 7098 7104 break; 7099 7105 7100 7106 case 562: 7101 #line 218 0"parser.yy" /* yacc.c:1646 */7107 #line 2186 "parser.yy" /* yacc.c:1646 */ 7102 7108 { delete (yyvsp[-1].en); } 7103 #line 71 04"Parser/parser.cc" /* yacc.c:1646 */7109 #line 7110 "Parser/parser.cc" /* yacc.c:1646 */ 7104 7110 break; 7105 7111 7106 7112 case 563: 7107 #line 21 84"parser.yy" /* yacc.c:1646 */7113 #line 2190 "parser.yy" /* yacc.c:1646 */ 7108 7114 { delete (yyvsp[0].tok); } 7109 #line 711 0"Parser/parser.cc" /* yacc.c:1646 */7115 #line 7116 "Parser/parser.cc" /* yacc.c:1646 */ 7110 7116 break; 7111 7117 7112 7118 case 564: 7113 #line 2185 "parser.yy" /* yacc.c:1646 */ 7114 { delete (yyvsp[0].decl); } 7115 #line 7116 "Parser/parser.cc" /* yacc.c:1646 */ 7116 break; 7117 7118 case 565: 7119 #line 2186 "parser.yy" /* yacc.c:1646 */ 7119 #line 2191 "parser.yy" /* yacc.c:1646 */ 7120 7120 { delete (yyvsp[0].decl); } 7121 7121 #line 7122 "Parser/parser.cc" /* yacc.c:1646 */ 7122 7122 break; 7123 7123 7124 case 56 6:7125 #line 21 87"parser.yy" /* yacc.c:1646 */7124 case 565: 7125 #line 2192 "parser.yy" /* yacc.c:1646 */ 7126 7126 { delete (yyvsp[0].decl); } 7127 7127 #line 7128 "Parser/parser.cc" /* yacc.c:1646 */ 7128 7128 break; 7129 7129 7130 case 566: 7131 #line 2193 "parser.yy" /* yacc.c:1646 */ 7132 { delete (yyvsp[0].decl); } 7133 #line 7134 "Parser/parser.cc" /* yacc.c:1646 */ 7134 break; 7135 7130 7136 case 567: 7131 #line 2222 "parser.yy" /* yacc.c:1646 */ 7132 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7133 #line 7134 "Parser/parser.cc" /* yacc.c:1646 */ 7134 break; 7135 7136 case 569: 7137 #line 2225 "parser.yy" /* yacc.c:1646 */ 7137 #line 2228 "parser.yy" /* yacc.c:1646 */ 7138 7138 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7139 7139 #line 7140 "Parser/parser.cc" /* yacc.c:1646 */ 7140 7140 break; 7141 7141 7142 case 5 70:7143 #line 22 27"parser.yy" /* yacc.c:1646 */7142 case 569: 7143 #line 2231 "parser.yy" /* yacc.c:1646 */ 7144 7144 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7145 7145 #line 7146 "Parser/parser.cc" /* yacc.c:1646 */ 7146 7146 break; 7147 7147 7148 case 570: 7149 #line 2233 "parser.yy" /* yacc.c:1646 */ 7150 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7151 #line 7152 "Parser/parser.cc" /* yacc.c:1646 */ 7152 break; 7153 7148 7154 case 571: 7149 #line 223 2"parser.yy" /* yacc.c:1646 */7155 #line 2238 "parser.yy" /* yacc.c:1646 */ 7150 7156 { 7151 7157 typedefTable.setNextIdentifier( *(yyvsp[0].tok) ); 7152 7158 (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) ); 7153 7159 } 7154 #line 71 55"Parser/parser.cc" /* yacc.c:1646 */7160 #line 7161 "Parser/parser.cc" /* yacc.c:1646 */ 7155 7161 break; 7156 7162 7157 7163 case 572: 7158 #line 22 37"parser.yy" /* yacc.c:1646 */7164 #line 2243 "parser.yy" /* yacc.c:1646 */ 7159 7165 { (yyval.decl) = (yyvsp[-1].decl); } 7160 #line 716 1"Parser/parser.cc" /* yacc.c:1646 */7166 #line 7167 "Parser/parser.cc" /* yacc.c:1646 */ 7161 7167 break; 7162 7168 7163 7169 case 573: 7164 #line 224 2"parser.yy" /* yacc.c:1646 */7170 #line 2248 "parser.yy" /* yacc.c:1646 */ 7165 7171 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7166 #line 71 67"Parser/parser.cc" /* yacc.c:1646 */7172 #line 7173 "Parser/parser.cc" /* yacc.c:1646 */ 7167 7173 break; 7168 7174 7169 7175 case 574: 7170 #line 22 44"parser.yy" /* yacc.c:1646 */7176 #line 2250 "parser.yy" /* yacc.c:1646 */ 7171 7177 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7172 #line 717 3"Parser/parser.cc" /* yacc.c:1646 */7178 #line 7179 "Parser/parser.cc" /* yacc.c:1646 */ 7173 7179 break; 7174 7180 7175 7181 case 575: 7176 #line 22 46"parser.yy" /* yacc.c:1646 */7182 #line 2252 "parser.yy" /* yacc.c:1646 */ 7177 7183 { (yyval.decl) = (yyvsp[-1].decl); } 7178 #line 71 79"Parser/parser.cc" /* yacc.c:1646 */7184 #line 7185 "Parser/parser.cc" /* yacc.c:1646 */ 7179 7185 break; 7180 7186 7181 7187 case 576: 7182 #line 225 1"parser.yy" /* yacc.c:1646 */7188 #line 2257 "parser.yy" /* yacc.c:1646 */ 7183 7189 { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); } 7184 #line 71 85"Parser/parser.cc" /* yacc.c:1646 */7190 #line 7191 "Parser/parser.cc" /* yacc.c:1646 */ 7185 7191 break; 7186 7192 7187 7193 case 577: 7188 #line 2253 "parser.yy" /* yacc.c:1646 */ 7189 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7190 #line 7191 "Parser/parser.cc" /* yacc.c:1646 */ 7191 break; 7192 7193 case 578: 7194 #line 2255 "parser.yy" /* yacc.c:1646 */ 7194 #line 2259 "parser.yy" /* yacc.c:1646 */ 7195 7195 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7196 7196 #line 7197 "Parser/parser.cc" /* yacc.c:1646 */ 7197 7197 break; 7198 7198 7199 case 578: 7200 #line 2261 "parser.yy" /* yacc.c:1646 */ 7201 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7202 #line 7203 "Parser/parser.cc" /* yacc.c:1646 */ 7203 break; 7204 7199 7205 case 579: 7200 #line 22 57"parser.yy" /* yacc.c:1646 */7206 #line 2263 "parser.yy" /* yacc.c:1646 */ 7201 7207 { (yyval.decl) = (yyvsp[-1].decl); } 7202 #line 720 3"Parser/parser.cc" /* yacc.c:1646 */7208 #line 7209 "Parser/parser.cc" /* yacc.c:1646 */ 7203 7209 break; 7204 7210 7205 7211 case 580: 7206 #line 226 2"parser.yy" /* yacc.c:1646 */7212 #line 2268 "parser.yy" /* yacc.c:1646 */ 7207 7213 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7208 #line 72 09"Parser/parser.cc" /* yacc.c:1646 */7214 #line 7215 "Parser/parser.cc" /* yacc.c:1646 */ 7209 7215 break; 7210 7216 7211 7217 case 581: 7212 #line 22 64"parser.yy" /* yacc.c:1646 */7218 #line 2270 "parser.yy" /* yacc.c:1646 */ 7213 7219 { (yyval.decl) = (yyvsp[-1].decl); } 7214 #line 72 15"Parser/parser.cc" /* yacc.c:1646 */7220 #line 7221 "Parser/parser.cc" /* yacc.c:1646 */ 7215 7221 break; 7216 7222 7217 7223 case 582: 7218 #line 2273 "parser.yy" /* yacc.c:1646 */ 7219 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7220 #line 7221 "Parser/parser.cc" /* yacc.c:1646 */ 7221 break; 7222 7223 case 584: 7224 #line 2276 "parser.yy" /* yacc.c:1646 */ 7224 #line 2279 "parser.yy" /* yacc.c:1646 */ 7225 7225 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7226 7226 #line 7227 "Parser/parser.cc" /* yacc.c:1646 */ 7227 7227 break; 7228 7228 7229 case 584: 7230 #line 2282 "parser.yy" /* yacc.c:1646 */ 7231 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7232 #line 7233 "Parser/parser.cc" /* yacc.c:1646 */ 7233 break; 7234 7229 7235 case 585: 7230 #line 228 1"parser.yy" /* yacc.c:1646 */7236 #line 2287 "parser.yy" /* yacc.c:1646 */ 7231 7237 { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); } 7232 #line 723 3"Parser/parser.cc" /* yacc.c:1646 */7238 #line 7239 "Parser/parser.cc" /* yacc.c:1646 */ 7233 7239 break; 7234 7240 7235 7241 case 586: 7236 #line 228 3"parser.yy" /* yacc.c:1646 */7242 #line 2289 "parser.yy" /* yacc.c:1646 */ 7237 7243 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7238 #line 72 39"Parser/parser.cc" /* yacc.c:1646 */7244 #line 7245 "Parser/parser.cc" /* yacc.c:1646 */ 7239 7245 break; 7240 7246 7241 7247 case 587: 7242 #line 22 85"parser.yy" /* yacc.c:1646 */7248 #line 2291 "parser.yy" /* yacc.c:1646 */ 7243 7249 { (yyval.decl) = (yyvsp[-1].decl); } 7244 #line 72 45"Parser/parser.cc" /* yacc.c:1646 */7250 #line 7251 "Parser/parser.cc" /* yacc.c:1646 */ 7245 7251 break; 7246 7252 7247 7253 case 588: 7248 #line 229 0"parser.yy" /* yacc.c:1646 */7254 #line 2296 "parser.yy" /* yacc.c:1646 */ 7249 7255 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7250 #line 725 1"Parser/parser.cc" /* yacc.c:1646 */7256 #line 7257 "Parser/parser.cc" /* yacc.c:1646 */ 7251 7257 break; 7252 7258 7253 7259 case 589: 7254 #line 229 2"parser.yy" /* yacc.c:1646 */7260 #line 2298 "parser.yy" /* yacc.c:1646 */ 7255 7261 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7256 #line 72 57"Parser/parser.cc" /* yacc.c:1646 */7262 #line 7263 "Parser/parser.cc" /* yacc.c:1646 */ 7257 7263 break; 7258 7264 7259 7265 case 590: 7260 #line 2 294"parser.yy" /* yacc.c:1646 */7266 #line 2300 "parser.yy" /* yacc.c:1646 */ 7261 7267 { (yyval.decl) = (yyvsp[-1].decl); } 7262 #line 726 3"Parser/parser.cc" /* yacc.c:1646 */7268 #line 7269 "Parser/parser.cc" /* yacc.c:1646 */ 7263 7269 break; 7264 7270 7265 7271 case 591: 7266 #line 2299 "parser.yy" /* yacc.c:1646 */ 7267 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7268 #line 7269 "Parser/parser.cc" /* yacc.c:1646 */ 7269 break; 7270 7271 case 592: 7272 #line 2301 "parser.yy" /* yacc.c:1646 */ 7272 #line 2305 "parser.yy" /* yacc.c:1646 */ 7273 7273 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7274 7274 #line 7275 "Parser/parser.cc" /* yacc.c:1646 */ 7275 7275 break; 7276 7276 7277 case 592: 7278 #line 2307 "parser.yy" /* yacc.c:1646 */ 7279 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7280 #line 7281 "Parser/parser.cc" /* yacc.c:1646 */ 7281 break; 7282 7277 7283 case 593: 7278 #line 230 3"parser.yy" /* yacc.c:1646 */7284 #line 2309 "parser.yy" /* yacc.c:1646 */ 7279 7285 { (yyval.decl) = (yyvsp[-1].decl); } 7280 #line 728 1"Parser/parser.cc" /* yacc.c:1646 */7286 #line 7287 "Parser/parser.cc" /* yacc.c:1646 */ 7281 7287 break; 7282 7288 7283 7289 case 597: 7284 #line 23 18"parser.yy" /* yacc.c:1646 */7290 #line 2324 "parser.yy" /* yacc.c:1646 */ 7285 7291 { (yyval.decl) = (yyvsp[-3].decl)->addIdList( (yyvsp[-1].decl) ); } 7286 #line 72 87"Parser/parser.cc" /* yacc.c:1646 */7292 #line 7293 "Parser/parser.cc" /* yacc.c:1646 */ 7287 7293 break; 7288 7294 7289 7295 case 598: 7290 #line 232 0"parser.yy" /* yacc.c:1646 */7296 #line 2326 "parser.yy" /* yacc.c:1646 */ 7291 7297 { (yyval.decl) = (yyvsp[-4].decl)->addIdList( (yyvsp[-1].decl) ); } 7292 #line 729 3"Parser/parser.cc" /* yacc.c:1646 */7298 #line 7299 "Parser/parser.cc" /* yacc.c:1646 */ 7293 7299 break; 7294 7300 7295 7301 case 599: 7296 #line 232 2"parser.yy" /* yacc.c:1646 */7302 #line 2328 "parser.yy" /* yacc.c:1646 */ 7297 7303 { (yyval.decl) = (yyvsp[-1].decl); } 7298 #line 7 299"Parser/parser.cc" /* yacc.c:1646 */7304 #line 7305 "Parser/parser.cc" /* yacc.c:1646 */ 7299 7305 break; 7300 7306 7301 7307 case 600: 7302 #line 23 27"parser.yy" /* yacc.c:1646 */7308 #line 2333 "parser.yy" /* yacc.c:1646 */ 7303 7309 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7304 #line 73 05"Parser/parser.cc" /* yacc.c:1646 */7310 #line 7311 "Parser/parser.cc" /* yacc.c:1646 */ 7305 7311 break; 7306 7312 7307 7313 case 601: 7308 #line 23 29"parser.yy" /* yacc.c:1646 */7314 #line 2335 "parser.yy" /* yacc.c:1646 */ 7309 7315 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7310 #line 731 1"Parser/parser.cc" /* yacc.c:1646 */7316 #line 7317 "Parser/parser.cc" /* yacc.c:1646 */ 7311 7317 break; 7312 7318 7313 7319 case 602: 7314 #line 233 1"parser.yy" /* yacc.c:1646 */7320 #line 2337 "parser.yy" /* yacc.c:1646 */ 7315 7321 { (yyval.decl) = (yyvsp[-1].decl); } 7316 #line 73 17"Parser/parser.cc" /* yacc.c:1646 */7322 #line 7323 "Parser/parser.cc" /* yacc.c:1646 */ 7317 7323 break; 7318 7324 7319 7325 case 603: 7320 #line 2336 "parser.yy" /* yacc.c:1646 */ 7321 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7322 #line 7323 "Parser/parser.cc" /* yacc.c:1646 */ 7323 break; 7324 7325 case 604: 7326 #line 2338 "parser.yy" /* yacc.c:1646 */ 7326 #line 2342 "parser.yy" /* yacc.c:1646 */ 7327 7327 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7328 7328 #line 7329 "Parser/parser.cc" /* yacc.c:1646 */ 7329 7329 break; 7330 7330 7331 case 604: 7332 #line 2344 "parser.yy" /* yacc.c:1646 */ 7333 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7334 #line 7335 "Parser/parser.cc" /* yacc.c:1646 */ 7335 break; 7336 7331 7337 case 605: 7332 #line 234 0"parser.yy" /* yacc.c:1646 */7338 #line 2346 "parser.yy" /* yacc.c:1646 */ 7333 7339 { (yyval.decl) = (yyvsp[-1].decl); } 7334 #line 73 35"Parser/parser.cc" /* yacc.c:1646 */7340 #line 7341 "Parser/parser.cc" /* yacc.c:1646 */ 7335 7341 break; 7336 7342 7337 7343 case 606: 7338 #line 2355 "parser.yy" /* yacc.c:1646 */ 7339 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7340 #line 7341 "Parser/parser.cc" /* yacc.c:1646 */ 7341 break; 7342 7343 case 608: 7344 #line 2358 "parser.yy" /* yacc.c:1646 */ 7344 #line 2361 "parser.yy" /* yacc.c:1646 */ 7345 7345 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7346 7346 #line 7347 "Parser/parser.cc" /* yacc.c:1646 */ 7347 7347 break; 7348 7348 7349 case 60 9:7350 #line 236 0"parser.yy" /* yacc.c:1646 */7349 case 608: 7350 #line 2364 "parser.yy" /* yacc.c:1646 */ 7351 7351 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7352 7352 #line 7353 "Parser/parser.cc" /* yacc.c:1646 */ 7353 7353 break; 7354 7354 7355 case 609: 7356 #line 2366 "parser.yy" /* yacc.c:1646 */ 7357 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7358 #line 7359 "Parser/parser.cc" /* yacc.c:1646 */ 7359 break; 7360 7355 7361 case 611: 7356 #line 23 66"parser.yy" /* yacc.c:1646 */7362 #line 2372 "parser.yy" /* yacc.c:1646 */ 7357 7363 { (yyval.decl) = (yyvsp[-1].decl); } 7358 #line 73 59"Parser/parser.cc" /* yacc.c:1646 */7364 #line 7365 "Parser/parser.cc" /* yacc.c:1646 */ 7359 7365 break; 7360 7366 7361 7367 case 612: 7362 #line 237 1"parser.yy" /* yacc.c:1646 */7368 #line 2377 "parser.yy" /* yacc.c:1646 */ 7363 7369 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7364 #line 73 65"Parser/parser.cc" /* yacc.c:1646 */7370 #line 7371 "Parser/parser.cc" /* yacc.c:1646 */ 7365 7371 break; 7366 7372 7367 7373 case 613: 7368 #line 237 3"parser.yy" /* yacc.c:1646 */7374 #line 2379 "parser.yy" /* yacc.c:1646 */ 7369 7375 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7370 #line 737 1"Parser/parser.cc" /* yacc.c:1646 */7376 #line 7377 "Parser/parser.cc" /* yacc.c:1646 */ 7371 7377 break; 7372 7378 7373 7379 case 614: 7374 #line 23 75"parser.yy" /* yacc.c:1646 */7380 #line 2381 "parser.yy" /* yacc.c:1646 */ 7375 7381 { (yyval.decl) = (yyvsp[-1].decl); } 7376 #line 73 77"Parser/parser.cc" /* yacc.c:1646 */7382 #line 7383 "Parser/parser.cc" /* yacc.c:1646 */ 7377 7383 break; 7378 7384 7379 7385 case 615: 7380 #line 238 0"parser.yy" /* yacc.c:1646 */7386 #line 2386 "parser.yy" /* yacc.c:1646 */ 7381 7387 { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); } 7382 #line 738 3"Parser/parser.cc" /* yacc.c:1646 */7388 #line 7389 "Parser/parser.cc" /* yacc.c:1646 */ 7383 7389 break; 7384 7390 7385 7391 case 616: 7386 #line 2382 "parser.yy" /* yacc.c:1646 */ 7387 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7388 #line 7389 "Parser/parser.cc" /* yacc.c:1646 */ 7389 break; 7390 7391 case 617: 7392 #line 2384 "parser.yy" /* yacc.c:1646 */ 7392 #line 2388 "parser.yy" /* yacc.c:1646 */ 7393 7393 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7394 7394 #line 7395 "Parser/parser.cc" /* yacc.c:1646 */ 7395 7395 break; 7396 7396 7397 case 617: 7398 #line 2390 "parser.yy" /* yacc.c:1646 */ 7399 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7400 #line 7401 "Parser/parser.cc" /* yacc.c:1646 */ 7401 break; 7402 7397 7403 case 618: 7398 #line 23 86"parser.yy" /* yacc.c:1646 */7404 #line 2392 "parser.yy" /* yacc.c:1646 */ 7399 7405 { (yyval.decl) = (yyvsp[-1].decl); } 7400 #line 740 1"Parser/parser.cc" /* yacc.c:1646 */7406 #line 7407 "Parser/parser.cc" /* yacc.c:1646 */ 7401 7407 break; 7402 7408 7403 7409 case 619: 7404 #line 239 1"parser.yy" /* yacc.c:1646 */7410 #line 2397 "parser.yy" /* yacc.c:1646 */ 7405 7411 { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); } 7406 #line 74 07"Parser/parser.cc" /* yacc.c:1646 */7412 #line 7413 "Parser/parser.cc" /* yacc.c:1646 */ 7407 7413 break; 7408 7414 7409 7415 case 620: 7410 #line 239 3"parser.yy" /* yacc.c:1646 */7416 #line 2399 "parser.yy" /* yacc.c:1646 */ 7411 7417 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7412 #line 741 3"Parser/parser.cc" /* yacc.c:1646 */7418 #line 7419 "Parser/parser.cc" /* yacc.c:1646 */ 7413 7419 break; 7414 7420 7415 7421 case 621: 7416 #line 2 395"parser.yy" /* yacc.c:1646 */7422 #line 2401 "parser.yy" /* yacc.c:1646 */ 7417 7423 { (yyval.decl) = (yyvsp[-1].decl); } 7418 #line 74 19"Parser/parser.cc" /* yacc.c:1646 */7424 #line 7425 "Parser/parser.cc" /* yacc.c:1646 */ 7419 7425 break; 7420 7426 7421 7427 case 622: 7422 #line 2405 "parser.yy" /* yacc.c:1646 */ 7423 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7424 #line 7425 "Parser/parser.cc" /* yacc.c:1646 */ 7425 break; 7426 7427 case 624: 7428 #line 2408 "parser.yy" /* yacc.c:1646 */ 7428 #line 2411 "parser.yy" /* yacc.c:1646 */ 7429 7429 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7430 7430 #line 7431 "Parser/parser.cc" /* yacc.c:1646 */ 7431 7431 break; 7432 7432 7433 case 62 5:7434 #line 241 0"parser.yy" /* yacc.c:1646 */7433 case 624: 7434 #line 2414 "parser.yy" /* yacc.c:1646 */ 7435 7435 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7436 7436 #line 7437 "Parser/parser.cc" /* yacc.c:1646 */ 7437 7437 break; 7438 7438 7439 case 625: 7440 #line 2416 "parser.yy" /* yacc.c:1646 */ 7441 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7442 #line 7443 "Parser/parser.cc" /* yacc.c:1646 */ 7443 break; 7444 7439 7445 case 626: 7440 #line 24 15"parser.yy" /* yacc.c:1646 */7446 #line 2421 "parser.yy" /* yacc.c:1646 */ 7441 7447 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7442 #line 744 3"Parser/parser.cc" /* yacc.c:1646 */7448 #line 7449 "Parser/parser.cc" /* yacc.c:1646 */ 7443 7449 break; 7444 7450 7445 7451 case 627: 7446 #line 24 17"parser.yy" /* yacc.c:1646 */7452 #line 2423 "parser.yy" /* yacc.c:1646 */ 7447 7453 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7448 #line 74 49"Parser/parser.cc" /* yacc.c:1646 */7454 #line 7455 "Parser/parser.cc" /* yacc.c:1646 */ 7449 7455 break; 7450 7456 7451 7457 case 628: 7452 #line 24 19"parser.yy" /* yacc.c:1646 */7458 #line 2425 "parser.yy" /* yacc.c:1646 */ 7453 7459 { (yyval.decl) = (yyvsp[-1].decl); } 7454 #line 74 55"Parser/parser.cc" /* yacc.c:1646 */7460 #line 7461 "Parser/parser.cc" /* yacc.c:1646 */ 7455 7461 break; 7456 7462 7457 7463 case 629: 7458 #line 24 24"parser.yy" /* yacc.c:1646 */7464 #line 2430 "parser.yy" /* yacc.c:1646 */ 7459 7465 { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); } 7460 #line 746 1"Parser/parser.cc" /* yacc.c:1646 */7466 #line 7467 "Parser/parser.cc" /* yacc.c:1646 */ 7461 7467 break; 7462 7468 7463 7469 case 630: 7464 #line 2426 "parser.yy" /* yacc.c:1646 */ 7465 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7466 #line 7467 "Parser/parser.cc" /* yacc.c:1646 */ 7467 break; 7468 7469 case 631: 7470 #line 2428 "parser.yy" /* yacc.c:1646 */ 7470 #line 2432 "parser.yy" /* yacc.c:1646 */ 7471 7471 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7472 7472 #line 7473 "Parser/parser.cc" /* yacc.c:1646 */ 7473 7473 break; 7474 7474 7475 case 631: 7476 #line 2434 "parser.yy" /* yacc.c:1646 */ 7477 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7478 #line 7479 "Parser/parser.cc" /* yacc.c:1646 */ 7479 break; 7480 7475 7481 case 632: 7476 #line 243 0"parser.yy" /* yacc.c:1646 */7482 #line 2436 "parser.yy" /* yacc.c:1646 */ 7477 7483 { (yyval.decl) = (yyvsp[-1].decl); } 7478 #line 74 79"Parser/parser.cc" /* yacc.c:1646 */7484 #line 7485 "Parser/parser.cc" /* yacc.c:1646 */ 7479 7485 break; 7480 7486 7481 7487 case 633: 7482 #line 24 35"parser.yy" /* yacc.c:1646 */7488 #line 2441 "parser.yy" /* yacc.c:1646 */ 7483 7489 { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); } 7484 #line 74 85"Parser/parser.cc" /* yacc.c:1646 */7490 #line 7491 "Parser/parser.cc" /* yacc.c:1646 */ 7485 7491 break; 7486 7492 7487 7493 case 634: 7488 #line 24 37"parser.yy" /* yacc.c:1646 */7494 #line 2443 "parser.yy" /* yacc.c:1646 */ 7489 7495 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7490 #line 749 1"Parser/parser.cc" /* yacc.c:1646 */7496 #line 7497 "Parser/parser.cc" /* yacc.c:1646 */ 7491 7497 break; 7492 7498 7493 7499 case 635: 7494 #line 24 39"parser.yy" /* yacc.c:1646 */7500 #line 2445 "parser.yy" /* yacc.c:1646 */ 7495 7501 { (yyval.decl) = (yyvsp[-1].decl); } 7496 #line 7 497"Parser/parser.cc" /* yacc.c:1646 */7502 #line 7503 "Parser/parser.cc" /* yacc.c:1646 */ 7497 7503 break; 7498 7504 7499 7505 case 636: 7500 #line 2470 "parser.yy" /* yacc.c:1646 */ 7501 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7502 #line 7503 "Parser/parser.cc" /* yacc.c:1646 */ 7503 break; 7504 7505 case 638: 7506 #line 2473 "parser.yy" /* yacc.c:1646 */ 7506 #line 2476 "parser.yy" /* yacc.c:1646 */ 7507 7507 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7508 7508 #line 7509 "Parser/parser.cc" /* yacc.c:1646 */ 7509 7509 break; 7510 7510 7511 case 63 9:7512 #line 247 5"parser.yy" /* yacc.c:1646 */7511 case 638: 7512 #line 2479 "parser.yy" /* yacc.c:1646 */ 7513 7513 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7514 7514 #line 7515 "Parser/parser.cc" /* yacc.c:1646 */ 7515 7515 break; 7516 7516 7517 case 639: 7518 #line 2481 "parser.yy" /* yacc.c:1646 */ 7519 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7520 #line 7521 "Parser/parser.cc" /* yacc.c:1646 */ 7521 break; 7522 7517 7523 case 640: 7518 #line 248 0"parser.yy" /* yacc.c:1646 */7524 #line 2486 "parser.yy" /* yacc.c:1646 */ 7519 7525 { 7520 7526 typedefTable.setNextIdentifier( *(yyvsp[0].tok) ); 7521 7527 (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) ); 7522 7528 } 7523 #line 75 24"Parser/parser.cc" /* yacc.c:1646 */7529 #line 7530 "Parser/parser.cc" /* yacc.c:1646 */ 7524 7530 break; 7525 7531 7526 7532 case 641: 7527 #line 24 85"parser.yy" /* yacc.c:1646 */7533 #line 2491 "parser.yy" /* yacc.c:1646 */ 7528 7534 { 7529 7535 typedefTable.setNextIdentifier( *(yyvsp[0].tok) ); 7530 7536 (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) ); 7531 7537 } 7532 #line 753 3"Parser/parser.cc" /* yacc.c:1646 */7538 #line 7539 "Parser/parser.cc" /* yacc.c:1646 */ 7533 7539 break; 7534 7540 7535 7541 case 642: 7536 #line 249 3"parser.yy" /* yacc.c:1646 */7542 #line 2499 "parser.yy" /* yacc.c:1646 */ 7537 7543 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7538 #line 75 39"Parser/parser.cc" /* yacc.c:1646 */7544 #line 7545 "Parser/parser.cc" /* yacc.c:1646 */ 7539 7545 break; 7540 7546 7541 7547 case 643: 7542 #line 2 495"parser.yy" /* yacc.c:1646 */7548 #line 2501 "parser.yy" /* yacc.c:1646 */ 7543 7549 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7544 #line 75 45"Parser/parser.cc" /* yacc.c:1646 */7550 #line 7551 "Parser/parser.cc" /* yacc.c:1646 */ 7545 7551 break; 7546 7552 7547 7553 case 644: 7548 #line 2 497"parser.yy" /* yacc.c:1646 */7554 #line 2503 "parser.yy" /* yacc.c:1646 */ 7549 7555 { (yyval.decl) = (yyvsp[-1].decl); } 7550 #line 755 1"Parser/parser.cc" /* yacc.c:1646 */7556 #line 7557 "Parser/parser.cc" /* yacc.c:1646 */ 7551 7557 break; 7552 7558 7553 7559 case 645: 7554 #line 250 2"parser.yy" /* yacc.c:1646 */7560 #line 2508 "parser.yy" /* yacc.c:1646 */ 7555 7561 { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); } 7556 #line 75 57"Parser/parser.cc" /* yacc.c:1646 */7562 #line 7563 "Parser/parser.cc" /* yacc.c:1646 */ 7557 7563 break; 7558 7564 7559 7565 case 646: 7560 #line 25 04"parser.yy" /* yacc.c:1646 */7566 #line 2510 "parser.yy" /* yacc.c:1646 */ 7561 7567 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7562 #line 756 3"Parser/parser.cc" /* yacc.c:1646 */7568 #line 7569 "Parser/parser.cc" /* yacc.c:1646 */ 7563 7569 break; 7564 7570 7565 7571 case 647: 7566 #line 25 09"parser.yy" /* yacc.c:1646 */7572 #line 2515 "parser.yy" /* yacc.c:1646 */ 7567 7573 { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); } 7568 #line 75 69"Parser/parser.cc" /* yacc.c:1646 */7574 #line 7575 "Parser/parser.cc" /* yacc.c:1646 */ 7569 7575 break; 7570 7576 7571 7577 case 648: 7572 #line 251 1"parser.yy" /* yacc.c:1646 */7578 #line 2517 "parser.yy" /* yacc.c:1646 */ 7573 7579 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7574 #line 75 75"Parser/parser.cc" /* yacc.c:1646 */7580 #line 7581 "Parser/parser.cc" /* yacc.c:1646 */ 7575 7581 break; 7576 7582 7577 7583 case 650: 7578 #line 2526 "parser.yy" /* yacc.c:1646 */ 7579 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7580 #line 7581 "Parser/parser.cc" /* yacc.c:1646 */ 7581 break; 7582 7583 case 651: 7584 #line 2528 "parser.yy" /* yacc.c:1646 */ 7584 #line 2532 "parser.yy" /* yacc.c:1646 */ 7585 7585 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7586 7586 #line 7587 "Parser/parser.cc" /* yacc.c:1646 */ 7587 7587 break; 7588 7588 7589 case 651: 7590 #line 2534 "parser.yy" /* yacc.c:1646 */ 7591 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7592 #line 7593 "Parser/parser.cc" /* yacc.c:1646 */ 7593 break; 7594 7589 7595 case 652: 7590 #line 253 3"parser.yy" /* yacc.c:1646 */7596 #line 2539 "parser.yy" /* yacc.c:1646 */ 7591 7597 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 7592 #line 759 3"Parser/parser.cc" /* yacc.c:1646 */7598 #line 7599 "Parser/parser.cc" /* yacc.c:1646 */ 7593 7599 break; 7594 7600 7595 7601 case 653: 7596 #line 25 35"parser.yy" /* yacc.c:1646 */7602 #line 2541 "parser.yy" /* yacc.c:1646 */ 7597 7603 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[0].decl) ); } 7598 #line 7 599"Parser/parser.cc" /* yacc.c:1646 */7604 #line 7605 "Parser/parser.cc" /* yacc.c:1646 */ 7599 7605 break; 7600 7606 7601 7607 case 654: 7602 #line 25 37"parser.yy" /* yacc.c:1646 */7608 #line 2543 "parser.yy" /* yacc.c:1646 */ 7603 7609 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7604 #line 76 05"Parser/parser.cc" /* yacc.c:1646 */7610 #line 7611 "Parser/parser.cc" /* yacc.c:1646 */ 7605 7611 break; 7606 7612 7607 7613 case 655: 7608 #line 25 39"parser.yy" /* yacc.c:1646 */7614 #line 2545 "parser.yy" /* yacc.c:1646 */ 7609 7615 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7610 #line 761 1"Parser/parser.cc" /* yacc.c:1646 */7616 #line 7617 "Parser/parser.cc" /* yacc.c:1646 */ 7611 7617 break; 7612 7618 7613 7619 case 656: 7614 #line 254 1"parser.yy" /* yacc.c:1646 */7620 #line 2547 "parser.yy" /* yacc.c:1646 */ 7615 7621 { (yyval.decl) = (yyvsp[-1].decl); } 7616 #line 76 17"Parser/parser.cc" /* yacc.c:1646 */7622 #line 7623 "Parser/parser.cc" /* yacc.c:1646 */ 7617 7623 break; 7618 7624 7619 7625 case 658: 7620 #line 2547 "parser.yy" /* yacc.c:1646 */ 7621 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7622 #line 7623 "Parser/parser.cc" /* yacc.c:1646 */ 7623 break; 7624 7625 case 659: 7626 #line 2549 "parser.yy" /* yacc.c:1646 */ 7626 #line 2553 "parser.yy" /* yacc.c:1646 */ 7627 7627 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7628 7628 #line 7629 "Parser/parser.cc" /* yacc.c:1646 */ 7629 7629 break; 7630 7630 7631 case 659: 7632 #line 2555 "parser.yy" /* yacc.c:1646 */ 7633 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7634 #line 7635 "Parser/parser.cc" /* yacc.c:1646 */ 7635 break; 7636 7631 7637 case 660: 7632 #line 255 1"parser.yy" /* yacc.c:1646 */7638 #line 2557 "parser.yy" /* yacc.c:1646 */ 7633 7639 { (yyval.decl) = (yyvsp[-1].decl); } 7634 #line 76 35"Parser/parser.cc" /* yacc.c:1646 */7640 #line 7641 "Parser/parser.cc" /* yacc.c:1646 */ 7635 7641 break; 7636 7642 7637 7643 case 661: 7638 #line 25 56"parser.yy" /* yacc.c:1646 */7644 #line 2562 "parser.yy" /* yacc.c:1646 */ 7639 7645 { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[-2].decl), nullptr ); } 7640 #line 764 1"Parser/parser.cc" /* yacc.c:1646 */7646 #line 7647 "Parser/parser.cc" /* yacc.c:1646 */ 7641 7647 break; 7642 7648 7643 7649 case 662: 7644 #line 25 58"parser.yy" /* yacc.c:1646 */7650 #line 2564 "parser.yy" /* yacc.c:1646 */ 7645 7651 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7646 #line 76 47"Parser/parser.cc" /* yacc.c:1646 */7652 #line 7653 "Parser/parser.cc" /* yacc.c:1646 */ 7647 7653 break; 7648 7654 7649 7655 case 663: 7650 #line 256 0"parser.yy" /* yacc.c:1646 */7656 #line 2566 "parser.yy" /* yacc.c:1646 */ 7651 7657 { (yyval.decl) = (yyvsp[-1].decl); } 7652 #line 765 3"Parser/parser.cc" /* yacc.c:1646 */7658 #line 7659 "Parser/parser.cc" /* yacc.c:1646 */ 7653 7659 break; 7654 7660 7655 7661 case 664: 7656 #line 25 66"parser.yy" /* yacc.c:1646 */7662 #line 2572 "parser.yy" /* yacc.c:1646 */ 7657 7663 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 7658 #line 76 59"Parser/parser.cc" /* yacc.c:1646 */7664 #line 7665 "Parser/parser.cc" /* yacc.c:1646 */ 7659 7665 break; 7660 7666 7661 7667 case 665: 7662 #line 25 68"parser.yy" /* yacc.c:1646 */7668 #line 2574 "parser.yy" /* yacc.c:1646 */ 7663 7669 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[0].decl) ); } 7664 #line 76 65"Parser/parser.cc" /* yacc.c:1646 */7670 #line 7671 "Parser/parser.cc" /* yacc.c:1646 */ 7665 7671 break; 7666 7672 7667 7673 case 667: 7668 #line 25 74"parser.yy" /* yacc.c:1646 */7674 #line 2580 "parser.yy" /* yacc.c:1646 */ 7669 7675 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), 0, false ); } 7670 #line 767 1"Parser/parser.cc" /* yacc.c:1646 */7676 #line 7677 "Parser/parser.cc" /* yacc.c:1646 */ 7671 7677 break; 7672 7678 7673 7679 case 668: 7674 #line 25 76"parser.yy" /* yacc.c:1646 */7680 #line 2582 "parser.yy" /* yacc.c:1646 */ 7675 7681 { (yyval.decl) = DeclarationNode::newVarArray( 0 ); } 7676 #line 76 77"Parser/parser.cc" /* yacc.c:1646 */7682 #line 7683 "Parser/parser.cc" /* yacc.c:1646 */ 7677 7683 break; 7678 7684 7679 7685 case 669: 7680 #line 25 78"parser.yy" /* yacc.c:1646 */7686 #line 2584 "parser.yy" /* yacc.c:1646 */ 7681 7687 { (yyval.decl) = (yyvsp[-5].decl)->addArray( DeclarationNode::newArray( (yyvsp[-2].en), 0, false ) ); } 7682 #line 768 3"Parser/parser.cc" /* yacc.c:1646 */7688 #line 7689 "Parser/parser.cc" /* yacc.c:1646 */ 7683 7689 break; 7684 7690 7685 7691 case 670: 7686 #line 258 0"parser.yy" /* yacc.c:1646 */7692 #line 2586 "parser.yy" /* yacc.c:1646 */ 7687 7693 { (yyval.decl) = (yyvsp[-5].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); } 7688 #line 76 89"Parser/parser.cc" /* yacc.c:1646 */7694 #line 7695 "Parser/parser.cc" /* yacc.c:1646 */ 7689 7695 break; 7690 7696 7691 7697 case 672: 7692 #line 2595 "parser.yy" /* yacc.c:1646 */ 7693 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7694 #line 7695 "Parser/parser.cc" /* yacc.c:1646 */ 7695 break; 7696 7697 case 673: 7698 #line 2597 "parser.yy" /* yacc.c:1646 */ 7698 #line 2601 "parser.yy" /* yacc.c:1646 */ 7699 7699 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7700 7700 #line 7701 "Parser/parser.cc" /* yacc.c:1646 */ 7701 7701 break; 7702 7702 7703 case 673: 7704 #line 2603 "parser.yy" /* yacc.c:1646 */ 7705 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7706 #line 7707 "Parser/parser.cc" /* yacc.c:1646 */ 7707 break; 7708 7703 7709 case 674: 7704 #line 260 2"parser.yy" /* yacc.c:1646 */7710 #line 2608 "parser.yy" /* yacc.c:1646 */ 7705 7711 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 7706 #line 77 07"Parser/parser.cc" /* yacc.c:1646 */7712 #line 7713 "Parser/parser.cc" /* yacc.c:1646 */ 7707 7713 break; 7708 7714 7709 7715 case 675: 7710 #line 26 04"parser.yy" /* yacc.c:1646 */7716 #line 2610 "parser.yy" /* yacc.c:1646 */ 7711 7717 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[0].decl) ); } 7712 #line 771 3"Parser/parser.cc" /* yacc.c:1646 */7718 #line 7719 "Parser/parser.cc" /* yacc.c:1646 */ 7713 7719 break; 7714 7720 7715 7721 case 676: 7716 #line 26 06"parser.yy" /* yacc.c:1646 */7722 #line 2612 "parser.yy" /* yacc.c:1646 */ 7717 7723 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7718 #line 77 19"Parser/parser.cc" /* yacc.c:1646 */7724 #line 7725 "Parser/parser.cc" /* yacc.c:1646 */ 7719 7725 break; 7720 7726 7721 7727 case 677: 7722 #line 26 08"parser.yy" /* yacc.c:1646 */7728 #line 2614 "parser.yy" /* yacc.c:1646 */ 7723 7729 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7724 #line 77 25"Parser/parser.cc" /* yacc.c:1646 */7730 #line 7731 "Parser/parser.cc" /* yacc.c:1646 */ 7725 7731 break; 7726 7732 7727 7733 case 678: 7728 #line 261 0"parser.yy" /* yacc.c:1646 */7734 #line 2616 "parser.yy" /* yacc.c:1646 */ 7729 7735 { (yyval.decl) = (yyvsp[-1].decl); } 7730 #line 773 1"Parser/parser.cc" /* yacc.c:1646 */7736 #line 7737 "Parser/parser.cc" /* yacc.c:1646 */ 7731 7737 break; 7732 7738 7733 7739 case 680: 7734 #line 2616 "parser.yy" /* yacc.c:1646 */ 7735 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7736 #line 7737 "Parser/parser.cc" /* yacc.c:1646 */ 7737 break; 7738 7739 case 681: 7740 #line 2618 "parser.yy" /* yacc.c:1646 */ 7740 #line 2622 "parser.yy" /* yacc.c:1646 */ 7741 7741 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7742 7742 #line 7743 "Parser/parser.cc" /* yacc.c:1646 */ 7743 7743 break; 7744 7744 7745 case 681: 7746 #line 2624 "parser.yy" /* yacc.c:1646 */ 7747 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7748 #line 7749 "Parser/parser.cc" /* yacc.c:1646 */ 7749 break; 7750 7745 7751 case 682: 7746 #line 262 0"parser.yy" /* yacc.c:1646 */7752 #line 2626 "parser.yy" /* yacc.c:1646 */ 7747 7753 { (yyval.decl) = (yyvsp[-1].decl); } 7748 #line 77 49"Parser/parser.cc" /* yacc.c:1646 */7754 #line 7755 "Parser/parser.cc" /* yacc.c:1646 */ 7749 7755 break; 7750 7756 7751 7757 case 683: 7752 #line 26 25"parser.yy" /* yacc.c:1646 */7758 #line 2631 "parser.yy" /* yacc.c:1646 */ 7753 7759 { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[-2].decl), nullptr ); } 7754 #line 77 55"Parser/parser.cc" /* yacc.c:1646 */7760 #line 7761 "Parser/parser.cc" /* yacc.c:1646 */ 7755 7761 break; 7756 7762 7757 7763 case 684: 7758 #line 26 27"parser.yy" /* yacc.c:1646 */7764 #line 2633 "parser.yy" /* yacc.c:1646 */ 7759 7765 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7760 #line 776 1"Parser/parser.cc" /* yacc.c:1646 */7766 #line 7767 "Parser/parser.cc" /* yacc.c:1646 */ 7761 7767 break; 7762 7768 7763 7769 case 685: 7764 #line 26 29"parser.yy" /* yacc.c:1646 */7770 #line 2635 "parser.yy" /* yacc.c:1646 */ 7765 7771 { (yyval.decl) = (yyvsp[-1].decl); } 7766 #line 77 67"Parser/parser.cc" /* yacc.c:1646 */7772 #line 7773 "Parser/parser.cc" /* yacc.c:1646 */ 7767 7773 break; 7768 7774 7769 7775 case 687: 7770 #line 26 36"parser.yy" /* yacc.c:1646 */7776 #line 2642 "parser.yy" /* yacc.c:1646 */ 7771 7777 { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); } 7772 #line 777 3"Parser/parser.cc" /* yacc.c:1646 */7778 #line 7779 "Parser/parser.cc" /* yacc.c:1646 */ 7773 7779 break; 7774 7780 7775 7781 case 689: 7776 #line 26 47"parser.yy" /* yacc.c:1646 */7782 #line 2653 "parser.yy" /* yacc.c:1646 */ 7777 7783 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 7778 #line 77 79"Parser/parser.cc" /* yacc.c:1646 */7784 #line 7785 "Parser/parser.cc" /* yacc.c:1646 */ 7779 7785 break; 7780 7786 7781 7787 case 690: 7782 #line 265 0"parser.yy" /* yacc.c:1646 */7788 #line 2656 "parser.yy" /* yacc.c:1646 */ 7783 7789 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[-3].decl) ); } 7784 #line 77 85"Parser/parser.cc" /* yacc.c:1646 */7790 #line 7791 "Parser/parser.cc" /* yacc.c:1646 */ 7785 7791 break; 7786 7792 7787 7793 case 691: 7788 #line 265 2"parser.yy" /* yacc.c:1646 */7794 #line 2658 "parser.yy" /* yacc.c:1646 */ 7789 7795 { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[-2].decl), false ); } 7790 #line 779 1"Parser/parser.cc" /* yacc.c:1646 */7796 #line 7797 "Parser/parser.cc" /* yacc.c:1646 */ 7791 7797 break; 7792 7798 7793 7799 case 692: 7794 #line 26 55"parser.yy" /* yacc.c:1646 */7800 #line 2661 "parser.yy" /* yacc.c:1646 */ 7795 7801 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), false ); } 7796 #line 7 797"Parser/parser.cc" /* yacc.c:1646 */7802 #line 7803 "Parser/parser.cc" /* yacc.c:1646 */ 7797 7803 break; 7798 7804 7799 7805 case 693: 7800 #line 26 57"parser.yy" /* yacc.c:1646 */7806 #line 2663 "parser.yy" /* yacc.c:1646 */ 7801 7807 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), true ); } 7802 #line 780 3"Parser/parser.cc" /* yacc.c:1646 */7808 #line 7809 "Parser/parser.cc" /* yacc.c:1646 */ 7803 7809 break; 7804 7810 7805 7811 case 694: 7806 #line 26 59"parser.yy" /* yacc.c:1646 */7812 #line 2665 "parser.yy" /* yacc.c:1646 */ 7807 7813 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-4].decl), true ); } 7808 #line 78 09"Parser/parser.cc" /* yacc.c:1646 */7814 #line 7815 "Parser/parser.cc" /* yacc.c:1646 */ 7809 7815 break; 7810 7816 7811 7817 case 696: 7812 #line 2673 "parser.yy" /* yacc.c:1646 */ 7813 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7814 #line 7815 "Parser/parser.cc" /* yacc.c:1646 */ 7815 break; 7816 7817 case 697: 7818 #line 2675 "parser.yy" /* yacc.c:1646 */ 7818 #line 2679 "parser.yy" /* yacc.c:1646 */ 7819 7819 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7820 7820 #line 7821 "Parser/parser.cc" /* yacc.c:1646 */ 7821 7821 break; 7822 7822 7823 case 697: 7824 #line 2681 "parser.yy" /* yacc.c:1646 */ 7825 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7826 #line 7827 "Parser/parser.cc" /* yacc.c:1646 */ 7827 break; 7828 7823 7829 case 698: 7824 #line 268 0"parser.yy" /* yacc.c:1646 */7830 #line 2686 "parser.yy" /* yacc.c:1646 */ 7825 7831 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 7826 #line 78 27"Parser/parser.cc" /* yacc.c:1646 */7832 #line 7833 "Parser/parser.cc" /* yacc.c:1646 */ 7827 7833 break; 7828 7834 7829 7835 case 699: 7830 #line 268 2"parser.yy" /* yacc.c:1646 */7836 #line 2688 "parser.yy" /* yacc.c:1646 */ 7831 7837 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[0].decl) ); } 7832 #line 783 3"Parser/parser.cc" /* yacc.c:1646 */7838 #line 7839 "Parser/parser.cc" /* yacc.c:1646 */ 7833 7839 break; 7834 7840 7835 7841 case 700: 7836 #line 26 84"parser.yy" /* yacc.c:1646 */7842 #line 2690 "parser.yy" /* yacc.c:1646 */ 7837 7843 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7838 #line 78 39"Parser/parser.cc" /* yacc.c:1646 */7844 #line 7845 "Parser/parser.cc" /* yacc.c:1646 */ 7839 7845 break; 7840 7846 7841 7847 case 701: 7842 #line 26 86"parser.yy" /* yacc.c:1646 */7848 #line 2692 "parser.yy" /* yacc.c:1646 */ 7843 7849 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7844 #line 78 45"Parser/parser.cc" /* yacc.c:1646 */7850 #line 7851 "Parser/parser.cc" /* yacc.c:1646 */ 7845 7851 break; 7846 7852 7847 7853 case 702: 7848 #line 26 88"parser.yy" /* yacc.c:1646 */7854 #line 2694 "parser.yy" /* yacc.c:1646 */ 7849 7855 { (yyval.decl) = (yyvsp[-1].decl); } 7850 #line 785 1"Parser/parser.cc" /* yacc.c:1646 */7856 #line 7857 "Parser/parser.cc" /* yacc.c:1646 */ 7851 7857 break; 7852 7858 7853 7859 case 704: 7854 #line 2694 "parser.yy" /* yacc.c:1646 */ 7855 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7856 #line 7857 "Parser/parser.cc" /* yacc.c:1646 */ 7857 break; 7858 7859 case 705: 7860 #line 2696 "parser.yy" /* yacc.c:1646 */ 7860 #line 2700 "parser.yy" /* yacc.c:1646 */ 7861 7861 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7862 7862 #line 7863 "Parser/parser.cc" /* yacc.c:1646 */ 7863 7863 break; 7864 7864 7865 case 705: 7866 #line 2702 "parser.yy" /* yacc.c:1646 */ 7867 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7868 #line 7869 "Parser/parser.cc" /* yacc.c:1646 */ 7869 break; 7870 7865 7871 case 706: 7866 #line 2 698"parser.yy" /* yacc.c:1646 */7872 #line 2704 "parser.yy" /* yacc.c:1646 */ 7867 7873 { (yyval.decl) = (yyvsp[-1].decl); } 7868 #line 78 69"Parser/parser.cc" /* yacc.c:1646 */7874 #line 7875 "Parser/parser.cc" /* yacc.c:1646 */ 7869 7875 break; 7870 7876 7871 7877 case 707: 7872 #line 270 3"parser.yy" /* yacc.c:1646 */7878 #line 2709 "parser.yy" /* yacc.c:1646 */ 7873 7879 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7874 #line 78 75"Parser/parser.cc" /* yacc.c:1646 */7880 #line 7881 "Parser/parser.cc" /* yacc.c:1646 */ 7875 7881 break; 7876 7882 7877 7883 case 708: 7878 #line 27 05"parser.yy" /* yacc.c:1646 */7884 #line 2711 "parser.yy" /* yacc.c:1646 */ 7879 7885 { (yyval.decl) = (yyvsp[-1].decl); } 7880 #line 788 1"Parser/parser.cc" /* yacc.c:1646 */7886 #line 7887 "Parser/parser.cc" /* yacc.c:1646 */ 7881 7887 break; 7882 7888 7883 7889 case 711: 7884 #line 27 15"parser.yy" /* yacc.c:1646 */7890 #line 2721 "parser.yy" /* yacc.c:1646 */ 7885 7891 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 7886 #line 78 87"Parser/parser.cc" /* yacc.c:1646 */7892 #line 7893 "Parser/parser.cc" /* yacc.c:1646 */ 7887 7893 break; 7888 7894 7889 7895 case 714: 7890 #line 27 25"parser.yy" /* yacc.c:1646 */7896 #line 2731 "parser.yy" /* yacc.c:1646 */ 7891 7897 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 7892 #line 789 3"Parser/parser.cc" /* yacc.c:1646 */7898 #line 7899 "Parser/parser.cc" /* yacc.c:1646 */ 7893 7899 break; 7894 7900 7895 7901 case 715: 7896 #line 27 27"parser.yy" /* yacc.c:1646 */7902 #line 2733 "parser.yy" /* yacc.c:1646 */ 7897 7903 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); } 7898 #line 7 899"Parser/parser.cc" /* yacc.c:1646 */7904 #line 7905 "Parser/parser.cc" /* yacc.c:1646 */ 7899 7905 break; 7900 7906 7901 7907 case 716: 7902 #line 27 29"parser.yy" /* yacc.c:1646 */7908 #line 2735 "parser.yy" /* yacc.c:1646 */ 7903 7909 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 7904 #line 79 05"Parser/parser.cc" /* yacc.c:1646 */7910 #line 7911 "Parser/parser.cc" /* yacc.c:1646 */ 7905 7911 break; 7906 7912 7907 7913 case 717: 7908 #line 273 1"parser.yy" /* yacc.c:1646 */7914 #line 2737 "parser.yy" /* yacc.c:1646 */ 7909 7915 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); } 7910 #line 791 1"Parser/parser.cc" /* yacc.c:1646 */7916 #line 7917 "Parser/parser.cc" /* yacc.c:1646 */ 7911 7917 break; 7912 7918 7913 7919 case 718: 7914 #line 273 3"parser.yy" /* yacc.c:1646 */7920 #line 2739 "parser.yy" /* yacc.c:1646 */ 7915 7921 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 7916 #line 79 17"Parser/parser.cc" /* yacc.c:1646 */7922 #line 7923 "Parser/parser.cc" /* yacc.c:1646 */ 7917 7923 break; 7918 7924 7919 7925 case 719: 7920 #line 27 35"parser.yy" /* yacc.c:1646 */7926 #line 2741 "parser.yy" /* yacc.c:1646 */ 7921 7927 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); } 7922 #line 792 3"Parser/parser.cc" /* yacc.c:1646 */7928 #line 7929 "Parser/parser.cc" /* yacc.c:1646 */ 7923 7929 break; 7924 7930 7925 7931 case 720: 7926 #line 274 2"parser.yy" /* yacc.c:1646 */7932 #line 2748 "parser.yy" /* yacc.c:1646 */ 7927 7933 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7928 #line 79 29"Parser/parser.cc" /* yacc.c:1646 */7934 #line 7935 "Parser/parser.cc" /* yacc.c:1646 */ 7929 7935 break; 7930 7936 7931 7937 case 721: 7932 #line 2744 "parser.yy" /* yacc.c:1646 */7933 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }7934 #line 7935 "Parser/parser.cc" /* yacc.c:1646 */7935 break;7936 7937 case 722:7938 #line 2746 "parser.yy" /* yacc.c:1646 */7939 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }7940 #line 7941 "Parser/parser.cc" /* yacc.c:1646 */7941 break;7942 7943 case 723:7944 #line 2748 "parser.yy" /* yacc.c:1646 */7945 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( (yyvsp[-2].decl) ); }7946 #line 7947 "Parser/parser.cc" /* yacc.c:1646 */7947 break;7948 7949 case 724:7950 7938 #line 2750 "parser.yy" /* yacc.c:1646 */ 7951 7939 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); } 7940 #line 7941 "Parser/parser.cc" /* yacc.c:1646 */ 7941 break; 7942 7943 case 722: 7944 #line 2752 "parser.yy" /* yacc.c:1646 */ 7945 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7946 #line 7947 "Parser/parser.cc" /* yacc.c:1646 */ 7947 break; 7948 7949 case 723: 7950 #line 2754 "parser.yy" /* yacc.c:1646 */ 7951 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( (yyvsp[-2].decl) ); } 7952 7952 #line 7953 "Parser/parser.cc" /* yacc.c:1646 */ 7953 7953 break; 7954 7954 7955 case 724: 7956 #line 2756 "parser.yy" /* yacc.c:1646 */ 7957 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); } 7958 #line 7959 "Parser/parser.cc" /* yacc.c:1646 */ 7959 break; 7960 7955 7961 case 725: 7956 #line 275 3"parser.yy" /* yacc.c:1646 */7962 #line 2759 "parser.yy" /* yacc.c:1646 */ 7957 7963 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7958 #line 79 59"Parser/parser.cc" /* yacc.c:1646 */7964 #line 7965 "Parser/parser.cc" /* yacc.c:1646 */ 7959 7965 break; 7960 7966 7961 7967 case 726: 7962 #line 2755 "parser.yy" /* yacc.c:1646 */7963 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }7964 #line 7965 "Parser/parser.cc" /* yacc.c:1646 */7965 break;7966 7967 case 727:7968 #line 2757 "parser.yy" /* yacc.c:1646 */7969 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }7970 #line 7971 "Parser/parser.cc" /* yacc.c:1646 */7971 break;7972 7973 case 728:7974 #line 2759 "parser.yy" /* yacc.c:1646 */7975 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( (yyvsp[-2].decl) ); }7976 #line 7977 "Parser/parser.cc" /* yacc.c:1646 */7977 break;7978 7979 case 729:7980 7968 #line 2761 "parser.yy" /* yacc.c:1646 */ 7981 7969 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); } 7970 #line 7971 "Parser/parser.cc" /* yacc.c:1646 */ 7971 break; 7972 7973 case 727: 7974 #line 2763 "parser.yy" /* yacc.c:1646 */ 7975 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7976 #line 7977 "Parser/parser.cc" /* yacc.c:1646 */ 7977 break; 7978 7979 case 728: 7980 #line 2765 "parser.yy" /* yacc.c:1646 */ 7981 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( (yyvsp[-2].decl) ); } 7982 7982 #line 7983 "Parser/parser.cc" /* yacc.c:1646 */ 7983 7983 break; 7984 7984 7985 case 729: 7986 #line 2767 "parser.yy" /* yacc.c:1646 */ 7987 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); } 7988 #line 7989 "Parser/parser.cc" /* yacc.c:1646 */ 7989 break; 7990 7985 7991 case 730: 7986 #line 27 66"parser.yy" /* yacc.c:1646 */7992 #line 2772 "parser.yy" /* yacc.c:1646 */ 7987 7993 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[-3].decl) ); } 7988 #line 79 89"Parser/parser.cc" /* yacc.c:1646 */7994 #line 7995 "Parser/parser.cc" /* yacc.c:1646 */ 7989 7995 break; 7990 7996 7991 7997 case 731: 7992 #line 27 68"parser.yy" /* yacc.c:1646 */7998 #line 2774 "parser.yy" /* yacc.c:1646 */ 7993 7999 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), false ); } 7994 #line 7995"Parser/parser.cc" /* yacc.c:1646 */8000 #line 8001 "Parser/parser.cc" /* yacc.c:1646 */ 7995 8001 break; 7996 8002 7997 8003 case 732: 7998 #line 277 3"parser.yy" /* yacc.c:1646 */8004 #line 2779 "parser.yy" /* yacc.c:1646 */ 7999 8005 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), true ); } 8000 #line 800 1"Parser/parser.cc" /* yacc.c:1646 */8006 #line 8007 "Parser/parser.cc" /* yacc.c:1646 */ 8001 8007 break; 8002 8008 8003 8009 case 733: 8004 #line 27 75"parser.yy" /* yacc.c:1646 */8010 #line 2781 "parser.yy" /* yacc.c:1646 */ 8005 8011 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl)->addQualifiers( (yyvsp[-4].decl) ), true ); } 8006 #line 80 07"Parser/parser.cc" /* yacc.c:1646 */8012 #line 8013 "Parser/parser.cc" /* yacc.c:1646 */ 8007 8013 break; 8008 8014 8009 8015 case 735: 8010 #line 280 2"parser.yy" /* yacc.c:1646 */8016 #line 2808 "parser.yy" /* yacc.c:1646 */ 8011 8017 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 8012 #line 801 3"Parser/parser.cc" /* yacc.c:1646 */8018 #line 8019 "Parser/parser.cc" /* yacc.c:1646 */ 8013 8019 break; 8014 8020 8015 8021 case 739: 8016 #line 281 3"parser.yy" /* yacc.c:1646 */8022 #line 2819 "parser.yy" /* yacc.c:1646 */ 8017 8023 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8018 #line 80 19"Parser/parser.cc" /* yacc.c:1646 */8024 #line 8025 "Parser/parser.cc" /* yacc.c:1646 */ 8019 8025 break; 8020 8026 8021 8027 case 740: 8022 #line 28 15"parser.yy" /* yacc.c:1646 */8028 #line 2821 "parser.yy" /* yacc.c:1646 */ 8023 8029 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); } 8024 #line 80 25"Parser/parser.cc" /* yacc.c:1646 */8030 #line 8031 "Parser/parser.cc" /* yacc.c:1646 */ 8025 8031 break; 8026 8032 8027 8033 case 741: 8028 #line 28 17"parser.yy" /* yacc.c:1646 */8034 #line 2823 "parser.yy" /* yacc.c:1646 */ 8029 8035 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8030 #line 803 1"Parser/parser.cc" /* yacc.c:1646 */8036 #line 8037 "Parser/parser.cc" /* yacc.c:1646 */ 8031 8037 break; 8032 8038 8033 8039 case 742: 8034 #line 28 19"parser.yy" /* yacc.c:1646 */8040 #line 2825 "parser.yy" /* yacc.c:1646 */ 8035 8041 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); } 8036 #line 80 37"Parser/parser.cc" /* yacc.c:1646 */8042 #line 8043 "Parser/parser.cc" /* yacc.c:1646 */ 8037 8043 break; 8038 8044 8039 8045 case 743: 8040 #line 282 1"parser.yy" /* yacc.c:1646 */8046 #line 2827 "parser.yy" /* yacc.c:1646 */ 8041 8047 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8042 #line 804 3"Parser/parser.cc" /* yacc.c:1646 */8048 #line 8049 "Parser/parser.cc" /* yacc.c:1646 */ 8043 8049 break; 8044 8050 8045 8051 case 744: 8046 #line 282 3"parser.yy" /* yacc.c:1646 */8052 #line 2829 "parser.yy" /* yacc.c:1646 */ 8047 8053 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); } 8048 #line 80 49"Parser/parser.cc" /* yacc.c:1646 */8054 #line 8055 "Parser/parser.cc" /* yacc.c:1646 */ 8049 8055 break; 8050 8056 8051 8057 case 745: 8052 #line 2830 "parser.yy" /* yacc.c:1646 */8053 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }8054 #line 8055 "Parser/parser.cc" /* yacc.c:1646 */8055 break;8056 8057 case 746:8058 #line 2832 "parser.yy" /* yacc.c:1646 */8059 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }8060 #line 8061 "Parser/parser.cc" /* yacc.c:1646 */8061 break;8062 8063 case 747:8064 #line 2834 "parser.yy" /* yacc.c:1646 */8065 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); }8066 #line 8067 "Parser/parser.cc" /* yacc.c:1646 */8067 break;8068 8069 case 748:8070 8058 #line 2836 "parser.yy" /* yacc.c:1646 */ 8071 8059 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 8072 #line 80 73"Parser/parser.cc" /* yacc.c:1646 */8073 break; 8074 8075 case 74 9:8060 #line 8061 "Parser/parser.cc" /* yacc.c:1646 */ 8061 break; 8062 8063 case 746: 8076 8064 #line 2838 "parser.yy" /* yacc.c:1646 */ 8077 8065 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 8078 #line 80 79"Parser/parser.cc" /* yacc.c:1646 */8079 break; 8080 8081 case 7 50:8066 #line 8067 "Parser/parser.cc" /* yacc.c:1646 */ 8067 break; 8068 8069 case 747: 8082 8070 #line 2840 "parser.yy" /* yacc.c:1646 */ 8083 8071 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); } 8072 #line 8073 "Parser/parser.cc" /* yacc.c:1646 */ 8073 break; 8074 8075 case 748: 8076 #line 2842 "parser.yy" /* yacc.c:1646 */ 8077 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 8078 #line 8079 "Parser/parser.cc" /* yacc.c:1646 */ 8079 break; 8080 8081 case 749: 8082 #line 2844 "parser.yy" /* yacc.c:1646 */ 8083 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 8084 8084 #line 8085 "Parser/parser.cc" /* yacc.c:1646 */ 8085 8085 break; 8086 8086 8087 case 750: 8088 #line 2846 "parser.yy" /* yacc.c:1646 */ 8089 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); } 8090 #line 8091 "Parser/parser.cc" /* yacc.c:1646 */ 8091 break; 8092 8087 8093 case 751: 8088 #line 28 45"parser.yy" /* yacc.c:1646 */8094 #line 2851 "parser.yy" /* yacc.c:1646 */ 8089 8095 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-2].decl) ); } 8090 #line 809 1"Parser/parser.cc" /* yacc.c:1646 */8096 #line 8097 "Parser/parser.cc" /* yacc.c:1646 */ 8091 8097 break; 8092 8098 8093 8099 case 752: 8094 #line 2852 "parser.yy" /* yacc.c:1646 */ 8095 { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[-5].decl), (yyvsp[-2].decl), nullptr ); } 8096 #line 8097 "Parser/parser.cc" /* yacc.c:1646 */ 8097 break; 8098 8099 case 753: 8100 #line 2854 "parser.yy" /* yacc.c:1646 */ 8100 #line 2858 "parser.yy" /* yacc.c:1646 */ 8101 8101 { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[-5].decl), (yyvsp[-2].decl), nullptr ); } 8102 8102 #line 8103 "Parser/parser.cc" /* yacc.c:1646 */ 8103 8103 break; 8104 8104 8105 case 753: 8106 #line 2860 "parser.yy" /* yacc.c:1646 */ 8107 { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[-5].decl), (yyvsp[-2].decl), nullptr ); } 8108 #line 8109 "Parser/parser.cc" /* yacc.c:1646 */ 8109 break; 8110 8105 8111 case 756: 8106 #line 28 78"parser.yy" /* yacc.c:1646 */8112 #line 2884 "parser.yy" /* yacc.c:1646 */ 8107 8113 { (yyval.en) = 0; } 8108 #line 81 09"Parser/parser.cc" /* yacc.c:1646 */8114 #line 8115 "Parser/parser.cc" /* yacc.c:1646 */ 8109 8115 break; 8110 8116 8111 8117 case 757: 8112 #line 288 0"parser.yy" /* yacc.c:1646 */8118 #line 2886 "parser.yy" /* yacc.c:1646 */ 8113 8119 { (yyval.en) = (yyvsp[0].en); } 8114 #line 81 15"Parser/parser.cc" /* yacc.c:1646 */8115 break; 8116 8117 8118 #line 81 19"Parser/parser.cc" /* yacc.c:1646 */8120 #line 8121 "Parser/parser.cc" /* yacc.c:1646 */ 8121 break; 8122 8123 8124 #line 8125 "Parser/parser.cc" /* yacc.c:1646 */ 8119 8125 default: break; 8120 8126 } … … 8344 8350 return yyresult; 8345 8351 } 8346 #line 288 3"parser.yy" /* yacc.c:1906 */8352 #line 2889 "parser.yy" /* yacc.c:1906 */ 8347 8353 8348 8354 // ----end of grammar---- -
src/Parser/parser.yy
r148f7290 r4cb935e 362 362 { $$ = new ExpressionNode( build_varref( $1 ) ); } 363 363 | zero_one 364 { $$ = new ExpressionNode( build_ varref($1 ) ); }364 { $$ = new ExpressionNode( build_constantZeroOne( *$1 ) ); } 365 365 | tuple 366 366 | '(' comma_expression ')' … … 443 443 { $$ = new ExpressionNode( build_field_name_fraction_constants( build_field_name_FLOATINGconstant( *$1 ), $2 ) ); } 444 444 | no_attr_identifier fraction_constants 445 { $$ = new ExpressionNode( build_field_name_fraction_constants( build_varref( $1 ), $2 ) ); } 445 { 446 if( (*$1) == "0" || (*$1) == "1" ) { 447 $$ = new ExpressionNode( build_field_name_fraction_constants( build_constantZeroOne( *$1 ), $2 ) ); 448 } else { 449 $$ = new ExpressionNode( build_field_name_fraction_constants( build_varref( $1 ), $2 ) ); 450 } 451 } 446 452 ; 447 453 -
src/Parser/parseutility.cc
r148f7290 r4cb935e 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // parseutility.cc -- 7 // parseutility.cc -- 8 8 // 9 9 // Author : Rodolfo G. Esteves … … 12 12 // Last Modified On : Sun Aug 14 23:45:03 2016 13 13 // Update Count : 3 14 // 14 // 15 15 16 16 #include "parseutility.h" … … 26 26 UntypedExpr *comparison = new UntypedExpr( new NameExpr( "?!=?" ) ); 27 27 comparison->get_args().push_back( orig ); 28 comparison->get_args().push_back( new NameExpr( "0") );28 comparison->get_args().push_back( new ConstantExpr( Constant( new ZeroType( emptyQualifiers ), "0" ) ) ); 29 29 return new CastExpr( comparison, new BasicType( Type::Qualifiers(), BasicType::SignedInt ) ); 30 30 } -
src/ResolvExpr/CommonType.cc
r148f7290 r4cb935e 243 243 result->get_qualifiers() += zeroType->get_qualifiers(); 244 244 } 245 } else if ( widenSecond && dynamic_cast< OneType* >( type2 ) ) { 246 result = new BasicType( zeroType->get_qualifiers(), BasicType::SignedInt ); 247 result->get_qualifiers() += type2->get_qualifiers(); 245 248 } 246 249 } … … 254 257 result->get_qualifiers() += oneType->get_qualifiers(); 255 258 } 259 } else if ( widenSecond && dynamic_cast< ZeroType* >( type2 ) ) { 260 result = new BasicType( oneType->get_qualifiers(), BasicType::SignedInt ); 261 result->get_qualifiers() += type2->get_qualifiers(); 256 262 } 257 263 } -
src/SymTab/Autogen.h
r148f7290 r4cb935e 88 88 if ( forward ) { 89 89 // generate: for ( int i = 0; i < 0; ++i ) 90 begin = new NameExpr( "0");90 begin = new ConstantExpr( Constant( new ZeroType( emptyQualifiers ), "0" ) ); 91 91 end = array->get_dimension()->clone(); 92 92 cmp = new NameExpr( "?<?" ); … … 96 96 begin = new UntypedExpr( new NameExpr( "?-?" ) ); 97 97 ((UntypedExpr*)begin)->get_args().push_back( array->get_dimension()->clone() ); 98 ((UntypedExpr*)begin)->get_args().push_back( new NameExpr( "1") );99 end = new NameExpr( "0");98 ((UntypedExpr*)begin)->get_args().push_back( new ConstantExpr( Constant( new OneType( emptyQualifiers ), "1" ) ) ); 99 end = new ConstantExpr( Constant( new ZeroType( emptyQualifiers ), "0" ) ); 100 100 cmp = new NameExpr( "?>=?" ); 101 101 update = new NameExpr( "--?" ); … … 175 175 } // namespace SymTab 176 176 #endif // AUTOGEN_H 177 -
src/SynTree/Expression.cc
r148f7290 r4cb935e 422 422 } 423 423 424 NameExpr::NameExpr( std::string _name, Expression *_aname ) : Expression( _aname ), name(_name) {} 424 NameExpr::NameExpr( std::string _name, Expression *_aname ) : Expression( _aname ), name(_name) { 425 assertf(_name != "0", "Zero is not a valid name\n"); 426 assertf(_name != "1", "One is not a valid name\n"); 427 } 425 428 426 429 NameExpr::NameExpr( const NameExpr &other ) : Expression( other ), name( other.name ) { -
src/SynTree/Type.h
r148f7290 r4cb935e 81 81 ForallList forall; 82 82 }; 83 84 extern Type::Qualifiers emptyQualifiers; // no qualifiers on constants 83 85 84 86 class VoidType : public Type { -
src/libcfa/prelude.cf
r148f7290 r4cb935e 22 22 // ------------------------------------------------------------ 23 23 24 const int 0, 1; 25 26 forall ( dtype DT ) const DT * const 0; 27 forall ( ftype FT ) FT * const 0; 24 //We have none 28 25 29 26 // ------------------------------------------------------------ … … 249 246 // ------------------------------------------------------------ 250 247 251 signed int ?==?( _Bool, _Bool ), ?!=?( _Bool, _Bool );252 signed int ?==?( signed int, signed int ), ?!=?( signed int, signed int );253 signed int ?==?( unsigned int, unsigned int ), ?!=?( unsigned int, unsigned int );254 signed int ?==?( signed long int, signed long int ), ?!=?( signed long int, signed long int );255 signed int ?==?( unsigned long int, unsigned long int ), ?!=?( unsigned long int, unsigned long int );248 signed int ?==?( _Bool, _Bool ), ?!=?( _Bool, _Bool ); 249 signed int ?==?( signed int, signed int ), ?!=?( signed int, signed int ); 250 signed int ?==?( unsigned int, unsigned int ), ?!=?( unsigned int, unsigned int ); 251 signed int ?==?( signed long int, signed long int ), ?!=?( signed long int, signed long int ); 252 signed int ?==?( unsigned long int, unsigned long int ), ?!=?( unsigned long int, unsigned long int ); 256 253 signed int ?==?( signed long long int, long long int signed), ?!=?( signed long long int, signed long long int ); 257 254 signed int ?==?( unsigned long long int, unsigned long long int ), ?!=?( unsigned long long int, unsigned long long int ); 258 signed int ?==?( float, float ), ?!=?( float, float );259 signed int ?==?( double, double ), ?!=?( double, double );260 signed int ?==?( long double, long double ), ?!=?( long double, long double );261 signed int ?==?( float _Complex, float _Complex ), ?!=?( float _Complex, float _Complex );262 signed int ?==?( double _Complex, double _Complex ), ?!=?( double _Complex, double _Complex );255 signed int ?==?( float, float ), ?!=?( float, float ); 256 signed int ?==?( double, double ), ?!=?( double, double ); 257 signed int ?==?( long double, long double ), ?!=?( long double, long double ); 258 signed int ?==?( float _Complex, float _Complex ), ?!=?( float _Complex, float _Complex ); 259 signed int ?==?( double _Complex, double _Complex ), ?!=?( double _Complex, double _Complex ); 263 260 signed int ?==?( long double _Complex, long double _Complex ), ?!=?( long double _Complex, long double _Complex ); 261 signed int ?==?( zero_t, zero_t ), ?!=?( zero_t, zero_t ); 262 signed int ?==?( one_t, one_t ), ?!=?( one_t, one_t ); 264 263 265 264 forall( dtype DT ) signed int ?==?( DT *, DT * ); … … 279 278 forall( dtype DT ) signed int ?!=?( const volatile void *, const volatile DT * ); 280 279 281 forall( dtype DT ) signed int ?==?( const volatile DT *, forall( dtype DT2 )const DT2 * );282 forall( dtype DT ) signed int ?==?( forall( dtype DT2 )const DT2 *, const volatile DT * );283 forall( ftype FT ) signed int ?==?( FT *, forall( ftype FT2 )FT2 * );284 forall( ftype FT ) signed int ?==?( forall( ftype FT2 )FT2 *, FT * );285 forall( dtype DT ) signed int ?!=?( const volatile DT *, forall( dtype DT2 )const DT2 * );286 forall( dtype DT ) signed int ?!=?( forall( dtype DT2 )const DT2 *, const volatile DT * );287 forall( ftype FT ) signed int ?!=?( FT *, forall( ftype FT2 )FT2 * );288 forall( ftype FT ) signed int ?!=?( forall( ftype FT2 )FT2 *, FT * );280 // forall( dtype DT ) signed int ?==?( const volatile DT *, forall( dtype DT2 )const DT2 * ); 281 // forall( dtype DT ) signed int ?==?( forall( dtype DT2 )const DT2 *, const volatile DT * ); 282 // forall( ftype FT ) signed int ?==?( FT *, forall( ftype FT2 )FT2 * ); 283 // forall( ftype FT ) signed int ?==?( forall( ftype FT2 )FT2 *, FT * ); 284 // forall( dtype DT ) signed int ?!=?( const volatile DT *, forall( dtype DT2 )const DT2 * ); 285 // forall( dtype DT ) signed int ?!=?( forall( dtype DT2 )const DT2 *, const volatile DT * ); 286 // forall( ftype FT ) signed int ?!=?( FT *, forall( ftype FT2 )FT2 * ); 287 // forall( ftype FT ) signed int ?!=?( forall( ftype FT2 )FT2 *, FT * ); 289 288 290 289 // ------------------------------------------------------------ … … 458 457 signed long long int ?=?( signed long long int *, signed long long int ), ?=?( volatile signed long long int *, signed long long int ); 459 458 unsigned long long int ?=?( unsigned long long int *, unsigned long long int ), ?=?( volatile unsigned long long int *, unsigned long long int ); 459 zero_t ?=?( zero_t *, zero_t ); 460 one_t ?=?( one_t *, one_t ); 461 460 462 461 463 _Bool ?*=?( _Bool *, _Bool ), ?*=?( volatile _Bool *, _Bool ); … … 654 656 void ?{}( double _Complex * ); 655 657 void ?{}( long double _Complex * ); 658 void ?{}( zero_t * ); 659 void ?{}( one_t * ); 656 660 657 661 // copy ctor … … 674 678 void ?{}( double _Complex *, double _Complex); 675 679 void ?{}( long double _Complex *, long double _Complex); 680 void ?{}( zero_t *, zero_t ); 681 void ?{}( one_t *, one_t ); 676 682 677 683 // dtor … … 694 700 void ^?{}( double _Complex * ); 695 701 void ^?{}( long double _Complex * ); 702 void ^?{}( zero_t * ); 703 void ^?{}( one_t * ); 696 704 697 705 // // default ctor -
src/tests/.expect/32/declarationSpecifier.txt
r148f7290 r4cb935e 623 62