[svn:parrot] r39417 - in trunk: compilers/imcc t/compilers/imcc/syn
chromatic at svn.parrot.org
chromatic at svn.parrot.org
Sat Jun 6 00:16:19 UTC 2009
Author: chromatic
Date: Sat Jun 6 00:16:18 2009
New Revision: 39417
URL: https://trac.parrot.org/parrot/changeset/39417
Log:
[IMCC] Allowed Unicode identifiers in method names, not only when stored in
STRINGs but appearing directly in source code. See TT #730.
Modified:
trunk/compilers/imcc/imcc.y
trunk/compilers/imcc/imcparser.c
trunk/compilers/imcc/imcparser.h
trunk/compilers/imcc/pcc.c
trunk/t/compilers/imcc/syn/pcc.t
Modified: trunk/compilers/imcc/imcc.y
==============================================================================
--- trunk/compilers/imcc/imcc.y Fri Jun 5 23:43:47 2009 (r39416)
+++ trunk/compilers/imcc/imcc.y Sat Jun 6 00:16:18 2009 (r39417)
@@ -800,14 +800,19 @@
{
ASSERT_ARGS(IMCC_itcall_sub)
IMCC_INFO(interp)->cur_call->pcc_sub->sub = sub;
+
if (IMCC_INFO(interp)->cur_obj) {
if (IMCC_INFO(interp)->cur_obj->set != 'P')
IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR, "object isn't a PMC");
- IMCC_INFO(interp)->cur_call->pcc_sub->object = IMCC_INFO(interp)->cur_obj;
+
+ IMCC_INFO(interp)->cur_call->pcc_sub->object =
+ IMCC_INFO(interp)->cur_obj;
IMCC_INFO(interp)->cur_obj = NULL;
}
+
if (IMCC_INFO(interp)->cur_call->pcc_sub->sub->pmc_type == enum_class_NCI)
IMCC_INFO(interp)->cur_call->pcc_sub->flags |= isNCI;
+
if (IMCC_INFO(interp)->cur_unit->type == IMC_PCCSUB)
IMCC_INFO(interp)->cur_unit->instructions->symregs[0]->pcc_sub->calls_a_sub |= 1;
}
@@ -1407,13 +1412,13 @@
VTABLE_METHOD
{
$$ = P_VTABLE;
- IMCC_INFO(interp)->cur_unit->vtable_name = NULL;
+ IMCC_INFO(interp)->cur_unit->vtable_name = NULL;
IMCC_INFO(interp)->cur_unit->is_vtable_method = 1;
}
| VTABLE_METHOD '(' STRINGC ')'
{
$$ = P_VTABLE;
- IMCC_INFO(interp)->cur_unit->vtable_name = $3;
+ IMCC_INFO(interp)->cur_unit->vtable_name = $3;
IMCC_INFO(interp)->cur_unit->is_vtable_method = 1;
}
;
@@ -1423,13 +1428,13 @@
{
$$ = P_METHOD;
IMCC_INFO(interp)->cur_unit->method_name = NULL;
- IMCC_INFO(interp)->cur_unit->is_method = 1;
+ IMCC_INFO(interp)->cur_unit->is_method = 1;
}
| METHOD '(' any_string ')'
{
$$ = P_METHOD;
IMCC_INFO(interp)->cur_unit->method_name = $3;
- IMCC_INFO(interp)->cur_unit->is_method = 1;
+ IMCC_INFO(interp)->cur_unit->is_method = 1;
}
;
@@ -1437,7 +1442,7 @@
NS_ENTRY
{
$$ = 0;
- IMCC_INFO(interp)->cur_unit->ns_entry_name = NULL;
+ IMCC_INFO(interp)->cur_unit->ns_entry_name = NULL;
IMCC_INFO(interp)->cur_unit->has_ns_entry_name = 1;
}
| NS_ENTRY '(' any_string ')'
@@ -2092,9 +2097,9 @@
;
the_sub:
- IDENTIFIER { $$ = mk_sub_address(interp, $1); mem_sys_free($1); }
- | STRINGC { $$ = mk_sub_address_fromc(interp, $1); mem_sys_free($1); }
- | USTRINGC { $$ = mk_sub_address_u(interp, $1); mem_sys_free($1); }
+ IDENTIFIER { $$ = mk_sub_address(interp, $1); mem_sys_free($1); }
+ | STRINGC { $$ = mk_sub_address_fromc(interp, $1); mem_sys_free($1); }
+ | USTRINGC { $$ = mk_sub_address_u(interp, $1); mem_sys_free($1); }
| target
{
$$ = $1;
@@ -2115,6 +2120,12 @@
IMCC_INFO(interp)->cur_obj = $1;
$$ = $3;
}
+ | target DOT USTRINGC
+ {
+ IMCC_INFO(interp)->cur_obj = $1;
+ $$ = mk_const(interp, $3, 'U');
+ mem_sys_free($3);
+ }
| target DOT STRINGC
{
IMCC_INFO(interp)->cur_obj = $1;
Modified: trunk/compilers/imcc/imcparser.c
==============================================================================
--- trunk/compilers/imcc/imcparser.c Fri Jun 5 23:43:47 2009 (r39416)
+++ trunk/compilers/imcc/imcparser.c Sat Jun 6 00:16:18 2009 (r39417)
@@ -1124,14 +1124,19 @@
{
ASSERT_ARGS(IMCC_itcall_sub)
IMCC_INFO(interp)->cur_call->pcc_sub->sub = sub;
+
if (IMCC_INFO(interp)->cur_obj) {
if (IMCC_INFO(interp)->cur_obj->set != 'P')
IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR, "object isn't a PMC");
- IMCC_INFO(interp)->cur_call->pcc_sub->object = IMCC_INFO(interp)->cur_obj;
+
+ IMCC_INFO(interp)->cur_call->pcc_sub->object =
+ IMCC_INFO(interp)->cur_obj;
IMCC_INFO(interp)->cur_obj = NULL;
}
+
if (IMCC_INFO(interp)->cur_call->pcc_sub->sub->pmc_type == enum_class_NCI)
IMCC_INFO(interp)->cur_call->pcc_sub->flags |= isNCI;
+
if (IMCC_INFO(interp)->cur_unit->type == IMC_PCCSUB)
IMCC_INFO(interp)->cur_unit->instructions->symregs[0]->pcc_sub->calls_a_sub |= 1;
}
@@ -1371,7 +1376,7 @@
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
-#line 1030 "compilers/imcc/imcc.y"
+#line 1035 "compilers/imcc/imcc.y"
{
IdList * idlist;
int t;
@@ -1380,7 +1385,7 @@
Instruction *i;
}
/* Line 187 of yacc.c. */
-#line 1373 "compilers/imcc/imcparser.c"
+#line 1378 "compilers/imcc/imcparser.c"
YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
@@ -1393,7 +1398,7 @@
/* Line 216 of yacc.c. */
-#line 1386 "compilers/imcc/imcparser.c"
+#line 1391 "compilers/imcc/imcparser.c"
#ifdef short
# undef short
@@ -1608,16 +1613,16 @@
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 31
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 676
+#define YYLAST 680
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 138
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 126
/* YYNRULES -- Number of rules. */
-#define YYNRULES 336
+#define YYNRULES 337
/* YYNRULES -- Number of states. */
-#define YYNSTATES 542
+#define YYNSTATES 543
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
@@ -1700,14 +1705,14 @@
665, 667, 669, 671, 673, 675, 677, 679, 681, 683,
685, 686, 692, 696, 698, 700, 702, 704, 706, 708,
710, 712, 714, 716, 718, 720, 722, 727, 729, 731,
- 733, 735, 739, 743, 747, 748, 754, 755, 759, 761,
- 767, 771, 775, 778, 779, 782, 784, 786, 791, 796,
- 799, 803, 809, 811, 815, 816, 818, 820, 827, 833,
- 838, 843, 850, 856, 858, 860, 862, 864, 866, 868,
- 870, 872, 874, 876, 877, 879, 883, 885, 887, 892,
- 896, 898, 900, 902, 904, 906, 908, 910, 912, 914,
- 916, 918, 919, 922, 923, 926, 928, 932, 934, 936,
- 938, 940, 942, 944, 946, 948, 950
+ 733, 735, 739, 743, 747, 751, 752, 758, 759, 763,
+ 765, 771, 775, 779, 782, 783, 786, 788, 790, 795,
+ 800, 803, 807, 813, 815, 819, 820, 822, 824, 831,
+ 837, 842, 847, 854, 860, 862, 864, 866, 868, 870,
+ 872, 874, 876, 878, 880, 881, 883, 887, 889, 891,
+ 896, 900, 902, 904, 906, 908, 910, 912, 914, 916,
+ 918, 920, 922, 923, 926, 927, 930, 932, 936, 938,
+ 940, 942, 944, 946, 948, 950, 952, 954
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
@@ -1787,67 +1792,67 @@
40, -1, 41, -1, 42, -1, 46, -1, 47, -1,
48, -1, 247, 122, 116, 157, -1, 108, -1, 112,
-1, 115, -1, 247, -1, 247, 120, 252, -1, 247,
- 120, 112, -1, 247, 120, 247, -1, -1, 233, 235,
- 125, 236, 126, -1, -1, 236, 71, 237, -1, 237,
- -1, 236, 71, 112, 21, 255, -1, 255, 21, 255,
- -1, 112, 21, 255, -1, 255, 238, -1, -1, 238,
- 239, -1, 16, -1, 20, -1, 20, 125, 115, 126,
- -1, 20, 125, 112, 126, -1, 247, 194, -1, 241,
- 71, 240, -1, 241, 71, 112, 21, 247, -1, 240,
- -1, 112, 21, 247, -1, -1, 244, -1, 243, -1,
- 12, 255, 246, 255, 9, 253, -1, 12, 13, 255,
- 9, 253, -1, 12, 255, 245, 253, -1, 11, 255,
- 245, 253, -1, 11, 255, 246, 255, 9, 253, -1,
- 11, 13, 255, 9, 253, -1, 71, -1, 9, -1,
- 56, -1, 57, -1, 58, -1, 59, -1, 60, -1,
- 61, -1, 117, -1, 262, -1, -1, 249, -1, 249,
- 71, 250, -1, 250, -1, 254, -1, 247, 123, 256,
- 124, -1, 123, 258, 124, -1, 252, -1, 112, -1,
- 115, -1, 108, -1, 116, -1, 108, -1, 116, -1,
- 253, -1, 255, -1, 247, -1, 263, -1, -1, 257,
- 260, -1, -1, 259, 260, -1, 261, -1, 260, 137,
- 261, -1, 255, -1, 104, -1, 105, -1, 106, -1,
- 107, -1, 109, -1, 113, -1, 114, -1, 112, -1,
- 115, -1
+ 120, 115, -1, 247, 120, 112, -1, 247, 120, 247,
+ -1, -1, 233, 235, 125, 236, 126, -1, -1, 236,
+ 71, 237, -1, 237, -1, 236, 71, 112, 21, 255,
+ -1, 255, 21, 255, -1, 112, 21, 255, -1, 255,
+ 238, -1, -1, 238, 239, -1, 16, -1, 20, -1,
+ 20, 125, 115, 126, -1, 20, 125, 112, 126, -1,
+ 247, 194, -1, 241, 71, 240, -1, 241, 71, 112,
+ 21, 247, -1, 240, -1, 112, 21, 247, -1, -1,
+ 244, -1, 243, -1, 12, 255, 246, 255, 9, 253,
+ -1, 12, 13, 255, 9, 253, -1, 12, 255, 245,
+ 253, -1, 11, 255, 245, 253, -1, 11, 255, 246,
+ 255, 9, 253, -1, 11, 13, 255, 9, 253, -1,
+ 71, -1, 9, -1, 56, -1, 57, -1, 58, -1,
+ 59, -1, 60, -1, 61, -1, 117, -1, 262, -1,
+ -1, 249, -1, 249, 71, 250, -1, 250, -1, 254,
+ -1, 247, 123, 256, 124, -1, 123, 258, 124, -1,
+ 252, -1, 112, -1, 115, -1, 108, -1, 116, -1,
+ 108, -1, 116, -1, 253, -1, 255, -1, 247, -1,
+ 263, -1, -1, 257, 260, -1, -1, 259, 260, -1,
+ 261, -1, 260, 137, 261, -1, 255, -1, 104, -1,
+ 105, -1, 106, -1, 107, -1, 109, -1, 113, -1,
+ 114, -1, 112, -1, 115, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 1125, 1125, 1129, 1130, 1134, 1135, 1136, 1142, 1148,
- 1149, 1150, 1151, 1155, 1156, 1165, 1171, 1179, 1191, 1204,
- 1204, 1213, 1213, 1220, 1220, 1229, 1230, 1234, 1235, 1239,
- 1240, 1241, 1242, 1243, 1244, 1245, 1248, 1248, 1257, 1256,
- 1268, 1272, 1281, 1285, 1289, 1289, 1301, 1303, 1307, 1322,
- 1330, 1335, 1339, 1343, 1334, 1355, 1356, 1357, 1370, 1370,
- 1374, 1388, 1392, 1398, 1407, 1413, 1422, 1428, 1437, 1443,
- 1452, 1460, 1465, 1476, 1479, 1484, 1492, 1493, 1494, 1495,
- 1496, 1507, 1518, 1521, 1523, 1528, 1527, 1560, 1561, 1565,
- 1566, 1570, 1571, 1575, 1576, 1580, 1581, 1582, 1583, 1584,
- 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1597,
- 1602, 1606, 1611, 1615, 1619, 1624, 1633, 1634, 1638, 1643,
- 1644, 1652, 1653, 1653, 1668, 1669, 1673, 1674, 1675, 1676,
- 1677, 1678, 1679, 1684, 1684, 1687, 1695, 1695, 1701, 1702,
- 1707, 1715, 1716, 1721, 1729, 1733, 1738, 1737, 1750, 1751,
- 1755, 1756, 1766, 1771, 1781, 1790, 1791, 1803, 1807, 1809,
- 1810, 1811, 1812, 1813, 1817, 1818, 1822, 1823, 1827, 1836,
- 1837, 1848, 1855, 1864, 1874, 1875, 1880, 1881, 1882, 1882,
- 1898, 1903, 1908, 1908, 1915, 1916, 1916, 1922, 1928, 1932,
- 1944, 1945, 1946, 1947, 1948, 1949, 1953, 1954, 1955, 1956,
- 1960, 1973, 1975, 1977, 1979, 1981, 1986, 1989, 1996, 1995,
- 2004, 2005, 2006, 2007, 2015, 2016, 2017, 2021, 2022, 2023,
- 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033,
- 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043,
- 2049, 2048, 2060, 2067, 2068, 2069, 2070, 2071, 2072, 2073,
- 2074, 2075, 2076, 2077, 2078, 2079, 2084, 2095, 2096, 2097,
- 2098, 2104, 2118, 2124, 2130, 2129, 2138, 2139, 2149, 2159,
- 2166, 2171, 2181, 2185, 2186, 2190, 2191, 2194, 2195, 2199,
- 2203, 2213, 2219, 2229, 2234, 2238, 2239, 2243, 2247, 2251,
- 2258, 2262, 2266, 2273, 2274, 2278, 2279, 2280, 2281, 2282,
- 2283, 2287, 2288, 2292, 2293, 2297, 2298, 2302, 2303, 2310,
- 2317, 2318, 2319, 2323, 2324, 2328, 2329, 2333, 2334, 2338,
- 2339, 2343, 2343, 2356, 2356, 2369, 2370, 2378, 2387, 2388,
- 2389, 2390, 2391, 2395, 2396, 2397, 2398
+ 0, 1130, 1130, 1134, 1135, 1139, 1140, 1141, 1147, 1153,
+ 1154, 1155, 1156, 1160, 1161, 1170, 1176, 1184, 1196, 1209,
+ 1209, 1218, 1218, 1225, 1225, 1234, 1235, 1239, 1240, 1244,
+ 1245, 1246, 1247, 1248, 1249, 1250, 1253, 1253, 1262, 1261,
+ 1273, 1277, 1286, 1290, 1294, 1294, 1306, 1308, 1312, 1327,
+ 1335, 1340, 1344, 1348, 1339, 1360, 1361, 1362, 1375, 1375,
+ 1379, 1393, 1397, 1403, 1412, 1418, 1427, 1433, 1442, 1448,
+ 1457, 1465, 1470, 1481, 1484, 1489, 1497, 1498, 1499, 1500,
+ 1501, 1512, 1523, 1526, 1528, 1533, 1532, 1565, 1566, 1570,
+ 1571, 1575, 1576, 1580, 1581, 1585, 1586, 1587, 1588, 1589,
+ 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1602,
+ 1607, 1611, 1616, 1620, 1624, 1629, 1638, 1639, 1643, 1648,
+ 1649, 1657, 1658, 1658, 1673, 1674, 1678, 1679, 1680, 1681,
+ 1682, 1683, 1684, 1689, 1689, 1692, 1700, 1700, 1706, 1707,
+ 1712, 1720, 1721, 1726, 1734, 1738, 1743, 1742, 1755, 1756,
+ 1760, 1761, 1771, 1776, 1786, 1795, 1796, 1808, 1812, 1814,
+ 1815, 1816, 1817, 1818, 1822, 1823, 1827, 1828, 1832, 1841,
+ 1842, 1853, 1860, 1869, 1879, 1880, 1885, 1886, 1887, 1887,
+ 1903, 1908, 1913, 1913, 1920, 1921, 1921, 1927, 1933, 1937,
+ 1949, 1950, 1951, 1952, 1953, 1954, 1958, 1959, 1960, 1961,
+ 1965, 1978, 1980, 1982, 1984, 1986, 1991, 1994, 2001, 2000,
+ 2009, 2010, 2011, 2012, 2020, 2021, 2022, 2026, 2027, 2028,
+ 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038,
+ 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048,
+ 2054, 2053, 2065, 2072, 2073, 2074, 2075, 2076, 2077, 2078,
+ 2079, 2080, 2081, 2082, 2083, 2084, 2089, 2100, 2101, 2102,
+ 2103, 2109, 2123, 2129, 2135, 2141, 2140, 2149, 2150, 2160,
+ 2170, 2177, 2182, 2192, 2196, 2197, 2201, 2202, 2205, 2206,
+ 2210, 2214, 2224, 2230, 2240, 2245, 2249, 2250, 2254, 2258,
+ 2262, 2269, 2273, 2277, 2284, 2285, 2289, 2290, 2291, 2292,
+ 2293, 2294, 2298, 2299, 2303, 2304, 2308, 2309, 2313, 2314,
+ 2321, 2328, 2329, 2330, 2334, 2335, 2339, 2340, 2344, 2345,
+ 2349, 2350, 2354, 2354, 2367, 2367, 2380, 2381, 2389, 2398,
+ 2399, 2400, 2401, 2402, 2406, 2407, 2408, 2409
};
#endif
@@ -1955,14 +1960,14 @@
227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
229, 228, 230, 231, 231, 231, 231, 231, 231, 231,
231, 231, 231, 231, 231, 231, 232, 233, 233, 233,
- 233, 233, 233, 233, 235, 234, 236, 236, 236, 236,
- 236, 236, 237, 238, 238, 239, 239, 239, 239, 240,
- 241, 241, 241, 241, 241, 242, 242, 243, 243, 243,
- 244, 244, 244, 245, 245, 246, 246, 246, 246, 246,
- 246, 247, 247, 248, 248, 249, 249, 250, 250, 250,
- 251, 251, 251, 252, 252, 253, 253, 254, 254, 255,
- 255, 257, 256, 259, 258, 260, 260, 261, 262, 262,
- 262, 262, 262, 263, 263, 263, 263
+ 233, 233, 233, 233, 233, 235, 234, 236, 236, 236,
+ 236, 236, 236, 237, 238, 238, 239, 239, 239, 239,
+ 240, 241, 241, 241, 241, 241, 242, 242, 243, 243,
+ 243, 244, 244, 244, 245, 245, 246, 246, 246, 246,
+ 246, 246, 247, 247, 248, 248, 249, 249, 250, 250,
+ 250, 251, 251, 251, 252, 252, 253, 253, 254, 254,
+ 255, 255, 257, 256, 259, 258, 260, 260, 261, 262,
+ 262, 262, 262, 262, 263, 263, 263, 263
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
@@ -1994,14 +1999,14 @@
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
0, 5, 3, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 4, 1, 1, 1,
- 1, 3, 3, 3, 0, 5, 0, 3, 1, 5,
- 3, 3, 2, 0, 2, 1, 1, 4, 4, 2,
- 3, 5, 1, 3, 0, 1, 1, 6, 5, 4,
- 4, 6, 5, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 0, 1, 3, 1, 1, 4, 3,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 0, 2, 0, 2, 1, 3, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1
+ 1, 3, 3, 3, 3, 0, 5, 0, 3, 1,
+ 5, 3, 3, 2, 0, 2, 1, 1, 4, 4,
+ 2, 3, 5, 1, 3, 0, 1, 1, 6, 5,
+ 4, 4, 6, 5, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 0, 1, 3, 1, 1, 4,
+ 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 0, 2, 0, 2, 1, 3, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1
};
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -2011,59 +2016,59 @@
{
0, 12, 0, 0, 0, 0, 51, 19, 0, 44,
0, 0, 2, 3, 10, 11, 0, 6, 8, 5,
- 7, 18, 0, 0, 321, 0, 0, 0, 0, 164,
+ 7, 18, 0, 0, 322, 0, 0, 0, 0, 164,
9, 1, 4, 13, 0, 16, 50, 0, 0, 48,
- 313, 311, 312, 314, 52, 310, 196, 197, 198, 199,
+ 314, 312, 313, 315, 52, 311, 196, 197, 198, 199,
0, 14, 21, 168, 0, 32, 31, 35, 34, 164,
- 27, 0, 33, 36, 165, 167, 0, 49, 328, 329,
- 330, 331, 332, 335, 333, 334, 336, 301, 319, 327,
- 322, 325, 302, 320, 91, 0, 0, 0, 30, 28,
+ 27, 0, 33, 36, 165, 167, 0, 49, 329, 330,
+ 331, 332, 333, 336, 334, 335, 337, 302, 320, 328,
+ 323, 326, 303, 321, 91, 0, 0, 0, 30, 28,
45, 0, 0, 38, 0, 0, 166, 15, 0, 97,
95, 96, 98, 99, 66, 100, 0, 101, 0, 64,
0, 71, 68, 102, 103, 104, 105, 106, 107, 108,
0, 92, 93, 0, 0, 0, 40, 0, 91, 29,
- 303, 326, 0, 0, 73, 0, 0, 0, 0, 53,
- 94, 20, 315, 316, 317, 0, 318, 0, 0, 0,
- 323, 37, 319, 43, 304, 306, 307, 25, 26, 0,
- 0, 0, 76, 77, 79, 78, 80, 81, 321, 0,
+ 304, 327, 0, 0, 73, 0, 0, 0, 0, 53,
+ 94, 20, 316, 317, 318, 0, 319, 0, 0, 0,
+ 324, 37, 320, 43, 305, 307, 308, 25, 26, 0,
+ 0, 0, 76, 77, 79, 78, 80, 81, 322, 0,
75, 0, 0, 0, 0, 55, 0, 0, 41, 39,
- 0, 0, 321, 0, 67, 63, 62, 0, 0, 61,
- 65, 70, 72, 69, 56, 157, 22, 24, 309, 324,
- 0, 305, 82, 74, 58, 0, 0, 161, 160, 162,
- 163, 0, 0, 157, 0, 155, 308, 0, 0, 159,
+ 0, 0, 322, 0, 67, 63, 62, 0, 0, 61,
+ 65, 70, 72, 69, 56, 157, 22, 24, 310, 325,
+ 0, 306, 82, 74, 58, 0, 0, 161, 160, 162,
+ 163, 0, 0, 157, 0, 155, 309, 0, 0, 159,
57, 54, 156, 0, 195, 158, 59, 0, 0, 170,
0, 0, 0, 0, 178, 0, 182, 185, 148, 0,
- 149, 240, 0, 0, 0, 257, 258, 259, 303, 208,
+ 149, 240, 0, 0, 0, 257, 258, 259, 304, 208,
184, 192, 193, 194, 135, 0, 0, 176, 210, 211,
- 212, 264, 191, 177, 286, 285, 260, 124, 17, 188,
+ 212, 265, 191, 177, 287, 286, 260, 124, 17, 188,
0, 0, 0, 0, 190, 0, 0, 0, 0, 0,
- 187, 260, 0, 85, 133, 136, 189, 284, 146, 169,
+ 187, 260, 0, 85, 133, 136, 189, 285, 146, 169,
0, 243, 244, 245, 246, 249, 250, 251, 252, 248,
- 247, 253, 254, 255, 0, 0, 321, 0, 60, 0,
- 294, 295, 296, 297, 298, 299, 300, 293, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 284, 116,
- 138, 141, 0, 282, 0, 124, 150, 266, 262, 263,
- 261, 213, 335, 336, 303, 0, 214, 215, 216, 0,
- 207, 319, 201, 0, 242, 126, 127, 128, 129, 132,
- 125, 0, 290, 0, 0, 289, 0, 174, 179, 171,
- 180, 181, 0, 0, 0, 89, 0, 0, 0, 0,
- 0, 279, 335, 0, 151, 273, 335, 0, 268, 273,
- 256, 200, 0, 202, 222, 231, 232, 236, 225, 226,
- 227, 228, 229, 230, 223, 233, 234, 235, 224, 321,
- 239, 217, 218, 219, 220, 221, 237, 238, 0, 0,
- 0, 292, 0, 288, 0, 175, 173, 0, 0, 0,
- 241, 0, 0, 0, 0, 139, 0, 134, 0, 142,
- 0, 137, 0, 283, 0, 280, 0, 0, 0, 147,
- 272, 0, 0, 265, 0, 321, 0, 203, 0, 0,
- 0, 291, 287, 172, 183, 186, 118, 0, 0, 0,
- 0, 87, 117, 273, 140, 273, 143, 0, 0, 152,
- 335, 153, 275, 276, 274, 271, 335, 267, 270, 0,
- 204, 205, 130, 131, 90, 0, 0, 0, 0, 119,
- 0, 144, 145, 281, 266, 0, 0, 0, 206, 110,
- 0, 111, 113, 0, 112, 0, 0, 88, 0, 154,
- 0, 0, 269, 0, 0, 0, 122, 0, 86, 0,
- 209, 278, 277, 109, 115, 114, 0, 124, 120, 0,
- 121, 123
+ 247, 253, 254, 255, 0, 0, 322, 0, 60, 0,
+ 295, 296, 297, 298, 299, 300, 301, 294, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 285, 116,
+ 138, 141, 0, 283, 0, 124, 150, 267, 263, 262,
+ 264, 261, 213, 336, 337, 304, 0, 214, 215, 216,
+ 0, 207, 320, 201, 0, 242, 126, 127, 128, 129,
+ 132, 125, 0, 291, 0, 0, 290, 0, 174, 179,
+ 171, 180, 181, 0, 0, 0, 89, 0, 0, 0,
+ 0, 0, 280, 336, 0, 151, 274, 336, 0, 269,
+ 274, 256, 200, 0, 202, 222, 231, 232, 236, 225,
+ 226, 227, 228, 229, 230, 223, 233, 234, 235, 224,
+ 322, 239, 217, 218, 219, 220, 221, 237, 238, 0,
+ 0, 0, 293, 0, 289, 0, 175, 173, 0, 0,
+ 0, 241, 0, 0, 0, 0, 139, 0, 134, 0,
+ 142, 0, 137, 0, 284, 0, 281, 0, 0, 0,
+ 147, 273, 0, 0, 266, 0, 322, 0, 203, 0,
+ 0, 0, 292, 288, 172, 183, 186, 118, 0, 0,
+ 0, 0, 87, 117, 274, 140, 274, 143, 0, 0,
+ 152, 336, 153, 276, 277, 275, 272, 336, 268, 271,
+ 0, 204, 205, 130, 131, 90, 0, 0, 0, 0,
+ 119, 0, 144, 145, 282, 267, 0, 0, 0, 206,
+ 110, 0, 111, 113, 0, 112, 0, 0, 88, 0,
+ 154, 0, 0, 270, 0, 0, 0, 122, 0, 86,
+ 0, 209, 279, 278, 109, 115, 114, 0, 124, 120,
+ 0, 121, 123
};
/* YYDEFGOTO[NTERM-NUM]. */
@@ -2073,95 +2078,95 @@
58, 86, 87, 159, 59, 60, 94, 95, 128, 151,
18, 29, 61, 19, 25, 20, 26, 84, 175, 195,
211, 217, 226, 113, 114, 115, 116, 117, 118, 119,
- 169, 170, 212, 251, 329, 499, 433, 120, 121, 122,
- 471, 375, 434, 516, 529, 536, 308, 360, 252, 330,
- 253, 331, 376, 377, 438, 442, 254, 336, 255, 383,
- 213, 214, 215, 63, 64, 65, 225, 368, 369, 426,
- 256, 275, 278, 279, 50, 392, 257, 287, 349, 418,
- 258, 282, 259, 307, 260, 261, 262, 290, 387, 388,
- 450, 484, 333, 334, 263, 264, 265, 318, 319, 78,
+ 169, 170, 212, 251, 329, 500, 434, 120, 121, 122,
+ 472, 376, 435, 517, 530, 537, 308, 361, 252, 330,
+ 253, 331, 377, 378, 439, 443, 254, 336, 255, 384,
+ 213, 214, 215, 63, 64, 65, 225, 369, 370, 427,
+ 256, 275, 278, 279, 50, 393, 257, 287, 350, 419,
+ 258, 282, 259, 307, 260, 261, 262, 290, 388, 389,
+ 451, 485, 333, 334, 263, 264, 265, 318, 319, 78,
153, 154, 155, 44, 45, 144, 156, 146, 37, 38,
180, 181, 80, 81, 82, 83
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
-#define YYPACT_NINF -422
+#define YYPACT_NINF -418
static const yytype_int16 yypact[] =
{
- 4, -422, -77, -34, -46, -31, -422, -422, -4, -422,
- 106, 139, 4, -422, -422, -422, 186, -422, -422, -422,
- -422, -422, 104, 187, 68, 194, 221, 127, 199, 53,
- -422, -422, -422, -422, 92, -422, -422, 84, 489, -422,
- -422, -422, -422, -422, -422, -422, -422, -422, -422, -422,
- 107, -422, 101, -422, 217, -422, -422, -422, -422, 64,
- -422, 122, -422, 14, 125, -422, 223, -422, -422, -422,
- -422, -422, -422, -422, -422, -422, -422, -422, -422, -422,
- 98, -422, -422, -422, 493, 118, 129, 131, -422, -422,
- -422, 489, 132, -422, 241, 130, -422, -422, 489, -422,
- -422, -422, -422, -422, 123, -422, 134, -422, 135, 136,
- 138, 141, 146, -422, -422, -422, -422, -422, -422, -422,
- 245, 493, -422, 74, 239, 239, -422, 181, 493, -422,
- 437, -422, 40, 56, -7, 152, 170, 40, 40, -422,
- -422, -422, -422, -422, -422, 163, -422, 165, 183, 193,
- -422, -422, 173, -422, 226, -422, -422, -422, -422, 180,
- 188, 189, -422, -422, -422, -422, -422, -422, -422, -50,
- -422, 190, 191, 195, 202, 303, 40, 40, -422, -422,
- 206, 489, -422, 437, -422, -422, -422, 207, -7, -422,
- -422, -422, -422, -422, -422, 32, -422, -422, -422, 98,
- 208, -422, -422, -422, -422, 211, 315, -422, -422, -422,
- -422, 316, 262, 43, 261, -422, -422, 127, 267, -422,
- -422, -422, -422, 336, 415, -422, -422, 242, 74, -422,
- -36, 105, 124, 489, -422, 54, 16, -422, -422, 171,
- -422, -422, 353, 360, 368, -422, -422, -422, 437, -422,
- -422, -422, -422, -422, -422, 249, 371, -422, -422, -422,
- -422, -422, -422, -422, -422, -422, 416, -422, -422, -422,
- 489, 197, 489, 197, -422, 127, 308, 310, 127, 127,
- -422, 268, 264, -422, -422, -422, -422, 278, -422, -422,
- 266, -422, -422, -422, -422, -422, -422, -422, -422, -422,
- -422, -422, -422, -422, 196, 18, -422, 489, -3, 383,
- -422, -422, -422, -422, -422, -422, -422, -422, -36, 489,
- 387, -36, 489, 289, 254, 254, 292, 293, 278, -422,
- -422, -422, 382, -422, -42, -422, 503, 517, -422, -422,
- -422, -422, 279, 280, 437, 298, -422, -422, -422, 489,
- -422, -47, 441, 283, -422, -422, -422, -422, 286, -422,
- -422, -36, -422, 403, -36, -422, 406, 317, 347, -422,
- -422, -422, 297, 299, -23, 3, 28, 21, 254, 329,
- 300, -3, 402, -14, -422, -422, 404, -13, -422, 408,
- -422, -422, 309, -422, -422, -422, -422, -422, -422, -422,
- -422, -422, -422, -422, -422, -422, -422, -422, -422, -422,
- -422, -422, -422, -422, -422, -422, -422, -422, 489, 318,
- 58, -422, -36, -422, -36, -422, -422, 289, 74, 74,
- -422, 489, 489, -1, 433, -422, 489, -422, 435, -422,
- 489, -422, 438, -422, 426, -422, 171, 489, 531, -422,
- 69, 489, 545, -422, 489, -422, 324, -422, 489, 333,
- 339, -422, -422, -422, -422, -422, -422, 446, 489, 489,
- 559, 125, -422, -422, -422, -422, -422, 254, 343, -422,
- 449, -422, -422, 346, -422, -422, 452, -422, -422, 350,
- -422, -422, -422, -422, -422, 15, 472, 19, 22, -422,
- 478, 69, 69, -422, 517, 489, 90, 489, -422, -422,
- 489, -422, -422, 489, -422, 489, -6, -422, -9, -422,
- 357, 359, -422, 482, 483, 484, -422, 254, -422, 488,
- -422, -422, -422, -422, -422, -422, 127, -422, -422, 289,
- -3, -422
+ 252, -418, -82, -71, -58, -55, -418, -418, -6, -418,
+ 112, 141, 252, -418, -418, -418, 145, -418, -418, -418,
+ -418, -418, 87, 169, 68, 194, 48, 184, 200, 11,
+ -418, -418, -418, -418, 94, -418, -418, 83, 479, -418,
+ -418, -418, -418, -418, -418, -418, -418, -418, -418, -418,
+ 101, -418, 98, -418, 211, -418, -418, -418, -418, 144,
+ -418, 122, -418, 20, 132, -418, 235, -418, -418, -418,
+ -418, -418, -418, -418, -418, -418, -418, -418, -418, -418,
+ 109, -418, -418, -418, 451, 127, 137, 143, -418, -418,
+ -418, 479, 149, -418, 249, 148, -418, -418, 479, -418,
+ -418, -418, -418, -418, 140, -418, 146, -418, 150, 152,
+ 154, 155, 158, -418, -418, -418, -418, -418, -418, -418,
+ 253, 451, -418, 173, 464, 464, -418, 195, 451, -418,
+ 412, -418, 54, -41, 5, 156, 180, 54, 54, -418,
+ -418, -418, -418, -418, -418, 171, -418, 174, 188, 203,
+ -418, -418, 183, -418, 236, -418, -418, -418, -418, 189,
+ 190, 191, -418, -418, -418, -418, -418, -418, -418, -46,
+ -418, 192, 202, 204, 205, 305, 54, 54, -418, -418,
+ 197, 479, -418, 412, -418, -418, -418, 198, 5, -418,
+ -418, -418, -418, -418, -418, 43, -418, -418, -418, 109,
+ 208, -418, -418, -418, -418, 217, 310, -418, -418, -418,
+ -418, 316, 264, 0, 74, -418, -418, 184, 262, -418,
+ -418, -418, -418, 333, 261, -418, -418, 230, 173, -418,
+ -69, 321, 336, 479, -418, 55, -50, -418, -418, 354,
+ -418, -418, 338, 340, 341, -418, -418, -418, 412, -418,
+ -418, -418, -418, -418, -418, 215, 342, -418, -418, -418,
+ -418, -418, -418, -418, -418, -418, 467, -418, -418, -418,
+ 479, 75, 479, 75, -418, 184, 276, 280, 184, 184,
+ -418, 232, 228, -418, -418, -418, -418, 196, -418, -418,
+ 231, -418, -418, -418, -418, -418, -418, -418, -418, -418,
+ -418, -418, -418, -418, 493, 114, -418, 479, -5, 346,
+ -418, -418, -418, -418, -418, -418, -418, -418, -69, 479,
+ 348, -69, 479, 250, 107, 107, 251, 255, 196, -418,
+ -418, -418, 339, -418, -45, -418, 507, 521, -418, -418,
+ -418, -418, -418, 239, 246, 412, 266, -418, -418, -418,
+ 479, -418, -80, 431, 237, -418, -418, -418, -418, 247,
+ -418, -418, -69, -418, 366, -69, -418, 370, 282, 309,
+ -418, -418, -418, 263, 265, -35, 8, 15, 12, 107,
+ 284, 270, -5, 362, -27, -418, -418, 363, -2, -418,
+ 376, -418, -418, 275, -418, -418, -418, -418, -418, -418,
+ -418, -418, -418, -418, -418, -418, -418, -418, -418, -418,
+ -418, -418, -418, -418, -418, -418, -418, -418, -418, 479,
+ 283, 72, -418, -69, -418, -69, -418, -418, 250, 173,
+ 173, -418, 479, 479, 89, 398, -418, 479, -418, 400,
+ -418, 479, -418, 402, -418, 386, -418, 354, 479, 535,
+ -418, 131, 479, 549, -418, 479, -418, 288, -418, 479,
+ 287, 290, -418, -418, -418, -418, -418, -418, 404, 479,
+ 479, 563, 132, -418, -418, -418, -418, -418, 107, 293,
+ -418, 399, -418, -418, 294, -418, -418, 401, -418, -418,
+ 299, -418, -418, -418, -418, -418, 17, 420, 18, 19,
+ -418, 425, 131, 131, -418, 521, 479, 73, 479, -418,
+ -418, 479, -418, -418, 479, -418, 479, 4, -418, -1,
+ -418, 311, 313, -418, 440, 442, 443, -418, 107, -418,
+ 448, -418, -418, -418, -418, -418, -418, 184, -418, -418,
+ 250, -5, -418
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -422, -422, -422, 491, 9, -146, -422, -422, -422, -422,
- 270, -422, -422, 47, -422, 445, -422, -422, -422, 161,
- -422, -422, -422, 12, -422, -422, -422, -422, -422, -422,
- -422, -422, -422, -422, -422, -422, -422, -422, -422, -422,
- -422, 319, -422, -422, -422, -422, -422, 378, -422, 391,
- -422, -422, -422, -422, -422, -422, -330, -422, -422, -422,
- -422, -422, -422, -422, -422, -422, -422, -422, -422, -422,
- -422, -422, 301, 302, -422, -63, -422, -422, -418, -422,
- -422, -422, -422, -422, -214, -422, -422, -422, -422, -422,
- -422, -422, -422, -422, -422, 67, -206, -422, 11, -312,
- -421, -422, 147, 200, -422, -422, -422, 244, 252, -128,
- 281, -422, 335, -422, 229, -223, 33, -38, -162, -422,
- -422, -422, 354, 436, -422, -119
+ -418, -418, -418, 444, 14, -167, -418, -418, -418, -418,
+ 233, -418, -418, -100, -418, 395, -418, -418, -418, 110,
+ -418, -418, -418, 23, -418, -418, -418, -418, -418, -418,
+ -418, -418, -418, -418, -418, -418, -418, -418, -418, -418,
+ -418, 277, -418, -418, -418, -418, -418, 344, -418, 343,
+ -418, -418, -418, -418, -418, -418, -330, -418, -418, -418,
+ -418, -418, -418, -418, -418, -418, -418, -418, -418, -418,
+ -418, -418, 269, 271, -418, -63, -418, -418, -417, -418,
+ -418, -418, -418, -418, -214, -418, -418, -418, -418, -418,
+ -418, -418, -418, -418, -418, 28, -205, -418, -28, -327,
+ -319, -418, 99, 165, -418, -418, -418, 210, 221, -128,
+ 248, -418, 301, -418, 193, -220, 77, -38, -162, -418,
+ -418, -418, 314, 424, -418, -119
};
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
@@ -2171,146 +2176,148 @@
#define YYTABLE_NINF -261
static const yytype_int16 yytable[] =
{
- 79, 96, 152, 227, 141, 381, 187, 269, 1, 463,
- 2, 3, 4, 431, 355, 356, 357, 358, -42, 509,
- 200, 188, 526, 512, 384, 439, 514, 91, 5, 379,
- 6, 341, 435, 280, 7, 21, 440, 204, 57, 3,
- 4, 62, 436, 92, 162, 163, 164, 165, 379, 209,
- 3, 4, 501, 126, 502, 152, 527, 448, 452, 2,
- 79, 323, 452, 205, 326, 327, 23, 209, 57, 528,
- 2, 62, 142, 304, 205, 468, 189, 5, -260, 22,
- 143, 469, 470, 52, 380, 482, 510, 432, 5, 483,
- 513, 93, 24, 515, 52, 362, 266, 359, 365, 350,
- 8, 166, 441, 430, -83, 167, 9, 437, 28, 268,
- 30, 281, 449, 453, 10, -84, 168, 530, 270, 466,
- 152, 541, 68, 69, 70, 71, 245, 72, -23, -21,
- 342, 74, 75, 343, 344, 77, 481, 272, 421, 31,
- 487, 423, 206, 79, 353, 345, 346, 347, 348, 8,
- 207, 208, 157, 206, 53, 158, -46, 145, 147, 335,
- 8, 207, 208, 54, 160, 53, 276, -47, 161, 277,
- 459, 55, 56, 460, 54, 34, 339, 351, 46, 47,
- 48, 49, 55, 56, 173, 174, 73, 74, 75, 76,
- 33, 35, 36, 271, 273, 274, 370, 371, 39, 461,
- 335, 462, 520, 51, 66, 521, 310, 540, 67, 68,
- 69, 70, 71, -23, 72, 85, 152, 73, 74, 75,
- 76, 88, 77, 196, 197, 90, 53, 97, 68, 69,
- 70, 71, 309, 72, 320, 98, 73, 74, 75, 76,
- 123, 77, 124, 125, 127, 129, 130, 456, 132, 139,
- 443, 335, 148, 311, 312, 313, 314, 315, 316, 133,
- 134, 135, 223, 136, 171, -164, 137, 352, 317, 354,
- -164, 138, -164, -164, -164, 68, 69, 70, 71, 245,
- 72, 363, 172, 246, 366, 176, 247, 177, 77, -164,
- -164, -164, 178, 489, 179, -164, 182, 183, 385, 389,
- 68, 69, 70, 71, 40, 72, 184, 194, 338, 464,
- 465, 393, 43, 77, 185, 186, 190, 191, 281, 219,
- 220, 192, 539, 218, -164, -164, -164, -164, 193, 40,
- 198, 202, 216, 41, 221, -164, 42, 43, 228, -164,
- 229, -164, 498, 68, 69, 70, 71, 142, 72, 503,
- 267, 73, 74, 75, 76, 143, 77, 283, 68, 69,
- 70, 71, 53, 72, 284, -164, -164, -164, -164, -164,
- -164, 77, 285, -164, 288, 289, -164, -164, -164, 324,
- 457, 325, 68, 69, 70, 71, -164, 72, 304, 328,
- 332, 337, 361, 385, 467, 77, 364, 367, 473, 537,
- 372, 373, 475, 378, -258, -259, 391, 419, 500, 479,
- 385, 420, 422, 485, 385, 424, 488, 425, 427, 428,
- 491, 429, 446, 447, 230, 451, 231, 232, 233, 454,
- 495, 496, 455, 68, 69, 70, 71, 472, 72, 474,
- 458, 444, 476, 234, 235, 236, 77, 477, 490, 237,
- 494, 291, 292, 293, 294, 295, 296, 297, 298, 492,
- 299, 300, 301, 302, 303, 493, 389, 519, 504, 522,
- 505, 506, 523, 507, 508, 524, 511, 525, 238, 239,
- 240, 241, 517, 531, 394, 532, 533, 534, 535, 242,
- 395, 396, 538, 243, 250, 244, 397, 398, 399, 400,
- 401, 402, 403, 32, 89, 390, 149, 203, 404, 405,
- 406, 407, 140, 478, 222, 518, 224, 321, 201, 68,
- 69, 70, 71, 245, 72, 322, 445, 246, 374, 286,
- 247, 248, 77, 340, 131, 199, 304, 0, 305, 306,
- 249, 68, 69, 70, 71, 142, 72, 0, 0, 73,
- 74, 75, 76, 143, 77, 0, 0, 0, 0, 0,
- 150, 0, 408, 0, 409, 0, 0, 0, 0, 0,
- 410, 411, 412, 413, 414, 415, 416, 417, 99, 100,
- 101, 102, 103, 104, 105, 106, 107, 108, 109, 0,
- 110, 111, 112, 68, 69, 70, 71, 0, 72, 0,
- 0, 73, 74, 75, 76, 0, 77, 68, 69, 70,
- 71, 0, 72, 0, 0, 382, 74, 75, 76, 0,
- 77, 68, 69, 70, 71, 0, 72, 0, 0, 386,
+ 79, 96, 152, 227, 141, 382, 187, 3, 4, 385,
+ 269, 464, 356, 357, 358, 359, 440, 2, 432, 436,
+ 200, 510, 513, 515, -42, 188, 380, 441, 209, 437,
+ 21, 205, 527, 91, 280, 5, 380, 173, 174, 142,
+ 304, 52, 22, 57, 449, -260, 209, 143, 204, 92,
+ 3, 4, 62, 126, 23, 152, 162, 163, 164, 165,
+ 79, 323, -23, -21, 326, 327, 528, 160, 24, 453,
+ 453, 161, -84, 57, 205, 223, 196, 197, -164, 529,
+ 189, 381, 62, -164, 310, -164, -164, -164, 511, 514,
+ 516, 431, 433, 442, 438, 360, 266, 93, 363, 450,
+ 351, 366, -164, -164, -164, 467, 28, 8, -164, 268,
+ 206, 281, 53, 166, -46, -83, 30, 167, 207, 208,
+ 152, 54, 482, 542, 454, 531, 488, 342, 168, 55,
+ 56, 311, 312, 313, 314, 315, 316, -164, -164, -164,
+ -164, 31, 422, 79, 354, 424, 317, 483, -164, 33,
+ 2, 484, -164, 206, -164, 502, 40, 503, 34, 335,
+ 41, 207, 208, 42, 43, 469, 157, 276, 5, 158,
+ 277, 470, 471, 35, 52, 53, 340, 352, -164, -164,
+ -164, -164, -164, -164, 460, 521, -164, 461, 522, -164,
+ -164, -164, 36, 271, 273, 274, 371, 372, 39, -164,
+ 335, 145, 147, 462, 51, 463, 66, 67, 541, 85,
+ -23, 68, 69, 70, 71, 88, 72, 152, 68, 69,
+ 70, 71, 245, 72, 77, 90, 343, 74, 75, 344,
+ 345, 77, 309, 53, 320, 46, 47, 48, 49, 97,
+ 8, 346, 347, 348, 349, 53, 98, -47, 457, 123,
+ 124, 444, 335, 129, 54, 125, 1, 139, 2, 3,
+ 4, 127, 55, 56, 130, 132, 148, 353, 171, 355,
+ 230, 133, 231, 232, 233, 134, 5, 135, 6, 136,
+ 137, 364, 7, 138, 367, 73, 74, 75, 76, 234,
+ 235, 236, 172, 176, 490, 237, 177, 178, 386, 390,
+ 68, 69, 70, 71, 179, 72, 182, 183, 332, 194,
+ 465, 466, 394, 77, 219, 184, 185, 186, 190, 281,
+ 220, 198, 202, 540, 238, 239, 240, 241, 191, 218,
+ 192, 193, 216, 228, 270, 242, 221, 229, 267, 243,
+ 288, 244, 283, 499, 284, 285, 289, 324, 8, 272,
+ 504, 325, 304, 328, 9, 362, 337, 365, 368, 373,
+ 379, 420, 10, 374, -258, 68, 69, 70, 71, 245,
+ 72, -259, 421, 246, 392, 423, 247, 248, 77, 425,
+ 428, 458, 426, 448, 452, 429, 249, 430, 68, 69,
+ 70, 71, 447, 72, 386, 468, 445, 455, 456, 474,
+ 538, 77, 473, 476, 475, 459, 477, 478, 495, 501,
+ 480, 386, 491, 493, 486, 386, 494, 489, 505, 507,
+ 506, 492, 508, 509, 512, 68, 69, 70, 71, 518,
+ 72, 496, 497, 73, 74, 75, 76, 532, 77, 533,
+ 68, 69, 70, 71, 534, 72, 535, 536, 73, 74,
+ 75, 76, 539, 77, 89, 391, 32, 250, 68, 69,
+ 70, 71, 245, 72, 140, 203, 246, 390, 520, 247,
+ 523, 77, 149, 524, 395, 479, 525, 519, 526, 446,
+ 396, 397, 222, 321, 201, 224, 398, 399, 400, 401,
+ 402, 403, 404, 375, 322, 199, 286, 341, 405, 406,
+ 407, 408, 291, 292, 293, 294, 295, 296, 297, 298,
+ 0, 299, 300, 301, 302, 303, 68, 69, 70, 71,
+ 142, 72, 131, 0, 73, 74, 75, 76, 143, 77,
+ 0, 0, 0, 0, 0, 150, 99, 100, 101, 102,
+ 103, 104, 105, 106, 107, 108, 109, 0, 110, 111,
+ 112, 0, 409, 0, 410, 0, 0, 0, 0, 0,
+ 411, 412, 413, 414, 415, 416, 417, 418, 68, 69,
+ 70, 71, 142, 72, 0, 0, 73, 74, 75, 76,
+ 143, 77, 0, 68, 69, 70, 71, 304, 72, 305,
+ 306, 73, 74, 75, 76, 0, 77, 68, 69, 70,
+ 71, 40, 72, 0, 0, 338, 0, 0, 339, 43,
+ 77, 68, 69, 70, 71, 0, 72, 0, 0, 383,
74, 75, 76, 0, 77, 68, 69, 70, 71, 0,
- 72, 0, 0, 480, 74, 75, 76, 0, 77, 68,
- 69, 70, 71, 0, 72, 0, 0, 486, 74, 75,
+ 72, 0, 0, 387, 74, 75, 76, 0, 77, 68,
+ 69, 70, 71, 0, 72, 0, 0, 481, 74, 75,
76, 0, 77, 68, 69, 70, 71, 0, 72, 0,
- 0, 497, 0, 0, 0, 0, 77
+ 0, 487, 74, 75, 76, 0, 77, 68, 69, 70,
+ 71, 0, 72, 0, 0, 498, 0, 0, 0, 0,
+ 77
};
static const yytype_int16 yycheck[] =
{
- 38, 64, 130, 217, 123, 335, 168, 230, 4, 427,
- 6, 7, 8, 10, 17, 18, 19, 20, 4, 4,
- 182, 71, 28, 4, 336, 4, 4, 13, 24, 71,
- 26, 13, 4, 239, 30, 112, 15, 5, 29, 7,
- 8, 29, 14, 29, 51, 52, 53, 54, 71, 195,
- 7, 8, 473, 91, 475, 183, 62, 71, 71, 6,
- 98, 275, 71, 31, 278, 279, 112, 213, 59, 75,
- 6, 59, 108, 120, 31, 76, 126, 24, 125, 113,
- 116, 82, 83, 30, 126, 16, 71, 84, 24, 20,
- 71, 77, 123, 71, 30, 318, 224, 100, 321, 305,
- 96, 108, 81, 126, 72, 112, 102, 79, 112, 228,
- 4, 239, 126, 126, 110, 72, 123, 126, 13, 431,
- 248, 539, 104, 105, 106, 107, 108, 109, 112, 113,
- 112, 113, 114, 115, 116, 117, 448, 13, 361, 0,
- 452, 364, 110, 181, 306, 127, 128, 129, 130, 96,
- 118, 119, 112, 110, 101, 115, 103, 124, 125, 287,
- 96, 118, 119, 110, 108, 101, 112, 103, 112, 115,
- 112, 118, 119, 115, 110, 71, 304, 305, 51, 52,
- 53, 54, 118, 119, 137, 138, 112, 113, 114, 115,
- 4, 4, 124, 231, 232, 233, 324, 325, 4, 422,
- 328, 424, 112, 4, 112, 115, 9, 537, 124, 104,
- 105, 106, 107, 112, 109, 108, 344, 112, 113, 114,
- 115, 4, 117, 176, 177, 103, 101, 4, 104, 105,
- 106, 107, 270, 109, 272, 137, 112, 113, 114, 115,
- 122, 117, 113, 112, 112, 4, 116, 409, 125, 4,
- 378, 379, 71, 56, 57, 58, 59, 60, 61, 125,
- 125, 125, 1, 125, 112, 4, 125, 305, 71, 307,
- 9, 125, 11, 12, 13, 104, 105, 106, 107, 108,
- 109, 319, 112, 112, 322, 122, 115, 122, 117, 28,
- 29, 30, 109, 455, 101, 34, 123, 71, 336, 337,
- 104, 105, 106, 107, 108, 109, 126, 4, 112, 428,
- 429, 349, 116, 117, 126, 126, 126, 126, 446, 4,
- 4, 126, 536, 112, 63, 64, 65, 66, 126, 108,
- 124, 124, 124, 112, 72, 74, 115, 116, 71, 78,
- 4, 80, 470, 104, 105, 106, 107, 108, 109, 477,
- 108, 112, 113, 114, 115, 116, 117, 4, 104, 105,
- 106, 107, 101, 109, 4, 104, 105, 106, 107, 108,
- 109, 117, 4, 112, 125, 4, 115, 116, 117, 71,
- 418, 71, 104, 105, 106, 107, 125, 109, 120, 125,
- 112, 125, 9, 431, 432, 117, 9, 108, 436, 527,
- 108, 108, 440, 21, 125, 125, 108, 124, 471, 447,
- 448, 125, 9, 451, 452, 9, 454, 100, 71, 122,
- 458, 122, 122, 21, 9, 21, 11, 12, 13, 21,
- 468, 469, 123, 104, 105, 106, 107, 4, 109, 4,
- 122, 112, 4, 28, 29, 30, 117, 21, 124, 34,
- 4, 35, 36, 37, 38, 39, 40, 41, 42, 126,
- 44, 45, 46, 47, 48, 126, 504, 505, 125, 507,
- 21, 125, 510, 21, 124, 513, 4, 515, 63, 64,
- 65, 66, 4, 126, 43, 126, 4, 4, 4, 74,
- 49, 50, 4, 78, 224, 80, 55, 56, 57, 58,
- 59, 60, 61, 12, 59, 344, 128, 188, 67, 68,
- 69, 70, 121, 446, 213, 504, 214, 273, 183, 104,
- 105, 106, 107, 108, 109, 273, 379, 112, 328, 248,
- 115, 116, 117, 304, 98, 181, 120, -1, 122, 123,
- 125, 104, 105, 106, 107, 108, 109, -1, -1, 112,
- 113, 114, 115, 116, 117, -1, -1, -1, -1, -1,
- 123, -1, 121, -1, 123, -1, -1, -1, -1, -1,
- 129, 130, 131, 132, 133, 134, 135, 136, 85, 86,
- 87, 88, 89, 90, 91, 92, 93, 94, 95, -1,
- 97, 98, 99, 104, 105, 106, 107, -1, 109, -1,
- -1, 112, 113, 114, 115, -1, 117, 104, 105, 106,
- 107, -1, 109, -1, -1, 112, 113, 114, 115, -1,
+ 38, 64, 130, 217, 123, 335, 168, 7, 8, 336,
+ 230, 428, 17, 18, 19, 20, 4, 6, 10, 4,
+ 182, 4, 4, 4, 4, 71, 71, 15, 195, 14,
+ 112, 31, 28, 13, 239, 24, 71, 137, 138, 108,
+ 120, 30, 113, 29, 71, 125, 213, 116, 5, 29,
+ 7, 8, 29, 91, 112, 183, 51, 52, 53, 54,
+ 98, 275, 112, 113, 278, 279, 62, 108, 123, 71,
+ 71, 112, 72, 59, 31, 1, 176, 177, 4, 75,
+ 126, 126, 59, 9, 9, 11, 12, 13, 71, 71,
+ 71, 126, 84, 81, 79, 100, 224, 77, 318, 126,
+ 305, 321, 28, 29, 30, 432, 112, 96, 34, 228,
+ 110, 239, 101, 108, 103, 72, 4, 112, 118, 119,
+ 248, 110, 449, 540, 126, 126, 453, 13, 123, 118,
+ 119, 56, 57, 58, 59, 60, 61, 63, 64, 65,
+ 66, 0, 362, 181, 306, 365, 71, 16, 74, 4,
+ 6, 20, 78, 110, 80, 474, 108, 476, 71, 287,
+ 112, 118, 119, 115, 116, 76, 112, 112, 24, 115,
+ 115, 82, 83, 4, 30, 101, 304, 305, 104, 105,
+ 106, 107, 108, 109, 112, 112, 112, 115, 115, 115,
+ 116, 117, 124, 231, 232, 233, 324, 325, 4, 125,
+ 328, 124, 125, 423, 4, 425, 112, 124, 538, 108,
+ 112, 104, 105, 106, 107, 4, 109, 345, 104, 105,
+ 106, 107, 108, 109, 117, 103, 112, 113, 114, 115,
+ 116, 117, 270, 101, 272, 51, 52, 53, 54, 4,
+ 96, 127, 128, 129, 130, 101, 137, 103, 410, 122,
+ 113, 379, 380, 4, 110, 112, 4, 4, 6, 7,
+ 8, 112, 118, 119, 116, 125, 71, 305, 112, 307,
+ 9, 125, 11, 12, 13, 125, 24, 125, 26, 125,
+ 125, 319, 30, 125, 322, 112, 113, 114, 115, 28,
+ 29, 30, 112, 122, 456, 34, 122, 109, 336, 337,
+ 104, 105, 106, 107, 101, 109, 123, 71, 112, 4,
+ 429, 430, 350, 117, 4, 126, 126, 126, 126, 447,
+ 4, 124, 124, 537, 63, 64, 65, 66, 126, 112,
+ 126, 126, 124, 71, 13, 74, 72, 4, 108, 78,
+ 125, 80, 4, 471, 4, 4, 4, 71, 96, 13,
+ 478, 71, 120, 125, 102, 9, 125, 9, 108, 108,
+ 21, 124, 110, 108, 125, 104, 105, 106, 107, 108,
+ 109, 125, 125, 112, 108, 9, 115, 116, 117, 9,
+ 71, 419, 100, 21, 21, 122, 125, 122, 104, 105,
+ 106, 107, 122, 109, 432, 433, 112, 21, 123, 437,
+ 528, 117, 4, 441, 4, 122, 4, 21, 4, 472,
+ 448, 449, 124, 126, 452, 453, 126, 455, 125, 125,
+ 21, 459, 21, 124, 4, 104, 105, 106, 107, 4,
+ 109, 469, 470, 112, 113, 114, 115, 126, 117, 126,
+ 104, 105, 106, 107, 4, 109, 4, 4, 112, 113,
+ 114, 115, 4, 117, 59, 345, 12, 224, 104, 105,
+ 106, 107, 108, 109, 121, 188, 112, 505, 506, 115,
+ 508, 117, 128, 511, 43, 447, 514, 505, 516, 380,
+ 49, 50, 213, 273, 183, 214, 55, 56, 57, 58,
+ 59, 60, 61, 328, 273, 181, 248, 304, 67, 68,
+ 69, 70, 35, 36, 37, 38, 39, 40, 41, 42,
+ -1, 44, 45, 46, 47, 48, 104, 105, 106, 107,
+ 108, 109, 98, -1, 112, 113, 114, 115, 116, 117,
+ -1, -1, -1, -1, -1, 123, 85, 86, 87, 88,
+ 89, 90, 91, 92, 93, 94, 95, -1, 97, 98,
+ 99, -1, 121, -1, 123, -1, -1, -1, -1, -1,
+ 129, 130, 131, 132, 133, 134, 135, 136, 104, 105,
+ 106, 107, 108, 109, -1, -1, 112, 113, 114, 115,
+ 116, 117, -1, 104, 105, 106, 107, 120, 109, 122,
+ 123, 112, 113, 114, 115, -1, 117, 104, 105, 106,
+ 107, 108, 109, -1, -1, 112, -1, -1, 115, 116,
117, 104, 105, 106, 107, -1, 109, -1, -1, 112,
113, 114, 115, -1, 117, 104, 105, 106, 107, -1,
109, -1, -1, 112, 113, 114, 115, -1, 117, 104,
105, 106, 107, -1, 109, -1, -1, 112, 113, 114,
115, -1, 117, 104, 105, 106, 107, -1, 109, -1,
- -1, 112, -1, -1, -1, -1, 117
+ -1, 112, 113, 114, 115, -1, 117, 104, 105, 106,
+ 107, -1, 109, -1, -1, 112, -1, -1, -1, -1,
+ 117
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -2350,28 +2357,28 @@
45, 46, 47, 48, 120, 122, 123, 231, 194, 255,
9, 56, 57, 58, 59, 60, 61, 71, 245, 246,
255, 245, 246, 222, 71, 71, 222, 222, 125, 182,
- 197, 199, 112, 240, 241, 247, 205, 125, 112, 247,
- 252, 13, 112, 115, 116, 127, 128, 129, 130, 226,
- 234, 247, 255, 256, 255, 17, 18, 19, 20, 100,
- 195, 9, 253, 255, 9, 253, 255, 108, 215, 216,
- 247, 247, 108, 108, 241, 189, 200, 201, 21, 71,
- 126, 194, 112, 207, 237, 255, 112, 236, 237, 255,
- 157, 108, 223, 255, 43, 49, 50, 55, 56, 57,
- 58, 59, 60, 61, 67, 68, 69, 70, 121, 123,
- 129, 130, 131, 132, 133, 134, 135, 136, 227, 124,
- 125, 253, 9, 253, 9, 100, 217, 71, 122, 122,
- 126, 10, 84, 184, 190, 4, 14, 79, 202, 4,
- 15, 81, 203, 247, 112, 240, 122, 21, 71, 126,
- 238, 21, 71, 126, 21, 123, 256, 255, 122, 112,
- 115, 253, 253, 216, 263, 263, 237, 255, 76, 82,
- 83, 188, 4, 255, 4, 255, 4, 21, 233, 255,
- 112, 237, 16, 20, 239, 255, 112, 237, 255, 256,
- 124, 255, 126, 126, 4, 255, 255, 112, 247, 183,
- 213, 238, 238, 247, 125, 21, 125, 21, 124, 4,
- 71, 4, 4, 71, 4, 71, 191, 4, 236, 255,
- 112, 115, 255, 255, 255, 255, 28, 62, 75, 192,
- 126, 126, 126, 4, 4, 4, 193, 247, 4, 222,
- 194, 216
+ 197, 199, 112, 240, 241, 247, 205, 125, 112, 115,
+ 247, 252, 13, 112, 115, 116, 127, 128, 129, 130,
+ 226, 234, 247, 255, 256, 255, 17, 18, 19, 20,
+ 100, 195, 9, 253, 255, 9, 253, 255, 108, 215,
+ 216, 247, 247, 108, 108, 241, 189, 200, 201, 21,
+ 71, 126, 194, 112, 207, 237, 255, 112, 236, 237,
+ 255, 157, 108, 223, 255, 43, 49, 50, 55, 56,
+ 57, 58, 59, 60, 61, 67, 68, 69, 70, 121,
+ 123, 129, 130, 131, 132, 133, 134, 135, 136, 227,
+ 124, 125, 253, 9, 253, 9, 100, 217, 71, 122,
+ 122, 126, 10, 84, 184, 190, 4, 14, 79, 202,
+ 4, 15, 81, 203, 247, 112, 240, 122, 21, 71,
+ 126, 238, 21, 71, 126, 21, 123, 256, 255, 122,
+ 112, 115, 253, 253, 216, 263, 263, 237, 255, 76,
+ 82, 83, 188, 4, 255, 4, 255, 4, 21, 233,
+ 255, 112, 237, 16, 20, 239, 255, 112, 237, 255,
+ 256, 124, 255, 126, 126, 4, 255, 255, 112, 247,
+ 183, 213, 238, 238, 247, 125, 21, 125, 21, 124,
+ 4, 71, 4, 4, 71, 4, 71, 191, 4, 236,
+ 255, 112, 115, 255, 255, 255, 255, 28, 62, 75,
+ 192, 126, 126, 126, 4, 4, 4, 193, 247, 4,
+ 222, 194, 216
};
#define yyerrok (yyerrstatus = 0)
@@ -3199,22 +3206,22 @@
switch (yyn)
{
case 2:
-#line 1125 "compilers/imcc/imcc.y"
+#line 1130 "compilers/imcc/imcc.y"
{ if (yynerrs) YYABORT; (yyval.i) = 0; }
break;
case 5:
-#line 1134 "compilers/imcc/imcc.y"
+#line 1139 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
case 6:
-#line 1135 "compilers/imcc/imcc.y"
+#line 1140 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
case 7:
-#line 1137 "compilers/imcc/imcc.y"
+#line 1142 "compilers/imcc/imcc.y"
{
(yyval.i) = (yyvsp[(1) - (1)].i);
imc_close_unit(interp, IMCC_INFO(interp)->cur_unit);
@@ -3223,7 +3230,7 @@
break;
case 8:
-#line 1143 "compilers/imcc/imcc.y"
+#line 1148 "compilers/imcc/imcc.y"
{
(yyval.i) = (yyvsp[(1) - (1)].i);
imc_close_unit(interp, IMCC_INFO(interp)->cur_unit);
@@ -3232,32 +3239,32 @@
break;
case 9:
-#line 1148 "compilers/imcc/imcc.y"
+#line 1153 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 10:
-#line 1149 "compilers/imcc/imcc.y"
+#line 1154 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 11:
-#line 1150 "compilers/imcc/imcc.y"
+#line 1155 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 12:
-#line 1151 "compilers/imcc/imcc.y"
+#line 1156 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 13:
-#line 1155 "compilers/imcc/imcc.y"
+#line 1160 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 14:
-#line 1157 "compilers/imcc/imcc.y"
+#line 1162 "compilers/imcc/imcc.y"
{
(yyval.i) = 0;
do_loadlib(interp, (yyvsp[(2) - (3)].s));
@@ -3266,7 +3273,7 @@
break;
case 15:
-#line 1166 "compilers/imcc/imcc.y"
+#line 1171 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->line = atoi((yyvsp[(2) - (5)].s));
/* set_filename() frees the STRINGC */
@@ -3275,7 +3282,7 @@
break;
case 16:
-#line 1172 "compilers/imcc/imcc.y"
+#line 1177 "compilers/imcc/imcc.y"
{
/* set_filename() frees the STRINGC */
set_filename(interp, (yyvsp[(2) - (3)].s));
@@ -3283,7 +3290,7 @@
break;
case 17:
-#line 1180 "compilers/imcc/imcc.y"
+#line 1185 "compilers/imcc/imcc.y"
{
/* We'll want to store an entry while emitting instructions, so just
* store annotation like it's an instruction. */
@@ -3294,7 +3301,7 @@
break;
case 18:
-#line 1192 "compilers/imcc/imcc.y"
+#line 1197 "compilers/imcc/imcc.y"
{
STRING * const hll_name = Parrot_str_unescape(interp, (yyvsp[(2) - (2)].s) + 1, '"', NULL);
CONTEXT(interp)->current_HLL =
@@ -3307,12 +3314,12 @@
break;
case 19:
-#line 1204 "compilers/imcc/imcc.y"
+#line 1209 "compilers/imcc/imcc.y"
{ pesky_global__is_def = 1; }
break;
case 20:
-#line 1205 "compilers/imcc/imcc.y"
+#line 1210 "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));
@@ -3321,12 +3328,12 @@
break;
case 21:
-#line 1213 "compilers/imcc/imcc.y"
+#line 1218 "compilers/imcc/imcc.y"
{ pesky_global__is_def=1; }
break;
case 22:
-#line 1214 "compilers/imcc/imcc.y"
+#line 1219 "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));
mem_sys_free((yyvsp[(6) - (6)].s));
@@ -3335,12 +3342,12 @@
break;
case 23:
-#line 1220 "compilers/imcc/imcc.y"
+#line 1225 "compilers/imcc/imcc.y"
{ pesky_global__is_def=1; }
break;
case 24:
-#line 1221 "compilers/imcc/imcc.y"
+#line 1226 "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));
mem_sys_free((yyvsp[(3) - (6)].s));
@@ -3350,37 +3357,37 @@
break;
case 29:
-#line 1239 "compilers/imcc/imcc.y"
+#line 1244 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 30:
-#line 1240 "compilers/imcc/imcc.y"
+#line 1245 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 31:
-#line 1241 "compilers/imcc/imcc.y"
+#line 1246 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 32:
-#line 1242 "compilers/imcc/imcc.y"
+#line 1247 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 33:
-#line 1243 "compilers/imcc/imcc.y"
+#line 1248 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
case 36:
-#line 1248 "compilers/imcc/imcc.y"
+#line 1253 "compilers/imcc/imcc.y"
{ clear_state(interp); }
break;
case 37:
-#line 1250 "compilers/imcc/imcc.y"
+#line 1255 "compilers/imcc/imcc.y"
{
(yyval.i) = INS(interp, IMCC_INFO(interp)->cur_unit,
(yyvsp[(2) - (3)].s), 0, IMCC_INFO(interp)->regs,
@@ -3390,7 +3397,7 @@
break;
case 38:
-#line 1257 "compilers/imcc/imcc.y"
+#line 1262 "compilers/imcc/imcc.y"
{
imc_close_unit(interp, IMCC_INFO(interp)->cur_unit);
IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PASM);
@@ -3398,7 +3405,7 @@
break;
case 39:
-#line 1262 "compilers/imcc/imcc.y"
+#line 1267 "compilers/imcc/imcc.y"
{
(yyval.i) = iSUBROUTINE(interp,
IMCC_INFO(interp)->cur_unit,
@@ -3408,14 +3415,14 @@
break;
case 40:
-#line 1269 "compilers/imcc/imcc.y"
+#line 1274 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(2) - (2)].sr));
}
break;
case 41:
-#line 1273 "compilers/imcc/imcc.y"
+#line 1278 "compilers/imcc/imcc.y"
{
SymReg *r = mk_pasm_reg(interp, (yyvsp[(4) - (4)].s));
SymReg *n = mk_const(interp, (yyvsp[(2) - (4)].s), 'S');
@@ -3427,17 +3434,17 @@
break;
case 42:
-#line 1281 "compilers/imcc/imcc.y"
+#line 1286 "compilers/imcc/imcc.y"
{ (yyval.i) = 0;}
break;
case 44:
-#line 1289 "compilers/imcc/imcc.y"
+#line 1294 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PASM); }
break;
case 45:
-#line 1292 "compilers/imcc/imcc.y"
+#line 1297 "compilers/imcc/imcc.y"
{
/* if (optimizer_level & OPT_PASM)
imc_compile_unit(interp, IMCC_INFO(interp)->cur_unit);
@@ -3448,7 +3455,7 @@
break;
case 48:
-#line 1308 "compilers/imcc/imcc.y"
+#line 1313 "compilers/imcc/imcc.y"
{
int re_open = 0;
(yyval.i) = 0;
@@ -3463,7 +3470,7 @@
break;
case 49:
-#line 1323 "compilers/imcc/imcc.y"
+#line 1328 "compilers/imcc/imcc.y"
{
if (IMCC_INFO(interp)->in_slice)
IMCC_fataly(interp, EXCEPTION_SYNTAX_ERROR,
@@ -3474,26 +3481,26 @@
break;
case 50:
-#line 1330 "compilers/imcc/imcc.y"
+#line 1335 "compilers/imcc/imcc.y"
{ (yyval.sr) = NULL; }
break;
case 51:
-#line 1335 "compilers/imcc/imcc.y"
+#line 1340 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->cur_unit = imc_open_unit(interp, IMC_PCCSUB);
}
break;
case 52:
-#line 1339 "compilers/imcc/imcc.y"
+#line 1344 "compilers/imcc/imcc.y"
{
iSUBROUTINE(interp, IMCC_INFO(interp)->cur_unit, (yyvsp[(3) - (3)].sr));
}
break;
case 53:
-#line 1343 "compilers/imcc/imcc.y"
+#line 1348 "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) {
@@ -3504,22 +3511,22 @@
break;
case 54:
-#line 1351 "compilers/imcc/imcc.y"
+#line 1356 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; }
break;
case 55:
-#line 1355 "compilers/imcc/imcc.y"
+#line 1360 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 56:
-#line 1356 "compilers/imcc/imcc.y"
+#line 1361 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 57:
-#line 1358 "compilers/imcc/imcc.y"
+#line 1363 "compilers/imcc/imcc.y"
{
if (IMCC_INFO(interp)->adv_named_id) {
add_pcc_named_param(interp, IMCC_INFO(interp)->cur_call,
@@ -3532,17 +3539,17 @@
break;
case 58:
-#line 1370 "compilers/imcc/imcc.y"
+#line 1375 "compilers/imcc/imcc.y"
{ pesky_global__is_def=1; }
break;
case 59:
-#line 1370 "compilers/imcc/imcc.y"
+#line 1375 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(3) - (3)].sr); pesky_global__is_def=0; }
break;
case 60:
-#line 1375 "compilers/imcc/imcc.y"
+#line 1380 "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));
@@ -3554,12 +3561,12 @@
break;
case 61:
-#line 1388 "compilers/imcc/imcc.y"
+#line 1393 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 62:
-#line 1393 "compilers/imcc/imcc.y"
+#line 1398 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
IMCC_INFO(interp)->cur_unit->outer = mk_sub_address_fromc(interp, (yyvsp[(3) - (4)].s));
@@ -3568,7 +3575,7 @@
break;
case 63:
-#line 1399 "compilers/imcc/imcc.y"
+#line 1404 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
IMCC_INFO(interp)->cur_unit->outer = mk_const(interp, (yyvsp[(3) - (4)].s), 'S');
@@ -3577,52 +3584,52 @@
break;
case 64:
-#line 1408 "compilers/imcc/imcc.y"
+#line 1413 "compilers/imcc/imcc.y"
{
(yyval.t) = P_VTABLE;
- IMCC_INFO(interp)->cur_unit->vtable_name = NULL;
+ IMCC_INFO(interp)->cur_unit->vtable_name = NULL;
IMCC_INFO(interp)->cur_unit->is_vtable_method = 1;
}
break;
case 65:
-#line 1414 "compilers/imcc/imcc.y"
+#line 1419 "compilers/imcc/imcc.y"
{
(yyval.t) = P_VTABLE;
- IMCC_INFO(interp)->cur_unit->vtable_name = (yyvsp[(3) - (4)].s);
+ IMCC_INFO(interp)->cur_unit->vtable_name = (yyvsp[(3) - (4)].s);
IMCC_INFO(interp)->cur_unit->is_vtable_method = 1;
}
break;
case 66:
-#line 1423 "compilers/imcc/imcc.y"
+#line 1428 "compilers/imcc/imcc.y"
{
(yyval.t) = P_METHOD;
IMCC_INFO(interp)->cur_unit->method_name = NULL;
- IMCC_INFO(interp)->cur_unit->is_method = 1;
+ IMCC_INFO(interp)->cur_unit->is_method = 1;
}
break;
case 67:
-#line 1429 "compilers/imcc/imcc.y"
+#line 1434 "compilers/imcc/imcc.y"
{
(yyval.t) = P_METHOD;
IMCC_INFO(interp)->cur_unit->method_name = (yyvsp[(3) - (4)].s);
- IMCC_INFO(interp)->cur_unit->is_method = 1;
+ IMCC_INFO(interp)->cur_unit->is_method = 1;
}
break;
case 68:
-#line 1438 "compilers/imcc/imcc.y"
+#line 1443 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
- IMCC_INFO(interp)->cur_unit->ns_entry_name = NULL;
+ IMCC_INFO(interp)->cur_unit->ns_entry_name = NULL;
IMCC_INFO(interp)->cur_unit->has_ns_entry_name = 1;
}
break;
case 69:
-#line 1444 "compilers/imcc/imcc.y"
+#line 1449 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
IMCC_INFO(interp)->cur_unit->ns_entry_name = (yyvsp[(3) - (4)].s);
@@ -3631,7 +3638,7 @@
break;
case 70:
-#line 1453 "compilers/imcc/imcc.y"
+#line 1458 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
IMCC_INFO(interp)->cur_unit->instance_of = (yyvsp[(3) - (4)].s);
@@ -3639,7 +3646,7 @@
break;
case 71:
-#line 1461 "compilers/imcc/imcc.y"
+#line 1466 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
IMCC_INFO(interp)->cur_unit->subid = NULL;
@@ -3647,7 +3654,7 @@
break;
case 72:
-#line 1466 "compilers/imcc/imcc.y"
+#line 1471 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
IMCC_INFO(interp)->cur_unit->subid = mk_const(interp, (yyvsp[(3) - (4)].s), 'S');
@@ -3657,14 +3664,14 @@
break;
case 73:
-#line 1476 "compilers/imcc/imcc.y"
+#line 1481 "compilers/imcc/imcc.y"
{
add_pcc_multi(IMCC_INFO(interp)->cur_call, NULL);
}
break;
case 74:
-#line 1480 "compilers/imcc/imcc.y"
+#line 1485 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
add_pcc_multi(IMCC_INFO(interp)->cur_call, (yyvsp[(3) - (3)].sr));
@@ -3672,7 +3679,7 @@
break;
case 75:
-#line 1485 "compilers/imcc/imcc.y"
+#line 1490 "compilers/imcc/imcc.y"
{
(yyval.t) = 0;
add_pcc_multi(IMCC_INFO(interp)->cur_call, (yyvsp[(1) - (1)].sr));
@@ -3680,27 +3687,27 @@
break;
case 76:
-#line 1492 "compilers/imcc/imcc.y"
+#line 1497 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, "INTVAL", 'S'); }
break;
case 77:
-#line 1493 "compilers/imcc/imcc.y"
+#line 1498 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, "FLOATVAL", 'S'); }
break;
case 78:
-#line 1494 "compilers/imcc/imcc.y"
+#line 1499 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, "PMC", 'S'); }
break;
case 79:
-#line 1495 "compilers/imcc/imcc.y"
+#line 1500 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, "STRING", 'S'); }
break;
case 80:
-#line 1497 "compilers/imcc/imcc.y"
+#line 1502 "compilers/imcc/imcc.y"
{
SymReg *r;
if (strcmp((yyvsp[(1) - (1)].s), "_") != 0)
@@ -3714,7 +3721,7 @@
break;
case 81:
-#line 1508 "compilers/imcc/imcc.y"
+#line 1513 "compilers/imcc/imcc.y"
{
SymReg *r;
if (strcmp((yyvsp[(1) - (1)].s), "_") != 0)
@@ -3728,12 +3735,12 @@
break;
case 82:
-#line 1518 "compilers/imcc/imcc.y"
+#line 1523 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(2) - (3)].sr); }
break;
case 85:
-#line 1528 "compilers/imcc/imcc.y"
+#line 1533 "compilers/imcc/imcc.y"
{
char name[128];
SymReg *r, *r1;
@@ -3760,82 +3767,82 @@
break;
case 86:
-#line 1556 "compilers/imcc/imcc.y"
+#line 1561 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; }
break;
case 87:
-#line 1560 "compilers/imcc/imcc.y"
+#line 1565 "compilers/imcc/imcc.y"
{ (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->label = 0; }
break;
case 88:
-#line 1561 "compilers/imcc/imcc.y"
+#line 1566 "compilers/imcc/imcc.y"
{ (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->label = 1; }
break;
case 89:
-#line 1565 "compilers/imcc/imcc.y"
+#line 1570 "compilers/imcc/imcc.y"
{ (yyval.i) = NULL; }
break;
case 90:
-#line 1566 "compilers/imcc/imcc.y"
+#line 1571 "compilers/imcc/imcc.y"
{ (yyval.i) = NULL; IMCC_INFO(interp)->cur_call->pcc_sub->object = (yyvsp[(2) - (3)].sr); }
break;
case 91:
-#line 1570 "compilers/imcc/imcc.y"
+#line 1575 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 93:
-#line 1575 "compilers/imcc/imcc.y"
+#line 1580 "compilers/imcc/imcc.y"
{ (yyval.t) = (yyvsp[(1) - (1)].t); }
break;
case 94:
-#line 1576 "compilers/imcc/imcc.y"
+#line 1581 "compilers/imcc/imcc.y"
{ (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); }
break;
case 95:
-#line 1580 "compilers/imcc/imcc.y"
+#line 1585 "compilers/imcc/imcc.y"
{ (yyval.t) = P_LOAD; }
break;
case 96:
-#line 1581 "compilers/imcc/imcc.y"
+#line 1586 "compilers/imcc/imcc.y"
{ (yyval.t) = P_INIT; }
break;
case 97:
-#line 1582 "compilers/imcc/imcc.y"
+#line 1587 "compilers/imcc/imcc.y"
{ (yyval.t) = P_MAIN; }
break;
case 98:
-#line 1583 "compilers/imcc/imcc.y"
+#line 1588 "compilers/imcc/imcc.y"
{ (yyval.t) = P_IMMEDIATE; }
break;
case 99:
-#line 1584 "compilers/imcc/imcc.y"
+#line 1589 "compilers/imcc/imcc.y"
{ (yyval.t) = P_POSTCOMP; }
break;
case 100:
-#line 1585 "compilers/imcc/imcc.y"
+#line 1590 "compilers/imcc/imcc.y"
{ (yyval.t) = P_ANON; }
break;
case 101:
-#line 1586 "compilers/imcc/imcc.y"
+#line 1591 "compilers/imcc/imcc.y"
{ (yyval.t) = P_NEED_LEX; }
break;
case 109:
-#line 1598 "compilers/imcc/imcc.y"
+#line 1603 "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));
@@ -3843,14 +3850,14 @@
break;
case 110:
-#line 1603 "compilers/imcc/imcc.y"
+#line 1608 "compilers/imcc/imcc.y"
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
}
break;
case 111:
-#line 1607 "compilers/imcc/imcc.y"
+#line 1612 "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;
@@ -3858,21 +3865,21 @@
break;
case 112:
-#line 1612 "compilers/imcc/imcc.y"
+#line 1617 "compilers/imcc/imcc.y"
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
}
break;
case 113:
-#line 1616 "compilers/imcc/imcc.y"
+#line 1621 "compilers/imcc/imcc.y"
{
add_pcc_sub(IMCC_INFO(interp)->cur_call, mk_const(interp, (yyvsp[(2) - (3)].s), 'S'));
}
break;
case 114:
-#line 1620 "compilers/imcc/imcc.y"
+#line 1625 "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));
@@ -3880,7 +3887,7 @@
break;
case 115:
-#line 1625 "compilers/imcc/imcc.y"
+#line 1630 "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));
@@ -3888,27 +3895,27 @@
break;
case 116:
-#line 1633 "compilers/imcc/imcc.y"
+#line 1638 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 117:
-#line 1634 "compilers/imcc/imcc.y"
+#line 1639 "compilers/imcc/imcc.y"
{ add_pcc_arg(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr)); }
break;
case 118:
-#line 1638 "compilers/imcc/imcc.y"
+#line 1643 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(2) - (2)].sr); }
break;
case 119:
-#line 1643 "compilers/imcc/imcc.y"
+#line 1648 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 120:
-#line 1645 "compilers/imcc/imcc.y"
+#line 1650 "compilers/imcc/imcc.y"
{
if ((yyvsp[(2) - (3)].sr))
add_pcc_result(IMCC_INFO(interp)->cur_call, (yyvsp[(2) - (3)].sr));
@@ -3916,17 +3923,17 @@
break;
case 121:
-#line 1652 "compilers/imcc/imcc.y"
+#line 1657 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); }
break;
case 122:
-#line 1653 "compilers/imcc/imcc.y"
+#line 1658 "compilers/imcc/imcc.y"
{ pesky_global__is_def=1; }
break;
case 123:
-#line 1654 "compilers/imcc/imcc.y"
+#line 1659 "compilers/imcc/imcc.y"
{
IdList *l = (yyvsp[(4) - (4)].idlist);
SymReg *ignored;
@@ -3941,62 +3948,62 @@
break;
case 124:
-#line 1668 "compilers/imcc/imcc.y"
+#line 1673 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 125:
-#line 1669 "compilers/imcc/imcc.y"
+#line 1674 "compilers/imcc/imcc.y"
{ (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); }
break;
case 126:
-#line 1673 "compilers/imcc/imcc.y"
+#line 1678 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_FLAT; }
break;
case 127:
-#line 1674 "compilers/imcc/imcc.y"
+#line 1679 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_OPTIONAL; }
break;
case 128:
-#line 1675 "compilers/imcc/imcc.y"
+#line 1680 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_OPT_FLAG; }
break;
case 129:
-#line 1676 "compilers/imcc/imcc.y"
+#line 1681 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_NAMED; }
break;
case 130:
-#line 1677 "compilers/imcc/imcc.y"
+#line 1682 "compilers/imcc/imcc.y"
{ adv_named_set(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; }
break;
case 131:
-#line 1678 "compilers/imcc/imcc.y"
+#line 1683 "compilers/imcc/imcc.y"
{ adv_named_set_u(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; }
break;
case 132:
-#line 1679 "compilers/imcc/imcc.y"
+#line 1684 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_UNIQUE_REG; }
break;
case 133:
-#line 1684 "compilers/imcc/imcc.y"
+#line 1689 "compilers/imcc/imcc.y"
{ begin_return_or_yield(interp, 0); }
break;
case 134:
-#line 1686 "compilers/imcc/imcc.y"
+#line 1691 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; IMCC_INFO(interp)->asm_state = AsmDefault; }
break;
case 135:
-#line 1688 "compilers/imcc/imcc.y"
+#line 1693 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->asm_state = AsmDefault;
(yyval.i) = 0;
@@ -4004,22 +4011,22 @@
break;
case 136:
-#line 1695 "compilers/imcc/imcc.y"
+#line 1700 "compilers/imcc/imcc.y"
{ begin_return_or_yield(interp, 1); }
break;
case 137:
-#line 1697 "compilers/imcc/imcc.y"
+#line 1702 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; IMCC_INFO(interp)->asm_state = AsmDefault; }
break;
case 138:
-#line 1701 "compilers/imcc/imcc.y"
+#line 1706 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 139:
-#line 1703 "compilers/imcc/imcc.y"
+#line 1708 "compilers/imcc/imcc.y"
{
if ((yyvsp[(1) - (2)].sr))
add_pcc_result(IMCC_INFO(interp)->sr_return, (yyvsp[(1) - (2)].sr));
@@ -4027,7 +4034,7 @@
break;
case 140:
-#line 1708 "compilers/imcc/imcc.y"
+#line 1713 "compilers/imcc/imcc.y"
{
if ((yyvsp[(2) - (3)].sr))
add_pcc_result(IMCC_INFO(interp)->sr_return, (yyvsp[(2) - (3)].sr));
@@ -4035,12 +4042,12 @@
break;
case 141:
-#line 1715 "compilers/imcc/imcc.y"
+#line 1720 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
case 142:
-#line 1717 "compilers/imcc/imcc.y"
+#line 1722 "compilers/imcc/imcc.y"
{
if ((yyvsp[(1) - (2)].sr))
add_pcc_result(IMCC_INFO(interp)->sr_return, (yyvsp[(1) - (2)].sr));
@@ -4048,7 +4055,7 @@
break;
case 143:
-#line 1722 "compilers/imcc/imcc.y"
+#line 1727 "compilers/imcc/imcc.y"
{
if ((yyvsp[(2) - (3)].sr))
add_pcc_result(IMCC_INFO(interp)->sr_return, (yyvsp[(2) - (3)].sr));
@@ -4056,17 +4063,17 @@
break;
case 144:
-#line 1729 "compilers/imcc/imcc.y"
+#line 1734 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); }
break;
case 145:
-#line 1733 "compilers/imcc/imcc.y"
+#line 1738 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(2) - (3)].sr); (yyval.sr)->type |= (yyvsp[(3) - (3)].t); }
break;
case 146:
-#line 1738 "compilers/imcc/imcc.y"
+#line 1743 "compilers/imcc/imcc.y"
{
if (IMCC_INFO(interp)->asm_state == AsmDefault)
begin_return_or_yield(interp, (yyvsp[(1) - (2)].t));
@@ -4074,7 +4081,7 @@
break;
case 147:
-#line 1743 "compilers/imcc/imcc.y"
+#line 1748 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->asm_state = AsmDefault;
(yyval.t) = 0;
@@ -4082,22 +4089,22 @@
break;
case 148:
-#line 1750 "compilers/imcc/imcc.y"
+#line 1755 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 149:
-#line 1751 "compilers/imcc/imcc.y"
+#line 1756 "compilers/imcc/imcc.y"
{ (yyval.t) = 1; }
break;
case 150:
-#line 1755 "compilers/imcc/imcc.y"
+#line 1760 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 151:
-#line 1757 "compilers/imcc/imcc.y"
+#line 1762 "compilers/imcc/imcc.y"
{
if (IMCC_INFO(interp)->adv_named_id) {
add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return,
@@ -4110,7 +4117,7 @@
break;
case 152:
-#line 1767 "compilers/imcc/imcc.y"
+#line 1772 "compilers/imcc/imcc.y"
{
SymReg *name = mk_const(interp, (yyvsp[(1) - (3)].s), 'S');
add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return, name, (yyvsp[(3) - (3)].sr));
@@ -4118,7 +4125,7 @@
break;
case 153:
-#line 1772 "compilers/imcc/imcc.y"
+#line 1777 "compilers/imcc/imcc.y"
{
if (IMCC_INFO(interp)->adv_named_id) {
add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return,
@@ -4131,7 +4138,7 @@
break;
case 154:
-#line 1782 "compilers/imcc/imcc.y"
+#line 1787 "compilers/imcc/imcc.y"
{
SymReg *name = mk_const(interp, (yyvsp[(3) - (5)].s), 'S');
add_pcc_named_return(interp, IMCC_INFO(interp)->sr_return, name, (yyvsp[(5) - (5)].sr));
@@ -4139,59 +4146,59 @@
break;
case 157:
-#line 1803 "compilers/imcc/imcc.y"
+#line 1808 "compilers/imcc/imcc.y"
{ clear_state(interp); }
break;
case 158:
-#line 1808 "compilers/imcc/imcc.y"
+#line 1813 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(2) - (2)].i); }
break;
case 159:
-#line 1809 "compilers/imcc/imcc.y"
+#line 1814 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 160:
-#line 1810 "compilers/imcc/imcc.y"
+#line 1815 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 161:
-#line 1811 "compilers/imcc/imcc.y"
+#line 1816 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 162:
-#line 1812 "compilers/imcc/imcc.y"
+#line 1817 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 163:
-#line 1813 "compilers/imcc/imcc.y"
+#line 1818 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
case 164:
-#line 1817 "compilers/imcc/imcc.y"
+#line 1822 "compilers/imcc/imcc.y"
{ (yyval.i) = NULL; }
break;
case 168:
-#line 1828 "compilers/imcc/imcc.y"
+#line 1833 "compilers/imcc/imcc.y"
{
(yyval.i) = iLABEL(interp, IMCC_INFO(interp)->cur_unit, mk_local_label(interp, (yyvsp[(1) - (1)].s)));
}
break;
case 169:
-#line 1836 "compilers/imcc/imcc.y"
+#line 1841 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(2) - (3)].i); }
break;
case 170:
-#line 1838 "compilers/imcc/imcc.y"
+#line 1843 "compilers/imcc/imcc.y"
{
if (yynerrs >= PARROT_MAX_RECOVER_ERRORS) {
IMCC_warning(interp, "Too many errors. Correct some first.\n");
@@ -4202,7 +4209,7 @@
break;
case 171:
-#line 1849 "compilers/imcc/imcc.y"
+#line 1854 "compilers/imcc/imcc.y"
{
IdList* l = (yyvsp[(1) - (1)].idlist);
l->next = NULL;
@@ -4211,7 +4218,7 @@
break;
case 172:
-#line 1856 "compilers/imcc/imcc.y"
+#line 1861 "compilers/imcc/imcc.y"
{
IdList* l = (yyvsp[(3) - (3)].idlist);
l->next = (yyvsp[(1) - (3)].idlist);
@@ -4220,7 +4227,7 @@
break;
case 173:
-#line 1865 "compilers/imcc/imcc.y"
+#line 1870 "compilers/imcc/imcc.y"
{
IdList* const l = mem_allocate_n_zeroed_typed(1, IdList);
l->id = (yyvsp[(1) - (2)].s);
@@ -4230,22 +4237,22 @@
break;
case 174:
-#line 1874 "compilers/imcc/imcc.y"
+#line 1879 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
case 175:
-#line 1875 "compilers/imcc/imcc.y"
+#line 1880 "compilers/imcc/imcc.y"
{ (yyval.t) = 1; }
break;
case 178:
-#line 1882 "compilers/imcc/imcc.y"
+#line 1887 "compilers/imcc/imcc.y"
{ pesky_global__is_def=1; }
break;
case 179:
-#line 1883 "compilers/imcc/imcc.y"
+#line 1888 "compilers/imcc/imcc.y"
{
IdList *l = (yyvsp[(4) - (4)].idlist);
while (l) {
@@ -4264,7 +4271,7 @@
break;
case 180:
-#line 1899 "compilers/imcc/imcc.y"
+#line 1904 "compilers/imcc/imcc.y"
{
SymReg *n = mk_const(interp, (yyvsp[(2) - (4)].s), 'S');
set_lexical(interp, (yyvsp[(4) - (4)].sr), n); (yyval.i) = 0;
@@ -4272,7 +4279,7 @@
break;
case 181:
-#line 1904 "compilers/imcc/imcc.y"
+#line 1909 "compilers/imcc/imcc.y"
{
SymReg *n = mk_const(interp, (yyvsp[(2) - (4)].s), 'U');
set_lexical(interp, (yyvsp[(4) - (4)].sr), n); (yyval.i) = 0;
@@ -4280,12 +4287,12 @@
break;
case 182:
-#line 1908 "compilers/imcc/imcc.y"
+#line 1913 "compilers/imcc/imcc.y"
{ pesky_global__is_def=1; }
break;
case 183:
-#line 1909 "compilers/imcc/imcc.y"
+#line 1914 "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;
@@ -4294,12 +4301,12 @@
break;
case 185:
-#line 1916 "compilers/imcc/imcc.y"
+#line 1921 "compilers/imcc/imcc.y"
{ pesky_global__is_def=1; }
break;
case 186:
-#line 1917 "compilers/imcc/imcc.y"
+#line 1922 "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;
@@ -4308,7 +4315,7 @@
break;
case 187:
-#line 1923 "compilers/imcc/imcc.y"
+#line 1928 "compilers/imcc/imcc.y"
{
(yyval.i) = NULL;
IMCC_INFO(interp)->cur_call->pcc_sub->flags |= isTAIL_CALL;
@@ -4317,14 +4324,14 @@
break;
case 188:
-#line 1929 "compilers/imcc/imcc.y"
+#line 1934 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "branch", 1, (yyvsp[(2) - (2)].sr));
}
break;
case 189:
-#line 1933 "compilers/imcc/imcc.y"
+#line 1938 "compilers/imcc/imcc.y"
{
(yyval.i) = INS(interp,
IMCC_INFO(interp)->cur_unit,
@@ -4339,47 +4346,47 @@
break;
case 190:
-#line 1944 "compilers/imcc/imcc.y"
+#line 1949 "compilers/imcc/imcc.y"
{ (yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(2) - (2)].sr)); }
break;
case 191:
-#line 1945 "compilers/imcc/imcc.y"
+#line 1950 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; IMCC_INFO(interp)->cur_call = NULL; }
break;
case 192:
-#line 1946 "compilers/imcc/imcc.y"
+#line 1951 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 195:
-#line 1949 "compilers/imcc/imcc.y"
+#line 1954 "compilers/imcc/imcc.y"
{ (yyval.i) = 0;}
break;
case 196:
-#line 1953 "compilers/imcc/imcc.y"
+#line 1958 "compilers/imcc/imcc.y"
{ (yyval.t) = 'I'; }
break;
case 197:
-#line 1954 "compilers/imcc/imcc.y"
+#line 1959 "compilers/imcc/imcc.y"
{ (yyval.t) = 'N'; }
break;
case 198:
-#line 1955 "compilers/imcc/imcc.y"
+#line 1960 "compilers/imcc/imcc.y"
{ (yyval.t) = 'S'; }
break;
case 199:
-#line 1956 "compilers/imcc/imcc.y"
+#line 1961 "compilers/imcc/imcc.y"
{ (yyval.t) = 'P'; }
break;
case 200:
-#line 1961 "compilers/imcc/imcc.y"
+#line 1966 "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 */
@@ -4392,37 +4399,37 @@
break;
case 201:
-#line 1974 "compilers/imcc/imcc.y"
+#line 1979 "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 202:
-#line 1976 "compilers/imcc/imcc.y"
+#line 1981 "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 203:
-#line 1978 "compilers/imcc/imcc.y"
+#line 1983 "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 204:
-#line 1980 "compilers/imcc/imcc.y"
+#line 1985 "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 205:
-#line 1982 "compilers/imcc/imcc.y"
+#line 1987 "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 206:
-#line 1987 "compilers/imcc/imcc.y"
+#line 1992 "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 207:
-#line 1990 "compilers/imcc/imcc.y"
+#line 1995 "compilers/imcc/imcc.y"
{
add_pcc_result((yyvsp[(3) - (3)].i)->symregs[0], (yyvsp[(1) - (3)].sr));
IMCC_INFO(interp)->cur_call = NULL;
@@ -4431,14 +4438,14 @@
break;
case 208:
-#line 1996 "compilers/imcc/imcc.y"
+#line 2001 "compilers/imcc/imcc.y"
{
(yyval.i) = IMCC_create_itcall_label(interp);
}
break;
case 209:
-#line 2000 "compilers/imcc/imcc.y"
+#line 2005 "compilers/imcc/imcc.y"
{
IMCC_itcall_sub(interp, (yyvsp[(6) - (9)].sr));
IMCC_INFO(interp)->cur_call = NULL;
@@ -4446,144 +4453,144 @@
break;
case 213:
-#line 2008 "compilers/imcc/imcc.y"
+#line 2013 "compilers/imcc/imcc.y"
{
(yyval.i) = MK_I(interp, IMCC_INFO(interp)->cur_unit, "null", 1, (yyvsp[(1) - (3)].sr));
}
break;
case 214:
-#line 2015 "compilers/imcc/imcc.y"
+#line 2020 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"not"; }
break;
case 215:
-#line 2016 "compilers/imcc/imcc.y"
+#line 2021 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"bnot"; }
break;
case 216:
-#line 2017 "compilers/imcc/imcc.y"
+#line 2022 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"neg"; }
break;
case 217:
-#line 2021 "compilers/imcc/imcc.y"
+#line 2026 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"sub"; }
break;
case 218:
-#line 2022 "compilers/imcc/imcc.y"
+#line 2027 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"add"; }
break;
case 219:
-#line 2023 "compilers/imcc/imcc.y"
+#line 2028 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"mul"; }
break;
case 220:
-#line 2024 "compilers/imcc/imcc.y"
+#line 2029 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"div"; }
break;
case 221:
-#line 2025 "compilers/imcc/imcc.y"
+#line 2030 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"mod"; }
break;
case 222:
-#line 2026 "compilers/imcc/imcc.y"
+#line 2031 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"fdiv"; }
break;
case 223:
-#line 2027 "compilers/imcc/imcc.y"
+#line 2032 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"pow"; }
break;
case 224:
-#line 2028 "compilers/imcc/imcc.y"
+#line 2033 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"concat"; }
break;
case 225:
-#line 2029 "compilers/imcc/imcc.y"
+#line 2034 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"iseq"; }
break;
case 226:
-#line 2030 "compilers/imcc/imcc.y"
+#line 2035 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"isne"; }
break;
case 227:
-#line 2031 "compilers/imcc/imcc.y"
+#line 2036 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"isgt"; }
break;
case 228:
-#line 2032 "compilers/imcc/imcc.y"
+#line 2037 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"isge"; }
break;
case 229:
-#line 2033 "compilers/imcc/imcc.y"
+#line 2038 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"islt"; }
break;
case 230:
-#line 2034 "compilers/imcc/imcc.y"
+#line 2039 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"isle"; }
break;
case 231:
-#line 2035 "compilers/imcc/imcc.y"
+#line 2040 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"shl"; }
break;
case 232:
-#line 2036 "compilers/imcc/imcc.y"
+#line 2041 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"shr"; }
break;
case 233:
-#line 2037 "compilers/imcc/imcc.y"
+#line 2042 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"lsr"; }
break;
case 234:
-#line 2038 "compilers/imcc/imcc.y"
+#line 2043 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"and"; }
break;
case 235:
-#line 2039 "compilers/imcc/imcc.y"
+#line 2044 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"or"; }
break;
case 236:
-#line 2040 "compilers/imcc/imcc.y"
+#line 2045 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"xor"; }
break;
case 237:
-#line 2041 "compilers/imcc/imcc.y"
+#line 2046 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"band"; }
break;
case 238:
-#line 2042 "compilers/imcc/imcc.y"
+#line 2047 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"bor"; }
break;
case 239:
-#line 2043 "compilers/imcc/imcc.y"
+#line 2048 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"bxor"; }
break;
case 240:
-#line 2049 "compilers/imcc/imcc.y"
+#line 2054 "compilers/imcc/imcc.y"
{
(yyval.i) = IMCC_create_itcall_label(interp);
(yyval.i)->type &= ~ITCALL;
@@ -4592,84 +4599,84 @@
break;
case 241:
-#line 2054 "compilers/imcc/imcc.y"
+#line 2059 "compilers/imcc/imcc.y"
{ (yyval.i) = 0; }
break;
case 242:
-#line 2061 "compilers/imcc/imcc.y"
+#line 2066 "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 243:
-#line 2067 "compilers/imcc/imcc.y"
+#line 2072 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"add"; }
break;
case 244:
-#line 2068 "compilers/imcc/imcc.y"
+#line 2073 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"sub"; }
break;
case 245:
-#line 2069 "compilers/imcc/imcc.y"
+#line 2074 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"mul"; }
break;
case 246:
-#line 2070 "compilers/imcc/imcc.y"
+#line 2075 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"div"; }
break;
case 247:
-#line 2071 "compilers/imcc/imcc.y"
+#line 2076 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"mod"; }
break;
case 248:
-#line 2072 "compilers/imcc/imcc.y"
+#line 2077 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"fdiv"; }
break;
case 249:
-#line 2073 "compilers/imcc/imcc.y"
+#line 2078 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"concat"; }
break;
case 250:
-#line 2074 "compilers/imcc/imcc.y"
+#line 2079 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"band"; }
break;
case 251:
-#line 2075 "compilers/imcc/imcc.y"
+#line 2080 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"bor"; }
break;
case 252:
-#line 2076 "compilers/imcc/imcc.y"
+#line 2081 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"bxor"; }
break;
case 253:
-#line 2077 "compilers/imcc/imcc.y"
+#line 2082 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"shr"; }
break;
case 254:
-#line 2078 "compilers/imcc/imcc.y"
+#line 2083 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"shl"; }
break;
case 255:
-#line 2079 "compilers/imcc/imcc.y"
+#line 2084 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"lsr"; }
break;
case 256:
-#line 2085 "compilers/imcc/imcc.y"
+#line 2090 "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,
@@ -4680,22 +4687,22 @@
break;
case 257:
-#line 2095 "compilers/imcc/imcc.y"
- { (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
+#line 2100 "compilers/imcc/imcc.y"
+ { (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 258:
-#line 2096 "compilers/imcc/imcc.y"
+#line 2101 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address_fromc(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 259:
-#line 2097 "compilers/imcc/imcc.y"
- { (yyval.sr) = mk_sub_address_u(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
+#line 2102 "compilers/imcc/imcc.y"
+ { (yyval.sr) = mk_sub_address_u(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
case 260:
-#line 2099 "compilers/imcc/imcc.y"
+#line 2104 "compilers/imcc/imcc.y"
{
(yyval.sr) = (yyvsp[(1) - (1)].sr);
if ((yyvsp[(1) - (1)].sr)->set != 'P')
@@ -4704,7 +4711,7 @@
break;
case 261:
-#line 2105 "compilers/imcc/imcc.y"
+#line 2110 "compilers/imcc/imcc.y"
{
/* disallow bareword method names; SREG name constants are fine */
char *name = (yyvsp[(3) - (3)].sr)->name;
@@ -4721,39 +4728,48 @@
break;
case 262:
-#line 2119 "compilers/imcc/imcc.y"
+#line 2124 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr);
- (yyval.sr) = mk_const(interp, (yyvsp[(3) - (3)].s), 'S');
+ (yyval.sr) = mk_const(interp, (yyvsp[(3) - (3)].s), 'U');
mem_sys_free((yyvsp[(3) - (3)].s));
}
break;
case 263:
-#line 2124 "compilers/imcc/imcc.y"
- { IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr); (yyval.sr) = (yyvsp[(3) - (3)].sr); }
+#line 2130 "compilers/imcc/imcc.y"
+ {
+ IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr);
+ (yyval.sr) = mk_const(interp, (yyvsp[(3) - (3)].s), 'S');
+ mem_sys_free((yyvsp[(3) - (3)].s));
+ }
break;
case 264:
-#line 2130 "compilers/imcc/imcc.y"
+#line 2135 "compilers/imcc/imcc.y"
+ { IMCC_INFO(interp)->cur_obj = (yyvsp[(1) - (3)].sr); (yyval.sr) = (yyvsp[(3) - (3)].sr); }
+ break;
+
+ case 265:
+#line 2141 "compilers/imcc/imcc.y"
{
(yyval.i) = IMCC_create_itcall_label(interp);
IMCC_itcall_sub(interp, (yyvsp[(1) - (1)].sr));
}
break;
- case 265:
-#line 2134 "compilers/imcc/imcc.y"
+ case 266:
+#line 2145 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(2) - (5)].i); }
break;
- case 266:
-#line 2138 "compilers/imcc/imcc.y"
+ case 267:
+#line 2149 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
- case 267:
-#line 2140 "compilers/imcc/imcc.y"
+ case 268:
+#line 2151 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
if (IMCC_INFO(interp)->adv_named_id) {
@@ -4765,8 +4781,8 @@
}
break;
- case 268:
-#line 2150 "compilers/imcc/imcc.y"
+ case 269:
+#line 2161 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
if (IMCC_INFO(interp)->adv_named_id) {
@@ -4778,8 +4794,8 @@
}
break;
- case 269:
-#line 2160 "compilers/imcc/imcc.y"
+ case 270:
+#line 2171 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
add_pcc_named_arg(interp, IMCC_INFO(interp)->cur_call,
@@ -4788,16 +4804,16 @@
}
break;
- case 270:
-#line 2167 "compilers/imcc/imcc.y"
+ case 271:
+#line 2178 "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));
}
break;
- case 271:
-#line 2172 "compilers/imcc/imcc.y"
+ case 272:
+#line 2183 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
add_pcc_named_arg(interp, IMCC_INFO(interp)->cur_call,
@@ -4806,48 +4822,48 @@
}
break;
- case 272:
-#line 2181 "compilers/imcc/imcc.y"
+ case 273:
+#line 2192 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(1) - (2)].sr); (yyval.sr)->type |= (yyvsp[(2) - (2)].t); }
break;
- case 273:
-#line 2185 "compilers/imcc/imcc.y"
+ case 274:
+#line 2196 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
- case 274:
-#line 2186 "compilers/imcc/imcc.y"
+ case 275:
+#line 2197 "compilers/imcc/imcc.y"
{ (yyval.t) = (yyvsp[(1) - (2)].t) | (yyvsp[(2) - (2)].t); }
break;
- case 275:
-#line 2190 "compilers/imcc/imcc.y"
+ case 276:
+#line 2201 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_FLAT; }
break;
- case 276:
-#line 2191 "compilers/imcc/imcc.y"
+ case 277:
+#line 2202 "compilers/imcc/imcc.y"
{ (yyval.t) = VT_NAMED; }
break;
- case 277:
-#line 2194 "compilers/imcc/imcc.y"
+ case 278:
+#line 2205 "compilers/imcc/imcc.y"
{ adv_named_set_u(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; }
break;
- case 278:
-#line 2195 "compilers/imcc/imcc.y"
+ case 279:
+#line 2206 "compilers/imcc/imcc.y"
{ adv_named_set(interp, (yyvsp[(3) - (4)].s)); (yyval.t) = 0; }
break;
- case 279:
-#line 2199 "compilers/imcc/imcc.y"
+ case 280:
+#line 2210 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(1) - (2)].sr); (yyval.sr)->type |= (yyvsp[(2) - (2)].t); }
break;
- case 280:
-#line 2204 "compilers/imcc/imcc.y"
+ case 281:
+#line 2215 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
if (IMCC_INFO(interp)->adv_named_id) {
@@ -4859,8 +4875,8 @@
}
break;
- case 281:
-#line 2214 "compilers/imcc/imcc.y"
+ case 282:
+#line 2225 "compilers/imcc/imcc.y"
{
add_pcc_named_result(interp, IMCC_INFO(interp)->cur_call,
mk_const(interp, (yyvsp[(3) - (5)].s), 'S'), (yyvsp[(5) - (5)].sr));
@@ -4868,8 +4884,8 @@
}
break;
- case 282:
-#line 2220 "compilers/imcc/imcc.y"
+ case 283:
+#line 2231 "compilers/imcc/imcc.y"
{
(yyval.sr) = 0;
if (IMCC_INFO(interp)->adv_named_id) {
@@ -4881,133 +4897,133 @@
}
break;
- case 283:
-#line 2230 "compilers/imcc/imcc.y"
+ case 284:
+#line 2241 "compilers/imcc/imcc.y"
{
add_pcc_named_result(interp, IMCC_INFO(interp)->cur_call, mk_const(interp, (yyvsp[(1) - (3)].s), 'S'), (yyvsp[(3) - (3)].sr));
mem_sys_free((yyvsp[(1) - (3)].s));
}
break;
- case 284:
-#line 2234 "compilers/imcc/imcc.y"
+ case 285:
+#line 2245 "compilers/imcc/imcc.y"
{ (yyval.sr) = 0; }
break;
- case 285:
-#line 2238 "compilers/imcc/imcc.y"
+ case 286:
+#line 2249 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
- case 286:
-#line 2239 "compilers/imcc/imcc.y"
+ case 287:
+#line 2250 "compilers/imcc/imcc.y"
{ (yyval.i) = (yyvsp[(1) - (1)].i); }
break;
- case 287:
-#line 2244 "compilers/imcc/imcc.y"
+ case 288:
+#line 2255 "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 288:
-#line 2248 "compilers/imcc/imcc.y"
+ case 289:
+#line 2259 "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 289:
-#line 2252 "compilers/imcc/imcc.y"
+ case 290:
+#line 2263 "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 290:
-#line 2259 "compilers/imcc/imcc.y"
+ case 291:
+#line 2270 "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 291:
-#line 2263 "compilers/imcc/imcc.y"
+ case 292:
+#line 2274 "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 292:
-#line 2267 "compilers/imcc/imcc.y"
+ case 293:
+#line 2278 "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 293:
-#line 2273 "compilers/imcc/imcc.y"
+ case 294:
+#line 2284 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
- case 294:
-#line 2274 "compilers/imcc/imcc.y"
+ case 295:
+#line 2285 "compilers/imcc/imcc.y"
{ (yyval.t) = 0; }
break;
- case 295:
-#line 2278 "compilers/imcc/imcc.y"
+ case 296:
+#line 2289 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"eq"; }
break;
- case 296:
-#line 2279 "compilers/imcc/imcc.y"
+ case 297:
+#line 2290 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"ne"; }
break;
- case 297:
-#line 2280 "compilers/imcc/imcc.y"
+ case 298:
+#line 2291 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"gt"; }
break;
- case 298:
-#line 2281 "compilers/imcc/imcc.y"
+ case 299:
+#line 2292 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"ge"; }
break;
- case 299:
-#line 2282 "compilers/imcc/imcc.y"
+ case 300:
+#line 2293 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"lt"; }
break;
- case 300:
-#line 2283 "compilers/imcc/imcc.y"
+ case 301:
+#line 2294 "compilers/imcc/imcc.y"
{ (yyval.s) = (char *)"le"; }
break;
- case 303:
-#line 2292 "compilers/imcc/imcc.y"
+ case 304:
+#line 2303 "compilers/imcc/imcc.y"
{ (yyval.sr) = NULL; }
break;
- case 304:
-#line 2293 "compilers/imcc/imcc.y"
+ case 305:
+#line 2304 "compilers/imcc/imcc.y"
{ (yyval.sr) = (yyvsp[(1) - (1)].sr); }
break;
- case 305:
-#line 2297 "compilers/imcc/imcc.y"
+ case 306:
+#line 2308 "compilers/imcc/imcc.y"
{ (yyval.sr) = IMCC_INFO(interp)->regs[0]; }
break;
- case 307:
-#line 2302 "compilers/imcc/imcc.y"
+ case 308:
+#line 2313 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(1) - (1)].sr); }
break;
- case 308:
-#line 2304 "compilers/imcc/imcc.y"
+ case 309:
+#line 2315 "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);
@@ -5016,54 +5032,54 @@
}
break;
- case 309:
-#line 2311 "compilers/imcc/imcc.y"
+ case 310:
+#line 2322 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp) -> regs[IMCC_INFO(interp)->nargs++] = (yyvsp[(2) - (3)].sr);
(yyval.sr) = (yyvsp[(2) - (3)].sr);
}
break;
- case 311:
-#line 2318 "compilers/imcc/imcc.y"
+ case 312:
+#line 2329 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address_fromc(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
- case 312:
-#line 2319 "compilers/imcc/imcc.y"
+ case 313:
+#line 2330 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address_u(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
- case 313:
-#line 2323 "compilers/imcc/imcc.y"
+ case 314:
+#line 2334 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
- case 314:
-#line 2324 "compilers/imcc/imcc.y"
+ case 315:
+#line 2335 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_sub_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
- case 315:
-#line 2328 "compilers/imcc/imcc.y"
+ case 316:
+#line 2339 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_label_address(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
- case 316:
-#line 2329 "compilers/imcc/imcc.y"
+ case 317:
+#line 2340 "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 2343 "compilers/imcc/imcc.y"
+ case 322:
+#line 2354 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->nkeys = 0;
IMCC_INFO(interp)->in_slice = 0;
}
break;
- case 322:
-#line 2348 "compilers/imcc/imcc.y"
+ case 323:
+#line 2359 "compilers/imcc/imcc.y"
{
(yyval.sr) = link_keys(interp,
IMCC_INFO(interp)->nkeys,
@@ -5071,16 +5087,16 @@
}
break;
- case 323:
-#line 2356 "compilers/imcc/imcc.y"
+ case 324:
+#line 2367 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->nkeys = 0;
IMCC_INFO(interp)->in_slice = 0;
}
break;
- case 324:
-#line 2361 "compilers/imcc/imcc.y"
+ case 325:
+#line 2372 "compilers/imcc/imcc.y"
{
(yyval.sr) = link_keys(interp,
IMCC_INFO(interp)->nkeys,
@@ -5088,21 +5104,21 @@
}
break;
- case 325:
-#line 2369 "compilers/imcc/imcc.y"
+ case 326:
+#line 2380 "compilers/imcc/imcc.y"
{ IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(1) - (1)].sr); }
break;
- case 326:
-#line 2371 "compilers/imcc/imcc.y"
+ case 327:
+#line 2382 "compilers/imcc/imcc.y"
{
IMCC_INFO(interp)->keys[IMCC_INFO(interp)->nkeys++] = (yyvsp[(3) - (3)].sr);
(yyval.sr) = IMCC_INFO(interp)->keys[0];
}
break;
- case 327:
-#line 2379 "compilers/imcc/imcc.y"
+ case 328:
+#line 2390 "compilers/imcc/imcc.y"
{
if (IMCC_INFO(interp)->in_slice)
(yyvsp[(1) - (1)].sr)->type |= VT_START_SLICE | VT_END_SLICE;
@@ -5110,54 +5126,54 @@
}
break;
- case 328:
-#line 2387 "compilers/imcc/imcc.y"
+ case 329:
+#line 2398 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'I'); }
break;
- case 329:
-#line 2388 "compilers/imcc/imcc.y"
+ case 330:
+#line 2399 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'N'); }
break;
- case 330:
-#line 2389 "compilers/imcc/imcc.y"
+ case 331:
+#line 2400 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'S'); }
break;
- case 331:
-#line 2390 "compilers/imcc/imcc.y"
+ case 332:
+#line 2401 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_symreg(interp, (yyvsp[(1) - (1)].s), 'P'); }
break;
- case 332:
-#line 2391 "compilers/imcc/imcc.y"
+ case 333:
+#line 2402 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_pasm_reg(interp, (yyvsp[(1) - (1)].s)); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
- case 333:
-#line 2395 "compilers/imcc/imcc.y"
+ case 334:
+#line 2406 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'I'); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
- case 334:
-#line 2396 "compilers/imcc/imcc.y"
+ case 335:
+#line 2407 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'N'); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
- case 335:
-#line 2397 "compilers/imcc/imcc.y"
+ case 336:
+#line 2408 "compilers/imcc/imcc.y"
{ (yyval.sr) = mk_const(interp, (yyvsp[(1) - (1)].s), 'S'); mem_sys_free((yyvsp[(1) - (1)].s)); }
break;
- case 336:
-#line 2398 "compilers/imcc/imcc.y"
+ case 337:
+#line 2409 "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 5150 "compilers/imcc/imcparser.c"
+#line 5166 "compilers/imcc/imcparser.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -5371,7 +5387,7 @@
}
-#line 2404 "compilers/imcc/imcc.y"
+#line 2415 "compilers/imcc/imcc.y"
/* I need this prototype somewhere... */
Modified: trunk/compilers/imcc/imcparser.h
==============================================================================
--- trunk/compilers/imcc/imcparser.h Fri Jun 5 23:43:47 2009 (r39416)
+++ trunk/compilers/imcc/imcparser.h Sat Jun 6 00:16:18 2009 (r39417)
@@ -295,7 +295,7 @@
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
-#line 1030 "compilers/imcc/imcc.y"
+#line 1035 "compilers/imcc/imcc.y"
{
IdList * idlist;
int t;
Modified: trunk/compilers/imcc/pcc.c
==============================================================================
--- trunk/compilers/imcc/pcc.c Fri Jun 5 23:43:47 2009 (r39416)
+++ trunk/compilers/imcc/pcc.c Sat Jun 6 00:16:18 2009 (r39417)
@@ -816,7 +816,12 @@
if (!(arg->type == VTIDENTIFIER
|| arg->type == VTPASM
|| arg->type == VTREG))
- meth = mk_const(interp, arg->name, 'S');
+ if (arg->type & VT_ENCODED) {
+ meth = mk_const(interp, arg->name, 'U');
+ }
+ else {
+ meth = mk_const(interp, arg->name, 'S');
+ }
}
}
Modified: trunk/t/compilers/imcc/syn/pcc.t
==============================================================================
--- trunk/t/compilers/imcc/syn/pcc.t Fri Jun 5 23:43:47 2009 (r39416)
+++ trunk/t/compilers/imcc/syn/pcc.t Sat Jun 6 00:16:18 2009 (r39417)
@@ -1,5 +1,5 @@
#!perl
-# Copyright (C) 2001-2005, Parrot Foundation.
+# Copyright (C) 2001-2009, Parrot Foundation.
# $Id$
use strict;
@@ -7,7 +7,7 @@
use lib qw( . lib ../lib ../../lib );
use Test::More;
use Parrot::Config;
-use Parrot::Test tests => 22;
+use Parrot::Test tests => 23;
##############################
# Parrot Calling Conventions
@@ -542,6 +542,27 @@
pir_output_is( $too_many_params, "didn't segfault\n", "calling a sub with way too many params" );
+pir_output_is( <<'CODE', <<'OUT', 'Unicode allowed in method names, TT #730' );
+.sub 'main' :main
+ $P0 = newclass 'Foo'
+ $P1 = new $P0
+ $S0 = unicode:"foo\x{b1}"
+ $P1.$S0(1)
+ $P1.unicode:"foo\x{b1}"(2)
+.end
+
+.namespace ['Foo']
+.sub unicode:"foo\x{b1}" :method
+ .param int count
+ print 'ok '
+ print count
+ say ' - Unicode method names allowed'
+.end
+CODE
+ok 1 - Unicode method names allowed
+ok 2 - Unicode method names allowed
+OUT
+
# Local Variables:
# mode: cperl
# cperl-indent-level: 4
More information about the parrot-commits
mailing list