Front page | perl.cvs.parrot |
Postings from December 2008
[svn:parrot] r33421 - in trunk: compilers/imcc t/compilers/imcc/syn
From:
tewk
Date:
December 1, 2008 07:08
Subject:
[svn:parrot] r33421 - in trunk: compilers/imcc t/compilers/imcc/syn
Message ID:
20081201150841.2EBDACB9AF@x12.develooper.com
Author: tewk
Date: Mon Dec 1 07:08:36 2008
New Revision: 33421
Added:
trunk/t/compilers/imcc/syn/subflags.t
Modified:
trunk/compilers/imcc/imcc.y
trunk/compilers/imcc/imcparser.c
trunk/compilers/imcc/pbc.c
Log:
[nsentry] passing tests
Modified: trunk/compilers/imcc/imcc.y
==============================================================================
--- trunk/compilers/imcc/imcc.y (original)
+++ trunk/compilers/imcc/imcc.y Mon Dec 1 07:08:36 2008
@@ -1090,11 +1090,13 @@
ns_entry_name:
NS_ENTRY
{
+ $$ = 0;
IMCC_INFO(interp)->cur_unit->ns_entry_name = NULL;
IMCC_INFO(interp)->cur_unit->has_ns_entry_name = 1;
}
| NS_ENTRY '(' STRINGC ')'
{
+ $$ = 0;
IMCC_INFO(interp)->cur_unit->ns_entry_name = $3;
IMCC_INFO(interp)->cur_unit->has_ns_entry_name = 1;
}
Modified: trunk/compilers/imcc/imcparser.c
==============================================================================
--- trunk/compilers/imcc/imcparser.c (original)
+++ trunk/compilers/imcc/imcparser.c Mon Dec 1 07:08:36 2008
@@ -1489,36 +1489,36 @@
891, 892, 893, 894, 895, 898, 898, 907, 906, 918,
922, 930, 934, 938, 938, 950, 952, 956, 971, 979,
984, 988, 991, 983, 997, 998, 999, 1012, 1012, 1016,
- 1027, 1042, 1046, 1052, 1061, 1067, 1076, 1082, 1091, 1096,
- 1104, 1112, 1122, 1125, 1130, 1138, 1139, 1140, 1141, 1142,
- 1153, 1164, 1167, 1169, 1174, 1173, 1206, 1207, 1211, 1212,
- 1216, 1217, 1221, 1222, 1226, 1227, 1228, 1229, 1230, 1231,
- 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1243, 1248,
- 1252, 1257, 1261, 1265, 1270, 1279, 1280, 1284, 1289, 1290,
- 1298, 1299, 1299, 1314, 1315, 1319, 1320, 1321, 1322, 1323,
- 1324, 1329, 1329, 1332, 1340, 1340, 1346, 1347, 1352, 1360,
- 1361, 1366, 1374, 1378, 1383, 1382, 1395, 1396, 1400, 1401,
- 1411, 1415, 1425, 1433, 1434, 1446, 1450, 1452, 1453, 1454,
- 1455, 1459, 1460, 1464, 1465, 1469, 1478, 1479, 1490, 1497,
- 1506, 1516, 1517, 1522, 1523, 1524, 1525, 1526, 1526, 1542,
- 1546, 1546, 1553, 1554, 1554, 1560, 1566, 1567, 1579, 1580,
- 1581, 1582, 1583, 1584, 1588, 1589, 1590, 1591, 1595, 1608,
- 1610, 1612, 1614, 1616, 1618, 1620, 1622, 1624, 1626, 1628,
- 1630, 1632, 1634, 1636, 1640, 1642, 1644, 1647, 1654, 1653,
- 1662, 1663, 1664, 1665, 1673, 1674, 1675, 1679, 1680, 1681,
- 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691,
- 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701,
- 1707, 1706, 1718, 1725, 1726, 1727, 1728, 1729, 1730, 1731,
- 1732, 1733, 1734, 1735, 1736, 1737, 1742, 1753, 1754, 1755,
- 1756, 1762, 1774, 1780, 1786, 1785, 1794, 1795, 1805, 1815,
- 1821, 1830, 1834, 1835, 1839, 1840, 1843, 1847, 1851, 1861,
- 1866, 1876, 1881, 1885, 1886, 1890, 1894, 1898, 1905, 1909,
- 1913, 1920, 1921, 1925, 1926, 1927, 1928, 1929, 1930, 1934,
- 1935, 1939, 1940, 1944, 1945, 1949, 1950, 1957, 1964, 1965,
- 1966, 1970, 1971, 1975, 1976, 1980, 1981, 1985, 1986, 1990,
- 1990, 2003, 2003, 2016, 2017, 2022, 2022, 2031, 2037, 2044,
- 2045, 2049, 2050, 2051, 2052, 2053, 2057, 2058, 2059, 2060,
- 2064, 2065
+ 1027, 1042, 1046, 1052, 1061, 1067, 1076, 1082, 1091, 1097,
+ 1106, 1114, 1124, 1127, 1132, 1140, 1141, 1142, 1143, 1144,
+ 1155, 1166, 1169, 1171, 1176, 1175, 1208, 1209, 1213, 1214,
+ 1218, 1219, 1223, 1224, 1228, 1229, 1230, 1231, 1232, 1233,
+ 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1245, 1250,
+ 1254, 1259, 1263, 1267, 1272, 1281, 1282, 1286, 1291, 1292,
+ 1300, 1301, 1301, 1316, 1317, 1321, 1322, 1323, 1324, 1325,
+ 1326, 1331, 1331, 1334, 1342, 1342, 1348, 1349, 1354, 1362,
+ 1363, 1368, 1376, 1380, 1385, 1384, 1397, 1398, 1402, 1403,
+ 1413, 1417, 1427, 1435, 1436, 1448, 1452, 1454, 1455, 1456,
+ 1457, 1461, 1462, 1466, 1467, 1471, 1480, 1481, 1492, 1499,
+ 1508, 1518, 1519, 1524, 1525, 1526, 1527, 1528, 1528, 1544,
+ 1548, 1548, 1555, 1556, 1556, 1562, 1568, 1569, 1581, 1582,
+ 1583, 1584, 1585, 1586, 1590, 1591, 1592, 1593, 1597, 1610,
+ 1612, 1614, 1616, 1618, 1620, 1622, 1624, 1626, 1628, 1630,
+ 1632, 1634, 1636, 1638, 1642, 1644, 1646, 1649, 1656, 1655,
+ 1664, 1665, 1666, 1667, 1675, 1676, 1677, 1681, 1682, 1683,
+ 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693,
+ 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703,
+ 1709, 1708, 1720, 1727, 1728, 1729, 1730, 1731, 1732, 1733,
+ 1734, 1735, 1736, 1737, 1738, 1739, 1744, 1755, 1756, 1757,
+ 1758, 1764, 1776, 1782, 1788, 1787, 1796, 1797, 1807, 1817,
+ 1823, 1832, 1836, 1837, 1841, 1842, 1845, 1849, 1853, 1863,
+ 1868, 1878, 1883, 1887, 1888, 1892, 1896, 1900, 1907, 1911,
+ 1915, 1922, 1923, 1927, 1928, 1929, 1930, 1931, 1932, 1936,
+ 1937, 1941, 1942, 1946, 1947, 1951, 1952, 1959, 1966, 1967,
+ 1968, 1972, 1973, 1977, 1978, 1982, 1983, 1987, 1988, 1992,
+ 1992, 2005, 2005, 2018, 2019, 2024, 2024, 2033, 2039, 2046,
+ 2047, 2051, 2052, 2053, 2054, 2055, 2059, 2060, 2061, 2062,
+ 2066, 2067
};
#endif
@@ -3315,21 +3315,23 @@
case 68:
#line 1092 "compilers/imcc/imcc.y"
{
+ (yyval.t) = 0;
IMCC_INFO(interp)->cur_unit->ns_entry_name = NULL;
IMCC_INFO(interp)->cur_unit->has_ns_entry_name = 1;
}
break;
case 69:
-#line 1097 "compilers/imcc/imcc.y"
+#line 1098 "compilers/imcc/imcc.y"
{
+ (yyval.t) = 0;
IMCC_INFO(interp)->cur_unit->ns_entry_name = (yyvsp[(3) - (4)].s);
IMCC_INFO(interp)->cur_unit->has_ns_entry_name = 1;
}
break;
case 70:
-#line 1105 "compilers/imcc/imcc.y"
+#line 1107 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
IMCC_INFO(interp)->cur_unit->instance_of = (yyvsp[(3) - (4)].s);
@@ -3337,7 +3339,7 @@
break;
case 71:
-#line 1113 "compilers/imcc/imcc.y"
+#line 1115 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
IMCC_INFO(interp)->cur_unit->subid = mk_const(interp, (yyvsp[(3) - (4)].s), 'S');
@@ -3346,14 +3348,14 @@
break;
case 72:
-#line 1122 "compilers/imcc/imcc.y"
+#line 1124 "compilers/imcc/imcc.y"
{
add_pcc_multi(IMCC_INFO(interp)->cur_call, NULL);
}
break;
case 73:
-#line 1126 "compilers/imcc/imcc.y"
+#line 1128 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
add_pcc_multi(IMCC_INFO(interp)->cur_call, (yyvsp[(3) - (3)].sr));
@@ -3361,7 +3363,7 @@
break;
case 74:
-#line 1131 "compilers/imcc/imcc.y"
+#line 1133 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
add_pcc_multi(IMCC_INFO(interp)->cur_call, (yyvsp[(1) - (1)].sr));
@@ -3369,27 +3371,27 @@
break;
case 75:
-#line 1138 "compilers/imcc/imcc.y"
+#line 1140 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, "INTVAL", 'S'); }
break;
case 76:
-#line 1139 "compilers/imcc/imcc.y"
+#line 1141 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, "FLOATVAL", 'S'); }
break;
case 77:
-#line 1140 "compilers/imcc/imcc.y"
+#line 1142 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, "PMC", 'S'); }
break;
case 78:
-#line 1141 "compilers/imcc/imcc.y"
+#line 1143 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, "STRING", 'S'); }
break;
case 79:
-#line 1143 "compilers/imcc/imcc.y"
+#line 1145 "compilers/imcc/imcc.y"
{
SymReg *r;
if (strcmp((yyvsp[(1) - (1)].s), "_") != 0)
@@ -3403,7 +3405,7 @@
break;
case 80:
-#line 1154 "compilers/imcc/imcc.y"
+#line 1156 "compilers/imcc/imcc.y"
{
SymReg *r;
if (strcmp((yyvsp[(1) - (1)].s), "_") != 0)
@@ -3417,12 +3419,12 @@
break;
case 81:
-#line 1164 "compilers/imcc/imcc.y"
+#line 1166 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(2) - (3)].sr); }
break;
case 84:
-#line 1174 "compilers/imcc/imcc.y"
+#line 1176 "compilers/imcc/imcc.y"
{
char name[128];
SymReg *r, *r1;
@@ -3449,82 +3451,82 @@
break;
case 85:
-#line 1202 "compilers/imcc/imcc.y"
+#line 1204 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; }
break;
case 86:
-#line 1206 "compilers/imcc/imcc.y"
+#line 1208 "compilers/imcc/imcc.y"
{ (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->label = 0; }
break;
case 87:
-#line 1207 "compilers/imcc/imcc.y"
+#line 1209 "compilers/imcc/imcc.y"
{ (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->label = 1; }
break;
case 88:
-#line 1211 "compilers/imcc/imcc.y"
+#line 1213 "compilers/imcc/imcc.y"
{ (yyval.i) = NULL; }
break;
case 89:
-#line 1212 "compilers/imcc/imcc.y"
+#line 1214 "compilers/imcc/imcc.y"
{ (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->object = (yyvsp[(2) - (3)].sr); }
break;
case 90:
-#line 1216 "compilers/imcc/imcc.y"
+#line 1218 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 92:
-#line 1221 "compilers/imcc/imcc.y"
+#line 1223 "compilers/imcc/imcc.y"
{ (yyval.t) = (yyvsp[(1) - (1)].t); }
break;
case 93:
-#line 1222 "compilers/imcc/imcc.y"
+#line 1224 "compilers/imcc/imcc.y"
{ (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); }
break;
case 94:
-#line 1226 "compilers/imcc/imcc.y"
+#line 1228 "compilers/imcc/imcc.y"
{ (yyval.t) = P_LOAD; }
break;
case 95:
-#line 1227 "compilers/imcc/imcc.y"
+#line 1229 "compilers/imcc/imcc.y"
{ (yyval.t) = P_INIT; }
break;
case 96:
-#line 1228 "compilers/imcc/imcc.y"
+#line 1230 "compilers/imcc/imcc.y"
{ (yyval.t) = P_MAIN; }
break;
case 97:
-#line 1229 "compilers/imcc/imcc.y"
+#line 1231 "compilers/imcc/imcc.y"
{ (yyval.t) = P_IMMEDIATE; }
break;
case 98:
-#line 1230 "compilers/imcc/imcc.y"
+#line 1232 "compilers/imcc/imcc.y"
{ (yyval.t) = P_POSTCOMP; }
break;
case 99:
-#line 1231 "compilers/imcc/imcc.y"
+#line 1233 "compilers/imcc/imcc.y"
{ (yyval.t) = P_ANON; }
break;
case 100:
-#line 1232 "compilers/imcc/imcc.y"
+#line 1234 "compilers/imcc/imcc.y"
{ (yyval.t) = P_NEED_LEX; }
break;
case 108:
-#line 1244 "compilers/imcc/imcc.y"
+#line 1246 "compilers/imcc/imcc.y"
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (5)].sr));
add_pcc_cc(IMCC_INFO(interp)->cur_call, (yyvsp[(4) - (5)].sr));
@@ -3532,14 +3534,14 @@
break;
case 109:
-#line 1249 "compilers/imcc/imcc.y"
+#line 1251 "compilers/imcc/imcc.y"
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
}
break;
case 110:
-#line 1253 "compilers/imcc/imcc.y"
+#line 1255 "compilers/imcc/imcc.y"
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
IMCC_INFO(interp)->cur_call->pcc_sub->flags |= isNCI;
@@ -3547,21 +3549,21 @@
break;
case 111:
-#line 1258 "compilers/imcc/imcc.y"
+#line 1260 "compilers/imcc/imcc.y"
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
}
break;
case 112:
-#line 1262 "compilers/imcc/imcc.y"
+#line 1264 "compilers/imcc/imcc.y"
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, mk_const(interp, (yyvsp[(2) - (3)].s), 'S'));
}
break;
case 113:
-#line 1266 "compilers/imcc/imcc.y"
+#line 1268 "compilers/imcc/imcc.y"
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (5)].sr));
add_pcc_cc(IMCC_INFO(interp)->cur_call, (yyvsp[(4) - (5)].sr));
@@ -3569,7 +3571,7 @@
break;
case 114:
-#line 1271 "compilers/imcc/imcc.y"
+#line 1273 "compilers/imcc/imcc.y"
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, mk_const(interp, (yyvsp[(2) - (5)].s), 'S'));
add_pcc_cc(IMCC_INFO(interp)->cur_call, (yyvsp[(4) - (5)].sr));
@@ -3577,27 +3579,27 @@
break;
case 115:
-#line 1279 "compilers/imcc/imcc.y"
+#line 1281 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 116:
-#line 1280 "compilers/imcc/imcc.y"
+#line 1282 "compilers/imcc/imcc.y"
{ add_pcc_arg(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr)); }
break;
case 117:
-#line 1284 "compilers/imcc/imcc.y"
+#line 1286 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(2) - (2)].sr); }
break;
case 118:
-#line 1289 "compilers/imcc/imcc.y"
+#line 1291 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 119:
-#line 1291 "compilers/imcc/imcc.y"
+#line 1293 "compilers/imcc/imcc.y"
{
if ((yyvsp[(2) - (3)].sr))
add_pcc_result(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
@@ -3605,17 +3607,17 @@
break;
case 120:
-#line 1298 "compilers/imcc/imcc.y"
+#line 1300 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); }
break;
case 121:
-#line 1299 "compilers/imcc/imcc.y"
+#line 1301 "compilers/imcc/imcc.y"
{ is_def=1; }
break;
case 122:
-#line 1300 "compilers/imcc/imcc.y"
+#line 1302 "compilers/imcc/imcc.y"
{
IdList *l = (yyvsp[(4) - (4)].idlist);
SymReg *ignored;
@@ -3630,57 +3632,57 @@
break;
case 123:
-#line 1314 "compilers/imcc/imcc.y"
+#line 1316 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 124:
-#line 1315 "compilers/imcc/imcc.y"
+#line 1317 "compilers/imcc/imcc.y"
{ (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); }
break;
case 125:
-#line 1319 "compilers/imcc/imcc.y"
+#line 1321 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_FLAT; }
break;
case 126:
-#line 1320 "compilers/imcc/imcc.y"
+#line 1322 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_OPTIONAL; }
break;
case 127:
-#line 1321 "compilers/imcc/imcc.y"
+#line 1323 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_OPT_FLAG; }
break;
case 128:
-#line 1322 "compilers/imcc/imcc.y"
+#line 1324 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_NAMED; }
break;
case 129:
-#line 1323 "compilers/imcc/imcc.y"
+#line 1325 "compilers/imcc/imcc.y"
{ adv_named_set(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; }
break;
case 130:
-#line 1324 "compilers/imcc/imcc.y"
+#line 1326 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_UNIQUE_REG; }
break;
case 131:
-#line 1329 "compilers/imcc/imcc.y"
+#line 1331 "compilers/imcc/imcc.y"
{ begin_return_or_yield(interp, 0); }
break;
case 132:
-#line 1331 "compilers/imcc/imcc.y"
+#line 1333 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; IMCC_INFO(interp)->asm_state = AsmDefault; }
break;
case 133:
-#line 1333 "compilers/imcc/imcc.y"
+#line 1335 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->asm_state = AsmDefault;
(yyval.i) = 0;
@@ -3688,22 +3690,22 @@
break;
case 134:
-#line 1340 "compilers/imcc/imcc.y"
+#line 1342 "compilers/imcc/imcc.y"
{ begin_return_or_yield(interp, 1); }
break;
case 135:
-#line 1342 "compilers/imcc/imcc.y"
+#line 1344 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; IMCC_INFO(interp)->asm_state = AsmDefault; }
break;
case 136:
-#line 1346 "compilers/imcc/imcc.y"
+#line 1348 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 137:
-#line 1348 "compilers/imcc/imcc.y"
+#line 1350 "compilers/imcc/imcc.y"
{
if ((yyvsp[(1) - (2)].sr))
add_pcc_result(IMCC_INFO(interp)->sr_return, (yyvsp[(1) - (2)].sr));
@@ -3711,7 +3713,7 @@
break;
case 138:
-#line 1353 "compilers/imcc/imcc.y"
+#line 1355 "compilers/imcc/imcc.y"
{
if ((yyvsp[(2) - (3)].sr))
add_pcc_result(IMCC_INFO(interp)->sr_return, (yyvsp[(2) - (3)].sr));
@@ -3719,12 +3721,12 @@
break;
case 139:
-#line 1360 "compilers/imcc/imcc.y"
+#line 1362 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 140:
-#line 1362 "compilers/imcc/imcc.y"
+#line 1364 "compilers/imcc/imcc.y"
{
if ((yyvsp[(1) - (2)].sr))
add_pcc_result(IMCC_INFO(interp)->sr_return, (yyvsp[(1) - (2)].sr));
@@ -3732,7 +3734,7 @@
break;
case 141:
-#line 1367 "compilers/imcc/imcc.y"
+#line 1369 "compilers/imcc/imcc.y"
{
if ((yyvsp[(2) - (3)].sr))
add_pcc_result(IMCC_INFO(interp)->sr_return, (yyvsp[(2) - (3)].sr));
@@ -3740,17 +3742,17 @@
break;
case 142:
-#line 1374 "compilers/imcc/imcc.y"
+#line 1376 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); }
break;
case 143:
-#line 1378 "compilers/imcc/imcc.y"
+#line 1380 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); }
break;
case 144:
-#line 1383 "compilers/imcc/imcc.y"
+#line 1385 "compilers/imcc/imcc.y"
{
if (IMCC_INFO(interp)->asm_state == AsmDefault)
begin_return_or_yield(interp, (yyvsp[(1) - (2)].t));
@@ -3758,7 +3760,7 @@
break;
case 145:
-#line 1388 "compilers/imcc/imcc.y"
+#line 1390 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->asm_state = AsmDefault;
(yyval.t) = 0;
@@ -3766,22 +3768,22 @@
break;
case 146:
-#line 1395 "compilers/imcc/imcc.y"
+#line 1397 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 147:
-#line 1396 "compilers/imcc/imcc.y"
+#line 1398 "compilers/imcc/imcc.y"
{ (yyval.t) = 1; }
break;
case 148:
-#line 1400 "compilers/imcc/imcc.y"
+#line 1402 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 149:
-#line 1402 "compilers/imcc/imcc.y"
+#line 1404 "compilers/imcc/imcc.y"
{
if (IMCC_INFO(interp)->adv_named_id) {
add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return,
@@ -3794,14 +3796,14 @@
break;
case 150:
-#line 1412 "compilers/imcc/imcc.y"
+#line 1414 "compilers/imcc/imcc.y"
{
add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return, (yyvsp[(1) - (3)].s), (yyvsp[(3) - (3)].sr));
}
break;
case 151:
-#line 1416 "compilers/imcc/imcc.y"
+#line 1418 "compilers/imcc/imcc.y"
{
if (IMCC_INFO(interp)->adv_named_id) {
add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return,
@@ -3814,61 +3816,61 @@
break;
case 152:
-#line 1426 "compilers/imcc/imcc.y"
+#line 1428 "compilers/imcc/imcc.y"
{
add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return, (yyvsp[(3) - (5)].s), (yyvsp[(5) - (5)].sr));
}
break;
case 155:
-#line 1446 "compilers/imcc/imcc.y"
+#line 1448 "compilers/imcc/imcc.y"
{ clear_state(interp); }
break;
case 156:
-#line 1451 "compilers/imcc/imcc.y"
+#line 1453 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(2) - (2)].i); }
break;
case 157:
-#line 1452 "compilers/imcc/imcc.y"
+#line 1454 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 158:
-#line 1453 "compilers/imcc/imcc.y"
+#line 1455 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 159:
-#line 1454 "compilers/imcc/imcc.y"
+#line 1456 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 160:
-#line 1455 "compilers/imcc/imcc.y"
+#line 1457 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 161:
-#line 1459 "compilers/imcc/imcc.y"
+#line 1461 "compilers/imcc/imcc.y"
{ (yyval.i) = NULL; }
break;
case 165:
-#line 1470 "compilers/imcc/imcc.y"
+#line 1472 "compilers/imcc/imcc.y"
{
(yyval.i) = iLABEL(interp, IMCC_INFO(interp)->cur_unit, mk_local_label(interp, (yyvsp[(1) - (1)].s)));
}
break;
case 166:
-#line 1478 "compilers/imcc/imcc.y"
+#line 1480 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(2) - (3)].i); }
break;
case 167:
-#line 1480 "compilers/imcc/imcc.y"
+#line 1482 "compilers/imcc/imcc.y"
{
if (yynerrs >= PARROT_MAX_RECOVER_ERRORS) {
IMCC_warning(interp, "Too many errors. Correct some first.\n");
@@ -3879,7 +3881,7 @@
break;
case 168:
-#line 1491 "compilers/imcc/imcc.y"
+#line 1493 "compilers/imcc/imcc.y"
{
IdList* l = (yyvsp[(1) - (1)].idlist);
l->next = NULL;
@@ -3888,7 +3890,7 @@
break;
case 169:
-#line 1498 "compilers/imcc/imcc.y"
+#line 1500 "compilers/imcc/imcc.y"
{
IdList* l = (yyvsp[(3) - (3)].idlist);
l->next = (yyvsp[(1) - (3)].idlist);
@@ -3897,7 +3899,7 @@
break;
case 170:
-#line 1507 "compilers/imcc/imcc.y"
+#line 1509 "compilers/imcc/imcc.y"
{
IdList* const l = mem_allocate_n_zeroed_typed(1, IdList);
l->id = (yyvsp[(1) - (2)].s);
@@ -3907,32 +3909,32 @@
break;
case 171:
-#line 1516 "compilers/imcc/imcc.y"
+#line 1518 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 172:
-#line 1517 "compilers/imcc/imcc.y"
+#line 1519 "compilers/imcc/imcc.y"
{ (yyval.t) = 1; }
break;
case 175:
-#line 1524 "compilers/imcc/imcc.y"
+#line 1526 "compilers/imcc/imcc.y"
{ push_namespace(interp, (yyvsp[(2) - (2)].s)); mem_sys_free((yyvsp[(2) - (2)].s)); }
break;
case 176:
-#line 1525 "compilers/imcc/imcc.y"
+#line 1527 "compilers/imcc/imcc.y"
{ pop_namespace(interp, (yyvsp[(2) - (2)].s)); mem_sys_free((yyvsp[(2) - (2)].s)); }
break;
case 177:
-#line 1526 "compilers/imcc/imcc.y"
+#line 1528 "compilers/imcc/imcc.y"
{ is_def=1; }
break;
case 178:
-#line 1527 "compilers/imcc/imcc.y"
+#line 1529 "compilers/imcc/imcc.y"
{
IdList *l = (yyvsp[(4) - (4)].idlist);
while (l) {
@@ -3951,19 +3953,19 @@
break;
case 179:
-#line 1543 "compilers/imcc/imcc.y"
+#line 1545 "compilers/imcc/imcc.y"
{
set_lexical(interp, (yyvsp[(4) - (4)].sr), (yyvsp[(2) - (4)].s)); (yyval.i) = 0;
}
break;
case 180:
-#line 1546 "compilers/imcc/imcc.y"
+#line 1548 "compilers/imcc/imcc.y"
{ is_def=1; }
break;
case 181:
-#line 1547 "compilers/imcc/imcc.y"
+#line 1549 "compilers/imcc/imcc.y"
{
mk_const_ident(interp, (yyvsp[(4) - (6)].s), (yyvsp[(3) - (6)].t), (yyvsp[(6) - (6)].sr), 0);
is_def=0;
@@ -3972,12 +3974,12 @@
break;
case 183:
-#line 1554 "compilers/imcc/imcc.y"
+#line 1556 "compilers/imcc/imcc.y"
{ is_def=1; }
break;
case 184:
-#line 1555 "compilers/imcc/imcc.y"
+#line 1557 "compilers/imcc/imcc.y"
{
mk_const_ident(interp, (yyvsp[(4) - (6)].s), (yyvsp[(3) - (6)].t), (yyvsp[(6) - (6)].sr), 1);
is_def=0;
@@ -3986,7 +3988,7 @@
break;
case 185:
-#line 1561 "compilers/imcc/imcc.y"
+#line 1563 "compilers/imcc/imcc.y"
{
(yyval.i) = NULL;
IMCC_INFO(interp)->cur_call->pcc_sub->flags |= isTAIL_CALL;
@@ -3995,12 +3997,12 @@
break;
case 186:
-#line 1566 "compilers/imcc/imcc.y"
+#line 1568 "compilers/imcc/imcc.y"
{ (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "branch", 1, (yyvsp[(2) - (2)].sr)); }
break;
case 187:
-#line 1568 "compilers/imcc/imcc.y"
+#line 1570 "compilers/imcc/imcc.y"
{
(yyval.i) = INS(interp,
IMCC_INFO(interp)->cur_unit,
@@ -4015,47 +4017,47 @@
break;
case 188:
-#line 1579 "compilers/imcc/imcc.y"
+#line 1581 "compilers/imcc/imcc.y"
{ (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(2) - (2)].sr)); }
break;
case 189:
-#line 1580 "compilers/imcc/imcc.y"
+#line 1582 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; }
break;
case 190:
-#line 1581 "compilers/imcc/imcc.y"
+#line 1583 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 193:
-#line 1584 "compilers/imcc/imcc.y"
+#line 1586 "compilers/imcc/imcc.y"
{ (yyval.i) = 0;}
break;
case 194:
-#line 1588 "compilers/imcc/imcc.y"
+#line 1590 "compilers/imcc/imcc.y"
{ (yyval.t) = 'I'; }
break;
case 195:
-#line 1589 "compilers/imcc/imcc.y"
+#line 1591 "compilers/imcc/imcc.y"
{ (yyval.t) = 'N'; }
break;
case 196:
-#line 1590 "compilers/imcc/imcc.y"
+#line 1592 "compilers/imcc/imcc.y"
{ (yyval.t) = 'S'; }
break;
case 197:
-#line 1591 "compilers/imcc/imcc.y"
+#line 1593 "compilers/imcc/imcc.y"
{ (yyval.t) = 'P'; }
break;
case 198:
-#line 1596 "compilers/imcc/imcc.y"
+#line 1598 "compilers/imcc/imcc.y"
{
/* there'd normally be a str_dup() here, but the lexer already
* copied the string, so it's safe to use directly */
@@ -4068,97 +4070,97 @@
break;
case 199:
-#line 1609 "compilers/imcc/imcc.y"
+#line 1611 "compilers/imcc/imcc.y"
{ (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "set", 2, (yyvsp[(1) - (3)].sr), (yyvsp[(3) - (3)].sr)); }
break;
case 200:
-#line 1611 "compilers/imcc/imcc.y"
+#line 1613 "compilers/imcc/imcc.y"
{ (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (4)].s), 2, (yyvsp[(1) - (4)].sr), (yyvsp[(4) - (4)].sr)); }
break;
case 201:
-#line 1613 "compilers/imcc/imcc.y"
+#line 1615 "compilers/imcc/imcc.y"
{ (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(4) - (5)].s), 3, (yyvsp[(1) - (5)].sr), (yyvsp[(3) - (5)].sr), (yyvsp[(5) - (5)].sr)); }
break;
case 202:
-#line 1615 "compilers/imcc/imcc.y"
+#line 1617 "compilers/imcc/imcc.y"
{ (yyval.i) = iINDEXFETCH(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (6)].sr), (yyvsp[(3) - (6)].sr), (yyvsp[(5) - (6)].sr)); }
break;
case 203:
-#line 1617 "compilers/imcc/imcc.y"
+#line 1619 "compilers/imcc/imcc.y"
{ (yyval.i) = iINDEXSET(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (6)].sr), (yyvsp[(3) - (6)].sr), (yyvsp[(6) - (6)].sr)); }
break;
case 204:
-#line 1619 "compilers/imcc/imcc.y"
+#line 1621 "compilers/imcc/imcc.y"
{ (yyval.i) = iNEW(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (6)].sr), (yyvsp[(4) - (6)].s), (yyvsp[(6) - (6)].sr), 1); }
break;
case 205:
-#line 1621 "compilers/imcc/imcc.y"
+#line 1623 "compilers/imcc/imcc.y"
{ (yyval.i) = iNEW(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (7)].sr), (yyvsp[(4) - (7)].s), (yyvsp[(6) - (7)].sr), 1); }
break;
case 206:
-#line 1623 "compilers/imcc/imcc.y"
+#line 1625 "compilers/imcc/imcc.y"
{ (yyval.i) = iNEW(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (4)].sr), (yyvsp[(4) - (4)].s), NULL, 1); }
break;
case 207:
-#line 1625 "compilers/imcc/imcc.y"
+#line 1627 "compilers/imcc/imcc.y"
{ (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "new", 2, (yyvsp[(1) - (4)].sr), (yyvsp[(4) - (4)].sr)); }
break;
case 208:
-#line 1627 "compilers/imcc/imcc.y"
+#line 1629 "compilers/imcc/imcc.y"
{ (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "new", 2, (yyvsp[(1) - (4)].sr), (yyvsp[(4) - (4)].sr)); }
break;
case 209:
-#line 1629 "compilers/imcc/imcc.y"
+#line 1631 "compilers/imcc/imcc.y"
{ (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "new", 3, (yyvsp[(1) - (6)].sr), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].sr)); }
break;
case 210:
-#line 1631 "compilers/imcc/imcc.y"
+#line 1633 "compilers/imcc/imcc.y"
{ (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "new", 3, (yyvsp[(1) - (6)].sr), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].sr)); }
break;
case 211:
-#line 1633 "compilers/imcc/imcc.y"
+#line 1635 "compilers/imcc/imcc.y"
{ (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "new", 3, (yyvsp[(1) - (7)].sr), (yyvsp[(4) - (7)].sr), (yyvsp[(6) - (7)].sr)); }
break;
case 212:
-#line 1635 "compilers/imcc/imcc.y"
+#line 1637 "compilers/imcc/imcc.y"
{ (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "find_global", 2, (yyvsp[(1) - (4)].sr), (yyvsp[(4) - (4)].sr));}
break;
case 213:
-#line 1637 "compilers/imcc/imcc.y"
+#line 1639 "compilers/imcc/imcc.y"
{ (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "store_global", 2, (yyvsp[(2) - (4)].sr), (yyvsp[(4) - (4)].sr)); }
break;
case 214:
-#line 1641 "compilers/imcc/imcc.y"
+#line 1643 "compilers/imcc/imcc.y"
{ (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "new", 2, (yyvsp[(2) - (4)].sr), (yyvsp[(4) - (4)].sr)); }
break;
case 215:
-#line 1643 "compilers/imcc/imcc.y"
+#line 1645 "compilers/imcc/imcc.y"
{ (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "new", 3, (yyvsp[(2) - (6)].sr), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].sr)); }
break;
case 216:
-#line 1645 "compilers/imcc/imcc.y"
+#line 1647 "compilers/imcc/imcc.y"
{ (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "new", 3, (yyvsp[(2) - (7)].sr), (yyvsp[(4) - (7)].sr), (yyvsp[(6) - (7)].sr)); }
break;
case 217:
-#line 1648 "compilers/imcc/imcc.y"
+#line 1650 "compilers/imcc/imcc.y"
{
add_pcc_result((yyvsp[(3) - (3)].i)->symregs[0], (yyvsp[(1) - (3)].sr));
IMCC_INFO(interp)->cur_call = NULL;
@@ -4167,14 +4169,14 @@
break;
case 218:
-#line 1654 "compilers/imcc/imcc.y"
+#line 1656 "compilers/imcc/imcc.y"
{
(yyval.i) = IMCC_create_itcall_label(interp);
}
break;
case 219:
-#line 1658 "compilers/imcc/imcc.y"
+#line 1660 "compilers/imcc/imcc.y"
{
IMCC_itcall_sub(interp, (yyvsp[(6) - (9)].sr));
IMCC_INFO(interp)->cur_call = NULL;
@@ -4182,144 +4184,144 @@
break;
case 223:
-#line 1666 "compilers/imcc/imcc.y"
+#line 1668 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(1) - (3)].sr));
}
break;
case 224:
-#line 1673 "compilers/imcc/imcc.y"
+#line 1675 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"not"; }
break;
case 225:
-#line 1674 "compilers/imcc/imcc.y"
+#line 1676 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"bnot"; }
break;
case 226:
-#line 1675 "compilers/imcc/imcc.y"
+#line 1677 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"neg"; }
break;
case 227:
-#line 1679 "compilers/imcc/imcc.y"
+#line 1681 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"sub"; }
break;
case 228:
-#line 1680 "compilers/imcc/imcc.y"
+#line 1682 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"add"; }
break;
case 229:
-#line 1681 "compilers/imcc/imcc.y"
+#line 1683 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"mul"; }
break;
case 230:
-#line 1682 "compilers/imcc/imcc.y"
+#line 1684 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"div"; }
break;
case 231:
-#line 1683 "compilers/imcc/imcc.y"
+#line 1685 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"mod"; }
break;
case 232:
-#line 1684 "compilers/imcc/imcc.y"
+#line 1686 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"fdiv"; }
break;
case 233:
-#line 1685 "compilers/imcc/imcc.y"
+#line 1687 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"pow"; }
break;
case 234:
-#line 1686 "compilers/imcc/imcc.y"
+#line 1688 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"concat"; }
break;
case 235:
-#line 1687 "compilers/imcc/imcc.y"
+#line 1689 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"iseq"; }
break;
case 236:
-#line 1688 "compilers/imcc/imcc.y"
+#line 1690 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"isne"; }
break;
case 237:
-#line 1689 "compilers/imcc/imcc.y"
+#line 1691 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"isgt"; }
break;
case 238:
-#line 1690 "compilers/imcc/imcc.y"
+#line 1692 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"isge"; }
break;
case 239:
-#line 1691 "compilers/imcc/imcc.y"
+#line 1693 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"islt"; }
break;
case 240:
-#line 1692 "compilers/imcc/imcc.y"
+#line 1694 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"isle"; }
break;
case 241:
-#line 1693 "compilers/imcc/imcc.y"
+#line 1695 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"shl"; }
break;
case 242:
-#line 1694 "compilers/imcc/imcc.y"
+#line 1696 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"shr"; }
break;
case 243:
-#line 1695 "compilers/imcc/imcc.y"
+#line 1697 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"lsr"; }
break;
case 244:
-#line 1696 "compilers/imcc/imcc.y"
+#line 1698 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"and"; }
break;
case 245:
-#line 1697 "compilers/imcc/imcc.y"
+#line 1699 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"or"; }
break;
case 246:
-#line 1698 "compilers/imcc/imcc.y"
+#line 1700 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"xor"; }
break;
case 247:
-#line 1699 "compilers/imcc/imcc.y"
+#line 1701 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"band"; }
break;
case 248:
-#line 1700 "compilers/imcc/imcc.y"
+#line 1702 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"bor"; }
break;
case 249:
-#line 1701 "compilers/imcc/imcc.y"
+#line 1703 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"bxor"; }
break;
case 250:
-#line 1707 "compilers/imcc/imcc.y"
+#line 1709 "compilers/imcc/imcc.y"
{
(yyval.i) = IMCC_create_itcall_label(interp);
(yyval.i)->type &= ~ITCALL;
@@ -4328,84 +4330,84 @@
break;
case 251:
-#line 1712 "compilers/imcc/imcc.y"
+#line 1714 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 252:
-#line 1719 "compilers/imcc/imcc.y"
+#line 1721 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(2) - (3)].s), 2, (yyvsp[(1) - (3)].sr), (yyvsp[(3) - (3)].sr));
}
break;
case 253:
-#line 1725 "compilers/imcc/imcc.y"
+#line 1727 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"add"; }
break;
case 254:
-#line 1726 "compilers/imcc/imcc.y"
+#line 1728 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"sub"; }
break;
case 255:
-#line 1727 "compilers/imcc/imcc.y"
+#line 1729 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"mul"; }
break;
case 256:
-#line 1728 "compilers/imcc/imcc.y"
+#line 1730 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"div"; }
break;
case 257:
-#line 1729 "compilers/imcc/imcc.y"
+#line 1731 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"mod"; }
break;
case 258:
-#line 1730 "compilers/imcc/imcc.y"
+#line 1732 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"fdiv"; }
break;
case 259:
-#line 1731 "compilers/imcc/imcc.y"
+#line 1733 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"concat"; }
break;
case 260:
-#line 1732 "compilers/imcc/imcc.y"
+#line 1734 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"band"; }
break;
case 261:
-#line 1733 "compilers/imcc/imcc.y"
+#line 1735 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"bor"; }
break;
case 262:
-#line 1734 "compilers/imcc/imcc.y"
+#line 1736 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"bxor"; }
break;
case 263:
-#line 1735 "compilers/imcc/imcc.y"
+#line 1737 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"shr"; }
break;
case 264:
-#line 1736 "compilers/imcc/imcc.y"
+#line 1738 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"shl"; }
break;
case 265:
-#line 1737 "compilers/imcc/imcc.y"
+#line 1739 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"lsr"; }
break;
case 266:
-#line 1743 "compilers/imcc/imcc.y"
+#line 1745 "compilers/imcc/imcc.y"
{
(yyval.i) = func_ins(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (4)].sr), (yyvsp[(3) - (4)].s),
IMCC_INFO(interp) -> regs,
@@ -4416,22 +4418,22 @@
break;
case 267:
-#line 1753 "compilers/imcc/imcc.y"
+#line 1755 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 268:
-#line 1754 "compilers/imcc/imcc.y"
+#line 1756 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address_fromc(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 269:
-#line 1755 "compilers/imcc/imcc.y"
+#line 1757 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address_u(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 270:
-#line 1757 "compilers/imcc/imcc.y"
+#line 1759 "compilers/imcc/imcc.y"
{
(yyval.sr) = (yyvsp[(1) - (1)].sr);
if ((yyvsp[(1) - (1)].sr)->set != 'P')
@@ -4440,7 +4442,7 @@
break;
case 271:
-#line 1763 "compilers/imcc/imcc.y"
+#line 1765 "compilers/imcc/imcc.y"
{
/* disallow bareword method names; SREG name constants are fine */
char *name = (yyvsp[(3) - (3)].sr)->name;
@@ -4455,7 +4457,7 @@
break;
case 272:
-#line 1775 "compilers/imcc/imcc.y"
+#line 1777 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr);
(yyval.sr) = mk_const(interp, (yyvsp[(3) - (3)].s), 'S');
@@ -4464,12 +4466,12 @@
break;
case 273:
-#line 1780 "compilers/imcc/imcc.y"
+#line 1782 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr); (yyval.sr) = (yyvsp[(3) - (3)].sr); }
break;
case 274:
-#line 1786 "compilers/imcc/imcc.y"
+#line 1788 "compilers/imcc/imcc.y"
{
(yyval.i) = IMCC_create_itcall_label(interp);
IMCC_itcall_sub(interp, (yyvsp[(1) - (1)].sr));
@@ -4477,17 +4479,17 @@
break;
case 275:
-#line 1790 "compilers/imcc/imcc.y"
+#line 1792 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(2) - (5)].i); }
break;
case 276:
-#line 1794 "compilers/imcc/imcc.y"
+#line 1796 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 277:
-#line 1796 "compilers/imcc/imcc.y"
+#line 1798 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
if (IMCC_INFO(interp)->adv_named_id) {
@@ -4500,7 +4502,7 @@
break;
case 278:
-#line 1806 "compilers/imcc/imcc.y"
+#line 1808 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
if (IMCC_INFO(interp)->adv_named_id) {
@@ -4513,7 +4515,7 @@
break;
case 279:
-#line 1816 "compilers/imcc/imcc.y"
+#line 1818 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
add_pcc_named_arg(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(3) - (5)].s), (yyvsp[(5) - (5)].sr));
@@ -4522,7 +4524,7 @@
break;
case 280:
-#line 1822 "compilers/imcc/imcc.y"
+#line 1824 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
add_pcc_named_arg(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(1) - (3)].s), (yyvsp[(3) - (3)].sr));
@@ -4531,42 +4533,42 @@
break;
case 281:
-#line 1830 "compilers/imcc/imcc.y"
+#line 1832 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(1) - (2)].sr); (yyval.sr)->type |= (yyvsp[(2) - (2)].t); }
break;
case 282:
-#line 1834 "compilers/imcc/imcc.y"
+#line 1836 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 283:
-#line 1835 "compilers/imcc/imcc.y"
+#line 1837 "compilers/imcc/imcc.y"
{ (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); }
break;
case 284:
-#line 1839 "compilers/imcc/imcc.y"
+#line 1841 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_FLAT; }
break;
case 285:
-#line 1840 "compilers/imcc/imcc.y"
+#line 1842 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_NAMED; }
break;
case 286:
-#line 1843 "compilers/imcc/imcc.y"
+#line 1845 "compilers/imcc/imcc.y"
{ adv_named_set(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; }
break;
case 287:
-#line 1847 "compilers/imcc/imcc.y"
+#line 1849 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(1) - (2)].sr); (yyval.sr)->type |= (yyvsp[(2) - (2)].t); }
break;
case 288:
-#line 1852 "compilers/imcc/imcc.y"
+#line 1854 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
if (IMCC_INFO(interp)->adv_named_id) {
@@ -4579,7 +4581,7 @@
break;
case 289:
-#line 1862 "compilers/imcc/imcc.y"
+#line 1864 "compilers/imcc/imcc.y"
{
add_pcc_named_result(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(3) - (5)].s), (yyvsp[(5) - (5)].sr));
mem_sys_free((yyvsp[(3) - (5)].s));
@@ -4587,7 +4589,7 @@
break;
case 290:
-#line 1867 "compilers/imcc/imcc.y"
+#line 1869 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
if (IMCC_INFO(interp)->adv_named_id) {
@@ -4600,7 +4602,7 @@
break;
case 291:
-#line 1877 "compilers/imcc/imcc.y"
+#line 1879 "compilers/imcc/imcc.y"
{
add_pcc_named_result(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(1) - (3)].s), (yyvsp[(3) - (3)].sr));
mem_sys_free((yyvsp[(1) - (3)].s));
@@ -4608,124 +4610,124 @@
break;
case 292:
-#line 1881 "compilers/imcc/imcc.y"
+#line 1883 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 293:
-#line 1885 "compilers/imcc/imcc.y"
+#line 1887 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
case 294:
-#line 1886 "compilers/imcc/imcc.y"
+#line 1888 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
case 295:
-#line 1891 "compilers/imcc/imcc.y"
+#line 1893 "compilers/imcc/imcc.y"
{
(yyval.i) =MK_I(interp, IMCC_INFO(interp)->cur_unit, inv_op((yyvsp[(3) - (6)].s)), 3, (yyvsp[(2) - (6)].sr), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].sr));
}
break;
case 296:
-#line 1895 "compilers/imcc/imcc.y"
+#line 1897 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "unless_null", 2, (yyvsp[(3) - (5)].sr), (yyvsp[(5) - (5)].sr));
}
break;
case 297:
-#line 1899 "compilers/imcc/imcc.y"
+#line 1901 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "unless", 2, (yyvsp[(2) - (4)].sr), (yyvsp[(4) - (4)].sr));
}
break;
case 298:
-#line 1906 "compilers/imcc/imcc.y"
+#line 1908 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "if", 2, (yyvsp[(2) - (4)].sr), (yyvsp[(4) - (4)].sr));
}
break;
case 299:
-#line 1910 "compilers/imcc/imcc.y"
+#line 1912 "compilers/imcc/imcc.y"
{
(yyval.i) =MK_I(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (6)].s), 3, (yyvsp[(2) - (6)].sr), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].sr));
}
break;
case 300:
-#line 1914 "compilers/imcc/imcc.y"
+#line 1916 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "if_null", 2, (yyvsp[(3) - (5)].sr), (yyvsp[(5) - (5)].sr));
}
break;
case 301:
-#line 1920 "compilers/imcc/imcc.y"
+#line 1922 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 302:
-#line 1921 "compilers/imcc/imcc.y"
+#line 1923 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 303:
-#line 1925 "compilers/imcc/imcc.y"
+#line 1927 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"eq"; }
break;
case 304:
-#line 1926 "compilers/imcc/imcc.y"
+#line 1928 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"ne"; }
break;
case 305:
-#line 1927 "compilers/imcc/imcc.y"
+#line 1929 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"gt"; }
break;
case 306:
-#line 1928 "compilers/imcc/imcc.y"
+#line 1930 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"ge"; }
break;
case 307:
-#line 1929 "compilers/imcc/imcc.y"
+#line 1931 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"lt"; }
break;
case 308:
-#line 1930 "compilers/imcc/imcc.y"
+#line 1932 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"le"; }
break;
case 311:
-#line 1939 "compilers/imcc/imcc.y"
+#line 1941 "compilers/imcc/imcc.y"
{ (yyval.sr) = NULL; }
break;
case 312:
-#line 1940 "compilers/imcc/imcc.y"
+#line 1942 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(1) - (1)].sr); }
break;
case 313:
-#line 1944 "compilers/imcc/imcc.y"
+#line 1946 "compilers/imcc/imcc.y"
{ (yyval.sr) = IMCC_INFO(interp)->regs[0]; }
break;
case 315:
-#line 1949 "compilers/imcc/imcc.y"
+#line 1951 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(1) - (1)].sr); }
break;
case 316:
-#line 1951 "compilers/imcc/imcc.y"
+#line 1953 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp) -> regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(1) - (4)].sr);
IMCC_INFO(interp) -> keyvec |= KEY_BIT(IMCC_INFO(interp)->nargs);
@@ -4735,7 +4737,7 @@
break;
case 317:
-#line 1958 "compilers/imcc/imcc.y"
+#line 1960 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp) -> regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(2) - (3)].sr);
(yyval.sr) = (yyvsp[(2) - (3)].sr);
@@ -4743,37 +4745,37 @@
break;
case 319:
-#line 1965 "compilers/imcc/imcc.y"
+#line 1967 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address_fromc(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 320:
-#line 1966 "compilers/imcc/imcc.y"
+#line 1968 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address_u(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 321:
-#line 1970 "compilers/imcc/imcc.y"
+#line 1972 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 322:
-#line 1971 "compilers/imcc/imcc.y"
+#line 1973 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 323:
-#line 1975 "compilers/imcc/imcc.y"
+#line 1977 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_label_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 324:
-#line 1976 "compilers/imcc/imcc.y"
+#line 1978 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_label_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 329:
-#line 1990 "compilers/imcc/imcc.y"
+#line 1992 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->nkeys = 0;
IMCC_INFO(interp)->in_slice = 0;
@@ -4781,7 +4783,7 @@
break;
case 330:
-#line 1995 "compilers/imcc/imcc.y"
+#line 1997 "compilers/imcc/imcc.y"
{
(yyval.sr) = link_keys(interp,
IMCC_INFO(interp)->nkeys,
@@ -4790,7 +4792,7 @@
break;
case 331:
-#line 2003 "compilers/imcc/imcc.y"
+#line 2005 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->nkeys = 0;
IMCC_INFO(interp)->in_slice = 0;
@@ -4798,7 +4800,7 @@
break;
case 332:
-#line 2008 "compilers/imcc/imcc.y"
+#line 2010 "compilers/imcc/imcc.y"
{
(yyval.sr) = link_keys(interp,
IMCC_INFO(interp)->nkeys,
@@ -4807,12 +4809,12 @@
break;
case 333:
-#line 2016 "compilers/imcc/imcc.y"
+#line 2018 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(1) - (1)].sr); }
break;
case 334:
-#line 2018 "compilers/imcc/imcc.y"
+#line 2020 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(3) - (3)].sr);
(yyval.sr) = IMCC_INFO(interp)->keys[0];
@@ -4820,12 +4822,12 @@
break;
case 335:
-#line 2022 "compilers/imcc/imcc.y"
+#line 2024 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->in_slice = 1; }
break;
case 336:
-#line 2024 "compilers/imcc/imcc.y"
+#line 2026 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(4) - (4)].sr);
(yyval.sr) = IMCC_INFO(interp)->keys[0];
@@ -4833,7 +4835,7 @@
break;
case 337:
-#line 2032 "compilers/imcc/imcc.y"
+#line 2034 "compilers/imcc/imcc.y"
{
if (IMCC_INFO(interp)->in_slice)
(yyvsp[(1) - (1)].sr)->type |= VT_START_SLICE | VT_END_SLICE;
@@ -4842,7 +4844,7 @@
break;
case 338:
-#line 2038 "compilers/imcc/imcc.y"
+#line 2040 "compilers/imcc/imcc.y"
{
(yyvsp[(1) - (3)].sr)->type |= VT_START_SLICE;
(yyvsp[(3) - (3)].sr)->type |= VT_END_SLICE;
@@ -4852,73 +4854,73 @@
break;
case 339:
-#line 2044 "compilers/imcc/imcc.y"
+#line 2046 "compilers/imcc/imcc.y"
{ (yyvsp[(2) - (2)].sr)->type |= VT_START_ZERO | VT_END_SLICE; (yyval.sr) = (yyvsp[(2) - (2)].sr); }
break;
case 340:
-#line 2045 "compilers/imcc/imcc.y"
+#line 2047 "compilers/imcc/imcc.y"
{ (yyvsp[(1) - (2)].sr)->type |= VT_START_SLICE | VT_END_INF; (yyval.sr) = (yyvsp[(1) - (2)].sr); }
break;
case 341:
-#line 2049 "compilers/imcc/imcc.y"
+#line 2051 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'I'); }
break;
case 342:
-#line 2050 "compilers/imcc/imcc.y"
+#line 2052 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'N'); }
break;
case 343:
-#line 2051 "compilers/imcc/imcc.y"
+#line 2053 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'S'); }
break;
case 344:
-#line 2052 "compilers/imcc/imcc.y"
+#line 2054 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'P'); }
break;
case 345:
-#line 2053 "compilers/imcc/imcc.y"
+#line 2055 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_pasm_reg(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 346:
-#line 2057 "compilers/imcc/imcc.y"
+#line 2059 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'I'); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 347:
-#line 2058 "compilers/imcc/imcc.y"
+#line 2060 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'N'); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 348:
-#line 2059 "compilers/imcc/imcc.y"
+#line 2061 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'S'); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 349:
-#line 2060 "compilers/imcc/imcc.y"
+#line 2062 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'U'); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 350:
-#line 2064 "compilers/imcc/imcc.y"
+#line 2066 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'S'); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 351:
-#line 2065 "compilers/imcc/imcc.y"
+#line 2067 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'S'); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
/* Line 1267 of yacc.c. */
-#line 4911 "compilers/imcc/imcparser.c"
+#line 4913 "compilers/imcc/imcparser.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -5132,7 +5134,7 @@
}
-#line 2070 "compilers/imcc/imcc.y"
+#line 2072 "compilers/imcc/imcc.y"
/* I need this prototype somewhere... */
Modified: trunk/compilers/imcc/pbc.c
==============================================================================
--- trunk/compilers/imcc/pbc.c (original)
+++ trunk/compilers/imcc/pbc.c Mon Dec 1 07:08:36 2008
@@ -1160,9 +1160,9 @@
else {
/* trim the quotes */
unit->subid->name = str_dup(unit->subid->name + 1);
-
- /* Otherwise, create string constant for it. */
unit->subid->name[strlen(unit->subid->name) - 1] = 0;
+
+ /* create string constant for it. */
unit->subid->color = add_const_str(interp, unit->subid);
}
Added: trunk/t/compilers/imcc/syn/subflags.t
==============================================================================
--- (empty file)
+++ trunk/t/compilers/imcc/syn/subflags.t Mon Dec 1 07:08:36 2008
@@ -0,0 +1,110 @@
+#!./parrot
+# Copyright (C) 2001-2008, The Perl Foundation.
+# $Id$
+
+=head1 NAME
+
+t/compilers/imcc/syn/subflags.t - test flags on PIR subs
+
+=head1 SYNOPSIS
+
+ % prove t/compilers/imcc/syn/subflags.t
+
+=head1 DESCRIPTION
+
+=cut
+
+.namespace ['FlagTest']
+
+.sub 'main' :main
+ load_bytecode 'library/Test/More.pbc'
+
+ .local pmc exports, curr_namespace, test_namespace
+ curr_namespace = get_namespace
+ test_namespace = get_hll_namespace ['Test';'More']
+ exports = split ' ', 'plan diag ok nok is todo isa_ok'
+ test_namespace.'export_to'(curr_namespace, exports)
+
+ ## set our plan
+ plan(15)
+
+ .local pmc pmcnull
+ null pmcnull
+
+ ## normal (unflagged) subs
+ .const 'Sub' $P0 = 'normal1'
+ isa_ok($P0, 'Sub', "sub found w/.const")
+ $P1 = get_global 'normal1'
+ is_same($P0, $P1, "namespace entry same as const")
+ $S0 = $P1()
+ is($S0, 'normal1', "sub executable from namespace entry")
+ $S0 = 'normal1'()
+ is($S0, 'normal1', "sub executable from name")
+
+ ## :anon subs
+ .const 'Sub' $P10 = 'anon1'
+ isa_ok($P10, 'Sub', ":anon sub found w/.const")
+ $P11 = get_global 'anon1'
+ is_same($P11, pmcnull, ":anon sub not found in namespace")
+ $S0 = $P10()
+ is($S0, 'anon1', ':anon sub executable from .const')
+ $S0 = 'anon1'()
+ is($S0, 'anon1', ':anon sub executable by name')
+
+ ## :nsentry subs
+ .const 'Sub' $P20 = 'nsentry1'
+ isa_ok($P20, 'Sub', ":nsentry found w/.const")
+ $P21 = get_global 'nsentry1'
+ isa_ok($P21, 'Sub', ":nsentry found in namespace")
+ is_same($P20, $P21, ":nsentry in namespace same as const")
+ $S0 = $P21()
+ is($S0, 'nsentry1', "sub executable from nsentry")
+ $S1 = 'nsentry1'()
+ is($S1, 'nsentry1', "sub executable by name")
+
+ ## :method subs
+ .const 'Sub' $P30 = 'method1'
+ isa_ok($P30, 'Sub', ":method sub found w/.const")
+ $P0 = get_global 'method1'
+ todo(0, ":method sub not found in namespace")
+ #is_same($P0, pmcnull, ":method sub not found in namespace")
+.end
+
+
+.sub 'is_same'
+ .param pmc x
+ .param pmc y
+ .param string msg
+ $I0 = issame x, y
+ 'ok'($I0, msg)
+.end
+
+.sub 'isnt_same'
+ .param pmc x
+ .param pmc y
+ .param string msg
+ $I0 = issame x, y
+ 'nok'($I0, msg)
+.end
+
+
+.sub 'normal1'
+ .return ('normal1')
+.end
+
+
+.sub 'anon1' :anon
+ .return ('anon1')
+.end
+
+
+.sub 'nsentry1' :nsentry
+ .return ('nsentry1')
+.end
+
+
+.sub 'method1' :method
+ .return ('method1')
+.end
+
+
-
[svn:parrot] r33421 - in trunk: compilers/imcc t/compilers/imcc/syn
by tewk