Front page | perl.cvs.parrot |
Postings from January 2009
[svn:parrot] r34902 - in trunk: compilers/imcc tools/build
From:
chromatic
Date:
January 3, 2009 13:47
Subject:
[svn:parrot] r34902 - in trunk: compilers/imcc tools/build
Message ID:
20090103214728.BDFC2CB9FA@x12.develooper.com
Author: chromatic
Date: Sat Jan 3 13:47:27 2009
New Revision: 34902
Modified:
trunk/compilers/imcc/imc.h
trunk/compilers/imcc/imcparser.c
trunk/compilers/imcc/imcparser.h
trunk/tools/build/headerizer.pl
Log:
[IMCC] Fixed headerizer for IMCC in maintainer mode, and reran it.
Modified: trunk/compilers/imcc/imc.h
==============================================================================
--- trunk/compilers/imcc/imc.h (original)
+++ trunk/compilers/imcc/imc.h Sat Jan 3 13:47:27 2009
@@ -69,6 +69,38 @@
#define N_ELEMENTS(x) (sizeof (x)/sizeof ((x)[0]))
+/* HEADERIZER BEGIN: compilers/imcc/imcc.y */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+
+PARROT_CANNOT_RETURN_NULL
+Instruction * IMCC_create_itcall_label(PARROT_INTERP)
+ __attribute__nonnull__(1);
+
+void IMCC_itcall_sub(PARROT_INTERP, ARGIN(SymReg *sub))
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(2);
+
+PARROT_CANNOT_RETURN_NULL
+Instruction * INS_LABEL(PARROT_INTERP,
+ ARGMOD_NULLOK(IMC_Unit *unit),
+ ARGMOD(SymReg *r0),
+ int emit)
+ __attribute__nonnull__(1)
+ __attribute__nonnull__(3)
+ FUNC_MODIFIES(*unit)
+ FUNC_MODIFIES(*r0);
+
+#define ASSERT_ARGS_IMCC_create_itcall_label __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp)
+#define ASSERT_ARGS_IMCC_itcall_sub __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(sub)
+#define ASSERT_ARGS_INS_LABEL __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(r0)
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
+/* HEADERIZER END: compilers/imcc/imcc.y */
+
/*
* imc.c
Modified: trunk/compilers/imcc/imcparser.c
==============================================================================
--- trunk/compilers/imcc/imcparser.c (original)
+++ trunk/compilers/imcc/imcparser.c Sat Jan 3 13:47:27 2009
@@ -547,68 +547,88 @@
__attribute__nonnull__(3)
FUNC_MODIFIES(*r);
-#define ASSERT_ARGS_add_pcc_named_arg assert(interp); \
- assert(cur_call); \
- assert(name); \
- assert(value);
-#define ASSERT_ARGS_add_pcc_named_param assert(interp); \
- assert(cur_call); \
- assert(name); \
- assert(value);
-#define ASSERT_ARGS_add_pcc_named_result assert(interp); \
- assert(cur_call); \
- assert(name); \
- assert(value);
-#define ASSERT_ARGS_add_pcc_named_return assert(interp); \
- assert(cur_call); \
- assert(name); \
- assert(value);
-#define ASSERT_ARGS_adv_named_set assert(interp); \
- assert(name);
-#define ASSERT_ARGS_begin_return_or_yield assert(interp);
-#define ASSERT_ARGS_clear_state assert(interp);
-#define ASSERT_ARGS_do_loadlib assert(interp); \
- assert(lib);
-#define ASSERT_ARGS_func_ins assert(interp); \
- assert(unit); \
- assert(lhs); \
- assert(op); \
- assert(r);
-#define ASSERT_ARGS_iINDEXFETCH assert(interp); \
- assert(unit); \
- assert(r0); \
- assert(r1); \
- assert(r2);
-#define ASSERT_ARGS_iINDEXSET assert(interp); \
- assert(unit); \
- assert(r0); \
- assert(r1); \
- assert(r2);
-#define ASSERT_ARGS_iLABEL assert(interp); \
- assert(r0);
-#define ASSERT_ARGS_inv_op assert(op);
-#define ASSERT_ARGS_iSUBROUTINE assert(interp); \
- assert(r);
-#define ASSERT_ARGS_MK_I assert(interp); \
- assert(unit); \
- assert(fmt);
-#define ASSERT_ARGS_mk_pmc_const assert(interp); \
- assert(unit); \
- assert(type); \
- assert(left); \
- assert(constant);
-#define ASSERT_ARGS_mk_pmc_const_named assert(interp); \
- assert(unit); \
- assert(name); \
- assert(left); \
- assert(constant);
-#define ASSERT_ARGS_mk_sub_address_fromc assert(interp); \
- assert(name);
-#define ASSERT_ARGS_mk_sub_address_u assert(interp); \
- assert(name);
-#define ASSERT_ARGS_set_lexical assert(interp); \
- assert(r); \
- assert(name);
+#define ASSERT_ARGS_add_pcc_named_arg __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(cur_call) \
+ || PARROT_ASSERT_ARG(name) \
+ || PARROT_ASSERT_ARG(value)
+#define ASSERT_ARGS_add_pcc_named_param __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(cur_call) \
+ || PARROT_ASSERT_ARG(name) \
+ || PARROT_ASSERT_ARG(value)
+#define ASSERT_ARGS_add_pcc_named_result __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(cur_call) \
+ || PARROT_ASSERT_ARG(name) \
+ || PARROT_ASSERT_ARG(value)
+#define ASSERT_ARGS_add_pcc_named_return __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(cur_call) \
+ || PARROT_ASSERT_ARG(name) \
+ || PARROT_ASSERT_ARG(value)
+#define ASSERT_ARGS_adv_named_set __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(name)
+#define ASSERT_ARGS_begin_return_or_yield __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp)
+#define ASSERT_ARGS_clear_state __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp)
+#define ASSERT_ARGS_do_loadlib __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(lib)
+#define ASSERT_ARGS_func_ins __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(unit) \
+ || PARROT_ASSERT_ARG(lhs) \
+ || PARROT_ASSERT_ARG(op) \
+ || PARROT_ASSERT_ARG(r)
+#define ASSERT_ARGS_iINDEXFETCH __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(unit) \
+ || PARROT_ASSERT_ARG(r0) \
+ || PARROT_ASSERT_ARG(r1) \
+ || PARROT_ASSERT_ARG(r2)
+#define ASSERT_ARGS_iINDEXSET __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(unit) \
+ || PARROT_ASSERT_ARG(r0) \
+ || PARROT_ASSERT_ARG(r1) \
+ || PARROT_ASSERT_ARG(r2)
+#define ASSERT_ARGS_iLABEL __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(r0)
+#define ASSERT_ARGS_inv_op __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(op)
+#define ASSERT_ARGS_iSUBROUTINE __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(r)
+#define ASSERT_ARGS_MK_I __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(unit) \
+ || PARROT_ASSERT_ARG(fmt)
+#define ASSERT_ARGS_mk_pmc_const __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(unit) \
+ || PARROT_ASSERT_ARG(type) \
+ || PARROT_ASSERT_ARG(left) \
+ || PARROT_ASSERT_ARG(constant)
+#define ASSERT_ARGS_mk_pmc_const_named __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(unit) \
+ || PARROT_ASSERT_ARG(name) \
+ || PARROT_ASSERT_ARG(left) \
+ || PARROT_ASSERT_ARG(constant)
+#define ASSERT_ARGS_mk_sub_address_fromc __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(name)
+#define ASSERT_ARGS_mk_sub_address_u __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(name)
+#define ASSERT_ARGS_set_lexical __attribute__unused__ int _ASSERT_ARGS_CHECK = \
+ PARROT_ASSERT_ARG(interp) \
+ || PARROT_ASSERT_ARG(r) \
+ || PARROT_ASSERT_ARG(name)
/* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
/* HEADERIZER END: static */
@@ -647,6 +667,7 @@
static Instruction *
MK_I(PARROT_INTERP, ARGMOD(IMC_Unit *unit), ARGIN(const char *fmt), int n, ...)
{
+ ASSERT_ARGS(MK_I);
char opname[64];
char *p;
const char *q;
@@ -680,12 +701,12 @@
mk_pmc_const(PARROT_INTERP, ARGMOD(IMC_Unit *unit), ARGIN(const char *type),
ARGMOD(SymReg *left), ARGIN(const char *constant))
{
+ ASSERT_ARGS(mk_pmc_const);
const int type_enum = atoi(type);
const int ascii = (*constant == '\'' || *constant == '"');
SymReg *rhs;
SymReg *r[3];
char *name;
- ASSERT_ARGS(mk_pmc_const);
if (left->type == VTADDRESS) { /* IDENTIFIER */
if (IMCC_INFO(interp)->state->pasm_file) {
@@ -735,13 +756,13 @@
mk_pmc_const_named(PARROT_INTERP, ARGMOD(IMC_Unit *unit),
ARGIN(const char *name), ARGMOD(SymReg *left), ARGIN(const char *constant))
{
+ ASSERT_ARGS(mk_pmc_const_named);
SymReg *rhs;
SymReg *r[3];
char *const_name;
const int ascii = (*constant == '\'' || *constant == '"');
char *unquoted_name = str_dup(name + 1);
size_t name_length = strlen(unquoted_name) - 1;
- ASSERT_ARGS(mk_pmc_const_named);
unquoted_name[name_length] = '\0';
@@ -793,8 +814,8 @@
func_ins(PARROT_INTERP, ARGMOD(IMC_Unit *unit), ARGIN(SymReg *lhs), ARGIN(const char *op),
ARGMOD(SymReg **r), int n, int keyv, int emit)
{
- int i;
ASSERT_ARGS(func_ins);
+ int i;
/* shift regs up by 1 */
for (i = n - 1; i >= 0; --i)
r[i+1] = r[i];
@@ -821,6 +842,7 @@
Instruction *
INS_LABEL(PARROT_INTERP, ARGMOD_NULLOK(IMC_Unit *unit), ARGMOD(SymReg *r0), int emit)
{
+ ASSERT_ARGS(INS_LABEL);
Instruction * const ins = _mk_instruction("", "%s:", 1, &r0, 0);
ins->type = ITLABEL;
@@ -836,6 +858,7 @@
static Instruction *
iLABEL(PARROT_INTERP, ARGMOD_NULLOK(IMC_Unit *unit), ARGMOD(SymReg *r0))
{
+ ASSERT_ARGS(iLABEL);
Instruction * const i = INS_LABEL(interp, unit, r0, 1);
i->line = IMCC_INFO(interp)->line;
@@ -847,6 +870,7 @@
static Instruction *
iSUBROUTINE(PARROT_INTERP, ARGMOD_NULLOK(IMC_Unit *unit), ARGMOD(SymReg *r))
{
+ ASSERT_ARGS(iSUBROUTINE);
Instruction * const i = iLABEL(interp, unit, r);
r->type = (r->type & VT_ENCODED) ? VT_PCC_SUB|VT_ENCODED : VT_PCC_SUB;
@@ -867,6 +891,7 @@
iINDEXFETCH(PARROT_INTERP, ARGMOD(IMC_Unit *unit), ARGIN(SymReg *r0), ARGIN(SymReg *r1),
ARGIN(SymReg *r2))
{
+ ASSERT_ARGS(iINDEXFETCH);
IMCC_INFO(interp) -> keyvec |= KEY_BIT(2);
return MK_I(interp, unit, "set %s, %s[%s]", 3, r0, r1, r2);
}
@@ -880,6 +905,7 @@
iINDEXSET(PARROT_INTERP, ARGMOD(IMC_Unit *unit), ARGIN(SymReg *r0), ARGIN(SymReg *r1),
ARGIN(SymReg *r2))
{
+ ASSERT_ARGS(iINDEXSET);
if (r0->set == 'P') {
IMCC_INFO(interp)->keyvec |= KEY_BIT(1);
MK_I(interp, unit, "set %s[%s], %s", 3, r0, r1, r2);
@@ -896,8 +922,8 @@
static const char *
inv_op(ARGIN(const char *op))
{
- int n;
ASSERT_ARGS(inv_op);
+ int n;
return get_neg_op(op, &n);
}
@@ -905,6 +931,7 @@
Instruction *
IMCC_create_itcall_label(PARROT_INTERP)
{
+ ASSERT_ARGS(IMCC_create_itcall_label);
char name[128];
SymReg *r;
Instruction *i;
@@ -925,10 +952,10 @@
static SymReg *
mk_sub_address_fromc(PARROT_INTERP, ARGIN(const char *name))
{
+ ASSERT_ARGS(mk_sub_address_fromc);
/* name is a quoted sub name */
SymReg *r;
char *name_copy = str_dup(name + 1);
- ASSERT_ARGS(mk_sub_address_fromc);
name_copy[strlen(name_copy) - 1] = '\0';
r = mk_sub_address(interp, name_copy);
@@ -941,8 +968,8 @@
static SymReg *
mk_sub_address_u(PARROT_INTERP, ARGIN(const char *name))
{
- SymReg * const r = mk_sub_address(interp, name);
ASSERT_ARGS(mk_sub_address_u);
+ SymReg * const r = mk_sub_address(interp, name);
r->type |= VT_ENCODED;
return r;
@@ -967,10 +994,10 @@
static void
begin_return_or_yield(PARROT_INTERP, int yield)
{
+ ASSERT_ARGS(begin_return_or_yield);
Instruction *i;
Instruction * const ins = IMCC_INFO(interp)->cur_unit->instructions;
char name[128];
- ASSERT_ARGS(begin_return_or_yield);
if (!ins || !ins->symregs[0] || !(ins->symregs[0]->type & VT_PCC_SUB))
IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR,
@@ -988,8 +1015,8 @@
static void
set_lexical(PARROT_INTERP, ARGMOD(SymReg *r), ARGIN(const char *name))
{
- SymReg * const n = mk_const(interp, name, 'S');
ASSERT_ARGS(set_lexical);
+ SymReg * const n = mk_const(interp, name, 'S');
r->usage |= U_LEXICAL;
@@ -1007,8 +1034,8 @@
add_pcc_named_arg(PARROT_INTERP, ARGMOD(SymReg *cur_call), ARGIN(const char *name),
ARGIN(SymReg *value))
{
- SymReg * const r = mk_const(interp, name, 'S');
ASSERT_ARGS(add_pcc_named_arg);
+ SymReg * const r = mk_const(interp, name, 'S');
r->type |= VT_NAMED;
@@ -1020,8 +1047,8 @@
add_pcc_named_result(PARROT_INTERP, ARGMOD(SymReg *cur_call), ARGIN(const char *name),
ARGIN(SymReg *value))
{
- SymReg * const r = mk_const(interp, name, 'S');
ASSERT_ARGS(add_pcc_named_result);
+ SymReg * const r = mk_const(interp, name, 'S');
r->type |= VT_NAMED;
add_pcc_result(cur_call, r);
@@ -1032,8 +1059,8 @@
add_pcc_named_param(PARROT_INTERP, ARGMOD(SymReg *cur_call), ARGIN(const char *name),
ARGIN(SymReg *value))
{
- SymReg * const r = mk_const(interp, name, 'S');
ASSERT_ARGS(add_pcc_named_param);
+ SymReg * const r = mk_const(interp, name, 'S');
r->type |= VT_NAMED;
add_pcc_arg(cur_call, r);
@@ -1044,8 +1071,8 @@
add_pcc_named_return(PARROT_INTERP, ARGMOD(SymReg *cur_call), ARGIN(const char *name),
ARGIN(SymReg *value))
{
- SymReg * const r = mk_const(interp, name, 'S');
ASSERT_ARGS(add_pcc_named_return);
+ SymReg * const r = mk_const(interp, name, 'S');
r->type |= VT_NAMED;
add_pcc_result(cur_call, r);
@@ -1067,9 +1094,9 @@
static void
do_loadlib(PARROT_INTERP, ARGIN(const char *lib))
{
+ ASSERT_ARGS(do_loadlib);
STRING * const s = string_unescape_cstring(interp, lib + 1, '"', NULL);
PMC *ignored = Parrot_load_lib(interp, s, NULL);
- ASSERT_ARGS(do_loadlib);
UNUSED(ignored);
Parrot_register_HLL_lib(interp, s);
}
@@ -1098,7 +1125,7 @@
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
-#line 757 "compilers/imcc/imcc.y"
+#line 784 "compilers/imcc/imcc.y"
{
IdList * idlist;
int t;
@@ -1107,7 +1134,7 @@
Instruction *i;
}
/* Line 187 of yacc.c. */
-#line 1100 "compilers/imcc/imcparser.c"
+#line 1127 "compilers/imcc/imcparser.c"
YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
@@ -1120,7 +1147,7 @@
/* Line 216 of yacc.c. */
-#line 1113 "compilers/imcc/imcparser.c"
+#line 1140 "compilers/imcc/imcparser.c"
#ifdef short
# undef short
@@ -1546,41 +1573,41 @@
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 851, 851, 855, 856, 860, 861, 862, 868, 874,
- 875, 876, 877, 881, 882, 891, 896, 904, 913, 931,
- 931, 940, 940, 946, 946, 953, 954, 958, 959, 963,
- 964, 965, 966, 967, 968, 969, 972, 972, 981, 980,
- 992, 996, 1004, 1008, 1012, 1012, 1024, 1026, 1030, 1045,
- 1053, 1058, 1062, 1066, 1057, 1078, 1079, 1080, 1093, 1093,
- 1097, 1111, 1115, 1121, 1130, 1136, 1145, 1151, 1160, 1166,
- 1175, 1183, 1188, 1199, 1202, 1207, 1215, 1216, 1217, 1218,
- 1219, 1230, 1241, 1244, 1246, 1251, 1250, 1283, 1284, 1288,
- 1289, 1293, 1294, 1298, 1299, 1303, 1304, 1305, 1306, 1307,
- 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1320,
- 1325, 1329, 1334, 1338, 1342, 1347, 1356, 1357, 1361, 1366,
- 1367, 1375, 1376, 1376, 1391, 1392, 1396, 1397, 1398, 1399,
- 1400, 1401, 1406, 1406, 1409, 1417, 1417, 1423, 1424, 1429,
- 1437, 1438, 1443, 1451, 1455, 1460, 1459, 1472, 1473, 1477,
- 1478, 1488, 1492, 1502, 1510, 1511, 1523, 1527, 1529, 1530,
- 1531, 1532, 1536, 1537, 1541, 1542, 1546, 1555, 1556, 1567,
- 1574, 1583, 1593, 1594, 1599, 1600, 1601, 1601, 1617, 1621,
- 1621, 1628, 1629, 1629, 1635, 1641, 1642, 1654, 1655, 1656,
- 1657, 1658, 1659, 1663, 1664, 1665, 1666, 1670, 1683, 1685,
- 1687, 1689, 1691, 1693, 1695, 1697, 1699, 1701, 1703, 1705,
- 1707, 1711, 1713, 1715, 1718, 1725, 1724, 1733, 1734, 1735,
- 1736, 1744, 1745, 1746, 1750, 1751, 1752, 1753, 1754, 1755,
- 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765,
- 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1778, 1777, 1789,
- 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805,
- 1806, 1807, 1808, 1813, 1824, 1825, 1826, 1827, 1833, 1847,
- 1853, 1859, 1858, 1867, 1868, 1878, 1888, 1894, 1903, 1907,
- 1908, 1912, 1913, 1916, 1920, 1924, 1934, 1939, 1949, 1954,
- 1958, 1959, 1963, 1967, 1971, 1978, 1982, 1986, 1993, 1994,
- 1998, 1999, 2000, 2001, 2002, 2003, 2007, 2008, 2012, 2013,
- 2017, 2018, 2022, 2023, 2030, 2037, 2038, 2039, 2043, 2044,
- 2048, 2049, 2053, 2054, 2058, 2059, 2063, 2063, 2076, 2076,
- 2089, 2090, 2098, 2107, 2108, 2109, 2110, 2111, 2115, 2116,
- 2117, 2118
+ 0, 878, 878, 882, 883, 887, 888, 889, 895, 901,
+ 902, 903, 904, 908, 909, 918, 923, 931, 940, 958,
+ 958, 967, 967, 973, 973, 980, 981, 985, 986, 990,
+ 991, 992, 993, 994, 995, 996, 999, 999, 1008, 1007,
+ 1019, 1023, 1031, 1035, 1039, 1039, 1051, 1053, 1057, 1072,
+ 1080, 1085, 1089, 1093, 1084, 1105, 1106, 1107, 1120, 1120,
+ 1124, 1138, 1142, 1148, 1157, 1163, 1172, 1178, 1187, 1193,
+ 1202, 1210, 1215, 1226, 1229, 1234, 1242, 1243, 1244, 1245,
+ 1246, 1257, 1268, 1271, 1273, 1278, 1277, 1310, 1311, 1315,
+ 1316, 1320, 1321, 1325, 1326, 1330, 1331, 1332, 1333, 1334,
+ 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1347,
+ 1352, 1356, 1361, 1365, 1369, 1374, 1383, 1384, 1388, 1393,
+ 1394, 1402, 1403, 1403, 1418, 1419, 1423, 1424, 1425, 1426,
+ 1427, 1428, 1433, 1433, 1436, 1444, 1444, 1450, 1451, 1456,
+ 1464, 1465, 1470, 1478, 1482, 1487, 1486, 1499, 1500, 1504,
+ 1505, 1515, 1519, 1529, 1537, 1538, 1550, 1554, 1556, 1557,
+ 1558, 1559, 1563, 1564, 1568, 1569, 1573, 1582, 1583, 1594,
+ 1601, 1610, 1620, 1621, 1626, 1627, 1628, 1628, 1644, 1648,
+ 1648, 1655, 1656, 1656, 1662, 1668, 1669, 1681, 1682, 1683,
+ 1684, 1685, 1686, 1690, 1691, 1692, 1693, 1697, 1710, 1712,
+ 1714, 1716, 1718, 1720, 1722, 1724, 1726, 1728, 1730, 1732,
+ 1734, 1738, 1740, 1742, 1745, 1752, 1751, 1760, 1761, 1762,
+ 1763, 1771, 1772, 1773, 1777, 1778, 1779, 1780, 1781, 1782,
+ 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792,
+ 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1805, 1804, 1816,
+ 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832,
+ 1833, 1834, 1835, 1840, 1851, 1852, 1853, 1854, 1860, 1874,
+ 1880, 1886, 1885, 1894, 1895, 1905, 1915, 1921, 1930, 1934,
+ 1935, 1939, 1940, 1943, 1947, 1951, 1961, 1966, 1976, 1981,
+ 1985, 1986, 1990, 1994, 1998, 2005, 2009, 2013, 2020, 2021,
+ 2025, 2026, 2027, 2028, 2029, 2030, 2034, 2035, 2039, 2040,
+ 2044, 2045, 2049, 2050, 2057, 2064, 2065, 2066, 2070, 2071,
+ 2075, 2076, 2080, 2081, 2085, 2086, 2090, 2090, 2103, 2103,
+ 2116, 2117, 2125, 2134, 2135, 2136, 2137, 2138, 2142, 2143,
+ 2144, 2145
};
#endif
@@ -2942,22 +2969,22 @@
switch (yyn)
{
case 2:
-#line 851 "compilers/imcc/imcc.y"
+#line 878 "compilers/imcc/imcc.y"
{ if (yynerrs) YYABORT; (yyval.i) = 0; }
break;
case 5:
-#line 860 "compilers/imcc/imcc.y"
+#line 887 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
case 6:
-#line 861 "compilers/imcc/imcc.y"
+#line 888 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
case 7:
-#line 863 "compilers/imcc/imcc.y"
+#line 890 "compilers/imcc/imcc.y"
{
(yyval.i) = (yyvsp[(1) - (1)].i);
imc_close_unit(interp, IMCC_INFO(interp)->cur_unit);
@@ -2966,7 +2993,7 @@
break;
case 8:
-#line 869 "compilers/imcc/imcc.y"
+#line 896 "compilers/imcc/imcc.y"
{
(yyval.i) = (yyvsp[(1) - (1)].i);
imc_close_unit(interp, IMCC_INFO(interp)->cur_unit);
@@ -2975,32 +3002,32 @@
break;
case 9:
-#line 874 "compilers/imcc/imcc.y"
+#line 901 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 10:
-#line 875 "compilers/imcc/imcc.y"
+#line 902 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 11:
-#line 876 "compilers/imcc/imcc.y"
+#line 903 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 12:
-#line 877 "compilers/imcc/imcc.y"
+#line 904 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 13:
-#line 881 "compilers/imcc/imcc.y"
+#line 908 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 14:
-#line 883 "compilers/imcc/imcc.y"
+#line 910 "compilers/imcc/imcc.y"
{
(yyval.i) = 0;
do_loadlib(interp, (yyvsp[(2) - (3)].s));
@@ -3009,7 +3036,7 @@
break;
case 15:
-#line 892 "compilers/imcc/imcc.y"
+#line 919 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->line = atoi((yyvsp[(2) - (5)].s));
set_filename(interp, (yyvsp[(4) - (5)].s));
@@ -3017,14 +3044,14 @@
break;
case 16:
-#line 897 "compilers/imcc/imcc.y"
+#line 924 "compilers/imcc/imcc.y"
{
set_filename(interp, (yyvsp[(2) - (3)].s));
}
break;
case 17:
-#line 905 "compilers/imcc/imcc.y"
+#line 932 "compilers/imcc/imcc.y"
{
STRING * const hll_name = string_unescape_cstring(interp, (yyvsp[(2) - (2)].s) + 1, '"', NULL);
CONTEXT(interp)->current_HLL =
@@ -3036,7 +3063,7 @@
break;
case 18:
-#line 914 "compilers/imcc/imcc.y"
+#line 941 "compilers/imcc/imcc.y"
{
Parrot_Context *ctx = CONTEXT(interp);
STRING * const built_in_name =
@@ -3054,12 +3081,12 @@
break;
case 19:
-#line 931 "compilers/imcc/imcc.y"
+#line 958 "compilers/imcc/imcc.y"
{ is_def = 1; }
break;
case 20:
-#line 932 "compilers/imcc/imcc.y"
+#line 959 "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));
@@ -3068,12 +3095,12 @@
break;
case 21:
-#line 940 "compilers/imcc/imcc.y"
+#line 967 "compilers/imcc/imcc.y"
{ is_def=1; }
break;
case 22:
-#line 941 "compilers/imcc/imcc.y"
+#line 968 "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));
is_def = 0;
@@ -3081,12 +3108,12 @@
break;
case 23:
-#line 946 "compilers/imcc/imcc.y"
+#line 973 "compilers/imcc/imcc.y"
{ is_def=1; }
break;
case 24:
-#line 947 "compilers/imcc/imcc.y"
+#line 974 "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));
is_def = 0;
@@ -3094,37 +3121,37 @@
break;
case 29:
-#line 963 "compilers/imcc/imcc.y"
+#line 990 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 30:
-#line 964 "compilers/imcc/imcc.y"
+#line 991 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 31:
-#line 965 "compilers/imcc/imcc.y"
+#line 992 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 32:
-#line 966 "compilers/imcc/imcc.y"
+#line 993 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 33:
-#line 967 "compilers/imcc/imcc.y"
+#line 994 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
case 36:
-#line 972 "compilers/imcc/imcc.y"
+#line 999 "compilers/imcc/imcc.y"
{ clear_state(interp); }
break;
case 37:
-#line 974 "compilers/imcc/imcc.y"
+#line 1001 "compilers/imcc/imcc.y"
{
(yyval.i) = INS(interp, IMCC_INFO(interp)->cur_unit,
(yyvsp[(2) - (3)].s), 0, IMCC_INFO(interp)->regs,
@@ -3134,7 +3161,7 @@
break;
case 38:
-#line 981 "compilers/imcc/imcc.y"
+#line 1008 "compilers/imcc/imcc.y"
{
imc_close_unit(interp, IMCC_INFO(interp)->cur_unit);
IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PASM);
@@ -3142,7 +3169,7 @@
break;
case 39:
-#line 986 "compilers/imcc/imcc.y"
+#line 1013 "compilers/imcc/imcc.y"
{
(yyval.i) = iSUBROUTINE(interp,
IMCC_INFO(interp)->cur_unit,
@@ -3152,14 +3179,14 @@
break;
case 40:
-#line 993 "compilers/imcc/imcc.y"
+#line 1020 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(2) - (2)].sr));
}
break;
case 41:
-#line 997 "compilers/imcc/imcc.y"
+#line 1024 "compilers/imcc/imcc.y"
{
SymReg *r = mk_pasm_reg(interp, (yyvsp[(4) - (4)].s));
set_lexical(interp, r, (yyvsp[(2) - (4)].s));
@@ -3170,17 +3197,17 @@
break;
case 42:
-#line 1004 "compilers/imcc/imcc.y"
+#line 1031 "compilers/imcc/imcc.y"
{ (yyval.i) = 0;}
break;
case 44:
-#line 1012 "compilers/imcc/imcc.y"
+#line 1039 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PASM); }
break;
case 45:
-#line 1015 "compilers/imcc/imcc.y"
+#line 1042 "compilers/imcc/imcc.y"
{
/* if (optimizer_level & OPT_PASM)
imc_compile_unit(interp, IMCC_INFO(interp)->cur_unit);
@@ -3191,7 +3218,7 @@
break;
case 48:
-#line 1031 "compilers/imcc/imcc.y"
+#line 1058 "compilers/imcc/imcc.y"
{
int re_open = 0;
(yyval.i) = 0;
@@ -3206,7 +3233,7 @@
break;
case 49:
-#line 1046 "compilers/imcc/imcc.y"
+#line 1073 "compilers/imcc/imcc.y"
{
if (IMCC_INFO(interp)->in_slice)
IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR,
@@ -3217,26 +3244,26 @@
break;
case 50:
-#line 1053 "compilers/imcc/imcc.y"
+#line 1080 "compilers/imcc/imcc.y"
{ (yyval.sr) = NULL; }
break;
case 51:
-#line 1058 "compilers/imcc/imcc.y"
+#line 1085 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PCCSUB);
}
break;
case 52:
-#line 1062 "compilers/imcc/imcc.y"
+#line 1089 "compilers/imcc/imcc.y"
{
iSUBROUTINE(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (3)].sr));
}
break;
case 53:
-#line 1066 "compilers/imcc/imcc.y"
+#line 1093 "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) {
@@ -3247,22 +3274,22 @@
break;
case 54:
-#line 1074 "compilers/imcc/imcc.y"
+#line 1101 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; }
break;
case 55:
-#line 1078 "compilers/imcc/imcc.y"
+#line 1105 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 56:
-#line 1079 "compilers/imcc/imcc.y"
+#line 1106 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 57:
-#line 1081 "compilers/imcc/imcc.y"
+#line 1108 "compilers/imcc/imcc.y"
{
if (IMCC_INFO(interp)->adv_named_id) {
add_pcc_named_param(interp, IMCC_INFO(interp)->cur_call,
@@ -3275,17 +3302,17 @@
break;
case 58:
-#line 1093 "compilers/imcc/imcc.y"
+#line 1120 "compilers/imcc/imcc.y"
{ is_def=1; }
break;
case 59:
-#line 1093 "compilers/imcc/imcc.y"
+#line 1120 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(3) - (3)].sr); is_def=0; }
break;
case 60:
-#line 1098 "compilers/imcc/imcc.y"
+#line 1125 "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));
@@ -3297,12 +3324,12 @@
break;
case 61:
-#line 1111 "compilers/imcc/imcc.y"
+#line 1138 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 62:
-#line 1116 "compilers/imcc/imcc.y"
+#line 1143 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
IMCC_INFO(interp)->cur_unit->outer = mk_sub_address_fromc(interp, (yyvsp[(3) - (4)].s));
@@ -3311,7 +3338,7 @@
break;
case 63:
-#line 1122 "compilers/imcc/imcc.y"
+#line 1149 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
IMCC_INFO(interp)->cur_unit->outer = mk_const(interp, (yyvsp[(3) - (4)].s), 'S');
@@ -3320,7 +3347,7 @@
break;
case 64:
-#line 1131 "compilers/imcc/imcc.y"
+#line 1158 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
IMCC_INFO(interp)->cur_unit->vtable_name = NULL;
@@ -3329,7 +3356,7 @@
break;
case 65:
-#line 1137 "compilers/imcc/imcc.y"
+#line 1164 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
IMCC_INFO(interp)->cur_unit->vtable_name = (yyvsp[(3) - (4)].s);
@@ -3338,7 +3365,7 @@
break;
case 66:
-#line 1146 "compilers/imcc/imcc.y"
+#line 1173 "compilers/imcc/imcc.y"
{
(yyval.t) = P_METHOD;
IMCC_INFO(interp)->cur_unit->method_name = NULL;
@@ -3347,7 +3374,7 @@
break;
case 67:
-#line 1152 "compilers/imcc/imcc.y"
+#line 1179 "compilers/imcc/imcc.y"
{
(yyval.t) = P_METHOD;
IMCC_INFO(interp)->cur_unit->method_name = (yyvsp[(3) - (4)].s);
@@ -3356,7 +3383,7 @@
break;
case 68:
-#line 1161 "compilers/imcc/imcc.y"
+#line 1188 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
IMCC_INFO(interp)->cur_unit->ns_entry_name = NULL;
@@ -3365,7 +3392,7 @@
break;
case 69:
-#line 1167 "compilers/imcc/imcc.y"
+#line 1194 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
IMCC_INFO(interp)->cur_unit->ns_entry_name = (yyvsp[(3) - (4)].s);
@@ -3374,7 +3401,7 @@
break;
case 70:
-#line 1176 "compilers/imcc/imcc.y"
+#line 1203 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
IMCC_INFO(interp)->cur_unit->instance_of = (yyvsp[(3) - (4)].s);
@@ -3382,7 +3409,7 @@
break;
case 71:
-#line 1184 "compilers/imcc/imcc.y"
+#line 1211 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
IMCC_INFO(interp)->cur_unit->subid = NULL;
@@ -3390,7 +3417,7 @@
break;
case 72:
-#line 1189 "compilers/imcc/imcc.y"
+#line 1216 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
IMCC_INFO(interp)->cur_unit->subid = mk_const(interp, (yyvsp[(3) - (4)].s), 'S');
@@ -3400,14 +3427,14 @@
break;
case 73:
-#line 1199 "compilers/imcc/imcc.y"
+#line 1226 "compilers/imcc/imcc.y"
{
add_pcc_multi(IMCC_INFO(interp)->cur_call, NULL);
}
break;
case 74:
-#line 1203 "compilers/imcc/imcc.y"
+#line 1230 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
add_pcc_multi(IMCC_INFO(interp)->cur_call, (yyvsp[(3) - (3)].sr));
@@ -3415,7 +3442,7 @@
break;
case 75:
-#line 1208 "compilers/imcc/imcc.y"
+#line 1235 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
add_pcc_multi(IMCC_INFO(interp)->cur_call, (yyvsp[(1) - (1)].sr));
@@ -3423,27 +3450,27 @@
break;
case 76:
-#line 1215 "compilers/imcc/imcc.y"
+#line 1242 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, "INTVAL", 'S'); }
break;
case 77:
-#line 1216 "compilers/imcc/imcc.y"
+#line 1243 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, "FLOATVAL", 'S'); }
break;
case 78:
-#line 1217 "compilers/imcc/imcc.y"
+#line 1244 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, "PMC", 'S'); }
break;
case 79:
-#line 1218 "compilers/imcc/imcc.y"
+#line 1245 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, "STRING", 'S'); }
break;
case 80:
-#line 1220 "compilers/imcc/imcc.y"
+#line 1247 "compilers/imcc/imcc.y"
{
SymReg *r;
if (strcmp((yyvsp[(1) - (1)].s), "_") != 0)
@@ -3457,7 +3484,7 @@
break;
case 81:
-#line 1231 "compilers/imcc/imcc.y"
+#line 1258 "compilers/imcc/imcc.y"
{
SymReg *r;
if (strcmp((yyvsp[(1) - (1)].s), "_") != 0)
@@ -3471,12 +3498,12 @@
break;
case 82:
-#line 1241 "compilers/imcc/imcc.y"
+#line 1268 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(2) - (3)].sr); }
break;
case 85:
-#line 1251 "compilers/imcc/imcc.y"
+#line 1278 "compilers/imcc/imcc.y"
{
char name[128];
SymReg *r, *r1;
@@ -3503,82 +3530,82 @@
break;
case 86:
-#line 1279 "compilers/imcc/imcc.y"
+#line 1306 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; }
break;
case 87:
-#line 1283 "compilers/imcc/imcc.y"
+#line 1310 "compilers/imcc/imcc.y"
{ (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->label = 0; }
break;
case 88:
-#line 1284 "compilers/imcc/imcc.y"
+#line 1311 "compilers/imcc/imcc.y"
{ (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->label = 1; }
break;
case 89:
-#line 1288 "compilers/imcc/imcc.y"
+#line 1315 "compilers/imcc/imcc.y"
{ (yyval.i) = NULL; }
break;
case 90:
-#line 1289 "compilers/imcc/imcc.y"
+#line 1316 "compilers/imcc/imcc.y"
{ (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->object = (yyvsp[(2) - (3)].sr); }
break;
case 91:
-#line 1293 "compilers/imcc/imcc.y"
+#line 1320 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 93:
-#line 1298 "compilers/imcc/imcc.y"
+#line 1325 "compilers/imcc/imcc.y"
{ (yyval.t) = (yyvsp[(1) - (1)].t); }
break;
case 94:
-#line 1299 "compilers/imcc/imcc.y"
+#line 1326 "compilers/imcc/imcc.y"
{ (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); }
break;
case 95:
-#line 1303 "compilers/imcc/imcc.y"
+#line 1330 "compilers/imcc/imcc.y"
{ (yyval.t) = P_LOAD; }
break;
case 96:
-#line 1304 "compilers/imcc/imcc.y"
+#line 1331 "compilers/imcc/imcc.y"
{ (yyval.t) = P_INIT; }
break;
case 97:
-#line 1305 "compilers/imcc/imcc.y"
+#line 1332 "compilers/imcc/imcc.y"
{ (yyval.t) = P_MAIN; }
break;
case 98:
-#line 1306 "compilers/imcc/imcc.y"
+#line 1333 "compilers/imcc/imcc.y"
{ (yyval.t) = P_IMMEDIATE; }
break;
case 99:
-#line 1307 "compilers/imcc/imcc.y"
+#line 1334 "compilers/imcc/imcc.y"
{ (yyval.t) = P_POSTCOMP; }
break;
case 100:
-#line 1308 "compilers/imcc/imcc.y"
+#line 1335 "compilers/imcc/imcc.y"
{ (yyval.t) = P_ANON; }
break;
case 101:
-#line 1309 "compilers/imcc/imcc.y"
+#line 1336 "compilers/imcc/imcc.y"
{ (yyval.t) = P_NEED_LEX; }
break;
case 109:
-#line 1321 "compilers/imcc/imcc.y"
+#line 1348 "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));
@@ -3586,14 +3613,14 @@
break;
case 110:
-#line 1326 "compilers/imcc/imcc.y"
+#line 1353 "compilers/imcc/imcc.y"
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
}
break;
case 111:
-#line 1330 "compilers/imcc/imcc.y"
+#line 1357 "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;
@@ -3601,21 +3628,21 @@
break;
case 112:
-#line 1335 "compilers/imcc/imcc.y"
+#line 1362 "compilers/imcc/imcc.y"
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
}
break;
case 113:
-#line 1339 "compilers/imcc/imcc.y"
+#line 1366 "compilers/imcc/imcc.y"
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, mk_const(interp, (yyvsp[(2) - (3)].s), 'S'));
}
break;
case 114:
-#line 1343 "compilers/imcc/imcc.y"
+#line 1370 "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));
@@ -3623,7 +3650,7 @@
break;
case 115:
-#line 1348 "compilers/imcc/imcc.y"
+#line 1375 "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));
@@ -3631,27 +3658,27 @@
break;
case 116:
-#line 1356 "compilers/imcc/imcc.y"
+#line 1383 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 117:
-#line 1357 "compilers/imcc/imcc.y"
+#line 1384 "compilers/imcc/imcc.y"
{ add_pcc_arg(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr)); }
break;
case 118:
-#line 1361 "compilers/imcc/imcc.y"
+#line 1388 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(2) - (2)].sr); }
break;
case 119:
-#line 1366 "compilers/imcc/imcc.y"
+#line 1393 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 120:
-#line 1368 "compilers/imcc/imcc.y"
+#line 1395 "compilers/imcc/imcc.y"
{
if ((yyvsp[(2) - (3)].sr))
add_pcc_result(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
@@ -3659,17 +3686,17 @@
break;
case 121:
-#line 1375 "compilers/imcc/imcc.y"
+#line 1402 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); }
break;
case 122:
-#line 1376 "compilers/imcc/imcc.y"
+#line 1403 "compilers/imcc/imcc.y"
{ is_def=1; }
break;
case 123:
-#line 1377 "compilers/imcc/imcc.y"
+#line 1404 "compilers/imcc/imcc.y"
{
IdList *l = (yyvsp[(4) - (4)].idlist);
SymReg *ignored;
@@ -3684,57 +3711,57 @@
break;
case 124:
-#line 1391 "compilers/imcc/imcc.y"
+#line 1418 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 125:
-#line 1392 "compilers/imcc/imcc.y"
+#line 1419 "compilers/imcc/imcc.y"
{ (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); }
break;
case 126:
-#line 1396 "compilers/imcc/imcc.y"
+#line 1423 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_FLAT; }
break;
case 127:
-#line 1397 "compilers/imcc/imcc.y"
+#line 1424 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_OPTIONAL; }
break;
case 128:
-#line 1398 "compilers/imcc/imcc.y"
+#line 1425 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_OPT_FLAG; }
break;
case 129:
-#line 1399 "compilers/imcc/imcc.y"
+#line 1426 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_NAMED; }
break;
case 130:
-#line 1400 "compilers/imcc/imcc.y"
+#line 1427 "compilers/imcc/imcc.y"
{ adv_named_set(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; }
break;
case 131:
-#line 1401 "compilers/imcc/imcc.y"
+#line 1428 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_UNIQUE_REG; }
break;
case 132:
-#line 1406 "compilers/imcc/imcc.y"
+#line 1433 "compilers/imcc/imcc.y"
{ begin_return_or_yield(interp, 0); }
break;
case 133:
-#line 1408 "compilers/imcc/imcc.y"
+#line 1435 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; IMCC_INFO(interp)->asm_state = AsmDefault; }
break;
case 134:
-#line 1410 "compilers/imcc/imcc.y"
+#line 1437 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->asm_state = AsmDefault;
(yyval.i) = 0;
@@ -3742,22 +3769,22 @@
break;
case 135:
-#line 1417 "compilers/imcc/imcc.y"
+#line 1444 "compilers/imcc/imcc.y"
{ begin_return_or_yield(interp, 1); }
break;
case 136:
-#line 1419 "compilers/imcc/imcc.y"
+#line 1446 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; IMCC_INFO(interp)->asm_state = AsmDefault; }
break;
case 137:
-#line 1423 "compilers/imcc/imcc.y"
+#line 1450 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 138:
-#line 1425 "compilers/imcc/imcc.y"
+#line 1452 "compilers/imcc/imcc.y"
{
if ((yyvsp[(1) - (2)].sr))
add_pcc_result(IMCC_INFO(interp)->sr_return, (yyvsp[(1) - (2)].sr));
@@ -3765,7 +3792,7 @@
break;
case 139:
-#line 1430 "compilers/imcc/imcc.y"
+#line 1457 "compilers/imcc/imcc.y"
{
if ((yyvsp[(2) - (3)].sr))
add_pcc_result(IMCC_INFO(interp)->sr_return, (yyvsp[(2) - (3)].sr));
@@ -3773,12 +3800,12 @@
break;
case 140:
-#line 1437 "compilers/imcc/imcc.y"
+#line 1464 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 141:
-#line 1439 "compilers/imcc/imcc.y"
+#line 1466 "compilers/imcc/imcc.y"
{
if ((yyvsp[(1) - (2)].sr))
add_pcc_result(IMCC_INFO(interp)->sr_return, (yyvsp[(1) - (2)].sr));
@@ -3786,7 +3813,7 @@
break;
case 142:
-#line 1444 "compilers/imcc/imcc.y"
+#line 1471 "compilers/imcc/imcc.y"
{
if ((yyvsp[(2) - (3)].sr))
add_pcc_result(IMCC_INFO(interp)->sr_return, (yyvsp[(2) - (3)].sr));
@@ -3794,17 +3821,17 @@
break;
case 143:
-#line 1451 "compilers/imcc/imcc.y"
+#line 1478 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); }
break;
case 144:
-#line 1455 "compilers/imcc/imcc.y"
+#line 1482 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); }
break;
case 145:
-#line 1460 "compilers/imcc/imcc.y"
+#line 1487 "compilers/imcc/imcc.y"
{
if (IMCC_INFO(interp)->asm_state == AsmDefault)
begin_return_or_yield(interp, (yyvsp[(1) - (2)].t));
@@ -3812,7 +3839,7 @@
break;
case 146:
-#line 1465 "compilers/imcc/imcc.y"
+#line 1492 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->asm_state = AsmDefault;
(yyval.t) = 0;
@@ -3820,22 +3847,22 @@
break;
case 147:
-#line 1472 "compilers/imcc/imcc.y"
+#line 1499 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 148:
-#line 1473 "compilers/imcc/imcc.y"
+#line 1500 "compilers/imcc/imcc.y"
{ (yyval.t) = 1; }
break;
case 149:
-#line 1477 "compilers/imcc/imcc.y"
+#line 1504 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 150:
-#line 1479 "compilers/imcc/imcc.y"
+#line 1506 "compilers/imcc/imcc.y"
{
if (IMCC_INFO(interp)->adv_named_id) {
add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return,
@@ -3848,14 +3875,14 @@
break;
case 151:
-#line 1489 "compilers/imcc/imcc.y"
+#line 1516 "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 1493 "compilers/imcc/imcc.y"
+#line 1520 "compilers/imcc/imcc.y"
{
if (IMCC_INFO(interp)->adv_named_id) {
add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return,
@@ -3868,61 +3895,61 @@
break;
case 153:
-#line 1503 "compilers/imcc/imcc.y"
+#line 1530 "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 1523 "compilers/imcc/imcc.y"
+#line 1550 "compilers/imcc/imcc.y"
{ clear_state(interp); }
break;
case 157:
-#line 1528 "compilers/imcc/imcc.y"
+#line 1555 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(2) - (2)].i); }
break;
case 158:
-#line 1529 "compilers/imcc/imcc.y"
+#line 1556 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 159:
-#line 1530 "compilers/imcc/imcc.y"
+#line 1557 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 160:
-#line 1531 "compilers/imcc/imcc.y"
+#line 1558 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 161:
-#line 1532 "compilers/imcc/imcc.y"
+#line 1559 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 162:
-#line 1536 "compilers/imcc/imcc.y"
+#line 1563 "compilers/imcc/imcc.y"
{ (yyval.i) = NULL; }
break;
case 166:
-#line 1547 "compilers/imcc/imcc.y"
+#line 1574 "compilers/imcc/imcc.y"
{
(yyval.i) = iLABEL(interp, IMCC_INFO(interp)->cur_unit, mk_local_label(interp, (yyvsp[(1) - (1)].s)));
}
break;
case 167:
-#line 1555 "compilers/imcc/imcc.y"
+#line 1582 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(2) - (3)].i); }
break;
case 168:
-#line 1557 "compilers/imcc/imcc.y"
+#line 1584 "compilers/imcc/imcc.y"
{
if (yynerrs >= PARROT_MAX_RECOVER_ERRORS) {
IMCC_warning(interp, "Too many errors. Correct some first.\n");
@@ -3933,7 +3960,7 @@
break;
case 169:
-#line 1568 "compilers/imcc/imcc.y"
+#line 1595 "compilers/imcc/imcc.y"
{
IdList* l = (yyvsp[(1) - (1)].idlist);
l->next = NULL;
@@ -3942,7 +3969,7 @@
break;
case 170:
-#line 1575 "compilers/imcc/imcc.y"
+#line 1602 "compilers/imcc/imcc.y"
{
IdList* l = (yyvsp[(3) - (3)].idlist);
l->next = (yyvsp[(1) - (3)].idlist);
@@ -3951,7 +3978,7 @@
break;
case 171:
-#line 1584 "compilers/imcc/imcc.y"
+#line 1611 "compilers/imcc/imcc.y"
{
IdList* const l = mem_allocate_n_zeroed_typed(1, IdList);
l->id = (yyvsp[(1) - (2)].s);
@@ -3961,22 +3988,22 @@
break;
case 172:
-#line 1593 "compilers/imcc/imcc.y"
+#line 1620 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 173:
-#line 1594 "compilers/imcc/imcc.y"
+#line 1621 "compilers/imcc/imcc.y"
{ (yyval.t) = 1; }
break;
case 176:
-#line 1601 "compilers/imcc/imcc.y"
+#line 1628 "compilers/imcc/imcc.y"
{ is_def=1; }
break;
case 177:
-#line 1602 "compilers/imcc/imcc.y"
+#line 1629 "compilers/imcc/imcc.y"
{
IdList *l = (yyvsp[(4) - (4)].idlist);
while (l) {
@@ -3995,19 +4022,19 @@
break;
case 178:
-#line 1618 "compilers/imcc/imcc.y"
+#line 1645 "compilers/imcc/imcc.y"
{
set_lexical(interp, (yyvsp[(4) - (4)].sr), (yyvsp[(2) - (4)].s)); (yyval.i) = 0;
}
break;
case 179:
-#line 1621 "compilers/imcc/imcc.y"
+#line 1648 "compilers/imcc/imcc.y"
{ is_def=1; }
break;
case 180:
-#line 1622 "compilers/imcc/imcc.y"
+#line 1649 "compilers/imcc/imcc.y"
{
mk_const_ident(interp, (yyvsp[(4) - (6)].s), (yyvsp[(3) - (6)].t), (yyvsp[(6) - (6)].sr), 0);
is_def=0;
@@ -4016,12 +4043,12 @@
break;
case 182:
-#line 1629 "compilers/imcc/imcc.y"
+#line 1656 "compilers/imcc/imcc.y"
{ is_def=1; }
break;
case 183:
-#line 1630 "compilers/imcc/imcc.y"
+#line 1657 "compilers/imcc/imcc.y"
{
mk_const_ident(interp, (yyvsp[(4) - (6)].s), (yyvsp[(3) - (6)].t), (yyvsp[(6) - (6)].sr), 1);
is_def=0;
@@ -4030,7 +4057,7 @@
break;
case 184:
-#line 1636 "compilers/imcc/imcc.y"
+#line 1663 "compilers/imcc/imcc.y"
{
(yyval.i) = NULL;
IMCC_INFO(interp)->cur_call->pcc_sub->flags |= isTAIL_CALL;
@@ -4039,12 +4066,12 @@
break;
case 185:
-#line 1641 "compilers/imcc/imcc.y"
+#line 1668 "compilers/imcc/imcc.y"
{ (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "branch", 1, (yyvsp[(2) - (2)].sr)); }
break;
case 186:
-#line 1643 "compilers/imcc/imcc.y"
+#line 1670 "compilers/imcc/imcc.y"
{
(yyval.i) = INS(interp,
IMCC_INFO(interp)->cur_unit,
@@ -4059,47 +4086,47 @@
break;
case 187:
-#line 1654 "compilers/imcc/imcc.y"
+#line 1681 "compilers/imcc/imcc.y"
{ (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(2) - (2)].sr)); }
break;
case 188:
-#line 1655 "compilers/imcc/imcc.y"
+#line 1682 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; }
break;
case 189:
-#line 1656 "compilers/imcc/imcc.y"
+#line 1683 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 192:
-#line 1659 "compilers/imcc/imcc.y"
+#line 1686 "compilers/imcc/imcc.y"
{ (yyval.i) = 0;}
break;
case 193:
-#line 1663 "compilers/imcc/imcc.y"
+#line 1690 "compilers/imcc/imcc.y"
{ (yyval.t) = 'I'; }
break;
case 194:
-#line 1664 "compilers/imcc/imcc.y"
+#line 1691 "compilers/imcc/imcc.y"
{ (yyval.t) = 'N'; }
break;
case 195:
-#line 1665 "compilers/imcc/imcc.y"
+#line 1692 "compilers/imcc/imcc.y"
{ (yyval.t) = 'S'; }
break;
case 196:
-#line 1666 "compilers/imcc/imcc.y"
+#line 1693 "compilers/imcc/imcc.y"
{ (yyval.t) = 'P'; }
break;
case 197:
-#line 1671 "compilers/imcc/imcc.y"
+#line 1698 "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 */
@@ -4112,87 +4139,87 @@
break;
case 198:
-#line 1684 "compilers/imcc/imcc.y"
+#line 1711 "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 199:
-#line 1686 "compilers/imcc/imcc.y"
+#line 1713 "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 200:
-#line 1688 "compilers/imcc/imcc.y"
+#line 1715 "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 201:
-#line 1690 "compilers/imcc/imcc.y"
+#line 1717 "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 202:
-#line 1692 "compilers/imcc/imcc.y"
+#line 1719 "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 203:
-#line 1694 "compilers/imcc/imcc.y"
+#line 1721 "compilers/imcc/imcc.y"
{ (yyval.i) = iNEW(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (6)].sr), (yyvsp[(4) - (6)].s), (yyvsp[(6) - (6)].sr), 1); }
break;
case 204:
-#line 1696 "compilers/imcc/imcc.y"
+#line 1723 "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 1698 "compilers/imcc/imcc.y"
+#line 1725 "compilers/imcc/imcc.y"
{ (yyval.i) = iNEW(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(1) - (4)].sr), (yyvsp[(4) - (4)].s), NULL, 1); }
break;
case 206:
-#line 1700 "compilers/imcc/imcc.y"
+#line 1727 "compilers/imcc/imcc.y"
{ (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "new", 2, (yyvsp[(1) - (4)].sr), (yyvsp[(4) - (4)].sr)); }
break;
case 207:
-#line 1702 "compilers/imcc/imcc.y"
+#line 1729 "compilers/imcc/imcc.y"
{ (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "new", 2, (yyvsp[(1) - (4)].sr), (yyvsp[(4) - (4)].sr)); }
break;
case 208:
-#line 1704 "compilers/imcc/imcc.y"
+#line 1731 "compilers/imcc/imcc.y"
{ (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "new", 3, (yyvsp[(1) - (6)].sr), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].sr)); }
break;
case 209:
-#line 1706 "compilers/imcc/imcc.y"
+#line 1733 "compilers/imcc/imcc.y"
{ (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "new", 3, (yyvsp[(1) - (6)].sr), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].sr)); }
break;
case 210:
-#line 1708 "compilers/imcc/imcc.y"
+#line 1735 "compilers/imcc/imcc.y"
{ (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "new", 3, (yyvsp[(1) - (7)].sr), (yyvsp[(4) - (7)].sr), (yyvsp[(6) - (7)].sr)); }
break;
case 211:
-#line 1712 "compilers/imcc/imcc.y"
+#line 1739 "compilers/imcc/imcc.y"
{ (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "new", 2, (yyvsp[(2) - (4)].sr), (yyvsp[(4) - (4)].sr)); }
break;
case 212:
-#line 1714 "compilers/imcc/imcc.y"
+#line 1741 "compilers/imcc/imcc.y"
{ (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "new", 3, (yyvsp[(2) - (6)].sr), (yyvsp[(4) - (6)].sr), (yyvsp[(6) - (6)].sr)); }
break;
case 213:
-#line 1716 "compilers/imcc/imcc.y"
+#line 1743 "compilers/imcc/imcc.y"
{ (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "new", 3, (yyvsp[(2) - (7)].sr), (yyvsp[(4) - (7)].sr), (yyvsp[(6) - (7)].sr)); }
break;
case 214:
-#line 1719 "compilers/imcc/imcc.y"
+#line 1746 "compilers/imcc/imcc.y"
{
add_pcc_result((yyvsp[(3) - (3)].i)->symregs[0], (yyvsp[(1) - (3)].sr));
IMCC_INFO(interp)->cur_call = NULL;
@@ -4201,14 +4228,14 @@
break;
case 215:
-#line 1725 "compilers/imcc/imcc.y"
+#line 1752 "compilers/imcc/imcc.y"
{
(yyval.i) = IMCC_create_itcall_label(interp);
}
break;
case 216:
-#line 1729 "compilers/imcc/imcc.y"
+#line 1756 "compilers/imcc/imcc.y"
{
IMCC_itcall_sub(interp, (yyvsp[(6) - (9)].sr));
IMCC_INFO(interp)->cur_call = NULL;
@@ -4216,144 +4243,144 @@
break;
case 220:
-#line 1737 "compilers/imcc/imcc.y"
+#line 1764 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(1) - (3)].sr));
}
break;
case 221:
-#line 1744 "compilers/imcc/imcc.y"
+#line 1771 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"not"; }
break;
case 222:
-#line 1745 "compilers/imcc/imcc.y"
+#line 1772 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"bnot"; }
break;
case 223:
-#line 1746 "compilers/imcc/imcc.y"
+#line 1773 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"neg"; }
break;
case 224:
-#line 1750 "compilers/imcc/imcc.y"
+#line 1777 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"sub"; }
break;
case 225:
-#line 1751 "compilers/imcc/imcc.y"
+#line 1778 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"add"; }
break;
case 226:
-#line 1752 "compilers/imcc/imcc.y"
+#line 1779 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"mul"; }
break;
case 227:
-#line 1753 "compilers/imcc/imcc.y"
+#line 1780 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"div"; }
break;
case 228:
-#line 1754 "compilers/imcc/imcc.y"
+#line 1781 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"mod"; }
break;
case 229:
-#line 1755 "compilers/imcc/imcc.y"
+#line 1782 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"fdiv"; }
break;
case 230:
-#line 1756 "compilers/imcc/imcc.y"
+#line 1783 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"pow"; }
break;
case 231:
-#line 1757 "compilers/imcc/imcc.y"
+#line 1784 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"concat"; }
break;
case 232:
-#line 1758 "compilers/imcc/imcc.y"
+#line 1785 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"iseq"; }
break;
case 233:
-#line 1759 "compilers/imcc/imcc.y"
+#line 1786 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"isne"; }
break;
case 234:
-#line 1760 "compilers/imcc/imcc.y"
+#line 1787 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"isgt"; }
break;
case 235:
-#line 1761 "compilers/imcc/imcc.y"
+#line 1788 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"isge"; }
break;
case 236:
-#line 1762 "compilers/imcc/imcc.y"
+#line 1789 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"islt"; }
break;
case 237:
-#line 1763 "compilers/imcc/imcc.y"
+#line 1790 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"isle"; }
break;
case 238:
-#line 1764 "compilers/imcc/imcc.y"
+#line 1791 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"shl"; }
break;
case 239:
-#line 1765 "compilers/imcc/imcc.y"
+#line 1792 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"shr"; }
break;
case 240:
-#line 1766 "compilers/imcc/imcc.y"
+#line 1793 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"lsr"; }
break;
case 241:
-#line 1767 "compilers/imcc/imcc.y"
+#line 1794 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"and"; }
break;
case 242:
-#line 1768 "compilers/imcc/imcc.y"
+#line 1795 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"or"; }
break;
case 243:
-#line 1769 "compilers/imcc/imcc.y"
+#line 1796 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"xor"; }
break;
case 244:
-#line 1770 "compilers/imcc/imcc.y"
+#line 1797 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"band"; }
break;
case 245:
-#line 1771 "compilers/imcc/imcc.y"
+#line 1798 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"bor"; }
break;
case 246:
-#line 1772 "compilers/imcc/imcc.y"
+#line 1799 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"bxor"; }
break;
case 247:
-#line 1778 "compilers/imcc/imcc.y"
+#line 1805 "compilers/imcc/imcc.y"
{
(yyval.i) = IMCC_create_itcall_label(interp);
(yyval.i)->type &= ~ITCALL;
@@ -4362,84 +4389,84 @@
break;
case 248:
-#line 1783 "compilers/imcc/imcc.y"
+#line 1810 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 249:
-#line 1790 "compilers/imcc/imcc.y"
+#line 1817 "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 250:
-#line 1796 "compilers/imcc/imcc.y"
+#line 1823 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"add"; }
break;
case 251:
-#line 1797 "compilers/imcc/imcc.y"
+#line 1824 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"sub"; }
break;
case 252:
-#line 1798 "compilers/imcc/imcc.y"
+#line 1825 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"mul"; }
break;
case 253:
-#line 1799 "compilers/imcc/imcc.y"
+#line 1826 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"div"; }
break;
case 254:
-#line 1800 "compilers/imcc/imcc.y"
+#line 1827 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"mod"; }
break;
case 255:
-#line 1801 "compilers/imcc/imcc.y"
+#line 1828 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"fdiv"; }
break;
case 256:
-#line 1802 "compilers/imcc/imcc.y"
+#line 1829 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"concat"; }
break;
case 257:
-#line 1803 "compilers/imcc/imcc.y"
+#line 1830 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"band"; }
break;
case 258:
-#line 1804 "compilers/imcc/imcc.y"
+#line 1831 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"bor"; }
break;
case 259:
-#line 1805 "compilers/imcc/imcc.y"
+#line 1832 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"bxor"; }
break;
case 260:
-#line 1806 "compilers/imcc/imcc.y"
+#line 1833 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"shr"; }
break;
case 261:
-#line 1807 "compilers/imcc/imcc.y"
+#line 1834 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"shl"; }
break;
case 262:
-#line 1808 "compilers/imcc/imcc.y"
+#line 1835 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"lsr"; }
break;
case 263:
-#line 1814 "compilers/imcc/imcc.y"
+#line 1841 "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,
@@ -4450,22 +4477,22 @@
break;
case 264:
-#line 1824 "compilers/imcc/imcc.y"
+#line 1851 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 265:
-#line 1825 "compilers/imcc/imcc.y"
+#line 1852 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address_fromc(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 266:
-#line 1826 "compilers/imcc/imcc.y"
+#line 1853 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address_u(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 267:
-#line 1828 "compilers/imcc/imcc.y"
+#line 1855 "compilers/imcc/imcc.y"
{
(yyval.sr) = (yyvsp[(1) - (1)].sr);
if ((yyvsp[(1) - (1)].sr)->set != 'P')
@@ -4474,7 +4501,7 @@
break;
case 268:
-#line 1834 "compilers/imcc/imcc.y"
+#line 1861 "compilers/imcc/imcc.y"
{
/* disallow bareword method names; SREG name constants are fine */
char *name = (yyvsp[(3) - (3)].sr)->name;
@@ -4491,7 +4518,7 @@
break;
case 269:
-#line 1848 "compilers/imcc/imcc.y"
+#line 1875 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr);
(yyval.sr) = mk_const(interp, (yyvsp[(3) - (3)].s), 'S');
@@ -4500,12 +4527,12 @@
break;
case 270:
-#line 1853 "compilers/imcc/imcc.y"
+#line 1880 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr); (yyval.sr) = (yyvsp[(3) - (3)].sr); }
break;
case 271:
-#line 1859 "compilers/imcc/imcc.y"
+#line 1886 "compilers/imcc/imcc.y"
{
(yyval.i) = IMCC_create_itcall_label(interp);
IMCC_itcall_sub(interp, (yyvsp[(1) - (1)].sr));
@@ -4513,17 +4540,17 @@
break;
case 272:
-#line 1863 "compilers/imcc/imcc.y"
+#line 1890 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(2) - (5)].i); }
break;
case 273:
-#line 1867 "compilers/imcc/imcc.y"
+#line 1894 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 274:
-#line 1869 "compilers/imcc/imcc.y"
+#line 1896 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
if (IMCC_INFO(interp)->adv_named_id) {
@@ -4536,7 +4563,7 @@
break;
case 275:
-#line 1879 "compilers/imcc/imcc.y"
+#line 1906 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
if (IMCC_INFO(interp)->adv_named_id) {
@@ -4549,7 +4576,7 @@
break;
case 276:
-#line 1889 "compilers/imcc/imcc.y"
+#line 1916 "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));
@@ -4558,7 +4585,7 @@
break;
case 277:
-#line 1895 "compilers/imcc/imcc.y"
+#line 1922 "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));
@@ -4567,42 +4594,42 @@
break;
case 278:
-#line 1903 "compilers/imcc/imcc.y"
+#line 1930 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(1) - (2)].sr); (yyval.sr)->type |= (yyvsp[(2) - (2)].t); }
break;
case 279:
-#line 1907 "compilers/imcc/imcc.y"
+#line 1934 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 280:
-#line 1908 "compilers/imcc/imcc.y"
+#line 1935 "compilers/imcc/imcc.y"
{ (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); }
break;
case 281:
-#line 1912 "compilers/imcc/imcc.y"
+#line 1939 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_FLAT; }
break;
case 282:
-#line 1913 "compilers/imcc/imcc.y"
+#line 1940 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_NAMED; }
break;
case 283:
-#line 1916 "compilers/imcc/imcc.y"
+#line 1943 "compilers/imcc/imcc.y"
{ adv_named_set(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; }
break;
case 284:
-#line 1920 "compilers/imcc/imcc.y"
+#line 1947 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(1) - (2)].sr); (yyval.sr)->type |= (yyvsp[(2) - (2)].t); }
break;
case 285:
-#line 1925 "compilers/imcc/imcc.y"
+#line 1952 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
if (IMCC_INFO(interp)->adv_named_id) {
@@ -4615,7 +4642,7 @@
break;
case 286:
-#line 1935 "compilers/imcc/imcc.y"
+#line 1962 "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));
@@ -4623,7 +4650,7 @@
break;
case 287:
-#line 1940 "compilers/imcc/imcc.y"
+#line 1967 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
if (IMCC_INFO(interp)->adv_named_id) {
@@ -4636,7 +4663,7 @@
break;
case 288:
-#line 1950 "compilers/imcc/imcc.y"
+#line 1977 "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));
@@ -4644,124 +4671,124 @@
break;
case 289:
-#line 1954 "compilers/imcc/imcc.y"
+#line 1981 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 290:
-#line 1958 "compilers/imcc/imcc.y"
+#line 1985 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
case 291:
-#line 1959 "compilers/imcc/imcc.y"
+#line 1986 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
case 292:
-#line 1964 "compilers/imcc/imcc.y"
+#line 1991 "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 293:
-#line 1968 "compilers/imcc/imcc.y"
+#line 1995 "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 294:
-#line 1972 "compilers/imcc/imcc.y"
+#line 1999 "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 295:
-#line 1979 "compilers/imcc/imcc.y"
+#line 2006 "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 296:
-#line 1983 "compilers/imcc/imcc.y"
+#line 2010 "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 297:
-#line 1987 "compilers/imcc/imcc.y"
+#line 2014 "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 298:
-#line 1993 "compilers/imcc/imcc.y"
+#line 2020 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 299:
-#line 1994 "compilers/imcc/imcc.y"
+#line 2021 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 300:
-#line 1998 "compilers/imcc/imcc.y"
+#line 2025 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"eq"; }
break;
case 301:
-#line 1999 "compilers/imcc/imcc.y"
+#line 2026 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"ne"; }
break;
case 302:
-#line 2000 "compilers/imcc/imcc.y"
+#line 2027 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"gt"; }
break;
case 303:
-#line 2001 "compilers/imcc/imcc.y"
+#line 2028 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"ge"; }
break;
case 304:
-#line 2002 "compilers/imcc/imcc.y"
+#line 2029 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"lt"; }
break;
case 305:
-#line 2003 "compilers/imcc/imcc.y"
+#line 2030 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"le"; }
break;
case 308:
-#line 2012 "compilers/imcc/imcc.y"
+#line 2039 "compilers/imcc/imcc.y"
{ (yyval.sr) = NULL; }
break;
case 309:
-#line 2013 "compilers/imcc/imcc.y"
+#line 2040 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(1) - (1)].sr); }
break;
case 310:
-#line 2017 "compilers/imcc/imcc.y"
+#line 2044 "compilers/imcc/imcc.y"
{ (yyval.sr) = IMCC_INFO(interp)->regs[0]; }
break;
case 312:
-#line 2022 "compilers/imcc/imcc.y"
+#line 2049 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(1) - (1)].sr); }
break;
case 313:
-#line 2024 "compilers/imcc/imcc.y"
+#line 2051 "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);
@@ -4771,7 +4798,7 @@
break;
case 314:
-#line 2031 "compilers/imcc/imcc.y"
+#line 2058 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp) -> regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(2) - (3)].sr);
(yyval.sr) = (yyvsp[(2) - (3)].sr);
@@ -4779,37 +4806,37 @@
break;
case 316:
-#line 2038 "compilers/imcc/imcc.y"
+#line 2065 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address_fromc(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 317:
-#line 2039 "compilers/imcc/imcc.y"
+#line 2066 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address_u(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 318:
-#line 2043 "compilers/imcc/imcc.y"
+#line 2070 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 319:
-#line 2044 "compilers/imcc/imcc.y"
+#line 2071 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 320:
-#line 2048 "compilers/imcc/imcc.y"
+#line 2075 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_label_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 321:
-#line 2049 "compilers/imcc/imcc.y"
+#line 2076 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_label_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 326:
-#line 2063 "compilers/imcc/imcc.y"
+#line 2090 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->nkeys = 0;
IMCC_INFO(interp)->in_slice = 0;
@@ -4817,7 +4844,7 @@
break;
case 327:
-#line 2068 "compilers/imcc/imcc.y"
+#line 2095 "compilers/imcc/imcc.y"
{
(yyval.sr) = link_keys(interp,
IMCC_INFO(interp)->nkeys,
@@ -4826,7 +4853,7 @@
break;
case 328:
-#line 2076 "compilers/imcc/imcc.y"
+#line 2103 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->nkeys = 0;
IMCC_INFO(interp)->in_slice = 0;
@@ -4834,7 +4861,7 @@
break;
case 329:
-#line 2081 "compilers/imcc/imcc.y"
+#line 2108 "compilers/imcc/imcc.y"
{
(yyval.sr) = link_keys(interp,
IMCC_INFO(interp)->nkeys,
@@ -4843,12 +4870,12 @@
break;
case 330:
-#line 2089 "compilers/imcc/imcc.y"
+#line 2116 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(1) - (1)].sr); }
break;
case 331:
-#line 2091 "compilers/imcc/imcc.y"
+#line 2118 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(3) - (3)].sr);
(yyval.sr) = IMCC_INFO(interp)->keys[0];
@@ -4856,7 +4883,7 @@
break;
case 332:
-#line 2099 "compilers/imcc/imcc.y"
+#line 2126 "compilers/imcc/imcc.y"
{
if (IMCC_INFO(interp)->in_slice)
(yyvsp[(1) - (1)].sr)->type |= VT_START_SLICE | VT_END_SLICE;
@@ -4865,53 +4892,53 @@
break;
case 333:
-#line 2107 "compilers/imcc/imcc.y"
+#line 2134 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'I'); }
break;
case 334:
-#line 2108 "compilers/imcc/imcc.y"
+#line 2135 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'N'); }
break;
case 335:
-#line 2109 "compilers/imcc/imcc.y"
+#line 2136 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'S'); }
break;
case 336:
-#line 2110 "compilers/imcc/imcc.y"
+#line 2137 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'P'); }
break;
case 337:
-#line 2111 "compilers/imcc/imcc.y"
+#line 2138 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_pasm_reg(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 338:
-#line 2115 "compilers/imcc/imcc.y"
+#line 2142 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'I'); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 339:
-#line 2116 "compilers/imcc/imcc.y"
+#line 2143 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'N'); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 340:
-#line 2117 "compilers/imcc/imcc.y"
+#line 2144 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'S'); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 341:
-#line 2118 "compilers/imcc/imcc.y"
+#line 2145 "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 4904 "compilers/imcc/imcparser.c"
+#line 4931 "compilers/imcc/imcparser.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -5125,7 +5152,7 @@
}
-#line 2124 "compilers/imcc/imcc.y"
+#line 2151 "compilers/imcc/imcc.y"
/* I need this prototype somewhere... */
Modified: trunk/compilers/imcc/imcparser.h
==============================================================================
--- trunk/compilers/imcc/imcparser.h (original)
+++ trunk/compilers/imcc/imcparser.h Sat Jan 3 13:47:27 2009
@@ -295,7 +295,7 @@
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
-#line 757 "compilers/imcc/imcc.y"
+#line 784 "compilers/imcc/imcc.y"
{
IdList * idlist;
int t;
Modified: trunk/tools/build/headerizer.pl
==============================================================================
--- trunk/tools/build/headerizer.pl (original)
+++ trunk/tools/build/headerizer.pl Sat Jan 3 13:47:27 2009
@@ -548,8 +548,8 @@
for my $cfile ( sort keys %{$cfiles} ) {
my @funcs = @{ $cfiles->{$cfile} };
@funcs = grep { not $_->{is_static} } @funcs; # skip statics
- $header = replace_headerized_declarations( $header, $cfile, $hfile, @funcs )
- unless $cfile =~ /\.y$/;
+
+ $header = replace_headerized_declarations( $header, $cfile, $hfile, @funcs );
}
write_file( $hfile, $header );
-
[svn:parrot] r34902 - in trunk: compilers/imcc tools/build
by chromatic