Changeset c7800bfc
- Timestamp:
- Dec 15, 2016, 10:58:31 AM (6 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- 38a0a4d, d78f4c0
- Parents:
- c5a8c5b (diff), a7741435 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - Location:
- src
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Common/utility.h
rc5a8c5b rc7800bfc 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Sep 23 11:46:47201613 // Update Count : 2812 // Last Modified On : Wed Dec 14 21:25:25 2016 13 // Update Count : 31 14 14 // 15 15 … … 36 36 } 37 37 38 template< typename T, typename U>38 template< typename T, typename U > 39 39 struct maybeBuild_t { 40 40 static T * doit( const U *orig ) { -
src/Parser/ParseNode.h
rc5a8c5b rc7800bfc 10 10 // Created On : Sat May 16 13:28:16 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Dec 13 1 3:26:56201613 // Update Count : 64 212 // Last Modified On : Tue Dec 13 15:37:33 2016 13 // Update Count : 643 14 14 // 15 15 … … 73 73 InitializerNode( InitializerNode *, bool aggrp = false, ExpressionNode * des = nullptr ); 74 74 ~InitializerNode(); 75 virtual InitializerNode * clone() const { return nullptr; }75 virtual InitializerNode * clone() const { assert( false ); return nullptr; } 76 76 77 77 ExpressionNode * get_expression() const { return expr; } -
src/Parser/parser.cc
rc5a8c5b rc7800bfc 1053 1053 932, 934, 936, 938, 943, 955, 956, 961, 963, 968, 1054 1054 972, 974, 976, 978, 980, 986, 987, 993, 994, 998, 1055 999, 1004, 1006, 1012, 1013, 1015, 102 0, 1025, 1035, 1037,1056 104 1, 1042, 1047, 1049, 1053, 1054, 1058, 1060, 1064, 1065,1057 10 69, 1070, 1074, 1075, 1090, 1091, 1092, 1093, 1094, 1098,1058 110 3, 1110, 1120, 1125, 1130, 1138, 1143, 1148, 1153, 1158,1059 118 8, 1193, 1200, 1202, 1209, 1214, 1219, 1230, 1235, 1240,1060 124 5, 1250, 1259, 1264, 1272, 1273, 1274, 1275, 1281, 1286,1061 129 4, 1295, 1296, 1297, 1301, 1302, 1303, 1304, 1309, 1310,1062 13 19, 1320, 1325, 1326, 1331, 1333, 1335, 1337, 1339, 1342,1063 134 1, 1353, 1354, 1356, 1366, 1367, 1372, 1374, 1376, 1378,1064 138 0, 1383, 1385, 1388, 1393, 1395, 1397, 1399, 1401, 1403,1065 140 5, 1407, 1409, 1411, 1413, 1415, 1417, 1419, 1421, 1427,1066 142 8, 1430, 1432, 1434, 1439, 1440, 1446, 1447, 1449, 1451,1067 145 6, 1458, 1460, 1462, 1467, 1468, 1470, 1472, 1477, 1478,1068 148 0, 1485, 1486, 1488, 1490, 1495, 1497, 1499, 1504, 1505,1069 15 09, 1511, 1517, 1516, 1520, 1522, 1527, 1529, 1535, 1536,1070 154 1, 1542, 1544, 1545, 1554, 1555, 1557, 1559, 1564, 1566,1071 157 2, 1573, 1575, 1578, 1581, 1586, 1587, 1592, 1597, 1601,1072 160 3, 1609, 1608, 1615, 1617, 1623, 1624, 1632, 1633, 1637,1073 163 8, 1639, 1641, 1643, 1650, 1651, 1653, 1655, 1660, 1661,1074 166 7, 1668, 1672, 1673, 1678, 1679, 1680, 1682, 1690, 1691,1075 169 3, 1696, 1698, 1702, 1703, 1704, 1706, 1708, 1712, 1717,1076 172 5, 1726, 1735, 1737, 1742, 1743, 1744, 1748, 1749, 1750,1077 175 4, 1755, 1756, 1760, 1761, 1762, 1767, 1768, 1769, 1770,1078 177 6, 1777, 1779, 1784, 1785, 1790, 1791, 1792, 1793, 1794,1079 18 09, 1810, 1815, 1816, 1822, 1824, 1827, 1829, 1831, 1854,1080 185 5, 1857, 1859, 1864, 1865, 1867, 1872, 1877, 1878, 1884,1081 188 3, 1887, 1891, 1893, 1895, 1901, 1902, 1907, 1912, 1914,1082 19 19, 1921, 1922, 1924, 1929, 1931, 1933, 1938, 1940, 1945,1083 195 0, 1958, 1964, 1963, 1977, 1978, 1983, 1984, 1988, 1993,1084 199 8, 2006, 2011, 2022, 2023, 2028, 2029, 2035, 2036, 2040,1085 204 1, 2042, 2045, 2044, 2055, 2064, 2070, 2076, 2085, 2091,1086 209 7, 2103, 2109, 2117, 2123, 2131, 2137, 2146, 2147, 2148,1087 215 2, 2158, 2159, 2165, 2166, 2170, 2171, 2176, 2182, 2183,1088 218 6, 2188, 2189, 2193, 2194, 2195, 2196, 2230, 2232, 2233,1089 223 5, 2240, 2245, 2250, 2252, 2254, 2259, 2261, 2263, 2265,1090 227 0, 2272, 2281, 2283, 2284, 2289, 2291, 2293, 2298, 2300,1091 230 2, 2307, 2309, 2311, 2320, 2321, 2322, 2326, 2328, 2330,1092 233 5, 2337, 2339, 2344, 2346, 2348, 2363, 2365, 2366, 2368,1093 237 3, 2374, 2379, 2381, 2383, 2388, 2390, 2392, 2394, 2399,1094 240 1, 2403, 2413, 2415, 2416, 2418, 2423, 2425, 2427, 2432,1095 243 4, 2436, 2438, 2443, 2445, 2447, 2478, 2480, 2481, 2483,1096 248 8, 2493, 2501, 2503, 2505, 2510, 2512, 2517, 2519, 2533,1097 253 4, 2536, 2541, 2543, 2545, 2547, 2549, 2554, 2555, 2557,1098 25 59, 2564, 2566, 2568, 2574, 2576, 2578, 2582, 2584, 2586,1099 258 8, 2602, 2603, 2605, 2610, 2612, 2614, 2616, 2618, 2623,1100 262 4, 2626, 2628, 2633, 2635, 2637, 2643, 2644, 2646, 2655,1101 265 8, 2660, 2663, 2665, 2667, 2680, 2681, 2683, 2688, 2690,1102 269 2, 2694, 2696, 2701, 2702, 2704, 2706, 2711, 2713, 2721,1103 272 2, 2723, 2728, 2729, 2733, 2735, 2737, 2739, 2741, 2743,1104 275 0, 2752, 2754, 2756, 2758, 2761, 2763, 2765, 2767, 2769,1105 277 4, 2776, 2778, 2783, 2809, 2810, 2812, 2816, 2817, 2821,1106 282 3, 2825, 2827, 2829, 2831, 2838, 2840, 2842, 2844, 2846,1107 284 8, 2853, 2860, 2862, 2880, 2882, 2887, 28881055 999, 1004, 1006, 1012, 1013, 1015, 1021, 1026, 1036, 1038, 1056 1042, 1043, 1048, 1050, 1054, 1055, 1059, 1061, 1065, 1066, 1057 1070, 1071, 1075, 1076, 1091, 1092, 1093, 1094, 1095, 1099, 1058 1104, 1111, 1121, 1126, 1131, 1139, 1144, 1149, 1154, 1159, 1059 1189, 1194, 1201, 1203, 1210, 1215, 1220, 1231, 1236, 1241, 1060 1246, 1251, 1260, 1265, 1273, 1274, 1275, 1276, 1282, 1287, 1061 1295, 1296, 1297, 1298, 1302, 1303, 1304, 1305, 1310, 1311, 1062 1320, 1321, 1326, 1327, 1332, 1334, 1336, 1338, 1340, 1343, 1063 1342, 1354, 1355, 1357, 1367, 1368, 1373, 1375, 1377, 1379, 1064 1381, 1384, 1386, 1389, 1394, 1396, 1398, 1400, 1402, 1404, 1065 1406, 1408, 1410, 1412, 1414, 1416, 1418, 1420, 1422, 1428, 1066 1429, 1431, 1433, 1435, 1440, 1441, 1447, 1448, 1450, 1452, 1067 1457, 1459, 1461, 1463, 1468, 1469, 1471, 1473, 1478, 1479, 1068 1481, 1486, 1487, 1489, 1491, 1496, 1498, 1500, 1505, 1506, 1069 1510, 1512, 1518, 1517, 1521, 1523, 1528, 1530, 1536, 1537, 1070 1542, 1543, 1545, 1546, 1555, 1556, 1558, 1560, 1565, 1567, 1071 1573, 1574, 1576, 1579, 1582, 1587, 1588, 1593, 1598, 1602, 1072 1604, 1610, 1609, 1616, 1618, 1624, 1625, 1633, 1634, 1638, 1073 1639, 1640, 1642, 1644, 1651, 1652, 1654, 1656, 1661, 1662, 1074 1668, 1669, 1673, 1674, 1679, 1680, 1681, 1683, 1691, 1692, 1075 1694, 1697, 1699, 1703, 1704, 1705, 1707, 1709, 1713, 1718, 1076 1726, 1727, 1736, 1738, 1743, 1744, 1745, 1749, 1750, 1751, 1077 1755, 1756, 1757, 1761, 1762, 1763, 1768, 1769, 1770, 1771, 1078 1777, 1778, 1780, 1785, 1786, 1791, 1792, 1793, 1794, 1795, 1079 1810, 1811, 1816, 1817, 1823, 1825, 1828, 1830, 1832, 1855, 1080 1856, 1858, 1860, 1865, 1866, 1868, 1873, 1878, 1879, 1885, 1081 1884, 1888, 1892, 1894, 1896, 1902, 1903, 1908, 1913, 1915, 1082 1920, 1922, 1923, 1925, 1930, 1932, 1934, 1939, 1941, 1946, 1083 1951, 1959, 1965, 1964, 1978, 1979, 1984, 1985, 1989, 1994, 1084 1999, 2007, 2012, 2023, 2024, 2029, 2030, 2036, 2037, 2041, 1085 2042, 2043, 2046, 2045, 2056, 2065, 2071, 2077, 2086, 2092, 1086 2098, 2104, 2110, 2118, 2124, 2132, 2138, 2147, 2148, 2149, 1087 2153, 2159, 2160, 2166, 2167, 2171, 2172, 2177, 2183, 2184, 1088 2187, 2189, 2190, 2194, 2195, 2196, 2197, 2231, 2233, 2234, 1089 2236, 2241, 2246, 2251, 2253, 2255, 2260, 2262, 2264, 2266, 1090 2271, 2273, 2282, 2284, 2285, 2290, 2292, 2294, 2299, 2301, 1091 2303, 2308, 2310, 2312, 2321, 2322, 2323, 2327, 2329, 2331, 1092 2336, 2338, 2340, 2345, 2347, 2349, 2364, 2366, 2367, 2369, 1093 2374, 2375, 2380, 2382, 2384, 2389, 2391, 2393, 2395, 2400, 1094 2402, 2404, 2414, 2416, 2417, 2419, 2424, 2426, 2428, 2433, 1095 2435, 2437, 2439, 2444, 2446, 2448, 2479, 2481, 2482, 2484, 1096 2489, 2494, 2502, 2504, 2506, 2511, 2513, 2518, 2520, 2534, 1097 2535, 2537, 2542, 2544, 2546, 2548, 2550, 2555, 2556, 2558, 1098 2560, 2565, 2567, 2569, 2575, 2577, 2579, 2583, 2585, 2587, 1099 2589, 2603, 2604, 2606, 2611, 2613, 2615, 2617, 2619, 2624, 1100 2625, 2627, 2629, 2634, 2636, 2638, 2644, 2645, 2647, 2656, 1101 2659, 2661, 2664, 2666, 2668, 2681, 2682, 2684, 2689, 2691, 1102 2693, 2695, 2697, 2702, 2703, 2705, 2707, 2712, 2714, 2722, 1103 2723, 2724, 2729, 2730, 2734, 2736, 2738, 2740, 2742, 2744, 1104 2751, 2753, 2755, 2757, 2759, 2762, 2764, 2766, 2768, 2770, 1105 2775, 2777, 2779, 2784, 2810, 2811, 2813, 2817, 2818, 2822, 1106 2824, 2826, 2828, 2830, 2832, 2839, 2841, 2843, 2845, 2847, 1107 2849, 2854, 2861, 2863, 2881, 2883, 2888, 2889 1108 1108 }; 1109 1109 #endif … … 5772 5772 // therefore, are removed from the grammar even though C allows it. The change also applies to choose 5773 5773 // statement. 5774 (yyval.sn) = (yyvsp[(7) - (9)].decl) != 0? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_last( sw )) ) ) : sw;5774 (yyval.sn) = (yyvsp[(7) - (9)].decl) ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_last( sw )) ) ) : sw; 5775 5775 } 5776 5776 break; … … 5789 5789 { 5790 5790 StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) ); 5791 (yyval.sn) = (yyvsp[(7) - (9)].decl) != 0? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_last( sw )) ) ) : sw;5791 (yyval.sn) = (yyvsp[(7) - (9)].decl) ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_last( sw )) ) ) : sw; 5792 5792 } 5793 5793 break; … … 6238 6238 6239 6239 /* Line 1806 of yacc.c */ 6240 #line 101 6"parser.yy"6240 #line 1017 "parser.yy" 6241 6241 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); } 6242 6242 break; … … 6245 6245 6246 6246 /* Line 1806 of yacc.c */ 6247 #line 102 1"parser.yy"6247 #line 1022 "parser.yy" 6248 6248 { 6249 6249 (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[(1) - (1)].tok) ); … … 6255 6255 6256 6256 /* Line 1806 of yacc.c */ 6257 #line 102 6"parser.yy"6257 #line 1027 "parser.yy" 6258 6258 { 6259 6259 (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->labels.push_back( *(yyvsp[(3) - (3)].tok) ); … … 6265 6265 6266 6266 /* Line 1806 of yacc.c */ 6267 #line 103 6"parser.yy"6267 #line 1037 "parser.yy" 6268 6268 { (yyval.decl) = nullptr; } 6269 6269 break; … … 6272 6272 6273 6273 /* Line 1806 of yacc.c */ 6274 #line 104 3"parser.yy"6274 #line 1044 "parser.yy" 6275 6275 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6276 6276 break; … … 6279 6279 6280 6280 /* Line 1806 of yacc.c */ 6281 #line 104 8"parser.yy"6281 #line 1049 "parser.yy" 6282 6282 { (yyval.decl) = nullptr; } 6283 6283 break; … … 6286 6286 6287 6287 /* Line 1806 of yacc.c */ 6288 #line 105 5"parser.yy"6288 #line 1056 "parser.yy" 6289 6289 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6290 6290 break; 6291 6291 6292 6292 case 250: 6293 6294 /* Line 1806 of yacc.c */6295 #line 1069 "parser.yy"6296 {}6297 break;6298 6299 case 251:6300 6293 6301 6294 /* Line 1806 of yacc.c */ … … 6304 6297 break; 6305 6298 6299 case 251: 6300 6301 /* Line 1806 of yacc.c */ 6302 #line 1071 "parser.yy" 6303 {} 6304 break; 6305 6306 6306 case 259: 6307 6307 6308 6308 /* Line 1806 of yacc.c */ 6309 #line 1 099"parser.yy"6309 #line 1100 "parser.yy" 6310 6310 { 6311 6311 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6317 6317 6318 6318 /* Line 1806 of yacc.c */ 6319 #line 110 6"parser.yy"6319 #line 1107 "parser.yy" 6320 6320 { 6321 6321 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6327 6327 6328 6328 /* Line 1806 of yacc.c */ 6329 #line 111 1"parser.yy"6329 #line 1112 "parser.yy" 6330 6330 { 6331 6331 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID ); … … 6337 6337 6338 6338 /* Line 1806 of yacc.c */ 6339 #line 112 1"parser.yy"6339 #line 1122 "parser.yy" 6340 6340 { 6341 6341 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); … … 6347 6347 6348 6348 /* Line 1806 of yacc.c */ 6349 #line 112 6"parser.yy"6349 #line 1127 "parser.yy" 6350 6350 { 6351 6351 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); … … 6357 6357 6358 6358 /* Line 1806 of yacc.c */ 6359 #line 113 1"parser.yy"6359 #line 1132 "parser.yy" 6360 6360 { 6361 6361 typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) ); … … 6367 6367 6368 6368 /* Line 1806 of yacc.c */ 6369 #line 11 39"parser.yy"6369 #line 1140 "parser.yy" 6370 6370 { 6371 6371 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6377 6377 6378 6378 /* Line 1806 of yacc.c */ 6379 #line 114 4"parser.yy"6379 #line 1145 "parser.yy" 6380 6380 { 6381 6381 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6387 6387 6388 6388 /* Line 1806 of yacc.c */ 6389 #line 11 49"parser.yy"6389 #line 1150 "parser.yy" 6390 6390 { 6391 6391 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6397 6397 6398 6398 /* Line 1806 of yacc.c */ 6399 #line 115 4"parser.yy"6399 #line 1155 "parser.yy" 6400 6400 { 6401 6401 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6407 6407 6408 6408 /* Line 1806 of yacc.c */ 6409 #line 11 59"parser.yy"6409 #line 1160 "parser.yy" 6410 6410 { 6411 6411 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); … … 6417 6417 6418 6418 /* Line 1806 of yacc.c */ 6419 #line 119 0"parser.yy"6419 #line 1191 "parser.yy" 6420 6420 { 6421 6421 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); … … 6426 6426 6427 6427 /* Line 1806 of yacc.c */ 6428 #line 119 4"parser.yy"6428 #line 1195 "parser.yy" 6429 6429 { 6430 6430 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); … … 6435 6435 6436 6436 /* Line 1806 of yacc.c */ 6437 #line 120 1"parser.yy"6437 #line 1202 "parser.yy" 6438 6438 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 6439 6439 break; … … 6442 6442 6443 6443 /* Line 1806 of yacc.c */ 6444 #line 120 5"parser.yy"6444 #line 1206 "parser.yy" 6445 6445 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); } 6446 6446 break; … … 6449 6449 6450 6450 /* Line 1806 of yacc.c */ 6451 #line 121 0"parser.yy"6451 #line 1211 "parser.yy" 6452 6452 { 6453 6453 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6459 6459 6460 6460 /* Line 1806 of yacc.c */ 6461 #line 121 5"parser.yy"6461 #line 1216 "parser.yy" 6462 6462 { 6463 6463 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6469 6469 6470 6470 /* Line 1806 of yacc.c */ 6471 #line 122 0"parser.yy"6471 #line 1221 "parser.yy" 6472 6472 { 6473 6473 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD ); … … 6479 6479 6480 6480 /* Line 1806 of yacc.c */ 6481 #line 123 1"parser.yy"6481 #line 1232 "parser.yy" 6482 6482 { 6483 6483 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6489 6489 6490 6490 /* Line 1806 of yacc.c */ 6491 #line 123 6"parser.yy"6491 #line 1237 "parser.yy" 6492 6492 { 6493 6493 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6499 6499 6500 6500 /* Line 1806 of yacc.c */ 6501 #line 124 1"parser.yy"6501 #line 1242 "parser.yy" 6502 6502 { 6503 6503 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6509 6509 6510 6510 /* Line 1806 of yacc.c */ 6511 #line 124 6"parser.yy"6511 #line 1247 "parser.yy" 6512 6512 { 6513 6513 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6519 6519 6520 6520 /* Line 1806 of yacc.c */ 6521 #line 125 1"parser.yy"6521 #line 1252 "parser.yy" 6522 6522 { 6523 6523 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6529 6529 6530 6530 /* Line 1806 of yacc.c */ 6531 #line 126 0"parser.yy"6531 #line 1261 "parser.yy" 6532 6532 { 6533 6533 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD ); … … 6539 6539 6540 6540 /* Line 1806 of yacc.c */ 6541 #line 126 5"parser.yy"6541 #line 1266 "parser.yy" 6542 6542 { 6543 6543 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD ); … … 6549 6549 6550 6550 /* Line 1806 of yacc.c */ 6551 #line 128 2"parser.yy"6551 #line 1283 "parser.yy" 6552 6552 { 6553 6553 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6559 6559 6560 6560 /* Line 1806 of yacc.c */ 6561 #line 128 7"parser.yy"6561 #line 1288 "parser.yy" 6562 6562 { 6563 6563 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6569 6569 6570 6570 /* Line 1806 of yacc.c */ 6571 #line 13 09"parser.yy"6571 #line 1310 "parser.yy" 6572 6572 { (yyval.decl) = nullptr; } 6573 6573 break; … … 6576 6576 6577 6577 /* Line 1806 of yacc.c */ 6578 #line 132 1"parser.yy"6578 #line 1322 "parser.yy" 6579 6579 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6580 6580 break; … … 6583 6583 6584 6584 /* Line 1806 of yacc.c */ 6585 #line 133 2"parser.yy"6585 #line 1333 "parser.yy" 6586 6586 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); } 6587 6587 break; … … 6590 6590 6591 6591 /* Line 1806 of yacc.c */ 6592 #line 133 4"parser.yy"6592 #line 1335 "parser.yy" 6593 6593 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); } 6594 6594 break; … … 6597 6597 6598 6598 /* Line 1806 of yacc.c */ 6599 #line 133 6"parser.yy"6599 #line 1337 "parser.yy" 6600 6600 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); } 6601 6601 break; … … 6604 6604 6605 6605 /* Line 1806 of yacc.c */ 6606 #line 133 8"parser.yy"6606 #line 1339 "parser.yy" 6607 6607 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); } 6608 6608 break; … … 6611 6611 6612 6612 /* Line 1806 of yacc.c */ 6613 #line 134 0"parser.yy"6613 #line 1341 "parser.yy" 6614 6614 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); } 6615 6615 break; … … 6618 6618 6619 6619 /* Line 1806 of yacc.c */ 6620 #line 134 2"parser.yy"6620 #line 1343 "parser.yy" 6621 6621 { 6622 6622 typedefTable.enterScope(); … … 6627 6627 6628 6628 /* Line 1806 of yacc.c */ 6629 #line 134 6"parser.yy"6629 #line 1347 "parser.yy" 6630 6630 { 6631 6631 typedefTable.leaveScope(); … … 6637 6637 6638 6638 /* Line 1806 of yacc.c */ 6639 #line 135 5"parser.yy"6639 #line 1356 "parser.yy" 6640 6640 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6641 6641 break; … … 6644 6644 6645 6645 /* Line 1806 of yacc.c */ 6646 #line 135 7"parser.yy"6646 #line 1358 "parser.yy" 6647 6647 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6648 6648 break; … … 6651 6651 6652 6652 /* Line 1806 of yacc.c */ 6653 #line 136 8"parser.yy"6653 #line 1369 "parser.yy" 6654 6654 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6655 6655 break; … … 6658 6658 6659 6659 /* Line 1806 of yacc.c */ 6660 #line 137 3"parser.yy"6660 #line 1374 "parser.yy" 6661 6661 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); } 6662 6662 break; … … 6665 6665 6666 6666 /* Line 1806 of yacc.c */ 6667 #line 137 5"parser.yy"6667 #line 1376 "parser.yy" 6668 6668 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); } 6669 6669 break; … … 6672 6672 6673 6673 /* Line 1806 of yacc.c */ 6674 #line 137 7"parser.yy"6674 #line 1378 "parser.yy" 6675 6675 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); } 6676 6676 break; … … 6679 6679 6680 6680 /* Line 1806 of yacc.c */ 6681 #line 13 79"parser.yy"6681 #line 1380 "parser.yy" 6682 6682 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); } 6683 6683 break; … … 6686 6686 6687 6687 /* Line 1806 of yacc.c */ 6688 #line 138 2"parser.yy"6688 #line 1383 "parser.yy" 6689 6689 { (yyval.decl) = new DeclarationNode; (yyval.decl)->isInline = true; } 6690 6690 break; … … 6693 6693 6694 6694 /* Line 1806 of yacc.c */ 6695 #line 138 4"parser.yy"6695 #line 1385 "parser.yy" 6696 6696 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); } 6697 6697 break; … … 6700 6700 6701 6701 /* Line 1806 of yacc.c */ 6702 #line 138 7"parser.yy"6702 #line 1388 "parser.yy" 6703 6703 { (yyval.decl) = new DeclarationNode; (yyval.decl)->isNoreturn = true; } 6704 6704 break; … … 6707 6707 6708 6708 /* Line 1806 of yacc.c */ 6709 #line 13 89"parser.yy"6709 #line 1390 "parser.yy" 6710 6710 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); } 6711 6711 break; … … 6714 6714 6715 6715 /* Line 1806 of yacc.c */ 6716 #line 139 4"parser.yy"6716 #line 1395 "parser.yy" 6717 6717 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); } 6718 6718 break; … … 6721 6721 6722 6722 /* Line 1806 of yacc.c */ 6723 #line 139 6"parser.yy"6723 #line 1397 "parser.yy" 6724 6724 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); } 6725 6725 break; … … 6728 6728 6729 6729 /* Line 1806 of yacc.c */ 6730 #line 139 8"parser.yy"6730 #line 1399 "parser.yy" 6731 6731 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); } 6732 6732 break; … … 6735 6735 6736 6736 /* Line 1806 of yacc.c */ 6737 #line 140 0"parser.yy"6737 #line 1401 "parser.yy" 6738 6738 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); } 6739 6739 break; … … 6742 6742 6743 6743 /* Line 1806 of yacc.c */ 6744 #line 140 2"parser.yy"6744 #line 1403 "parser.yy" 6745 6745 { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Long ); } 6746 6746 break; … … 6749 6749 6750 6750 /* Line 1806 of yacc.c */ 6751 #line 140 4"parser.yy"6751 #line 1405 "parser.yy" 6752 6752 { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Short ); } 6753 6753 break; … … 6756 6756 6757 6757 /* Line 1806 of yacc.c */ 6758 #line 140 6"parser.yy"6758 #line 1407 "parser.yy" 6759 6759 { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Signed ); } 6760 6760 break; … … 6763 6763 6764 6764 /* Line 1806 of yacc.c */ 6765 #line 140 8"parser.yy"6765 #line 1409 "parser.yy" 6766 6766 { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Unsigned ); } 6767 6767 break; … … 6770 6770 6771 6771 /* Line 1806 of yacc.c */ 6772 #line 141 0"parser.yy"6772 #line 1411 "parser.yy" 6773 6773 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); } 6774 6774 break; … … 6777 6777 6778 6778 /* Line 1806 of yacc.c */ 6779 #line 141 2"parser.yy"6779 #line 1413 "parser.yy" 6780 6780 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); } 6781 6781 break; … … 6784 6784 6785 6785 /* Line 1806 of yacc.c */ 6786 #line 141 4"parser.yy"6786 #line 1415 "parser.yy" 6787 6787 { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Complex ); } 6788 6788 break; … … 6791 6791 6792 6792 /* Line 1806 of yacc.c */ 6793 #line 141 6"parser.yy"6793 #line 1417 "parser.yy" 6794 6794 { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Imaginary ); } 6795 6795 break; … … 6798 6798 6799 6799 /* Line 1806 of yacc.c */ 6800 #line 141 8"parser.yy"6800 #line 1419 "parser.yy" 6801 6801 { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); } 6802 6802 break; … … 6805 6805 6806 6806 /* Line 1806 of yacc.c */ 6807 #line 142 0"parser.yy"6807 #line 1421 "parser.yy" 6808 6808 { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Zero ); } 6809 6809 break; … … 6812 6812 6813 6813 /* Line 1806 of yacc.c */ 6814 #line 142 2"parser.yy"6814 #line 1423 "parser.yy" 6815 6815 { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::One ); } 6816 6816 break; … … 6819 6819 6820 6820 /* Line 1806 of yacc.c */ 6821 #line 14 29"parser.yy"6821 #line 1430 "parser.yy" 6822 6822 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6823 6823 break; … … 6826 6826 6827 6827 /* Line 1806 of yacc.c */ 6828 #line 143 1"parser.yy"6828 #line 1432 "parser.yy" 6829 6829 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6830 6830 break; … … 6833 6833 6834 6834 /* Line 1806 of yacc.c */ 6835 #line 143 3"parser.yy"6835 #line 1434 "parser.yy" 6836 6836 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6837 6837 break; … … 6840 6840 6841 6841 /* Line 1806 of yacc.c */ 6842 #line 143 5"parser.yy"6842 #line 1436 "parser.yy" 6843 6843 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); } 6844 6844 break; … … 6847 6847 6848 6848 /* Line 1806 of yacc.c */ 6849 #line 144 1"parser.yy"6849 #line 1442 "parser.yy" 6850 6850 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6851 6851 break; … … 6854 6854 6855 6855 /* Line 1806 of yacc.c */ 6856 #line 144 8"parser.yy"6856 #line 1449 "parser.yy" 6857 6857 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6858 6858 break; … … 6861 6861 6862 6862 /* Line 1806 of yacc.c */ 6863 #line 145 0"parser.yy"6863 #line 1451 "parser.yy" 6864 6864 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6865 6865 break; … … 6868 6868 6869 6869 /* Line 1806 of yacc.c */ 6870 #line 145 2"parser.yy"6870 #line 1453 "parser.yy" 6871 6871 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); } 6872 6872 break; … … 6875 6875 6876 6876 /* Line 1806 of yacc.c */ 6877 #line 145 7"parser.yy"6877 #line 1458 "parser.yy" 6878 6878 { (yyval.decl) = (yyvsp[(3) - (4)].decl); } 6879 6879 break; … … 6882 6882 6883 6883 /* Line 1806 of yacc.c */ 6884 #line 14 59"parser.yy"6884 #line 1460 "parser.yy" 6885 6885 { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); } 6886 6886 break; … … 6889 6889 6890 6890 /* Line 1806 of yacc.c */ 6891 #line 146 1"parser.yy"6891 #line 1462 "parser.yy" 6892 6892 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); } 6893 6893 break; … … 6896 6896 6897 6897 /* Line 1806 of yacc.c */ 6898 #line 146 3"parser.yy"6898 #line 1464 "parser.yy" 6899 6899 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 6900 6900 break; … … 6903 6903 6904 6904 /* Line 1806 of yacc.c */ 6905 #line 14 69"parser.yy"6905 #line 1470 "parser.yy" 6906 6906 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6907 6907 break; … … 6910 6910 6911 6911 /* Line 1806 of yacc.c */ 6912 #line 147 1"parser.yy"6912 #line 1472 "parser.yy" 6913 6913 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6914 6914 break; … … 6917 6917 6918 6918 /* Line 1806 of yacc.c */ 6919 #line 147 3"parser.yy"6919 #line 1474 "parser.yy" 6920 6920 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6921 6921 break; … … 6924 6924 6925 6925 /* Line 1806 of yacc.c */ 6926 #line 14 79"parser.yy"6926 #line 1480 "parser.yy" 6927 6927 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6928 6928 break; … … 6931 6931 6932 6932 /* Line 1806 of yacc.c */ 6933 #line 148 1"parser.yy"6933 #line 1482 "parser.yy" 6934 6934 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6935 6935 break; … … 6938 6938 6939 6939 /* Line 1806 of yacc.c */ 6940 #line 148 7"parser.yy"6940 #line 1488 "parser.yy" 6941 6941 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6942 6942 break; … … 6945 6945 6946 6946 /* Line 1806 of yacc.c */ 6947 #line 14 89"parser.yy"6947 #line 1490 "parser.yy" 6948 6948 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6949 6949 break; … … 6952 6952 6953 6953 /* Line 1806 of yacc.c */ 6954 #line 149 1"parser.yy"6954 #line 1492 "parser.yy" 6955 6955 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6956 6956 break; … … 6959 6959 6960 6960 /* Line 1806 of yacc.c */ 6961 #line 149 6"parser.yy"6961 #line 1497 "parser.yy" 6962 6962 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); } 6963 6963 break; … … 6966 6966 6967 6967 /* Line 1806 of yacc.c */ 6968 #line 149 8"parser.yy"6968 #line 1499 "parser.yy" 6969 6969 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6970 6970 break; … … 6973 6973 6974 6974 /* Line 1806 of yacc.c */ 6975 #line 150 0"parser.yy"6975 #line 1501 "parser.yy" 6976 6976 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6977 6977 break; … … 6980 6980 6981 6981 /* Line 1806 of yacc.c */ 6982 #line 151 0"parser.yy"6982 #line 1511 "parser.yy" 6983 6983 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), nullptr, nullptr, (yyvsp[(3) - (4)].decl), true ); } 6984 6984 break; … … 6987 6987 6988 6988 /* Line 1806 of yacc.c */ 6989 #line 151 2"parser.yy"6989 #line 1513 "parser.yy" 6990 6990 { 6991 6991 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); … … 6997 6997 6998 6998 /* Line 1806 of yacc.c */ 6999 #line 151 7"parser.yy"6999 #line 1518 "parser.yy" 7000 7000 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); } 7001 7001 break; … … 7004 7004 7005 7005 /* Line 1806 of yacc.c */ 7006 #line 15 19"parser.yy"7006 #line 1520 "parser.yy" 7007 7007 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), nullptr, (yyvsp[(5) - (6)].decl), true ); } 7008 7008 break; … … 7011 7011 7012 7012 /* Line 1806 of yacc.c */ 7013 #line 152 1"parser.yy"7013 #line 1522 "parser.yy" 7014 7014 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), nullptr, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); } 7015 7015 break; … … 7018 7018 7019 7019 /* Line 1806 of yacc.c */ 7020 #line 152 3"parser.yy"7020 #line 1524 "parser.yy" 7021 7021 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 7022 7022 break; … … 7025 7025 7026 7026 /* Line 1806 of yacc.c */ 7027 #line 152 8"parser.yy"7027 #line 1529 "parser.yy" 7028 7028 { (yyval.aggKey) = DeclarationNode::Struct; } 7029 7029 break; … … 7032 7032 7033 7033 /* Line 1806 of yacc.c */ 7034 #line 153 0"parser.yy"7034 #line 1531 "parser.yy" 7035 7035 { (yyval.aggKey) = DeclarationNode::Union; } 7036 7036 break; … … 7039 7039 7040 7040 /* Line 1806 of yacc.c */ 7041 #line 153 5"parser.yy"7041 #line 1536 "parser.yy" 7042 7042 { (yyval.decl) = nullptr; } 7043 7043 break; … … 7046 7046 7047 7047 /* Line 1806 of yacc.c */ 7048 #line 153 7"parser.yy"7049 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }7048 #line 1538 "parser.yy" 7049 { (yyval.decl) = (yyvsp[(1) - (2)].decl) ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 7050 7050 break; 7051 7051 … … 7053 7053 7054 7054 /* Line 1806 of yacc.c */ 7055 #line 154 3"parser.yy"7055 #line 1544 "parser.yy" 7056 7056 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); } 7057 7057 break; … … 7060 7060 7061 7061 /* Line 1806 of yacc.c */ 7062 #line 154 6"parser.yy"7062 #line 1547 "parser.yy" 7063 7063 { // mark all fields in list 7064 7064 for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) … … 7071 7071 7072 7072 /* Line 1806 of yacc.c */ 7073 #line 155 6"parser.yy"7073 #line 1557 "parser.yy" 7074 7074 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); } 7075 7075 break; … … 7078 7078 7079 7079 /* Line 1806 of yacc.c */ 7080 #line 155 8"parser.yy"7080 #line 1559 "parser.yy" 7081 7081 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); } 7082 7082 break; … … 7085 7085 7086 7086 /* Line 1806 of yacc.c */ 7087 #line 156 0"parser.yy"7087 #line 1561 "parser.yy" 7088 7088 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); } 7089 7089 break; … … 7092 7092 7093 7093 /* Line 1806 of yacc.c */ 7094 #line 156 5"parser.yy"7094 #line 1566 "parser.yy" 7095 7095 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7096 7096 break; … … 7099 7099 7100 7100 /* Line 1806 of yacc.c */ 7101 #line 156 7"parser.yy"7101 #line 1568 "parser.yy" 7102 7102 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); } 7103 7103 break; … … 7106 7106 7107 7107 /* Line 1806 of yacc.c */ 7108 #line 157 2"parser.yy"7108 #line 1573 "parser.yy" 7109 7109 { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ } 7110 7110 break; … … 7113 7113 7114 7114 /* Line 1806 of yacc.c */ 7115 #line 157 4"parser.yy"7115 #line 1575 "parser.yy" 7116 7116 { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); } 7117 7117 break; … … 7120 7120 7121 7121 /* Line 1806 of yacc.c */ 7122 #line 157 7"parser.yy"7122 #line 1578 "parser.yy" 7123 7123 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 7124 7124 break; … … 7127 7127 7128 7128 /* Line 1806 of yacc.c */ 7129 #line 158 0"parser.yy"7129 #line 1581 "parser.yy" 7130 7130 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 7131 7131 break; … … 7134 7134 7135 7135 /* Line 1806 of yacc.c */ 7136 #line 158 6"parser.yy"7136 #line 1587 "parser.yy" 7137 7137 { (yyval.en) = nullptr; } 7138 7138 break; … … 7141 7141 7142 7142 /* Line 1806 of yacc.c */ 7143 #line 158 8"parser.yy"7143 #line 1589 "parser.yy" 7144 7144 { (yyval.en) = (yyvsp[(1) - (1)].en); } 7145 7145 break; … … 7148 7148 7149 7149 /* Line 1806 of yacc.c */ 7150 #line 159 3"parser.yy"7150 #line 1594 "parser.yy" 7151 7151 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7152 7152 break; … … 7155 7155 7156 7156 /* Line 1806 of yacc.c */ 7157 #line 160 2"parser.yy"7157 #line 1603 "parser.yy" 7158 7158 { (yyval.decl) = DeclarationNode::newEnum( nullptr, (yyvsp[(3) - (5)].decl) ); } 7159 7159 break; … … 7162 7162 7163 7163 /* Line 1806 of yacc.c */ 7164 #line 160 4"parser.yy"7164 #line 1605 "parser.yy" 7165 7165 { 7166 7166 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); … … 7172 7172 7173 7173 /* Line 1806 of yacc.c */ 7174 #line 16 09"parser.yy"7174 #line 1610 "parser.yy" 7175 7175 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); } 7176 7176 break; … … 7179 7179 7180 7180 /* Line 1806 of yacc.c */ 7181 #line 161 1"parser.yy"7181 #line 1612 "parser.yy" 7182 7182 { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); } 7183 7183 break; … … 7186 7186 7187 7187 /* Line 1806 of yacc.c */ 7188 #line 161 6"parser.yy"7188 #line 1617 "parser.yy" 7189 7189 { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); } 7190 7190 break; … … 7193 7193 7194 7194 /* Line 1806 of yacc.c */ 7195 #line 161 8"parser.yy"7195 #line 1619 "parser.yy" 7196 7196 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); } 7197 7197 break; … … 7200 7200 7201 7201 /* Line 1806 of yacc.c */ 7202 #line 162 3"parser.yy"7202 #line 1624 "parser.yy" 7203 7203 { (yyval.en) = nullptr; } 7204 7204 break; … … 7207 7207 7208 7208 /* Line 1806 of yacc.c */ 7209 #line 162 5"parser.yy"7209 #line 1626 "parser.yy" 7210 7210 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7211 7211 break; … … 7214 7214 7215 7215 /* Line 1806 of yacc.c */ 7216 #line 163 2"parser.yy"7216 #line 1633 "parser.yy" 7217 7217 { (yyval.decl) = nullptr; } 7218 7218 break; … … 7221 7221 7222 7222 /* Line 1806 of yacc.c */ 7223 #line 164 0"parser.yy"7223 #line 1641 "parser.yy" 7224 7224 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7225 7225 break; … … 7228 7228 7229 7229 /* Line 1806 of yacc.c */ 7230 #line 164 2"parser.yy"7230 #line 1643 "parser.yy" 7231 7231 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7232 7232 break; … … 7235 7235 7236 7236 /* Line 1806 of yacc.c */ 7237 #line 164 4"parser.yy"7237 #line 1645 "parser.yy" 7238 7238 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7239 7239 break; … … 7242 7242 7243 7243 /* Line 1806 of yacc.c */ 7244 #line 165 2"parser.yy"7244 #line 1653 "parser.yy" 7245 7245 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7246 7246 break; … … 7249 7249 7250 7250 /* Line 1806 of yacc.c */ 7251 #line 165 4"parser.yy"7251 #line 1655 "parser.yy" 7252 7252 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7253 7253 break; … … 7256 7256 7257 7257 /* Line 1806 of yacc.c */ 7258 #line 165 6"parser.yy"7258 #line 1657 "parser.yy" 7259 7259 { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); } 7260 7260 break; … … 7263 7263 7264 7264 /* Line 1806 of yacc.c */ 7265 #line 166 2"parser.yy"7265 #line 1663 "parser.yy" 7266 7266 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7267 7267 break; … … 7270 7270 7271 7271 /* Line 1806 of yacc.c */ 7272 #line 166 7"parser.yy"7272 #line 1668 "parser.yy" 7273 7273 { (yyval.decl) = nullptr; } 7274 7274 break; … … 7277 7277 7278 7278 /* Line 1806 of yacc.c */ 7279 #line 167 4"parser.yy"7279 #line 1675 "parser.yy" 7280 7280 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7281 7281 break; … … 7284 7284 7285 7285 /* Line 1806 of yacc.c */ 7286 #line 168 1"parser.yy"7286 #line 1682 "parser.yy" 7287 7287 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7288 7288 break; … … 7291 7291 7292 7292 /* Line 1806 of yacc.c */ 7293 #line 168 3"parser.yy"7293 #line 1684 "parser.yy" 7294 7294 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7295 7295 break; … … 7298 7298 7299 7299 /* Line 1806 of yacc.c */ 7300 #line 169 2"parser.yy"7300 #line 1693 "parser.yy" 7301 7301 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 7302 7302 break; … … 7305 7305 7306 7306 /* Line 1806 of yacc.c */ 7307 #line 169 5"parser.yy"7307 #line 1696 "parser.yy" 7308 7308 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 7309 7309 break; … … 7312 7312 7313 7313 /* Line 1806 of yacc.c */ 7314 #line 169 7"parser.yy"7314 #line 1698 "parser.yy" 7315 7315 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); } 7316 7316 break; … … 7319 7319 7320 7320 /* Line 1806 of yacc.c */ 7321 #line 170 7"parser.yy"7321 #line 1708 "parser.yy" 7322 7322 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7323 7323 break; … … 7326 7326 7327 7327 /* Line 1806 of yacc.c */ 7328 #line 171 3"parser.yy"7328 #line 1714 "parser.yy" 7329 7329 { 7330 7330 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7331 (yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( new InitializerNode( (yyvsp[(3) - (3)].en) ));7331 (yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( (yyvsp[(3) - (3)].en) ? new InitializerNode( (yyvsp[(3) - (3)].en) ) : nullptr ); 7332 7332 } 7333 7333 break; … … 7336 7336 7337 7337 /* Line 1806 of yacc.c */ 7338 #line 171 8"parser.yy"7338 #line 1719 "parser.yy" 7339 7339 { 7340 7340 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7341 (yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( new InitializerNode( (yyvsp[(3) - (3)].en) ));7341 (yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( (yyvsp[(3) - (3)].en) ? new InitializerNode( (yyvsp[(3) - (3)].en) ) : nullptr ); 7342 7342 } 7343 7343 break; … … 7346 7346 7347 7347 /* Line 1806 of yacc.c */ 7348 #line 172 7"parser.yy"7348 #line 1728 "parser.yy" 7349 7349 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7350 7350 break; … … 7353 7353 7354 7354 /* Line 1806 of yacc.c */ 7355 #line 173 6"parser.yy"7355 #line 1737 "parser.yy" 7356 7356 { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); } 7357 7357 break; … … 7360 7360 7361 7361 /* Line 1806 of yacc.c */ 7362 #line 173 8"parser.yy"7362 #line 1739 "parser.yy" 7363 7363 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); } 7364 7364 break; … … 7367 7367 7368 7368 /* Line 1806 of yacc.c */ 7369 #line 176 3"parser.yy"7369 #line 1764 "parser.yy" 7370 7370 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7371 7371 break; … … 7374 7374 7375 7375 /* Line 1806 of yacc.c */ 7376 #line 177 1"parser.yy"7376 #line 1772 "parser.yy" 7377 7377 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7378 7378 break; … … 7381 7381 7382 7382 /* Line 1806 of yacc.c */ 7383 #line 177 6"parser.yy"7383 #line 1777 "parser.yy" 7384 7384 { (yyval.in) = nullptr; } 7385 7385 break; … … 7388 7388 7389 7389 /* Line 1806 of yacc.c */ 7390 #line 177 8"parser.yy"7390 #line 1779 "parser.yy" 7391 7391 { (yyval.in) = (yyvsp[(2) - (2)].in); } 7392 7392 break; … … 7395 7395 7396 7396 /* Line 1806 of yacc.c */ 7397 #line 178 0"parser.yy"7397 #line 1781 "parser.yy" 7398 7398 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); } 7399 7399 break; … … 7402 7402 7403 7403 /* Line 1806 of yacc.c */ 7404 #line 178 4"parser.yy"7404 #line 1785 "parser.yy" 7405 7405 { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); } 7406 7406 break; … … 7409 7409 7410 7410 /* Line 1806 of yacc.c */ 7411 #line 178 5"parser.yy"7411 #line 1786 "parser.yy" 7412 7412 { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); } 7413 7413 break; … … 7416 7416 7417 7417 /* Line 1806 of yacc.c */ 7418 #line 179 0"parser.yy"7418 #line 1791 "parser.yy" 7419 7419 { (yyval.in) = nullptr; } 7420 7420 break; … … 7423 7423 7424 7424 /* Line 1806 of yacc.c */ 7425 #line 179 2"parser.yy"7425 #line 1793 "parser.yy" 7426 7426 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); } 7427 7427 break; … … 7430 7430 7431 7431 /* Line 1806 of yacc.c */ 7432 #line 179 3"parser.yy"7432 #line 1794 "parser.yy" 7433 7433 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); } 7434 7434 break; … … 7437 7437 7438 7438 /* Line 1806 of yacc.c */ 7439 #line 179 5"parser.yy"7439 #line 1796 "parser.yy" 7440 7440 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_last( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); } 7441 7441 break; … … 7444 7444 7445 7445 /* Line 1806 of yacc.c */ 7446 #line 181 1"parser.yy"7446 #line 1812 "parser.yy" 7447 7447 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); } 7448 7448 break; … … 7451 7451 7452 7452 /* Line 1806 of yacc.c */ 7453 #line 181 7"parser.yy"7453 #line 1818 "parser.yy" 7454 7454 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) ) ); } 7455 7455 break; … … 7458 7458 7459 7459 /* Line 1806 of yacc.c */ 7460 #line 182 3"parser.yy"7460 #line 1824 "parser.yy" 7461 7461 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); } 7462 7462 break; … … 7465 7465 7466 7466 /* Line 1806 of yacc.c */ 7467 #line 182 6"parser.yy"7467 #line 1827 "parser.yy" 7468 7468 { (yyval.en) = (yyvsp[(3) - (5)].en); } 7469 7469 break; … … 7472 7472 7473 7473 /* Line 1806 of yacc.c */ 7474 #line 182 8"parser.yy"7474 #line 1829 "parser.yy" 7475 7475 { (yyval.en) = (yyvsp[(3) - (5)].en); } 7476 7476 break; … … 7479 7479 7480 7480 /* Line 1806 of yacc.c */ 7481 #line 183 0"parser.yy"7481 #line 1831 "parser.yy" 7482 7482 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); } 7483 7483 break; … … 7486 7486 7487 7487 /* Line 1806 of yacc.c */ 7488 #line 183 2"parser.yy"7488 #line 1833 "parser.yy" 7489 7489 { (yyval.en) = (yyvsp[(4) - (6)].en); } 7490 7490 break; … … 7493 7493 7494 7494 /* Line 1806 of yacc.c */ 7495 #line 185 6"parser.yy"7495 #line 1857 "parser.yy" 7496 7496 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7497 7497 break; … … 7500 7500 7501 7501 /* Line 1806 of yacc.c */ 7502 #line 185 8"parser.yy"7502 #line 1859 "parser.yy" 7503 7503 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7504 7504 break; … … 7507 7507 7508 7508 /* Line 1806 of yacc.c */ 7509 #line 186 0"parser.yy"7509 #line 1861 "parser.yy" 7510 7510 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 7511 7511 break; … … 7514 7514 7515 7515 /* Line 1806 of yacc.c */ 7516 #line 186 6"parser.yy"7516 #line 1867 "parser.yy" 7517 7517 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7518 7518 break; … … 7521 7521 7522 7522 /* Line 1806 of yacc.c */ 7523 #line 186 8"parser.yy"7523 #line 1869 "parser.yy" 7524 7524 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7525 7525 break; … … 7528 7528 7529 7529 /* Line 1806 of yacc.c */ 7530 #line 187 3"parser.yy"7530 #line 1874 "parser.yy" 7531 7531 { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 7532 7532 break; … … 7535 7535 7536 7536 /* Line 1806 of yacc.c */ 7537 #line 18 79"parser.yy"7537 #line 1880 "parser.yy" 7538 7538 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); } 7539 7539 break; … … 7542 7542 7543 7543 /* Line 1806 of yacc.c */ 7544 #line 188 4"parser.yy"7544 #line 1885 "parser.yy" 7545 7545 { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); } 7546 7546 break; … … 7549 7549 7550 7550 /* Line 1806 of yacc.c */ 7551 #line 188 6"parser.yy"7551 #line 1887 "parser.yy" 7552 7552 { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); } 7553 7553 break; … … 7556 7556 7557 7557 /* Line 1806 of yacc.c */ 7558 #line 189 2"parser.yy"7558 #line 1893 "parser.yy" 7559 7559 { (yyval.tclass) = DeclarationNode::Otype; } 7560 7560 break; … … 7563 7563 7564 7564 /* Line 1806 of yacc.c */ 7565 #line 189 4"parser.yy"7565 #line 1895 "parser.yy" 7566 7566 { (yyval.tclass) = DeclarationNode::Ftype; } 7567 7567 break; … … 7570 7570 7571 7571 /* Line 1806 of yacc.c */ 7572 #line 189 6"parser.yy"7572 #line 1897 "parser.yy" 7573 7573 { (yyval.tclass) = DeclarationNode::Dtype; } 7574 7574 break; … … 7577 7577 7578 7578 /* Line 1806 of yacc.c */ 7579 #line 190 1"parser.yy"7579 #line 1902 "parser.yy" 7580 7580 { (yyval.decl) = nullptr; } 7581 7581 break; … … 7584 7584 7585 7585 /* Line 1806 of yacc.c */ 7586 #line 190 3"parser.yy"7587 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }7586 #line 1904 "parser.yy" 7587 { (yyval.decl) = (yyvsp[(1) - (2)].decl) ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 7588 7588 break; 7589 7589 … … 7591 7591 7592 7592 /* Line 1806 of yacc.c */ 7593 #line 190 8"parser.yy"7593 #line 1909 "parser.yy" 7594 7594 { 7595 7595 typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) ); … … 7601 7601 7602 7602 /* Line 1806 of yacc.c */ 7603 #line 191 3"parser.yy"7603 #line 1914 "parser.yy" 7604 7604 { (yyval.decl) = (yyvsp[(4) - (5)].decl); } 7605 7605 break; … … 7608 7608 7609 7609 /* Line 1806 of yacc.c */ 7610 #line 191 5"parser.yy"7610 #line 1916 "parser.yy" 7611 7611 { (yyval.decl) = nullptr; } 7612 7612 break; … … 7615 7615 7616 7616 /* Line 1806 of yacc.c */ 7617 #line 192 0"parser.yy"7617 #line 1921 "parser.yy" 7618 7618 { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); } 7619 7619 break; … … 7622 7622 7623 7623 /* Line 1806 of yacc.c */ 7624 #line 192 3"parser.yy"7624 #line 1924 "parser.yy" 7625 7625 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); } 7626 7626 break; … … 7629 7629 7630 7630 /* Line 1806 of yacc.c */ 7631 #line 192 5"parser.yy"7631 #line 1926 "parser.yy" 7632 7632 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); } 7633 7633 break; … … 7636 7636 7637 7637 /* Line 1806 of yacc.c */ 7638 #line 193 0"parser.yy"7638 #line 1931 "parser.yy" 7639 7639 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 7640 7640 break; … … 7643 7643 7644 7644 /* Line 1806 of yacc.c */ 7645 #line 193 2"parser.yy"7645 #line 1933 "parser.yy" 7646 7646 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); } 7647 7647 break; … … 7650 7650 7651 7651 /* Line 1806 of yacc.c */ 7652 #line 193 4"parser.yy"7652 #line 1935 "parser.yy" 7653 7653 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); } 7654 7654 break; … … 7657 7657 7658 7658 /* Line 1806 of yacc.c */ 7659 #line 19 39"parser.yy"7659 #line 1940 "parser.yy" 7660 7660 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); } 7661 7661 break; … … 7664 7664 7665 7665 /* Line 1806 of yacc.c */ 7666 #line 194 1"parser.yy"7666 #line 1942 "parser.yy" 7667 7667 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); } 7668 7668 break; … … 7671 7671 7672 7672 /* Line 1806 of yacc.c */ 7673 #line 194 6"parser.yy"7673 #line 1947 "parser.yy" 7674 7674 { 7675 7675 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD ); … … 7681 7681 7682 7682 /* Line 1806 of yacc.c */ 7683 #line 195 1"parser.yy"7683 #line 1952 "parser.yy" 7684 7684 { 7685 7685 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG ); … … 7691 7691 7692 7692 /* Line 1806 of yacc.c */ 7693 #line 19 59"parser.yy"7693 #line 1960 "parser.yy" 7694 7694 { 7695 7695 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID ); … … 7701 7701 7702 7702 /* Line 1806 of yacc.c */ 7703 #line 196 4"parser.yy"7703 #line 1965 "parser.yy" 7704 7704 { 7705 7705 typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) ); … … 7711 7711 7712 7712 /* Line 1806 of yacc.c */ 7713 #line 19 69"parser.yy"7713 #line 1970 "parser.yy" 7714 7714 { 7715 7715 typedefTable.leaveTrait(); … … 7722 7722 7723 7723 /* Line 1806 of yacc.c */ 7724 #line 19 79"parser.yy"7724 #line 1980 "parser.yy" 7725 7725 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 7726 7726 break; … … 7729 7729 7730 7730 /* Line 1806 of yacc.c */ 7731 #line 19 89"parser.yy"7731 #line 1990 "parser.yy" 7732 7732 { 7733 7733 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7739 7739 7740 7740 /* Line 1806 of yacc.c */ 7741 #line 199 4"parser.yy"7741 #line 1995 "parser.yy" 7742 7742 { 7743 7743 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7749 7749 7750 7750 /* Line 1806 of yacc.c */ 7751 #line 1999"parser.yy"7751 #line 2000 "parser.yy" 7752 7752 { 7753 7753 typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); … … 7759 7759 7760 7760 /* Line 1806 of yacc.c */ 7761 #line 200 7"parser.yy"7761 #line 2008 "parser.yy" 7762 7762 { 7763 7763 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7769 7769 7770 7770 /* Line 1806 of yacc.c */ 7771 #line 201 2"parser.yy"7771 #line 2013 "parser.yy" 7772 7772 { 7773 7773 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7779 7779 7780 7780 /* Line 1806 of yacc.c */ 7781 #line 202 2"parser.yy"7781 #line 2023 "parser.yy" 7782 7782 {} 7783 7783 break; … … 7786 7786 7787 7787 /* Line 1806 of yacc.c */ 7788 #line 202 4"parser.yy"7789 { parseTree = parseTree != nullptr? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl); }7788 #line 2025 "parser.yy" 7789 { parseTree = parseTree ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl); } 7790 7790 break; 7791 7791 … … 7793 7793 7794 7794 /* Line 1806 of yacc.c */ 7795 #line 203 0"parser.yy"7796 { (yyval.decl) = (yyvsp[(1) - (3)].decl) != nullptr? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }7795 #line 2031 "parser.yy" 7796 { (yyval.decl) = (yyvsp[(1) - (3)].decl) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); } 7797 7797 break; 7798 7798 … … 7800 7800 7801 7801 /* Line 1806 of yacc.c */ 7802 #line 203 5"parser.yy"7802 #line 2036 "parser.yy" 7803 7803 { (yyval.decl) = nullptr; } 7804 7804 break; … … 7807 7807 7808 7808 /* Line 1806 of yacc.c */ 7809 #line 204 3"parser.yy"7809 #line 2044 "parser.yy" 7810 7810 {} 7811 7811 break; … … 7814 7814 7815 7815 /* Line 1806 of yacc.c */ 7816 #line 204 5"parser.yy"7816 #line 2046 "parser.yy" 7817 7817 { 7818 7818 linkageStack.push( linkage ); // handle nested extern "C"/"Cforall" … … 7824 7824 7825 7825 /* Line 1806 of yacc.c */ 7826 #line 205 0"parser.yy"7826 #line 2051 "parser.yy" 7827 7827 { 7828 7828 linkage = linkageStack.top(); … … 7835 7835 7836 7836 /* Line 1806 of yacc.c */ 7837 #line 205 6"parser.yy"7837 #line 2057 "parser.yy" 7838 7838 { // mark all fields in list 7839 7839 for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) … … 7846 7846 7847 7847 /* Line 1806 of yacc.c */ 7848 #line 207 1"parser.yy"7848 #line 2072 "parser.yy" 7849 7849 { 7850 7850 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7857 7857 7858 7858 /* Line 1806 of yacc.c */ 7859 #line 207 7"parser.yy"7859 #line 2078 "parser.yy" 7860 7860 { 7861 7861 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7868 7868 7869 7869 /* Line 1806 of yacc.c */ 7870 #line 208 6"parser.yy"7870 #line 2087 "parser.yy" 7871 7871 { 7872 7872 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7879 7879 7880 7880 /* Line 1806 of yacc.c */ 7881 #line 209 2"parser.yy"7881 #line 2093 "parser.yy" 7882 7882 { 7883 7883 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7890 7890 7891 7891 /* Line 1806 of yacc.c */ 7892 #line 209 8"parser.yy"7892 #line 2099 "parser.yy" 7893 7893 { 7894 7894 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7901 7901 7902 7902 /* Line 1806 of yacc.c */ 7903 #line 210 4"parser.yy"7903 #line 2105 "parser.yy" 7904 7904 { 7905 7905 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7912 7912 7913 7913 /* Line 1806 of yacc.c */ 7914 #line 211 0"parser.yy"7914 #line 2111 "parser.yy" 7915 7915 { 7916 7916 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7923 7923 7924 7924 /* Line 1806 of yacc.c */ 7925 #line 211 8"parser.yy"7925 #line 2119 "parser.yy" 7926 7926 { 7927 7927 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7934 7934 7935 7935 /* Line 1806 of yacc.c */ 7936 #line 212 4"parser.yy"7936 #line 2125 "parser.yy" 7937 7937 { 7938 7938 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7945 7945 7946 7946 /* Line 1806 of yacc.c */ 7947 #line 213 2"parser.yy"7947 #line 2133 "parser.yy" 7948 7948 { 7949 7949 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7956 7956 7957 7957 /* Line 1806 of yacc.c */ 7958 #line 213 8"parser.yy"7958 #line 2139 "parser.yy" 7959 7959 { 7960 7960 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7967 7967 7968 7968 /* Line 1806 of yacc.c */ 7969 #line 215 3"parser.yy"7969 #line 2154 "parser.yy" 7970 7970 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 7971 7971 break; … … 7974 7974 7975 7975 /* Line 1806 of yacc.c */ 7976 #line 215 8"parser.yy"7976 #line 2159 "parser.yy" 7977 7977 { (yyval.constant) = nullptr; } 7978 7978 break; … … 7981 7981 7982 7982 /* Line 1806 of yacc.c */ 7983 #line 216 0"parser.yy"7983 #line 2161 "parser.yy" 7984 7984 { (yyval.constant) = (yyvsp[(3) - (5)].constant); } 7985 7985 break; … … 7988 7988 7989 7989 /* Line 1806 of yacc.c */ 7990 #line 216 5"parser.yy"7990 #line 2166 "parser.yy" 7991 7991 { (yyval.decl) = nullptr; } 7992 7992 break; … … 7995 7995 7996 7996 /* Line 1806 of yacc.c */ 7997 #line 217 2"parser.yy"7997 #line 2173 "parser.yy" 7998 7998 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7999 7999 break; … … 8002 8002 8003 8003 /* Line 1806 of yacc.c */ 8004 #line 217 8"parser.yy"8004 #line 2179 "parser.yy" 8005 8005 { (yyval.decl) = nullptr; } 8006 8006 break; … … 8009 8009 8010 8010 /* Line 1806 of yacc.c */ 8011 #line 21 89"parser.yy"8011 #line 2190 "parser.yy" 8012 8012 { delete (yyvsp[(3) - (4)].en); } 8013 8013 break; … … 8016 8016 8017 8017 /* Line 1806 of yacc.c */ 8018 #line 219 3"parser.yy"8018 #line 2194 "parser.yy" 8019 8019 { delete (yyvsp[(1) - (1)].tok); } 8020 8020 break; 8021 8021 8022 8022 case 564: 8023 8024 /* Line 1806 of yacc.c */8025 #line 2194 "parser.yy"8026 { delete (yyvsp[(1) - (1)].decl); }8027 break;8028 8029 case 565:8030 8023 8031 8024 /* Line 1806 of yacc.c */ … … 8034 8027 break; 8035 8028 8036 case 56 6:8029 case 565: 8037 8030 8038 8031 /* Line 1806 of yacc.c */ … … 8041 8034 break; 8042 8035 8036 case 566: 8037 8038 /* Line 1806 of yacc.c */ 8039 #line 2197 "parser.yy" 8040 { delete (yyvsp[(1) - (1)].decl); } 8041 break; 8042 8043 8043 case 567: 8044 8044 8045 8045 /* Line 1806 of yacc.c */ 8046 #line 223 1"parser.yy"8046 #line 2232 "parser.yy" 8047 8047 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8048 8048 break; … … 8051 8051 8052 8052 /* Line 1806 of yacc.c */ 8053 #line 223 4"parser.yy"8053 #line 2235 "parser.yy" 8054 8054 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8055 8055 break; … … 8058 8058 8059 8059 /* Line 1806 of yacc.c */ 8060 #line 223 6"parser.yy"8060 #line 2237 "parser.yy" 8061 8061 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8062 8062 break; … … 8065 8065 8066 8066 /* Line 1806 of yacc.c */ 8067 #line 224 1"parser.yy"8067 #line 2242 "parser.yy" 8068 8068 { 8069 8069 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8075 8075 8076 8076 /* Line 1806 of yacc.c */ 8077 #line 224 6"parser.yy"8077 #line 2247 "parser.yy" 8078 8078 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8079 8079 break; … … 8082 8082 8083 8083 /* Line 1806 of yacc.c */ 8084 #line 225 1"parser.yy"8084 #line 2252 "parser.yy" 8085 8085 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8086 8086 break; … … 8089 8089 8090 8090 /* Line 1806 of yacc.c */ 8091 #line 225 3"parser.yy"8091 #line 2254 "parser.yy" 8092 8092 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8093 8093 break; … … 8096 8096 8097 8097 /* Line 1806 of yacc.c */ 8098 #line 225 5"parser.yy"8098 #line 2256 "parser.yy" 8099 8099 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8100 8100 break; … … 8103 8103 8104 8104 /* Line 1806 of yacc.c */ 8105 #line 226 0"parser.yy"8105 #line 2261 "parser.yy" 8106 8106 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8107 8107 break; … … 8110 8110 8111 8111 /* Line 1806 of yacc.c */ 8112 #line 226 2"parser.yy"8112 #line 2263 "parser.yy" 8113 8113 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8114 8114 break; … … 8117 8117 8118 8118 /* Line 1806 of yacc.c */ 8119 #line 226 4"parser.yy"8119 #line 2265 "parser.yy" 8120 8120 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8121 8121 break; … … 8124 8124 8125 8125 /* Line 1806 of yacc.c */ 8126 #line 226 6"parser.yy"8126 #line 2267 "parser.yy" 8127 8127 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8128 8128 break; … … 8131 8131 8132 8132 /* Line 1806 of yacc.c */ 8133 #line 227 1"parser.yy"8133 #line 2272 "parser.yy" 8134 8134 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8135 8135 break; … … 8138 8138 8139 8139 /* Line 1806 of yacc.c */ 8140 #line 227 3"parser.yy"8140 #line 2274 "parser.yy" 8141 8141 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8142 8142 break; … … 8145 8145 8146 8146 /* Line 1806 of yacc.c */ 8147 #line 228 2"parser.yy"8147 #line 2283 "parser.yy" 8148 8148 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8149 8149 break; … … 8152 8152 8153 8153 /* Line 1806 of yacc.c */ 8154 #line 228 5"parser.yy"8154 #line 2286 "parser.yy" 8155 8155 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8156 8156 break; … … 8159 8159 8160 8160 /* Line 1806 of yacc.c */ 8161 #line 229 0"parser.yy"8161 #line 2291 "parser.yy" 8162 8162 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8163 8163 break; … … 8166 8166 8167 8167 /* Line 1806 of yacc.c */ 8168 #line 229 2"parser.yy"8168 #line 2293 "parser.yy" 8169 8169 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8170 8170 break; … … 8173 8173 8174 8174 /* Line 1806 of yacc.c */ 8175 #line 229 4"parser.yy"8175 #line 2295 "parser.yy" 8176 8176 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8177 8177 break; … … 8180 8180 8181 8181 /* Line 1806 of yacc.c */ 8182 #line 2 299"parser.yy"8182 #line 2300 "parser.yy" 8183 8183 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8184 8184 break; … … 8187 8187 8188 8188 /* Line 1806 of yacc.c */ 8189 #line 230 1"parser.yy"8189 #line 2302 "parser.yy" 8190 8190 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8191 8191 break; … … 8194 8194 8195 8195 /* Line 1806 of yacc.c */ 8196 #line 230 3"parser.yy"8196 #line 2304 "parser.yy" 8197 8197 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8198 8198 break; … … 8201 8201 8202 8202 /* Line 1806 of yacc.c */ 8203 #line 230 8"parser.yy"8203 #line 2309 "parser.yy" 8204 8204 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8205 8205 break; … … 8208 8208 8209 8209 /* Line 1806 of yacc.c */ 8210 #line 231 0"parser.yy"8210 #line 2311 "parser.yy" 8211 8211 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8212 8212 break; … … 8215 8215 8216 8216 /* Line 1806 of yacc.c */ 8217 #line 231 2"parser.yy"8217 #line 2313 "parser.yy" 8218 8218 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8219 8219 break; … … 8222 8222 8223 8223 /* Line 1806 of yacc.c */ 8224 #line 232 7"parser.yy"8224 #line 2328 "parser.yy" 8225 8225 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); } 8226 8226 break; … … 8229 8229 8230 8230 /* Line 1806 of yacc.c */ 8231 #line 23 29"parser.yy"8231 #line 2330 "parser.yy" 8232 8232 { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); } 8233 8233 break; … … 8236 8236 8237 8237 /* Line 1806 of yacc.c */ 8238 #line 233 1"parser.yy"8238 #line 2332 "parser.yy" 8239 8239 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8240 8240 break; … … 8243 8243 8244 8244 /* Line 1806 of yacc.c */ 8245 #line 233 6"parser.yy"8245 #line 2337 "parser.yy" 8246 8246 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8247 8247 break; … … 8250 8250 8251 8251 /* Line 1806 of yacc.c */ 8252 #line 233 8"parser.yy"8252 #line 2339 "parser.yy" 8253 8253 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8254 8254 break; … … 8257 8257 8258 8258 /* Line 1806 of yacc.c */ 8259 #line 234 0"parser.yy"8259 #line 2341 "parser.yy" 8260 8260 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8261 8261 break; … … 8264 8264 8265 8265 /* Line 1806 of yacc.c */ 8266 #line 234 5"parser.yy"8266 #line 2346 "parser.yy" 8267 8267 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8268 8268 break; … … 8271 8271 8272 8272 /* Line 1806 of yacc.c */ 8273 #line 234 7"parser.yy"8273 #line 2348 "parser.yy" 8274 8274 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8275 8275 break; … … 8278 8278 8279 8279 /* Line 1806 of yacc.c */ 8280 #line 23 49"parser.yy"8280 #line 2350 "parser.yy" 8281 8281 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8282 8282 break; … … 8285 8285 8286 8286 /* Line 1806 of yacc.c */ 8287 #line 236 4"parser.yy"8287 #line 2365 "parser.yy" 8288 8288 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8289 8289 break; … … 8292 8292 8293 8293 /* Line 1806 of yacc.c */ 8294 #line 236 7"parser.yy"8294 #line 2368 "parser.yy" 8295 8295 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8296 8296 break; … … 8299 8299 8300 8300 /* Line 1806 of yacc.c */ 8301 #line 23 69"parser.yy"8301 #line 2370 "parser.yy" 8302 8302 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8303 8303 break; … … 8306 8306 8307 8307 /* Line 1806 of yacc.c */ 8308 #line 237 5"parser.yy"8308 #line 2376 "parser.yy" 8309 8309 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8310 8310 break; … … 8313 8313 8314 8314 /* Line 1806 of yacc.c */ 8315 #line 238 0"parser.yy"8315 #line 2381 "parser.yy" 8316 8316 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8317 8317 break; … … 8320 8320 8321 8321 /* Line 1806 of yacc.c */ 8322 #line 238 2"parser.yy"8322 #line 2383 "parser.yy" 8323 8323 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8324 8324 break; … … 8327 8327 8328 8328 /* Line 1806 of yacc.c */ 8329 #line 238 4"parser.yy"8329 #line 2385 "parser.yy" 8330 8330 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8331 8331 break; … … 8334 8334 8335 8335 /* Line 1806 of yacc.c */ 8336 #line 23 89"parser.yy"8336 #line 2390 "parser.yy" 8337 8337 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8338 8338 break; … … 8341 8341 8342 8342 /* Line 1806 of yacc.c */ 8343 #line 239 1"parser.yy"8343 #line 2392 "parser.yy" 8344 8344 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8345 8345 break; … … 8348 8348 8349 8349 /* Line 1806 of yacc.c */ 8350 #line 239 3"parser.yy"8350 #line 2394 "parser.yy" 8351 8351 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8352 8352 break; … … 8355 8355 8356 8356 /* Line 1806 of yacc.c */ 8357 #line 239 5"parser.yy"8357 #line 2396 "parser.yy" 8358 8358 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8359 8359 break; … … 8362 8362 8363 8363 /* Line 1806 of yacc.c */ 8364 #line 240 0"parser.yy"8364 #line 2401 "parser.yy" 8365 8365 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8366 8366 break; … … 8369 8369 8370 8370 /* Line 1806 of yacc.c */ 8371 #line 240 2"parser.yy"8371 #line 2403 "parser.yy" 8372 8372 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8373 8373 break; … … 8376 8376 8377 8377 /* Line 1806 of yacc.c */ 8378 #line 240 4"parser.yy"8378 #line 2405 "parser.yy" 8379 8379 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8380 8380 break; … … 8383 8383 8384 8384 /* Line 1806 of yacc.c */ 8385 #line 241 4"parser.yy"8385 #line 2415 "parser.yy" 8386 8386 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8387 8387 break; … … 8390 8390 8391 8391 /* Line 1806 of yacc.c */ 8392 #line 241 7"parser.yy"8392 #line 2418 "parser.yy" 8393 8393 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8394 8394 break; … … 8397 8397 8398 8398 /* Line 1806 of yacc.c */ 8399 #line 24 19"parser.yy"8399 #line 2420 "parser.yy" 8400 8400 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8401 8401 break; … … 8404 8404 8405 8405 /* Line 1806 of yacc.c */ 8406 #line 242 4"parser.yy"8406 #line 2425 "parser.yy" 8407 8407 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8408 8408 break; … … 8411 8411 8412 8412 /* Line 1806 of yacc.c */ 8413 #line 242 6"parser.yy"8413 #line 2427 "parser.yy" 8414 8414 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8415 8415 break; … … 8418 8418 8419 8419 /* Line 1806 of yacc.c */ 8420 #line 242 8"parser.yy"8420 #line 2429 "parser.yy" 8421 8421 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8422 8422 break; … … 8425 8425 8426 8426 /* Line 1806 of yacc.c */ 8427 #line 243 3"parser.yy"8427 #line 2434 "parser.yy" 8428 8428 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8429 8429 break; … … 8432 8432 8433 8433 /* Line 1806 of yacc.c */ 8434 #line 243 5"parser.yy"8434 #line 2436 "parser.yy" 8435 8435 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8436 8436 break; … … 8439 8439 8440 8440 /* Line 1806 of yacc.c */ 8441 #line 243 7"parser.yy"8441 #line 2438 "parser.yy" 8442 8442 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8443 8443 break; … … 8446 8446 8447 8447 /* Line 1806 of yacc.c */ 8448 #line 24 39"parser.yy"8448 #line 2440 "parser.yy" 8449 8449 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8450 8450 break; … … 8453 8453 8454 8454 /* Line 1806 of yacc.c */ 8455 #line 244 4"parser.yy"8455 #line 2445 "parser.yy" 8456 8456 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8457 8457 break; … … 8460 8460 8461 8461 /* Line 1806 of yacc.c */ 8462 #line 244 6"parser.yy"8462 #line 2447 "parser.yy" 8463 8463 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8464 8464 break; … … 8467 8467 8468 8468 /* Line 1806 of yacc.c */ 8469 #line 244 8"parser.yy"8469 #line 2449 "parser.yy" 8470 8470 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8471 8471 break; … … 8474 8474 8475 8475 /* Line 1806 of yacc.c */ 8476 #line 24 79"parser.yy"8476 #line 2480 "parser.yy" 8477 8477 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8478 8478 break; … … 8481 8481 8482 8482 /* Line 1806 of yacc.c */ 8483 #line 248 2"parser.yy"8483 #line 2483 "parser.yy" 8484 8484 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8485 8485 break; … … 8488 8488 8489 8489 /* Line 1806 of yacc.c */ 8490 #line 248 4"parser.yy"8490 #line 2485 "parser.yy" 8491 8491 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8492 8492 break; … … 8495 8495 8496 8496 /* Line 1806 of yacc.c */ 8497 #line 24 89"parser.yy"8497 #line 2490 "parser.yy" 8498 8498 { 8499 8499 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8505 8505 8506 8506 /* Line 1806 of yacc.c */ 8507 #line 249 4"parser.yy"8507 #line 2495 "parser.yy" 8508 8508 { 8509 8509 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8515 8515 8516 8516 /* Line 1806 of yacc.c */ 8517 #line 250 2"parser.yy"8517 #line 2503 "parser.yy" 8518 8518 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8519 8519 break; … … 8522 8522 8523 8523 /* Line 1806 of yacc.c */ 8524 #line 250 4"parser.yy"8524 #line 2505 "parser.yy" 8525 8525 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8526 8526 break; … … 8529 8529 8530 8530 /* Line 1806 of yacc.c */ 8531 #line 250 6"parser.yy"8531 #line 2507 "parser.yy" 8532 8532 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8533 8533 break; … … 8536 8536 8537 8537 /* Line 1806 of yacc.c */ 8538 #line 251 1"parser.yy"8538 #line 2512 "parser.yy" 8539 8539 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8540 8540 break; … … 8543 8543 8544 8544 /* Line 1806 of yacc.c */ 8545 #line 251 3"parser.yy"8545 #line 2514 "parser.yy" 8546 8546 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8547 8547 break; … … 8550 8550 8551 8551 /* Line 1806 of yacc.c */ 8552 #line 251 8"parser.yy"8552 #line 2519 "parser.yy" 8553 8553 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8554 8554 break; … … 8557 8557 8558 8558 /* Line 1806 of yacc.c */ 8559 #line 252 0"parser.yy"8559 #line 2521 "parser.yy" 8560 8560 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8561 8561 break; … … 8564 8564 8565 8565 /* Line 1806 of yacc.c */ 8566 #line 253 5"parser.yy"8566 #line 2536 "parser.yy" 8567 8567 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8568 8568 break; … … 8571 8571 8572 8572 /* Line 1806 of yacc.c */ 8573 #line 253 7"parser.yy"8573 #line 2538 "parser.yy" 8574 8574 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8575 8575 break; … … 8578 8578 8579 8579 /* Line 1806 of yacc.c */ 8580 #line 254 2"parser.yy"8580 #line 2543 "parser.yy" 8581 8581 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8582 8582 break; … … 8585 8585 8586 8586 /* Line 1806 of yacc.c */ 8587 #line 254 4"parser.yy"8587 #line 2545 "parser.yy" 8588 8588 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8589 8589 break; … … 8592 8592 8593 8593 /* Line 1806 of yacc.c */ 8594 #line 254 6"parser.yy"8594 #line 2547 "parser.yy" 8595 8595 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8596 8596 break; … … 8599 8599 8600 8600 /* Line 1806 of yacc.c */ 8601 #line 254 8"parser.yy"8601 #line 2549 "parser.yy" 8602 8602 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8603 8603 break; … … 8606 8606 8607 8607 /* Line 1806 of yacc.c */ 8608 #line 255 0"parser.yy"8608 #line 2551 "parser.yy" 8609 8609 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8610 8610 break; … … 8613 8613 8614 8614 /* Line 1806 of yacc.c */ 8615 #line 255 6"parser.yy"8615 #line 2557 "parser.yy" 8616 8616 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8617 8617 break; … … 8620 8620 8621 8621 /* Line 1806 of yacc.c */ 8622 #line 255 8"parser.yy"8622 #line 2559 "parser.yy" 8623 8623 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8624 8624 break; … … 8627 8627 8628 8628 /* Line 1806 of yacc.c */ 8629 #line 256 0"parser.yy"8629 #line 2561 "parser.yy" 8630 8630 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8631 8631 break; … … 8634 8634 8635 8635 /* Line 1806 of yacc.c */ 8636 #line 256 5"parser.yy"8636 #line 2566 "parser.yy" 8637 8637 { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); } 8638 8638 break; … … 8641 8641 8642 8642 /* Line 1806 of yacc.c */ 8643 #line 256 7"parser.yy"8643 #line 2568 "parser.yy" 8644 8644 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8645 8645 break; … … 8648 8648 8649 8649 /* Line 1806 of yacc.c */ 8650 #line 25 69"parser.yy"8650 #line 2570 "parser.yy" 8651 8651 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8652 8652 break; … … 8655 8655 8656 8656 /* Line 1806 of yacc.c */ 8657 #line 257 5"parser.yy"8657 #line 2576 "parser.yy" 8658 8658 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8659 8659 break; … … 8662 8662 8663 8663 /* Line 1806 of yacc.c */ 8664 #line 257 7"parser.yy"8664 #line 2578 "parser.yy" 8665 8665 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); } 8666 8666 break; … … 8669 8669 8670 8670 /* Line 1806 of yacc.c */ 8671 #line 258 3"parser.yy"8671 #line 2584 "parser.yy" 8672 8672 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); } 8673 8673 break; … … 8676 8676 8677 8677 /* Line 1806 of yacc.c */ 8678 #line 258 5"parser.yy"8678 #line 2586 "parser.yy" 8679 8679 { (yyval.decl) = DeclarationNode::newVarArray( 0 ); } 8680 8680 break; … … 8683 8683 8684 8684 /* Line 1806 of yacc.c */ 8685 #line 258 7"parser.yy"8685 #line 2588 "parser.yy" 8686 8686 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); } 8687 8687 break; … … 8690 8690 8691 8691 /* Line 1806 of yacc.c */ 8692 #line 25 89"parser.yy"8692 #line 2590 "parser.yy" 8693 8693 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); } 8694 8694 break; … … 8697 8697 8698 8698 /* Line 1806 of yacc.c */ 8699 #line 260 4"parser.yy"8699 #line 2605 "parser.yy" 8700 8700 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8701 8701 break; … … 8704 8704 8705 8705 /* Line 1806 of yacc.c */ 8706 #line 260 6"parser.yy"8706 #line 2607 "parser.yy" 8707 8707 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8708 8708 break; … … 8711 8711 8712 8712 /* Line 1806 of yacc.c */ 8713 #line 261 1"parser.yy"8713 #line 2612 "parser.yy" 8714 8714 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8715 8715 break; … … 8718 8718 8719 8719 /* Line 1806 of yacc.c */ 8720 #line 261 3"parser.yy"8720 #line 2614 "parser.yy" 8721 8721 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8722 8722 break; … … 8725 8725 8726 8726 /* Line 1806 of yacc.c */ 8727 #line 261 5"parser.yy"8727 #line 2616 "parser.yy" 8728 8728 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8729 8729 break; … … 8732 8732 8733 8733 /* Line 1806 of yacc.c */ 8734 #line 261 7"parser.yy"8734 #line 2618 "parser.yy" 8735 8735 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8736 8736 break; … … 8739 8739 8740 8740 /* Line 1806 of yacc.c */ 8741 #line 26 19"parser.yy"8741 #line 2620 "parser.yy" 8742 8742 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8743 8743 break; … … 8746 8746 8747 8747 /* Line 1806 of yacc.c */ 8748 #line 262 5"parser.yy"8748 #line 2626 "parser.yy" 8749 8749 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8750 8750 break; … … 8753 8753 8754 8754 /* Line 1806 of yacc.c */ 8755 #line 262 7"parser.yy"8755 #line 2628 "parser.yy" 8756 8756 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8757 8757 break; … … 8760 8760 8761 8761 /* Line 1806 of yacc.c */ 8762 #line 26 29"parser.yy"8762 #line 2630 "parser.yy" 8763 8763 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8764 8764 break; … … 8767 8767 8768 8768 /* Line 1806 of yacc.c */ 8769 #line 263 4"parser.yy"8769 #line 2635 "parser.yy" 8770 8770 { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); } 8771 8771 break; … … 8774 8774 8775 8775 /* Line 1806 of yacc.c */ 8776 #line 263 6"parser.yy"8776 #line 2637 "parser.yy" 8777 8777 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8778 8778 break; … … 8781 8781 8782 8782 /* Line 1806 of yacc.c */ 8783 #line 263 8"parser.yy"8783 #line 2639 "parser.yy" 8784 8784 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8785 8785 break; … … 8788 8788 8789 8789 /* Line 1806 of yacc.c */ 8790 #line 264 5"parser.yy"8790 #line 2646 "parser.yy" 8791 8791 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8792 8792 break; … … 8795 8795 8796 8796 /* Line 1806 of yacc.c */ 8797 #line 265 6"parser.yy"8797 #line 2657 "parser.yy" 8798 8798 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8799 8799 break; … … 8802 8802 8803 8803 /* Line 1806 of yacc.c */ 8804 #line 26 59"parser.yy"8804 #line 2660 "parser.yy" 8805 8805 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 8806 8806 break; … … 8809 8809 8810 8810 /* Line 1806 of yacc.c */ 8811 #line 266 1"parser.yy"8811 #line 2662 "parser.yy" 8812 8812 { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); } 8813 8813 break; … … 8816 8816 8817 8817 /* Line 1806 of yacc.c */ 8818 #line 266 4"parser.yy"8818 #line 2665 "parser.yy" 8819 8819 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 8820 8820 break; … … 8823 8823 8824 8824 /* Line 1806 of yacc.c */ 8825 #line 266 6"parser.yy"8825 #line 2667 "parser.yy" 8826 8826 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); } 8827 8827 break; … … 8830 8830 8831 8831 /* Line 1806 of yacc.c */ 8832 #line 266 8"parser.yy"8832 #line 2669 "parser.yy" 8833 8833 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); } 8834 8834 break; … … 8837 8837 8838 8838 /* Line 1806 of yacc.c */ 8839 #line 268 2"parser.yy"8839 #line 2683 "parser.yy" 8840 8840 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8841 8841 break; … … 8844 8844 8845 8845 /* Line 1806 of yacc.c */ 8846 #line 268 4"parser.yy"8846 #line 2685 "parser.yy" 8847 8847 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8848 8848 break; … … 8851 8851 8852 8852 /* Line 1806 of yacc.c */ 8853 #line 26 89"parser.yy"8853 #line 2690 "parser.yy" 8854 8854 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8855 8855 break; … … 8858 8858 8859 8859 /* Line 1806 of yacc.c */ 8860 #line 269 1"parser.yy"8860 #line 2692 "parser.yy" 8861 8861 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8862 8862 break; … … 8865 8865 8866 8866 /* Line 1806 of yacc.c */ 8867 #line 269 3"parser.yy"8867 #line 2694 "parser.yy" 8868 8868 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8869 8869 break; … … 8872 8872 8873 8873 /* Line 1806 of yacc.c */ 8874 #line 269 5"parser.yy"8874 #line 2696 "parser.yy" 8875 8875 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8876 8876 break; … … 8879 8879 8880 8880 /* Line 1806 of yacc.c */ 8881 #line 269 7"parser.yy"8881 #line 2698 "parser.yy" 8882 8882 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8883 8883 break; … … 8886 8886 8887 8887 /* Line 1806 of yacc.c */ 8888 #line 270 3"parser.yy"8888 #line 2704 "parser.yy" 8889 8889 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8890 8890 break; … … 8893 8893 8894 8894 /* Line 1806 of yacc.c */ 8895 #line 270 5"parser.yy"8895 #line 2706 "parser.yy" 8896 8896 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8897 8897 break; … … 8900 8900 8901 8901 /* Line 1806 of yacc.c */ 8902 #line 270 7"parser.yy"8902 #line 2708 "parser.yy" 8903 8903 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8904 8904 break; … … 8907 8907 8908 8908 /* Line 1806 of yacc.c */ 8909 #line 271 2"parser.yy"8909 #line 2713 "parser.yy" 8910 8910 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8911 8911 break; … … 8914 8914 8915 8915 /* Line 1806 of yacc.c */ 8916 #line 271 4"parser.yy"8916 #line 2715 "parser.yy" 8917 8917 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8918 8918 break; … … 8921 8921 8922 8922 /* Line 1806 of yacc.c */ 8923 #line 272 4"parser.yy"8923 #line 2725 "parser.yy" 8924 8924 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 8925 8925 break; … … 8928 8928 8929 8929 /* Line 1806 of yacc.c */ 8930 #line 273 4"parser.yy"8930 #line 2735 "parser.yy" 8931 8931 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8932 8932 break; … … 8935 8935 8936 8936 /* Line 1806 of yacc.c */ 8937 #line 273 6"parser.yy"8937 #line 2737 "parser.yy" 8938 8938 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8939 8939 break; … … 8942 8942 8943 8943 /* Line 1806 of yacc.c */ 8944 #line 273 8"parser.yy"8944 #line 2739 "parser.yy" 8945 8945 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8946 8946 break; … … 8949 8949 8950 8950 /* Line 1806 of yacc.c */ 8951 #line 274 0"parser.yy"8951 #line 2741 "parser.yy" 8952 8952 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8953 8953 break; … … 8956 8956 8957 8957 /* Line 1806 of yacc.c */ 8958 #line 274 2"parser.yy"8958 #line 2743 "parser.yy" 8959 8959 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8960 8960 break; … … 8963 8963 8964 8964 /* Line 1806 of yacc.c */ 8965 #line 274 4"parser.yy"8965 #line 2745 "parser.yy" 8966 8966 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8967 8967 break; … … 8970 8970 8971 8971 /* Line 1806 of yacc.c */ 8972 #line 275 1"parser.yy"8972 #line 2752 "parser.yy" 8973 8973 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8974 8974 break; … … 8977 8977 8978 8978 /* Line 1806 of yacc.c */ 8979 #line 275 3"parser.yy"8979 #line 2754 "parser.yy" 8980 8980 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8981 8981 break; … … 8984 8984 8985 8985 /* Line 1806 of yacc.c */ 8986 #line 275 5"parser.yy"8986 #line 2756 "parser.yy" 8987 8987 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8988 8988 break; … … 8991 8991 8992 8992 /* Line 1806 of yacc.c */ 8993 #line 275 7"parser.yy"8993 #line 2758 "parser.yy" 8994 8994 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 8995 8995 break; … … 8998 8998 8999 8999 /* Line 1806 of yacc.c */ 9000 #line 27 59"parser.yy"9000 #line 2760 "parser.yy" 9001 9001 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9002 9002 break; … … 9005 9005 9006 9006 /* Line 1806 of yacc.c */ 9007 #line 276 2"parser.yy"9007 #line 2763 "parser.yy" 9008 9008 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9009 9009 break; … … 9012 9012 9013 9013 /* Line 1806 of yacc.c */ 9014 #line 276 4"parser.yy"9014 #line 2765 "parser.yy" 9015 9015 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9016 9016 break; … … 9019 9019 9020 9020 /* Line 1806 of yacc.c */ 9021 #line 276 6"parser.yy"9021 #line 2767 "parser.yy" 9022 9022 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9023 9023 break; … … 9026 9026 9027 9027 /* Line 1806 of yacc.c */ 9028 #line 276 8"parser.yy"9028 #line 2769 "parser.yy" 9029 9029 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 9030 9030 break; … … 9033 9033 9034 9034 /* Line 1806 of yacc.c */ 9035 #line 277 0"parser.yy"9035 #line 2771 "parser.yy" 9036 9036 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9037 9037 break; … … 9040 9040 9041 9041 /* Line 1806 of yacc.c */ 9042 #line 277 5"parser.yy"9042 #line 2776 "parser.yy" 9043 9043 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 9044 9044 break; … … 9047 9047 9048 9048 /* Line 1806 of yacc.c */ 9049 #line 277 7"parser.yy"9049 #line 2778 "parser.yy" 9050 9050 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 9051 9051 break; … … 9054 9054 9055 9055 /* Line 1806 of yacc.c */ 9056 #line 278 2"parser.yy"9056 #line 2783 "parser.yy" 9057 9057 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); } 9058 9058 break; … … 9061 9061 9062 9062 /* Line 1806 of yacc.c */ 9063 #line 278 4"parser.yy"9063 #line 2785 "parser.yy" 9064 9064 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); } 9065 9065 break; … … 9068 9068 9069 9069 /* Line 1806 of yacc.c */ 9070 #line 281 1"parser.yy"9070 #line 2812 "parser.yy" 9071 9071 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 9072 9072 break; … … 9075 9075 9076 9076 /* Line 1806 of yacc.c */ 9077 #line 282 2"parser.yy"9077 #line 2823 "parser.yy" 9078 9078 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9079 9079 break; … … 9082 9082 9083 9083 /* Line 1806 of yacc.c */ 9084 #line 282 4"parser.yy"9084 #line 2825 "parser.yy" 9085 9085 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9086 9086 break; … … 9089 9089 9090 9090 /* Line 1806 of yacc.c */ 9091 #line 282 6"parser.yy"9091 #line 2827 "parser.yy" 9092 9092 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9093 9093 break; … … 9096 9096 9097 9097 /* Line 1806 of yacc.c */ 9098 #line 282 8"parser.yy"9098 #line 2829 "parser.yy" 9099 9099 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9100 9100 break; … … 9103 9103 9104 9104 /* Line 1806 of yacc.c */ 9105 #line 283 0"parser.yy"9105 #line 2831 "parser.yy" 9106 9106 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9107 9107 break; … … 9110 9110 9111 9111 /* Line 1806 of yacc.c */ 9112 #line 283 2"parser.yy"9112 #line 2833 "parser.yy" 9113 9113 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9114 9114 break; … … 9117 9117 9118 9118 /* Line 1806 of yacc.c */ 9119 #line 28 39"parser.yy"9119 #line 2840 "parser.yy" 9120 9120 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 9121 9121 break; … … 9124 9124 9125 9125 /* Line 1806 of yacc.c */ 9126 #line 284 1"parser.yy"9126 #line 2842 "parser.yy" 9127 9127 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 9128 9128 break; … … 9131 9131 9132 9132 /* Line 1806 of yacc.c */ 9133 #line 284 3"parser.yy"9133 #line 2844 "parser.yy" 9134 9134 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9135 9135 break; … … 9138 9138 9139 9139 /* Line 1806 of yacc.c */ 9140 #line 284 5"parser.yy"9140 #line 2846 "parser.yy" 9141 9141 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 9142 9142 break; … … 9145 9145 9146 9146 /* Line 1806 of yacc.c */ 9147 #line 284 7"parser.yy"9147 #line 2848 "parser.yy" 9148 9148 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 9149 9149 break; … … 9152 9152 9153 9153 /* Line 1806 of yacc.c */ 9154 #line 28 49"parser.yy"9154 #line 2850 "parser.yy" 9155 9155 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9156 9156 break; … … 9159 9159 9160 9160 /* Line 1806 of yacc.c */ 9161 #line 285 4"parser.yy"9161 #line 2855 "parser.yy" 9162 9162 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 9163 9163 break; … … 9166 9166 9167 9167 /* Line 1806 of yacc.c */ 9168 #line 286 1"parser.yy"9168 #line 2862 "parser.yy" 9169 9169 { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); } 9170 9170 break; … … 9173 9173 9174 9174 /* Line 1806 of yacc.c */ 9175 #line 286 3"parser.yy"9175 #line 2864 "parser.yy" 9176 9176 { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); } 9177 9177 break; … … 9180 9180 9181 9181 /* Line 1806 of yacc.c */ 9182 #line 288 7"parser.yy"9182 #line 2888 "parser.yy" 9183 9183 { (yyval.en) = nullptr; } 9184 9184 break; … … 9187 9187 9188 9188 /* Line 1806 of yacc.c */ 9189 #line 28 89"parser.yy"9189 #line 2890 "parser.yy" 9190 9190 { (yyval.en) = (yyvsp[(2) - (2)].en); } 9191 9191 break; … … 9425 9425 9426 9426 /* Line 2067 of yacc.c */ 9427 #line 289 2"parser.yy"9427 #line 2893 "parser.yy" 9428 9428 9429 9429 // ----end of grammar---- -
src/Parser/parser.yy
rc5a8c5b rc7800bfc 10 10 // Created On : Sat Sep 1 20:22:55 2001 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Dec 13 14:14:52 201613 // Update Count : 20 8112 // Last Modified On : Wed Dec 14 21:28:22 2016 13 // Update Count : 2090 14 14 // 15 15 … … 775 775 // therefore, are removed from the grammar even though C allows it. The change also applies to choose 776 776 // statement. 777 $$ = $7 != 0? new StatementNode( build_compound( (StatementNode *)((new StatementNode( $7 ))->set_last( sw )) ) ) : sw;777 $$ = $7 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( $7 ))->set_last( sw )) ) ) : sw; 778 778 } 779 779 | CHOOSE '(' comma_expression ')' case_clause // CFA … … 782 782 { 783 783 StatementNode *sw = new StatementNode( build_switch( $3, $8 ) ); 784 $$ = $7 != 0? new StatementNode( build_compound( (StatementNode *)((new StatementNode( $7 ))->set_last( sw )) ) ) : sw;784 $$ = $7 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( $7 ))->set_last( sw )) ) ) : sw; 785 785 } 786 786 ; … … 1014 1014 { $$ = new ExpressionNode( $1 ); } 1015 1015 | asm_clobbers_list_opt ',' string_literal 1016 // set_last return ParseNode * 1016 1017 { $$ = (ExpressionNode *)$1->set_last( new ExpressionNode( $3 ) ); } 1017 1018 ; … … 1535 1536 { $$ = nullptr; } 1536 1537 | field_declaration_list field_declaration 1537 { $$ = $1 != 0? $1->appendList( $2 ) : $2; }1538 { $$ = $1 ? $1->appendList( $2 ) : $2; } 1538 1539 ; 1539 1540 … … 1713 1714 { 1714 1715 typedefTable.addToEnclosingScope( TypedefTable::ID ); 1715 $$ = $2->addType( $1 )->addInitializer( new InitializerNode( $3 ));1716 $$ = $2->addType( $1 )->addInitializer( $3 ? new InitializerNode( $3 ) : nullptr ); 1716 1717 } 1717 1718 | declaration_specifier type_parameter_redeclarator assignment_opt 1718 1719 { 1719 1720 typedefTable.addToEnclosingScope( TypedefTable::ID ); 1720 $$ = $2->addType( $1 )->addInitializer( new InitializerNode( $3 ));1721 $$ = $2->addType( $1 )->addInitializer( $3 ? new InitializerNode( $3 ) : nullptr ); 1721 1722 } 1722 1723 ; … … 1901 1902 { $$ = nullptr; } 1902 1903 | assertion_list_opt assertion 1903 { $$ = $1 != 0? $1->appendList( $2 ) : $2; }1904 { $$ = $1 ? $1->appendList( $2 ) : $2; } 1904 1905 ; 1905 1906 … … 2022 2023 {} // empty input file 2023 2024 | external_definition_list 2024 { parseTree = parseTree != nullptr? parseTree->appendList( $1 ) : $1; }2025 { parseTree = parseTree ? parseTree->appendList( $1 ) : $1; } 2025 2026 ; 2026 2027 … … 2028 2029 external_definition 2029 2030 | external_definition_list push external_definition 2030 { $$ = $1 != nullptr? $1->appendList( $3 ) : $3; }2031 { $$ = $1 ? $1->appendList( $3 ) : $3; } 2031 2032 ; 2032 2033
Note: See TracChangeset
for help on using the changeset viewer.