/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 282, 282, 311, 370, 371, 481, 485, 488, 489,
- 490, 539, 541, 546, 551, 556, 558, 563, 565, 570,
- 572, 577, 579, 581, 583, 585, 589, 593, 606, 608,
- 610, 612, 614, 620, 622, 627, 632, 637, 639, 641,
- 646, 647, 651, 652, 663, 667, 668, 670, 675, 676,
- 678, 681, 693, 704, 723, 725, 730, 731, 732, 733,
- 734, 735, 736, 737, 750, 754, 755, 756, 757, 761,
- 762, 763, 764, 765, 766, 767, 771, 773, 778, 780,
- 782, 784, 786, 816, 818, 823, 825, 827, 829, 831,
- 860, 862, 864, 869, 871, 876, 878, 882, 884, 886,
- 888, 893, 896, 899, 902, 967, 969, 974, 976, 978,
- 980, 982, 1013, 1017, 1018, 1019, 1023, 1024, 1025, 1029,
- 1030, 1031, 1032, 1036, 1039, 1042, 1045, 1048, 1053, 1054,
- 1056, 1058, 1060, 1062, 1067, 1071, 1074, 1077, 1080, 1083,
- 1088, 1089, 1091, 1096, 1100, 1102, 1107, 1109, 1114, 1116,
- 1121, 1126, 1128, 1133, 1135, 1137, 1139, 1144, 1146, 1148,
- 1150, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163,
- 1164, 1165, 1167, 1168, 1170, 1174, 1177, 1178, 1179, 1180,
- 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190,
- 1192, 1193, 1197, 1198, 1199, 1203, 1207, 1208, 1209, 1213,
- 1214, 1215, 1216, 1217, 1221, 1222, 1234, 1235, 1239, 1240,
- 1241, 1242, 1243, 1244, 1245, 1246, 1250, 1254, 1255, 1259,
- 1267, 1268, 1272, 1273, 1274, 1278, 1279, 1283, 1284, 1285,
- 1286, 1287, 1288, 1328, 1329, 1333, 1341, 1342, 1350, 1351,
- 1353, 1354, 1363, 1364, 1368, 1375, 1382, 1388, 1395, 1401,
- 1410, 1417, 1423, 1429, 1435, 1441, 1447, 1458, 1463, 1464,
- 1469, 1470, 1471, 1475, 1479, 1480, 1481, 1482, 1483, 1484,
- 1485, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506,
- 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516,
- 1517, 1518, 1519, 1520, 1521, 1523, 1524, 1525, 1526, 1527,
- 1529, 1530, 1534, 1538, 1542, 1543, 1547, 1549, 1550, 1551,
- 1552, 1553, 1554, 1555, 1556, 1557, 1559, 1560, 1561, 1562,
- 1563, 1564, 1565, 1566, 1593, 1594, 1595, 1596, 1600, 1601,
- 1602, 1603, 1604, 1608, 1609, 1610, 1611, 1613, 1614, 1615,
- 1616, 1619, 1620, 1624, 1625, 1634, 1635, 1636, 1637, 1638,
- 1639, 1640, 1641, 1645, 1646, 1650, 1651, 1652, 1653, 1654,
- 1655, 1656, 1660, 1661, 1662, 1663, 1664, 1668, 1669, 1670,
- 1671, 1672, 1676, 1684, 1685, 1686, 1687, 1688, 1689, 1690,
- 1691, 1692, 1696, 1697, 1698, 1699, 1700, 1702, 1703, 1704,
- 1705, 1709, 1710, 1711, 1713, 1714, 1718, 1719, 1720, 1722,
- 1723, 1727, 1728, 1729, 1731, 1732, 1736, 1737, 1738, 1742,
- 1743, 1744, 1748, 1749, 1750, 1751, 1752, 1754, 1755, 1756,
- 1757, 1759, 1760, 1761, 1762, 1764, 1765, 1766, 1767, 1771,
- 1772, 1773, 1774, 1775, 1777, 1778, 1779, 1780, 1784, 1785,
- 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1798,
- 1799, 1800, 1801, 1805, 1806, 1807, 1811, 1812, 1813, 1814,
- 1816, 1817, 1819, 1820, 1825, 1827, 1832, 1860, 1861, 1862,
- 1863, 1865, 1866, 1867, 1868, 1870, 1871, 1875, 1876, 1885,
- 1886, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1900, 1901,
- 1905, 1909, 1913, 1920, 1921, 1922, 1923, 1924, 1928, 1929,
- 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1990, 1991, 1992,
- 1993, 1994, 2001, 2002, 2003, 2004, 2008, 2009, 2010, 2012,
- 2013, 2017, 2018, 2019, 2021, 2022, 2026, 2027, 2028, 2030,
- 2031, 2035, 2036, 2037, 2041, 2042, 2043, 2047, 2048, 2049,
- 2050, 2051, 2052, 2053, 2054, 2055, 2057, 2058, 2059, 2060,
- 2061, 2062, 2063, 2064, 2066, 2067, 2068, 2069, 2071, 2072,
- 2073, 2074, 2076, 2084, 2088, 2093, 2100, 2101, 2105, 2110,
- 2111, 2115, 2116, 2117, 2118, 2124, 2125, 2126, 2130, 2131,
- 2132, 2133, 2137, 2139, 2143, 2144, 2145, 2146, 2147, 2148,
- 2149, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2163, 2164,
- 2165, 2169, 2170, 2171, 2175, 2179, 2180, 2184, 2185, 2186,
- 2190, 2191, 2193, 2194, 2195, 2196, 2197, 2199, 2200, 2201,
- 2202, 2203, 2205, 2206, 2210, 2211, 2215, 2216, 2217, 2221,
- 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2231, 2232,
- 2234, 2235, 2236, 2237, 2238, 2240, 2241, 2242, 2243, 2247,
- 2248, 2252, 2253, 2257, 2261, 2262, 2263, 2268, 2269, 2273,
- 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283,
- 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293,
- 2294, 2295, 2296, 2297, 2298, 2302, 2303, 2304, 2305, 2306,
- 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316,
- 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2331,
- 2333, 2335, 2337, 2339, 2341, 2343, 2345, 2347, 2349, 2354,
- 2355, 2359, 2365, 2371, 2378, 2388, 2389, 2390, 2391, 2395,
- 2396, 2397, 2399, 2400, 2401, 2403, 2404, 2405, 2409, 2413,
- 2421, 2430, 2439, 2440, 2442, 2443, 2447, 2454, 2461, 2464,
- 2477, 2491, 2494, 2496, 2498, 2503, 2504, 2508, 2509, 2510,
- 2511, 2512, 2513, 2514, 2515, 2519, 2520, 2521, 2522, 2523,
- 2524, 2525, 2526, 2527, 2528, 2532, 2533, 2534, 2535, 2536,
- 2537, 2538, 2539, 2540, 2541, 2545, 2546, 2547, 2548, 2549,
- 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2560, 2561, 2562,
- 2563, 2564, 2565, 2566, 2567, 2568, 2569, 2573, 2574, 2578,
- 2579, 2580, 2581, 2582, 2583, 2584, 2585, 2586, 2588, 2590,
- 2608, 2626, 2627, 2631, 2632, 2633, 2634, 2635, 2636, 2637,
- 2638, 2639, 2657, 2674, 2675, 2676, 2677, 2678, 2679, 2680,
- 2681, 2682, 2683, 2684, 2685, 2686, 2704, 2721, 2722, 2723,
- 2724, 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732, 2733,
- 2751, 2768, 2769, 2773, 2774, 2775, 2776, 2777, 2781, 2782,
- 2789, 2791, 2800, 2809, 2818, 2827, 2828, 2829, 2830, 2834,
- 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2846, 2850,
- 2851, 2852, 2853, 2854, 2859, 2868, 2877, 2886, 2900, 2901,
- 2906, 2910, 2911, 2912, 2913, 2914, 2919, 2928, 2937, 2946,
- 2960, 2961, 3010, 3011, 3012, 3013, 3025, 3026, 3027, 3032,
- 3033, 3034, 3035, 3036, 3040, 3041, 3045, 3046, 3047, 3051,
- 3052, 3056, 3057, 3058, 3059, 3060, 3061, 3062, 3063, 3064,
- 3065, 3066, 3067, 3068, 3069, 3070, 3071, 3075, 3076, 3077,
- 3078, 3079, 3080, 3081, 3082, 3086, 3087, 3088, 3089, 3093,
- 3094, 3095, 3096, 3097, 3101, 3102, 3103, 3104, 3105, 3109,
- 3110, 3112, 3114, 3116, 3121, 3122, 3124, 3126, 3131, 3132,
- 3133, 3134, 3138, 3139, 3140, 3141, 3145, 3146, 3147, 3148,
- 3152, 3153, 3154, 3155, 3159, 3160, 3161, 3162, 3166, 3167,
- 3168, 3185, 3186, 3187, 3188, 3201, 3218, 3219, 3224, 3225,
- 3229, 3230, 3231, 3232, 3235, 3236, 3240, 3241, 3242, 3246,
- 3250, 3254, 3255, 3256, 3257, 3258, 3267, 3276, 3277, 3278,
- 3279, 3283, 3284, 3288, 3289, 3294, 3295, 3296, 3297, 3298,
- 3299, 3318, 3319, 3323, 3324, 3325, 3326, 3327, 3328, 3330,
- 3331, 3332, 3333, 3337, 3338, 3339, 3340, 3341, 3343, 3344,
- 3345, 3349, 3350, 3351, 3352, 3353, 3354, 3358, 3359, 3360,
- 3365, 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374,
- 3375, 3376, 3377, 3381, 3382, 3383, 3384, 3385, 3386, 3387,
- 3391, 3392, 3393, 3397, 3398, 3399, 3403, 3404, 3405, 3406,
- 3408, 3409, 3410, 3412, 3413, 3414, 3415, 3417, 3418, 3419,
- 3423, 3424, 3425, 3426, 3427, 3429, 3430, 3431, 3432, 3433,
- 3437, 3438, 3439, 3440, 3441, 3442, 3443, 3445, 3446, 3447,
- 3448, 3449, 3453, 3454, 3455, 3459, 3460, 3464, 3465, 3466,
- 3467, 3471, 3472, 3473, 3475, 3476, 3477, 3481, 3485, 3486,
- 3488, 3489, 3490, 3494, 3495, 3496, 3497, 3501, 3502, 3506,
- 3507, 3508, 3512, 3513, 3514, 3515, 3516, 3517, 3518, 3522,
- 3523, 3524, 3525, 3529, 3530, 3531, 3532, 3536, 3540, 3544,
- 3546, 3549, 3555, 3556, 3557, 3561, 3562, 3563, 3564, 3565,
- 3566, 3570, 3571, 3575, 3576, 3577, 3579, 3580, 3582, 3583,
- 3584, 3585, 3586, 3588, 3589, 3593, 3594, 3595, 3596, 3600,
- 3601, 3602, 3603, 3605, 3606, 3607, 3608, 3609, 3610, 3611,
- 3614, 3618, 3619, 3623, 3624, 3628, 3629, 3630, 3631, 3632,
- 3633, 3634, 3635, 3639, 3640, 3641, 3642, 3648, 3649, 3651,
- 3652, 3655, 3656, 3659, 3660, 3661, 3662, 3663, 3664, 3668,
- 3669, 3681, 3682, 3685, 3688, 3690, 3691, 3692, 3702, 3704,
- 3705, 3707, 3708, 3709, 3710, 3720, 3721, 3722, 3723, 3724,
- 3725, 3729, 3730, 3739, 3741, 3742, 3744, 3746, 3750, 3751,
- 3752, 3753, 3754, 3758, 3759, 3760, 3762, 3767, 3768, 3769,
- 3773, 3774, 3775, 3779, 3783, 3784, 3785, 3789, 3790, 3794,
- 3795, 3799, 3800, 3801, 3802, 3806, 3810, 3814, 3818
+ 0, 282, 282, 301, 340, 341, 421, 425, 428, 429,
+ 430, 469, 471, 476, 481, 486, 488, 493, 495, 500,
+ 502, 507, 509, 511, 513, 515, 519, 523, 536, 538,
+ 540, 542, 544, 550, 552, 557, 562, 567, 569, 571,
+ 576, 577, 581, 582, 593, 597, 598, 600, 605, 606,
+ 608, 611, 623, 634, 653, 655, 660, 661, 662, 663,
+ 664, 665, 666, 667, 680, 684, 685, 686, 687, 691,
+ 692, 693, 694, 695, 696, 697, 701, 703, 708, 710,
+ 712, 714, 716, 746, 748, 753, 755, 757, 759, 761,
+ 790, 792, 794, 799, 801, 806, 808, 812, 814, 816,
+ 818, 823, 826, 829, 832, 897, 899, 904, 906, 908,
+ 910, 912, 943, 947, 948, 949, 953, 954, 955, 959,
+ 960, 961, 962, 966, 969, 972, 975, 978, 983, 984,
+ 986, 988, 990, 992, 997, 1001, 1004, 1007, 1010, 1013,
+ 1018, 1019, 1021, 1026, 1030, 1032, 1037, 1039, 1044, 1046,
+ 1051, 1056, 1058, 1063, 1065, 1067, 1069, 1074, 1076, 1078,
+ 1080, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093,
+ 1094, 1095, 1097, 1098, 1100, 1104, 1107, 1108, 1109, 1110,
+ 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120,
+ 1122, 1123, 1127, 1128, 1129, 1133, 1137, 1138, 1139, 1143,
+ 1144, 1145, 1146, 1147, 1151, 1152, 1164, 1165, 1169, 1170,
+ 1171, 1172, 1173, 1174, 1175, 1176, 1180, 1184, 1185, 1189,
+ 1197, 1198, 1202, 1203, 1204, 1208, 1209, 1213, 1214, 1215,
+ 1216, 1217, 1218, 1258, 1259, 1263, 1271, 1272, 1280, 1281,
+ 1283, 1284, 1293, 1294, 1298, 1305, 1312, 1318, 1325, 1331,
+ 1340, 1347, 1353, 1359, 1365, 1371, 1377, 1388, 1393, 1394,
+ 1399, 1400, 1401, 1405, 1409, 1410, 1411, 1412, 1413, 1414,
+ 1415, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436,
+ 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446,
+ 1447, 1448, 1449, 1450, 1451, 1453, 1454, 1455, 1456, 1457,
+ 1459, 1460, 1464, 1468, 1472, 1473, 1477, 1479, 1480, 1481,
+ 1482, 1483, 1484, 1485, 1486, 1487, 1489, 1490, 1491, 1492,
+ 1493, 1494, 1495, 1496, 1523, 1524, 1525, 1526, 1530, 1531,
+ 1532, 1533, 1534, 1538, 1539, 1540, 1541, 1543, 1544, 1545,
+ 1546, 1549, 1550, 1554, 1555, 1564, 1565, 1566, 1567, 1568,
+ 1569, 1570, 1571, 1575, 1576, 1580, 1581, 1582, 1583, 1584,
+ 1585, 1586, 1590, 1591, 1592, 1593, 1594, 1598, 1599, 1600,
+ 1601, 1602, 1606, 1614, 1615, 1616, 1617, 1618, 1619, 1620,
+ 1621, 1622, 1626, 1627, 1628, 1629, 1630, 1632, 1633, 1634,
+ 1635, 1639, 1640, 1641, 1643, 1644, 1648, 1649, 1650, 1652,
+ 1653, 1657, 1658, 1659, 1661, 1662, 1666, 1667, 1668, 1672,
+ 1673, 1674, 1678, 1679, 1680, 1681, 1682, 1684, 1685, 1686,
+ 1687, 1689, 1690, 1691, 1692, 1694, 1695, 1696, 1697, 1701,
+ 1702, 1703, 1704, 1705, 1707, 1708, 1709, 1710, 1714, 1715,
+ 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1728,
+ 1729, 1730, 1731, 1735, 1736, 1737, 1741, 1742, 1743, 1744,
+ 1746, 1747, 1749, 1750, 1755, 1757, 1762, 1790, 1791, 1792,
+ 1793, 1795, 1796, 1797, 1798, 1800, 1801, 1805, 1806, 1815,
+ 1816, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1830, 1831,
+ 1835, 1839, 1843, 1850, 1851, 1852, 1853, 1854, 1858, 1859,
+ 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1912, 1913, 1914,
+ 1915, 1916, 1923, 1924, 1925, 1926, 1930, 1931, 1932, 1934,
+ 1935, 1939, 1940, 1941, 1943, 1944, 1948, 1949, 1950, 1952,
+ 1953, 1957, 1958, 1959, 1963, 1964, 1965, 1969, 1970, 1971,
+ 1972, 1973, 1974, 1975, 1976, 1977, 1979, 1980, 1981, 1982,
+ 1983, 1984, 1985, 1986, 1988, 1989, 1990, 1991, 1993, 1994,
+ 1995, 1996, 1998, 2006, 2010, 2015, 2022, 2023, 2027, 2032,
+ 2033, 2037, 2038, 2039, 2040, 2046, 2047, 2048, 2052, 2053,
+ 2054, 2055, 2059, 2061, 2065, 2066, 2067, 2068, 2069, 2070,
+ 2071, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2085, 2086,
+ 2087, 2091, 2092, 2093, 2097, 2101, 2102, 2106, 2107, 2108,
+ 2112, 2113, 2115, 2116, 2117, 2118, 2119, 2121, 2122, 2123,
+ 2124, 2125, 2127, 2128, 2132, 2133, 2137, 2138, 2139, 2143,
+ 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2153, 2154,
+ 2156, 2157, 2158, 2159, 2160, 2162, 2163, 2164, 2165, 2169,
+ 2170, 2174, 2175, 2179, 2183, 2184, 2185, 2190, 2191, 2195,
+ 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205,
+ 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215,
+ 2216, 2217, 2218, 2219, 2220, 2224, 2225, 2226, 2227, 2228,
+ 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238,
+ 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2253,
+ 2255, 2257, 2259, 2261, 2263, 2265, 2267, 2269, 2271, 2276,
+ 2277, 2281, 2287, 2293, 2300, 2310, 2311, 2312, 2313, 2317,
+ 2318, 2319, 2321, 2322, 2323, 2325, 2326, 2327, 2331, 2335,
+ 2343, 2352, 2361, 2362, 2364, 2365, 2369, 2376, 2383, 2386,
+ 2399, 2413, 2416, 2418, 2420, 2425, 2426, 2430, 2431, 2432,
+ 2433, 2434, 2435, 2436, 2437, 2441, 2442, 2443, 2444, 2445,
+ 2446, 2447, 2448, 2449, 2450, 2454, 2455, 2456, 2457, 2458,
+ 2459, 2460, 2461, 2462, 2463, 2467, 2468, 2469, 2470, 2471,
+ 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2482, 2483, 2484,
+ 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2495, 2496, 2500,
+ 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2510, 2512,
+ 2520, 2530, 2531, 2535, 2536, 2537, 2538, 2539, 2540, 2541,
+ 2542, 2543, 2551, 2560, 2561, 2562, 2563, 2564, 2565, 2566,
+ 2567, 2568, 2569, 2570, 2571, 2572, 2580, 2589, 2590, 2591,
+ 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2601,
+ 2609, 2618, 2619, 2623, 2624, 2625, 2626, 2627, 2631, 2632,
+ 2639, 2641, 2650, 2659, 2668, 2677, 2678, 2679, 2680, 2684,
+ 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2696, 2700,
+ 2701, 2702, 2703, 2704, 2709, 2718, 2727, 2736, 2750, 2751,
+ 2756, 2760, 2761, 2762, 2763, 2764, 2769, 2778, 2787, 2796,
+ 2810, 2811, 2860, 2861, 2862, 2863, 2875, 2876, 2877, 2882,
+ 2883, 2884, 2885, 2886, 2890, 2891, 2895, 2896, 2897, 2901,
+ 2902, 2906, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914,
+ 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2925, 2926, 2927,
+ 2928, 2929, 2930, 2931, 2932, 2936, 2937, 2938, 2939, 2943,
+ 2944, 2945, 2946, 2947, 2951, 2952, 2953, 2954, 2955, 2959,
+ 2960, 2962, 2964, 2966, 2971, 2972, 2974, 2976, 2981, 2982,
+ 2983, 2984, 2988, 2989, 2990, 2991, 2995, 2996, 2997, 2998,
+ 3002, 3003, 3004, 3005, 3009, 3010, 3011, 3012, 3016, 3017,
+ 3018, 3035, 3036, 3037, 3038, 3051, 3068, 3069, 3074, 3075,
+ 3079, 3080, 3081, 3082, 3085, 3086, 3090, 3091, 3092, 3096,
+ 3100, 3104, 3105, 3106, 3107, 3108, 3117, 3126, 3127, 3128,
+ 3129, 3133, 3134, 3138, 3139, 3144, 3145, 3146, 3147, 3148,
+ 3149, 3168, 3169, 3173, 3174, 3175, 3176, 3177, 3178, 3180,
+ 3181, 3182, 3183, 3187, 3188, 3189, 3190, 3191, 3193, 3194,
+ 3195, 3199, 3200, 3201, 3202, 3203, 3204, 3208, 3209, 3210,
+ 3215, 3216, 3217, 3218, 3219, 3220, 3221, 3222, 3223, 3224,
+ 3225, 3226, 3227, 3231, 3232, 3233, 3234, 3235, 3236, 3237,
+ 3241, 3242, 3243, 3247, 3248, 3249, 3253, 3254, 3255, 3256,
+ 3258, 3259, 3260, 3262, 3263, 3264, 3265, 3267, 3268, 3269,
+ 3273, 3274, 3275, 3276, 3277, 3279, 3280, 3281, 3282, 3283,
+ 3287, 3288, 3289, 3290, 3291, 3292, 3293, 3295, 3296, 3297,
+ 3298, 3299, 3303, 3304, 3305, 3309, 3310, 3314, 3315, 3316,
+ 3317, 3321, 3322, 3323, 3325, 3326, 3327, 3331, 3335, 3336,
+ 3338, 3339, 3340, 3344, 3345, 3346, 3347, 3351, 3352, 3356,
+ 3357, 3358, 3362, 3363, 3364, 3365, 3366, 3367, 3368, 3372,
+ 3373, 3374, 3375, 3379, 3380, 3381, 3382, 3386, 3390, 3394,
+ 3396, 3399, 3405, 3406, 3407, 3411, 3412, 3413, 3414, 3415,
+ 3416, 3420, 3421, 3425, 3426, 3427, 3429, 3430, 3432, 3433,
+ 3434, 3435, 3436, 3438, 3439, 3443, 3444, 3445, 3446, 3450,
+ 3451, 3452, 3453, 3455, 3456, 3457, 3458, 3459, 3460, 3461,
+ 3464, 3468, 3469, 3473, 3474, 3478, 3479, 3480, 3481, 3482,
+ 3483, 3484, 3485, 3489, 3490, 3491, 3492, 3498, 3499, 3501,
+ 3502, 3505, 3506, 3509, 3510, 3511, 3512, 3513, 3514, 3518,
+ 3519, 3531, 3532, 3535, 3538, 3540, 3541, 3542, 3552, 3554,
+ 3555, 3557, 3558, 3559, 3560, 3570, 3571, 3572, 3573, 3574,
+ 3575, 3579, 3580, 3589, 3591, 3592, 3594, 3596, 3600, 3601,
+ 3602, 3603, 3604, 3608, 3609, 3610, 3612, 3617, 3618, 3619,
+ 3623, 3624, 3625, 3629, 3633, 3634, 3635, 3639, 3640, 3644,
+ 3645, 3649, 3650, 3651, 3652, 3656, 3660, 3664, 3668
};
#endif
#line 283 "grammar.y"
{
(yyval.specifier) = null;
- // if($1._class && !$1._class.name)
- if((yyvsp[(1) - (2)].id)._class)
- {
- char name[1024];
- strcpy(name, (yyvsp[(1) - (2)].id)._class.name ? (yyvsp[(1) - (2)].id)._class.name : "");
- strcat(name, "::");
- strcat(name, (yyvsp[(1) - (2)].id).string);
- _DeclClass(name);
- }
- else
- _DeclClass((yyvsp[(1) - (2)].id).string);
+ _DeclClass((yyvsp[(1) - (2)].id)._class, (yyvsp[(1) - (2)].id).string);
FreeIdentifier((yyvsp[(1) - (2)].id));
case 3:
/* Line 1464 of yacc.c */
-#line 312 "grammar.y"
+#line 302 "grammar.y"
{
(yyval.specifier) = null;
#ifdef PRECOMPILER
- // if($1._class && !$1._class.name)
- if((yyvsp[(1) - (2)].id)._class)
- {
- char name[1024];
- strcpy(name, (yyvsp[(1) - (2)].id)._class.name ? (yyvsp[(1) - (2)].id)._class.name : "");
- strcat(name, "::");
- strcat(name, (yyvsp[(1) - (2)].id).string);
- _DeclClass(name);
- }
- else
- _DeclClass((yyvsp[(1) - (2)].id).string);
+ _DeclClass((yyvsp[(1) - (2)].id)._class, (yyvsp[(1) - (2)].id).string);
FreeIdentifier((yyvsp[(1) - (2)].id));
case 4:
/* Line 1464 of yacc.c */
-#line 370 "grammar.y"
+#line 340 "grammar.y"
{ (yyval.specifier) = (yyvsp[(1) - (1)].specifier); ;}
break;
case 5:
/* Line 1464 of yacc.c */
-#line 372 "grammar.y"
+#line 342 "grammar.y"
{
#ifdef PRECOMPILER
if(!(yyvsp[(1) - (2)].id).string[0])
}
else
{
- // if($1._class && !$1._class.name)
- if((yyvsp[(1) - (2)].id)._class)
- {
- char name[1024];
- strcpy(name, (yyvsp[(1) - (2)].id)._class.name ? (yyvsp[(1) - (2)].id)._class.name : "");
- strcat(name, "::");
- strcat(name, (yyvsp[(1) - (2)].id).string);
- _DeclClass(name);
- }
- else
- _DeclClass((yyvsp[(1) - (2)].id).string);
+ _DeclClass((yyvsp[(1) - (2)].id)._class, (yyvsp[(1) - (2)].id).string);
FreeIdentifier((yyvsp[(1) - (2)].id));
FreeIdentifier((yyvsp[(2) - (2)].id));
case 6:
/* Line 1464 of yacc.c */
-#line 481 "grammar.y"
+#line 421 "grammar.y"
{ (yyval.specifier) = MkSpecifierName(yytext); ;}
break;
case 7:
/* Line 1464 of yacc.c */
-#line 485 "grammar.y"
+#line 425 "grammar.y"
{ (yyval.string) = CopyString(yytext); ;}
break;
case 9:
/* Line 1464 of yacc.c */
-#line 489 "grammar.y"
+#line 429 "grammar.y"
{ (yyval.specifier) = (yyvsp[(1) - (4)].specifier); SetClassTemplateArgs((yyval.specifier), (yyvsp[(3) - (4)].list)); (yyval.specifier).loc = (yyloc); ;}
break;
case 10:
/* Line 1464 of yacc.c */
-#line 491 "grammar.y"
+#line 431 "grammar.y"
{
(yyval.specifier) = (yyvsp[(1) - (4)].specifier);
SetClassTemplateArgs((yyval.specifier), (yyvsp[(3) - (4)].list));
case 11:
/* Line 1464 of yacc.c */
-#line 540 "grammar.y"
+#line 470 "grammar.y"
{ (yyval.classFunction) = MkClassFunction((yyvsp[(1) - (2)].list), null, (yyvsp[(2) - (2)].declarator), null); (yyval.classFunction).loc = (yyloc); ;}
break;
case 12:
/* Line 1464 of yacc.c */
-#line 542 "grammar.y"
+#line 472 "grammar.y"
{ (yyval.classFunction) = MkClassFunction(null, null, (yyvsp[(1) - (1)].declarator), null); (yyval.classFunction).loc = (yyloc); ;}
break;
case 13:
/* Line 1464 of yacc.c */
-#line 547 "grammar.y"
+#line 477 "grammar.y"
{ (yyval.classFunction) = MkClassFunction((yyvsp[(1) - (3)].list), null, null, null); (yyval.classFunction).isConstructor = true; (yyval.classFunction).loc = (yyloc); ;}
break;
case 14:
/* Line 1464 of yacc.c */
-#line 552 "grammar.y"
+#line 482 "grammar.y"
{ (yyval.classFunction) = MkClassFunction((yyvsp[(2) - (4)].list), null, null, null); (yyval.classFunction).isDestructor = true; (yyval.classFunction).loc = (yyloc); ;}
break;
case 15:
/* Line 1464 of yacc.c */
-#line 557 "grammar.y"
+#line 487 "grammar.y"
{ (yyval.classFunction) = MkClassFunction((yyvsp[(2) - (3)].list), null, (yyvsp[(3) - (3)].declarator), null); (yyval.classFunction).isVirtual = true; (yyval.classFunction).loc = (yyloc); ;}
break;
case 16:
/* Line 1464 of yacc.c */
-#line 559 "grammar.y"
+#line 489 "grammar.y"
{ (yyval.classFunction) = MkClassFunction(null, null, (yyvsp[(2) - (2)].declarator), null); (yyval.classFunction).isVirtual = true; (yyval.classFunction).loc = (yyloc); ;}
break;
case 17:
/* Line 1464 of yacc.c */
-#line 564 "grammar.y"
+#line 494 "grammar.y"
{ (yyval.classFunction) = MkClassFunction((yyvsp[(1) - (2)].list), null, (yyvsp[(2) - (2)].declarator), null); (yyval.classFunction).loc = (yyloc); ;}
break;
case 18:
/* Line 1464 of yacc.c */
-#line 566 "grammar.y"
+#line 496 "grammar.y"
{ (yyval.classFunction) = MkClassFunction(null, null, (yyvsp[(1) - (1)].declarator), null); (yyval.classFunction).loc = (yyloc); ;}
break;
case 19:
/* Line 1464 of yacc.c */
-#line 571 "grammar.y"
+#line 501 "grammar.y"
{ (yyval.classFunction) = MkClassFunction((yyvsp[(2) - (3)].list), null, (yyvsp[(3) - (3)].declarator), null); (yyval.classFunction).isVirtual = true; (yyval.classFunction).loc = (yyloc); ;}
break;
case 20:
/* Line 1464 of yacc.c */
-#line 573 "grammar.y"
+#line 503 "grammar.y"
{ (yyval.classFunction) = MkClassFunction(null, null, (yyvsp[(2) - (2)].declarator), null); (yyval.classFunction).isVirtual = true; (yyval.classFunction).loc = (yyloc); ;}
break;
case 21:
/* Line 1464 of yacc.c */
-#line 578 "grammar.y"
+#line 508 "grammar.y"
{ ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
break;
case 22:
/* Line 1464 of yacc.c */
-#line 580 "grammar.y"
+#line 510 "grammar.y"
{ ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
break;
case 23:
/* Line 1464 of yacc.c */
-#line 582 "grammar.y"
+#line 512 "grammar.y"
{ ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), null); (yyval.classFunction).loc = (yyloc); ;}
break;
case 24:
/* Line 1464 of yacc.c */
-#line 584 "grammar.y"
+#line 514 "grammar.y"
{ ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
break;
case 25:
/* Line 1464 of yacc.c */
-#line 586 "grammar.y"
+#line 516 "grammar.y"
{ ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
break;
case 26:
/* Line 1464 of yacc.c */
-#line 590 "grammar.y"
+#line 520 "grammar.y"
{ ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), null); (yyval.classFunction).loc = (yyloc); ;}
break;
case 27:
/* Line 1464 of yacc.c */
-#line 594 "grammar.y"
+#line 524 "grammar.y"
{
if((yyvsp[(1) - (3)].classFunction).declarator)
{
case 28:
/* Line 1464 of yacc.c */
-#line 607 "grammar.y"
+#line 537 "grammar.y"
{ ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); (yyval.classFunction).loc.end = (yyvsp[(2) - (2)].stmt).loc.end; ;}
break;
case 29:
/* Line 1464 of yacc.c */
-#line 609 "grammar.y"
+#line 539 "grammar.y"
{ ProcessClassFunctionBody((yyvsp[(1) - (1)].classFunction), null); (yyval.classFunction).loc = (yyloc); (yyval.classFunction).loc.end.charPos++; (yyval.classFunction).loc.end.pos++;;}
break;
case 30:
/* Line 1464 of yacc.c */
-#line 611 "grammar.y"
+#line 541 "grammar.y"
{ ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); (yyval.classFunction).loc.end = (yyvsp[(2) - (2)].stmt).loc.end; ;}
break;
case 31:
/* Line 1464 of yacc.c */
-#line 613 "grammar.y"
+#line 543 "grammar.y"
{ ProcessClassFunctionBody((yyvsp[(1) - (1)].classFunction), null); (yyval.classFunction).loc = (yyloc); (yyval.classFunction).loc.end.charPos++; (yyval.classFunction).loc.end.pos++;;}
break;
case 32:
/* Line 1464 of yacc.c */
-#line 615 "grammar.y"
+#line 545 "grammar.y"
{ ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), null); (yyval.classFunction).loc = (yyloc); (yyval.classFunction).loc.end.charPos++; (yyval.classFunction).loc.end.pos++;;}
break;
case 33:
/* Line 1464 of yacc.c */
-#line 621 "grammar.y"
+#line 551 "grammar.y"
{ (yyval.classFunction) = MkClassFunction((yyvsp[(1) - (2)].list), null, (yyvsp[(2) - (2)].declarator), null); (yyval.classFunction).loc = (yyloc); ;}
break;
case 34:
/* Line 1464 of yacc.c */
-#line 623 "grammar.y"
+#line 553 "grammar.y"
{ (yyval.classFunction) = MkClassFunction((yyvsp[(1) - (2)].list), null, MkDeclaratorFunction((yyvsp[(2) - (2)].declarator), null), null); (yyval.classFunction).loc = (yyloc); ;}
break;
case 35:
/* Line 1464 of yacc.c */
-#line 628 "grammar.y"
+#line 558 "grammar.y"
{ (yyval.classFunction) = MkClassFunction((yyvsp[(1) - (2)].list), null, (yyvsp[(2) - (2)].declarator), null); (yyval.classFunction).loc = (yyloc); ;}
break;
case 36:
/* Line 1464 of yacc.c */
-#line 633 "grammar.y"
+#line 563 "grammar.y"
{ ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); ;}
break;
case 37:
/* Line 1464 of yacc.c */
-#line 638 "grammar.y"
+#line 568 "grammar.y"
{ ProcessClassFunctionBody((yyvsp[(1) - (2)].classFunction), (yyvsp[(2) - (2)].stmt)); (yyval.classFunction).loc = (yyloc); (yyval.classFunction).loc.end = (yyvsp[(2) - (2)].stmt).loc.end; (yyval.classFunction).loc.end.charPos++; (yyval.classFunction).loc.end.pos++;;}
break;
case 38:
/* Line 1464 of yacc.c */
-#line 640 "grammar.y"
+#line 570 "grammar.y"
{ ProcessClassFunctionBody((yyvsp[(1) - (1)].classFunction), null); (yyval.classFunction).loc = (yyloc); (yyval.classFunction).loc.end.charPos++; (yyval.classFunction).loc.end.pos++;;}
break;
case 39:
/* Line 1464 of yacc.c */
-#line 642 "grammar.y"
+#line 572 "grammar.y"
{ ProcessClassFunctionBody((yyvsp[(1) - (1)].classFunction), null); (yyval.classFunction).loc = (yyloc); (yyval.classFunction).loc.end.charPos++; (yyval.classFunction).loc.end.pos++;;}
break;
case 40:
/* Line 1464 of yacc.c */
-#line 646 "grammar.y"
+#line 576 "grammar.y"
{ (yyval.memberInit) = MkMemberInitExp((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].initializer)); (yyval.memberInit).loc = (yyloc); (yyval.memberInit).realLoc = (yyloc); (yyval.memberInit).initializer.loc.start = (yylsp[(2) - (3)]).end;;}
break;
case 41:
/* Line 1464 of yacc.c */
-#line 647 "grammar.y"
+#line 577 "grammar.y"
{ (yyval.memberInit) = MkMemberInit(null, (yyvsp[(1) - (1)].initializer)); (yyval.memberInit).loc = (yyloc); (yyval.memberInit).realLoc = (yyloc);;}
break;
case 42:
/* Line 1464 of yacc.c */
-#line 651 "grammar.y"
+#line 581 "grammar.y"
{ (yyval.memberInit) = MkMemberInitExp((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].initializer)); (yyval.memberInit).loc = (yyloc); (yyval.memberInit).realLoc = (yyloc); (yyval.memberInit).initializer.loc.start = (yylsp[(2) - (3)]).end;;}
break;
case 43:
/* Line 1464 of yacc.c */
-#line 653 "grammar.y"
+#line 583 "grammar.y"
{
(yyval.memberInit) = MkMemberInitExp((yyvsp[(1) - (3)].exp), MkInitializerAssignment(MkExpDummy()));
(yyval.memberInit).loc = (yyloc); (yyval.memberInit).realLoc = (yyloc); (yyval.memberInit).initializer.loc.start = (yyval.memberInit).initializer.loc.end = (yylsp[(2) - (3)]).end;
case 44:
/* Line 1464 of yacc.c */
-#line 663 "grammar.y"
+#line 593 "grammar.y"
{ (yyval.memberInit) = MkMemberInit(null, (yyvsp[(1) - (1)].initializer)); (yyval.memberInit).loc = (yyloc); (yyval.memberInit).realLoc = (yyloc);;}
break;
case 45:
/* Line 1464 of yacc.c */
-#line 667 "grammar.y"
+#line 597 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].memberInit)); ;}
break;
case 46:
/* Line 1464 of yacc.c */
-#line 669 "grammar.y"
+#line 599 "grammar.y"
{ ((MemberInit)(yyvsp[(1) - (3)].list)->last).loc.end = (yylsp[(3) - (3)]).start; ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].memberInit)); (yyval.list) = (yyvsp[(1) - (3)].list); ;}
break;
case 47:
/* Line 1464 of yacc.c */
-#line 671 "grammar.y"
+#line 601 "grammar.y"
{ ((MemberInit)(yyvsp[(1) - (3)].list)->last).loc.end = (yylsp[(3) - (3)]).start; ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].memberInit)); (yyval.list) = (yyvsp[(1) - (3)].list); ;}
break;
case 48:
/* Line 1464 of yacc.c */
-#line 675 "grammar.y"
+#line 605 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].memberInit)); ;}
break;
case 49:
/* Line 1464 of yacc.c */
-#line 677 "grammar.y"
+#line 607 "grammar.y"
{ ((MemberInit)(yyvsp[(1) - (3)].list)->last).loc.end = (yylsp[(3) - (3)]).start; ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].memberInit)); (yyval.list) = (yyvsp[(1) - (3)].list); ;}
break;
case 50:
/* Line 1464 of yacc.c */
-#line 679 "grammar.y"
+#line 609 "grammar.y"
{ ((MemberInit)(yyvsp[(1) - (3)].list)->last).loc.end = (yylsp[(3) - (3)]).start; ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].memberInit)); (yyval.list) = (yyvsp[(1) - (3)].list); ;}
break;
case 51:
/* Line 1464 of yacc.c */
-#line 682 "grammar.y"
+#line 612 "grammar.y"
{ ((MemberInit)(yyvsp[(1) - (3)].list)->last).loc.end = (yylsp[(2) - (3)]).end;
{
Initializer dummy = MkInitializerAssignment(MkExpDummy());
case 52:
/* Line 1464 of yacc.c */
-#line 694 "grammar.y"
+#line 624 "grammar.y"
{ ((MemberInit)(yyvsp[(1) - (3)].list)->last).loc.end = (yylsp[(2) - (3)]).end;
{
Initializer dummy = MkInitializerAssignment(MkExpDummy());
case 53:
/* Line 1464 of yacc.c */
-#line 705 "grammar.y"
+#line 635 "grammar.y"
{
Initializer dummy = MkInitializerAssignment(MkExpDummy());
MemberInit memberInit = MkMemberInit(null, dummy);
case 54:
/* Line 1464 of yacc.c */
-#line 724 "grammar.y"
+#line 654 "grammar.y"
{ if((yyvsp[(1) - (2)].list)->last) ((MemberInit)(yyvsp[(1) - (2)].list)->last).loc.end = (yylsp[(2) - (2)]).end; (yyval.list) = (yyvsp[(1) - (2)].list); ;}
break;
case 55:
/* Line 1464 of yacc.c */
-#line 726 "grammar.y"
+#line 656 "grammar.y"
{ if((yyvsp[(1) - (2)].list)->last) ((MemberInit)(yyvsp[(1) - (2)].list)->last).loc.end = (yylsp[(2) - (2)]).end; (yyval.list) = (yyvsp[(1) - (2)].list); ;}
break;
case 56:
/* Line 1464 of yacc.c */
-#line 730 "grammar.y"
+#line 660 "grammar.y"
{ MembersInit members = MkMembersInitList((yyvsp[(1) - (1)].list)); (yyval.list) = MkList(); ListAdd((yyval.list), members); members.loc = (yylsp[(1) - (1)]); ;}
break;
case 57:
/* Line 1464 of yacc.c */
-#line 731 "grammar.y"
+#line 661 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), MkMembersInitMethod((yyvsp[(1) - (1)].classFunction))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(1) - (1)]); ;}
break;
case 58:
/* Line 1464 of yacc.c */
-#line 732 "grammar.y"
+#line 662 "grammar.y"
{ MembersInit members = MkMembersInitList((yyvsp[(2) - (2)].list)); ListAdd((yyval.list), members); members.loc = (yylsp[(2) - (2)]); (yyval.list) = (yyvsp[(1) - (2)].list); ;}
break;
case 59:
/* Line 1464 of yacc.c */
-#line 733 "grammar.y"
+#line 663 "grammar.y"
{ ListAdd((yyval.list), MkMembersInitMethod((yyvsp[(2) - (2)].classFunction))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(2) - (2)]); (yyval.list) = (yyvsp[(1) - (2)].list); ;}
break;
case 60:
/* Line 1464 of yacc.c */
-#line 734 "grammar.y"
+#line 664 "grammar.y"
{ MembersInit members = MkMembersInitList((yyvsp[(2) - (2)].list)); ListAdd((yyval.list), members); members.loc = (yylsp[(2) - (2)]); (yyval.list) = (yyvsp[(1) - (2)].list); ;}
break;
case 61:
/* Line 1464 of yacc.c */
-#line 735 "grammar.y"
+#line 665 "grammar.y"
{ ListAdd((yyval.list), MkMembersInitMethod((yyvsp[(2) - (2)].classFunction))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(2) - (2)]); (yyval.list) = (yyvsp[(1) - (2)].list); ;}
break;
case 63:
/* Line 1464 of yacc.c */
-#line 738 "grammar.y"
+#line 668 "grammar.y"
{
MembersInit members = (MembersInit)(yyval.list)->last;
if(members.type == dataMembersInit)
case 64:
/* Line 1464 of yacc.c */
-#line 750 "grammar.y"
+#line 680 "grammar.y"
{ MembersInit members = MkMembersInitList(MkList()); (yyval.list) = MkList(); ListAdd((yyval.list), members); members.loc = (yylsp[(1) - (1)]); ;}
break;
case 66:
/* Line 1464 of yacc.c */
-#line 755 "grammar.y"
+#line 685 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), MkMembersInitList((yyvsp[(1) - (1)].list))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(1) - (1)]); ;}
break;
case 67:
/* Line 1464 of yacc.c */
-#line 756 "grammar.y"
+#line 686 "grammar.y"
{ ListAdd((yyvsp[(1) - (2)].list), MkMembersInitList((yyvsp[(2) - (2)].list))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(2) - (2)]); ;}
break;
case 68:
/* Line 1464 of yacc.c */
-#line 757 "grammar.y"
+#line 687 "grammar.y"
{ ListAdd((yyvsp[(1) - (2)].list), MkMembersInitList((yyvsp[(2) - (2)].list))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(2) - (2)]); ;}
break;
case 69:
/* Line 1464 of yacc.c */
-#line 761 "grammar.y"
+#line 691 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), MkMembersInitMethod((yyvsp[(1) - (1)].classFunction))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(1) - (1)]); ;}
break;
case 70:
/* Line 1464 of yacc.c */
-#line 762 "grammar.y"
+#line 692 "grammar.y"
{ ListAdd((yyval.list), MkMembersInitMethod((yyvsp[(2) - (2)].classFunction))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(2) - (2)]); (yyval.list) = (yyvsp[(1) - (2)].list); ;}
break;
case 71:
/* Line 1464 of yacc.c */
-#line 763 "grammar.y"
+#line 693 "grammar.y"
{ ListAdd((yyval.list), MkMembersInitMethod((yyvsp[(2) - (2)].classFunction))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(2) - (2)]); (yyval.list) = (yyvsp[(1) - (2)].list); ;}
break;
case 72:
/* Line 1464 of yacc.c */
-#line 764 "grammar.y"
+#line 694 "grammar.y"
{ ListAdd((yyval.list), MkMembersInitMethod((yyvsp[(2) - (2)].classFunction))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(2) - (2)]); (yyval.list) = (yyvsp[(1) - (2)].list); ;}
break;
case 73:
/* Line 1464 of yacc.c */
-#line 765 "grammar.y"
+#line 695 "grammar.y"
{ ListAdd((yyval.list), MkMembersInitList((yyvsp[(2) - (2)].list))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(2) - (2)]); (yyval.list) = (yyvsp[(1) - (2)].list); ;}
break;
case 74:
/* Line 1464 of yacc.c */
-#line 766 "grammar.y"
+#line 696 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), MkMembersInitList((yyvsp[(1) - (1)].list))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(1) - (1)]); ;}
break;
case 75:
/* Line 1464 of yacc.c */
-#line 767 "grammar.y"
+#line 697 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), MkMembersInitList((yyvsp[(1) - (2)].list))); ((MembersInit)(yyval.list)->last).loc = (yylsp[(2) - (2)]); ;}
break;
case 76:
/* Line 1464 of yacc.c */
-#line 772 "grammar.y"
+#line 702 "grammar.y"
{ (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.end = (yylsp[(2) - (2)]).start; (yyval.instance) = (yyvsp[(1) - (2)].instance); ;}
break;
case 77:
/* Line 1464 of yacc.c */
-#line 774 "grammar.y"
+#line 704 "grammar.y"
{ (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.end = (yylsp[(2) - (3)]).start; (yyval.instance) = (yyvsp[(1) - (3)].instance); ;}
break;
case 78:
/* Line 1464 of yacc.c */
-#line 779 "grammar.y"
+#line 709 "grammar.y"
{ (yyval.instance) = MkInstantiationNamed((yyvsp[(1) - (4)].list), MkExpIdentifier((yyvsp[(2) - (4)].id)), (yyvsp[(4) - (4)].list)); (yyval.instance).exp.loc = (yylsp[(2) - (4)]); (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[(2) - (4)]); (yyval.instance).insideLoc.start = (yylsp[(3) - (4)]).end; (yyval.instance).insideLoc.end = (yylsp[(4) - (4)]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
break;
case 79:
/* Line 1464 of yacc.c */
-#line 781 "grammar.y"
+#line 711 "grammar.y"
{ (yyval.instance) = MkInstantiationNamed((yyvsp[(1) - (5)].list), MkExpIdentifier((yyvsp[(2) - (5)].id)), (yyvsp[(4) - (5)].list)); (yyval.instance).exp.loc = (yylsp[(2) - (5)]); (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[(2) - (5)]); (yyval.instance).insideLoc.start = (yylsp[(3) - (5)]).end; (yyval.instance).insideLoc.end = (yylsp[(4) - (5)]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
break;
case 80:
/* Line 1464 of yacc.c */
-#line 783 "grammar.y"
+#line 713 "grammar.y"
{ (yyval.instance) = MkInstantiationNamed((yyvsp[(1) - (4)].list), MkExpIdentifier((yyvsp[(2) - (4)].id)), (yyvsp[(4) - (4)].list)); (yyval.instance).exp.loc = (yylsp[(2) - (4)]); (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[(2) - (4)]); (yyval.instance).insideLoc.start = (yylsp[(3) - (4)]).end; (yyval.instance).insideLoc.end = (yylsp[(4) - (4)]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
break;
case 81:
/* Line 1464 of yacc.c */
-#line 785 "grammar.y"
+#line 715 "grammar.y"
{ (yyval.instance) = MkInstantiationNamed((yyvsp[(1) - (3)].list), MkExpIdentifier((yyvsp[(2) - (3)].id)), null); (yyval.instance).exp.loc = (yylsp[(2) - (3)]); (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[(2) - (3)]); (yyval.instance).insideLoc.start = (yylsp[(3) - (3)]).end; (yyval.instance).insideLoc.end = (yylsp[(3) - (3)]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
break;
case 82:
/* Line 1464 of yacc.c */
-#line 787 "grammar.y"
+#line 717 "grammar.y"
{ (yyval.instance) = MkInstantiationNamed((yyvsp[(1) - (4)].list), MkExpIdentifier((yyvsp[(2) - (4)].id)), null);(yyval.instance).exp.loc = (yylsp[(2) - (4)]); (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[(2) - (4)]); (yyval.instance).insideLoc.start = (yylsp[(3) - (4)]).end; (yyval.instance).insideLoc.end = (yylsp[(3) - (4)]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
break;
case 83:
/* Line 1464 of yacc.c */
-#line 817 "grammar.y"
+#line 747 "grammar.y"
{ (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.end = (yylsp[(2) - (2)]).start; ;}
break;
case 84:
/* Line 1464 of yacc.c */
-#line 819 "grammar.y"
+#line 749 "grammar.y"
{ (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.end = (yylsp[(2) - (3)]).start; ;}
break;
case 85:
/* Line 1464 of yacc.c */
-#line 824 "grammar.y"
+#line 754 "grammar.y"
{ (yyval.instance) = MkInstantiationNamed((yyvsp[(1) - (4)].list), MkExpIdentifier((yyvsp[(2) - (4)].id)), (yyvsp[(4) - (4)].list));(yyval.instance).exp.loc = (yylsp[(2) - (4)]); (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[(2) - (4)]); (yyval.instance).insideLoc.start = (yylsp[(3) - (4)]).end; (yyval.instance).insideLoc.end = (yylsp[(4) - (4)]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
break;
case 86:
/* Line 1464 of yacc.c */
-#line 826 "grammar.y"
+#line 756 "grammar.y"
{ (yyval.instance) = MkInstantiationNamed((yyvsp[(1) - (5)].list), MkExpIdentifier((yyvsp[(2) - (5)].id)), (yyvsp[(4) - (5)].list)); (yyval.instance).exp.loc = (yylsp[(2) - (5)]); (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[(2) - (5)]); (yyval.instance).insideLoc.start = (yylsp[(3) - (5)]).end; (yyval.instance).insideLoc.end = (yylsp[(4) - (5)]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
break;
case 87:
/* Line 1464 of yacc.c */
-#line 828 "grammar.y"
+#line 758 "grammar.y"
{ (yyval.instance) = MkInstantiationNamed((yyvsp[(1) - (4)].list), MkExpIdentifier((yyvsp[(2) - (4)].id)), (yyvsp[(4) - (4)].list));(yyval.instance).exp.loc = (yylsp[(2) - (4)]); (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[(2) - (4)]); (yyval.instance).insideLoc.start = (yylsp[(3) - (4)]).end; (yyval.instance).insideLoc.end = (yylsp[(4) - (4)]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
break;
case 88:
/* Line 1464 of yacc.c */
-#line 830 "grammar.y"
+#line 760 "grammar.y"
{ (yyval.instance) = MkInstantiationNamed((yyvsp[(1) - (3)].list), MkExpIdentifier((yyvsp[(2) - (3)].id)), null);(yyval.instance).exp.loc = (yylsp[(2) - (3)]); (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[(2) - (3)]); (yyval.instance).insideLoc.start = (yylsp[(3) - (3)]).end; (yyval.instance).insideLoc.end = (yylsp[(3) - (3)]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
break;
case 89:
/* Line 1464 of yacc.c */
-#line 832 "grammar.y"
+#line 762 "grammar.y"
{ (yyval.instance) = MkInstantiationNamed((yyvsp[(1) - (4)].list), MkExpIdentifier((yyvsp[(2) - (4)].id)), null);(yyval.instance).exp.loc = (yylsp[(2) - (4)]); (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[(2) - (4)]); (yyval.instance).insideLoc.start = (yylsp[(3) - (4)]).end; (yyval.instance).insideLoc.end = (yylsp[(3) - (4)]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
break;
case 90:
/* Line 1464 of yacc.c */
-#line 861 "grammar.y"
+#line 791 "grammar.y"
{ (yyval.instance) = MkInstantiationNamed((yyvsp[(1) - (5)].list), MkExpIdentifier((yyvsp[(2) - (5)].id)), (yyvsp[(4) - (5)].list)); (yyval.instance).exp.loc = (yylsp[(2) - (5)]); (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[(2) - (5)]); (yyval.instance).insideLoc.start = (yylsp[(3) - (5)]).end; (yyval.instance).insideLoc.end = (yylsp[(5) - (5)]).start;;}
break;
case 91:
/* Line 1464 of yacc.c */
-#line 863 "grammar.y"
+#line 793 "grammar.y"
{ (yyval.instance) = MkInstantiationNamed((yyvsp[(1) - (5)].list), MkExpIdentifier((yyvsp[(2) - (5)].id)), (yyvsp[(4) - (5)].list)); (yyval.instance).exp.loc = (yylsp[(2) - (5)]); (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[(2) - (5)]); (yyval.instance).insideLoc.start = (yylsp[(3) - (5)]).end; (yyval.instance).insideLoc.end = (yylsp[(5) - (5)]).start;;}
break;
case 92:
/* Line 1464 of yacc.c */
-#line 865 "grammar.y"
+#line 795 "grammar.y"
{ (yyval.instance) = MkInstantiationNamed((yyvsp[(1) - (4)].list), MkExpIdentifier((yyvsp[(2) - (4)].id)), MkList()); (yyval.instance).exp.loc = (yylsp[(2) - (4)]); (yyval.instance).loc = (yyloc); (yyval.instance).nameLoc = (yylsp[(2) - (4)]); (yyval.instance).insideLoc.start = (yylsp[(3) - (4)]).end; (yyval.instance).insideLoc.end = (yylsp[(4) - (4)]).start;;}
break;
case 93:
/* Line 1464 of yacc.c */
-#line 870 "grammar.y"
+#line 800 "grammar.y"
{ (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.end = (yylsp[(2) - (2)]).start; (yyval.instance) = (yyvsp[(1) - (2)].instance); ;}
break;
case 94:
/* Line 1464 of yacc.c */
-#line 872 "grammar.y"
+#line 802 "grammar.y"
{ (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.end = (yylsp[(2) - (3)]).start; (yyval.instance) = (yyvsp[(1) - (3)].instance); ;}
break;
case 95:
/* Line 1464 of yacc.c */
-#line 877 "grammar.y"
+#line 807 "grammar.y"
{ (yyval.instance) = MkInstantiation((yyvsp[(1) - (3)].specifier), null, (yyvsp[(3) - (3)].list)); (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[(2) - (3)]).end; (yyval.instance).insideLoc.end = (yylsp[(3) - (3)]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
break;
case 96:
/* Line 1464 of yacc.c */
-#line 879 "grammar.y"
+#line 809 "grammar.y"
{ Location tmpLoc = yylloc; yylloc = (yylsp[(1) - (3)]);
yylloc = tmpLoc; (yyval.instance) = MkInstantiation(MkSpecifierName((yyvsp[(1) - (3)].id).string), null, (yyvsp[(3) - (3)].list)); (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[(2) - (3)]).end; (yyval.instance).insideLoc.end = (yylsp[(3) - (3)]).end; FreeIdentifier((yyvsp[(1) - (3)].id)); ;}
break;
case 97:
/* Line 1464 of yacc.c */
-#line 883 "grammar.y"
+#line 813 "grammar.y"
{ (yyval.instance) = MkInstantiation((yyvsp[(1) - (3)].specifier), null, (yyvsp[(3) - (3)].list)); (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[(2) - (3)]).end; (yyval.instance).insideLoc.end = (yylsp[(3) - (3)]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
break;
case 98:
/* Line 1464 of yacc.c */
-#line 885 "grammar.y"
+#line 815 "grammar.y"
{ (yyval.instance) = MkInstantiation((yyvsp[(1) - (2)].specifier), null, null); (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[(2) - (2)]).end; (yyval.instance).insideLoc.end = (yylsp[(2) - (2)]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
break;
case 99:
/* Line 1464 of yacc.c */
-#line 887 "grammar.y"
+#line 817 "grammar.y"
{ (yyval.instance) = MkInstantiation((yyvsp[(1) - (4)].specifier), null, (yyvsp[(3) - (4)].list)); (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[(2) - (4)]).end; (yyval.instance).insideLoc.end = (yylsp[(3) - (4)]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
break;
case 100:
/* Line 1464 of yacc.c */
-#line 889 "grammar.y"
+#line 819 "grammar.y"
{ (yyval.instance) = MkInstantiation((yyvsp[(1) - (3)].specifier), null, null); (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[(2) - (3)]).end; (yyval.instance).insideLoc.end = (yylsp[(2) - (3)]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
break;
case 101:
/* Line 1464 of yacc.c */
-#line 894 "grammar.y"
+#line 824 "grammar.y"
{ Location tmpLoc = yylloc; yylloc = (yylsp[(1) - (3)]);
yylloc = tmpLoc; (yyval.instance) = MkInstantiation(MkSpecifierName((yyvsp[(1) - (3)].id).string), null, (yyvsp[(3) - (3)].list)); (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[(2) - (3)]).end; (yyval.instance).insideLoc.end = (yylsp[(3) - (3)]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; FreeIdentifier((yyvsp[(1) - (3)].id)); ;}
break;
case 102:
/* Line 1464 of yacc.c */
-#line 897 "grammar.y"
+#line 827 "grammar.y"
{ Location tmpLoc = yylloc; yylloc = (yylsp[(1) - (2)]);
yylloc = tmpLoc; (yyval.instance) = MkInstantiation(MkSpecifierName((yyvsp[(1) - (2)].id).string), null, null); (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[(2) - (2)]).end; (yyval.instance).insideLoc.end = (yylsp[(2) - (2)]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; FreeIdentifier((yyvsp[(1) - (2)].id)); ;}
break;
case 103:
/* Line 1464 of yacc.c */
-#line 900 "grammar.y"
+#line 830 "grammar.y"
{ Location tmpLoc = yylloc; yylloc = (yylsp[(1) - (4)]);
yylloc = tmpLoc; (yyval.instance) = MkInstantiation(MkSpecifierName((yyvsp[(1) - (4)].id).string), null, (yyvsp[(3) - (4)].list)); (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[(2) - (4)]).end; (yyval.instance).insideLoc.end = (yylsp[(3) - (4)]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; FreeIdentifier((yyvsp[(1) - (4)].id)); ;}
break;
case 104:
/* Line 1464 of yacc.c */
-#line 903 "grammar.y"
+#line 833 "grammar.y"
{ Location tmpLoc = yylloc; yylloc = (yylsp[(1) - (3)]);
yylloc = tmpLoc; (yyval.instance) = MkInstantiation(MkSpecifierName((yyvsp[(1) - (3)].id).string), null, null); (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[(2) - (3)]).end; (yyval.instance).insideLoc.end = (yylsp[(2) - (3)]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; FreeIdentifier((yyvsp[(1) - (3)].id)); ;}
break;
case 105:
/* Line 1464 of yacc.c */
-#line 968 "grammar.y"
+#line 898 "grammar.y"
{ (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.end = (yylsp[(2) - (2)]).start; ;}
break;
case 106:
/* Line 1464 of yacc.c */
-#line 970 "grammar.y"
+#line 900 "grammar.y"
{ (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.end = (yylsp[(2) - (3)]).start; ;}
break;
case 107:
/* Line 1464 of yacc.c */
-#line 975 "grammar.y"
+#line 905 "grammar.y"
{ (yyval.instance) = MkInstantiation(null, null, (yyvsp[(2) - (2)].list)); (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[(1) - (2)]).end; (yyval.instance).insideLoc.end = (yylsp[(2) - (2)]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
break;
case 108:
/* Line 1464 of yacc.c */
-#line 977 "grammar.y"
+#line 907 "grammar.y"
{ (yyval.instance) = MkInstantiation(null, null, (yyvsp[(2) - (3)].list)); (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[(1) - (3)]).end; (yyval.instance).insideLoc.end = (yylsp[(2) - (3)]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
break;
case 109:
/* Line 1464 of yacc.c */
-#line 979 "grammar.y"
+#line 909 "grammar.y"
{ (yyval.instance) = MkInstantiation(null, null, null); (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[(1) - (2)]).end; (yyval.instance).insideLoc.end = (yylsp[(1) - (2)]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
break;
case 110:
/* Line 1464 of yacc.c */
-#line 981 "grammar.y"
+#line 911 "grammar.y"
{ (yyval.instance) = MkInstantiation(null, null, null); (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[(1) - (1)]).end; (yyval.instance).insideLoc.end = (yylsp[(1) - (1)]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
break;
case 111:
/* Line 1464 of yacc.c */
-#line 983 "grammar.y"
+#line 913 "grammar.y"
{ (yyval.instance) = MkInstantiation(null, null, (yyvsp[(2) - (2)].list)); (yyval.instance).loc = (yyloc); (yyval.instance).insideLoc.start = (yylsp[(1) - (2)]).end; (yyval.instance).insideLoc.end = (yylsp[(2) - (2)]).end; (yyval.instance).loc.end.charPos++; (yyval.instance).loc.end.pos++; ;}
break;
case 112:
/* Line 1464 of yacc.c */
-#line 1013 "grammar.y"
+#line 943 "grammar.y"
{ (yyval.memberInit) = MkMemberInitExp((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].initializer)); (yyval.memberInit).loc = (yyloc); (yyval.memberInit).realLoc = (yyloc); ;}
break;
case 113:
/* Line 1464 of yacc.c */
-#line 1017 "grammar.y"
+#line 947 "grammar.y"
{ (yyval.memberInit) = MkMemberInitExp((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].initializer)); (yyval.memberInit).loc = (yyloc); (yyval.memberInit).realLoc = (yyloc); (yyval.memberInit).initializer.loc.start = (yylsp[(2) - (3)]).end; ;}
break;
case 114:
/* Line 1464 of yacc.c */
-#line 1018 "grammar.y"
+#line 948 "grammar.y"
{ (yyval.memberInit) = MkMemberInitExp((yyvsp[(1) - (3)].exp), MkInitializerAssignment(MkExpDummy())); (yyval.memberInit).loc = (yyloc); (yyval.memberInit).realLoc = (yyloc); (yyval.memberInit).initializer.loc.start = (yylsp[(2) - (3)]).end; (yyval.memberInit).initializer.loc.end = (yylsp[(2) - (3)]).end; ;}
break;
case 115:
/* Line 1464 of yacc.c */
-#line 1019 "grammar.y"
+#line 949 "grammar.y"
{ (yyval.memberInit) = MkMemberInitExp((yyvsp[(1) - (2)].exp), null); (yyval.memberInit).loc = (yyloc); (yyval.memberInit).realLoc = (yyloc); ;}
break;
case 116:
/* Line 1464 of yacc.c */
-#line 1023 "grammar.y"
+#line 953 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].memberInit)); ((MemberInit)(yyval.list)->last).loc = (yyloc); ;}
break;
case 117:
/* Line 1464 of yacc.c */
-#line 1024 "grammar.y"
+#line 954 "grammar.y"
{ ((MemberInit)(yyvsp[(1) - (3)].list)->last).loc.end = (yylsp[(3) - (3)]).start; ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].memberInit)); (yyval.list) = (yyvsp[(1) - (3)].list); ;}
break;
case 118:
/* Line 1464 of yacc.c */
-#line 1025 "grammar.y"
+#line 955 "grammar.y"
{ ((MemberInit)(yyvsp[(1) - (3)].list)->last).loc.end = (yylsp[(3) - (3)]).start; ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].memberInit)); (yyval.list) = (yyvsp[(1) - (3)].list); ;}
break;
case 119:
/* Line 1464 of yacc.c */
-#line 1029 "grammar.y"
+#line 959 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].memberInit)); ((MemberInit)(yyval.list)->last).loc = (yyloc); ;}
break;
case 120:
/* Line 1464 of yacc.c */
-#line 1030 "grammar.y"
+#line 960 "grammar.y"
{ ((MemberInit)(yyvsp[(1) - (3)].list)->last).loc.end = (yylsp[(3) - (3)]).start; ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].memberInit)); (yyval.list) = (yyvsp[(1) - (3)].list); ;}
break;
case 121:
/* Line 1464 of yacc.c */
-#line 1031 "grammar.y"
+#line 961 "grammar.y"
{ ((MemberInit)(yyvsp[(1) - (3)].list)->last).loc.end = (yylsp[(3) - (3)]).start; ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].memberInit)); (yyval.list) = (yyvsp[(1) - (3)].list); ;}
break;
case 123:
/* Line 1464 of yacc.c */
-#line 1037 "grammar.y"
+#line 967 "grammar.y"
{ (yyval.prop) = MkProperty((yyvsp[(2) - (4)].list), null, (yyvsp[(3) - (4)].id), null, null); (yyval.prop).loc = (yyloc); ;}
break;
case 124:
/* Line 1464 of yacc.c */
-#line 1040 "grammar.y"
+#line 970 "grammar.y"
{ (yyval.prop) = MkProperty((yyvsp[(2) - (5)].list), (yyvsp[(3) - (5)].declarator), (yyvsp[(4) - (5)].id), null, null); (yyval.prop).loc = (yyloc); ;}
break;
case 125:
/* Line 1464 of yacc.c */
-#line 1043 "grammar.y"
+#line 973 "grammar.y"
{ (yyval.prop) = MkProperty((yyvsp[(2) - (3)].list), null, null, null, null); (yyval.prop).loc = (yyloc); ;}
break;
case 126:
/* Line 1464 of yacc.c */
-#line 1046 "grammar.y"
+#line 976 "grammar.y"
{ (yyval.prop) = MkProperty((yyvsp[(2) - (4)].list), (yyvsp[(3) - (4)].declarator), null, null, null); (yyval.prop).loc = (yyloc); ;}
break;
case 127:
/* Line 1464 of yacc.c */
-#line 1049 "grammar.y"
+#line 979 "grammar.y"
{ (yyval.prop) = MkProperty(null, null, null, null, null); (yyval.prop).loc = (yyloc); ;}
break;
case 129:
/* Line 1464 of yacc.c */
-#line 1055 "grammar.y"
+#line 985 "grammar.y"
{ (yyvsp[(1) - (3)].prop).setStmt = (yyvsp[(3) - (3)].stmt); ;}
break;
case 130:
/* Line 1464 of yacc.c */
-#line 1057 "grammar.y"
+#line 987 "grammar.y"
{ (yyvsp[(1) - (3)].prop).getStmt = (yyvsp[(3) - (3)].stmt); ;}
break;
case 131:
/* Line 1464 of yacc.c */
-#line 1059 "grammar.y"
+#line 989 "grammar.y"
{ (yyvsp[(1) - (3)].prop).issetStmt = (yyvsp[(3) - (3)].stmt); ;}
break;
case 132:
/* Line 1464 of yacc.c */
-#line 1061 "grammar.y"
+#line 991 "grammar.y"
{ (yyvsp[(1) - (2)].prop).isWatchable = true; ;}
break;
case 133:
/* Line 1464 of yacc.c */
-#line 1063 "grammar.y"
+#line 993 "grammar.y"
{ (yyvsp[(1) - (3)].prop).category = (yyvsp[(3) - (3)].exp); ;}
break;
case 134:
/* Line 1464 of yacc.c */
-#line 1067 "grammar.y"
+#line 997 "grammar.y"
{ (yyvsp[(1) - (2)].prop).loc.end = (yylsp[(2) - (2)]).end; (yyval.prop) = (yyvsp[(1) - (2)].prop); ;}
break;
case 135:
/* Line 1464 of yacc.c */
-#line 1072 "grammar.y"
+#line 1002 "grammar.y"
{ (yyval.prop) = MkProperty((yyvsp[(2) - (4)].list), null, (yyvsp[(3) - (4)].id), null, null); (yyval.prop).loc = (yyloc); ;}
break;
case 136:
/* Line 1464 of yacc.c */
-#line 1075 "grammar.y"
+#line 1005 "grammar.y"
{ (yyval.prop) = MkProperty((yyvsp[(2) - (5)].list), (yyvsp[(3) - (5)].declarator), (yyvsp[(4) - (5)].id), null, null); (yyval.prop).loc = (yyloc); ;}
break;
case 137:
/* Line 1464 of yacc.c */
-#line 1078 "grammar.y"
+#line 1008 "grammar.y"
{ (yyval.prop) = MkProperty((yyvsp[(2) - (3)].list), null, null, null, null); (yyval.prop).loc = (yyloc); ;}
break;
case 138:
/* Line 1464 of yacc.c */
-#line 1081 "grammar.y"
+#line 1011 "grammar.y"
{ (yyval.prop) = MkProperty((yyvsp[(2) - (4)].list), (yyvsp[(3) - (4)].declarator), null, null, null); (yyval.prop).loc = (yyloc); ;}
break;
case 139:
/* Line 1464 of yacc.c */
-#line 1084 "grammar.y"
+#line 1014 "grammar.y"
{ (yyval.prop) = MkProperty(null, null, null, null, null); (yyval.prop).loc = (yyloc); ;}
break;
case 141:
/* Line 1464 of yacc.c */
-#line 1090 "grammar.y"
+#line 1020 "grammar.y"
{ (yyvsp[(1) - (3)].prop).setStmt = (yyvsp[(3) - (3)].stmt); ;}
break;
case 142:
/* Line 1464 of yacc.c */
-#line 1092 "grammar.y"
+#line 1022 "grammar.y"
{ (yyvsp[(1) - (3)].prop).getStmt = (yyvsp[(3) - (3)].stmt); ;}
break;
case 143:
/* Line 1464 of yacc.c */
-#line 1096 "grammar.y"
+#line 1026 "grammar.y"
{ (yyvsp[(1) - (2)].prop).loc.end = (yylsp[(2) - (2)]).end; ;}
break;
case 144:
/* Line 1464 of yacc.c */
-#line 1101 "grammar.y"
+#line 1031 "grammar.y"
{ (yyval.list) = MkListOne((yyvsp[(1) - (1)].id)); ;}
break;
case 145:
/* Line 1464 of yacc.c */
-#line 1103 "grammar.y"
+#line 1033 "grammar.y"
{ ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].id)); ;}
break;
case 146:
/* Line 1464 of yacc.c */
-#line 1108 "grammar.y"
+#line 1038 "grammar.y"
{ (yyval.propertyWatch) = MkPropertyWatch((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].stmt)); ;}
break;
case 147:
/* Line 1464 of yacc.c */
-#line 1110 "grammar.y"
+#line 1040 "grammar.y"
{ (yyval.propertyWatch) = MkDeleteWatch((yyvsp[(2) - (2)].stmt)); ;}
break;
case 148:
/* Line 1464 of yacc.c */
-#line 1115 "grammar.y"
+#line 1045 "grammar.y"
{ (yyval.list) = MkListOne((yyvsp[(1) - (1)].propertyWatch)); ;}
break;
case 149:
/* Line 1464 of yacc.c */
-#line 1117 "grammar.y"
+#line 1047 "grammar.y"
{ ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].propertyWatch)); ;}
break;
case 150:
/* Line 1464 of yacc.c */
-#line 1122 "grammar.y"
+#line 1052 "grammar.y"
{ (yyval.propertyWatch) = MkPropertyWatch((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].stmt)); ;}
break;
case 151:
/* Line 1464 of yacc.c */
-#line 1127 "grammar.y"
+#line 1057 "grammar.y"
{ (yyval.stmt) = MkWatchStmt(null, (yyvsp[(3) - (7)].exp), (yyvsp[(6) - (7)].list)); ;}
break;
case 152:
/* Line 1464 of yacc.c */
-#line 1129 "grammar.y"
+#line 1059 "grammar.y"
{ (yyval.stmt) = MkWatchStmt((yyvsp[(1) - (9)].exp), (yyvsp[(5) - (9)].exp), (yyvsp[(8) - (9)].list)); ;}
break;
case 153:
/* Line 1464 of yacc.c */
-#line 1134 "grammar.y"
+#line 1064 "grammar.y"
{ (yyval.stmt) = MkStopWatchingStmt(null, (yyvsp[(3) - (6)].exp), (yyvsp[(5) - (6)].list)); ;}
break;
case 154:
/* Line 1464 of yacc.c */
-#line 1136 "grammar.y"
+#line 1066 "grammar.y"
{ (yyval.stmt) = MkStopWatchingStmt((yyvsp[(1) - (8)].exp), (yyvsp[(5) - (8)].exp), (yyvsp[(7) - (8)].list)); ;}
break;
case 155:
/* Line 1464 of yacc.c */
-#line 1138 "grammar.y"
+#line 1068 "grammar.y"
{ (yyval.stmt) = MkStopWatchingStmt(null, (yyvsp[(3) - (4)].exp), null); ;}
break;
case 156:
/* Line 1464 of yacc.c */
-#line 1140 "grammar.y"
+#line 1070 "grammar.y"
{ (yyval.stmt) = MkStopWatchingStmt((yyvsp[(1) - (6)].exp), (yyvsp[(5) - (6)].exp), null); ;}
break;
case 157:
/* Line 1464 of yacc.c */
-#line 1145 "grammar.y"
+#line 1075 "grammar.y"
{ (yyval.stmt) = MkFireWatchersStmt(null, null); ;}
break;
case 158:
/* Line 1464 of yacc.c */
-#line 1147 "grammar.y"
+#line 1077 "grammar.y"
{ (yyval.stmt) = MkFireWatchersStmt(null, (yyvsp[(2) - (2)].list)); ;}
break;
case 159:
/* Line 1464 of yacc.c */
-#line 1149 "grammar.y"
+#line 1079 "grammar.y"
{ (yyval.stmt) = MkFireWatchersStmt((yyvsp[(1) - (3)].exp), null); ;}
break;
case 160:
/* Line 1464 of yacc.c */
-#line 1151 "grammar.y"
+#line 1081 "grammar.y"
{ (yyval.stmt) = MkFireWatchersStmt((yyvsp[(1) - (4)].exp), (yyvsp[(4) - (4)].list)); ;}
break;
case 161:
/* Line 1464 of yacc.c */
-#line 1155 "grammar.y"
+#line 1085 "grammar.y"
{ (yyval.classDef) = (yyvsp[(1) - (2)].classDef); (yyval.classDef).loc.end = (yylsp[(2) - (2)]).end; ;}
break;
case 162:
/* Line 1464 of yacc.c */
-#line 1156 "grammar.y"
+#line 1086 "grammar.y"
{ (yyval.classDef) = MkClassDefDefaultProperty((yyvsp[(1) - (2)].list)); if((yyvsp[(1) - (2)].list)->last) ((MemberInit)(yyvsp[(1) - (2)].list)->last).loc.end = (yylsp[(2) - (2)]).start; (yyval.classDef).loc = (yyloc); ;}
break;
case 163:
/* Line 1464 of yacc.c */
-#line 1157 "grammar.y"
+#line 1087 "grammar.y"
{ (yyval.classDef) = MkClassDefFunction((yyvsp[(1) - (1)].classFunction)); (yyval.classDef).loc = (yyloc); (yyval.classDef).memberAccess = memberAccessStack[defaultMemberAccess]; ;}
break;
case 164:
/* Line 1464 of yacc.c */
-#line 1158 "grammar.y"
+#line 1088 "grammar.y"
{ (yyval.classDef) = MkClassDefProperty((yyvsp[(1) - (1)].prop)); (yyval.classDef).loc = (yyloc); (yyval.classDef).memberAccess = memberAccessStack[defaultMemberAccess]; ;}
break;
case 165:
/* Line 1464 of yacc.c */
-#line 1159 "grammar.y"
+#line 1089 "grammar.y"
{ (yyval.classDef) = MkClassDefFunction((yyvsp[(2) - (2)].classFunction)); (yyval.classDef).loc = (yyloc); (yyval.classDef).memberAccess = (yyvsp[(1) - (2)].declMode); ;}
break;
case 166:
/* Line 1464 of yacc.c */
-#line 1160 "grammar.y"
+#line 1090 "grammar.y"
{ (yyval.classDef) = MkClassDefProperty((yyvsp[(2) - (2)].prop)); (yyval.classDef).loc = (yyloc); (yyval.classDef).memberAccess = (yyvsp[(1) - (2)].declMode); ;}
break;
case 167:
/* Line 1464 of yacc.c */
-#line 1161 "grammar.y"
+#line 1091 "grammar.y"
{ (yyval.classDef) = MkClassDefClassProperty((yyvsp[(1) - (1)].prop)); (yyval.classDef).loc = (yyloc); ;}
break;
case 168:
/* Line 1464 of yacc.c */
-#line 1162 "grammar.y"
+#line 1092 "grammar.y"
{ (yyval.classDef) = null; deleteWatchable = true; ;}
break;
case 169:
/* Line 1464 of yacc.c */
-#line 1163 "grammar.y"
+#line 1093 "grammar.y"
{ (yyval.classDef) = MkClassDefNoExpansion(); ;}
break;
case 170:
/* Line 1464 of yacc.c */
-#line 1164 "grammar.y"
+#line 1094 "grammar.y"
{ (yyval.classDef) = MkClassDefFixed(); ;}
break;
case 171:
/* Line 1464 of yacc.c */
-#line 1165 "grammar.y"
+#line 1095 "grammar.y"
{ (yyval.classDef) = MkClassDefClassPropertyValue((yyvsp[(3) - (7)].id), (yyvsp[(6) - (7)].initializer)); (yyval.classDef).loc = (yyloc); ;}
break;
case 172:
/* Line 1464 of yacc.c */
-#line 1167 "grammar.y"
+#line 1097 "grammar.y"
{ (yyval.classDef) = null; ;}
break;
case 173:
/* Line 1464 of yacc.c */
-#line 1168 "grammar.y"
+#line 1098 "grammar.y"
{ memberAccessStack[defaultMemberAccess] = (yyvsp[(1) - (2)].declMode); if(defaultMemberAccess == 0) { (yyval.classDef) = MkClassDefMemberAccess(); (yyval.classDef).memberAccess = (yyvsp[(1) - (2)].declMode); (yyval.classDef).loc = (yyloc); } else (yyval.classDef) = null; ;}
break;
case 174:
/* Line 1464 of yacc.c */
-#line 1170 "grammar.y"
+#line 1100 "grammar.y"
{ (yyval.classDef) = MkClassDefAccessOverride((yyvsp[(1) - (4)].declMode), (yyvsp[(3) - (4)].id)); (yyval.classDef).loc = (yyloc); ;}
break;
case 175:
/* Line 1464 of yacc.c */
-#line 1174 "grammar.y"
+#line 1104 "grammar.y"
{ (yyval.classDef) = MkClassDefFunction((yyvsp[(1) - (1)].classFunction)); (yyval.classDef).loc = (yyvsp[(1) - (1)].classFunction).loc; (yyval.classDef).loc.end.charPos++; (yyval.classDef).loc.end.pos++; (yyval.classDef).memberAccess = memberAccessStack[defaultMemberAccess]; ;}
break;
case 176:
/* Line 1464 of yacc.c */
-#line 1177 "grammar.y"
+#line 1107 "grammar.y"
{ (yyval.classDef) = MkClassDefDeclaration(MkStructDeclaration((yyvsp[(1) - (1)].list), null, null)); (yyval.classDef).decl.loc = (yyloc); (yyval.classDef).loc = (yyloc); (yyval.classDef).memberAccess = memberAccessStack[defaultMemberAccess]; ;}
break;
case 177:
/* Line 1464 of yacc.c */
-#line 1178 "grammar.y"
+#line 1108 "grammar.y"
{ (yyval.classDef) = MkClassDefDeclaration(MkStructDeclaration((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].list), null)); (yyval.classDef).decl.loc = (yyloc); (yyval.classDef).loc = (yyloc); (yyval.classDef).memberAccess = memberAccessStack[defaultMemberAccess]; ;}
break;
case 178:
/* Line 1464 of yacc.c */
-#line 1179 "grammar.y"
+#line 1109 "grammar.y"
{ (yyval.classDef) = MkClassDefDeclaration(MkStructDeclaration((yyvsp[(2) - (3)].list), (yyvsp[(3) - (3)].list), null)); (yyval.classDef).decl.loc = (yyloc); (yyval.classDef).loc = (yyloc); (yyval.classDef).memberAccess = (yyvsp[(1) - (3)].declMode); ;}
break;
case 179:
/* Line 1464 of yacc.c */
-#line 1180 "grammar.y"
+#line 1110 "grammar.y"
{ (yyval.classDef) = MkClassDefDeclaration(MkStructDeclaration((yyvsp[(2) - (2)].list), null, null)); (yyval.classDef).decl.loc = (yyloc); (yyval.classDef).loc = (yyloc); (yyval.classDef).memberAccess = (yyvsp[(1) - (2)].declMode); ;}
break;
case 180:
/* Line 1464 of yacc.c */
-#line 1181 "grammar.y"
+#line 1111 "grammar.y"
{ (yyval.classDef) = MkClassDefDeclaration(MkDeclarationClassInst((yyvsp[(2) - (2)].instance))); (yyval.classDef).loc = (yyloc); (yyval.classDef).decl.loc = (yyloc); (yyval.classDef).memberAccess = (yyvsp[(1) - (2)].declMode); ;}
break;
case 181:
/* Line 1464 of yacc.c */
-#line 1182 "grammar.y"
+#line 1112 "grammar.y"
{ (yyval.classDef) = MkClassDefDeclaration(MkDeclarationClassInst((yyvsp[(2) - (2)].instance))); (yyval.classDef).loc = (yyloc); (yyval.classDef).decl.loc = (yyloc); (yyval.classDef).memberAccess = (yyvsp[(1) - (2)].declMode); ;}
break;
case 182:
/* Line 1464 of yacc.c */
-#line 1183 "grammar.y"
+#line 1113 "grammar.y"
{ (yyval.classDef) = MkClassDefClassData(MkStructDeclaration((yyvsp[(2) - (3)].list), (yyvsp[(3) - (3)].list), null)); (yyval.classDef).decl.loc = (yyloc); (yyval.classDef).loc = (yyloc); ;}
break;
case 183:
/* Line 1464 of yacc.c */
-#line 1184 "grammar.y"
+#line 1114 "grammar.y"
{ (yyval.classDef) = MkClassDefPropertyWatch((yyvsp[(1) - (1)].propertyWatch)); (yyval.classDef).loc = (yyloc); ;}
break;
case 184:
/* Line 1464 of yacc.c */
-#line 1185 "grammar.y"
+#line 1115 "grammar.y"
{ (yyval.classDef) = MkClassDefDesigner((yyvsp[(2) - (2)].id).string); FreeIdentifier((yyvsp[(2) - (2)].id)); ;}
break;
case 185:
/* Line 1464 of yacc.c */
-#line 1186 "grammar.y"
+#line 1116 "grammar.y"
{ (yyval.classDef) = MkClassDefDesigner((yyvsp[(2) - (2)].specifier).name); FreeSpecifier((yyvsp[(2) - (2)].specifier)); ;}
break;
case 186:
/* Line 1464 of yacc.c */
-#line 1187 "grammar.y"
+#line 1117 "grammar.y"
{ (yyval.classDef) = MkClassDefDesignerDefaultProperty((yyvsp[(2) - (2)].id)); ;}
break;
case 187:
/* Line 1464 of yacc.c */
-#line 1188 "grammar.y"
+#line 1118 "grammar.y"
{ (yyval.classDef) = MkClassDefDeclaration(MkDeclarationClassInst((yyvsp[(1) - (1)].instance))); (yyval.classDef).loc = (yyloc); (yyval.classDef).decl.loc = (yyloc); (yyval.classDef).memberAccess = memberAccessStack[defaultMemberAccess]; ;}
break;
case 188:
/* Line 1464 of yacc.c */
-#line 1189 "grammar.y"
+#line 1119 "grammar.y"
{ (yyval.classDef) = MkClassDefDeclaration(MkDeclarationClassInst((yyvsp[(1) - (1)].instance))); (yyval.classDef).loc = (yyloc); (yyval.classDef).decl.loc = (yyloc); (yyval.classDef).memberAccess = memberAccessStack[defaultMemberAccess]; ;}
break;
case 189:
/* Line 1464 of yacc.c */
-#line 1190 "grammar.y"
+#line 1120 "grammar.y"
{ (yyval.classDef) = MkClassDefDefaultProperty((yyvsp[(1) - (1)].list)); if((yyvsp[(1) - (1)].list)->last) ((MemberInit)(yyvsp[(1) - (1)].list)->last).loc.end = (yylsp[(1) - (1)]).end; (yyval.classDef).loc = (yyloc); ;}
break;
case 190:
/* Line 1464 of yacc.c */
-#line 1192 "grammar.y"
+#line 1122 "grammar.y"
{ (yyval.classDef) = MkClassDefDeclaration(MkDeclarationClassInst((yyvsp[(1) - (2)].instance))); (yyval.classDef).loc = (yyvsp[(1) - (2)].instance).loc; (yyval.classDef).decl.loc = (yyval.classDef).loc; (yyval.classDef).memberAccess = memberAccessStack[defaultMemberAccess]; ;}
break;
case 191:
/* Line 1464 of yacc.c */
-#line 1193 "grammar.y"
+#line 1123 "grammar.y"
{ (yyval.classDef) = MkClassDefDeclaration(MkDeclarationClassInst((yyvsp[(1) - (2)].instance))); (yyval.classDef).loc = (yyvsp[(1) - (2)].instance).loc; (yyval.classDef).decl.loc = (yyval.classDef).loc; (yyval.classDef).memberAccess = memberAccessStack[defaultMemberAccess]; ;}
break;
case 192:
/* Line 1464 of yacc.c */
-#line 1197 "grammar.y"
+#line 1127 "grammar.y"
{ (yyval.classDef) = MkClassDefFunction((yyvsp[(2) - (2)].classFunction)); (yyval.classDef).loc = (yyloc); (yyval.classDef).loc.end.charPos++; (yyval.classDef).loc.end.pos++; (yyval.classDef).memberAccess = (yyvsp[(1) - (2)].declMode); ;}
break;
case 193:
/* Line 1464 of yacc.c */
-#line 1198 "grammar.y"
+#line 1128 "grammar.y"
{ (yyval.classDef) = MkClassDefDeclaration(MkDeclarationClassInst((yyvsp[(2) - (3)].instance))); (yyval.classDef).loc = (yyloc); (yyval.classDef).decl.loc = (yyval.classDef).loc; (yyval.classDef).memberAccess = (yyvsp[(1) - (3)].declMode); ;}
break;
case 194:
/* Line 1464 of yacc.c */
-#line 1199 "grammar.y"
+#line 1129 "grammar.y"
{ (yyval.classDef) = MkClassDefDeclaration(MkDeclarationClassInst((yyvsp[(2) - (3)].instance))); (yyval.classDef).loc = (yyloc); (yyval.classDef).decl.loc = (yyval.classDef).loc; (yyval.classDef).memberAccess = (yyvsp[(1) - (3)].declMode); ;}
break;
case 195:
/* Line 1464 of yacc.c */
-#line 1203 "grammar.y"
+#line 1133 "grammar.y"
{ (yyval.classDef) = MkClassDefDefaultProperty((yyvsp[(1) - (1)].list)); (yyval.classDef).loc = (yyloc); (yyval.classDef).loc.end.charPos++; (yyval.classDef).loc.end.pos++; ;}
break;
case 196:
/* Line 1464 of yacc.c */
-#line 1207 "grammar.y"
+#line 1137 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].classDef)); ;}
break;
case 197:
/* Line 1464 of yacc.c */
-#line 1208 "grammar.y"
+#line 1138 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].classDef)); ;}
break;
case 198:
/* Line 1464 of yacc.c */
-#line 1209 "grammar.y"
+#line 1139 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].classDef)); ;}
break;
case 199:
/* Line 1464 of yacc.c */
-#line 1213 "grammar.y"
+#line 1143 "grammar.y"
{ yyerror(); (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].classDef)); ;}
break;
case 202:
/* Line 1464 of yacc.c */
-#line 1216 "grammar.y"
+#line 1146 "grammar.y"
{ yyerror(); (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyval.list), (yyvsp[(2) - (2)].classDef)); ;}
break;
case 203:
/* Line 1464 of yacc.c */
-#line 1217 "grammar.y"
+#line 1147 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyval.list), (yyvsp[(2) - (2)].classDef)); ;}
break;
case 204:
/* Line 1464 of yacc.c */
-#line 1221 "grammar.y"
+#line 1151 "grammar.y"
{ (yyval.templateDatatype) = MkTemplateDatatype((yyvsp[(1) - (1)].list), null); ;}
break;
case 205:
/* Line 1464 of yacc.c */
-#line 1222 "grammar.y"
+#line 1152 "grammar.y"
{ (yyval.templateDatatype) = MkTemplateDatatype((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
break;
case 206:
/* Line 1464 of yacc.c */
-#line 1234 "grammar.y"
+#line 1164 "grammar.y"
{ (yyval.templateArgument) = MkTemplateTypeArgument(MkTemplateDatatype((yyvsp[(1) - (1)].list), null)); ;}
break;
case 207:
/* Line 1464 of yacc.c */
-#line 1235 "grammar.y"
+#line 1165 "grammar.y"
{ (yyval.templateArgument) = MkTemplateTypeArgument(MkTemplateDatatype((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator))); ;}
break;
case 208:
/* Line 1464 of yacc.c */
-#line 1239 "grammar.y"
+#line 1169 "grammar.y"
{ (yyval.templateParameter) = MkTypeTemplateParameter((yyvsp[(2) - (2)].id), null, null); ;}
break;
case 209:
/* Line 1464 of yacc.c */
-#line 1240 "grammar.y"
+#line 1170 "grammar.y"
{ (yyval.templateParameter) = MkTypeTemplateParameter((yyvsp[(2) - (4)].id), null, (yyvsp[(4) - (4)].templateArgument)); ;}
break;
case 210:
/* Line 1464 of yacc.c */
-#line 1241 "grammar.y"
+#line 1171 "grammar.y"
{ (yyval.templateParameter) = MkTypeTemplateParameter((yyvsp[(2) - (4)].id), (yyvsp[(4) - (4)].templateDatatype), null); ;}
break;
case 211:
/* Line 1464 of yacc.c */
-#line 1242 "grammar.y"
+#line 1172 "grammar.y"
{ (yyval.templateParameter) = MkTypeTemplateParameter((yyvsp[(2) - (6)].id), (yyvsp[(4) - (6)].templateDatatype), (yyvsp[(6) - (6)].templateArgument)); ;}
break;
case 212:
/* Line 1464 of yacc.c */
-#line 1243 "grammar.y"
+#line 1173 "grammar.y"
{ (yyval.templateParameter) = MkTypeTemplateParameter(MkIdentifier((yyvsp[(2) - (2)].string)), null, null); delete (yyvsp[(2) - (2)].string); ;}
break;
case 213:
/* Line 1464 of yacc.c */
-#line 1244 "grammar.y"
+#line 1174 "grammar.y"
{ (yyval.templateParameter) = MkTypeTemplateParameter(MkIdentifier((yyvsp[(2) - (4)].string)), null, (yyvsp[(4) - (4)].templateArgument)); ;}
break;
case 214:
/* Line 1464 of yacc.c */
-#line 1245 "grammar.y"
+#line 1175 "grammar.y"
{ (yyval.templateParameter) = MkTypeTemplateParameter(MkIdentifier((yyvsp[(2) - (4)].string)), (yyvsp[(4) - (4)].templateDatatype), null); ;}
break;
case 215:
/* Line 1464 of yacc.c */
-#line 1246 "grammar.y"
+#line 1176 "grammar.y"
{ (yyval.templateParameter) = MkTypeTemplateParameter(MkIdentifier((yyvsp[(2) - (6)].string)), (yyvsp[(4) - (6)].templateDatatype), (yyvsp[(6) - (6)].templateArgument)); ;}
break;
case 216:
/* Line 1464 of yacc.c */
-#line 1250 "grammar.y"
+#line 1180 "grammar.y"
{ (yyval.templateArgument) = MkTemplateIdentifierArgument((yyvsp[(1) - (1)].id)); ;}
break;
case 217:
/* Line 1464 of yacc.c */
-#line 1254 "grammar.y"
+#line 1184 "grammar.y"
{ (yyval.templateParameter) = MkIdentifierTemplateParameter((yyvsp[(1) - (1)].id), dataMember, null); ;}
break;
case 218:
/* Line 1464 of yacc.c */
-#line 1255 "grammar.y"
+#line 1185 "grammar.y"
{ (yyval.templateParameter) = MkIdentifierTemplateParameter((yyvsp[(1) - (3)].id), dataMember, (yyvsp[(3) - (3)].templateArgument)); ;}
break;
case 219:
/* Line 1464 of yacc.c */
-#line 1259 "grammar.y"
+#line 1189 "grammar.y"
{ (yyval.templateArgument) = MkTemplateExpressionArgument((yyvsp[(1) - (1)].exp)); ;}
break;
case 220:
/* Line 1464 of yacc.c */
-#line 1267 "grammar.y"
+#line 1197 "grammar.y"
{ (yyval.templateParameter) = MkExpressionTemplateParameter((yyvsp[(2) - (4)].id), MkTemplateDatatype((yyvsp[(1) - (4)].list), null), (yyvsp[(4) - (4)].templateArgument)); ;}
break;
case 221:
/* Line 1464 of yacc.c */
-#line 1268 "grammar.y"
+#line 1198 "grammar.y"
{ (yyval.templateParameter) = MkExpressionTemplateParameter((yyvsp[(3) - (5)].id), MkTemplateDatatype((yyvsp[(1) - (5)].list), (yyvsp[(2) - (5)].declarator)), (yyvsp[(5) - (5)].templateArgument)); ;}
break;
case 225:
/* Line 1464 of yacc.c */
-#line 1278 "grammar.y"
+#line 1208 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].templateParameter)); ;}
break;
case 226:
/* Line 1464 of yacc.c */
-#line 1279 "grammar.y"
+#line 1209 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].templateParameter)); ;}
break;
case 230:
/* Line 1464 of yacc.c */
-#line 1286 "grammar.y"
+#line 1216 "grammar.y"
{ (yyval.templateArgument) = (yyvsp[(3) - (3)].templateArgument); (yyval.templateArgument).name = (yyvsp[(1) - (3)].id); (yyval.templateArgument).loc = (yyloc); ;}
break;
case 231:
/* Line 1464 of yacc.c */
-#line 1287 "grammar.y"
+#line 1217 "grammar.y"
{ (yyval.templateArgument) = (yyvsp[(3) - (3)].templateArgument); (yyval.templateArgument).name = (yyvsp[(1) - (3)].id); (yyval.templateArgument).loc = (yyloc); ;}
break;
case 232:
/* Line 1464 of yacc.c */
-#line 1288 "grammar.y"
+#line 1218 "grammar.y"
{ (yyval.templateArgument) = (yyvsp[(3) - (3)].templateArgument); (yyval.templateArgument).name = (yyvsp[(1) - (3)].id); (yyval.templateArgument).loc = (yyloc); ;}
break;
case 233:
/* Line 1464 of yacc.c */
-#line 1328 "grammar.y"
+#line 1258 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].templateArgument)); ;}
break;
case 234:
/* Line 1464 of yacc.c */
-#line 1329 "grammar.y"
+#line 1259 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].templateArgument)); ;}
break;
case 235:
/* Line 1464 of yacc.c */
-#line 1334 "grammar.y"
+#line 1264 "grammar.y"
{
if(curContext != globalContext)
PopContext(curContext);
case 236:
/* Line 1464 of yacc.c */
-#line 1341 "grammar.y"
- { (void)(yyvsp[(1) - (2)].context); (yyval.symbol) = DeclClassAddNameSpace((yyvsp[(2) - (2)].id).string); FreeIdentifier((yyvsp[(2) - (2)].id)); (yyval.symbol).nameLoc = (yylsp[(2) - (2)]); memberAccessStack[++defaultMemberAccess] = privateAccess; ;}
+#line 1271 "grammar.y"
+ { (void)(yyvsp[(1) - (2)].context); (yyval.symbol) = DeclClassAddNameSpace((yyvsp[(2) - (2)].id)._class, (yyvsp[(2) - (2)].id).string); FreeIdentifier((yyvsp[(2) - (2)].id)); (yyval.symbol).nameLoc = (yylsp[(2) - (2)]); memberAccessStack[++defaultMemberAccess] = privateAccess; ;}
break;
case 237:
/* Line 1464 of yacc.c */
-#line 1343 "grammar.y"
+#line 1273 "grammar.y"
{
- (void)(yyvsp[(1) - (2)].context); (yyval.symbol) = DeclClass((yyvsp[(2) - (2)].specifier).name);
+ (void)(yyvsp[(1) - (2)].context); (yyval.symbol) = DeclClass((yyvsp[(2) - (2)].specifier).nsSpec, (yyvsp[(2) - (2)].specifier).name);
(yyval.symbol).nameLoc = (yylsp[(2) - (2)]);
FreeSpecifier((yyvsp[(2) - (2)].specifier));
++defaultMemberAccess;
case 238:
/* Line 1464 of yacc.c */
-#line 1350 "grammar.y"
- { (void)(yyvsp[(2) - (3)].context); (yyval.symbol) = DeclClassAddNameSpace((yyvsp[(3) - (3)].id).string); FreeIdentifier((yyvsp[(1) - (3)].id)); FreeIdentifier((yyvsp[(3) - (3)].id)); (yyval.symbol).nameLoc = (yylsp[(3) - (3)]); (yyval.symbol).isRemote = true; memberAccessStack[++defaultMemberAccess] = privateAccess; ;}
+#line 1280 "grammar.y"
+ { (void)(yyvsp[(2) - (3)].context); (yyval.symbol) = DeclClassAddNameSpace((yyvsp[(3) - (3)].id)._class, (yyvsp[(3) - (3)].id).string); FreeIdentifier((yyvsp[(1) - (3)].id)); FreeIdentifier((yyvsp[(3) - (3)].id)); (yyval.symbol).nameLoc = (yylsp[(3) - (3)]); (yyval.symbol).isRemote = true; memberAccessStack[++defaultMemberAccess] = privateAccess; ;}
break;
case 239:
/* Line 1464 of yacc.c */
-#line 1351 "grammar.y"
- { (void)(yyvsp[(2) - (3)].context); (yyval.symbol) = DeclClass((yyvsp[(3) - (3)].specifier).name); FreeIdentifier((yyvsp[(1) - (3)].id)); (yyval.symbol).nameLoc = (yylsp[(3) - (3)]); (yyval.symbol).isRemote = true; FreeSpecifier((yyvsp[(3) - (3)].specifier)); memberAccessStack[++defaultMemberAccess] = privateAccess; ;}
+#line 1281 "grammar.y"
+ { (void)(yyvsp[(2) - (3)].context); (yyval.symbol) = DeclClass((yyvsp[(3) - (3)].specifier).nsSpec, (yyvsp[(3) - (3)].specifier).name); FreeIdentifier((yyvsp[(1) - (3)].id)); (yyval.symbol).nameLoc = (yylsp[(3) - (3)]); (yyval.symbol).isRemote = true; FreeSpecifier((yyvsp[(3) - (3)].specifier)); memberAccessStack[++defaultMemberAccess] = privateAccess; ;}
break;
case 240:
/* Line 1464 of yacc.c */
-#line 1353 "grammar.y"
- { (void)(yyvsp[(1) - (5)].context); (yyval.symbol) = DeclClassAddNameSpace((yyvsp[(2) - (5)].id).string); (yyval.symbol).templateParams = (yyvsp[(4) - (5)].list); FreeIdentifier((yyvsp[(2) - (5)].id)); (yyval.symbol).nameLoc = (yylsp[(2) - (5)]); memberAccessStack[++defaultMemberAccess] = privateAccess; ;}
+#line 1283 "grammar.y"
+ { (void)(yyvsp[(1) - (5)].context); (yyval.symbol) = DeclClassAddNameSpace((yyvsp[(2) - (5)].id)._class, (yyvsp[(2) - (5)].id).string); (yyval.symbol).templateParams = (yyvsp[(4) - (5)].list); FreeIdentifier((yyvsp[(2) - (5)].id)); (yyval.symbol).nameLoc = (yylsp[(2) - (5)]); memberAccessStack[++defaultMemberAccess] = privateAccess; ;}
break;
case 241:
/* Line 1464 of yacc.c */
-#line 1355 "grammar.y"
+#line 1285 "grammar.y"
{
- (void)(yyvsp[(1) - (5)].context); (yyval.symbol) = DeclClass((yyvsp[(2) - (5)].specifier).name);
+ (void)(yyvsp[(1) - (5)].context); (yyval.symbol) = DeclClass((yyvsp[(2) - (5)].specifier).nsSpec, (yyvsp[(2) - (5)].specifier).name);
(yyval.symbol).templateParams = (yyvsp[(4) - (5)].list);
(yyval.symbol).nameLoc = (yylsp[(2) - (5)]);
FreeSpecifier((yyvsp[(2) - (5)].specifier));
case 242:
/* Line 1464 of yacc.c */
-#line 1363 "grammar.y"
- { (void)(yyvsp[(2) - (6)].context); (yyval.symbol) = DeclClassAddNameSpace((yyvsp[(3) - (6)].id).string); (yyval.symbol).templateParams = (yyvsp[(5) - (6)].list); FreeIdentifier((yyvsp[(1) - (6)].id)); FreeIdentifier((yyvsp[(3) - (6)].id)); (yyval.symbol).nameLoc = (yylsp[(3) - (6)]); (yyval.symbol).isRemote = true; memberAccessStack[++defaultMemberAccess] = privateAccess; ;}
+#line 1293 "grammar.y"
+ { (void)(yyvsp[(2) - (6)].context); (yyval.symbol) = DeclClassAddNameSpace((yyvsp[(3) - (6)].id)._class, (yyvsp[(3) - (6)].id).string); (yyval.symbol).templateParams = (yyvsp[(5) - (6)].list); FreeIdentifier((yyvsp[(1) - (6)].id)); FreeIdentifier((yyvsp[(3) - (6)].id)); (yyval.symbol).nameLoc = (yylsp[(3) - (6)]); (yyval.symbol).isRemote = true; memberAccessStack[++defaultMemberAccess] = privateAccess; ;}
break;
case 243:
/* Line 1464 of yacc.c */
-#line 1364 "grammar.y"
- { (void)(yyvsp[(2) - (6)].context); (yyval.symbol) = DeclClass((yyvsp[(3) - (6)].specifier).name); (yyval.symbol).templateParams = (yyvsp[(5) - (6)].list); FreeIdentifier((yyvsp[(1) - (6)].id)); (yyval.symbol).nameLoc = (yylsp[(3) - (6)]); (yyval.symbol).isRemote = true; FreeSpecifier((yyvsp[(3) - (6)].specifier)); memberAccessStack[++defaultMemberAccess] = privateAccess; ;}
+#line 1294 "grammar.y"
+ { (void)(yyvsp[(2) - (6)].context); (yyval.symbol) = DeclClass((yyvsp[(3) - (6)].specifier).nsSpec, (yyvsp[(3) - (6)].specifier).name); (yyval.symbol).templateParams = (yyvsp[(5) - (6)].list); FreeIdentifier((yyvsp[(1) - (6)].id)); (yyval.symbol).nameLoc = (yylsp[(3) - (6)]); (yyval.symbol).isRemote = true; FreeSpecifier((yyvsp[(3) - (6)].specifier)); memberAccessStack[++defaultMemberAccess] = privateAccess; ;}
break;
case 244:
/* Line 1464 of yacc.c */
-#line 1369 "grammar.y"
+#line 1299 "grammar.y"
{
(yyval._class).loc = (yyloc);
(yyval._class) = (yyvsp[(1) - (2)]._class);
case 245:
/* Line 1464 of yacc.c */
-#line 1376 "grammar.y"
+#line 1306 "grammar.y"
{
(yyval._class) = (yyvsp[(1) - (2)]._class); (yyval._class).definitions = MkList(); (yyval._class).blockStart = (yylsp[(2) - (2)]); (yyval._class).loc = (yyloc);
POP_DEFAULT_ACCESS
case 246:
/* Line 1464 of yacc.c */
-#line 1383 "grammar.y"
+#line 1313 "grammar.y"
{
(yyval._class) = MkClass((yyvsp[(1) - (3)].symbol), null, MkList()); (yyval._class).blockStart = (yylsp[(2) - (3)]); (yyval._class).loc = (yyloc);
POP_DEFAULT_ACCESS
case 247:
/* Line 1464 of yacc.c */
-#line 1389 "grammar.y"
+#line 1319 "grammar.y"
{
(yyval._class) = (yyvsp[(1) - (3)]._class); (yyval._class).definitions = MkList(); (yyval._class).blockStart = (yylsp[(2) - (3)]); (yyval._class).loc = (yyloc);
POP_DEFAULT_ACCESS
case 248:
/* Line 1464 of yacc.c */
-#line 1396 "grammar.y"
+#line 1326 "grammar.y"
{
- (void)(yyvsp[(1) - (3)].context); (yyval._class) = MkClass(DeclClassAddNameSpace((yyvsp[(2) - (3)].id).string), null, null); FreeIdentifier((yyvsp[(2) - (3)].id));
+ (void)(yyvsp[(1) - (3)].context); (yyval._class) = MkClass(DeclClassAddNameSpace((yyvsp[(2) - (3)].id)._class, (yyvsp[(2) - (3)].id).string), null, null); FreeIdentifier((yyvsp[(2) - (3)].id));
POP_DEFAULT_ACCESS
PopContext(curContext);
;}
case 249:
/* Line 1464 of yacc.c */
-#line 1402 "grammar.y"
+#line 1332 "grammar.y"
{
- (void)(yyvsp[(1) - (3)].context); (yyval._class) = MkClass(DeclClass((yyvsp[(2) - (3)].specifier).name), null, null); FreeSpecifier((yyvsp[(2) - (3)].specifier));
+ (void)(yyvsp[(1) - (3)].context); (yyval._class) = MkClass(DeclClass((yyvsp[(2) - (3)].specifier).nsSpec, (yyvsp[(2) - (3)].specifier).name), null, null); FreeSpecifier((yyvsp[(2) - (3)].specifier));
POP_DEFAULT_ACCESS
PopContext(curContext);
;}
case 250:
/* Line 1464 of yacc.c */
-#line 1411 "grammar.y"
+#line 1341 "grammar.y"
{
(yyval._class) = MkClass((yyvsp[(1) - (3)].symbol), (yyvsp[(3) - (3)].list), null);
;}
case 251:
/* Line 1464 of yacc.c */
-#line 1418 "grammar.y"
+#line 1348 "grammar.y"
{
(yyval._class) = MkClass((yyvsp[(1) - (3)].symbol), null, (yyvsp[(3) - (3)].list)); (yyval._class).deleteWatchable = deleteWatchable; deleteWatchable = false; (yyval._class).blockStart = (yylsp[(2) - (3)]); (yyval._class).loc = (yyloc); (yyval._class).loc.end.charPos++; (yyval._class).loc.end.pos++;
POP_DEFAULT_ACCESS
case 252:
/* Line 1464 of yacc.c */
-#line 1424 "grammar.y"
+#line 1354 "grammar.y"
{
(yyval._class) = (yyvsp[(1) - (3)]._class); (yyval._class).definitions = (yyvsp[(3) - (3)].list); (yyval._class).deleteWatchable = deleteWatchable; deleteWatchable = false; (yyval._class).blockStart = (yylsp[(2) - (3)]); (yyval._class).loc = (yyloc); (yyval._class).loc.end.charPos++; (yyval._class).loc.end.pos++;
POP_DEFAULT_ACCESS
case 253:
/* Line 1464 of yacc.c */
-#line 1430 "grammar.y"
+#line 1360 "grammar.y"
{
(yyval._class) = MkClass((yyvsp[(1) - (3)].symbol), null, (yyvsp[(3) - (3)].list)); (yyval._class).deleteWatchable = deleteWatchable; deleteWatchable = false; (yyval._class).blockStart = (yylsp[(2) - (3)]); (yyval._class).loc = (yyloc); (yyval._class).loc.end.charPos++; (yyval._class).loc.end.pos++;
POP_DEFAULT_ACCESS
case 254:
/* Line 1464 of yacc.c */
-#line 1436 "grammar.y"
+#line 1366 "grammar.y"
{
(yyval._class) = (yyvsp[(1) - (3)]._class); (yyval._class).definitions = (yyvsp[(3) - (3)].list); (yyval._class).deleteWatchable = deleteWatchable; deleteWatchable = false; (yyval._class).blockStart = (yylsp[(2) - (3)]); (yyval._class).loc = (yyloc); (yyval._class).loc.end.charPos++; (yyval._class).loc.end.pos++;
POP_DEFAULT_ACCESS
case 255:
/* Line 1464 of yacc.c */
-#line 1442 "grammar.y"
+#line 1372 "grammar.y"
{
(yyval._class) = MkClass((yyvsp[(1) - (3)].symbol), null, MkList()); (yyval._class).deleteWatchable = deleteWatchable; deleteWatchable = false; (yyval._class).blockStart = (yylsp[(2) - (3)]); (yyval._class).loc = (yyloc); (yyval._class).loc.end.charPos++; (yyval._class).loc.end.pos++;
POP_DEFAULT_ACCESS
case 256:
/* Line 1464 of yacc.c */
-#line 1448 "grammar.y"
+#line 1378 "grammar.y"
{
(yyval._class) = (yyvsp[(1) - (3)]._class); (yyval._class).definitions = MkList(); (yyval._class).deleteWatchable = deleteWatchable; deleteWatchable = false; (yyval._class).blockStart = (yylsp[(2) - (3)]); (yyval._class).loc = (yyloc); (yyval._class).loc.end.charPos++; (yyval._class).loc.end.pos++;
POP_DEFAULT_ACCESS
case 257:
/* Line 1464 of yacc.c */
-#line 1459 "grammar.y"
+#line 1389 "grammar.y"
{ (yyval.id) = MkIdentifier(yytext); (yyval.id).loc = (yylsp[(1) - (1)]); ;}
break;
case 259:
/* Line 1464 of yacc.c */
-#line 1465 "grammar.y"
+#line 1395 "grammar.y"
{ (yyval.exp) = MkExpBrackets((yyvsp[(2) - (3)].list)); (yyval.exp).loc = (yyloc); ;}
break;
case 260:
/* Line 1464 of yacc.c */
-#line 1469 "grammar.y"
+#line 1399 "grammar.y"
{ (yyval.exp) = MkExpString((yyvsp[(1) - (1)].string)); delete (yyvsp[(1) - (1)].string); (yyval.exp).loc = (yyloc); ;}
break;
case 261:
/* Line 1464 of yacc.c */
-#line 1470 "grammar.y"
+#line 1400 "grammar.y"
{ (yyval.exp) = MkExpIntlString((yyvsp[(2) - (2)].string), null); delete (yyvsp[(2) - (2)].string); (yyval.exp).loc = (yyloc); ;}
break;
case 262:
/* Line 1464 of yacc.c */
-#line 1471 "grammar.y"
+#line 1401 "grammar.y"
{ (yyval.exp) = MkExpIntlString((yyvsp[(4) - (4)].string), (yyvsp[(2) - (4)].string)); delete (yyvsp[(2) - (4)].string); delete (yyvsp[(4) - (4)].string); (yyval.exp).loc = (yyloc); ;}
break;
case 263:
/* Line 1464 of yacc.c */
-#line 1475 "grammar.y"
+#line 1405 "grammar.y"
{ (yyval.exp) = MkExpConstant(yytext); (yyval.exp).loc = (yyloc); ;}
break;
case 264:
/* Line 1464 of yacc.c */
-#line 1479 "grammar.y"
+#line 1409 "grammar.y"
{ (yyval.exp) = MkExpIdentifier((yyvsp[(1) - (1)].id)); (yyval.exp).loc = (yyloc); ;}
break;
case 265:
/* Line 1464 of yacc.c */
-#line 1480 "grammar.y"
+#line 1410 "grammar.y"
{ (yyval.exp) = MkExpInstance((yyvsp[(1) - (1)].instance)); (yyval.exp).loc = (yyloc); ;}
break;
case 266:
/* Line 1464 of yacc.c */
-#line 1481 "grammar.y"
+#line 1411 "grammar.y"
{ (yyval.exp) = MkExpExtensionCompound((yyvsp[(3) - (4)].stmt)); (yyval.exp).loc = (yyloc); ;}
break;
case 267:
/* Line 1464 of yacc.c */
-#line 1482 "grammar.y"
+#line 1412 "grammar.y"
{ (yyval.exp) = MkExpExtensionExpression((yyvsp[(3) - (4)].list)); (yyval.exp).loc = (yyloc); ;}
break;
case 268:
/* Line 1464 of yacc.c */
-#line 1483 "grammar.y"
+#line 1413 "grammar.y"
{ (yyval.exp) = MkExpExtensionInitializer((yyvsp[(3) - (5)].typeName), (yyvsp[(5) - (5)].initializer)); (yyval.exp).loc = (yyloc); ;}
break;
case 269:
/* Line 1464 of yacc.c */
-#line 1484 "grammar.y"
+#line 1414 "grammar.y"
{ (yyval.exp) = MkExpExtensionInitializer((yyvsp[(3) - (8)].typeName), MkInitializerAssignment(MkExpExtensionInitializer((yyvsp[(6) - (8)].typeName), (yyvsp[(8) - (8)].initializer)))); (yyval.exp).loc = (yyloc); ;}
break;
case 270:
/* Line 1464 of yacc.c */
-#line 1486 "grammar.y"
+#line 1416 "grammar.y"
{
char * constant = (yyvsp[(1) - (2)].exp).constant;
int len = strlen(constant);
case 271:
/* Line 1464 of yacc.c */
-#line 1498 "grammar.y"
+#line 1428 "grammar.y"
{ (yyval.exp) = (yyvsp[(1) - (1)].exp); ;}
break;
case 273:
/* Line 1464 of yacc.c */
-#line 1500 "grammar.y"
+#line 1430 "grammar.y"
{ (yyval.exp) = MkExpWideString(yytext); (yyval.exp).loc = (yyloc); ;}
break;
case 274:
/* Line 1464 of yacc.c */
-#line 1501 "grammar.y"
+#line 1431 "grammar.y"
{ Expression exp = MkExpDummy(); exp.loc.start = (yylsp[(1) - (2)]).end; exp.loc.end = (yylsp[(2) - (2)]).start; (yyval.exp) = MkExpBrackets(MkListOne(exp)); (yyval.exp).loc = (yyloc); yyerror(); ;}
break;
case 275:
/* Line 1464 of yacc.c */
-#line 1502 "grammar.y"
+#line 1432 "grammar.y"
{ (yyval.exp) = MkExpNew(MkTypeName((yyvsp[(2) - (6)].list),(yyvsp[(3) - (6)].declarator)), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 276:
/* Line 1464 of yacc.c */
-#line 1503 "grammar.y"
+#line 1433 "grammar.y"
{ (yyval.exp) = MkExpNew(MkTypeName((yyvsp[(2) - (6)].list),(yyvsp[(3) - (6)].declarator)), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 277:
/* Line 1464 of yacc.c */
-#line 1504 "grammar.y"
+#line 1434 "grammar.y"
{ (yyval.exp) = MkExpNew(MkTypeName((yyvsp[(2) - (5)].list),null), (yyvsp[(4) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 278:
/* Line 1464 of yacc.c */
-#line 1505 "grammar.y"
+#line 1435 "grammar.y"
{ (yyval.exp) = MkExpNew(MkTypeName((yyvsp[(2) - (5)].list),null), (yyvsp[(4) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 279:
/* Line 1464 of yacc.c */
-#line 1506 "grammar.y"
+#line 1436 "grammar.y"
{ (yyval.exp) = MkExpNew0(MkTypeName((yyvsp[(2) - (6)].list),(yyvsp[(3) - (6)].declarator)), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 280:
/* Line 1464 of yacc.c */
-#line 1507 "grammar.y"
+#line 1437 "grammar.y"
{ (yyval.exp) = MkExpNew0(MkTypeName((yyvsp[(2) - (6)].list),(yyvsp[(3) - (6)].declarator)), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 281:
/* Line 1464 of yacc.c */
-#line 1508 "grammar.y"
+#line 1438 "grammar.y"
{ (yyval.exp) = MkExpNew0(MkTypeName((yyvsp[(2) - (5)].list),null), (yyvsp[(4) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 282:
/* Line 1464 of yacc.c */
-#line 1509 "grammar.y"
+#line 1439 "grammar.y"
{ (yyval.exp) = MkExpNew0(MkTypeName((yyvsp[(2) - (5)].list),null), (yyvsp[(4) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 283:
/* Line 1464 of yacc.c */
-#line 1510 "grammar.y"
+#line 1440 "grammar.y"
{ (yyval.exp) = MkExpRenew((yyvsp[(2) - (7)].exp), MkTypeName((yyvsp[(3) - (7)].list),(yyvsp[(4) - (7)].declarator)), (yyvsp[(6) - (7)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 284:
/* Line 1464 of yacc.c */
-#line 1511 "grammar.y"
+#line 1441 "grammar.y"
{ (yyval.exp) = MkExpRenew((yyvsp[(2) - (7)].exp), MkTypeName((yyvsp[(3) - (7)].list),(yyvsp[(4) - (7)].declarator)), (yyvsp[(6) - (7)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 285:
/* Line 1464 of yacc.c */
-#line 1512 "grammar.y"
+#line 1442 "grammar.y"
{ (yyval.exp) = MkExpRenew((yyvsp[(2) - (6)].exp), MkTypeName((yyvsp[(3) - (6)].list),null), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 286:
/* Line 1464 of yacc.c */
-#line 1513 "grammar.y"
+#line 1443 "grammar.y"
{ (yyval.exp) = MkExpRenew((yyvsp[(2) - (6)].exp), MkTypeName((yyvsp[(3) - (6)].list),null), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 287:
/* Line 1464 of yacc.c */
-#line 1514 "grammar.y"
+#line 1444 "grammar.y"
{ (yyval.exp) = MkExpRenew0((yyvsp[(2) - (7)].exp), MkTypeName((yyvsp[(3) - (7)].list),(yyvsp[(4) - (7)].declarator)), (yyvsp[(6) - (7)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 288:
/* Line 1464 of yacc.c */
-#line 1515 "grammar.y"
+#line 1445 "grammar.y"
{ (yyval.exp) = MkExpRenew0((yyvsp[(2) - (7)].exp), MkTypeName((yyvsp[(3) - (7)].list),(yyvsp[(4) - (7)].declarator)), (yyvsp[(6) - (7)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 289:
/* Line 1464 of yacc.c */
-#line 1516 "grammar.y"
+#line 1446 "grammar.y"
{ (yyval.exp) = MkExpRenew0((yyvsp[(2) - (6)].exp), MkTypeName((yyvsp[(3) - (6)].list),null), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 290:
/* Line 1464 of yacc.c */
-#line 1517 "grammar.y"
+#line 1447 "grammar.y"
{ (yyval.exp) = MkExpRenew0((yyvsp[(2) - (6)].exp), MkTypeName((yyvsp[(3) - (6)].list),null), (yyvsp[(5) - (6)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 291:
/* Line 1464 of yacc.c */
-#line 1518 "grammar.y"
+#line 1448 "grammar.y"
{ (yyval.exp) = MkExpClass((yyvsp[(3) - (4)].list), null); (yyval.exp).loc = (yyloc); ;}
break;
case 292:
/* Line 1464 of yacc.c */
-#line 1519 "grammar.y"
+#line 1449 "grammar.y"
{ (yyval.exp) = MkExpClass((yyvsp[(3) - (5)].list), (yyvsp[(4) - (5)].declarator)); (yyval.exp).loc = (yyloc); ;}
break;
case 293:
/* Line 1464 of yacc.c */
-#line 1520 "grammar.y"
+#line 1450 "grammar.y"
{ (yyval.exp) = MkExpClass(MkListOne(MkSpecifierName((yyvsp[(3) - (4)].id).string)), null); FreeIdentifier((yyvsp[(3) - (4)].id)); (yyval.exp).loc = (yyloc); ;}
break;
case 294:
/* Line 1464 of yacc.c */
-#line 1521 "grammar.y"
+#line 1451 "grammar.y"
{ (yyval.exp) = MkExpVaArg((yyvsp[(3) - (6)].exp), (yyvsp[(5) - (6)].typeName)); (yyval.exp).loc = (yyloc); ;}
break;
case 295:
/* Line 1464 of yacc.c */
-#line 1523 "grammar.y"
+#line 1453 "grammar.y"
{ (yyval.exp) = MkExpClassData((yyvsp[(3) - (4)].id)); (yyval.exp).loc = (yyloc); ;}
break;
case 300:
/* Line 1464 of yacc.c */
-#line 1529 "grammar.y"
+#line 1459 "grammar.y"
{ (yyval.exp) = MkExpArray((yyvsp[(2) - (3)].list)); (yyval.exp).loc = (yyloc); ;}
break;
case 301:
/* Line 1464 of yacc.c */
-#line 1530 "grammar.y"
+#line 1460 "grammar.y"
{ (yyval.exp) = MkExpArray(null); (yyval.exp).loc = (yyloc); ;}
break;
case 302:
/* Line 1464 of yacc.c */
-#line 1534 "grammar.y"
+#line 1464 "grammar.y"
{ (yyval.exp) = MkExpInstance((yyvsp[(1) - (1)].instance)); (yyval.exp).loc = (yyloc); ;}
break;
case 303:
/* Line 1464 of yacc.c */
-#line 1538 "grammar.y"
+#line 1468 "grammar.y"
{ (yyval.exp) = MkExpInstance((yyvsp[(1) - (2)].instance)); (yyval.exp).loc = (yyloc); ;}
break;
case 304:
/* Line 1464 of yacc.c */
-#line 1542 "grammar.y"
+#line 1472 "grammar.y"
{ yyerror(); (yyval.exp) = MkExpBrackets((yyvsp[(2) - (2)].list)); (yyval.exp).loc = (yyloc); ;}
break;
case 305:
/* Line 1464 of yacc.c */
-#line 1543 "grammar.y"
+#line 1473 "grammar.y"
{ (yyval.exp) = MkExpBrackets((yyvsp[(2) - (2)].list)); (yyval.exp).loc = (yyloc); ;}
break;
case 307:
/* Line 1464 of yacc.c */
-#line 1549 "grammar.y"
+#line 1479 "grammar.y"
{ (yyval.exp) = MkExpIndex((yyvsp[(1) - (4)].exp), (yyvsp[(3) - (4)].list)); (yyval.exp).loc = (yyloc); ;}
break;
case 308:
/* Line 1464 of yacc.c */
-#line 1550 "grammar.y"
+#line 1480 "grammar.y"
{ (yyval.exp) = MkExpIndex((yyvsp[(1) - (4)].exp), (yyvsp[(3) - (4)].list)); (yyval.exp).loc = (yyloc); ;}
break;
case 309:
/* Line 1464 of yacc.c */
-#line 1551 "grammar.y"
+#line 1481 "grammar.y"
{ (yyval.exp) = MkExpCall((yyvsp[(1) - (3)].exp), MkList()); (yyval.exp).call.argLoc.start = (yylsp[(2) - (3)]).start; (yyval.exp).call.argLoc.end = (yylsp[(3) - (3)]).end; (yyval.exp).loc = (yyloc); ;}
break;
case 310:
/* Line 1464 of yacc.c */
-#line 1552 "grammar.y"
+#line 1482 "grammar.y"
{ (yyval.exp) = MkExpCall((yyvsp[(1) - (4)].exp), (yyvsp[(3) - (4)].list)); (yyval.exp).call.argLoc.start = (yylsp[(2) - (4)]).start; (yyval.exp).call.argLoc.end = (yylsp[(4) - (4)]).end; (yyval.exp).loc = (yyloc); ;}
break;
case 311:
/* Line 1464 of yacc.c */
-#line 1553 "grammar.y"
+#line 1483 "grammar.y"
{ (yyval.exp) = MkExpCall((yyvsp[(1) - (4)].exp), (yyvsp[(3) - (4)].list)); (yyval.exp).call.argLoc.start = (yylsp[(2) - (4)]).start; (yyval.exp).call.argLoc.end = (yylsp[(4) - (4)]).end; (yyval.exp).loc = (yyloc); if((yyvsp[(3) - (4)].list)->last) ((Expression)(yyvsp[(3) - (4)].list)->last).loc.end = (yylsp[(4) - (4)]).start; ;}
break;
case 312:
/* Line 1464 of yacc.c */
-#line 1554 "grammar.y"
+#line 1484 "grammar.y"
{ (yyval.exp) = MkExpMember((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].id)); (yyval.exp).loc = (yyloc); ;}
break;
case 313:
/* Line 1464 of yacc.c */
-#line 1555 "grammar.y"
+#line 1485 "grammar.y"
{ (yyval.exp) = MkExpPointer((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].id)); (yyval.exp).loc = (yyloc); ;}
break;
case 314:
/* Line 1464 of yacc.c */
-#line 1556 "grammar.y"
+#line 1486 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (2)].exp), INC_OP, null); (yyval.exp).loc = (yyloc); ;}
break;
case 315:
/* Line 1464 of yacc.c */
-#line 1557 "grammar.y"
+#line 1487 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (2)].exp), DEC_OP, null); (yyval.exp).loc = (yyloc); ;}
break;
case 316:
/* Line 1464 of yacc.c */
-#line 1559 "grammar.y"
+#line 1489 "grammar.y"
{ (yyval.exp) = MkExpIndex((yyvsp[(1) - (4)].exp), (yyvsp[(3) - (4)].list)); (yyval.exp).loc = (yyloc); ;}
break;
case 317:
/* Line 1464 of yacc.c */
-#line 1560 "grammar.y"
+#line 1490 "grammar.y"
{ (yyval.exp) = MkExpIndex((yyvsp[(1) - (4)].exp), (yyvsp[(3) - (4)].list)); (yyval.exp).loc = (yyloc); ;}
break;
case 318:
/* Line 1464 of yacc.c */
-#line 1561 "grammar.y"
+#line 1491 "grammar.y"
{ (yyval.exp) = MkExpCall((yyvsp[(1) - (3)].exp), MkList()); (yyval.exp).call.argLoc.start = (yylsp[(2) - (3)]).start; (yyval.exp).call.argLoc.end = (yylsp[(3) - (3)]).end; (yyval.exp).loc = (yyloc); ;}
break;
case 319:
/* Line 1464 of yacc.c */
-#line 1562 "grammar.y"
+#line 1492 "grammar.y"
{ (yyval.exp) = MkExpCall((yyvsp[(1) - (4)].exp), (yyvsp[(3) - (4)].list)); (yyval.exp).call.argLoc.start = (yylsp[(2) - (4)]).start; (yyval.exp).call.argLoc.end = (yylsp[(4) - (4)]).end;(yyval.exp).loc = (yyloc); ;}
break;
case 320:
/* Line 1464 of yacc.c */
-#line 1563 "grammar.y"
+#line 1493 "grammar.y"
{ (yyval.exp) = MkExpMember((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].id)); (yyval.exp).loc = (yyloc); ;}
break;
case 321:
/* Line 1464 of yacc.c */
-#line 1564 "grammar.y"
+#line 1494 "grammar.y"
{ (yyval.exp) = MkExpPointer((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].id)); (yyval.exp).loc = (yyloc); ;}
break;
case 322:
/* Line 1464 of yacc.c */
-#line 1565 "grammar.y"
+#line 1495 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (2)].exp), INC_OP, null); (yyval.exp).loc = (yyloc); ;}
break;
case 323:
/* Line 1464 of yacc.c */
-#line 1566 "grammar.y"
+#line 1496 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (2)].exp), DEC_OP, null); (yyval.exp).loc = (yyloc); ;}
break;
case 324:
/* Line 1464 of yacc.c */
-#line 1593 "grammar.y"
+#line 1523 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].exp)); ;}
break;
case 325:
/* Line 1464 of yacc.c */
-#line 1594 "grammar.y"
+#line 1524 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].exp)); ;}
break;
case 326:
/* Line 1464 of yacc.c */
-#line 1595 "grammar.y"
+#line 1525 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp)); ;}
break;
case 327:
/* Line 1464 of yacc.c */
-#line 1596 "grammar.y"
+#line 1526 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp)); ;}
break;
case 328:
/* Line 1464 of yacc.c */
-#line 1600 "grammar.y"
+#line 1530 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].exp)); ;}
break;
case 329:
/* Line 1464 of yacc.c */
-#line 1601 "grammar.y"
+#line 1531 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].exp)); ;}
break;
case 330:
/* Line 1464 of yacc.c */
-#line 1602 "grammar.y"
+#line 1532 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp)); ;}
break;
case 331:
/* Line 1464 of yacc.c */
-#line 1603 "grammar.y"
+#line 1533 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp)); ;}
break;
case 332:
/* Line 1464 of yacc.c */
-#line 1604 "grammar.y"
+#line 1534 "grammar.y"
{ Expression exp = MkExpDummy(); yyerror(); exp.loc.start = (yylsp[(2) - (2)]).end; exp.loc.end = (yylsp[(2) - (2)]).end; (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), exp); ;}
break;
case 333:
/* Line 1464 of yacc.c */
-#line 1608 "grammar.y"
+#line 1538 "grammar.y"
{ (yyval.exp) = MkExpOp(null, INC_OP, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 334:
/* Line 1464 of yacc.c */
-#line 1609 "grammar.y"
+#line 1539 "grammar.y"
{ (yyval.exp) = MkExpOp(null, DEC_OP, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 335:
/* Line 1464 of yacc.c */
-#line 1610 "grammar.y"
+#line 1540 "grammar.y"
{ (yyval.exp) = MkExpOp(null, (yyvsp[(1) - (2)].i), (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 336:
/* Line 1464 of yacc.c */
-#line 1611 "grammar.y"
+#line 1541 "grammar.y"
{ (yyval.exp) = MkExpOp(null, (yyvsp[(1) - (2)].i), (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 337:
/* Line 1464 of yacc.c */
-#line 1613 "grammar.y"
+#line 1543 "grammar.y"
{ (yyval.exp) = MkExpOp(null, SIZEOF, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 338:
/* Line 1464 of yacc.c */
-#line 1614 "grammar.y"
+#line 1544 "grammar.y"
{ (yyval.exp) = MkExpTypeSize((yyvsp[(3) - (4)].typeName)); (yyval.exp).loc = (yyloc); ;}
break;
case 339:
/* Line 1464 of yacc.c */
-#line 1615 "grammar.y"
+#line 1545 "grammar.y"
{ (yyval.exp) = MkExpClassSize((yyvsp[(4) - (5)].specifier)); (yyval.exp).loc = (yyloc); ;}
break;
case 340:
/* Line 1464 of yacc.c */
-#line 1616 "grammar.y"
+#line 1546 "grammar.y"
{ (yyval.exp) = MkExpClassSize((yyvsp[(4) - (5)].specifier)); (yyval.exp).loc = (yyloc); ;}
break;
case 341:
/* Line 1464 of yacc.c */
-#line 1619 "grammar.y"
+#line 1549 "grammar.y"
{ (yyval.exp) = MkExpOp(null, ALIGNOF, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 342:
/* Line 1464 of yacc.c */
-#line 1620 "grammar.y"
+#line 1550 "grammar.y"
{ (yyval.exp) = MkExpTypeAlign((yyvsp[(3) - (4)].typeName)); (yyval.exp).loc = (yyloc); ;}
break;
case 345:
/* Line 1464 of yacc.c */
-#line 1634 "grammar.y"
+#line 1564 "grammar.y"
{ (yyval.i) = '&'; ;}
break;
case 346:
/* Line 1464 of yacc.c */
-#line 1635 "grammar.y"
+#line 1565 "grammar.y"
{ (yyval.i) = '*'; ;}
break;
case 347:
/* Line 1464 of yacc.c */
-#line 1636 "grammar.y"
+#line 1566 "grammar.y"
{ (yyval.i) = '+'; ;}
break;
case 348:
/* Line 1464 of yacc.c */
-#line 1637 "grammar.y"
+#line 1567 "grammar.y"
{ (yyval.i) = '-'; ;}
break;
case 349:
/* Line 1464 of yacc.c */
-#line 1638 "grammar.y"
+#line 1568 "grammar.y"
{ (yyval.i) = '~'; ;}
break;
case 350:
/* Line 1464 of yacc.c */
-#line 1639 "grammar.y"
+#line 1569 "grammar.y"
{ (yyval.i) = '!'; ;}
break;
case 351:
/* Line 1464 of yacc.c */
-#line 1640 "grammar.y"
+#line 1570 "grammar.y"
{ (yyval.i) = DELETE; ;}
break;
case 352:
/* Line 1464 of yacc.c */
-#line 1641 "grammar.y"
+#line 1571 "grammar.y"
{ (yyval.i) = _INCREF; ;}
break;
case 354:
/* Line 1464 of yacc.c */
-#line 1646 "grammar.y"
+#line 1576 "grammar.y"
{ (yyval.exp) = MkExpCast((yyvsp[(2) - (4)].typeName), (yyvsp[(4) - (4)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 356:
/* Line 1464 of yacc.c */
-#line 1651 "grammar.y"
+#line 1581 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '*', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 357:
/* Line 1464 of yacc.c */
-#line 1652 "grammar.y"
+#line 1582 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '/', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 358:
/* Line 1464 of yacc.c */
-#line 1653 "grammar.y"
+#line 1583 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '%', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 359:
/* Line 1464 of yacc.c */
-#line 1654 "grammar.y"
+#line 1584 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '*', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 360:
/* Line 1464 of yacc.c */
-#line 1655 "grammar.y"
+#line 1585 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '/', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 361:
/* Line 1464 of yacc.c */
-#line 1656 "grammar.y"
+#line 1586 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '%', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 363:
/* Line 1464 of yacc.c */
-#line 1661 "grammar.y"
+#line 1591 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '+', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 364:
/* Line 1464 of yacc.c */
-#line 1662 "grammar.y"
+#line 1592 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '-', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 365:
/* Line 1464 of yacc.c */
-#line 1663 "grammar.y"
+#line 1593 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '+', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 366:
/* Line 1464 of yacc.c */
-#line 1664 "grammar.y"
+#line 1594 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '-', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 368:
/* Line 1464 of yacc.c */
-#line 1669 "grammar.y"
+#line 1599 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), LEFT_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 369:
/* Line 1464 of yacc.c */
-#line 1670 "grammar.y"
+#line 1600 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), RIGHT_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 370:
/* Line 1464 of yacc.c */
-#line 1671 "grammar.y"
+#line 1601 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), LEFT_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 371:
/* Line 1464 of yacc.c */
-#line 1672 "grammar.y"
+#line 1602 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), RIGHT_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 372:
/* Line 1464 of yacc.c */
-#line 1677 "grammar.y"
+#line 1607 "grammar.y"
{
(yyval.exp) = (yyvsp[(1) - (2)].exp);
skipErrors = true;
case 374:
/* Line 1464 of yacc.c */
-#line 1685 "grammar.y"
+#line 1615 "grammar.y"
{ skipErrors = false; (yyval.exp) = MkExpOp((yyvsp[(1) - (2)].exp), '<', (yyvsp[(2) - (2)].exp)/*$3*/); (yyval.exp).loc = (yyloc); ;}
break;
case 375:
/* Line 1464 of yacc.c */
-#line 1686 "grammar.y"
+#line 1616 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '>', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 376:
/* Line 1464 of yacc.c */
-#line 1687 "grammar.y"
+#line 1617 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), LE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 377:
/* Line 1464 of yacc.c */
-#line 1688 "grammar.y"
+#line 1618 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), GE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 378:
/* Line 1464 of yacc.c */
-#line 1689 "grammar.y"
+#line 1619 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '<', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 379:
/* Line 1464 of yacc.c */
-#line 1690 "grammar.y"
+#line 1620 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '>', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 380:
/* Line 1464 of yacc.c */
-#line 1691 "grammar.y"
+#line 1621 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), LE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 381:
/* Line 1464 of yacc.c */
-#line 1692 "grammar.y"
+#line 1622 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), GE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 383:
/* Line 1464 of yacc.c */
-#line 1697 "grammar.y"
+#line 1627 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), EQ_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 384:
/* Line 1464 of yacc.c */
-#line 1698 "grammar.y"
+#line 1628 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), NE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 385:
/* Line 1464 of yacc.c */
-#line 1699 "grammar.y"
+#line 1629 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), EQ_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 386:
/* Line 1464 of yacc.c */
-#line 1700 "grammar.y"
+#line 1630 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), NE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 387:
/* Line 1464 of yacc.c */
-#line 1702 "grammar.y"
+#line 1632 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), EQ_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 388:
/* Line 1464 of yacc.c */
-#line 1703 "grammar.y"
+#line 1633 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), NE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 389:
/* Line 1464 of yacc.c */
-#line 1704 "grammar.y"
+#line 1634 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), EQ_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 390:
/* Line 1464 of yacc.c */
-#line 1705 "grammar.y"
+#line 1635 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), NE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 392:
/* Line 1464 of yacc.c */
-#line 1710 "grammar.y"
+#line 1640 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '&', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 393:
/* Line 1464 of yacc.c */
-#line 1711 "grammar.y"
+#line 1641 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '&', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 394:
/* Line 1464 of yacc.c */
-#line 1713 "grammar.y"
+#line 1643 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '&', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 395:
/* Line 1464 of yacc.c */
-#line 1714 "grammar.y"
+#line 1644 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '&', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 397:
/* Line 1464 of yacc.c */
-#line 1719 "grammar.y"
+#line 1649 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '^', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 398:
/* Line 1464 of yacc.c */
-#line 1720 "grammar.y"
+#line 1650 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '^', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 399:
/* Line 1464 of yacc.c */
-#line 1722 "grammar.y"
+#line 1652 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '^', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 400:
/* Line 1464 of yacc.c */
-#line 1723 "grammar.y"
+#line 1653 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '^', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 402:
/* Line 1464 of yacc.c */
-#line 1728 "grammar.y"
+#line 1658 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '|', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 403:
/* Line 1464 of yacc.c */
-#line 1729 "grammar.y"
+#line 1659 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '|', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 404:
/* Line 1464 of yacc.c */
-#line 1731 "grammar.y"
+#line 1661 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '|', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 405:
/* Line 1464 of yacc.c */
-#line 1732 "grammar.y"
+#line 1662 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '|', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 407:
/* Line 1464 of yacc.c */
-#line 1737 "grammar.y"
+#line 1667 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), AND_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 408:
/* Line 1464 of yacc.c */
-#line 1738 "grammar.y"
+#line 1668 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), AND_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 410:
/* Line 1464 of yacc.c */
-#line 1743 "grammar.y"
+#line 1673 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), OR_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 411:
/* Line 1464 of yacc.c */
-#line 1744 "grammar.y"
+#line 1674 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), OR_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 413:
/* Line 1464 of yacc.c */
-#line 1749 "grammar.y"
+#line 1679 "grammar.y"
{ (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 414:
/* Line 1464 of yacc.c */
-#line 1750 "grammar.y"
+#line 1680 "grammar.y"
{ (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 415:
/* Line 1464 of yacc.c */
-#line 1751 "grammar.y"
+#line 1681 "grammar.y"
{ (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 416:
/* Line 1464 of yacc.c */
-#line 1752 "grammar.y"
+#line 1682 "grammar.y"
{ (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 417:
/* Line 1464 of yacc.c */
-#line 1754 "grammar.y"
+#line 1684 "grammar.y"
{ (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 418:
/* Line 1464 of yacc.c */
-#line 1755 "grammar.y"
+#line 1685 "grammar.y"
{ (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 419:
/* Line 1464 of yacc.c */
-#line 1756 "grammar.y"
+#line 1686 "grammar.y"
{ (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 420:
/* Line 1464 of yacc.c */
-#line 1757 "grammar.y"
+#line 1687 "grammar.y"
{ (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 421:
/* Line 1464 of yacc.c */
-#line 1759 "grammar.y"
+#line 1689 "grammar.y"
{ (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 422:
/* Line 1464 of yacc.c */
-#line 1760 "grammar.y"
+#line 1690 "grammar.y"
{ (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 423:
/* Line 1464 of yacc.c */
-#line 1761 "grammar.y"
+#line 1691 "grammar.y"
{ (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 424:
/* Line 1464 of yacc.c */
-#line 1762 "grammar.y"
+#line 1692 "grammar.y"
{ (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 425:
/* Line 1464 of yacc.c */
-#line 1764 "grammar.y"
+#line 1694 "grammar.y"
{ (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 426:
/* Line 1464 of yacc.c */
-#line 1765 "grammar.y"
+#line 1695 "grammar.y"
{ (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 427:
/* Line 1464 of yacc.c */
-#line 1766 "grammar.y"
+#line 1696 "grammar.y"
{ (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 428:
/* Line 1464 of yacc.c */
-#line 1767 "grammar.y"
+#line 1697 "grammar.y"
{ (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 430:
/* Line 1464 of yacc.c */
-#line 1772 "grammar.y"
+#line 1702 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), (yyvsp[(2) - (3)].i), (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 431:
/* Line 1464 of yacc.c */
-#line 1773 "grammar.y"
+#line 1703 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), (yyvsp[(2) - (3)].i), (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 432:
/* Line 1464 of yacc.c */
-#line 1774 "grammar.y"
+#line 1704 "grammar.y"
{ Compiler_Error($"l-value expected\n"); (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), (yyvsp[(2) - (3)].i), (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 433:
/* Line 1464 of yacc.c */
-#line 1775 "grammar.y"
+#line 1705 "grammar.y"
{ Compiler_Error($"l-value expected\n"); (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), (yyvsp[(2) - (3)].i), (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 434:
/* Line 1464 of yacc.c */
-#line 1777 "grammar.y"
+#line 1707 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), (yyvsp[(2) - (3)].i), (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 435:
/* Line 1464 of yacc.c */
-#line 1778 "grammar.y"
+#line 1708 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), (yyvsp[(2) - (3)].i), (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 436:
/* Line 1464 of yacc.c */
-#line 1779 "grammar.y"
+#line 1709 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), (yyvsp[(2) - (3)].i), (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 437:
/* Line 1464 of yacc.c */
-#line 1780 "grammar.y"
+#line 1710 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), (yyvsp[(2) - (3)].i), (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 438:
/* Line 1464 of yacc.c */
-#line 1784 "grammar.y"
+#line 1714 "grammar.y"
{ (yyval.i) = '='; ;}
break;
case 439:
/* Line 1464 of yacc.c */
-#line 1785 "grammar.y"
+#line 1715 "grammar.y"
{ (yyval.i) = MUL_ASSIGN; ;}
break;
case 440:
/* Line 1464 of yacc.c */
-#line 1786 "grammar.y"
+#line 1716 "grammar.y"
{ (yyval.i) = DIV_ASSIGN; ;}
break;
case 441:
/* Line 1464 of yacc.c */
-#line 1787 "grammar.y"
+#line 1717 "grammar.y"
{ (yyval.i) = MOD_ASSIGN; ;}
break;
case 442:
/* Line 1464 of yacc.c */
-#line 1788 "grammar.y"
+#line 1718 "grammar.y"
{ (yyval.i) = ADD_ASSIGN; ;}
break;
case 443:
/* Line 1464 of yacc.c */
-#line 1789 "grammar.y"
+#line 1719 "grammar.y"
{ (yyval.i) = SUB_ASSIGN; ;}
break;
case 444:
/* Line 1464 of yacc.c */
-#line 1790 "grammar.y"
+#line 1720 "grammar.y"
{ (yyval.i) = LEFT_ASSIGN; ;}
break;
case 445:
/* Line 1464 of yacc.c */
-#line 1791 "grammar.y"
+#line 1721 "grammar.y"
{ (yyval.i) = RIGHT_ASSIGN; ;}
break;
case 446:
/* Line 1464 of yacc.c */
-#line 1792 "grammar.y"
+#line 1722 "grammar.y"
{ (yyval.i) = AND_ASSIGN; ;}
break;
case 447:
/* Line 1464 of yacc.c */
-#line 1793 "grammar.y"
+#line 1723 "grammar.y"
{ (yyval.i) = XOR_ASSIGN; ;}
break;
case 448:
/* Line 1464 of yacc.c */
-#line 1794 "grammar.y"
+#line 1724 "grammar.y"
{ (yyval.i) = OR_ASSIGN; ;}
break;
case 449:
/* Line 1464 of yacc.c */
-#line 1798 "grammar.y"
+#line 1728 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].exp)); ;}
break;
case 450:
/* Line 1464 of yacc.c */
-#line 1799 "grammar.y"
+#line 1729 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp)); ;}
break;
case 451:
/* Line 1464 of yacc.c */
-#line 1800 "grammar.y"
+#line 1730 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp)); ;}
break;
case 453:
/* Line 1464 of yacc.c */
-#line 1805 "grammar.y"
+#line 1735 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].exp)); ;}
break;
case 454:
/* Line 1464 of yacc.c */
-#line 1806 "grammar.y"
+#line 1736 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp)); ;}
break;
case 455:
/* Line 1464 of yacc.c */
-#line 1807 "grammar.y"
+#line 1737 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp)); ;}
break;
case 457:
/* Line 1464 of yacc.c */
-#line 1812 "grammar.y"
+#line 1742 "grammar.y"
{ (yyval.exp) = MkExpDummy(); (yyval.exp).loc = (yyloc); /*printf("Sorry, didn't mean that syntax error\n");*/ ;}
break;
case 459:
/* Line 1464 of yacc.c */
-#line 1814 "grammar.y"
+#line 1744 "grammar.y"
{ (yyval.exp) = MkExpInstance((yyvsp[(1) - (2)].instance)); (yyval.exp).loc = (yyloc); ;}
break;
case 460:
/* Line 1464 of yacc.c */
-#line 1816 "grammar.y"
+#line 1746 "grammar.y"
{ (yyval.exp) = MkExpPointer((yyvsp[(1) - (3)].exp), null); (yyval.exp).loc = (yyloc); ;}
break;
case 461:
/* Line 1464 of yacc.c */
-#line 1817 "grammar.y"
+#line 1747 "grammar.y"
{ (yyval.exp) = MkExpPointer((yyvsp[(1) - (3)].exp), null); (yyval.exp).loc = (yyloc); ;}
break;
case 462:
/* Line 1464 of yacc.c */
-#line 1819 "grammar.y"
+#line 1749 "grammar.y"
{ yyerror(); (yyval.exp) = MkExpCall((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].list)); (yyval.exp).call.argLoc.start = (yylsp[(2) - (3)]).start; (yyval.exp).call.argLoc.end = (yylsp[(3) - (3)]).end; (yyval.exp).loc = (yyloc); (yyval.exp).call.argLoc.end.charPos++;;}
break;
case 463:
/* Line 1464 of yacc.c */
-#line 1820 "grammar.y"
+#line 1750 "grammar.y"
{ (yyval.exp) = MkExpCall((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].list)); (yyval.exp).call.argLoc.start = (yylsp[(2) - (3)]).start; (yyval.exp).call.argLoc.end = (yylsp[(3) - (3)]).end; (yyval.exp).loc = (yyloc); (yyval.exp).call.argLoc.end.charPos++;;}
break;
case 464:
/* Line 1464 of yacc.c */
-#line 1825 "grammar.y"
+#line 1755 "grammar.y"
{ (yyval.exp) = MkExpMember((yyvsp[(1) - (3)].exp), null); (yyval.exp).loc = (yyloc); ;}
break;
case 465:
/* Line 1464 of yacc.c */
-#line 1827 "grammar.y"
+#line 1757 "grammar.y"
{ (yyval.exp) = MkExpCall((yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].list)); (yyval.exp).loc = (yyloc); (yyval.exp).call.argLoc.start = (yylsp[(2) - (3)]).start; (yyval.exp).call.argLoc.end = (yylsp[(3) - (3)]).end; (yyval.exp).call.argLoc.end.charPos++;;}
break;
case 466:
/* Line 1464 of yacc.c */
-#line 1832 "grammar.y"
+#line 1762 "grammar.y"
{ (yyval.exp) = MkExpMember((yyvsp[(1) - (3)].exp), null); (yyval.exp).loc = (yyloc); ;}
break;
case 467:
/* Line 1464 of yacc.c */
-#line 1860 "grammar.y"
+#line 1790 "grammar.y"
{ (yyval.exp) = MkExpOp(null, INC_OP, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 468:
/* Line 1464 of yacc.c */
-#line 1861 "grammar.y"
+#line 1791 "grammar.y"
{ (yyval.exp) = MkExpOp(null, DEC_OP, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 469:
/* Line 1464 of yacc.c */
-#line 1862 "grammar.y"
+#line 1792 "grammar.y"
{ (yyval.exp) = MkExpOp(null, (yyvsp[(1) - (2)].i), (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 470:
/* Line 1464 of yacc.c */
-#line 1863 "grammar.y"
+#line 1793 "grammar.y"
{ (yyval.exp) = MkExpOp(null, (yyvsp[(1) - (2)].i), (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 471:
/* Line 1464 of yacc.c */
-#line 1865 "grammar.y"
+#line 1795 "grammar.y"
{ (yyval.exp) = MkExpOp(null, SIZEOF, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 472:
/* Line 1464 of yacc.c */
-#line 1866 "grammar.y"
+#line 1796 "grammar.y"
{ (yyval.exp) = MkExpTypeSize((yyvsp[(3) - (5)].typeName)); (yyval.exp).loc = (yyloc); ;}
break;
case 473:
/* Line 1464 of yacc.c */
-#line 1867 "grammar.y"
+#line 1797 "grammar.y"
{ (yyval.exp) = MkExpClassSize((yyvsp[(4) - (6)].specifier)); (yyval.exp).loc = (yyloc); ;}
break;
case 474:
/* Line 1464 of yacc.c */
-#line 1868 "grammar.y"
+#line 1798 "grammar.y"
{ (yyval.exp) = MkExpClassSize((yyvsp[(4) - (6)].specifier)); (yyval.exp).loc = (yyloc); ;}
break;
case 475:
/* Line 1464 of yacc.c */
-#line 1870 "grammar.y"
+#line 1800 "grammar.y"
{ (yyval.exp) = MkExpOp(null, ALIGNOF, (yyvsp[(2) - (2)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 476:
/* Line 1464 of yacc.c */
-#line 1871 "grammar.y"
+#line 1801 "grammar.y"
{ (yyval.exp) = MkExpTypeAlign((yyvsp[(3) - (5)].typeName)); (yyval.exp).loc = (yyloc); ;}
break;
case 480:
/* Line 1464 of yacc.c */
-#line 1886 "grammar.y"
+#line 1816 "grammar.y"
{ (yyval.exp) = MkExpCast((yyvsp[(2) - (4)].typeName), (yyvsp[(4) - (4)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 482:
/* Line 1464 of yacc.c */
-#line 1891 "grammar.y"
+#line 1821 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '*', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 483:
/* Line 1464 of yacc.c */
-#line 1892 "grammar.y"
+#line 1822 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '/', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 484:
/* Line 1464 of yacc.c */
-#line 1893 "grammar.y"
+#line 1823 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '%', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 485:
/* Line 1464 of yacc.c */
-#line 1894 "grammar.y"
+#line 1824 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '*', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 486:
/* Line 1464 of yacc.c */
-#line 1895 "grammar.y"
+#line 1825 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '/', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 487:
/* Line 1464 of yacc.c */
-#line 1896 "grammar.y"
+#line 1826 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '%', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 489:
/* Line 1464 of yacc.c */
-#line 1901 "grammar.y"
+#line 1831 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '+', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 490:
/* Line 1464 of yacc.c */
-#line 1905 "grammar.y"
+#line 1835 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '-', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 491:
/* Line 1464 of yacc.c */
-#line 1909 "grammar.y"
+#line 1839 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '+', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 492:
/* Line 1464 of yacc.c */
-#line 1913 "grammar.y"
+#line 1843 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '-', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 494:
/* Line 1464 of yacc.c */
-#line 1921 "grammar.y"
+#line 1851 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), LEFT_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 495:
/* Line 1464 of yacc.c */
-#line 1922 "grammar.y"
+#line 1852 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), RIGHT_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 496:
/* Line 1464 of yacc.c */
-#line 1923 "grammar.y"
+#line 1853 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), LEFT_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 497:
/* Line 1464 of yacc.c */
-#line 1924 "grammar.y"
+#line 1854 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), RIGHT_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 499:
/* Line 1464 of yacc.c */
-#line 1930 "grammar.y"
+#line 1860 "grammar.y"
{
if((yyvsp[(1) - (2)].exp).type == identifierExp)
{
- if((yyvsp[(1) - (2)].exp).identifier._class && !(yyvsp[(1) - (2)].exp).identifier._class.name)
- {
- char name[1024];
- strcpy(name, "::");
- strcat(name, (yyvsp[(1) - (2)].exp).identifier.string);
- _DeclClass(name);
- }
- else
- _DeclClass((yyvsp[(1) - (2)].exp).identifier.string);
+ _DeclClass((yyvsp[(1) - (2)].exp).identifier._class, (yyvsp[(1) - (2)].exp).identifier.string);
// printf("Declaring Class %s\n", $1.identifier.string);
skipErrors = false;
case 500:
/* Line 1464 of yacc.c */
-#line 1980 "grammar.y"
+#line 1902 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '>', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 501:
/* Line 1464 of yacc.c */
-#line 1981 "grammar.y"
+#line 1903 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), LE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 502:
/* Line 1464 of yacc.c */
-#line 1982 "grammar.y"
+#line 1904 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), GE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 503:
/* Line 1464 of yacc.c */
-#line 1983 "grammar.y"
+#line 1905 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '<', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 504:
/* Line 1464 of yacc.c */
-#line 1984 "grammar.y"
+#line 1906 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '>', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 505:
/* Line 1464 of yacc.c */
-#line 1985 "grammar.y"
+#line 1907 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), LE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 506:
/* Line 1464 of yacc.c */
-#line 1986 "grammar.y"
+#line 1908 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), GE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 508:
/* Line 1464 of yacc.c */
-#line 1991 "grammar.y"
+#line 1913 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), EQ_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 509:
/* Line 1464 of yacc.c */
-#line 1992 "grammar.y"
+#line 1914 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), NE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 510:
/* Line 1464 of yacc.c */
-#line 1993 "grammar.y"
+#line 1915 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), EQ_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 511:
/* Line 1464 of yacc.c */
-#line 1994 "grammar.y"
+#line 1916 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), NE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 512:
/* Line 1464 of yacc.c */
-#line 2001 "grammar.y"
+#line 1923 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), EQ_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 513:
/* Line 1464 of yacc.c */
-#line 2002 "grammar.y"
+#line 1924 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), NE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 514:
/* Line 1464 of yacc.c */
-#line 2003 "grammar.y"
+#line 1925 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), EQ_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 515:
/* Line 1464 of yacc.c */
-#line 2004 "grammar.y"
+#line 1926 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), NE_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 517:
/* Line 1464 of yacc.c */
-#line 2009 "grammar.y"
+#line 1931 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '&', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 518:
/* Line 1464 of yacc.c */
-#line 2010 "grammar.y"
+#line 1932 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '&', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 519:
/* Line 1464 of yacc.c */
-#line 2012 "grammar.y"
+#line 1934 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '&', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 520:
/* Line 1464 of yacc.c */
-#line 2013 "grammar.y"
+#line 1935 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '&', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 522:
/* Line 1464 of yacc.c */
-#line 2018 "grammar.y"
+#line 1940 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '^', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 523:
/* Line 1464 of yacc.c */
-#line 2019 "grammar.y"
+#line 1941 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '^', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 524:
/* Line 1464 of yacc.c */
-#line 2021 "grammar.y"
+#line 1943 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '^', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 525:
/* Line 1464 of yacc.c */
-#line 2022 "grammar.y"
+#line 1944 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '^', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 527:
/* Line 1464 of yacc.c */
-#line 2027 "grammar.y"
+#line 1949 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '|', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 528:
/* Line 1464 of yacc.c */
-#line 2028 "grammar.y"
+#line 1950 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '|', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 529:
/* Line 1464 of yacc.c */
-#line 2030 "grammar.y"
+#line 1952 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '|', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 530:
/* Line 1464 of yacc.c */
-#line 2031 "grammar.y"
+#line 1953 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), '|', (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 532:
/* Line 1464 of yacc.c */
-#line 2036 "grammar.y"
+#line 1958 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), AND_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 533:
/* Line 1464 of yacc.c */
-#line 2037 "grammar.y"
+#line 1959 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), AND_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 535:
/* Line 1464 of yacc.c */
-#line 2042 "grammar.y"
+#line 1964 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), OR_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 536:
/* Line 1464 of yacc.c */
-#line 2043 "grammar.y"
+#line 1965 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), OR_OP, (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 538:
/* Line 1464 of yacc.c */
-#line 2048 "grammar.y"
+#line 1970 "grammar.y"
{ (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 539:
/* Line 1464 of yacc.c */
-#line 2049 "grammar.y"
+#line 1971 "grammar.y"
{ (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 540:
/* Line 1464 of yacc.c */
-#line 2050 "grammar.y"
+#line 1972 "grammar.y"
{ (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 541:
/* Line 1464 of yacc.c */
-#line 2051 "grammar.y"
+#line 1973 "grammar.y"
{ (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 542:
/* Line 1464 of yacc.c */
-#line 2052 "grammar.y"
+#line 1974 "grammar.y"
{ (yyval.exp) = MkExpCondition((yyvsp[(1) - (4)].exp), (yyvsp[(3) - (4)].list), MkExpDummy()); (yyval.exp).loc = (yyloc); (yyval.exp).cond.elseExp.loc = (yylsp[(3) - (4)]); ;}
break;
case 543:
/* Line 1464 of yacc.c */
-#line 2053 "grammar.y"
+#line 1975 "grammar.y"
{ (yyval.exp) = MkExpCondition((yyvsp[(1) - (4)].exp), (yyvsp[(3) - (4)].list), MkExpDummy()); (yyval.exp).loc = (yyloc); (yyval.exp).cond.elseExp.loc = (yylsp[(3) - (4)]); ;}
break;
case 544:
/* Line 1464 of yacc.c */
-#line 2054 "grammar.y"
+#line 1976 "grammar.y"
{ (yyval.exp) = MkExpCondition((yyvsp[(1) - (4)].exp), (yyvsp[(3) - (4)].list), MkExpDummy()); (yyval.exp).loc = (yyloc); (yyval.exp).cond.elseExp.loc = (yylsp[(3) - (4)]); ;}
break;
case 545:
/* Line 1464 of yacc.c */
-#line 2055 "grammar.y"
+#line 1977 "grammar.y"
{ (yyval.exp) = MkExpCondition((yyvsp[(1) - (4)].exp), (yyvsp[(3) - (4)].list), MkExpDummy()); (yyval.exp).loc = (yyloc); (yyval.exp).cond.elseExp.loc = (yylsp[(3) - (4)]); ;}
break;
case 546:
/* Line 1464 of yacc.c */
-#line 2057 "grammar.y"
+#line 1979 "grammar.y"
{ (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 547:
/* Line 1464 of yacc.c */
-#line 2058 "grammar.y"
+#line 1980 "grammar.y"
{ (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 548:
/* Line 1464 of yacc.c */
-#line 2059 "grammar.y"
+#line 1981 "grammar.y"
{ (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 549:
/* Line 1464 of yacc.c */
-#line 2060 "grammar.y"
+#line 1982 "grammar.y"
{ (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 550:
/* Line 1464 of yacc.c */
-#line 2061 "grammar.y"
+#line 1983 "grammar.y"
{ (yyval.exp) = MkExpCondition((yyvsp[(1) - (4)].exp), (yyvsp[(3) - (4)].list), MkExpDummy()); (yyval.exp).loc = (yyloc); (yyval.exp).cond.elseExp.loc = (yylsp[(3) - (4)]); ;}
break;
case 551:
/* Line 1464 of yacc.c */
-#line 2062 "grammar.y"
+#line 1984 "grammar.y"
{ (yyval.exp) = MkExpCondition((yyvsp[(1) - (4)].exp), (yyvsp[(3) - (4)].list), MkExpDummy()); (yyval.exp).loc = (yyloc); (yyval.exp).cond.elseExp.loc = (yylsp[(3) - (4)]); ;}
break;
case 552:
/* Line 1464 of yacc.c */
-#line 2063 "grammar.y"
+#line 1985 "grammar.y"
{ (yyval.exp) = MkExpCondition((yyvsp[(1) - (4)].exp), (yyvsp[(3) - (4)].list), MkExpDummy()); (yyval.exp).loc = (yyloc); (yyval.exp).cond.elseExp.loc = (yylsp[(3) - (4)]); ;}
break;
case 553:
/* Line 1464 of yacc.c */
-#line 2064 "grammar.y"
+#line 1986 "grammar.y"
{ (yyval.exp) = MkExpCondition((yyvsp[(1) - (4)].exp), (yyvsp[(3) - (4)].list), MkExpDummy()); (yyval.exp).loc = (yyloc); (yyval.exp).cond.elseExp.loc = (yylsp[(3) - (4)]); ;}
break;
case 554:
/* Line 1464 of yacc.c */
-#line 2066 "grammar.y"
+#line 1988 "grammar.y"
{ (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 555:
/* Line 1464 of yacc.c */
-#line 2067 "grammar.y"
+#line 1989 "grammar.y"
{ (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 556:
/* Line 1464 of yacc.c */
-#line 2068 "grammar.y"
+#line 1990 "grammar.y"
{ (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 557:
/* Line 1464 of yacc.c */
-#line 2069 "grammar.y"
+#line 1991 "grammar.y"
{ (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 558:
/* Line 1464 of yacc.c */
-#line 2071 "grammar.y"
+#line 1993 "grammar.y"
{ (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 559:
/* Line 1464 of yacc.c */
-#line 2072 "grammar.y"
+#line 1994 "grammar.y"
{ (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 560:
/* Line 1464 of yacc.c */
-#line 2073 "grammar.y"
+#line 1995 "grammar.y"
{ (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 561:
/* Line 1464 of yacc.c */
-#line 2074 "grammar.y"
+#line 1996 "grammar.y"
{ (yyval.exp) = MkExpCondition((yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 562:
/* Line 1464 of yacc.c */
-#line 2077 "grammar.y"
+#line 1999 "grammar.y"
{
yyerror();
(yyval.exp) = MkExpCondition((yyvsp[(1) - (3)].exp), MkListOne(MkExpDummy()), MkExpDummy());
case 563:
/* Line 1464 of yacc.c */
-#line 2085 "grammar.y"
+#line 2007 "grammar.y"
{
(yyval.exp) = MkExpCondition((yyvsp[(1) - (3)].exp), MkListOne(MkExpDummy()), MkExpDummy()); (yyval.exp).loc = (yyloc); ((Expression)(yyval.exp).cond.exp->last).loc = (yylsp[(2) - (3)]); (yyval.exp).cond.elseExp.loc = (yylsp[(3) - (3)]);
;}
case 564:
/* Line 1464 of yacc.c */
-#line 2089 "grammar.y"
+#line 2011 "grammar.y"
{
yyerror();
(yyval.exp) = MkExpCondition((yyvsp[(1) - (2)].exp), MkListOne(MkExpDummy()), MkExpDummy()); (yyval.exp).loc = (yyloc); ((Expression)(yyval.exp).cond.exp->last).loc = (yylsp[(2) - (2)]); (yyval.exp).cond.elseExp.loc = (yylsp[(2) - (2)]);
case 565:
/* Line 1464 of yacc.c */
-#line 2094 "grammar.y"
+#line 2016 "grammar.y"
{
(yyval.exp) = MkExpCondition((yyvsp[(1) - (2)].exp), MkListOne(MkExpDummy()), MkExpDummy()); (yyval.exp).loc = (yyloc); ((Expression)(yyval.exp).cond.exp->last).loc = (yylsp[(2) - (2)]); (yyval.exp).cond.elseExp.loc = (yylsp[(2) - (2)]);
;}
case 567:
/* Line 1464 of yacc.c */
-#line 2101 "grammar.y"
+#line 2023 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), (yyvsp[(2) - (3)].i), (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 568:
/* Line 1464 of yacc.c */
-#line 2105 "grammar.y"
+#line 2027 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), (yyvsp[(2) - (3)].i), (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 569:
/* Line 1464 of yacc.c */
-#line 2110 "grammar.y"
+#line 2032 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), (yyvsp[(2) - (3)].i), (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 570:
/* Line 1464 of yacc.c */
-#line 2111 "grammar.y"
+#line 2033 "grammar.y"
{ (yyval.exp) = MkExpOp((yyvsp[(1) - (3)].exp), (yyvsp[(2) - (3)].i), (yyvsp[(3) - (3)].exp)); (yyval.exp).loc = (yyloc); ;}
break;
case 571:
/* Line 1464 of yacc.c */
-#line 2115 "grammar.y"
+#line 2037 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].exp)); ;}
break;
case 572:
/* Line 1464 of yacc.c */
-#line 2116 "grammar.y"
+#line 2038 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (2)].exp)); ;}
break;
case 573:
/* Line 1464 of yacc.c */
-#line 2117 "grammar.y"
+#line 2039 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp)); ;}
break;
case 574:
/* Line 1464 of yacc.c */
-#line 2118 "grammar.y"
+#line 2040 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp)); ;}
break;
case 575:
/* Line 1464 of yacc.c */
-#line 2124 "grammar.y"
+#line 2046 "grammar.y"
{ yyerror(); (yyval.list) = (yyvsp[(1) - (2)].list); FreeList((yyvsp[(2) - (2)].list), FreeExpression); ;}
break;
case 576:
/* Line 1464 of yacc.c */
-#line 2125 "grammar.y"
+#line 2047 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); FreeList((yyvsp[(2) - (2)].list), FreeExpression); ;}
break;
case 577:
/* Line 1464 of yacc.c */
-#line 2126 "grammar.y"
+#line 2048 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); FreeList((yyvsp[(2) - (2)].list), FreeExpression); ;}
break;
case 578:
/* Line 1464 of yacc.c */
-#line 2130 "grammar.y"
+#line 2052 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].exp)); ;}
break;
case 579:
/* Line 1464 of yacc.c */
-#line 2131 "grammar.y"
+#line 2053 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (2)].exp)); ;}
break;
case 580:
/* Line 1464 of yacc.c */
-#line 2132 "grammar.y"
+#line 2054 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp)); ;}
break;
case 581:
/* Line 1464 of yacc.c */
-#line 2133 "grammar.y"
+#line 2055 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].exp)); ;}
break;
case 584:
/* Line 1464 of yacc.c */
-#line 2143 "grammar.y"
+#line 2065 "grammar.y"
{ (yyval.specifier) = MkSpecifier(TYPEDEF); ;}
break;
case 585:
/* Line 1464 of yacc.c */
-#line 2144 "grammar.y"
+#line 2066 "grammar.y"
{ (yyval.specifier) = MkSpecifier(EXTERN); ;}
break;
case 586:
/* Line 1464 of yacc.c */
-#line 2145 "grammar.y"
+#line 2067 "grammar.y"
{ (yyval.specifier) = MkSpecifier(STATIC); ;}
break;
case 587:
/* Line 1464 of yacc.c */
-#line 2146 "grammar.y"
+#line 2068 "grammar.y"
{ (yyval.specifier) = MkSpecifier(THREAD); ;}
break;
case 588:
/* Line 1464 of yacc.c */
-#line 2147 "grammar.y"
+#line 2069 "grammar.y"
{ (yyval.specifier) = MkSpecifier(AUTO); ;}
break;
case 589:
/* Line 1464 of yacc.c */
-#line 2148 "grammar.y"
+#line 2070 "grammar.y"
{ (yyval.specifier) = MkSpecifier(REGISTER); ;}
break;
case 590:
/* Line 1464 of yacc.c */
-#line 2149 "grammar.y"
+#line 2071 "grammar.y"
{ (yyval.specifier) = MkSpecifier(RESTRICT); ;}
break;
case 591:
/* Line 1464 of yacc.c */
-#line 2153 "grammar.y"
+#line 2075 "grammar.y"
{ (yyval.specifier) = MkSpecifier(TYPEDEF); structDeclMode = declMode = defaultAccess; ;}
break;
case 592:
/* Line 1464 of yacc.c */
-#line 2154 "grammar.y"
+#line 2076 "grammar.y"
{ (yyval.specifier) = MkSpecifier(EXTERN); ;}
break;
case 593:
/* Line 1464 of yacc.c */
-#line 2155 "grammar.y"
+#line 2077 "grammar.y"
{ (yyval.specifier) = MkSpecifier(STATIC); structDeclMode = declMode = staticAccess; ;}
break;
case 594:
/* Line 1464 of yacc.c */
-#line 2156 "grammar.y"
+#line 2078 "grammar.y"
{ (yyval.specifier) = MkSpecifier(THREAD); ;}
break;
case 595:
/* Line 1464 of yacc.c */
-#line 2157 "grammar.y"
+#line 2079 "grammar.y"
{ (yyval.specifier) = MkSpecifier(AUTO); ;}
break;
case 596:
/* Line 1464 of yacc.c */
-#line 2158 "grammar.y"
+#line 2080 "grammar.y"
{ (yyval.specifier) = MkSpecifier(REGISTER); ;}
break;
case 597:
/* Line 1464 of yacc.c */
-#line 2159 "grammar.y"
+#line 2081 "grammar.y"
{ (yyval.specifier) = MkSpecifier(RESTRICT); ;}
break;
case 598:
/* Line 1464 of yacc.c */
-#line 2163 "grammar.y"
+#line 2085 "grammar.y"
{ (yyval.enumerator) = MkEnumerator((yyvsp[(1) - (1)].id), null); ;}
break;
case 599:
/* Line 1464 of yacc.c */
-#line 2164 "grammar.y"
+#line 2086 "grammar.y"
{ (yyval.enumerator) = MkEnumerator((yyvsp[(1) - (3)].id), (yyvsp[(3) - (3)].exp)); ;}
break;
case 600:
/* Line 1464 of yacc.c */
-#line 2165 "grammar.y"
+#line 2087 "grammar.y"
{ (yyval.enumerator) = MkEnumerator((yyvsp[(1) - (3)].id), (yyvsp[(3) - (3)].exp)); ;}
break;
case 601:
/* Line 1464 of yacc.c */
-#line 2169 "grammar.y"
+#line 2091 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].enumerator)); ;}
break;
case 602:
/* Line 1464 of yacc.c */
-#line 2170 "grammar.y"
+#line 2092 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].enumerator)); ;}
break;
case 604:
/* Line 1464 of yacc.c */
-#line 2175 "grammar.y"
+#line 2097 "grammar.y"
{ memberAccessStack[++defaultMemberAccess] = publicAccess; ;}
break;
case 605:
/* Line 1464 of yacc.c */
-#line 2179 "grammar.y"
+#line 2101 "grammar.y"
{ (yyval.specifier) = MkEnum((yyvsp[(2) - (2)].id), null); POP_DEFAULT_ACCESS ;}
break;
case 606:
/* Line 1464 of yacc.c */
-#line 2180 "grammar.y"
+#line 2102 "grammar.y"
{ (yyval.specifier) = MkEnum(MkIdentifier((yyvsp[(2) - (2)].specifier).name), null); POP_DEFAULT_ACCESS ;}
break;
case 607:
/* Line 1464 of yacc.c */
-#line 2184 "grammar.y"
+#line 2106 "grammar.y"
{ (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS (yyval.specifier) = (yyvsp[(1) - (2)].specifier); ;}
break;
case 608:
/* Line 1464 of yacc.c */
-#line 2185 "grammar.y"
+#line 2107 "grammar.y"
{ (yyval.specifier) = MkEnum((yyvsp[(2) - (4)].id), null); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
break;
case 609:
/* Line 1464 of yacc.c */
-#line 2186 "grammar.y"
+#line 2108 "grammar.y"
{ (yyval.specifier) = MkEnum(MkIdentifier((yyvsp[(2) - (4)].specifier).name), null); FreeSpecifier((yyvsp[(2) - (4)].specifier)); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
break;
case 610:
/* Line 1464 of yacc.c */
-#line 2190 "grammar.y"
+#line 2112 "grammar.y"
{ (yyval.specifier) = MkEnum(null, (yyvsp[(3) - (3)].list)); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
break;
case 611:
/* Line 1464 of yacc.c */
-#line 2191 "grammar.y"
+#line 2113 "grammar.y"
{ (yyval.specifier) = MkEnum(null, null); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
break;
case 612:
/* Line 1464 of yacc.c */
-#line 2193 "grammar.y"
+#line 2115 "grammar.y"
{ (yyval.specifier) = MkEnum((yyvsp[(2) - (4)].id), (yyvsp[(4) - (4)].list)); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
break;
case 613:
/* Line 1464 of yacc.c */
-#line 2194 "grammar.y"
+#line 2116 "grammar.y"
{ (yyval.specifier) = MkEnum((yyvsp[(2) - (5)].id), (yyvsp[(4) - (5)].list)); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
break;
case 614:
/* Line 1464 of yacc.c */
-#line 2195 "grammar.y"
+#line 2117 "grammar.y"
{ (yyval.specifier) = MkEnum((yyvsp[(2) - (4)].id), null); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
break;
case 615:
/* Line 1464 of yacc.c */
-#line 2196 "grammar.y"
+#line 2118 "grammar.y"
{ (yyval.specifier) = MkEnum((yyvsp[(2) - (6)].id), (yyvsp[(4) - (6)].list)); (yyval.specifier).loc = (yyloc); (yyval.specifier).definitions = (yyvsp[(6) - (6)].list); POP_DEFAULT_ACCESS ;}
break;
case 616:
/* Line 1464 of yacc.c */
-#line 2197 "grammar.y"
+#line 2119 "grammar.y"
{ (yyval.specifier) = MkEnum((yyvsp[(2) - (6)].id), (yyvsp[(4) - (6)].list)); (yyval.specifier).loc = (yyloc); (yyval.specifier).definitions = (yyvsp[(6) - (6)].list); POP_DEFAULT_ACCESS ;}
break;
case 617:
/* Line 1464 of yacc.c */
-#line 2199 "grammar.y"
+#line 2121 "grammar.y"
{ (yyval.specifier) = MkEnum(MkIdentifier((yyvsp[(2) - (4)].specifier).name), (yyvsp[(4) - (4)].list)); (yyval.specifier).loc = (yyloc); FreeSpecifier((yyvsp[(2) - (4)].specifier)); POP_DEFAULT_ACCESS ;}
break;
case 618:
/* Line 1464 of yacc.c */
-#line 2200 "grammar.y"
+#line 2122 "grammar.y"
{ (yyval.specifier) = MkEnum(MkIdentifier((yyvsp[(2) - (5)].specifier).name), (yyvsp[(4) - (5)].list)); (yyval.specifier).loc = (yyloc); FreeSpecifier((yyvsp[(2) - (5)].specifier)); POP_DEFAULT_ACCESS ;}
break;
case 619:
/* Line 1464 of yacc.c */
-#line 2201 "grammar.y"
+#line 2123 "grammar.y"
{ (yyval.specifier) = MkEnum(MkIdentifier((yyvsp[(2) - (4)].specifier).name), null); (yyval.specifier).loc = (yyloc); FreeSpecifier((yyvsp[(2) - (4)].specifier)); POP_DEFAULT_ACCESS ;}
break;
case 620:
/* Line 1464 of yacc.c */
-#line 2202 "grammar.y"
+#line 2124 "grammar.y"
{ (yyval.specifier) = MkEnum(MkIdentifier((yyvsp[(2) - (6)].specifier).name), (yyvsp[(4) - (6)].list)); (yyval.specifier).loc = (yyloc); (yyval.specifier).definitions = (yyvsp[(6) - (6)].list); FreeSpecifier((yyvsp[(2) - (6)].specifier)); POP_DEFAULT_ACCESS ;}
break;
case 621:
/* Line 1464 of yacc.c */
-#line 2203 "grammar.y"
+#line 2125 "grammar.y"
{ (yyval.specifier) = MkEnum(MkIdentifier((yyvsp[(2) - (6)].specifier).name), (yyvsp[(4) - (6)].list)); (yyval.specifier).loc = (yyloc); (yyval.specifier).definitions = (yyvsp[(6) - (6)].list); FreeSpecifier((yyvsp[(2) - (6)].specifier)); POP_DEFAULT_ACCESS ;}
break;
case 622:
/* Line 1464 of yacc.c */
-#line 2205 "grammar.y"
+#line 2127 "grammar.y"
{ (yyval.specifier) = MkEnum((yyvsp[(2) - (5)].id), (yyvsp[(4) - (5)].list)); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
break;
case 623:
/* Line 1464 of yacc.c */
-#line 2206 "grammar.y"
+#line 2128 "grammar.y"
{ (yyval.specifier) = MkEnum(MkIdentifier((yyvsp[(2) - (5)].specifier).name), (yyvsp[(4) - (5)].list)); (yyval.specifier).loc = (yyloc); FreeSpecifier((yyvsp[(2) - (5)].specifier)); POP_DEFAULT_ACCESS ;}
break;
case 624:
/* Line 1464 of yacc.c */
-#line 2210 "grammar.y"
- { (yyval.id) = (yyvsp[(2) - (2)].id); if(declMode) DeclClassAddNameSpace((yyvsp[(2) - (2)].id).string); ;}
+#line 2132 "grammar.y"
+ { (yyval.id) = (yyvsp[(2) - (2)].id); if(declMode) DeclClassAddNameSpace((yyvsp[(2) - (2)].id)._class, (yyvsp[(2) - (2)].id).string); ;}
break;
case 625:
/* Line 1464 of yacc.c */
-#line 2211 "grammar.y"
- { (yyval.id) = MkIdentifier((yyvsp[(2) - (2)].specifier).name); if(declMode) DeclClass((yyvsp[(2) - (2)].specifier).name); FreeSpecifier((yyvsp[(2) - (2)].specifier)); ;}
+#line 2133 "grammar.y"
+ { (yyval.id) = MkIdentifier((yyvsp[(2) - (2)].specifier).name); if(declMode) DeclClass((yyvsp[(2) - (2)].specifier).nsSpec, (yyvsp[(2) - (2)].specifier).name); FreeSpecifier((yyvsp[(2) - (2)].specifier)); ;}
break;
case 626:
/* Line 1464 of yacc.c */
-#line 2215 "grammar.y"
+#line 2137 "grammar.y"
{ (yyval.specifier) = (yyvsp[(1) - (2)].specifier); (yyval.specifier).loc = (yyloc); ;}
break;
case 627:
/* Line 1464 of yacc.c */
-#line 2216 "grammar.y"
+#line 2138 "grammar.y"
{ (yyval.specifier) = MkEnum((yyvsp[(1) - (5)].id), null); (yyval.specifier).baseSpecs = (yyvsp[(3) - (5)].list); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
break;
case 628:
/* Line 1464 of yacc.c */
-#line 2217 "grammar.y"
+#line 2139 "grammar.y"
{ (yyval.specifier) = MkEnum((yyvsp[(1) - (3)].id), null); POP_DEFAULT_ACCESS ;}
break;
case 629:
/* Line 1464 of yacc.c */
-#line 2221 "grammar.y"
+#line 2143 "grammar.y"
{ (yyval.specifier) = MkEnum((yyvsp[(1) - (5)].id), (yyvsp[(5) - (5)].list)); (yyval.specifier).baseSpecs = (yyvsp[(3) - (5)].list); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
break;
case 630:
/* Line 1464 of yacc.c */
-#line 2222 "grammar.y"
+#line 2144 "grammar.y"
{ (yyval.specifier) = MkEnum((yyvsp[(1) - (6)].id), (yyvsp[(5) - (6)].list)); (yyval.specifier).baseSpecs = (yyvsp[(3) - (6)].list); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
break;
case 631:
/* Line 1464 of yacc.c */
-#line 2223 "grammar.y"
+#line 2145 "grammar.y"
{ (yyval.specifier) = MkEnum((yyvsp[(1) - (5)].id), null); (yyval.specifier).baseSpecs = (yyvsp[(3) - (5)].list); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
break;
case 632:
/* Line 1464 of yacc.c */
-#line 2224 "grammar.y"
+#line 2146 "grammar.y"
{ (yyval.specifier) = MkEnum((yyvsp[(1) - (7)].id), (yyvsp[(5) - (7)].list)); (yyval.specifier).baseSpecs = (yyvsp[(3) - (7)].list); (yyval.specifier).definitions = (yyvsp[(7) - (7)].list); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
break;
case 633:
/* Line 1464 of yacc.c */
-#line 2225 "grammar.y"
+#line 2147 "grammar.y"
{ (yyval.specifier) = MkEnum((yyvsp[(1) - (7)].id), (yyvsp[(5) - (7)].list)); (yyval.specifier).baseSpecs = (yyvsp[(3) - (7)].list); (yyval.specifier).definitions = (yyvsp[(7) - (7)].list); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
break;
case 634:
/* Line 1464 of yacc.c */
-#line 2226 "grammar.y"
+#line 2148 "grammar.y"
{ (yyval.specifier) = MkEnum((yyvsp[(1) - (8)].id), (yyvsp[(5) - (8)].list)); (yyval.specifier).baseSpecs = (yyvsp[(3) - (8)].list); (yyval.specifier).definitions = (yyvsp[(8) - (8)].list); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
break;
case 635:
/* Line 1464 of yacc.c */
-#line 2227 "grammar.y"
+#line 2149 "grammar.y"
{ (yyval.specifier) = MkEnum((yyvsp[(1) - (8)].id), (yyvsp[(5) - (8)].list)); (yyval.specifier).baseSpecs = (yyvsp[(3) - (8)].list); (yyval.specifier).definitions = (yyvsp[(8) - (8)].list); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
break;
case 636:
/* Line 1464 of yacc.c */
-#line 2228 "grammar.y"
+#line 2150 "grammar.y"
{ (yyval.specifier) = MkEnum((yyvsp[(1) - (7)].id), null); (yyval.specifier).baseSpecs = (yyvsp[(3) - (7)].list); (yyval.specifier).definitions = (yyvsp[(7) - (7)].list); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
break;
case 637:
/* Line 1464 of yacc.c */
-#line 2229 "grammar.y"
+#line 2151 "grammar.y"
{ (yyval.specifier) = MkEnum((yyvsp[(1) - (7)].id), null); (yyval.specifier).baseSpecs = (yyvsp[(3) - (7)].list); (yyval.specifier).definitions = (yyvsp[(7) - (7)].list); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
break;
case 638:
/* Line 1464 of yacc.c */
-#line 2231 "grammar.y"
+#line 2153 "grammar.y"
{ (yyval.specifier) = MkEnum(null, (yyvsp[(3) - (3)].list)); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
break;
case 639:
/* Line 1464 of yacc.c */
-#line 2232 "grammar.y"
+#line 2154 "grammar.y"
{ (yyval.specifier) = MkEnum(null, null); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
break;
case 640:
/* Line 1464 of yacc.c */
-#line 2234 "grammar.y"
+#line 2156 "grammar.y"
{ (yyval.specifier) = MkEnum((yyvsp[(1) - (3)].id), (yyvsp[(3) - (3)].list)); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
break;
case 641:
/* Line 1464 of yacc.c */
-#line 2235 "grammar.y"
+#line 2157 "grammar.y"
{ (yyval.specifier) = MkEnum((yyvsp[(1) - (4)].id), (yyvsp[(3) - (4)].list)); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
break;
case 642:
/* Line 1464 of yacc.c */
-#line 2236 "grammar.y"
+#line 2158 "grammar.y"
{ (yyval.specifier) = MkEnum((yyvsp[(1) - (3)].id), null); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
break;
case 643:
/* Line 1464 of yacc.c */
-#line 2237 "grammar.y"
+#line 2159 "grammar.y"
{ (yyval.specifier) = MkEnum((yyvsp[(1) - (5)].id), (yyvsp[(3) - (5)].list)); (yyval.specifier).definitions = (yyvsp[(5) - (5)].list); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
break;
case 644:
/* Line 1464 of yacc.c */
-#line 2238 "grammar.y"
+#line 2160 "grammar.y"
{ (yyval.specifier) = MkEnum((yyvsp[(1) - (5)].id), (yyvsp[(3) - (5)].list)); (yyval.specifier).definitions = (yyvsp[(5) - (5)].list); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
break;
case 645:
/* Line 1464 of yacc.c */
-#line 2240 "grammar.y"
+#line 2162 "grammar.y"
{ (yyval.specifier) = MkEnum((yyvsp[(1) - (6)].id), (yyvsp[(5) - (6)].list)); (yyval.specifier).baseSpecs = (yyvsp[(3) - (6)].list); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
break;
case 646:
/* Line 1464 of yacc.c */
-#line 2241 "grammar.y"
+#line 2163 "grammar.y"
{ (yyval.specifier) = MkEnum((yyvsp[(1) - (7)].id), (yyvsp[(5) - (7)].list)); (yyval.specifier).baseSpecs = (yyvsp[(3) - (7)].list); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
break;
case 647:
/* Line 1464 of yacc.c */
-#line 2242 "grammar.y"
+#line 2164 "grammar.y"
{ (yyval.specifier) = MkEnum((yyvsp[(1) - (6)].id), null); (yyval.specifier).baseSpecs = (yyvsp[(3) - (6)].list); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
break;
case 648:
/* Line 1464 of yacc.c */
-#line 2243 "grammar.y"
+#line 2165 "grammar.y"
{ (yyval.specifier) = MkEnum((yyvsp[(1) - (4)].id), (yyvsp[(3) - (4)].list)); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
break;
case 653:
/* Line 1464 of yacc.c */
-#line 2257 "grammar.y"
+#line 2179 "grammar.y"
{ (yyval.specifier) = MkSpecifierExtended((yyvsp[(1) - (1)].extDecl)); ;}
break;
case 654:
/* Line 1464 of yacc.c */
-#line 2261 "grammar.y"
+#line 2183 "grammar.y"
{ (yyval.specifier) = MkSpecifier(CONST); ;}
break;
case 655:
/* Line 1464 of yacc.c */
-#line 2262 "grammar.y"
+#line 2184 "grammar.y"
{ (yyval.specifier) = MkSpecifier(VOLATILE); ;}
break;
case 656:
/* Line 1464 of yacc.c */
-#line 2263 "grammar.y"
+#line 2185 "grammar.y"
{ (yyval.specifier) = (yyvsp[(1) - (1)].specifier); ;}
break;
case 657:
/* Line 1464 of yacc.c */
-#line 2268 "grammar.y"
+#line 2190 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
break;
case 658:
/* Line 1464 of yacc.c */
-#line 2269 "grammar.y"
+#line 2191 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
break;
case 659:
/* Line 1464 of yacc.c */
-#line 2273 "grammar.y"
+#line 2195 "grammar.y"
{ (yyval.specifier) = MkSpecifier(VOID); ;}
break;
case 660:
/* Line 1464 of yacc.c */
-#line 2274 "grammar.y"
+#line 2196 "grammar.y"
{ (yyval.specifier) = MkSpecifier(CHAR); ;}
break;
case 661:
/* Line 1464 of yacc.c */
-#line 2275 "grammar.y"
+#line 2197 "grammar.y"
{ (yyval.specifier) = MkSpecifier(SHORT); ;}
break;
case 662:
/* Line 1464 of yacc.c */
-#line 2276 "grammar.y"
+#line 2198 "grammar.y"
{ (yyval.specifier) = MkSpecifier(INT); ;}
break;
case 663:
/* Line 1464 of yacc.c */
-#line 2277 "grammar.y"
+#line 2199 "grammar.y"
{ (yyval.specifier) = MkSpecifier(UINT); ;}
break;
case 664:
/* Line 1464 of yacc.c */
-#line 2278 "grammar.y"
+#line 2200 "grammar.y"
{ (yyval.specifier) = MkSpecifier(INT64); ;}
break;
case 665:
/* Line 1464 of yacc.c */
-#line 2279 "grammar.y"
+#line 2201 "grammar.y"
{ (yyval.specifier) = MkSpecifier(VALIST); ;}
break;
case 666:
/* Line 1464 of yacc.c */
-#line 2280 "grammar.y"
+#line 2202 "grammar.y"
{ (yyval.specifier) = MkSpecifier(LONG); ;}
break;
case 667:
/* Line 1464 of yacc.c */
-#line 2281 "grammar.y"
+#line 2203 "grammar.y"
{ (yyval.specifier) = MkSpecifier(FLOAT); ;}
break;
case 668:
/* Line 1464 of yacc.c */
-#line 2282 "grammar.y"
+#line 2204 "grammar.y"
{ (yyval.specifier) = MkSpecifier(DOUBLE); ;}
break;
case 669:
/* Line 1464 of yacc.c */
-#line 2283 "grammar.y"
+#line 2205 "grammar.y"
{ (yyval.specifier) = MkSpecifier(SIGNED); ;}
break;
case 670:
/* Line 1464 of yacc.c */
-#line 2284 "grammar.y"
+#line 2206 "grammar.y"
{ (yyval.specifier) = MkSpecifier(UNSIGNED); ;}
break;
case 671:
/* Line 1464 of yacc.c */
-#line 2285 "grammar.y"
+#line 2207 "grammar.y"
{ (yyval.specifier) = MkSpecifier(EXTENSION); ;}
break;
case 675:
/* Line 1464 of yacc.c */
-#line 2289 "grammar.y"
+#line 2211 "grammar.y"
{ (yyval.specifier) = MkSpecifierTypeOf((yyvsp[(3) - (4)].exp)); ;}
break;
case 676:
/* Line 1464 of yacc.c */
-#line 2290 "grammar.y"
+#line 2212 "grammar.y"
{ (yyval.specifier) = MkSpecifierSubClass((yyvsp[(3) - (4)].specifier)); ;}
break;
case 677:
/* Line 1464 of yacc.c */
-#line 2291 "grammar.y"
- { _DeclClass((yyvsp[(3) - (4)].id).string); (yyval.specifier) = MkSpecifierSubClass(MkSpecifierName((yyvsp[(3) - (4)].id).string)); FreeIdentifier((yyvsp[(3) - (4)].id)); ;}
+#line 2213 "grammar.y"
+ { _DeclClass((yyvsp[(3) - (4)].id)._class, (yyvsp[(3) - (4)].id).string); (yyval.specifier) = MkSpecifierSubClass(MkSpecifierName((yyvsp[(3) - (4)].id).string)); FreeIdentifier((yyvsp[(3) - (4)].id)); ;}
break;
case 678:
/* Line 1464 of yacc.c */
-#line 2292 "grammar.y"
+#line 2214 "grammar.y"
{ (yyval.specifier) = MkSpecifier(THISCLASS); ;}
break;
case 679:
/* Line 1464 of yacc.c */
-#line 2293 "grammar.y"
+#line 2215 "grammar.y"
{ (yyval.specifier) = MkSpecifier(TYPED_OBJECT); ;}
break;
case 680:
/* Line 1464 of yacc.c */
-#line 2294 "grammar.y"
+#line 2216 "grammar.y"
{ (yyval.specifier) = MkSpecifier(ANY_OBJECT); ;}
break;
case 681:
/* Line 1464 of yacc.c */
-#line 2295 "grammar.y"
+#line 2217 "grammar.y"
{ (yyval.specifier) = MkSpecifier(_BOOL); ;}
break;
case 682:
/* Line 1464 of yacc.c */
-#line 2296 "grammar.y"
+#line 2218 "grammar.y"
{ (yyval.specifier) = MkSpecifier(BOOL); ;}
break;
case 683:
/* Line 1464 of yacc.c */
-#line 2297 "grammar.y"
+#line 2219 "grammar.y"
{ (yyval.specifier) = MkSpecifier(_COMPLEX); ;}
break;
case 684:
/* Line 1464 of yacc.c */
-#line 2298 "grammar.y"
+#line 2220 "grammar.y"
{ (yyval.specifier) = MkSpecifier(_IMAGINARY); ;}
break;
case 685:
/* Line 1464 of yacc.c */
-#line 2302 "grammar.y"
+#line 2224 "grammar.y"
{ (yyval.specifier) = MkSpecifier(VOID); ;}
break;
case 686:
/* Line 1464 of yacc.c */
-#line 2303 "grammar.y"
+#line 2225 "grammar.y"
{ (yyval.specifier) = MkSpecifier(CHAR); ;}
break;
case 687:
/* Line 1464 of yacc.c */
-#line 2304 "grammar.y"
+#line 2226 "grammar.y"
{ (yyval.specifier) = MkSpecifier(SHORT); ;}
break;
case 688:
/* Line 1464 of yacc.c */
-#line 2305 "grammar.y"
+#line 2227 "grammar.y"
{ (yyval.specifier) = MkSpecifier(INT); ;}
break;
case 689:
/* Line 1464 of yacc.c */
-#line 2306 "grammar.y"
+#line 2228 "grammar.y"
{ (yyval.specifier) = MkSpecifier(UINT); ;}
break;
case 690:
/* Line 1464 of yacc.c */
-#line 2307 "grammar.y"
+#line 2229 "grammar.y"
{ (yyval.specifier) = MkSpecifier(INT64); ;}
break;
case 691:
/* Line 1464 of yacc.c */
-#line 2308 "grammar.y"
+#line 2230 "grammar.y"
{ (yyval.specifier) = MkSpecifier(VALIST); ;}
break;
case 692:
/* Line 1464 of yacc.c */
-#line 2309 "grammar.y"
+#line 2231 "grammar.y"
{ (yyval.specifier) = MkSpecifier(LONG); ;}
break;
case 693:
/* Line 1464 of yacc.c */
-#line 2310 "grammar.y"
+#line 2232 "grammar.y"
{ (yyval.specifier) = MkSpecifier(FLOAT); ;}
break;
case 694:
/* Line 1464 of yacc.c */
-#line 2311 "grammar.y"
+#line 2233 "grammar.y"
{ (yyval.specifier) = MkSpecifier(DOUBLE); ;}
break;
case 695:
/* Line 1464 of yacc.c */
-#line 2312 "grammar.y"
+#line 2234 "grammar.y"
{ (yyval.specifier) = MkSpecifier(SIGNED); ;}
break;
case 696:
/* Line 1464 of yacc.c */
-#line 2313 "grammar.y"
+#line 2235 "grammar.y"
{ (yyval.specifier) = MkSpecifier(UNSIGNED); ;}
break;
case 697:
/* Line 1464 of yacc.c */
-#line 2314 "grammar.y"
+#line 2236 "grammar.y"
{ (yyval.specifier) = MkSpecifier(EXTENSION); ;}
break;
case 701:
/* Line 1464 of yacc.c */
-#line 2318 "grammar.y"
+#line 2240 "grammar.y"
{ (yyval.specifier) = MkSpecifier(_BOOL); ;}
break;
case 702:
/* Line 1464 of yacc.c */
-#line 2319 "grammar.y"
+#line 2241 "grammar.y"
{ (yyval.specifier) = MkSpecifier(BOOL); ;}
break;
case 703:
/* Line 1464 of yacc.c */
-#line 2320 "grammar.y"
+#line 2242 "grammar.y"
{ (yyval.specifier) = MkSpecifier(_COMPLEX); ;}
break;
case 704:
/* Line 1464 of yacc.c */
-#line 2321 "grammar.y"
+#line 2243 "grammar.y"
{ (yyval.specifier) = MkSpecifier(_IMAGINARY); ;}
break;
case 705:
/* Line 1464 of yacc.c */
-#line 2322 "grammar.y"
+#line 2244 "grammar.y"
{ (yyval.specifier) = MkSpecifierTypeOf((yyvsp[(3) - (4)].exp)); ;}
break;
case 706:
/* Line 1464 of yacc.c */
-#line 2323 "grammar.y"
+#line 2245 "grammar.y"
{ (yyval.specifier) = MkSpecifierSubClass((yyvsp[(3) - (4)].specifier)); ;}
break;
case 707:
/* Line 1464 of yacc.c */
-#line 2324 "grammar.y"
- { _DeclClass((yyvsp[(3) - (4)].id).string); (yyval.specifier) = MkSpecifierSubClass(MkSpecifierName((yyvsp[(3) - (4)].id).string)); FreeIdentifier((yyvsp[(3) - (4)].id)); ;}
+#line 2246 "grammar.y"
+ { _DeclClass((yyvsp[(3) - (4)].id)._class, (yyvsp[(3) - (4)].id).string); (yyval.specifier) = MkSpecifierSubClass(MkSpecifierName((yyvsp[(3) - (4)].id).string)); FreeIdentifier((yyvsp[(3) - (4)].id)); ;}
break;
case 708:
/* Line 1464 of yacc.c */
-#line 2325 "grammar.y"
+#line 2247 "grammar.y"
{ (yyval.specifier) = MkSpecifier(THISCLASS); ;}
break;
case 709:
/* Line 1464 of yacc.c */
-#line 2332 "grammar.y"
+#line 2254 "grammar.y"
{ (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (1)].declarator), null); (yyval.declarator).loc = (yyloc); ;}
break;
case 710:
/* Line 1464 of yacc.c */
-#line 2334 "grammar.y"
+#line 2256 "grammar.y"
{ (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (2)].declarator), null); (yyval.declarator).structDecl.attrib = (yyvsp[(2) - (2)].attrib); (yyval.declarator).loc = (yyloc); ;}
break;
case 711:
/* Line 1464 of yacc.c */
-#line 2336 "grammar.y"
+#line 2258 "grammar.y"
{ (yyval.declarator) = MkStructDeclarator(null, (yyvsp[(2) - (2)].exp)); (yyval.declarator).loc = (yyloc); ;}
break;
case 712:
/* Line 1464 of yacc.c */
-#line 2338 "grammar.y"
+#line 2260 "grammar.y"
{ (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (3)].declarator), (yyvsp[(3) - (3)].exp)); (yyval.declarator).loc = (yyloc); ;}
break;
case 713:
/* Line 1464 of yacc.c */
-#line 2340 "grammar.y"
+#line 2262 "grammar.y"
{ (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (5)].declarator), (yyvsp[(3) - (5)].exp)); (yyval.declarator).structDecl.posExp = (yyvsp[(5) - (5)].exp); (yyval.declarator).loc = (yyloc); ;}
break;
case 714:
/* Line 1464 of yacc.c */
-#line 2342 "grammar.y"
+#line 2264 "grammar.y"
{ (yyval.declarator) = MkStructDeclarator(null, (yyvsp[(2) - (2)].exp)); (yyval.declarator).loc = (yyloc); ;}
break;
case 715:
/* Line 1464 of yacc.c */
-#line 2344 "grammar.y"
+#line 2266 "grammar.y"
{ (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (3)].declarator), (yyvsp[(3) - (3)].exp)); (yyval.declarator).loc = (yyloc); ;}
break;
case 716:
/* Line 1464 of yacc.c */
-#line 2346 "grammar.y"
+#line 2268 "grammar.y"
{ (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (5)].declarator), (yyvsp[(3) - (5)].exp)); (yyval.declarator).structDecl.posExp = (yyvsp[(5) - (5)].exp); (yyval.declarator).loc = (yyloc); ;}
break;
case 717:
/* Line 1464 of yacc.c */
-#line 2348 "grammar.y"
+#line 2270 "grammar.y"
{ (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (5)].declarator), (yyvsp[(3) - (5)].exp)); (yyval.declarator).structDecl.posExp = (yyvsp[(5) - (5)].exp); (yyval.declarator).loc = (yyloc); ;}
break;
case 718:
/* Line 1464 of yacc.c */
-#line 2350 "grammar.y"
+#line 2272 "grammar.y"
{ (yyval.declarator) = MkStructDeclarator((yyvsp[(1) - (5)].declarator), (yyvsp[(3) - (5)].exp)); (yyval.declarator).structDecl.posExp = (yyvsp[(5) - (5)].exp); (yyval.declarator).loc = (yyloc); ;}
break;
case 719:
/* Line 1464 of yacc.c */
-#line 2354 "grammar.y"
+#line 2276 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].declarator)); ;}
break;
case 720:
/* Line 1464 of yacc.c */
-#line 2355 "grammar.y"
+#line 2277 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].declarator)); ;}
break;
case 721:
/* Line 1464 of yacc.c */
-#line 2360 "grammar.y"
+#line 2282 "grammar.y"
{
(yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (2)].specifierType), (yyvsp[(2) - (2)].id), null);
(yyval.specifier).addNameSpace = true;
case 722:
/* Line 1464 of yacc.c */
-#line 2366 "grammar.y"
+#line 2288 "grammar.y"
{
(yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (2)].specifierType), MkIdentifier((yyvsp[(2) - (2)].specifier).name), null);
(yyval.specifier).ctx = PushContext();
case 723:
/* Line 1464 of yacc.c */
-#line 2372 "grammar.y"
+#line 2294 "grammar.y"
{
(yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (3)].specifierType), (yyvsp[(3) - (3)].id), null);
(yyval.specifier).extDeclStruct = (yyvsp[(2) - (3)].extDecl);
case 724:
/* Line 1464 of yacc.c */
-#line 2379 "grammar.y"
+#line 2301 "grammar.y"
{
(yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (3)].specifierType), MkIdentifier((yyvsp[(3) - (3)].specifier).name), null);
(yyval.specifier).extDeclStruct = (yyvsp[(2) - (3)].extDecl);
case 725:
/* Line 1464 of yacc.c */
-#line 2388 "grammar.y"
+#line 2310 "grammar.y"
{ (yyval.specifier) = (yyvsp[(1) - (2)].specifier); (yyval.specifier).loc = (yyloc); ;}
break;
case 726:
/* Line 1464 of yacc.c */
-#line 2389 "grammar.y"
+#line 2311 "grammar.y"
{ (yyval.specifier) = (yyvsp[(1) - (3)].specifier); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS PopContext(curContext); ;}
break;
case 727:
/* Line 1464 of yacc.c */
-#line 2390 "grammar.y"
+#line 2312 "grammar.y"
{ (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (3)].specifierType), null, null); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
break;
case 728:
/* Line 1464 of yacc.c */
-#line 2391 "grammar.y"
+#line 2313 "grammar.y"
{ (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (4)].specifierType), null, null); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (4)].extDecl); (yyval.specifier).loc = (yyloc); POP_DEFAULT_ACCESS ;}
break;
case 729:
/* Line 1464 of yacc.c */
-#line 2395 "grammar.y"
+#line 2317 "grammar.y"
{ (yyval.specifier) = (yyvsp[(1) - (3)].specifier); AddStructDefinitions((yyvsp[(1) - (3)].specifier), (yyvsp[(3) - (3)].list)); POP_DEFAULT_ACCESS PopContext(curContext); ;}
break;
case 730:
/* Line 1464 of yacc.c */
-#line 2396 "grammar.y"
+#line 2318 "grammar.y"
{ (yyval.specifier) = (yyvsp[(1) - (3)].specifier); AddStructDefinitions((yyvsp[(1) - (3)].specifier), (yyvsp[(3) - (3)].list)); POP_DEFAULT_ACCESS PopContext(curContext); ;}
break;
case 731:
/* Line 1464 of yacc.c */
-#line 2397 "grammar.y"
+#line 2319 "grammar.y"
{ (yyval.specifier) = (yyvsp[(1) - (3)].specifier); POP_DEFAULT_ACCESS PopContext(curContext); ;}
break;
case 732:
/* Line 1464 of yacc.c */
-#line 2399 "grammar.y"
+#line 2321 "grammar.y"
{ (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (3)].specifierType), null, (yyvsp[(3) - (3)].list)); POP_DEFAULT_ACCESS ;}
break;
case 733:
/* Line 1464 of yacc.c */
-#line 2400 "grammar.y"
+#line 2322 "grammar.y"
{ (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (3)].specifierType), null, (yyvsp[(3) - (3)].list)); POP_DEFAULT_ACCESS ;}
break;
case 734:
/* Line 1464 of yacc.c */
-#line 2401 "grammar.y"
+#line 2323 "grammar.y"
{ (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (3)].specifierType), null, null); POP_DEFAULT_ACCESS ;}
break;
case 735:
/* Line 1464 of yacc.c */
-#line 2403 "grammar.y"
+#line 2325 "grammar.y"
{ (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (4)].specifierType), null, (yyvsp[(4) - (4)].list)); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (4)].extDecl); POP_DEFAULT_ACCESS ;}
break;
case 736:
/* Line 1464 of yacc.c */
-#line 2404 "grammar.y"
+#line 2326 "grammar.y"
{ (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (4)].specifierType), null, (yyvsp[(4) - (4)].list)); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (4)].extDecl); POP_DEFAULT_ACCESS ;}
break;
case 737:
/* Line 1464 of yacc.c */
-#line 2405 "grammar.y"
+#line 2327 "grammar.y"
{ (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (4)].specifierType), null, null); (yyval.specifier).extDeclStruct = (yyvsp[(2) - (4)].extDecl); POP_DEFAULT_ACCESS ;}
break;
case 738:
/* Line 1464 of yacc.c */
-#line 2409 "grammar.y"
+#line 2331 "grammar.y"
{ (yyval.specifier) = (yyvsp[(1) - (1)].specifier); POP_DEFAULT_ACCESS PopContext(curContext); ;}
break;
case 739:
/* Line 1464 of yacc.c */
-#line 2414 "grammar.y"
+#line 2336 "grammar.y"
{
(yyval.specifier) = (yyvsp[(1) - (1)].specifier);
if(declMode)
{
- ((yyvsp[(1) - (1)].specifier).addNameSpace ? DeclClassAddNameSpace : DeclClass)((yyvsp[(1) - (1)].specifier).id.string);
+ ((yyvsp[(1) - (1)].specifier).addNameSpace ? DeclClassAddNameSpace : DeclClass)((yyvsp[(1) - (1)].specifier).id._class, (yyvsp[(1) - (1)].specifier).id.string);
}
;}
break;
case 740:
/* Line 1464 of yacc.c */
-#line 2422 "grammar.y"
+#line 2344 "grammar.y"
{
- Symbol symbol = ((yyvsp[(1) - (4)].specifier).addNameSpace ? DeclClassAddNameSpace : DeclClass)((yyvsp[(1) - (4)].specifier).id.string);
+ Symbol symbol = ((yyvsp[(1) - (4)].specifier).addNameSpace ? DeclClassAddNameSpace : DeclClass)((yyvsp[(1) - (4)].specifier).id._class, (yyvsp[(1) - (4)].specifier).id.string);
(yyval.specifier) = (yyvsp[(1) - (4)].specifier);
symbol.templateParams = (yyvsp[(3) - (4)].list);
;}
case 741:
/* Line 1464 of yacc.c */
-#line 2431 "grammar.y"
+#line 2353 "grammar.y"
{
(yyval.specifier) = (yyvsp[(1) - (3)].specifier);
(yyval.specifier).baseSpecs = (yyvsp[(3) - (3)].list);
case 742:
/* Line 1464 of yacc.c */
-#line 2439 "grammar.y"
+#line 2361 "grammar.y"
{ (yyval.specifier) = (yyvsp[(1) - (2)].specifier); (yyval.specifier).loc = (yyloc); ;}
break;
case 743:
/* Line 1464 of yacc.c */
-#line 2441 "grammar.y"
+#line 2363 "grammar.y"
{ (yyval.specifier) = (yyvsp[(1) - (3)].specifier); POP_DEFAULT_ACCESS PopContext(curContext); ;}
break;
case 744:
/* Line 1464 of yacc.c */
-#line 2442 "grammar.y"
+#line 2364 "grammar.y"
{ (yyval.specifier) = (yyvsp[(1) - (3)].specifier); POP_DEFAULT_ACCESS PopContext(curContext); ;}
break;
case 745:
/* Line 1464 of yacc.c */
-#line 2443 "grammar.y"
+#line 2365 "grammar.y"
{ (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (3)].specifierType), null, null); POP_DEFAULT_ACCESS ;}
break;
case 746:
/* Line 1464 of yacc.c */
-#line 2448 "grammar.y"
+#line 2370 "grammar.y"
{
(yyval.specifier) = (yyvsp[(1) - (3)].specifier);
(yyval.specifier).definitions = (yyvsp[(3) - (3)].list);
case 747:
/* Line 1464 of yacc.c */
-#line 2455 "grammar.y"
+#line 2377 "grammar.y"
{
(yyval.specifier) = (yyvsp[(1) - (3)].specifier);
(yyval.specifier).definitions = (yyvsp[(3) - (3)].list);
case 748:
/* Line 1464 of yacc.c */
-#line 2462 "grammar.y"
+#line 2384 "grammar.y"
{ (yyval.specifier) = (yyvsp[(1) - (3)].specifier); POP_DEFAULT_ACCESS PopContext(curContext);;}
break;
case 749:
/* Line 1464 of yacc.c */
-#line 2465 "grammar.y"
+#line 2387 "grammar.y"
{
PopContext(curContext);
if(!declMode)
case 750:
/* Line 1464 of yacc.c */
-#line 2478 "grammar.y"
+#line 2400 "grammar.y"
{
PopContext(curContext);
case 751:
/* Line 1464 of yacc.c */
-#line 2492 "grammar.y"
+#line 2414 "grammar.y"
{ (yyval.specifier) = (yyvsp[(1) - (3)].specifier); POP_DEFAULT_ACCESS PopContext(curContext); ;}
break;
case 752:
/* Line 1464 of yacc.c */
-#line 2495 "grammar.y"
+#line 2417 "grammar.y"
{ (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (3)].specifierType), null, (yyvsp[(3) - (3)].list)); POP_DEFAULT_ACCESS ;}
break;
case 753:
/* Line 1464 of yacc.c */
-#line 2497 "grammar.y"
+#line 2419 "grammar.y"
{ (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (3)].specifierType), null, (yyvsp[(3) - (3)].list)); POP_DEFAULT_ACCESS ;}
break;
case 754:
/* Line 1464 of yacc.c */
-#line 2499 "grammar.y"
+#line 2421 "grammar.y"
{ (yyval.specifier) = MkStructOrUnion((yyvsp[(1) - (3)].specifierType), null, null); POP_DEFAULT_ACCESS ;}
break;
case 755:
/* Line 1464 of yacc.c */
-#line 2503 "grammar.y"
+#line 2425 "grammar.y"
{ (yyval.specifierType) = structSpecifier; memberAccessStack[++defaultMemberAccess] = publicAccess; ;}
break;
case 756:
/* Line 1464 of yacc.c */
-#line 2504 "grammar.y"
+#line 2426 "grammar.y"
{ (yyval.specifierType) = unionSpecifier; memberAccessStack[++defaultMemberAccess] = publicAccess; ;}
break;
case 757:
/* Line 1464 of yacc.c */
-#line 2508 "grammar.y"
+#line 2430 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
break;
case 758:
/* Line 1464 of yacc.c */
-#line 2509 "grammar.y"
+#line 2431 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
break;
case 759:
/* Line 1464 of yacc.c */
-#line 2510 "grammar.y"
+#line 2432 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
break;
case 760:
/* Line 1464 of yacc.c */
-#line 2511 "grammar.y"
+#line 2433 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
break;
case 761:
/* Line 1464 of yacc.c */
-#line 2512 "grammar.y"
+#line 2434 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
break;
case 762:
/* Line 1464 of yacc.c */
-#line 2513 "grammar.y"
+#line 2435 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
break;
case 763:
/* Line 1464 of yacc.c */
-#line 2514 "grammar.y"
+#line 2436 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
break;
case 764:
/* Line 1464 of yacc.c */
-#line 2515 "grammar.y"
+#line 2437 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
break;
case 765:
/* Line 1464 of yacc.c */
-#line 2519 "grammar.y"
+#line 2441 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
break;
case 766:
/* Line 1464 of yacc.c */
-#line 2520 "grammar.y"
+#line 2442 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
break;
case 767:
/* Line 1464 of yacc.c */
-#line 2521 "grammar.y"
+#line 2443 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
break;
case 768:
/* Line 1464 of yacc.c */
-#line 2522 "grammar.y"
+#line 2444 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
break;
case 769:
/* Line 1464 of yacc.c */
-#line 2523 "grammar.y"
+#line 2445 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
break;
case 770:
/* Line 1464 of yacc.c */
-#line 2524 "grammar.y"
+#line 2446 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
break;
case 771:
/* Line 1464 of yacc.c */
-#line 2525 "grammar.y"
+#line 2447 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
break;
case 772:
/* Line 1464 of yacc.c */
-#line 2526 "grammar.y"
+#line 2448 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
break;
case 773:
/* Line 1464 of yacc.c */
-#line 2527 "grammar.y"
+#line 2449 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
break;
case 774:
/* Line 1464 of yacc.c */
-#line 2528 "grammar.y"
+#line 2450 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
break;
case 775:
/* Line 1464 of yacc.c */
-#line 2532 "grammar.y"
+#line 2454 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
break;
case 776:
/* Line 1464 of yacc.c */
-#line 2533 "grammar.y"
+#line 2455 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
break;
case 777:
/* Line 1464 of yacc.c */
-#line 2534 "grammar.y"
+#line 2456 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
break;
case 778:
/* Line 1464 of yacc.c */
-#line 2535 "grammar.y"
+#line 2457 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
break;
case 779:
/* Line 1464 of yacc.c */
-#line 2536 "grammar.y"
+#line 2458 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
break;
case 780:
/* Line 1464 of yacc.c */
-#line 2537 "grammar.y"
+#line 2459 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
break;
case 781:
/* Line 1464 of yacc.c */
-#line 2538 "grammar.y"
+#line 2460 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
break;
case 782:
/* Line 1464 of yacc.c */
-#line 2539 "grammar.y"
+#line 2461 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
break;
case 783:
/* Line 1464 of yacc.c */
-#line 2540 "grammar.y"
+#line 2462 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
break;
case 784:
/* Line 1464 of yacc.c */
-#line 2541 "grammar.y"
+#line 2463 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
break;
case 785:
/* Line 1464 of yacc.c */
-#line 2545 "grammar.y"
+#line 2467 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
break;
case 786:
/* Line 1464 of yacc.c */
-#line 2546 "grammar.y"
+#line 2468 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
break;
case 787:
/* Line 1464 of yacc.c */
-#line 2547 "grammar.y"
+#line 2469 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
break;
case 788:
/* Line 1464 of yacc.c */
-#line 2548 "grammar.y"
+#line 2470 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
break;
case 789:
/* Line 1464 of yacc.c */
-#line 2549 "grammar.y"
+#line 2471 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
break;
case 790:
/* Line 1464 of yacc.c */
-#line 2550 "grammar.y"
+#line 2472 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
break;
case 791:
/* Line 1464 of yacc.c */
-#line 2551 "grammar.y"
+#line 2473 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
break;
case 792:
/* Line 1464 of yacc.c */
-#line 2552 "grammar.y"
+#line 2474 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
break;
case 793:
/* Line 1464 of yacc.c */
-#line 2553 "grammar.y"
+#line 2475 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
break;
case 794:
/* Line 1464 of yacc.c */
-#line 2554 "grammar.y"
+#line 2476 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
break;
case 795:
/* Line 1464 of yacc.c */
-#line 2555 "grammar.y"
+#line 2477 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
break;
case 796:
/* Line 1464 of yacc.c */
-#line 2556 "grammar.y"
+#line 2478 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
break;
case 797:
/* Line 1464 of yacc.c */
-#line 2560 "grammar.y"
+#line 2482 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
break;
case 798:
/* Line 1464 of yacc.c */
-#line 2561 "grammar.y"
+#line 2483 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
break;
case 799:
/* Line 1464 of yacc.c */
-#line 2562 "grammar.y"
+#line 2484 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
break;
case 800:
/* Line 1464 of yacc.c */
-#line 2563 "grammar.y"
+#line 2485 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
break;
case 801:
/* Line 1464 of yacc.c */
-#line 2564 "grammar.y"
+#line 2486 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
break;
case 802:
/* Line 1464 of yacc.c */
-#line 2565 "grammar.y"
+#line 2487 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
break;
case 803:
/* Line 1464 of yacc.c */
-#line 2566 "grammar.y"
+#line 2488 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
break;
case 804:
/* Line 1464 of yacc.c */
-#line 2567 "grammar.y"
+#line 2489 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
break;
case 805:
/* Line 1464 of yacc.c */
-#line 2568 "grammar.y"
+#line 2490 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
break;
case 806:
/* Line 1464 of yacc.c */
-#line 2569 "grammar.y"
+#line 2491 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
break;
case 807:
/* Line 1464 of yacc.c */
-#line 2573 "grammar.y"
+#line 2495 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
break;
case 808:
/* Line 1464 of yacc.c */
-#line 2574 "grammar.y"
+#line 2496 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
break;
case 809:
/* Line 1464 of yacc.c */
-#line 2578 "grammar.y"
+#line 2500 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), MkSpecifier(PRIVATE)); ;}
break;
case 810:
/* Line 1464 of yacc.c */
-#line 2579 "grammar.y"
+#line 2501 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), MkSpecifier(PUBLIC)); ;}
break;
case 811:
/* Line 1464 of yacc.c */
-#line 2580 "grammar.y"
+#line 2502 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
break;
case 812:
/* Line 1464 of yacc.c */
-#line 2581 "grammar.y"
+#line 2503 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
break;
case 813:
/* Line 1464 of yacc.c */
-#line 2582 "grammar.y"
+#line 2504 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
break;
case 814:
/* Line 1464 of yacc.c */
-#line 2583 "grammar.y"
+#line 2505 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
break;
case 815:
/* Line 1464 of yacc.c */
-#line 2584 "grammar.y"
+#line 2506 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
break;
case 816:
/* Line 1464 of yacc.c */
-#line 2585 "grammar.y"
+#line 2507 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
break;
case 817:
/* Line 1464 of yacc.c */
-#line 2587 "grammar.y"
- { _DeclClass((yyvsp[(1) - (1)].id).string); (yyval.list) = MkListOne(MkSpecifierName((yyvsp[(1) - (1)].id).string)); FreeIdentifier((yyvsp[(1) - (1)].id)); ;}
+#line 2509 "grammar.y"
+ { _DeclClass((yyvsp[(1) - (1)].id)._class, (yyvsp[(1) - (1)].id).string); (yyval.list) = MkListOne(MkSpecifierName((yyvsp[(1) - (1)].id).string)); FreeIdentifier((yyvsp[(1) - (1)].id)); ;}
break;
case 818:
/* Line 1464 of yacc.c */
-#line 2588 "grammar.y"
- { (yyval.list) = (yyvsp[(1) - (2)].list); _DeclClass((yyvsp[(2) - (2)].id).string); ListAdd((yyvsp[(1) - (2)].list), MkSpecifierName((yyvsp[(2) - (2)].id).string)); FreeIdentifier((yyvsp[(2) - (2)].id)); ;}
+#line 2510 "grammar.y"
+ { (yyval.list) = (yyvsp[(1) - (2)].list); _DeclClass((yyvsp[(2) - (2)].id)._class, (yyvsp[(2) - (2)].id).string); ListAdd((yyvsp[(1) - (2)].list), MkSpecifierName((yyvsp[(2) - (2)].id).string)); FreeIdentifier((yyvsp[(2) - (2)].id)); ;}
break;
case 819:
/* Line 1464 of yacc.c */
-#line 2591 "grammar.y"
+#line 2513 "grammar.y"
{
- // if($1._class && !$1._class.name)
- if((yyvsp[(1) - (4)].id)._class)
- {
- char name[1024];
- strcpy(name, (yyvsp[(1) - (4)].id)._class.name ? (yyvsp[(1) - (4)].id)._class.name : "");
- strcat(name, "::");
- strcat(name, (yyvsp[(1) - (4)].id).string);
- _DeclClass(name);
- }
- else
- _DeclClass((yyvsp[(1) - (4)].id).string);
+ _DeclClass((yyvsp[(1) - (4)].id)._class, (yyvsp[(1) - (4)].id).string);
(yyval.list) = MkList();
ListAdd((yyval.list), MkSpecifierNameArgs((yyvsp[(1) - (4)].id).string, (yyvsp[(3) - (4)].list)));
case 820:
/* Line 1464 of yacc.c */
-#line 2609 "grammar.y"
+#line 2521 "grammar.y"
{
(yyval.list) = (yyvsp[(1) - (5)].list);
- if((yyvsp[(2) - (5)].id)._class && !(yyvsp[(2) - (5)].id)._class.name)
- {
- char name[1024];
- strcpy(name, "::");
- strcat(name, (yyvsp[(2) - (5)].id).string);
- _DeclClass(name);
- }
- else
- _DeclClass((yyvsp[(2) - (5)].id).string);
+ _DeclClass((yyvsp[(2) - (5)].id)._class, (yyvsp[(2) - (5)].id).string);
ListAdd((yyvsp[(1) - (5)].list), MkSpecifierNameArgs((yyvsp[(2) - (5)].id).string, (yyvsp[(4) - (5)].list)));
FreeIdentifier((yyvsp[(2) - (5)].id));
;}
case 822:
/* Line 1464 of yacc.c */
-#line 2627 "grammar.y"
+#line 2531 "grammar.y"
{ (yyval.list) = MkListOne(MkStructOrUnion((yyvsp[(1) - (1)].specifierType), null, null)); POP_DEFAULT_ACCESS ;}
break;
case 823:
/* Line 1464 of yacc.c */
-#line 2631 "grammar.y"
+#line 2535 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
break;
case 824:
/* Line 1464 of yacc.c */
-#line 2632 "grammar.y"
+#line 2536 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
break;
case 825:
/* Line 1464 of yacc.c */
-#line 2633 "grammar.y"
+#line 2537 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
break;
case 826:
/* Line 1464 of yacc.c */
-#line 2634 "grammar.y"
+#line 2538 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
break;
case 827:
/* Line 1464 of yacc.c */
-#line 2635 "grammar.y"
+#line 2539 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
break;
case 828:
/* Line 1464 of yacc.c */
-#line 2636 "grammar.y"
+#line 2540 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
break;
case 829:
/* Line 1464 of yacc.c */
-#line 2637 "grammar.y"
+#line 2541 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), MkSpecifierName((yyvsp[(1) - (1)].id).string)); FreeIdentifier((yyvsp[(1) - (1)].id));}
break;
case 830:
/* Line 1464 of yacc.c */
-#line 2638 "grammar.y"
+#line 2542 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), MkSpecifierName((yyvsp[(2) - (2)].id).string)); FreeIdentifier((yyvsp[(2) - (2)].id));}
break;
case 831:
/* Line 1464 of yacc.c */
-#line 2640 "grammar.y"
+#line 2544 "grammar.y"
{
- // if($1._class && !$1._class.name)
- if((yyvsp[(1) - (4)].id)._class)
- {
- char name[1024];
- strcpy(name, (yyvsp[(1) - (4)].id)._class.name ? (yyvsp[(1) - (4)].id)._class.name : "");
- strcat(name, "::");
- strcat(name, (yyvsp[(1) - (4)].id).string);
- _DeclClass(name);
- }
- else
- _DeclClass((yyvsp[(1) - (4)].id).string);
+ _DeclClass((yyvsp[(1) - (4)].id)._class, (yyvsp[(1) - (4)].id).string);
(yyval.list) = MkList();
ListAdd((yyval.list), MkSpecifierNameArgs((yyvsp[(1) - (4)].id).string, (yyvsp[(3) - (4)].list)));
case 832:
/* Line 1464 of yacc.c */
-#line 2658 "grammar.y"
+#line 2552 "grammar.y"
{
- if((yyvsp[(2) - (5)].id)._class && !(yyvsp[(2) - (5)].id)._class.name)
- {
- char name[1024];
- strcpy(name, "::");
- strcat(name, (yyvsp[(2) - (5)].id).string);
- _DeclClass(name);
- }
- else
- _DeclClass((yyvsp[(2) - (5)].id).string);
+ _DeclClass((yyvsp[(2) - (5)].id)._class, (yyvsp[(2) - (5)].id).string);
ListAdd((yyvsp[(1) - (5)].list), MkSpecifierNameArgs((yyvsp[(2) - (5)].id).string, (yyvsp[(4) - (5)].list)));
FreeIdentifier((yyvsp[(2) - (5)].id));
;}
case 833:
/* Line 1464 of yacc.c */
-#line 2674 "grammar.y"
+#line 2560 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
break;
case 834:
/* Line 1464 of yacc.c */
-#line 2675 "grammar.y"
+#line 2561 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
break;
case 835:
/* Line 1464 of yacc.c */
-#line 2676 "grammar.y"
+#line 2562 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
break;
case 836:
/* Line 1464 of yacc.c */
-#line 2677 "grammar.y"
+#line 2563 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
break;
case 837:
/* Line 1464 of yacc.c */
-#line 2678 "grammar.y"
+#line 2564 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
break;
case 838:
/* Line 1464 of yacc.c */
-#line 2679 "grammar.y"
+#line 2565 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
break;
case 839:
/* Line 1464 of yacc.c */
-#line 2680 "grammar.y"
+#line 2566 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
break;
case 840:
/* Line 1464 of yacc.c */
-#line 2681 "grammar.y"
+#line 2567 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
break;
case 841:
/* Line 1464 of yacc.c */
-#line 2682 "grammar.y"
+#line 2568 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
break;
case 842:
/* Line 1464 of yacc.c */
-#line 2683 "grammar.y"
+#line 2569 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
break;
case 843:
/* Line 1464 of yacc.c */
-#line 2684 "grammar.y"
+#line 2570 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), MkSpecifierName((yyvsp[(1) - (1)].id).string)); FreeIdentifier((yyvsp[(1) - (1)].id));}
break;
case 844:
/* Line 1464 of yacc.c */
-#line 2685 "grammar.y"
+#line 2571 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), MkSpecifierName((yyvsp[(2) - (2)].id).string)); FreeIdentifier((yyvsp[(2) - (2)].id));}
break;
case 845:
/* Line 1464 of yacc.c */
-#line 2687 "grammar.y"
+#line 2573 "grammar.y"
{
- // if($1._class && !$1._class.name)
- if((yyvsp[(1) - (4)].id)._class)
- {
- char name[1024];
- strcpy(name, (yyvsp[(1) - (4)].id)._class.name ? (yyvsp[(1) - (4)].id)._class.name : "");
- strcat(name, "::");
- strcat(name, (yyvsp[(1) - (4)].id).string);
- _DeclClass(name);
- }
- else
- _DeclClass((yyvsp[(1) - (4)].id).string);
+ _DeclClass((yyvsp[(1) - (4)].id)._class, (yyvsp[(1) - (4)].id).string);
(yyval.list) = MkList();
ListAdd((yyval.list), MkSpecifierNameArgs((yyvsp[(1) - (4)].id).string, (yyvsp[(3) - (4)].list)));
case 846:
/* Line 1464 of yacc.c */
-#line 2705 "grammar.y"
+#line 2581 "grammar.y"
{
- if((yyvsp[(2) - (5)].id)._class && !(yyvsp[(2) - (5)].id)._class.name)
- {
- char name[1024];
- strcpy(name, "::");
- strcat(name, (yyvsp[(2) - (5)].id).string);
- _DeclClass(name);
- }
- else
- _DeclClass((yyvsp[(2) - (5)].id).string);
+ _DeclClass((yyvsp[(2) - (5)].id)._class, (yyvsp[(2) - (5)].id).string);
ListAdd((yyvsp[(1) - (5)].list), MkSpecifierNameArgs((yyvsp[(2) - (5)].id).string, (yyvsp[(4) - (5)].list)));
FreeIdentifier((yyvsp[(2) - (5)].id));
;}
case 847:
/* Line 1464 of yacc.c */
-#line 2721 "grammar.y"
+#line 2589 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
break;
case 848:
/* Line 1464 of yacc.c */
-#line 2722 "grammar.y"
+#line 2590 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
break;
case 849:
/* Line 1464 of yacc.c */
-#line 2723 "grammar.y"
+#line 2591 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
break;
case 850:
/* Line 1464 of yacc.c */
-#line 2724 "grammar.y"
+#line 2592 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
break;
case 851:
/* Line 1464 of yacc.c */
-#line 2725 "grammar.y"
+#line 2593 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
break;
case 852:
/* Line 1464 of yacc.c */
-#line 2726 "grammar.y"
+#line 2594 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
break;
case 853:
/* Line 1464 of yacc.c */
-#line 2727 "grammar.y"
+#line 2595 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
break;
case 854:
/* Line 1464 of yacc.c */
-#line 2728 "grammar.y"
+#line 2596 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
break;
case 855:
/* Line 1464 of yacc.c */
-#line 2729 "grammar.y"
+#line 2597 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].specifier)); ;}
break;
case 856:
/* Line 1464 of yacc.c */
-#line 2730 "grammar.y"
+#line 2598 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].specifier)); ;}
break;
case 857:
/* Line 1464 of yacc.c */
-#line 2731 "grammar.y"
+#line 2599 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), MkSpecifierName((yyvsp[(1) - (1)].id).string)); FreeIdentifier((yyvsp[(1) - (1)].id));}
break;
case 858:
/* Line 1464 of yacc.c */
-#line 2732 "grammar.y"
+#line 2600 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), MkSpecifierName((yyvsp[(2) - (2)].id).string)); FreeIdentifier((yyvsp[(2) - (2)].id));}
break;
case 859:
/* Line 1464 of yacc.c */
-#line 2734 "grammar.y"
+#line 2602 "grammar.y"
{
- // if($1._class && !$1._class.name)
- if((yyvsp[(1) - (4)].id)._class)
- {
- char name[1024];
- strcpy(name, (yyvsp[(1) - (4)].id)._class.name ? (yyvsp[(1) - (4)].id)._class.name : "");
- strcat(name, "::");
- strcat(name, (yyvsp[(1) - (4)].id).string);
- _DeclClass(name);
- }
- else
- _DeclClass((yyvsp[(1) - (4)].id).string);
+ _DeclClass((yyvsp[(1) - (4)].id)._class, (yyvsp[(1) - (4)].id).string);
(yyval.list) = MkList();
ListAdd((yyval.list), MkSpecifierNameArgs((yyvsp[(1) - (4)].id).string, (yyvsp[(3) - (4)].list)));
case 860:
/* Line 1464 of yacc.c */
-#line 2752 "grammar.y"
+#line 2610 "grammar.y"
{
- if((yyvsp[(2) - (5)].id)._class && !(yyvsp[(2) - (5)].id)._class.name)
- {
- char name[1024];
- strcpy(name, "::");
- strcat(name, (yyvsp[(2) - (5)].id).string);
- _DeclClass(name);
- }
- else
- _DeclClass((yyvsp[(2) - (5)].id).string);
+ _DeclClass((yyvsp[(2) - (5)].id)._class, (yyvsp[(2) - (5)].id).string);
ListAdd((yyvsp[(1) - (5)].list), MkSpecifierNameArgs((yyvsp[(2) - (5)].id).string, (yyvsp[(4) - (5)].list)));
FreeIdentifier((yyvsp[(2) - (5)].id));
;}
case 861:
/* Line 1464 of yacc.c */
-#line 2768 "grammar.y"
+#line 2618 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), null); ;}
break;
case 862:
/* Line 1464 of yacc.c */
-#line 2769 "grammar.y"
+#line 2619 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), null); ;}
break;
case 863:
/* Line 1464 of yacc.c */
-#line 2773 "grammar.y"
+#line 2623 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), MkTypeName(null, MkDeclaratorIdentifier((yyvsp[(1) - (1)].id)))); ;}
break;
case 864:
/* Line 1464 of yacc.c */
-#line 2774 "grammar.y"
+#line 2624 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), MkTypeName(null, MkDeclaratorIdentifier((yyvsp[(3) - (3)].id)))); ;}
break;
case 865:
/* Line 1464 of yacc.c */
-#line 2775 "grammar.y"
+#line 2625 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), MkTypeName(null, MkDeclaratorIdentifier((yyvsp[(3) - (3)].id)))); ;}
break;
case 866:
/* Line 1464 of yacc.c */
-#line 2776 "grammar.y"
+#line 2626 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), MkTypeName(null, MkDeclaratorIdentifier((yyvsp[(3) - (3)].id)))); ;}
break;
case 867:
/* Line 1464 of yacc.c */
-#line 2777 "grammar.y"
+#line 2627 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), MkTypeName(null, MkDeclaratorIdentifier((yyvsp[(3) - (3)].id)))); ;}
break;
case 869:
/* Line 1464 of yacc.c */
-#line 2783 "grammar.y"
+#line 2633 "grammar.y"
{
char * colon = RSearchString((yyvsp[(1) - (1)].specifier).name, "::", strlen((yyvsp[(1) - (1)].specifier).name), true, false);
String s = colon ? colon + 2 : (yyvsp[(1) - (1)].specifier).name;
case 870:
/* Line 1464 of yacc.c */
-#line 2789 "grammar.y"
+#line 2639 "grammar.y"
{ (yyval.declarator) = MkDeclaratorIdentifier(MkIdentifier("uint")); ;}
break;
case 871:
/* Line 1464 of yacc.c */
-#line 2792 "grammar.y"
+#line 2642 "grammar.y"
{
Declarator decl;
char * colon = RSearchString((yyvsp[(1) - (4)].specifier).name, "::", strlen((yyvsp[(1) - (4)].specifier).name), true, false);
case 872:
/* Line 1464 of yacc.c */
-#line 2801 "grammar.y"
+#line 2651 "grammar.y"
{
Declarator decl;
char * colon = RSearchString((yyvsp[(1) - (4)].specifier).name, "::", strlen((yyvsp[(1) - (4)].specifier).name), true, false);
case 873:
/* Line 1464 of yacc.c */
-#line 2810 "grammar.y"
+#line 2660 "grammar.y"
{
Declarator decl;
char * colon = RSearchString((yyvsp[(1) - (4)].specifier).name, "::", strlen((yyvsp[(1) - (4)].specifier).name), true, false);
case 874:
/* Line 1464 of yacc.c */
-#line 2819 "grammar.y"
+#line 2669 "grammar.y"
{
Declarator decl;
char * colon = RSearchString((yyvsp[(1) - (3)].specifier).name, "::", strlen((yyvsp[(1) - (3)].specifier).name), true, false);
case 875:
/* Line 1464 of yacc.c */
-#line 2827 "grammar.y"
+#line 2677 "grammar.y"
{ (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].exp)); ;}
break;
case 876:
/* Line 1464 of yacc.c */
-#line 2828 "grammar.y"
+#line 2678 "grammar.y"
{ (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].exp)); ;}
break;
case 877:
/* Line 1464 of yacc.c */
-#line 2829 "grammar.y"
+#line 2679 "grammar.y"
{ (yyval.declarator) = MkDeclaratorEnumArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].specifier)); ;}
break;
case 878:
/* Line 1464 of yacc.c */
-#line 2830 "grammar.y"
+#line 2680 "grammar.y"
{ (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (3)].declarator), null); ;}
break;
case 879:
/* Line 1464 of yacc.c */
-#line 2834 "grammar.y"
+#line 2684 "grammar.y"
{ (yyval.declarator) = MkDeclaratorIdentifier((yyvsp[(1) - (1)].id)); ;}
break;
case 880:
/* Line 1464 of yacc.c */
-#line 2835 "grammar.y"
+#line 2685 "grammar.y"
{ (yyval.declarator) = MkDeclaratorBrackets((yyvsp[(2) - (3)].declarator)); ;}
break;
case 881:
/* Line 1464 of yacc.c */
-#line 2836 "grammar.y"
+#line 2686 "grammar.y"
{ (yyval.declarator) = MkDeclaratorBrackets(MkDeclaratorExtended((yyvsp[(2) - (4)].extDecl), (yyvsp[(3) - (4)].declarator))); ;}
break;
case 882:
/* Line 1464 of yacc.c */
-#line 2837 "grammar.y"
+#line 2687 "grammar.y"
{ (yyval.declarator) = MkDeclaratorBrackets((yyvsp[(2) - (3)].declarator)); ;}
break;
case 883:
/* Line 1464 of yacc.c */
-#line 2838 "grammar.y"
+#line 2688 "grammar.y"
{ (yyval.declarator) = MkDeclaratorBrackets(MkDeclaratorExtended((yyvsp[(2) - (4)].extDecl), (yyvsp[(3) - (4)].declarator))); ;}
break;
case 884:
/* Line 1464 of yacc.c */
-#line 2839 "grammar.y"
+#line 2689 "grammar.y"
{ (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].exp)); ;}
break;
case 885:
/* Line 1464 of yacc.c */
-#line 2840 "grammar.y"
+#line 2690 "grammar.y"
{ (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].exp)); ;}
break;
case 886:
/* Line 1464 of yacc.c */
-#line 2841 "grammar.y"
+#line 2691 "grammar.y"
{ (yyval.declarator) = MkDeclaratorEnumArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].specifier)); ;}
break;
case 887:
/* Line 1464 of yacc.c */
-#line 2842 "grammar.y"
+#line 2692 "grammar.y"
{ (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (3)].declarator), null); ;}
break;
case 889:
/* Line 1464 of yacc.c */
-#line 2850 "grammar.y"
+#line 2700 "grammar.y"
{ (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); ;}
break;
case 890:
/* Line 1464 of yacc.c */
-#line 2851 "grammar.y"
+#line 2701 "grammar.y"
{ (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); ;}
break;
case 891:
/* Line 1464 of yacc.c */
-#line 2852 "grammar.y"
+#line 2702 "grammar.y"
{ (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); ;}
break;
case 892:
/* Line 1464 of yacc.c */
-#line 2853 "grammar.y"
+#line 2703 "grammar.y"
{ (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); ;}
break;
case 893:
/* Line 1464 of yacc.c */
-#line 2854 "grammar.y"
+#line 2704 "grammar.y"
{ (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (2)].declarator), null); ;}
break;
case 894:
/* Line 1464 of yacc.c */
-#line 2860 "grammar.y"
+#line 2710 "grammar.y"
{
(yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (2)].declarator), (yyvsp[(2) - (2)].list));
fileInput.Seek((yylsp[(1) - (2)]).end.pos, start);
case 895:
/* Line 1464 of yacc.c */
-#line 2869 "grammar.y"
+#line 2719 "grammar.y"
{
(yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (2)].declarator), null);
fileInput.Seek((yylsp[(1) - (2)]).end.pos, start);
case 896:
/* Line 1464 of yacc.c */
-#line 2878 "grammar.y"
+#line 2728 "grammar.y"
{
(yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list));
fileInput.Seek((yylsp[(1) - (3)]).end.pos, start);
case 897:
/* Line 1464 of yacc.c */
-#line 2887 "grammar.y"
+#line 2737 "grammar.y"
{
(yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (4)].declarator), null);
fileInput.Seek((yylsp[(1) - (4)]).end.pos, start);
case 901:
/* Line 1464 of yacc.c */
-#line 2910 "grammar.y"
+#line 2760 "grammar.y"
{ (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); ;}
break;
case 902:
/* Line 1464 of yacc.c */
-#line 2911 "grammar.y"
+#line 2761 "grammar.y"
{ (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); ;}
break;
case 903:
/* Line 1464 of yacc.c */
-#line 2912 "grammar.y"
+#line 2762 "grammar.y"
{ (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); ;}
break;
case 904:
/* Line 1464 of yacc.c */
-#line 2913 "grammar.y"
+#line 2763 "grammar.y"
{ (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); ;}
break;
case 905:
/* Line 1464 of yacc.c */
-#line 2914 "grammar.y"
+#line 2764 "grammar.y"
{ (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (2)].declarator), null); ;}
break;
case 906:
/* Line 1464 of yacc.c */
-#line 2920 "grammar.y"
+#line 2770 "grammar.y"
{
(yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (2)].declarator), (yyvsp[(2) - (2)].list));
fileInput.Seek((yylsp[(1) - (2)]).end.pos, start);
case 907:
/* Line 1464 of yacc.c */
-#line 2929 "grammar.y"
+#line 2779 "grammar.y"
{
(yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (2)].declarator), null);
fileInput.Seek((yylsp[(1) - (2)]).end.pos, start);
case 908:
/* Line 1464 of yacc.c */
-#line 2938 "grammar.y"
+#line 2788 "grammar.y"
{
(yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list));
fileInput.Seek((yylsp[(1) - (3)]).end.pos, start);
case 909:
/* Line 1464 of yacc.c */
-#line 2947 "grammar.y"
+#line 2797 "grammar.y"
{
(yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (4)].declarator), null);
fileInput.Seek((yylsp[(1) - (4)]).end.pos, start);
case 912:
/* Line 1464 of yacc.c */
-#line 3010 "grammar.y"
+#line 2860 "grammar.y"
{ (yyval.extDecl) = MkExtDeclString(CopyString(yytext)); ;}
break;
case 913:
/* Line 1464 of yacc.c */
-#line 3011 "grammar.y"
+#line 2861 "grammar.y"
{ (yyval.extDecl) = MkExtDeclString(CopyString(yytext)); ;}
break;
case 914:
/* Line 1464 of yacc.c */
-#line 3012 "grammar.y"
+#line 2862 "grammar.y"
{ (yyval.extDecl) = MkExtDeclAttrib((yyvsp[(1) - (1)].attrib)); ;}
break;
case 915:
/* Line 1464 of yacc.c */
-#line 3014 "grammar.y"
+#line 2864 "grammar.y"
{
char temp[1024];
strcpy(temp, "__asm__(");
case 916:
/* Line 1464 of yacc.c */
-#line 3025 "grammar.y"
+#line 2875 "grammar.y"
{ (yyval.i) = ATTRIB; ;}
break;
case 917:
/* Line 1464 of yacc.c */
-#line 3026 "grammar.y"
+#line 2876 "grammar.y"
{ (yyval.i) = ATTRIB_DEP; ;}
break;
case 918:
/* Line 1464 of yacc.c */
-#line 3027 "grammar.y"
+#line 2877 "grammar.y"
{ (yyval.i) = __ATTRIB; ;}
break;
case 919:
/* Line 1464 of yacc.c */
-#line 3032 "grammar.y"
+#line 2882 "grammar.y"
{ (yyval.string) = CopyString(yytext); ;}
break;
case 920:
/* Line 1464 of yacc.c */
-#line 3033 "grammar.y"
+#line 2883 "grammar.y"
{ (yyval.string) = CopyString(yytext); ;}
break;
case 921:
/* Line 1464 of yacc.c */
-#line 3034 "grammar.y"
+#line 2884 "grammar.y"
{ (yyval.string) = CopyString(yytext); ;}
break;
case 922:
/* Line 1464 of yacc.c */
-#line 3035 "grammar.y"
+#line 2885 "grammar.y"
{ (yyval.string) = CopyString(yytext); ;}
break;
case 923:
/* Line 1464 of yacc.c */
-#line 3036 "grammar.y"
+#line 2886 "grammar.y"
{ (yyval.string) = CopyString(yytext); ;}
break;
case 924:
/* Line 1464 of yacc.c */
-#line 3040 "grammar.y"
+#line 2890 "grammar.y"
{ (yyval.attribute) = MkAttribute((yyvsp[(1) - (1)].string), null); (yyval.attribute).loc = (yyloc); ;}
break;
case 925:
/* Line 1464 of yacc.c */
-#line 3041 "grammar.y"
+#line 2891 "grammar.y"
{ (yyval.attribute) = MkAttribute((yyvsp[(1) - (4)].string), MkExpBrackets((yyvsp[(3) - (4)].list))); (yyval.attribute).loc = (yyloc); ;}
break;
case 926:
/* Line 1464 of yacc.c */
-#line 3045 "grammar.y"
+#line 2895 "grammar.y"
{ (yyval.list) = MkListOne((yyvsp[(1) - (1)].attribute)); ;}
break;
case 927:
/* Line 1464 of yacc.c */
-#line 3046 "grammar.y"
+#line 2896 "grammar.y"
{ ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].attribute)); (yyval.list) = (yyvsp[(1) - (2)].list); ;}
break;
case 928:
/* Line 1464 of yacc.c */
-#line 3047 "grammar.y"
+#line 2897 "grammar.y"
{ ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].attribute)); (yyval.list) = (yyvsp[(1) - (3)].list); ;}
break;
case 929:
/* Line 1464 of yacc.c */
-#line 3051 "grammar.y"
+#line 2901 "grammar.y"
{ (yyval.attrib) = MkAttrib((yyvsp[(1) - (6)].i), (yyvsp[(4) - (6)].list)); (yyval.attrib).loc = (yyloc); ;}
break;
case 930:
/* Line 1464 of yacc.c */
-#line 3052 "grammar.y"
+#line 2902 "grammar.y"
{ (yyval.attrib) = MkAttrib((yyvsp[(1) - (5)].i), null); (yyval.attrib).loc = (yyloc); ;}
break;
case 931:
/* Line 1464 of yacc.c */
-#line 3056 "grammar.y"
+#line 2906 "grammar.y"
{ (yyval.declarator) = MkDeclaratorBrackets((yyvsp[(2) - (3)].declarator)); ;}
break;
case 932:
/* Line 1464 of yacc.c */
-#line 3057 "grammar.y"
+#line 2907 "grammar.y"
{ (yyval.declarator) = MkDeclaratorBrackets(MkDeclaratorExtended((yyvsp[(2) - (4)].extDecl), (yyvsp[(3) - (4)].declarator))); ;}
break;
case 933:
/* Line 1464 of yacc.c */
-#line 3058 "grammar.y"
+#line 2908 "grammar.y"
{ (yyval.declarator) = MkDeclaratorArray(null, null); ;}
break;
case 934:
/* Line 1464 of yacc.c */
-#line 3059 "grammar.y"
+#line 2909 "grammar.y"
{ (yyval.declarator) = MkDeclaratorArray(null, (yyvsp[(2) - (3)].exp)); ;}
break;
case 935:
/* Line 1464 of yacc.c */
-#line 3060 "grammar.y"
+#line 2910 "grammar.y"
{ (yyval.declarator) = MkDeclaratorArray(null, (yyvsp[(2) - (3)].exp)); ;}
break;
case 936:
/* Line 1464 of yacc.c */
-#line 3061 "grammar.y"
+#line 2911 "grammar.y"
{ (yyval.declarator) = MkDeclaratorEnumArray(null, (yyvsp[(2) - (3)].specifier)); ;}
break;
case 937:
/* Line 1464 of yacc.c */
-#line 3062 "grammar.y"
+#line 2912 "grammar.y"
{ (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (3)].declarator), null); ;}
break;
case 938:
/* Line 1464 of yacc.c */
-#line 3063 "grammar.y"
+#line 2913 "grammar.y"
{ (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].exp)); ;}
break;
case 939:
/* Line 1464 of yacc.c */
-#line 3064 "grammar.y"
+#line 2914 "grammar.y"
{ (yyval.declarator) = MkDeclaratorEnumArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].specifier)); ;}
break;
case 940:
/* Line 1464 of yacc.c */
-#line 3065 "grammar.y"
+#line 2915 "grammar.y"
{ (yyval.declarator) = MkDeclaratorArray((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].exp)); ;}
break;
case 941:
/* Line 1464 of yacc.c */
-#line 3066 "grammar.y"
+#line 2916 "grammar.y"
{ (yyval.declarator) = MkDeclaratorFunction(null, null); ;}
break;
case 942:
/* Line 1464 of yacc.c */
-#line 3067 "grammar.y"
+#line 2917 "grammar.y"
{ (yyval.declarator) = MkDeclaratorFunction(null, (yyvsp[(2) - (3)].list)); ;}
break;
case 943:
/* Line 1464 of yacc.c */
-#line 3068 "grammar.y"
+#line 2918 "grammar.y"
{ (yyval.declarator) = MkDeclaratorFunction(null, (yyvsp[(2) - (3)].list)); ;}
break;
case 944:
/* Line 1464 of yacc.c */
-#line 3069 "grammar.y"
+#line 2919 "grammar.y"
{ (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), null); ;}
break;
case 945:
/* Line 1464 of yacc.c */
-#line 3070 "grammar.y"
+#line 2920 "grammar.y"
{ (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].list)); ;}
break;
case 946:
/* Line 1464 of yacc.c */
-#line 3071 "grammar.y"
+#line 2921 "grammar.y"
{ (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].list)); ;}
break;
case 947:
/* Line 1464 of yacc.c */
-#line 3075 "grammar.y"
+#line 2925 "grammar.y"
{ (yyval.declarator) = MkDeclaratorBrackets((yyvsp[(2) - (3)].declarator)); ;}
break;
case 948:
/* Line 1464 of yacc.c */
-#line 3076 "grammar.y"
+#line 2926 "grammar.y"
{ (yyval.declarator) = MkDeclaratorBrackets(MkDeclaratorExtended((yyvsp[(2) - (4)].extDecl), (yyvsp[(3) - (4)].declarator))); ;}
break;
case 949:
/* Line 1464 of yacc.c */
-#line 3077 "grammar.y"
+#line 2927 "grammar.y"
{ (yyval.declarator) = MkDeclaratorFunction(null, null); ;}
break;
case 950:
/* Line 1464 of yacc.c */
-#line 3078 "grammar.y"
+#line 2928 "grammar.y"
{ (yyval.declarator) = MkDeclaratorFunction(null, (yyvsp[(2) - (3)].list)); ;}
break;
case 951:
/* Line 1464 of yacc.c */
-#line 3079 "grammar.y"
+#line 2929 "grammar.y"
{ (yyval.declarator) = MkDeclaratorFunction(null, (yyvsp[(2) - (3)].list)); ;}
break;
case 952:
/* Line 1464 of yacc.c */
-#line 3080 "grammar.y"
+#line 2930 "grammar.y"
{ (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (3)].declarator), null); ;}
break;
case 953:
/* Line 1464 of yacc.c */
-#line 3081 "grammar.y"
+#line 2931 "grammar.y"
{ (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].list)); ;}
break;
case 954:
/* Line 1464 of yacc.c */
-#line 3082 "grammar.y"
+#line 2932 "grammar.y"
{ (yyval.declarator) = MkDeclaratorFunction((yyvsp[(1) - (4)].declarator), (yyvsp[(3) - (4)].list)); ;}
break;
case 955:
/* Line 1464 of yacc.c */
-#line 3086 "grammar.y"
+#line 2936 "grammar.y"
{ (yyval.pointer) = MkPointer(null, null); ;}
break;
case 956:
/* Line 1464 of yacc.c */
-#line 3087 "grammar.y"
+#line 2937 "grammar.y"
{ (yyval.pointer) = MkPointer((yyvsp[(2) - (2)].list), null); ;}
break;
case 957:
/* Line 1464 of yacc.c */
-#line 3088 "grammar.y"
+#line 2938 "grammar.y"
{ (yyval.pointer) = MkPointer(null, (yyvsp[(2) - (2)].pointer)); ;}
break;
case 958:
/* Line 1464 of yacc.c */
-#line 3089 "grammar.y"
+#line 2939 "grammar.y"
{ (yyval.pointer) = MkPointer((yyvsp[(2) - (3)].list), (yyvsp[(3) - (3)].pointer)); ;}
break;
case 959:
/* Line 1464 of yacc.c */
-#line 3093 "grammar.y"
+#line 2943 "grammar.y"
{ (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (1)].pointer), null); ;}
break;
case 961:
/* Line 1464 of yacc.c */
-#line 3095 "grammar.y"
+#line 2945 "grammar.y"
{ (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
break;
case 962:
/* Line 1464 of yacc.c */
-#line 3096 "grammar.y"
+#line 2946 "grammar.y"
{ (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (2)].pointer), null)); ;}
break;
case 963:
/* Line 1464 of yacc.c */
-#line 3097 "grammar.y"
+#line 2947 "grammar.y"
{ (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
break;
case 964:
/* Line 1464 of yacc.c */
-#line 3101 "grammar.y"
+#line 2951 "grammar.y"
{ (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (1)].pointer), null); ;}
break;
case 966:
/* Line 1464 of yacc.c */
-#line 3103 "grammar.y"
+#line 2953 "grammar.y"
{ (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
break;
case 967:
/* Line 1464 of yacc.c */
-#line 3104 "grammar.y"
+#line 2954 "grammar.y"
{ (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (2)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (2)].pointer), null)); ;}
break;
case 968:
/* Line 1464 of yacc.c */
-#line 3105 "grammar.y"
+#line 2955 "grammar.y"
{ (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
break;
case 970:
/* Line 1464 of yacc.c */
-#line 3111 "grammar.y"
+#line 2961 "grammar.y"
{ (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
break;
case 971:
/* Line 1464 of yacc.c */
-#line 3113 "grammar.y"
+#line 2963 "grammar.y"
{ (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
break;
case 972:
/* Line 1464 of yacc.c */
-#line 3115 "grammar.y"
+#line 2965 "grammar.y"
{ (yyval.declarator) = MkDeclaratorExtendedEnd((yyvsp[(2) - (2)].extDecl), (yyvsp[(1) - (2)].declarator)); ;}
break;
case 973:
/* Line 1464 of yacc.c */
-#line 3117 "grammar.y"
+#line 2967 "grammar.y"
{ (yyval.declarator) = MkDeclaratorExtendedEnd((yyvsp[(2) - (2)].extDecl), (yyvsp[(1) - (2)].declarator)); ;}
break;
case 975:
/* Line 1464 of yacc.c */
-#line 3123 "grammar.y"
+#line 2973 "grammar.y"
{ (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
break;
case 976:
/* Line 1464 of yacc.c */
-#line 3125 "grammar.y"
+#line 2975 "grammar.y"
{ (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
break;
case 977:
/* Line 1464 of yacc.c */
-#line 3127 "grammar.y"
+#line 2977 "grammar.y"
{ (yyval.declarator) = MkDeclaratorExtendedEnd((yyvsp[(2) - (2)].extDecl), (yyvsp[(1) - (2)].declarator)); ;}
break;
case 979:
/* Line 1464 of yacc.c */
-#line 3132 "grammar.y"
+#line 2982 "grammar.y"
{ (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
break;
case 980:
/* Line 1464 of yacc.c */
-#line 3133 "grammar.y"
+#line 2983 "grammar.y"
{ (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
break;
case 981:
/* Line 1464 of yacc.c */
-#line 3134 "grammar.y"
+#line 2984 "grammar.y"
{ (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (3)].pointer), MkDeclaratorExtended((yyvsp[(2) - (3)].extDecl), (yyvsp[(3) - (3)].declarator))); ;}
break;
case 983:
/* Line 1464 of yacc.c */
-#line 3139 "grammar.y"
+#line 2989 "grammar.y"
{ (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
break;
case 984:
/* Line 1464 of yacc.c */
-#line 3140 "grammar.y"
+#line 2990 "grammar.y"
{ (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
break;
case 985:
/* Line 1464 of yacc.c */
-#line 3141 "grammar.y"
+#line 2991 "grammar.y"
{ (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (3)].pointer), MkDeclaratorExtended((yyvsp[(2) - (3)].extDecl), (yyvsp[(3) - (3)].declarator))); ;}
break;
case 987:
/* Line 1464 of yacc.c */
-#line 3146 "grammar.y"
+#line 2996 "grammar.y"
{ (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
break;
case 988:
/* Line 1464 of yacc.c */
-#line 3147 "grammar.y"
+#line 2997 "grammar.y"
{ (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
break;
case 989:
/* Line 1464 of yacc.c */
-#line 3148 "grammar.y"
+#line 2998 "grammar.y"
{ (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (3)].pointer), MkDeclaratorExtended((yyvsp[(2) - (3)].extDecl), (yyvsp[(3) - (3)].declarator))); ;}
break;
case 991:
/* Line 1464 of yacc.c */
-#line 3153 "grammar.y"
+#line 3003 "grammar.y"
{ (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
break;
case 992:
/* Line 1464 of yacc.c */
-#line 3154 "grammar.y"
+#line 3004 "grammar.y"
{ (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
break;
case 993:
/* Line 1464 of yacc.c */
-#line 3155 "grammar.y"
+#line 3005 "grammar.y"
{ (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (3)].pointer), MkDeclaratorExtended((yyvsp[(2) - (3)].extDecl), (yyvsp[(3) - (3)].declarator))); ;}
break;
case 995:
/* Line 1464 of yacc.c */
-#line 3160 "grammar.y"
+#line 3010 "grammar.y"
{ (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (2)].pointer), (yyvsp[(2) - (2)].declarator)); ;}
break;
case 996:
/* Line 1464 of yacc.c */
-#line 3161 "grammar.y"
+#line 3011 "grammar.y"
{ (yyval.declarator) = MkDeclaratorExtended((yyvsp[(1) - (3)].extDecl), MkDeclaratorPointer((yyvsp[(2) - (3)].pointer), (yyvsp[(3) - (3)].declarator))); ;}
break;
case 997:
/* Line 1464 of yacc.c */
-#line 3162 "grammar.y"
+#line 3012 "grammar.y"
{ (yyval.declarator) = MkDeclaratorPointer((yyvsp[(1) - (3)].pointer), MkDeclaratorExtended((yyvsp[(2) - (3)].extDecl), (yyvsp[(3) - (3)].declarator))); ;}
break;
case 998:
/* Line 1464 of yacc.c */
-#line 3166 "grammar.y"
+#line 3016 "grammar.y"
{ (yyval.initializer) = MkInitializerAssignment((yyvsp[(1) - (1)].exp)); (yyval.initializer).loc = (yyloc); ;}
break;
case 999:
/* Line 1464 of yacc.c */
-#line 3167 "grammar.y"
+#line 3017 "grammar.y"
{ (yyval.initializer) = MkInitializerList((yyvsp[(2) - (3)].list)); (yyval.initializer).loc = (yyloc); ;}
break;
case 1000:
/* Line 1464 of yacc.c */
-#line 3169 "grammar.y"
+#line 3019 "grammar.y"
{
Compiler_Warning($"extra comma\n");
(yyval.initializer) = MkInitializerList((yyvsp[(2) - (4)].list));
case 1001:
/* Line 1464 of yacc.c */
-#line 3185 "grammar.y"
+#line 3035 "grammar.y"
{ (yyval.initializer) = MkInitializerAssignment((yyvsp[(1) - (1)].exp)); (yyval.initializer).loc = (yyloc); ;}
break;
case 1002:
/* Line 1464 of yacc.c */
-#line 3186 "grammar.y"
+#line 3036 "grammar.y"
{ (yyval.initializer) = MkInitializerList((yyvsp[(2) - (4)].list)); (yyval.initializer).loc = (yyloc); ;}
break;
case 1003:
/* Line 1464 of yacc.c */
-#line 3187 "grammar.y"
+#line 3037 "grammar.y"
{ yyerror(); (yyval.initializer) = MkInitializerList((yyvsp[(2) - (2)].list)); (yyval.initializer).loc = (yyloc); ;}
break;
case 1004:
/* Line 1464 of yacc.c */
-#line 3189 "grammar.y"
+#line 3039 "grammar.y"
{
(yyval.initializer) = MkInitializerList((yyvsp[(2) - (5)].list));
(yyval.initializer).loc = (yyloc);
case 1005:
/* Line 1464 of yacc.c */
-#line 3202 "grammar.y"
+#line 3052 "grammar.y"
{
yyerror();
(yyval.initializer) = MkInitializerList((yyvsp[(2) - (3)].list));
case 1006:
/* Line 1464 of yacc.c */
-#line 3218 "grammar.y"
+#line 3068 "grammar.y"
{ (yyval.initializer) = MkInitializerAssignment((yyvsp[(1) - (1)].exp)); (yyval.initializer).loc = (yyloc); ;}
break;
case 1007:
/* Line 1464 of yacc.c */
-#line 3220 "grammar.y"
+#line 3070 "grammar.y"
{ (yyval.initializer) = MkInitializerAssignment((yyvsp[(1) - (1)].exp)); (yyval.initializer).loc = (yyloc); ;}
break;
case 1008:
/* Line 1464 of yacc.c */
-#line 3224 "grammar.y"
+#line 3074 "grammar.y"
{ (yyval.initializer) = MkInitializerAssignment((yyvsp[(1) - (1)].exp)); (yyval.initializer).loc = (yyloc); ;}
break;
case 1009:
/* Line 1464 of yacc.c */
-#line 3225 "grammar.y"
+#line 3075 "grammar.y"
{ (yyval.initializer) = MkInitializerAssignment((yyvsp[(1) - (1)].exp)); (yyval.initializer).loc = (yyloc); ;}
break;
case 1010:
/* Line 1464 of yacc.c */
-#line 3229 "grammar.y"
+#line 3079 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].initializer)); ;}
break;
case 1011:
/* Line 1464 of yacc.c */
-#line 3230 "grammar.y"
+#line 3080 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].initializer)); ;}
break;
case 1012:
/* Line 1464 of yacc.c */
-#line 3231 "grammar.y"
+#line 3081 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].initializer)); ;}
break;
case 1013:
/* Line 1464 of yacc.c */
-#line 3232 "grammar.y"
+#line 3082 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].initializer)); ;}
break;
case 1014:
/* Line 1464 of yacc.c */
-#line 3235 "grammar.y"
+#line 3085 "grammar.y"
{ yyerror(); (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].initializer)); ;}
break;
case 1015:
/* Line 1464 of yacc.c */
-#line 3236 "grammar.y"
+#line 3086 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].initializer)); ;}
break;
case 1016:
/* Line 1464 of yacc.c */
-#line 3240 "grammar.y"
+#line 3090 "grammar.y"
{ (yyval.initDeclarator) = MkInitDeclarator((yyvsp[(1) - (1)].declarator), null); (yyval.initDeclarator).loc = (yyloc); ;}
break;
case 1017:
/* Line 1464 of yacc.c */
-#line 3241 "grammar.y"
+#line 3091 "grammar.y"
{ (yyval.initDeclarator) = MkInitDeclarator((yyvsp[(1) - (1)].declarator), null); (yyval.initDeclarator).loc = (yyloc); ;}
break;
case 1018:
/* Line 1464 of yacc.c */
-#line 3242 "grammar.y"
+#line 3092 "grammar.y"
{ (yyval.initDeclarator) = MkInitDeclarator((yyvsp[(1) - (3)].declarator), (yyvsp[(3) - (3)].initializer)); (yyval.initDeclarator).loc = (yyloc); (yyval.initDeclarator).initializer.loc.start = (yylsp[(2) - (3)]).end; ;}
break;
case 1019:
/* Line 1464 of yacc.c */
-#line 3246 "grammar.y"
+#line 3096 "grammar.y"
{ (yyval.initDeclarator) = MkInitDeclarator((yyvsp[(1) - (2)].declarator), null); (yyval.initDeclarator).loc = (yyloc); ;}
break;
case 1020:
/* Line 1464 of yacc.c */
-#line 3250 "grammar.y"
+#line 3100 "grammar.y"
{ (yyval.initDeclarator) = MkInitDeclarator((yyvsp[(1) - (3)].declarator), (yyvsp[(3) - (3)].initializer)); (yyval.initDeclarator).loc = (yyloc); (yyval.initDeclarator).initializer.loc.start = (yylsp[(2) - (3)]).end; ;}
break;
case 1021:
/* Line 1464 of yacc.c */
-#line 3254 "grammar.y"
+#line 3104 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].initDeclarator)); ;}
break;
case 1022:
/* Line 1464 of yacc.c */
-#line 3255 "grammar.y"
+#line 3105 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].initDeclarator)); ;}
break;
case 1023:
/* Line 1464 of yacc.c */
-#line 3256 "grammar.y"
+#line 3106 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), MkInitDeclarator(MkDeclaratorIdentifier(MkIdentifier("uint")), null)); ListAdd((yyval.list), (yyvsp[(3) - (3)].initDeclarator)); ;}
break;
case 1024:
/* Line 1464 of yacc.c */
-#line 3257 "grammar.y"
+#line 3107 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), MkInitDeclarator(MkDeclaratorIdentifier(MkIdentifier("int64")), null)); ListAdd((yyval.list), (yyvsp[(3) - (3)].initDeclarator)); ;}
break;
case 1025:
/* Line 1464 of yacc.c */
-#line 3259 "grammar.y"
+#line 3109 "grammar.y"
{
char * colon = RSearchString((yyvsp[(1) - (3)].specifier).name, "::", strlen((yyvsp[(1) - (3)].specifier).name), true, false);
String s = colon ? colon + 2 : (yyvsp[(1) - (3)].specifier).name;
case 1026:
/* Line 1464 of yacc.c */
-#line 3267 "grammar.y"
+#line 3117 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].initDeclarator)); ;}
break;
case 1027:
/* Line 1464 of yacc.c */
-#line 3276 "grammar.y"
+#line 3126 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].initDeclarator)); ;}
break;
case 1028:
/* Line 1464 of yacc.c */
-#line 3277 "grammar.y"
+#line 3127 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (2)].initDeclarator)); ;}
break;
case 1029:
/* Line 1464 of yacc.c */
-#line 3278 "grammar.y"
+#line 3128 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].initDeclarator)); ;}
break;
case 1030:
/* Line 1464 of yacc.c */
-#line 3279 "grammar.y"
+#line 3129 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].initDeclarator)); ;}
break;
case 1031:
/* Line 1464 of yacc.c */
-#line 3283 "grammar.y"
+#line 3133 "grammar.y"
{ (yyval.typeName) = MkTypeName((yyvsp[(1) - (1)].list), null); ;}
break;
case 1032:
/* Line 1464 of yacc.c */
-#line 3284 "grammar.y"
+#line 3134 "grammar.y"
{ (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
break;
case 1033:
/* Line 1464 of yacc.c */
-#line 3288 "grammar.y"
+#line 3138 "grammar.y"
{ (yyval.typeName) = MkTypeName((yyvsp[(1) - (1)].list), null); ;}
break;
case 1034:
/* Line 1464 of yacc.c */
-#line 3289 "grammar.y"
+#line 3139 "grammar.y"
{ (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
break;
case 1035:
/* Line 1464 of yacc.c */
-#line 3294 "grammar.y"
+#line 3144 "grammar.y"
{ (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
break;
case 1036:
/* Line 1464 of yacc.c */
-#line 3295 "grammar.y"
+#line 3145 "grammar.y"
{ (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declarator)); ;}
break;
case 1037:
/* Line 1464 of yacc.c */
-#line 3296 "grammar.y"
+#line 3146 "grammar.y"
{ (yyval.typeName) = MkTypeName((yyvsp[(1) - (2)].list), MkDeclaratorPointer(MkPointer(null,null), null)); ;}
break;
case 1038:
/* Line 1464 of yacc.c */
-#line 3297 "grammar.y"
+#line 3147 "grammar.y"
{ (yyval.typeName) = MkTypeName((yyvsp[(1) - (3)].list), MkDeclaratorPointer(MkPointer(null,null), (yyvsp[(3) - (3)].declarator))); ;}
break;
case 1039:
/* Line 1464 of yacc.c */
-#line 3298 "grammar.y"
+#line 3148 "grammar.y"
{ (yyval.typeName) = MkTypeNameGuessDecl((yyvsp[(1) - (1)].list), null); ;}
break;
case 1040:
/* Line 1464 of yacc.c */
-#line 3300 "grammar.y"
+#line 3150 "grammar.y"
{ (yyval.typeName) = MkTypeName(MkListOne(MkSpecifier(CLASS)), null); ;}
break;
case 1041:
/* Line 1464 of yacc.c */
-#line 3318 "grammar.y"
+#line 3168 "grammar.y"
{ (yyval.typeName) = MkTypeName((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].declarator)); ;}
break;
case 1042:
/* Line 1464 of yacc.c */
-#line 3319 "grammar.y"
+#line 3169 "grammar.y"
{ (yyval.typeName) = MkTypeName((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].declarator)); ;}
break;
case 1043:
/* Line 1464 of yacc.c */
-#line 3323 "grammar.y"
+#line 3173 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].typeName)); ;}
break;
case 1044:
/* Line 1464 of yacc.c */
-#line 3324 "grammar.y"
+#line 3174 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typeName)); ;}
break;
case 1045:
/* Line 1464 of yacc.c */
-#line 3325 "grammar.y"
+#line 3175 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (4)].list); ListAdd((yyvsp[(1) - (4)].list), (yyvsp[(4) - (4)].typeName)); ;}
break;
case 1046:
/* Line 1464 of yacc.c */
-#line 3326 "grammar.y"
+#line 3176 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typeName)); ;}
break;
case 1047:
/* Line 1464 of yacc.c */
-#line 3327 "grammar.y"
+#line 3177 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (4)].list); ListAdd((yyvsp[(1) - (4)].list), (yyvsp[(4) - (4)].typeName)); ;}
break;
case 1048:
/* Line 1464 of yacc.c */
-#line 3328 "grammar.y"
+#line 3178 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), MkTypeName(MkList(), null)); ListAdd((yyval.list), (yyvsp[(3) - (3)].typeName)); ;}
break;
case 1049:
/* Line 1464 of yacc.c */
-#line 3330 "grammar.y"
+#line 3180 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typeName)); ;}
break;
case 1050:
/* Line 1464 of yacc.c */
-#line 3331 "grammar.y"
+#line 3181 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (4)].list); ListAdd((yyvsp[(1) - (4)].list), (yyvsp[(4) - (4)].typeName)); ;}
break;
case 1051:
/* Line 1464 of yacc.c */
-#line 3332 "grammar.y"
+#line 3182 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typeName)); ;}
break;
case 1052:
/* Line 1464 of yacc.c */
-#line 3333 "grammar.y"
+#line 3183 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (4)].list); ListAdd((yyvsp[(1) - (4)].list), (yyvsp[(4) - (4)].typeName)); ;}
break;
case 1053:
/* Line 1464 of yacc.c */
-#line 3337 "grammar.y"
+#line 3187 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].typeName)); ;}
break;
case 1054:
/* Line 1464 of yacc.c */
-#line 3338 "grammar.y"
+#line 3188 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typeName)); ;}
break;
case 1055:
/* Line 1464 of yacc.c */
-#line 3339 "grammar.y"
+#line 3189 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typeName)); ;}
break;
case 1056:
/* Line 1464 of yacc.c */
-#line 3340 "grammar.y"
+#line 3190 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (4)].list); ListAdd((yyvsp[(1) - (4)].list), (yyvsp[(4) - (4)].typeName)); ;}
break;
case 1057:
/* Line 1464 of yacc.c */
-#line 3341 "grammar.y"
+#line 3191 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), MkTypeName(MkList(), null)); ListAdd((yyval.list), (yyvsp[(3) - (3)].typeName)); ;}
break;
case 1058:
/* Line 1464 of yacc.c */
-#line 3343 "grammar.y"
+#line 3193 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typeName)); ;}
break;
case 1059:
/* Line 1464 of yacc.c */
-#line 3344 "grammar.y"
+#line 3194 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typeName)); ;}
break;
case 1060:
/* Line 1464 of yacc.c */
-#line 3345 "grammar.y"
+#line 3195 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (4)].list); ListAdd((yyvsp[(1) - (4)].list), (yyvsp[(4) - (4)].typeName)); ;}
break;
case 1062:
/* Line 1464 of yacc.c */
-#line 3350 "grammar.y"
+#line 3200 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), MkTypeName(null, null)); ;}
break;
case 1063:
/* Line 1464 of yacc.c */
-#line 3351 "grammar.y"
+#line 3201 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), MkTypeName(null, null)); ;}
break;
case 1064:
/* Line 1464 of yacc.c */
-#line 3352 "grammar.y"
+#line 3202 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), MkTypeName(null, null)); ;}
break;
case 1065:
/* Line 1464 of yacc.c */
-#line 3353 "grammar.y"
+#line 3203 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), MkTypeName(null, null)); ;}
break;
case 1066:
/* Line 1464 of yacc.c */
-#line 3354 "grammar.y"
+#line 3204 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), MkTypeName(null, null)); ;}
break;
case 1068:
/* Line 1464 of yacc.c */
-#line 3359 "grammar.y"
+#line 3209 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), null); ;}
break;
case 1071:
/* Line 1464 of yacc.c */
-#line 3366 "grammar.y"
+#line 3216 "grammar.y"
{ (yyval.stmt) = MkExpressionStmt(null); FreeAttrib((yyvsp[(1) - (1)].attrib)); ;}
break;
case 1073:
/* Line 1464 of yacc.c */
-#line 3368 "grammar.y"
+#line 3218 "grammar.y"
{ (yyval.stmt) = MkExpressionStmt(null); ;}
break;
case 1074:
/* Line 1464 of yacc.c */
-#line 3369 "grammar.y"
+#line 3219 "grammar.y"
{ (yyval.stmt) = MkExpressionStmt(null); ;}
break;
case 1075:
/* Line 1464 of yacc.c */
-#line 3370 "grammar.y"
+#line 3220 "grammar.y"
{ (yyval.stmt) = MkExpressionStmt((yyvsp[(1) - (2)].list)); (yyval.stmt).loc = (yyloc); ;}
break;
case 1083:
/* Line 1464 of yacc.c */
-#line 3381 "grammar.y"
+#line 3231 "grammar.y"
{ (yyval.stmt) = (yyvsp[(1) - (1)].stmt); Compiler_Error($"syntax error\n"); ;}
break;
case 1084:
/* Line 1464 of yacc.c */
-#line 3382 "grammar.y"
+#line 3232 "grammar.y"
{ (yyval.stmt) = (yyvsp[(1) - (1)].stmt); Compiler_Error($"syntax error\n"); ;}
break;
case 1085:
/* Line 1464 of yacc.c */
-#line 3383 "grammar.y"
+#line 3233 "grammar.y"
{ (yyval.stmt) = (yyvsp[(1) - (1)].stmt); Compiler_Error($"syntax error\n"); ;}
break;
case 1086:
/* Line 1464 of yacc.c */
-#line 3384 "grammar.y"
+#line 3234 "grammar.y"
{ (yyval.stmt) = (yyvsp[(1) - (1)].stmt); Compiler_Error($"syntax error\n"); ;}
break;
case 1087:
/* Line 1464 of yacc.c */
-#line 3385 "grammar.y"
+#line 3235 "grammar.y"
{ (yyval.stmt) = (yyvsp[(1) - (1)].stmt); Compiler_Error($"syntax error\n"); ;}
break;
case 1088:
/* Line 1464 of yacc.c */
-#line 3386 "grammar.y"
+#line 3236 "grammar.y"
{ (yyval.stmt) = (yyvsp[(1) - (2)].stmt); Compiler_Error($"syntax error\n"); ;}
break;
case 1089:
/* Line 1464 of yacc.c */
-#line 3387 "grammar.y"
+#line 3237 "grammar.y"
{ (yyval.stmt) = MkExpressionStmt((yyvsp[(1) - (1)].list)); Compiler_Error($"syntax error\n"); (yyval.stmt).loc = (yylsp[(1) - (1)]); ;}
break;
case 1090:
/* Line 1464 of yacc.c */
-#line 3391 "grammar.y"
+#line 3241 "grammar.y"
{ (yyval.asmField) = MkAsmField((yyvsp[(1) - (1)].string), null, null); (yyval.asmField).loc = (yylsp[(1) - (1)]); ;}
break;
case 1091:
/* Line 1464 of yacc.c */
-#line 3392 "grammar.y"
+#line 3242 "grammar.y"
{ (yyval.asmField) = MkAsmField((yyvsp[(1) - (4)].string), (yyvsp[(3) - (4)].exp), null); (yyval.asmField).loc = (yyloc); ;}
break;
case 1092:
/* Line 1464 of yacc.c */
-#line 3393 "grammar.y"
+#line 3243 "grammar.y"
{ (yyval.asmField) = MkAsmField((yyvsp[(4) - (7)].string), (yyvsp[(6) - (7)].exp), (yyvsp[(2) - (7)].id)); (yyval.asmField).loc = (yyloc); ;}
break;
case 1093:
/* Line 1464 of yacc.c */
-#line 3397 "grammar.y"
+#line 3247 "grammar.y"
{ (yyval.list) = MkListOne((yyvsp[(1) - (1)].asmField)); ;}
break;
case 1094:
/* Line 1464 of yacc.c */
-#line 3398 "grammar.y"
+#line 3248 "grammar.y"
{ ListAdd((yyval.list), (yyvsp[(3) - (3)].asmField)); ;}
break;
case 1095:
/* Line 1464 of yacc.c */
-#line 3399 "grammar.y"
+#line 3249 "grammar.y"
{ (yyval.list) = null; ;}
break;
case 1096:
/* Line 1464 of yacc.c */
-#line 3403 "grammar.y"
+#line 3253 "grammar.y"
{ (yyval.stmt) = MkAsmStmt((yyvsp[(2) - (6)].specifier), (yyvsp[(4) - (6)].string), null, null, null); (yyval.stmt).loc = (yyloc); ;}
break;
case 1097:
/* Line 1464 of yacc.c */
-#line 3404 "grammar.y"
+#line 3254 "grammar.y"
{ (yyval.stmt) = MkAsmStmt((yyvsp[(2) - (8)].specifier), (yyvsp[(4) - (8)].string), (yyvsp[(6) - (8)].list), null, null); (yyval.stmt).loc = (yyloc); ;}
break;
case 1098:
/* Line 1464 of yacc.c */
-#line 3405 "grammar.y"
+#line 3255 "grammar.y"
{ (yyval.stmt) = MkAsmStmt((yyvsp[(2) - (10)].specifier), (yyvsp[(4) - (10)].string), (yyvsp[(6) - (10)].list), (yyvsp[(8) - (10)].list), null); (yyval.stmt).loc = (yyloc); ;}
break;
case 1099:
/* Line 1464 of yacc.c */
-#line 3406 "grammar.y"
+#line 3256 "grammar.y"
{ (yyval.stmt) = MkAsmStmt((yyvsp[(2) - (12)].specifier), (yyvsp[(4) - (12)].string), (yyvsp[(6) - (12)].list), (yyvsp[(8) - (12)].list), (yyvsp[(10) - (12)].list)); (yyval.stmt).loc = (yyloc); ;}
break;
case 1100:
/* Line 1464 of yacc.c */
-#line 3408 "grammar.y"
+#line 3258 "grammar.y"
{ (yyval.stmt) = MkAsmStmt((yyvsp[(2) - (8)].specifier), (yyvsp[(4) - (8)].string), null, (yyvsp[(6) - (8)].list), null); (yyval.stmt).loc = (yyloc); ;}
break;
case 1101:
/* Line 1464 of yacc.c */
-#line 3409 "grammar.y"
+#line 3259 "grammar.y"
{ (yyval.stmt) = MkAsmStmt((yyvsp[(2) - (10)].specifier), (yyvsp[(4) - (10)].string), null, (yyvsp[(6) - (10)].list), (yyvsp[(8) - (10)].list)); (yyval.stmt).loc = (yyloc); ;}
break;
case 1102:
/* Line 1464 of yacc.c */
-#line 3410 "grammar.y"
+#line 3260 "grammar.y"
{ (yyval.stmt) = MkAsmStmt((yyvsp[(2) - (10)].specifier), (yyvsp[(4) - (10)].string), (yyvsp[(6) - (10)].list), null, (yyvsp[(8) - (10)].list)); (yyval.stmt).loc = (yyloc); ;}
break;
case 1103:
/* Line 1464 of yacc.c */
-#line 3412 "grammar.y"
+#line 3262 "grammar.y"
{ (yyval.stmt) = MkAsmStmt(null, (yyvsp[(3) - (5)].string), null, null, null); (yyval.stmt).loc = (yyloc); ;}
break;
case 1104:
/* Line 1464 of yacc.c */
-#line 3413 "grammar.y"
+#line 3263 "grammar.y"
{ (yyval.stmt) = MkAsmStmt(null, (yyvsp[(3) - (7)].string), (yyvsp[(5) - (7)].list), null, null); (yyval.stmt).loc = (yyloc); ;}
break;
case 1105:
/* Line 1464 of yacc.c */
-#line 3414 "grammar.y"
+#line 3264 "grammar.y"
{ (yyval.stmt) = MkAsmStmt(null, (yyvsp[(3) - (9)].string), (yyvsp[(5) - (9)].list), (yyvsp[(7) - (9)].list), null); (yyval.stmt).loc = (yyloc); ;}
break;
case 1106:
/* Line 1464 of yacc.c */
-#line 3415 "grammar.y"
+#line 3265 "grammar.y"
{ (yyval.stmt) = MkAsmStmt(null, (yyvsp[(3) - (11)].string), (yyvsp[(5) - (11)].list), (yyvsp[(7) - (11)].list), (yyvsp[(9) - (11)].list)); (yyval.stmt).loc = (yyloc); ;}
break;
case 1107:
/* Line 1464 of yacc.c */
-#line 3417 "grammar.y"
+#line 3267 "grammar.y"
{ (yyval.stmt) = MkAsmStmt(null, (yyvsp[(3) - (7)].string), null, (yyvsp[(5) - (7)].list), null); (yyval.stmt).loc = (yyloc); ;}
break;
case 1108:
/* Line 1464 of yacc.c */
-#line 3418 "grammar.y"
+#line 3268 "grammar.y"
{ (yyval.stmt) = MkAsmStmt(null, (yyvsp[(3) - (9)].string), null, (yyvsp[(5) - (9)].list), (yyvsp[(7) - (9)].list)); (yyval.stmt).loc = (yyloc); ;}
break;
case 1109:
/* Line 1464 of yacc.c */
-#line 3419 "grammar.y"
+#line 3269 "grammar.y"
{ (yyval.stmt) = MkAsmStmt(null, (yyvsp[(3) - (9)].string), (yyvsp[(5) - (9)].list), null, (yyvsp[(7) - (9)].list)); (yyval.stmt).loc = (yyloc); ;}
break;
case 1110:
/* Line 1464 of yacc.c */
-#line 3423 "grammar.y"
+#line 3273 "grammar.y"
{ (yyval.stmt) = MkLabeledStmt((yyvsp[(1) - (3)].id), (yyvsp[(3) - (3)].stmt)); (yyval.stmt).loc = (yyloc); ;}
break;
case 1111:
/* Line 1464 of yacc.c */
-#line 3424 "grammar.y"
+#line 3274 "grammar.y"
{ /*if($4.type == labeledStmt) Compiler_Warning(CASE_LABELED_STMT_WARNING);*/ (yyval.stmt) = MkCaseStmt((yyvsp[(2) - (4)].exp), (yyvsp[(4) - (4)].stmt)); (yyval.stmt).loc = (yyloc); (yyvsp[(2) - (4)].exp).loc.start = (yylsp[(1) - (4)]).end; ;}
break;
case 1112:
/* Line 1464 of yacc.c */
-#line 3425 "grammar.y"
+#line 3275 "grammar.y"
{ /*if($4.type == labeledStmt) Compiler_Warning(CASE_LABELED_STMT_WARNING);*/ (yyval.stmt) = MkCaseStmt((yyvsp[(2) - (4)].exp), (yyvsp[(4) - (4)].stmt)); (yyval.stmt).loc = (yyloc); (yyvsp[(2) - (4)].exp).loc.start = (yylsp[(1) - (4)]).end; ;}
break;
case 1113:
/* Line 1464 of yacc.c */
-#line 3426 "grammar.y"
+#line 3276 "grammar.y"
{ /*if($3.type == labeledStmt) Compiler_Warning(CASE_LABELED_STMT_WARNING);*/ (yyval.stmt) = MkCaseStmt(MkExpDummy(), (yyvsp[(3) - (3)].stmt)); (yyval.stmt).caseStmt.exp.loc = (yylsp[(2) - (3)]); (yyval.stmt).loc = (yyloc); (yyval.stmt).caseStmt.exp.loc.start = (yylsp[(1) - (3)]).end; ;}
break;
case 1114:
/* Line 1464 of yacc.c */
-#line 3427 "grammar.y"
+#line 3277 "grammar.y"
{ /*if($3.type == labeledStmt) Compiler_Warning(CASE_LABELED_STMT_WARNING);*/ (yyval.stmt) = MkCaseStmt(null, (yyvsp[(3) - (3)].stmt)); (yyval.stmt).loc = (yyloc); ;}
break;
case 1115:
/* Line 1464 of yacc.c */
-#line 3429 "grammar.y"
+#line 3279 "grammar.y"
{ Statement stmt = MkBadDeclStmt((yyvsp[(3) - (3)].declaration)); stmt.loc = (yylsp[(3) - (3)]); Compiler_Warning(C89_DECL_WARNING); (yyval.stmt) = MkLabeledStmt((yyvsp[(1) - (3)].id), stmt); (yyval.stmt).loc = (yyloc); ;}
break;
case 1116:
/* Line 1464 of yacc.c */
-#line 3430 "grammar.y"
+#line 3280 "grammar.y"
{ Statement stmt = MkBadDeclStmt((yyvsp[(4) - (4)].declaration)); stmt.loc = (yylsp[(4) - (4)]); Compiler_Warning(C89_DECL_WARNING); (yyval.stmt) = MkCaseStmt((yyvsp[(2) - (4)].exp), stmt); (yyval.stmt).loc = (yyloc); (yyvsp[(2) - (4)].exp).loc.start = (yylsp[(1) - (4)]).end; ;}
break;
case 1117:
/* Line 1464 of yacc.c */
-#line 3431 "grammar.y"
+#line 3281 "grammar.y"
{ Statement stmt = MkBadDeclStmt((yyvsp[(4) - (4)].declaration)); stmt.loc = (yylsp[(4) - (4)]); Compiler_Warning(C89_DECL_WARNING); (yyval.stmt) = MkCaseStmt((yyvsp[(2) - (4)].exp), stmt); (yyval.stmt).loc = (yyloc); (yyvsp[(2) - (4)].exp).loc.start = (yylsp[(1) - (4)]).end; ;}
break;
case 1118:
/* Line 1464 of yacc.c */
-#line 3432 "grammar.y"
+#line 3282 "grammar.y"
{ Statement stmt = MkBadDeclStmt((yyvsp[(3) - (3)].declaration)); stmt.loc = (yylsp[(3) - (3)]); Compiler_Warning(C89_DECL_WARNING); (yyval.stmt) = MkCaseStmt(MkExpDummy(), stmt); (yyval.stmt).caseStmt.exp.loc = (yylsp[(2) - (3)]); (yyval.stmt).loc = (yyloc); (yyval.stmt).caseStmt.exp.loc.start = (yylsp[(1) - (3)]).end; ;}
break;
case 1119:
/* Line 1464 of yacc.c */
-#line 3433 "grammar.y"
+#line 3283 "grammar.y"
{ Statement stmt = MkBadDeclStmt((yyvsp[(3) - (3)].declaration)); stmt.loc = (yylsp[(3) - (3)]); Compiler_Warning(C89_DECL_WARNING); (yyval.stmt) = MkCaseStmt(null, stmt); (yyval.stmt).loc = (yyloc); ;}
break;
case 1120:
/* Line 1464 of yacc.c */
-#line 3437 "grammar.y"
+#line 3287 "grammar.y"
{ (yyval.stmt) = MkLabeledStmt((yyvsp[(1) - (3)].id), (yyvsp[(3) - (3)].stmt)); (yyval.stmt).loc = (yyloc); ;}
break;
case 1121:
/* Line 1464 of yacc.c */
-#line 3438 "grammar.y"
+#line 3288 "grammar.y"
{ /*if($4.type == labeledStmt) Compiler_Warning(CASE_LABELED_STMT_WARNING);*/ (yyval.stmt) = MkCaseStmt((yyvsp[(2) - (4)].exp), (yyvsp[(4) - (4)].stmt)); (yyval.stmt).loc = (yyloc); (yyvsp[(2) - (4)].exp).loc.start = (yylsp[(1) - (4)]).end; ;}
break;
case 1122:
/* Line 1464 of yacc.c */
-#line 3439 "grammar.y"
+#line 3289 "grammar.y"
{ /*if($4.type == labeledStmt) Compiler_Warning(CASE_LABELED_STMT_WARNING);*/ (yyval.stmt) = MkCaseStmt((yyvsp[(2) - (4)].exp), (yyvsp[(4) - (4)].stmt)); (yyval.stmt).loc = (yyloc); (yyvsp[(2) - (4)].exp).loc.start = (yylsp[(1) - (4)]).end; ;}
break;
case 1123:
/* Line 1464 of yacc.c */
-#line 3440 "grammar.y"
+#line 3290 "grammar.y"
{ /*if($3.type == labeledStmt) Compiler_Warning(CASE_LABELED_STMT_WARNING);*/ (yyval.stmt) = MkCaseStmt(MkExpDummy(), (yyvsp[(3) - (3)].stmt)); (yyval.stmt).caseStmt.exp.loc = (yylsp[(2) - (3)]); (yyval.stmt).loc = (yyloc); (yyval.stmt).caseStmt.exp.loc.start = (yylsp[(1) - (3)]).end; ;}
break;
case 1124:
/* Line 1464 of yacc.c */
-#line 3441 "grammar.y"
+#line 3291 "grammar.y"
{ (yyval.stmt) = MkCaseStmt(MkExpDummy(), null); (yyval.stmt).caseStmt.exp.loc = (yylsp[(2) - (2)]); (yyval.stmt).loc = (yyloc); (yyval.stmt).caseStmt.exp.loc.start = (yylsp[(1) - (2)]).end; ;}
break;
case 1125:
/* Line 1464 of yacc.c */
-#line 3442 "grammar.y"
+#line 3292 "grammar.y"
{ /*if($3.type == labeledStmt) Compiler_Warning(CASE_LABELED_STMT_WARNING);*/ (yyval.stmt) = MkCaseStmt(null, (yyvsp[(3) - (3)].stmt)); (yyval.stmt).loc = (yyloc); ;}
break;
case 1126:
/* Line 1464 of yacc.c */
-#line 3443 "grammar.y"
+#line 3293 "grammar.y"
{ (yyval.stmt) = MkCaseStmt(null, null); (yyval.stmt).loc = (yyloc); ;}
break;
case 1127:
/* Line 1464 of yacc.c */
-#line 3445 "grammar.y"
+#line 3295 "grammar.y"
{ Statement stmt = MkBadDeclStmt((yyvsp[(3) - (3)].declaration)); stmt.loc = (yylsp[(3) - (3)]); Compiler_Warning(C89_DECL_WARNING); (yyval.stmt) = MkLabeledStmt((yyvsp[(1) - (3)].id), stmt); (yyval.stmt).loc = (yyloc); ;}
break;
case 1128:
/* Line 1464 of yacc.c */
-#line 3446 "grammar.y"
+#line 3296 "grammar.y"
{ Statement stmt = MkBadDeclStmt((yyvsp[(4) - (4)].declaration)); stmt.loc = (yylsp[(4) - (4)]); Compiler_Warning(C89_DECL_WARNING); (yyval.stmt) = MkCaseStmt((yyvsp[(2) - (4)].exp), stmt); (yyval.stmt).loc = (yyloc); (yyvsp[(2) - (4)].exp).loc.start = (yylsp[(1) - (4)]).end; ;}
break;
case 1129:
/* Line 1464 of yacc.c */
-#line 3447 "grammar.y"
+#line 3297 "grammar.y"
{ Statement stmt = MkBadDeclStmt((yyvsp[(4) - (4)].declaration)); stmt.loc = (yylsp[(4) - (4)]); Compiler_Warning(C89_DECL_WARNING); (yyval.stmt) = MkCaseStmt((yyvsp[(2) - (4)].exp), stmt); (yyval.stmt).loc = (yyloc); (yyvsp[(2) - (4)].exp).loc.start = (yylsp[(1) - (4)]).end; ;}
break;
case 1130:
/* Line 1464 of yacc.c */
-#line 3448 "grammar.y"
+#line 3298 "grammar.y"
{ Statement stmt = MkBadDeclStmt((yyvsp[(3) - (3)].declaration)); stmt.loc = (yylsp[(3) - (3)]); Compiler_Warning(C89_DECL_WARNING); (yyval.stmt) = MkCaseStmt(MkExpDummy(), stmt); (yyval.stmt).caseStmt.exp.loc = (yylsp[(2) - (3)]); (yyval.stmt).loc = (yyloc); (yyval.stmt).caseStmt.exp.loc.start = (yylsp[(1) - (3)]).end; ;}
break;
case 1131:
/* Line 1464 of yacc.c */
-#line 3449 "grammar.y"
+#line 3299 "grammar.y"
{ Statement stmt = MkBadDeclStmt((yyvsp[(3) - (3)].declaration)); stmt.loc = (yylsp[(3) - (3)]); Compiler_Warning(C89_DECL_WARNING); (yyval.stmt) = MkCaseStmt(null, stmt); (yyval.stmt).loc = (yyloc); ;}
break;
case 1132:
/* Line 1464 of yacc.c */
-#line 3453 "grammar.y"
+#line 3303 "grammar.y"
{ (yyval.declMode) = structDeclMode = declMode = publicAccess; ;}
break;
case 1133:
/* Line 1464 of yacc.c */
-#line 3454 "grammar.y"
+#line 3304 "grammar.y"
{ (yyval.declMode) = structDeclMode = declMode = privateAccess; ;}
break;
case 1134:
/* Line 1464 of yacc.c */
-#line 3455 "grammar.y"
+#line 3305 "grammar.y"
{ (yyval.declMode) = structDeclMode = declMode = defaultAccess; ;}
break;
case 1135:
/* Line 1464 of yacc.c */
-#line 3459 "grammar.y"
+#line 3309 "grammar.y"
{ (yyval.declMode) = publicAccess; ;}
break;
case 1136:
/* Line 1464 of yacc.c */
-#line 3460 "grammar.y"
+#line 3310 "grammar.y"
{ (yyval.declMode) = privateAccess; ;}
break;
case 1137:
/* Line 1464 of yacc.c */
-#line 3464 "grammar.y"
+#line 3314 "grammar.y"
{ (yyval.declaration) = MkDeclaration((yyvsp[(1) - (2)].list), null); (yyval.declaration).loc = (yyloc); structDeclMode = defaultDeclMode; ;}
break;
case 1138:
/* Line 1464 of yacc.c */
-#line 3465 "grammar.y"
+#line 3315 "grammar.y"
{ (yyval.declaration) = MkDeclaration((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].list)); (yyval.declaration).loc = (yyloc); structDeclMode = defaultDeclMode; ;}
break;
case 1139:
/* Line 1464 of yacc.c */
-#line 3466 "grammar.y"
+#line 3316 "grammar.y"
{ (yyval.declaration) = MkDeclarationInst((yyvsp[(1) - (2)].instance)); (yyval.declaration).loc = (yyloc); structDeclMode = defaultDeclMode; ;}
break;
case 1140:
/* Line 1464 of yacc.c */
-#line 3467 "grammar.y"
+#line 3317 "grammar.y"
{ (yyval.declaration) = (yyvsp[(1) - (2)].declaration); structDeclMode = defaultDeclMode; ;}
break;
case 1141:
/* Line 1464 of yacc.c */
-#line 3471 "grammar.y"
+#line 3321 "grammar.y"
{ (yyval.declaration) = MkDeclaration((yyvsp[(1) - (2)].list), null); (yyval.declaration).loc = (yyloc); ;}
break;
case 1142:
/* Line 1464 of yacc.c */
-#line 3472 "grammar.y"
+#line 3322 "grammar.y"
{ (yyval.declaration) = MkDeclaration((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].list)); (yyval.declaration).loc = (yyloc); ;}
break;
case 1143:
/* Line 1464 of yacc.c */
-#line 3473 "grammar.y"
+#line 3323 "grammar.y"
{ (yyval.declaration) = MkDeclaration((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].list)); (yyval.declaration).loc = (yyloc); ;}
break;
case 1144:
/* Line 1464 of yacc.c */
-#line 3475 "grammar.y"
+#line 3325 "grammar.y"
{ (yyval.declaration) = MkDeclarationInst((yyvsp[(1) - (2)].instance)); (yyval.declaration).loc = (yyloc); ;}
break;
case 1145:
/* Line 1464 of yacc.c */
-#line 3476 "grammar.y"
+#line 3326 "grammar.y"
{ (yyval.declaration) = MkDeclarationDefine((yyvsp[(2) - (5)].id), (yyvsp[(4) - (5)].exp)); (yyval.declaration).loc = (yyloc); ;}
break;
case 1146:
/* Line 1464 of yacc.c */
-#line 3477 "grammar.y"
+#line 3327 "grammar.y"
{ structDeclMode = declMode = staticAccess; (yyval.declaration) = MkDeclarationDefine((yyvsp[(3) - (6)].id), (yyvsp[(5) - (6)].exp)); (yyval.declaration).loc = (yyloc); ;}
break;
case 1147:
/* Line 1464 of yacc.c */
-#line 3481 "grammar.y"
+#line 3331 "grammar.y"
{ (yyval.declaration) = MkDeclaration((yyvsp[(1) - (2)].list), null); (yyval.declaration).loc = (yyloc); yyerrok; ;}
break;
case 1148:
/* Line 1464 of yacc.c */
-#line 3485 "grammar.y"
+#line 3335 "grammar.y"
{ (yyval.declaration) = MkDeclaration((yyvsp[(1) - (2)].list), null); (yyval.declaration).loc = (yyloc); structDeclMode = defaultDeclMode; ;}
break;
case 1149:
/* Line 1464 of yacc.c */
-#line 3486 "grammar.y"
+#line 3336 "grammar.y"
{ structDeclMode = defaultDeclMode; ;}
break;
case 1150:
/* Line 1464 of yacc.c */
-#line 3488 "grammar.y"
+#line 3338 "grammar.y"
{ (yyval.declaration) = MkDeclarationInst((yyvsp[(1) - (2)].instance)); (yyval.declaration).loc = (yyloc); structDeclMode = defaultDeclMode; ;}
break;
case 1151:
/* Line 1464 of yacc.c */
-#line 3489 "grammar.y"
+#line 3339 "grammar.y"
{ (yyval.declaration) = MkDeclarationInst((yyvsp[(1) - (2)].instance)); (yyval.declaration).loc = (yyloc); structDeclMode = defaultDeclMode; ;}
break;
case 1152:
/* Line 1464 of yacc.c */
-#line 3490 "grammar.y"
+#line 3340 "grammar.y"
{ (yyval.declaration) = MkDeclaration((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].list)); (yyval.declaration).loc = (yyloc); structDeclMode = defaultDeclMode; ;}
break;
case 1153:
/* Line 1464 of yacc.c */
-#line 3494 "grammar.y"
+#line 3344 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].declaration)); /*declMode = defaultDeclMode;*/ ;}
break;
case 1154:
/* Line 1464 of yacc.c */
-#line 3495 "grammar.y"
+#line 3345 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declaration)); /*declMode = defaultDeclMode; */;}
break;
case 1155:
/* Line 1464 of yacc.c */
-#line 3496 "grammar.y"
+#line 3346 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declaration)); /*declMode = defaultDeclMode; */;}
break;
case 1156:
/* Line 1464 of yacc.c */
-#line 3497 "grammar.y"
+#line 3347 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (3)].list); ;}
break;
case 1157:
/* Line 1464 of yacc.c */
-#line 3501 "grammar.y"
+#line 3351 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].declaration)); ;}
break;
case 1158:
/* Line 1464 of yacc.c */
-#line 3502 "grammar.y"
+#line 3352 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].declaration)); ;}
break;
case 1159:
/* Line 1464 of yacc.c */
-#line 3506 "grammar.y"
+#line 3356 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].stmt)); ;}
break;
case 1160:
/* Line 1464 of yacc.c */
-#line 3507 "grammar.y"
+#line 3357 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].stmt)); ;}
break;
case 1161:
/* Line 1464 of yacc.c */
-#line 3508 "grammar.y"
+#line 3358 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].stmt)); ;}
break;
case 1162:
/* Line 1464 of yacc.c */
-#line 3512 "grammar.y"
+#line 3362 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].stmt)); ;}
break;
case 1163:
/* Line 1464 of yacc.c */
-#line 3513 "grammar.y"
+#line 3363 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].stmt)); ;}
break;
case 1164:
/* Line 1464 of yacc.c */
-#line 3514 "grammar.y"
+#line 3364 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].stmt)); ;}
break;
case 1165:
/* Line 1464 of yacc.c */
-#line 3515 "grammar.y"
+#line 3365 "grammar.y"
{ Statement stmt = MkBadDeclStmt((yyvsp[(2) - (2)].declaration)); stmt.loc = (yylsp[(2) - (2)]); Compiler_Warning(C89_DECL_WARNING); (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), stmt); /*declMode = defaultDeclMode;*/ ;}
break;
case 1166:
/* Line 1464 of yacc.c */
-#line 3516 "grammar.y"
+#line 3366 "grammar.y"
{ Statement stmt = MkBadDeclStmt((yyvsp[(2) - (2)].declaration)); stmt.loc = (yylsp[(2) - (2)]); Compiler_Warning(C89_DECL_WARNING); (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), stmt); /*declMode = defaultDeclMode;*/ ;}
break;
case 1167:
/* Line 1464 of yacc.c */
-#line 3517 "grammar.y"
+#line 3367 "grammar.y"
{ Statement stmt = MkBadDeclStmt((yyvsp[(2) - (2)].declaration)); stmt.loc = (yylsp[(2) - (2)]); Compiler_Warning(C89_DECL_WARNING); (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), stmt); /*declMode = defaultDeclMode;*/ ;}
break;
case 1168:
/* Line 1464 of yacc.c */
-#line 3518 "grammar.y"
+#line 3368 "grammar.y"
{ Statement stmt = MkBadDeclStmt((yyvsp[(2) - (2)].declaration)); stmt.loc = (yylsp[(2) - (2)]); Compiler_Warning(C89_DECL_WARNING); (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), stmt); /*declMode = defaultDeclMode;*/ ;}
break;
case 1169:
/* Line 1464 of yacc.c */
-#line 3522 "grammar.y"
+#line 3372 "grammar.y"
{ (yyval.stmt) = MkCompoundStmt(null, (yyvsp[(1) - (1)].list)); ;}
break;
case 1170:
/* Line 1464 of yacc.c */
-#line 3523 "grammar.y"
+#line 3373 "grammar.y"
{ (yyval.stmt) = MkCompoundStmt((yyvsp[(1) - (1)].list), null); ;}
break;
case 1171:
/* Line 1464 of yacc.c */
-#line 3524 "grammar.y"
+#line 3374 "grammar.y"
{ (yyval.stmt) = MkCompoundStmt((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].list)); ;}
break;
case 1172:
/* Line 1464 of yacc.c */
-#line 3525 "grammar.y"
+#line 3375 "grammar.y"
{ (yyval.stmt) = MkCompoundStmt((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].list)); ;}
break;
case 1173:
/* Line 1464 of yacc.c */
-#line 3529 "grammar.y"
+#line 3379 "grammar.y"
{ (yyval.stmt) = MkCompoundStmt(null, (yyvsp[(1) - (1)].list)); ;}
break;
case 1174:
/* Line 1464 of yacc.c */
-#line 3530 "grammar.y"
+#line 3380 "grammar.y"
{ (yyval.stmt) = MkCompoundStmt((yyvsp[(1) - (1)].list), null); ;}
break;
case 1175:
/* Line 1464 of yacc.c */
-#line 3531 "grammar.y"
+#line 3381 "grammar.y"
{ (yyval.stmt) = MkCompoundStmt((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].list)); ;}
break;
case 1176:
/* Line 1464 of yacc.c */
-#line 3532 "grammar.y"
+#line 3382 "grammar.y"
{ (yyval.stmt) = MkCompoundStmt((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].list)); ;}
break;
case 1177:
/* Line 1464 of yacc.c */
-#line 3536 "grammar.y"
+#line 3386 "grammar.y"
{ (yyval.context) = PushContext(); ;}
break;
case 1178:
/* Line 1464 of yacc.c */
-#line 3540 "grammar.y"
+#line 3390 "grammar.y"
{ (yyval.stmt) = (yyvsp[(1) - (2)].stmt); (yyval.stmt).loc = (yyloc); ;}
break;
case 1179:
/* Line 1464 of yacc.c */
-#line 3545 "grammar.y"
+#line 3395 "grammar.y"
{ (yyval.stmt) = (yyvsp[(2) - (2)].stmt); (yyval.stmt).compound.context = (yyvsp[(1) - (2)].context); PopContext((yyvsp[(1) - (2)].context)); (yyval.stmt).loc = (yyloc); (yyval.stmt).loc.end.charPos++; (yyval.stmt).loc.end.pos++; ;}
break;
case 1180:
/* Line 1464 of yacc.c */
-#line 3547 "grammar.y"
+#line 3397 "grammar.y"
{ (yyval.stmt) = MkCompoundStmt(null, null); (yyval.stmt).compound.context = (yyvsp[(1) - (1)].context); PopContext((yyvsp[(1) - (1)].context)); (yyval.stmt).loc = (yyloc); (yyval.stmt).loc.end.charPos++; (yyval.stmt).loc.end.pos++; ;}
break;
case 1181:
/* Line 1464 of yacc.c */
-#line 3550 "grammar.y"
+#line 3400 "grammar.y"
{ (yyval.stmt) = (yyvsp[(2) - (2)].stmt); (yyval.stmt).compound.context = (yyvsp[(1) - (2)].context); PopContext((yyvsp[(1) - (2)].context)); (yyval.stmt).loc = (yyloc); (yyval.stmt).loc.end.charPos++; (yyval.stmt).loc.end.pos++; ;}
break;
case 1182:
/* Line 1464 of yacc.c */
-#line 3555 "grammar.y"
+#line 3405 "grammar.y"
{ (yyval.stmt) = MkExpressionStmt(null); (yyval.stmt).loc = (yyloc); ;}
break;
case 1183:
/* Line 1464 of yacc.c */
-#line 3556 "grammar.y"
+#line 3406 "grammar.y"
{ (yyval.stmt) = MkExpressionStmt((yyvsp[(1) - (2)].list)); (yyval.stmt).loc = (yyloc); ;}
break;
case 1184:
/* Line 1464 of yacc.c */
-#line 3557 "grammar.y"
+#line 3407 "grammar.y"
{ (yyval.stmt) = MkExpressionStmt((yyvsp[(1) - (2)].list)); (yyval.stmt).loc = (yyloc); ;}
break;
case 1185:
/* Line 1464 of yacc.c */
-#line 3561 "grammar.y"
+#line 3411 "grammar.y"
{ (yyval.stmt) = MkIfStmt((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].stmt), null); (yyval.stmt).loc = (yyloc); ;}
break;
case 1186:
/* Line 1464 of yacc.c */
-#line 3562 "grammar.y"
+#line 3412 "grammar.y"
{ (yyval.stmt) = MkIfStmt((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].stmt), null); (yyval.stmt).loc = (yyloc); ;}
break;
case 1187:
/* Line 1464 of yacc.c */
-#line 3563 "grammar.y"
+#line 3413 "grammar.y"
{ (yyval.stmt) = MkIfStmt((yyvsp[(3) - (7)].list), (yyvsp[(5) - (7)].stmt), (yyvsp[(7) - (7)].stmt)); (yyval.stmt).loc = (yyloc); ;}
break;
case 1188:
/* Line 1464 of yacc.c */
-#line 3564 "grammar.y"
+#line 3414 "grammar.y"
{ (yyval.stmt) = MkIfStmt((yyvsp[(3) - (7)].list), (yyvsp[(5) - (7)].stmt), (yyvsp[(7) - (7)].stmt)); (yyval.stmt).loc = (yyloc); ;}
break;
case 1189:
/* Line 1464 of yacc.c */
-#line 3565 "grammar.y"
+#line 3415 "grammar.y"
{ (yyval.stmt) = MkSwitchStmt((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].stmt)); (yyval.stmt).loc = (yyloc); ;}
break;
case 1190:
/* Line 1464 of yacc.c */
-#line 3566 "grammar.y"
+#line 3416 "grammar.y"
{ (yyval.stmt) = MkSwitchStmt((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].stmt)); (yyval.stmt).loc = (yyloc); ;}
break;
case 1191:
/* Line 1464 of yacc.c */
-#line 3570 "grammar.y"
+#line 3420 "grammar.y"
{ (yyval.stmt) = MkIfStmt((yyvsp[(3) - (3)].list), null, null); (yyval.stmt).loc = (yyloc); ;}
break;
case 1193:
/* Line 1464 of yacc.c */
-#line 3575 "grammar.y"
+#line 3425 "grammar.y"
{ (yyval.stmt) = MkWhileStmt((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].stmt)); (yyval.stmt).loc = (yyloc); ;}
break;
case 1194:
/* Line 1464 of yacc.c */
-#line 3576 "grammar.y"
+#line 3426 "grammar.y"
{ (yyval.stmt) = MkWhileStmt((yyvsp[(3) - (4)].list), (yyvsp[(4) - (4)].stmt)); (yyval.stmt).loc = (yyloc); ;}
break;
case 1195:
/* Line 1464 of yacc.c */
-#line 3577 "grammar.y"
+#line 3427 "grammar.y"
{ yyerror(); (yyval.stmt) = MkWhileStmt(null, (yyvsp[(4) - (4)].stmt)); (yyval.stmt).loc = (yyloc); ;}
break;
case 1196:
/* Line 1464 of yacc.c */
-#line 3579 "grammar.y"
+#line 3429 "grammar.y"
{ (yyval.stmt) = MkDoWhileStmt((yyvsp[(2) - (7)].stmt), (yyvsp[(5) - (7)].list)); (yyval.stmt).loc = (yyloc); ;}
break;
case 1197:
/* Line 1464 of yacc.c */
-#line 3580 "grammar.y"
+#line 3430 "grammar.y"
{ (yyval.stmt) = MkDoWhileStmt((yyvsp[(2) - (6)].stmt), (yyvsp[(5) - (6)].list)); (yyval.stmt).loc = (yyloc); ;}
break;
case 1198:
/* Line 1464 of yacc.c */
-#line 3582 "grammar.y"
+#line 3432 "grammar.y"
{ (yyval.stmt) = MkForStmt((yyvsp[(3) - (6)].stmt), (yyvsp[(4) - (6)].stmt), null, (yyvsp[(6) - (6)].stmt)); (yyval.stmt).loc = (yyloc); ;}
break;
case 1199:
/* Line 1464 of yacc.c */
-#line 3583 "grammar.y"
+#line 3433 "grammar.y"
{ yyerror(); (yyval.stmt) = MkForStmt((yyvsp[(3) - (5)].stmt), null, null, (yyvsp[(5) - (5)].stmt)); (yyval.stmt).loc = (yyloc); ;}
break;
case 1200:
/* Line 1464 of yacc.c */
-#line 3584 "grammar.y"
+#line 3434 "grammar.y"
{ (yyval.stmt) = MkForStmt((yyvsp[(3) - (7)].stmt), (yyvsp[(4) - (7)].stmt), (yyvsp[(5) - (7)].list), (yyvsp[(7) - (7)].stmt)); (yyval.stmt).loc = (yyloc); ;}
break;
case 1201:
/* Line 1464 of yacc.c */
-#line 3585 "grammar.y"
+#line 3435 "grammar.y"
{ (yyval.stmt) = MkForStmt((yyvsp[(3) - (6)].stmt), (yyvsp[(4) - (6)].stmt), (yyvsp[(5) - (6)].list), (yyvsp[(6) - (6)].stmt) ); (yyval.stmt).loc = (yyloc); ;}
break;
case 1202:
/* Line 1464 of yacc.c */
-#line 3586 "grammar.y"
+#line 3436 "grammar.y"
{ yyerror(); (yyval.stmt) = MkForStmt(null, null, null, (yyvsp[(4) - (4)].stmt)); (yyval.stmt).loc = (yyloc); ;}
break;
case 1203:
/* Line 1464 of yacc.c */
-#line 3588 "grammar.y"
+#line 3438 "grammar.y"
{ (yyval.stmt) = MkForEachStmt((yyvsp[(3) - (7)].id), (yyvsp[(5) - (7)].list), null, (yyvsp[(7) - (7)].stmt)); (yyval.stmt).loc = (yyloc); ;}
break;
case 1204:
/* Line 1464 of yacc.c */
-#line 3589 "grammar.y"
+#line 3439 "grammar.y"
{ (yyval.stmt) = MkForEachStmt((yyvsp[(3) - (9)].id), (yyvsp[(5) - (9)].list), (yyvsp[(7) - (9)].list), (yyvsp[(9) - (9)].stmt)); (yyval.stmt).loc = (yyloc); ;}
break;
case 1205:
/* Line 1464 of yacc.c */
-#line 3593 "grammar.y"
+#line 3443 "grammar.y"
{ (yyval.stmt) = MkForStmt(null, null, null, null); (yyval.stmt).loc = (yyloc); ;}
break;
case 1206:
/* Line 1464 of yacc.c */
-#line 3594 "grammar.y"
+#line 3444 "grammar.y"
{ (yyval.stmt) = MkForStmt(MkExpressionStmt((yyvsp[(3) - (4)].list)), null, null, null); (yyval.stmt).forStmt.init.loc = (yylsp[(3) - (4)]); (yyval.stmt).loc = (yyloc); ;}
break;
case 1207:
/* Line 1464 of yacc.c */
-#line 3595 "grammar.y"
+#line 3445 "grammar.y"
{ (yyval.stmt) = MkForStmt((yyvsp[(3) - (4)].stmt), null, null, null); (yyval.stmt).loc = (yyloc); ;}
break;
case 1208:
/* Line 1464 of yacc.c */
-#line 3596 "grammar.y"
+#line 3446 "grammar.y"
{ (yyval.stmt) = MkForStmt((yyvsp[(3) - (5)].stmt), MkExpressionStmt((yyvsp[(4) - (5)].list)), null, null); (yyval.stmt).loc = (yyloc); (yyval.stmt).forStmt.check.loc = (yylsp[(4) - (5)]); ;}
break;
case 1209:
/* Line 1464 of yacc.c */
-#line 3600 "grammar.y"
+#line 3450 "grammar.y"
{ (yyval.stmt) = MkForStmt((yyvsp[(3) - (5)].stmt), (yyvsp[(4) - (5)].stmt), (yyvsp[(5) - (5)].list), null); (yyval.stmt).loc = (yyloc); ;}
break;
case 1210:
/* Line 1464 of yacc.c */
-#line 3601 "grammar.y"
+#line 3451 "grammar.y"
{ (yyval.stmt) = MkForStmt((yyvsp[(3) - (6)].stmt), (yyvsp[(4) - (6)].stmt), null, (yyvsp[(6) - (6)].stmt)); (yyval.stmt).loc = (yyloc); ;}
break;
case 1211:
/* Line 1464 of yacc.c */
-#line 3602 "grammar.y"
+#line 3452 "grammar.y"
{ (yyval.stmt) = MkForStmt((yyvsp[(3) - (7)].stmt), (yyvsp[(4) - (7)].stmt), (yyvsp[(5) - (7)].list), (yyvsp[(7) - (7)].stmt)); (yyval.stmt).loc = (yyloc); ;}
break;
case 1212:
/* Line 1464 of yacc.c */
-#line 3603 "grammar.y"
+#line 3453 "grammar.y"
{ (yyval.stmt) = MkForStmt((yyvsp[(3) - (6)].stmt), (yyvsp[(4) - (6)].stmt), (yyvsp[(5) - (6)].list), (yyvsp[(6) - (6)].stmt) ); (yyval.stmt).loc = (yyloc); ;}
break;
case 1213:
/* Line 1464 of yacc.c */
-#line 3605 "grammar.y"
+#line 3455 "grammar.y"
{ yyerror(); (yyval.stmt) = MkDoWhileStmt((yyvsp[(2) - (6)].stmt), (yyvsp[(5) - (6)].list)); (yyval.stmt).loc = (yyloc); ;}
break;
case 1214:
/* Line 1464 of yacc.c */
-#line 3606 "grammar.y"
+#line 3456 "grammar.y"
{ yyerror(); (yyval.stmt) = MkDoWhileStmt((yyvsp[(2) - (5)].stmt), (yyvsp[(5) - (5)].list)); (yyval.stmt).loc = (yyloc); ;}
break;
case 1215:
/* Line 1464 of yacc.c */
-#line 3607 "grammar.y"
+#line 3457 "grammar.y"
{ (yyval.stmt) = MkDoWhileStmt((yyvsp[(2) - (5)].stmt), (yyvsp[(5) - (5)].list)); (yyval.stmt).loc = (yyloc); ;}
break;
case 1216:
/* Line 1464 of yacc.c */
-#line 3608 "grammar.y"
+#line 3458 "grammar.y"
{ (yyval.stmt) = MkDoWhileStmt((yyvsp[(2) - (4)].stmt), null); (yyval.stmt).loc = (yyloc); ;}
break;
case 1217:
/* Line 1464 of yacc.c */
-#line 3609 "grammar.y"
+#line 3459 "grammar.y"
{ yyerror(); (yyval.stmt) = MkDoWhileStmt((yyvsp[(2) - (3)].stmt), null); (yyval.stmt).loc = (yyloc); ;}
break;
case 1218:
/* Line 1464 of yacc.c */
-#line 3610 "grammar.y"
+#line 3460 "grammar.y"
{ yyerror(); (yyval.stmt) = MkDoWhileStmt((yyvsp[(2) - (2)].stmt), null); (yyval.stmt).loc = (yyloc); ;}
break;
case 1219:
/* Line 1464 of yacc.c */
-#line 3611 "grammar.y"
+#line 3461 "grammar.y"
{ yyerror(); (yyval.stmt) = MkDoWhileStmt(null, null); (yyval.stmt).loc = (yyloc); ;}
break;
case 1220:
/* Line 1464 of yacc.c */
-#line 3614 "grammar.y"
+#line 3464 "grammar.y"
{ (yyval.stmt) = MkWhileStmt(null, null); (yyval.stmt).loc = (yyloc); ;}
break;
case 1221:
/* Line 1464 of yacc.c */
-#line 3618 "grammar.y"
+#line 3468 "grammar.y"
{ (yyval.stmt) = MkWhileStmt(null, null); (yyval.stmt).loc = (yyloc); ;}
break;
case 1222:
/* Line 1464 of yacc.c */
-#line 3619 "grammar.y"
+#line 3469 "grammar.y"
{ (yyval.stmt) = MkWhileStmt((yyvsp[(3) - (3)].list), null); (yyval.stmt).loc = (yyloc); ;}
break;
case 1223:
/* Line 1464 of yacc.c */
-#line 3623 "grammar.y"
+#line 3473 "grammar.y"
{ (yyval.stmt) = MkWhileStmt((yyvsp[(3) - (5)].list), (yyvsp[(5) - (5)].stmt)); (yyval.stmt).loc = (yyloc); ;}
break;
case 1224:
/* Line 1464 of yacc.c */
-#line 3624 "grammar.y"
+#line 3474 "grammar.y"
{ (yyval.stmt) = MkWhileStmt((yyvsp[(3) - (4)].list), (yyvsp[(4) - (4)].stmt) ); (yyval.stmt).loc = (yyloc); ;}
break;
case 1225:
/* Line 1464 of yacc.c */
-#line 3628 "grammar.y"
+#line 3478 "grammar.y"
{ (yyval.stmt) = MkGotoStmt((yyvsp[(2) - (3)].id)); (yyval.stmt).loc = (yyloc); ;}
break;
case 1226:
/* Line 1464 of yacc.c */
-#line 3629 "grammar.y"
+#line 3479 "grammar.y"
{ (yyval.stmt) = MkContinueStmt(); (yyval.stmt).loc = (yyloc); ;}
break;
case 1227:
/* Line 1464 of yacc.c */
-#line 3630 "grammar.y"
+#line 3480 "grammar.y"
{ (yyval.stmt) = MkBreakStmt(); (yyval.stmt).loc = (yyloc); ;}
break;
case 1228:
/* Line 1464 of yacc.c */
-#line 3631 "grammar.y"
+#line 3481 "grammar.y"
{ Expression exp = MkExpDummy(); (yyval.stmt) = MkReturnStmt(MkListOne(exp)); (yyval.stmt).loc = (yyloc); exp.loc = (yylsp[(2) - (2)]); ;}
break;
case 1229:
/* Line 1464 of yacc.c */
-#line 3632 "grammar.y"
+#line 3482 "grammar.y"
{ (yyval.stmt) = MkReturnStmt((yyvsp[(2) - (3)].list)); (yyval.stmt).loc = (yyloc); ;}
break;
case 1230:
/* Line 1464 of yacc.c */
-#line 3633 "grammar.y"
+#line 3483 "grammar.y"
{ (yyval.stmt) = MkReturnStmt((yyvsp[(2) - (3)].list)); (yyval.stmt).loc = (yyloc); ;}
break;
case 1231:
/* Line 1464 of yacc.c */
-#line 3634 "grammar.y"
+#line 3484 "grammar.y"
{ (yyval.stmt) = MkReturnStmt(MkListOne((yyvsp[(2) - (3)].exp))); (yyval.stmt).loc = (yyloc); ;}
break;
case 1232:
/* Line 1464 of yacc.c */
-#line 3635 "grammar.y"
+#line 3485 "grammar.y"
{ (yyval.stmt) = MkReturnStmt(MkListOne((yyvsp[(2) - (3)].exp))); (yyval.stmt).loc = (yyloc); ;}
break;
case 1233:
/* Line 1464 of yacc.c */
-#line 3639 "grammar.y"
+#line 3489 "grammar.y"
{ (yyval.stmt) = MkReturnStmt((yyvsp[(2) - (2)].list)); (yyval.stmt).loc = (yyloc); ;}
break;
case 1234:
/* Line 1464 of yacc.c */
-#line 3640 "grammar.y"
+#line 3490 "grammar.y"
{ (yyval.stmt) = MkReturnStmt(MkListOne((yyvsp[(2) - (2)].exp))); (yyval.stmt).loc = (yyloc); ;}
break;
case 1235:
/* Line 1464 of yacc.c */
-#line 3641 "grammar.y"
+#line 3491 "grammar.y"
{ Expression exp = MkExpDummy(); (yyval.stmt) = MkReturnStmt(MkListOne(exp)); (yyval.stmt).loc = (yyloc); exp.loc.start = exp.loc.end = (yylsp[(1) - (1)]).end; ;}
break;
case 1236:
/* Line 1464 of yacc.c */
-#line 3642 "grammar.y"
+#line 3492 "grammar.y"
{ (yyval.stmt) = MkGotoStmt(null); (yyval.stmt).loc = (yyloc); ;}
break;
case 1237:
/* Line 1464 of yacc.c */
-#line 3648 "grammar.y"
+#line 3498 "grammar.y"
{ (yyval.function) = MkFunction((yyvsp[(1) - (4)].list), (yyvsp[(2) - (4)].declarator), (yyvsp[(3) - (4)].list)); ProcessFunctionBody((yyval.function), (yyvsp[(4) - (4)].stmt)); (yyval.function).loc = (yyloc); ;}
break;
case 1238:
/* Line 1464 of yacc.c */
-#line 3650 "grammar.y"
+#line 3500 "grammar.y"
{ (yyval.function) = MkFunction((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].declarator), null); ProcessFunctionBody((yyval.function), (yyvsp[(3) - (3)].stmt)); (yyval.function).loc = (yyloc); ;}
break;
case 1239:
/* Line 1464 of yacc.c */
-#line 3651 "grammar.y"
+#line 3501 "grammar.y"
{ (yyval.function) = MkFunction((yyvsp[(1) - (4)].list), (yyvsp[(2) - (4)].declarator), (yyvsp[(3) - (4)].list)); ProcessFunctionBody((yyval.function), (yyvsp[(4) - (4)].stmt)); (yyval.function).loc = (yyloc); ;}
break;
case 1240:
/* Line 1464 of yacc.c */
-#line 3653 "grammar.y"
+#line 3503 "grammar.y"
{ (yyval.function) = MkFunction((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].declarator), null); ProcessFunctionBody((yyval.function), (yyvsp[(3) - (3)].stmt)); (yyval.function).loc = (yyloc); ;}
break;
case 1241:
/* Line 1464 of yacc.c */
-#line 3655 "grammar.y"
+#line 3505 "grammar.y"
{ (yyval.function) = MkFunction(null, (yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); ProcessFunctionBody((yyval.function), (yyvsp[(3) - (3)].stmt)); (yyval.function).loc = (yyloc); ;}
break;
case 1242:
/* Line 1464 of yacc.c */
-#line 3656 "grammar.y"
+#line 3506 "grammar.y"
{ (yyval.function) = MkFunction(null, (yyvsp[(1) - (2)].declarator), null); ProcessFunctionBody((yyval.function), (yyvsp[(2) - (2)].stmt)); (yyval.function).loc = (yyloc);;}
break;
case 1243:
/* Line 1464 of yacc.c */
-#line 3659 "grammar.y"
+#line 3509 "grammar.y"
{ (yyval.function) = MkFunction((yyvsp[(1) - (4)].list), (yyvsp[(2) - (4)].declarator), (yyvsp[(3) - (4)].list)); ProcessFunctionBody((yyval.function), (yyvsp[(4) - (4)].stmt)); (yyval.function).loc = (yyloc); (yyval.function).loc.end = (yyvsp[(4) - (4)].stmt).loc.end; ;}
break;
case 1244:
/* Line 1464 of yacc.c */
-#line 3660 "grammar.y"
+#line 3510 "grammar.y"
{ (yyval.function) = MkFunction((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].declarator), null); ProcessFunctionBody((yyval.function), (yyvsp[(3) - (3)].stmt)); (yyval.function).loc = (yyloc); (yyval.function).loc.end = (yyvsp[(3) - (3)].stmt).loc.end; ;}
break;
case 1245:
/* Line 1464 of yacc.c */
-#line 3661 "grammar.y"
+#line 3511 "grammar.y"
{ (yyval.function) = MkFunction((yyvsp[(1) - (4)].list), (yyvsp[(2) - (4)].declarator), (yyvsp[(3) - (4)].list)); ProcessFunctionBody((yyval.function), (yyvsp[(4) - (4)].stmt)); (yyval.function).loc = (yyloc); (yyval.function).loc.end = (yyvsp[(4) - (4)].stmt).loc.end; ;}
break;
case 1246:
/* Line 1464 of yacc.c */
-#line 3662 "grammar.y"
+#line 3512 "grammar.y"
{ (yyval.function) = MkFunction((yyvsp[(1) - (3)].list), (yyvsp[(2) - (3)].declarator), null); ProcessFunctionBody((yyval.function), (yyvsp[(3) - (3)].stmt)); (yyval.function).loc = (yyloc); (yyval.function).loc.end = (yyvsp[(3) - (3)].stmt).loc.end; ;}
break;
case 1247:
/* Line 1464 of yacc.c */
-#line 3663 "grammar.y"
+#line 3513 "grammar.y"
{ (yyval.function) = MkFunction(null, (yyvsp[(1) - (3)].declarator), (yyvsp[(2) - (3)].list)); ProcessFunctionBody((yyval.function), (yyvsp[(3) - (3)].stmt)); (yyval.function).loc = (yyloc); (yyval.function).loc.end = (yyvsp[(3) - (3)].stmt).loc.end; ;}
break;
case 1248:
/* Line 1464 of yacc.c */
-#line 3664 "grammar.y"
+#line 3514 "grammar.y"
{ (yyval.function) = MkFunction(null, (yyvsp[(1) - (2)].declarator), null); ProcessFunctionBody((yyval.function), (yyvsp[(2) - (2)].stmt)); (yyval.function).loc = (yyloc); (yyval.function).loc.end = (yyvsp[(2) - (2)].stmt).loc.end; ;}
break;
case 1249:
/* Line 1464 of yacc.c */
-#line 3668 "grammar.y"
+#line 3518 "grammar.y"
{ (yyval.string) = CopyString(yytext); ;}
break;
case 1250:
/* Line 1464 of yacc.c */
-#line 3670 "grammar.y"
+#line 3520 "grammar.y"
{
int len1 = strlen((yyvsp[(1) - (2)].string));
int len2 = strlen(yytext);
case 1251:
/* Line 1464 of yacc.c */
-#line 3681 "grammar.y"
+#line 3531 "grammar.y"
{ (yyval.external) = MkExternalFunction((yyvsp[(1) - (1)].function)); (yyval.external).loc = (yyloc); (yyvsp[(1) - (1)].function).declMode = declMode; structDeclMode = declMode = defaultDeclMode; ;}
break;
case 1252:
/* Line 1464 of yacc.c */
-#line 3683 "grammar.y"
+#line 3533 "grammar.y"
{ (yyval.external) = MkExternalClass((yyvsp[(1) - (1)]._class)); (yyval.external).loc = (yyloc); (yyvsp[(1) - (1)]._class).declMode = (declMode != defaultAccess) ? declMode : privateAccess; structDeclMode = declMode = defaultDeclMode; ;}
break;
case 1253:
/* Line 1464 of yacc.c */
-#line 3686 "grammar.y"
+#line 3536 "grammar.y"
{ (yyval.external) = MkExternalClass((yyvsp[(2) - (2)]._class)); (yyval.external).loc = (yyloc); (yyvsp[(2) - (2)]._class).declMode = (declMode != defaultAccess) ? declMode : privateAccess; structDeclMode = declMode = defaultDeclMode; FreeList((yyvsp[(1) - (2)].list), FreeSpecifier); ;}
break;
case 1254:
/* Line 1464 of yacc.c */
-#line 3689 "grammar.y"
+#line 3539 "grammar.y"
{ (yyval.external) = MkExternalDeclaration((yyvsp[(1) - (1)].declaration)); (yyval.external).loc = (yyloc); (yyvsp[(1) - (1)].declaration).declMode = declMode; structDeclMode = declMode = defaultDeclMode; ;}
break;
case 1255:
/* Line 1464 of yacc.c */
-#line 3690 "grammar.y"
+#line 3540 "grammar.y"
{ (yyval.external) = MkExternalImport((yyvsp[(2) - (2)].string), normalImport, (declMode != defaultAccess) ? declMode : privateAccess); (yyval.external).loc = (yyloc); ;}
break;
case 1256:
/* Line 1464 of yacc.c */
-#line 3691 "grammar.y"
+#line 3541 "grammar.y"
{ (yyval.external) = MkExternalImport((yyvsp[(3) - (3)].string), staticImport, (declMode != defaultAccess) ? declMode : privateAccess); (yyval.external).loc = (yyloc); ;}
break;
case 1257:
/* Line 1464 of yacc.c */
-#line 3693 "grammar.y"
+#line 3543 "grammar.y"
{
bool isRemote = !strcmp((yyvsp[(2) - (3)].id).string, "remote");
(yyval.external) = MkExternalImport((yyvsp[(3) - (3)].string), isRemote ? remoteImport : normalImport, (declMode != defaultAccess) ? declMode : privateAccess);
case 1258:
/* Line 1464 of yacc.c */
-#line 3702 "grammar.y"
+#line 3552 "grammar.y"
{ (yyval.external) = null; ;}
break;
case 1259:
/* Line 1464 of yacc.c */
-#line 3704 "grammar.y"
+#line 3554 "grammar.y"
{ (yyval.external) = MkExternalFunction((yyvsp[(2) - (2)].function)); (yyval.external).loc = (yyloc); (yyvsp[(2) - (2)].function).declMode = (yyvsp[(1) - (2)].declMode); structDeclMode = declMode = defaultDeclMode; ;}
break;
case 1260:
/* Line 1464 of yacc.c */
-#line 3706 "grammar.y"
+#line 3556 "grammar.y"
{ (yyval.external) = MkExternalClass((yyvsp[(2) - (2)]._class)); (yyval.external).loc = (yyloc); (yyvsp[(2) - (2)]._class).declMode = ((yyvsp[(1) - (2)].declMode) != defaultAccess) ? (yyvsp[(1) - (2)].declMode) : privateAccess; structDeclMode = declMode = defaultDeclMode; ;}
break;
case 1261:
/* Line 1464 of yacc.c */
-#line 3707 "grammar.y"
+#line 3557 "grammar.y"
{ (yyval.external) = MkExternalDeclaration((yyvsp[(2) - (2)].declaration)); (yyval.external).loc = (yyloc); (yyvsp[(2) - (2)].declaration).declMode = (yyvsp[(1) - (2)].declMode); structDeclMode = declMode = defaultDeclMode; ;}
break;
case 1262:
/* Line 1464 of yacc.c */
-#line 3708 "grammar.y"
+#line 3558 "grammar.y"
{ (yyval.external) = MkExternalImport((yyvsp[(3) - (3)].string), normalImport, ((yyvsp[(1) - (3)].declMode) != defaultAccess) ? (yyvsp[(1) - (3)].declMode) : privateAccess); (yyval.external).loc = (yyloc); structDeclMode = declMode = defaultDeclMode; ;}
break;
case 1263:
/* Line 1464 of yacc.c */
-#line 3709 "grammar.y"
+#line 3559 "grammar.y"
{ (yyval.external) = MkExternalImport((yyvsp[(4) - (4)].string), staticImport, ((yyvsp[(1) - (4)].declMode) != defaultAccess) ? (yyvsp[(1) - (4)].declMode) : privateAccess); (yyval.external).loc = (yyloc); structDeclMode = declMode = defaultDeclMode; ;}
break;
case 1264:
/* Line 1464 of yacc.c */
-#line 3711 "grammar.y"
+#line 3561 "grammar.y"
{
bool isRemote = !strcmp((yyvsp[(3) - (4)].id).string, "remote");
(yyval.external) = MkExternalImport((yyvsp[(4) - (4)].string), isRemote ? remoteImport : normalImport, ((yyvsp[(1) - (4)].declMode) != defaultAccess) ? (yyvsp[(1) - (4)].declMode) : privateAccess);
case 1265:
/* Line 1464 of yacc.c */
-#line 3720 "grammar.y"
+#line 3570 "grammar.y"
{ defaultDeclMode = (yyvsp[(1) - (2)].declMode); (yyval.external) = null; ;}
break;
case 1266:
/* Line 1464 of yacc.c */
-#line 3721 "grammar.y"
+#line 3571 "grammar.y"
{ defaultDeclMode = staticAccess; (yyval.external) = null; ;}
break;
case 1267:
/* Line 1464 of yacc.c */
-#line 3722 "grammar.y"
+#line 3572 "grammar.y"
{ (yyval.external) = MkExternalNameSpace((yyvsp[(2) - (2)].id)); (yyval.external).loc = (yyloc); ;}
break;
case 1268:
/* Line 1464 of yacc.c */
-#line 3723 "grammar.y"
+#line 3573 "grammar.y"
{ (yyval.external) = MkExternalNameSpace(MkIdentifier((yyvsp[(2) - (2)].specifier).name)); FreeSpecifier((yyvsp[(2) - (2)].specifier)); (yyval.external).loc = (yyloc); ;}
break;
case 1269:
/* Line 1464 of yacc.c */
-#line 3724 "grammar.y"
+#line 3574 "grammar.y"
{ (yyval.external) = MkExternalDBTable((yyvsp[(1) - (1)].dbtableDef)); (yyval.external).loc = (yyloc); (yyvsp[(1) - (1)].dbtableDef).declMode = (declMode != defaultAccess) ? declMode : privateAccess; structDeclMode = declMode = defaultDeclMode; ;}
break;
case 1270:
/* Line 1464 of yacc.c */
-#line 3725 "grammar.y"
+#line 3575 "grammar.y"
{ (yyval.external) = MkExternalDBTable((yyvsp[(2) - (2)].dbtableDef)); (yyval.external).loc = (yyloc); (yyvsp[(2) - (2)].dbtableDef).declMode = ((yyvsp[(1) - (2)].declMode) != defaultAccess) ? declMode : privateAccess; structDeclMode = declMode = defaultDeclMode; ;}
break;
case 1271:
/* Line 1464 of yacc.c */
-#line 3729 "grammar.y"
+#line 3579 "grammar.y"
{ yyerror(); (yyval.external) = MkExternalClass((yyvsp[(1) - (1)]._class)); (yyval.external).loc = (yyvsp[(1) - (1)]._class).loc; (yyvsp[(1) - (1)]._class).declMode = (declMode != defaultAccess) ? declMode : privateAccess; structDeclMode = declMode = defaultDeclMode; ;}
break;
case 1272:
/* Line 1464 of yacc.c */
-#line 3731 "grammar.y"
+#line 3581 "grammar.y"
{
yyerror();
FreeList((yyvsp[(1) - (2)].list), FreeSpecifier);
case 1273:
/* Line 1464 of yacc.c */
-#line 3739 "grammar.y"
+#line 3589 "grammar.y"
{ yyerror(); (yyval.external) = MkExternalFunction((yyvsp[(1) - (1)].function)); (yyval.external).loc = (yyvsp[(1) - (1)].function).loc; (yyvsp[(1) - (1)].function).declMode = declMode; structDeclMode = declMode = defaultDeclMode; ;}
break;
case 1274:
/* Line 1464 of yacc.c */
-#line 3741 "grammar.y"
+#line 3591 "grammar.y"
{ yyerror(); (yyval.external) = MkExternalClass((yyvsp[(2) - (2)]._class)); (yyval.external).loc = (yyvsp[(2) - (2)]._class).loc; (yyvsp[(2) - (2)]._class).declMode = ((yyvsp[(1) - (2)].declMode) != defaultAccess) ? (yyvsp[(1) - (2)].declMode) : privateAccess; structDeclMode = declMode = defaultDeclMode; ;}
break;
case 1275:
/* Line 1464 of yacc.c */
-#line 3742 "grammar.y"
+#line 3592 "grammar.y"
{ yyerror(); (yyval.external) = MkExternalFunction((yyvsp[(2) - (2)].function)); (yyval.external).loc = (yyvsp[(2) - (2)].function).loc; (yyvsp[(2) - (2)].function).declMode = (yyvsp[(1) - (2)].declMode); structDeclMode = declMode = defaultDeclMode; ;}
break;
case 1276:
/* Line 1464 of yacc.c */
-#line 3745 "grammar.y"
+#line 3595 "grammar.y"
{ yyerror(); (yyval.external) = MkExternalDeclaration((yyvsp[(1) - (1)].declaration)); (yyval.external).loc = (yyloc); (yyvsp[(1) - (1)].declaration).declMode = declMode; structDeclMode = declMode = defaultDeclMode; ;}
break;
case 1277:
/* Line 1464 of yacc.c */
-#line 3746 "grammar.y"
+#line 3596 "grammar.y"
{ yyerror(); (yyval.external) = MkExternalDeclaration((yyvsp[(2) - (2)].declaration)); (yyval.external).loc = (yyloc); (yyvsp[(2) - (2)].declaration).declMode = (yyvsp[(1) - (2)].declMode); structDeclMode = declMode = defaultDeclMode; ;}
break;
case 1278:
/* Line 1464 of yacc.c */
-#line 3750 "grammar.y"
+#line 3600 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].external)); ast = (yyval.list); ;}
break;
case 1279:
/* Line 1464 of yacc.c */
-#line 3751 "grammar.y"
+#line 3601 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].external)); ;}
break;
case 1280:
/* Line 1464 of yacc.c */
-#line 3752 "grammar.y"
+#line 3602 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].external)); ;}
break;
case 1283:
/* Line 1464 of yacc.c */
-#line 3758 "grammar.y"
+#line 3608 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].external)); ast = (yyval.list); ;}
break;
case 1284:
/* Line 1464 of yacc.c */
-#line 3759 "grammar.y"
+#line 3609 "grammar.y"
{ (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].external)); ;}
break;
case 1285:
/* Line 1464 of yacc.c */
-#line 3761 "grammar.y"
+#line 3611 "grammar.y"
{ External _class = MkExternalClass((yyvsp[(2) - (2)]._class)); (yyval.list) = (yyvsp[(1) - (2)].list); ListAdd((yyvsp[(1) - (2)].list), _class); _class.loc = (yylsp[(2) - (2)]); (yyvsp[(2) - (2)]._class).declMode = (declMode != defaultAccess) ? declMode : privateAccess; structDeclMode = declMode = defaultDeclMode; ;}
break;
case 1286:
/* Line 1464 of yacc.c */
-#line 3763 "grammar.y"
+#line 3613 "grammar.y"
{ External _class = MkExternalClass((yyvsp[(3) - (3)]._class)); (yyval.list) = (yyvsp[(1) - (3)].list); ListAdd((yyvsp[(1) - (3)].list), _class); _class.loc = (yylsp[(3) - (3)]); (yyvsp[(3) - (3)]._class).declMode = ((yyvsp[(2) - (3)].declMode) != defaultAccess) ? (yyvsp[(2) - (3)].declMode) : privateAccess; structDeclMode = declMode = defaultDeclMode; ;}
break;
case 1289:
/* Line 1464 of yacc.c */
-#line 3769 "grammar.y"
+#line 3619 "grammar.y"
{ ast = MkList(); ;}
break;
case 1290:
/* Line 1464 of yacc.c */
-#line 3773 "grammar.y"
- { Symbol symbol = DeclClassAddNameSpace((yyvsp[(3) - (6)].id).string); FreeIdentifier((yyvsp[(3) - (6)].id)); (yyval.dbtableDef) = MkDBTableDef((yyvsp[(2) - (6)].string), symbol, (yyvsp[(5) - (6)].list)); ;}
+#line 3623 "grammar.y"
+ { Symbol symbol = DeclClassAddNameSpace((yyvsp[(3) - (6)].id)._class, (yyvsp[(3) - (6)].id).string); FreeIdentifier((yyvsp[(3) - (6)].id)); (yyval.dbtableDef) = MkDBTableDef((yyvsp[(2) - (6)].string), symbol, (yyvsp[(5) - (6)].list)); ;}
break;
case 1291:
/* Line 1464 of yacc.c */
-#line 3774 "grammar.y"
- { Symbol symbol = DeclClass((yyvsp[(3) - (6)].specifier).name); FreeSpecifier((yyvsp[(3) - (6)].specifier)); (yyval.dbtableDef) = MkDBTableDef((yyvsp[(2) - (6)].string), symbol, (yyvsp[(5) - (6)].list)); ;}
+#line 3624 "grammar.y"
+ { Symbol symbol = DeclClass((yyvsp[(3) - (6)].specifier).nsSpec, (yyvsp[(3) - (6)].specifier).name); FreeSpecifier((yyvsp[(3) - (6)].specifier)); (yyval.dbtableDef) = MkDBTableDef((yyvsp[(2) - (6)].string), symbol, (yyvsp[(5) - (6)].list)); ;}
break;
case 1292:
/* Line 1464 of yacc.c */
-#line 3775 "grammar.y"
+#line 3625 "grammar.y"
{ (yyval.dbtableDef) = MkDBTableDef((yyvsp[(2) - (5)].string), null, (yyvsp[(4) - (5)].list)); ;}
break;
case 1293:
/* Line 1464 of yacc.c */
-#line 3779 "grammar.y"
+#line 3629 "grammar.y"
{ (yyval.dbtableEntry) = MkDBFieldEntry(MkTypeName((yyvsp[(1) - (4)].list), null), (yyvsp[(2) - (4)].id), (yyvsp[(3) - (4)].string)); ;}
break;
case 1294:
/* Line 1464 of yacc.c */
-#line 3783 "grammar.y"
+#line 3633 "grammar.y"
{ (yyval.dbindexItem) = MkDBIndexItem((yyvsp[(1) - (1)].id), ascending); ;}
break;
case 1295:
/* Line 1464 of yacc.c */
-#line 3784 "grammar.y"
+#line 3634 "grammar.y"
{ (yyval.dbindexItem) = MkDBIndexItem((yyvsp[(2) - (2)].id), descending); ;}
break;
case 1296:
/* Line 1464 of yacc.c */
-#line 3785 "grammar.y"
+#line 3635 "grammar.y"
{ (yyval.dbindexItem) = MkDBIndexItem((yyvsp[(2) - (2)].id), ascending); ;}
break;
case 1297:
/* Line 1464 of yacc.c */
-#line 3789 "grammar.y"
+#line 3639 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].dbindexItem)); ;}
break;
case 1298:
/* Line 1464 of yacc.c */
-#line 3790 "grammar.y"
+#line 3640 "grammar.y"
{ ListAdd((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].dbindexItem)); ;}
break;
case 1299:
/* Line 1464 of yacc.c */
-#line 3794 "grammar.y"
+#line 3644 "grammar.y"
{ (yyval.dbtableEntry) = MkDBIndexEntry((yyvsp[(2) - (3)].list), null); ;}
break;
case 1300:
/* Line 1464 of yacc.c */
-#line 3795 "grammar.y"
+#line 3645 "grammar.y"
{ (yyval.dbtableEntry) = MkDBIndexEntry((yyvsp[(2) - (4)].list), (yyvsp[(3) - (4)].id)); ;}
break;
case 1301:
/* Line 1464 of yacc.c */
-#line 3799 "grammar.y"
+#line 3649 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].dbtableEntry)); ;}
break;
case 1302:
/* Line 1464 of yacc.c */
-#line 3800 "grammar.y"
+#line 3650 "grammar.y"
{ (yyval.list) = MkList(); ListAdd((yyval.list), (yyvsp[(1) - (1)].dbtableEntry)); ;}
break;
case 1303:
/* Line 1464 of yacc.c */
-#line 3801 "grammar.y"
+#line 3651 "grammar.y"
{ ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].dbtableEntry)); ;}
break;
case 1304:
/* Line 1464 of yacc.c */
-#line 3802 "grammar.y"
+#line 3652 "grammar.y"
{ ListAdd((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].dbtableEntry)); ;}
break;
case 1305:
/* Line 1464 of yacc.c */
-#line 3806 "grammar.y"
+#line 3656 "grammar.y"
{ (yyval.exp) = MkExpDBOpen((yyvsp[(3) - (6)].exp), (yyvsp[(5) - (6)].exp)); ;}
break;
case 1306:
/* Line 1464 of yacc.c */
-#line 3810 "grammar.y"
+#line 3660 "grammar.y"
{ (yyval.exp) = MkExpDBField((yyvsp[(3) - (6)].string), (yyvsp[(5) - (6)].id)); ;}
break;
case 1307:
/* Line 1464 of yacc.c */
-#line 3814 "grammar.y"
+#line 3664 "grammar.y"
{ (yyval.exp) = MkExpDBIndex((yyvsp[(3) - (6)].string), (yyvsp[(5) - (6)].id)); ;}
break;
case 1308:
/* Line 1464 of yacc.c */
-#line 3818 "grammar.y"
+#line 3668 "grammar.y"
{ (yyval.exp) = MkExpDBTable((yyvsp[(3) - (4)].string)); ;}
break;
/* Line 1464 of yacc.c */
-#line 22590 "grammar.ec"
+#line 22480 "grammar.ec"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
/* Line 1684 of yacc.c */
-#line 3821 "grammar.y"
+#line 3671 "grammar.y"