Changes in src/Parser/parser.cc [bf32bb8:9059213]
- File:
-
- 1 edited
-
src/Parser/parser.cc (modified) (257 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/parser.cc
rbf32bb8 r9059213 1023 1023 static const yytype_uint16 yyrline[] = 1024 1024 { 1025 0, 30 1, 301, 305, 312, 313, 314, 318, 319, 320,1026 32 4, 325, 329, 330, 334, 335, 339, 343, 344, 355,1027 35 7, 359, 361, 366, 367, 373, 377, 379, 381, 383,1028 38 5, 387, 389, 391, 393, 402, 403, 409, 410, 414,1029 41 5, 419, 422, 424, 426, 428, 433, 435, 440, 443,1030 44 5, 447, 452, 465, 467, 469, 471, 473, 475, 477,1031 47 9, 481, 483, 485, 492, 493, 499, 500, 501, 502,1032 50 6, 507, 509, 514, 515, 517, 519, 524, 525, 527,1033 53 2, 533, 535, 540, 541, 543, 545, 547, 552, 553,1034 55 5, 560, 561, 566, 567, 572, 573, 578, 579, 584,1035 58 5, 590, 591, 594, 596, 601, 606, 607, 609, 615,1036 61 6, 620, 621, 622, 623, 624, 625, 626, 627, 628,1037 62 9, 630, 631, 637, 639, 641, 643, 648, 649, 654,1038 65 5, 661, 662, 668, 669, 670, 671, 672, 673, 674,1039 67 5, 676, 686, 693, 695, 705, 706, 711, 713, 719,1040 7 21, 725, 726, 731, 736, 739, 741, 743, 753, 755,1041 76 6, 767, 769, 773, 775, 779, 780, 785, 786, 790,1042 79 5, 796, 800, 802, 808, 809, 813, 815, 817, 819,1043 82 5, 826, 830, 832, 837, 839, 841, 846, 848, 853,1044 85 5, 859, 862, 866, 869, 873, 875, 877, 879, 884,1045 88 6, 888, 893, 895, 897, 899, 901, 906, 908, 910,1046 91 2, 917, 929, 930, 935, 937, 942, 946, 948, 950,1047 95 2, 954, 960, 961, 967, 968, 972, 973, 978, 980,1048 98 6, 987, 989, 994, 999, 1009, 1011, 1015, 1016, 1021,1049 102 3, 1027, 1028, 1032, 1034, 1038, 1039, 1043, 1044, 1048,1050 104 9, 1064, 1065, 1066, 1067, 1068, 1072, 1077, 1084, 1094,1051 109 9, 1104, 1112, 1117, 1122, 1127, 1132, 1140, 1162, 1167,1052 117 4, 1176, 1183, 1188, 1193, 1204, 1209, 1214, 1219, 1224,1053 123 3, 1238, 1246, 1247, 1248, 1249, 1255, 1260, 1268, 1269,1054 12 70, 1271, 1275, 1276, 1277, 1278, 1283, 1284, 1293, 1294,1055 129 9, 1300, 1305, 1307, 1309, 1311, 1313, 1316, 1315, 1327,1056 132 8, 1330, 1340, 1341, 1346, 1348, 1350, 1352, 1354, 1357,1057 135 9, 1362, 1367, 1369, 1371, 1373, 1375, 1377, 1379, 1381,1058 138 3, 1385, 1387, 1389, 1391, 1397, 1398, 1400, 1402, 1404,1059 140 9, 1410, 1416, 1417, 1419, 1421, 1426, 1428, 1430, 1432,1060 143 7, 1438, 1440, 1442, 1447, 1448, 1450, 1455, 1456, 1458,1061 14 60, 1465, 1467, 1469, 1474, 1475, 1479, 1481, 1487, 1486,1062 14 90, 1492, 1497, 1499, 1505, 1506, 1511, 1512, 1514, 1515,1063 152 4, 1525, 1527, 1529, 1534, 1536, 1542, 1543, 1545, 1548,1064 15 51, 1556, 1557, 1562, 1567, 1571, 1573, 1579, 1578, 1585,1065 158 7, 1593, 1594, 1602, 1603, 1607, 1608, 1609, 1611, 1613,1066 16 20, 1621, 1623, 1625, 1630, 1631, 1637, 1638, 1642, 1643,1067 164 8, 1649, 1650, 1652, 1660, 1661, 1663, 1666, 1668, 1672,1068 167 3, 1674, 1676, 1678, 1682, 1687, 1695, 1696, 1705, 1707,1069 171 2, 1713, 1714, 1718, 1719, 1720, 1724, 1725, 1726, 1730,1070 17 31, 1732, 1737, 1738, 1739, 1740, 1746, 1747, 1749, 1754,1071 175 5, 1760, 1761, 1762, 1763, 1764, 1779, 1780, 1785, 1786,1072 179 2, 1794, 1797, 1799, 1801, 1824, 1825, 1827, 1829, 1834,1073 183 5, 1837, 1842, 1847, 1848, 1854, 1853, 1857, 1861, 1863,1074 186 5, 1871, 1872, 1877, 1882, 1884, 1889, 1891, 1892, 1894,1075 189 9, 1901, 1903, 1908, 1910, 1915, 1920, 1928, 1934, 1933,1076 194 7, 1948, 1953, 1954, 1958, 1963, 1968, 1976, 1981, 1992,1077 199 3, 1998, 1999, 2005, 2006, 2010, 2011, 2012, 2015, 2014,1078 202 5, 2034, 2040, 2046, 2055, 2061, 2067, 2073, 2079, 2087,1079 209 3, 2101, 2107, 2116, 2117, 2118, 2122, 2126, 2128, 2133,1080 213 4, 2138, 2139, 2144, 2150, 2151, 2154, 2156, 2157, 2161,1081 216 2, 2163, 2164, 2198, 2200, 2201, 2203, 2208, 2213, 2218,1082 22 20, 2222, 2227, 2229, 2231, 2233, 2238, 2240, 2249, 2251,1083 225 2, 2257, 2259, 2261, 2266, 2268, 2270, 2275, 2277, 2279,1084 228 8, 2289, 2290, 2294, 2296, 2298, 2303, 2305, 2307, 2312,1085 231 4, 2316, 2331, 2333, 2334, 2336, 2341, 2342, 2347, 2349,1086 23 51, 2356, 2358, 2360, 2362, 2367, 2369, 2371, 2381, 2383,1087 238 4, 2386, 2391, 2393, 2395, 2400, 2402, 2404, 2406, 2411,1088 241 3, 2415, 2446, 2448, 2449, 2451, 2456, 2461, 2469, 2471,1089 247 3, 2478, 2480, 2485, 2487, 2501, 2502, 2504, 2509, 2511,1090 251 3, 2515, 2517, 2522, 2523, 2525, 2527, 2532, 2534, 2536,1091 254 2, 2544, 2546, 2550, 2552, 2554, 2556, 2570, 2571, 2573,1092 257 8, 2580, 2582, 2584, 2586, 2591, 2592, 2594, 2596, 2601,1093 260 3, 2605, 2611, 2612, 2614, 2623, 2626, 2628, 2631, 2633,1094 263 5, 2648, 2649, 2651, 2656, 2658, 2660, 2662, 2664, 2669,1095 26 70, 2672, 2674, 2679, 2681, 2689, 2690, 2691, 2696, 2697,1096 2 701, 2703, 2705, 2707, 2709, 2711, 2718, 2720, 2722, 2724,1097 272 6, 2728, 2730, 2732, 2734, 2736, 2741, 2743, 2745, 2750,1098 277 6, 2777, 2779, 2783, 2784, 2788, 2790, 2792, 2794, 2796,1099 279 8, 2805, 2807, 2809, 2811, 2813, 2815, 2820, 2825, 2827,1100 282 9, 2847, 2849, 2854, 28551025 0, 302, 302, 306, 313, 314, 315, 319, 320, 321, 1026 325, 326, 330, 331, 335, 336, 340, 344, 345, 356, 1027 358, 360, 362, 367, 368, 374, 378, 380, 381, 382, 1028 384, 385, 387, 389, 391, 400, 401, 407, 408, 412, 1029 413, 417, 421, 423, 425, 427, 432, 434, 438, 441, 1030 443, 445, 450, 463, 465, 467, 469, 471, 473, 475, 1031 477, 479, 481, 483, 490, 491, 497, 498, 499, 500, 1032 504, 505, 507, 512, 513, 515, 517, 522, 523, 525, 1033 530, 531, 533, 538, 539, 541, 543, 545, 550, 551, 1034 553, 558, 559, 564, 565, 570, 571, 576, 577, 582, 1035 583, 588, 589, 592, 594, 599, 604, 605, 607, 613, 1036 614, 618, 619, 620, 621, 622, 623, 624, 625, 626, 1037 627, 628, 629, 635, 637, 639, 641, 646, 647, 652, 1038 653, 659, 660, 666, 667, 668, 669, 670, 671, 672, 1039 673, 674, 684, 691, 693, 703, 704, 709, 711, 717, 1040 719, 723, 724, 729, 734, 737, 739, 741, 751, 753, 1041 764, 765, 767, 771, 773, 777, 778, 783, 784, 788, 1042 793, 794, 798, 800, 806, 807, 811, 813, 815, 817, 1043 823, 824, 828, 830, 835, 837, 839, 844, 846, 851, 1044 853, 857, 860, 864, 867, 871, 873, 875, 877, 882, 1045 884, 886, 891, 893, 895, 897, 899, 904, 906, 908, 1046 910, 915, 927, 928, 933, 935, 940, 944, 946, 948, 1047 950, 952, 958, 959, 965, 966, 970, 971, 976, 978, 1048 984, 985, 987, 992, 997, 1007, 1009, 1013, 1014, 1019, 1049 1021, 1025, 1026, 1030, 1032, 1036, 1037, 1041, 1042, 1046, 1050 1047, 1062, 1063, 1064, 1065, 1066, 1070, 1075, 1082, 1092, 1051 1097, 1102, 1110, 1115, 1120, 1125, 1130, 1138, 1160, 1165, 1052 1172, 1174, 1181, 1186, 1191, 1202, 1207, 1212, 1217, 1222, 1053 1231, 1236, 1244, 1245, 1246, 1247, 1253, 1258, 1266, 1267, 1054 1268, 1269, 1273, 1274, 1275, 1276, 1281, 1282, 1291, 1292, 1055 1297, 1298, 1303, 1305, 1307, 1309, 1311, 1314, 1313, 1325, 1056 1326, 1328, 1338, 1339, 1344, 1346, 1348, 1350, 1352, 1355, 1057 1357, 1360, 1365, 1367, 1369, 1371, 1373, 1375, 1377, 1379, 1058 1381, 1383, 1385, 1387, 1389, 1395, 1396, 1398, 1400, 1402, 1059 1407, 1408, 1414, 1415, 1417, 1419, 1424, 1426, 1428, 1430, 1060 1435, 1436, 1438, 1440, 1445, 1446, 1448, 1453, 1454, 1456, 1061 1458, 1463, 1465, 1467, 1472, 1473, 1477, 1479, 1485, 1484, 1062 1488, 1490, 1495, 1497, 1503, 1504, 1509, 1510, 1512, 1513, 1063 1522, 1523, 1525, 1527, 1532, 1534, 1540, 1541, 1543, 1546, 1064 1549, 1554, 1555, 1560, 1565, 1569, 1571, 1577, 1576, 1583, 1065 1585, 1591, 1592, 1600, 1601, 1605, 1606, 1607, 1609, 1611, 1066 1618, 1619, 1621, 1623, 1628, 1629, 1635, 1636, 1640, 1641, 1067 1646, 1647, 1648, 1650, 1658, 1659, 1661, 1664, 1666, 1670, 1068 1671, 1672, 1674, 1676, 1680, 1685, 1693, 1694, 1703, 1705, 1069 1710, 1711, 1712, 1716, 1717, 1718, 1722, 1723, 1724, 1728, 1070 1729, 1730, 1735, 1736, 1737, 1738, 1744, 1745, 1747, 1752, 1071 1753, 1758, 1759, 1760, 1761, 1762, 1777, 1778, 1783, 1784, 1072 1790, 1792, 1795, 1797, 1799, 1822, 1823, 1825, 1827, 1832, 1073 1833, 1835, 1840, 1845, 1846, 1852, 1851, 1855, 1859, 1861, 1074 1863, 1869, 1870, 1875, 1880, 1882, 1887, 1889, 1890, 1892, 1075 1897, 1899, 1901, 1906, 1908, 1913, 1918, 1926, 1932, 1931, 1076 1945, 1946, 1951, 1952, 1956, 1961, 1966, 1974, 1979, 1990, 1077 1991, 1996, 1997, 2003, 2004, 2008, 2009, 2010, 2013, 2012, 1078 2023, 2032, 2038, 2044, 2053, 2059, 2065, 2071, 2077, 2085, 1079 2091, 2099, 2105, 2114, 2115, 2116, 2120, 2124, 2126, 2131, 1080 2132, 2136, 2137, 2142, 2148, 2149, 2152, 2154, 2155, 2159, 1081 2160, 2161, 2162, 2196, 2198, 2199, 2201, 2206, 2211, 2216, 1082 2218, 2220, 2225, 2227, 2229, 2231, 2236, 2238, 2247, 2249, 1083 2250, 2255, 2257, 2259, 2264, 2266, 2268, 2273, 2275, 2277, 1084 2286, 2287, 2288, 2292, 2294, 2296, 2301, 2303, 2305, 2310, 1085 2312, 2314, 2329, 2331, 2332, 2334, 2339, 2340, 2345, 2347, 1086 2349, 2354, 2356, 2358, 2360, 2365, 2367, 2369, 2379, 2381, 1087 2382, 2384, 2389, 2391, 2393, 2398, 2400, 2402, 2404, 2409, 1088 2411, 2413, 2444, 2446, 2447, 2449, 2454, 2459, 2467, 2469, 1089 2471, 2476, 2478, 2483, 2485, 2499, 2500, 2502, 2507, 2509, 1090 2511, 2513, 2515, 2520, 2521, 2523, 2525, 2530, 2532, 2534, 1091 2540, 2542, 2544, 2548, 2550, 2552, 2554, 2568, 2569, 2571, 1092 2576, 2578, 2580, 2582, 2584, 2589, 2590, 2592, 2594, 2599, 1093 2601, 2603, 2609, 2610, 2612, 2621, 2624, 2626, 2629, 2631, 1094 2633, 2646, 2647, 2649, 2654, 2656, 2658, 2660, 2662, 2667, 1095 2668, 2670, 2672, 2677, 2679, 2687, 2688, 2689, 2694, 2695, 1096 2699, 2701, 2703, 2705, 2707, 2709, 2716, 2718, 2720, 2722, 1097 2724, 2727, 2729, 2731, 2733, 2735, 2740, 2742, 2744, 2749, 1098 2775, 2776, 2778, 2782, 2783, 2787, 2789, 2791, 2793, 2795, 1099 2797, 2804, 2806, 2808, 2810, 2812, 2814, 2819, 2824, 2826, 1100 2828, 2846, 2848, 2853, 2854 1101 1101 }; 1102 1102 #endif … … 4977 4977 4978 4978 /* Line 1806 of yacc.c */ 4979 #line 30 1"parser.yy"4979 #line 302 "parser.yy" 4980 4980 { typedefTable.enterScope(); } 4981 4981 break; … … 4984 4984 4985 4985 /* Line 1806 of yacc.c */ 4986 #line 30 5"parser.yy"4986 #line 306 "parser.yy" 4987 4987 { typedefTable.leaveScope(); } 4988 4988 break; … … 4991 4991 4992 4992 /* Line 1806 of yacc.c */ 4993 #line 31 2"parser.yy"4993 #line 313 "parser.yy" 4994 4994 { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); } 4995 4995 break; … … 4998 4998 4999 4999 /* Line 1806 of yacc.c */ 5000 #line 31 3"parser.yy"5000 #line 314 "parser.yy" 5001 5001 { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); } 5002 5002 break; … … 5005 5005 5006 5006 /* Line 1806 of yacc.c */ 5007 #line 31 4"parser.yy"5007 #line 315 "parser.yy" 5008 5008 { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[(1) - (1)].tok) ) ); } 5009 5009 break; … … 5012 5012 5013 5013 /* Line 1806 of yacc.c */ 5014 #line 3 39"parser.yy"5014 #line 340 "parser.yy" 5015 5015 { (yyval.constant) = build_constantStr( *(yyvsp[(1) - (1)].str) ); } 5016 5016 break; … … 5019 5019 5020 5020 /* Line 1806 of yacc.c */ 5021 #line 34 3"parser.yy"5021 #line 344 "parser.yy" 5022 5022 { (yyval.str) = (yyvsp[(1) - (1)].tok); } 5023 5023 break; … … 5026 5026 5027 5027 /* Line 1806 of yacc.c */ 5028 #line 34 5"parser.yy"5028 #line 346 "parser.yy" 5029 5029 { 5030 5030 appendStr( (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].tok) ); // append 2nd juxtaposed string to 1st … … 5037 5037 5038 5038 /* Line 1806 of yacc.c */ 5039 #line 35 6"parser.yy"5039 #line 357 "parser.yy" 5040 5040 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); } 5041 5041 break; … … 5044 5044 5045 5045 /* Line 1806 of yacc.c */ 5046 #line 35 8"parser.yy"5046 #line 359 "parser.yy" 5047 5047 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); } 5048 5048 break; … … 5051 5051 5052 5052 /* Line 1806 of yacc.c */ 5053 #line 36 0"parser.yy"5053 #line 361 "parser.yy" 5054 5054 { (yyval.en) = (yyvsp[(2) - (3)].en); } 5055 5055 break; … … 5058 5058 5059 5059 /* Line 1806 of yacc.c */ 5060 #line 36 2"parser.yy"5060 #line 363 "parser.yy" 5061 5061 { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[(2) - (3)].sn) ) ); } 5062 5062 break; … … 5065 5065 5066 5066 /* Line 1806 of yacc.c */ 5067 #line 37 2"parser.yy"5067 #line 373 "parser.yy" 5068 5068 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ) ); } 5069 5069 break; … … 5072 5072 5073 5073 /* Line 1806 of yacc.c */ 5074 #line 37 4"parser.yy"5074 #line 375 "parser.yy" 5075 5075 { (yyval.en) = new ExpressionNode( build_func( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ) ); } 5076 5076 break; … … 5079 5079 5080 5080 /* Line 1806 of yacc.c */ 5081 #line 37 8"parser.yy"5081 #line 379 "parser.yy" 5082 5082 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); } 5083 5083 break; 5084 5084 5085 case 27:5086 5087 /* Line 1806 of yacc.c */5088 #line 380 "parser.yy"5089 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); }5090 break;5091 5092 case 28:5093 5094 /* Line 1806 of yacc.c */5095 #line 382 "parser.yy"5096 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), build_constantInteger( *(yyvsp[(3) - (3)].tok) ) ) ); }5097 break;5098 5099 5085 case 29: 5100 5086 5101 5087 /* Line 1806 of yacc.c */ 5102 #line 38 4"parser.yy"5088 #line 383 "parser.yy" 5103 5089 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); } 5104 5090 break; 5105 5091 5106 case 3 0:5092 case 31: 5107 5093 5108 5094 /* Line 1806 of yacc.c */ 5109 5095 #line 386 "parser.yy" 5110 { (yyval.en) = new ExpressionNode( build_ pfieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en)) ) ); }5111 break; 5112 5113 case 3 1:5096 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[(1) - (2)].en) ) ); } 5097 break; 5098 5099 case 32: 5114 5100 5115 5101 /* Line 1806 of yacc.c */ 5116 5102 #line 388 "parser.yy" 5117 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds:: IncrPost, (yyvsp[(1) - (2)].en) ) ); }5118 break; 5119 5120 case 3 2:5103 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[(1) - (2)].en) ) ); } 5104 break; 5105 5106 case 33: 5121 5107 5122 5108 /* Line 1806 of yacc.c */ 5123 5109 #line 390 "parser.yy" 5124 { (yyval.en) = new ExpressionNode( build_ unary_ptr( OperKinds::DecrPost, (yyvsp[(1) - (2)].en) ) ); }5125 break; 5126 5127 case 3 3:5110 { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ) ); } 5111 break; 5112 5113 case 34: 5128 5114 5129 5115 /* Line 1806 of yacc.c */ 5130 5116 #line 392 "parser.yy" 5131 { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ) ); }5132 break;5133 5134 case 34:5135 5136 /* Line 1806 of yacc.c */5137 #line 394 "parser.yy"5138 5117 { 5139 5118 Token fn; … … 5146 5125 5147 5126 /* Line 1806 of yacc.c */ 5148 #line 40 4"parser.yy"5127 #line 402 "parser.yy" 5149 5128 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); } 5150 5129 break; … … 5153 5132 5154 5133 /* Line 1806 of yacc.c */ 5155 #line 40 9"parser.yy"5134 #line 407 "parser.yy" 5156 5135 { (yyval.en) = 0; } 5157 5136 break; … … 5160 5139 5161 5140 /* Line 1806 of yacc.c */ 5162 #line 41 5"parser.yy"5141 #line 413 "parser.yy" 5163 5142 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 5164 5143 break; 5165 5144 5145 case 41: 5146 5147 /* Line 1806 of yacc.c */ 5148 #line 420 "parser.yy" 5149 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); } 5150 break; 5151 5166 5152 case 42: 5167 5153 5168 5154 /* Line 1806 of yacc.c */ 5169 #line 42 3"parser.yy"5170 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[( 1) - (3)].en), maybeMoveBuild<Expression>( (yyvsp[(3) - (3)].en) ) ) ); }5155 #line 422 "parser.yy" 5156 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); } 5171 5157 break; 5172 5158 … … 5174 5160 5175 5161 /* Line 1806 of yacc.c */ 5176 #line 42 5"parser.yy"5177 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[( 1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); }5162 #line 424 "parser.yy" 5163 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); } 5178 5164 break; 5179 5165 … … 5181 5167 5182 5168 /* Line 1806 of yacc.c */ 5183 #line 42 7"parser.yy"5184 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[( 1) - (3)].en), maybeMoveBuild<Expression>( (yyvsp[(3) - (3)].en) ) ) ); }5169 #line 426 "parser.yy" 5170 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); } 5185 5171 break; 5186 5172 … … 5188 5174 5189 5175 /* Line 1806 of yacc.c */ 5190 #line 429 "parser.yy" 5191 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); } 5192 break; 5193 5194 case 46: 5195 5196 /* Line 1806 of yacc.c */ 5197 #line 434 "parser.yy" 5198 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); } 5199 break; 5200 5201 case 47: 5202 5203 /* Line 1806 of yacc.c */ 5204 #line 436 "parser.yy" 5205 { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); } 5176 #line 428 "parser.yy" 5177 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); } 5206 5178 break; 5207 5179 … … 5209 5181 5210 5182 /* Line 1806 of yacc.c */ 5183 #line 442 "parser.yy" 5184 { (yyval.en) = (yyvsp[(1) - (1)].en); } 5185 break; 5186 5187 case 50: 5188 5189 /* Line 1806 of yacc.c */ 5211 5190 #line 444 "parser.yy" 5212 { (yyval.en) = (yyvsp[(1) - (1)].en); }5213 break; 5214 5215 case 5 0:5191 { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); } 5192 break; 5193 5194 case 51: 5216 5195 5217 5196 /* Line 1806 of yacc.c */ 5218 5197 #line 446 "parser.yy" 5219 { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }5220 break;5221 5222 case 51:5223 5224 /* Line 1806 of yacc.c */5225 #line 448 "parser.yy"5226 5198 { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); } 5227 5199 break; … … 5230 5202 5231 5203 /* Line 1806 of yacc.c */ 5232 #line 45 3"parser.yy"5204 #line 451 "parser.yy" 5233 5205 { 5234 5206 switch ( (yyvsp[(1) - (2)].op) ) { … … 5248 5220 5249 5221 /* Line 1806 of yacc.c */ 5222 #line 464 "parser.yy" 5223 { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); } 5224 break; 5225 5226 case 54: 5227 5228 /* Line 1806 of yacc.c */ 5250 5229 #line 466 "parser.yy" 5251 { (yyval.en) = new ExpressionNode( build_unary_ val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); }5252 break; 5253 5254 case 5 4:5230 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); } 5231 break; 5232 5233 case 55: 5255 5234 5256 5235 /* Line 1806 of yacc.c */ 5257 5236 #line 468 "parser.yy" 5258 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds:: Incr, (yyvsp[(2) - (2)].en) ) ); }5259 break; 5260 5261 case 5 5:5237 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[(2) - (2)].en) ) ); } 5238 break; 5239 5240 case 56: 5262 5241 5263 5242 /* Line 1806 of yacc.c */ 5264 5243 #line 470 "parser.yy" 5265 { (yyval.en) = new ExpressionNode( build_ unary_ptr( OperKinds::Decr,(yyvsp[(2) - (2)].en) ) ); }5266 break; 5267 5268 case 5 6:5244 { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); } 5245 break; 5246 5247 case 57: 5269 5248 5270 5249 /* Line 1806 of yacc.c */ 5271 5250 #line 472 "parser.yy" 5272 { (yyval.en) = new ExpressionNode( build_sizeOf expr( (yyvsp[(2) - (2)].en) ) ); }5273 break; 5274 5275 case 5 7:5251 { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); } 5252 break; 5253 5254 case 58: 5276 5255 5277 5256 /* Line 1806 of yacc.c */ 5278 5257 #line 474 "parser.yy" 5279 { (yyval.en) = new ExpressionNode( build_ sizeOftype( (yyvsp[(3) - (4)].decl) ) ); }5280 break; 5281 5282 case 5 8:5258 { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); } 5259 break; 5260 5261 case 59: 5283 5262 5284 5263 /* Line 1806 of yacc.c */ 5285 5264 #line 476 "parser.yy" 5286 { (yyval.en) = new ExpressionNode( build_alignOf expr( (yyvsp[(2) - (2)].en) ) ); }5287 break; 5288 5289 case 59:5265 { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); } 5266 break; 5267 5268 case 60: 5290 5269 5291 5270 /* Line 1806 of yacc.c */ 5292 5271 #line 478 "parser.yy" 5293 { (yyval.en) = new ExpressionNode( build_ alignOftype( (yyvsp[(3) - (4)].decl) ) ); }5294 break; 5295 5296 case 6 0:5272 { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); } 5273 break; 5274 5275 case 61: 5297 5276 5298 5277 /* Line 1806 of yacc.c */ 5299 5278 #line 480 "parser.yy" 5300 { (yyval.en) = new ExpressionNode( build_ offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) )) ); }5301 break; 5302 5303 case 6 1:5279 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); } 5280 break; 5281 5282 case 62: 5304 5283 5305 5284 /* Line 1806 of yacc.c */ 5306 5285 #line 482 "parser.yy" 5307 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - ( 1)].tok) ), nullptr) ); }5308 break; 5309 5310 case 6 2:5286 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); } 5287 break; 5288 5289 case 63: 5311 5290 5312 5291 /* Line 1806 of yacc.c */ 5313 5292 #line 484 "parser.yy" 5314 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); }5315 break;5316 5317 case 63:5318 5319 /* Line 1806 of yacc.c */5320 #line 486 "parser.yy"5321 5293 { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); } 5322 5294 break; … … 5325 5297 5326 5298 /* Line 1806 of yacc.c */ 5327 #line 49 2"parser.yy"5299 #line 490 "parser.yy" 5328 5300 { (yyval.op) = OperKinds::PointTo; } 5329 5301 break; … … 5332 5304 5333 5305 /* Line 1806 of yacc.c */ 5334 #line 49 3"parser.yy"5306 #line 491 "parser.yy" 5335 5307 { (yyval.op) = OperKinds::AddressOf; } 5336 5308 break; … … 5339 5311 5340 5312 /* Line 1806 of yacc.c */ 5313 #line 497 "parser.yy" 5314 { (yyval.op) = OperKinds::UnPlus; } 5315 break; 5316 5317 case 67: 5318 5319 /* Line 1806 of yacc.c */ 5320 #line 498 "parser.yy" 5321 { (yyval.op) = OperKinds::UnMinus; } 5322 break; 5323 5324 case 68: 5325 5326 /* Line 1806 of yacc.c */ 5341 5327 #line 499 "parser.yy" 5342 { (yyval.op) = OperKinds:: UnPlus; }5343 break; 5344 5345 case 6 7:5328 { (yyval.op) = OperKinds::Neg; } 5329 break; 5330 5331 case 69: 5346 5332 5347 5333 /* Line 1806 of yacc.c */ 5348 5334 #line 500 "parser.yy" 5349 { (yyval.op) = OperKinds::UnMinus; }5350 break;5351 5352 case 68:5353 5354 /* Line 1806 of yacc.c */5355 #line 501 "parser.yy"5356 { (yyval.op) = OperKinds::Neg; }5357 break;5358 5359 case 69:5360 5361 /* Line 1806 of yacc.c */5362 #line 502 "parser.yy"5363 5335 { (yyval.op) = OperKinds::BitNeg; } 5364 5336 break; 5365 5337 5366 5338 case 71: 5339 5340 /* Line 1806 of yacc.c */ 5341 #line 506 "parser.yy" 5342 { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); } 5343 break; 5344 5345 case 72: 5367 5346 5368 5347 /* Line 1806 of yacc.c */ … … 5371 5350 break; 5372 5351 5373 case 72:5374 5375 /* Line 1806 of yacc.c */5376 #line 510 "parser.yy"5377 { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }5378 break;5379 5380 5352 case 74: 5381 5353 5382 5354 /* Line 1806 of yacc.c */ 5355 #line 514 "parser.yy" 5356 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5357 break; 5358 5359 case 75: 5360 5361 /* Line 1806 of yacc.c */ 5383 5362 #line 516 "parser.yy" 5384 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds:: Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5385 break; 5386 5387 case 7 5:5363 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5364 break; 5365 5366 case 76: 5388 5367 5389 5368 /* Line 1806 of yacc.c */ 5390 5369 #line 518 "parser.yy" 5391 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5392 break;5393 5394 case 76:5395 5396 /* Line 1806 of yacc.c */5397 #line 520 "parser.yy"5398 5370 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5399 5371 break; … … 5402 5374 5403 5375 /* Line 1806 of yacc.c */ 5376 #line 524 "parser.yy" 5377 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5378 break; 5379 5380 case 79: 5381 5382 /* Line 1806 of yacc.c */ 5404 5383 #line 526 "parser.yy" 5405 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5406 break;5407 5408 case 79:5409 5410 /* Line 1806 of yacc.c */5411 #line 528 "parser.yy"5412 5384 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5413 5385 break; … … 5416 5388 5417 5389 /* Line 1806 of yacc.c */ 5390 #line 532 "parser.yy" 5391 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5392 break; 5393 5394 case 82: 5395 5396 /* Line 1806 of yacc.c */ 5418 5397 #line 534 "parser.yy" 5419 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5420 break;5421 5422 case 82:5423 5424 /* Line 1806 of yacc.c */5425 #line 536 "parser.yy"5426 5398 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5427 5399 break; … … 5430 5402 5431 5403 /* Line 1806 of yacc.c */ 5404 #line 540 "parser.yy" 5405 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5406 break; 5407 5408 case 85: 5409 5410 /* Line 1806 of yacc.c */ 5432 5411 #line 542 "parser.yy" 5433 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds:: LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5434 break; 5435 5436 case 8 5:5412 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5413 break; 5414 5415 case 86: 5437 5416 5438 5417 /* Line 1806 of yacc.c */ 5439 5418 #line 544 "parser.yy" 5440 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds:: GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5441 break; 5442 5443 case 8 6:5419 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5420 break; 5421 5422 case 87: 5444 5423 5445 5424 /* Line 1806 of yacc.c */ 5446 5425 #line 546 "parser.yy" 5447 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5448 break;5449 5450 case 87:5451 5452 /* Line 1806 of yacc.c */5453 #line 548 "parser.yy"5454 5426 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5455 5427 break; … … 5458 5430 5459 5431 /* Line 1806 of yacc.c */ 5432 #line 552 "parser.yy" 5433 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5434 break; 5435 5436 case 90: 5437 5438 /* Line 1806 of yacc.c */ 5460 5439 #line 554 "parser.yy" 5461 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5462 break;5463 5464 case 90:5465 5466 /* Line 1806 of yacc.c */5467 #line 556 "parser.yy"5468 5440 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5469 5441 break; … … 5472 5444 5473 5445 /* Line 1806 of yacc.c */ 5474 #line 56 2"parser.yy"5446 #line 560 "parser.yy" 5475 5447 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5476 5448 break; … … 5479 5451 5480 5452 /* Line 1806 of yacc.c */ 5481 #line 56 8"parser.yy"5453 #line 566 "parser.yy" 5482 5454 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5483 5455 break; … … 5486 5458 5487 5459 /* Line 1806 of yacc.c */ 5488 #line 57 4"parser.yy"5460 #line 572 "parser.yy" 5489 5461 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5490 5462 break; … … 5493 5465 5494 5466 /* Line 1806 of yacc.c */ 5495 #line 5 80"parser.yy"5467 #line 578 "parser.yy" 5496 5468 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); } 5497 5469 break; … … 5500 5472 5501 5473 /* Line 1806 of yacc.c */ 5502 #line 58 6"parser.yy"5474 #line 584 "parser.yy" 5503 5475 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); } 5504 5476 break; … … 5507 5479 5508 5480 /* Line 1806 of yacc.c */ 5509 #line 59 2"parser.yy"5481 #line 590 "parser.yy" 5510 5482 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); } 5511 5483 break; … … 5514 5486 5515 5487 /* Line 1806 of yacc.c */ 5488 #line 593 "parser.yy" 5489 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); } 5490 break; 5491 5492 case 104: 5493 5494 /* Line 1806 of yacc.c */ 5516 5495 #line 595 "parser.yy" 5517 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); }5518 break;5519 5520 case 104:5521 5522 /* Line 1806 of yacc.c */5523 #line 597 "parser.yy"5524 5496 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); } 5525 5497 break; … … 5528 5500 5529 5501 /* Line 1806 of yacc.c */ 5502 #line 606 "parser.yy" 5503 { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5504 break; 5505 5506 case 108: 5507 5508 /* Line 1806 of yacc.c */ 5530 5509 #line 608 "parser.yy" 5531 { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5532 break;5533 5534 case 108:5535 5536 /* Line 1806 of yacc.c */5537 #line 610 "parser.yy"5538 5510 { (yyval.en) = ( (yyvsp[(2) - (2)].en) == 0 ) ? (yyvsp[(1) - (2)].en) : new ExpressionNode( build_binary_ptr( OperKinds::Assign, (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ) ); } 5539 5511 break; … … 5542 5514 5543 5515 /* Line 1806 of yacc.c */ 5544 #line 61 5"parser.yy"5516 #line 613 "parser.yy" 5545 5517 { (yyval.en) = nullptr; } 5546 5518 break; … … 5549 5521 5550 5522 /* Line 1806 of yacc.c */ 5523 #line 618 "parser.yy" 5524 { (yyval.op) = OperKinds::Assign; } 5525 break; 5526 5527 case 112: 5528 5529 /* Line 1806 of yacc.c */ 5530 #line 619 "parser.yy" 5531 { (yyval.op) = OperKinds::AtAssn; } 5532 break; 5533 5534 case 113: 5535 5536 /* Line 1806 of yacc.c */ 5551 5537 #line 620 "parser.yy" 5552 { (yyval.op) = OperKinds:: Assign; }5553 break; 5554 5555 case 11 2:5538 { (yyval.op) = OperKinds::MulAssn; } 5539 break; 5540 5541 case 114: 5556 5542 5557 5543 /* Line 1806 of yacc.c */ 5558 5544 #line 621 "parser.yy" 5559 { (yyval.op) = OperKinds:: AtAssn; }5560 break; 5561 5562 case 11 3:5545 { (yyval.op) = OperKinds::DivAssn; } 5546 break; 5547 5548 case 115: 5563 5549 5564 5550 /* Line 1806 of yacc.c */ 5565 5551 #line 622 "parser.yy" 5566 { (yyval.op) = OperKinds::M ulAssn; }5567 break; 5568 5569 case 11 4:5552 { (yyval.op) = OperKinds::ModAssn; } 5553 break; 5554 5555 case 116: 5570 5556 5571 5557 /* Line 1806 of yacc.c */ 5572 5558 #line 623 "parser.yy" 5573 { (yyval.op) = OperKinds:: DivAssn; }5574 break; 5575 5576 case 11 5:5559 { (yyval.op) = OperKinds::PlusAssn; } 5560 break; 5561 5562 case 117: 5577 5563 5578 5564 /* Line 1806 of yacc.c */ 5579 5565 #line 624 "parser.yy" 5580 { (yyval.op) = OperKinds::M odAssn; }5581 break; 5582 5583 case 11 6:5566 { (yyval.op) = OperKinds::MinusAssn; } 5567 break; 5568 5569 case 118: 5584 5570 5585 5571 /* Line 1806 of yacc.c */ 5586 5572 #line 625 "parser.yy" 5587 { (yyval.op) = OperKinds:: PlusAssn; }5588 break; 5589 5590 case 11 7:5573 { (yyval.op) = OperKinds::LSAssn; } 5574 break; 5575 5576 case 119: 5591 5577 5592 5578 /* Line 1806 of yacc.c */ 5593 5579 #line 626 "parser.yy" 5594 { (yyval.op) = OperKinds:: MinusAssn; }5595 break; 5596 5597 case 1 18:5580 { (yyval.op) = OperKinds::RSAssn; } 5581 break; 5582 5583 case 120: 5598 5584 5599 5585 /* Line 1806 of yacc.c */ 5600 5586 #line 627 "parser.yy" 5601 { (yyval.op) = OperKinds:: LSAssn; }5602 break; 5603 5604 case 1 19:5587 { (yyval.op) = OperKinds::AndAssn; } 5588 break; 5589 5590 case 121: 5605 5591 5606 5592 /* Line 1806 of yacc.c */ 5607 5593 #line 628 "parser.yy" 5608 { (yyval.op) = OperKinds:: RSAssn; }5609 break; 5610 5611 case 12 0:5594 { (yyval.op) = OperKinds::ERAssn; } 5595 break; 5596 5597 case 122: 5612 5598 5613 5599 /* Line 1806 of yacc.c */ 5614 5600 #line 629 "parser.yy" 5615 { (yyval.op) = OperKinds::AndAssn; }5616 break;5617 5618 case 121:5619 5620 /* Line 1806 of yacc.c */5621 #line 630 "parser.yy"5622 { (yyval.op) = OperKinds::ERAssn; }5623 break;5624 5625 case 122:5626 5627 /* Line 1806 of yacc.c */5628 #line 631 "parser.yy"5629 5601 { (yyval.op) = OperKinds::OrAssn; } 5630 5602 break; … … 5633 5605 5634 5606 /* Line 1806 of yacc.c */ 5607 #line 636 "parser.yy" 5608 { (yyval.en) = new ExpressionNode( build_tuple() ); } 5609 break; 5610 5611 case 124: 5612 5613 /* Line 1806 of yacc.c */ 5635 5614 #line 638 "parser.yy" 5636 { (yyval.en) = new ExpressionNode( build_tuple( ) ); }5637 break; 5638 5639 case 12 4:5615 { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[(3) - (5)].en) ) ); } 5616 break; 5617 5618 case 125: 5640 5619 5641 5620 /* Line 1806 of yacc.c */ 5642 5621 #line 640 "parser.yy" 5643 { (yyval.en) = new ExpressionNode( build_tuple( ( yyvsp[(3) - (5)].en) ) ); }5644 break; 5645 5646 case 12 5:5622 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) ) ) ); } 5623 break; 5624 5625 case 126: 5647 5626 5648 5627 /* Line 1806 of yacc.c */ 5649 5628 #line 642 "parser.yy" 5650 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) ) ) ); }5651 break;5652 5653 case 126:5654 5655 /* Line 1806 of yacc.c */5656 #line 644 "parser.yy"5657 5629 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_last( (yyvsp[(5) - (7)].en) ) ) ); } 5658 5630 break; … … 5661 5633 5662 5634 /* Line 1806 of yacc.c */ 5663 #line 6 50"parser.yy"5635 #line 648 "parser.yy" 5664 5636 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 5665 5637 break; … … 5668 5640 5669 5641 /* Line 1806 of yacc.c */ 5670 #line 65 6"parser.yy"5642 #line 654 "parser.yy" 5671 5643 { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5672 5644 break; … … 5675 5647 5676 5648 /* Line 1806 of yacc.c */ 5677 #line 6 61"parser.yy"5649 #line 659 "parser.yy" 5678 5650 { (yyval.en) = 0; } 5679 5651 break; … … 5682 5654 5683 5655 /* Line 1806 of yacc.c */ 5684 #line 6 70"parser.yy"5656 #line 668 "parser.yy" 5685 5657 { (yyval.sn) = (yyvsp[(1) - (1)].sn); } 5686 5658 break; … … 5689 5661 5690 5662 /* Line 1806 of yacc.c */ 5691 #line 67 7"parser.yy"5663 #line 675 "parser.yy" 5692 5664 { 5693 5665 Token fn; … … 5700 5672 5701 5673 /* Line 1806 of yacc.c */ 5702 #line 68 7"parser.yy"5674 #line 685 "parser.yy" 5703 5675 { 5704 5676 (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) ); … … 5709 5681 5710 5682 /* Line 1806 of yacc.c */ 5711 #line 69 4"parser.yy"5683 #line 692 "parser.yy" 5712 5684 { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) ); } 5713 5685 break; … … 5716 5688 5717 5689 /* Line 1806 of yacc.c */ 5718 #line 701"parser.yy"5690 #line 699 "parser.yy" 5719 5691 { (yyval.sn) = new StatementNode( build_compound( (yyvsp[(5) - (7)].sn) ) ); } 5720 5692 break; … … 5723 5695 5724 5696 /* Line 1806 of yacc.c */ 5725 #line 70 7"parser.yy"5697 #line 705 "parser.yy" 5726 5698 { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } } 5727 5699 break; … … 5730 5702 5731 5703 /* Line 1806 of yacc.c */ 5704 #line 710 "parser.yy" 5705 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5706 break; 5707 5708 case 148: 5709 5710 /* Line 1806 of yacc.c */ 5732 5711 #line 712 "parser.yy" 5733 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }5734 break;5735 5736 case 148:5737 5738 /* Line 1806 of yacc.c */5739 #line 714 "parser.yy"5740 5712 { // mark all fields in list 5741 5713 for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) … … 5748 5720 5749 5721 /* Line 1806 of yacc.c */ 5750 #line 7 20"parser.yy"5722 #line 718 "parser.yy" 5751 5723 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5752 5724 break; … … 5755 5727 5756 5728 /* Line 1806 of yacc.c */ 5757 #line 72 7"parser.yy"5729 #line 725 "parser.yy" 5758 5730 { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } } 5759 5731 break; … … 5762 5734 5763 5735 /* Line 1806 of yacc.c */ 5764 #line 73 2"parser.yy"5736 #line 730 "parser.yy" 5765 5737 { (yyval.sn) = new StatementNode( build_expr( (yyvsp[(1) - (2)].en) ) ); } 5766 5738 break; … … 5769 5741 5770 5742 /* Line 1806 of yacc.c */ 5743 #line 736 "parser.yy" 5744 { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); } 5745 break; 5746 5747 case 155: 5748 5749 /* Line 1806 of yacc.c */ 5771 5750 #line 738 "parser.yy" 5772 { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - ( 5)].en), (yyvsp[(5) - (5)].sn), nullptr) ); }5773 break; 5774 5775 case 15 5:5751 { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); } 5752 break; 5753 5754 case 156: 5776 5755 5777 5756 /* Line 1806 of yacc.c */ 5778 5757 #line 740 "parser.yy" 5779 { (yyval.sn) = new StatementNode( build_ if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); }5780 break; 5781 5782 case 15 6:5758 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5759 break; 5760 5761 case 157: 5783 5762 5784 5763 /* Line 1806 of yacc.c */ 5785 5764 #line 742 "parser.yy" 5786 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }5787 break;5788 5789 case 157:5790 5791 /* Line 1806 of yacc.c */5792 #line 744 "parser.yy"5793 5765 { 5794 5766 StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) ); … … 5805 5777 5806 5778 /* Line 1806 of yacc.c */ 5779 #line 752 "parser.yy" 5780 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5781 break; 5782 5783 case 159: 5784 5785 /* Line 1806 of yacc.c */ 5807 5786 #line 754 "parser.yy" 5808 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }5809 break;5810 5811 case 159:5812 5813 /* Line 1806 of yacc.c */5814 #line 756 "parser.yy"5815 5787 { 5816 5788 StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) ); … … 5822 5794 5823 5795 /* Line 1806 of yacc.c */ 5796 #line 764 "parser.yy" 5797 { (yyval.en) = (yyvsp[(1) - (1)].en); } 5798 break; 5799 5800 case 161: 5801 5802 /* Line 1806 of yacc.c */ 5824 5803 #line 766 "parser.yy" 5825 { (yyval.en) = (yyvsp[(1) - (1)].en); }5826 break;5827 5828 case 161:5829 5830 /* Line 1806 of yacc.c */5831 #line 768 "parser.yy"5832 5804 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5833 5805 break; … … 5836 5808 5837 5809 /* Line 1806 of yacc.c */ 5810 #line 771 "parser.yy" 5811 { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); } 5812 break; 5813 5814 case 164: 5815 5816 /* Line 1806 of yacc.c */ 5838 5817 #line 773 "parser.yy" 5839 { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); }5840 break;5841 5842 case 164:5843 5844 /* Line 1806 of yacc.c */5845 #line 775 "parser.yy"5846 5818 { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_last( new StatementNode( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); } 5847 5819 break; … … 5850 5822 5851 5823 /* Line 1806 of yacc.c */ 5852 #line 77 9"parser.yy"5824 #line 777 "parser.yy" 5853 5825 { (yyval.sn) = (yyvsp[(2) - (3)].sn); } 5854 5826 break; … … 5857 5829 5858 5830 /* Line 1806 of yacc.c */ 5859 #line 7 80"parser.yy"5831 #line 778 "parser.yy" 5860 5832 { (yyval.sn) = new StatementNode( build_default() ); } 5861 5833 break; … … 5864 5836 5865 5837 /* Line 1806 of yacc.c */ 5866 #line 78 6"parser.yy"5838 #line 784 "parser.yy" 5867 5839 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) )); } 5868 5840 break; … … 5871 5843 5872 5844 /* Line 1806 of yacc.c */ 5873 #line 7 90"parser.yy"5845 #line 788 "parser.yy" 5874 5846 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); } 5875 5847 break; … … 5878 5850 5879 5851 /* Line 1806 of yacc.c */ 5880 #line 79 5"parser.yy"5852 #line 793 "parser.yy" 5881 5853 { (yyval.sn) = 0; } 5882 5854 break; … … 5885 5857 5886 5858 /* Line 1806 of yacc.c */ 5859 #line 799 "parser.yy" 5860 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); } 5861 break; 5862 5863 case 173: 5864 5865 /* Line 1806 of yacc.c */ 5887 5866 #line 801 "parser.yy" 5888 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }5889 break;5890 5891 case 173:5892 5893 /* Line 1806 of yacc.c */5894 #line 803 "parser.yy"5895 5867 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(3) - (3)].sn) ) ) ) ) ); } 5896 5868 break; … … 5899 5871 5900 5872 /* Line 1806 of yacc.c */ 5901 #line 80 8"parser.yy"5873 #line 806 "parser.yy" 5902 5874 { (yyval.sn) = 0; } 5903 5875 break; … … 5906 5878 5907 5879 /* Line 1806 of yacc.c */ 5880 #line 812 "parser.yy" 5881 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); } 5882 break; 5883 5884 case 177: 5885 5886 /* Line 1806 of yacc.c */ 5908 5887 #line 814 "parser.yy" 5909 { (yyval.sn) = (yyvsp[(1) - ( 2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }5910 break; 5911 5912 case 17 7:5888 { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(2) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ) ) ) ); } 5889 break; 5890 5891 case 178: 5913 5892 5914 5893 /* Line 1806 of yacc.c */ 5915 5894 #line 816 "parser.yy" 5916 { (yyval.sn) = ( yyvsp[(1) - (3)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(2) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ) ) )); }5917 break; 5918 5919 case 17 8:5895 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); } 5896 break; 5897 5898 case 179: 5920 5899 5921 5900 /* Line 1806 of yacc.c */ 5922 5901 #line 818 "parser.yy" 5923 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }5924 break;5925 5926 case 179:5927 5928 /* Line 1806 of yacc.c */5929 #line 820 "parser.yy"5930 5902 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_last( (yyvsp[(2) - (4)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(3) - (4)].sn)->set_last( (yyvsp[(4) - (4)].sn) ) ) ) ) ) ); } 5931 5903 break; … … 5934 5906 5935 5907 /* Line 1806 of yacc.c */ 5936 #line 82 5"parser.yy"5908 #line 823 "parser.yy" 5937 5909 { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); } 5938 5910 break; 5939 5911 5940 5912 case 182: 5913 5914 /* Line 1806 of yacc.c */ 5915 #line 829 "parser.yy" 5916 { (yyval.sn) = 0; } 5917 break; 5918 5919 case 183: 5941 5920 5942 5921 /* Line 1806 of yacc.c */ … … 5945 5924 break; 5946 5925 5947 case 183:5948 5949 /* Line 1806 of yacc.c */5950 #line 833 "parser.yy"5951 { (yyval.sn) = 0; }5952 break;5953 5954 5926 case 184: 5955 5927 5956 5928 /* Line 1806 of yacc.c */ 5929 #line 836 "parser.yy" 5930 { (yyval.sn) = new StatementNode( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5931 break; 5932 5933 case 185: 5934 5935 /* Line 1806 of yacc.c */ 5957 5936 #line 838 "parser.yy" 5958 { (yyval.sn) = new StatementNode( build_while( (yyvsp[( 3) - (5)].en), (yyvsp[(5) - (5)].sn)) ); }5959 break; 5960 5961 case 18 5:5937 { (yyval.sn) = new StatementNode( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn), true ) ); } 5938 break; 5939 5940 case 186: 5962 5941 5963 5942 /* Line 1806 of yacc.c */ 5964 5943 #line 840 "parser.yy" 5965 { (yyval.sn) = new StatementNode( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn), true ) ); }5966 break;5967 5968 case 186:5969 5970 /* Line 1806 of yacc.c */5971 #line 842 "parser.yy"5972 5944 { (yyval.sn) = new StatementNode( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); } 5973 5945 break; … … 5976 5948 5977 5949 /* Line 1806 of yacc.c */ 5950 #line 845 "parser.yy" 5951 { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); } 5952 break; 5953 5954 case 188: 5955 5956 /* Line 1806 of yacc.c */ 5978 5957 #line 847 "parser.yy" 5979 { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }5980 break;5981 5982 case 188:5983 5984 /* Line 1806 of yacc.c */5985 #line 849 "parser.yy"5986 5958 { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); } 5987 5959 break; … … 5990 5962 5991 5963 /* Line 1806 of yacc.c */ 5992 #line 85 4"parser.yy"5964 #line 852 "parser.yy" 5993 5965 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); } 5994 5966 break; … … 5997 5969 5998 5970 /* Line 1806 of yacc.c */ 5999 #line 85 8"parser.yy"5971 #line 856 "parser.yy" 6000 5972 { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); } 6001 5973 break; … … 6004 5976 6005 5977 /* Line 1806 of yacc.c */ 6006 #line 8 61"parser.yy"5978 #line 859 "parser.yy" 6007 5979 { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Continue ) ); } 6008 5980 break; … … 6011 5983 6012 5984 /* Line 1806 of yacc.c */ 6013 #line 86 5"parser.yy"5985 #line 863 "parser.yy" 6014 5986 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); } 6015 5987 break; … … 6018 5990 6019 5991 /* Line 1806 of yacc.c */ 6020 #line 86 8"parser.yy"5992 #line 866 "parser.yy" 6021 5993 { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); } 6022 5994 break; … … 6025 5997 6026 5998 /* Line 1806 of yacc.c */ 5999 #line 870 "parser.yy" 6000 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); } 6001 break; 6002 6003 case 195: 6004 6005 /* Line 1806 of yacc.c */ 6027 6006 #line 872 "parser.yy" 6028 { (yyval.sn) = new StatementNode( build_ branch( (yyvsp[(2) - (3)].tok), BranchStmt::Break) ); }6029 break; 6030 6031 case 19 5:6007 { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); } 6008 break; 6009 6010 case 196: 6032 6011 6033 6012 /* Line 1806 of yacc.c */ 6034 6013 #line 874 "parser.yy" 6035 { (yyval.sn) = new StatementNode( build_ return( (yyvsp[(2) - (3)].en) ) ); }6036 break; 6037 6038 case 19 6:6014 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); } 6015 break; 6016 6017 case 197: 6039 6018 6040 6019 /* Line 1806 of yacc.c */ … … 6043 6022 break; 6044 6023 6045 case 19 7:6024 case 198: 6046 6025 6047 6026 /* Line 1806 of yacc.c */ 6048 6027 #line 878 "parser.yy" 6049 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }6050 break;6051 6052 case 198:6053 6054 /* Line 1806 of yacc.c */6055 #line 880 "parser.yy"6056 6028 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (5)].en) ) ); } 6057 6029 break; … … 6060 6032 6061 6033 /* Line 1806 of yacc.c */ 6034 #line 883 "parser.yy" 6035 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0 ) ); } 6036 break; 6037 6038 case 200: 6039 6040 /* Line 1806 of yacc.c */ 6062 6041 #line 885 "parser.yy" 6063 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0) ); }6064 break; 6065 6066 case 20 0:6042 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn) ) ); } 6043 break; 6044 6045 case 201: 6067 6046 6068 6047 /* Line 1806 of yacc.c */ 6069 6048 #line 887 "parser.yy" 6070 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn) ) ); }6071 break;6072 6073 case 201:6074 6075 /* Line 1806 of yacc.c */6076 #line 889 "parser.yy"6077 6049 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (4)].sn), (yyvsp[(3) - (4)].sn), (yyvsp[(4) - (4)].sn) ) ); } 6078 6050 break; … … 6081 6053 6082 6054 /* Line 1806 of yacc.c */ 6055 #line 894 "parser.yy" 6056 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); } 6057 break; 6058 6059 case 204: 6060 6061 /* Line 1806 of yacc.c */ 6083 6062 #line 896 "parser.yy" 6063 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); } 6064 break; 6065 6066 case 205: 6067 6068 /* Line 1806 of yacc.c */ 6069 #line 898 "parser.yy" 6084 6070 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); } 6085 6071 break; 6086 6072 6087 case 20 4:6088 6089 /* Line 1806 of yacc.c */ 6090 #line 898"parser.yy"6073 case 206: 6074 6075 /* Line 1806 of yacc.c */ 6076 #line 900 "parser.yy" 6091 6077 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); } 6092 6078 break; 6093 6079 6094 case 205:6095 6096 /* Line 1806 of yacc.c */6097 #line 900 "parser.yy"6098 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }6099 break;6100 6101 case 206:6102 6103 /* Line 1806 of yacc.c */6104 #line 902 "parser.yy"6105 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }6106 break;6107 6108 6080 case 207: 6109 6081 6110 6082 /* Line 1806 of yacc.c */ 6083 #line 905 "parser.yy" 6084 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); } 6085 break; 6086 6087 case 208: 6088 6089 /* Line 1806 of yacc.c */ 6111 6090 #line 907 "parser.yy" 6091 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); } 6092 break; 6093 6094 case 209: 6095 6096 /* Line 1806 of yacc.c */ 6097 #line 909 "parser.yy" 6112 6098 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); } 6113 6099 break; 6114 6100 6115 case 2 08:6116 6117 /* Line 1806 of yacc.c */ 6118 #line 9 09"parser.yy"6101 case 210: 6102 6103 /* Line 1806 of yacc.c */ 6104 #line 911 "parser.yy" 6119 6105 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); } 6120 6106 break; 6121 6107 6122 case 209:6123 6124 /* Line 1806 of yacc.c */6125 #line 911 "parser.yy"6126 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }6127 break;6128 6129 case 210:6130 6131 /* Line 1806 of yacc.c */6132 #line 913 "parser.yy"6133 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }6134 break;6135 6136 6108 case 211: 6137 6109 6138 6110 /* Line 1806 of yacc.c */ 6139 #line 91 8"parser.yy"6111 #line 916 "parser.yy" 6140 6112 { 6141 6113 (yyval.sn) = new StatementNode( build_finally( (yyvsp[(2) - (2)].sn) ) ); … … 6146 6118 6147 6119 /* Line 1806 of yacc.c */ 6148 #line 9 31"parser.yy"6120 #line 929 "parser.yy" 6149 6121 { 6150 6122 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6156 6128 6157 6129 /* Line 1806 of yacc.c */ 6130 #line 934 "parser.yy" 6131 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 6132 break; 6133 6134 case 215: 6135 6136 /* Line 1806 of yacc.c */ 6158 6137 #line 936 "parser.yy" 6159 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }6160 break;6161 6162 case 215:6163 6164 /* Line 1806 of yacc.c */6165 #line 938 "parser.yy"6166 6138 { 6167 6139 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6173 6145 6174 6146 /* Line 1806 of yacc.c */ 6147 #line 945 "parser.yy" 6148 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ) ); } 6149 break; 6150 6151 case 218: 6152 6153 /* Line 1806 of yacc.c */ 6175 6154 #line 947 "parser.yy" 6176 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - ( 6)].flag), (yyvsp[(4) - (6)].constant), 0) ); }6177 break; 6178 6179 case 21 8:6155 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ) ); } 6156 break; 6157 6158 case 219: 6180 6159 6181 6160 /* Line 1806 of yacc.c */ 6182 6161 #line 949 "parser.yy" 6183 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - ( 8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ) ); }6184 break; 6185 6186 case 2 19:6162 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ) ); } 6163 break; 6164 6165 case 220: 6187 6166 6188 6167 /* Line 1806 of yacc.c */ 6189 6168 #line 951 "parser.yy" 6190 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (1 0)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ) ); }6191 break; 6192 6193 case 22 0:6169 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].en) ) ); } 6170 break; 6171 6172 case 221: 6194 6173 6195 6174 /* Line 1806 of yacc.c */ 6196 6175 #line 953 "parser.yy" 6197 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].en) ) ); }6198 break;6199 6200 case 221:6201 6202 /* Line 1806 of yacc.c */6203 #line 955 "parser.yy"6204 6176 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].en), (yyvsp[(12) - (14)].label) ) ); } 6205 6177 break; … … 6208 6180 6209 6181 /* Line 1806 of yacc.c */ 6182 #line 958 "parser.yy" 6183 { (yyval.flag) = false; } 6184 break; 6185 6186 case 223: 6187 6188 /* Line 1806 of yacc.c */ 6210 6189 #line 960 "parser.yy" 6211 { (yyval.flag) = false; }6212 break;6213 6214 case 223:6215 6216 /* Line 1806 of yacc.c */6217 #line 962 "parser.yy"6218 6190 { (yyval.flag) = true; } 6219 6191 break; … … 6222 6194 6223 6195 /* Line 1806 of yacc.c */ 6224 #line 96 7"parser.yy"6196 #line 965 "parser.yy" 6225 6197 { (yyval.en) = 0; } 6226 6198 break; … … 6229 6201 6230 6202 /* Line 1806 of yacc.c */ 6231 #line 97 4"parser.yy"6203 #line 972 "parser.yy" 6232 6204 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 6233 6205 break; … … 6236 6208 6237 6209 /* Line 1806 of yacc.c */ 6210 #line 977 "parser.yy" 6211 { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); } 6212 break; 6213 6214 case 229: 6215 6216 /* Line 1806 of yacc.c */ 6238 6217 #line 979 "parser.yy" 6239 { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); }6240 break;6241 6242 case 229:6243 6244 /* Line 1806 of yacc.c */6245 #line 981 "parser.yy"6246 6218 { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); } 6247 6219 break; … … 6250 6222 6251 6223 /* Line 1806 of yacc.c */ 6224 #line 984 "parser.yy" 6225 { (yyval.en) = 0; } 6226 break; 6227 6228 case 231: 6229 6230 /* Line 1806 of yacc.c */ 6252 6231 #line 986 "parser.yy" 6253 { (yyval.en) = 0; }6254 break; 6255 6256 case 23 1:6232 { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); } 6233 break; 6234 6235 case 232: 6257 6236 6258 6237 /* Line 1806 of yacc.c */ 6259 6238 #line 988 "parser.yy" 6260 { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }6261 break;6262 6263 case 232:6264 6265 /* Line 1806 of yacc.c */6266 #line 990 "parser.yy"6267 6239 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); } 6268 6240 break; … … 6271 6243 6272 6244 /* Line 1806 of yacc.c */ 6273 #line 99 5"parser.yy"6245 #line 993 "parser.yy" 6274 6246 { 6275 6247 (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[(1) - (1)].tok) ); … … 6281 6253 6282 6254 /* Line 1806 of yacc.c */ 6283 #line 1000"parser.yy"6255 #line 998 "parser.yy" 6284 6256 { 6285 6257 (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->labels.push_back( *(yyvsp[(3) - (3)].tok) ); … … 6291 6263 6292 6264 /* Line 1806 of yacc.c */ 6293 #line 10 10"parser.yy"6265 #line 1008 "parser.yy" 6294 6266 { (yyval.decl) = 0; } 6295 6267 break; … … 6298 6270 6299 6271 /* Line 1806 of yacc.c */ 6300 #line 101 7"parser.yy"6272 #line 1015 "parser.yy" 6301 6273 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6302 6274 break; … … 6305 6277 6306 6278 /* Line 1806 of yacc.c */ 6307 #line 102 2"parser.yy"6279 #line 1020 "parser.yy" 6308 6280 { (yyval.decl) = 0; } 6309 6281 break; … … 6312 6284 6313 6285 /* Line 1806 of yacc.c */ 6314 #line 102 9"parser.yy"6286 #line 1027 "parser.yy" 6315 6287 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6316 6288 break; … … 6319 6291 6320 6292 /* Line 1806 of yacc.c */ 6321 #line 104 3"parser.yy"6293 #line 1041 "parser.yy" 6322 6294 {} 6323 6295 break; … … 6326 6298 6327 6299 /* Line 1806 of yacc.c */ 6328 #line 104 4"parser.yy"6300 #line 1042 "parser.yy" 6329 6301 {} 6330 6302 break; … … 6333 6305 6334 6306 /* Line 1806 of yacc.c */ 6335 #line 107 3"parser.yy"6307 #line 1071 "parser.yy" 6336 6308 { 6337 6309 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6343 6315 6344 6316 /* Line 1806 of yacc.c */ 6345 #line 10 80"parser.yy"6317 #line 1078 "parser.yy" 6346 6318 { 6347 6319 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6353 6325 6354 6326 /* Line 1806 of yacc.c */ 6355 #line 108 5"parser.yy"6327 #line 1083 "parser.yy" 6356 6328 { 6357 6329 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID ); … … 6363 6335 6364 6336 /* Line 1806 of yacc.c */ 6365 #line 109 5"parser.yy"6337 #line 1093 "parser.yy" 6366 6338 { 6367 6339 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); … … 6373 6345 6374 6346 /* Line 1806 of yacc.c */ 6375 #line 1 100"parser.yy"6347 #line 1098 "parser.yy" 6376 6348 { 6377 6349 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); … … 6383 6355 6384 6356 /* Line 1806 of yacc.c */ 6385 #line 110 5"parser.yy"6357 #line 1103 "parser.yy" 6386 6358 { 6387 6359 typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) ); … … 6393 6365 6394 6366 /* Line 1806 of yacc.c */ 6395 #line 111 3"parser.yy"6367 #line 1111 "parser.yy" 6396 6368 { 6397 6369 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6403 6375 6404 6376 /* Line 1806 of yacc.c */ 6405 #line 111 8"parser.yy"6377 #line 1116 "parser.yy" 6406 6378 { 6407 6379 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6413 6385 6414 6386 /* Line 1806 of yacc.c */ 6415 #line 112 3"parser.yy"6387 #line 1121 "parser.yy" 6416 6388 { 6417 6389 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6423 6395 6424 6396 /* Line 1806 of yacc.c */ 6425 #line 112 8"parser.yy"6397 #line 1126 "parser.yy" 6426 6398 { 6427 6399 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6433 6405 6434 6406 /* Line 1806 of yacc.c */ 6435 #line 113 3"parser.yy"6407 #line 1131 "parser.yy" 6436 6408 { 6437 6409 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); … … 6443 6415 6444 6416 /* Line 1806 of yacc.c */ 6445 #line 11 41"parser.yy"6417 #line 1139 "parser.yy" 6446 6418 { 6447 6419 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true ); … … 6452 6424 6453 6425 /* Line 1806 of yacc.c */ 6454 #line 116 4"parser.yy"6426 #line 1162 "parser.yy" 6455 6427 { 6456 6428 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); … … 6461 6433 6462 6434 /* Line 1806 of yacc.c */ 6463 #line 116 8"parser.yy"6435 #line 1166 "parser.yy" 6464 6436 { 6465 6437 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); … … 6470 6442 6471 6443 /* Line 1806 of yacc.c */ 6472 #line 117 5"parser.yy"6444 #line 1173 "parser.yy" 6473 6445 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 6474 6446 break; … … 6477 6449 6478 6450 /* Line 1806 of yacc.c */ 6479 #line 117 9"parser.yy"6451 #line 1177 "parser.yy" 6480 6452 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); } 6481 6453 break; … … 6484 6456 6485 6457 /* Line 1806 of yacc.c */ 6486 #line 118 4"parser.yy"6458 #line 1182 "parser.yy" 6487 6459 { 6488 6460 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6494 6466 6495 6467 /* Line 1806 of yacc.c */ 6496 #line 118 9"parser.yy"6468 #line 1187 "parser.yy" 6497 6469 { 6498 6470 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6504 6476 6505 6477 /* Line 1806 of yacc.c */ 6506 #line 119 4"parser.yy"6478 #line 1192 "parser.yy" 6507 6479 { 6508 6480 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD ); … … 6514 6486 6515 6487 /* Line 1806 of yacc.c */ 6516 #line 120 5"parser.yy"6488 #line 1203 "parser.yy" 6517 6489 { 6518 6490 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6524 6496 6525 6497 /* Line 1806 of yacc.c */ 6526 #line 12 10"parser.yy"6498 #line 1208 "parser.yy" 6527 6499 { 6528 6500 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6534 6506 6535 6507 /* Line 1806 of yacc.c */ 6536 #line 121 5"parser.yy"6508 #line 1213 "parser.yy" 6537 6509 { 6538 6510 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6544 6516 6545 6517 /* Line 1806 of yacc.c */ 6546 #line 12 20"parser.yy"6518 #line 1218 "parser.yy" 6547 6519 { 6548 6520 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6554 6526 6555 6527 /* Line 1806 of yacc.c */ 6556 #line 122 5"parser.yy"6528 #line 1223 "parser.yy" 6557 6529 { 6558 6530 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6564 6536 6565 6537 /* Line 1806 of yacc.c */ 6566 #line 123 4"parser.yy"6538 #line 1232 "parser.yy" 6567 6539 { 6568 6540 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD ); … … 6574 6546 6575 6547 /* Line 1806 of yacc.c */ 6576 #line 123 9"parser.yy"6548 #line 1237 "parser.yy" 6577 6549 { 6578 6550 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD ); … … 6584 6556 6585 6557 /* Line 1806 of yacc.c */ 6586 #line 125 6"parser.yy"6558 #line 1254 "parser.yy" 6587 6559 { 6588 6560 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6594 6566 6595 6567 /* Line 1806 of yacc.c */ 6596 #line 12 61"parser.yy"6568 #line 1259 "parser.yy" 6597 6569 { 6598 6570 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6604 6576 6605 6577 /* Line 1806 of yacc.c */ 6606 #line 128 3"parser.yy"6578 #line 1281 "parser.yy" 6607 6579 { (yyval.decl) = 0; } 6608 6580 break; … … 6611 6583 6612 6584 /* Line 1806 of yacc.c */ 6613 #line 129 5"parser.yy"6585 #line 1293 "parser.yy" 6614 6586 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6615 6587 break; … … 6618 6590 6619 6591 /* Line 1806 of yacc.c */ 6592 #line 1304 "parser.yy" 6593 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); } 6594 break; 6595 6596 case 303: 6597 6598 /* Line 1806 of yacc.c */ 6620 6599 #line 1306 "parser.yy" 6621 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode:: Const ); }6622 break; 6623 6624 case 30 3:6600 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); } 6601 break; 6602 6603 case 304: 6625 6604 6626 6605 /* Line 1806 of yacc.c */ 6627 6606 #line 1308 "parser.yy" 6628 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode:: Restrict); }6629 break; 6630 6631 case 30 4:6607 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); } 6608 break; 6609 6610 case 305: 6632 6611 6633 6612 /* Line 1806 of yacc.c */ 6634 6613 #line 1310 "parser.yy" 6635 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode:: Volatile ); }6636 break; 6637 6638 case 30 5:6614 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); } 6615 break; 6616 6617 case 306: 6639 6618 6640 6619 /* Line 1806 of yacc.c */ 6641 6620 #line 1312 "parser.yy" 6642 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode:: Lvalue); }6643 break; 6644 6645 case 30 6:6621 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); } 6622 break; 6623 6624 case 307: 6646 6625 6647 6626 /* Line 1806 of yacc.c */ 6648 6627 #line 1314 "parser.yy" 6649 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }6650 break;6651 6652 case 307:6653 6654 /* Line 1806 of yacc.c */6655 #line 1316 "parser.yy"6656 6628 { 6657 6629 typedefTable.enterScope(); … … 6662 6634 6663 6635 /* Line 1806 of yacc.c */ 6664 #line 13 20"parser.yy"6636 #line 1318 "parser.yy" 6665 6637 { 6666 6638 typedefTable.leaveScope(); … … 6672 6644 6673 6645 /* Line 1806 of yacc.c */ 6646 #line 1327 "parser.yy" 6647 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6648 break; 6649 6650 case 311: 6651 6652 /* Line 1806 of yacc.c */ 6674 6653 #line 1329 "parser.yy" 6654 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6655 break; 6656 6657 case 313: 6658 6659 /* Line 1806 of yacc.c */ 6660 #line 1340 "parser.yy" 6675 6661 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6676 6662 break; 6677 6663 6678 case 311: 6679 6680 /* Line 1806 of yacc.c */ 6681 #line 1331 "parser.yy" 6664 case 314: 6665 6666 /* Line 1806 of yacc.c */ 6667 #line 1345 "parser.yy" 6668 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); } 6669 break; 6670 6671 case 315: 6672 6673 /* Line 1806 of yacc.c */ 6674 #line 1347 "parser.yy" 6675 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); } 6676 break; 6677 6678 case 316: 6679 6680 /* Line 1806 of yacc.c */ 6681 #line 1349 "parser.yy" 6682 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); } 6683 break; 6684 6685 case 317: 6686 6687 /* Line 1806 of yacc.c */ 6688 #line 1351 "parser.yy" 6689 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); } 6690 break; 6691 6692 case 318: 6693 6694 /* Line 1806 of yacc.c */ 6695 #line 1354 "parser.yy" 6696 { (yyval.decl) = new DeclarationNode; (yyval.decl)->isInline = true; } 6697 break; 6698 6699 case 319: 6700 6701 /* Line 1806 of yacc.c */ 6702 #line 1356 "parser.yy" 6703 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); } 6704 break; 6705 6706 case 320: 6707 6708 /* Line 1806 of yacc.c */ 6709 #line 1359 "parser.yy" 6710 { (yyval.decl) = new DeclarationNode; (yyval.decl)->isNoreturn = true; } 6711 break; 6712 6713 case 321: 6714 6715 /* Line 1806 of yacc.c */ 6716 #line 1361 "parser.yy" 6717 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); } 6718 break; 6719 6720 case 322: 6721 6722 /* Line 1806 of yacc.c */ 6723 #line 1366 "parser.yy" 6724 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); } 6725 break; 6726 6727 case 323: 6728 6729 /* Line 1806 of yacc.c */ 6730 #line 1368 "parser.yy" 6731 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); } 6732 break; 6733 6734 case 324: 6735 6736 /* Line 1806 of yacc.c */ 6737 #line 1370 "parser.yy" 6738 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); } 6739 break; 6740 6741 case 325: 6742 6743 /* Line 1806 of yacc.c */ 6744 #line 1372 "parser.yy" 6745 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); } 6746 break; 6747 6748 case 326: 6749 6750 /* Line 1806 of yacc.c */ 6751 #line 1374 "parser.yy" 6752 { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Long ); } 6753 break; 6754 6755 case 327: 6756 6757 /* Line 1806 of yacc.c */ 6758 #line 1376 "parser.yy" 6759 { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Short ); } 6760 break; 6761 6762 case 328: 6763 6764 /* Line 1806 of yacc.c */ 6765 #line 1378 "parser.yy" 6766 { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Signed ); } 6767 break; 6768 6769 case 329: 6770 6771 /* Line 1806 of yacc.c */ 6772 #line 1380 "parser.yy" 6773 { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Unsigned ); } 6774 break; 6775 6776 case 330: 6777 6778 /* Line 1806 of yacc.c */ 6779 #line 1382 "parser.yy" 6780 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); } 6781 break; 6782 6783 case 331: 6784 6785 /* Line 1806 of yacc.c */ 6786 #line 1384 "parser.yy" 6787 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); } 6788 break; 6789 6790 case 332: 6791 6792 /* Line 1806 of yacc.c */ 6793 #line 1386 "parser.yy" 6794 { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Complex ); } 6795 break; 6796 6797 case 333: 6798 6799 /* Line 1806 of yacc.c */ 6800 #line 1388 "parser.yy" 6801 { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Imaginary ); } 6802 break; 6803 6804 case 334: 6805 6806 /* Line 1806 of yacc.c */ 6807 #line 1390 "parser.yy" 6808 { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); } 6809 break; 6810 6811 case 336: 6812 6813 /* Line 1806 of yacc.c */ 6814 #line 1397 "parser.yy" 6815 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6816 break; 6817 6818 case 337: 6819 6820 /* Line 1806 of yacc.c */ 6821 #line 1399 "parser.yy" 6822 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6823 break; 6824 6825 case 338: 6826 6827 /* Line 1806 of yacc.c */ 6828 #line 1401 "parser.yy" 6682 6829 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6683 6830 break; 6684 6831 6685 case 313: 6686 6687 /* Line 1806 of yacc.c */ 6688 #line 1342 "parser.yy" 6832 case 339: 6833 6834 /* Line 1806 of yacc.c */ 6835 #line 1403 "parser.yy" 6836 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); } 6837 break; 6838 6839 case 341: 6840 6841 /* Line 1806 of yacc.c */ 6842 #line 1409 "parser.yy" 6843 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6844 break; 6845 6846 case 343: 6847 6848 /* Line 1806 of yacc.c */ 6849 #line 1416 "parser.yy" 6850 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6851 break; 6852 6853 case 344: 6854 6855 /* Line 1806 of yacc.c */ 6856 #line 1418 "parser.yy" 6689 6857 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6690 6858 break; 6691 6859 6692 case 314: 6693 6694 /* Line 1806 of yacc.c */ 6695 #line 1347 "parser.yy" 6696 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); } 6697 break; 6698 6699 case 315: 6700 6701 /* Line 1806 of yacc.c */ 6702 #line 1349 "parser.yy" 6703 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); } 6704 break; 6705 6706 case 316: 6707 6708 /* Line 1806 of yacc.c */ 6709 #line 1351 "parser.yy" 6710 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); } 6711 break; 6712 6713 case 317: 6714 6715 /* Line 1806 of yacc.c */ 6716 #line 1353 "parser.yy" 6717 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); } 6718 break; 6719 6720 case 318: 6721 6722 /* Line 1806 of yacc.c */ 6723 #line 1356 "parser.yy" 6724 { (yyval.decl) = new DeclarationNode; (yyval.decl)->isInline = true; } 6725 break; 6726 6727 case 319: 6728 6729 /* Line 1806 of yacc.c */ 6730 #line 1358 "parser.yy" 6731 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); } 6732 break; 6733 6734 case 320: 6735 6736 /* Line 1806 of yacc.c */ 6737 #line 1361 "parser.yy" 6738 { (yyval.decl) = new DeclarationNode; (yyval.decl)->isNoreturn = true; } 6739 break; 6740 6741 case 321: 6742 6743 /* Line 1806 of yacc.c */ 6744 #line 1363 "parser.yy" 6745 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); } 6746 break; 6747 6748 case 322: 6749 6750 /* Line 1806 of yacc.c */ 6751 #line 1368 "parser.yy" 6752 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); } 6753 break; 6754 6755 case 323: 6756 6757 /* Line 1806 of yacc.c */ 6758 #line 1370 "parser.yy" 6759 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); } 6760 break; 6761 6762 case 324: 6763 6764 /* Line 1806 of yacc.c */ 6765 #line 1372 "parser.yy" 6766 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); } 6767 break; 6768 6769 case 325: 6770 6771 /* Line 1806 of yacc.c */ 6772 #line 1374 "parser.yy" 6773 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); } 6774 break; 6775 6776 case 326: 6777 6778 /* Line 1806 of yacc.c */ 6779 #line 1376 "parser.yy" 6780 { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Long ); } 6781 break; 6782 6783 case 327: 6784 6785 /* Line 1806 of yacc.c */ 6786 #line 1378 "parser.yy" 6787 { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Short ); } 6788 break; 6789 6790 case 328: 6791 6792 /* Line 1806 of yacc.c */ 6793 #line 1380 "parser.yy" 6794 { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Signed ); } 6795 break; 6796 6797 case 329: 6798 6799 /* Line 1806 of yacc.c */ 6800 #line 1382 "parser.yy" 6801 { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Unsigned ); } 6802 break; 6803 6804 case 330: 6805 6806 /* Line 1806 of yacc.c */ 6807 #line 1384 "parser.yy" 6808 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); } 6809 break; 6810 6811 case 331: 6812 6813 /* Line 1806 of yacc.c */ 6814 #line 1386 "parser.yy" 6815 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); } 6816 break; 6817 6818 case 332: 6819 6820 /* Line 1806 of yacc.c */ 6821 #line 1388 "parser.yy" 6822 { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Complex ); } 6823 break; 6824 6825 case 333: 6826 6827 /* Line 1806 of yacc.c */ 6828 #line 1390 "parser.yy" 6829 { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Imaginary ); } 6830 break; 6831 6832 case 334: 6833 6834 /* Line 1806 of yacc.c */ 6835 #line 1392 "parser.yy" 6836 { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); } 6837 break; 6838 6839 case 336: 6840 6841 /* Line 1806 of yacc.c */ 6842 #line 1399 "parser.yy" 6860 case 345: 6861 6862 /* Line 1806 of yacc.c */ 6863 #line 1420 "parser.yy" 6864 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); } 6865 break; 6866 6867 case 346: 6868 6869 /* Line 1806 of yacc.c */ 6870 #line 1425 "parser.yy" 6871 { (yyval.decl) = (yyvsp[(3) - (4)].decl); } 6872 break; 6873 6874 case 347: 6875 6876 /* Line 1806 of yacc.c */ 6877 #line 1427 "parser.yy" 6878 { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); } 6879 break; 6880 6881 case 348: 6882 6883 /* Line 1806 of yacc.c */ 6884 #line 1429 "parser.yy" 6885 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); } 6886 break; 6887 6888 case 349: 6889 6890 /* Line 1806 of yacc.c */ 6891 #line 1431 "parser.yy" 6892 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 6893 break; 6894 6895 case 351: 6896 6897 /* Line 1806 of yacc.c */ 6898 #line 1437 "parser.yy" 6843 6899 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6844 6900 break; 6845 6901 6846 case 3 37:6847 6848 /* Line 1806 of yacc.c */ 6849 #line 14 01"parser.yy"6902 case 352: 6903 6904 /* Line 1806 of yacc.c */ 6905 #line 1439 "parser.yy" 6850 6906 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6851 6907 break; 6852 6908 6853 case 3 38:6854 6855 /* Line 1806 of yacc.c */ 6856 #line 14 03"parser.yy"6909 case 353: 6910 6911 /* Line 1806 of yacc.c */ 6912 #line 1441 "parser.yy" 6857 6913 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6858 6914 break; 6859 6915 6860 case 339: 6861 6862 /* Line 1806 of yacc.c */ 6863 #line 1405 "parser.yy" 6864 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); } 6865 break; 6866 6867 case 341: 6868 6869 /* Line 1806 of yacc.c */ 6870 #line 1411 "parser.yy" 6871 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6872 break; 6873 6874 case 343: 6875 6876 /* Line 1806 of yacc.c */ 6877 #line 1418 "parser.yy" 6916 case 355: 6917 6918 /* Line 1806 of yacc.c */ 6919 #line 1447 "parser.yy" 6878 6920 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6879 6921 break; 6880 6922 6881 case 3 44:6882 6883 /* Line 1806 of yacc.c */ 6884 #line 14 20"parser.yy"6923 case 356: 6924 6925 /* Line 1806 of yacc.c */ 6926 #line 1449 "parser.yy" 6885 6927 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6886 6928 break; 6887 6929 6888 case 345: 6889 6890 /* Line 1806 of yacc.c */ 6891 #line 1422 "parser.yy" 6892 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); } 6893 break; 6894 6895 case 346: 6896 6897 /* Line 1806 of yacc.c */ 6898 #line 1427 "parser.yy" 6899 { (yyval.decl) = (yyvsp[(3) - (4)].decl); } 6900 break; 6901 6902 case 347: 6903 6904 /* Line 1806 of yacc.c */ 6905 #line 1429 "parser.yy" 6906 { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); } 6907 break; 6908 6909 case 348: 6910 6911 /* Line 1806 of yacc.c */ 6912 #line 1431 "parser.yy" 6913 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); } 6914 break; 6915 6916 case 349: 6917 6918 /* Line 1806 of yacc.c */ 6919 #line 1433 "parser.yy" 6920 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 6921 break; 6922 6923 case 351: 6924 6925 /* Line 1806 of yacc.c */ 6926 #line 1439 "parser.yy" 6930 case 358: 6931 6932 /* Line 1806 of yacc.c */ 6933 #line 1455 "parser.yy" 6927 6934 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6928 6935 break; 6929 6936 6930 case 35 2:6931 6932 /* Line 1806 of yacc.c */ 6933 #line 14 41"parser.yy"6937 case 359: 6938 6939 /* Line 1806 of yacc.c */ 6940 #line 1457 "parser.yy" 6934 6941 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6935 6942 break; 6936 6943 6937 case 3 53:6938 6939 /* Line 1806 of yacc.c */ 6940 #line 14 43"parser.yy"6944 case 360: 6945 6946 /* Line 1806 of yacc.c */ 6947 #line 1459 "parser.yy" 6941 6948 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6942 6949 break; 6943 6950 6944 case 355: 6945 6946 /* Line 1806 of yacc.c */ 6947 #line 1449 "parser.yy" 6948 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6949 break; 6950 6951 case 356: 6952 6953 /* Line 1806 of yacc.c */ 6954 #line 1451 "parser.yy" 6951 case 361: 6952 6953 /* Line 1806 of yacc.c */ 6954 #line 1464 "parser.yy" 6955 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); } 6956 break; 6957 6958 case 362: 6959 6960 /* Line 1806 of yacc.c */ 6961 #line 1466 "parser.yy" 6962 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6963 break; 6964 6965 case 363: 6966 6967 /* Line 1806 of yacc.c */ 6968 #line 1468 "parser.yy" 6955 6969 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6956 6970 break; 6957 6971 6958 case 358:6959 6960 /* Line 1806 of yacc.c */6961 #line 1457 "parser.yy"6962 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }6963 break;6964 6965 case 359:6966 6967 /* Line 1806 of yacc.c */6968 #line 1459 "parser.yy"6969 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }6970 break;6971 6972 case 360:6973 6974 /* Line 1806 of yacc.c */6975 #line 1461 "parser.yy"6976 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }6977 break;6978 6979 case 361:6980 6981 /* Line 1806 of yacc.c */6982 #line 1466 "parser.yy"6983 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }6984 break;6985 6986 case 362:6987 6988 /* Line 1806 of yacc.c */6989 #line 1468 "parser.yy"6990 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }6991 break;6992 6993 case 363:6994 6995 /* Line 1806 of yacc.c */6996 #line 1470 "parser.yy"6997 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }6998 break;6999 7000 6972 case 366: 7001 6973 7002 6974 /* Line 1806 of yacc.c */ 6975 #line 1478 "parser.yy" 6976 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), nullptr, nullptr, (yyvsp[(3) - (4)].decl), true ); } 6977 break; 6978 6979 case 367: 6980 6981 /* Line 1806 of yacc.c */ 7003 6982 #line 1480 "parser.yy" 7004 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), nullptr, nullptr, (yyvsp[(3) - (4)].decl), true ); }7005 break;7006 7007 case 367:7008 7009 /* Line 1806 of yacc.c */7010 #line 1482 "parser.yy"7011 6983 { 7012 6984 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); … … 7018 6990 7019 6991 /* Line 1806 of yacc.c */ 6992 #line 1485 "parser.yy" 6993 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); } 6994 break; 6995 6996 case 369: 6997 6998 /* Line 1806 of yacc.c */ 7020 6999 #line 1487 "parser.yy" 7021 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok)); }7022 break; 7023 7024 case 3 69:7000 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), nullptr, (yyvsp[(5) - (6)].decl), true ); } 7001 break; 7002 7003 case 370: 7025 7004 7026 7005 /* Line 1806 of yacc.c */ 7027 7006 #line 1489 "parser.yy" 7028 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - ( 6)].aggKey), (yyvsp[(2) - (6)].tok), nullptr, (yyvsp[(5) - (6)].decl), true ); }7029 break; 7030 7031 case 37 0:7007 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), nullptr, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); } 7008 break; 7009 7010 case 371: 7032 7011 7033 7012 /* Line 1806 of yacc.c */ 7034 7013 #line 1491 "parser.yy" 7035 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), nullptr, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); }7036 break;7037 7038 case 371:7039 7040 /* Line 1806 of yacc.c */7041 #line 1493 "parser.yy"7042 7014 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 7043 7015 break; … … 7046 7018 7047 7019 /* Line 1806 of yacc.c */ 7020 #line 1496 "parser.yy" 7021 { (yyval.aggKey) = DeclarationNode::Struct; } 7022 break; 7023 7024 case 373: 7025 7026 /* Line 1806 of yacc.c */ 7048 7027 #line 1498 "parser.yy" 7049 { (yyval.aggKey) = DeclarationNode::Struct; }7050 break;7051 7052 case 373:7053 7054 /* Line 1806 of yacc.c */7055 #line 1500 "parser.yy"7056 7028 { (yyval.aggKey) = DeclarationNode::Union; } 7057 7029 break; … … 7060 7032 7061 7033 /* Line 1806 of yacc.c */ 7034 #line 1503 "parser.yy" 7035 { (yyval.decl) = 0; } 7036 break; 7037 7038 case 375: 7039 7040 /* Line 1806 of yacc.c */ 7062 7041 #line 1505 "parser.yy" 7063 { (yyval.decl) = 0; }7064 break;7065 7066 case 375:7067 7068 /* Line 1806 of yacc.c */7069 #line 1507 "parser.yy"7070 7042 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 7071 7043 break; … … 7074 7046 7075 7047 /* Line 1806 of yacc.c */ 7076 #line 151 3"parser.yy"7048 #line 1511 "parser.yy" 7077 7049 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); } 7078 7050 break; … … 7081 7053 7082 7054 /* Line 1806 of yacc.c */ 7083 #line 151 6"parser.yy"7055 #line 1514 "parser.yy" 7084 7056 { // mark all fields in list 7085 7057 for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) … … 7092 7064 7093 7065 /* Line 1806 of yacc.c */ 7066 #line 1524 "parser.yy" 7067 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); } 7068 break; 7069 7070 case 382: 7071 7072 /* Line 1806 of yacc.c */ 7094 7073 #line 1526 "parser.yy" 7095 { (yyval.decl) = (yyvsp[(1) - ( 2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }7096 break; 7097 7098 case 38 2:7074 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); } 7075 break; 7076 7077 case 383: 7099 7078 7100 7079 /* Line 1806 of yacc.c */ 7101 7080 #line 1528 "parser.yy" 7102 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }7103 break;7104 7105 case 383:7106 7107 /* Line 1806 of yacc.c */7108 #line 1530 "parser.yy"7109 7081 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); } 7110 7082 break; … … 7113 7085 7114 7086 /* Line 1806 of yacc.c */ 7087 #line 1533 "parser.yy" 7088 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7089 break; 7090 7091 case 385: 7092 7093 /* Line 1806 of yacc.c */ 7115 7094 #line 1535 "parser.yy" 7116 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }7117 break;7118 7119 case 385:7120 7121 /* Line 1806 of yacc.c */7122 #line 1537 "parser.yy"7123 7095 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); } 7124 7096 break; … … 7127 7099 7128 7100 /* Line 1806 of yacc.c */ 7101 #line 1540 "parser.yy" 7102 { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ } 7103 break; 7104 7105 case 387: 7106 7107 /* Line 1806 of yacc.c */ 7129 7108 #line 1542 "parser.yy" 7130 { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }7131 break;7132 7133 case 387:7134 7135 /* Line 1806 of yacc.c */7136 #line 1544 "parser.yy"7137 7109 { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); } 7138 7110 break; … … 7141 7113 7142 7114 /* Line 1806 of yacc.c */ 7143 #line 154 7"parser.yy"7115 #line 1545 "parser.yy" 7144 7116 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 7145 7117 break; … … 7148 7120 7149 7121 /* Line 1806 of yacc.c */ 7150 #line 15 50"parser.yy"7122 #line 1548 "parser.yy" 7151 7123 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 7152 7124 break; … … 7155 7127 7156 7128 /* Line 1806 of yacc.c */ 7129 #line 1554 "parser.yy" 7130 { (yyval.en) = 0; } 7131 break; 7132 7133 case 392: 7134 7135 /* Line 1806 of yacc.c */ 7157 7136 #line 1556 "parser.yy" 7158 { (yyval.en) = 0; }7159 break;7160 7161 case 392:7162 7163 /* Line 1806 of yacc.c */7164 #line 1558 "parser.yy"7165 7137 { (yyval.en) = (yyvsp[(1) - (1)].en); } 7166 7138 break; … … 7169 7141 7170 7142 /* Line 1806 of yacc.c */ 7171 #line 156 3"parser.yy"7143 #line 1561 "parser.yy" 7172 7144 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7173 7145 break; … … 7176 7148 7177 7149 /* Line 1806 of yacc.c */ 7150 #line 1570 "parser.yy" 7151 { (yyval.decl) = DeclarationNode::newEnum( nullptr, (yyvsp[(3) - (5)].decl) ); } 7152 break; 7153 7154 case 396: 7155 7156 /* Line 1806 of yacc.c */ 7178 7157 #line 1572 "parser.yy" 7179 { (yyval.decl) = DeclarationNode::newEnum( nullptr, (yyvsp[(3) - (5)].decl) ); }7180 break;7181 7182 case 396:7183 7184 /* Line 1806 of yacc.c */7185 #line 1574 "parser.yy"7186 7158 { 7187 7159 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); … … 7193 7165 7194 7166 /* Line 1806 of yacc.c */ 7167 #line 1577 "parser.yy" 7168 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); } 7169 break; 7170 7171 case 398: 7172 7173 /* Line 1806 of yacc.c */ 7195 7174 #line 1579 "parser.yy" 7196 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }7197 break;7198 7199 case 398:7200 7201 /* Line 1806 of yacc.c */7202 #line 1581 "parser.yy"7203 7175 { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); } 7204 7176 break; … … 7207 7179 7208 7180 /* Line 1806 of yacc.c */ 7181 #line 1584 "parser.yy" 7182 { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); } 7183 break; 7184 7185 case 400: 7186 7187 /* Line 1806 of yacc.c */ 7209 7188 #line 1586 "parser.yy" 7210 { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }7211 break;7212 7213 case 400:7214 7215 /* Line 1806 of yacc.c */7216 #line 1588 "parser.yy"7217 7189 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); } 7218 7190 break; … … 7221 7193 7222 7194 /* Line 1806 of yacc.c */ 7195 #line 1591 "parser.yy" 7196 { (yyval.en) = 0; } 7197 break; 7198 7199 case 402: 7200 7201 /* Line 1806 of yacc.c */ 7223 7202 #line 1593 "parser.yy" 7224 { (yyval.en) = 0; }7225 break;7226 7227 case 402:7228 7229 /* Line 1806 of yacc.c */7230 #line 1595 "parser.yy"7231 7203 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7232 7204 break; … … 7235 7207 7236 7208 /* Line 1806 of yacc.c */ 7237 #line 160 2"parser.yy"7209 #line 1600 "parser.yy" 7238 7210 { (yyval.decl) = 0; } 7239 7211 break; … … 7242 7214 7243 7215 /* Line 1806 of yacc.c */ 7216 #line 1608 "parser.yy" 7217 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7218 break; 7219 7220 case 408: 7221 7222 /* Line 1806 of yacc.c */ 7244 7223 #line 1610 "parser.yy" 7245 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->a ppendList( (yyvsp[(5) - (5)].decl)); }7246 break; 7247 7248 case 40 8:7224 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7225 break; 7226 7227 case 409: 7249 7228 7250 7229 /* Line 1806 of yacc.c */ … … 7253 7232 break; 7254 7233 7255 case 409:7256 7257 /* Line 1806 of yacc.c */7258 #line 1614 "parser.yy"7259 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }7260 break;7261 7262 7234 case 411: 7235 7236 /* Line 1806 of yacc.c */ 7237 #line 1620 "parser.yy" 7238 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7239 break; 7240 7241 case 412: 7263 7242 7264 7243 /* Line 1806 of yacc.c */ … … 7267 7246 break; 7268 7247 7269 case 41 2:7248 case 413: 7270 7249 7271 7250 /* Line 1806 of yacc.c */ 7272 7251 #line 1624 "parser.yy" 7252 { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); } 7253 break; 7254 7255 case 415: 7256 7257 /* Line 1806 of yacc.c */ 7258 #line 1630 "parser.yy" 7273 7259 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7274 7260 break; 7275 7261 7276 case 413: 7277 7278 /* Line 1806 of yacc.c */ 7279 #line 1626 "parser.yy" 7280 { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); } 7281 break; 7282 7283 case 415: 7284 7285 /* Line 1806 of yacc.c */ 7286 #line 1632 "parser.yy" 7262 case 416: 7263 7264 /* Line 1806 of yacc.c */ 7265 #line 1635 "parser.yy" 7266 { (yyval.decl) = 0; } 7267 break; 7268 7269 case 419: 7270 7271 /* Line 1806 of yacc.c */ 7272 #line 1642 "parser.yy" 7273 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7274 break; 7275 7276 case 422: 7277 7278 /* Line 1806 of yacc.c */ 7279 #line 1649 "parser.yy" 7287 7280 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7288 7281 break; 7289 7282 7290 case 416: 7291 7292 /* Line 1806 of yacc.c */ 7293 #line 1637 "parser.yy" 7294 { (yyval.decl) = 0; } 7295 break; 7296 7297 case 419: 7298 7299 /* Line 1806 of yacc.c */ 7300 #line 1644 "parser.yy" 7301 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7302 break; 7303 7304 case 422: 7283 case 423: 7305 7284 7306 7285 /* Line 1806 of yacc.c */ … … 7309 7288 break; 7310 7289 7311 case 423:7312 7313 /* Line 1806 of yacc.c */7314 #line 1653 "parser.yy"7315 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }7316 break;7317 7318 7290 case 425: 7319 7291 7320 7292 /* Line 1806 of yacc.c */ 7321 #line 166 2"parser.yy"7293 #line 1660 "parser.yy" 7322 7294 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 7323 7295 break; … … 7326 7298 7327 7299 /* Line 1806 of yacc.c */ 7300 #line 1663 "parser.yy" 7301 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 7302 break; 7303 7304 case 427: 7305 7306 /* Line 1806 of yacc.c */ 7328 7307 #line 1665 "parser.yy" 7329 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }7330 break;7331 7332 case 427:7333 7334 /* Line 1806 of yacc.c */7335 #line 1667 "parser.yy"7336 7308 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); } 7337 7309 break; … … 7340 7312 7341 7313 /* Line 1806 of yacc.c */ 7342 #line 167 7"parser.yy"7314 #line 1675 "parser.yy" 7343 7315 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7344 7316 break; … … 7347 7319 7348 7320 /* Line 1806 of yacc.c */ 7349 #line 168 3"parser.yy"7321 #line 1681 "parser.yy" 7350 7322 { 7351 7323 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7357 7329 7358 7330 /* Line 1806 of yacc.c */ 7359 #line 168 8"parser.yy"7331 #line 1686 "parser.yy" 7360 7332 { 7361 7333 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7367 7339 7368 7340 /* Line 1806 of yacc.c */ 7369 #line 169 7"parser.yy"7341 #line 1695 "parser.yy" 7370 7342 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7371 7343 break; … … 7374 7346 7375 7347 /* Line 1806 of yacc.c */ 7348 #line 1704 "parser.yy" 7349 { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); } 7350 break; 7351 7352 case 439: 7353 7354 /* Line 1806 of yacc.c */ 7376 7355 #line 1706 "parser.yy" 7377 { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }7378 break;7379 7380 case 439:7381 7382 /* Line 1806 of yacc.c */7383 #line 1708 "parser.yy"7384 7356 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); } 7385 7357 break; … … 7388 7360 7389 7361 /* Line 1806 of yacc.c */ 7390 #line 173 3"parser.yy"7362 #line 1731 "parser.yy" 7391 7363 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7392 7364 break; … … 7395 7367 7396 7368 /* Line 1806 of yacc.c */ 7397 #line 17 41"parser.yy"7369 #line 1739 "parser.yy" 7398 7370 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7399 7371 break; … … 7402 7374 7403 7375 /* Line 1806 of yacc.c */ 7376 #line 1744 "parser.yy" 7377 { (yyval.in) = 0; } 7378 break; 7379 7380 case 457: 7381 7382 /* Line 1806 of yacc.c */ 7404 7383 #line 1746 "parser.yy" 7384 { (yyval.in) = (yyvsp[(2) - (2)].in); } 7385 break; 7386 7387 case 458: 7388 7389 /* Line 1806 of yacc.c */ 7390 #line 1748 "parser.yy" 7391 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); } 7392 break; 7393 7394 case 459: 7395 7396 /* Line 1806 of yacc.c */ 7397 #line 1752 "parser.yy" 7398 { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); } 7399 break; 7400 7401 case 460: 7402 7403 /* Line 1806 of yacc.c */ 7404 #line 1753 "parser.yy" 7405 { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); } 7406 break; 7407 7408 case 461: 7409 7410 /* Line 1806 of yacc.c */ 7411 #line 1758 "parser.yy" 7405 7412 { (yyval.in) = 0; } 7406 7413 break; 7407 7414 7408 case 457: 7409 7410 /* Line 1806 of yacc.c */ 7411 #line 1748 "parser.yy" 7412 { (yyval.in) = (yyvsp[(2) - (2)].in); } 7413 break; 7414 7415 case 458: 7416 7417 /* Line 1806 of yacc.c */ 7418 #line 1750 "parser.yy" 7419 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); } 7420 break; 7421 7422 case 459: 7423 7424 /* Line 1806 of yacc.c */ 7425 #line 1754 "parser.yy" 7426 { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); } 7427 break; 7428 7429 case 460: 7430 7431 /* Line 1806 of yacc.c */ 7432 #line 1755 "parser.yy" 7433 { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); } 7434 break; 7435 7436 case 461: 7415 case 463: 7437 7416 7438 7417 /* Line 1806 of yacc.c */ 7439 7418 #line 1760 "parser.yy" 7440 { (yyval.in) = 0; }7441 break;7442 7443 case 463:7444 7445 /* Line 1806 of yacc.c */7446 #line 1762 "parser.yy"7447 7419 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); } 7448 7420 break; … … 7451 7423 7452 7424 /* Line 1806 of yacc.c */ 7425 #line 1761 "parser.yy" 7426 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); } 7427 break; 7428 7429 case 465: 7430 7431 /* Line 1806 of yacc.c */ 7453 7432 #line 1763 "parser.yy" 7454 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); }7455 break;7456 7457 case 465:7458 7459 /* Line 1806 of yacc.c */7460 #line 1765 "parser.yy"7461 7433 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_last( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); } 7462 7434 break; … … 7465 7437 7466 7438 /* Line 1806 of yacc.c */ 7467 #line 17 81"parser.yy"7439 #line 1779 "parser.yy" 7468 7440 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); } 7469 7441 break; … … 7472 7444 7473 7445 /* Line 1806 of yacc.c */ 7474 #line 178 7"parser.yy"7446 #line 1785 "parser.yy" 7475 7447 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) ) ); } 7476 7448 break; … … 7479 7451 7480 7452 /* Line 1806 of yacc.c */ 7481 #line 179 3"parser.yy"7453 #line 1791 "parser.yy" 7482 7454 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); } 7483 7455 break; 7484 7456 7485 7457 case 471: 7458 7459 /* Line 1806 of yacc.c */ 7460 #line 1794 "parser.yy" 7461 { (yyval.en) = (yyvsp[(3) - (5)].en); } 7462 break; 7463 7464 case 472: 7486 7465 7487 7466 /* Line 1806 of yacc.c */ … … 7490 7469 break; 7491 7470 7492 case 47 2:7471 case 473: 7493 7472 7494 7473 /* Line 1806 of yacc.c */ 7495 7474 #line 1798 "parser.yy" 7496 { (yyval.en) = (yyvsp[(3) - (5)].en); }7497 break; 7498 7499 case 47 3:7475 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); } 7476 break; 7477 7478 case 474: 7500 7479 7501 7480 /* Line 1806 of yacc.c */ 7502 7481 #line 1800 "parser.yy" 7503 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); }7504 break;7505 7506 case 474:7507 7508 /* Line 1806 of yacc.c */7509 #line 1802 "parser.yy"7510 7482 { (yyval.en) = (yyvsp[(4) - (6)].en); } 7511 7483 break; … … 7514 7486 7515 7487 /* Line 1806 of yacc.c */ 7488 #line 1824 "parser.yy" 7489 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7490 break; 7491 7492 case 477: 7493 7494 /* Line 1806 of yacc.c */ 7516 7495 #line 1826 "parser.yy" 7496 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7497 break; 7498 7499 case 478: 7500 7501 /* Line 1806 of yacc.c */ 7502 #line 1828 "parser.yy" 7503 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 7504 break; 7505 7506 case 480: 7507 7508 /* Line 1806 of yacc.c */ 7509 #line 1834 "parser.yy" 7517 7510 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7518 7511 break; 7519 7512 7520 case 4 77:7521 7522 /* Line 1806 of yacc.c */ 7523 #line 18 28"parser.yy"7513 case 481: 7514 7515 /* Line 1806 of yacc.c */ 7516 #line 1836 "parser.yy" 7524 7517 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7525 7518 break; 7526 7519 7527 case 478:7528 7529 /* Line 1806 of yacc.c */7530 #line 1830 "parser.yy"7531 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }7532 break;7533 7534 case 480:7535 7536 /* Line 1806 of yacc.c */7537 #line 1836 "parser.yy"7538 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }7539 break;7540 7541 case 481:7542 7543 /* Line 1806 of yacc.c */7544 #line 1838 "parser.yy"7545 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }7546 break;7547 7548 7520 case 482: 7549 7521 7550 7522 /* Line 1806 of yacc.c */ 7551 #line 184 3"parser.yy"7523 #line 1841 "parser.yy" 7552 7524 { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 7553 7525 break; … … 7556 7528 7557 7529 /* Line 1806 of yacc.c */ 7558 #line 184 9"parser.yy"7530 #line 1847 "parser.yy" 7559 7531 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); } 7560 7532 break; … … 7563 7535 7564 7536 /* Line 1806 of yacc.c */ 7537 #line 1852 "parser.yy" 7538 { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); } 7539 break; 7540 7541 case 486: 7542 7543 /* Line 1806 of yacc.c */ 7565 7544 #line 1854 "parser.yy" 7566 { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }7567 break;7568 7569 case 486:7570 7571 /* Line 1806 of yacc.c */7572 #line 1856 "parser.yy"7573 7545 { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); } 7574 7546 break; … … 7577 7549 7578 7550 /* Line 1806 of yacc.c */ 7551 #line 1860 "parser.yy" 7552 { (yyval.tclass) = DeclarationNode::Otype; } 7553 break; 7554 7555 case 489: 7556 7557 /* Line 1806 of yacc.c */ 7579 7558 #line 1862 "parser.yy" 7580 { (yyval.tclass) = DeclarationNode:: Otype; }7581 break; 7582 7583 case 4 89:7559 { (yyval.tclass) = DeclarationNode::Ftype; } 7560 break; 7561 7562 case 490: 7584 7563 7585 7564 /* Line 1806 of yacc.c */ 7586 7565 #line 1864 "parser.yy" 7587 { (yyval.tclass) = DeclarationNode::Ftype; }7588 break;7589 7590 case 490:7591 7592 /* Line 1806 of yacc.c */7593 #line 1866 "parser.yy"7594 7566 { (yyval.tclass) = DeclarationNode::Dtype; } 7595 7567 break; … … 7598 7570 7599 7571 /* Line 1806 of yacc.c */ 7572 #line 1869 "parser.yy" 7573 { (yyval.decl) = 0; } 7574 break; 7575 7576 case 492: 7577 7578 /* Line 1806 of yacc.c */ 7600 7579 #line 1871 "parser.yy" 7601 { (yyval.decl) = 0; }7602 break;7603 7604 case 492:7605 7606 /* Line 1806 of yacc.c */7607 #line 1873 "parser.yy"7608 7580 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 7609 7581 break; … … 7612 7584 7613 7585 /* Line 1806 of yacc.c */ 7614 #line 187 8"parser.yy"7586 #line 1876 "parser.yy" 7615 7587 { 7616 7588 typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) ); … … 7622 7594 7623 7595 /* Line 1806 of yacc.c */ 7596 #line 1881 "parser.yy" 7597 { (yyval.decl) = (yyvsp[(4) - (5)].decl); } 7598 break; 7599 7600 case 495: 7601 7602 /* Line 1806 of yacc.c */ 7624 7603 #line 1883 "parser.yy" 7625 { (yyval.decl) = (yyvsp[(4) - (5)].decl); }7626 break;7627 7628 case 495:7629 7630 /* Line 1806 of yacc.c */7631 #line 1885 "parser.yy"7632 7604 { (yyval.decl) = 0; } 7633 7605 break; … … 7636 7608 7637 7609 /* Line 1806 of yacc.c */ 7638 #line 18 90"parser.yy"7610 #line 1888 "parser.yy" 7639 7611 { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); } 7640 7612 break; … … 7643 7615 7644 7616 /* Line 1806 of yacc.c */ 7617 #line 1891 "parser.yy" 7618 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); } 7619 break; 7620 7621 case 499: 7622 7623 /* Line 1806 of yacc.c */ 7645 7624 #line 1893 "parser.yy" 7646 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); }7647 break;7648 7649 case 499:7650 7651 /* Line 1806 of yacc.c */7652 #line 1895 "parser.yy"7653 7625 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); } 7654 7626 break; … … 7657 7629 7658 7630 /* Line 1806 of yacc.c */ 7631 #line 1898 "parser.yy" 7632 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 7633 break; 7634 7635 case 501: 7636 7637 /* Line 1806 of yacc.c */ 7659 7638 #line 1900 "parser.yy" 7660 { (yyval.decl) = (yyvsp[( 2) - (2)].decl); }7661 break; 7662 7663 case 50 1:7639 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); } 7640 break; 7641 7642 case 502: 7664 7643 7665 7644 /* Line 1806 of yacc.c */ 7666 7645 #line 1902 "parser.yy" 7667 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }7668 break;7669 7670 case 502:7671 7672 /* Line 1806 of yacc.c */7673 #line 1904 "parser.yy"7674 7646 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); } 7675 7647 break; … … 7678 7650 7679 7651 /* Line 1806 of yacc.c */ 7652 #line 1907 "parser.yy" 7653 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); } 7654 break; 7655 7656 case 504: 7657 7658 /* Line 1806 of yacc.c */ 7680 7659 #line 1909 "parser.yy" 7681 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }7682 break;7683 7684 case 504:7685 7686 /* Line 1806 of yacc.c */7687 #line 1911 "parser.yy"7688 7660 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); } 7689 7661 break; … … 7692 7664 7693 7665 /* Line 1806 of yacc.c */ 7694 #line 191 6"parser.yy"7666 #line 1914 "parser.yy" 7695 7667 { 7696 7668 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD ); … … 7702 7674 7703 7675 /* Line 1806 of yacc.c */ 7704 #line 19 21"parser.yy"7676 #line 1919 "parser.yy" 7705 7677 { 7706 7678 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG ); … … 7712 7684 7713 7685 /* Line 1806 of yacc.c */ 7714 #line 192 9"parser.yy"7686 #line 1927 "parser.yy" 7715 7687 { 7716 7688 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID ); … … 7722 7694 7723 7695 /* Line 1806 of yacc.c */ 7724 #line 193 4"parser.yy"7696 #line 1932 "parser.yy" 7725 7697 { 7726 7698 typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) ); … … 7732 7704 7733 7705 /* Line 1806 of yacc.c */ 7734 #line 193 9"parser.yy"7706 #line 1937 "parser.yy" 7735 7707 { 7736 7708 typedefTable.leaveTrait(); … … 7743 7715 7744 7716 /* Line 1806 of yacc.c */ 7745 #line 194 9"parser.yy"7717 #line 1947 "parser.yy" 7746 7718 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 7747 7719 break; … … 7750 7722 7751 7723 /* Line 1806 of yacc.c */ 7752 #line 195 9"parser.yy"7724 #line 1957 "parser.yy" 7753 7725 { 7754 7726 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7760 7732 7761 7733 /* Line 1806 of yacc.c */ 7762 #line 196 4"parser.yy"7734 #line 1962 "parser.yy" 7763 7735 { 7764 7736 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7770 7742 7771 7743 /* Line 1806 of yacc.c */ 7772 #line 196 9"parser.yy"7744 #line 1967 "parser.yy" 7773 7745 { 7774 7746 typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); … … 7780 7752 7781 7753 /* Line 1806 of yacc.c */ 7782 #line 197 7"parser.yy"7754 #line 1975 "parser.yy" 7783 7755 { 7784 7756 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7790 7762 7791 7763 /* Line 1806 of yacc.c */ 7792 #line 198 2"parser.yy"7764 #line 1980 "parser.yy" 7793 7765 { 7794 7766 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7800 7772 7801 7773 /* Line 1806 of yacc.c */ 7774 #line 1990 "parser.yy" 7775 {} 7776 break; 7777 7778 case 520: 7779 7780 /* Line 1806 of yacc.c */ 7802 7781 #line 1992 "parser.yy" 7782 { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl); } 7783 break; 7784 7785 case 522: 7786 7787 /* Line 1806 of yacc.c */ 7788 #line 1998 "parser.yy" 7789 { (yyval.decl) = (yyvsp[(1) - (3)].decl) != nullptr ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); } 7790 break; 7791 7792 case 523: 7793 7794 /* Line 1806 of yacc.c */ 7795 #line 2003 "parser.yy" 7796 { (yyval.decl) = 0; } 7797 break; 7798 7799 case 527: 7800 7801 /* Line 1806 of yacc.c */ 7802 #line 2011 "parser.yy" 7803 7803 {} 7804 7804 break; 7805 7805 7806 case 520: 7807 7808 /* Line 1806 of yacc.c */ 7809 #line 1994 "parser.yy" 7810 { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl); } 7811 break; 7812 7813 case 522: 7814 7815 /* Line 1806 of yacc.c */ 7816 #line 2000 "parser.yy" 7817 { (yyval.decl) = (yyvsp[(1) - (3)].decl) != nullptr ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); } 7818 break; 7819 7820 case 523: 7821 7822 /* Line 1806 of yacc.c */ 7823 #line 2005 "parser.yy" 7824 { (yyval.decl) = 0; } 7825 break; 7826 7827 case 527: 7806 case 528: 7828 7807 7829 7808 /* Line 1806 of yacc.c */ 7830 7809 #line 2013 "parser.yy" 7831 {}7832 break;7833 7834 case 528:7835 7836 /* Line 1806 of yacc.c */7837 #line 2015 "parser.yy"7838 7810 { 7839 7811 linkageStack.push( linkage ); // handle nested extern "C"/"Cforall" … … 7845 7817 7846 7818 /* Line 1806 of yacc.c */ 7847 #line 20 20"parser.yy"7819 #line 2018 "parser.yy" 7848 7820 { 7849 7821 linkage = linkageStack.top(); … … 7856 7828 7857 7829 /* Line 1806 of yacc.c */ 7858 #line 202 6"parser.yy"7830 #line 2024 "parser.yy" 7859 7831 { // mark all fields in list 7860 7832 for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) … … 7867 7839 7868 7840 /* Line 1806 of yacc.c */ 7869 #line 20 41"parser.yy"7841 #line 2039 "parser.yy" 7870 7842 { 7871 7843 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7878 7850 7879 7851 /* Line 1806 of yacc.c */ 7880 #line 204 7"parser.yy"7852 #line 2045 "parser.yy" 7881 7853 { 7882 7854 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7889 7861 7890 7862 /* Line 1806 of yacc.c */ 7891 #line 205 6"parser.yy"7863 #line 2054 "parser.yy" 7892 7864 { 7893 7865 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7900 7872 7901 7873 /* Line 1806 of yacc.c */ 7902 #line 206 2"parser.yy"7874 #line 2060 "parser.yy" 7903 7875 { 7904 7876 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7911 7883 7912 7884 /* Line 1806 of yacc.c */ 7913 #line 206 8"parser.yy"7885 #line 2066 "parser.yy" 7914 7886 { 7915 7887 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7922 7894 7923 7895 /* Line 1806 of yacc.c */ 7924 #line 207 4"parser.yy"7896 #line 2072 "parser.yy" 7925 7897 { 7926 7898 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7933 7905 7934 7906 /* Line 1806 of yacc.c */ 7935 #line 20 80"parser.yy"7907 #line 2078 "parser.yy" 7936 7908 { 7937 7909 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7944 7916 7945 7917 /* Line 1806 of yacc.c */ 7946 #line 208 8"parser.yy"7918 #line 2086 "parser.yy" 7947 7919 { 7948 7920 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7955 7927 7956 7928 /* Line 1806 of yacc.c */ 7957 #line 209 4"parser.yy"7929 #line 2092 "parser.yy" 7958 7930 { 7959 7931 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7966 7938 7967 7939 /* Line 1806 of yacc.c */ 7968 #line 210 2"parser.yy"7940 #line 2100 "parser.yy" 7969 7941 { 7970 7942 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7977 7949 7978 7950 /* Line 1806 of yacc.c */ 7979 #line 210 8"parser.yy"7951 #line 2106 "parser.yy" 7980 7952 { 7981 7953 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7988 7960 7989 7961 /* Line 1806 of yacc.c */ 7990 #line 212 3"parser.yy"7962 #line 2121 "parser.yy" 7991 7963 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 7992 7964 break; … … 7995 7967 7996 7968 /* Line 1806 of yacc.c */ 7997 #line 212 8"parser.yy"7969 #line 2126 "parser.yy" 7998 7970 { delete (yyvsp[(3) - (5)].str); } 7999 7971 break; … … 8002 7974 8003 7975 /* Line 1806 of yacc.c */ 8004 #line 213 3"parser.yy"7976 #line 2131 "parser.yy" 8005 7977 { (yyval.decl) = 0; } 8006 7978 break; … … 8009 7981 8010 7982 /* Line 1806 of yacc.c */ 8011 #line 21 40"parser.yy"7983 #line 2138 "parser.yy" 8012 7984 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 8013 7985 break; … … 8016 7988 8017 7989 /* Line 1806 of yacc.c */ 8018 #line 214 6"parser.yy"7990 #line 2144 "parser.yy" 8019 7991 { (yyval.decl) = 0; } 8020 7992 break; … … 8023 7995 8024 7996 /* Line 1806 of yacc.c */ 8025 #line 215 7"parser.yy"7997 #line 2155 "parser.yy" 8026 7998 { delete (yyvsp[(3) - (4)].en); } 8027 7999 break; … … 8030 8002 8031 8003 /* Line 1806 of yacc.c */ 8004 #line 2159 "parser.yy" 8005 { delete (yyvsp[(1) - (1)].tok); } 8006 break; 8007 8008 case 560: 8009 8010 /* Line 1806 of yacc.c */ 8011 #line 2160 "parser.yy" 8012 { delete (yyvsp[(1) - (1)].decl); } 8013 break; 8014 8015 case 561: 8016 8017 /* Line 1806 of yacc.c */ 8032 8018 #line 2161 "parser.yy" 8033 { delete (yyvsp[(1) - (1)]. tok); }8034 break; 8035 8036 case 56 0:8019 { delete (yyvsp[(1) - (1)].decl); } 8020 break; 8021 8022 case 562: 8037 8023 8038 8024 /* Line 1806 of yacc.c */ … … 8041 8027 break; 8042 8028 8043 case 561:8044 8045 /* Line 1806 of yacc.c */8046 #line 2163 "parser.yy"8047 { delete (yyvsp[(1) - (1)].decl); }8048 break;8049 8050 case 562:8051 8052 /* Line 1806 of yacc.c */8053 #line 2164 "parser.yy"8054 { delete (yyvsp[(1) - (1)].decl); }8055 break;8056 8057 8029 case 563: 8058 8030 8059 8031 /* Line 1806 of yacc.c */ 8060 #line 219 9"parser.yy"8032 #line 2197 "parser.yy" 8061 8033 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8062 8034 break; 8063 8035 8064 8036 case 565: 8037 8038 /* Line 1806 of yacc.c */ 8039 #line 2200 "parser.yy" 8040 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8041 break; 8042 8043 case 566: 8065 8044 8066 8045 /* Line 1806 of yacc.c */ … … 8069 8048 break; 8070 8049 8071 case 566:8072 8073 /* Line 1806 of yacc.c */8074 #line 2204 "parser.yy"8075 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8076 break;8077 8078 8050 case 567: 8079 8051 8080 8052 /* Line 1806 of yacc.c */ 8081 #line 220 9"parser.yy"8053 #line 2207 "parser.yy" 8082 8054 { 8083 8055 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8089 8061 8090 8062 /* Line 1806 of yacc.c */ 8091 #line 221 4"parser.yy"8063 #line 2212 "parser.yy" 8092 8064 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8093 8065 break; … … 8096 8068 8097 8069 /* Line 1806 of yacc.c */ 8070 #line 2217 "parser.yy" 8071 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8072 break; 8073 8074 case 570: 8075 8076 /* Line 1806 of yacc.c */ 8098 8077 #line 2219 "parser.yy" 8099 { (yyval.decl) = (yyvsp[( 2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0) ); }8100 break; 8101 8102 case 57 0:8078 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8079 break; 8080 8081 case 571: 8103 8082 8104 8083 /* Line 1806 of yacc.c */ 8105 8084 #line 2221 "parser.yy" 8106 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }8107 break;8108 8109 case 571:8110 8111 /* Line 1806 of yacc.c */8112 #line 2223 "parser.yy"8113 8085 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8114 8086 break; … … 8117 8089 8118 8090 /* Line 1806 of yacc.c */ 8091 #line 2226 "parser.yy" 8092 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8093 break; 8094 8095 case 573: 8096 8097 /* Line 1806 of yacc.c */ 8119 8098 #line 2228 "parser.yy" 8120 { (yyval.decl) = (yyvsp[( 1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }8121 break; 8122 8123 case 57 3:8099 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8100 break; 8101 8102 case 574: 8124 8103 8125 8104 /* Line 1806 of yacc.c */ … … 8128 8107 break; 8129 8108 8130 case 57 4:8109 case 575: 8131 8110 8132 8111 /* Line 1806 of yacc.c */ 8133 8112 #line 2232 "parser.yy" 8113 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8114 break; 8115 8116 case 576: 8117 8118 /* Line 1806 of yacc.c */ 8119 #line 2237 "parser.yy" 8120 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8121 break; 8122 8123 case 577: 8124 8125 /* Line 1806 of yacc.c */ 8126 #line 2239 "parser.yy" 8127 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8128 break; 8129 8130 case 578: 8131 8132 /* Line 1806 of yacc.c */ 8133 #line 2248 "parser.yy" 8134 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8135 break; 8136 8137 case 580: 8138 8139 /* Line 1806 of yacc.c */ 8140 #line 2251 "parser.yy" 8141 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8142 break; 8143 8144 case 581: 8145 8146 /* Line 1806 of yacc.c */ 8147 #line 2256 "parser.yy" 8148 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8149 break; 8150 8151 case 582: 8152 8153 /* Line 1806 of yacc.c */ 8154 #line 2258 "parser.yy" 8155 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8156 break; 8157 8158 case 583: 8159 8160 /* Line 1806 of yacc.c */ 8161 #line 2260 "parser.yy" 8162 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8163 break; 8164 8165 case 584: 8166 8167 /* Line 1806 of yacc.c */ 8168 #line 2265 "parser.yy" 8169 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8170 break; 8171 8172 case 585: 8173 8174 /* Line 1806 of yacc.c */ 8175 #line 2267 "parser.yy" 8176 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8177 break; 8178 8179 case 586: 8180 8181 /* Line 1806 of yacc.c */ 8182 #line 2269 "parser.yy" 8183 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8184 break; 8185 8186 case 587: 8187 8188 /* Line 1806 of yacc.c */ 8189 #line 2274 "parser.yy" 8134 8190 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8135 8191 break; 8136 8192 8137 case 575: 8138 8139 /* Line 1806 of yacc.c */ 8140 #line 2234 "parser.yy" 8141 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8142 break; 8143 8144 case 576: 8145 8146 /* Line 1806 of yacc.c */ 8147 #line 2239 "parser.yy" 8148 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8149 break; 8150 8151 case 577: 8152 8153 /* Line 1806 of yacc.c */ 8154 #line 2241 "parser.yy" 8155 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8156 break; 8157 8158 case 578: 8159 8160 /* Line 1806 of yacc.c */ 8161 #line 2250 "parser.yy" 8162 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8163 break; 8164 8165 case 580: 8166 8167 /* Line 1806 of yacc.c */ 8168 #line 2253 "parser.yy" 8169 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8170 break; 8171 8172 case 581: 8173 8174 /* Line 1806 of yacc.c */ 8175 #line 2258 "parser.yy" 8176 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8177 break; 8178 8179 case 582: 8180 8181 /* Line 1806 of yacc.c */ 8182 #line 2260 "parser.yy" 8183 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8184 break; 8185 8186 case 583: 8187 8188 /* Line 1806 of yacc.c */ 8189 #line 2262 "parser.yy" 8190 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8191 break; 8192 8193 case 584: 8194 8195 /* Line 1806 of yacc.c */ 8196 #line 2267 "parser.yy" 8197 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8198 break; 8199 8200 case 585: 8201 8202 /* Line 1806 of yacc.c */ 8203 #line 2269 "parser.yy" 8204 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8205 break; 8206 8207 case 586: 8208 8209 /* Line 1806 of yacc.c */ 8210 #line 2271 "parser.yy" 8211 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8212 break; 8213 8214 case 587: 8193 case 588: 8215 8194 8216 8195 /* Line 1806 of yacc.c */ … … 8219 8198 break; 8220 8199 8221 case 58 8:8200 case 589: 8222 8201 8223 8202 /* Line 1806 of yacc.c */ 8224 8203 #line 2278 "parser.yy" 8204 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8205 break; 8206 8207 case 593: 8208 8209 /* Line 1806 of yacc.c */ 8210 #line 2293 "parser.yy" 8211 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); } 8212 break; 8213 8214 case 594: 8215 8216 /* Line 1806 of yacc.c */ 8217 #line 2295 "parser.yy" 8218 { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); } 8219 break; 8220 8221 case 595: 8222 8223 /* Line 1806 of yacc.c */ 8224 #line 2297 "parser.yy" 8225 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8226 break; 8227 8228 case 596: 8229 8230 /* Line 1806 of yacc.c */ 8231 #line 2302 "parser.yy" 8232 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8233 break; 8234 8235 case 597: 8236 8237 /* Line 1806 of yacc.c */ 8238 #line 2304 "parser.yy" 8239 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8240 break; 8241 8242 case 598: 8243 8244 /* Line 1806 of yacc.c */ 8245 #line 2306 "parser.yy" 8246 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8247 break; 8248 8249 case 599: 8250 8251 /* Line 1806 of yacc.c */ 8252 #line 2311 "parser.yy" 8225 8253 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8226 8254 break; 8227 8255 8228 case 589: 8229 8230 /* Line 1806 of yacc.c */ 8231 #line 2280 "parser.yy" 8232 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8233 break; 8234 8235 case 593: 8236 8237 /* Line 1806 of yacc.c */ 8238 #line 2295 "parser.yy" 8239 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); } 8240 break; 8241 8242 case 594: 8243 8244 /* Line 1806 of yacc.c */ 8245 #line 2297 "parser.yy" 8246 { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); } 8247 break; 8248 8249 case 595: 8250 8251 /* Line 1806 of yacc.c */ 8252 #line 2299 "parser.yy" 8253 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8254 break; 8255 8256 case 596: 8257 8258 /* Line 1806 of yacc.c */ 8259 #line 2304 "parser.yy" 8260 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8261 break; 8262 8263 case 597: 8264 8265 /* Line 1806 of yacc.c */ 8266 #line 2306 "parser.yy" 8267 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8268 break; 8269 8270 case 598: 8271 8272 /* Line 1806 of yacc.c */ 8273 #line 2308 "parser.yy" 8274 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8275 break; 8276 8277 case 599: 8256 case 600: 8278 8257 8279 8258 /* Line 1806 of yacc.c */ … … 8282 8261 break; 8283 8262 8284 case 60 0:8263 case 601: 8285 8264 8286 8265 /* Line 1806 of yacc.c */ 8287 8266 #line 2315 "parser.yy" 8288 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8289 break;8290 8291 case 601:8292 8293 /* Line 1806 of yacc.c */8294 #line 2317 "parser.yy"8295 8267 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8296 8268 break; … … 8299 8271 8300 8272 /* Line 1806 of yacc.c */ 8301 #line 233 2"parser.yy"8273 #line 2330 "parser.yy" 8302 8274 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8303 8275 break; 8304 8276 8305 8277 case 604: 8278 8279 /* Line 1806 of yacc.c */ 8280 #line 2333 "parser.yy" 8281 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8282 break; 8283 8284 case 605: 8306 8285 8307 8286 /* Line 1806 of yacc.c */ … … 8310 8289 break; 8311 8290 8312 case 605:8313 8314 /* Line 1806 of yacc.c */8315 #line 2337 "parser.yy"8316 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8317 break;8318 8319 8291 case 607: 8320 8292 8321 8293 /* Line 1806 of yacc.c */ 8322 #line 234 3"parser.yy"8294 #line 2341 "parser.yy" 8323 8295 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8324 8296 break; … … 8327 8299 8328 8300 /* Line 1806 of yacc.c */ 8301 #line 2346 "parser.yy" 8302 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8303 break; 8304 8305 case 609: 8306 8307 /* Line 1806 of yacc.c */ 8329 8308 #line 2348 "parser.yy" 8330 { (yyval.decl) = (yyvsp[( 2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0) ); }8331 break; 8332 8333 case 6 09:8309 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8310 break; 8311 8312 case 610: 8334 8313 8335 8314 /* Line 1806 of yacc.c */ 8336 8315 #line 2350 "parser.yy" 8337 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }8338 break;8339 8340 case 610:8341 8342 /* Line 1806 of yacc.c */8343 #line 2352 "parser.yy"8344 8316 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8345 8317 break; … … 8348 8320 8349 8321 /* Line 1806 of yacc.c */ 8322 #line 2355 "parser.yy" 8323 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8324 break; 8325 8326 case 612: 8327 8328 /* Line 1806 of yacc.c */ 8350 8329 #line 2357 "parser.yy" 8351 { (yyval.decl) = (yyvsp[( 1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }8352 break; 8353 8354 case 61 2:8330 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8331 break; 8332 8333 case 613: 8355 8334 8356 8335 /* Line 1806 of yacc.c */ … … 8359 8338 break; 8360 8339 8361 case 61 3:8340 case 614: 8362 8341 8363 8342 /* Line 1806 of yacc.c */ 8364 8343 #line 2361 "parser.yy" 8365 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8366 break;8367 8368 case 614:8369 8370 /* Line 1806 of yacc.c */8371 #line 2363 "parser.yy"8372 8344 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8373 8345 break; … … 8376 8348 8377 8349 /* Line 1806 of yacc.c */ 8350 #line 2366 "parser.yy" 8351 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8352 break; 8353 8354 case 616: 8355 8356 /* Line 1806 of yacc.c */ 8378 8357 #line 2368 "parser.yy" 8379 { (yyval.decl) = (yyvsp[( 1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }8380 break; 8381 8382 case 61 6:8358 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8359 break; 8360 8361 case 617: 8383 8362 8384 8363 /* Line 1806 of yacc.c */ 8385 8364 #line 2370 "parser.yy" 8386 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }8387 break;8388 8389 case 617:8390 8391 /* Line 1806 of yacc.c */8392 #line 2372 "parser.yy"8393 8365 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8394 8366 break; … … 8397 8369 8398 8370 /* Line 1806 of yacc.c */ 8399 #line 238 2"parser.yy"8371 #line 2380 "parser.yy" 8400 8372 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8401 8373 break; 8402 8374 8403 8375 case 620: 8376 8377 /* Line 1806 of yacc.c */ 8378 #line 2383 "parser.yy" 8379 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8380 break; 8381 8382 case 621: 8404 8383 8405 8384 /* Line 1806 of yacc.c */ … … 8408 8387 break; 8409 8388 8410 case 621:8411 8412 /* Line 1806 of yacc.c */8413 #line 2387 "parser.yy"8414 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8415 break;8416 8417 8389 case 622: 8418 8390 8419 8391 /* Line 1806 of yacc.c */ 8392 #line 2390 "parser.yy" 8393 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8394 break; 8395 8396 case 623: 8397 8398 /* Line 1806 of yacc.c */ 8420 8399 #line 2392 "parser.yy" 8421 { (yyval.decl) = (yyvsp[( 2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0) ); }8422 break; 8423 8424 case 62 3:8400 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8401 break; 8402 8403 case 624: 8425 8404 8426 8405 /* Line 1806 of yacc.c */ 8427 8406 #line 2394 "parser.yy" 8428 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }8429 break;8430 8431 case 624:8432 8433 /* Line 1806 of yacc.c */8434 #line 2396 "parser.yy"8435 8407 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8436 8408 break; … … 8439 8411 8440 8412 /* Line 1806 of yacc.c */ 8413 #line 2399 "parser.yy" 8414 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8415 break; 8416 8417 case 626: 8418 8419 /* Line 1806 of yacc.c */ 8441 8420 #line 2401 "parser.yy" 8442 { (yyval.decl) = (yyvsp[( 1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }8443 break; 8444 8445 case 62 6:8421 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8422 break; 8423 8424 case 627: 8446 8425 8447 8426 /* Line 1806 of yacc.c */ … … 8450 8429 break; 8451 8430 8452 case 62 7:8431 case 628: 8453 8432 8454 8433 /* Line 1806 of yacc.c */ 8455 8434 #line 2405 "parser.yy" 8456 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8457 break;8458 8459 case 628:8460 8461 /* Line 1806 of yacc.c */8462 #line 2407 "parser.yy"8463 8435 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8464 8436 break; … … 8467 8439 8468 8440 /* Line 1806 of yacc.c */ 8441 #line 2410 "parser.yy" 8442 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8443 break; 8444 8445 case 630: 8446 8447 /* Line 1806 of yacc.c */ 8469 8448 #line 2412 "parser.yy" 8470 { (yyval.decl) = (yyvsp[( 1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }8471 break; 8472 8473 case 63 0:8449 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8450 break; 8451 8452 case 631: 8474 8453 8475 8454 /* Line 1806 of yacc.c */ 8476 8455 #line 2414 "parser.yy" 8477 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }8478 break;8479 8480 case 631:8481 8482 /* Line 1806 of yacc.c */8483 #line 2416 "parser.yy"8484 8456 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8485 8457 break; … … 8488 8460 8489 8461 /* Line 1806 of yacc.c */ 8490 #line 244 7"parser.yy"8462 #line 2445 "parser.yy" 8491 8463 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8492 8464 break; 8493 8465 8494 8466 case 634: 8467 8468 /* Line 1806 of yacc.c */ 8469 #line 2448 "parser.yy" 8470 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8471 break; 8472 8473 case 635: 8495 8474 8496 8475 /* Line 1806 of yacc.c */ … … 8499 8478 break; 8500 8479 8501 case 635:8502 8503 /* Line 1806 of yacc.c */8504 #line 2452 "parser.yy"8505 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8506 break;8507 8508 8480 case 636: 8509 8481 8510 8482 /* Line 1806 of yacc.c */ 8511 #line 245 7"parser.yy"8483 #line 2455 "parser.yy" 8512 8484 { 8513 8485 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8519 8491 8520 8492 /* Line 1806 of yacc.c */ 8521 #line 246 2"parser.yy"8493 #line 2460 "parser.yy" 8522 8494 { 8523 8495 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8529 8501 8530 8502 /* Line 1806 of yacc.c */ 8503 #line 2468 "parser.yy" 8504 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8505 break; 8506 8507 case 639: 8508 8509 /* Line 1806 of yacc.c */ 8531 8510 #line 2470 "parser.yy" 8532 { (yyval.decl) = (yyvsp[( 2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0) ); }8533 break; 8534 8535 case 6 39:8511 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8512 break; 8513 8514 case 640: 8536 8515 8537 8516 /* Line 1806 of yacc.c */ 8538 8517 #line 2472 "parser.yy" 8539 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }8540 break;8541 8542 case 640:8543 8544 /* Line 1806 of yacc.c */8545 #line 2474 "parser.yy"8546 8518 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8547 8519 break; … … 8550 8522 8551 8523 /* Line 1806 of yacc.c */ 8524 #line 2477 "parser.yy" 8525 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8526 break; 8527 8528 case 642: 8529 8530 /* Line 1806 of yacc.c */ 8552 8531 #line 2479 "parser.yy" 8553 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }8554 break;8555 8556 case 642:8557 8558 /* Line 1806 of yacc.c */8559 #line 2481 "parser.yy"8560 8532 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8561 8533 break; … … 8564 8536 8565 8537 /* Line 1806 of yacc.c */ 8538 #line 2484 "parser.yy" 8539 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8540 break; 8541 8542 case 644: 8543 8544 /* Line 1806 of yacc.c */ 8566 8545 #line 2486 "parser.yy" 8567 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }8568 break;8569 8570 case 644:8571 8572 /* Line 1806 of yacc.c */8573 #line 2488 "parser.yy"8574 8546 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8575 8547 break; 8576 8548 8577 8549 case 646: 8550 8551 /* Line 1806 of yacc.c */ 8552 #line 2501 "parser.yy" 8553 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8554 break; 8555 8556 case 647: 8578 8557 8579 8558 /* Line 1806 of yacc.c */ … … 8582 8561 break; 8583 8562 8584 case 647:8585 8586 /* Line 1806 of yacc.c */8587 #line 2505 "parser.yy"8588 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8589 break;8590 8591 8563 case 648: 8592 8564 8593 8565 /* Line 1806 of yacc.c */ 8566 #line 2508 "parser.yy" 8567 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8568 break; 8569 8570 case 649: 8571 8572 /* Line 1806 of yacc.c */ 8594 8573 #line 2510 "parser.yy" 8595 { (yyval.decl) = DeclarationNode::newPointer( 0); }8596 break; 8597 8598 case 6 49:8574 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8575 break; 8576 8577 case 650: 8599 8578 8600 8579 /* Line 1806 of yacc.c */ 8601 8580 #line 2512 "parser.yy" 8602 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }8603 break; 8604 8605 case 65 0:8581 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8582 break; 8583 8584 case 651: 8606 8585 8607 8586 /* Line 1806 of yacc.c */ 8608 8587 #line 2514 "parser.yy" 8609 { (yyval.decl) = (yyvsp[( 2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0) ); }8610 break; 8611 8612 case 65 1:8588 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8589 break; 8590 8591 case 652: 8613 8592 8614 8593 /* Line 1806 of yacc.c */ 8615 8594 #line 2516 "parser.yy" 8616 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }8617 break;8618 8619 case 652:8620 8621 /* Line 1806 of yacc.c */8622 #line 2518 "parser.yy"8623 8595 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8624 8596 break; 8625 8597 8626 8598 case 654: 8599 8600 /* Line 1806 of yacc.c */ 8601 #line 2522 "parser.yy" 8602 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8603 break; 8604 8605 case 655: 8627 8606 8628 8607 /* Line 1806 of yacc.c */ … … 8631 8610 break; 8632 8611 8633 case 65 5:8612 case 656: 8634 8613 8635 8614 /* Line 1806 of yacc.c */ 8636 8615 #line 2526 "parser.yy" 8637 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8638 break;8639 8640 case 656:8641 8642 /* Line 1806 of yacc.c */8643 #line 2528 "parser.yy"8644 8616 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8645 8617 break; … … 8648 8620 8649 8621 /* Line 1806 of yacc.c */ 8622 #line 2531 "parser.yy" 8623 { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); } 8624 break; 8625 8626 case 658: 8627 8628 /* Line 1806 of yacc.c */ 8650 8629 #line 2533 "parser.yy" 8651 { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr); }8652 break; 8653 8654 case 65 8:8630 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8631 break; 8632 8633 case 659: 8655 8634 8656 8635 /* Line 1806 of yacc.c */ 8657 8636 #line 2535 "parser.yy" 8658 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }8659 break;8660 8661 case 659:8662 8663 /* Line 1806 of yacc.c */8664 #line 2537 "parser.yy"8665 8637 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8666 8638 break; … … 8669 8641 8670 8642 /* Line 1806 of yacc.c */ 8643 #line 2541 "parser.yy" 8644 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8645 break; 8646 8647 case 661: 8648 8649 /* Line 1806 of yacc.c */ 8671 8650 #line 2543 "parser.yy" 8672 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }8673 break;8674 8675 case 661:8676 8677 /* Line 1806 of yacc.c */8678 #line 2545 "parser.yy"8679 8651 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); } 8680 8652 break; … … 8683 8655 8684 8656 /* Line 1806 of yacc.c */ 8657 #line 2549 "parser.yy" 8658 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); } 8659 break; 8660 8661 case 664: 8662 8663 /* Line 1806 of yacc.c */ 8685 8664 #line 2551 "parser.yy" 8686 { (yyval.decl) = DeclarationNode::new Array( (yyvsp[(3) - (5)].en), 0, false); }8687 break; 8688 8689 case 66 4:8665 { (yyval.decl) = DeclarationNode::newVarArray( 0 ); } 8666 break; 8667 8668 case 665: 8690 8669 8691 8670 /* Line 1806 of yacc.c */ 8692 8671 #line 2553 "parser.yy" 8693 { (yyval.decl) = DeclarationNode::newVarArray( 0); }8694 break; 8695 8696 case 66 5:8672 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); } 8673 break; 8674 8675 case 666: 8697 8676 8698 8677 /* Line 1806 of yacc.c */ 8699 8678 #line 2555 "parser.yy" 8700 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }8701 break;8702 8703 case 666:8704 8705 /* Line 1806 of yacc.c */8706 #line 2557 "parser.yy"8707 8679 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); } 8708 8680 break; 8709 8681 8710 8682 case 668: 8683 8684 /* Line 1806 of yacc.c */ 8685 #line 2570 "parser.yy" 8686 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8687 break; 8688 8689 case 669: 8711 8690 8712 8691 /* Line 1806 of yacc.c */ … … 8715 8694 break; 8716 8695 8717 case 669:8718 8719 /* Line 1806 of yacc.c */8720 #line 2574 "parser.yy"8721 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8722 break;8723 8724 8696 case 670: 8725 8697 8726 8698 /* Line 1806 of yacc.c */ 8699 #line 2577 "parser.yy" 8700 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8701 break; 8702 8703 case 671: 8704 8705 /* Line 1806 of yacc.c */ 8727 8706 #line 2579 "parser.yy" 8728 { (yyval.decl) = DeclarationNode::newPointer( 0); }8729 break; 8730 8731 case 67 1:8707 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8708 break; 8709 8710 case 672: 8732 8711 8733 8712 /* Line 1806 of yacc.c */ 8734 8713 #line 2581 "parser.yy" 8735 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }8736 break; 8737 8738 case 67 2:8714 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8715 break; 8716 8717 case 673: 8739 8718 8740 8719 /* Line 1806 of yacc.c */ 8741 8720 #line 2583 "parser.yy" 8742 { (yyval.decl) = (yyvsp[( 2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0) ); }8743 break; 8744 8745 case 67 3:8721 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8722 break; 8723 8724 case 674: 8746 8725 8747 8726 /* Line 1806 of yacc.c */ 8748 8727 #line 2585 "parser.yy" 8749 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }8750 break;8751 8752 case 674:8753 8754 /* Line 1806 of yacc.c */8755 #line 2587 "parser.yy"8756 8728 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8757 8729 break; 8758 8730 8759 8731 case 676: 8732 8733 /* Line 1806 of yacc.c */ 8734 #line 2591 "parser.yy" 8735 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8736 break; 8737 8738 case 677: 8760 8739 8761 8740 /* Line 1806 of yacc.c */ … … 8764 8743 break; 8765 8744 8766 case 67 7:8745 case 678: 8767 8746 8768 8747 /* Line 1806 of yacc.c */ 8769 8748 #line 2595 "parser.yy" 8770 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8771 break;8772 8773 case 678:8774 8775 /* Line 1806 of yacc.c */8776 #line 2597 "parser.yy"8777 8749 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8778 8750 break; … … 8781 8753 8782 8754 /* Line 1806 of yacc.c */ 8755 #line 2600 "parser.yy" 8756 { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); } 8757 break; 8758 8759 case 680: 8760 8761 /* Line 1806 of yacc.c */ 8783 8762 #line 2602 "parser.yy" 8784 { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr); }8785 break; 8786 8787 case 68 0:8763 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8764 break; 8765 8766 case 681: 8788 8767 8789 8768 /* Line 1806 of yacc.c */ 8790 8769 #line 2604 "parser.yy" 8791 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }8792 break;8793 8794 case 681:8795 8796 /* Line 1806 of yacc.c */8797 #line 2606 "parser.yy"8798 8770 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8799 8771 break; … … 8802 8774 8803 8775 /* Line 1806 of yacc.c */ 8804 #line 261 3"parser.yy"8776 #line 2611 "parser.yy" 8805 8777 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8806 8778 break; … … 8809 8781 8810 8782 /* Line 1806 of yacc.c */ 8811 #line 262 4"parser.yy"8783 #line 2622 "parser.yy" 8812 8784 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8813 8785 break; … … 8816 8788 8817 8789 /* Line 1806 of yacc.c */ 8790 #line 2625 "parser.yy" 8791 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 8792 break; 8793 8794 case 687: 8795 8796 /* Line 1806 of yacc.c */ 8818 8797 #line 2627 "parser.yy" 8819 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }8820 break;8821 8822 case 687:8823 8824 /* Line 1806 of yacc.c */8825 #line 2629 "parser.yy"8826 8798 { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); } 8827 8799 break; … … 8830 8802 8831 8803 /* Line 1806 of yacc.c */ 8804 #line 2630 "parser.yy" 8805 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 8806 break; 8807 8808 case 689: 8809 8810 /* Line 1806 of yacc.c */ 8832 8811 #line 2632 "parser.yy" 8833 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[( 4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }8834 break; 8835 8836 case 6 89:8812 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); } 8813 break; 8814 8815 case 690: 8837 8816 8838 8817 /* Line 1806 of yacc.c */ 8839 8818 #line 2634 "parser.yy" 8840 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }8841 break;8842 8843 case 690:8844 8845 /* Line 1806 of yacc.c */8846 #line 2636 "parser.yy"8847 8819 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); } 8848 8820 break; 8849 8821 8850 8822 case 692: 8823 8824 /* Line 1806 of yacc.c */ 8825 #line 2648 "parser.yy" 8826 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8827 break; 8828 8829 case 693: 8851 8830 8852 8831 /* Line 1806 of yacc.c */ … … 8855 8834 break; 8856 8835 8857 case 693:8858 8859 /* Line 1806 of yacc.c */8860 #line 2652 "parser.yy"8861 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8862 break;8863 8864 8836 case 694: 8865 8837 8866 8838 /* Line 1806 of yacc.c */ 8839 #line 2655 "parser.yy" 8840 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8841 break; 8842 8843 case 695: 8844 8845 /* Line 1806 of yacc.c */ 8867 8846 #line 2657 "parser.yy" 8868 { (yyval.decl) = DeclarationNode::newPointer( 0); }8869 break; 8870 8871 case 69 5:8847 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8848 break; 8849 8850 case 696: 8872 8851 8873 8852 /* Line 1806 of yacc.c */ 8874 8853 #line 2659 "parser.yy" 8875 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }8876 break; 8877 8878 case 69 6:8854 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8855 break; 8856 8857 case 697: 8879 8858 8880 8859 /* Line 1806 of yacc.c */ 8881 8860 #line 2661 "parser.yy" 8882 { (yyval.decl) = (yyvsp[( 2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0) ); }8883 break; 8884 8885 case 69 7:8861 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8862 break; 8863 8864 case 698: 8886 8865 8887 8866 /* Line 1806 of yacc.c */ 8888 8867 #line 2663 "parser.yy" 8889 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }8890 break;8891 8892 case 698:8893 8894 /* Line 1806 of yacc.c */8895 #line 2665 "parser.yy"8896 8868 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8897 8869 break; 8898 8870 8899 8871 case 700: 8872 8873 /* Line 1806 of yacc.c */ 8874 #line 2669 "parser.yy" 8875 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8876 break; 8877 8878 case 701: 8900 8879 8901 8880 /* Line 1806 of yacc.c */ … … 8904 8883 break; 8905 8884 8906 case 70 1:8885 case 702: 8907 8886 8908 8887 /* Line 1806 of yacc.c */ 8909 8888 #line 2673 "parser.yy" 8910 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8911 break;8912 8913 case 702:8914 8915 /* Line 1806 of yacc.c */8916 #line 2675 "parser.yy"8917 8889 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8918 8890 break; … … 8921 8893 8922 8894 /* Line 1806 of yacc.c */ 8895 #line 2678 "parser.yy" 8896 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8897 break; 8898 8899 case 704: 8900 8901 /* Line 1806 of yacc.c */ 8923 8902 #line 2680 "parser.yy" 8924 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }8925 break;8926 8927 case 704:8928 8929 /* Line 1806 of yacc.c */8930 #line 2682 "parser.yy"8931 8903 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8932 8904 break; … … 8935 8907 8936 8908 /* Line 1806 of yacc.c */ 8937 #line 269 2"parser.yy"8909 #line 2690 "parser.yy" 8938 8910 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 8939 8911 break; … … 8942 8914 8943 8915 /* Line 1806 of yacc.c */ 8916 #line 2700 "parser.yy" 8917 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8918 break; 8919 8920 case 711: 8921 8922 /* Line 1806 of yacc.c */ 8944 8923 #line 2702 "parser.yy" 8924 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8925 break; 8926 8927 case 712: 8928 8929 /* Line 1806 of yacc.c */ 8930 #line 2704 "parser.yy" 8945 8931 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8946 8932 break; 8947 8933 8948 case 71 1:8949 8950 /* Line 1806 of yacc.c */ 8951 #line 270 4"parser.yy"8934 case 713: 8935 8936 /* Line 1806 of yacc.c */ 8937 #line 2706 "parser.yy" 8952 8938 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8953 8939 break; 8954 8940 8955 case 71 2:8956 8957 /* Line 1806 of yacc.c */ 8958 #line 270 6"parser.yy"8941 case 714: 8942 8943 /* Line 1806 of yacc.c */ 8944 #line 2708 "parser.yy" 8959 8945 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8960 8946 break; 8961 8947 8962 case 71 3:8963 8964 /* Line 1806 of yacc.c */ 8965 #line 27 08"parser.yy"8948 case 715: 8949 8950 /* Line 1806 of yacc.c */ 8951 #line 2710 "parser.yy" 8966 8952 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8967 8953 break; 8968 8954 8969 case 714: 8970 8971 /* Line 1806 of yacc.c */ 8972 #line 2710 "parser.yy" 8955 case 716: 8956 8957 /* Line 1806 of yacc.c */ 8958 #line 2717 "parser.yy" 8959 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8960 break; 8961 8962 case 717: 8963 8964 /* Line 1806 of yacc.c */ 8965 #line 2719 "parser.yy" 8966 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8967 break; 8968 8969 case 718: 8970 8971 /* Line 1806 of yacc.c */ 8972 #line 2721 "parser.yy" 8973 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8974 break; 8975 8976 case 719: 8977 8978 /* Line 1806 of yacc.c */ 8979 #line 2723 "parser.yy" 8980 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 8981 break; 8982 8983 case 720: 8984 8985 /* Line 1806 of yacc.c */ 8986 #line 2725 "parser.yy" 8987 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8988 break; 8989 8990 case 721: 8991 8992 /* Line 1806 of yacc.c */ 8993 #line 2728 "parser.yy" 8994 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8995 break; 8996 8997 case 722: 8998 8999 /* Line 1806 of yacc.c */ 9000 #line 2730 "parser.yy" 9001 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9002 break; 9003 9004 case 723: 9005 9006 /* Line 1806 of yacc.c */ 9007 #line 2732 "parser.yy" 9008 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9009 break; 9010 9011 case 724: 9012 9013 /* Line 1806 of yacc.c */ 9014 #line 2734 "parser.yy" 9015 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 9016 break; 9017 9018 case 725: 9019 9020 /* Line 1806 of yacc.c */ 9021 #line 2736 "parser.yy" 9022 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9023 break; 9024 9025 case 726: 9026 9027 /* Line 1806 of yacc.c */ 9028 #line 2741 "parser.yy" 9029 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 9030 break; 9031 9032 case 727: 9033 9034 /* Line 1806 of yacc.c */ 9035 #line 2743 "parser.yy" 9036 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 9037 break; 9038 9039 case 728: 9040 9041 /* Line 1806 of yacc.c */ 9042 #line 2748 "parser.yy" 9043 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); } 9044 break; 9045 9046 case 729: 9047 9048 /* Line 1806 of yacc.c */ 9049 #line 2750 "parser.yy" 9050 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); } 9051 break; 9052 9053 case 731: 9054 9055 /* Line 1806 of yacc.c */ 9056 #line 2777 "parser.yy" 9057 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 9058 break; 9059 9060 case 735: 9061 9062 /* Line 1806 of yacc.c */ 9063 #line 2788 "parser.yy" 8973 9064 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8974 9065 break; 8975 9066 8976 case 7 15:8977 8978 /* Line 1806 of yacc.c */ 8979 #line 27 12"parser.yy"9067 case 736: 9068 9069 /* Line 1806 of yacc.c */ 9070 #line 2790 "parser.yy" 8980 9071 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8981 9072 break; 8982 9073 8983 case 716: 8984 8985 /* Line 1806 of yacc.c */ 8986 #line 2719 "parser.yy" 8987 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8988 break; 8989 8990 case 717: 8991 8992 /* Line 1806 of yacc.c */ 8993 #line 2721 "parser.yy" 9074 case 737: 9075 9076 /* Line 1806 of yacc.c */ 9077 #line 2792 "parser.yy" 9078 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9079 break; 9080 9081 case 738: 9082 9083 /* Line 1806 of yacc.c */ 9084 #line 2794 "parser.yy" 9085 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9086 break; 9087 9088 case 739: 9089 9090 /* Line 1806 of yacc.c */ 9091 #line 2796 "parser.yy" 9092 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9093 break; 9094 9095 case 740: 9096 9097 /* Line 1806 of yacc.c */ 9098 #line 2798 "parser.yy" 9099 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9100 break; 9101 9102 case 741: 9103 9104 /* Line 1806 of yacc.c */ 9105 #line 2805 "parser.yy" 9106 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 9107 break; 9108 9109 case 742: 9110 9111 /* Line 1806 of yacc.c */ 9112 #line 2807 "parser.yy" 9113 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 9114 break; 9115 9116 case 743: 9117 9118 /* Line 1806 of yacc.c */ 9119 #line 2809 "parser.yy" 8994 9120 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8995 9121 break; 8996 9122 8997 case 7 18:8998 8999 /* Line 1806 of yacc.c */ 9000 #line 2 723"parser.yy"9001 { (yyval.decl) = (yyvsp[( 4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }9002 break; 9003 9004 case 7 19:9005 9006 /* Line 1806 of yacc.c */ 9007 #line 2 725"parser.yy"9008 { (yyval.decl) = (yyvsp[( 3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }9009 break; 9010 9011 case 7 20:9012 9013 /* Line 1806 of yacc.c */ 9014 #line 2 727"parser.yy"9123 case 744: 9124 9125 /* Line 1806 of yacc.c */ 9126 #line 2811 "parser.yy" 9127 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 9128 break; 9129 9130 case 745: 9131 9132 /* Line 1806 of yacc.c */ 9133 #line 2813 "parser.yy" 9134 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 9135 break; 9136 9137 case 746: 9138 9139 /* Line 1806 of yacc.c */ 9140 #line 2815 "parser.yy" 9015 9141 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9016 9142 break; 9017 9143 9018 case 721:9019 9020 /* Line 1806 of yacc.c */9021 #line 2729 "parser.yy"9022 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }9023 break;9024 9025 case 722:9026 9027 /* Line 1806 of yacc.c */9028 #line 2731 "parser.yy"9029 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }9030 break;9031 9032 case 723:9033 9034 /* Line 1806 of yacc.c */9035 #line 2733 "parser.yy"9036 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }9037 break;9038 9039 case 724:9040 9041 /* Line 1806 of yacc.c */9042 #line 2735 "parser.yy"9043 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }9044 break;9045 9046 case 725:9047 9048 /* Line 1806 of yacc.c */9049 #line 2737 "parser.yy"9050 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }9051 break;9052 9053 case 726:9054 9055 /* Line 1806 of yacc.c */9056 #line 2742 "parser.yy"9057 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }9058 break;9059 9060 case 727:9061 9062 /* Line 1806 of yacc.c */9063 #line 2744 "parser.yy"9064 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }9065 break;9066 9067 case 728:9068 9069 /* Line 1806 of yacc.c */9070 #line 2749 "parser.yy"9071 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }9072 break;9073 9074 case 729:9075 9076 /* Line 1806 of yacc.c */9077 #line 2751 "parser.yy"9078 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }9079 break;9080 9081 case 731:9082 9083 /* Line 1806 of yacc.c */9084 #line 2778 "parser.yy"9085 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }9086 break;9087 9088 case 735:9089 9090 /* Line 1806 of yacc.c */9091 #line 2789 "parser.yy"9092 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }9093 break;9094 9095 case 736:9096 9097 /* Line 1806 of yacc.c */9098 #line 2791 "parser.yy"9099 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }9100 break;9101 9102 case 737:9103 9104 /* Line 1806 of yacc.c */9105 #line 2793 "parser.yy"9106 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }9107 break;9108 9109 case 738:9110 9111 /* Line 1806 of yacc.c */9112 #line 2795 "parser.yy"9113 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }9114 break;9115 9116 case 739:9117 9118 /* Line 1806 of yacc.c */9119 #line 2797 "parser.yy"9120 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }9121 break;9122 9123 case 740:9124 9125 /* Line 1806 of yacc.c */9126 #line 2799 "parser.yy"9127 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }9128 break;9129 9130 case 741:9131 9132 /* Line 1806 of yacc.c */9133 #line 2806 "parser.yy"9134 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }9135 break;9136 9137 case 742:9138 9139 /* Line 1806 of yacc.c */9140 #line 2808 "parser.yy"9141 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }9142 break;9143 9144 case 743:9145 9146 /* Line 1806 of yacc.c */9147 #line 2810 "parser.yy"9148 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }9149 break;9150 9151 case 744:9152 9153 /* Line 1806 of yacc.c */9154 #line 2812 "parser.yy"9155 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }9156 break;9157 9158 case 745:9159 9160 /* Line 1806 of yacc.c */9161 #line 2814 "parser.yy"9162 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }9163 break;9164 9165 case 746:9166 9167 /* Line 1806 of yacc.c */9168 #line 2816 "parser.yy"9169 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }9170 break;9171 9172 9144 case 747: 9173 9145 9174 9146 /* Line 1806 of yacc.c */ 9175 #line 282 1"parser.yy"9147 #line 2820 "parser.yy" 9176 9148 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 9177 9149 break; … … 9180 9152 9181 9153 /* Line 1806 of yacc.c */ 9182 #line 282 6"parser.yy"9154 #line 2825 "parser.yy" 9183 9155 { (yyval.decl) = DeclarationNode::newFunction( nullptr, DeclarationNode::newTuple( nullptr ), (yyvsp[(4) - (5)].decl), nullptr ); } 9184 9156 break; … … 9187 9159 9188 9160 /* Line 1806 of yacc.c */ 9189 #line 282 8"parser.yy"9161 #line 2827 "parser.yy" 9190 9162 { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); } 9191 9163 break; … … 9194 9166 9195 9167 /* Line 1806 of yacc.c */ 9196 #line 28 30"parser.yy"9168 #line 2829 "parser.yy" 9197 9169 { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); } 9198 9170 break; … … 9201 9173 9202 9174 /* Line 1806 of yacc.c */ 9203 #line 285 4"parser.yy"9175 #line 2853 "parser.yy" 9204 9176 { (yyval.en) = 0; } 9205 9177 break; … … 9208 9180 9209 9181 /* Line 1806 of yacc.c */ 9210 #line 285 6"parser.yy"9182 #line 2855 "parser.yy" 9211 9183 { (yyval.en) = (yyvsp[(2) - (2)].en); } 9212 9184 break; … … 9215 9187 9216 9188 /* Line 1806 of yacc.c */ 9217 #line 9 218"Parser/parser.cc"9189 #line 9190 "Parser/parser.cc" 9218 9190 default: break; 9219 9191 } … … 9446 9418 9447 9419 /* Line 2067 of yacc.c */ 9448 #line 285 9"parser.yy"9420 #line 2858 "parser.yy" 9449 9421 9450 9422 // ----end of grammar----
Note:
See TracChangeset
for help on using the changeset viewer.