[svn:parrot] r37950 - in branches/headercleanup: . compilers/imcc config/gen/makefiles include/parrot src src/interp
chromatic at svn.parrot.org
chromatic at svn.parrot.org
Tue Apr 7 21:01:12 UTC 2009
Author: chromatic
Date: Tue Apr 7 21:01:10 2009
New Revision: 37950
URL: https://trac.parrot.org/parrot/changeset/37950
Log:
Moved the other src/interp_*.c files into src/interp/, updating all references
to them elsewhere (mostly documentation and comments).
Added:
branches/headercleanup/src/interp/inter_cb.c (contents, props changed)
- copied, changed from r37947, branches/headercleanup/src/inter_cb.c
branches/headercleanup/src/interp/inter_create.c (contents, props changed)
- copied, changed from r37949, branches/headercleanup/src/inter_create.c
branches/headercleanup/src/interp/inter_misc.c (contents, props changed)
- copied, changed from r37947, branches/headercleanup/src/inter_misc.c
Deleted:
branches/headercleanup/src/inter_cb.c
branches/headercleanup/src/inter_create.c
branches/headercleanup/src/inter_misc.c
Modified:
branches/headercleanup/MANIFEST
branches/headercleanup/compilers/imcc/imcparser.c
branches/headercleanup/compilers/imcc/imcparser.h
branches/headercleanup/config/gen/makefiles/root.in
branches/headercleanup/include/parrot/interpreter.h
branches/headercleanup/src/interp/interpreter.c
Modified: branches/headercleanup/MANIFEST
==============================================================================
--- branches/headercleanup/MANIFEST Tue Apr 7 18:38:30 2009 (r37949)
+++ branches/headercleanup/MANIFEST Tue Apr 7 21:01:10 2009 (r37950)
@@ -1270,9 +1270,9 @@
src/global_setup.c []
src/hash.c []
src/hll.c []
-src/inter_cb.c []
-src/inter_create.c []
-src/inter_misc.c []
+src/interp/inter_cb.c []
+src/interp/inter_create.c []
+src/interp/inter_misc.c []
src/interp/interp_guts.h []
src/interp/interpreter.c []
src/io/api.c []
Modified: branches/headercleanup/compilers/imcc/imcparser.c
==============================================================================
--- branches/headercleanup/compilers/imcc/imcparser.c Tue Apr 7 18:38:30 2009 (r37949)
+++ branches/headercleanup/compilers/imcc/imcparser.c Tue Apr 7 21:01:10 2009 (r37950)
@@ -1350,7 +1350,7 @@
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
-#line 1007 "compilers/imcc/imcc.y"
+#line 1009 "compilers/imcc/imcc.y"
{
IdList * idlist;
int t;
@@ -1359,7 +1359,7 @@
Instruction *i;
}
/* Line 187 of yacc.c. */
-#line 1350 "compilers/imcc/imcparser.c"
+#line 1352 "compilers/imcc/imcparser.c"
YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
@@ -1372,7 +1372,7 @@
/* Line 216 of yacc.c. */
-#line 1363 "compilers/imcc/imcparser.c"
+#line 1365 "compilers/imcc/imcparser.c"
#ifdef short
# undef short
@@ -1791,40 +1791,40 @@
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 1102, 1102, 1106, 1107, 1111, 1112, 1113, 1119, 1125,
- 1126, 1127, 1128, 1132, 1133, 1142, 1147, 1154, 1166, 1178,
- 1178, 1187, 1187, 1193, 1193, 1200, 1201, 1205, 1206, 1210,
- 1211, 1212, 1213, 1214, 1215, 1216, 1219, 1219, 1228, 1227,
- 1239, 1243, 1251, 1255, 1259, 1259, 1271, 1273, 1277, 1292,
- 1300, 1305, 1309, 1313, 1304, 1325, 1326, 1327, 1340, 1340,
- 1344, 1358, 1362, 1368, 1377, 1383, 1392, 1398, 1407, 1413,
- 1422, 1430, 1435, 1446, 1449, 1454, 1462, 1463, 1464, 1465,
- 1466, 1477, 1488, 1491, 1493, 1498, 1497, 1530, 1531, 1535,
- 1536, 1540, 1541, 1545, 1546, 1550, 1551, 1552, 1553, 1554,
- 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1567,
- 1572, 1576, 1581, 1585, 1589, 1594, 1603, 1604, 1608, 1613,
- 1614, 1622, 1623, 1623, 1638, 1639, 1643, 1644, 1645, 1646,
- 1647, 1648, 1653, 1653, 1656, 1664, 1664, 1670, 1671, 1676,
- 1684, 1685, 1690, 1698, 1702, 1707, 1706, 1719, 1720, 1724,
- 1725, 1735, 1739, 1749, 1757, 1758, 1770, 1774, 1776, 1777,
- 1778, 1779, 1780, 1784, 1785, 1789, 1790, 1794, 1803, 1804,
- 1815, 1822, 1831, 1841, 1842, 1847, 1848, 1849, 1849, 1865,
- 1869, 1869, 1876, 1877, 1877, 1883, 1889, 1893, 1905, 1906,
- 1907, 1908, 1909, 1910, 1914, 1915, 1916, 1917, 1921, 1934,
- 1936, 1938, 1940, 1942, 1947, 1950, 1957, 1956, 1965, 1966,
- 1967, 1968, 1976, 1977, 1978, 1982, 1983, 1984, 1985, 1986,
- 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
- 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2010, 2009,
- 2021, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036,
- 2037, 2038, 2039, 2040, 2045, 2056, 2057, 2058, 2059, 2065,
- 2079, 2085, 2091, 2090, 2099, 2100, 2110, 2120, 2126, 2131,
- 2140, 2144, 2145, 2149, 2150, 2153, 2157, 2161, 2171, 2176,
- 2186, 2191, 2195, 2196, 2200, 2204, 2208, 2215, 2219, 2223,
- 2230, 2231, 2235, 2236, 2237, 2238, 2239, 2240, 2244, 2245,
- 2249, 2250, 2254, 2255, 2259, 2260, 2267, 2274, 2275, 2276,
- 2280, 2281, 2285, 2286, 2290, 2291, 2295, 2296, 2300, 2300,
- 2313, 2313, 2326, 2327, 2335, 2344, 2345, 2346, 2347, 2348,
- 2352, 2353, 2354, 2355
+ 0, 1104, 1104, 1108, 1109, 1113, 1114, 1115, 1121, 1127,
+ 1128, 1129, 1130, 1134, 1135, 1144, 1149, 1156, 1168, 1180,
+ 1180, 1189, 1189, 1195, 1195, 1202, 1203, 1207, 1208, 1212,
+ 1213, 1214, 1215, 1216, 1217, 1218, 1221, 1221, 1230, 1229,
+ 1241, 1245, 1253, 1257, 1261, 1261, 1273, 1275, 1279, 1294,
+ 1302, 1307, 1311, 1315, 1306, 1327, 1328, 1329, 1342, 1342,
+ 1346, 1360, 1364, 1370, 1379, 1385, 1394, 1400, 1409, 1415,
+ 1424, 1432, 1437, 1448, 1451, 1456, 1464, 1465, 1466, 1467,
+ 1468, 1479, 1490, 1493, 1495, 1500, 1499, 1532, 1533, 1537,
+ 1538, 1542, 1543, 1547, 1548, 1552, 1553, 1554, 1555, 1556,
+ 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1569,
+ 1574, 1578, 1583, 1587, 1591, 1596, 1605, 1606, 1610, 1615,
+ 1616, 1624, 1625, 1625, 1640, 1641, 1645, 1646, 1647, 1648,
+ 1649, 1650, 1655, 1655, 1658, 1666, 1666, 1672, 1673, 1678,
+ 1686, 1687, 1692, 1700, 1704, 1709, 1708, 1721, 1722, 1726,
+ 1727, 1737, 1741, 1751, 1759, 1760, 1772, 1776, 1778, 1779,
+ 1780, 1781, 1782, 1786, 1787, 1791, 1792, 1796, 1805, 1806,
+ 1817, 1824, 1833, 1843, 1844, 1849, 1850, 1851, 1851, 1867,
+ 1871, 1871, 1878, 1879, 1879, 1885, 1891, 1895, 1907, 1908,
+ 1909, 1910, 1911, 1912, 1916, 1917, 1918, 1919, 1923, 1936,
+ 1938, 1940, 1942, 1944, 1949, 1952, 1959, 1958, 1967, 1968,
+ 1969, 1970, 1978, 1979, 1980, 1984, 1985, 1986, 1987, 1988,
+ 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
+ 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2012, 2011,
+ 2023, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038,
+ 2039, 2040, 2041, 2042, 2047, 2058, 2059, 2060, 2061, 2067,
+ 2081, 2087, 2093, 2092, 2101, 2102, 2112, 2122, 2128, 2133,
+ 2142, 2146, 2147, 2151, 2152, 2155, 2159, 2163, 2173, 2178,
+ 2188, 2193, 2197, 2198, 2202, 2206, 2210, 2217, 2221, 2225,
+ 2232, 2233, 2237, 2238, 2239, 2240, 2241, 2242, 2246, 2247,
+ 2251, 2252, 2256, 2257, 2261, 2262, 2269, 2276, 2277, 2278,
+ 2282, 2283, 2287, 2288, 2292, 2293, 2297, 2298, 2302, 2302,
+ 2315, 2315, 2328, 2329, 2337, 2346, 2347, 2348, 2349, 2350,
+ 2354, 2355, 2356, 2357
};
#endif
@@ -3175,22 +3175,22 @@
switch (yyn)
{
case 2:
-#line 1102 "compilers/imcc/imcc.y"
+#line 1104 "compilers/imcc/imcc.y"
{ if (yynerrs) YYABORT; (yyval.i) = 0; }
break;
case 5:
-#line 1111 "compilers/imcc/imcc.y"
+#line 1113 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
case 6:
-#line 1112 "compilers/imcc/imcc.y"
+#line 1114 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
case 7:
-#line 1114 "compilers/imcc/imcc.y"
+#line 1116 "compilers/imcc/imcc.y"
{
(yyval.i) = (yyvsp[(1) - (1)].i);
imc_close_unit(interp, IMCC_INFO(interp)->cur_unit);
@@ -3199,7 +3199,7 @@
break;
case 8:
-#line 1120 "compilers/imcc/imcc.y"
+#line 1122 "compilers/imcc/imcc.y"
{
(yyval.i) = (yyvsp[(1) - (1)].i);
imc_close_unit(interp, IMCC_INFO(interp)->cur_unit);
@@ -3208,32 +3208,32 @@
break;
case 9:
-#line 1125 "compilers/imcc/imcc.y"
+#line 1127 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 10:
-#line 1126 "compilers/imcc/imcc.y"
+#line 1128 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 11:
-#line 1127 "compilers/imcc/imcc.y"
+#line 1129 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 12:
-#line 1128 "compilers/imcc/imcc.y"
+#line 1130 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 13:
-#line 1132 "compilers/imcc/imcc.y"
+#line 1134 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 14:
-#line 1134 "compilers/imcc/imcc.y"
+#line 1136 "compilers/imcc/imcc.y"
{
(yyval.i) = 0;
do_loadlib(interp, (yyvsp[(2) - (3)].s));
@@ -3242,7 +3242,7 @@
break;
case 15:
-#line 1143 "compilers/imcc/imcc.y"
+#line 1145 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->line = atoi((yyvsp[(2) - (5)].s));
set_filename(interp, (yyvsp[(4) - (5)].s));
@@ -3250,14 +3250,14 @@
break;
case 16:
-#line 1148 "compilers/imcc/imcc.y"
+#line 1150 "compilers/imcc/imcc.y"
{
set_filename(interp, (yyvsp[(2) - (3)].s));
}
break;
case 17:
-#line 1155 "compilers/imcc/imcc.y"
+#line 1157 "compilers/imcc/imcc.y"
{
/* We'll want to store an entry while emitting instructions, so just
* store annotation like it's an instruction. */
@@ -3268,7 +3268,7 @@
break;
case 18:
-#line 1167 "compilers/imcc/imcc.y"
+#line 1169 "compilers/imcc/imcc.y"
{
STRING * const hll_name = Parrot_str_unescape(interp, (yyvsp[(2) - (2)].s) + 1, '"', NULL);
CONTEXT(interp)->current_HLL =
@@ -3280,12 +3280,12 @@
break;
case 19:
-#line 1178 "compilers/imcc/imcc.y"
+#line 1180 "compilers/imcc/imcc.y"
{ pesky_global__is_def = 1; }
break;
case 20:
-#line 1179 "compilers/imcc/imcc.y"
+#line 1181 "compilers/imcc/imcc.y"
{
mk_const_ident(interp, (yyvsp[(4) - (6)].s), (yyvsp[(3) - (6)].t), (yyvsp[(6) - (6)].sr), 1);
mem_sys_free((yyvsp[(4) - (6)].s));
@@ -3294,12 +3294,12 @@
break;
case 21:
-#line 1187 "compilers/imcc/imcc.y"
+#line 1189 "compilers/imcc/imcc.y"
{ pesky_global__is_def=1; }
break;
case 22:
-#line 1188 "compilers/imcc/imcc.y"
+#line 1190 "compilers/imcc/imcc.y"
{
(yyval.i) = mk_pmc_const(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (6)].s), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].s));
pesky_global__is_def = 0;
@@ -3307,12 +3307,12 @@
break;
case 23:
-#line 1193 "compilers/imcc/imcc.y"
+#line 1195 "compilers/imcc/imcc.y"
{ pesky_global__is_def=1; }
break;
case 24:
-#line 1194 "compilers/imcc/imcc.y"
+#line 1196 "compilers/imcc/imcc.y"
{
(yyval.i) = mk_pmc_const_named(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (6)].s), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].s));
pesky_global__is_def = 0;
@@ -3320,37 +3320,37 @@
break;
case 29:
-#line 1210 "compilers/imcc/imcc.y"
+#line 1212 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 30:
-#line 1211 "compilers/imcc/imcc.y"
+#line 1213 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 31:
-#line 1212 "compilers/imcc/imcc.y"
+#line 1214 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 32:
-#line 1213 "compilers/imcc/imcc.y"
+#line 1215 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 33:
-#line 1214 "compilers/imcc/imcc.y"
+#line 1216 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
case 36:
-#line 1219 "compilers/imcc/imcc.y"
+#line 1221 "compilers/imcc/imcc.y"
{ clear_state(interp); }
break;
case 37:
-#line 1221 "compilers/imcc/imcc.y"
+#line 1223 "compilers/imcc/imcc.y"
{
(yyval.i) = INS(interp, IMCC_INFO(interp)->cur_unit,
(yyvsp[(2) - (3)].s), 0, IMCC_INFO(interp)->regs,
@@ -3360,7 +3360,7 @@
break;
case 38:
-#line 1228 "compilers/imcc/imcc.y"
+#line 1230 "compilers/imcc/imcc.y"
{
imc_close_unit(interp, IMCC_INFO(interp)->cur_unit);
IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PASM);
@@ -3368,7 +3368,7 @@
break;
case 39:
-#line 1233 "compilers/imcc/imcc.y"
+#line 1235 "compilers/imcc/imcc.y"
{
(yyval.i) = iSUBROUTINE(interp,
IMCC_INFO(interp)->cur_unit,
@@ -3378,14 +3378,14 @@
break;
case 40:
-#line 1240 "compilers/imcc/imcc.y"
+#line 1242 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(2) - (2)].sr));
}
break;
case 41:
-#line 1244 "compilers/imcc/imcc.y"
+#line 1246 "compilers/imcc/imcc.y"
{
SymReg *r = mk_pasm_reg(interp, (yyvsp[(4) - (4)].s));
set_lexical(interp, r, (yyvsp[(2) - (4)].s));
@@ -3396,17 +3396,17 @@
break;
case 42:
-#line 1251 "compilers/imcc/imcc.y"
+#line 1253 "compilers/imcc/imcc.y"
{ (yyval.i) = 0;}
break;
case 44:
-#line 1259 "compilers/imcc/imcc.y"
+#line 1261 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PASM); }
break;
case 45:
-#line 1262 "compilers/imcc/imcc.y"
+#line 1264 "compilers/imcc/imcc.y"
{
/* if (optimizer_level & OPT_PASM)
imc_compile_unit(interp, IMCC_INFO(interp)->cur_unit);
@@ -3417,7 +3417,7 @@
break;
case 48:
-#line 1278 "compilers/imcc/imcc.y"
+#line 1280 "compilers/imcc/imcc.y"
{
int re_open = 0;
(yyval.i) = 0;
@@ -3432,7 +3432,7 @@
break;
case 49:
-#line 1293 "compilers/imcc/imcc.y"
+#line 1295 "compilers/imcc/imcc.y"
{
if (IMCC_INFO(interp)->in_slice)
IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR,
@@ -3443,26 +3443,26 @@
break;
case 50:
-#line 1300 "compilers/imcc/imcc.y"
+#line 1302 "compilers/imcc/imcc.y"
{ (yyval.sr) = NULL; }
break;
case 51:
-#line 1305 "compilers/imcc/imcc.y"
+#line 1307 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PCCSUB);
}
break;
case 52:
-#line 1309 "compilers/imcc/imcc.y"
+#line 1311 "compilers/imcc/imcc.y"
{
iSUBROUTINE(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (3)].sr));
}
break;
case 53:
-#line 1313 "compilers/imcc/imcc.y"
+#line 1315 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->cur_call->pcc_sub->pragma = (yyvsp[(5) - (6)].t);
if (!IMCC_INFO(interp)->cur_unit->instructions->symregs[0]->subid) {
@@ -3473,22 +3473,22 @@
break;
case 54:
-#line 1321 "compilers/imcc/imcc.y"
+#line 1323 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; }
break;
case 55:
-#line 1325 "compilers/imcc/imcc.y"
+#line 1327 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 56:
-#line 1326 "compilers/imcc/imcc.y"
+#line 1328 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 57:
-#line 1328 "compilers/imcc/imcc.y"
+#line 1330 "compilers/imcc/imcc.y"
{
if (IMCC_INFO(interp)->adv_named_id) {
add_pcc_named_param(interp, IMCC_INFO(interp)->cur_call,
@@ -3501,17 +3501,17 @@
break;
case 58:
-#line 1340 "compilers/imcc/imcc.y"
+#line 1342 "compilers/imcc/imcc.y"
{ pesky_global__is_def=1; }
break;
case 59:
-#line 1340 "compilers/imcc/imcc.y"
+#line 1342 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(3) - (3)].sr); pesky_global__is_def=0; }
break;
case 60:
-#line 1345 "compilers/imcc/imcc.y"
+#line 1347 "compilers/imcc/imcc.y"
{
if ((yyvsp[(3) - (3)].t) & VT_UNIQUE_REG)
(yyval.sr) = mk_ident_ur(interp, (yyvsp[(2) - (3)].s), (yyvsp[(1) - (3)].t));
@@ -3523,12 +3523,12 @@
break;
case 61:
-#line 1358 "compilers/imcc/imcc.y"
+#line 1360 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 62:
-#line 1363 "compilers/imcc/imcc.y"
+#line 1365 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
IMCC_INFO(interp)->cur_unit->outer = mk_sub_address_fromc(interp, (yyvsp[(3) - (4)].s));
@@ -3537,7 +3537,7 @@
break;
case 63:
-#line 1369 "compilers/imcc/imcc.y"
+#line 1371 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
IMCC_INFO(interp)->cur_unit->outer = mk_const(interp, (yyvsp[(3) - (4)].s), 'S');
@@ -3546,7 +3546,7 @@
break;
case 64:
-#line 1378 "compilers/imcc/imcc.y"
+#line 1380 "compilers/imcc/imcc.y"
{
(yyval.t) = P_VTABLE;
IMCC_INFO(interp)->cur_unit->vtable_name = NULL;
@@ -3555,7 +3555,7 @@
break;
case 65:
-#line 1384 "compilers/imcc/imcc.y"
+#line 1386 "compilers/imcc/imcc.y"
{
(yyval.t) = P_VTABLE;
IMCC_INFO(interp)->cur_unit->vtable_name = (yyvsp[(3) - (4)].s);
@@ -3564,7 +3564,7 @@
break;
case 66:
-#line 1393 "compilers/imcc/imcc.y"
+#line 1395 "compilers/imcc/imcc.y"
{
(yyval.t) = P_METHOD;
IMCC_INFO(interp)->cur_unit->method_name = NULL;
@@ -3573,7 +3573,7 @@
break;
case 67:
-#line 1399 "compilers/imcc/imcc.y"
+#line 1401 "compilers/imcc/imcc.y"
{
(yyval.t) = P_METHOD;
IMCC_INFO(interp)->cur_unit->method_name = (yyvsp[(3) - (4)].s);
@@ -3582,7 +3582,7 @@
break;
case 68:
-#line 1408 "compilers/imcc/imcc.y"
+#line 1410 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
IMCC_INFO(interp)->cur_unit->ns_entry_name = NULL;
@@ -3591,7 +3591,7 @@
break;
case 69:
-#line 1414 "compilers/imcc/imcc.y"
+#line 1416 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
IMCC_INFO(interp)->cur_unit->ns_entry_name = (yyvsp[(3) - (4)].s);
@@ -3600,7 +3600,7 @@
break;
case 70:
-#line 1423 "compilers/imcc/imcc.y"
+#line 1425 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
IMCC_INFO(interp)->cur_unit->instance_of = (yyvsp[(3) - (4)].s);
@@ -3608,7 +3608,7 @@
break;
case 71:
-#line 1431 "compilers/imcc/imcc.y"
+#line 1433 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
IMCC_INFO(interp)->cur_unit->subid = NULL;
@@ -3616,7 +3616,7 @@
break;
case 72:
-#line 1436 "compilers/imcc/imcc.y"
+#line 1438 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
IMCC_INFO(interp)->cur_unit->subid = mk_const(interp, (yyvsp[(3) - (4)].s), 'S');
@@ -3626,14 +3626,14 @@
break;
case 73:
-#line 1446 "compilers/imcc/imcc.y"
+#line 1448 "compilers/imcc/imcc.y"
{
add_pcc_multi(IMCC_INFO(interp)->cur_call, NULL);
}
break;
case 74:
-#line 1450 "compilers/imcc/imcc.y"
+#line 1452 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
add_pcc_multi(IMCC_INFO(interp)->cur_call, (yyvsp[(3) - (3)].sr));
@@ -3641,7 +3641,7 @@
break;
case 75:
-#line 1455 "compilers/imcc/imcc.y"
+#line 1457 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
add_pcc_multi(IMCC_INFO(interp)->cur_call, (yyvsp[(1) - (1)].sr));
@@ -3649,27 +3649,27 @@
break;
case 76:
-#line 1462 "compilers/imcc/imcc.y"
+#line 1464 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, "INTVAL", 'S'); }
break;
case 77:
-#line 1463 "compilers/imcc/imcc.y"
+#line 1465 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, "FLOATVAL", 'S'); }
break;
case 78:
-#line 1464 "compilers/imcc/imcc.y"
+#line 1466 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, "PMC", 'S'); }
break;
case 79:
-#line 1465 "compilers/imcc/imcc.y"
+#line 1467 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, "STRING", 'S'); }
break;
case 80:
-#line 1467 "compilers/imcc/imcc.y"
+#line 1469 "compilers/imcc/imcc.y"
{
SymReg *r;
if (strcmp((yyvsp[(1) - (1)].s), "_") != 0)
@@ -3683,7 +3683,7 @@
break;
case 81:
-#line 1478 "compilers/imcc/imcc.y"
+#line 1480 "compilers/imcc/imcc.y"
{
SymReg *r;
if (strcmp((yyvsp[(1) - (1)].s), "_") != 0)
@@ -3697,12 +3697,12 @@
break;
case 82:
-#line 1488 "compilers/imcc/imcc.y"
+#line 1490 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(2) - (3)].sr); }
break;
case 85:
-#line 1498 "compilers/imcc/imcc.y"
+#line 1500 "compilers/imcc/imcc.y"
{
char name[128];
SymReg *r, *r1;
@@ -3729,82 +3729,82 @@
break;
case 86:
-#line 1526 "compilers/imcc/imcc.y"
+#line 1528 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; }
break;
case 87:
-#line 1530 "compilers/imcc/imcc.y"
+#line 1532 "compilers/imcc/imcc.y"
{ (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->label = 0; }
break;
case 88:
-#line 1531 "compilers/imcc/imcc.y"
+#line 1533 "compilers/imcc/imcc.y"
{ (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->label = 1; }
break;
case 89:
-#line 1535 "compilers/imcc/imcc.y"
+#line 1537 "compilers/imcc/imcc.y"
{ (yyval.i) = NULL; }
break;
case 90:
-#line 1536 "compilers/imcc/imcc.y"
+#line 1538 "compilers/imcc/imcc.y"
{ (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->object = (yyvsp[(2) - (3)].sr); }
break;
case 91:
-#line 1540 "compilers/imcc/imcc.y"
+#line 1542 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 93:
-#line 1545 "compilers/imcc/imcc.y"
+#line 1547 "compilers/imcc/imcc.y"
{ (yyval.t) = (yyvsp[(1) - (1)].t); }
break;
case 94:
-#line 1546 "compilers/imcc/imcc.y"
+#line 1548 "compilers/imcc/imcc.y"
{ (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); }
break;
case 95:
-#line 1550 "compilers/imcc/imcc.y"
+#line 1552 "compilers/imcc/imcc.y"
{ (yyval.t) = P_LOAD; }
break;
case 96:
-#line 1551 "compilers/imcc/imcc.y"
+#line 1553 "compilers/imcc/imcc.y"
{ (yyval.t) = P_INIT; }
break;
case 97:
-#line 1552 "compilers/imcc/imcc.y"
+#line 1554 "compilers/imcc/imcc.y"
{ (yyval.t) = P_MAIN; }
break;
case 98:
-#line 1553 "compilers/imcc/imcc.y"
+#line 1555 "compilers/imcc/imcc.y"
{ (yyval.t) = P_IMMEDIATE; }
break;
case 99:
-#line 1554 "compilers/imcc/imcc.y"
+#line 1556 "compilers/imcc/imcc.y"
{ (yyval.t) = P_POSTCOMP; }
break;
case 100:
-#line 1555 "compilers/imcc/imcc.y"
+#line 1557 "compilers/imcc/imcc.y"
{ (yyval.t) = P_ANON; }
break;
case 101:
-#line 1556 "compilers/imcc/imcc.y"
+#line 1558 "compilers/imcc/imcc.y"
{ (yyval.t) = P_NEED_LEX; }
break;
case 109:
-#line 1568 "compilers/imcc/imcc.y"
+#line 1570 "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));
@@ -3812,14 +3812,14 @@
break;
case 110:
-#line 1573 "compilers/imcc/imcc.y"
+#line 1575 "compilers/imcc/imcc.y"
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
}
break;
case 111:
-#line 1577 "compilers/imcc/imcc.y"
+#line 1579 "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;
@@ -3827,21 +3827,21 @@
break;
case 112:
-#line 1582 "compilers/imcc/imcc.y"
+#line 1584 "compilers/imcc/imcc.y"
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
}
break;
case 113:
-#line 1586 "compilers/imcc/imcc.y"
+#line 1588 "compilers/imcc/imcc.y"
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, mk_const(interp, (yyvsp[(2) - (3)].s), 'S'));
}
break;
case 114:
-#line 1590 "compilers/imcc/imcc.y"
+#line 1592 "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));
@@ -3849,7 +3849,7 @@
break;
case 115:
-#line 1595 "compilers/imcc/imcc.y"
+#line 1597 "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));
@@ -3857,27 +3857,27 @@
break;
case 116:
-#line 1603 "compilers/imcc/imcc.y"
+#line 1605 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 117:
-#line 1604 "compilers/imcc/imcc.y"
+#line 1606 "compilers/imcc/imcc.y"
{ add_pcc_arg(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr)); }
break;
case 118:
-#line 1608 "compilers/imcc/imcc.y"
+#line 1610 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(2) - (2)].sr); }
break;
case 119:
-#line 1613 "compilers/imcc/imcc.y"
+#line 1615 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 120:
-#line 1615 "compilers/imcc/imcc.y"
+#line 1617 "compilers/imcc/imcc.y"
{
if ((yyvsp[(2) - (3)].sr))
add_pcc_result(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
@@ -3885,17 +3885,17 @@
break;
case 121:
-#line 1622 "compilers/imcc/imcc.y"
+#line 1624 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); }
break;
case 122:
-#line 1623 "compilers/imcc/imcc.y"
+#line 1625 "compilers/imcc/imcc.y"
{ pesky_global__is_def=1; }
break;
case 123:
-#line 1624 "compilers/imcc/imcc.y"
+#line 1626 "compilers/imcc/imcc.y"
{
IdList *l = (yyvsp[(4) - (4)].idlist);
SymReg *ignored;
@@ -3910,57 +3910,57 @@
break;
case 124:
-#line 1638 "compilers/imcc/imcc.y"
+#line 1640 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 125:
-#line 1639 "compilers/imcc/imcc.y"
+#line 1641 "compilers/imcc/imcc.y"
{ (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); }
break;
case 126:
-#line 1643 "compilers/imcc/imcc.y"
+#line 1645 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_FLAT; }
break;
case 127:
-#line 1644 "compilers/imcc/imcc.y"
+#line 1646 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_OPTIONAL; }
break;
case 128:
-#line 1645 "compilers/imcc/imcc.y"
+#line 1647 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_OPT_FLAG; }
break;
case 129:
-#line 1646 "compilers/imcc/imcc.y"
+#line 1648 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_NAMED; }
break;
case 130:
-#line 1647 "compilers/imcc/imcc.y"
+#line 1649 "compilers/imcc/imcc.y"
{ adv_named_set(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; }
break;
case 131:
-#line 1648 "compilers/imcc/imcc.y"
+#line 1650 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_UNIQUE_REG; }
break;
case 132:
-#line 1653 "compilers/imcc/imcc.y"
+#line 1655 "compilers/imcc/imcc.y"
{ begin_return_or_yield(interp, 0); }
break;
case 133:
-#line 1655 "compilers/imcc/imcc.y"
+#line 1657 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; IMCC_INFO(interp)->asm_state = AsmDefault; }
break;
case 134:
-#line 1657 "compilers/imcc/imcc.y"
+#line 1659 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->asm_state = AsmDefault;
(yyval.i) = 0;
@@ -3968,22 +3968,22 @@
break;
case 135:
-#line 1664 "compilers/imcc/imcc.y"
+#line 1666 "compilers/imcc/imcc.y"
{ begin_return_or_yield(interp, 1); }
break;
case 136:
-#line 1666 "compilers/imcc/imcc.y"
+#line 1668 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; IMCC_INFO(interp)->asm_state = AsmDefault; }
break;
case 137:
-#line 1670 "compilers/imcc/imcc.y"
+#line 1672 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 138:
-#line 1672 "compilers/imcc/imcc.y"
+#line 1674 "compilers/imcc/imcc.y"
{
if ((yyvsp[(1) - (2)].sr))
add_pcc_result(IMCC_INFO(interp)->sr_return, (yyvsp[(1) - (2)].sr));
@@ -3991,7 +3991,7 @@
break;
case 139:
-#line 1677 "compilers/imcc/imcc.y"
+#line 1679 "compilers/imcc/imcc.y"
{
if ((yyvsp[(2) - (3)].sr))
add_pcc_result(IMCC_INFO(interp)->sr_return, (yyvsp[(2) - (3)].sr));
@@ -3999,12 +3999,12 @@
break;
case 140:
-#line 1684 "compilers/imcc/imcc.y"
+#line 1686 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 141:
-#line 1686 "compilers/imcc/imcc.y"
+#line 1688 "compilers/imcc/imcc.y"
{
if ((yyvsp[(1) - (2)].sr))
add_pcc_result(IMCC_INFO(interp)->sr_return, (yyvsp[(1) - (2)].sr));
@@ -4012,7 +4012,7 @@
break;
case 142:
-#line 1691 "compilers/imcc/imcc.y"
+#line 1693 "compilers/imcc/imcc.y"
{
if ((yyvsp[(2) - (3)].sr))
add_pcc_result(IMCC_INFO(interp)->sr_return, (yyvsp[(2) - (3)].sr));
@@ -4020,17 +4020,17 @@
break;
case 143:
-#line 1698 "compilers/imcc/imcc.y"
+#line 1700 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); }
break;
case 144:
-#line 1702 "compilers/imcc/imcc.y"
+#line 1704 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); }
break;
case 145:
-#line 1707 "compilers/imcc/imcc.y"
+#line 1709 "compilers/imcc/imcc.y"
{
if (IMCC_INFO(interp)->asm_state == AsmDefault)
begin_return_or_yield(interp, (yyvsp[(1) - (2)].t));
@@ -4038,7 +4038,7 @@
break;
case 146:
-#line 1712 "compilers/imcc/imcc.y"
+#line 1714 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->asm_state = AsmDefault;
(yyval.t) = 0;
@@ -4046,22 +4046,22 @@
break;
case 147:
-#line 1719 "compilers/imcc/imcc.y"
+#line 1721 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 148:
-#line 1720 "compilers/imcc/imcc.y"
+#line 1722 "compilers/imcc/imcc.y"
{ (yyval.t) = 1; }
break;
case 149:
-#line 1724 "compilers/imcc/imcc.y"
+#line 1726 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 150:
-#line 1726 "compilers/imcc/imcc.y"
+#line 1728 "compilers/imcc/imcc.y"
{
if (IMCC_INFO(interp)->adv_named_id) {
add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return,
@@ -4074,14 +4074,14 @@
break;
case 151:
-#line 1736 "compilers/imcc/imcc.y"
+#line 1738 "compilers/imcc/imcc.y"
{
add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return, (yyvsp[(1) - (3)].s), (yyvsp[(3) - (3)].sr));
}
break;
case 152:
-#line 1740 "compilers/imcc/imcc.y"
+#line 1742 "compilers/imcc/imcc.y"
{
if (IMCC_INFO(interp)->adv_named_id) {
add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return,
@@ -4094,66 +4094,66 @@
break;
case 153:
-#line 1750 "compilers/imcc/imcc.y"
+#line 1752 "compilers/imcc/imcc.y"
{
add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return, (yyvsp[(3) - (5)].s), (yyvsp[(5) - (5)].sr));
}
break;
case 156:
-#line 1770 "compilers/imcc/imcc.y"
+#line 1772 "compilers/imcc/imcc.y"
{ clear_state(interp); }
break;
case 157:
-#line 1775 "compilers/imcc/imcc.y"
+#line 1777 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(2) - (2)].i); }
break;
case 158:
-#line 1776 "compilers/imcc/imcc.y"
+#line 1778 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 159:
-#line 1777 "compilers/imcc/imcc.y"
+#line 1779 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 160:
-#line 1778 "compilers/imcc/imcc.y"
+#line 1780 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 161:
-#line 1779 "compilers/imcc/imcc.y"
+#line 1781 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 162:
-#line 1780 "compilers/imcc/imcc.y"
+#line 1782 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
case 163:
-#line 1784 "compilers/imcc/imcc.y"
+#line 1786 "compilers/imcc/imcc.y"
{ (yyval.i) = NULL; }
break;
case 167:
-#line 1795 "compilers/imcc/imcc.y"
+#line 1797 "compilers/imcc/imcc.y"
{
(yyval.i) = iLABEL(interp, IMCC_INFO(interp)->cur_unit, mk_local_label(interp, (yyvsp[(1) - (1)].s)));
}
break;
case 168:
-#line 1803 "compilers/imcc/imcc.y"
+#line 1805 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(2) - (3)].i); }
break;
case 169:
-#line 1805 "compilers/imcc/imcc.y"
+#line 1807 "compilers/imcc/imcc.y"
{
if (yynerrs >= PARROT_MAX_RECOVER_ERRORS) {
IMCC_warning(interp, "Too many errors. Correct some first.\n");
@@ -4164,7 +4164,7 @@
break;
case 170:
-#line 1816 "compilers/imcc/imcc.y"
+#line 1818 "compilers/imcc/imcc.y"
{
IdList* l = (yyvsp[(1) - (1)].idlist);
l->next = NULL;
@@ -4173,7 +4173,7 @@
break;
case 171:
-#line 1823 "compilers/imcc/imcc.y"
+#line 1825 "compilers/imcc/imcc.y"
{
IdList* l = (yyvsp[(3) - (3)].idlist);
l->next = (yyvsp[(1) - (3)].idlist);
@@ -4182,7 +4182,7 @@
break;
case 172:
-#line 1832 "compilers/imcc/imcc.y"
+#line 1834 "compilers/imcc/imcc.y"
{
IdList* const l = mem_allocate_n_zeroed_typed(1, IdList);
l->id = (yyvsp[(1) - (2)].s);
@@ -4192,22 +4192,22 @@
break;
case 173:
-#line 1841 "compilers/imcc/imcc.y"
+#line 1843 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 174:
-#line 1842 "compilers/imcc/imcc.y"
+#line 1844 "compilers/imcc/imcc.y"
{ (yyval.t) = 1; }
break;
case 177:
-#line 1849 "compilers/imcc/imcc.y"
+#line 1851 "compilers/imcc/imcc.y"
{ pesky_global__is_def=1; }
break;
case 178:
-#line 1850 "compilers/imcc/imcc.y"
+#line 1852 "compilers/imcc/imcc.y"
{
IdList *l = (yyvsp[(4) - (4)].idlist);
while (l) {
@@ -4226,19 +4226,19 @@
break;
case 179:
-#line 1866 "compilers/imcc/imcc.y"
+#line 1868 "compilers/imcc/imcc.y"
{
set_lexical(interp, (yyvsp[(4) - (4)].sr), (yyvsp[(2) - (4)].s)); (yyval.i) = 0;
}
break;
case 180:
-#line 1869 "compilers/imcc/imcc.y"
+#line 1871 "compilers/imcc/imcc.y"
{ pesky_global__is_def=1; }
break;
case 181:
-#line 1870 "compilers/imcc/imcc.y"
+#line 1872 "compilers/imcc/imcc.y"
{
mk_const_ident(interp, (yyvsp[(4) - (6)].s), (yyvsp[(3) - (6)].t), (yyvsp[(6) - (6)].sr), 0);
pesky_global__is_def=0;
@@ -4247,12 +4247,12 @@
break;
case 183:
-#line 1877 "compilers/imcc/imcc.y"
+#line 1879 "compilers/imcc/imcc.y"
{ pesky_global__is_def=1; }
break;
case 184:
-#line 1878 "compilers/imcc/imcc.y"
+#line 1880 "compilers/imcc/imcc.y"
{
mk_const_ident(interp, (yyvsp[(4) - (6)].s), (yyvsp[(3) - (6)].t), (yyvsp[(6) - (6)].sr), 1);
pesky_global__is_def=0;
@@ -4261,7 +4261,7 @@
break;
case 185:
-#line 1884 "compilers/imcc/imcc.y"
+#line 1886 "compilers/imcc/imcc.y"
{
(yyval.i) = NULL;
IMCC_INFO(interp)->cur_call->pcc_sub->flags |= isTAIL_CALL;
@@ -4270,14 +4270,14 @@
break;
case 186:
-#line 1890 "compilers/imcc/imcc.y"
+#line 1892 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "branch", 1, (yyvsp[(2) - (2)].sr));
}
break;
case 187:
-#line 1894 "compilers/imcc/imcc.y"
+#line 1896 "compilers/imcc/imcc.y"
{
(yyval.i) = INS(interp,
IMCC_INFO(interp)->cur_unit,
@@ -4292,47 +4292,47 @@
break;
case 188:
-#line 1905 "compilers/imcc/imcc.y"
+#line 1907 "compilers/imcc/imcc.y"
{ (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(2) - (2)].sr)); }
break;
case 189:
-#line 1906 "compilers/imcc/imcc.y"
+#line 1908 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; }
break;
case 190:
-#line 1907 "compilers/imcc/imcc.y"
+#line 1909 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 193:
-#line 1910 "compilers/imcc/imcc.y"
+#line 1912 "compilers/imcc/imcc.y"
{ (yyval.i) = 0;}
break;
case 194:
-#line 1914 "compilers/imcc/imcc.y"
+#line 1916 "compilers/imcc/imcc.y"
{ (yyval.t) = 'I'; }
break;
case 195:
-#line 1915 "compilers/imcc/imcc.y"
+#line 1917 "compilers/imcc/imcc.y"
{ (yyval.t) = 'N'; }
break;
case 196:
-#line 1916 "compilers/imcc/imcc.y"
+#line 1918 "compilers/imcc/imcc.y"
{ (yyval.t) = 'S'; }
break;
case 197:
-#line 1917 "compilers/imcc/imcc.y"
+#line 1919 "compilers/imcc/imcc.y"
{ (yyval.t) = 'P'; }
break;
case 198:
-#line 1922 "compilers/imcc/imcc.y"
+#line 1924 "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 */
@@ -4345,37 +4345,37 @@
break;
case 199:
-#line 1935 "compilers/imcc/imcc.y"
+#line 1937 "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 1937 "compilers/imcc/imcc.y"
+#line 1939 "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 1939 "compilers/imcc/imcc.y"
+#line 1941 "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 1941 "compilers/imcc/imcc.y"
+#line 1943 "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 1943 "compilers/imcc/imcc.y"
+#line 1945 "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 1948 "compilers/imcc/imcc.y"
+#line 1950 "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 205:
-#line 1951 "compilers/imcc/imcc.y"
+#line 1953 "compilers/imcc/imcc.y"
{
add_pcc_result((yyvsp[(3) - (3)].i)->symregs[0], (yyvsp[(1) - (3)].sr));
IMCC_INFO(interp)->cur_call = NULL;
@@ -4384,14 +4384,14 @@
break;
case 206:
-#line 1957 "compilers/imcc/imcc.y"
+#line 1959 "compilers/imcc/imcc.y"
{
(yyval.i) = IMCC_create_itcall_label(interp);
}
break;
case 207:
-#line 1961 "compilers/imcc/imcc.y"
+#line 1963 "compilers/imcc/imcc.y"
{
IMCC_itcall_sub(interp, (yyvsp[(6) - (9)].sr));
IMCC_INFO(interp)->cur_call = NULL;
@@ -4399,144 +4399,144 @@
break;
case 211:
-#line 1969 "compilers/imcc/imcc.y"
+#line 1971 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(1) - (3)].sr));
}
break;
case 212:
-#line 1976 "compilers/imcc/imcc.y"
+#line 1978 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"not"; }
break;
case 213:
-#line 1977 "compilers/imcc/imcc.y"
+#line 1979 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"bnot"; }
break;
case 214:
-#line 1978 "compilers/imcc/imcc.y"
+#line 1980 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"neg"; }
break;
case 215:
-#line 1982 "compilers/imcc/imcc.y"
+#line 1984 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"sub"; }
break;
case 216:
-#line 1983 "compilers/imcc/imcc.y"
+#line 1985 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"add"; }
break;
case 217:
-#line 1984 "compilers/imcc/imcc.y"
+#line 1986 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"mul"; }
break;
case 218:
-#line 1985 "compilers/imcc/imcc.y"
+#line 1987 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"div"; }
break;
case 219:
-#line 1986 "compilers/imcc/imcc.y"
+#line 1988 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"mod"; }
break;
case 220:
-#line 1987 "compilers/imcc/imcc.y"
+#line 1989 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"fdiv"; }
break;
case 221:
-#line 1988 "compilers/imcc/imcc.y"
+#line 1990 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"pow"; }
break;
case 222:
-#line 1989 "compilers/imcc/imcc.y"
+#line 1991 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"concat"; }
break;
case 223:
-#line 1990 "compilers/imcc/imcc.y"
+#line 1992 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"iseq"; }
break;
case 224:
-#line 1991 "compilers/imcc/imcc.y"
+#line 1993 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"isne"; }
break;
case 225:
-#line 1992 "compilers/imcc/imcc.y"
+#line 1994 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"isgt"; }
break;
case 226:
-#line 1993 "compilers/imcc/imcc.y"
+#line 1995 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"isge"; }
break;
case 227:
-#line 1994 "compilers/imcc/imcc.y"
+#line 1996 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"islt"; }
break;
case 228:
-#line 1995 "compilers/imcc/imcc.y"
+#line 1997 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"isle"; }
break;
case 229:
-#line 1996 "compilers/imcc/imcc.y"
+#line 1998 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"shl"; }
break;
case 230:
-#line 1997 "compilers/imcc/imcc.y"
+#line 1999 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"shr"; }
break;
case 231:
-#line 1998 "compilers/imcc/imcc.y"
+#line 2000 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"lsr"; }
break;
case 232:
-#line 1999 "compilers/imcc/imcc.y"
+#line 2001 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"and"; }
break;
case 233:
-#line 2000 "compilers/imcc/imcc.y"
+#line 2002 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"or"; }
break;
case 234:
-#line 2001 "compilers/imcc/imcc.y"
+#line 2003 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"xor"; }
break;
case 235:
-#line 2002 "compilers/imcc/imcc.y"
+#line 2004 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"band"; }
break;
case 236:
-#line 2003 "compilers/imcc/imcc.y"
+#line 2005 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"bor"; }
break;
case 237:
-#line 2004 "compilers/imcc/imcc.y"
+#line 2006 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"bxor"; }
break;
case 238:
-#line 2010 "compilers/imcc/imcc.y"
+#line 2012 "compilers/imcc/imcc.y"
{
(yyval.i) = IMCC_create_itcall_label(interp);
(yyval.i)->type &= ~ITCALL;
@@ -4545,84 +4545,84 @@
break;
case 239:
-#line 2015 "compilers/imcc/imcc.y"
+#line 2017 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 240:
-#line 2022 "compilers/imcc/imcc.y"
+#line 2024 "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 241:
-#line 2028 "compilers/imcc/imcc.y"
+#line 2030 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"add"; }
break;
case 242:
-#line 2029 "compilers/imcc/imcc.y"
+#line 2031 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"sub"; }
break;
case 243:
-#line 2030 "compilers/imcc/imcc.y"
+#line 2032 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"mul"; }
break;
case 244:
-#line 2031 "compilers/imcc/imcc.y"
+#line 2033 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"div"; }
break;
case 245:
-#line 2032 "compilers/imcc/imcc.y"
+#line 2034 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"mod"; }
break;
case 246:
-#line 2033 "compilers/imcc/imcc.y"
+#line 2035 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"fdiv"; }
break;
case 247:
-#line 2034 "compilers/imcc/imcc.y"
+#line 2036 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"concat"; }
break;
case 248:
-#line 2035 "compilers/imcc/imcc.y"
+#line 2037 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"band"; }
break;
case 249:
-#line 2036 "compilers/imcc/imcc.y"
+#line 2038 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"bor"; }
break;
case 250:
-#line 2037 "compilers/imcc/imcc.y"
+#line 2039 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"bxor"; }
break;
case 251:
-#line 2038 "compilers/imcc/imcc.y"
+#line 2040 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"shr"; }
break;
case 252:
-#line 2039 "compilers/imcc/imcc.y"
+#line 2041 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"shl"; }
break;
case 253:
-#line 2040 "compilers/imcc/imcc.y"
+#line 2042 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"lsr"; }
break;
case 254:
-#line 2046 "compilers/imcc/imcc.y"
+#line 2048 "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,
@@ -4633,22 +4633,22 @@
break;
case 255:
-#line 2056 "compilers/imcc/imcc.y"
+#line 2058 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 256:
-#line 2057 "compilers/imcc/imcc.y"
+#line 2059 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address_fromc(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 257:
-#line 2058 "compilers/imcc/imcc.y"
+#line 2060 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address_u(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 258:
-#line 2060 "compilers/imcc/imcc.y"
+#line 2062 "compilers/imcc/imcc.y"
{
(yyval.sr) = (yyvsp[(1) - (1)].sr);
if ((yyvsp[(1) - (1)].sr)->set != 'P')
@@ -4657,7 +4657,7 @@
break;
case 259:
-#line 2066 "compilers/imcc/imcc.y"
+#line 2068 "compilers/imcc/imcc.y"
{
/* disallow bareword method names; SREG name constants are fine */
char *name = (yyvsp[(3) - (3)].sr)->name;
@@ -4674,7 +4674,7 @@
break;
case 260:
-#line 2080 "compilers/imcc/imcc.y"
+#line 2082 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr);
(yyval.sr) = mk_const(interp, (yyvsp[(3) - (3)].s), 'S');
@@ -4683,12 +4683,12 @@
break;
case 261:
-#line 2085 "compilers/imcc/imcc.y"
+#line 2087 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr); (yyval.sr) = (yyvsp[(3) - (3)].sr); }
break;
case 262:
-#line 2091 "compilers/imcc/imcc.y"
+#line 2093 "compilers/imcc/imcc.y"
{
(yyval.i) = IMCC_create_itcall_label(interp);
IMCC_itcall_sub(interp, (yyvsp[(1) - (1)].sr));
@@ -4696,17 +4696,17 @@
break;
case 263:
-#line 2095 "compilers/imcc/imcc.y"
+#line 2097 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(2) - (5)].i); }
break;
case 264:
-#line 2099 "compilers/imcc/imcc.y"
+#line 2101 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 265:
-#line 2101 "compilers/imcc/imcc.y"
+#line 2103 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
if (IMCC_INFO(interp)->adv_named_id) {
@@ -4719,7 +4719,7 @@
break;
case 266:
-#line 2111 "compilers/imcc/imcc.y"
+#line 2113 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
if (IMCC_INFO(interp)->adv_named_id) {
@@ -4732,7 +4732,7 @@
break;
case 267:
-#line 2121 "compilers/imcc/imcc.y"
+#line 2123 "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));
@@ -4741,7 +4741,7 @@
break;
case 268:
-#line 2127 "compilers/imcc/imcc.y"
+#line 2129 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
add_pcc_named_arg_var(interp, IMCC_INFO(interp)->cur_call, (yyvsp[(1) - (3)].sr), (yyvsp[(3) - (3)].sr));
@@ -4749,7 +4749,7 @@
break;
case 269:
-#line 2132 "compilers/imcc/imcc.y"
+#line 2134 "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));
@@ -4758,42 +4758,42 @@
break;
case 270:
-#line 2140 "compilers/imcc/imcc.y"
+#line 2142 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(1) - (2)].sr); (yyval.sr)->type |= (yyvsp[(2) - (2)].t); }
break;
case 271:
-#line 2144 "compilers/imcc/imcc.y"
+#line 2146 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 272:
-#line 2145 "compilers/imcc/imcc.y"
+#line 2147 "compilers/imcc/imcc.y"
{ (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); }
break;
case 273:
-#line 2149 "compilers/imcc/imcc.y"
+#line 2151 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_FLAT; }
break;
case 274:
-#line 2150 "compilers/imcc/imcc.y"
+#line 2152 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_NAMED; }
break;
case 275:
-#line 2153 "compilers/imcc/imcc.y"
+#line 2155 "compilers/imcc/imcc.y"
{ adv_named_set(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; }
break;
case 276:
-#line 2157 "compilers/imcc/imcc.y"
+#line 2159 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(1) - (2)].sr); (yyval.sr)->type |= (yyvsp[(2) - (2)].t); }
break;
case 277:
-#line 2162 "compilers/imcc/imcc.y"
+#line 2164 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
if (IMCC_INFO(interp)->adv_named_id) {
@@ -4806,7 +4806,7 @@
break;
case 278:
-#line 2172 "compilers/imcc/imcc.y"
+#line 2174 "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));
@@ -4814,7 +4814,7 @@
break;
case 279:
-#line 2177 "compilers/imcc/imcc.y"
+#line 2179 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
if (IMCC_INFO(interp)->adv_named_id) {
@@ -4827,7 +4827,7 @@
break;
case 280:
-#line 2187 "compilers/imcc/imcc.y"
+#line 2189 "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));
@@ -4835,124 +4835,124 @@
break;
case 281:
-#line 2191 "compilers/imcc/imcc.y"
+#line 2193 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 282:
-#line 2195 "compilers/imcc/imcc.y"
+#line 2197 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
case 283:
-#line 2196 "compilers/imcc/imcc.y"
+#line 2198 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
case 284:
-#line 2201 "compilers/imcc/imcc.y"
+#line 2203 "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 285:
-#line 2205 "compilers/imcc/imcc.y"
+#line 2207 "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 286:
-#line 2209 "compilers/imcc/imcc.y"
+#line 2211 "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 287:
-#line 2216 "compilers/imcc/imcc.y"
+#line 2218 "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 288:
-#line 2220 "compilers/imcc/imcc.y"
+#line 2222 "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 289:
-#line 2224 "compilers/imcc/imcc.y"
+#line 2226 "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 290:
-#line 2230 "compilers/imcc/imcc.y"
+#line 2232 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 291:
-#line 2231 "compilers/imcc/imcc.y"
+#line 2233 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 292:
-#line 2235 "compilers/imcc/imcc.y"
+#line 2237 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"eq"; }
break;
case 293:
-#line 2236 "compilers/imcc/imcc.y"
+#line 2238 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"ne"; }
break;
case 294:
-#line 2237 "compilers/imcc/imcc.y"
+#line 2239 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"gt"; }
break;
case 295:
-#line 2238 "compilers/imcc/imcc.y"
+#line 2240 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"ge"; }
break;
case 296:
-#line 2239 "compilers/imcc/imcc.y"
+#line 2241 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"lt"; }
break;
case 297:
-#line 2240 "compilers/imcc/imcc.y"
+#line 2242 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"le"; }
break;
case 300:
-#line 2249 "compilers/imcc/imcc.y"
+#line 2251 "compilers/imcc/imcc.y"
{ (yyval.sr) = NULL; }
break;
case 301:
-#line 2250 "compilers/imcc/imcc.y"
+#line 2252 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(1) - (1)].sr); }
break;
case 302:
-#line 2254 "compilers/imcc/imcc.y"
+#line 2256 "compilers/imcc/imcc.y"
{ (yyval.sr) = IMCC_INFO(interp)->regs[0]; }
break;
case 304:
-#line 2259 "compilers/imcc/imcc.y"
+#line 2261 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(1) - (1)].sr); }
break;
case 305:
-#line 2261 "compilers/imcc/imcc.y"
+#line 2263 "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);
@@ -4962,7 +4962,7 @@
break;
case 306:
-#line 2268 "compilers/imcc/imcc.y"
+#line 2270 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp) -> regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(2) - (3)].sr);
(yyval.sr) = (yyvsp[(2) - (3)].sr);
@@ -4970,37 +4970,37 @@
break;
case 308:
-#line 2275 "compilers/imcc/imcc.y"
+#line 2277 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address_fromc(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 309:
-#line 2276 "compilers/imcc/imcc.y"
+#line 2278 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address_u(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 310:
-#line 2280 "compilers/imcc/imcc.y"
+#line 2282 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 311:
-#line 2281 "compilers/imcc/imcc.y"
+#line 2283 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 312:
-#line 2285 "compilers/imcc/imcc.y"
+#line 2287 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_label_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 313:
-#line 2286 "compilers/imcc/imcc.y"
+#line 2288 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_label_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 318:
-#line 2300 "compilers/imcc/imcc.y"
+#line 2302 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->nkeys = 0;
IMCC_INFO(interp)->in_slice = 0;
@@ -5008,7 +5008,7 @@
break;
case 319:
-#line 2305 "compilers/imcc/imcc.y"
+#line 2307 "compilers/imcc/imcc.y"
{
(yyval.sr) = link_keys(interp,
IMCC_INFO(interp)->nkeys,
@@ -5017,7 +5017,7 @@
break;
case 320:
-#line 2313 "compilers/imcc/imcc.y"
+#line 2315 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->nkeys = 0;
IMCC_INFO(interp)->in_slice = 0;
@@ -5025,7 +5025,7 @@
break;
case 321:
-#line 2318 "compilers/imcc/imcc.y"
+#line 2320 "compilers/imcc/imcc.y"
{
(yyval.sr) = link_keys(interp,
IMCC_INFO(interp)->nkeys,
@@ -5034,12 +5034,12 @@
break;
case 322:
-#line 2326 "compilers/imcc/imcc.y"
+#line 2328 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(1) - (1)].sr); }
break;
case 323:
-#line 2328 "compilers/imcc/imcc.y"
+#line 2330 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(3) - (3)].sr);
(yyval.sr) = IMCC_INFO(interp)->keys[0];
@@ -5047,7 +5047,7 @@
break;
case 324:
-#line 2336 "compilers/imcc/imcc.y"
+#line 2338 "compilers/imcc/imcc.y"
{
if (IMCC_INFO(interp)->in_slice)
(yyvsp[(1) - (1)].sr)->type |= VT_START_SLICE | VT_END_SLICE;
@@ -5056,53 +5056,53 @@
break;
case 325:
-#line 2344 "compilers/imcc/imcc.y"
+#line 2346 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'I'); }
break;
case 326:
-#line 2345 "compilers/imcc/imcc.y"
+#line 2347 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'N'); }
break;
case 327:
-#line 2346 "compilers/imcc/imcc.y"
+#line 2348 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'S'); }
break;
case 328:
-#line 2347 "compilers/imcc/imcc.y"
+#line 2349 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'P'); }
break;
case 329:
-#line 2348 "compilers/imcc/imcc.y"
+#line 2350 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_pasm_reg(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 330:
-#line 2352 "compilers/imcc/imcc.y"
+#line 2354 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'I'); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 331:
-#line 2353 "compilers/imcc/imcc.y"
+#line 2355 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'N'); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 332:
-#line 2354 "compilers/imcc/imcc.y"
+#line 2356 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'S'); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 333:
-#line 2355 "compilers/imcc/imcc.y"
+#line 2357 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'U'); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
/* Line 1267 of yacc.c. */
-#line 5093 "compilers/imcc/imcparser.c"
+#line 5095 "compilers/imcc/imcparser.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -5316,7 +5316,7 @@
}
-#line 2361 "compilers/imcc/imcc.y"
+#line 2363 "compilers/imcc/imcc.y"
/* I need this prototype somewhere... */
Modified: branches/headercleanup/compilers/imcc/imcparser.h
==============================================================================
--- branches/headercleanup/compilers/imcc/imcparser.h Tue Apr 7 18:38:30 2009 (r37949)
+++ branches/headercleanup/compilers/imcc/imcparser.h Tue Apr 7 21:01:10 2009 (r37950)
@@ -295,7 +295,7 @@
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
-#line 1007 "compilers/imcc/imcc.y"
+#line 1009 "compilers/imcc/imcc.y"
{
IdList * idlist;
int t;
Modified: branches/headercleanup/config/gen/makefiles/root.in
==============================================================================
--- branches/headercleanup/config/gen/makefiles/root.in Tue Apr 7 18:38:30 2009 (r37949)
+++ branches/headercleanup/config/gen/makefiles/root.in Tue Apr 7 21:01:10 2009 (r37950)
@@ -410,9 +410,9 @@
$(SRC_DIR)/hash$(O) \
$(SRC_DIR)/hll$(O) \
$(SRC_DIR)/call/pcc$(O) \
- $(SRC_DIR)/inter_cb$(O) \
- $(SRC_DIR)/inter_create$(O) \
- $(SRC_DIR)/inter_misc$(O) \
+ $(SRC_DIR)/interp/inter_cb$(O) \
+ $(SRC_DIR)/interp/inter_create$(O) \
+ $(SRC_DIR)/interp/inter_misc$(O) \
$(SRC_DIR)/interp/interpreter$(O) \
$(SRC_DIR)/call/ops$(O) \
$(SRC_DIR)/key$(O) \
@@ -592,9 +592,9 @@
$(SRC_DIR)/global_setup.str \
$(SRC_DIR)/hll.str \
$(SRC_DIR)/call/pcc.str \
- $(SRC_DIR)/inter_cb.str \
- $(SRC_DIR)/inter_create.str \
- $(SRC_DIR)/inter_misc.str \
+ $(SRC_DIR)/interp/inter_cb.str \
+ $(SRC_DIR)/interp/inter_create.str \
+ $(SRC_DIR)/interp/inter_misc.str \
$(SRC_DIR)/io/api.str \
$(SRC_DIR)/key.str \
$(SRC_DIR)/library.str \
@@ -1127,14 +1127,14 @@
$(SRC_DIR)/call/pcc.str $(SRC_DIR)/pmc/pmc_fixedintegerarray.h \
$(SRC_DIR)/pmc/pmc_key.h $(SRC_DIR)/pmc/pmc_continuation.h
-$(SRC_DIR)/inter_cb$(O) : $(SRC_DIR)/inter_cb.c $(GENERAL_H_FILES) \
- $(SRC_DIR)/inter_cb.str
+$(SRC_DIR)/interp/inter_cb$(O) : $(SRC_DIR)/interp/inter_cb.c \
+ $(GENERAL_H_FILES) $(SRC_DIR)/interp/inter_cb.str
-$(SRC_DIR)/inter_misc$(O) : $(SRC_DIR)/inter_misc.c $(GENERAL_H_FILES) \
- $(SRC_DIR)/inter_misc.str
+$(SRC_DIR)/interp/inter_misc$(O) : $(SRC_DIR)/interp/inter_misc.c \
+ $(GENERAL_H_FILES) $(SRC_DIR)/interp/inter_misc.str
-$(SRC_DIR)/inter_create$(O) : $(SRC_DIR)/inter_create.c $(GENERAL_H_FILES) \
- $(SRC_DIR)/inter_create.str
+$(SRC_DIR)/interp/inter_create$(O) : $(SRC_DIR)/interp/inter_create.c \
+ $(GENERAL_H_FILES) $(SRC_DIR)/interp/inter_create.str
$(SRC_DIR)/call/ops$(O) : $(SRC_DIR)/call/ops.c $(GENERAL_H_FILES) \
$(SRC_DIR)/pmc/pmc_continuation.h
Modified: branches/headercleanup/include/parrot/interpreter.h
==============================================================================
--- branches/headercleanup/include/parrot/interpreter.h Tue Apr 7 18:38:30 2009 (r37949)
+++ branches/headercleanup/include/parrot/interpreter.h Tue Apr 7 21:01:10 2009 (r37950)
@@ -497,7 +497,7 @@
typedef PMC *(*Parrot_compiler_func_t)(PARROT_INTERP,
const char * program);
-/* HEADERIZER BEGIN: src/inter_create.c */
+/* HEADERIZER BEGIN: src/interp/inter_create.c */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
PARROT_EXPORT
@@ -519,9 +519,9 @@
#define ASSERT_ARGS_Parrot_really_destroy __attribute__unused__ int _ASSERT_ARGS_CHECK = \
PARROT_ASSERT_ARG(interp)
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-/* HEADERIZER END: src/inter_create.c */
+/* HEADERIZER END: src/interp/inter_create.c */
-/* HEADERIZER BEGIN: src/inter_cb.c */
+/* HEADERIZER BEGIN: src/interp/inter_cb.c */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
PARROT_EXPORT
@@ -574,9 +574,9 @@
|| PARROT_ASSERT_ARG(user_data) \
|| PARROT_ASSERT_ARG(external_data)
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-/* HEADERIZER END: src/inter_cb.c */
+/* HEADERIZER END: src/interp/inter_cb.c */
-/* HEADERIZER BEGIN: src/inter_misc.c */
+/* HEADERIZER BEGIN: src/interp/inter_misc.c */
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
PARROT_EXPORT
@@ -678,7 +678,7 @@
#define ASSERT_ARGS_sysinfo_s __attribute__unused__ int _ASSERT_ARGS_CHECK = \
PARROT_ASSERT_ARG(interp)
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-/* HEADERIZER END: src/inter_misc.c */
+/* HEADERIZER END: src/interp/inter_misc.c */
/* interpreter.c */
Deleted: branches/headercleanup/src/inter_cb.c
==============================================================================
--- branches/headercleanup/src/inter_cb.c Tue Apr 7 21:01:10 2009 (r37949)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,406 +0,0 @@
-/*
-Copyright (C) 2001-2008, Parrot Foundation.
-$Id$
-
-=head1 NAME
-
-src/inter_cb.c - Parrot Interpreter - Callback Function Handling
-
-=head1 DESCRIPTION
-
-NCI callback functions may run whenever the C code executes the callback.
-To be prepared for asynchronous callbacks these are converted to callback
-events.
-
-Often callbacks should run synchronously. This can only happen when
-the C-library calls the callback, because Parrot called a function in
-the C-library.
-
-=head2 Functions
-
-=over 4
-
-=cut
-
-*/
-
-#include "parrot/parrot.h"
-#include "inter_cb.str"
-
-
-/* HEADERIZER HFILE: include/parrot/interpreter.h */
-
-/* HEADERIZER BEGIN: static */
-/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-
-static void callback_CD(PARROT_INTERP,
- ARGIN(char *external_data),
- ARGMOD(PMC *user_data))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- __attribute__nonnull__(3)
- FUNC_MODIFIES(*user_data);
-
-static void verify_CD(ARGIN(char *external_data), ARGMOD(PMC *user_data))
- __attribute__nonnull__(1)
- __attribute__nonnull__(2)
- FUNC_MODIFIES(*user_data);
-
-#define ASSERT_ARGS_callback_CD __attribute__unused__ int _ASSERT_ARGS_CHECK = \
- PARROT_ASSERT_ARG(interp) \
- || PARROT_ASSERT_ARG(external_data) \
- || PARROT_ASSERT_ARG(user_data)
-#define ASSERT_ARGS_verify_CD __attribute__unused__ int _ASSERT_ARGS_CHECK = \
- PARROT_ASSERT_ARG(external_data) \
- || PARROT_ASSERT_ARG(user_data)
-/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-/* HEADERIZER END: static */
-
-/*
-
-=item C<PMC* Parrot_make_cb(PARROT_INTERP, PMC* sub, PMC* user_data, STRING
-*cb_signature)>
-
-Create a callback function according to pdd16.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PARROT_CANNOT_RETURN_NULL
-PARROT_WARN_UNUSED_RESULT
-PMC*
-Parrot_make_cb(PARROT_INTERP, ARGMOD(PMC* sub), ARGIN(PMC* user_data),
- ARGIN(STRING *cb_signature))
-{
- ASSERT_ARGS(Parrot_make_cb)
- PMC *cb, *cb_sig;
- int type;
- char * sig_str;
- STRING *sc;
- /*
- * we stuff all the information into the user_data PMC and pass that
- * on to the external sub
- */
- PMC * const interp_pmc = VTABLE_get_pmc_keyed_int(interp, interp->iglobals,
- (INTVAL) IGLOBALS_INTERPRETER);
-
- /* be sure __LINE__ is consistent */
- sc = CONST_STRING(interp, "_interpreter");
- VTABLE_setprop(interp, user_data, sc, interp_pmc);
- sc = CONST_STRING(interp, "_sub");
- VTABLE_setprop(interp, user_data, sc, sub);
- /* only ASCII signatures are supported */
- sig_str = cb_signature->strstart;
-
- if (strlen(sig_str) != 3)
- Parrot_ex_throw_from_c_args(interp, NULL, 1,
- "unhandled signature '%s' in make_cb", cb_signature->strstart);
-
- ++sig_str; /* Skip callback return type */
-
- if (*sig_str == 'U') {
- type = 'D';
- }
- else {
- ++sig_str;
- if (*sig_str == 'U') {
- type = 'C';
- }
- else {
- Parrot_ex_throw_from_c_args(interp, NULL, 1,
- "unhandled signature '%s' in make_cb", cb_signature->strstart);
- }
- }
-
- cb_sig = pmc_new(interp, enum_class_String);
- VTABLE_set_string_native(interp, cb_sig, cb_signature);
- sc = CONST_STRING(interp, "_signature");
- VTABLE_setprop(interp, user_data, sc, cb_sig);
- /*
- * We are going to be passing the user_data PMC to external code, but
- * it may go out of scope until the callback is called -- we don't know
- * for certain as we don't know when the callback will be called.
- * Therefore, to prevent the PMC from being destroyed by a GC sweep,
- * we need to anchor it.
- *
- */
- gc_register_pmc(interp, user_data);
-
- /*
- * Finally, the external lib awaits a function pointer.
- * Create a PMC that points to Parrot_callback_C (or _D);
- * it can be passed on with signature 'p'.
- */
- cb = pmc_new(interp, enum_class_UnManagedStruct);
- /*
- * Currently, we handle only 2 types:
- * _C ... user_data is 2nd parameter
- * _D ... user_data is 1st parameter
- */
- if (type == 'C')
- VTABLE_set_pointer(interp, cb, F2DPTR(Parrot_callback_C));
- else
- VTABLE_set_pointer(interp, cb, F2DPTR(Parrot_callback_D));
- gc_register_pmc(interp, cb);
-
- return cb;
-}
-
-/*
-
-=item C<static void verify_CD(char *external_data, PMC *user_data)>
-
-Verify user_data PMC then continue with callback_CD
-
-=cut
-
-*/
-
-static void
-verify_CD(ARGIN(char *external_data), ARGMOD(PMC *user_data))
-{
- ASSERT_ARGS(verify_CD)
- PARROT_INTERP = NULL;
- size_t i;
-
- /*
- * 1.) user_data is from external code so:
- * verify that we get a PMC that is one that we have passed in
- * as user data, when we prepared the callback
- */
-
- /* a NULL pointer or a pointer not aligned is very likely wrong */
- if (!user_data || ((UINTVAL)user_data & 3))
- PANIC(interp, "user_data doesn't look like a pointer");
-
- /*
- * We don't yet know which interpreter this PMC is from, so run
- * through all of the existing interpreters and check their PMC
- * pools
- */
- LOCK(interpreter_array_mutex);
- for (i = 0; i < n_interpreters; ++i) {
- if (interpreter_array[i] == NULL)
- continue;
- interp = interpreter_array[i];
- if (interp)
- if (contained_in_pool(interp->arena_base->pmc_pool, user_data))
- break;
- }
- UNLOCK(interpreter_array_mutex);
- if (!interp)
- PANIC(interp, "interpreter not found for callback");
-
- /*
- * 2) some more checks
- * now we should have the interpreter where that callback
- * did originate - do some further checks on the PMC
- */
-
- /* if that doesn't look like a PMC we are still lost */
- if (!PObj_is_PMC_TEST(user_data))
- PANIC(interp, "user_data isn't a PMC");
-
- if (!user_data->vtable)
- PANIC(interp, "user_data hasn't a vtable");
- /*
- * ok fine till here
- */
- callback_CD(interp, external_data, user_data);
-}
-
-/*
-
-=item C<static void callback_CD(PARROT_INTERP, char *external_data, PMC
-*user_data)>
-
-Common callback function handler. See pdd16.
-
-=cut
-
-*/
-
-static void
-callback_CD(PARROT_INTERP, ARGIN(char *external_data), ARGMOD(PMC *user_data))
-{
- ASSERT_ARGS(callback_CD)
-
- PMC *passed_interp; /* the interp that originated the CB */
- PMC *passed_synchronous; /* flagging synchronous execution */
- int synchronous = 0; /* cb is hitting this sub somewhen
- * inmidst, or not */
- STRING *sc;
- /*
- * 3) check interpreter ...
- */
- sc = CONST_STRING(interp, "_interpreter");
- passed_interp = VTABLE_getprop(interp, user_data, sc);
- if (VTABLE_get_pointer(interp, passed_interp) != interp)
- PANIC(interp, "callback gone to wrong interpreter");
-
- sc = CONST_STRING(interp, "_synchronous");
- passed_synchronous = VTABLE_getprop(interp, user_data, sc);
- if (!PMC_IS_NULL(passed_synchronous) &&
- VTABLE_get_bool(interp, passed_synchronous))
- synchronous = 1;
-
- /*
- * 4) check if the call_back is synchronous:
- * - if yes we are inside the NCI call
- * we could run the Sub immediately now (I think)
- * - if no, and that's always safe, post a callback event
- */
-
- if (synchronous) {
- /*
- * just call the sub
- */
- Parrot_run_callback(interp, user_data, external_data);
- }
- else {
- /*
- * create a CB_EVENT, put user_data and data inside and finito
- *
- * *if* this function is finally no void, i.e. the calling
- * C program awaits a return result from the callback,
- * then wait for the CB_EVENT_xx to finish and return the
- * result
- */
- Parrot_cx_schedule_callback(interp, user_data, external_data);
- }
-}
-
-/*
-
-=item C<void Parrot_run_callback(PARROT_INTERP, PMC* user_data, char*
-external_data)>
-
-Run a callback function. The PMC* user_data holds all
-necessary items in its properties.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-void
-Parrot_run_callback(PARROT_INTERP,
- ARGMOD(PMC* user_data), ARGIN(char* external_data))
-{
- ASSERT_ARGS(Parrot_run_callback)
- PMC *signature;
- PMC *sub;
- STRING *sig_str;
- char *p;
- char pasm_sig[4];
- INTVAL i_param;
- PMC *p_param;
- void *param = NULL; /* avoid -Ox warning */
- STRING *sc;
-
- sc = CONST_STRING(interp, "_sub");
- sub = VTABLE_getprop(interp, user_data, sc);
- sc = CONST_STRING(interp, "_signature");
- signature = VTABLE_getprop(interp, user_data, sc);
-
- sig_str = VTABLE_get_string(interp, signature);
- p = sig_str->strstart;
- ++p; /* Skip return type */
-
- pasm_sig[0] = 'v'; /* no return value supported yet */
- pasm_sig[1] = 'P';
- if (*p == 'U') /* user_data Z in pdd16 */
- ++p; /* p is now type of external data */
- switch (*p) {
- case 'v':
- pasm_sig[2] = 'v';
- break;
-#if 0
- case '2':
- case '3':
- case '4':
-#endif
- case 'l':
- i_param = (INTVAL)(long) external_data;
- goto case_I;
- case 'i':
- i_param = (INTVAL)(int)(long) external_data;
- goto case_I;
- case 's':
- i_param = (INTVAL)(short)(long) external_data;
- goto case_I;
- case 'c':
- i_param = (INTVAL)(char)(long)external_data;
-case_I:
- pasm_sig[2] = 'I';
- param = (void*) i_param;
- break;
-#if 0
- case 'f':
- case 'd':
- /* these types don't fit into a pointer, they will not
- * work
- */
- break;
-#endif
- case 'p':
- /* created a UnManagedStruct */
- p_param = pmc_new(interp, enum_class_UnManagedStruct);
- VTABLE_set_pointer(interp, p_param, external_data);
- pasm_sig[2] = 'P';
- param = (void*) p_param;
- break;
-#if 0
- case 'P':
- pasm_sig[2] = 'P';
- break;
-#endif
- case 't':
- pasm_sig[2] = 'S';
- param = Parrot_str_new(interp, external_data, 0);
- break;
- default:
- Parrot_ex_throw_from_c_args(interp, NULL, 1,
- "unhandled signature char '%c' in run_cb", *p);
- }
- pasm_sig[3] = '\0';
- Parrot_runops_fromc_args_event(interp, sub, pasm_sig,
- user_data, param);
-}
-/*
-
-=item C<void Parrot_callback_C(char *external_data, PMC *user_data)>
-
-=item C<void Parrot_callback_D(PMC *user_data, char *external_data)>
-
-NCI callback functions. See pdd16.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-void
-Parrot_callback_C(ARGIN(char *external_data), ARGMOD(PMC *user_data))
-{
- ASSERT_ARGS(Parrot_callback_C)
- verify_CD(external_data, user_data);
-}
-
-PARROT_EXPORT
-void
-Parrot_callback_D(ARGMOD(PMC *user_data), ARGIN(char *external_data))
-{
- ASSERT_ARGS(Parrot_callback_D)
- verify_CD(external_data, user_data);
-}
-
-
-/*
- * Local variables:
- * c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */
Deleted: branches/headercleanup/src/inter_create.c
==============================================================================
--- branches/headercleanup/src/inter_create.c Tue Apr 7 21:01:10 2009 (r37949)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,494 +0,0 @@
-/*
-Copyright (C) 2001-2009, Parrot Foundation.
-$Id$
-
-=head1 NAME
-
-src/inter_create.c - Parrot Interpreter Creation and Destruction
-
-=head1 DESCRIPTION
-
-Create or destroy a Parrot interpreter
-
-=head2 Functions
-
-=over 4
-
-=cut
-
-*/
-
-
-#include "parrot/parrot.h"
-#include "parrot/oplib/core_ops.h"
-#include "../compilers/imcc/imc.h"
-#include "inter_create.str"
-
-/* HEADERIZER HFILE: include/parrot/interpreter.h */
-
-/* HEADERIZER BEGIN: static */
-/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-
-PARROT_WARN_UNUSED_RESULT
-static int is_env_var_set(ARGIN(const char* var))
- __attribute__nonnull__(1);
-
-static void setup_default_compreg(PARROT_INTERP)
- __attribute__nonnull__(1);
-
-#define ASSERT_ARGS_is_env_var_set __attribute__unused__ int _ASSERT_ARGS_CHECK = \
- PARROT_ASSERT_ARG(var)
-#define ASSERT_ARGS_setup_default_compreg __attribute__unused__ int _ASSERT_ARGS_CHECK = \
- PARROT_ASSERT_ARG(interp)
-/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
-/* HEADERIZER END: static */
-
-#if EXEC_CAPABLE
- extern int Parrot_exec_run;
-#endif
-
-#if EXEC_CAPABLE
-Interp interpre;
-#endif
-
-#define ATEXIT_DESTROY
-
-/*
-
-=item C<static int is_env_var_set(const char* var)>
-
-Checks whether the specified environment variable is set.
-
-=cut
-
-*/
-
-PARROT_WARN_UNUSED_RESULT
-static int
-is_env_var_set(ARGIN(const char* var))
-{
- ASSERT_ARGS(is_env_var_set)
- int free_it, retval;
- char* const value = Parrot_getenv(var, &free_it);
- if (value == NULL)
- retval = 0;
- else if (*value == '\0')
- retval = 0;
- else
- retval = !STREQ(value, "0");
- if (free_it)
- mem_sys_free(value);
- return retval;
-}
-
-/*
-
-=item C<static void setup_default_compreg(PARROT_INTERP)>
-
-Setup default compiler for PASM.
-
-=cut
-
-*/
-
-static void
-setup_default_compreg(PARROT_INTERP)
-{
- ASSERT_ARGS(setup_default_compreg)
- STRING * const pasm1 = CONST_STRING(interp, "PASM1");
-
- /* register the nci compiler object */
- Parrot_compreg(interp, pasm1, (Parrot_compiler_func_t)PDB_compile);
-}
-
-/*
-
-=item C<Parrot_Interp make_interpreter(Interp *parent, INTVAL flags)>
-
-Create the Parrot interpreter. Allocate memory and clear the registers.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PARROT_CANNOT_RETURN_NULL
-Parrot_Interp
-make_interpreter(ARGIN_NULLOK(Interp *parent), INTVAL flags)
-{
- ASSERT_ARGS(make_interpreter)
- int stacktop;
- Interp *interp;
-
- /* Get an empty interpreter from system memory */
-#if EXEC_CAPABLE
- if (Parrot_exec_run)
- interp = &interpre;
- else
-#endif
- interp = mem_allocate_zeroed_typed(Interp);
-
- interp->lo_var_ptr = NULL;
-
- /* the last interpreter (w/o) parent has to cleanup globals
- * so remember parent if any */
- if (parent)
- interp->parent_interpreter = parent;
- else {
- interp->parent_interpreter = NULL;
- PMCNULL = NULL;
- /*
- * we need a global mutex to protect the interpreter array
- */
- MUTEX_INIT(interpreter_array_mutex);
- }
-
- create_initial_context(interp);
- interp->resume_flag = RESUME_INITIAL;
-
- /* main is called as a Sub too - this will get depth 0 then */
- CONTEXT(interp)->recursion_depth = (UINTVAL)-1;
- interp->recursion_limit = RECURSION_LIMIT;
-
- /* Must initialize flags here so the GC_DEBUG stuff is available before
- * mem_setup_allocator() is called. */
- interp->flags = flags;
-
- /* PANIC will fail until this is done */
- interp->piodata = NULL;
- Parrot_io_init(interp);
-
- if (is_env_var_set("PARROT_GC_DEBUG")) {
-#if ! DISABLE_GC_DEBUG
- Interp_flags_SET(interp, PARROT_GC_DEBUG_FLAG);
-#else
- fprintf(stderr, "PARROT_GC_DEBUG is set but the binary was compiled "
- "with DISABLE_GC_DEBUG.\n");
-#endif
- }
-
- /* Set up the memory allocation system */
- mem_setup_allocator(interp, (void*)&stacktop);
- Parrot_block_GC_mark(interp);
- Parrot_block_GC_sweep(interp);
-
- /*
- * Set up the string subsystem
- * This also generates the constant string tables
- */
- Parrot_str_init(interp);
-
- /* Set up the MMD struct */
- interp->binop_mmd_funcs = NULL;
-
- /* MMD cache for builtins. */
- interp->op_mmd_cache = Parrot_mmd_cache_create(interp);
-
- /* create caches structure */
- init_object_cache(interp);
-
- /* initialize classes - this needs mmd func table */
- interp->HLL_info = NULL;
- init_world_once(interp);
-
- /* context data */
- /* Initialize interpreter's flags */
- PARROT_WARNINGS_off(interp, PARROT_WARNINGS_ALL_FLAG);
-
- /* same with errors */
- PARROT_ERRORS_off(interp, PARROT_ERRORS_ALL_FLAG);
-
- /* undefined globals are errors by default */
- PARROT_ERRORS_on(interp, PARROT_ERRORS_GLOBALS_FLAG);
-
- /* param count mismatch is an error by default */
- PARROT_ERRORS_on(interp, PARROT_ERRORS_PARAM_COUNT_FLAG);
-
-#if 0
- /* TODO not yet - too many test failures */
- PARROT_ERRORS_on(interp, PARROT_ERRORS_RESULT_COUNT_FLAG);
-#endif
-
- /* allocate stack chunk cache */
- stack_system_init(interp);
-
- /* And a dynamic environment stack */
- interp->dynamic_env = new_stack(interp, "DynamicEnv");
-
- /* clear context introspection vars */
- CONTEXT(interp)->current_sub = NULL;
- CONTEXT(interp)->current_cont = NULL;
- CONTEXT(interp)->current_object = NULL;
-
- /* Load the core op func and info tables */
- interp->op_lib = PARROT_CORE_OPLIB_INIT(1);
- interp->op_count = interp->op_lib->op_count;
- interp->op_func_table = interp->op_lib->op_func_table;
- interp->op_info_table = interp->op_lib->op_info_table;
- interp->all_op_libs = NULL;
- interp->evc_func_table = NULL;
- interp->save_func_table = NULL;
- interp->code = NULL;
- interp->profile = NULL;
-
- /* create the root set registry */
- interp->gc_registry = pmc_new(interp, enum_class_AddrRegistry);
-
- /* create exceptions list */
- interp->current_runloop_id = 0;
- interp->current_runloop_level = 0;
-
- /* register assembler/compilers */
- setup_default_compreg(interp);
-
- /* setup stdio PMCs */
- Parrot_io_init(interp);
-
- /* init IMCC compiler */
- imcc_init(interp);
-
- /* Done. Return and be done with it */
-
- /* Okay, we've finished doing anything that might trigger GC.
- * Actually, we could enable GC earlier, but here all setup is
- * done
- */
- Parrot_unblock_GC_mark(interp);
- Parrot_unblock_GC_sweep(interp);
-
- /* all sys running, init the event and signal stuff
- * the first or "master" interpreter is handling events and signals
- */
- interp->task_queue = NULL;
- interp->thread_data = NULL;
-
- Parrot_cx_init_scheduler(interp);
-
-#ifdef ATEXIT_DESTROY
- /*
- * if this is not a threaded interpreter, push the interpreter
- * destruction.
- * Threaded interpreters are destructed when the thread ends
- */
- if (!Interp_flags_TEST(interp, PARROT_IS_THREAD))
- Parrot_on_exit(interp, Parrot_really_destroy, NULL);
-#endif
-
- return interp;
-}
-
-/*
-
-=item C<void Parrot_destroy(PARROT_INTERP)>
-
-Does nothing if C<ATEXIT_DESTROY> is defined. Otherwise calls
-C<Parrot_really_destroy()> with exit code 0.
-
-This function is not currently used.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-void
-Parrot_destroy(PARROT_INTERP)
-{
- ASSERT_ARGS(Parrot_destroy)
-#ifdef ATEXIT_DESTROY
- UNUSED(interp);
-#else
- Parrot_really_destroy(interp, 0);
-#endif
-}
-
-/*
-
-=item C<void Parrot_really_destroy(PARROT_INTERP, int exit_code, void *arg)>
-
-Waits for any threads to complete, then frees all allocated memory, and
-closes any open file handles, etc.
-
-Note that C<exit_code> is ignored.
-
-=cut
-
-*/
-
-void
-Parrot_really_destroy(PARROT_INTERP, SHIM(int exit_code), SHIM(void *arg))
-{
- ASSERT_ARGS(Parrot_really_destroy)
- /* wait for threads to complete if needed; terminate the event loop */
- if (!interp->parent_interpreter) {
- Parrot_cx_runloop_end(interp);
- pt_join_threads(interp);
- }
-
- /* if something needs destruction (e.g. closing PIOs)
- * we must destroy it now:
- *
- * Be sure that an async collector hasn't live bits set now, so
- * trigger a finish run
- *
- * Need to turn off GC blocking, else things stay alive and IO
- * handles aren't closed
- */
- interp->arena_base->gc_mark_block_level = 0;
- interp->arena_base->gc_sweep_block_level = 0;
-
- if (Interp_trace_TEST(interp, ~0)) {
- Parrot_io_eprintf(interp, "FileHandle objects (like stdout and stderr)"
- "are about to be closed, so clearing trace flags.\n");
- Interp_trace_CLEAR(interp, ~0);
- }
-
- /* Destroys all PMCs, even constants and the FileHandle objects for
- * std{in, out, err}, so don't be verbose about GC'ing. */
- if (interp->thread_data)
- interp->thread_data->state |= THREAD_STATE_SUSPENDED_GC;
-
- Parrot_do_gc_run(interp, GC_finish_FLAG);
-
- /*
- * that doesn't get rid of constant PMCs like these in vtable->data
- * so if such a PMC needs destroying, we get a memory leak, like for
- * the SharedRef PMC
- * TODO sweep constants too or special treatment - depends on how
- * many constant PMCs we'll create
- */
-
- /* destroy IMCC compiler */
- imcc_destroy(interp);
-
- /* Now the PIOData gets also cleared */
- Parrot_io_finish(interp);
-
- /*
- * now all objects that need timely destruction should be finalized
- * so terminate the event loop
- */
- /* if (!interp->parent_interpreter) {
- PIO_internal_shutdown(interp);
- Parrot_kill_event_loop(interp);
- }
- */
-
- /* we destroy all child interpreters and the last one too,
- * if the --leak-test commandline was given
- */
- if (! (interp->parent_interpreter ||
- Interp_flags_TEST(interp, PARROT_DESTROY_FLAG)))
- return;
-
- if (interp->parent_interpreter
- && interp->thread_data
- && (interp->thread_data->state & THREAD_STATE_JOINED)) {
- Parrot_merge_header_pools(interp->parent_interpreter, interp);
- Parrot_merge_memory_pools(interp->parent_interpreter, interp);
- }
-
- if (interp->arena_base->finalize_gc_system)
- interp->arena_base->finalize_gc_system(interp);
-
- /* MMD cache */
- Parrot_mmd_cache_destroy(interp, interp->op_mmd_cache);
-
- /* copies of constant tables */
- Parrot_destroy_constants(interp);
-
- /* buffer headers, PMCs */
- Parrot_destroy_header_pools(interp);
-
- /* memory pools in resources */
- Parrot_destroy_memory_pools(interp);
-
- /* mem subsystem is dead now */
- mem_sys_free(interp->arena_base);
- interp->arena_base = NULL;
-
- /* cache structure */
- destroy_object_cache(interp);
-
- /* packfile */
- if (interp->initial_pf)
- PackFile_destroy(interp, interp->initial_pf);
-
- if (interp->profile) {
- mem_sys_free(interp->profile->data);
- interp->profile->data = NULL;
- mem_sys_free(interp->profile);
- interp->profile = NULL;
- }
-
- /* deinit op_lib */
- (void) PARROT_CORE_OPLIB_INIT(0);
-
- stack_destroy(interp->dynamic_env);
-
- destroy_context(interp);
- destroy_runloop_jump_points(interp);
-
- if (interp->evc_func_table) {
- mem_sys_free(interp->evc_func_table);
- interp->evc_func_table = NULL;
- }
-
- /* strings, charsets, encodings - only once */
- Parrot_str_finish(interp);
-
- if (!interp->parent_interpreter) {
- if (interp->thread_data)
- mem_sys_free(interp->thread_data);
-
- /* free vtables */
- parrot_free_vtables(interp);
-
- /* dynop libs */
- if (interp->n_libs > 0) {
- mem_sys_free(interp->op_info_table);
- mem_sys_free(interp->op_func_table);
- }
-
- MUTEX_DESTROY(interpreter_array_mutex);
- mem_sys_free(interp);
-
- /* finally free other globals */
- mem_sys_free(interpreter_array);
- interpreter_array = NULL;
- }
-
- else {
- /* don't free a thread interpreter, if it isn't joined yet */
- if (!interp->thread_data
- || (interp->thread_data
- && (interp->thread_data->state & THREAD_STATE_JOINED))) {
- if (interp->thread_data) {
- mem_sys_free(interp->thread_data);
- interp->thread_data = NULL;
- }
-
- mem_sys_free(interp);
- }
- }
-}
-
-
-/*
-
-=back
-
-=head1 SEE ALSO
-
-L<include/parrot/interpreter.h>, L<src/interp/interpreter.c>.
-
-=cut
-
-*/
-
-/*
- * Local variables:
- * c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */
Deleted: branches/headercleanup/src/inter_misc.c
==============================================================================
--- branches/headercleanup/src/inter_misc.c Tue Apr 7 21:01:10 2009 (r37949)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,496 +0,0 @@
-/*
-Copyright (C) 2001-2008, Parrot Foundation.
-$Id$
-
-=head1 NAME
-
-src/inter_misc.c - Parrot Interpreter miscellaneous functions
-
-=head1 DESCRIPTION
-
-NCI function setup, compiler registration, C<interpinfo>, and C<sysinfo> opcodes.
-
-=head2 Functions
-
-=over 4
-
-=cut
-
-*/
-
-
-#include "parrot/parrot.h"
-#include "inter_misc.str"
-#include "../compilers/imcc/imc.h"
-
-#include "parrot/has_header.h"
-
-#ifdef PARROT_HAS_HEADER_SYSUTSNAME
-# include <sys/utsname.h>
-#endif
-
-/* HEADERIZER HFILE: include/parrot/interpreter.h */
-
-/*
-
-=item C<void register_nci_method(PARROT_INTERP, const int type, void *func,
-const char *name, const char *proto)>
-
-Create an entry in the C<nci_method_table> for the given NCI method of PMC
-class C<type>.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-void
-register_nci_method(PARROT_INTERP, const int type, ARGIN(void *func),
- ARGIN(const char *name), ARGIN(const char *proto))
-{
- ASSERT_ARGS(register_nci_method)
- PMC * const method = pmc_new(interp, enum_class_NCI);
- STRING * const method_name = string_make(interp, name, strlen(name),
- NULL, PObj_constant_FLAG|PObj_external_FLAG);
-
- /* create call func */
- VTABLE_set_pointer_keyed_str(interp, method,
- string_make(interp, proto, strlen(proto), NULL,
- PObj_constant_FLAG|PObj_external_FLAG),
- func);
-
- /* insert it into namespace */
- VTABLE_set_pmc_keyed_str(interp, interp->vtables[type]->_namespace,
- method_name, method);
-}
-
-/*
-
-=item C<void register_raw_nci_method_in_ns(PARROT_INTERP, const int type, void
-*func, const char *name)>
-
-Create an entry in the C<nci_method_table> for the given raw NCI method
-of PMC class C<type>.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-void
-register_raw_nci_method_in_ns(PARROT_INTERP, const int type, ARGIN(void *func),
- ARGIN(const char *name))
-{
- ASSERT_ARGS(register_raw_nci_method_in_ns)
- PMC * const method = pmc_new(interp, enum_class_NCI);
- STRING * const method_name = string_make(interp, name, strlen(name),
- NULL, PObj_constant_FLAG|PObj_external_FLAG);
-
- /* setup call func */
- VTABLE_set_pointer(interp, method, func);
-
- /* insert it into namespace */
- VTABLE_set_pmc_keyed_str(interp, interp->vtables[type]->_namespace,
- method_name, method);
-}
-
-/*
-
-=item C<void Parrot_mark_method_writes(PARROT_INTERP, int type, const char
-*name)>
-
-Mark the method C<name> on PMC type C<type> as one that modifies the PMC.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-void
-Parrot_mark_method_writes(PARROT_INTERP, int type, ARGIN(const char *name))
-{
- ASSERT_ARGS(Parrot_mark_method_writes)
- STRING *const str_name = Parrot_str_new_constant(interp, name);
- PMC *const pmc_true = pmc_new(interp, enum_class_Integer);
- PMC *const method = VTABLE_get_pmc_keyed_str(
- interp, interp->vtables[type]->_namespace, str_name);
- VTABLE_set_integer_native(interp, pmc_true, 1);
- VTABLE_setprop(interp, method, CONST_STRING(interp, "write"), pmc_true);
-}
-
-/*
-
-=item C<void Parrot_compreg(PARROT_INTERP, STRING *type, Parrot_compiler_func_t
-func)>
-
-Register a parser/compiler function.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-void
-Parrot_compreg(PARROT_INTERP, ARGIN(STRING *type),
- NOTNULL(Parrot_compiler_func_t func))
-{
- ASSERT_ARGS(Parrot_compreg)
- PMC* const iglobals = interp->iglobals;
- PMC *nci = pmc_new(interp, enum_class_NCI);
- STRING *sc = CONST_STRING(interp, "PJt");
- PMC *hash = VTABLE_get_pmc_keyed_int(interp, interp->iglobals,
- IGLOBALS_COMPREG_HASH);
-
- if (!hash) {
- hash = pmc_new_noinit(interp, enum_class_Hash);
- VTABLE_init(interp, hash);
- VTABLE_set_pmc_keyed_int(interp, iglobals,
- (INTVAL)IGLOBALS_COMPREG_HASH, hash);
- }
-
- VTABLE_set_pmc_keyed_str(interp, hash, type, nci);
-
- /* build native call interface for the C sub in "func" */
- VTABLE_set_pointer_keyed_str(interp, nci, sc, (void*)func);
-}
-
-/*
-
-=item C<void * Parrot_compile_file(PARROT_INTERP, const char *fullname, STRING
-**error)>
-
-Compile code file.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PARROT_CANNOT_RETURN_NULL
-void *
-Parrot_compile_file(PARROT_INTERP, ARGIN(const char *fullname), ARGOUT(STRING **error))
-{
- ASSERT_ARGS(Parrot_compile_file)
- return IMCC_compile_file_s(interp, fullname, error);
-}
-
-#ifdef GC_IS_MALLOC
-# if 0
-struct mallinfo {
- int arena; /* non-mmapped space allocated from system */
- int ordblks; /* number of free chunks */
- int smblks; /* number of fastbin blocks */
- int hblks; /* number of mmapped regions */
- int hblkhd; /* space in mmapped regions */
- int usmblks; /* maximum total allocated space */
- int fsmblks; /* space available in freed fastbin blocks */
- int uordblks; /* total allocated space */
- int fordblks; /* total free space */
- int keepcost; /* top-most, releasable (via malloc_trim)
- * space */
-};
-# endif
-extern struct mallinfo mallinfo(void);
-#endif /* GC_IS_MALLOC */
-
-/*
-
-=item C<INTVAL interpinfo(PARROT_INTERP, INTVAL what)>
-
-C<what> specifies the type of information you want about the
-interpreter.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-INTVAL
-interpinfo(PARROT_INTERP, INTVAL what)
-{
- ASSERT_ARGS(interpinfo)
- INTVAL ret = 0;
- int j;
- Arenas *arena_base = interp->arena_base;
-
- switch (what) {
- case TOTAL_MEM_ALLOC:
-#ifdef GC_IS_MALLOC
-# if 0
- interp->memory_allocated = mallinfo().uordblks;
-# endif
-#endif
- ret = arena_base->memory_allocated;
- break;
- case GC_MARK_RUNS:
- ret = arena_base->gc_mark_runs;
- break;
- case GC_LAZY_MARK_RUNS:
- ret = arena_base->gc_lazy_mark_runs;
- break;
- case GC_COLLECT_RUNS:
- ret = arena_base->gc_collect_runs;
- break;
- case ACTIVE_PMCS:
- ret = arena_base->pmc_pool->total_objects -
- arena_base->pmc_pool->num_free_objects;
- break;
- case ACTIVE_BUFFERS:
- ret = 0;
- for (j = 0; j < (INTVAL)arena_base->num_sized; j++) {
- Small_Object_Pool * const header_pool =
- arena_base->sized_header_pools[j];
- if (header_pool)
- ret += header_pool->total_objects -
- header_pool->num_free_objects;
- }
- break;
- case TOTAL_PMCS:
- ret = arena_base->pmc_pool->total_objects;
- break;
- case TOTAL_BUFFERS:
- ret = 0;
- for (j = 0; j < (INTVAL)arena_base->num_sized; j++) {
- Small_Object_Pool * const header_pool =
- arena_base->sized_header_pools[j];
- if (header_pool)
- ret += header_pool->total_objects;
- }
- break;
- case HEADER_ALLOCS_SINCE_COLLECT:
- ret = arena_base->header_allocs_since_last_collect;
- break;
- case MEM_ALLOCS_SINCE_COLLECT:
- ret = arena_base->mem_allocs_since_last_collect;
- break;
- case TOTAL_COPIED:
- ret = arena_base->memory_collected;
- break;
- case IMPATIENT_PMCS:
- ret = arena_base->num_early_gc_PMCs;
- break;
- case EXTENDED_PMCS:
- ret = arena_base->num_extended_PMCs;
- break;
- case CURRENT_RUNCORE:
- ret = interp->run_core;
- break;
- default: /* or a warning only? */
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_UNIMPLEMENTED,
- "illegal argument in interpinfo");
- }
- return ret;
-}
-
-/*
-
-=item C<PMC* interpinfo_p(PARROT_INTERP, INTVAL what)>
-
-C<what> specifies the type of information you want about the
-interpreter.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CAN_RETURN_NULL
-PMC*
-interpinfo_p(PARROT_INTERP, INTVAL what)
-{
- ASSERT_ARGS(interpinfo_p)
- switch (what) {
- case CURRENT_SUB:
- return CONTEXT(interp)->current_sub;
- case CURRENT_CONT:
- {
- PMC * const cont = CONTEXT(interp)->current_cont;
- if (!PMC_IS_NULL(cont) && cont->vtable->base_type ==
- enum_class_RetContinuation)
- return VTABLE_clone(interp, cont);
- return cont;
- }
- case CURRENT_OBJECT:
- return CONTEXT(interp)->current_object;
- case CURRENT_LEXPAD:
- return CONTEXT(interp)->lex_pad;
- default: /* or a warning only? */
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_UNIMPLEMENTED,
- "illegal argument in interpinfo");
- }
-}
-
-/*
-
-=item C<STRING* interpinfo_s(PARROT_INTERP, INTVAL what)>
-
-Takes an interpreter name and an information type as arguments.
-Returns corresponding information strings about the interpreter:
-the full pathname, executable name, or the file stem,
-(or throws an error exception, if the type is not recognised).
-Valid types are EXECUTABLE_FULLNAME, EXECUTABLE_BASENAME,
-and RUNTIME_PREFIX.
-
-=cut
-
-*/
-
-PARROT_EXPORT
-PARROT_WARN_UNUSED_RESULT
-PARROT_CANNOT_RETURN_NULL
-STRING*
-interpinfo_s(PARROT_INTERP, INTVAL what)
-{
- ASSERT_ARGS(interpinfo_s)
- switch (what) {
- case EXECUTABLE_FULLNAME:
- {
- PMC *exe_name = VTABLE_get_pmc_keyed_int(interp, interp->iglobals,
- IGLOBALS_EXECUTABLE);
- if (PMC_IS_NULL(exe_name))
- return string_from_literal(interp, "");
- return VTABLE_get_string(interp, exe_name);
- }
- case EXECUTABLE_BASENAME:
- {
- STRING *basename;
- PMC *exe_name = VTABLE_get_pmc_keyed_int(interp,
- interp->iglobals, IGLOBALS_EXECUTABLE);
-
- if (PMC_IS_NULL(exe_name))
- return string_from_literal(interp, "");
-
- else {
- /* Need to strip back to what follows the final / or \. */
- STRING *fullname = VTABLE_get_string(interp, exe_name);
- char *fullname_c = Parrot_str_to_cstring(interp, fullname);
- int pos = strlen(fullname_c) - 1;
-
- while (pos > 0
- && fullname_c[pos] != '/'
- && fullname_c[pos] != '\\')
- pos--;
-
- if (pos > 0)
- pos++;
-
- basename = Parrot_str_new(interp, fullname_c + pos, 0);
- mem_sys_free(fullname_c);
-
- return basename;
- }
- }
- case RUNTIME_PREFIX:
- return Parrot_get_runtime_path(interp);
- default:
- Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_UNIMPLEMENTED,
- "illegal argument in interpinfo");
- }
-}
-
-/*
-
-=item C<INTVAL sysinfo_i(PARROT_INTERP, INTVAL info_wanted)>
-
-Returns the system info.
-
-C<info_wanted> is one of:
-
- PARROT_INTSIZE
- PARROT_FLOATSIZE
- PARROT_POINTERSIZE
- PARROT_INTMAX
- PARROT_INTMIN
-
-In unknown info is requested then -1 is returned.
-
-=cut
-
-*/
-
-PARROT_WARN_UNUSED_RESULT
-INTVAL
-sysinfo_i(SHIM_INTERP, INTVAL info_wanted)
-{
- ASSERT_ARGS(sysinfo_i)
- switch (info_wanted) {
- case PARROT_INTSIZE:
- return sizeof (INTVAL);
- case PARROT_FLOATSIZE:
- return sizeof (FLOATVAL);
- case PARROT_POINTERSIZE:
- return sizeof (void *);
- case PARROT_INTMIN:
- return PARROT_INTVAL_MIN;
- case PARROT_INTMAX:
- return PARROT_INTVAL_MAX;
- default:
- return -1;
- }
-}
-
-/*
-
-=item C<STRING * sysinfo_s(PARROT_INTERP, INTVAL info_wanted)>
-
-Returns the system info string.
-
-C<info_wanted> is one of:
-
- PARROT_OS
- PARROT_OS_VERSION
- PARROT_OS_VERSION_NUMBER
- CPU_ARCH
- CPU_TYPE
-
-If unknown info is requested then an empty string is returned.
-
-=cut
-
-*/
-
-PARROT_CANNOT_RETURN_NULL
-PARROT_WARN_UNUSED_RESULT
-STRING *
-sysinfo_s(PARROT_INTERP, INTVAL info_wanted)
-{
- ASSERT_ARGS(sysinfo_s)
- switch (info_wanted) {
- case PARROT_OS:
- return Parrot_str_new_constant(interp, BUILD_OS_NAME);
- case PARROT_OS_VERSION:
-#ifdef PARROT_HAS_HEADER_SYSUTSNAME
- {
- struct utsname info;
- if (uname(&info) == 0) {
- return string_make(interp, info.version, strlen(info.version), "ascii", 0);
- }
- }
-#endif
- break;
- case PARROT_OS_VERSION_NUMBER:
-#ifdef PARROT_HAS_HEADER_SYSUTSNAME
- {
- struct utsname info;
- if (uname(&info) == 0) {
- return string_make(interp, info.release, strlen(info.version), "ascii", 0);
- }
- }
-#endif
- break;
- case CPU_ARCH:
- return string_make(interp, PARROT_CPU_ARCH, sizeof (PARROT_CPU_ARCH) - 1, "ascii", 0);
- case CPU_TYPE:
- default:
- break;
- }
- return string_from_literal(interp, "");
-}
-
-/*
- * Local variables:
- * c-file-style: "parrot"
- * End:
- * vim: expandtab shiftwidth=4:
- */
Copied and modified: branches/headercleanup/src/interp/inter_cb.c (from r37947, branches/headercleanup/src/inter_cb.c)
==============================================================================
--- branches/headercleanup/src/inter_cb.c Tue Apr 7 18:04:21 2009 (r37947, copy source)
+++ branches/headercleanup/src/interp/inter_cb.c Tue Apr 7 21:01:10 2009 (r37950)
@@ -1,10 +1,10 @@
/*
-Copyright (C) 2001-2008, Parrot Foundation.
+Copyright (C) 2001-2009, Parrot Foundation.
$Id$
=head1 NAME
-src/inter_cb.c - Parrot Interpreter - Callback Function Handling
+src/interp/inter_cb.c - Parrot Interpreter - Callback Function Handling
=head1 DESCRIPTION
Copied and modified: branches/headercleanup/src/interp/inter_create.c (from r37949, branches/headercleanup/src/inter_create.c)
==============================================================================
--- branches/headercleanup/src/inter_create.c Tue Apr 7 18:38:30 2009 (r37949, copy source)
+++ branches/headercleanup/src/interp/inter_create.c Tue Apr 7 21:01:10 2009 (r37950)
@@ -4,7 +4,7 @@
=head1 NAME
-src/inter_create.c - Parrot Interpreter Creation and Destruction
+src/interp/inter_create.c - Parrot Interpreter Creation and Destruction
=head1 DESCRIPTION
Copied and modified: branches/headercleanup/src/interp/inter_misc.c (from r37947, branches/headercleanup/src/inter_misc.c)
==============================================================================
--- branches/headercleanup/src/inter_misc.c Tue Apr 7 18:04:21 2009 (r37947, copy source)
+++ branches/headercleanup/src/interp/inter_misc.c Tue Apr 7 21:01:10 2009 (r37950)
@@ -1,10 +1,10 @@
/*
-Copyright (C) 2001-2008, Parrot Foundation.
+Copyright (C) 2001-2009, Parrot Foundation.
$Id$
=head1 NAME
-src/inter_misc.c - Parrot Interpreter miscellaneous functions
+src/interp/inter_misc.c - Parrot Interpreter miscellaneous functions
=head1 DESCRIPTION
@@ -151,7 +151,7 @@
VTABLE_set_pmc_keyed_str(interp, hash, type, nci);
/* build native call interface for the C sub in "func" */
- VTABLE_set_pointer_keyed_str(interp, nci, sc, (void*)func);
+ VTABLE_set_pointer_keyed_str(interp, nci, sc, (void *)func);
}
/*
Modified: branches/headercleanup/src/interp/interpreter.c
==============================================================================
--- branches/headercleanup/src/interp/interpreter.c Tue Apr 7 18:38:30 2009 (r37949)
+++ branches/headercleanup/src/interp/interpreter.c Tue Apr 7 21:01:10 2009 (r37950)
@@ -1378,8 +1378,8 @@
=head1 SEE ALSO
-F<include/parrot/interpreter.h>, F<src/inter_cb.c>, F<src/inter_create.c>,
- F<src/inter_misc.c>, F<src/call/ops.c>.
+F<include/parrot/interpreter.h>, F<src/interp/inter_cb.c>,
+F<src/interp/inter_create.c>, F<src/interp/inter_misc.c>, F<src/call/ops.c>.
=cut
More information about the parrot-commits
mailing list