if(!state->method)
syntaxerror("internal error: skewed tokencount");
function_initvars(state->method, 0, 0, 0, 1);
- global->init = abc_initscript(global->file);
+ global->init = 0;
}
}
if(as3_pass==2) {
dict_del(global->file2token2info, current_filename);
code_t*header = method_header(state->method);
- code_t*c = wrap_function(header, 0, global->init->method->body->code);
- global->init->method->body->code = abc_returnvoid(c);
- free(state->method);state->method=0;
+ //if(global->init->method->body->code || global->init->traits) {
+ if(global->init) {
+ code_t*c = wrap_function(header, 0, global->init->method->body->code);
+ global->init->method->body->code = abc_returnvoid(c);
+ free(state->method);state->method=0;
+ }
}
//free(state->package);state->package=0; // used in registry
c = abc_pushnan(c);
} else if(TYPE_IS_BOOLEAN(type)) {
c = abc_pushfalse(c);
+ } else if(TYPE_IS_STRING(type)) {
+ c = abc_pushnull(c);
+ c = abc_coerce_s(c);
} else if(!type) {
//c = abc_pushundefined(c);
syntaxerror("internal error: can't generate default value for * type");
multiname_t mname = {QNAME, &mname_ns, 0, name};
f = abc_method_new(global->file, type2, 1);
+ if(!global->init) global->init = abc_initscript(global->file);
trait_t*t = trait_new_method(&global->init->traits, multiname_clone(&mname), f);
//abc_code_t*c = global->init->method->body->code;
}
if(TYPE_IS_STRING(to))
return abc_convert_s(c);
if(TYPE_IS_OBJECT(to))
- return abc_convert_o(c);
+ return abc_coerce2(c, &m);
+ if(TYPE_IS_OBJECT(from) && TYPE_IS_XMLLIST(to))
+ return abc_coerce2(c, &m);
+ if(TYPE_IS_OBJECT(from) && TYPE_IS_ARRAY(to))
+ return abc_coerce2(c, &m);
classinfo_t*supertype = from;
while(supertype) {
if(supertype == to) {
- // target type is one of from's superclasses
+ /* target type is one of from's superclasses.
+ (not sure we need this coerce - as far as the verifier
+ is concerned, object==object (i think) */
return abc_coerce2(c, &m);
}
int t=0;
return c;
}
-/* move to ast.c todo end */
+code_t* coerce_to_type(code_t*c, classinfo_t*t)
+{
+ if(!t) {
+ return abc_coerce_a(c);
+ } else if(TYPE_IS_STRING(t)) {
+ return abc_coerce_s(c);
+ } else {
+ MULTINAME(m, t);
+ return abc_coerce2(c, &m);
+ }
+}
char is_pushundefined(code_t*c)
{
/* Line 273 of skeleton.m4 */
-#line 1904 "parser.tab.c"
+#line 1927 "parser.tab.c"
/* Unqualified %code blocks. */
/* Line 274 of skeleton.m4 */
-#line 1981 "parser.y"
+#line 2008 "parser.y"
char is_subtype_of(classinfo_t*type, classinfo_t*supertype)
{
/* Line 274 of skeleton.m4 */
-#line 2431 "parser.y"
+#line 2458 "parser.y"
static void state_has_imports()
{
/* Line 274 of skeleton.m4 */
-#line 2564 "parser.y"
+#line 2591 "parser.y"
static int slotstate_varconst = 0;
static modifiers_t*slotstate_flags = 0;
code_t**code=0;
if(!state->cls) {
// global variable
+ if(!global->init) global->init = abc_initscript(global->file);
ns.name = state->package;
traits = &global->init->traits;
code = &global->init->method->body->code;
/* Line 274 of skeleton.m4 */
-#line 2748 "parser.y"
+#line 2776 "parser.y"
static int xml_level = 0;
/* Line 274 of skeleton.m4 */
-#line 3527 "parser.y"
+#line 3555 "parser.y"
node_t* resolve_identifier(char*name)
{
/* Line 274 of skeleton.m4 */
-#line 3669 "parser.y"
+#line 3697 "parser.y"
void add_active_url(const char*url)
{
/* Line 274 of skeleton.m4 */
-#line 2136 "parser.tab.c"
+#line 2160 "parser.tab.c"
#ifdef short
# undef short
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 1885, 1885, 1887, 1887, 1888, 1889, 1891, 1892, 1893,
- 1894, 1895, 1896, 1897, 1898, 1900, 1900, 1901, 1902, 1904,
- 1905, 1906, 1907, 1908, 1909, 1910, 1912, 1913, 1915, 1918,
- 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930,
- 1931, 1932, 1933, 1934, 1935, 1938, 1939, 1940, 1941, 1942,
- 1943, 1944, 1945, 1957, 1958, 1962, 1969, 1988, 1989, 1991,
- 1992, 1994, 1995, 1997, 2057, 2058, 2061, 2061, 2080, 2081,
- 2082, 2087, 2091, 2096, 2097, 2099, 2119, 2167, 2167, 2186,
- 2186, 2201, 2204, 2207, 2210, 2214, 2215, 2216, 2217, 2218,
- 2219, 2221, 2232, 2235, 2235, 2266, 2266, 2291, 2291, 2307,
- 2308, 2309, 2310, 2318, 2327, 2327, 2376, 2380, 2391, 2401,
- 2418, 2419, 2420, 2421, 2423, 2424, 2426, 2426, 2428, 2428,
- 2451, 2465, 2481, 2482, 2483, 2484, 2491, 2492, 2493, 2494,
- 2495, 2496, 2497, 2498, 2499, 2500, 2504, 2505, 2507, 2508,
- 2510, 2511, 2515, 2513, 2521, 2519, 2528, 2529, 2530, 2531,
- 2532, 2533, 2534, 2535, 2537, 2543, 2544, 2545, 2546, 2547,
- 2548, 2551, 2623, 2623, 2625, 2625, 2627, 2628, 2630, 2714,
- 2715, 2724, 2725, 2728, 2729, 2730, 2731, 2732, 2733, 2734,
- 2752, 2754, 2755, 2756, 2758, 2758, 2762, 2762, 2766, 2767,
- 2770, 2771, 2773, 2774, 2776, 2777, 2779, 2783, 2786, 2791,
- 2792, 2793, 2794, 2796, 2799, 2803, 2806, 2809, 2819, 2823,
- 2829, 2835, 2843, 2848, 2854, 2862, 2870, 2871, 2872, 2875,
- 2874, 2891, 2892, 2894, 2893, 2917, 2936, 2950, 2951, 2953,
- 2954, 2956, 2957, 2958, 2967, 2968, 2972, 2973, 2975, 2976,
- 2977, 2979, 2983, 2984, 2989, 2990, 3034, 3084, 3105, 3127,
- 3130, 3137, 3140, 3143, 3146, 3149, 3152, 3157, 3158, 3160,
- 3161, 3162, 3163, 3164, 3166, 3172, 3181, 3182, 3183, 3184,
- 3185, 3186, 3188, 3192, 3204, 3222, 3233, 3243, 3252, 3253,
- 3254, 3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262, 3263,
- 3264, 3265, 3266, 3267, 3268, 3269, 3270, 3271, 3272, 3273,
- 3274, 3275, 3276, 3277, 3278, 3279, 3280, 3281, 3282, 3283,
- 3284, 3285, 3286, 3287, 3288, 3289, 3290, 3291, 3292, 3293,
- 3294, 3295, 3296, 3297, 3299, 3300, 3301, 3302, 3304, 3319,
- 3327, 3327, 3381, 3382, 3383, 3384, 3385, 3393, 3411, 3418,
- 3429, 3436, 3443, 3453, 3464, 3642, 3678, 3685, 3692, 3699,
- 3721, 3726
+ 0, 1908, 1908, 1910, 1910, 1911, 1912, 1914, 1915, 1916,
+ 1917, 1918, 1919, 1920, 1921, 1923, 1923, 1924, 1925, 1927,
+ 1928, 1929, 1930, 1931, 1932, 1933, 1935, 1936, 1938, 1941,
+ 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953,
+ 1954, 1955, 1956, 1957, 1958, 1961, 1962, 1963, 1964, 1965,
+ 1966, 1967, 1968, 1980, 1981, 1985, 1996, 2015, 2016, 2018,
+ 2019, 2021, 2022, 2024, 2084, 2085, 2088, 2088, 2107, 2108,
+ 2109, 2114, 2118, 2123, 2124, 2126, 2146, 2194, 2194, 2213,
+ 2213, 2228, 2231, 2234, 2237, 2241, 2242, 2243, 2244, 2245,
+ 2246, 2248, 2259, 2262, 2262, 2293, 2293, 2318, 2318, 2334,
+ 2335, 2336, 2337, 2345, 2354, 2354, 2403, 2407, 2418, 2428,
+ 2445, 2446, 2447, 2448, 2450, 2451, 2453, 2453, 2455, 2455,
+ 2478, 2492, 2508, 2509, 2510, 2511, 2518, 2519, 2520, 2521,
+ 2522, 2523, 2524, 2525, 2526, 2527, 2531, 2532, 2534, 2535,
+ 2537, 2538, 2542, 2540, 2548, 2546, 2555, 2556, 2557, 2558,
+ 2559, 2560, 2561, 2562, 2564, 2570, 2571, 2572, 2573, 2574,
+ 2575, 2578, 2651, 2651, 2653, 2653, 2655, 2656, 2658, 2742,
+ 2743, 2752, 2753, 2756, 2757, 2758, 2759, 2760, 2761, 2762,
+ 2780, 2782, 2783, 2784, 2786, 2786, 2790, 2790, 2794, 2795,
+ 2798, 2799, 2801, 2802, 2804, 2805, 2807, 2811, 2814, 2819,
+ 2820, 2821, 2822, 2824, 2827, 2831, 2834, 2837, 2847, 2851,
+ 2857, 2863, 2871, 2876, 2882, 2890, 2898, 2899, 2900, 2903,
+ 2902, 2919, 2920, 2922, 2921, 2945, 2964, 2978, 2979, 2981,
+ 2982, 2984, 2985, 2986, 2995, 2996, 3000, 3001, 3003, 3004,
+ 3005, 3007, 3011, 3012, 3017, 3018, 3062, 3112, 3133, 3155,
+ 3158, 3165, 3168, 3171, 3174, 3177, 3180, 3185, 3186, 3188,
+ 3189, 3190, 3191, 3192, 3194, 3200, 3209, 3210, 3211, 3212,
+ 3213, 3214, 3216, 3220, 3232, 3250, 3261, 3271, 3280, 3281,
+ 3282, 3283, 3284, 3285, 3286, 3287, 3288, 3289, 3290, 3291,
+ 3292, 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300, 3301,
+ 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311,
+ 3312, 3313, 3314, 3315, 3316, 3317, 3318, 3319, 3320, 3321,
+ 3322, 3323, 3324, 3325, 3327, 3328, 3329, 3330, 3332, 3347,
+ 3355, 3355, 3409, 3410, 3411, 3412, 3413, 3421, 3439, 3446,
+ 3457, 3464, 3471, 3481, 3492, 3670, 3706, 3713, 3720, 3727,
+ 3749, 3754
};
#endif
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1897 "parser.y"
+#line 1920 "parser.y"
{PASS_ALWAYS as3_pass=(yyvsp[(1) - (4)].number_int);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1909 "parser.y"
+#line 1932 "parser.y"
{PASS_ALWAYS as3_pass=(yyvsp[(1) - (4)].number_int);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1912 "parser.y"
+#line 1935 "parser.y"
{(yyval.code)=(yyvsp[(1) - (1)].code);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1913 "parser.y"
+#line 1936 "parser.y"
{(yyval.code)=code_new();}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1915 "parser.y"
+#line 1938 "parser.y"
{
(yyval.code)=code_append((yyvsp[(1) - (2)].code),(yyvsp[(2) - (2)].code));
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1918 "parser.y"
+#line 1941 "parser.y"
{(yyval.code)=(yyvsp[(1) - (1)].code);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1934 "parser.y"
+#line 1957 "parser.y"
{(yyval.code)=(yyvsp[(2) - (3)].code);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1935 "parser.y"
+#line 1958 "parser.y"
{(yyval.code)=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1938 "parser.y"
+#line 1961 "parser.y"
{(yyval.code)=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1945 "parser.y"
+#line 1968 "parser.y"
{
PASS_ALWAYS
if(as3_pass) {
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1957 "parser.y"
+#line 1980 "parser.y"
{(yyval.code)=(yyvsp[(1) - (2)].code);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1958 "parser.y"
+#line 1981 "parser.y"
{(yyval.code)=(yyvsp[(1) - (1)].code);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1962 "parser.y"
+#line 1985 "parser.y"
{
- code_t**cc = &global->init->method->body->code;
- *cc = code_append(*cc, (yyvsp[(1) - (1)].code));
+ if((yyvsp[(1) - (1)].code)) {
+ if(!global->init)
+ global->init = abc_initscript(global->file);
+ code_t**cc = &global->init->method->body->code;
+ *cc = code_append(*cc, (yyvsp[(1) - (1)].code));
+ }
}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1969 "parser.y"
+#line 1996 "parser.y"
{
PASS12
(yyval.number_int)=as3_pass;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1988 "parser.y"
+#line 2015 "parser.y"
{(yyval.node)=(yyvsp[(2) - (2)].node);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1989 "parser.y"
+#line 2016 "parser.y"
{(yyval.node)=mkdummynode();}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1991 "parser.y"
+#line 2018 "parser.y"
{(yyval.code)=(yyvsp[(2) - (2)].code);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1992 "parser.y"
+#line 2019 "parser.y"
{(yyval.code)=(yyvsp[(2) - (2)].code);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1994 "parser.y"
+#line 2021 "parser.y"
{(yyval.code) = (yyvsp[(1) - (1)].code);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1995 "parser.y"
+#line 2022 "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 1998 "parser.y"
+#line 2025 "parser.y"
{
PASS12
if(variable_exists((yyvsp[(1) - (3)].id)))
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2057 "parser.y"
+#line 2084 "parser.y"
{(yyval.code) = code_new();}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2058 "parser.y"
+#line 2085 "parser.y"
{(yyval.code)=(yyvsp[(2) - (2)].code);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2061 "parser.y"
+#line 2088 "parser.y"
{PASS12 new_state();}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2061 "parser.y"
+#line 2088 "parser.y"
{
(yyval.code) = code_new();
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2080 "parser.y"
+#line 2107 "parser.y"
{(yyval.code)=code_new();}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2087 "parser.y"
+#line 2114 "parser.y"
{
PASS1 (yyval.id)=(yyvsp[(2) - (3)].id);new_variable((yyvsp[(2) - (3)].id),0,1,0);
PASS2 (yyval.id)=(yyvsp[(2) - (3)].id);new_variable((yyvsp[(2) - (3)].id),(yyvsp[(3) - (3)].classinfo),1,0);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2091 "parser.y"
+#line 2118 "parser.y"
{
PASS12
(yyval.id)=(yyvsp[(1) - (1)].id);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2096 "parser.y"
+#line 2123 "parser.y"
{PASS12 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 2097 "parser.y"
+#line 2124 "parser.y"
{PASS12 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 2099 "parser.y"
+#line 2126 "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 2119 "parser.y"
+#line 2146 "parser.y"
{
variable_t*var = find_variable(state, (yyvsp[(2) - (6)].id));
if(!var) {
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2167 "parser.y"
+#line 2194 "parser.y"
{PASS12 new_state();}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2167 "parser.y"
+#line 2194 "parser.y"
{
(yyval.code) = code_new();
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2186 "parser.y"
+#line 2213 "parser.y"
{PASS12 new_state();}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2186 "parser.y"
+#line 2213 "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 2201 "parser.y"
+#line 2228 "parser.y"
{
(yyval.code) = abc___break__(0, "");
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2204 "parser.y"
+#line 2231 "parser.y"
{
(yyval.code) = abc___break__(0, (yyvsp[(2) - (2)].id));
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2207 "parser.y"
+#line 2234 "parser.y"
{
(yyval.code) = abc___continue__(0, "");
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2210 "parser.y"
+#line 2237 "parser.y"
{
(yyval.code) = abc___continue__(0, (yyvsp[(2) - (2)].id));
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2214 "parser.y"
+#line 2241 "parser.y"
{(yyval.code)=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2215 "parser.y"
+#line 2242 "parser.y"
{(yyval.code)=(yyvsp[(1) - (1)].code);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2216 "parser.y"
+#line 2243 "parser.y"
{(yyval.code)=(yyvsp[(1) - (1)].code);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2217 "parser.y"
+#line 2244 "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 2218 "parser.y"
+#line 2245 "parser.y"
{(yyval.code)=(yyvsp[(1) - (1)].code);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2219 "parser.y"
+#line 2246 "parser.y"
{(yyval.code)=code_append((yyval.code),(yyvsp[(2) - (2)].code));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2221 "parser.y"
+#line 2248 "parser.y"
{
(yyval.code) = abc_getlocal(0, state->switch_var);
(yyval.code) = code_append((yyval.code), node_read((yyvsp[(2) - (4)].node)).c);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2232 "parser.y"
+#line 2259 "parser.y"
{
(yyval.code) = (yyvsp[(3) - (3)].code);
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2235 "parser.y"
+#line 2262 "parser.y"
{PASS12 new_state();state->switch_var=alloc_local();}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2235 "parser.y"
+#line 2262 "parser.y"
{
(yyval.code) = node_read((yyvsp[(4) - (8)].node)).c;
(yyval.code) = abc_setlocal((yyval.code), state->switch_var);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2266 "parser.y"
+#line 2293 "parser.y"
{PASS12 new_state();
state->exception_name=(yyvsp[(3) - (5)].id);
PASS1 new_variable((yyvsp[(3) - (5)].id), 0, 0, 0);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2271 "parser.y"
+#line 2298 "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 2291 "parser.y"
+#line 2318 "parser.y"
{PASS12 new_state();state->exception_name=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2291 "parser.y"
+#line 2318 "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 2307 "parser.y"
+#line 2334 "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 2308 "parser.y"
+#line 2335 "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 2309 "parser.y"
+#line 2336 "parser.y"
{(yyval.catch_list)=(yyvsp[(1) - (1)].catch_list);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2310 "parser.y"
+#line 2337 "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 2318 "parser.y"
+#line 2345 "parser.y"
{
(yyval.catch_list).l=list_new();
(yyval.catch_list).finally = 0;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2327 "parser.y"
+#line 2354 "parser.y"
{PASS12 new_state();
state->method->has_exceptions=1;
state->method->late_binding=1;//for invariant scope_code
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2330 "parser.y"
+#line 2357 "parser.y"
{
code_t*out = abc_nop(0);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2376 "parser.y"
+#line 2403 "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 2380 "parser.y"
+#line 2407 "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 2391 "parser.y"
+#line 2418 "parser.y"
{
new_state();
if(state->method->has_exceptions) {
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2401 "parser.y"
+#line 2428 "parser.y"
{
/* remove getlocal;pushwith from scope code again */
state->method->scope_code = code_cutlast(code_cutlast(state->method->scope_code));
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2419 "parser.y"
+#line 2446 "parser.y"
{PASS12 (yyval.id)="package";}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2420 "parser.y"
+#line 2447 "parser.y"
{PASS12 (yyval.id)="namespace";}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2421 "parser.y"
+#line 2448 "parser.y"
{PASS12 (yyval.id)=(yyvsp[(1) - (1)].id);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2423 "parser.y"
+#line 2450 "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 2424 "parser.y"
+#line 2451 "parser.y"
{PASS12 (yyval.id)=strdup((yyvsp[(1) - (1)].id));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2426 "parser.y"
+#line 2453 "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 2427 "parser.y"
+#line 2454 "parser.y"
{PASS12 endpackage();(yyval.code)=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2428 "parser.y"
+#line 2455 "parser.y"
{PASS12 startpackage("");}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2429 "parser.y"
+#line 2456 "parser.y"
{PASS12 endpackage();(yyval.code)=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2451 "parser.y"
+#line 2478 "parser.y"
{
PASS12
slotinfo_t*s = registry_find((yyvsp[(2) - (2)].classinfo)->package, (yyvsp[(2) - (2)].classinfo)->name);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2465 "parser.y"
+#line 2492 "parser.y"
{
PASS12
if(strncmp("flash.", (yyvsp[(2) - (4)].id), 6) && as3_pass==1) {
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2481 "parser.y"
+#line 2508 "parser.y"
{PASS12 (yyval.flags).flags=0;(yyval.flags).ns=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2482 "parser.y"
+#line 2509 "parser.y"
{PASS12 (yyval.flags)=(yyvsp[(1) - (1)].flags);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2483 "parser.y"
+#line 2510 "parser.y"
{PASS12 (yyval.flags)=(yyvsp[(1) - (1)].flags);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2484 "parser.y"
+#line 2511 "parser.y"
{
PASS12
(yyval.flags).flags=(yyvsp[(1) - (2)].flags).flags|(yyvsp[(2) - (2)].flags).flags;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2491 "parser.y"
+#line 2518 "parser.y"
{PASS12 (yyval.flags).flags=FLAG_PUBLIC;(yyval.flags).ns=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2492 "parser.y"
+#line 2519 "parser.y"
{PASS12 (yyval.flags).flags=FLAG_PRIVATE;(yyval.flags).ns=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2493 "parser.y"
+#line 2520 "parser.y"
{PASS12 (yyval.flags).flags=FLAG_PROTECTED;(yyval.flags).ns=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2494 "parser.y"
+#line 2521 "parser.y"
{PASS12 (yyval.flags).flags=FLAG_STATIC;(yyval.flags).ns=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2495 "parser.y"
+#line 2522 "parser.y"
{PASS12 (yyval.flags).flags=FLAG_DYNAMIC;(yyval.flags).ns=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2496 "parser.y"
+#line 2523 "parser.y"
{PASS12 (yyval.flags).flags=FLAG_FINAL;(yyval.flags).ns=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2497 "parser.y"
+#line 2524 "parser.y"
{PASS12 (yyval.flags).flags=FLAG_OVERRIDE;(yyval.flags).ns=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2498 "parser.y"
+#line 2525 "parser.y"
{PASS12 (yyval.flags).flags=FLAG_NATIVE;(yyval.flags).ns=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2499 "parser.y"
+#line 2526 "parser.y"
{PASS12 (yyval.flags).flags=FLAG_PACKAGEINTERNAL;(yyval.flags).ns=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2500 "parser.y"
+#line 2527 "parser.y"
{PASS12 (yyval.flags).flags=FLAG_NAMESPACE;
(yyval.flags).ns=(yyvsp[(1) - (1)].id);
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2504 "parser.y"
+#line 2531 "parser.y"
{PASS12 (yyval.classinfo)=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2505 "parser.y"
+#line 2532 "parser.y"
{PASS12 (yyval.classinfo)=(yyvsp[(2) - (2)].classinfo);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2507 "parser.y"
+#line 2534 "parser.y"
{PASS12 (yyval.classinfo_list)=list_new();}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2508 "parser.y"
+#line 2535 "parser.y"
{PASS12 (yyval.classinfo_list)=(yyvsp[(2) - (2)].classinfo_list);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2510 "parser.y"
+#line 2537 "parser.y"
{PASS12 (yyval.classinfo_list)=list_new();}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2511 "parser.y"
+#line 2538 "parser.y"
{PASS12 (yyval.classinfo_list)=(yyvsp[(2) - (2)].classinfo_list);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2515 "parser.y"
+#line 2542 "parser.y"
{PASS12 startclass(&(yyvsp[(1) - (6)].flags),(yyvsp[(3) - (6)].id),(yyvsp[(4) - (6)].classinfo),(yyvsp[(5) - (6)].classinfo_list));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2517 "parser.y"
+#line 2544 "parser.y"
{PASS12 endclass();(yyval.code)=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2521 "parser.y"
+#line 2548 "parser.y"
{PASS12 (yyvsp[(1) - (5)].flags).flags|=FLAG_INTERFACE;
startclass(&(yyvsp[(1) - (5)].flags),(yyvsp[(3) - (5)].id),0,(yyvsp[(4) - (5)].classinfo_list));}
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2524 "parser.y"
+#line 2551 "parser.y"
{PASS12 endclass();(yyval.code)=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2533 "parser.y"
+#line 2560 "parser.y"
{PASS_ALWAYS as3_pass=(yyvsp[(1) - (4)].number_int);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2537 "parser.y"
+#line 2564 "parser.y"
{
code_t*c = state->cls->static_init->header;
c = code_append(c, (yyvsp[(1) - (1)].code));
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2548 "parser.y"
+#line 2575 "parser.y"
{
syntaxerror("variable declarations not allowed in interfaces");
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2551 "parser.y"
+#line 2578 "parser.y"
{
PASS12
(yyvsp[(1) - (8)].flags).flags |= FLAG_PUBLIC;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2625 "parser.y"
+#line 2653 "parser.y"
{PASS12 setslotstate(&(yyvsp[(1) - (2)].flags),(yyvsp[(2) - (2)].token));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2625 "parser.y"
+#line 2653 "parser.y"
{PASS12 (yyval.code)=(yyvsp[(4) - (4)].code);setslotstate(0, 0);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2627 "parser.y"
+#line 2655 "parser.y"
{PASS12 (yyval.code)=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2628 "parser.y"
+#line 2656 "parser.y"
{PASS12 (yyval.code)=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2631 "parser.y"
+#line 2659 "parser.y"
{
PASS12
int flags = slotstate_flags->flags;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2714 "parser.y"
+#line 2742 "parser.y"
{(yyval.constant)=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2715 "parser.y"
+#line 2743 "parser.y"
{
(yyval.constant) = malloc(sizeof(constant_t));
*(yyval.constant) = node_eval((yyvsp[(2) - (2)].node));
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2724 "parser.y"
+#line 2752 "parser.y"
{(yyval.constant) = constant_new_int((yyvsp[(1) - (1)].number_int));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2725 "parser.y"
+#line 2753 "parser.y"
{
(yyval.constant) = constant_new_uint((yyvsp[(1) - (1)].number_uint));
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2728 "parser.y"
+#line 2756 "parser.y"
{(yyval.constant) = constant_new_float((yyvsp[(1) - (1)].number_float));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2729 "parser.y"
+#line 2757 "parser.y"
{(yyval.constant) = constant_new_string2((yyvsp[(1) - (1)].str).str,(yyvsp[(1) - (1)].str).len);free((char*)(yyvsp[(1) - (1)].str).str);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2730 "parser.y"
+#line 2758 "parser.y"
{(yyval.constant) = constant_new_true((yyvsp[(1) - (1)].token));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2731 "parser.y"
+#line 2759 "parser.y"
{(yyval.constant) = constant_new_false((yyvsp[(1) - (1)].token));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2732 "parser.y"
+#line 2760 "parser.y"
{(yyval.constant) = constant_new_null((yyvsp[(1) - (1)].token));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2733 "parser.y"
+#line 2761 "parser.y"
{(yyval.constant) = constant_new_undefined((yyvsp[(1) - (1)].token));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2734 "parser.y"
+#line 2762 "parser.y"
{(yyval.constant) = constant_new_float(__builtin_nan(""));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2754 "parser.y"
+#line 2782 "parser.y"
{PASS_ALWAYS if(!xml_level++) tokenizer_begin_xml();}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2755 "parser.y"
+#line 2783 "parser.y"
{PASS_ALWAYS tokenizer_begin_xmltext();}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2756 "parser.y"
+#line 2784 "parser.y"
{PASS_ALWAYS if(!--xml_level) tokenizer_end_xml(); else tokenizer_begin_xmltext();}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2758 "parser.y"
+#line 2786 "parser.y"
{PASS_ALWAYS tokenizer_begin_xmltext();}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2758 "parser.y"
+#line 2786 "parser.y"
{
(yyval.id)=strdup("{...}");
as3_warning("xml string substitution not yet supported");
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2762 "parser.y"
+#line 2790 "parser.y"
{PASS_ALWAYS tokenizer_begin_xml();}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2762 "parser.y"
+#line 2790 "parser.y"
{
(yyval.id)=strdup("{...}");
as3_warning("xml string substitution not yet supported");
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2766 "parser.y"
+#line 2794 "parser.y"
{(yyval.id)="";}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2767 "parser.y"
+#line 2795 "parser.y"
{
(yyval.id) = concat2((yyvsp[(1) - (2)].id), "{...}");
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2770 "parser.y"
+#line 2798 "parser.y"
{(yyval.id)=concat2((yyvsp[(1) - (2)].id), string_cstr(&(yyvsp[(2) - (2)].str)));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2771 "parser.y"
+#line 2799 "parser.y"
{(yyval.id)=concat2((yyvsp[(1) - (2)].id), ">");}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2773 "parser.y"
+#line 2801 "parser.y"
{(yyval.id)=concat2((yyvsp[(1) - (2)].id),(yyvsp[(2) - (2)].id));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2774 "parser.y"
+#line 2802 "parser.y"
{(yyval.id)=concat3((yyvsp[(1) - (3)].id),(yyvsp[(2) - (3)].id),(yyvsp[(3) - (3)].id));free((yyvsp[(1) - (3)].id));free((yyvsp[(2) - (3)].id));free((yyvsp[(3) - (3)].id));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2776 "parser.y"
+#line 2804 "parser.y"
{(yyval.id)=(yyvsp[(1) - (1)].id);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2777 "parser.y"
+#line 2805 "parser.y"
{(yyval.id)=(yyvsp[(1) - (1)].id);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2779 "parser.y"
+#line 2807 "parser.y"
{
(yyval.id) = allocprintf("<%s%s>%s</%s>", (yyvsp[(2) - (10)].id), (yyvsp[(3) - (10)].id), (yyvsp[(5) - (10)].id), (yyvsp[(8) - (10)].id));
free((yyvsp[(2) - (10)].id));free((yyvsp[(3) - (10)].id));free((yyvsp[(5) - (10)].id));free((yyvsp[(8) - (10)].id));
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2783 "parser.y"
+#line 2811 "parser.y"
{
(yyval.id) = allocprintf("<%s%s/>", (yyvsp[(2) - (6)].id), (yyvsp[(3) - (6)].id));
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2786 "parser.y"
+#line 2814 "parser.y"
{
(yyval.id) = allocprintf("<%s%s>%s%s</%s>", (yyvsp[(2) - (11)].id), (yyvsp[(3) - (11)].id), (yyvsp[(5) - (11)].id), (yyvsp[(6) - (11)].id), (yyvsp[(9) - (11)].id));
free((yyvsp[(2) - (11)].id));free((yyvsp[(3) - (11)].id));free((yyvsp[(5) - (11)].id));free((yyvsp[(6) - (11)].id));free((yyvsp[(9) - (11)].id));
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2791 "parser.y"
+#line 2819 "parser.y"
{(yyval.id)=strdup("");}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2792 "parser.y"
+#line 2820 "parser.y"
{(yyval.id)=concat2(" ",(yyvsp[(1) - (1)].id));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2793 "parser.y"
+#line 2821 "parser.y"
{(yyval.id)=(yyvsp[(1) - (1)].id);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2794 "parser.y"
+#line 2822 "parser.y"
{(yyval.id)=concat3((yyvsp[(1) - (2)].id)," ",(yyvsp[(2) - (2)].id));free((yyvsp[(1) - (2)].id));free((yyvsp[(2) - (2)].id));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2796 "parser.y"
+#line 2824 "parser.y"
{
(yyval.id) = strdup("{...}");
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2799 "parser.y"
+#line 2827 "parser.y"
{
char* str = string_cstr(&(yyvsp[(3) - (3)].str));
(yyval.id) = concat2("{...}=",str);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2803 "parser.y"
+#line 2831 "parser.y"
{
(yyval.id) = strdup("{...}={...}");
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2806 "parser.y"
+#line 2834 "parser.y"
{
(yyval.id) = concat2((yyvsp[(1) - (3)].id),"={...}");
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2809 "parser.y"
+#line 2837 "parser.y"
{
char* str = string_cstr(&(yyvsp[(3) - (3)].str));
(yyval.id)=allocprintf("%s=%s", (yyvsp[(1) - (3)].id),str);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2819 "parser.y"
+#line 2847 "parser.y"
{
PASS12
memset(&(yyval.params),0,sizeof((yyval.params)));
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2823 "parser.y"
+#line 2851 "parser.y"
{
PASS12
(yyval.params)=(yyvsp[(1) - (1)].params);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2829 "parser.y"
+#line 2857 "parser.y"
{
PASS12
memset(&(yyval.params),0,sizeof((yyval.params)));
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2835 "parser.y"
+#line 2863 "parser.y"
{
PASS12
(yyval.params) =(yyvsp[(1) - (4)].params);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2843 "parser.y"
+#line 2871 "parser.y"
{
PASS12
(yyval.params) = (yyvsp[(1) - (3)].params);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2848 "parser.y"
+#line 2876 "parser.y"
{
PASS12
memset(&(yyval.params),0,sizeof((yyval.params)));
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2854 "parser.y"
+#line 2882 "parser.y"
{
PASS12
(yyval.param) = rfx_calloc(sizeof(param_t));
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2862 "parser.y"
+#line 2890 "parser.y"
{
PASS12
(yyval.param) = rfx_calloc(sizeof(param_t));
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2872 "parser.y"
+#line 2900 "parser.y"
{PASS12 (yyval.token)=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2875 "parser.y"
+#line 2903 "parser.y"
{PASS12 startfunction(&(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 2876 "parser.y"
+#line 2904 "parser.y"
{
PASS1
endfunction(&(yyvsp[(1) - (12)].flags),(yyvsp[(3) - (12)].token),(yyvsp[(4) - (12)].id),&(yyvsp[(6) - (12)].params),0,0);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2892 "parser.y"
+#line 2920 "parser.y"
{PASS12 (yyval.id)=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2894 "parser.y"
+#line 2922 "parser.y"
{PASS12 innerfunction((yyvsp[(2) - (7)].id),&(yyvsp[(4) - (7)].params),(yyvsp[(6) - (7)].classinfo));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2895 "parser.y"
+#line 2923 "parser.y"
{
PASS1
endfunction(0,0,(yyvsp[(2) - (10)].id),&(yyvsp[(4) - (10)].params),0,0);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2917 "parser.y"
+#line 2945 "parser.y"
{
PASS1 NEW(unresolvedinfo_t,c);
memset(c, 0, sizeof(*c));
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2936 "parser.y"
+#line 2964 "parser.y"
{
PASS1 NEW(unresolvedinfo_t,c);
memset(c, 0, sizeof(*c));
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2953 "parser.y"
+#line 2981 "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 2954 "parser.y"
+#line 2982 "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 2956 "parser.y"
+#line 2984 "parser.y"
{PASS12 (yyval.classinfo)=(yyvsp[(1) - (1)].classinfo);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2957 "parser.y"
+#line 2985 "parser.y"
{PASS12 (yyval.classinfo)=TYPE_ANY;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2958 "parser.y"
+#line 2986 "parser.y"
{PASS12 (yyval.classinfo)=TYPE_VOID;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2967 "parser.y"
+#line 2995 "parser.y"
{PASS12 (yyval.classinfo)=(yyvsp[(2) - (2)].classinfo);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2968 "parser.y"
+#line 2996 "parser.y"
{PASS12 (yyval.classinfo)=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2972 "parser.y"
+#line 3000 "parser.y"
{(yyval.value_list).cc=0;(yyval.value_list).number=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2973 "parser.y"
+#line 3001 "parser.y"
{(yyval.value_list)=(yyvsp[(2) - (3)].value_list);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2975 "parser.y"
+#line 3003 "parser.y"
{(yyval.value_list).cc=0;(yyval.value_list).number=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2979 "parser.y"
+#line 3007 "parser.y"
{(yyval.value_list).number=1;
(yyval.value_list).cc = (yyvsp[(1) - (1)].value).c;
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2983 "parser.y"
+#line 3011 "parser.y"
{(yyval.value_list) = (yyvsp[(1) - (2)].value_list);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2984 "parser.y"
+#line 3012 "parser.y"
{
(yyval.value_list).number= (yyvsp[(1) - (2)].value_list).number+1;
(yyval.value_list).cc = code_append((yyvsp[(1) - (2)].value_list).cc, (yyvsp[(2) - (2)].value).c);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2990 "parser.y"
+#line 3018 "parser.y"
{
typedcode_t v = node_read((yyvsp[(2) - (4)].node));
(yyval.value).c = v.c;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3034 "parser.y"
+#line 3062 "parser.y"
{
typedcode_t v = node_read((yyvsp[(1) - (4)].node));
// calling a class is like a typecast
(yyval.value).t = (classinfo_t*)v.t->data;
} else {
- (yyval.value).c = abc_coerce_a((yyval.value).c);
(yyval.value).t = TYPE_ANY;
+ (yyval.value).c = abc_coerce_a((yyval.value).c);
}
}
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3084 "parser.y"
+#line 3112 "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 3105 "parser.y"
+#line 3133 "parser.y"
{
typedcode_t v = node_read((yyvsp[(2) - (2)].node));
(yyval.value).c = v.c;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3127 "parser.y"
+#line 3155 "parser.y"
{
(yyval.code) = abc_returnvoid(0);
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3130 "parser.y"
+#line 3158 "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 3137 "parser.y"
+#line 3165 "parser.y"
{
(yyval.value) = node_read((yyvsp[(1) - (1)].node));
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3140 "parser.y"
+#line 3168 "parser.y"
{
(yyval.value) = node_read((yyvsp[(1) - (1)].node));
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3143 "parser.y"
+#line 3171 "parser.y"
{
(yyval.node) = mkmultinode(&node_comma, (yyvsp[(1) - (1)].node));
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3146 "parser.y"
+#line 3174 "parser.y"
{
(yyval.node) = multinode_extend((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3149 "parser.y"
+#line 3177 "parser.y"
{
(yyval.code) = node_exec((yyvsp[(1) - (1)].node));
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3152 "parser.y"
+#line 3180 "parser.y"
{
(yyval.code) = (yyvsp[(1) - (3)].code);
(yyval.code) = code_append((yyval.code), node_exec((yyvsp[(3) - (3)].node)));
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3157 "parser.y"
+#line 3185 "parser.y"
{(yyval.value_list).cc=0;(yyval.value_list).number=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3158 "parser.y"
+#line 3186 "parser.y"
{(yyval.value_list)=(yyvsp[(1) - (1)].value_list);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3160 "parser.y"
+#line 3188 "parser.y"
{(yyval.code)=abc_pushstring(0,(yyvsp[(1) - (1)].id));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3161 "parser.y"
+#line 3189 "parser.y"
{(yyval.code)=abc_pushstring2(0,&(yyvsp[(1) - (1)].str));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3162 "parser.y"
+#line 3190 "parser.y"
{syntaxerror("dictionary keys must be strings");}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3163 "parser.y"
+#line 3191 "parser.y"
{syntaxerror("dictionary keys must be strings");}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3164 "parser.y"
+#line 3192 "parser.y"
{syntaxerror("dictionary keys must be strings");}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3166 "parser.y"
+#line 3194 "parser.y"
{
(yyval.value_list).cc = 0;
(yyval.value_list).cc = code_append((yyval.value_list).cc, (yyvsp[(1) - (3)].code));
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3172 "parser.y"
+#line 3200 "parser.y"
{
(yyval.value_list).cc = (yyvsp[(1) - (5)].value_list).cc;
(yyval.value_list).number = (yyvsp[(1) - (5)].value_list).number+2;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3181 "parser.y"
+#line 3209 "parser.y"
{(yyval.node) = mkcodenode((yyvsp[(1) - (1)].value));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3182 "parser.y"
+#line 3210 "parser.y"
{(yyval.node) = mkcodenode((yyvsp[(1) - (1)].value));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3183 "parser.y"
+#line 3211 "parser.y"
{(yyval.node) = mkcodenode((yyvsp[(1) - (1)].value));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3184 "parser.y"
+#line 3212 "parser.y"
{(yyval.node) = mkcodenode((yyvsp[(1) - (1)].value));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3185 "parser.y"
+#line 3213 "parser.y"
{(yyval.node) = mkcodenode((yyvsp[(1) - (1)].value));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3186 "parser.y"
+#line 3214 "parser.y"
{(yyval.node) = (yyvsp[(1) - (1)].node);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3188 "parser.y"
+#line 3216 "parser.y"
{
(yyval.node) = mkconstnode((yyvsp[(1) - (1)].constant));
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3192 "parser.y"
+#line 3220 "parser.y"
{
typedcode_t v;
v.c = 0;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3204 "parser.y"
+#line 3232 "parser.y"
{
typedcode_t v;
v.c = 0;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3222 "parser.y"
+#line 3250 "parser.y"
{
PASS1
state->method->need_arguments = 1;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3233 "parser.y"
+#line 3261 "parser.y"
{
typedcode_t v;
v.c = code_new();
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3243 "parser.y"
+#line 3271 "parser.y"
{
typedcode_t v;
v.c = code_new();
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3252 "parser.y"
+#line 3280 "parser.y"
{(yyval.node) = mknode2(&node_lt,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3253 "parser.y"
+#line 3281 "parser.y"
{(yyval.node) = mknode2(&node_gt,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3254 "parser.y"
+#line 3282 "parser.y"
{(yyval.node) = mknode2(&node_le,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3255 "parser.y"
+#line 3283 "parser.y"
{(yyval.node) = mknode2(&node_ge,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3256 "parser.y"
+#line 3284 "parser.y"
{(yyval.node) = mknode2(&node_eqeq,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3257 "parser.y"
+#line 3285 "parser.y"
{(yyval.node) = mknode2(&node_eqeqeq,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3258 "parser.y"
+#line 3286 "parser.y"
{(yyval.node) = mknode2(&node_noteqeq,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3259 "parser.y"
+#line 3287 "parser.y"
{(yyval.node) = mknode2(&node_noteq,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3260 "parser.y"
+#line 3288 "parser.y"
{(yyval.node) = mknode2(&node_oror,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3261 "parser.y"
+#line 3289 "parser.y"
{(yyval.node) = mknode2(&node_andand,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3262 "parser.y"
+#line 3290 "parser.y"
{(yyval.node) = mknode1(&node_not, (yyvsp[(2) - (2)].node));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3263 "parser.y"
+#line 3291 "parser.y"
{(yyval.node) = mknode1(&node_bitnot, (yyvsp[(2) - (2)].node));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3264 "parser.y"
+#line 3292 "parser.y"
{(yyval.node) = mknode2(&node_bitand, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3265 "parser.y"
+#line 3293 "parser.y"
{(yyval.node) = mknode2(&node_bitxor, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3266 "parser.y"
+#line 3294 "parser.y"
{(yyval.node) = mknode2(&node_bitor, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3267 "parser.y"
+#line 3295 "parser.y"
{(yyval.node) = mknode2(&node_shr, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3268 "parser.y"
+#line 3296 "parser.y"
{(yyval.node) = mknode2(&node_ushr, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3269 "parser.y"
+#line 3297 "parser.y"
{(yyval.node) = mknode2(&node_shl, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3270 "parser.y"
+#line 3298 "parser.y"
{(yyval.node) = mknode2(&node_div, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3271 "parser.y"
+#line 3299 "parser.y"
{(yyval.node) = mknode2(&node_mod, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3272 "parser.y"
+#line 3300 "parser.y"
{(yyval.node) = mknode2(&node_plus, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3273 "parser.y"
+#line 3301 "parser.y"
{(yyval.node) = mknode2(&node_minus, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3274 "parser.y"
+#line 3302 "parser.y"
{(yyval.node) = mknode2(&node_multiply, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3275 "parser.y"
+#line 3303 "parser.y"
{(yyval.node) = mknode2(&node_in, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3276 "parser.y"
+#line 3304 "parser.y"
{(yyval.node) = mknode2(&node_as, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3277 "parser.y"
+#line 3305 "parser.y"
{(yyval.node) = mknode2(&node_instanceof, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3278 "parser.y"
+#line 3306 "parser.y"
{(yyval.node) = mknode2(&node_is, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3279 "parser.y"
+#line 3307 "parser.y"
{(yyval.node) = mknode1(&node_typeof, (yyvsp[(3) - (4)].node));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3280 "parser.y"
+#line 3308 "parser.y"
{(yyval.node) = mknode1(&node_void, (yyvsp[(2) - (2)].node));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3281 "parser.y"
+#line 3309 "parser.y"
{ (yyval.node) = mkconstnode(constant_new_undefined());}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3282 "parser.y"
+#line 3310 "parser.y"
{ (yyval.node)=(yyvsp[(2) - (3)].node);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3283 "parser.y"
+#line 3311 "parser.y"
{(yyval.node) = mknode1(&node_neg, (yyvsp[(2) - (2)].node));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3284 "parser.y"
+#line 3312 "parser.y"
{(yyval.node) = mknode2(&node_arraylookup, (yyvsp[(1) - (4)].node),(yyvsp[(3) - (4)].node));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3285 "parser.y"
+#line 3313 "parser.y"
{(yyval.node) = mknode2(&node_muleq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3286 "parser.y"
+#line 3314 "parser.y"
{(yyval.node) = mknode2(&node_modeq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3287 "parser.y"
+#line 3315 "parser.y"
{(yyval.node) = mknode2(&node_shleq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3288 "parser.y"
+#line 3316 "parser.y"
{(yyval.node) = mknode2(&node_shreq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3289 "parser.y"
+#line 3317 "parser.y"
{(yyval.node) = mknode2(&node_ushreq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3290 "parser.y"
+#line 3318 "parser.y"
{ (yyval.node) = mknode2(&node_diveq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3291 "parser.y"
+#line 3319 "parser.y"
{ (yyval.node) = mknode2(&node_bitoreq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3292 "parser.y"
+#line 3320 "parser.y"
{ (yyval.node) = mknode2(&node_bitxoreq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3293 "parser.y"
+#line 3321 "parser.y"
{ (yyval.node) = mknode2(&node_bitandeq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3294 "parser.y"
+#line 3322 "parser.y"
{ (yyval.node) = mknode2(&node_pluseq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3295 "parser.y"
+#line 3323 "parser.y"
{ (yyval.node) = mknode2(&node_minuseq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3296 "parser.y"
+#line 3324 "parser.y"
{ (yyval.node) = mknode2(&node_assign, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3297 "parser.y"
+#line 3325 "parser.y"
{ (yyval.node) = mknode3(&node_tenary, (yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3299 "parser.y"
+#line 3327 "parser.y"
{ (yyval.node) = mknode1(&node_rplusplus, (yyvsp[(1) - (2)].node));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3300 "parser.y"
+#line 3328 "parser.y"
{ (yyval.node) = mknode1(&node_rminusminus, (yyvsp[(1) - (2)].node));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3301 "parser.y"
+#line 3329 "parser.y"
{(yyval.node) = mknode1(&node_lplusplus, (yyvsp[(2) - (2)].node)); }
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3302 "parser.y"
+#line 3330 "parser.y"
{(yyval.node) = mknode1(&node_lminusminus, (yyvsp[(2) - (2)].node)); }
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3305 "parser.y"
+#line 3333 "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 3319 "parser.y"
+#line 3347 "parser.y"
{
typedcode_t v;
multiname_t m = {MULTINAMEA, 0, &nopackage_namespace_set, (yyvsp[(2) - (2)].id)};
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3327 "parser.y"
+#line 3355 "parser.y"
{PASS12 new_state();state->xmlfilter=1;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3327 "parser.y"
+#line 3355 "parser.y"
{
PASS1 old_state();
PASS2
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3381 "parser.y"
+#line 3409 "parser.y"
{(yyval.id)=(yyvsp[(1) - (1)].id);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3382 "parser.y"
+#line 3410 "parser.y"
{(yyval.id)="*";}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3383 "parser.y"
+#line 3411 "parser.y"
{(yyval.id)=(char*)(yyvsp[(1) - (1)].id);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3385 "parser.y"
+#line 3413 "parser.y"
{(yyval.id)="*";}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3393 "parser.y"
+#line 3421 "parser.y"
{
typedcode_t v = node_read((yyvsp[(1) - (5)].node));
typedcode_t w = node_read(resolve_identifier((yyvsp[(3) - (5)].id)));
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3411 "parser.y"
+#line 3439 "parser.y"
{
typedcode_t v = node_read((yyvsp[(1) - (3)].node));
multiname_t m = {MULTINAME, 0, &nopackage_namespace_set, (yyvsp[(3) - (3)].id)};
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3418 "parser.y"
+#line 3446 "parser.y"
{
typedcode_t v = node_read((yyvsp[(1) - (5)].node));
typedcode_t w = node_read((yyvsp[(4) - (5)].node));
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3429 "parser.y"
+#line 3457 "parser.y"
{
typedcode_t v = node_read((yyvsp[(1) - (4)].node));
multiname_t m = {MULTINAMEA, 0, &nopackage_namespace_set, (yyvsp[(4) - (4)].id)};
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3436 "parser.y"
+#line 3464 "parser.y"
{
typedcode_t v = node_read((yyvsp[(1) - (4)].node));
multiname_t m = {MULTINAMEA, 0, &nopackage_namespace_set, (yyvsp[(4) - (4)].id)};
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3443 "parser.y"
+#line 3471 "parser.y"
{
typedcode_t v = node_read((yyvsp[(1) - (6)].node));
typedcode_t w = node_read((yyvsp[(5) - (6)].node));
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3453 "parser.y"
+#line 3481 "parser.y"
{
typedcode_t v = node_read((yyvsp[(1) - (6)].node));
typedcode_t w = node_read((yyvsp[(5) - (6)].node));
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3464 "parser.y"
+#line 3492 "parser.y"
{
typedcode_t v1 = node_read((yyvsp[(1) - (3)].node));
(yyval.value).c = v1.c;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3642 "parser.y"
+#line 3670 "parser.y"
{
PASS1
/* Queue unresolved identifiers for checking against the parent
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3678 "parser.y"
+#line 3706 "parser.y"
{
PASS12
NEW(namespace_decl_t,n);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3685 "parser.y"
+#line 3713 "parser.y"
{
PASS12
NEW(namespace_decl_t,n);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3692 "parser.y"
+#line 3720 "parser.y"
{
PASS12
NEW(namespace_decl_t,n);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3699 "parser.y"
+#line 3727 "parser.y"
{
PASS12
trie_put(active_namespaces, (yyvsp[(2) - (2)].namespace_decl)->name, (void*)(yyvsp[(2) - (2)].namespace_decl)->url);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3722 "parser.y"
+#line 3750 "parser.y"
{
as3_warning("default xml namespaces not supported yet");
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3726 "parser.y"
+#line 3754 "parser.y"
{
PASS12
const char*url = (yyvsp[(3) - (3)].classinfo)->name;
/* Line 1464 of skeleton.m4 */
-#line 8737 "parser.tab.c"
+#line 8765 "parser.tab.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);