Changes in src/Parser/parser.cc [8780e30:1b29996]
- File:
-
- 1 edited
-
src/Parser/parser.cc (modified) (270 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/parser.cc
r8780e30 r1b29996 1026 1026 static const yytype_uint16 yyrline[] = 1027 1027 { 1028 0, 30 5, 305, 309, 316, 317, 318, 319, 320, 324,1029 32 5, 326, 330, 331, 335, 336, 340, 341, 345, 349,1030 35 0, 361, 363, 365, 366, 368, 373, 374, 380, 382,1031 38 4, 386, 388, 390, 392, 394, 396, 398, 407, 408,1032 41 4, 415, 419, 420, 424, 425, 427, 429, 431, 433,1033 43 5, 440, 442, 444, 450, 451, 459, 462, 464, 466,1034 4 71, 484, 486, 488, 490, 492, 494, 496, 498, 500,1035 502, 504, 511, 512, 518, 519, 520, 521, 525, 526,1036 5 33, 534, 536, 538, 543, 544, 546, 551, 552, 554,1037 55 9, 560, 562, 564, 566, 571, 572, 574, 579, 580,1038 5 85, 586, 591, 592, 597, 598, 603, 604, 609, 610,1039 6 13, 620, 625, 626, 634, 635, 639, 640, 641, 642,1040 6 43, 644, 645, 646, 647, 648, 649, 650, 660, 662,1041 66 7, 668, 673, 674, 680, 681, 687, 688, 689, 690,1042 6 91, 692, 693, 694, 695, 705, 712, 714, 724, 725,1043 7 30, 732, 738, 740, 744, 745, 750, 755, 758, 760,1044 7 62, 772, 774, 785, 786, 788, 792, 794, 798, 799,1045 804, 805, 809, 814, 815, 819, 821, 827, 828, 832,1046 8 34, 836, 838, 844, 845, 849, 851, 856, 858, 860,1047 8 65, 867, 872, 874, 878, 881, 885, 888, 892, 894,1048 89 6, 898, 903, 905, 907, 912, 914, 916, 918, 920,1049 9 25, 927, 929, 931, 936, 948, 949, 954, 956, 961,1050 9 65, 967, 969, 971, 973, 979, 980, 986, 987, 991,1051 9 92, 997, 999, 1005, 1006, 1008, 1013, 1018, 1028, 1030,1052 10 34, 1035, 1040, 1042, 1046, 1047, 1051, 1053, 1057, 1058,1053 10 62, 1063, 1067, 1068, 1083, 1084, 1085, 1086, 1087, 1091,1054 109 6, 1103, 1113, 1118, 1123, 1131, 1136, 1141, 1146, 1151,1055 11 81, 1186, 1193, 1195, 1202, 1207, 1212, 1223, 1228, 1233,1056 123 8, 1243, 1252, 1257, 1265, 1266, 1267, 1268, 1274, 1279,1057 128 7, 1288, 1289, 1290, 1294, 1295, 1296, 1297, 1302, 1303,1058 13 12, 1313, 1318, 1319, 1324, 1326, 1328, 1330, 1332, 1335,1059 13 34, 1346, 1347, 1349, 1359, 1360, 1365, 1367, 1369, 1371,1060 13 73, 1376, 1378, 1381, 1386, 1388, 1390, 1392, 1394, 1396,1061 139 8, 1400, 1402, 1404, 1406, 1408, 1410, 1416, 1417, 1419,1062 14 21, 1423, 1428, 1429, 1435, 1436, 1438, 1440, 1445, 1447,1063 144 9, 1451, 1456, 1457, 1459, 1461, 1466, 1467, 1469, 1474,1064 14 75, 1477, 1479, 1484, 1486, 1488, 1493, 1494, 1498, 1500,1065 150 6, 1505, 1509, 1511, 1516, 1518, 1524, 1525, 1530, 1531,1066 15 33, 1534, 1543, 1544, 1546, 1548, 1553, 1555, 1561, 1562,1067 15 64, 1567, 1570, 1575, 1576, 1581, 1586, 1590, 1592, 1598,1068 159 7, 1604, 1606, 1612, 1613, 1621, 1622, 1626, 1627, 1628,1069 16 30, 1632, 1639, 1640, 1642, 1644, 1649, 1650, 1656, 1657,1070 16 61, 1662, 1667, 1668, 1669, 1671, 1679, 1680, 1682, 1685,1071 168 7, 1691, 1692, 1693, 1695, 1697, 1701, 1706, 1714, 1715,1072 17 24, 1726, 1731, 1732, 1733, 1737, 1738, 1739, 1743, 1744,1073 17 45, 1749, 1750, 1751, 1756, 1757, 1758, 1759, 1765, 1766,1074 176 8, 1773, 1774, 1779, 1780, 1781, 1782, 1783, 1798, 1799,1075 1 804, 1805, 1811, 1813, 1816, 1818, 1820, 1843, 1844, 1846,1076 184 8, 1853, 1854, 1856, 1861, 1866, 1867, 1873, 1872, 1876,1077 18 80, 1882, 1884, 1890, 1891, 1896, 1901, 1903, 1908, 1910,1078 19 11, 1913, 1918, 1920, 1922, 1927, 1929, 1934, 1939, 1947,1079 19 53, 1952, 1966, 1967, 1972, 1973, 1977, 1982, 1987, 1995,1080 2000, 2011, 2012, 2017, 2018, 2024, 2025, 2029, 2030, 2031,1081 20 34, 2033, 2044, 2053, 2059, 2065, 2074, 2080, 2086, 2092,1082 209 8, 2106, 2112, 2120, 2126, 2135, 2136, 2137, 2141, 2145,1083 214 7, 2152, 2153, 2157, 2158, 2163, 2169, 2170, 2173, 2175,1084 217 6, 2180, 2181, 2182, 2183, 2217, 2219, 2220, 2222, 2227,1085 22 32, 2237, 2239, 2241, 2246, 2248, 2250, 2252, 2257, 2259,1086 226 8, 2270, 2271, 2276, 2278, 2280, 2285, 2287, 2289, 2294,1087 229 6, 2298, 2307, 2308, 2309, 2313, 2315, 2317, 2322, 2324,1088 232 6, 2331, 2333, 2335, 2350, 2352, 2353, 2355, 2360, 2361,1089 236 6, 2368, 2370, 2375, 2377, 2379, 2381, 2386, 2388, 2390,1090 2 400, 2402, 2403, 2405, 2410, 2412, 2414, 2419, 2421, 2423,1091 24 25, 2430, 2432, 2434, 2465, 2467, 2468, 2470, 2475, 2480,1092 248 8, 2490, 2492, 2497, 2499, 2504, 2506, 2520, 2521, 2523,1093 252 8, 2530, 2532, 2534, 2536, 2541, 2542, 2544, 2546, 2551,1094 25 53, 2555, 2561, 2563, 2565, 2569, 2571, 2573, 2575, 2589,1095 25 90, 2592, 2597, 2599, 2601, 2603, 2605, 2610, 2611, 2613,1096 26 15, 2620, 2622, 2624, 2630, 2631, 2633, 2642, 2645, 2647,1097 26 50, 2652, 2654, 2667, 2668, 2670, 2675, 2677, 2679, 2681,1098 26 83, 2688, 2689, 2691, 2693, 2698, 2700, 2708, 2709, 2710,1099 27 15, 2716, 2720, 2722, 2724, 2726, 2728, 2730, 2737, 2739,1100 27 41, 2743, 2745, 2748, 2750, 2752, 2754, 2756, 2761, 2763,1101 27 65, 2770, 2796, 2797, 2799, 2803, 2804, 2808, 2810, 2812,1102 28 14, 2816, 2818, 2825, 2827, 2829, 2831, 2833, 2835, 2840,1103 284 7, 2849, 2867, 2869, 2874, 28751028 0, 306, 306, 310, 317, 318, 319, 320, 321, 325, 1029 326, 327, 331, 332, 336, 337, 341, 342, 346, 350, 1030 351, 362, 364, 366, 367, 369, 374, 375, 381, 383, 1031 385, 386, 387, 389, 390, 392, 394, 396, 405, 406, 1032 412, 413, 417, 418, 422, 424, 426, 428, 430, 432, 1033 434, 439, 441, 443, 447, 449, 453, 456, 458, 460, 1034 465, 478, 480, 482, 484, 486, 488, 490, 492, 494, 1035 496, 498, 505, 506, 512, 513, 514, 515, 519, 520, 1036 527, 528, 530, 532, 537, 538, 540, 545, 546, 548, 1037 553, 554, 556, 558, 560, 565, 566, 568, 573, 574, 1038 579, 580, 585, 586, 591, 592, 597, 598, 603, 604, 1039 607, 614, 619, 620, 628, 629, 633, 634, 635, 636, 1040 637, 638, 639, 640, 641, 642, 643, 644, 654, 656, 1041 661, 662, 667, 668, 674, 675, 681, 682, 683, 684, 1042 685, 686, 687, 688, 689, 699, 706, 708, 718, 719, 1043 724, 726, 732, 734, 738, 739, 744, 749, 752, 754, 1044 756, 766, 768, 779, 780, 782, 786, 788, 792, 793, 1045 798, 799, 803, 808, 809, 813, 815, 821, 822, 826, 1046 828, 830, 832, 838, 839, 843, 845, 850, 852, 854, 1047 859, 861, 866, 868, 872, 875, 879, 882, 886, 888, 1048 890, 892, 897, 899, 901, 906, 908, 910, 912, 914, 1049 919, 921, 923, 925, 930, 942, 943, 948, 950, 955, 1050 959, 961, 963, 965, 967, 973, 974, 980, 981, 985, 1051 986, 991, 993, 999, 1000, 1002, 1007, 1012, 1022, 1024, 1052 1028, 1029, 1034, 1036, 1040, 1041, 1045, 1047, 1051, 1052, 1053 1056, 1057, 1061, 1062, 1077, 1078, 1079, 1080, 1081, 1085, 1054 1090, 1097, 1107, 1112, 1117, 1125, 1130, 1135, 1140, 1145, 1055 1175, 1180, 1187, 1189, 1196, 1201, 1206, 1217, 1222, 1227, 1056 1232, 1237, 1246, 1251, 1259, 1260, 1261, 1262, 1268, 1273, 1057 1281, 1282, 1283, 1284, 1288, 1289, 1290, 1291, 1296, 1297, 1058 1306, 1307, 1312, 1313, 1318, 1320, 1322, 1324, 1326, 1329, 1059 1328, 1340, 1341, 1343, 1353, 1354, 1359, 1361, 1363, 1365, 1060 1367, 1370, 1372, 1375, 1380, 1382, 1384, 1386, 1388, 1390, 1061 1392, 1394, 1396, 1398, 1400, 1402, 1404, 1410, 1411, 1413, 1062 1415, 1417, 1422, 1423, 1429, 1430, 1432, 1434, 1439, 1441, 1063 1443, 1445, 1450, 1451, 1453, 1455, 1460, 1461, 1463, 1468, 1064 1469, 1471, 1473, 1478, 1480, 1482, 1487, 1488, 1492, 1494, 1065 1500, 1499, 1503, 1505, 1510, 1512, 1518, 1519, 1524, 1525, 1066 1527, 1528, 1537, 1538, 1540, 1542, 1547, 1549, 1555, 1556, 1067 1558, 1561, 1564, 1569, 1570, 1575, 1580, 1584, 1586, 1592, 1068 1591, 1598, 1600, 1606, 1607, 1615, 1616, 1620, 1621, 1622, 1069 1624, 1626, 1633, 1634, 1636, 1638, 1643, 1644, 1650, 1651, 1070 1655, 1656, 1661, 1662, 1663, 1665, 1673, 1674, 1676, 1679, 1071 1681, 1685, 1686, 1687, 1689, 1691, 1695, 1700, 1708, 1709, 1072 1718, 1720, 1725, 1726, 1727, 1731, 1732, 1733, 1737, 1738, 1073 1739, 1743, 1744, 1745, 1750, 1751, 1752, 1753, 1759, 1760, 1074 1762, 1767, 1768, 1773, 1774, 1775, 1776, 1777, 1792, 1793, 1075 1798, 1799, 1805, 1807, 1810, 1812, 1814, 1837, 1838, 1840, 1076 1842, 1847, 1848, 1850, 1855, 1860, 1861, 1867, 1866, 1870, 1077 1874, 1876, 1878, 1884, 1885, 1890, 1895, 1897, 1902, 1904, 1078 1905, 1907, 1912, 1914, 1916, 1921, 1923, 1928, 1933, 1941, 1079 1947, 1946, 1960, 1961, 1966, 1967, 1971, 1976, 1981, 1989, 1080 1994, 2005, 2006, 2011, 2012, 2018, 2019, 2023, 2024, 2025, 1081 2028, 2027, 2038, 2047, 2053, 2059, 2068, 2074, 2080, 2086, 1082 2092, 2100, 2106, 2114, 2120, 2129, 2130, 2131, 2135, 2139, 1083 2141, 2146, 2147, 2151, 2152, 2157, 2163, 2164, 2167, 2169, 1084 2170, 2174, 2175, 2176, 2177, 2211, 2213, 2214, 2216, 2221, 1085 2226, 2231, 2233, 2235, 2240, 2242, 2244, 2246, 2251, 2253, 1086 2262, 2264, 2265, 2270, 2272, 2274, 2279, 2281, 2283, 2288, 1087 2290, 2292, 2301, 2302, 2303, 2307, 2309, 2311, 2316, 2318, 1088 2320, 2325, 2327, 2329, 2344, 2346, 2347, 2349, 2354, 2355, 1089 2360, 2362, 2364, 2369, 2371, 2373, 2375, 2380, 2382, 2384, 1090 2394, 2396, 2397, 2399, 2404, 2406, 2408, 2413, 2415, 2417, 1091 2419, 2424, 2426, 2428, 2459, 2461, 2462, 2464, 2469, 2474, 1092 2482, 2484, 2486, 2491, 2493, 2498, 2500, 2514, 2515, 2517, 1093 2522, 2524, 2526, 2528, 2530, 2535, 2536, 2538, 2540, 2545, 1094 2547, 2549, 2555, 2557, 2559, 2563, 2565, 2567, 2569, 2583, 1095 2584, 2586, 2591, 2593, 2595, 2597, 2599, 2604, 2605, 2607, 1096 2609, 2614, 2616, 2618, 2624, 2625, 2627, 2636, 2639, 2641, 1097 2644, 2646, 2648, 2661, 2662, 2664, 2669, 2671, 2673, 2675, 1098 2677, 2682, 2683, 2685, 2687, 2692, 2694, 2702, 2703, 2704, 1099 2709, 2710, 2714, 2716, 2718, 2720, 2722, 2724, 2731, 2733, 1100 2735, 2737, 2739, 2742, 2744, 2746, 2748, 2750, 2755, 2757, 1101 2759, 2764, 2790, 2791, 2793, 2797, 2798, 2802, 2804, 2806, 1102 2808, 2810, 2812, 2819, 2821, 2823, 2825, 2827, 2829, 2834, 1103 2841, 2843, 2861, 2863, 2868, 2869 1104 1104 }; 1105 1105 #endif … … 4851 4851 4852 4852 /* Line 1806 of yacc.c */ 4853 #line 30 5"parser.yy"4853 #line 306 "parser.yy" 4854 4854 { typedefTable.enterScope(); } 4855 4855 break; … … 4858 4858 4859 4859 /* Line 1806 of yacc.c */ 4860 #line 3 09"parser.yy"4860 #line 310 "parser.yy" 4861 4861 { typedefTable.leaveScope(); } 4862 4862 break; … … 4865 4865 4866 4866 /* Line 1806 of yacc.c */ 4867 #line 31 6"parser.yy"4867 #line 317 "parser.yy" 4868 4868 { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); } 4869 4869 break; 4870 4870 4871 4871 case 5: 4872 4873 /* Line 1806 of yacc.c */4874 #line 317 "parser.yy"4875 { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); }4876 break;4877 4878 case 6:4879 4872 4880 4873 /* Line 1806 of yacc.c */ … … 4883 4876 break; 4884 4877 4885 case 7:4878 case 6: 4886 4879 4887 4880 /* Line 1806 of yacc.c */ … … 4890 4883 break; 4891 4884 4885 case 7: 4886 4887 /* Line 1806 of yacc.c */ 4888 #line 320 "parser.yy" 4889 { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); } 4890 break; 4891 4892 4892 case 8: 4893 4893 4894 4894 /* Line 1806 of yacc.c */ 4895 #line 32 0"parser.yy"4895 #line 321 "parser.yy" 4896 4896 { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[(1) - (1)].tok) ) ); } 4897 4897 break; … … 4900 4900 4901 4901 /* Line 1806 of yacc.c */ 4902 #line 34 5"parser.yy"4902 #line 346 "parser.yy" 4903 4903 { (yyval.constant) = build_constantStr( *(yyvsp[(1) - (1)].str) ); } 4904 4904 break; … … 4907 4907 4908 4908 /* Line 1806 of yacc.c */ 4909 #line 3 49"parser.yy"4909 #line 350 "parser.yy" 4910 4910 { (yyval.str) = (yyvsp[(1) - (1)].tok); } 4911 4911 break; … … 4914 4914 4915 4915 /* Line 1806 of yacc.c */ 4916 #line 35 1"parser.yy"4916 #line 352 "parser.yy" 4917 4917 { 4918 4918 appendStr( (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].tok) ); // append 2nd juxtaposed string to 1st … … 4925 4925 4926 4926 /* Line 1806 of yacc.c */ 4927 #line 36 2"parser.yy"4927 #line 363 "parser.yy" 4928 4928 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); } 4929 4929 break; … … 4932 4932 4933 4933 /* Line 1806 of yacc.c */ 4934 #line 36 4"parser.yy"4934 #line 365 "parser.yy" 4935 4935 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); } 4936 4936 break; … … 4939 4939 4940 4940 /* Line 1806 of yacc.c */ 4941 #line 36 7"parser.yy"4941 #line 368 "parser.yy" 4942 4942 { (yyval.en) = (yyvsp[(2) - (3)].en); } 4943 4943 break; … … 4946 4946 4947 4947 /* Line 1806 of yacc.c */ 4948 #line 3 69"parser.yy"4948 #line 370 "parser.yy" 4949 4949 { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[(2) - (3)].sn) ) ); } 4950 4950 break; … … 4953 4953 4954 4954 /* Line 1806 of yacc.c */ 4955 #line 3 79"parser.yy"4955 #line 380 "parser.yy" 4956 4956 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ) ); } 4957 4957 break; … … 4960 4960 4961 4961 /* Line 1806 of yacc.c */ 4962 #line 38 1"parser.yy"4962 #line 382 "parser.yy" 4963 4963 { (yyval.en) = new ExpressionNode( build_func( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ) ); } 4964 4964 break; … … 4967 4967 4968 4968 /* Line 1806 of yacc.c */ 4969 #line 38 3"parser.yy"4969 #line 384 "parser.yy" 4970 4970 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); } 4971 4971 break; 4972 4972 4973 case 30:4974 4975 /* Line 1806 of yacc.c */4976 #line 385 "parser.yy"4977 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); }4978 break;4979 4980 case 31:4981 4982 /* Line 1806 of yacc.c */4983 #line 387 "parser.yy"4984 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (2)].en), build_field_name_REALFRACTIONconstant( *(yyvsp[(2) - (2)].tok) ) ) ); }4985 break;4986 4987 4973 case 32: 4988 4974 4989 4975 /* Line 1806 of yacc.c */ 4990 #line 38 9"parser.yy"4976 #line 388 "parser.yy" 4991 4977 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); } 4992 4978 break; 4993 4979 4994 case 3 3:4980 case 34: 4995 4981 4996 4982 /* Line 1806 of yacc.c */ 4997 4983 #line 391 "parser.yy" 4998 { (yyval.en) = new ExpressionNode( build_ pfieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en)) ) ); }4999 break; 5000 5001 case 3 4:4984 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[(1) - (2)].en) ) ); } 4985 break; 4986 4987 case 35: 5002 4988 5003 4989 /* Line 1806 of yacc.c */ 5004 4990 #line 393 "parser.yy" 5005 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds:: IncrPost, (yyvsp[(1) - (2)].en) ) ); }5006 break; 5007 5008 case 3 5:4991 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[(1) - (2)].en) ) ); } 4992 break; 4993 4994 case 36: 5009 4995 5010 4996 /* Line 1806 of yacc.c */ 5011 4997 #line 395 "parser.yy" 5012 { (yyval.en) = new ExpressionNode( build_ unary_ptr( OperKinds::DecrPost, (yyvsp[(1) - (2)].en) ) ); }5013 break; 5014 5015 case 3 6:4998 { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ) ); } 4999 break; 5000 5001 case 37: 5016 5002 5017 5003 /* Line 1806 of yacc.c */ 5018 5004 #line 397 "parser.yy" 5019 { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ) ); }5020 break;5021 5022 case 37:5023 5024 /* Line 1806 of yacc.c */5025 #line 399 "parser.yy"5026 5005 { 5027 5006 Token fn; … … 5034 5013 5035 5014 /* Line 1806 of yacc.c */ 5036 #line 40 9"parser.yy"5015 #line 407 "parser.yy" 5037 5016 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); } 5038 5017 break; … … 5041 5020 5042 5021 /* Line 1806 of yacc.c */ 5043 #line 41 4"parser.yy"5022 #line 412 "parser.yy" 5044 5023 { (yyval.en) = 0; } 5045 5024 break; … … 5048 5027 5049 5028 /* Line 1806 of yacc.c */ 5050 #line 4 20"parser.yy"5029 #line 418 "parser.yy" 5051 5030 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 5052 5031 break; 5053 5032 5033 case 44: 5034 5035 /* Line 1806 of yacc.c */ 5036 #line 423 "parser.yy" 5037 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); } 5038 break; 5039 5054 5040 case 45: 5055 5041 5056 5042 /* Line 1806 of yacc.c */ 5057 #line 42 6"parser.yy"5058 { (yyval.en) = new ExpressionNode( build_fieldSel( new ExpressionNode( build_field_name_REALDECIMALconstant( *(yyvsp[(1) - (2)].tok) ) ), maybeMoveBuild<Expression>( (yyvsp[(2) - (2)].en) ) ) ); }5043 #line 425 "parser.yy" 5044 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(2) - (2)].en), build_varref( (yyvsp[(1) - (2)].tok) ) ) ); } 5059 5045 break; 5060 5046 … … 5062 5048 5063 5049 /* Line 1806 of yacc.c */ 5064 #line 42 8"parser.yy"5065 { (yyval.en) = new ExpressionNode( build_fieldSel( new ExpressionNode( build_field_name_REALDECIMALconstant( *(yyvsp[(1) - (6)].tok) ) ), build_tuple( (yyvsp[(4) - (6)].en) ) ) ); }5050 #line 427 "parser.yy" 5051 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(4) - (6)].en), build_varref( (yyvsp[(1) - (6)].tok) ) ) ); } 5066 5052 break; 5067 5053 … … 5069 5055 5070 5056 /* Line 1806 of yacc.c */ 5071 #line 4 30"parser.yy"5072 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[( 1) - (3)].en), maybeMoveBuild<Expression>( (yyvsp[(3) - (3)].en) ) ) ); }5057 #line 429 "parser.yy" 5058 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); } 5073 5059 break; 5074 5060 … … 5076 5062 5077 5063 /* Line 1806 of yacc.c */ 5078 #line 43 2"parser.yy"5079 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[( 1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); }5064 #line 431 "parser.yy" 5065 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); } 5080 5066 break; 5081 5067 … … 5083 5069 5084 5070 /* Line 1806 of yacc.c */ 5085 #line 43 4"parser.yy"5086 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[( 1) - (3)].en), maybeMoveBuild<Expression>( (yyvsp[(3) - (3)].en) ) ) ); }5071 #line 433 "parser.yy" 5072 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); } 5087 5073 break; 5088 5074 … … 5090 5076 5091 5077 /* Line 1806 of yacc.c */ 5092 #line 43 6"parser.yy"5093 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[( 1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); }5078 #line 435 "parser.yy" 5079 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); } 5094 5080 break; 5095 5081 … … 5097 5083 5098 5084 /* Line 1806 of yacc.c */ 5099 #line 44 1"parser.yy"5100 { (yyval. en) = new ExpressionNode( build_field_name_fraction_constants( build_constantInteger( *(yyvsp[(1) - (2)].tok) ), (yyvsp[(2) - (2)].en) )); }5085 #line 440 "parser.yy" 5086 { (yyval.tok) = (yyvsp[(1) - (2)].tok); } 5101 5087 break; 5102 5088 … … 5104 5090 5105 5091 /* Line 1806 of yacc.c */ 5106 #line 44 3"parser.yy"5107 { (yyval. en) = new ExpressionNode( build_field_name_fraction_constants( build_field_name_FLOATINGconstant( *(yyvsp[(1) - (2)].tok) ), (yyvsp[(2) - (2)].en) )); }5092 #line 442 "parser.yy" 5093 { (yyval.tok) = (yyvsp[(1) - (2)].tok); } 5108 5094 break; 5109 5095 … … 5111 5097 5112 5098 /* Line 1806 of yacc.c */ 5113 #line 445 "parser.yy" 5114 { (yyval.en) = new ExpressionNode( build_field_name_fraction_constants( build_varref( (yyvsp[(1) - (2)].tok) ), (yyvsp[(2) - (2)].en) ) ); } 5115 break; 5116 5117 case 54: 5118 5119 /* Line 1806 of yacc.c */ 5120 #line 450 "parser.yy" 5121 { (yyval.en) = nullptr; } 5122 break; 5123 5124 case 55: 5125 5126 /* Line 1806 of yacc.c */ 5127 #line 452 "parser.yy" 5128 { 5129 Expression * constant = build_field_name_REALFRACTIONconstant( *(yyvsp[(2) - (2)].tok) ); 5130 (yyval.en) = (yyvsp[(1) - (2)].en) != nullptr ? new ExpressionNode( build_fieldSel( (yyvsp[(1) - (2)].en), constant ) ) : new ExpressionNode( constant ); 5131 } 5099 #line 444 "parser.yy" 5100 { (yyval.tok) = (yyvsp[(1) - (2)].tok); } 5132 5101 break; 5133 5102 … … 5135 5104 5136 5105 /* Line 1806 of yacc.c */ 5137 #line 4 63"parser.yy"5106 #line 457 "parser.yy" 5138 5107 { (yyval.en) = (yyvsp[(1) - (1)].en); } 5139 5108 break; … … 5142 5111 5143 5112 /* Line 1806 of yacc.c */ 5144 #line 4 65"parser.yy"5113 #line 459 "parser.yy" 5145 5114 { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); } 5146 5115 break; … … 5149 5118 5150 5119 /* Line 1806 of yacc.c */ 5151 #line 46 7"parser.yy"5120 #line 461 "parser.yy" 5152 5121 { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); } 5153 5122 break; … … 5156 5125 5157 5126 /* Line 1806 of yacc.c */ 5158 #line 4 72"parser.yy"5127 #line 466 "parser.yy" 5159 5128 { 5160 5129 switch ( (yyvsp[(1) - (2)].op) ) { … … 5174 5143 5175 5144 /* Line 1806 of yacc.c */ 5145 #line 479 "parser.yy" 5146 { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); } 5147 break; 5148 5149 case 62: 5150 5151 /* Line 1806 of yacc.c */ 5152 #line 481 "parser.yy" 5153 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); } 5154 break; 5155 5156 case 63: 5157 5158 /* Line 1806 of yacc.c */ 5159 #line 483 "parser.yy" 5160 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[(2) - (2)].en) ) ); } 5161 break; 5162 5163 case 64: 5164 5165 /* Line 1806 of yacc.c */ 5176 5166 #line 485 "parser.yy" 5177 { (yyval.en) = new ExpressionNode( build_ unary_val( (yyvsp[(1) - (2)].op),(yyvsp[(2) - (2)].en) ) ); }5178 break; 5179 5180 case 6 2:5167 { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); } 5168 break; 5169 5170 case 65: 5181 5171 5182 5172 /* Line 1806 of yacc.c */ 5183 5173 #line 487 "parser.yy" 5184 { (yyval.en) = new ExpressionNode( build_ unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); }5185 break; 5186 5187 case 6 3:5174 { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); } 5175 break; 5176 5177 case 66: 5188 5178 5189 5179 /* Line 1806 of yacc.c */ 5190 5180 #line 489 "parser.yy" 5191 { (yyval.en) = new ExpressionNode( build_ unary_ptr( OperKinds::Decr,(yyvsp[(2) - (2)].en) ) ); }5192 break; 5193 5194 case 6 4:5181 { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); } 5182 break; 5183 5184 case 67: 5195 5185 5196 5186 /* Line 1806 of yacc.c */ 5197 5187 #line 491 "parser.yy" 5198 { (yyval.en) = new ExpressionNode( build_ sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); }5199 break; 5200 5201 case 6 5:5188 { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); } 5189 break; 5190 5191 case 68: 5202 5192 5203 5193 /* Line 1806 of yacc.c */ 5204 5194 #line 493 "parser.yy" 5205 { (yyval.en) = new ExpressionNode( build_ sizeOftype( (yyvsp[(3) - (4)].decl) ) ); }5206 break; 5207 5208 case 6 6:5195 { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); } 5196 break; 5197 5198 case 69: 5209 5199 5210 5200 /* Line 1806 of yacc.c */ 5211 5201 #line 495 "parser.yy" 5212 { (yyval.en) = new ExpressionNode( build_a lignOfexpr( (yyvsp[(2) - (2)].en)) ); }5213 break; 5214 5215 case 67:5202 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); } 5203 break; 5204 5205 case 70: 5216 5206 5217 5207 /* Line 1806 of yacc.c */ 5218 5208 #line 497 "parser.yy" 5219 { (yyval.en) = new ExpressionNode( build_a lignOftype( (yyvsp[(3) - (4)].decl) ) ); }5220 break; 5221 5222 case 68:5209 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); } 5210 break; 5211 5212 case 71: 5223 5213 5224 5214 /* Line 1806 of yacc.c */ 5225 5215 #line 499 "parser.yy" 5226 { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); } 5227 break; 5228 5229 case 69: 5230 5231 /* Line 1806 of yacc.c */ 5232 #line 501 "parser.yy" 5233 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); } 5234 break; 5235 5236 case 70: 5237 5238 /* Line 1806 of yacc.c */ 5239 #line 503 "parser.yy" 5240 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); } 5241 break; 5242 5243 case 71: 5216 { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); } 5217 break; 5218 5219 case 72: 5244 5220 5245 5221 /* Line 1806 of yacc.c */ 5246 5222 #line 505 "parser.yy" 5247 { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); }5248 break;5249 5250 case 72:5251 5252 /* Line 1806 of yacc.c */5253 #line 511 "parser.yy"5254 5223 { (yyval.op) = OperKinds::PointTo; } 5255 5224 break; … … 5258 5227 5259 5228 /* Line 1806 of yacc.c */ 5229 #line 506 "parser.yy" 5230 { (yyval.op) = OperKinds::AddressOf; } 5231 break; 5232 5233 case 74: 5234 5235 /* Line 1806 of yacc.c */ 5260 5236 #line 512 "parser.yy" 5261 { (yyval.op) = OperKinds::AddressOf; }5262 break;5263 5264 case 74:5265 5266 /* Line 1806 of yacc.c */5267 #line 518 "parser.yy"5268 5237 { (yyval.op) = OperKinds::UnPlus; } 5269 5238 break; … … 5272 5241 5273 5242 /* Line 1806 of yacc.c */ 5274 #line 51 9"parser.yy"5243 #line 513 "parser.yy" 5275 5244 { (yyval.op) = OperKinds::UnMinus; } 5276 5245 break; … … 5279 5248 5280 5249 /* Line 1806 of yacc.c */ 5281 #line 5 20"parser.yy"5250 #line 514 "parser.yy" 5282 5251 { (yyval.op) = OperKinds::Neg; } 5283 5252 break; … … 5286 5255 5287 5256 /* Line 1806 of yacc.c */ 5257 #line 515 "parser.yy" 5258 { (yyval.op) = OperKinds::BitNeg; } 5259 break; 5260 5261 case 79: 5262 5263 /* Line 1806 of yacc.c */ 5288 5264 #line 521 "parser.yy" 5289 { (yyval.op) = OperKinds::BitNeg; }5290 break;5291 5292 case 79:5293 5294 /* Line 1806 of yacc.c */5295 #line 527 "parser.yy"5296 5265 { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); } 5297 5266 break; … … 5300 5269 5301 5270 /* Line 1806 of yacc.c */ 5302 #line 5 35"parser.yy"5271 #line 529 "parser.yy" 5303 5272 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5304 5273 break; … … 5307 5276 5308 5277 /* Line 1806 of yacc.c */ 5309 #line 53 7"parser.yy"5278 #line 531 "parser.yy" 5310 5279 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5311 5280 break; … … 5314 5283 5315 5284 /* Line 1806 of yacc.c */ 5285 #line 533 "parser.yy" 5286 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5287 break; 5288 5289 case 85: 5290 5291 /* Line 1806 of yacc.c */ 5316 5292 #line 539 "parser.yy" 5317 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5318 break;5319 5320 case 85:5321 5322 /* Line 1806 of yacc.c */5323 #line 545 "parser.yy"5324 5293 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5325 5294 break; … … 5328 5297 5329 5298 /* Line 1806 of yacc.c */ 5299 #line 541 "parser.yy" 5300 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5301 break; 5302 5303 case 88: 5304 5305 /* Line 1806 of yacc.c */ 5330 5306 #line 547 "parser.yy" 5331 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5332 break;5333 5334 case 88:5335 5336 /* Line 1806 of yacc.c */5337 #line 553 "parser.yy"5338 5307 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5339 5308 break; … … 5342 5311 5343 5312 /* Line 1806 of yacc.c */ 5313 #line 549 "parser.yy" 5314 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5315 break; 5316 5317 case 91: 5318 5319 /* Line 1806 of yacc.c */ 5344 5320 #line 555 "parser.yy" 5345 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5346 break; 5347 5348 case 91: 5321 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5322 break; 5323 5324 case 92: 5325 5326 /* Line 1806 of yacc.c */ 5327 #line 557 "parser.yy" 5328 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5329 break; 5330 5331 case 93: 5332 5333 /* Line 1806 of yacc.c */ 5334 #line 559 "parser.yy" 5335 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5336 break; 5337 5338 case 94: 5349 5339 5350 5340 /* Line 1806 of yacc.c */ 5351 5341 #line 561 "parser.yy" 5352 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5353 break; 5354 5355 case 92: 5356 5357 /* Line 1806 of yacc.c */ 5358 #line 563 "parser.yy" 5359 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5360 break; 5361 5362 case 93: 5363 5364 /* Line 1806 of yacc.c */ 5365 #line 565 "parser.yy" 5366 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5367 break; 5368 5369 case 94: 5342 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5343 break; 5344 5345 case 96: 5370 5346 5371 5347 /* Line 1806 of yacc.c */ 5372 5348 #line 567 "parser.yy" 5373 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5374 break;5375 5376 case 96:5377 5378 /* Line 1806 of yacc.c */5379 #line 573 "parser.yy"5380 5349 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5381 5350 break; … … 5384 5353 5385 5354 /* Line 1806 of yacc.c */ 5355 #line 569 "parser.yy" 5356 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5357 break; 5358 5359 case 99: 5360 5361 /* Line 1806 of yacc.c */ 5386 5362 #line 575 "parser.yy" 5387 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds:: Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5388 break; 5389 5390 case 99:5363 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5364 break; 5365 5366 case 101: 5391 5367 5392 5368 /* Line 1806 of yacc.c */ 5393 5369 #line 581 "parser.yy" 5394 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds:: BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5395 break; 5396 5397 case 10 1:5370 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5371 break; 5372 5373 case 103: 5398 5374 5399 5375 /* Line 1806 of yacc.c */ 5400 5376 #line 587 "parser.yy" 5401 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds:: Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5402 break; 5403 5404 case 10 3:5377 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5378 break; 5379 5380 case 105: 5405 5381 5406 5382 /* Line 1806 of yacc.c */ 5407 5383 #line 593 "parser.yy" 5408 { (yyval.en) = new ExpressionNode( build_ binary_val( OperKinds::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en)) ); }5409 break; 5410 5411 case 10 5:5384 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); } 5385 break; 5386 5387 case 107: 5412 5388 5413 5389 /* Line 1806 of yacc.c */ 5414 5390 #line 599 "parser.yy" 5415 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); }5416 break; 5417 5418 case 10 7:5391 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); } 5392 break; 5393 5394 case 109: 5419 5395 5420 5396 /* Line 1806 of yacc.c */ 5421 5397 #line 605 "parser.yy" 5422 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); }5423 break;5424 5425 case 109:5426 5427 /* Line 1806 of yacc.c */5428 #line 611 "parser.yy"5429 5398 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); } 5430 5399 break; … … 5433 5402 5434 5403 /* Line 1806 of yacc.c */ 5435 #line 6 14"parser.yy"5404 #line 608 "parser.yy" 5436 5405 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); } 5437 5406 break; … … 5440 5409 5441 5410 /* Line 1806 of yacc.c */ 5442 #line 62 7"parser.yy"5411 #line 621 "parser.yy" 5443 5412 { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5444 5413 break; … … 5447 5416 5448 5417 /* Line 1806 of yacc.c */ 5418 #line 628 "parser.yy" 5419 { (yyval.en) = nullptr; } 5420 break; 5421 5422 case 116: 5423 5424 /* Line 1806 of yacc.c */ 5425 #line 633 "parser.yy" 5426 { (yyval.op) = OperKinds::Assign; } 5427 break; 5428 5429 case 117: 5430 5431 /* Line 1806 of yacc.c */ 5449 5432 #line 634 "parser.yy" 5450 { (yyval.en) = nullptr; } 5451 break; 5452 5453 case 116: 5433 { (yyval.op) = OperKinds::AtAssn; } 5434 break; 5435 5436 case 118: 5437 5438 /* Line 1806 of yacc.c */ 5439 #line 635 "parser.yy" 5440 { (yyval.op) = OperKinds::MulAssn; } 5441 break; 5442 5443 case 119: 5444 5445 /* Line 1806 of yacc.c */ 5446 #line 636 "parser.yy" 5447 { (yyval.op) = OperKinds::DivAssn; } 5448 break; 5449 5450 case 120: 5451 5452 /* Line 1806 of yacc.c */ 5453 #line 637 "parser.yy" 5454 { (yyval.op) = OperKinds::ModAssn; } 5455 break; 5456 5457 case 121: 5458 5459 /* Line 1806 of yacc.c */ 5460 #line 638 "parser.yy" 5461 { (yyval.op) = OperKinds::PlusAssn; } 5462 break; 5463 5464 case 122: 5454 5465 5455 5466 /* Line 1806 of yacc.c */ 5456 5467 #line 639 "parser.yy" 5457 { (yyval.op) = OperKinds:: Assign; }5458 break; 5459 5460 case 1 17:5468 { (yyval.op) = OperKinds::MinusAssn; } 5469 break; 5470 5471 case 123: 5461 5472 5462 5473 /* Line 1806 of yacc.c */ 5463 5474 #line 640 "parser.yy" 5464 { (yyval.op) = OperKinds:: AtAssn; }5465 break; 5466 5467 case 1 18:5475 { (yyval.op) = OperKinds::LSAssn; } 5476 break; 5477 5478 case 124: 5468 5479 5469 5480 /* Line 1806 of yacc.c */ 5470 5481 #line 641 "parser.yy" 5471 { (yyval.op) = OperKinds:: MulAssn; }5472 break; 5473 5474 case 1 19:5482 { (yyval.op) = OperKinds::RSAssn; } 5483 break; 5484 5485 case 125: 5475 5486 5476 5487 /* Line 1806 of yacc.c */ 5477 5488 #line 642 "parser.yy" 5478 { (yyval.op) = OperKinds:: DivAssn; }5479 break; 5480 5481 case 12 0:5489 { (yyval.op) = OperKinds::AndAssn; } 5490 break; 5491 5492 case 126: 5482 5493 5483 5494 /* Line 1806 of yacc.c */ 5484 5495 #line 643 "parser.yy" 5485 { (yyval.op) = OperKinds:: ModAssn; }5486 break; 5487 5488 case 12 1:5496 { (yyval.op) = OperKinds::ERAssn; } 5497 break; 5498 5499 case 127: 5489 5500 5490 5501 /* Line 1806 of yacc.c */ 5491 5502 #line 644 "parser.yy" 5492 { (yyval.op) = OperKinds::PlusAssn; }5493 break;5494 5495 case 122:5496 5497 /* Line 1806 of yacc.c */5498 #line 645 "parser.yy"5499 { (yyval.op) = OperKinds::MinusAssn; }5500 break;5501 5502 case 123:5503 5504 /* Line 1806 of yacc.c */5505 #line 646 "parser.yy"5506 { (yyval.op) = OperKinds::LSAssn; }5507 break;5508 5509 case 124:5510 5511 /* Line 1806 of yacc.c */5512 #line 647 "parser.yy"5513 { (yyval.op) = OperKinds::RSAssn; }5514 break;5515 5516 case 125:5517 5518 /* Line 1806 of yacc.c */5519 #line 648 "parser.yy"5520 { (yyval.op) = OperKinds::AndAssn; }5521 break;5522 5523 case 126:5524 5525 /* Line 1806 of yacc.c */5526 #line 649 "parser.yy"5527 { (yyval.op) = OperKinds::ERAssn; }5528 break;5529 5530 case 127:5531 5532 /* Line 1806 of yacc.c */5533 #line 650 "parser.yy"5534 5503 { (yyval.op) = OperKinds::OrAssn; } 5535 5504 break; … … 5538 5507 5539 5508 /* Line 1806 of yacc.c */ 5540 #line 6 61"parser.yy"5509 #line 655 "parser.yy" 5541 5510 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) ) ) ); } 5542 5511 break; … … 5545 5514 5546 5515 /* Line 1806 of yacc.c */ 5516 #line 657 "parser.yy" 5517 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_last( (yyvsp[(5) - (7)].en) ) ) ); } 5518 break; 5519 5520 case 131: 5521 5522 /* Line 1806 of yacc.c */ 5547 5523 #line 663 "parser.yy" 5548 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_last( (yyvsp[(5) - (7)].en) )) ); }5549 break; 5550 5551 case 13 1:5524 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 5525 break; 5526 5527 case 133: 5552 5528 5553 5529 /* Line 1806 of yacc.c */ 5554 5530 #line 669 "parser.yy" 5555 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }5556 break;5557 5558 case 133:5559 5560 /* Line 1806 of yacc.c */5561 #line 675 "parser.yy"5562 5531 { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5563 5532 break; … … 5566 5535 5567 5536 /* Line 1806 of yacc.c */ 5568 #line 6 80"parser.yy"5537 #line 674 "parser.yy" 5569 5538 { (yyval.en) = 0; } 5570 5539 break; … … 5573 5542 5574 5543 /* Line 1806 of yacc.c */ 5575 #line 68 9"parser.yy"5544 #line 683 "parser.yy" 5576 5545 { (yyval.sn) = (yyvsp[(1) - (1)].sn); } 5577 5546 break; … … 5580 5549 5581 5550 /* Line 1806 of yacc.c */ 5582 #line 69 6"parser.yy"5551 #line 690 "parser.yy" 5583 5552 { 5584 5553 Token fn; … … 5591 5560 5592 5561 /* Line 1806 of yacc.c */ 5593 #line 70 6"parser.yy"5562 #line 700 "parser.yy" 5594 5563 { 5595 5564 (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) ); … … 5600 5569 5601 5570 /* Line 1806 of yacc.c */ 5602 #line 7 13"parser.yy"5571 #line 707 "parser.yy" 5603 5572 { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) ); } 5604 5573 break; … … 5607 5576 5608 5577 /* Line 1806 of yacc.c */ 5578 #line 714 "parser.yy" 5579 { (yyval.sn) = new StatementNode( build_compound( (yyvsp[(5) - (7)].sn) ) ); } 5580 break; 5581 5582 case 149: 5583 5584 /* Line 1806 of yacc.c */ 5609 5585 #line 720 "parser.yy" 5610 { (yyval.sn) = new StatementNode( build_compound( (yyvsp[(5) - (7)].sn) ) ); }5611 break;5612 5613 case 149:5614 5615 /* Line 1806 of yacc.c */5616 #line 726 "parser.yy"5617 5586 { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } } 5618 5587 break; … … 5621 5590 5622 5591 /* Line 1806 of yacc.c */ 5623 #line 7 31"parser.yy"5592 #line 725 "parser.yy" 5624 5593 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5625 5594 break; … … 5628 5597 5629 5598 /* Line 1806 of yacc.c */ 5630 #line 7 33"parser.yy"5599 #line 727 "parser.yy" 5631 5600 { // mark all fields in list 5632 5601 for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) … … 5639 5608 5640 5609 /* Line 1806 of yacc.c */ 5641 #line 73 9"parser.yy"5610 #line 733 "parser.yy" 5642 5611 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5643 5612 break; … … 5646 5615 5647 5616 /* Line 1806 of yacc.c */ 5648 #line 74 6"parser.yy"5617 #line 740 "parser.yy" 5649 5618 { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } } 5650 5619 break; … … 5653 5622 5654 5623 /* Line 1806 of yacc.c */ 5624 #line 745 "parser.yy" 5625 { (yyval.sn) = new StatementNode( build_expr( (yyvsp[(1) - (2)].en) ) ); } 5626 break; 5627 5628 case 157: 5629 5630 /* Line 1806 of yacc.c */ 5655 5631 #line 751 "parser.yy" 5656 { (yyval.sn) = new StatementNode( build_expr( (yyvsp[(1) - (2)].en) ) ); } 5657 break; 5658 5659 case 157: 5632 { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); } 5633 break; 5634 5635 case 158: 5636 5637 /* Line 1806 of yacc.c */ 5638 #line 753 "parser.yy" 5639 { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); } 5640 break; 5641 5642 case 159: 5643 5644 /* Line 1806 of yacc.c */ 5645 #line 755 "parser.yy" 5646 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5647 break; 5648 5649 case 160: 5660 5650 5661 5651 /* Line 1806 of yacc.c */ 5662 5652 #line 757 "parser.yy" 5663 { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); }5664 break;5665 5666 case 158:5667 5668 /* Line 1806 of yacc.c */5669 #line 759 "parser.yy"5670 { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); }5671 break;5672 5673 case 159:5674 5675 /* Line 1806 of yacc.c */5676 #line 761 "parser.yy"5677 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }5678 break;5679 5680 case 160:5681 5682 /* Line 1806 of yacc.c */5683 #line 763 "parser.yy"5684 5653 { 5685 5654 StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) ); … … 5696 5665 5697 5666 /* Line 1806 of yacc.c */ 5698 #line 7 73"parser.yy"5667 #line 767 "parser.yy" 5699 5668 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5700 5669 break; … … 5703 5672 5704 5673 /* Line 1806 of yacc.c */ 5705 #line 7 75"parser.yy"5674 #line 769 "parser.yy" 5706 5675 { 5707 5676 StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) ); … … 5713 5682 5714 5683 /* Line 1806 of yacc.c */ 5715 #line 7 85"parser.yy"5684 #line 779 "parser.yy" 5716 5685 { (yyval.en) = (yyvsp[(1) - (1)].en); } 5717 5686 break; … … 5720 5689 5721 5690 /* Line 1806 of yacc.c */ 5722 #line 78 7"parser.yy"5691 #line 781 "parser.yy" 5723 5692 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5724 5693 break; … … 5727 5696 5728 5697 /* Line 1806 of yacc.c */ 5698 #line 786 "parser.yy" 5699 { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); } 5700 break; 5701 5702 case 167: 5703 5704 /* Line 1806 of yacc.c */ 5705 #line 788 "parser.yy" 5706 { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_last( new StatementNode( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); } 5707 break; 5708 5709 case 168: 5710 5711 /* Line 1806 of yacc.c */ 5729 5712 #line 792 "parser.yy" 5730 { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); }5731 break;5732 5733 case 167:5734 5735 /* Line 1806 of yacc.c */5736 #line 794 "parser.yy"5737 { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_last( new StatementNode( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); }5738 break;5739 5740 case 168:5741 5742 /* Line 1806 of yacc.c */5743 #line 798 "parser.yy"5744 5713 { (yyval.sn) = (yyvsp[(2) - (3)].sn); } 5745 5714 break; … … 5748 5717 5749 5718 /* Line 1806 of yacc.c */ 5719 #line 793 "parser.yy" 5720 { (yyval.sn) = new StatementNode( build_default() ); } 5721 break; 5722 5723 case 171: 5724 5725 /* Line 1806 of yacc.c */ 5750 5726 #line 799 "parser.yy" 5751 { (yyval.sn) = new StatementNode( build_default() ); }5752 break;5753 5754 case 171:5755 5756 /* Line 1806 of yacc.c */5757 #line 805 "parser.yy"5758 5727 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) )); } 5759 5728 break; … … 5762 5731 5763 5732 /* Line 1806 of yacc.c */ 5764 #line 80 9"parser.yy"5733 #line 803 "parser.yy" 5765 5734 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); } 5766 5735 break; … … 5769 5738 5770 5739 /* Line 1806 of yacc.c */ 5740 #line 808 "parser.yy" 5741 { (yyval.sn) = 0; } 5742 break; 5743 5744 case 175: 5745 5746 /* Line 1806 of yacc.c */ 5771 5747 #line 814 "parser.yy" 5748 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); } 5749 break; 5750 5751 case 176: 5752 5753 /* Line 1806 of yacc.c */ 5754 #line 816 "parser.yy" 5755 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(3) - (3)].sn) ) ) ) ) ); } 5756 break; 5757 5758 case 177: 5759 5760 /* Line 1806 of yacc.c */ 5761 #line 821 "parser.yy" 5772 5762 { (yyval.sn) = 0; } 5773 5763 break; 5774 5764 5775 case 175: 5776 5777 /* Line 1806 of yacc.c */ 5778 #line 820 "parser.yy" 5779 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); } 5780 break; 5781 5782 case 176: 5783 5784 /* Line 1806 of yacc.c */ 5785 #line 822 "parser.yy" 5786 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(3) - (3)].sn) ) ) ) ) ); } 5787 break; 5788 5789 case 177: 5765 case 179: 5790 5766 5791 5767 /* Line 1806 of yacc.c */ 5792 5768 #line 827 "parser.yy" 5769 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); } 5770 break; 5771 5772 case 180: 5773 5774 /* Line 1806 of yacc.c */ 5775 #line 829 "parser.yy" 5776 { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(2) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ) ) ) ); } 5777 break; 5778 5779 case 181: 5780 5781 /* Line 1806 of yacc.c */ 5782 #line 831 "parser.yy" 5783 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); } 5784 break; 5785 5786 case 182: 5787 5788 /* Line 1806 of yacc.c */ 5789 #line 833 "parser.yy" 5790 { (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) ) ) ) ) ) ); } 5791 break; 5792 5793 case 183: 5794 5795 /* Line 1806 of yacc.c */ 5796 #line 838 "parser.yy" 5797 { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); } 5798 break; 5799 5800 case 185: 5801 5802 /* Line 1806 of yacc.c */ 5803 #line 844 "parser.yy" 5793 5804 { (yyval.sn) = 0; } 5794 5805 break; 5795 5806 5796 case 179: 5797 5798 /* Line 1806 of yacc.c */ 5799 #line 833 "parser.yy" 5800 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); } 5801 break; 5802 5803 case 180: 5804 5805 /* Line 1806 of yacc.c */ 5806 #line 835 "parser.yy" 5807 { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(2) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ) ) ) ); } 5808 break; 5809 5810 case 181: 5811 5812 /* Line 1806 of yacc.c */ 5813 #line 837 "parser.yy" 5814 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); } 5815 break; 5816 5817 case 182: 5818 5819 /* Line 1806 of yacc.c */ 5820 #line 839 "parser.yy" 5821 { (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) ) ) ) ) ) ); } 5822 break; 5823 5824 case 183: 5825 5826 /* Line 1806 of yacc.c */ 5827 #line 844 "parser.yy" 5807 case 186: 5808 5809 /* Line 1806 of yacc.c */ 5810 #line 846 "parser.yy" 5811 { (yyval.sn) = 0; } 5812 break; 5813 5814 case 187: 5815 5816 /* Line 1806 of yacc.c */ 5817 #line 851 "parser.yy" 5818 { (yyval.sn) = new StatementNode( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5819 break; 5820 5821 case 188: 5822 5823 /* Line 1806 of yacc.c */ 5824 #line 853 "parser.yy" 5825 { (yyval.sn) = new StatementNode( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn), true ) ); } 5826 break; 5827 5828 case 189: 5829 5830 /* Line 1806 of yacc.c */ 5831 #line 855 "parser.yy" 5832 { (yyval.sn) = new StatementNode( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); } 5833 break; 5834 5835 case 190: 5836 5837 /* Line 1806 of yacc.c */ 5838 #line 860 "parser.yy" 5839 { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); } 5840 break; 5841 5842 case 191: 5843 5844 /* Line 1806 of yacc.c */ 5845 #line 862 "parser.yy" 5846 { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); } 5847 break; 5848 5849 case 192: 5850 5851 /* Line 1806 of yacc.c */ 5852 #line 867 "parser.yy" 5853 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); } 5854 break; 5855 5856 case 193: 5857 5858 /* Line 1806 of yacc.c */ 5859 #line 871 "parser.yy" 5860 { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); } 5861 break; 5862 5863 case 194: 5864 5865 /* Line 1806 of yacc.c */ 5866 #line 874 "parser.yy" 5867 { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Continue ) ); } 5868 break; 5869 5870 case 195: 5871 5872 /* Line 1806 of yacc.c */ 5873 #line 878 "parser.yy" 5874 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); } 5875 break; 5876 5877 case 196: 5878 5879 /* Line 1806 of yacc.c */ 5880 #line 881 "parser.yy" 5828 5881 { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); } 5829 5882 break; 5830 5883 5831 case 185: 5832 5833 /* Line 1806 of yacc.c */ 5834 #line 850 "parser.yy" 5835 { (yyval.sn) = 0; } 5836 break; 5837 5838 case 186: 5839 5840 /* Line 1806 of yacc.c */ 5841 #line 852 "parser.yy" 5842 { (yyval.sn) = 0; } 5843 break; 5844 5845 case 187: 5846 5847 /* Line 1806 of yacc.c */ 5848 #line 857 "parser.yy" 5849 { (yyval.sn) = new StatementNode( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5850 break; 5851 5852 case 188: 5853 5854 /* Line 1806 of yacc.c */ 5855 #line 859 "parser.yy" 5856 { (yyval.sn) = new StatementNode( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn), true ) ); } 5857 break; 5858 5859 case 189: 5860 5861 /* Line 1806 of yacc.c */ 5862 #line 861 "parser.yy" 5863 { (yyval.sn) = new StatementNode( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); } 5864 break; 5865 5866 case 190: 5867 5868 /* Line 1806 of yacc.c */ 5869 #line 866 "parser.yy" 5870 { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); } 5871 break; 5872 5873 case 191: 5874 5875 /* Line 1806 of yacc.c */ 5876 #line 868 "parser.yy" 5877 { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); } 5878 break; 5879 5880 case 192: 5881 5882 /* Line 1806 of yacc.c */ 5883 #line 873 "parser.yy" 5884 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); } 5885 break; 5886 5887 case 193: 5888 5889 /* Line 1806 of yacc.c */ 5890 #line 877 "parser.yy" 5891 { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); } 5892 break; 5893 5894 case 194: 5895 5896 /* Line 1806 of yacc.c */ 5897 #line 880 "parser.yy" 5898 { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Continue ) ); } 5899 break; 5900 5901 case 195: 5902 5903 /* Line 1806 of yacc.c */ 5904 #line 884 "parser.yy" 5905 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); } 5906 break; 5907 5908 case 196: 5884 case 197: 5885 5886 /* Line 1806 of yacc.c */ 5887 #line 885 "parser.yy" 5888 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); } 5889 break; 5890 5891 case 198: 5909 5892 5910 5893 /* Line 1806 of yacc.c */ 5911 5894 #line 887 "parser.yy" 5912 { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); } 5913 break; 5914 5915 case 197: 5895 { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); } 5896 break; 5897 5898 case 199: 5899 5900 /* Line 1806 of yacc.c */ 5901 #line 889 "parser.yy" 5902 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); } 5903 break; 5904 5905 case 200: 5916 5906 5917 5907 /* Line 1806 of yacc.c */ 5918 5908 #line 891 "parser.yy" 5919 { (yyval.sn) = new StatementNode( build_ branch( (yyvsp[(2) - (3)].tok), BranchStmt::Break) ); }5920 break; 5921 5922 case 198:5909 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); } 5910 break; 5911 5912 case 201: 5923 5913 5924 5914 /* Line 1806 of yacc.c */ 5925 5915 #line 893 "parser.yy" 5926 { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); }5927 break;5928 5929 case 199:5930 5931 /* Line 1806 of yacc.c */5932 #line 895 "parser.yy"5933 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }5934 break;5935 5936 case 200:5937 5938 /* Line 1806 of yacc.c */5939 #line 897 "parser.yy"5940 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }5941 break;5942 5943 case 201:5944 5945 /* Line 1806 of yacc.c */5946 #line 899 "parser.yy"5947 5916 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (5)].en) ) ); } 5948 5917 break; … … 5951 5920 5952 5921 /* Line 1806 of yacc.c */ 5953 #line 904"parser.yy"5922 #line 898 "parser.yy" 5954 5923 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0 ) ); } 5955 5924 break; … … 5958 5927 5959 5928 /* Line 1806 of yacc.c */ 5960 #line 90 6"parser.yy"5929 #line 900 "parser.yy" 5961 5930 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn) ) ); } 5962 5931 break; … … 5965 5934 5966 5935 /* Line 1806 of yacc.c */ 5967 #line 90 8"parser.yy"5936 #line 902 "parser.yy" 5968 5937 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (4)].sn), (yyvsp[(3) - (4)].sn), (yyvsp[(4) - (4)].sn) ) ); } 5969 5938 break; … … 5972 5941 5973 5942 /* Line 1806 of yacc.c */ 5943 #line 909 "parser.yy" 5944 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); } 5945 break; 5946 5947 case 207: 5948 5949 /* Line 1806 of yacc.c */ 5950 #line 911 "parser.yy" 5951 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); } 5952 break; 5953 5954 case 208: 5955 5956 /* Line 1806 of yacc.c */ 5957 #line 913 "parser.yy" 5958 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); } 5959 break; 5960 5961 case 209: 5962 5963 /* Line 1806 of yacc.c */ 5974 5964 #line 915 "parser.yy" 5975 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }5976 break;5977 5978 case 207:5979 5980 /* Line 1806 of yacc.c */5981 #line 917 "parser.yy"5982 5965 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); } 5983 5966 break; 5984 5967 5985 case 208:5986 5987 /* Line 1806 of yacc.c */5988 #line 919 "parser.yy"5989 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }5990 break;5991 5992 case 209:5993 5994 /* Line 1806 of yacc.c */5995 #line 921 "parser.yy"5996 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }5997 break;5998 5999 5968 case 210: 6000 5969 6001 5970 /* Line 1806 of yacc.c */ 5971 #line 920 "parser.yy" 5972 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); } 5973 break; 5974 5975 case 211: 5976 5977 /* Line 1806 of yacc.c */ 5978 #line 922 "parser.yy" 5979 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); } 5980 break; 5981 5982 case 212: 5983 5984 /* Line 1806 of yacc.c */ 5985 #line 924 "parser.yy" 5986 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); } 5987 break; 5988 5989 case 213: 5990 5991 /* Line 1806 of yacc.c */ 6002 5992 #line 926 "parser.yy" 6003 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }6004 break;6005 6006 case 211:6007 6008 /* Line 1806 of yacc.c */6009 #line 928 "parser.yy"6010 5993 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); } 6011 5994 break; 6012 5995 6013 case 212:6014 6015 /* Line 1806 of yacc.c */6016 #line 930 "parser.yy"6017 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }6018 break;6019 6020 case 213:6021 6022 /* Line 1806 of yacc.c */6023 #line 932 "parser.yy"6024 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }6025 break;6026 6027 5996 case 214: 6028 5997 6029 5998 /* Line 1806 of yacc.c */ 6030 #line 93 7"parser.yy"5999 #line 931 "parser.yy" 6031 6000 { 6032 6001 (yyval.sn) = new StatementNode( build_finally( (yyvsp[(2) - (2)].sn) ) ); … … 6037 6006 6038 6007 /* Line 1806 of yacc.c */ 6039 #line 9 50"parser.yy"6008 #line 944 "parser.yy" 6040 6009 { 6041 6010 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6047 6016 6048 6017 /* Line 1806 of yacc.c */ 6049 #line 9 55"parser.yy"6018 #line 949 "parser.yy" 6050 6019 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 6051 6020 break; … … 6054 6023 6055 6024 /* Line 1806 of yacc.c */ 6056 #line 95 7"parser.yy"6025 #line 951 "parser.yy" 6057 6026 { 6058 6027 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6064 6033 6065 6034 /* Line 1806 of yacc.c */ 6035 #line 960 "parser.yy" 6036 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ) ); } 6037 break; 6038 6039 case 221: 6040 6041 /* Line 1806 of yacc.c */ 6042 #line 962 "parser.yy" 6043 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ) ); } 6044 break; 6045 6046 case 222: 6047 6048 /* Line 1806 of yacc.c */ 6049 #line 964 "parser.yy" 6050 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ) ); } 6051 break; 6052 6053 case 223: 6054 6055 /* Line 1806 of yacc.c */ 6066 6056 #line 966 "parser.yy" 6067 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - ( 6)].flag), (yyvsp[(4) - (6)].constant), 0) ); }6068 break; 6069 6070 case 22 1:6057 { (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) ) ); } 6058 break; 6059 6060 case 224: 6071 6061 6072 6062 /* Line 1806 of yacc.c */ 6073 6063 #line 968 "parser.yy" 6074 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ) ); }6075 break;6076 6077 case 222:6078 6079 /* Line 1806 of yacc.c */6080 #line 970 "parser.yy"6081 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ) ); }6082 break;6083 6084 case 223:6085 6086 /* Line 1806 of yacc.c */6087 #line 972 "parser.yy"6088 { (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) ) ); }6089 break;6090 6091 case 224:6092 6093 /* Line 1806 of yacc.c */6094 #line 974 "parser.yy"6095 6064 { (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) ) ); } 6096 6065 break; … … 6099 6068 6100 6069 /* Line 1806 of yacc.c */ 6101 #line 97 9"parser.yy"6070 #line 973 "parser.yy" 6102 6071 { (yyval.flag) = false; } 6103 6072 break; … … 6106 6075 6107 6076 /* Line 1806 of yacc.c */ 6108 #line 9 81"parser.yy"6077 #line 975 "parser.yy" 6109 6078 { (yyval.flag) = true; } 6110 6079 break; … … 6113 6082 6114 6083 /* Line 1806 of yacc.c */ 6115 #line 98 6"parser.yy"6084 #line 980 "parser.yy" 6116 6085 { (yyval.en) = 0; } 6117 6086 break; … … 6120 6089 6121 6090 /* Line 1806 of yacc.c */ 6122 #line 9 93"parser.yy"6091 #line 987 "parser.yy" 6123 6092 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 6124 6093 break; … … 6127 6096 6128 6097 /* Line 1806 of yacc.c */ 6129 #line 99 8"parser.yy"6098 #line 992 "parser.yy" 6130 6099 { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); } 6131 6100 break; … … 6134 6103 6135 6104 /* Line 1806 of yacc.c */ 6136 #line 1000"parser.yy"6105 #line 994 "parser.yy" 6137 6106 { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); } 6138 6107 break; … … 6141 6110 6142 6111 /* Line 1806 of yacc.c */ 6143 #line 1005"parser.yy"6112 #line 999 "parser.yy" 6144 6113 { (yyval.en) = 0; } 6145 6114 break; … … 6148 6117 6149 6118 /* Line 1806 of yacc.c */ 6150 #line 100 7"parser.yy"6119 #line 1001 "parser.yy" 6151 6120 { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); } 6152 6121 break; … … 6155 6124 6156 6125 /* Line 1806 of yacc.c */ 6157 #line 100 9"parser.yy"6126 #line 1003 "parser.yy" 6158 6127 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); } 6159 6128 break; … … 6162 6131 6163 6132 /* Line 1806 of yacc.c */ 6164 #line 10 14"parser.yy"6133 #line 1008 "parser.yy" 6165 6134 { 6166 6135 (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[(1) - (1)].tok) ); … … 6172 6141 6173 6142 /* Line 1806 of yacc.c */ 6174 #line 101 9"parser.yy"6143 #line 1013 "parser.yy" 6175 6144 { 6176 6145 (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->labels.push_back( *(yyvsp[(3) - (3)].tok) ); … … 6182 6151 6183 6152 /* Line 1806 of yacc.c */ 6184 #line 102 9"parser.yy"6153 #line 1023 "parser.yy" 6185 6154 { (yyval.decl) = 0; } 6186 6155 break; … … 6189 6158 6190 6159 /* Line 1806 of yacc.c */ 6191 #line 103 6"parser.yy"6160 #line 1030 "parser.yy" 6192 6161 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6193 6162 break; … … 6196 6165 6197 6166 /* Line 1806 of yacc.c */ 6198 #line 10 41"parser.yy"6167 #line 1035 "parser.yy" 6199 6168 { (yyval.decl) = 0; } 6200 6169 break; … … 6203 6172 6204 6173 /* Line 1806 of yacc.c */ 6205 #line 104 8"parser.yy"6174 #line 1042 "parser.yy" 6206 6175 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6207 6176 break; … … 6210 6179 6211 6180 /* Line 1806 of yacc.c */ 6212 #line 10 62"parser.yy"6181 #line 1056 "parser.yy" 6213 6182 {} 6214 6183 break; … … 6217 6186 6218 6187 /* Line 1806 of yacc.c */ 6219 #line 10 63"parser.yy"6188 #line 1057 "parser.yy" 6220 6189 {} 6221 6190 break; … … 6224 6193 6225 6194 /* Line 1806 of yacc.c */ 6226 #line 10 92"parser.yy"6195 #line 1086 "parser.yy" 6227 6196 { 6228 6197 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6234 6203 6235 6204 /* Line 1806 of yacc.c */ 6236 #line 109 9"parser.yy"6205 #line 1093 "parser.yy" 6237 6206 { 6238 6207 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6244 6213 6245 6214 /* Line 1806 of yacc.c */ 6246 #line 1 104"parser.yy"6215 #line 1098 "parser.yy" 6247 6216 { 6248 6217 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID ); … … 6254 6223 6255 6224 /* Line 1806 of yacc.c */ 6256 #line 11 14"parser.yy"6225 #line 1108 "parser.yy" 6257 6226 { 6258 6227 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); … … 6264 6233 6265 6234 /* Line 1806 of yacc.c */ 6266 #line 111 9"parser.yy"6235 #line 1113 "parser.yy" 6267 6236 { 6268 6237 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); … … 6274 6243 6275 6244 /* Line 1806 of yacc.c */ 6276 #line 11 24"parser.yy"6245 #line 1118 "parser.yy" 6277 6246 { 6278 6247 typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) ); … … 6284 6253 6285 6254 /* Line 1806 of yacc.c */ 6286 #line 11 32"parser.yy"6255 #line 1126 "parser.yy" 6287 6256 { 6288 6257 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6294 6263 6295 6264 /* Line 1806 of yacc.c */ 6296 #line 113 7"parser.yy"6265 #line 1131 "parser.yy" 6297 6266 { 6298 6267 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6304 6273 6305 6274 /* Line 1806 of yacc.c */ 6306 #line 11 42"parser.yy"6275 #line 1136 "parser.yy" 6307 6276 { 6308 6277 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6314 6283 6315 6284 /* Line 1806 of yacc.c */ 6316 #line 114 7"parser.yy"6285 #line 1141 "parser.yy" 6317 6286 { 6318 6287 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6324 6293 6325 6294 /* Line 1806 of yacc.c */ 6326 #line 11 52"parser.yy"6295 #line 1146 "parser.yy" 6327 6296 { 6328 6297 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); … … 6334 6303 6335 6304 /* Line 1806 of yacc.c */ 6336 #line 11 83"parser.yy"6305 #line 1177 "parser.yy" 6337 6306 { 6338 6307 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); … … 6343 6312 6344 6313 /* Line 1806 of yacc.c */ 6345 #line 118 7"parser.yy"6314 #line 1181 "parser.yy" 6346 6315 { 6347 6316 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); … … 6352 6321 6353 6322 /* Line 1806 of yacc.c */ 6354 #line 11 94"parser.yy"6323 #line 1188 "parser.yy" 6355 6324 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 6356 6325 break; … … 6359 6328 6360 6329 /* Line 1806 of yacc.c */ 6361 #line 119 8"parser.yy"6330 #line 1192 "parser.yy" 6362 6331 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); } 6363 6332 break; … … 6366 6335 6367 6336 /* Line 1806 of yacc.c */ 6368 #line 1 203"parser.yy"6337 #line 1197 "parser.yy" 6369 6338 { 6370 6339 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6376 6345 6377 6346 /* Line 1806 of yacc.c */ 6378 #line 120 8"parser.yy"6347 #line 1202 "parser.yy" 6379 6348 { 6380 6349 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6386 6355 6387 6356 /* Line 1806 of yacc.c */ 6388 #line 12 13"parser.yy"6357 #line 1207 "parser.yy" 6389 6358 { 6390 6359 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD ); … … 6396 6365 6397 6366 /* Line 1806 of yacc.c */ 6398 #line 12 24"parser.yy"6367 #line 1218 "parser.yy" 6399 6368 { 6400 6369 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6406 6375 6407 6376 /* Line 1806 of yacc.c */ 6408 #line 122 9"parser.yy"6377 #line 1223 "parser.yy" 6409 6378 { 6410 6379 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6416 6385 6417 6386 /* Line 1806 of yacc.c */ 6418 #line 12 34"parser.yy"6387 #line 1228 "parser.yy" 6419 6388 { 6420 6389 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6426 6395 6427 6396 /* Line 1806 of yacc.c */ 6428 #line 123 9"parser.yy"6397 #line 1233 "parser.yy" 6429 6398 { 6430 6399 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6436 6405 6437 6406 /* Line 1806 of yacc.c */ 6438 #line 12 44"parser.yy"6407 #line 1238 "parser.yy" 6439 6408 { 6440 6409 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6446 6415 6447 6416 /* Line 1806 of yacc.c */ 6448 #line 12 53"parser.yy"6417 #line 1247 "parser.yy" 6449 6418 { 6450 6419 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD ); … … 6456 6425 6457 6426 /* Line 1806 of yacc.c */ 6458 #line 125 8"parser.yy"6427 #line 1252 "parser.yy" 6459 6428 { 6460 6429 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD ); … … 6466 6435 6467 6436 /* Line 1806 of yacc.c */ 6468 #line 12 75"parser.yy"6437 #line 1269 "parser.yy" 6469 6438 { 6470 6439 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6476 6445 6477 6446 /* Line 1806 of yacc.c */ 6478 #line 12 80"parser.yy"6447 #line 1274 "parser.yy" 6479 6448 { 6480 6449 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6486 6455 6487 6456 /* Line 1806 of yacc.c */ 6488 #line 1 302"parser.yy"6457 #line 1296 "parser.yy" 6489 6458 { (yyval.decl) = 0; } 6490 6459 break; … … 6493 6462 6494 6463 /* Line 1806 of yacc.c */ 6495 #line 13 14"parser.yy"6464 #line 1308 "parser.yy" 6496 6465 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6497 6466 break; … … 6500 6469 6501 6470 /* Line 1806 of yacc.c */ 6471 #line 1319 "parser.yy" 6472 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); } 6473 break; 6474 6475 case 305: 6476 6477 /* Line 1806 of yacc.c */ 6478 #line 1321 "parser.yy" 6479 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); } 6480 break; 6481 6482 case 306: 6483 6484 /* Line 1806 of yacc.c */ 6485 #line 1323 "parser.yy" 6486 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); } 6487 break; 6488 6489 case 307: 6490 6491 /* Line 1806 of yacc.c */ 6502 6492 #line 1325 "parser.yy" 6503 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode:: Const); }6504 break; 6505 6506 case 30 5:6493 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); } 6494 break; 6495 6496 case 308: 6507 6497 6508 6498 /* Line 1806 of yacc.c */ 6509 6499 #line 1327 "parser.yy" 6510 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode:: Restrict); }6511 break; 6512 6513 case 30 6:6500 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); } 6501 break; 6502 6503 case 309: 6514 6504 6515 6505 /* Line 1806 of yacc.c */ 6516 6506 #line 1329 "parser.yy" 6517 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }6518 break;6519 6520 case 307:6521 6522 /* Line 1806 of yacc.c */6523 #line 1331 "parser.yy"6524 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }6525 break;6526 6527 case 308:6528 6529 /* Line 1806 of yacc.c */6530 #line 1333 "parser.yy"6531 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }6532 break;6533 6534 case 309:6535 6536 /* Line 1806 of yacc.c */6537 #line 1335 "parser.yy"6538 6507 { 6539 6508 typedefTable.enterScope(); … … 6544 6513 6545 6514 /* Line 1806 of yacc.c */ 6546 #line 133 9"parser.yy"6515 #line 1333 "parser.yy" 6547 6516 { 6548 6517 typedefTable.leaveScope(); … … 6554 6523 6555 6524 /* Line 1806 of yacc.c */ 6556 #line 134 8"parser.yy"6525 #line 1342 "parser.yy" 6557 6526 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6558 6527 break; … … 6561 6530 6562 6531 /* Line 1806 of yacc.c */ 6563 #line 13 50"parser.yy"6532 #line 1344 "parser.yy" 6564 6533 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6565 6534 break; … … 6568 6537 6569 6538 /* Line 1806 of yacc.c */ 6570 #line 13 61"parser.yy"6539 #line 1355 "parser.yy" 6571 6540 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6572 6541 break; … … 6575 6544 6576 6545 /* Line 1806 of yacc.c */ 6546 #line 1360 "parser.yy" 6547 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); } 6548 break; 6549 6550 case 317: 6551 6552 /* Line 1806 of yacc.c */ 6553 #line 1362 "parser.yy" 6554 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); } 6555 break; 6556 6557 case 318: 6558 6559 /* Line 1806 of yacc.c */ 6560 #line 1364 "parser.yy" 6561 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); } 6562 break; 6563 6564 case 319: 6565 6566 /* Line 1806 of yacc.c */ 6577 6567 #line 1366 "parser.yy" 6578 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }6579 break;6580 6581 case 317:6582 6583 /* Line 1806 of yacc.c */6584 #line 1368 "parser.yy"6585 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }6586 break;6587 6588 case 318:6589 6590 /* Line 1806 of yacc.c */6591 #line 1370 "parser.yy"6592 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }6593 break;6594 6595 case 319:6596 6597 /* Line 1806 of yacc.c */6598 #line 1372 "parser.yy"6599 6568 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); } 6600 6569 break; … … 6603 6572 6604 6573 /* Line 1806 of yacc.c */ 6605 #line 13 75"parser.yy"6574 #line 1369 "parser.yy" 6606 6575 { (yyval.decl) = new DeclarationNode; (yyval.decl)->isInline = true; } 6607 6576 break; … … 6610 6579 6611 6580 /* Line 1806 of yacc.c */ 6612 #line 137 7"parser.yy"6581 #line 1371 "parser.yy" 6613 6582 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); } 6614 6583 break; … … 6617 6586 6618 6587 /* Line 1806 of yacc.c */ 6619 #line 13 80"parser.yy"6588 #line 1374 "parser.yy" 6620 6589 { (yyval.decl) = new DeclarationNode; (yyval.decl)->isNoreturn = true; } 6621 6590 break; … … 6624 6593 6625 6594 /* Line 1806 of yacc.c */ 6626 #line 13 82"parser.yy"6595 #line 1376 "parser.yy" 6627 6596 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); } 6628 6597 break; … … 6631 6600 6632 6601 /* Line 1806 of yacc.c */ 6602 #line 1381 "parser.yy" 6603 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); } 6604 break; 6605 6606 case 325: 6607 6608 /* Line 1806 of yacc.c */ 6609 #line 1383 "parser.yy" 6610 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); } 6611 break; 6612 6613 case 326: 6614 6615 /* Line 1806 of yacc.c */ 6616 #line 1385 "parser.yy" 6617 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); } 6618 break; 6619 6620 case 327: 6621 6622 /* Line 1806 of yacc.c */ 6633 6623 #line 1387 "parser.yy" 6634 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode:: Char); }6635 break; 6636 6637 case 32 5:6624 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); } 6625 break; 6626 6627 case 328: 6638 6628 6639 6629 /* Line 1806 of yacc.c */ 6640 6630 #line 1389 "parser.yy" 6641 { (yyval.decl) = DeclarationNode::new BasicType( DeclarationNode::Double); }6642 break; 6643 6644 case 32 6:6631 { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Long ); } 6632 break; 6633 6634 case 329: 6645 6635 6646 6636 /* Line 1806 of yacc.c */ 6647 6637 #line 1391 "parser.yy" 6648 { (yyval.decl) = DeclarationNode::new BasicType( DeclarationNode::Float ); }6649 break; 6650 6651 case 3 27:6638 { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Short ); } 6639 break; 6640 6641 case 330: 6652 6642 6653 6643 /* Line 1806 of yacc.c */ 6654 6644 #line 1393 "parser.yy" 6655 { (yyval.decl) = DeclarationNode::new BasicType( DeclarationNode::Int); }6656 break; 6657 6658 case 3 28:6645 { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Signed ); } 6646 break; 6647 6648 case 331: 6659 6649 6660 6650 /* Line 1806 of yacc.c */ 6661 6651 #line 1395 "parser.yy" 6662 { (yyval.decl) = DeclarationNode::new Length( DeclarationNode::Long); }6663 break; 6664 6665 case 3 29:6652 { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Unsigned ); } 6653 break; 6654 6655 case 332: 6666 6656 6667 6657 /* Line 1806 of yacc.c */ 6668 6658 #line 1397 "parser.yy" 6669 { (yyval.decl) = DeclarationNode::new Length( DeclarationNode::Short); }6670 break; 6671 6672 case 33 0:6659 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); } 6660 break; 6661 6662 case 333: 6673 6663 6674 6664 /* Line 1806 of yacc.c */ 6675 6665 #line 1399 "parser.yy" 6676 { (yyval.decl) = DeclarationNode::new SignedNess( DeclarationNode::Signed); }6677 break; 6678 6679 case 33 1:6666 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); } 6667 break; 6668 6669 case 334: 6680 6670 6681 6671 /* Line 1806 of yacc.c */ 6682 6672 #line 1401 "parser.yy" 6683 { (yyval.decl) = DeclarationNode::new SignedNess( DeclarationNode::Unsigned); }6684 break; 6685 6686 case 33 2:6673 { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Complex ); } 6674 break; 6675 6676 case 335: 6687 6677 6688 6678 /* Line 1806 of yacc.c */ 6689 6679 #line 1403 "parser.yy" 6690 { (yyval.decl) = DeclarationNode::new BasicType( DeclarationNode::Void); }6691 break; 6692 6693 case 33 3:6680 { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Imaginary ); } 6681 break; 6682 6683 case 336: 6694 6684 6695 6685 /* Line 1806 of yacc.c */ 6696 6686 #line 1405 "parser.yy" 6697 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }6698 break;6699 6700 case 334:6701 6702 /* Line 1806 of yacc.c */6703 #line 1407 "parser.yy"6704 { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Complex ); }6705 break;6706 6707 case 335:6708 6709 /* Line 1806 of yacc.c */6710 #line 1409 "parser.yy"6711 { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Imaginary ); }6712 break;6713 6714 case 336:6715 6716 /* Line 1806 of yacc.c */6717 #line 1411 "parser.yy"6718 6687 { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); } 6719 6688 break; … … 6722 6691 6723 6692 /* Line 1806 of yacc.c */ 6693 #line 1412 "parser.yy" 6694 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6695 break; 6696 6697 case 339: 6698 6699 /* Line 1806 of yacc.c */ 6700 #line 1414 "parser.yy" 6701 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6702 break; 6703 6704 case 340: 6705 6706 /* Line 1806 of yacc.c */ 6707 #line 1416 "parser.yy" 6708 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6709 break; 6710 6711 case 341: 6712 6713 /* Line 1806 of yacc.c */ 6724 6714 #line 1418 "parser.yy" 6715 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); } 6716 break; 6717 6718 case 343: 6719 6720 /* Line 1806 of yacc.c */ 6721 #line 1424 "parser.yy" 6722 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6723 break; 6724 6725 case 345: 6726 6727 /* Line 1806 of yacc.c */ 6728 #line 1431 "parser.yy" 6725 6729 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6726 6730 break; 6727 6731 6728 case 3 39:6729 6730 /* Line 1806 of yacc.c */ 6731 #line 14 20"parser.yy"6732 case 346: 6733 6734 /* Line 1806 of yacc.c */ 6735 #line 1433 "parser.yy" 6732 6736 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6733 6737 break; 6734 6738 6735 case 340: 6736 6737 /* Line 1806 of yacc.c */ 6738 #line 1422 "parser.yy" 6739 case 347: 6740 6741 /* Line 1806 of yacc.c */ 6742 #line 1435 "parser.yy" 6743 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); } 6744 break; 6745 6746 case 348: 6747 6748 /* Line 1806 of yacc.c */ 6749 #line 1440 "parser.yy" 6750 { (yyval.decl) = (yyvsp[(3) - (4)].decl); } 6751 break; 6752 6753 case 349: 6754 6755 /* Line 1806 of yacc.c */ 6756 #line 1442 "parser.yy" 6757 { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); } 6758 break; 6759 6760 case 350: 6761 6762 /* Line 1806 of yacc.c */ 6763 #line 1444 "parser.yy" 6764 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); } 6765 break; 6766 6767 case 351: 6768 6769 /* Line 1806 of yacc.c */ 6770 #line 1446 "parser.yy" 6771 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 6772 break; 6773 6774 case 353: 6775 6776 /* Line 1806 of yacc.c */ 6777 #line 1452 "parser.yy" 6778 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6779 break; 6780 6781 case 354: 6782 6783 /* Line 1806 of yacc.c */ 6784 #line 1454 "parser.yy" 6785 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6786 break; 6787 6788 case 355: 6789 6790 /* Line 1806 of yacc.c */ 6791 #line 1456 "parser.yy" 6739 6792 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6740 6793 break; 6741 6794 6742 case 341: 6743 6744 /* Line 1806 of yacc.c */ 6745 #line 1424 "parser.yy" 6746 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); } 6747 break; 6748 6749 case 343: 6750 6751 /* Line 1806 of yacc.c */ 6752 #line 1430 "parser.yy" 6753 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6754 break; 6755 6756 case 345: 6757 6758 /* Line 1806 of yacc.c */ 6759 #line 1437 "parser.yy" 6795 case 357: 6796 6797 /* Line 1806 of yacc.c */ 6798 #line 1462 "parser.yy" 6760 6799 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6761 6800 break; 6762 6801 6763 case 3 46:6764 6765 /* Line 1806 of yacc.c */ 6766 #line 14 39"parser.yy"6802 case 358: 6803 6804 /* Line 1806 of yacc.c */ 6805 #line 1464 "parser.yy" 6767 6806 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6768 6807 break; 6769 6808 6770 case 347: 6771 6772 /* Line 1806 of yacc.c */ 6773 #line 1441 "parser.yy" 6774 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); } 6775 break; 6776 6777 case 348: 6778 6779 /* Line 1806 of yacc.c */ 6780 #line 1446 "parser.yy" 6781 { (yyval.decl) = (yyvsp[(3) - (4)].decl); } 6782 break; 6783 6784 case 349: 6785 6786 /* Line 1806 of yacc.c */ 6787 #line 1448 "parser.yy" 6788 { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); } 6789 break; 6790 6791 case 350: 6792 6793 /* Line 1806 of yacc.c */ 6794 #line 1450 "parser.yy" 6795 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); } 6796 break; 6797 6798 case 351: 6799 6800 /* Line 1806 of yacc.c */ 6801 #line 1452 "parser.yy" 6802 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 6803 break; 6804 6805 case 353: 6806 6807 /* Line 1806 of yacc.c */ 6808 #line 1458 "parser.yy" 6809 case 360: 6810 6811 /* Line 1806 of yacc.c */ 6812 #line 1470 "parser.yy" 6809 6813 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6810 6814 break; 6811 6815 6812 case 3 54:6813 6814 /* Line 1806 of yacc.c */ 6815 #line 14 60"parser.yy"6816 case 361: 6817 6818 /* Line 1806 of yacc.c */ 6819 #line 1472 "parser.yy" 6816 6820 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6817 6821 break; 6818 6822 6819 case 3 55:6820 6821 /* Line 1806 of yacc.c */ 6822 #line 14 62"parser.yy"6823 case 362: 6824 6825 /* Line 1806 of yacc.c */ 6826 #line 1474 "parser.yy" 6823 6827 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6824 6828 break; 6825 6829 6826 case 357: 6827 6828 /* Line 1806 of yacc.c */ 6829 #line 1468 "parser.yy" 6830 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6831 break; 6832 6833 case 358: 6834 6835 /* Line 1806 of yacc.c */ 6836 #line 1470 "parser.yy" 6830 case 363: 6831 6832 /* Line 1806 of yacc.c */ 6833 #line 1479 "parser.yy" 6834 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); } 6835 break; 6836 6837 case 364: 6838 6839 /* Line 1806 of yacc.c */ 6840 #line 1481 "parser.yy" 6841 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6842 break; 6843 6844 case 365: 6845 6846 /* Line 1806 of yacc.c */ 6847 #line 1483 "parser.yy" 6837 6848 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6838 6849 break; 6839 6850 6840 case 360:6841 6842 /* Line 1806 of yacc.c */6843 #line 1476 "parser.yy"6844 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }6845 break;6846 6847 case 361:6848 6849 /* Line 1806 of yacc.c */6850 #line 1478 "parser.yy"6851 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }6852 break;6853 6854 case 362:6855 6856 /* Line 1806 of yacc.c */6857 #line 1480 "parser.yy"6858 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }6859 break;6860 6861 case 363:6862 6863 /* Line 1806 of yacc.c */6864 #line 1485 "parser.yy"6865 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }6866 break;6867 6868 case 364:6869 6870 /* Line 1806 of yacc.c */6871 #line 1487 "parser.yy"6872 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }6873 break;6874 6875 case 365:6876 6877 /* Line 1806 of yacc.c */6878 #line 1489 "parser.yy"6879 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }6880 break;6881 6882 6851 case 368: 6883 6852 6884 6853 /* Line 1806 of yacc.c */ 6885 #line 149 9"parser.yy"6854 #line 1493 "parser.yy" 6886 6855 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), nullptr, nullptr, (yyvsp[(3) - (4)].decl), true ); } 6887 6856 break; … … 6890 6859 6891 6860 /* Line 1806 of yacc.c */ 6892 #line 1 501"parser.yy"6861 #line 1495 "parser.yy" 6893 6862 { 6894 6863 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); … … 6900 6869 6901 6870 /* Line 1806 of yacc.c */ 6871 #line 1500 "parser.yy" 6872 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); } 6873 break; 6874 6875 case 371: 6876 6877 /* Line 1806 of yacc.c */ 6878 #line 1502 "parser.yy" 6879 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), nullptr, (yyvsp[(5) - (6)].decl), true ); } 6880 break; 6881 6882 case 372: 6883 6884 /* Line 1806 of yacc.c */ 6885 #line 1504 "parser.yy" 6886 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), nullptr, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); } 6887 break; 6888 6889 case 373: 6890 6891 /* Line 1806 of yacc.c */ 6902 6892 #line 1506 "parser.yy" 6903 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }6904 break;6905 6906 case 371:6907 6908 /* Line 1806 of yacc.c */6909 #line 1508 "parser.yy"6910 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), nullptr, (yyvsp[(5) - (6)].decl), true ); }6911 break;6912 6913 case 372:6914 6915 /* Line 1806 of yacc.c */6916 #line 1510 "parser.yy"6917 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), nullptr, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); }6918 break;6919 6920 case 373:6921 6922 /* Line 1806 of yacc.c */6923 #line 1512 "parser.yy"6924 6893 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 6925 6894 break; … … 6928 6897 6929 6898 /* Line 1806 of yacc.c */ 6930 #line 151 7"parser.yy"6899 #line 1511 "parser.yy" 6931 6900 { (yyval.aggKey) = DeclarationNode::Struct; } 6932 6901 break; … … 6935 6904 6936 6905 /* Line 1806 of yacc.c */ 6937 #line 151 9"parser.yy"6906 #line 1513 "parser.yy" 6938 6907 { (yyval.aggKey) = DeclarationNode::Union; } 6939 6908 break; … … 6942 6911 6943 6912 /* Line 1806 of yacc.c */ 6944 #line 15 24"parser.yy"6913 #line 1518 "parser.yy" 6945 6914 { (yyval.decl) = 0; } 6946 6915 break; … … 6949 6918 6950 6919 /* Line 1806 of yacc.c */ 6920 #line 1520 "parser.yy" 6921 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 6922 break; 6923 6924 case 379: 6925 6926 /* Line 1806 of yacc.c */ 6951 6927 #line 1526 "parser.yy" 6952 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }6953 break;6954 6955 case 379:6956 6957 /* Line 1806 of yacc.c */6958 #line 1532 "parser.yy"6959 6928 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); } 6960 6929 break; … … 6963 6932 6964 6933 /* Line 1806 of yacc.c */ 6965 #line 15 35"parser.yy"6934 #line 1529 "parser.yy" 6966 6935 { // mark all fields in list 6967 6936 for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) … … 6974 6943 6975 6944 /* Line 1806 of yacc.c */ 6976 #line 15 45"parser.yy"6945 #line 1539 "parser.yy" 6977 6946 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); } 6978 6947 break; … … 6981 6950 6982 6951 /* Line 1806 of yacc.c */ 6983 #line 154 7"parser.yy"6952 #line 1541 "parser.yy" 6984 6953 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); } 6985 6954 break; … … 6988 6957 6989 6958 /* Line 1806 of yacc.c */ 6990 #line 154 9"parser.yy"6959 #line 1543 "parser.yy" 6991 6960 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); } 6992 6961 break; … … 6995 6964 6996 6965 /* Line 1806 of yacc.c */ 6997 #line 15 54"parser.yy"6966 #line 1548 "parser.yy" 6998 6967 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 6999 6968 break; … … 7002 6971 7003 6972 /* Line 1806 of yacc.c */ 7004 #line 155 6"parser.yy"6973 #line 1550 "parser.yy" 7005 6974 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); } 7006 6975 break; … … 7009 6978 7010 6979 /* Line 1806 of yacc.c */ 7011 #line 15 61"parser.yy"6980 #line 1555 "parser.yy" 7012 6981 { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ } 7013 6982 break; … … 7016 6985 7017 6986 /* Line 1806 of yacc.c */ 6987 #line 1557 "parser.yy" 6988 { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); } 6989 break; 6990 6991 case 390: 6992 6993 /* Line 1806 of yacc.c */ 6994 #line 1560 "parser.yy" 6995 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 6996 break; 6997 6998 case 391: 6999 7000 /* Line 1806 of yacc.c */ 7018 7001 #line 1563 "parser.yy" 7019 { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }7020 break;7021 7022 case 390:7023 7024 /* Line 1806 of yacc.c */7025 #line 1566 "parser.yy"7026 7002 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 7027 7003 break; 7028 7004 7029 case 39 1:7005 case 393: 7030 7006 7031 7007 /* Line 1806 of yacc.c */ 7032 7008 #line 1569 "parser.yy" 7033 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }7034 break;7035 7036 case 393:7037 7038 /* Line 1806 of yacc.c */7039 #line 1575 "parser.yy"7040 7009 { (yyval.en) = 0; } 7041 7010 break; … … 7044 7013 7045 7014 /* Line 1806 of yacc.c */ 7046 #line 157 7"parser.yy"7015 #line 1571 "parser.yy" 7047 7016 { (yyval.en) = (yyvsp[(1) - (1)].en); } 7048 7017 break; … … 7051 7020 7052 7021 /* Line 1806 of yacc.c */ 7053 #line 15 82"parser.yy"7022 #line 1576 "parser.yy" 7054 7023 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7055 7024 break; … … 7058 7027 7059 7028 /* Line 1806 of yacc.c */ 7060 #line 15 91"parser.yy"7029 #line 1585 "parser.yy" 7061 7030 { (yyval.decl) = DeclarationNode::newEnum( nullptr, (yyvsp[(3) - (5)].decl) ); } 7062 7031 break; … … 7065 7034 7066 7035 /* Line 1806 of yacc.c */ 7067 #line 15 93"parser.yy"7036 #line 1587 "parser.yy" 7068 7037 { 7069 7038 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); … … 7075 7044 7076 7045 /* Line 1806 of yacc.c */ 7077 #line 159 8"parser.yy"7046 #line 1592 "parser.yy" 7078 7047 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); } 7079 7048 break; … … 7082 7051 7083 7052 /* Line 1806 of yacc.c */ 7084 #line 1 600"parser.yy"7053 #line 1594 "parser.yy" 7085 7054 { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); } 7086 7055 break; … … 7089 7058 7090 7059 /* Line 1806 of yacc.c */ 7091 #line 1 605"parser.yy"7060 #line 1599 "parser.yy" 7092 7061 { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); } 7093 7062 break; … … 7096 7065 7097 7066 /* Line 1806 of yacc.c */ 7098 #line 160 7"parser.yy"7067 #line 1601 "parser.yy" 7099 7068 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); } 7100 7069 break; … … 7103 7072 7104 7073 /* Line 1806 of yacc.c */ 7105 #line 16 12"parser.yy"7074 #line 1606 "parser.yy" 7106 7075 { (yyval.en) = 0; } 7107 7076 break; … … 7110 7079 7111 7080 /* Line 1806 of yacc.c */ 7112 #line 16 14"parser.yy"7081 #line 1608 "parser.yy" 7113 7082 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7114 7083 break; … … 7117 7086 7118 7087 /* Line 1806 of yacc.c */ 7119 #line 16 21"parser.yy"7088 #line 1615 "parser.yy" 7120 7089 { (yyval.decl) = 0; } 7121 7090 break; … … 7124 7093 7125 7094 /* Line 1806 of yacc.c */ 7126 #line 162 9"parser.yy"7095 #line 1623 "parser.yy" 7127 7096 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7128 7097 break; … … 7131 7100 7132 7101 /* Line 1806 of yacc.c */ 7133 #line 16 31"parser.yy"7102 #line 1625 "parser.yy" 7134 7103 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7135 7104 break; … … 7138 7107 7139 7108 /* Line 1806 of yacc.c */ 7140 #line 16 33"parser.yy"7109 #line 1627 "parser.yy" 7141 7110 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7142 7111 break; … … 7145 7114 7146 7115 /* Line 1806 of yacc.c */ 7147 #line 16 41"parser.yy"7116 #line 1635 "parser.yy" 7148 7117 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7149 7118 break; … … 7152 7121 7153 7122 /* Line 1806 of yacc.c */ 7154 #line 16 43"parser.yy"7123 #line 1637 "parser.yy" 7155 7124 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7156 7125 break; … … 7159 7128 7160 7129 /* Line 1806 of yacc.c */ 7130 #line 1639 "parser.yy" 7131 { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); } 7132 break; 7133 7134 case 417: 7135 7136 /* Line 1806 of yacc.c */ 7161 7137 #line 1645 "parser.yy" 7162 { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }7163 break;7164 7165 case 417:7166 7167 /* Line 1806 of yacc.c */7168 #line 1651 "parser.yy"7169 7138 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7170 7139 break; … … 7173 7142 7174 7143 /* Line 1806 of yacc.c */ 7175 #line 165 6"parser.yy"7144 #line 1650 "parser.yy" 7176 7145 { (yyval.decl) = 0; } 7177 7146 break; … … 7180 7149 7181 7150 /* Line 1806 of yacc.c */ 7182 #line 16 63"parser.yy"7151 #line 1657 "parser.yy" 7183 7152 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7184 7153 break; … … 7187 7156 7188 7157 /* Line 1806 of yacc.c */ 7189 #line 16 70"parser.yy"7158 #line 1664 "parser.yy" 7190 7159 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7191 7160 break; … … 7194 7163 7195 7164 /* Line 1806 of yacc.c */ 7196 #line 16 72"parser.yy"7165 #line 1666 "parser.yy" 7197 7166 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7198 7167 break; … … 7201 7170 7202 7171 /* Line 1806 of yacc.c */ 7203 #line 16 81"parser.yy"7172 #line 1675 "parser.yy" 7204 7173 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 7205 7174 break; … … 7208 7177 7209 7178 /* Line 1806 of yacc.c */ 7210 #line 16 84"parser.yy"7179 #line 1678 "parser.yy" 7211 7180 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 7212 7181 break; … … 7215 7184 7216 7185 /* Line 1806 of yacc.c */ 7217 #line 168 6"parser.yy"7186 #line 1680 "parser.yy" 7218 7187 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); } 7219 7188 break; … … 7222 7191 7223 7192 /* Line 1806 of yacc.c */ 7193 #line 1690 "parser.yy" 7194 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7195 break; 7196 7197 case 436: 7198 7199 /* Line 1806 of yacc.c */ 7224 7200 #line 1696 "parser.yy" 7225 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }7226 break;7227 7228 case 436:7229 7230 /* Line 1806 of yacc.c */7231 #line 1702 "parser.yy"7232 7201 { 7233 7202 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7239 7208 7240 7209 /* Line 1806 of yacc.c */ 7241 #line 170 7"parser.yy"7210 #line 1701 "parser.yy" 7242 7211 { 7243 7212 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7249 7218 7250 7219 /* Line 1806 of yacc.c */ 7251 #line 171 6"parser.yy"7220 #line 1710 "parser.yy" 7252 7221 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7253 7222 break; … … 7256 7225 7257 7226 /* Line 1806 of yacc.c */ 7258 #line 17 25"parser.yy"7227 #line 1719 "parser.yy" 7259 7228 { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); } 7260 7229 break; … … 7263 7232 7264 7233 /* Line 1806 of yacc.c */ 7265 #line 172 7"parser.yy"7234 #line 1721 "parser.yy" 7266 7235 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); } 7267 7236 break; … … 7270 7239 7271 7240 /* Line 1806 of yacc.c */ 7272 #line 17 52"parser.yy"7241 #line 1746 "parser.yy" 7273 7242 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7274 7243 break; … … 7277 7246 7278 7247 /* Line 1806 of yacc.c */ 7279 #line 17 60"parser.yy"7248 #line 1754 "parser.yy" 7280 7249 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7281 7250 break; … … 7284 7253 7285 7254 /* Line 1806 of yacc.c */ 7286 #line 17 65"parser.yy"7255 #line 1759 "parser.yy" 7287 7256 { (yyval.in) = 0; } 7288 7257 break; … … 7291 7260 7292 7261 /* Line 1806 of yacc.c */ 7262 #line 1761 "parser.yy" 7263 { (yyval.in) = (yyvsp[(2) - (2)].in); } 7264 break; 7265 7266 case 460: 7267 7268 /* Line 1806 of yacc.c */ 7269 #line 1763 "parser.yy" 7270 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); } 7271 break; 7272 7273 case 461: 7274 7275 /* Line 1806 of yacc.c */ 7293 7276 #line 1767 "parser.yy" 7294 { (yyval.in) = (yyvsp[(2) - (2)].in); }7295 break; 7296 7297 case 46 0:7298 7299 /* Line 1806 of yacc.c */ 7300 #line 176 9"parser.yy"7301 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); }7302 break; 7303 7304 case 46 1:7277 { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); } 7278 break; 7279 7280 case 462: 7281 7282 /* Line 1806 of yacc.c */ 7283 #line 1768 "parser.yy" 7284 { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); } 7285 break; 7286 7287 case 463: 7305 7288 7306 7289 /* Line 1806 of yacc.c */ 7307 7290 #line 1773 "parser.yy" 7308 { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }7309 break;7310 7311 case 462:7312 7313 /* Line 1806 of yacc.c */7314 #line 1774 "parser.yy"7315 { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }7316 break;7317 7318 case 463:7319 7320 /* Line 1806 of yacc.c */7321 #line 1779 "parser.yy"7322 7291 { (yyval.in) = 0; } 7323 7292 break; … … 7326 7295 7327 7296 /* Line 1806 of yacc.c */ 7328 #line 17 81"parser.yy"7297 #line 1775 "parser.yy" 7329 7298 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); } 7330 7299 break; … … 7333 7302 7334 7303 /* Line 1806 of yacc.c */ 7335 #line 17 82"parser.yy"7304 #line 1776 "parser.yy" 7336 7305 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); } 7337 7306 break; … … 7340 7309 7341 7310 /* Line 1806 of yacc.c */ 7342 #line 17 84"parser.yy"7311 #line 1778 "parser.yy" 7343 7312 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_last( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); } 7344 7313 break; … … 7347 7316 7348 7317 /* Line 1806 of yacc.c */ 7318 #line 1794 "parser.yy" 7319 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); } 7320 break; 7321 7322 case 471: 7323 7324 /* Line 1806 of yacc.c */ 7349 7325 #line 1800 "parser.yy" 7350 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); }7351 break; 7352 7353 case 47 1:7326 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) ) ); } 7327 break; 7328 7329 case 472: 7354 7330 7355 7331 /* Line 1806 of yacc.c */ 7356 7332 #line 1806 "parser.yy" 7357 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) ) ); }7358 break;7359 7360 case 472:7361 7362 /* Line 1806 of yacc.c */7363 #line 1812 "parser.yy"7364 7333 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); } 7365 7334 break; … … 7368 7337 7369 7338 /* Line 1806 of yacc.c */ 7339 #line 1809 "parser.yy" 7340 { (yyval.en) = (yyvsp[(3) - (5)].en); } 7341 break; 7342 7343 case 474: 7344 7345 /* Line 1806 of yacc.c */ 7346 #line 1811 "parser.yy" 7347 { (yyval.en) = (yyvsp[(3) - (5)].en); } 7348 break; 7349 7350 case 475: 7351 7352 /* Line 1806 of yacc.c */ 7353 #line 1813 "parser.yy" 7354 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); } 7355 break; 7356 7357 case 476: 7358 7359 /* Line 1806 of yacc.c */ 7370 7360 #line 1815 "parser.yy" 7371 { (yyval.en) = (yyvsp[(3) - (5)].en); }7372 break;7373 7374 case 474:7375 7376 /* Line 1806 of yacc.c */7377 #line 1817 "parser.yy"7378 { (yyval.en) = (yyvsp[(3) - (5)].en); }7379 break;7380 7381 case 475:7382 7383 /* Line 1806 of yacc.c */7384 #line 1819 "parser.yy"7385 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); }7386 break;7387 7388 case 476:7389 7390 /* Line 1806 of yacc.c */7391 #line 1821 "parser.yy"7392 7361 { (yyval.en) = (yyvsp[(4) - (6)].en); } 7393 7362 break; … … 7396 7365 7397 7366 /* Line 1806 of yacc.c */ 7398 #line 18 45"parser.yy"7367 #line 1839 "parser.yy" 7399 7368 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7400 7369 break; … … 7403 7372 7404 7373 /* Line 1806 of yacc.c */ 7405 #line 184 7"parser.yy"7374 #line 1841 "parser.yy" 7406 7375 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7407 7376 break; … … 7410 7379 7411 7380 /* Line 1806 of yacc.c */ 7381 #line 1843 "parser.yy" 7382 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 7383 break; 7384 7385 case 482: 7386 7387 /* Line 1806 of yacc.c */ 7412 7388 #line 1849 "parser.yy" 7413 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }7414 break;7415 7416 case 482:7417 7418 /* Line 1806 of yacc.c */7419 #line 1855 "parser.yy"7420 7389 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7421 7390 break; … … 7424 7393 7425 7394 /* Line 1806 of yacc.c */ 7426 #line 185 7"parser.yy"7395 #line 1851 "parser.yy" 7427 7396 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7428 7397 break; … … 7431 7400 7432 7401 /* Line 1806 of yacc.c */ 7402 #line 1856 "parser.yy" 7403 { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 7404 break; 7405 7406 case 486: 7407 7408 /* Line 1806 of yacc.c */ 7433 7409 #line 1862 "parser.yy" 7434 { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }7435 break;7436 7437 case 486:7438 7439 /* Line 1806 of yacc.c */7440 #line 1868 "parser.yy"7441 7410 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); } 7442 7411 break; … … 7445 7414 7446 7415 /* Line 1806 of yacc.c */ 7447 #line 18 73"parser.yy"7416 #line 1867 "parser.yy" 7448 7417 { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); } 7449 7418 break; … … 7452 7421 7453 7422 /* Line 1806 of yacc.c */ 7423 #line 1869 "parser.yy" 7424 { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); } 7425 break; 7426 7427 case 490: 7428 7429 /* Line 1806 of yacc.c */ 7454 7430 #line 1875 "parser.yy" 7455 { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }7456 break;7457 7458 case 490:7459 7460 /* Line 1806 of yacc.c */7461 #line 1881 "parser.yy"7462 7431 { (yyval.tclass) = DeclarationNode::Otype; } 7463 7432 break; … … 7466 7435 7467 7436 /* Line 1806 of yacc.c */ 7468 #line 18 83"parser.yy"7437 #line 1877 "parser.yy" 7469 7438 { (yyval.tclass) = DeclarationNode::Ftype; } 7470 7439 break; … … 7473 7442 7474 7443 /* Line 1806 of yacc.c */ 7475 #line 18 85"parser.yy"7444 #line 1879 "parser.yy" 7476 7445 { (yyval.tclass) = DeclarationNode::Dtype; } 7477 7446 break; … … 7480 7449 7481 7450 /* Line 1806 of yacc.c */ 7482 #line 18 90"parser.yy"7451 #line 1884 "parser.yy" 7483 7452 { (yyval.decl) = 0; } 7484 7453 break; … … 7487 7456 7488 7457 /* Line 1806 of yacc.c */ 7489 #line 18 92"parser.yy"7458 #line 1886 "parser.yy" 7490 7459 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 7491 7460 break; … … 7494 7463 7495 7464 /* Line 1806 of yacc.c */ 7496 #line 189 7"parser.yy"7465 #line 1891 "parser.yy" 7497 7466 { 7498 7467 typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) ); … … 7504 7473 7505 7474 /* Line 1806 of yacc.c */ 7506 #line 1 902"parser.yy"7475 #line 1896 "parser.yy" 7507 7476 { (yyval.decl) = (yyvsp[(4) - (5)].decl); } 7508 7477 break; … … 7511 7480 7512 7481 /* Line 1806 of yacc.c */ 7513 #line 1 904"parser.yy"7482 #line 1898 "parser.yy" 7514 7483 { (yyval.decl) = 0; } 7515 7484 break; … … 7518 7487 7519 7488 /* Line 1806 of yacc.c */ 7520 #line 190 9"parser.yy"7489 #line 1903 "parser.yy" 7521 7490 { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); } 7522 7491 break; … … 7525 7494 7526 7495 /* Line 1806 of yacc.c */ 7527 #line 19 12"parser.yy"7496 #line 1906 "parser.yy" 7528 7497 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); } 7529 7498 break; … … 7532 7501 7533 7502 /* Line 1806 of yacc.c */ 7534 #line 19 14"parser.yy"7503 #line 1908 "parser.yy" 7535 7504 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); } 7536 7505 break; … … 7539 7508 7540 7509 /* Line 1806 of yacc.c */ 7541 #line 191 9"parser.yy"7510 #line 1913 "parser.yy" 7542 7511 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 7543 7512 break; … … 7546 7515 7547 7516 /* Line 1806 of yacc.c */ 7548 #line 19 21"parser.yy"7517 #line 1915 "parser.yy" 7549 7518 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); } 7550 7519 break; … … 7553 7522 7554 7523 /* Line 1806 of yacc.c */ 7555 #line 19 23"parser.yy"7524 #line 1917 "parser.yy" 7556 7525 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); } 7557 7526 break; … … 7560 7529 7561 7530 /* Line 1806 of yacc.c */ 7562 #line 192 8"parser.yy"7531 #line 1922 "parser.yy" 7563 7532 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); } 7564 7533 break; … … 7567 7536 7568 7537 /* Line 1806 of yacc.c */ 7569 #line 19 30"parser.yy"7538 #line 1924 "parser.yy" 7570 7539 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); } 7571 7540 break; … … 7574 7543 7575 7544 /* Line 1806 of yacc.c */ 7576 #line 19 35"parser.yy"7545 #line 1929 "parser.yy" 7577 7546 { 7578 7547 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD ); … … 7584 7553 7585 7554 /* Line 1806 of yacc.c */ 7586 #line 19 40"parser.yy"7555 #line 1934 "parser.yy" 7587 7556 { 7588 7557 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG ); … … 7594 7563 7595 7564 /* Line 1806 of yacc.c */ 7596 #line 194 8"parser.yy"7565 #line 1942 "parser.yy" 7597 7566 { 7598 7567 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID ); … … 7604 7573 7605 7574 /* Line 1806 of yacc.c */ 7606 #line 19 53"parser.yy"7575 #line 1947 "parser.yy" 7607 7576 { 7608 7577 typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) ); … … 7614 7583 7615 7584 /* Line 1806 of yacc.c */ 7616 #line 195 8"parser.yy"7585 #line 1952 "parser.yy" 7617 7586 { 7618 7587 typedefTable.leaveTrait(); … … 7625 7594 7626 7595 /* Line 1806 of yacc.c */ 7627 #line 196 8"parser.yy"7596 #line 1962 "parser.yy" 7628 7597 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 7629 7598 break; … … 7632 7601 7633 7602 /* Line 1806 of yacc.c */ 7634 #line 197 8"parser.yy"7603 #line 1972 "parser.yy" 7635 7604 { 7636 7605 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7642 7611 7643 7612 /* Line 1806 of yacc.c */ 7644 #line 19 83"parser.yy"7613 #line 1977 "parser.yy" 7645 7614 { 7646 7615 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7652 7621 7653 7622 /* Line 1806 of yacc.c */ 7654 #line 198 8"parser.yy"7623 #line 1982 "parser.yy" 7655 7624 { 7656 7625 typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); … … 7662 7631 7663 7632 /* Line 1806 of yacc.c */ 7664 #line 199 6"parser.yy"7633 #line 1990 "parser.yy" 7665 7634 { 7666 7635 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7672 7641 7673 7642 /* Line 1806 of yacc.c */ 7674 #line 2001"parser.yy"7643 #line 1995 "parser.yy" 7675 7644 { 7676 7645 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7682 7651 7683 7652 /* Line 1806 of yacc.c */ 7684 #line 20 11"parser.yy"7653 #line 2005 "parser.yy" 7685 7654 {} 7686 7655 break; … … 7689 7658 7690 7659 /* Line 1806 of yacc.c */ 7660 #line 2007 "parser.yy" 7661 { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl); } 7662 break; 7663 7664 case 524: 7665 7666 /* Line 1806 of yacc.c */ 7691 7667 #line 2013 "parser.yy" 7692 { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl); }7693 break;7694 7695 case 524:7696 7697 /* Line 1806 of yacc.c */7698 #line 2019 "parser.yy"7699 7668 { (yyval.decl) = (yyvsp[(1) - (3)].decl) != nullptr ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); } 7700 7669 break; … … 7703 7672 7704 7673 /* Line 1806 of yacc.c */ 7705 #line 20 24"parser.yy"7674 #line 2018 "parser.yy" 7706 7675 { (yyval.decl) = 0; } 7707 7676 break; … … 7710 7679 7711 7680 /* Line 1806 of yacc.c */ 7712 #line 20 32"parser.yy"7681 #line 2026 "parser.yy" 7713 7682 {} 7714 7683 break; … … 7717 7686 7718 7687 /* Line 1806 of yacc.c */ 7719 #line 20 34"parser.yy"7688 #line 2028 "parser.yy" 7720 7689 { 7721 7690 linkageStack.push( linkage ); // handle nested extern "C"/"Cforall" … … 7727 7696 7728 7697 /* Line 1806 of yacc.c */ 7729 #line 203 9"parser.yy"7698 #line 2033 "parser.yy" 7730 7699 { 7731 7700 linkage = linkageStack.top(); … … 7738 7707 7739 7708 /* Line 1806 of yacc.c */ 7740 #line 20 45"parser.yy"7709 #line 2039 "parser.yy" 7741 7710 { // mark all fields in list 7742 7711 for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) … … 7749 7718 7750 7719 /* Line 1806 of yacc.c */ 7751 #line 20 60"parser.yy"7720 #line 2054 "parser.yy" 7752 7721 { 7753 7722 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7760 7729 7761 7730 /* Line 1806 of yacc.c */ 7762 #line 206 6"parser.yy"7731 #line 2060 "parser.yy" 7763 7732 { 7764 7733 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7771 7740 7772 7741 /* Line 1806 of yacc.c */ 7773 #line 20 75"parser.yy"7742 #line 2069 "parser.yy" 7774 7743 { 7775 7744 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7782 7751 7783 7752 /* Line 1806 of yacc.c */ 7784 #line 20 81"parser.yy"7753 #line 2075 "parser.yy" 7785 7754 { 7786 7755 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7791 7760 7792 7761 case 538: 7762 7763 /* Line 1806 of yacc.c */ 7764 #line 2081 "parser.yy" 7765 { 7766 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7767 typedefTable.leaveScope(); 7768 (yyval.decl) = (yyvsp[(2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addQualifiers( (yyvsp[(1) - (3)].decl) ); 7769 } 7770 break; 7771 7772 case 539: 7793 7773 7794 7774 /* Line 1806 of yacc.c */ … … 7801 7781 break; 7802 7782 7803 case 5 39:7783 case 540: 7804 7784 7805 7785 /* Line 1806 of yacc.c */ 7806 7786 #line 2093 "parser.yy" 7807 {7808 typedefTable.addToEnclosingScope( TypedefTable::ID );7809 typedefTable.leaveScope();7810 (yyval.decl) = (yyvsp[(2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addQualifiers( (yyvsp[(1) - (3)].decl) );7811 }7812 break;7813 7814 case 540:7815 7816 /* Line 1806 of yacc.c */7817 #line 2099 "parser.yy"7818 7787 { 7819 7788 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7826 7795 7827 7796 /* Line 1806 of yacc.c */ 7828 #line 210 7"parser.yy"7797 #line 2101 "parser.yy" 7829 7798 { 7830 7799 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7837 7806 7838 7807 /* Line 1806 of yacc.c */ 7839 #line 21 13"parser.yy"7808 #line 2107 "parser.yy" 7840 7809 { 7841 7810 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7848 7817 7849 7818 /* Line 1806 of yacc.c */ 7850 #line 21 21"parser.yy"7819 #line 2115 "parser.yy" 7851 7820 { 7852 7821 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7859 7828 7860 7829 /* Line 1806 of yacc.c */ 7861 #line 212 7"parser.yy"7830 #line 2121 "parser.yy" 7862 7831 { 7863 7832 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7870 7839 7871 7840 /* Line 1806 of yacc.c */ 7872 #line 21 42"parser.yy"7841 #line 2136 "parser.yy" 7873 7842 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 7874 7843 break; … … 7877 7846 7878 7847 /* Line 1806 of yacc.c */ 7879 #line 214 7"parser.yy"7848 #line 2141 "parser.yy" 7880 7849 { delete (yyvsp[(3) - (5)].str); } 7881 7850 break; … … 7884 7853 7885 7854 /* Line 1806 of yacc.c */ 7886 #line 21 52"parser.yy"7855 #line 2146 "parser.yy" 7887 7856 { (yyval.decl) = 0; } 7888 7857 break; … … 7891 7860 7892 7861 /* Line 1806 of yacc.c */ 7862 #line 2153 "parser.yy" 7863 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7864 break; 7865 7866 case 555: 7867 7868 /* Line 1806 of yacc.c */ 7893 7869 #line 2159 "parser.yy" 7894 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }7895 break;7896 7897 case 555:7898 7899 /* Line 1806 of yacc.c */7900 #line 2165 "parser.yy"7901 7870 { (yyval.decl) = 0; } 7902 7871 break; … … 7905 7874 7906 7875 /* Line 1806 of yacc.c */ 7876 #line 2170 "parser.yy" 7877 { delete (yyvsp[(3) - (4)].en); } 7878 break; 7879 7880 case 561: 7881 7882 /* Line 1806 of yacc.c */ 7883 #line 2174 "parser.yy" 7884 { delete (yyvsp[(1) - (1)].tok); } 7885 break; 7886 7887 case 562: 7888 7889 /* Line 1806 of yacc.c */ 7890 #line 2175 "parser.yy" 7891 { delete (yyvsp[(1) - (1)].decl); } 7892 break; 7893 7894 case 563: 7895 7896 /* Line 1806 of yacc.c */ 7907 7897 #line 2176 "parser.yy" 7908 { delete (yyvsp[(3) - (4)].en); }7909 break;7910 7911 case 561:7912 7913 /* Line 1806 of yacc.c */7914 #line 2180 "parser.yy"7915 { delete (yyvsp[(1) - (1)].tok); }7916 break;7917 7918 case 562:7919 7920 /* Line 1806 of yacc.c */7921 #line 2181 "parser.yy"7922 7898 { delete (yyvsp[(1) - (1)].decl); } 7923 7899 break; 7924 7900 7925 case 56 3:7926 7927 /* Line 1806 of yacc.c */ 7928 #line 21 82"parser.yy"7901 case 564: 7902 7903 /* Line 1806 of yacc.c */ 7904 #line 2177 "parser.yy" 7929 7905 { delete (yyvsp[(1) - (1)].decl); } 7930 7906 break; 7931 7907 7932 case 564:7933 7934 /* Line 1806 of yacc.c */7935 #line 2183 "parser.yy"7936 { delete (yyvsp[(1) - (1)].decl); }7937 break;7938 7939 7908 case 565: 7940 7909 7941 7910 /* Line 1806 of yacc.c */ 7942 #line 221 8"parser.yy"7911 #line 2212 "parser.yy" 7943 7912 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7944 7913 break; … … 7947 7916 7948 7917 /* Line 1806 of yacc.c */ 7949 #line 22 21"parser.yy"7918 #line 2215 "parser.yy" 7950 7919 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7951 7920 break; … … 7954 7923 7955 7924 /* Line 1806 of yacc.c */ 7956 #line 22 23"parser.yy"7925 #line 2217 "parser.yy" 7957 7926 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7958 7927 break; … … 7961 7930 7962 7931 /* Line 1806 of yacc.c */ 7963 #line 222 8"parser.yy"7932 #line 2222 "parser.yy" 7964 7933 { 7965 7934 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 7971 7940 7972 7941 /* Line 1806 of yacc.c */ 7973 #line 22 33"parser.yy"7942 #line 2227 "parser.yy" 7974 7943 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7975 7944 break; … … 7978 7947 7979 7948 /* Line 1806 of yacc.c */ 7980 #line 223 8"parser.yy"7949 #line 2232 "parser.yy" 7981 7950 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7982 7951 break; … … 7985 7954 7986 7955 /* Line 1806 of yacc.c */ 7987 #line 22 40"parser.yy"7956 #line 2234 "parser.yy" 7988 7957 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7989 7958 break; … … 7992 7961 7993 7962 /* Line 1806 of yacc.c */ 7994 #line 22 42"parser.yy"7963 #line 2236 "parser.yy" 7995 7964 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7996 7965 break; … … 7999 7968 8000 7969 /* Line 1806 of yacc.c */ 7970 #line 2241 "parser.yy" 7971 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 7972 break; 7973 7974 case 575: 7975 7976 /* Line 1806 of yacc.c */ 7977 #line 2243 "parser.yy" 7978 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7979 break; 7980 7981 case 576: 7982 7983 /* Line 1806 of yacc.c */ 7984 #line 2245 "parser.yy" 7985 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7986 break; 7987 7988 case 577: 7989 7990 /* Line 1806 of yacc.c */ 8001 7991 #line 2247 "parser.yy" 7992 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7993 break; 7994 7995 case 578: 7996 7997 /* Line 1806 of yacc.c */ 7998 #line 2252 "parser.yy" 7999 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8000 break; 8001 8002 case 579: 8003 8004 /* Line 1806 of yacc.c */ 8005 #line 2254 "parser.yy" 8006 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8007 break; 8008 8009 case 580: 8010 8011 /* Line 1806 of yacc.c */ 8012 #line 2263 "parser.yy" 8013 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8014 break; 8015 8016 case 582: 8017 8018 /* Line 1806 of yacc.c */ 8019 #line 2266 "parser.yy" 8020 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8021 break; 8022 8023 case 583: 8024 8025 /* Line 1806 of yacc.c */ 8026 #line 2271 "parser.yy" 8027 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8028 break; 8029 8030 case 584: 8031 8032 /* Line 1806 of yacc.c */ 8033 #line 2273 "parser.yy" 8034 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8035 break; 8036 8037 case 585: 8038 8039 /* Line 1806 of yacc.c */ 8040 #line 2275 "parser.yy" 8041 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8042 break; 8043 8044 case 586: 8045 8046 /* Line 1806 of yacc.c */ 8047 #line 2280 "parser.yy" 8048 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8049 break; 8050 8051 case 587: 8052 8053 /* Line 1806 of yacc.c */ 8054 #line 2282 "parser.yy" 8055 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8056 break; 8057 8058 case 588: 8059 8060 /* Line 1806 of yacc.c */ 8061 #line 2284 "parser.yy" 8062 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8063 break; 8064 8065 case 589: 8066 8067 /* Line 1806 of yacc.c */ 8068 #line 2289 "parser.yy" 8069 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8070 break; 8071 8072 case 590: 8073 8074 /* Line 1806 of yacc.c */ 8075 #line 2291 "parser.yy" 8076 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8077 break; 8078 8079 case 591: 8080 8081 /* Line 1806 of yacc.c */ 8082 #line 2293 "parser.yy" 8083 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8084 break; 8085 8086 case 595: 8087 8088 /* Line 1806 of yacc.c */ 8089 #line 2308 "parser.yy" 8090 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); } 8091 break; 8092 8093 case 596: 8094 8095 /* Line 1806 of yacc.c */ 8096 #line 2310 "parser.yy" 8097 { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); } 8098 break; 8099 8100 case 597: 8101 8102 /* Line 1806 of yacc.c */ 8103 #line 2312 "parser.yy" 8104 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8105 break; 8106 8107 case 598: 8108 8109 /* Line 1806 of yacc.c */ 8110 #line 2317 "parser.yy" 8111 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8112 break; 8113 8114 case 599: 8115 8116 /* Line 1806 of yacc.c */ 8117 #line 2319 "parser.yy" 8118 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8119 break; 8120 8121 case 600: 8122 8123 /* Line 1806 of yacc.c */ 8124 #line 2321 "parser.yy" 8125 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8126 break; 8127 8128 case 601: 8129 8130 /* Line 1806 of yacc.c */ 8131 #line 2326 "parser.yy" 8132 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8133 break; 8134 8135 case 602: 8136 8137 /* Line 1806 of yacc.c */ 8138 #line 2328 "parser.yy" 8139 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8140 break; 8141 8142 case 603: 8143 8144 /* Line 1806 of yacc.c */ 8145 #line 2330 "parser.yy" 8146 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8147 break; 8148 8149 case 604: 8150 8151 /* Line 1806 of yacc.c */ 8152 #line 2345 "parser.yy" 8153 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8154 break; 8155 8156 case 606: 8157 8158 /* Line 1806 of yacc.c */ 8159 #line 2348 "parser.yy" 8160 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8161 break; 8162 8163 case 607: 8164 8165 /* Line 1806 of yacc.c */ 8166 #line 2350 "parser.yy" 8167 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8168 break; 8169 8170 case 609: 8171 8172 /* Line 1806 of yacc.c */ 8173 #line 2356 "parser.yy" 8174 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8175 break; 8176 8177 case 610: 8178 8179 /* Line 1806 of yacc.c */ 8180 #line 2361 "parser.yy" 8181 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8182 break; 8183 8184 case 611: 8185 8186 /* Line 1806 of yacc.c */ 8187 #line 2363 "parser.yy" 8188 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8189 break; 8190 8191 case 612: 8192 8193 /* Line 1806 of yacc.c */ 8194 #line 2365 "parser.yy" 8195 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8196 break; 8197 8198 case 613: 8199 8200 /* Line 1806 of yacc.c */ 8201 #line 2370 "parser.yy" 8002 8202 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8003 8203 break; 8004 8204 8005 case 575:8006 8007 /* Line 1806 of yacc.c */ 8008 #line 2 249"parser.yy"8205 case 614: 8206 8207 /* Line 1806 of yacc.c */ 8208 #line 2372 "parser.yy" 8009 8209 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8010 8210 break; 8011 8211 8012 case 576:8013 8014 /* Line 1806 of yacc.c */ 8015 #line 2 251"parser.yy"8212 case 615: 8213 8214 /* Line 1806 of yacc.c */ 8215 #line 2374 "parser.yy" 8016 8216 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8017 8217 break; 8018 8218 8019 case 577:8020 8021 /* Line 1806 of yacc.c */ 8022 #line 2 253"parser.yy"8219 case 616: 8220 8221 /* Line 1806 of yacc.c */ 8222 #line 2376 "parser.yy" 8023 8223 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8024 8224 break; 8025 8225 8026 case 578: 8027 8028 /* Line 1806 of yacc.c */ 8029 #line 2258 "parser.yy" 8226 case 617: 8227 8228 /* Line 1806 of yacc.c */ 8229 #line 2381 "parser.yy" 8230 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8231 break; 8232 8233 case 618: 8234 8235 /* Line 1806 of yacc.c */ 8236 #line 2383 "parser.yy" 8030 8237 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8031 8238 break; 8032 8239 8033 case 579:8034 8035 /* Line 1806 of yacc.c */ 8036 #line 2 260"parser.yy"8240 case 619: 8241 8242 /* Line 1806 of yacc.c */ 8243 #line 2385 "parser.yy" 8037 8244 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8038 8245 break; 8039 8246 8040 case 580:8041 8042 /* Line 1806 of yacc.c */ 8043 #line 2 269"parser.yy"8247 case 620: 8248 8249 /* Line 1806 of yacc.c */ 8250 #line 2395 "parser.yy" 8044 8251 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8045 8252 break; 8046 8253 8047 case 582:8048 8049 /* Line 1806 of yacc.c */ 8050 #line 2 272"parser.yy"8254 case 622: 8255 8256 /* Line 1806 of yacc.c */ 8257 #line 2398 "parser.yy" 8051 8258 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8052 8259 break; 8053 8260 8054 case 583: 8055 8056 /* Line 1806 of yacc.c */ 8057 #line 2277 "parser.yy" 8261 case 623: 8262 8263 /* Line 1806 of yacc.c */ 8264 #line 2400 "parser.yy" 8265 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8266 break; 8267 8268 case 624: 8269 8270 /* Line 1806 of yacc.c */ 8271 #line 2405 "parser.yy" 8272 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8273 break; 8274 8275 case 625: 8276 8277 /* Line 1806 of yacc.c */ 8278 #line 2407 "parser.yy" 8279 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8280 break; 8281 8282 case 626: 8283 8284 /* Line 1806 of yacc.c */ 8285 #line 2409 "parser.yy" 8286 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8287 break; 8288 8289 case 627: 8290 8291 /* Line 1806 of yacc.c */ 8292 #line 2414 "parser.yy" 8293 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8294 break; 8295 8296 case 628: 8297 8298 /* Line 1806 of yacc.c */ 8299 #line 2416 "parser.yy" 8300 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8301 break; 8302 8303 case 629: 8304 8305 /* Line 1806 of yacc.c */ 8306 #line 2418 "parser.yy" 8307 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8308 break; 8309 8310 case 630: 8311 8312 /* Line 1806 of yacc.c */ 8313 #line 2420 "parser.yy" 8314 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8315 break; 8316 8317 case 631: 8318 8319 /* Line 1806 of yacc.c */ 8320 #line 2425 "parser.yy" 8058 8321 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8059 8322 break; 8060 8323 8061 case 584:8062 8063 /* Line 1806 of yacc.c */ 8064 #line 2 279"parser.yy"8324 case 632: 8325 8326 /* Line 1806 of yacc.c */ 8327 #line 2427 "parser.yy" 8065 8328 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8066 8329 break; 8067 8330 8068 case 585:8069 8070 /* Line 1806 of yacc.c */ 8071 #line 2 281"parser.yy"8331 case 633: 8332 8333 /* Line 1806 of yacc.c */ 8334 #line 2429 "parser.yy" 8072 8335 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8073 8336 break; 8074 8337 8075 case 586: 8076 8077 /* Line 1806 of yacc.c */ 8078 #line 2286 "parser.yy" 8079 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8080 break; 8081 8082 case 587: 8083 8084 /* Line 1806 of yacc.c */ 8085 #line 2288 "parser.yy" 8086 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8087 break; 8088 8089 case 588: 8090 8091 /* Line 1806 of yacc.c */ 8092 #line 2290 "parser.yy" 8093 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8094 break; 8095 8096 case 589: 8097 8098 /* Line 1806 of yacc.c */ 8099 #line 2295 "parser.yy" 8100 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8101 break; 8102 8103 case 590: 8104 8105 /* Line 1806 of yacc.c */ 8106 #line 2297 "parser.yy" 8107 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8108 break; 8109 8110 case 591: 8111 8112 /* Line 1806 of yacc.c */ 8113 #line 2299 "parser.yy" 8114 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8115 break; 8116 8117 case 595: 8118 8119 /* Line 1806 of yacc.c */ 8120 #line 2314 "parser.yy" 8121 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); } 8122 break; 8123 8124 case 596: 8125 8126 /* Line 1806 of yacc.c */ 8127 #line 2316 "parser.yy" 8128 { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); } 8129 break; 8130 8131 case 597: 8132 8133 /* Line 1806 of yacc.c */ 8134 #line 2318 "parser.yy" 8135 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8136 break; 8137 8138 case 598: 8139 8140 /* Line 1806 of yacc.c */ 8141 #line 2323 "parser.yy" 8142 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8143 break; 8144 8145 case 599: 8146 8147 /* Line 1806 of yacc.c */ 8148 #line 2325 "parser.yy" 8149 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8150 break; 8151 8152 case 600: 8153 8154 /* Line 1806 of yacc.c */ 8155 #line 2327 "parser.yy" 8156 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8157 break; 8158 8159 case 601: 8160 8161 /* Line 1806 of yacc.c */ 8162 #line 2332 "parser.yy" 8163 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8164 break; 8165 8166 case 602: 8167 8168 /* Line 1806 of yacc.c */ 8169 #line 2334 "parser.yy" 8170 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8171 break; 8172 8173 case 603: 8174 8175 /* Line 1806 of yacc.c */ 8176 #line 2336 "parser.yy" 8177 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8178 break; 8179 8180 case 604: 8181 8182 /* Line 1806 of yacc.c */ 8183 #line 2351 "parser.yy" 8338 case 634: 8339 8340 /* Line 1806 of yacc.c */ 8341 #line 2460 "parser.yy" 8184 8342 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8185 8343 break; 8186 8344 8187 case 6 06:8188 8189 /* Line 1806 of yacc.c */ 8190 #line 2 354"parser.yy"8345 case 636: 8346 8347 /* Line 1806 of yacc.c */ 8348 #line 2463 "parser.yy" 8191 8349 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8192 8350 break; 8193 8351 8194 case 6 07:8195 8196 /* Line 1806 of yacc.c */ 8197 #line 2 356"parser.yy"8352 case 637: 8353 8354 /* Line 1806 of yacc.c */ 8355 #line 2465 "parser.yy" 8198 8356 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8199 8357 break; 8200 8358 8201 case 609:8202 8203 /* Line 1806 of yacc.c */8204 #line 2362 "parser.yy"8205 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8206 break;8207 8208 case 610:8209 8210 /* Line 1806 of yacc.c */8211 #line 2367 "parser.yy"8212 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }8213 break;8214 8215 case 611:8216 8217 /* Line 1806 of yacc.c */8218 #line 2369 "parser.yy"8219 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }8220 break;8221 8222 case 612:8223 8224 /* Line 1806 of yacc.c */8225 #line 2371 "parser.yy"8226 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8227 break;8228 8229 case 613:8230 8231 /* Line 1806 of yacc.c */8232 #line 2376 "parser.yy"8233 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }8234 break;8235 8236 case 614:8237 8238 /* Line 1806 of yacc.c */8239 #line 2378 "parser.yy"8240 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8241 break;8242 8243 case 615:8244 8245 /* Line 1806 of yacc.c */8246 #line 2380 "parser.yy"8247 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8248 break;8249 8250 case 616:8251 8252 /* Line 1806 of yacc.c */8253 #line 2382 "parser.yy"8254 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8255 break;8256 8257 case 617:8258 8259 /* Line 1806 of yacc.c */8260 #line 2387 "parser.yy"8261 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }8262 break;8263 8264 case 618:8265 8266 /* Line 1806 of yacc.c */8267 #line 2389 "parser.yy"8268 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }8269 break;8270 8271 case 619:8272 8273 /* Line 1806 of yacc.c */8274 #line 2391 "parser.yy"8275 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8276 break;8277 8278 case 620:8279 8280 /* Line 1806 of yacc.c */8281 #line 2401 "parser.yy"8282 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8283 break;8284 8285 case 622:8286 8287 /* Line 1806 of yacc.c */8288 #line 2404 "parser.yy"8289 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8290 break;8291 8292 case 623:8293 8294 /* Line 1806 of yacc.c */8295 #line 2406 "parser.yy"8296 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8297 break;8298 8299 case 624:8300 8301 /* Line 1806 of yacc.c */8302 #line 2411 "parser.yy"8303 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }8304 break;8305 8306 case 625:8307 8308 /* Line 1806 of yacc.c */8309 #line 2413 "parser.yy"8310 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }8311 break;8312 8313 case 626:8314 8315 /* Line 1806 of yacc.c */8316 #line 2415 "parser.yy"8317 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8318 break;8319 8320 case 627:8321 8322 /* Line 1806 of yacc.c */8323 #line 2420 "parser.yy"8324 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }8325 break;8326 8327 case 628:8328 8329 /* Line 1806 of yacc.c */8330 #line 2422 "parser.yy"8331 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8332 break;8333 8334 case 629:8335 8336 /* Line 1806 of yacc.c */8337 #line 2424 "parser.yy"8338 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8339 break;8340 8341 case 630:8342 8343 /* Line 1806 of yacc.c */8344 #line 2426 "parser.yy"8345 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8346 break;8347 8348 case 631:8349 8350 /* Line 1806 of yacc.c */8351 #line 2431 "parser.yy"8352 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }8353 break;8354 8355 case 632:8356 8357 /* Line 1806 of yacc.c */8358 #line 2433 "parser.yy"8359 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }8360 break;8361 8362 case 633:8363 8364 /* Line 1806 of yacc.c */8365 #line 2435 "parser.yy"8366 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8367 break;8368 8369 case 634:8370 8371 /* Line 1806 of yacc.c */8372 #line 2466 "parser.yy"8373 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8374 break;8375 8376 case 636:8377 8378 /* Line 1806 of yacc.c */8379 #line 2469 "parser.yy"8380 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8381 break;8382 8383 case 637:8384 8385 /* Line 1806 of yacc.c */8386 #line 2471 "parser.yy"8387 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8388 break;8389 8390 8359 case 638: 8391 8360 8392 8361 /* Line 1806 of yacc.c */ 8393 #line 247 6"parser.yy"8362 #line 2470 "parser.yy" 8394 8363 { 8395 8364 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8401 8370 8402 8371 /* Line 1806 of yacc.c */ 8403 #line 24 81"parser.yy"8372 #line 2475 "parser.yy" 8404 8373 { 8405 8374 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8411 8380 8412 8381 /* Line 1806 of yacc.c */ 8413 #line 248 9"parser.yy"8382 #line 2483 "parser.yy" 8414 8383 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8415 8384 break; … … 8418 8387 8419 8388 /* Line 1806 of yacc.c */ 8420 #line 24 91"parser.yy"8389 #line 2485 "parser.yy" 8421 8390 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8422 8391 break; … … 8425 8394 8426 8395 /* Line 1806 of yacc.c */ 8427 #line 24 93"parser.yy"8396 #line 2487 "parser.yy" 8428 8397 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8429 8398 break; … … 8432 8401 8433 8402 /* Line 1806 of yacc.c */ 8434 #line 249 8"parser.yy"8403 #line 2492 "parser.yy" 8435 8404 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8436 8405 break; … … 8439 8408 8440 8409 /* Line 1806 of yacc.c */ 8441 #line 2 500"parser.yy"8410 #line 2494 "parser.yy" 8442 8411 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8443 8412 break; … … 8446 8415 8447 8416 /* Line 1806 of yacc.c */ 8448 #line 2 505"parser.yy"8417 #line 2499 "parser.yy" 8449 8418 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8450 8419 break; … … 8453 8422 8454 8423 /* Line 1806 of yacc.c */ 8455 #line 250 7"parser.yy"8424 #line 2501 "parser.yy" 8456 8425 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8457 8426 break; … … 8460 8429 8461 8430 /* Line 1806 of yacc.c */ 8462 #line 25 22"parser.yy"8431 #line 2516 "parser.yy" 8463 8432 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8464 8433 break; … … 8467 8436 8468 8437 /* Line 1806 of yacc.c */ 8469 #line 25 24"parser.yy"8438 #line 2518 "parser.yy" 8470 8439 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8471 8440 break; … … 8474 8443 8475 8444 /* Line 1806 of yacc.c */ 8445 #line 2523 "parser.yy" 8446 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8447 break; 8448 8449 case 651: 8450 8451 /* Line 1806 of yacc.c */ 8452 #line 2525 "parser.yy" 8453 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8454 break; 8455 8456 case 652: 8457 8458 /* Line 1806 of yacc.c */ 8459 #line 2527 "parser.yy" 8460 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8461 break; 8462 8463 case 653: 8464 8465 /* Line 1806 of yacc.c */ 8476 8466 #line 2529 "parser.yy" 8467 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8468 break; 8469 8470 case 654: 8471 8472 /* Line 1806 of yacc.c */ 8473 #line 2531 "parser.yy" 8474 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8475 break; 8476 8477 case 656: 8478 8479 /* Line 1806 of yacc.c */ 8480 #line 2537 "parser.yy" 8481 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8482 break; 8483 8484 case 657: 8485 8486 /* Line 1806 of yacc.c */ 8487 #line 2539 "parser.yy" 8488 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8489 break; 8490 8491 case 658: 8492 8493 /* Line 1806 of yacc.c */ 8494 #line 2541 "parser.yy" 8495 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8496 break; 8497 8498 case 659: 8499 8500 /* Line 1806 of yacc.c */ 8501 #line 2546 "parser.yy" 8502 { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); } 8503 break; 8504 8505 case 660: 8506 8507 /* Line 1806 of yacc.c */ 8508 #line 2548 "parser.yy" 8509 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8510 break; 8511 8512 case 661: 8513 8514 /* Line 1806 of yacc.c */ 8515 #line 2550 "parser.yy" 8516 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8517 break; 8518 8519 case 662: 8520 8521 /* Line 1806 of yacc.c */ 8522 #line 2556 "parser.yy" 8523 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8524 break; 8525 8526 case 663: 8527 8528 /* Line 1806 of yacc.c */ 8529 #line 2558 "parser.yy" 8530 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); } 8531 break; 8532 8533 case 665: 8534 8535 /* Line 1806 of yacc.c */ 8536 #line 2564 "parser.yy" 8537 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); } 8538 break; 8539 8540 case 666: 8541 8542 /* Line 1806 of yacc.c */ 8543 #line 2566 "parser.yy" 8544 { (yyval.decl) = DeclarationNode::newVarArray( 0 ); } 8545 break; 8546 8547 case 667: 8548 8549 /* Line 1806 of yacc.c */ 8550 #line 2568 "parser.yy" 8551 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); } 8552 break; 8553 8554 case 668: 8555 8556 /* Line 1806 of yacc.c */ 8557 #line 2570 "parser.yy" 8558 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); } 8559 break; 8560 8561 case 670: 8562 8563 /* Line 1806 of yacc.c */ 8564 #line 2585 "parser.yy" 8565 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8566 break; 8567 8568 case 671: 8569 8570 /* Line 1806 of yacc.c */ 8571 #line 2587 "parser.yy" 8572 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8573 break; 8574 8575 case 672: 8576 8577 /* Line 1806 of yacc.c */ 8578 #line 2592 "parser.yy" 8477 8579 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8478 8580 break; 8479 8581 8480 case 6 51:8481 8482 /* Line 1806 of yacc.c */ 8483 #line 25 31"parser.yy"8582 case 673: 8583 8584 /* Line 1806 of yacc.c */ 8585 #line 2594 "parser.yy" 8484 8586 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8485 8587 break; 8486 8588 8487 case 6 52:8488 8489 /* Line 1806 of yacc.c */ 8490 #line 25 33"parser.yy"8589 case 674: 8590 8591 /* Line 1806 of yacc.c */ 8592 #line 2596 "parser.yy" 8491 8593 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8492 8594 break; 8493 8595 8494 case 6 53:8495 8496 /* Line 1806 of yacc.c */ 8497 #line 25 35"parser.yy"8596 case 675: 8597 8598 /* Line 1806 of yacc.c */ 8599 #line 2598 "parser.yy" 8498 8600 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8499 8601 break; 8500 8602 8501 case 6 54:8502 8503 /* Line 1806 of yacc.c */ 8504 #line 2 537"parser.yy"8603 case 676: 8604 8605 /* Line 1806 of yacc.c */ 8606 #line 2600 "parser.yy" 8505 8607 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8506 8608 break; 8507 8609 8508 case 6 56:8509 8510 /* Line 1806 of yacc.c */ 8511 #line 2 543"parser.yy"8610 case 678: 8611 8612 /* Line 1806 of yacc.c */ 8613 #line 2606 "parser.yy" 8512 8614 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8513 8615 break; 8514 8616 8515 case 6 57:8516 8517 /* Line 1806 of yacc.c */ 8518 #line 2 545"parser.yy"8617 case 679: 8618 8619 /* Line 1806 of yacc.c */ 8620 #line 2608 "parser.yy" 8519 8621 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8520 8622 break; 8521 8623 8522 case 6 58:8523 8524 /* Line 1806 of yacc.c */ 8525 #line 2 547"parser.yy"8624 case 680: 8625 8626 /* Line 1806 of yacc.c */ 8627 #line 2610 "parser.yy" 8526 8628 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8527 8629 break; 8528 8630 8529 case 6 59:8530 8531 /* Line 1806 of yacc.c */ 8532 #line 2 552"parser.yy"8631 case 681: 8632 8633 /* Line 1806 of yacc.c */ 8634 #line 2615 "parser.yy" 8533 8635 { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); } 8534 8636 break; 8535 8637 8536 case 6 60:8537 8538 /* Line 1806 of yacc.c */ 8539 #line 2 554"parser.yy"8638 case 682: 8639 8640 /* Line 1806 of yacc.c */ 8641 #line 2617 "parser.yy" 8540 8642 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8541 8643 break; 8542 8644 8543 case 6 61:8544 8545 /* Line 1806 of yacc.c */ 8546 #line 2 556"parser.yy"8645 case 683: 8646 8647 /* Line 1806 of yacc.c */ 8648 #line 2619 "parser.yy" 8547 8649 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8548 8650 break; 8549 8651 8550 case 662: 8551 8552 /* Line 1806 of yacc.c */ 8553 #line 2562 "parser.yy" 8652 case 685: 8653 8654 /* Line 1806 of yacc.c */ 8655 #line 2626 "parser.yy" 8656 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8657 break; 8658 8659 case 687: 8660 8661 /* Line 1806 of yacc.c */ 8662 #line 2637 "parser.yy" 8554 8663 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8555 8664 break; 8556 8665 8557 case 6 63:8558 8559 /* Line 1806 of yacc.c */ 8560 #line 2 564"parser.yy"8561 { (yyval.decl) = DeclarationNode::new Array( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }8562 break; 8563 8564 case 6 65:8565 8566 /* Line 1806 of yacc.c */ 8567 #line 2 570"parser.yy"8568 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }8569 break; 8570 8571 case 6 66:8572 8573 /* Line 1806 of yacc.c */ 8574 #line 2 572"parser.yy"8575 { (yyval.decl) = DeclarationNode::new VarArray( 0); }8576 break; 8577 8578 case 6 67:8579 8580 /* Line 1806 of yacc.c */ 8581 #line 2 574"parser.yy"8582 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false )); }8583 break; 8584 8585 case 6 68:8586 8587 /* Line 1806 of yacc.c */ 8588 #line 2 576"parser.yy"8589 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 )); }8590 break; 8591 8592 case 6 70:8593 8594 /* Line 1806 of yacc.c */ 8595 #line 2 591"parser.yy"8666 case 688: 8667 8668 /* Line 1806 of yacc.c */ 8669 #line 2640 "parser.yy" 8670 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 8671 break; 8672 8673 case 689: 8674 8675 /* Line 1806 of yacc.c */ 8676 #line 2642 "parser.yy" 8677 { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); } 8678 break; 8679 8680 case 690: 8681 8682 /* Line 1806 of yacc.c */ 8683 #line 2645 "parser.yy" 8684 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 8685 break; 8686 8687 case 691: 8688 8689 /* Line 1806 of yacc.c */ 8690 #line 2647 "parser.yy" 8691 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); } 8692 break; 8693 8694 case 692: 8695 8696 /* Line 1806 of yacc.c */ 8697 #line 2649 "parser.yy" 8698 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); } 8699 break; 8700 8701 case 694: 8702 8703 /* Line 1806 of yacc.c */ 8704 #line 2663 "parser.yy" 8596 8705 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8597 8706 break; 8598 8707 8599 case 6 71:8600 8601 /* Line 1806 of yacc.c */ 8602 #line 2 593"parser.yy"8708 case 695: 8709 8710 /* Line 1806 of yacc.c */ 8711 #line 2665 "parser.yy" 8603 8712 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8604 8713 break; 8605 8714 8606 case 6 72:8607 8608 /* Line 1806 of yacc.c */ 8609 #line 2 598"parser.yy"8715 case 696: 8716 8717 /* Line 1806 of yacc.c */ 8718 #line 2670 "parser.yy" 8610 8719 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8611 8720 break; 8612 8721 8613 case 6 73:8614 8615 /* Line 1806 of yacc.c */ 8616 #line 26 00"parser.yy"8722 case 697: 8723 8724 /* Line 1806 of yacc.c */ 8725 #line 2672 "parser.yy" 8617 8726 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8618 8727 break; 8619 8728 8620 case 6 74:8621 8622 /* Line 1806 of yacc.c */ 8623 #line 26 02"parser.yy"8729 case 698: 8730 8731 /* Line 1806 of yacc.c */ 8732 #line 2674 "parser.yy" 8624 8733 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8625 8734 break; 8626 8735 8627 case 6 75:8628 8629 /* Line 1806 of yacc.c */ 8630 #line 26 04"parser.yy"8736 case 699: 8737 8738 /* Line 1806 of yacc.c */ 8739 #line 2676 "parser.yy" 8631 8740 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8632 8741 break; 8633 8742 8634 case 676:8635 8636 /* Line 1806 of yacc.c */ 8637 #line 26 06"parser.yy"8743 case 700: 8744 8745 /* Line 1806 of yacc.c */ 8746 #line 2678 "parser.yy" 8638 8747 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8639 8748 break; 8640 8749 8641 case 678:8642 8643 /* Line 1806 of yacc.c */ 8644 #line 26 12"parser.yy"8750 case 702: 8751 8752 /* Line 1806 of yacc.c */ 8753 #line 2684 "parser.yy" 8645 8754 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8646 8755 break; 8647 8756 8648 case 679:8649 8650 /* Line 1806 of yacc.c */ 8651 #line 26 14"parser.yy"8757 case 703: 8758 8759 /* Line 1806 of yacc.c */ 8760 #line 2686 "parser.yy" 8652 8761 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8653 8762 break; 8654 8763 8655 case 680:8656 8657 /* Line 1806 of yacc.c */ 8658 #line 26 16"parser.yy"8764 case 704: 8765 8766 /* Line 1806 of yacc.c */ 8767 #line 2688 "parser.yy" 8659 8768 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8660 8769 break; 8661 8770 8662 case 681: 8663 8664 /* Line 1806 of yacc.c */ 8665 #line 2621 "parser.yy" 8666 { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); } 8667 break; 8668 8669 case 682: 8670 8671 /* Line 1806 of yacc.c */ 8672 #line 2623 "parser.yy" 8771 case 705: 8772 8773 /* Line 1806 of yacc.c */ 8774 #line 2693 "parser.yy" 8673 8775 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8674 8776 break; 8675 8777 8676 case 683:8677 8678 /* Line 1806 of yacc.c */ 8679 #line 26 25 "parser.yy"8778 case 706: 8779 8780 /* Line 1806 of yacc.c */ 8781 #line 2695 "parser.yy" 8680 8782 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8681 8783 break; 8682 8784 8683 case 685:8684 8685 /* Line 1806 of yacc.c */8686 #line 2632 "parser.yy"8687 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }8688 break;8689 8690 case 687:8691 8692 /* Line 1806 of yacc.c */8693 #line 2643 "parser.yy"8694 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }8695 break;8696 8697 case 688:8698 8699 /* Line 1806 of yacc.c */8700 #line 2646 "parser.yy"8701 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }8702 break;8703 8704 case 689:8705 8706 /* Line 1806 of yacc.c */8707 #line 2648 "parser.yy"8708 { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }8709 break;8710 8711 case 690:8712 8713 /* Line 1806 of yacc.c */8714 #line 2651 "parser.yy"8715 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }8716 break;8717 8718 case 691:8719 8720 /* Line 1806 of yacc.c */8721 #line 2653 "parser.yy"8722 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }8723 break;8724 8725 case 692:8726 8727 /* Line 1806 of yacc.c */8728 #line 2655 "parser.yy"8729 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }8730 break;8731 8732 case 694:8733 8734 /* Line 1806 of yacc.c */8735 #line 2669 "parser.yy"8736 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8737 break;8738 8739 case 695:8740 8741 /* Line 1806 of yacc.c */8742 #line 2671 "parser.yy"8743 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8744 break;8745 8746 case 696:8747 8748 /* Line 1806 of yacc.c */8749 #line 2676 "parser.yy"8750 { (yyval.decl) = DeclarationNode::newPointer( 0 ); }8751 break;8752 8753 case 697:8754 8755 /* Line 1806 of yacc.c */8756 #line 2678 "parser.yy"8757 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }8758 break;8759 8760 case 698:8761 8762 /* Line 1806 of yacc.c */8763 #line 2680 "parser.yy"8764 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }8765 break;8766 8767 case 699:8768 8769 /* Line 1806 of yacc.c */8770 #line 2682 "parser.yy"8771 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }8772 break;8773 8774 case 700:8775 8776 /* Line 1806 of yacc.c */8777 #line 2684 "parser.yy"8778 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8779 break;8780 8781 case 702:8782 8783 /* Line 1806 of yacc.c */8784 #line 2690 "parser.yy"8785 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8786 break;8787 8788 case 703:8789 8790 /* Line 1806 of yacc.c */8791 #line 2692 "parser.yy"8792 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8793 break;8794 8795 case 704:8796 8797 /* Line 1806 of yacc.c */8798 #line 2694 "parser.yy"8799 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8800 break;8801 8802 case 705:8803 8804 /* Line 1806 of yacc.c */8805 #line 2699 "parser.yy"8806 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }8807 break;8808 8809 case 706:8810 8811 /* Line 1806 of yacc.c */8812 #line 2701 "parser.yy"8813 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8814 break;8815 8816 8785 case 709: 8817 8786 8818 8787 /* Line 1806 of yacc.c */ 8819 #line 27 11"parser.yy"8788 #line 2705 "parser.yy" 8820 8789 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 8821 8790 break; … … 8824 8793 8825 8794 /* Line 1806 of yacc.c */ 8795 #line 2715 "parser.yy" 8796 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8797 break; 8798 8799 case 713: 8800 8801 /* Line 1806 of yacc.c */ 8802 #line 2717 "parser.yy" 8803 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8804 break; 8805 8806 case 714: 8807 8808 /* Line 1806 of yacc.c */ 8809 #line 2719 "parser.yy" 8810 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8811 break; 8812 8813 case 715: 8814 8815 /* Line 1806 of yacc.c */ 8826 8816 #line 2721 "parser.yy" 8817 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8818 break; 8819 8820 case 716: 8821 8822 /* Line 1806 of yacc.c */ 8823 #line 2723 "parser.yy" 8827 8824 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8828 8825 break; 8829 8826 8830 case 71 3:8831 8832 /* Line 1806 of yacc.c */ 8833 #line 272 3"parser.yy"8827 case 717: 8828 8829 /* Line 1806 of yacc.c */ 8830 #line 2725 "parser.yy" 8834 8831 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8835 8832 break; 8836 8833 8837 case 714:8838 8839 /* Line 1806 of yacc.c */8840 #line 2725 "parser.yy"8841 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }8842 break;8843 8844 case 715:8845 8846 /* Line 1806 of yacc.c */8847 #line 2727 "parser.yy"8848 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }8849 break;8850 8851 case 716:8852 8853 /* Line 1806 of yacc.c */8854 #line 2729 "parser.yy"8855 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }8856 break;8857 8858 case 717:8859 8860 /* Line 1806 of yacc.c */8861 #line 2731 "parser.yy"8862 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }8863 break;8864 8865 8834 case 718: 8866 8835 8867 8836 /* Line 1806 of yacc.c */ 8837 #line 2732 "parser.yy" 8838 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8839 break; 8840 8841 case 719: 8842 8843 /* Line 1806 of yacc.c */ 8844 #line 2734 "parser.yy" 8845 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8846 break; 8847 8848 case 720: 8849 8850 /* Line 1806 of yacc.c */ 8851 #line 2736 "parser.yy" 8852 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8853 break; 8854 8855 case 721: 8856 8857 /* Line 1806 of yacc.c */ 8868 8858 #line 2738 "parser.yy" 8869 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false) ); }8870 break; 8871 8872 case 7 19:8859 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 8860 break; 8861 8862 case 722: 8873 8863 8874 8864 /* Line 1806 of yacc.c */ … … 8877 8867 break; 8878 8868 8879 case 720: 8880 8881 /* Line 1806 of yacc.c */ 8882 #line 2742 "parser.yy" 8869 case 723: 8870 8871 /* Line 1806 of yacc.c */ 8872 #line 2743 "parser.yy" 8873 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8874 break; 8875 8876 case 724: 8877 8878 /* Line 1806 of yacc.c */ 8879 #line 2745 "parser.yy" 8880 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8881 break; 8882 8883 case 725: 8884 8885 /* Line 1806 of yacc.c */ 8886 #line 2747 "parser.yy" 8883 8887 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8884 8888 break; 8885 8889 8886 case 72 1:8887 8888 /* Line 1806 of yacc.c */ 8889 #line 274 4"parser.yy"8890 case 726: 8891 8892 /* Line 1806 of yacc.c */ 8893 #line 2749 "parser.yy" 8890 8894 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 8891 8895 break; 8892 8896 8893 case 722: 8894 8895 /* Line 1806 of yacc.c */ 8896 #line 2746 "parser.yy" 8897 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8898 break; 8899 8900 case 723: 8901 8902 /* Line 1806 of yacc.c */ 8903 #line 2749 "parser.yy" 8904 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8905 break; 8906 8907 case 724: 8897 case 727: 8908 8898 8909 8899 /* Line 1806 of yacc.c */ … … 8912 8902 break; 8913 8903 8914 case 725: 8915 8916 /* Line 1806 of yacc.c */ 8917 #line 2753 "parser.yy" 8918 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8919 break; 8920 8921 case 726: 8922 8923 /* Line 1806 of yacc.c */ 8924 #line 2755 "parser.yy" 8925 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 8926 break; 8927 8928 case 727: 8929 8930 /* Line 1806 of yacc.c */ 8931 #line 2757 "parser.yy" 8904 case 728: 8905 8906 /* Line 1806 of yacc.c */ 8907 #line 2756 "parser.yy" 8908 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 8909 break; 8910 8911 case 729: 8912 8913 /* Line 1806 of yacc.c */ 8914 #line 2758 "parser.yy" 8915 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 8916 break; 8917 8918 case 730: 8919 8920 /* Line 1806 of yacc.c */ 8921 #line 2763 "parser.yy" 8922 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); } 8923 break; 8924 8925 case 731: 8926 8927 /* Line 1806 of yacc.c */ 8928 #line 2765 "parser.yy" 8929 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); } 8930 break; 8931 8932 case 733: 8933 8934 /* Line 1806 of yacc.c */ 8935 #line 2792 "parser.yy" 8936 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 8937 break; 8938 8939 case 737: 8940 8941 /* Line 1806 of yacc.c */ 8942 #line 2803 "parser.yy" 8943 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8944 break; 8945 8946 case 738: 8947 8948 /* Line 1806 of yacc.c */ 8949 #line 2805 "parser.yy" 8950 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8951 break; 8952 8953 case 739: 8954 8955 /* Line 1806 of yacc.c */ 8956 #line 2807 "parser.yy" 8957 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8958 break; 8959 8960 case 740: 8961 8962 /* Line 1806 of yacc.c */ 8963 #line 2809 "parser.yy" 8964 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8965 break; 8966 8967 case 741: 8968 8969 /* Line 1806 of yacc.c */ 8970 #line 2811 "parser.yy" 8971 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8972 break; 8973 8974 case 742: 8975 8976 /* Line 1806 of yacc.c */ 8977 #line 2813 "parser.yy" 8978 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8979 break; 8980 8981 case 743: 8982 8983 /* Line 1806 of yacc.c */ 8984 #line 2820 "parser.yy" 8985 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 8986 break; 8987 8988 case 744: 8989 8990 /* Line 1806 of yacc.c */ 8991 #line 2822 "parser.yy" 8992 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 8993 break; 8994 8995 case 745: 8996 8997 /* Line 1806 of yacc.c */ 8998 #line 2824 "parser.yy" 8932 8999 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8933 9000 break; 8934 9001 8935 case 728: 8936 8937 /* Line 1806 of yacc.c */ 8938 #line 2762 "parser.yy" 8939 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 8940 break; 8941 8942 case 729: 8943 8944 /* Line 1806 of yacc.c */ 8945 #line 2764 "parser.yy" 8946 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 8947 break; 8948 8949 case 730: 8950 8951 /* Line 1806 of yacc.c */ 8952 #line 2769 "parser.yy" 8953 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); } 8954 break; 8955 8956 case 731: 8957 8958 /* Line 1806 of yacc.c */ 8959 #line 2771 "parser.yy" 8960 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); } 8961 break; 8962 8963 case 733: 8964 8965 /* Line 1806 of yacc.c */ 8966 #line 2798 "parser.yy" 8967 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 8968 break; 8969 8970 case 737: 8971 8972 /* Line 1806 of yacc.c */ 8973 #line 2809 "parser.yy" 8974 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8975 break; 8976 8977 case 738: 8978 8979 /* Line 1806 of yacc.c */ 8980 #line 2811 "parser.yy" 8981 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8982 break; 8983 8984 case 739: 8985 8986 /* Line 1806 of yacc.c */ 8987 #line 2813 "parser.yy" 8988 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8989 break; 8990 8991 case 740: 8992 8993 /* Line 1806 of yacc.c */ 8994 #line 2815 "parser.yy" 8995 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8996 break; 8997 8998 case 741: 8999 9000 /* Line 1806 of yacc.c */ 9001 #line 2817 "parser.yy" 9002 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9003 break; 9004 9005 case 742: 9006 9007 /* Line 1806 of yacc.c */ 9008 #line 2819 "parser.yy" 9009 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9010 break; 9011 9012 case 743: 9002 case 746: 9013 9003 9014 9004 /* Line 1806 of yacc.c */ … … 9017 9007 break; 9018 9008 9019 case 74 4:9009 case 747: 9020 9010 9021 9011 /* Line 1806 of yacc.c */ … … 9024 9014 break; 9025 9015 9026 case 74 5:9016 case 748: 9027 9017 9028 9018 /* Line 1806 of yacc.c */ … … 9031 9021 break; 9032 9022 9033 case 746:9034 9035 /* Line 1806 of yacc.c */9036 #line 2832 "parser.yy"9037 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }9038 break;9039 9040 case 747:9041 9042 /* Line 1806 of yacc.c */9043 #line 2834 "parser.yy"9044 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }9045 break;9046 9047 case 748:9048 9049 /* Line 1806 of yacc.c */9050 #line 2836 "parser.yy"9051 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }9052 break;9053 9054 9023 case 749: 9055 9024 9056 9025 /* Line 1806 of yacc.c */ 9057 #line 28 41"parser.yy"9026 #line 2835 "parser.yy" 9058 9027 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 9059 9028 break; … … 9062 9031 9063 9032 /* Line 1806 of yacc.c */ 9064 #line 284 8"parser.yy"9033 #line 2842 "parser.yy" 9065 9034 { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); } 9066 9035 break; … … 9069 9038 9070 9039 /* Line 1806 of yacc.c */ 9071 #line 28 50"parser.yy"9040 #line 2844 "parser.yy" 9072 9041 { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); } 9073 9042 break; … … 9076 9045 9077 9046 /* Line 1806 of yacc.c */ 9078 #line 28 74"parser.yy"9047 #line 2868 "parser.yy" 9079 9048 { (yyval.en) = 0; } 9080 9049 break; … … 9083 9052 9084 9053 /* Line 1806 of yacc.c */ 9085 #line 287 6"parser.yy"9054 #line 2870 "parser.yy" 9086 9055 { (yyval.en) = (yyvsp[(2) - (2)].en); } 9087 9056 break; … … 9090 9059 9091 9060 /* Line 1806 of yacc.c */ 9092 #line 90 93"Parser/parser.cc"9061 #line 9062 "Parser/parser.cc" 9093 9062 default: break; 9094 9063 } … … 9321 9290 9322 9291 /* Line 2067 of yacc.c */ 9323 #line 287 9"parser.yy"9292 #line 2873 "parser.yy" 9324 9293 9325 9294 // ----end of grammar----
Note:
See TracChangeset
for help on using the changeset viewer.