name = "__as3_constructor__";
if(as3_pass == 1) {
+ return_type = 0;
state->method->info = registerfunction(getset, flags, name, params, return_type, 0);
}
TODO: better getter/setter support? */
if(!state->cls) state->method->info = registry_findclass(state->package, name)->function;
else state->method->info = registry_findmember(state->cls->info, name, 0);
+ state->method->info->return_type = return_type;
global->variable_count = 0;
/* state->vars is initialized by state_new */
/* Line 273 of skeleton.m4 */
-#line 1543 "parser.tab.c"
+#line 1545 "parser.tab.c"
#ifdef short
# undef short
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 1517, 1517, 1519, 1519, 1520, 1521, 1523, 1524, 1525,
- 1526, 1527, 1528, 1529, 1531, 1531, 1532, 1533, 1535, 1536,
- 1537, 1538, 1539, 1540, 1542, 1543, 1545, 1546, 1549, 1550,
- 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1561, 1562,
- 1563, 1564, 1565, 1566, 1567, 1569, 1570, 1572, 1573, 1574,
- 1575, 1579, 1586, 1587, 1591, 1592, 1594, 1595, 1597, 1638,
- 1639, 1642, 1642, 1661, 1662, 1663, 1666, 1669, 1673, 1674,
- 1676, 1696, 1739, 1739, 1758, 1758, 1773, 1776, 1779, 1782,
- 1786, 1787, 1788, 1789, 1790, 1791, 1793, 1804, 1807, 1807,
- 1836, 1836, 1856, 1856, 1873, 1874, 1875, 1876, 1884, 1893,
- 1893, 1938, 1942, 1953, 1962, 1963, 1965, 1966, 1968, 1968,
- 1970, 1970, 1973, 1981, 1991, 1992, 1993, 1994, 1996, 1997,
- 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006, 2007, 2009,
- 2010, 2012, 2013, 2017, 2015, 2023, 2021, 2029, 2030, 2031,
- 2032, 2033, 2034, 2035, 2037, 2043, 2044, 2045, 2046, 2047,
- 2048, 2051, 2063, 2063, 2065, 2123, 2124, 2126, 2127, 2128,
- 2129, 2130, 2132, 2133, 2134, 2139, 2142, 2147, 2152, 2159,
- 2163, 2168, 2174, 2180, 2181, 2182, 2185, 2184, 2205, 2206,
- 2207, 2215, 2223, 2231, 2232, 2234, 2235, 2237, 2238, 2239,
- 2248, 2249, 2253, 2254, 2256, 2257, 2258, 2261, 2266, 2290,
- 2338, 2358, 2379, 2382, 2389, 2390, 2391, 2397, 2403, 2405,
- 2407, 2409, 2411, 2413, 2430, 2435, 2438, 2441, 2444, 2447,
- 2450, 2453, 2456, 2459, 2463, 2464, 2467, 2470, 2473, 2476,
- 2479, 2482, 2485, 2489, 2500, 2518, 2523, 2528, 2533, 2538,
- 2543, 2547, 2551, 2556, 2560, 2564, 2573, 2582, 2592, 2597,
- 2609, 2615, 2620, 2626, 2632, 2636, 2638, 2649, 2658, 2665,
- 2666, 2668, 2674, 2683, 2690, 2702, 2708, 2714, 2720, 2726,
- 2732, 2738, 2751, 2762, 2769, 2782, 2809, 2823, 2837, 2851,
- 2866, 2900, 2998, 2999, 3000, 3002
+ 0, 1519, 1519, 1521, 1521, 1522, 1523, 1525, 1526, 1527,
+ 1528, 1529, 1530, 1531, 1533, 1533, 1534, 1535, 1537, 1538,
+ 1539, 1540, 1541, 1542, 1544, 1545, 1547, 1548, 1551, 1552,
+ 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1563, 1564,
+ 1565, 1566, 1567, 1568, 1569, 1571, 1572, 1574, 1575, 1576,
+ 1577, 1581, 1588, 1589, 1593, 1594, 1596, 1597, 1599, 1640,
+ 1641, 1644, 1644, 1663, 1664, 1665, 1668, 1671, 1675, 1676,
+ 1678, 1698, 1741, 1741, 1760, 1760, 1775, 1778, 1781, 1784,
+ 1788, 1789, 1790, 1791, 1792, 1793, 1795, 1806, 1809, 1809,
+ 1838, 1838, 1858, 1858, 1875, 1876, 1877, 1878, 1886, 1895,
+ 1895, 1940, 1944, 1955, 1964, 1965, 1967, 1968, 1970, 1970,
+ 1972, 1972, 1975, 1983, 1993, 1994, 1995, 1996, 1998, 1999,
+ 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2008, 2009, 2011,
+ 2012, 2014, 2015, 2019, 2017, 2025, 2023, 2031, 2032, 2033,
+ 2034, 2035, 2036, 2037, 2039, 2045, 2046, 2047, 2048, 2049,
+ 2050, 2053, 2065, 2065, 2067, 2126, 2127, 2129, 2130, 2131,
+ 2132, 2133, 2135, 2136, 2137, 2142, 2145, 2150, 2155, 2162,
+ 2166, 2171, 2177, 2183, 2184, 2185, 2188, 2187, 2208, 2209,
+ 2210, 2218, 2226, 2234, 2235, 2237, 2238, 2240, 2241, 2242,
+ 2251, 2252, 2256, 2257, 2259, 2260, 2261, 2264, 2269, 2293,
+ 2341, 2361, 2382, 2385, 2392, 2393, 2394, 2400, 2406, 2408,
+ 2410, 2412, 2414, 2416, 2433, 2438, 2441, 2444, 2447, 2450,
+ 2453, 2456, 2459, 2462, 2466, 2467, 2470, 2473, 2476, 2479,
+ 2482, 2485, 2488, 2492, 2503, 2521, 2526, 2531, 2536, 2541,
+ 2546, 2550, 2554, 2559, 2563, 2567, 2576, 2585, 2595, 2600,
+ 2612, 2618, 2623, 2629, 2635, 2639, 2641, 2652, 2661, 2668,
+ 2669, 2671, 2677, 2686, 2693, 2705, 2711, 2717, 2723, 2729,
+ 2735, 2741, 2754, 2765, 2772, 2785, 2812, 2826, 2840, 2854,
+ 2869, 2903, 3001, 3002, 3003, 3005
};
#endif
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1542 "parser.y"
+#line 1544 "parser.y"
{(yyval.code)=(yyvsp[(1) - (1)].code);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1543 "parser.y"
+#line 1545 "parser.y"
{(yyval.code)=code_new();}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1545 "parser.y"
+#line 1547 "parser.y"
{(yyval.code)=code_append((yyvsp[(1) - (2)].code),(yyvsp[(2) - (2)].code));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1546 "parser.y"
+#line 1548 "parser.y"
{(yyval.code)=(yyvsp[(1) - (1)].code);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1561 "parser.y"
+#line 1563 "parser.y"
{(yyval.code)=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1569 "parser.y"
+#line 1571 "parser.y"
{/*TODO*/(yyval.code)=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1570 "parser.y"
+#line 1572 "parser.y"
{/*TODO*/(yyval.code)=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1572 "parser.y"
+#line 1574 "parser.y"
{(yyval.code)=(yyvsp[(2) - (3)].code);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1573 "parser.y"
+#line 1575 "parser.y"
{(yyval.code)=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1574 "parser.y"
+#line 1576 "parser.y"
{(yyval.code)=(yyvsp[(1) - (2)].code);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1575 "parser.y"
+#line 1577 "parser.y"
{(yyval.code)=(yyvsp[(1) - (1)].code);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1579 "parser.y"
+#line 1581 "parser.y"
{
code_t**cc = &global->init->method->body->code;
*cc = code_append(*cc, (yyvsp[(1) - (1)].code));
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1586 "parser.y"
+#line 1588 "parser.y"
{(yyval.value)=(yyvsp[(2) - (2)].value);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1587 "parser.y"
+#line 1589 "parser.y"
{(yyval.value).c=abc_pushundefined(0);
(yyval.value).t=TYPE_ANY;
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1591 "parser.y"
+#line 1593 "parser.y"
{(yyval.code)=(yyvsp[(2) - (2)].code);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1592 "parser.y"
+#line 1594 "parser.y"
{(yyval.code)=(yyvsp[(2) - (2)].code);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1594 "parser.y"
+#line 1596 "parser.y"
{(yyval.code) = (yyvsp[(1) - (1)].code);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1595 "parser.y"
+#line 1597 "parser.y"
{(yyval.code) = code_append((yyvsp[(1) - (3)].code), (yyvsp[(3) - (3)].code));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1598 "parser.y"
+#line 1600 "parser.y"
{
if(variable_exists((yyvsp[(1) - (3)].id)))
syntaxerror("Variable %s already defined", (yyvsp[(1) - (3)].id));
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1638 "parser.y"
+#line 1640 "parser.y"
{(yyval.code) = code_new();}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1639 "parser.y"
+#line 1641 "parser.y"
{(yyval.code)=(yyvsp[(2) - (2)].code);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1642 "parser.y"
+#line 1644 "parser.y"
{new_state();}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1642 "parser.y"
+#line 1644 "parser.y"
{
(yyval.code) = code_new();
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1661 "parser.y"
+#line 1663 "parser.y"
{(yyval.code)=code_new();}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1666 "parser.y"
+#line 1668 "parser.y"
{
(yyval.id)=(yyvsp[(2) - (3)].id);new_variable((yyvsp[(2) - (3)].id),(yyvsp[(3) - (3)].classinfo),1);
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1669 "parser.y"
+#line 1671 "parser.y"
{
(yyval.id)=(yyvsp[(1) - (1)].id);
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1673 "parser.y"
+#line 1675 "parser.y"
{new_state();(yyval.for_start).name=(yyvsp[(1) - (2)].id);(yyval.for_start).each=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1674 "parser.y"
+#line 1676 "parser.y"
{new_state();(yyval.for_start).name=(yyvsp[(1) - (3)].id);(yyval.for_start).each=1;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1676 "parser.y"
+#line 1678 "parser.y"
{
if((yyvsp[(1) - (8)].for_start).each) syntaxerror("invalid syntax: ; not allowed in for each statement");
(yyval.code) = code_new();
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1696 "parser.y"
+#line 1698 "parser.y"
{
variable_t*var = find_variable((yyvsp[(2) - (6)].id));
char*tmp1name = concat2((yyvsp[(2) - (6)].id), "__tmp1__");
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1739 "parser.y"
+#line 1741 "parser.y"
{new_state();}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1739 "parser.y"
+#line 1741 "parser.y"
{
(yyval.code) = code_new();
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1758 "parser.y"
+#line 1760 "parser.y"
{new_state();}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1758 "parser.y"
+#line 1760 "parser.y"
{
(yyval.code) = code_new();
code_t*loopstart = (yyval.code) = abc_label((yyval.code));
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1773 "parser.y"
+#line 1775 "parser.y"
{
(yyval.code) = abc___break__(0, "");
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1776 "parser.y"
+#line 1778 "parser.y"
{
(yyval.code) = abc___break__(0, (yyvsp[(2) - (2)].id));
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1779 "parser.y"
+#line 1781 "parser.y"
{
(yyval.code) = abc___continue__(0, "");
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1782 "parser.y"
+#line 1784 "parser.y"
{
(yyval.code) = abc___continue__(0, (yyvsp[(2) - (2)].id));
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1786 "parser.y"
+#line 1788 "parser.y"
{(yyval.code)=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1787 "parser.y"
+#line 1789 "parser.y"
{(yyval.code)=(yyvsp[(1) - (1)].code);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1788 "parser.y"
+#line 1790 "parser.y"
{(yyval.code)=(yyvsp[(1) - (1)].code);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1789 "parser.y"
+#line 1791 "parser.y"
{(yyval.code)=code_append((yyvsp[(1) - (2)].code),(yyvsp[(2) - (2)].code));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1790 "parser.y"
+#line 1792 "parser.y"
{(yyval.code)=(yyvsp[(1) - (1)].code);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1791 "parser.y"
+#line 1793 "parser.y"
{(yyval.code)=code_append((yyval.code),(yyvsp[(2) - (2)].code));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1793 "parser.y"
+#line 1795 "parser.y"
{
(yyval.code) = abc_dup(0);
(yyval.code) = code_append((yyval.code), (yyvsp[(2) - (4)].value).c);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1804 "parser.y"
+#line 1806 "parser.y"
{
(yyval.code) = (yyvsp[(3) - (3)].code);
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1807 "parser.y"
+#line 1809 "parser.y"
{new_state();}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1807 "parser.y"
+#line 1809 "parser.y"
{
(yyval.code)=(yyvsp[(4) - (8)].value).c;
(yyval.code) = code_append((yyval.code), (yyvsp[(7) - (8)].code));
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1836 "parser.y"
+#line 1838 "parser.y"
{new_state();state->exception_name=(yyvsp[(3) - (5)].id);new_variable((yyvsp[(3) - (5)].id), (yyvsp[(4) - (5)].classinfo), 0);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1837 "parser.y"
+#line 1839 "parser.y"
{
namespace_t name_ns = {ACCESS_PACKAGE, ""};
multiname_t name = {QNAME, &name_ns, 0, (yyvsp[(3) - (9)].id)};
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1856 "parser.y"
+#line 1858 "parser.y"
{new_state();state->exception_name=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1856 "parser.y"
+#line 1858 "parser.y"
{
(yyvsp[(4) - (5)].code) = var_block((yyvsp[(4) - (5)].code));
if(!(yyvsp[(4) - (5)].code)) {
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1873 "parser.y"
+#line 1875 "parser.y"
{(yyval.catch_list).l=list_new();(yyval.catch_list).finally=0;list_append((yyval.catch_list).l,(yyvsp[(1) - (1)].exception));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1874 "parser.y"
+#line 1876 "parser.y"
{(yyval.catch_list)=(yyvsp[(1) - (2)].catch_list);list_append((yyval.catch_list).l,(yyvsp[(2) - (2)].exception));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1875 "parser.y"
+#line 1877 "parser.y"
{(yyval.catch_list)=(yyvsp[(1) - (1)].catch_list);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1876 "parser.y"
+#line 1878 "parser.y"
{
(yyval.catch_list) = (yyvsp[(1) - (2)].catch_list);
(yyval.catch_list).finally = 0;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1884 "parser.y"
+#line 1886 "parser.y"
{
(yyval.catch_list).l=list_new();
(yyval.catch_list).finally = 0;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1893 "parser.y"
+#line 1895 "parser.y"
{new_state();}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1893 "parser.y"
+#line 1895 "parser.y"
{
code_t*out = abc_nop(0);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1938 "parser.y"
+#line 1940 "parser.y"
{
(yyval.code)=(yyvsp[(2) - (2)].value).c;
(yyval.code)=abc_throw((yyval.code));
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1942 "parser.y"
+#line 1944 "parser.y"
{
if(!state->exception_name)
syntaxerror("re-throw only possible within a catch block");
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1953 "parser.y"
+#line 1955 "parser.y"
{
(yyval.code) = (yyvsp[(3) - (5)].value).c;
(yyval.code) = abc_pushscope((yyval.code));
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1963 "parser.y"
+#line 1965 "parser.y"
{PASS12 (yyval.id)="package";}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1965 "parser.y"
+#line 1967 "parser.y"
{PASS12 (yyval.id) = concat3((yyvsp[(1) - (3)].id),".",(yyvsp[(3) - (3)].id));free((yyvsp[(1) - (3)].id));(yyvsp[(1) - (3)].id)=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1966 "parser.y"
+#line 1968 "parser.y"
{PASS12 (yyval.id)=strdup((yyvsp[(1) - (1)].id));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1968 "parser.y"
+#line 1970 "parser.y"
{PASS12 startpackage((yyvsp[(2) - (3)].id));free((yyvsp[(2) - (3)].id));(yyvsp[(2) - (3)].id)=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1969 "parser.y"
+#line 1971 "parser.y"
{PASS12 endpackage();(yyval.code)=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1970 "parser.y"
+#line 1972 "parser.y"
{PASS12 startpackage("");}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1971 "parser.y"
+#line 1973 "parser.y"
{PASS12 endpackage();(yyval.code)=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1973 "parser.y"
+#line 1975 "parser.y"
{
classinfo_t*c = (yyvsp[(2) - (2)].classinfo);
if(!c)
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1981 "parser.y"
+#line 1983 "parser.y"
{
NEW(import_t,i);
i->package = (yyvsp[(2) - (4)].id);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1991 "parser.y"
+#line 1993 "parser.y"
{PASS12 (yyval.flags)=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1992 "parser.y"
+#line 1994 "parser.y"
{PASS12 (yyval.flags)=(yyvsp[(1) - (1)].flags);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1993 "parser.y"
+#line 1995 "parser.y"
{PASS12 (yyval.flags)=(yyvsp[(1) - (1)].token);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1994 "parser.y"
+#line 1996 "parser.y"
{PASS12 (yyval.flags)=(yyvsp[(1) - (2)].flags)|(yyvsp[(2) - (2)].token);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1996 "parser.y"
+#line 1998 "parser.y"
{PASS12 (yyval.token)=FLAG_PUBLIC;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1997 "parser.y"
+#line 1999 "parser.y"
{PASS12 (yyval.token)=FLAG_PRIVATE;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1998 "parser.y"
+#line 2000 "parser.y"
{PASS12 (yyval.token)=FLAG_PROTECTED;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1999 "parser.y"
+#line 2001 "parser.y"
{PASS12 (yyval.token)=FLAG_STATIC;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2000 "parser.y"
+#line 2002 "parser.y"
{PASS12 (yyval.token)=FLAG_DYNAMIC;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2001 "parser.y"
+#line 2003 "parser.y"
{PASS12 (yyval.token)=FLAG_FINAL;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2002 "parser.y"
+#line 2004 "parser.y"
{PASS12 (yyval.token)=FLAG_OVERRIDE;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2003 "parser.y"
+#line 2005 "parser.y"
{PASS12 (yyval.token)=FLAG_NATIVE;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2004 "parser.y"
+#line 2006 "parser.y"
{PASS12 (yyval.token)=FLAG_PACKAGEINTERNAL;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2006 "parser.y"
+#line 2008 "parser.y"
{(yyval.classinfo)=registry_getobjectclass();}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2007 "parser.y"
+#line 2009 "parser.y"
{(yyval.classinfo)=(yyvsp[(2) - (2)].classinfo);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2009 "parser.y"
- {(yyval.classinfo_list)=list_new();}
+#line 2011 "parser.y"
+ {PASS12 (yyval.classinfo_list)=list_new();}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2010 "parser.y"
- {(yyval.classinfo_list)=(yyvsp[(2) - (2)].classinfo_list);}
+#line 2012 "parser.y"
+ {PASS12 (yyval.classinfo_list)=(yyvsp[(2) - (2)].classinfo_list);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2012 "parser.y"
+#line 2014 "parser.y"
{PASS12 (yyval.classinfo_list)=list_new();}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2013 "parser.y"
+#line 2015 "parser.y"
{PASS12 (yyval.classinfo_list)=(yyvsp[(2) - (2)].classinfo_list);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2017 "parser.y"
+#line 2019 "parser.y"
{PASS12 startclass((yyvsp[(1) - (6)].flags),(yyvsp[(3) - (6)].id),(yyvsp[(4) - (6)].classinfo),(yyvsp[(5) - (6)].classinfo_list), 0);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2019 "parser.y"
+#line 2021 "parser.y"
{PASS12 endclass();(yyval.code)=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2023 "parser.y"
+#line 2025 "parser.y"
{PASS12 startclass((yyvsp[(1) - (5)].flags),(yyvsp[(3) - (5)].id),0,(yyvsp[(4) - (5)].classinfo_list),1);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2025 "parser.y"
+#line 2027 "parser.y"
{PASS12 endclass();(yyval.code)=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2037 "parser.y"
+#line 2039 "parser.y"
{
code_t*c = state->cls->static_init;
c = code_append(c, (yyvsp[(1) - (1)].code));
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2048 "parser.y"
+#line 2050 "parser.y"
{
syntaxerror("variable declarations not allowed in interfaces");
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2051 "parser.y"
+#line 2053 "parser.y"
{
PASS12
(yyvsp[(1) - (8)].flags) |= FLAG_PUBLIC;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2065 "parser.y"
+#line 2067 "parser.y"
{
int flags = (yyvsp[(1) - (5)].flags);
memberinfo_t* info = state->cls?
code_t**code;
if(!state->cls) {
// global variable
+ mname_ns.name = state->package;
traits = &global->init->traits;
code = &global->init->method->body->code;
} else if(flags&FLAG_STATIC) {
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2123 "parser.y"
+#line 2126 "parser.y"
{(yyval.constant)=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2124 "parser.y"
+#line 2127 "parser.y"
{(yyval.constant)=(yyvsp[(2) - (2)].constant);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2126 "parser.y"
+#line 2129 "parser.y"
{(yyval.constant) = constant_new_int((yyvsp[(1) - (1)].number_uint));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2127 "parser.y"
+#line 2130 "parser.y"
{(yyval.constant) = constant_new_int((yyvsp[(1) - (1)].number_int));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2128 "parser.y"
+#line 2131 "parser.y"
{(yyval.constant) = constant_new_uint((yyvsp[(1) - (1)].number_uint));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2129 "parser.y"
+#line 2132 "parser.y"
{(yyval.constant) = constant_new_float((yyvsp[(1) - (1)].number_float));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2130 "parser.y"
+#line 2133 "parser.y"
{(yyval.constant) = constant_new_string2((yyvsp[(1) - (1)].str).str,(yyvsp[(1) - (1)].str).len);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2132 "parser.y"
+#line 2135 "parser.y"
{(yyval.constant) = constant_new_true((yyvsp[(1) - (1)].token));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2133 "parser.y"
+#line 2136 "parser.y"
{(yyval.constant) = constant_new_false((yyvsp[(1) - (1)].token));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2134 "parser.y"
+#line 2137 "parser.y"
{(yyval.constant) = constant_new_null((yyvsp[(1) - (1)].token));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2139 "parser.y"
+#line 2142 "parser.y"
{
memset(&(yyval.params),0,sizeof((yyval.params)));
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2142 "parser.y"
+#line 2145 "parser.y"
{
(yyval.params)=(yyvsp[(1) - (1)].params);
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2147 "parser.y"
+#line 2150 "parser.y"
{
memset(&(yyval.params),0,sizeof((yyval.params)));
(yyval.params).varargs=1;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2152 "parser.y"
+#line 2155 "parser.y"
{
(yyval.params) =(yyvsp[(1) - (4)].params);
(yyval.params).varargs=1;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2159 "parser.y"
+#line 2162 "parser.y"
{
(yyval.params) = (yyvsp[(1) - (3)].params);
list_append((yyval.params).list, (yyvsp[(3) - (3)].param));
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2163 "parser.y"
+#line 2166 "parser.y"
{
memset(&(yyval.params),0,sizeof((yyval.params)));
list_append((yyval.params).list, (yyvsp[(1) - (1)].param));
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2168 "parser.y"
+#line 2171 "parser.y"
{
(yyval.param) = malloc(sizeof(param_t));
(yyval.param)->name=(yyvsp[(1) - (4)].id);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2174 "parser.y"
+#line 2177 "parser.y"
{
(yyval.param) = malloc(sizeof(param_t));
(yyval.param)->name=(yyvsp[(1) - (2)].id);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2180 "parser.y"
+#line 2183 "parser.y"
{(yyval.token)=(yyvsp[(1) - (1)].token);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2181 "parser.y"
+#line 2184 "parser.y"
{(yyval.token)=(yyvsp[(1) - (1)].token);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2182 "parser.y"
+#line 2185 "parser.y"
{(yyval.token)=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2185 "parser.y"
+#line 2188 "parser.y"
{PASS12 startfunction(0,(yyvsp[(1) - (9)].flags),(yyvsp[(3) - (9)].token),(yyvsp[(4) - (9)].id),&(yyvsp[(6) - (9)].params),(yyvsp[(8) - (9)].classinfo));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2186 "parser.y"
+#line 2189 "parser.y"
{
PASS1 old_state();
PASS2
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2206 "parser.y"
+#line 2209 "parser.y"
{(yyval.id)=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2208 "parser.y"
+#line 2211 "parser.y"
{
syntaxerror("nested functions not supported yet");
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2215 "parser.y"
+#line 2218 "parser.y"
{
PASS1 (yyval.classinfo)=0;
PASS2
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2223 "parser.y"
+#line 2226 "parser.y"
{
PASS1 (yyval.classinfo)=0;
PASS2
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2234 "parser.y"
+#line 2237 "parser.y"
{PASS12 (yyval.classinfo_list)=list_new();list_append((yyval.classinfo_list), (yyvsp[(1) - (1)].classinfo));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2235 "parser.y"
+#line 2238 "parser.y"
{PASS12 (yyval.classinfo_list)=(yyvsp[(1) - (3)].classinfo_list);list_append((yyval.classinfo_list),(yyvsp[(3) - (3)].classinfo));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2237 "parser.y"
+#line 2240 "parser.y"
{(yyval.classinfo)=(yyvsp[(1) - (1)].classinfo);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2238 "parser.y"
+#line 2241 "parser.y"
{(yyval.classinfo)=registry_getanytype();}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2239 "parser.y"
+#line 2242 "parser.y"
{(yyval.classinfo)=registry_getanytype();}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2248 "parser.y"
+#line 2251 "parser.y"
{(yyval.classinfo)=(yyvsp[(2) - (2)].classinfo);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2249 "parser.y"
+#line 2252 "parser.y"
{(yyval.classinfo)=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2253 "parser.y"
+#line 2256 "parser.y"
{(yyval.value_list).cc=0;(yyval.value_list).len=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2254 "parser.y"
+#line 2257 "parser.y"
{(yyval.value_list)=(yyvsp[(2) - (3)].value_list);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2256 "parser.y"
+#line 2259 "parser.y"
{(yyval.value_list).cc=0;(yyval.value_list).len=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2258 "parser.y"
+#line 2261 "parser.y"
{(yyval.value_list).len=1;
(yyval.value_list).cc = (yyvsp[(1) - (1)].value).c;
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2261 "parser.y"
+#line 2264 "parser.y"
{
(yyval.value_list).len= (yyvsp[(1) - (3)].value_list).len+1;
(yyval.value_list).cc = code_append((yyvsp[(1) - (3)].value_list).cc, (yyvsp[(3) - (3)].value).c);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2266 "parser.y"
+#line 2269 "parser.y"
{
MULTINAME(m, (yyvsp[(2) - (3)].classinfo));
(yyval.value).c = code_new();
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2290 "parser.y"
+#line 2293 "parser.y"
{
(yyval.value).c = (yyvsp[(1) - (4)].value).c;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2338 "parser.y"
+#line 2341 "parser.y"
{
if(!state->cls) syntaxerror("super() not allowed outside of a class");
if(!state->method) syntaxerror("super() not allowed outside of a function");
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2358 "parser.y"
+#line 2361 "parser.y"
{
(yyval.value).c = (yyvsp[(2) - (2)].value).c;
if((yyval.value).c->opcode == OPCODE_COERCE_A) {
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2379 "parser.y"
+#line 2382 "parser.y"
{
(yyval.code) = abc_returnvoid(0);
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2382 "parser.y"
+#line 2385 "parser.y"
{
(yyval.code) = (yyvsp[(2) - (2)].value).c;
(yyval.code) = abc_returnvalue((yyval.code));
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2389 "parser.y"
+#line 2392 "parser.y"
{(yyval.value)=(yyvsp[(1) - (1)].value);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2390 "parser.y"
+#line 2393 "parser.y"
{(yyval.value) = (yyvsp[(1) - (1)].value);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2391 "parser.y"
+#line 2394 "parser.y"
{
(yyval.value).c = (yyvsp[(1) - (3)].value).c;
(yyval.value).c = cut_last_push((yyval.value).c);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2397 "parser.y"
+#line 2400 "parser.y"
{
(yyval.code)=cut_last_push((yyvsp[(1) - (1)].value).c);
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2403 "parser.y"
+#line 2406 "parser.y"
{(yyval.value) = (yyvsp[(1) - (1)].value);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2407 "parser.y"
+#line 2410 "parser.y"
{(yyval.value) = (yyvsp[(1) - (1)].value);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2409 "parser.y"
+#line 2412 "parser.y"
{(yyval.value) = (yyvsp[(1) - (1)].value);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2411 "parser.y"
+#line 2414 "parser.y"
{(yyval.value) = (yyvsp[(1) - (1)].value);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2413 "parser.y"
+#line 2416 "parser.y"
{
(yyval.value).c = 0;
namespace_t ns = {ACCESS_PACKAGE, ""};
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2430 "parser.y"
+#line 2433 "parser.y"
{(yyval.value).c = abc_pushbyte(0, (yyvsp[(1) - (1)].number_uint));
//MULTINAME(m, registry_getintclass());
//$$.c = abc_coerce2($$.c, &m); // FIXME
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2435 "parser.y"
+#line 2438 "parser.y"
{(yyval.value).c = abc_pushshort(0, (yyvsp[(1) - (1)].number_uint));
(yyval.value).t = TYPE_INT;
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2438 "parser.y"
+#line 2441 "parser.y"
{(yyval.value).c = abc_pushint(0, (yyvsp[(1) - (1)].number_int));
(yyval.value).t = TYPE_INT;
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2441 "parser.y"
+#line 2444 "parser.y"
{(yyval.value).c = abc_pushuint(0, (yyvsp[(1) - (1)].number_uint));
(yyval.value).t = TYPE_UINT;
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2444 "parser.y"
+#line 2447 "parser.y"
{(yyval.value).c = abc_pushdouble(0, (yyvsp[(1) - (1)].number_float));
(yyval.value).t = TYPE_FLOAT;
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2447 "parser.y"
+#line 2450 "parser.y"
{(yyval.value).c = abc_pushstring2(0, &(yyvsp[(1) - (1)].str));
(yyval.value).t = TYPE_STRING;
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2450 "parser.y"
+#line 2453 "parser.y"
{(yyval.value).c = abc_pushundefined(0);
(yyval.value).t = TYPE_ANY;
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2453 "parser.y"
+#line 2456 "parser.y"
{(yyval.value).c = abc_pushtrue(0);
(yyval.value).t = TYPE_BOOLEAN;
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2456 "parser.y"
+#line 2459 "parser.y"
{(yyval.value).c = abc_pushfalse(0);
(yyval.value).t = TYPE_BOOLEAN;
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2459 "parser.y"
+#line 2462 "parser.y"
{(yyval.value).c = abc_pushnull(0);
(yyval.value).t = TYPE_NULL;
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2464 "parser.y"
+#line 2467 "parser.y"
{(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c);(yyval.value).c = abc_greaterequals((yyval.value).c);(yyval.value).c=abc_not((yyval.value).c);
(yyval.value).t = TYPE_BOOLEAN;
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2467 "parser.y"
+#line 2470 "parser.y"
{(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c);(yyval.value).c = abc_greaterthan((yyval.value).c);
(yyval.value).t = TYPE_BOOLEAN;
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2470 "parser.y"
+#line 2473 "parser.y"
{(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c);(yyval.value).c = abc_greaterthan((yyval.value).c);(yyval.value).c=abc_not((yyval.value).c);
(yyval.value).t = TYPE_BOOLEAN;
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2473 "parser.y"
+#line 2476 "parser.y"
{(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c);(yyval.value).c = abc_greaterequals((yyval.value).c);
(yyval.value).t = TYPE_BOOLEAN;
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2476 "parser.y"
+#line 2479 "parser.y"
{(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c);(yyval.value).c = abc_equals((yyval.value).c);
(yyval.value).t = TYPE_BOOLEAN;
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2479 "parser.y"
+#line 2482 "parser.y"
{(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c);(yyval.value).c = abc_strictequals((yyval.value).c);
(yyval.value).t = TYPE_BOOLEAN;
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2482 "parser.y"
+#line 2485 "parser.y"
{(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c);(yyval.value).c = abc_strictequals((yyval.value).c);(yyval.value).c = abc_not((yyval.value).c);
(yyval.value).t = TYPE_BOOLEAN;
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2485 "parser.y"
+#line 2488 "parser.y"
{(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c);(yyval.value).c = abc_equals((yyval.value).c);(yyval.value).c = abc_not((yyval.value).c);
(yyval.value).t = TYPE_BOOLEAN;
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2489 "parser.y"
+#line 2492 "parser.y"
{(yyval.value).t = join_types((yyvsp[(1) - (3)].value).t, (yyvsp[(3) - (3)].value).t, 'O');
(yyval.value).c = (yyvsp[(1) - (3)].value).c;
(yyval.value).c = converttype((yyval.value).c, (yyvsp[(1) - (3)].value).t, (yyval.value).t);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2500 "parser.y"
+#line 2503 "parser.y"
{
(yyval.value).t = join_types((yyvsp[(1) - (3)].value).t, (yyvsp[(3) - (3)].value).t, 'A');
/*printf("%08x:\n",$1.t);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2518 "parser.y"
+#line 2521 "parser.y"
{(yyval.value).c=(yyvsp[(2) - (2)].value).c;
(yyval.value).c = abc_not((yyval.value).c);
(yyval.value).t = TYPE_BOOLEAN;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2523 "parser.y"
+#line 2526 "parser.y"
{(yyval.value).c=(yyvsp[(2) - (2)].value).c;
(yyval.value).c = abc_bitnot((yyval.value).c);
(yyval.value).t = TYPE_INT;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2528 "parser.y"
+#line 2531 "parser.y"
{(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c);
(yyval.value).c = abc_bitand((yyval.value).c);
(yyval.value).t = TYPE_INT;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2533 "parser.y"
+#line 2536 "parser.y"
{(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c);
(yyval.value).c = abc_bitxor((yyval.value).c);
(yyval.value).t = TYPE_INT;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2538 "parser.y"
+#line 2541 "parser.y"
{(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c);
(yyval.value).c = abc_bitor((yyval.value).c);
(yyval.value).t = TYPE_INT;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2543 "parser.y"
+#line 2546 "parser.y"
{(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c);
(yyval.value).c = abc_rshift((yyval.value).c);
(yyval.value).t = TYPE_INT;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2547 "parser.y"
+#line 2550 "parser.y"
{(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c);
(yyval.value).c = abc_urshift((yyval.value).c);
(yyval.value).t = TYPE_INT;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2551 "parser.y"
+#line 2554 "parser.y"
{(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c);
(yyval.value).c = abc_lshift((yyval.value).c);
(yyval.value).t = TYPE_INT;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2556 "parser.y"
+#line 2559 "parser.y"
{(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c);
(yyval.value).c = abc_divide((yyval.value).c);
(yyval.value).t = TYPE_NUMBER;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2560 "parser.y"
+#line 2563 "parser.y"
{(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c);
(yyval.value).c = abc_modulo((yyval.value).c);
(yyval.value).t = TYPE_NUMBER;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2564 "parser.y"
+#line 2567 "parser.y"
{(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c);
if(BOTH_INT((yyvsp[(1) - (3)].value).t, (yyvsp[(3) - (3)].value).t)) {
(yyval.value).c = abc_add_i((yyval.value).c);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2573 "parser.y"
+#line 2576 "parser.y"
{(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c);
if(BOTH_INT((yyvsp[(1) - (3)].value).t,(yyvsp[(3) - (3)].value).t)) {
(yyval.value).c = abc_subtract_i((yyval.value).c);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2582 "parser.y"
+#line 2585 "parser.y"
{(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c);
if(BOTH_INT((yyvsp[(1) - (3)].value).t,(yyvsp[(3) - (3)].value).t)) {
(yyval.value).c = abc_multiply_i((yyval.value).c);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2592 "parser.y"
+#line 2595 "parser.y"
{(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c);
(yyval.value).c = abc_in((yyval.value).c);
(yyval.value).t = TYPE_BOOLEAN;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2597 "parser.y"
+#line 2600 "parser.y"
{char use_astype=0; // flash player's astype works differently than astypelate
if(use_astype && TYPE_IS_CLASS((yyvsp[(3) - (3)].value).t)) {
MULTINAME(m,(yyvsp[(3) - (3)].value).t->cls);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2610 "parser.y"
+#line 2613 "parser.y"
{(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c, (yyvsp[(3) - (3)].value).c);
(yyval.value).c = abc_instanceof((yyval.value).c);
(yyval.value).t = TYPE_BOOLEAN;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2615 "parser.y"
+#line 2618 "parser.y"
{(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c, (yyvsp[(3) - (3)].value).c);
(yyval.value).c = abc_istypelate((yyval.value).c);
(yyval.value).t = TYPE_BOOLEAN;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2620 "parser.y"
+#line 2623 "parser.y"
{
(yyval.value).c = (yyvsp[(3) - (4)].value).c;
(yyval.value).c = abc_typeof((yyval.value).c);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2626 "parser.y"
+#line 2629 "parser.y"
{
(yyval.value).c = cut_last_push((yyvsp[(2) - (2)].value).c);
(yyval.value).c = abc_pushundefined((yyval.value).c);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2632 "parser.y"
+#line 2635 "parser.y"
{ (yyval.value).c = abc_pushundefined(0);
(yyval.value).t = TYPE_ANY;
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2636 "parser.y"
+#line 2639 "parser.y"
{(yyval.value)=(yyvsp[(2) - (3)].value);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2638 "parser.y"
+#line 2641 "parser.y"
{
(yyval.value)=(yyvsp[(2) - (2)].value);
if(IS_INT((yyvsp[(2) - (2)].value).t)) {
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2649 "parser.y"
+#line 2652 "parser.y"
{
(yyval.value).c = (yyvsp[(1) - (4)].value).c;
(yyval.value).c = code_append((yyval.value).c, (yyvsp[(3) - (4)].value).c);
-
+
MULTINAME_LATE(m, (yyvsp[(1) - (4)].value).t?(yyvsp[(1) - (4)].value).t->access:ACCESS_PACKAGE, "");
(yyval.value).c = abc_getproperty2((yyval.value).c, &m);
(yyval.value).t = 0; // array elements have unknown type
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2658 "parser.y"
+#line 2661 "parser.y"
{
(yyval.value).c = code_new();
(yyval.value).c = code_append((yyval.value).c, (yyvsp[(2) - (3)].value_list).cc);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2665 "parser.y"
+#line 2668 "parser.y"
{(yyval.value_list).cc=0;(yyval.value_list).len=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2666 "parser.y"
+#line 2669 "parser.y"
{(yyval.value_list)=(yyvsp[(1) - (1)].value_list);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2668 "parser.y"
+#line 2671 "parser.y"
{
(yyval.value_list).cc = 0;
(yyval.value_list).cc = code_append((yyval.value_list).cc, (yyvsp[(1) - (3)].value).c);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2674 "parser.y"
+#line 2677 "parser.y"
{
(yyval.value_list).cc = (yyvsp[(1) - (5)].value_list).cc;
(yyval.value_list).len = (yyvsp[(1) - (5)].value_list).len+2;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2683 "parser.y"
+#line 2686 "parser.y"
{
(yyval.value).c = code_new();
(yyval.value).c = code_append((yyval.value).c, (yyvsp[(2) - (3)].value_list).cc);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2690 "parser.y"
+#line 2693 "parser.y"
{
code_t*c = (yyvsp[(3) - (3)].value).c;
if(BOTH_INT((yyvsp[(1) - (3)].value).t,(yyvsp[(3) - (3)].value).t)) {
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2702 "parser.y"
+#line 2705 "parser.y"
{
code_t*c = abc_modulo((yyvsp[(3) - (3)].value).c);
c=converttype(c, join_types((yyvsp[(1) - (3)].value).t, (yyvsp[(3) - (3)].value).t, '%'), (yyvsp[(1) - (3)].value).t);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2708 "parser.y"
+#line 2711 "parser.y"
{
code_t*c = abc_lshift((yyvsp[(3) - (3)].value).c);
c=converttype(c, join_types((yyvsp[(1) - (3)].value).t, (yyvsp[(3) - (3)].value).t, '<'), (yyvsp[(1) - (3)].value).t);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2714 "parser.y"
+#line 2717 "parser.y"
{
code_t*c = abc_rshift((yyvsp[(3) - (3)].value).c);
c=converttype(c, join_types((yyvsp[(1) - (3)].value).t, (yyvsp[(3) - (3)].value).t, '>'), (yyvsp[(1) - (3)].value).t);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2720 "parser.y"
+#line 2723 "parser.y"
{
code_t*c = abc_urshift((yyvsp[(3) - (3)].value).c);
c=converttype(c, join_types((yyvsp[(1) - (3)].value).t, (yyvsp[(3) - (3)].value).t, 'U'), (yyvsp[(1) - (3)].value).t);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2726 "parser.y"
+#line 2729 "parser.y"
{
code_t*c = abc_divide((yyvsp[(3) - (3)].value).c);
c=converttype(c, join_types((yyvsp[(1) - (3)].value).t, (yyvsp[(3) - (3)].value).t, '/'), (yyvsp[(1) - (3)].value).t);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2732 "parser.y"
+#line 2735 "parser.y"
{
code_t*c = abc_bitor((yyvsp[(3) - (3)].value).c);
c=converttype(c, TYPE_INT, (yyvsp[(1) - (3)].value).t);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2738 "parser.y"
+#line 2741 "parser.y"
{
code_t*c = (yyvsp[(3) - (3)].value).c;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2751 "parser.y"
+#line 2754 "parser.y"
{ code_t*c = (yyvsp[(3) - (3)].value).c;
if(TYPE_IS_INT((yyvsp[(1) - (3)].value).t)) {
c=abc_subtract_i(c);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2762 "parser.y"
+#line 2765 "parser.y"
{ code_t*c = 0;
c = code_append(c, (yyvsp[(3) - (3)].value).c);
c = converttype(c, (yyvsp[(3) - (3)].value).t, (yyvsp[(1) - (3)].value).t);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2769 "parser.y"
+#line 2772 "parser.y"
{
(yyval.value).t = join_types((yyvsp[(3) - (5)].value).t,(yyvsp[(5) - (5)].value).t,'?');
(yyval.value).c = (yyvsp[(1) - (5)].value).c;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2782 "parser.y"
+#line 2785 "parser.y"
{ code_t*c = 0;
classinfo_t*type = (yyvsp[(1) - (2)].value).t;
if((is_getlocal((yyvsp[(1) - (2)].value).c) && TYPE_IS_INT((yyvsp[(1) - (2)].value).t)) || TYPE_IS_NUMBER((yyvsp[(1) - (2)].value).t)) {
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2809 "parser.y"
+#line 2812 "parser.y"
{ code_t*c = 0;
classinfo_t*type = (yyvsp[(1) - (2)].value).t;
if(TYPE_IS_INT(type) || TYPE_IS_UINT(type)) {
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2823 "parser.y"
+#line 2826 "parser.y"
{ code_t*c = 0;
classinfo_t*type = (yyvsp[(2) - (2)].value).t;
if(TYPE_IS_INT(type) || TYPE_IS_UINT(type)) {
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2837 "parser.y"
+#line 2840 "parser.y"
{ code_t*c = 0;
classinfo_t*type = (yyvsp[(2) - (2)].value).t;
if(TYPE_IS_INT(type) || TYPE_IS_UINT(type)) {
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2852 "parser.y"
+#line 2855 "parser.y"
{ if(!state->cls->info)
syntaxerror("super keyword not allowed outside a class");
classinfo_t*t = state->cls->info->superclass;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2867 "parser.y"
+#line 2870 "parser.y"
{(yyval.value).c = (yyvsp[(1) - (3)].value).c;
classinfo_t*t = (yyvsp[(1) - (3)].value).t;
char is_static = 0;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2900 "parser.y"
+#line 2903 "parser.y"
{
(yyval.value).t = 0;
(yyval.value).c = 0;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2998 "parser.y"
+#line 3001 "parser.y"
{(yyval.code)=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2999 "parser.y"
+#line 3002 "parser.y"
{(yyval.code)=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3000 "parser.y"
+#line 3003 "parser.y"
{(yyval.code)=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3002 "parser.y"
+#line 3005 "parser.y"
{(yyval.token)=0;}
}
break;
/* Line 1464 of skeleton.m4 */
-#line 7114 "parser.tab.c"
+#line 7117 "parser.tab.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);