#define YYBISON_VERSION "2.4"
/* Skeleton name. */
-#define YYSKELETON_NAME "yacc.c"
+#define YYSKELETON_NAME "./skeleton.m4"
/* Pure parsers. */
#define YYPURE 0
/* Copy the first part of user declarations. */
-/* Line 189 of yacc.c */
+/* Line 198 of skeleton.m4 */
#line 23 "parser.y"
#include <stdlib.h>
-/* Line 189 of yacc.c */
+/* Line 198 of skeleton.m4 */
#line 96 "parser.tab.c"
/* Enabling traces. */
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union
-/* Line 214 of yacc.c */
+/* Line 223 of skeleton.m4 */
#line 41 "parser.y"
tokenunion
{
-/* Line 214 of yacc.c */
+/* Line 223 of skeleton.m4 */
#line 41 "parser.y"
enum yytokentype token;
-/* Line 214 of yacc.c */
+/* Line 223 of skeleton.m4 */
#line 268 "parser.tab.c"
} YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
/* Copy the second part of user declarations. */
-/* Line 264 of yacc.c */
+/* Line 273 of skeleton.m4 */
#line 251 "parser.y"
char is_constructor;
char has_super;
char is_global;
+ char inner;
abc_exception_list_t*exceptions;
} methodstate_t;
state_t*leaving = state;
state = state->old;
+
+ if(leaving->method && leaving->method != state->method) {
+ free(leaving->method);
+ leaving->method=0;
+ }
+ if(leaving->cls && leaving->cls != state->cls) {
+ free(leaving->cls);
+ leaving->cls=0;
+ }
+
state_destroy(leaving);
}
old_state();
}
+void parserassert(int b)
+{
+ if(!b) syntaxerror("internal error: assertion failed");
+}
+
+
char*as3_globalclass=0;
static void startclass(int flags, char*classname, classinfo_t*extends, classinfo_list_t*implements, char interface)
{
syntaxerror("public classes only allowed inside a package");
}
- if(registry_findclass(package, classname)) {
- syntaxerror("Package \"%s\" already contains a class called \"%s\"", package, classname);
- }
-
-
- /* build info struct */
- int num_interfaces = (list_length(implements));
- state->cls->info = classinfo_register(access, package, classname, num_interfaces);
- state->cls->info->superclass = extends?extends:TYPE_OBJECT;
- int pos = 0;
- classinfo_list_t*l = implements;
- for(l=implements;l;l=l->next) {
- state->cls->info->interfaces[pos++] = l->classinfo;
+ if(as3_pass==1) {
+ if(registry_findclass(package, classname)) {
+ syntaxerror("Package \"%s\" already contains a class called \"%s\"", package, classname);
+ }
+ /* build info struct */
+ int num_interfaces = (list_length(implements));
+ state->cls->info = classinfo_register(access, package, classname, num_interfaces);
}
- multiname_t*extends2 = sig2mname(extends);
-
- MULTINAME(classname2,state->cls->info);
+ if(as3_pass == 2) {
+ state->cls->info = registry_findclass(package, classname);
+ parserassert((int)state->cls->info);
+
+ /* fill out interfaces and extends (we couldn't resolve those during the first pass) */
+ state->cls->info->superclass = extends?extends:TYPE_OBJECT;
+ int pos = 0;
+ classinfo_list_t*l = implements;
+ for(l=implements;l;l=l->next) {
+ state->cls->info->interfaces[pos++] = l->classinfo;
+ }
- /*if(extends) {
- state->cls_init = abc_getlocal_0(state->cls_init);
- state->cls_init = abc_constructsuper(state->cls_init, 0);
- }*/
+ /* generate the abc code for this class */
+ MULTINAME(classname2,state->cls->info);
+ multiname_t*extends2 = sig2mname(extends);
- state->cls->abc = abc_class_new(global->file, &classname2, extends2);
- if(flags&FLAG_FINAL) abc_class_final(state->cls->abc);
- if(!(flags&FLAG_DYNAMIC)) abc_class_sealed(state->cls->abc);
- if(interface) {
- state->cls->info->flags |= CLASS_INTERFACE;
- abc_class_interface(state->cls->abc);
- }
+ state->cls->abc = abc_class_new(global->file, &classname2, extends2);
+ if(flags&FLAG_FINAL) abc_class_final(state->cls->abc);
+ if(!(flags&FLAG_DYNAMIC)) abc_class_sealed(state->cls->abc);
+ if(interface) {
+ state->cls->info->flags |= CLASS_INTERFACE;
+ abc_class_interface(state->cls->abc);
+ }
- abc_class_protectedNS(state->cls->abc, classname);
+ abc_class_protectedNS(state->cls->abc, classname);
- for(mlist=implements;mlist;mlist=mlist->next) {
- MULTINAME(m, mlist->classinfo);
- abc_class_add_interface(state->cls->abc, &m);
- }
+ for(mlist=implements;mlist;mlist=mlist->next) {
+ MULTINAME(m, mlist->classinfo);
+ abc_class_add_interface(state->cls->abc, &m);
+ }
- /* now write the construction code for this class */
- int slotindex = abc_initscript_addClassTrait(global->init, &classname2, state->cls->abc);
+ /* write the construction code for this class to the global init
+ function */
+ int slotindex = abc_initscript_addClassTrait(global->init, &classname2, state->cls->abc);
- abc_method_body_t*m = global->init->method->body;
- __ getglobalscope(m);
- classinfo_t*s = extends;
+ abc_method_body_t*m = global->init->method->body;
+ __ getglobalscope(m);
+ classinfo_t*s = extends;
- int count=0;
-
- while(s) {
- //TODO: take a look at the current scope stack, maybe
- // we can re-use something
- s = s->superclass;
- if(!s)
- break;
-
- multiname_t*s2 = sig2mname(s);
- __ getlex2(m, s2);
- multiname_destroy(s2);
-
- __ pushscope(m); count++;
- m->code = m->code->prev->prev; // invert
- }
- /* continue appending after last op end */
- while(m->code && m->code->next) m->code = m->code->next;
-
- /* TODO: if this is one of *our* classes, we can also
- do a getglobalscope/getslot <nr> (which references
- the init function's slots) */
- if(extends2) {
- __ getlex2(m, extends2);
- __ dup(m);
- /* notice: we get a Verify Error #1107 if the top elemnt on the scope
- stack is not the superclass */
- __ pushscope(m);count++;
- } else {
- __ pushnull(m);
- /* notice: we get a verify error #1107 if the top element on the scope
- stack is not the global object */
- __ getlocal_0(m);
- __ pushscope(m);count++;
- }
- __ newclass(m,state->cls->abc);
- while(count--) {
- __ popscope(m);
- }
- __ setslot(m, slotindex);
-
- /* flash.display.MovieClip handling */
- if(!as3_globalclass && (flags&FLAG_PUBLIC) && classinfo_equals(registry_getMovieClip(),extends)) {
- if(state->package && state->package[0]) {
- as3_globalclass = concat3(state->package, ".", classname);
+ int count=0;
+
+ while(s) {
+ //TODO: take a look at the current scope stack, maybe
+ // we can re-use something
+ s = s->superclass;
+ if(!s)
+ break;
+
+ multiname_t*s2 = sig2mname(s);
+ __ getlex2(m, s2);
+ multiname_destroy(s2);
+
+ __ pushscope(m); count++;
+ m->code = m->code->prev->prev; // invert
+ }
+ /* continue appending after last op end */
+ while(m->code && m->code->next) m->code = m->code->next;
+
+ /* TODO: if this is one of *our* classes, we can also
+ do a getglobalscope/getslot <nr> (which references
+ the init function's slots) */
+ if(extends2) {
+ __ getlex2(m, extends2);
+ __ dup(m);
+ /* notice: we get a Verify Error #1107 if the top elemnt on the scope
+ stack is not the superclass */
+ __ pushscope(m);count++;
} else {
- as3_globalclass = strdup(classname);
+ __ pushnull(m);
+ /* notice: we get a verify error #1107 if the top element on the scope
+ stack is not the global object */
+ __ getlocal_0(m);
+ __ pushscope(m);count++;
+ }
+ __ newclass(m,state->cls->abc);
+ while(count--) {
+ __ popscope(m);
+ }
+ __ setslot(m, slotindex);
+ multiname_destroy(extends2);
+
+ /* flash.display.MovieClip handling */
+
+ if(!as3_globalclass && (flags&FLAG_PUBLIC) && classinfo_equals(registry_getMovieClip(),extends)) {
+ if(state->package && state->package[0]) {
+ as3_globalclass = concat3(state->package, ".", classname);
+ } else {
+ as3_globalclass = strdup(classname);
+ }
}
}
- multiname_destroy(extends2);
}
static void endclass()
{
- if(!state->cls->has_constructor && !(state->cls->info->flags&CLASS_INTERFACE)) {
- code_t*c = 0;
- c = abc_getlocal_0(c);
- c = abc_constructsuper(c, 0);
- state->cls->init = code_append(state->cls->init, c);
- }
- if(!state->method->late_binding) {
- // class initialization code uses late binding
- code_t*c = 0;
- c = abc_getlocal_0(c);
- c = abc_pushscope(c);
- state->cls->static_init = code_append(c, state->cls->static_init);
- }
+ if(as3_pass == 2) {
+ if(!state->cls->has_constructor && !(state->cls->info->flags&CLASS_INTERFACE)) {
+ code_t*c = 0;
+ c = abc_getlocal_0(c);
+ c = abc_constructsuper(c, 0);
+ state->cls->init = code_append(state->cls->init, c);
+ }
+ if(!state->method->late_binding) {
+ // class initialization code uses late binding
+ code_t*c = 0;
+ c = abc_getlocal_0(c);
+ c = abc_pushscope(c);
+ state->cls->static_init = code_append(c, state->cls->static_init);
+ }
- if(state->cls->init) {
- abc_method_t*m = abc_class_getconstructor(state->cls->abc, 0);
- m->body->code = wrap_function(0, state->cls->init, m->body->code);
- }
- if(state->cls->static_init) {
- abc_method_t*m = abc_class_getstaticconstructor(state->cls->abc, 0);
- m->body->code = wrap_function(0, state->cls->static_init, m->body->code);
+ if(state->cls->init) {
+ abc_method_t*m = abc_class_getconstructor(state->cls->abc, 0);
+ m->body->code = wrap_function(0, state->cls->init, m->body->code);
+ }
+ if(state->cls->static_init) {
+ abc_method_t*m = abc_class_getstaticconstructor(state->cls->abc, 0);
+ m->body->code = wrap_function(0, state->cls->static_init, m->body->code);
+ }
}
- free(state->cls);state->cls=0;
- free(state->method);state->method=0;
old_state();
}
return minfo;
}
+static void innerfunction(char*name, params_t*params, classinfo_t*return_type)
+{
+ parserassert(state->method && state->method->info);
+ memberinfo_t*parent_method = state->method->info;
+
+ if(as3_pass==1) {
+ // not valid yet
+ params = 0;
+ return_type = 0;
+ }
+
+ new_state();
+ state->method = rfx_calloc(sizeof(methodstate_t));
+ state->method->inner = 1;
+
+ NEW(memberinfo_t,minfo);
+ minfo->return_type = return_type;
+ minfo->name = name;
+
+ if(!parent_method->subfunctions)
+ parent_method->subfunctions = dict_new();
+
+ dict_put(parent_method->subfunctions, name, minfo);
+ state->method->info = minfo;
+}
+
static void startfunction(token_t*ns, int flags, enum yytokentype getset, char*name,
params_t*params, classinfo_t*return_type)
{
syntaxerror("not able to start another method scope");
}
new_state();
- global->variable_count = 0;
state->method = rfx_calloc(sizeof(methodstate_t));
state->method->has_super = 0;
if(state->cls) {
state->method->is_constructor = !strcmp(state->cls->info->name,name);
state->cls->has_constructor |= state->method->is_constructor;
-
- new_variable((flags&FLAG_STATIC)?"class":"this", state->cls->info, 0);
} else {
state->method->is_global = 1;
state->method->late_binding = 1; // for global methods, always push local_0 on the scope stack
-
- new_variable("globalscope", 0, 0);
- }
-
- /* state->vars is initialized by state_new */
-
- param_list_t*p=0;
- for(p=params->list;p;p=p->next) {
- new_variable(p->param->name, p->param->type, 0);
}
if(state->method->is_constructor)
name = "__as3_constructor__";
- state->method->info = registerfunction(getset, flags, name, params, return_type, 0);
+
+ if(as3_pass == 1) {
+ return_type = 0;
+ state->method->info = registerfunction(getset, flags, name, params, return_type, 0);
+ }
+
+ if(as3_pass == 2) {
+ /* retrieve the member info that we stored in the first pass.
+ 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 */
+ if(!state->method->is_global)
+ new_variable((flags&FLAG_STATIC)?"class":"this", state->cls->info, 0);
+ else
+ new_variable("globalscope", 0, 0);
+ param_list_t*p=0;
+ for(p=params->list;p;p=p->next) {
+ new_variable(p->param->name, p->param->type, 0);
+ }
+ }
}
-static void endfunction(token_t*ns, int flags, enum yytokentype getset, char*name,
+static abc_method_t* endfunction(token_t*ns, int flags, enum yytokentype getset, char*name,
params_t*params, classinfo_t*return_type, code_t*body)
{
+ if(as3_pass==1) {
+ old_state();
+ return 0;
+ }
+
abc_method_t*f = 0;
multiname_t*type2 = sig2mname(return_type);
int slot = 0;
- if(state->method->is_constructor) {
+ if(state->method->inner) {
+ f = abc_method_new(global->file, type2, 1);
+ //trait_t*t = trait_new_method(&global->init->traits, 0, f);
+ } else if(state->method->is_constructor) {
f = abc_class_getconstructor(state->cls->abc, type2);
} else if(!state->method->is_global) {
namespace_t mname_ns = flags2namespace(flags, "");
syntaxerror("interface methods can't have a method body");
}
- free(state->method);state->method=0;
old_state();
+ return f;
}
-
-
char is_subtype_of(classinfo_t*type, classinfo_t*supertype)
{
return 1; // FIXME
return (c && !c->prev && !c->next && c->opcode == OPCODE_PUSHUNDEFINED);
}
-void parserassert(int b)
-{
- if(!b) syntaxerror("internal error: assertion failed");
-}
-
static classinfo_t* find_class(char*name)
{
classinfo_t*c=0;
if(c) return c;
/* try local "filename" package */
- c = registry_findclass(current_filename, name);
+ c = registry_findclass(current_filename_short, name);
if(c) return c;
return 0;
}
}
+#define PASS1 }} if(as3_pass == 1) {{
+#define PASS1END }} if(as3_pass == 2) {{
+#define PASS2 }} if(as3_pass == 2) {{
+#define PASS12 }} {{
+#define PASS12END }} if(as3_pass == 2) {{
+
-/* Line 264 of yacc.c */
-#line 1509 "parser.tab.c"
+/* Line 273 of skeleton.m4 */
+#line 1574 "parser.tab.c"
#ifdef short
# undef short
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 130
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 105
+#define YYNNTS 106
/* YYNRULES -- Number of rules. */
-#define YYNRULES 285
+#define YYNRULES 286
/* YYNRULES -- Number of states. */
-#define YYNSTATES 478
+#define YYNSTATES 479
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
400, 403, 412, 414, 416, 422, 423, 426, 428, 430,
432, 434, 436, 438, 440, 442, 443, 445, 448, 453,
457, 459, 464, 467, 469, 471, 472, 473, 486, 488,
- 489, 499, 501, 505, 507, 509, 511, 515, 517, 519,
- 521, 524, 525, 526, 530, 531, 533, 535, 539, 543,
- 548, 553, 556, 558, 561, 563, 565, 569, 571, 573,
+ 489, 490, 501, 503, 507, 509, 511, 513, 517, 519,
+ 521, 523, 526, 527, 528, 532, 533, 535, 537, 541,
+ 545, 550, 555, 558, 560, 563, 565, 567, 571, 573,
575, 577, 579, 581, 583, 585, 587, 589, 591, 593,
- 595, 597, 599, 601, 603, 605, 609, 613, 617, 621,
- 625, 629, 633, 637, 641, 645, 648, 651, 655, 659,
- 663, 667, 671, 675, 679, 683, 687, 691, 695, 699,
- 703, 707, 711, 716, 719, 721, 725, 728, 733, 737,
- 738, 740, 744, 750, 754, 758, 762, 766, 770, 774,
- 778, 782, 786, 790, 794, 800, 803, 806, 809, 812,
- 816, 820, 822, 826, 832, 838
+ 595, 597, 599, 601, 603, 605, 607, 611, 615, 619,
+ 623, 627, 631, 635, 639, 643, 647, 650, 653, 657,
+ 661, 665, 669, 673, 677, 681, 685, 689, 693, 697,
+ 701, 705, 709, 713, 718, 721, 723, 727, 730, 735,
+ 739, 740, 742, 746, 752, 756, 760, 764, 768, 772,
+ 776, 780, 784, 788, 792, 796, 802, 805, 808, 811,
+ 814, 818, 822, 824, 828, 834, 840
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
-1, 201, -1, 143, -1, 96, -1, 139, -1, -1,
139, 141, -1, 141, -1, 183, -1, 154, -1, 155,
-1, 156, -1, 158, -1, 166, -1, 149, -1, 177,
- -1, 174, -1, 227, -1, 96, -1, 140, -1, 145,
- -1, 160, -1, 161, -1, 224, -1, 176, -1, 233,
- -1, 234, -1, 122, 139, 128, -1, 122, 128, -1,
- 141, 96, -1, 141, -1, 140, -1, 99, 225, -1,
+ -1, 174, -1, 228, -1, 96, -1, 140, -1, 145,
+ -1, 160, -1, 161, -1, 225, -1, 176, -1, 234,
+ -1, 235, -1, 122, 139, 128, -1, 122, 128, -1,
+ 141, 96, -1, 141, -1, 140, -1, 99, 226, -1,
-1, 45, 146, -1, 31, 146, -1, 147, -1, 146,
- 97, 147, -1, 3, 217, 144, -1, -1, 64, 142,
- -1, -1, 63, 126, 150, 226, 129, 142, 148, -1,
- -1, 145, -1, 227, -1, 45, 3, 217, -1, 3,
+ 97, 147, -1, 3, 218, 144, -1, -1, 64, 142,
+ -1, -1, 63, 126, 150, 227, 129, 142, 148, -1,
+ -1, 145, -1, 228, -1, 45, 3, 218, -1, 3,
-1, 12, 126, -1, 12, 49, 126, -1, 153, 151,
- 96, 226, 96, 227, 129, 142, -1, 153, 152, 67,
- 226, 129, 142, -1, -1, 13, 126, 157, 226, 129,
- 142, -1, -1, 14, 159, 142, 13, 126, 226, 129,
+ 96, 227, 96, 228, 129, 142, -1, 153, 152, 67,
+ 227, 129, 142, -1, -1, 13, 126, 157, 227, 129,
+ 142, -1, -1, 14, 159, 142, 13, 126, 227, 129,
-1, 65, -1, 65, 3, -1, 29, -1, 29, 3,
-1, -1, 163, -1, 165, -1, 163, 165, -1, 164,
- -1, 163, 164, -1, 33, 228, 103, 138, -1, 61,
- 103, 138, -1, -1, 15, 126, 167, 228, 129, 122,
- 162, 128, -1, -1, 32, 126, 3, 217, 129, 169,
+ -1, 163, 164, -1, 33, 229, 103, 138, -1, 61,
+ 103, 138, -1, -1, 15, 126, 167, 229, 129, 122,
+ 162, 128, -1, -1, 32, 126, 3, 218, 129, 169,
122, 138, 128, -1, -1, 27, 122, 171, 138, 128,
-1, 168, -1, 172, 168, -1, 172, -1, 172, 170,
-1, 170, -1, -1, 51, 122, 175, 138, 128, 173,
- -1, 36, 226, -1, 36, -1, 38, 126, 226, 129,
+ -1, 36, 227, -1, 36, -1, 38, 126, 227, 129,
142, -1, 3, -1, 18, -1, 179, 123, 178, -1,
178, -1, -1, 18, 179, 122, 181, 135, 128, -1,
- -1, 18, 122, 182, 135, 128, -1, 40, 214, -1,
+ -1, 18, 122, 182, 135, 128, -1, 40, 215, -1,
40, 179, 123, 113, -1, -1, 185, -1, 186, -1,
185, 186, -1, 20, -1, 21, -1, 19, -1, 37,
-1, 46, -1, 48, -1, 47, -1, 25, -1, 23,
- -1, -1, 53, 214, -1, -1, 53, 215, -1, -1,
- 16, 215, -1, -1, 184, 30, 3, 187, 189, 122,
+ -1, -1, 53, 215, -1, -1, 53, 216, -1, -1,
+ 16, 216, -1, -1, 184, 30, 3, 187, 189, 122,
191, 194, 128, -1, -1, 184, 43, 3, 188, 122,
193, 197, 128, -1, -1, 195, -1, 196, -1, 195,
196, -1, 96, -1, 201, -1, 208, -1, 140, -1,
-1, 198, -1, 199, -1, 198, 199, -1, 96, -1,
45, 3, -1, 184, 26, 207, 3, 126, 204, 129,
- 217, -1, 45, -1, 31, -1, 184, 200, 3, 217,
+ 218, -1, 45, -1, 31, -1, 184, 200, 3, 218,
144, -1, -1, 99, 203, -1, 9, -1, 7, -1,
8, -1, 11, -1, 4, -1, 55, -1, 54, -1,
44, -1, -1, 205, -1, 90, 206, -1, 205, 97,
90, 206, -1, 205, 97, 206, -1, 206, -1, 3,
- 103, 216, 202, -1, 3, 202, -1, 50, -1, 34,
+ 103, 217, 202, -1, 3, 202, -1, 50, -1, 34,
-1, -1, -1, 184, 26, 207, 3, 126, 204, 129,
- 217, 122, 209, 138, 128, -1, 3, -1, -1, 26,
- 210, 126, 204, 129, 217, 122, 138, 128, -1, 3,
- -1, 179, 123, 3, -1, 213, -1, 212, -1, 214,
- -1, 215, 97, 214, -1, 214, -1, 113, -1, 35,
- -1, 103, 216, -1, -1, -1, 126, 219, 129, -1,
- -1, 220, -1, 225, -1, 220, 97, 225, -1, 24,
- 212, 218, -1, 228, 126, 219, 129, -1, 52, 126,
- 219, 129, -1, 62, 228, -1, 41, -1, 41, 226,
- -1, 228, -1, 228, -1, 226, 97, 228, -1, 226,
- -1, 211, -1, 229, -1, 232, -1, 221, -1, 223,
- -1, 5, -1, 9, -1, 10, -1, 7, -1, 8,
- -1, 11, -1, 4, -1, 28, -1, 55, -1, 54,
- -1, 44, -1, 222, -1, 228, 107, 228, -1, 228,
- 108, 228, -1, 228, 73, 228, -1, 228, 74, 228,
- -1, 228, 69, 228, -1, 228, 70, 228, -1, 228,
- 72, 228, -1, 228, 71, 228, -1, 228, 84, 228,
- -1, 228, 85, 228, -1, 116, 228, -1, 115, 228,
- -1, 228, 106, 228, -1, 228, 105, 228, -1, 228,
- 104, 228, -1, 228, 93, 228, -1, 228, 92, 228,
- -1, 228, 91, 228, -1, 228, 112, 228, -1, 228,
- 114, 228, -1, 228, 111, 228, -1, 228, 110, 228,
- -1, 228, 113, 228, -1, 228, 67, 228, -1, 228,
- 68, 228, -1, 228, 39, 228, -1, 228, 66, 228,
- -1, 42, 126, 228, 129, -1, 35, 228, -1, 35,
- -1, 126, 226, 129, -1, 110, 228, -1, 228, 120,
- 228, 121, -1, 120, 219, 121, -1, -1, 231, -1,
- 225, 103, 225, -1, 231, 97, 225, 103, 225, -1,
- 122, 230, 128, -1, 228, 78, 228, -1, 228, 77,
- 228, -1, 228, 82, 228, -1, 228, 81, 228, -1,
- 228, 83, 228, -1, 228, 76, 228, -1, 228, 75,
- 228, -1, 228, 79, 228, -1, 228, 80, 228, -1,
- 228, 99, 228, -1, 228, 102, 228, 103, 228, -1,
- 228, 88, -1, 228, 87, -1, 88, 228, -1, 87,
- 228, -1, 52, 123, 3, -1, 228, 123, 3, -1,
- 3, -1, 184, 17, 3, -1, 184, 17, 3, 99,
- 3, -1, 184, 17, 3, 99, 4, -1, 22, 17,
- 3, -1
+ 218, 122, 209, 138, 128, -1, 3, -1, -1, -1,
+ 26, 210, 126, 204, 129, 218, 122, 212, 138, 128,
+ -1, 3, -1, 179, 123, 3, -1, 214, -1, 213,
+ -1, 215, -1, 216, 97, 215, -1, 215, -1, 113,
+ -1, 35, -1, 103, 217, -1, -1, -1, 126, 220,
+ 129, -1, -1, 221, -1, 226, -1, 221, 97, 226,
+ -1, 24, 213, 219, -1, 229, 126, 220, 129, -1,
+ 52, 126, 220, 129, -1, 62, 229, -1, 41, -1,
+ 41, 227, -1, 229, -1, 229, -1, 227, 97, 229,
+ -1, 227, -1, 211, -1, 230, -1, 233, -1, 222,
+ -1, 224, -1, 5, -1, 9, -1, 10, -1, 7,
+ -1, 8, -1, 11, -1, 4, -1, 28, -1, 55,
+ -1, 54, -1, 44, -1, 223, -1, 229, 107, 229,
+ -1, 229, 108, 229, -1, 229, 73, 229, -1, 229,
+ 74, 229, -1, 229, 69, 229, -1, 229, 70, 229,
+ -1, 229, 72, 229, -1, 229, 71, 229, -1, 229,
+ 84, 229, -1, 229, 85, 229, -1, 116, 229, -1,
+ 115, 229, -1, 229, 106, 229, -1, 229, 105, 229,
+ -1, 229, 104, 229, -1, 229, 93, 229, -1, 229,
+ 92, 229, -1, 229, 91, 229, -1, 229, 112, 229,
+ -1, 229, 114, 229, -1, 229, 111, 229, -1, 229,
+ 110, 229, -1, 229, 113, 229, -1, 229, 67, 229,
+ -1, 229, 68, 229, -1, 229, 39, 229, -1, 229,
+ 66, 229, -1, 42, 126, 229, 129, -1, 35, 229,
+ -1, 35, -1, 126, 227, 129, -1, 110, 229, -1,
+ 229, 120, 229, 121, -1, 120, 220, 121, -1, -1,
+ 232, -1, 226, 103, 226, -1, 232, 97, 226, 103,
+ 226, -1, 122, 231, 128, -1, 229, 78, 229, -1,
+ 229, 77, 229, -1, 229, 82, 229, -1, 229, 81,
+ 229, -1, 229, 83, 229, -1, 229, 76, 229, -1,
+ 229, 75, 229, -1, 229, 79, 229, -1, 229, 80,
+ 229, -1, 229, 99, 229, -1, 229, 102, 229, 103,
+ 229, -1, 229, 88, -1, 229, 87, -1, 88, 229,
+ -1, 87, 229, -1, 52, 123, 3, -1, 229, 123,
+ 3, -1, 3, -1, 184, 17, 3, -1, 184, 17,
+ 3, 99, 3, -1, 184, 17, 3, 99, 4, -1,
+ 22, 17, 3, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 1484, 1484, 1486, 1486, 1487, 1488, 1490, 1491, 1492,
- 1493, 1494, 1495, 1496, 1498, 1498, 1499, 1500, 1502, 1503,
- 1504, 1505, 1506, 1507, 1509, 1510, 1512, 1513, 1516, 1517,
- 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1528, 1529,
- 1530, 1531, 1532, 1533, 1534, 1536, 1537, 1539, 1540, 1541,
- 1542, 1546, 1552, 1553, 1557, 1558, 1560, 1561, 1563, 1604,
- 1605, 1608, 1608, 1627, 1628, 1629, 1632, 1635, 1639, 1640,
- 1642, 1662, 1705, 1705, 1724, 1724, 1739, 1742, 1745, 1748,
- 1752, 1753, 1754, 1755, 1756, 1757, 1759, 1770, 1773, 1773,
- 1802, 1802, 1822, 1822, 1839, 1840, 1841, 1842, 1850, 1859,
- 1859, 1904, 1908, 1919, 1928, 1929, 1931, 1932, 1934, 1934,
- 1935, 1935, 1937, 1945, 1955, 1956, 1957, 1958, 1960, 1961,
- 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1970, 1971, 1973,
- 1974, 1976, 1977, 1981, 1979, 1987, 1985, 1993, 1994, 1995,
- 1996, 1997, 1998, 1999, 2001, 2007, 2008, 2009, 2010, 2011,
- 2012, 2015, 2026, 2026, 2028, 2086, 2087, 2089, 2090, 2091,
- 2092, 2093, 2095, 2096, 2097, 2102, 2105, 2110, 2115, 2122,
- 2126, 2131, 2137, 2143, 2144, 2145, 2148, 2147, 2165, 2166,
- 2167, 2175, 2182, 2188, 2189, 2191, 2192, 2194, 2195, 2196,
- 2205, 2206, 2210, 2211, 2213, 2214, 2215, 2218, 2223, 2247,
- 2295, 2315, 2336, 2339, 2346, 2347, 2348, 2354, 2360, 2362,
- 2364, 2366, 2368, 2370, 2387, 2392, 2395, 2398, 2401, 2404,
- 2407, 2410, 2413, 2416, 2420, 2421, 2424, 2427, 2430, 2433,
- 2436, 2439, 2442, 2446, 2457, 2475, 2480, 2485, 2490, 2495,
- 2500, 2504, 2508, 2513, 2517, 2521, 2530, 2539, 2549, 2554,
- 2566, 2572, 2577, 2583, 2589, 2593, 2595, 2606, 2615, 2622,
- 2623, 2625, 2631, 2640, 2647, 2659, 2665, 2671, 2677, 2683,
- 2689, 2695, 2708, 2719, 2726, 2739, 2766, 2780, 2794, 2808,
- 2823, 2857, 2944, 2945, 2946, 2948
+ 0, 1548, 1548, 1550, 1550, 1551, 1552, 1554, 1555, 1556,
+ 1557, 1558, 1559, 1560, 1562, 1562, 1563, 1564, 1566, 1567,
+ 1568, 1569, 1570, 1571, 1573, 1574, 1576, 1577, 1580, 1581,
+ 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1592, 1593,
+ 1594, 1595, 1596, 1597, 1598, 1600, 1601, 1603, 1604, 1605,
+ 1606, 1610, 1617, 1618, 1622, 1623, 1625, 1626, 1628, 1669,
+ 1670, 1673, 1673, 1692, 1693, 1694, 1697, 1700, 1704, 1705,
+ 1707, 1727, 1770, 1770, 1789, 1789, 1804, 1807, 1810, 1813,
+ 1817, 1818, 1819, 1820, 1821, 1822, 1824, 1835, 1838, 1838,
+ 1867, 1867, 1887, 1887, 1904, 1905, 1906, 1907, 1915, 1924,
+ 1924, 1969, 1973, 1984, 1993, 1994, 1996, 1997, 1999, 1999,
+ 2001, 2001, 2004, 2012, 2022, 2023, 2024, 2025, 2027, 2028,
+ 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2037, 2038, 2040,
+ 2041, 2043, 2044, 2048, 2046, 2054, 2052, 2060, 2061, 2062,
+ 2063, 2064, 2065, 2066, 2068, 2074, 2075, 2076, 2077, 2078,
+ 2079, 2082, 2094, 2094, 2096, 2155, 2156, 2158, 2159, 2160,
+ 2161, 2162, 2164, 2165, 2166, 2171, 2174, 2179, 2184, 2191,
+ 2195, 2200, 2206, 2212, 2213, 2214, 2217, 2216, 2238, 2239,
+ 2241, 2240, 2260, 2268, 2276, 2277, 2279, 2280, 2282, 2283,
+ 2284, 2293, 2294, 2298, 2299, 2301, 2302, 2303, 2306, 2311,
+ 2335, 2383, 2403, 2424, 2427, 2434, 2435, 2436, 2442, 2448,
+ 2450, 2452, 2454, 2456, 2458, 2475, 2480, 2483, 2486, 2489,
+ 2492, 2495, 2498, 2501, 2504, 2508, 2509, 2512, 2515, 2518,
+ 2521, 2524, 2527, 2530, 2534, 2545, 2563, 2568, 2573, 2578,
+ 2583, 2588, 2592, 2596, 2601, 2605, 2609, 2618, 2627, 2637,
+ 2642, 2654, 2660, 2665, 2671, 2677, 2681, 2683, 2694, 2703,
+ 2710, 2711, 2713, 2719, 2728, 2735, 2747, 2753, 2759, 2765,
+ 2771, 2777, 2783, 2796, 2807, 2814, 2827, 2854, 2868, 2882,
+ 2896, 2911, 2945, 3043, 3044, 3045, 3047
};
#endif
"SLOT_DECLARATION", "MAYBESTATICCONSTANT", "STATICCONSTANT",
"MAYBE_PARAM_LIST", "PARAM_LIST", "PARAM", "GETSET",
"FUNCTION_DECLARATION", "$@12", "MAYBE_IDENTIFIER", "INNERFUNCTION",
- "CLASS", "PACKAGEANDCLASS", "QNAME", "QNAME_LIST", "TYPE", "MAYBETYPE",
- "MAYBE_PARAM_VALUES", "MAYBE_EXPRESSION_LIST", "EXPRESSION_LIST", "NEW",
- "FUNCTIONCALL", "DELETE", "RETURN", "NONCOMMAEXPRESSION", "EXPRESSION",
- "VOIDEXPRESSION", "E", "CONSTANT", "MAYBE_EXPRPAIR_LIST",
- "EXPRPAIR_LIST", "VAR_READ", "NAMESPACE_DECLARATION", "USE_NAMESPACE", 0
+ "$@13", "CLASS", "PACKAGEANDCLASS", "QNAME", "QNAME_LIST", "TYPE",
+ "MAYBETYPE", "MAYBE_PARAM_VALUES", "MAYBE_EXPRESSION_LIST",
+ "EXPRESSION_LIST", "NEW", "FUNCTIONCALL", "DELETE", "RETURN",
+ "NONCOMMAEXPRESSION", "EXPRESSION", "VOIDEXPRESSION", "E", "CONSTANT",
+ "MAYBE_EXPRPAIR_LIST", "EXPRPAIR_LIST", "VAR_READ",
+ "NAMESPACE_DECLARATION", "USE_NAMESPACE", 0
};
#endif
199, 199, 200, 200, 201, 202, 202, 203, 203, 203,
203, 203, 203, 203, 203, 204, 204, 204, 204, 205,
205, 206, 206, 207, 207, 207, 209, 208, 210, 210,
- 211, 212, 213, 214, 214, 215, 215, 216, 216, 216,
- 217, 217, 218, 218, 219, 219, 220, 220, 221, 222,
- 222, 223, 224, 224, 225, 226, 226, 227, 228, 228,
- 228, 228, 228, 228, 229, 229, 229, 229, 229, 229,
- 229, 229, 229, 229, 228, 228, 228, 228, 228, 228,
- 228, 228, 228, 228, 228, 228, 228, 228, 228, 228,
- 228, 228, 228, 228, 228, 228, 228, 228, 228, 228,
- 228, 228, 228, 228, 228, 228, 228, 228, 228, 230,
- 230, 231, 231, 228, 228, 228, 228, 228, 228, 228,
- 228, 228, 228, 228, 228, 228, 228, 228, 228, 228,
- 228, 232, 233, 233, 233, 234
+ 212, 211, 213, 214, 215, 215, 216, 216, 217, 217,
+ 217, 218, 218, 219, 219, 220, 220, 221, 221, 222,
+ 223, 223, 224, 225, 225, 226, 227, 227, 228, 229,
+ 229, 229, 229, 229, 229, 230, 230, 230, 230, 230,
+ 230, 230, 230, 230, 230, 229, 229, 229, 229, 229,
+ 229, 229, 229, 229, 229, 229, 229, 229, 229, 229,
+ 229, 229, 229, 229, 229, 229, 229, 229, 229, 229,
+ 229, 229, 229, 229, 229, 229, 229, 229, 229, 229,
+ 231, 231, 232, 232, 229, 229, 229, 229, 229, 229,
+ 229, 229, 229, 229, 229, 229, 229, 229, 229, 229,
+ 229, 229, 233, 234, 234, 234, 235
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
2, 8, 1, 1, 5, 0, 2, 1, 1, 1,
1, 1, 1, 1, 1, 0, 1, 2, 4, 3,
1, 4, 2, 1, 1, 0, 0, 12, 1, 0,
- 9, 1, 3, 1, 1, 1, 3, 1, 1, 1,
- 2, 0, 0, 3, 0, 1, 1, 3, 3, 4,
- 4, 2, 1, 2, 1, 1, 3, 1, 1, 1,
+ 0, 10, 1, 3, 1, 1, 1, 3, 1, 1,
+ 1, 2, 0, 0, 3, 0, 1, 1, 3, 3,
+ 4, 4, 2, 1, 2, 1, 1, 3, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 2, 2, 3, 3, 3,
+ 1, 1, 1, 1, 1, 1, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 2, 2, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 4, 2, 1, 3, 2, 4, 3, 0,
- 1, 3, 5, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 5, 2, 2, 2, 2, 3,
- 3, 1, 3, 5, 5, 3
+ 3, 3, 3, 4, 2, 1, 3, 2, 4, 3,
+ 0, 1, 3, 5, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 5, 2, 2, 2, 2,
+ 3, 3, 1, 3, 5, 5, 3
};
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
means the default is an error. */
static const yytype_uint16 yydefact[] =
{
- 114, 281, 219, 213, 216, 217, 214, 215, 218, 0,
+ 114, 282, 220, 214, 217, 218, 215, 216, 219, 0,
0, 74, 0, 0, 120, 118, 119, 126, 0, 125,
- 179, 220, 254, 121, 0, 0, 0, 223, 122, 124,
- 123, 0, 0, 222, 221, 0, 0, 0, 0, 13,
- 0, 0, 0, 194, 259, 0, 0, 2, 114, 5,
+ 179, 221, 255, 121, 0, 0, 0, 224, 122, 124,
+ 123, 0, 0, 223, 222, 0, 0, 0, 0, 13,
+ 0, 0, 0, 195, 260, 0, 0, 2, 114, 5,
51, 12, 34, 63, 29, 30, 31, 32, 33, 36,
35, 7, 28, 0, 115, 116, 9, 8, 11, 10,
- 208, 211, 224, 212, 207, 37, 205, 209, 210, 0,
- 68, 72, 114, 88, 104, 105, 110, 107, 0, 181,
- 192, 178, 0, 253, 0, 181, 0, 184, 183, 112,
- 0, 99, 0, 194, 201, 61, 278, 277, 256, 236,
- 235, 0, 195, 196, 204, 0, 0, 260, 0, 1,
- 6, 281, 0, 0, 64, 0, 0, 65, 175, 0,
+ 209, 212, 225, 213, 208, 37, 206, 210, 211, 0,
+ 68, 72, 114, 88, 104, 105, 110, 107, 0, 182,
+ 193, 178, 0, 254, 0, 182, 0, 185, 184, 112,
+ 0, 99, 0, 195, 202, 61, 279, 278, 257, 237,
+ 236, 0, 196, 197, 205, 0, 0, 261, 0, 1,
+ 6, 282, 0, 0, 64, 0, 0, 65, 175, 0,
153, 0, 152, 0, 117, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 276, 275, 0,
+ 0, 0, 0, 0, 0, 0, 0, 277, 276, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 194, 69, 0, 0,
- 78, 102, 202, 0, 76, 38, 114, 39, 50, 0,
+ 0, 0, 0, 0, 0, 0, 195, 69, 0, 0,
+ 78, 102, 203, 0, 76, 38, 114, 39, 50, 0,
40, 41, 42, 44, 0, 43, 45, 46, 0, 114,
- 108, 0, 194, 198, 165, 0, 0, 0, 25, 279,
- 0, 0, 258, 0, 0, 263, 0, 255, 191, 55,
- 56, 191, 54, 0, 0, 174, 173, 0, 127, 129,
- 191, 206, 250, 251, 248, 249, 229, 230, 232, 231,
- 227, 228, 270, 269, 265, 264, 271, 272, 267, 266,
- 268, 233, 234, 242, 241, 240, 273, 0, 239, 238,
- 237, 225, 226, 246, 245, 243, 247, 244, 0, 280,
- 0, 0, 0, 79, 101, 203, 77, 48, 114, 27,
- 205, 49, 0, 0, 0, 23, 0, 114, 16, 22,
+ 108, 0, 195, 199, 165, 0, 0, 0, 25, 280,
+ 0, 0, 259, 0, 0, 264, 0, 256, 192, 55,
+ 56, 192, 54, 0, 0, 174, 173, 0, 127, 129,
+ 192, 207, 251, 252, 249, 250, 230, 231, 233, 232,
+ 228, 229, 271, 270, 266, 265, 272, 273, 268, 267,
+ 269, 234, 235, 243, 242, 241, 274, 0, 240, 239,
+ 238, 226, 227, 247, 246, 244, 248, 245, 0, 281,
+ 0, 0, 0, 79, 101, 204, 77, 48, 114, 27,
+ 206, 49, 0, 0, 0, 23, 0, 114, 16, 22,
19, 18, 21, 20, 114, 106, 0, 155, 0, 0,
- 166, 170, 114, 182, 113, 252, 0, 24, 200, 0,
- 197, 261, 0, 0, 53, 0, 53, 0, 0, 0,
- 0, 131, 0, 0, 53, 0, 257, 199, 114, 285,
- 47, 26, 0, 282, 0, 111, 17, 0, 193, 0,
- 0, 172, 167, 191, 0, 103, 0, 114, 0, 189,
- 188, 0, 187, 190, 0, 58, 57, 0, 114, 165,
- 128, 0, 0, 185, 130, 135, 154, 274, 73, 0,
+ 166, 170, 114, 183, 113, 253, 0, 24, 201, 0,
+ 198, 262, 0, 0, 53, 0, 53, 0, 0, 0,
+ 0, 131, 0, 0, 53, 0, 258, 200, 114, 286,
+ 47, 26, 0, 283, 0, 111, 17, 0, 194, 0,
+ 0, 172, 167, 192, 0, 103, 0, 114, 0, 190,
+ 189, 0, 188, 191, 0, 58, 57, 0, 114, 165,
+ 128, 0, 0, 186, 130, 135, 154, 275, 73, 0,
0, 80, 109, 161, 158, 159, 157, 160, 164, 163,
162, 156, 155, 0, 0, 169, 0, 0, 94, 98,
- 96, 100, 59, 262, 0, 52, 0, 71, 0, 132,
- 133, 0, 114, 75, 283, 284, 0, 0, 0, 81,
- 84, 82, 171, 25, 168, 92, 0, 95, 97, 114,
- 62, 114, 191, 114, 186, 0, 149, 0, 0, 114,
- 147, 0, 25, 89, 85, 83, 0, 25, 191, 60,
+ 96, 100, 59, 263, 0, 52, 0, 71, 0, 132,
+ 133, 0, 114, 75, 284, 285, 0, 0, 0, 81,
+ 84, 82, 171, 180, 168, 92, 0, 95, 97, 114,
+ 62, 114, 192, 114, 187, 0, 149, 0, 0, 114,
+ 147, 0, 25, 89, 85, 83, 25, 25, 192, 60,
70, 0, 141, 144, 0, 0, 114, 139, 142, 143,
- 150, 175, 136, 148, 25, 87, 180, 0, 0, 176,
- 134, 140, 0, 86, 93, 90, 25, 0, 0, 0,
- 165, 25, 177, 0, 0, 191, 91, 151
+ 150, 175, 136, 148, 25, 87, 0, 0, 0, 176,
+ 134, 140, 0, 86, 181, 93, 90, 25, 0, 0,
+ 0, 165, 25, 177, 0, 0, 192, 91, 151
};
/* YYDEFGOTO[NTERM-NUM]. */
-1, 46, 47, 48, 49, 286, 287, 288, 306, 307,
187, 279, 189, 289, 355, 190, 222, 220, 420, 52,
211, 125, 126, 53, 54, 55, 56, 178, 57, 82,
- 191, 192, 408, 409, 410, 411, 58, 198, 388, 468,
+ 191, 192, 408, 409, 410, 411, 58, 198, 388, 469,
389, 437, 390, 391, 59, 208, 193, 60, 87, 351,
61, 294, 199, 62, 194, 64, 65, 321, 323, 362,
290, 423, 291, 402, 445, 446, 447, 428, 429, 430,
- 133, 292, 341, 381, 299, 300, 301, 227, 293, 466,
- 92, 70, 97, 98, 352, 364, 353, 314, 203, 111,
- 112, 71, 72, 73, 195, 113, 74, 75, 76, 77,
- 116, 117, 78, 196, 197
+ 133, 292, 341, 381, 299, 300, 301, 227, 293, 467,
+ 92, 70, 436, 97, 98, 352, 364, 353, 314, 203,
+ 111, 112, 71, 72, 73, 195, 113, 74, 75, 76,
+ 77, 116, 117, 78, 196, 197
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
-#define YYPACT_NINF -308
+#define YYPACT_NINF -306
static const yytype_int16 yypact[] =
{
- 349, -308, -308, -308, -308, -308, -308, -308, -308, -38,
- -86, -308, -72, 35, -308, -308, -308, -308, 30, -308,
- 97, -308, 52, -308, -14, 18, 36, -308, -308, -308,
- -308, 57, 44, -308, -308, 1538, 40, 1538, 1538, -308,
- 1538, 1538, 1538, 1538, 1538, 1538, 102, -308, 473, -308,
- -308, -308, -308, 211, -308, -308, -308, -308, -308, -308,
- -308, -308, -308, 275, 640, -308, -308, -308, -308, -308,
- -308, -308, -308, -308, 96, -308, 1971, -308, -308, 82,
- -308, -308, 1469, -308, -308, -308, -308, -308, -32, -308,
- 83, -308, 84, 104, 1538, 88, 89, -308, -308, -308,
- 1538, -308, 186, 1538, 104, -308, 104, 104, 163, 104,
- 104, 108, 116, -308, 1971, 114, 105, 128, -88, -308,
- -308, 165, 231, 233, -308, 144, 174, -308, -5, 240,
- -308, 241, -308, 244, -308, 1538, 1538, 1538, 1538, 1538,
+ 349, -306, -306, -306, -306, -306, -306, -306, -306, -40,
+ -85, -306, -37, 35, -306, -306, -306, -306, 30, -306,
+ 68, -306, 52, -306, -24, 18, -16, -306, -306, -306,
+ -306, -22, -35, -306, -306, 1538, -14, 1538, 1538, -306,
+ 1538, 1538, 1538, 1538, 1538, 1538, 167, -306, 473, -306,
+ -306, -306, -306, 211, -306, -306, -306, -306, -306, -306,
+ -306, -306, -306, 217, 640, -306, -306, -306, -306, -306,
+ -306, -306, -306, -306, 76, -306, 1971, -306, -306, 60,
+ -306, -306, 1469, -306, -306, -306, -306, -306, -28, -306,
+ 67, -306, 71, 141, 1538, 69, 81, -306, -306, -306,
+ 1538, -306, 186, 1538, 141, -306, 141, 141, 163, 141,
+ 141, 87, 115, -306, 1971, 120, 96, 128, -86, -306,
+ -306, 165, 227, 230, -306, 138, 169, -306, -5, 238,
+ -306, 241, -306, 246, -306, 1538, 1538, 1538, 1538, 1538,
1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538,
- 1538, 1538, 1538, 1538, 1538, 1538, 1538, -308, -308, 1538,
+ 1538, 1538, 1538, 1538, 1538, 1538, 1538, -306, -306, 1538,
1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538,
- 1538, 1538, 1538, 1538, 1538, 245, 1538, -308, 1538, 232,
- 255, 1538, 1538, 231, 256, -308, 593, -308, 164, 248,
- -308, -308, -308, -308, 247, -308, -308, -308, 1538, 845,
- -308, 90, 1538, -308, 9, -82, 68, 1599, 1349, -308,
- 138, 1538, -308, 1538, 1538, -308, 1538, -308, 166, 171,
- -308, 166, 171, 1538, 1538, -308, -308, 267, 219, 221,
- 166, 1971, 962, 836, 836, 836, 2337, 2337, 2337, 2337,
+ 1538, 1538, 1538, 1538, 1538, 254, 1538, -306, 1538, 242,
+ 255, 1538, 1538, 227, 265, -306, 593, -306, 173, 257,
+ -306, -306, -306, -306, 261, -306, -306, -306, 1538, 845,
+ -306, 72, 1538, -306, 9, -82, 49, 1599, 1349, -306,
+ 143, 1538, -306, 1538, 1538, -306, 1538, -306, 171, 182,
+ -306, 171, 182, 1538, 1538, -306, -306, 277, 228, 231,
+ 171, 1971, 962, 836, 836, 836, 2337, 2337, 2337, 2337,
962, 962, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971,
1971, 2032, 2093, 340, 340, 340, 1971, 1727, 2154, 2215,
- 2276, 962, 962, 163, 163, 104, 104, 104, 1788, -308,
- 149, -62, 276, -308, 96, 96, -308, -308, 719, -308,
- 1849, -308, 154, 278, 1663, -308, 156, 971, -308, -308,
- -308, -308, -308, -308, 845, -308, 161, -69, 282, 167,
- 195, -308, 1469, 88, -308, -308, 169, 1349, -308, -55,
- -308, -308, 190, 63, 204, 231, -24, 86, 74, 178,
- 18, 292, 18, 187, 204, 1538, -308, -308, 1469, -308,
- -308, -308, 1538, 213, 188, -308, -308, 185, -308, 61,
- 63, -308, -308, 166, 11, -308, 62, 1469, 1538, -308,
- -308, 191, -308, -308, 1538, -308, -308, 1538, 1469, 9,
- -308, 18, 194, -308, 220, -308, -308, 1971, -308, 76,
- 182, 136, -308, -308, -308, -308, -308, -308, -308, -308,
- -308, -308, 224, 197, 282, -308, 202, 199, -308, -308,
- 62, -308, 265, -308, 92, -308, 203, -308, 205, 220,
- -308, 18, 394, -308, -308, -308, 1538, 235, 207, 136,
- -308, -308, -308, 1349, -308, -308, 336, -308, -308, 1469,
- -308, 1469, 166, 1097, -308, 337, -308, 316, 216, 529,
- -308, 1910, 1349, -308, -308, -308, 218, 1349, 166, -308,
- -308, 225, -308, -308, 66, 222, 1223, -308, -308, -308,
- -308, -5, -308, -308, 1349, -308, -308, 223, 226, -308,
- -308, -308, 345, -308, -308, -308, 1349, 239, 249, 238,
- 9, 1349, -308, 246, 250, 166, -308, -308
+ 2276, 962, 962, 163, 163, 141, 141, 141, 1788, -306,
+ 156, -55, 287, -306, 76, 76, -306, -306, 719, -306,
+ 1849, -306, 170, 288, 1663, -306, 175, 971, -306, -306,
+ -306, -306, -306, -306, 845, -306, 164, -69, 294, 172,
+ 207, -306, 1469, 69, -306, -306, 177, 1349, -306, 74,
+ -306, -306, 203, 63, 209, 227, 112, 73, 84, 183,
+ 18, 296, 18, 188, 209, 1538, -306, -306, 1469, -306,
+ -306, -306, 1538, 214, 192, -306, -306, 189, -306, 61,
+ 63, -306, -306, 171, 11, -306, 8, 1469, 1538, -306,
+ -306, 193, -306, -306, 1538, -306, -306, 1538, 1469, 9,
+ -306, 18, 196, -306, 222, -306, -306, 1971, -306, 88,
+ 179, 130, -306, -306, -306, -306, -306, -306, -306, -306,
+ -306, -306, 221, 201, 294, -306, 202, 199, -306, -306,
+ 8, -306, 268, -306, 90, -306, 200, -306, 205, 222,
+ -306, 18, 394, -306, -306, -306, 1538, 232, 210, 130,
+ -306, -306, -306, -306, -306, -306, 336, -306, -306, 1469,
+ -306, 1469, 171, 1097, -306, 337, -306, 316, 216, 529,
+ -306, 1910, 1349, -306, -306, -306, 1349, 1349, 171, -306,
+ -306, 224, -306, -306, 66, 219, 1223, -306, -306, -306,
+ -306, -5, -306, -306, 1349, -306, 220, 223, 226, -306,
+ -306, -306, 347, -306, -306, -306, -306, 1349, 239, 244,
+ 243, 9, 1349, -306, 247, 250, 171, -306, -306
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -308, -308, -308, -308, 328, 85, -308, 93, -209, 196,
- 1, -76, -244, 16, 59, 332, 268, 77, -308, -308,
- -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
- -308, -308, -308, -308, -15, -11, -308, -308, 15, -308,
- 17, -308, -308, -308, -308, -308, -308, -308, -193, 19,
- -308, -308, -308, -308, 0, -308, 335, -308, -308, -308,
- 31, -308, 39, -308, -308, -308, -40, -308, -308, -21,
- -308, 2, 27, -308, -307, -308, -271, -41, 3, -308,
- -308, -308, 398, -308, -20, 60, 78, -184, -308, -93,
- -308, -308, -308, -308, -308, -26, -17, -46, -18, -308,
- -308, -308, -308, -308, -308
+ -306, -306, -306, -306, 327, 85, -306, 93, -227, 197,
+ 1, -76, -244, 16, 58, 332, 270, 75, -306, -306,
+ -306, -306, -306, -306, -306, -306, -306, -306, -306, -306,
+ -306, -306, -306, -306, -15, -11, -306, -306, 15, -306,
+ 17, -306, -306, -306, -306, -306, -306, -306, -193, 19,
+ -306, -306, -306, -306, 0, -306, 335, -306, -306, -306,
+ 31, -306, 39, -306, -306, -306, -38, -306, -306, -23,
+ -306, 2, 27, -306, -305, -306, -271, -41, 3, -306,
+ -306, -306, -306, 398, -306, -20, 57, 80, -184, -306,
+ -93, -306, -306, -306, -306, -306, -26, -17, -46, -18,
+ -306, -306, -306, -306, -306, -306
};
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
positive, shift that token. If negative, reduce the rule which
number is the opposite. If zero, do what YYDEFACT says.
If YYTABLE_NINF, syntax error. */
-#define YYTABLE_NINF -205
+#define YYTABLE_NINF -206
static const yytype_int16 yytable[] =
{
- 63, 50, 68, 69, 93, 99, 188, 127, 295, 135,
- 210, 79, 297, 295, 297, 135, 51, 104, 115, 106,
+ 63, 50, 68, 69, 93, 99, 188, 127, 295, 79,
+ 210, 135, 297, 295, 297, 135, 51, 104, 115, 106,
107, 95, 108, 109, 110, 114, 114, 342, 118, 225,
- 339, 66, 88, 89, 340, 135, 85, 316, 84, 67,
- 81, 217, 135, -66, 96, 226, 324, 302, 63, 50,
- 68, 69, 398, 85, 83, 1, 2, 3, 345, 4,
- 5, 6, 7, 8, 51, 373, 95, 328, 374, 375,
- 376, 303, 377, 385, 347, 354, 18, 205, 20, 66,
- 21, 85, 207, 270, 368, 114, 85, 67, 80, 386,
- 200, 201, 128, 84, 387, 303, 27, 130, 349, 298,
- 91, 384, 119, 392, 32, 378, 33, 34, 85, 296,
- 85, 132, 94, 414, 397, 379, 380, 231, 232, 233,
+ 339, 66, 88, 89, 340, 386, 85, 316, 84, 67,
+ 387, 81, 135, 217, 96, 226, 324, 302, 63, 50,
+ 68, 69, 303, 85, 398, 1, 2, 3, 345, 4,
+ 5, 6, 7, 8, 51, 373, 95, 85, 374, 375,
+ 376, 91, 377, 385, 328, 84, 18, 205, 20, 66,
+ 21, 85, 207, 270, 368, 114, 80, 67, 102, 83,
+ 85, 103, 128, 303, 200, 201, 27, 130, 349, 298,
+ 101, 384, 94, 392, 32, 378, 33, 34, 85, 296,
+ 100, 132, 105, 414, 397, 379, 380, 231, 232, 233,
234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
244, 245, 246, 247, 248, 249, 250, 251, 252, 37,
38, 253, 254, 255, 256, 257, 258, 259, 260, 261,
262, 263, 264, 265, 266, 267, 268, 86, 114, 383,
- 115, 271, 100, 473, 274, 275, 105, 102, 280, 406,
- 103, 135, 43, 135, 44, 439, 350, 440, 45, 101,
- 284, 304, 357, 135, 114, 404, 405, 310, 311, 209,
- 312, 157, 158, 135, 309, 114, 114, 407, 114, 63,
- 50, 295, 331, 358, 436, 403, 317, 318, 177, 202,
- 204, -104, 206, 213, 121, 2, 3, 214, 4, 5,
- 6, 7, 8, 455, 174, 216, 188, 175, 457, 212,
- 176, 331, -67, 215, 218, 18, 221, 20, 441, 21,
- 223, 224, 122, 228, 229, 463, 22, 230, 269, 272,
- 157, 158, 188, 26, 458, 27, 123, 469, 273, 276,
- 281, 282, 474, 32, 283, 33, 34, 308, 315, 313,
- 319, 188, 320, 35, 322, 171, 172, 173, 327, 329,
- 332, 333, 188, 174, 335, 297, 175, 63, 50, 176,
- 338, 477, 344, 348, 63, 50, 343, 346, 37, 38,
- 360, 128, 363, 354, 359, 129, 130, 367, 361, 365,
- 371, 396, 370, 372, 394, 369, 400, 401, 131, 413,
- 132, 40, 393, 339, 415, 416, 41, 42, 395, 419,
- 114, 43, 421, 44, 422, 433, 114, 45, 432, 438,
- 450, 363, 451, 188, 452, 188, 456, 459, 467, -3,
- 460, 464, 1, 2, 3, 465, 4, 5, 6, 7,
- 8, 9, 10, 11, 12, 470, 472, 13, 14, 15,
- 16, 471, 17, 18, 19, 475, 120, 21, 476, 337,
- 336, 424, 278, 366, 22, 124, 23, 24, 431, 25,
- 219, 26, 356, 27, 434, 28, 29, 30, 435, 134,
- 31, 32, 427, 33, 34, 417, 461, 418, 453, 412,
- 462, 35, 36, 14, 15, 16, 90, 17, 382, 19,
- 0, 399, 0, 444, 443, 448, 449, 157, 158, 427,
+ 115, 271, 304, 406, 274, 275, 474, 119, 280, 357,
+ 135, 135, 43, 135, 44, 439, 350, 440, 45, -66,
+ 284, 135, 404, 405, 114, 135, 177, 310, 311, 209,
+ 312, 407, -104, 202, 309, 114, 114, 204, 114, 63,
+ 50, 295, 331, 347, 206, 455, 317, 318, 212, 456,
+ 457, 354, 213, 358, 121, 2, 3, 403, 4, 5,
+ 6, 7, 8, 214, 215, 216, 188, 463, 157, 158,
+ 218, 331, -67, 221, 223, 18, 224, 20, 441, 21,
+ 470, 228, 122, 128, 229, 475, 22, 129, 130, 230,
+ 157, 158, 188, 26, 458, 27, 123, 269, 273, 272,
+ 131, 174, 132, 32, 175, 33, 34, 176, 276, 281,
+ 282, 188, 308, 35, 313, 171, 172, 173, 283, 315,
+ 319, 320, 188, 174, 322, 327, 175, 63, 50, 176,
+ 329, 333, 478, 338, 63, 50, 332, 297, 37, 38,
+ 360, 343, 363, 335, 344, 346, 348, 367, 354, 359,
+ 365, 396, 361, 370, 371, 369, 394, 372, 400, 401,
+ 339, 40, 393, 413, 415, 416, 41, 42, 395, 421,
+ 114, 43, 419, 44, 422, 432, 114, 45, 433, 438,
+ 450, 363, 451, 188, 452, 188, 459, 460, 464, -3,
+ 468, 465, 1, 2, 3, 466, 4, 5, 6, 7,
+ 8, 9, 10, 11, 12, 471, 472, 13, 14, 15,
+ 16, 473, 17, 18, 19, 120, 476, 21, 477, 337,
+ 336, 424, 366, 278, 22, 124, 23, 24, 431, 25,
+ 356, 26, 219, 27, 434, 28, 29, 30, 435, 134,
+ 31, 32, 427, 33, 34, 417, 453, 418, 461, 412,
+ 462, 35, 36, 14, 15, 16, 90, 17, 399, 19,
+ 382, 0, 0, 444, 443, 448, 449, 157, 158, 427,
0, 23, 0, 0, 0, 0, 37, 38, 0, 425,
28, 29, 30, 0, 0, 39, 444, 443, 448, 449,
169, 170, 171, 172, 173, 0, 0, 0, 0, 40,
19, 0, 0, 21, 0, 136, 0, 0, 0, 0,
22, 0, 23, 24, 0, 25, 0, 26, 0, 27,
0, 28, 29, 30, 0, 0, 31, 32, 0, 33,
- 34, 0, -205, -205, -205, 0, 0, 35, 36, 144,
+ 34, 0, -206, -206, -206, 0, 0, 35, 36, 144,
145, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 157, 158, 0, 0, 159, 160, 161,
0, 0, 37, 38, 0, 0, 0, 0, 0, 0,
0, 45, 0, -14, 1, 2, 3, 0, 4, 5,
6, 7, 8, 9, 10, 11, 12, 0, 0, 0,
14, 15, 16, 0, 17, 18, 19, 0, 0, 21,
- 0, -205, 0, 0, 0, 0, 22, 0, 23, 24,
+ 0, -206, 0, 0, 0, 0, 22, 0, 23, 24,
0, 25, 0, 26, 0, 27, 0, 28, 29, 30,
0, 0, 31, 32, 0, 33, 34, 0, 0, 0,
- 0, 0, 0, 35, 36, -205, -205, 0, 0, 0,
+ 0, 0, 0, 35, 36, -206, -206, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 157,
158, 0, 0, 159, 160, 161, 0, 0, 37, 38,
- 0, 0, 0, 0, 0, 0, 0, 285, 0, -205,
- -205, 0, 169, 170, 171, 172, 173, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 285, 0, -206,
+ -206, 0, 169, 170, 171, 172, 173, 0, 0, 0,
0, 40, 174, 0, 0, 175, 41, 42, 176, 0,
0, 43, 0, 44, 0, 0, 0, 45, 0, -15,
1, 2, 3, 0, 4, 5, 6, 7, 8, 9,
142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
152, 153, 154, 155, 156, 0, 157, 158, 0, 0,
159, 160, 161, 0, 0, 0, 0, 0, 162, 136,
- 0, 163, -204, 164, 165, 166, 167, 168, 0, 169,
+ 0, 163, -205, 164, 165, 166, 167, 168, 0, 169,
170, 171, 172, 173, 0, 0, 0, 0, 0, 174,
0, 0, 175, 0, 0, 176, 137, 138, 139, 140,
141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
145, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 157, 158, 0, 0, 159, 160, 161,
0, 0, 0, 0, 0, 0, 136, 0, 0, 0,
- 0, 0, -205, 167, 168, 0, 169, 170, 171, 172,
+ 0, 0, -206, 167, 168, 0, 169, 170, 171, 172,
173, 0, 0, 0, 0, 0, 174, 0, 0, 175,
- 0, 0, 176, 137, 138, 139, -205, -205, -205, -205,
+ 0, 0, 176, 137, 138, 139, -206, -206, -206, -206,
144, 145, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 157, 158, 0, 0, 159, 160,
161, 0, 0, 0, 0, 0, 0, 0, 0, 0,
static const yytype_int16 yycheck[] =
{
- 0, 0, 0, 0, 22, 25, 82, 53, 201, 97,
- 103, 49, 3, 206, 3, 97, 0, 35, 44, 37,
+ 0, 0, 0, 0, 22, 25, 82, 53, 201, 49,
+ 103, 97, 3, 206, 3, 97, 0, 35, 44, 37,
38, 3, 40, 41, 42, 43, 44, 298, 45, 34,
- 99, 0, 13, 3, 103, 97, 18, 221, 3, 0,
- 126, 129, 97, 67, 25, 50, 230, 129, 48, 48,
- 48, 48, 359, 18, 126, 3, 4, 5, 302, 7,
- 8, 9, 10, 11, 48, 4, 3, 129, 7, 8,
- 9, 3, 11, 344, 129, 99, 24, 94, 26, 48,
- 28, 18, 100, 176, 328, 103, 18, 48, 126, 27,
- 122, 123, 26, 3, 32, 3, 44, 31, 35, 90,
- 3, 90, 0, 347, 52, 44, 54, 55, 18, 202,
- 18, 45, 126, 384, 358, 54, 55, 135, 136, 137,
+ 99, 0, 13, 3, 103, 27, 18, 221, 3, 0,
+ 32, 126, 97, 129, 25, 50, 230, 129, 48, 48,
+ 48, 48, 3, 18, 359, 3, 4, 5, 302, 7,
+ 8, 9, 10, 11, 48, 4, 3, 18, 7, 8,
+ 9, 3, 11, 344, 129, 3, 24, 94, 26, 48,
+ 28, 18, 100, 176, 328, 103, 126, 48, 123, 126,
+ 18, 126, 26, 3, 122, 123, 44, 31, 35, 90,
+ 122, 90, 126, 347, 52, 44, 54, 55, 18, 202,
+ 126, 45, 126, 384, 358, 54, 55, 135, 136, 137,
138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
148, 149, 150, 151, 152, 153, 154, 155, 156, 87,
88, 159, 160, 161, 162, 163, 164, 165, 166, 167,
168, 169, 170, 171, 172, 173, 174, 122, 176, 343,
- 186, 178, 126, 470, 181, 182, 126, 123, 186, 33,
- 126, 97, 120, 97, 122, 419, 113, 421, 126, 122,
- 198, 113, 96, 97, 202, 3, 4, 213, 214, 3,
- 216, 87, 88, 97, 211, 213, 214, 61, 216, 199,
- 199, 394, 278, 129, 413, 129, 223, 224, 126, 126,
- 126, 123, 123, 97, 3, 4, 5, 103, 7, 8,
- 9, 10, 11, 432, 120, 97, 302, 123, 437, 121,
- 126, 307, 67, 128, 3, 24, 3, 26, 422, 28,
- 96, 67, 31, 3, 3, 454, 35, 3, 3, 17,
- 87, 88, 328, 42, 438, 44, 45, 466, 3, 3,
- 96, 13, 471, 52, 17, 54, 55, 129, 97, 103,
- 3, 347, 53, 62, 53, 112, 113, 114, 129, 3,
- 126, 3, 358, 120, 128, 3, 123, 287, 287, 126,
- 129, 475, 97, 103, 294, 294, 129, 128, 87, 88,
- 320, 26, 322, 99, 126, 30, 31, 325, 16, 122,
- 122, 357, 99, 128, 123, 332, 122, 97, 43, 122,
- 45, 110, 348, 99, 122, 126, 115, 116, 354, 64,
- 348, 120, 129, 122, 129, 128, 354, 126, 103, 3,
- 3, 361, 26, 419, 128, 421, 128, 122, 3, 0,
- 128, 128, 3, 4, 5, 129, 7, 8, 9, 10,
- 11, 12, 13, 14, 15, 126, 128, 18, 19, 20,
- 21, 122, 23, 24, 25, 129, 48, 28, 128, 294,
- 287, 401, 186, 324, 35, 53, 37, 38, 406, 40,
- 122, 42, 315, 44, 409, 46, 47, 48, 409, 64,
- 51, 52, 402, 54, 55, 390, 446, 390, 429, 382,
- 451, 62, 63, 19, 20, 21, 18, 23, 340, 25,
- -1, 361, -1, 423, 423, 423, 423, 87, 88, 429,
+ 186, 178, 113, 33, 181, 182, 471, 0, 186, 96,
+ 97, 97, 120, 97, 122, 419, 113, 421, 126, 67,
+ 198, 97, 3, 4, 202, 97, 126, 213, 214, 3,
+ 216, 61, 123, 126, 211, 213, 214, 126, 216, 199,
+ 199, 394, 278, 129, 123, 432, 223, 224, 121, 436,
+ 437, 99, 97, 129, 3, 4, 5, 129, 7, 8,
+ 9, 10, 11, 103, 128, 97, 302, 454, 87, 88,
+ 3, 307, 67, 3, 96, 24, 67, 26, 422, 28,
+ 467, 3, 31, 26, 3, 472, 35, 30, 31, 3,
+ 87, 88, 328, 42, 438, 44, 45, 3, 3, 17,
+ 43, 120, 45, 52, 123, 54, 55, 126, 3, 96,
+ 13, 347, 129, 62, 103, 112, 113, 114, 17, 97,
+ 3, 53, 358, 120, 53, 129, 123, 287, 287, 126,
+ 3, 3, 476, 129, 294, 294, 126, 3, 87, 88,
+ 320, 129, 322, 128, 97, 128, 103, 325, 99, 126,
+ 122, 357, 16, 99, 122, 332, 123, 128, 122, 97,
+ 99, 110, 348, 122, 122, 126, 115, 116, 354, 129,
+ 348, 120, 64, 122, 129, 103, 354, 126, 128, 3,
+ 3, 361, 26, 419, 128, 421, 122, 128, 128, 0,
+ 3, 128, 3, 4, 5, 129, 7, 8, 9, 10,
+ 11, 12, 13, 14, 15, 126, 122, 18, 19, 20,
+ 21, 128, 23, 24, 25, 48, 129, 28, 128, 294,
+ 287, 401, 324, 186, 35, 53, 37, 38, 406, 40,
+ 315, 42, 122, 44, 409, 46, 47, 48, 409, 64,
+ 51, 52, 402, 54, 55, 390, 429, 390, 446, 382,
+ 451, 62, 63, 19, 20, 21, 18, 23, 361, 25,
+ 340, -1, -1, 423, 423, 423, 423, 87, 88, 429,
-1, 37, -1, -1, -1, -1, 87, 88, -1, 45,
46, 47, 48, -1, -1, 96, 446, 446, 446, 446,
110, 111, 112, 113, 114, -1, -1, -1, -1, 110,
110, 115, 116, 120, 122, 126, 131, 132, 133, 134,
140, 143, 149, 153, 154, 155, 156, 158, 166, 174,
177, 180, 183, 184, 185, 186, 190, 192, 201, 208,
- 211, 221, 222, 223, 226, 227, 228, 229, 232, 49,
+ 211, 222, 223, 224, 227, 228, 229, 230, 233, 49,
126, 126, 159, 126, 3, 18, 122, 178, 179, 3,
- 212, 3, 210, 228, 126, 3, 179, 212, 213, 214,
- 126, 122, 123, 126, 228, 126, 228, 228, 228, 228,
- 228, 219, 220, 225, 228, 225, 230, 231, 226, 0,
- 134, 3, 31, 45, 145, 151, 152, 227, 26, 30,
+ 213, 3, 210, 229, 126, 3, 179, 213, 214, 215,
+ 126, 122, 123, 126, 229, 126, 229, 229, 229, 229,
+ 229, 220, 221, 226, 229, 226, 231, 232, 227, 0,
+ 134, 3, 31, 45, 145, 151, 152, 228, 26, 30,
31, 43, 45, 200, 186, 97, 39, 66, 67, 68,
69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
79, 80, 81, 82, 83, 84, 85, 87, 88, 91,
92, 93, 99, 102, 104, 105, 106, 107, 108, 110,
111, 112, 113, 114, 120, 123, 126, 126, 157, 22,
29, 36, 41, 45, 65, 96, 122, 140, 141, 142,
- 145, 160, 161, 176, 184, 224, 233, 234, 167, 182,
- 122, 123, 126, 218, 126, 226, 123, 228, 175, 3,
- 219, 150, 121, 97, 103, 128, 97, 129, 3, 146,
+ 145, 160, 161, 176, 184, 225, 234, 235, 167, 182,
+ 122, 123, 126, 219, 126, 227, 123, 229, 175, 3,
+ 220, 150, 121, 97, 103, 128, 97, 129, 3, 146,
147, 3, 146, 96, 67, 34, 50, 207, 3, 3,
- 3, 228, 228, 228, 228, 228, 228, 228, 228, 228,
- 228, 228, 228, 228, 228, 228, 228, 228, 228, 228,
- 228, 228, 228, 228, 228, 228, 228, 228, 228, 228,
- 228, 228, 228, 228, 228, 228, 228, 228, 228, 3,
- 219, 226, 17, 3, 226, 226, 3, 128, 139, 141,
- 228, 96, 13, 17, 228, 96, 135, 136, 137, 143,
- 190, 192, 201, 208, 181, 178, 219, 3, 90, 204,
- 205, 206, 129, 3, 113, 129, 138, 139, 129, 226,
- 225, 225, 225, 103, 217, 97, 217, 226, 226, 3,
- 53, 187, 53, 188, 217, 103, 121, 129, 129, 3,
+ 3, 229, 229, 229, 229, 229, 229, 229, 229, 229,
+ 229, 229, 229, 229, 229, 229, 229, 229, 229, 229,
+ 229, 229, 229, 229, 229, 229, 229, 229, 229, 229,
+ 229, 229, 229, 229, 229, 229, 229, 229, 229, 3,
+ 220, 227, 17, 3, 227, 227, 3, 128, 139, 141,
+ 229, 96, 13, 17, 229, 96, 135, 136, 137, 143,
+ 190, 192, 201, 208, 181, 178, 220, 3, 90, 204,
+ 205, 206, 129, 3, 113, 129, 138, 139, 129, 227,
+ 226, 226, 226, 103, 218, 97, 218, 227, 227, 3,
+ 53, 187, 53, 188, 218, 103, 121, 129, 129, 3,
128, 141, 126, 3, 129, 128, 137, 135, 129, 99,
103, 202, 206, 129, 97, 142, 128, 129, 103, 35,
- 113, 179, 214, 216, 99, 144, 147, 96, 129, 126,
- 214, 16, 189, 214, 215, 122, 144, 228, 142, 226,
+ 113, 179, 215, 217, 99, 144, 147, 96, 129, 126,
+ 215, 16, 189, 215, 216, 122, 144, 229, 142, 227,
99, 122, 128, 4, 7, 8, 9, 11, 44, 54,
- 55, 203, 216, 217, 90, 206, 27, 32, 168, 170,
- 172, 173, 142, 225, 123, 225, 227, 142, 204, 215,
+ 55, 203, 217, 218, 90, 206, 27, 32, 168, 170,
+ 172, 173, 142, 226, 123, 226, 228, 142, 204, 216,
122, 97, 193, 129, 3, 4, 33, 61, 162, 163,
164, 165, 202, 122, 206, 122, 126, 168, 170, 64,
- 148, 129, 129, 191, 214, 45, 96, 184, 197, 198,
- 199, 228, 103, 128, 164, 165, 138, 171, 3, 142,
- 142, 217, 96, 140, 184, 194, 195, 196, 201, 208,
- 3, 26, 128, 199, 103, 138, 128, 138, 217, 122,
- 128, 196, 207, 138, 128, 129, 209, 3, 169, 138,
- 126, 122, 128, 204, 138, 129, 128, 217
+ 148, 129, 129, 191, 215, 45, 96, 184, 197, 198,
+ 199, 229, 103, 128, 164, 165, 212, 171, 3, 142,
+ 142, 218, 96, 140, 184, 194, 195, 196, 201, 208,
+ 3, 26, 128, 199, 103, 138, 138, 138, 218, 122,
+ 128, 196, 207, 138, 128, 128, 129, 209, 3, 169,
+ 138, 126, 122, 128, 204, 138, 129, 128, 218
};
#define yyerrok (yyerrstatus = 0)
YY_REDUCE_PRINT (yyn);
switch (yyn)
{
- case 24:
+
+ case 24:
+ if(as3_pass==2) {
-/* Line 1455 of yacc.c */
-#line 1509 "parser.y"
- {(yyval.code)=(yyvsp[(1) - (1)].code);;}
+/* Line 1464 of skeleton.m4 */
+#line 1573 "parser.y"
+ {(yyval.code)=(yyvsp[(1) - (1)].code);}
+ }
break;
- case 25:
-/* Line 1455 of yacc.c */
-#line 1510 "parser.y"
- {(yyval.code)=code_new();;}
+
+ case 25:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1574 "parser.y"
+ {(yyval.code)=code_new();}
+ }
break;
- case 26:
-/* Line 1455 of yacc.c */
-#line 1512 "parser.y"
- {(yyval.code)=code_append((yyvsp[(1) - (2)].code),(yyvsp[(2) - (2)].code));;}
+
+ case 26:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1576 "parser.y"
+ {(yyval.code)=code_append((yyvsp[(1) - (2)].code),(yyvsp[(2) - (2)].code));}
+ }
break;
- case 27:
-/* Line 1455 of yacc.c */
-#line 1513 "parser.y"
- {(yyval.code)=(yyvsp[(1) - (1)].code);;}
+
+ case 27:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1577 "parser.y"
+ {(yyval.code)=(yyvsp[(1) - (1)].code);}
+ }
break;
- case 38:
-/* Line 1455 of yacc.c */
-#line 1528 "parser.y"
- {(yyval.code)=0;;}
+
+ case 38:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1592 "parser.y"
+ {(yyval.code)=0;}
+ }
break;
- case 45:
-/* Line 1455 of yacc.c */
-#line 1536 "parser.y"
- {/*TODO*/(yyval.code)=0;;}
+
+ case 45:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1600 "parser.y"
+ {/*TODO*/(yyval.code)=0;}
+ }
break;
- case 46:
-/* Line 1455 of yacc.c */
-#line 1537 "parser.y"
- {/*TODO*/(yyval.code)=0;;}
+
+ case 46:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1601 "parser.y"
+ {/*TODO*/(yyval.code)=0;}
+ }
break;
- case 47:
-/* Line 1455 of yacc.c */
-#line 1539 "parser.y"
- {(yyval.code)=(yyvsp[(2) - (3)].code);;}
+
+ case 47:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1603 "parser.y"
+ {(yyval.code)=(yyvsp[(2) - (3)].code);}
+ }
break;
- case 48:
-/* Line 1455 of yacc.c */
-#line 1540 "parser.y"
- {(yyval.code)=0;;}
+
+ case 48:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1604 "parser.y"
+ {(yyval.code)=0;}
+ }
break;
- case 49:
-/* Line 1455 of yacc.c */
-#line 1541 "parser.y"
- {(yyval.code)=(yyvsp[(1) - (2)].code);;}
+
+ case 49:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1605 "parser.y"
+ {(yyval.code)=(yyvsp[(1) - (2)].code);}
+ }
break;
- case 50:
-/* Line 1455 of yacc.c */
-#line 1542 "parser.y"
- {(yyval.code)=(yyvsp[(1) - (1)].code);;}
+
+ case 50:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1606 "parser.y"
+ {(yyval.code)=(yyvsp[(1) - (1)].code);}
+ }
break;
- case 51:
-/* Line 1455 of yacc.c */
-#line 1546 "parser.y"
+
+ case 51:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1610 "parser.y"
{
- if((yyvsp[(1) - (1)].code)) as3_warning("code ignored");
-;}
+ code_t**cc = &global->init->method->body->code;
+ *cc = code_append(*cc, (yyvsp[(1) - (1)].code));
+}
+ }
break;
- case 52:
-/* Line 1455 of yacc.c */
-#line 1552 "parser.y"
- {(yyval.value)=(yyvsp[(2) - (2)].value);;}
+
+ case 52:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1617 "parser.y"
+ {(yyval.value)=(yyvsp[(2) - (2)].value);}
+ }
break;
- case 53:
-/* Line 1455 of yacc.c */
-#line 1553 "parser.y"
+
+ case 53:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1618 "parser.y"
{(yyval.value).c=abc_pushundefined(0);
(yyval.value).t=TYPE_ANY;
- ;}
+ }
+ }
break;
- case 54:
-/* Line 1455 of yacc.c */
-#line 1557 "parser.y"
- {(yyval.code)=(yyvsp[(2) - (2)].code);;}
+
+ case 54:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1622 "parser.y"
+ {(yyval.code)=(yyvsp[(2) - (2)].code);}
+ }
break;
- case 55:
-/* Line 1455 of yacc.c */
-#line 1558 "parser.y"
- {(yyval.code)=(yyvsp[(2) - (2)].code);;}
+
+ case 55:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1623 "parser.y"
+ {(yyval.code)=(yyvsp[(2) - (2)].code);}
+ }
break;
- case 56:
-/* Line 1455 of yacc.c */
-#line 1560 "parser.y"
- {(yyval.code) = (yyvsp[(1) - (1)].code);;}
+
+ case 56:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1625 "parser.y"
+ {(yyval.code) = (yyvsp[(1) - (1)].code);}
+ }
break;
- case 57:
-/* Line 1455 of yacc.c */
-#line 1561 "parser.y"
- {(yyval.code) = code_append((yyvsp[(1) - (3)].code), (yyvsp[(3) - (3)].code));;}
+
+ case 57:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1626 "parser.y"
+ {(yyval.code) = code_append((yyvsp[(1) - (3)].code), (yyvsp[(3) - (3)].code));}
+ }
break;
- case 58:
-/* Line 1455 of yacc.c */
-#line 1564 "parser.y"
+
+ case 58:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1629 "parser.y"
{
if(variable_exists((yyvsp[(1) - (3)].id)))
syntaxerror("Variable %s already defined", (yyvsp[(1) - (3)].id));
state->method->initcode = abc_setlocal(state->method->initcode, index);
}*/
//printf("variable %s -> %d (%s)\n", $2->text, index, $4.t?$4.t->name:"");
-;}
+}
+ }
break;
- case 59:
-/* Line 1455 of yacc.c */
-#line 1604 "parser.y"
- {(yyval.code) = code_new();;}
+
+ case 59:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1669 "parser.y"
+ {(yyval.code) = code_new();}
+ }
break;
- case 60:
-/* Line 1455 of yacc.c */
-#line 1605 "parser.y"
- {(yyval.code)=(yyvsp[(2) - (2)].code);;}
+
+ case 60:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1670 "parser.y"
+ {(yyval.code)=(yyvsp[(2) - (2)].code);}
+ }
break;
- case 61:
-/* Line 1455 of yacc.c */
-#line 1608 "parser.y"
- {new_state();;}
+
+ case 61:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1673 "parser.y"
+ {new_state();}
+ }
break;
- case 62:
-/* Line 1455 of yacc.c */
-#line 1608 "parser.y"
+
+ case 62:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1673 "parser.y"
{
(yyval.code) = code_new();
}
(yyval.code) = var_block((yyval.code));
old_state();
-;}
+}
+ }
break;
- case 63:
-/* Line 1455 of yacc.c */
-#line 1627 "parser.y"
- {(yyval.code)=code_new();;}
+
+ case 63:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1692 "parser.y"
+ {(yyval.code)=code_new();}
+ }
break;
- case 66:
-/* Line 1455 of yacc.c */
-#line 1632 "parser.y"
+
+ case 66:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1697 "parser.y"
{
(yyval.id)=(yyvsp[(2) - (3)].id);new_variable((yyvsp[(2) - (3)].id),(yyvsp[(3) - (3)].classinfo),1);
-;}
+}
+ }
break;
- case 67:
-/* Line 1455 of yacc.c */
-#line 1635 "parser.y"
+
+ case 67:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1700 "parser.y"
{
(yyval.id)=(yyvsp[(1) - (1)].id);
-;}
+}
+ }
break;
- case 68:
-/* Line 1455 of yacc.c */
-#line 1639 "parser.y"
- {new_state();(yyval.for_start).name=(yyvsp[(1) - (2)].id);(yyval.for_start).each=0;;}
+
+ case 68:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1704 "parser.y"
+ {new_state();(yyval.for_start).name=(yyvsp[(1) - (2)].id);(yyval.for_start).each=0;}
+ }
break;
- case 69:
-/* Line 1455 of yacc.c */
-#line 1640 "parser.y"
- {new_state();(yyval.for_start).name=(yyvsp[(1) - (3)].id);(yyval.for_start).each=1;;}
+
+ case 69:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1705 "parser.y"
+ {new_state();(yyval.for_start).name=(yyvsp[(1) - (3)].id);(yyval.for_start).each=1;}
+ }
break;
- case 70:
-/* Line 1455 of yacc.c */
-#line 1642 "parser.y"
+
+ case 70:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1707 "parser.y"
{
if((yyvsp[(1) - (8)].for_start).each) syntaxerror("invalid syntax: ; not allowed in for each statement");
(yyval.code) = code_new();
(yyval.code) = var_block((yyval.code));
old_state();
-;}
+}
+ }
break;
- case 71:
-/* Line 1455 of yacc.c */
-#line 1662 "parser.y"
+
+ case 71:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1727 "parser.y"
{
variable_t*var = find_variable((yyvsp[(2) - (6)].id));
char*tmp1name = concat2((yyvsp[(2) - (6)].id), "__tmp1__");
free(tmp1name);
free(tmp2name);
-;}
+}
+ }
break;
- case 72:
-/* Line 1455 of yacc.c */
-#line 1705 "parser.y"
- {new_state();;}
+
+ case 72:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1770 "parser.y"
+ {new_state();}
+ }
break;
- case 73:
-/* Line 1455 of yacc.c */
-#line 1705 "parser.y"
+
+ case 73:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1770 "parser.y"
{
(yyval.code) = code_new();
(yyval.code) = var_block((yyval.code));
old_state();
-;}
+}
+ }
break;
- case 74:
-/* Line 1455 of yacc.c */
-#line 1724 "parser.y"
- {new_state();;}
+
+ case 74:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1789 "parser.y"
+ {new_state();}
+ }
break;
- case 75:
-/* Line 1455 of yacc.c */
-#line 1724 "parser.y"
+
+ case 75:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1789 "parser.y"
{
(yyval.code) = code_new();
code_t*loopstart = (yyval.code) = abc_label((yyval.code));
(yyval.code) = var_block((yyval.code));
old_state();
-;}
+}
+ }
break;
- case 76:
-/* Line 1455 of yacc.c */
-#line 1739 "parser.y"
+
+ case 76:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1804 "parser.y"
{
(yyval.code) = abc___break__(0, "");
-;}
+}
+ }
break;
- case 77:
-/* Line 1455 of yacc.c */
-#line 1742 "parser.y"
+
+ case 77:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1807 "parser.y"
{
(yyval.code) = abc___break__(0, (yyvsp[(2) - (2)].id));
-;}
+}
+ }
break;
- case 78:
-/* Line 1455 of yacc.c */
-#line 1745 "parser.y"
+
+ case 78:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1810 "parser.y"
{
(yyval.code) = abc___continue__(0, "");
-;}
+}
+ }
break;
- case 79:
-/* Line 1455 of yacc.c */
-#line 1748 "parser.y"
+
+ case 79:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1813 "parser.y"
{
(yyval.code) = abc___continue__(0, (yyvsp[(2) - (2)].id));
-;}
+}
+ }
break;
- case 80:
-/* Line 1455 of yacc.c */
-#line 1752 "parser.y"
- {(yyval.code)=0;;}
+
+ case 80:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1817 "parser.y"
+ {(yyval.code)=0;}
+ }
break;
- case 81:
-/* Line 1455 of yacc.c */
-#line 1753 "parser.y"
- {(yyval.code)=(yyvsp[(1) - (1)].code);;}
+
+ case 81:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1818 "parser.y"
+ {(yyval.code)=(yyvsp[(1) - (1)].code);}
+ }
break;
- case 82:
-/* Line 1455 of yacc.c */
-#line 1754 "parser.y"
- {(yyval.code)=(yyvsp[(1) - (1)].code);;}
+
+ case 82:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1819 "parser.y"
+ {(yyval.code)=(yyvsp[(1) - (1)].code);}
+ }
break;
- case 83:
-/* Line 1455 of yacc.c */
-#line 1755 "parser.y"
- {(yyval.code)=code_append((yyvsp[(1) - (2)].code),(yyvsp[(2) - (2)].code));;}
+
+ case 83:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1820 "parser.y"
+ {(yyval.code)=code_append((yyvsp[(1) - (2)].code),(yyvsp[(2) - (2)].code));}
+ }
break;
- case 84:
-/* Line 1455 of yacc.c */
-#line 1756 "parser.y"
+
+ case 84:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1821 "parser.y"
{(yyval.code)=(yyvsp[(1) - (1)].code);}
+ }
break;
- case 85:
-/* Line 1455 of yacc.c */
-#line 1757 "parser.y"
- {(yyval.code)=code_append((yyval.code),(yyvsp[(2) - (2)].code));;}
+
+ case 85:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1822 "parser.y"
+ {(yyval.code)=code_append((yyval.code),(yyvsp[(2) - (2)].code));}
+ }
break;
- case 86:
-/* Line 1455 of yacc.c */
-#line 1759 "parser.y"
+
+ case 86:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1824 "parser.y"
{
(yyval.code) = abc_dup(0);
(yyval.code) = code_append((yyval.code), (yyvsp[(2) - (4)].value).c);
}
code_t*e = (yyval.code) = abc_nop((yyval.code));
j->branch = e;
-;}
+}
+ }
break;
- case 87:
-/* Line 1455 of yacc.c */
-#line 1770 "parser.y"
+
+ case 87:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1835 "parser.y"
{
(yyval.code) = (yyvsp[(3) - (3)].code);
-;}
+}
+ }
break;
- case 88:
-/* Line 1455 of yacc.c */
-#line 1773 "parser.y"
- {new_state();;}
+
+ case 88:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1838 "parser.y"
+ {new_state();}
+ }
break;
- case 89:
-/* Line 1455 of yacc.c */
-#line 1773 "parser.y"
+
+ case 89:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1838 "parser.y"
{
(yyval.code)=(yyvsp[(4) - (8)].value).c;
(yyval.code) = code_append((yyval.code), (yyvsp[(7) - (8)].code));
(yyval.code) = var_block((yyval.code));
old_state();
-;}
- break;
+}
+ }
+ break;
+
- case 90:
+
+ case 90:
+ if(as3_pass==2) {
-/* Line 1455 of yacc.c */
-#line 1802 "parser.y"
- {new_state();state->exception_name=(yyvsp[(3) - (5)].id);new_variable((yyvsp[(3) - (5)].id), (yyvsp[(4) - (5)].classinfo), 0);;}
+/* Line 1464 of skeleton.m4 */
+#line 1867 "parser.y"
+ {new_state();state->exception_name=(yyvsp[(3) - (5)].id);new_variable((yyvsp[(3) - (5)].id), (yyvsp[(4) - (5)].classinfo), 0);}
+ }
break;
- case 91:
-/* Line 1455 of yacc.c */
-#line 1803 "parser.y"
+
+ case 91:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1868 "parser.y"
{
namespace_t name_ns = {ACCESS_PACKAGE, ""};
multiname_t name = {QNAME, &name_ns, 0, (yyvsp[(3) - (9)].id)};
c = var_block(c);
old_state();
-;}
+}
+ }
break;
- case 92:
-/* Line 1455 of yacc.c */
-#line 1822 "parser.y"
- {new_state();state->exception_name=0;;}
+
+ case 92:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1887 "parser.y"
+ {new_state();state->exception_name=0;}
+ }
break;
- case 93:
-/* Line 1455 of yacc.c */
-#line 1822 "parser.y"
+
+ case 93:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1887 "parser.y"
{
(yyvsp[(4) - (5)].code) = var_block((yyvsp[(4) - (5)].code));
if(!(yyvsp[(4) - (5)].code)) {
old_state();
(yyval.exception) = e;
}
-;}
+}
+ }
break;
- case 94:
-/* Line 1455 of yacc.c */
-#line 1839 "parser.y"
- {(yyval.catch_list).l=list_new();(yyval.catch_list).finally=0;list_append((yyval.catch_list).l,(yyvsp[(1) - (1)].exception));;}
+
+ case 94:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1904 "parser.y"
+ {(yyval.catch_list).l=list_new();(yyval.catch_list).finally=0;list_append((yyval.catch_list).l,(yyvsp[(1) - (1)].exception));}
+ }
break;
- case 95:
-/* Line 1455 of yacc.c */
-#line 1840 "parser.y"
- {(yyval.catch_list)=(yyvsp[(1) - (2)].catch_list);list_append((yyval.catch_list).l,(yyvsp[(2) - (2)].exception));;}
+
+ case 95:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1905 "parser.y"
+ {(yyval.catch_list)=(yyvsp[(1) - (2)].catch_list);list_append((yyval.catch_list).l,(yyvsp[(2) - (2)].exception));}
+ }
break;
- case 96:
-/* Line 1455 of yacc.c */
-#line 1841 "parser.y"
+
+ case 96:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1906 "parser.y"
{(yyval.catch_list)=(yyvsp[(1) - (1)].catch_list);}
+ }
break;
- case 97:
-/* Line 1455 of yacc.c */
-#line 1842 "parser.y"
+
+ case 97:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1907 "parser.y"
{
(yyval.catch_list) = (yyvsp[(1) - (2)].catch_list);
(yyval.catch_list).finally = 0;
list_append((yyval.catch_list).l,(yyvsp[(2) - (2)].exception));
(yyval.catch_list).finally = (yyvsp[(2) - (2)].exception)->to;(yyvsp[(2) - (2)].exception)->to=0;
}
-;}
+}
+ }
break;
- case 98:
-/* Line 1455 of yacc.c */
-#line 1850 "parser.y"
+
+ case 98:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1915 "parser.y"
{
(yyval.catch_list).l=list_new();
(yyval.catch_list).finally = 0;
list_append((yyval.catch_list).l,(yyvsp[(1) - (1)].exception));
(yyval.catch_list).finally = (yyvsp[(1) - (1)].exception)->to;(yyvsp[(1) - (1)].exception)->to=0;
}
-;}
+}
+ }
break;
- case 99:
-/* Line 1455 of yacc.c */
-#line 1859 "parser.y"
- {new_state();;}
+
+ case 99:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1924 "parser.y"
+ {new_state();}
+ }
break;
- case 100:
-/* Line 1455 of yacc.c */
-#line 1859 "parser.y"
+
+ case 100:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1924 "parser.y"
{
code_t*out = abc_nop(0);
(yyval.code) = var_block((yyval.code));
old_state();
-;}
+}
+ }
break;
- case 101:
-/* Line 1455 of yacc.c */
-#line 1904 "parser.y"
+
+ case 101:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1969 "parser.y"
{
(yyval.code)=(yyvsp[(2) - (2)].value).c;
(yyval.code)=abc_throw((yyval.code));
-;}
+}
+ }
break;
- case 102:
-/* Line 1455 of yacc.c */
-#line 1908 "parser.y"
+
+ case 102:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1973 "parser.y"
{
if(!state->exception_name)
syntaxerror("re-throw only possible within a catch block");
(yyval.code)=code_new();
(yyval.code)=abc_getlocal((yyval.code), v->index);
(yyval.code)=abc_throw((yyval.code));
-;}
+}
+ }
break;
- case 103:
-/* Line 1455 of yacc.c */
-#line 1919 "parser.y"
+
+ case 103:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1984 "parser.y"
{
(yyval.code) = (yyvsp[(3) - (5)].value).c;
(yyval.code) = abc_pushscope((yyval.code));
(yyval.code) = code_append((yyval.code), (yyvsp[(5) - (5)].code));
(yyval.code) = abc_popscope((yyval.code));
-;}
+}
+ }
break;
- case 105:
-/* Line 1455 of yacc.c */
-#line 1929 "parser.y"
- {(yyval.id)="package";;}
+
+ case 105:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1994 "parser.y"
+ {PASS12 (yyval.id)="package";}
+ }
break;
- case 106:
-/* Line 1455 of yacc.c */
-#line 1931 "parser.y"
- {(yyval.id) = concat3((yyvsp[(1) - (3)].id),".",(yyvsp[(3) - (3)].id));free((yyvsp[(1) - (3)].id));(yyvsp[(1) - (3)].id)=0;;}
+
+ case 106:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1996 "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;
- case 107:
-/* Line 1455 of yacc.c */
-#line 1932 "parser.y"
- {(yyval.id)=strdup((yyvsp[(1) - (1)].id));;}
+
+ case 107:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1997 "parser.y"
+ {PASS12 (yyval.id)=strdup((yyvsp[(1) - (1)].id));}
+ }
break;
- case 108:
-/* Line 1455 of yacc.c */
-#line 1934 "parser.y"
- {startpackage((yyvsp[(2) - (3)].id));free((yyvsp[(2) - (3)].id));(yyvsp[(2) - (3)].id)=0;;}
+
+ case 108:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1999 "parser.y"
+ {PASS12 startpackage((yyvsp[(2) - (3)].id));free((yyvsp[(2) - (3)].id));(yyvsp[(2) - (3)].id)=0;}
+ }
break;
- case 109:
-/* Line 1455 of yacc.c */
-#line 1934 "parser.y"
- {endpackage();(yyval.code)=0;;}
+
+ case 109:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2000 "parser.y"
+ {PASS12 endpackage();(yyval.code)=0;}
+ }
break;
- case 110:
-/* Line 1455 of yacc.c */
-#line 1935 "parser.y"
- {startpackage("");}
+
+ case 110:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2001 "parser.y"
+ {PASS12 startpackage("");}
+ }
break;
- case 111:
-/* Line 1455 of yacc.c */
-#line 1935 "parser.y"
- {endpackage();(yyval.code)=0;;}
+
+ case 111:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2002 "parser.y"
+ {PASS12 endpackage();(yyval.code)=0;}
+ }
break;
- case 112:
-/* Line 1455 of yacc.c */
-#line 1937 "parser.y"
+
+ case 112:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2004 "parser.y"
{
classinfo_t*c = (yyvsp[(2) - (2)].classinfo);
if(!c)
state_has_imports();
dict_put(state->imports, c->name, c);
(yyval.code)=0;
-;}
+}
+ }
break;
- case 113:
-/* Line 1455 of yacc.c */
-#line 1945 "parser.y"
+
+ case 113:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2012 "parser.y"
{
NEW(import_t,i);
i->package = (yyvsp[(2) - (4)].id);
state_has_imports();
list_append(state->wildcard_imports, i);
(yyval.code)=0;
-;}
+}
+ }
break;
- case 114:
-/* Line 1455 of yacc.c */
-#line 1955 "parser.y"
- {(yyval.flags)=0;;}
+
+ case 114:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2022 "parser.y"
+ {PASS12 (yyval.flags)=0;}
+ }
break;
- case 115:
-/* Line 1455 of yacc.c */
-#line 1956 "parser.y"
- {(yyval.flags)=(yyvsp[(1) - (1)].flags);}
+
+ case 115:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2023 "parser.y"
+ {PASS12 (yyval.flags)=(yyvsp[(1) - (1)].flags);}
+ }
break;
- case 116:
-/* Line 1455 of yacc.c */
-#line 1957 "parser.y"
- {(yyval.flags)=(yyvsp[(1) - (1)].token);;}
+
+ case 116:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2024 "parser.y"
+ {PASS12 (yyval.flags)=(yyvsp[(1) - (1)].token);}
+ }
break;
- case 117:
-/* Line 1455 of yacc.c */
-#line 1958 "parser.y"
- {(yyval.flags)=(yyvsp[(1) - (2)].flags)|(yyvsp[(2) - (2)].token);;}
+
+ case 117:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2025 "parser.y"
+ {PASS12 (yyval.flags)=(yyvsp[(1) - (2)].flags)|(yyvsp[(2) - (2)].token);}
+ }
break;
- case 118:
-/* Line 1455 of yacc.c */
-#line 1960 "parser.y"
- {(yyval.token)=FLAG_PUBLIC;;}
+
+ case 118:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2027 "parser.y"
+ {PASS12 (yyval.token)=FLAG_PUBLIC;}
+ }
break;
- case 119:
-/* Line 1455 of yacc.c */
-#line 1961 "parser.y"
- {(yyval.token)=FLAG_PRIVATE;;}
+
+ case 119:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2028 "parser.y"
+ {PASS12 (yyval.token)=FLAG_PRIVATE;}
+ }
break;
- case 120:
-/* Line 1455 of yacc.c */
-#line 1962 "parser.y"
- {(yyval.token)=FLAG_PROTECTED;;}
+
+ case 120:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2029 "parser.y"
+ {PASS12 (yyval.token)=FLAG_PROTECTED;}
+ }
break;
- case 121:
-/* Line 1455 of yacc.c */
-#line 1963 "parser.y"
- {(yyval.token)=FLAG_STATIC;;}
+
+ case 121:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2030 "parser.y"
+ {PASS12 (yyval.token)=FLAG_STATIC;}
+ }
break;
- case 122:
-/* Line 1455 of yacc.c */
-#line 1964 "parser.y"
- {(yyval.token)=FLAG_DYNAMIC;;}
+
+ case 122:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2031 "parser.y"
+ {PASS12 (yyval.token)=FLAG_DYNAMIC;}
+ }
break;
- case 123:
-/* Line 1455 of yacc.c */
-#line 1965 "parser.y"
- {(yyval.token)=FLAG_FINAL;;}
+
+ case 123:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2032 "parser.y"
+ {PASS12 (yyval.token)=FLAG_FINAL;}
+ }
break;
- case 124:
-/* Line 1455 of yacc.c */
-#line 1966 "parser.y"
- {(yyval.token)=FLAG_OVERRIDE;;}
+
+ case 124:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2033 "parser.y"
+ {PASS12 (yyval.token)=FLAG_OVERRIDE;}
+ }
break;
- case 125:
-/* Line 1455 of yacc.c */
-#line 1967 "parser.y"
- {(yyval.token)=FLAG_NATIVE;;}
+
+ case 125:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2034 "parser.y"
+ {PASS12 (yyval.token)=FLAG_NATIVE;}
+ }
break;
- case 126:
-/* Line 1455 of yacc.c */
-#line 1968 "parser.y"
- {(yyval.token)=FLAG_PACKAGEINTERNAL;;}
+
+ case 126:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2035 "parser.y"
+ {PASS12 (yyval.token)=FLAG_PACKAGEINTERNAL;}
+ }
break;
- case 127:
-/* Line 1455 of yacc.c */
-#line 1970 "parser.y"
- {(yyval.classinfo)=registry_getobjectclass();;}
+
+ case 127:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2037 "parser.y"
+ {(yyval.classinfo)=registry_getobjectclass();}
+ }
break;
- case 128:
-/* Line 1455 of yacc.c */
-#line 1971 "parser.y"
- {(yyval.classinfo)=(yyvsp[(2) - (2)].classinfo);;}
+
+ case 128:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2038 "parser.y"
+ {(yyval.classinfo)=(yyvsp[(2) - (2)].classinfo);}
+ }
break;
- case 129:
-/* Line 1455 of yacc.c */
-#line 1973 "parser.y"
- {(yyval.classinfo_list)=list_new();;}
+
+ case 129:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2040 "parser.y"
+ {PASS12 (yyval.classinfo_list)=list_new();}
+ }
break;
- case 130:
-/* Line 1455 of yacc.c */
-#line 1974 "parser.y"
- {(yyval.classinfo_list)=(yyvsp[(2) - (2)].classinfo_list);;}
+
+ case 130:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2041 "parser.y"
+ {PASS12 (yyval.classinfo_list)=(yyvsp[(2) - (2)].classinfo_list);}
+ }
break;
- case 131:
-/* Line 1455 of yacc.c */
-#line 1976 "parser.y"
- {(yyval.classinfo_list)=list_new();;}
+
+ case 131:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2043 "parser.y"
+ {PASS12 (yyval.classinfo_list)=list_new();}
+ }
break;
- case 132:
-/* Line 1455 of yacc.c */
-#line 1977 "parser.y"
- {(yyval.classinfo_list)=(yyvsp[(2) - (2)].classinfo_list);;}
+
+ case 132:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2044 "parser.y"
+ {PASS12 (yyval.classinfo_list)=(yyvsp[(2) - (2)].classinfo_list);}
+ }
break;
- case 133:
-/* Line 1455 of yacc.c */
-#line 1981 "parser.y"
- {startclass((yyvsp[(1) - (6)].flags),(yyvsp[(3) - (6)].id),(yyvsp[(4) - (6)].classinfo),(yyvsp[(5) - (6)].classinfo_list), 0);;}
+
+ case 133:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2048 "parser.y"
+ {PASS12 startclass((yyvsp[(1) - (6)].flags),(yyvsp[(3) - (6)].id),(yyvsp[(4) - (6)].classinfo),(yyvsp[(5) - (6)].classinfo_list), 0);}
+ }
break;
- case 134:
-/* Line 1455 of yacc.c */
-#line 1983 "parser.y"
- {endclass();(yyval.code)=0;;}
+
+ case 134:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2050 "parser.y"
+ {PASS12 endclass();(yyval.code)=0;}
+ }
break;
- case 135:
-/* Line 1455 of yacc.c */
-#line 1987 "parser.y"
- {startclass((yyvsp[(1) - (5)].flags),(yyvsp[(3) - (5)].id),0,(yyvsp[(4) - (5)].classinfo_list),1);;}
+
+ case 135:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2054 "parser.y"
+ {PASS12 startclass((yyvsp[(1) - (5)].flags),(yyvsp[(3) - (5)].id),0,(yyvsp[(4) - (5)].classinfo_list),1);}
+ }
break;
- case 136:
-/* Line 1455 of yacc.c */
-#line 1989 "parser.y"
- {endclass();(yyval.code)=0;;}
+
+ case 136:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2056 "parser.y"
+ {PASS12 endclass();(yyval.code)=0;}
+ }
break;
- case 144:
-/* Line 1455 of yacc.c */
-#line 2001 "parser.y"
+
+ case 144:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2068 "parser.y"
{
code_t*c = state->cls->static_init;
c = code_append(c, (yyvsp[(1) - (1)].code));
state->cls->static_init = c;
-;}
+}
+ }
break;
- case 150:
-/* Line 1455 of yacc.c */
-#line 2012 "parser.y"
+
+ case 150:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2079 "parser.y"
{
syntaxerror("variable declarations not allowed in interfaces");
-;}
+}
+ }
break;
- case 151:
-/* Line 1455 of yacc.c */
-#line 2015 "parser.y"
+
+ case 151:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2082 "parser.y"
{
+ PASS12
(yyvsp[(1) - (8)].flags) |= FLAG_PUBLIC;
if((yyvsp[(1) - (8)].flags)&(FLAG_PRIVATE|FLAG_PACKAGEINTERNAL|FLAG_PROTECTED)) {
syntaxerror("invalid method modifiers: interface methods always need to be public");
}
startfunction(0,(yyvsp[(1) - (8)].flags),(yyvsp[(3) - (8)].token),(yyvsp[(4) - (8)].id),&(yyvsp[(6) - (8)].params),(yyvsp[(8) - (8)].classinfo));
endfunction(0,(yyvsp[(1) - (8)].flags),(yyvsp[(3) - (8)].token),(yyvsp[(4) - (8)].id),&(yyvsp[(6) - (8)].params),(yyvsp[(8) - (8)].classinfo), 0);
-;}
+}
+ }
break;
- case 154:
-/* Line 1455 of yacc.c */
-#line 2028 "parser.y"
+
+ case 154:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2096 "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) {
}
(yyval.code)=0;
-;}
+}
+ }
break;
- case 155:
-/* Line 1455 of yacc.c */
-#line 2086 "parser.y"
- {(yyval.constant)=0;;}
+
+ case 155:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2155 "parser.y"
+ {(yyval.constant)=0;}
+ }
break;
- case 156:
-/* Line 1455 of yacc.c */
-#line 2087 "parser.y"
- {(yyval.constant)=(yyvsp[(2) - (2)].constant);;}
+
+ case 156:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2156 "parser.y"
+ {(yyval.constant)=(yyvsp[(2) - (2)].constant);}
+ }
break;
- case 157:
-/* Line 1455 of yacc.c */
-#line 2089 "parser.y"
- {(yyval.constant) = constant_new_int((yyvsp[(1) - (1)].number_uint));;}
+
+ case 157:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2158 "parser.y"
+ {(yyval.constant) = constant_new_int((yyvsp[(1) - (1)].number_uint));}
+ }
break;
- case 158:
-/* Line 1455 of yacc.c */
-#line 2090 "parser.y"
- {(yyval.constant) = constant_new_int((yyvsp[(1) - (1)].number_int));;}
+
+ case 158:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2159 "parser.y"
+ {(yyval.constant) = constant_new_int((yyvsp[(1) - (1)].number_int));}
+ }
break;
- case 159:
-/* Line 1455 of yacc.c */
-#line 2091 "parser.y"
- {(yyval.constant) = constant_new_uint((yyvsp[(1) - (1)].number_uint));;}
+
+ case 159:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2160 "parser.y"
+ {(yyval.constant) = constant_new_uint((yyvsp[(1) - (1)].number_uint));}
+ }
break;
- case 160:
-/* Line 1455 of yacc.c */
-#line 2092 "parser.y"
- {(yyval.constant) = constant_new_float((yyvsp[(1) - (1)].number_float));;}
+
+ case 160:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2161 "parser.y"
+ {(yyval.constant) = constant_new_float((yyvsp[(1) - (1)].number_float));}
+ }
break;
- case 161:
-/* Line 1455 of yacc.c */
-#line 2093 "parser.y"
- {(yyval.constant) = constant_new_string2((yyvsp[(1) - (1)].str).str,(yyvsp[(1) - (1)].str).len);;}
+
+ case 161:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2162 "parser.y"
+ {(yyval.constant) = constant_new_string2((yyvsp[(1) - (1)].str).str,(yyvsp[(1) - (1)].str).len);}
+ }
break;
- case 162:
-/* Line 1455 of yacc.c */
-#line 2095 "parser.y"
- {(yyval.constant) = constant_new_true((yyvsp[(1) - (1)].token));;}
+
+ case 162:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2164 "parser.y"
+ {(yyval.constant) = constant_new_true((yyvsp[(1) - (1)].token));}
+ }
break;
- case 163:
-/* Line 1455 of yacc.c */
-#line 2096 "parser.y"
- {(yyval.constant) = constant_new_false((yyvsp[(1) - (1)].token));;}
+
+ case 163:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2165 "parser.y"
+ {(yyval.constant) = constant_new_false((yyvsp[(1) - (1)].token));}
+ }
break;
- case 164:
-/* Line 1455 of yacc.c */
-#line 2097 "parser.y"
- {(yyval.constant) = constant_new_null((yyvsp[(1) - (1)].token));;}
+
+ case 164:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2166 "parser.y"
+ {(yyval.constant) = constant_new_null((yyvsp[(1) - (1)].token));}
+ }
break;
- case 165:
-/* Line 1455 of yacc.c */
-#line 2102 "parser.y"
+
+ case 165:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2171 "parser.y"
{
memset(&(yyval.params),0,sizeof((yyval.params)));
-;}
+}
+ }
break;
- case 166:
-/* Line 1455 of yacc.c */
-#line 2105 "parser.y"
+
+ case 166:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2174 "parser.y"
{
(yyval.params)=(yyvsp[(1) - (1)].params);
-;}
+}
+ }
break;
- case 167:
-/* Line 1455 of yacc.c */
-#line 2110 "parser.y"
+
+ case 167:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2179 "parser.y"
{
memset(&(yyval.params),0,sizeof((yyval.params)));
(yyval.params).varargs=1;
list_append((yyval.params).list, (yyvsp[(2) - (2)].param));
-;}
+}
+ }
break;
- case 168:
-/* Line 1455 of yacc.c */
-#line 2115 "parser.y"
+
+ case 168:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2184 "parser.y"
{
(yyval.params) =(yyvsp[(1) - (4)].params);
(yyval.params).varargs=1;
list_append((yyval.params).list, (yyvsp[(4) - (4)].param));
-;}
+}
+ }
break;
- case 169:
-/* Line 1455 of yacc.c */
-#line 2122 "parser.y"
+
+ case 169:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2191 "parser.y"
{
(yyval.params) = (yyvsp[(1) - (3)].params);
list_append((yyval.params).list, (yyvsp[(3) - (3)].param));
-;}
+}
+ }
break;
- case 170:
-/* Line 1455 of yacc.c */
-#line 2126 "parser.y"
+
+ case 170:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2195 "parser.y"
{
memset(&(yyval.params),0,sizeof((yyval.params)));
list_append((yyval.params).list, (yyvsp[(1) - (1)].param));
-;}
+}
+ }
break;
- case 171:
-/* Line 1455 of yacc.c */
-#line 2131 "parser.y"
+
+ case 171:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2200 "parser.y"
{
(yyval.param) = malloc(sizeof(param_t));
(yyval.param)->name=(yyvsp[(1) - (4)].id);
(yyval.param)->type = (yyvsp[(3) - (4)].classinfo);
(yyval.param)->value = (yyvsp[(4) - (4)].constant);
-;}
+}
+ }
break;
- case 172:
-/* Line 1455 of yacc.c */
-#line 2137 "parser.y"
+
+ case 172:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2206 "parser.y"
{
(yyval.param) = malloc(sizeof(param_t));
(yyval.param)->name=(yyvsp[(1) - (2)].id);
(yyval.param)->type = TYPE_ANY;
(yyval.param)->value = (yyvsp[(2) - (2)].constant);
-;}
+}
+ }
break;
- case 173:
-/* Line 1455 of yacc.c */
-#line 2143 "parser.y"
- {(yyval.token)=(yyvsp[(1) - (1)].token);;}
+
+ case 173:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2212 "parser.y"
+ {(yyval.token)=(yyvsp[(1) - (1)].token);}
+ }
break;
- case 174:
-/* Line 1455 of yacc.c */
-#line 2144 "parser.y"
- {(yyval.token)=(yyvsp[(1) - (1)].token);;}
+
+ case 174:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2213 "parser.y"
+ {(yyval.token)=(yyvsp[(1) - (1)].token);}
+ }
break;
- case 175:
-/* Line 1455 of yacc.c */
-#line 2145 "parser.y"
- {(yyval.token)=0;;}
+
+ case 175:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2214 "parser.y"
+ {(yyval.token)=0;}
+ }
break;
- case 176:
-/* Line 1455 of yacc.c */
-#line 2148 "parser.y"
- {startfunction(0,(yyvsp[(1) - (9)].flags),(yyvsp[(3) - (9)].token),(yyvsp[(4) - (9)].id),&(yyvsp[(6) - (9)].params),(yyvsp[(8) - (9)].classinfo));}
+
+ case 176:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2217 "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;
- case 177:
-/* Line 1455 of yacc.c */
-#line 2149 "parser.y"
+
+ case 177:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2218 "parser.y"
{
+ PASS1 old_state();
+ PASS2
+ if(!state->method->info) syntaxerror("internal error");
code_t*c = 0;
if(state->method->late_binding) {
c = abc_getlocal_0(c);
c = abc_constructsuper(c, 0);
}
c = wrap_function(c, 0, (yyvsp[(11) - (12)].code));
+
endfunction(0,(yyvsp[(1) - (12)].flags),(yyvsp[(3) - (12)].token),(yyvsp[(4) - (12)].id),&(yyvsp[(6) - (12)].params),(yyvsp[(8) - (12)].classinfo),c);
(yyval.code)=0;
-;}
+}
+ }
break;
- case 179:
-/* Line 1455 of yacc.c */
-#line 2166 "parser.y"
- {(yyval.id)=0;;}
+
+ case 179:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2239 "parser.y"
+ {(yyval.id)=0;}
+ }
break;
- case 180:
-/* Line 1455 of yacc.c */
-#line 2168 "parser.y"
- {
- syntaxerror("nested functions not supported yet");
-;}
+
+ case 180:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2241 "parser.y"
+ {PASS12 innerfunction((yyvsp[(2) - (7)].id),&(yyvsp[(4) - (7)].params),(yyvsp[(6) - (7)].classinfo));}
+ }
break;
- case 181:
-/* Line 1455 of yacc.c */
-#line 2175 "parser.y"
+
+ case 181:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2242 "parser.y"
{
+ PASS1 old_state();
+ PASS2
+ memberinfo_t*f = state->method->info;
+ if(!f) syntaxerror("internal error");
+
+ code_t*c = 0;
+ c = wrap_function(c, 0, (yyvsp[(9) - (10)].code));
+
+ abc_method_t*abc = endfunction(0,0,0,(yyvsp[(2) - (10)].id),&(yyvsp[(4) - (10)].params),(yyvsp[(6) - (10)].classinfo),c);
+
+ (yyval.value).c = abc_newfunction(0, abc);
+ (yyval.value).t = TYPE_FUNCTION(f);
+}
+ }
+ break;
+
+
+ case 182:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2260 "parser.y"
+ {
+ PASS1 (yyval.classinfo)=0;
+ PASS2
/* try current package */
(yyval.classinfo) = find_class((yyvsp[(1) - (1)].id));
if(!(yyval.classinfo)) syntaxerror("Could not find class %s\n", (yyvsp[(1) - (1)].id));
-;}
+}
+ }
break;
- case 182:
-/* Line 1455 of yacc.c */
-#line 2182 "parser.y"
+
+ case 183:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2268 "parser.y"
{
+ PASS1 (yyval.classinfo)=0;
+ PASS2
(yyval.classinfo) = registry_findclass((yyvsp[(1) - (3)].id), (yyvsp[(3) - (3)].id));
if(!(yyval.classinfo)) syntaxerror("Couldn't find class %s.%s\n", (yyvsp[(1) - (3)].id), (yyvsp[(3) - (3)].id));
free((yyvsp[(1) - (3)].id));(yyvsp[(1) - (3)].id)=0;
-;}
+}
+ }
break;
- case 185:
-/* Line 1455 of yacc.c */
-#line 2191 "parser.y"
- {(yyval.classinfo_list)=list_new();list_append((yyval.classinfo_list), (yyvsp[(1) - (1)].classinfo));;}
+
+ case 186:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2279 "parser.y"
+ {PASS12 (yyval.classinfo_list)=list_new();list_append((yyval.classinfo_list), (yyvsp[(1) - (1)].classinfo));}
+ }
break;
- case 186:
-/* Line 1455 of yacc.c */
-#line 2192 "parser.y"
- {(yyval.classinfo_list)=(yyvsp[(1) - (3)].classinfo_list);list_append((yyval.classinfo_list),(yyvsp[(3) - (3)].classinfo));;}
+
+ case 187:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2280 "parser.y"
+ {PASS12 (yyval.classinfo_list)=(yyvsp[(1) - (3)].classinfo_list);list_append((yyval.classinfo_list),(yyvsp[(3) - (3)].classinfo));}
+ }
break;
- case 187:
-/* Line 1455 of yacc.c */
-#line 2194 "parser.y"
- {(yyval.classinfo)=(yyvsp[(1) - (1)].classinfo);;}
+
+ case 188:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2282 "parser.y"
+ {(yyval.classinfo)=(yyvsp[(1) - (1)].classinfo);}
+ }
break;
- case 188:
-/* Line 1455 of yacc.c */
-#line 2195 "parser.y"
- {(yyval.classinfo)=registry_getanytype();;}
+
+ case 189:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2283 "parser.y"
+ {(yyval.classinfo)=registry_getanytype();}
+ }
break;
- case 189:
-/* Line 1455 of yacc.c */
-#line 2196 "parser.y"
- {(yyval.classinfo)=registry_getanytype();;}
+
+ case 190:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2284 "parser.y"
+ {(yyval.classinfo)=registry_getanytype();}
+ }
break;
- case 190:
-/* Line 1455 of yacc.c */
-#line 2205 "parser.y"
- {(yyval.classinfo)=(yyvsp[(2) - (2)].classinfo);;}
+
+ case 191:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2293 "parser.y"
+ {(yyval.classinfo)=(yyvsp[(2) - (2)].classinfo);}
+ }
break;
- case 191:
-/* Line 1455 of yacc.c */
-#line 2206 "parser.y"
- {(yyval.classinfo)=0;;}
+
+ case 192:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2294 "parser.y"
+ {(yyval.classinfo)=0;}
+ }
break;
- case 192:
-/* Line 1455 of yacc.c */
-#line 2210 "parser.y"
- {(yyval.value_list).cc=0;(yyval.value_list).len=0;;}
+
+ case 193:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2298 "parser.y"
+ {(yyval.value_list).cc=0;(yyval.value_list).len=0;}
+ }
break;
- case 193:
-/* Line 1455 of yacc.c */
-#line 2211 "parser.y"
+
+ case 194:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2299 "parser.y"
{(yyval.value_list)=(yyvsp[(2) - (3)].value_list);}
+ }
break;
- case 194:
-/* Line 1455 of yacc.c */
-#line 2213 "parser.y"
- {(yyval.value_list).cc=0;(yyval.value_list).len=0;;}
+
+ case 195:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2301 "parser.y"
+ {(yyval.value_list).cc=0;(yyval.value_list).len=0;}
+ }
break;
- case 196:
-/* Line 1455 of yacc.c */
-#line 2215 "parser.y"
+
+ case 197:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2303 "parser.y"
{(yyval.value_list).len=1;
(yyval.value_list).cc = (yyvsp[(1) - (1)].value).c;
- ;}
+ }
+ }
break;
- case 197:
-/* Line 1455 of yacc.c */
-#line 2218 "parser.y"
+
+ case 198:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2306 "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);
- ;}
+ }
+ }
break;
- case 198:
-/* Line 1455 of yacc.c */
-#line 2223 "parser.y"
+
+ case 199:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2311 "parser.y"
{
MULTINAME(m, (yyvsp[(2) - (3)].classinfo));
(yyval.value).c = code_new();
else
(yyval.value).c = abc_constructprop2((yyval.value).c, &m, (yyvsp[(3) - (3)].value_list).len);
(yyval.value).t = (yyvsp[(2) - (3)].classinfo);
-;}
+}
+ }
break;
- case 199:
-/* Line 1455 of yacc.c */
-#line 2247 "parser.y"
+
+ case 200:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2335 "parser.y"
{
(yyval.value).c = (yyvsp[(1) - (4)].value).c;
(yyval.value).t = TYPE_ANY;
}
-;}
+}
+ }
break;
- case 200:
-/* Line 1455 of yacc.c */
-#line 2295 "parser.y"
+
+ case 201:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2383 "parser.y"
{
if(!state->cls) syntaxerror("super() not allowed outside of a class");
if(!state->method) syntaxerror("super() not allowed outside of a function");
(yyval.value).c = abc_constructsuper((yyval.value).c, (yyvsp[(3) - (4)].value_list).len);
(yyval.value).c = abc_pushundefined((yyval.value).c);
(yyval.value).t = TYPE_ANY;
-;}
+}
+ }
break;
- case 201:
-/* Line 1455 of yacc.c */
-#line 2315 "parser.y"
+
+ case 202:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2403 "parser.y"
{
(yyval.value).c = (yyvsp[(2) - (2)].value).c;
if((yyval.value).c->opcode == OPCODE_COERCE_A) {
(yyval.value).c = abc_deleteproperty2((yyval.value).c, &m);
}
(yyval.value).t = TYPE_BOOLEAN;
-;}
+}
+ }
break;
- case 202:
-/* Line 1455 of yacc.c */
-#line 2336 "parser.y"
+
+ case 203:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2424 "parser.y"
{
(yyval.code) = abc_returnvoid(0);
-;}
+}
+ }
break;
- case 203:
-/* Line 1455 of yacc.c */
-#line 2339 "parser.y"
+
+ case 204:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2427 "parser.y"
{
(yyval.code) = (yyvsp[(2) - (2)].value).c;
(yyval.code) = abc_returnvalue((yyval.code));
-;}
+}
+ }
break;
- case 204:
-/* Line 1455 of yacc.c */
-#line 2346 "parser.y"
- {(yyval.value)=(yyvsp[(1) - (1)].value);;}
+
+ case 205:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2434 "parser.y"
+ {(yyval.value)=(yyvsp[(1) - (1)].value);}
+ }
break;
- case 205:
-/* Line 1455 of yacc.c */
-#line 2347 "parser.y"
- {(yyval.value) = (yyvsp[(1) - (1)].value);;}
+
+ case 206:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2435 "parser.y"
+ {(yyval.value) = (yyvsp[(1) - (1)].value);}
+ }
break;
- case 206:
-/* Line 1455 of yacc.c */
-#line 2348 "parser.y"
+
+ case 207:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2436 "parser.y"
{
(yyval.value).c = (yyvsp[(1) - (3)].value).c;
(yyval.value).c = cut_last_push((yyval.value).c);
(yyval.value).c = code_append((yyval.value).c,(yyvsp[(3) - (3)].value).c);
(yyval.value).t = (yyvsp[(3) - (3)].value).t;
-;}
+}
+ }
break;
- case 207:
-/* Line 1455 of yacc.c */
-#line 2354 "parser.y"
+
+ case 208:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2442 "parser.y"
{
(yyval.code)=cut_last_push((yyvsp[(1) - (1)].value).c);
-;}
+}
+ }
break;
- case 208:
-/* Line 1455 of yacc.c */
-#line 2360 "parser.y"
- {(yyval.value) = (yyvsp[(1) - (1)].value);;}
+
+ case 209:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2448 "parser.y"
+ {(yyval.value) = (yyvsp[(1) - (1)].value);}
+ }
break;
- case 210:
-/* Line 1455 of yacc.c */
-#line 2364 "parser.y"
- {(yyval.value) = (yyvsp[(1) - (1)].value);;}
+
+ case 211:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2452 "parser.y"
+ {(yyval.value) = (yyvsp[(1) - (1)].value);}
+ }
break;
- case 211:
-/* Line 1455 of yacc.c */
-#line 2366 "parser.y"
- {(yyval.value) = (yyvsp[(1) - (1)].value);;}
+
+ case 212:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2454 "parser.y"
+ {(yyval.value) = (yyvsp[(1) - (1)].value);}
+ }
break;
- case 212:
-/* Line 1455 of yacc.c */
-#line 2368 "parser.y"
- {(yyval.value) = (yyvsp[(1) - (1)].value);;}
+
+ case 213:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2456 "parser.y"
+ {(yyval.value) = (yyvsp[(1) - (1)].value);}
+ }
break;
- case 213:
-/* Line 1455 of yacc.c */
-#line 2370 "parser.y"
+
+ case 214:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2458 "parser.y"
{
(yyval.value).c = 0;
namespace_t ns = {ACCESS_PACKAGE, ""};
(yyval.value).c = abc_construct((yyval.value).c, 2);
}
(yyval.value).t = TYPE_REGEXP;
-;}
+}
+ }
break;
- case 214:
-/* Line 1455 of yacc.c */
-#line 2387 "parser.y"
+
+ case 215:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2475 "parser.y"
{(yyval.value).c = abc_pushbyte(0, (yyvsp[(1) - (1)].number_uint));
//MULTINAME(m, registry_getintclass());
//$$.c = abc_coerce2($$.c, &m); // FIXME
(yyval.value).t = TYPE_INT;
- ;}
+ }
+ }
break;
- case 215:
-/* Line 1455 of yacc.c */
-#line 2392 "parser.y"
+
+ case 216:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2480 "parser.y"
{(yyval.value).c = abc_pushshort(0, (yyvsp[(1) - (1)].number_uint));
(yyval.value).t = TYPE_INT;
- ;}
+ }
+ }
break;
- case 216:
-/* Line 1455 of yacc.c */
-#line 2395 "parser.y"
+
+ case 217:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2483 "parser.y"
{(yyval.value).c = abc_pushint(0, (yyvsp[(1) - (1)].number_int));
(yyval.value).t = TYPE_INT;
- ;}
+ }
+ }
break;
- case 217:
-/* Line 1455 of yacc.c */
-#line 2398 "parser.y"
+
+ case 218:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2486 "parser.y"
{(yyval.value).c = abc_pushuint(0, (yyvsp[(1) - (1)].number_uint));
(yyval.value).t = TYPE_UINT;
- ;}
+ }
+ }
break;
- case 218:
-/* Line 1455 of yacc.c */
-#line 2401 "parser.y"
+
+ case 219:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2489 "parser.y"
{(yyval.value).c = abc_pushdouble(0, (yyvsp[(1) - (1)].number_float));
(yyval.value).t = TYPE_FLOAT;
- ;}
+ }
+ }
break;
- case 219:
-/* Line 1455 of yacc.c */
-#line 2404 "parser.y"
+
+ case 220:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2492 "parser.y"
{(yyval.value).c = abc_pushstring2(0, &(yyvsp[(1) - (1)].str));
(yyval.value).t = TYPE_STRING;
- ;}
+ }
+ }
break;
- case 220:
-/* Line 1455 of yacc.c */
-#line 2407 "parser.y"
+
+ case 221:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2495 "parser.y"
{(yyval.value).c = abc_pushundefined(0);
(yyval.value).t = TYPE_ANY;
- ;}
+ }
+ }
break;
- case 221:
-/* Line 1455 of yacc.c */
-#line 2410 "parser.y"
+
+ case 222:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2498 "parser.y"
{(yyval.value).c = abc_pushtrue(0);
(yyval.value).t = TYPE_BOOLEAN;
- ;}
+ }
+ }
break;
- case 222:
-/* Line 1455 of yacc.c */
-#line 2413 "parser.y"
+
+ case 223:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2501 "parser.y"
{(yyval.value).c = abc_pushfalse(0);
(yyval.value).t = TYPE_BOOLEAN;
- ;}
+ }
+ }
break;
- case 223:
-/* Line 1455 of yacc.c */
-#line 2416 "parser.y"
+
+ case 224:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2504 "parser.y"
{(yyval.value).c = abc_pushnull(0);
(yyval.value).t = TYPE_NULL;
- ;}
+ }
+ }
break;
- case 225:
-/* Line 1455 of yacc.c */
-#line 2421 "parser.y"
+
+ case 226:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2509 "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;
- ;}
+ }
+ }
break;
- case 226:
-/* Line 1455 of yacc.c */
-#line 2424 "parser.y"
+
+ case 227:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2512 "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;
- ;}
+ }
+ }
break;
- case 227:
-/* Line 1455 of yacc.c */
-#line 2427 "parser.y"
+
+ case 228:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2515 "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;
- ;}
+ }
+ }
break;
- case 228:
-/* Line 1455 of yacc.c */
-#line 2430 "parser.y"
+
+ case 229:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2518 "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;
- ;}
+ }
+ }
break;
- case 229:
-/* Line 1455 of yacc.c */
-#line 2433 "parser.y"
+
+ case 230:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2521 "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;
- ;}
+ }
+ }
break;
- case 230:
-/* Line 1455 of yacc.c */
-#line 2436 "parser.y"
+
+ case 231:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2524 "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;
- ;}
+ }
+ }
break;
- case 231:
-/* Line 1455 of yacc.c */
-#line 2439 "parser.y"
+
+ case 232:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2527 "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;
- ;}
+ }
+ }
break;
- case 232:
-/* Line 1455 of yacc.c */
-#line 2442 "parser.y"
+
+ case 233:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2530 "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;
- ;}
+ }
+ }
break;
- case 233:
-/* Line 1455 of yacc.c */
-#line 2446 "parser.y"
+
+ case 234:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2534 "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);
(yyval.value).c = converttype((yyval.value).c, (yyvsp[(3) - (3)].value).t, (yyval.value).t);
code_t*label = (yyval.value).c = abc_label((yyval.value).c);
jmp->branch = label;
- ;}
+ }
+ }
break;
- case 234:
-/* Line 1455 of yacc.c */
-#line 2457 "parser.y"
+
+ case 235:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2545 "parser.y"
{
(yyval.value).t = join_types((yyvsp[(1) - (3)].value).t, (yyvsp[(3) - (3)].value).t, 'A');
/*printf("%08x:\n",$1.t);
(yyval.value).c = converttype((yyval.value).c, (yyvsp[(3) - (3)].value).t, (yyval.value).t);
code_t*label = (yyval.value).c = abc_label((yyval.value).c);
jmp->branch = label;
- ;}
+ }
+ }
break;
- case 235:
-/* Line 1455 of yacc.c */
-#line 2475 "parser.y"
+
+ case 236:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2563 "parser.y"
{(yyval.value).c=(yyvsp[(2) - (2)].value).c;
(yyval.value).c = abc_not((yyval.value).c);
(yyval.value).t = TYPE_BOOLEAN;
- ;}
+ }
+ }
break;
- case 236:
-/* Line 1455 of yacc.c */
-#line 2480 "parser.y"
+
+ case 237:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2568 "parser.y"
{(yyval.value).c=(yyvsp[(2) - (2)].value).c;
(yyval.value).c = abc_bitnot((yyval.value).c);
(yyval.value).t = TYPE_INT;
- ;}
+ }
+ }
break;
- case 237:
-/* Line 1455 of yacc.c */
-#line 2485 "parser.y"
+
+ case 238:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2573 "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;
- ;}
+ }
+ }
break;
- case 238:
-/* Line 1455 of yacc.c */
-#line 2490 "parser.y"
+
+ case 239:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2578 "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;
- ;}
+ }
+ }
break;
- case 239:
-/* Line 1455 of yacc.c */
-#line 2495 "parser.y"
+
+ case 240:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2583 "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;
- ;}
+ }
+ }
break;
- case 240:
-/* Line 1455 of yacc.c */
-#line 2500 "parser.y"
+
+ case 241:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2588 "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;
- ;}
+ }
+ }
break;
- case 241:
-/* Line 1455 of yacc.c */
-#line 2504 "parser.y"
+
+ case 242:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2592 "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;
- ;}
+ }
+ }
break;
- case 242:
-/* Line 1455 of yacc.c */
-#line 2508 "parser.y"
+
+ case 243:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2596 "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;
- ;}
+ }
+ }
break;
- case 243:
-/* Line 1455 of yacc.c */
-#line 2513 "parser.y"
+
+ case 244:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2601 "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;
- ;}
+ }
+ }
break;
- case 244:
-/* Line 1455 of yacc.c */
-#line 2517 "parser.y"
+
+ case 245:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2605 "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;
- ;}
+ }
+ }
break;
- case 245:
-/* Line 1455 of yacc.c */
-#line 2521 "parser.y"
+
+ case 246:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2609 "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);
(yyval.value).c = abc_add((yyval.value).c);
(yyval.value).t = join_types((yyvsp[(1) - (3)].value).t,(yyvsp[(3) - (3)].value).t,'+');
}
- ;}
+ }
+ }
break;
- case 246:
-/* Line 1455 of yacc.c */
-#line 2530 "parser.y"
+
+ case 247:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2618 "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);
(yyval.value).c = abc_subtract((yyval.value).c);
(yyval.value).t = TYPE_NUMBER;
}
- ;}
+ }
+ }
break;
- case 247:
-/* Line 1455 of yacc.c */
-#line 2539 "parser.y"
+
+ case 248:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2627 "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);
(yyval.value).c = abc_multiply((yyval.value).c);
(yyval.value).t = TYPE_NUMBER;
}
- ;}
+ }
+ }
break;
- case 248:
-/* Line 1455 of yacc.c */
-#line 2549 "parser.y"
+
+ case 249:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2637 "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;
- ;}
+ }
+ }
break;
- case 249:
-/* Line 1455 of yacc.c */
-#line 2554 "parser.y"
+
+ case 250:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2642 "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);
(yyval.value).c = abc_astypelate((yyval.value).c);
(yyval.value).t = TYPE_ANY;
}
- ;}
+ }
+ }
break;
- case 250:
-/* Line 1455 of yacc.c */
-#line 2567 "parser.y"
+
+ case 251:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2655 "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;
- ;}
+ }
+ }
break;
- case 251:
-/* Line 1455 of yacc.c */
-#line 2572 "parser.y"
+
+ case 252:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2660 "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;
- ;}
+ }
+ }
break;
- case 252:
-/* Line 1455 of yacc.c */
-#line 2577 "parser.y"
+
+ case 253:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2665 "parser.y"
{
(yyval.value).c = (yyvsp[(3) - (4)].value).c;
(yyval.value).c = abc_typeof((yyval.value).c);
(yyval.value).t = TYPE_STRING;
- ;}
+ }
+ }
break;
- case 253:
-/* Line 1455 of yacc.c */
-#line 2583 "parser.y"
+
+ case 254:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2671 "parser.y"
{
(yyval.value).c = cut_last_push((yyvsp[(2) - (2)].value).c);
(yyval.value).c = abc_pushundefined((yyval.value).c);
(yyval.value).t = TYPE_ANY;
- ;}
+ }
+ }
break;
- case 254:
-/* Line 1455 of yacc.c */
-#line 2589 "parser.y"
+
+ case 255:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2677 "parser.y"
{ (yyval.value).c = abc_pushundefined(0);
(yyval.value).t = TYPE_ANY;
- ;}
+ }
+ }
break;
- case 255:
-/* Line 1455 of yacc.c */
-#line 2593 "parser.y"
- {(yyval.value)=(yyvsp[(2) - (3)].value);;}
+
+ case 256:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2681 "parser.y"
+ {(yyval.value)=(yyvsp[(2) - (3)].value);}
+ }
break;
- case 256:
-/* Line 1455 of yacc.c */
-#line 2595 "parser.y"
+
+ case 257:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2683 "parser.y"
{
(yyval.value)=(yyvsp[(2) - (2)].value);
if(IS_INT((yyvsp[(2) - (2)].value).t)) {
(yyval.value).c=abc_negate((yyval.value).c);
(yyval.value).t = TYPE_NUMBER;
}
-;}
+}
+ }
break;
- case 257:
-/* Line 1455 of yacc.c */
-#line 2606 "parser.y"
+
+ case 258:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2694 "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
-;}
+}
+ }
break;
- case 258:
-/* Line 1455 of yacc.c */
-#line 2615 "parser.y"
+
+ case 259:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2703 "parser.y"
{
(yyval.value).c = code_new();
(yyval.value).c = code_append((yyval.value).c, (yyvsp[(2) - (3)].value_list).cc);
(yyval.value).c = abc_newarray((yyval.value).c, (yyvsp[(2) - (3)].value_list).len);
(yyval.value).t = registry_getarrayclass();
-;}
+}
+ }
break;
- case 259:
-/* Line 1455 of yacc.c */
-#line 2622 "parser.y"
- {(yyval.value_list).cc=0;(yyval.value_list).len=0;;}
+
+ case 260:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2710 "parser.y"
+ {(yyval.value_list).cc=0;(yyval.value_list).len=0;}
+ }
break;
- case 260:
-/* Line 1455 of yacc.c */
-#line 2623 "parser.y"
+
+ case 261:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2711 "parser.y"
{(yyval.value_list)=(yyvsp[(1) - (1)].value_list);}
+ }
break;
- case 261:
-/* Line 1455 of yacc.c */
-#line 2625 "parser.y"
+
+ case 262:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2713 "parser.y"
{
(yyval.value_list).cc = 0;
(yyval.value_list).cc = code_append((yyval.value_list).cc, (yyvsp[(1) - (3)].value).c);
(yyval.value_list).cc = code_append((yyval.value_list).cc, (yyvsp[(3) - (3)].value).c);
(yyval.value_list).len = 2;
-;}
+}
+ }
break;
- case 262:
-/* Line 1455 of yacc.c */
-#line 2631 "parser.y"
+
+ case 263:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2719 "parser.y"
{
(yyval.value_list).cc = (yyvsp[(1) - (5)].value_list).cc;
(yyval.value_list).len = (yyvsp[(1) - (5)].value_list).len+2;
(yyval.value_list).cc = code_append((yyval.value_list).cc, (yyvsp[(3) - (5)].value).c);
(yyval.value_list).cc = code_append((yyval.value_list).cc, (yyvsp[(5) - (5)].value).c);
-;}
+}
+ }
break;
- case 263:
-/* Line 1455 of yacc.c */
-#line 2640 "parser.y"
+
+ case 264:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2728 "parser.y"
{
(yyval.value).c = code_new();
(yyval.value).c = code_append((yyval.value).c, (yyvsp[(2) - (3)].value_list).cc);
(yyval.value).c = abc_newobject((yyval.value).c, (yyvsp[(2) - (3)].value_list).len/2);
(yyval.value).t = registry_getobjectclass();
-;}
+}
+ }
break;
- case 264:
-/* Line 1455 of yacc.c */
-#line 2647 "parser.y"
+
+ case 265:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2735 "parser.y"
{
code_t*c = (yyvsp[(3) - (3)].value).c;
if(BOTH_INT((yyvsp[(1) - (3)].value).t,(yyvsp[(3) - (3)].value).t)) {
c=converttype(c, join_types((yyvsp[(1) - (3)].value).t, (yyvsp[(3) - (3)].value).t, '*'), (yyvsp[(1) - (3)].value).t);
(yyval.value).c = toreadwrite((yyvsp[(1) - (3)].value).c, c, 0, 0);
(yyval.value).t = (yyvsp[(1) - (3)].value).t;
- ;}
+ }
+ }
break;
- case 265:
-/* Line 1455 of yacc.c */
-#line 2659 "parser.y"
+
+ case 266:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2747 "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);
(yyval.value).c = toreadwrite((yyvsp[(1) - (3)].value).c, c, 0, 0);
(yyval.value).t = (yyvsp[(1) - (3)].value).t;
- ;}
+ }
+ }
break;
- case 266:
-/* Line 1455 of yacc.c */
-#line 2665 "parser.y"
+
+ case 267:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2753 "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);
(yyval.value).c = toreadwrite((yyvsp[(1) - (3)].value).c, c, 0, 0);
(yyval.value).t = (yyvsp[(1) - (3)].value).t;
- ;}
+ }
+ }
break;
- case 267:
-/* Line 1455 of yacc.c */
-#line 2671 "parser.y"
+
+ case 268:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2759 "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);
(yyval.value).c = toreadwrite((yyvsp[(1) - (3)].value).c, c, 0, 0);
(yyval.value).t = (yyvsp[(1) - (3)].value).t;
- ;}
+ }
+ }
break;
- case 268:
-/* Line 1455 of yacc.c */
-#line 2677 "parser.y"
+
+ case 269:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2765 "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);
(yyval.value).c = toreadwrite((yyvsp[(1) - (3)].value).c, c, 0, 0);
(yyval.value).t = (yyvsp[(1) - (3)].value).t;
- ;}
+ }
+ }
break;
- case 269:
-/* Line 1455 of yacc.c */
-#line 2683 "parser.y"
+
+ case 270:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2771 "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);
(yyval.value).c = toreadwrite((yyvsp[(1) - (3)].value).c, c, 0, 0);
(yyval.value).t = (yyvsp[(1) - (3)].value).t;
- ;}
+ }
+ }
break;
- case 270:
-/* Line 1455 of yacc.c */
-#line 2689 "parser.y"
+
+ case 271:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2777 "parser.y"
{
code_t*c = abc_bitor((yyvsp[(3) - (3)].value).c);
c=converttype(c, TYPE_INT, (yyvsp[(1) - (3)].value).t);
(yyval.value).c = toreadwrite((yyvsp[(1) - (3)].value).c, c, 0, 0);
(yyval.value).t = (yyvsp[(1) - (3)].value).t;
- ;}
+ }
+ }
break;
- case 271:
-/* Line 1455 of yacc.c */
-#line 2695 "parser.y"
+
+ case 272:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2783 "parser.y"
{
code_t*c = (yyvsp[(3) - (3)].value).c;
(yyval.value).c = toreadwrite((yyvsp[(1) - (3)].value).c, c, 0, 0);
(yyval.value).t = (yyvsp[(1) - (3)].value).t;
- ;}
+ }
+ }
break;
- case 272:
-/* Line 1455 of yacc.c */
-#line 2708 "parser.y"
+
+ case 273:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2796 "parser.y"
{ code_t*c = (yyvsp[(3) - (3)].value).c;
if(TYPE_IS_INT((yyvsp[(1) - (3)].value).t)) {
c=abc_subtract_i(c);
(yyval.value).c = toreadwrite((yyvsp[(1) - (3)].value).c, c, 0, 0);
(yyval.value).t = (yyvsp[(1) - (3)].value).t;
- ;}
+ }
+ }
break;
- case 273:
-/* Line 1455 of yacc.c */
-#line 2719 "parser.y"
+
+ case 274:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2807 "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);
(yyval.value).c = toreadwrite((yyvsp[(1) - (3)].value).c, c, 1, 0);
(yyval.value).t = (yyvsp[(1) - (3)].value).t;
- ;}
+ }
+ }
break;
- case 274:
-/* Line 1455 of yacc.c */
-#line 2726 "parser.y"
+
+ case 275:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2814 "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;
(yyval.value).c = code_append((yyval.value).c, (yyvsp[(5) - (5)].value).c);
(yyval.value).c = converttype((yyval.value).c, (yyvsp[(3) - (5)].value).t, (yyval.value).t);
(yyval.value).c = j2->branch = abc_label((yyval.value).c);
- ;}
+ }
+ }
break;
- case 275:
-/* Line 1455 of yacc.c */
-#line 2739 "parser.y"
+
+ case 276:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2827 "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)) {
(yyval.value).c = toreadwrite((yyvsp[(1) - (2)].value).c, c, 0, 1);
(yyval.value).t = (yyvsp[(1) - (2)].value).t;
}
- ;}
+ }
+ }
break;
- case 276:
-/* Line 1455 of yacc.c */
-#line 2766 "parser.y"
+
+ case 277:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2854 "parser.y"
{ code_t*c = 0;
classinfo_t*type = (yyvsp[(1) - (2)].value).t;
if(TYPE_IS_INT(type) || TYPE_IS_UINT(type)) {
c=converttype(c, type, (yyvsp[(1) - (2)].value).t);
(yyval.value).c = toreadwrite((yyvsp[(1) - (2)].value).c, c, 0, 1);
(yyval.value).t = (yyvsp[(1) - (2)].value).t;
- ;}
+ }
+ }
break;
- case 277:
-/* Line 1455 of yacc.c */
-#line 2780 "parser.y"
+
+ case 278:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2868 "parser.y"
{ code_t*c = 0;
classinfo_t*type = (yyvsp[(2) - (2)].value).t;
if(TYPE_IS_INT(type) || TYPE_IS_UINT(type)) {
c=converttype(c, type, (yyvsp[(2) - (2)].value).t);
(yyval.value).c = toreadwrite((yyvsp[(2) - (2)].value).c, c, 0, 0);
(yyval.value).t = (yyvsp[(2) - (2)].value).t;
- ;}
+ }
+ }
break;
- case 278:
-/* Line 1455 of yacc.c */
-#line 2794 "parser.y"
+
+ case 279:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2882 "parser.y"
{ code_t*c = 0;
classinfo_t*type = (yyvsp[(2) - (2)].value).t;
if(TYPE_IS_INT(type) || TYPE_IS_UINT(type)) {
c=converttype(c, type, (yyvsp[(2) - (2)].value).t);
(yyval.value).c = toreadwrite((yyvsp[(2) - (2)].value).c, c, 0, 0);
(yyval.value).t = (yyvsp[(2) - (2)].value).t;
- ;}
+ }
+ }
break;
- case 279:
-/* Line 1455 of yacc.c */
-#line 2809 "parser.y"
+
+ case 280:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2897 "parser.y"
{ if(!state->cls->info)
syntaxerror("super keyword not allowed outside a class");
classinfo_t*t = state->cls->info->superclass;
(yyval.value).c = abc_getlocal_0((yyval.value).c);
(yyval.value).c = abc_getsuper2((yyval.value).c, &m);
(yyval.value).t = memberinfo_gettype(f);
- ;}
+ }
+ }
break;
- case 280:
-/* Line 1455 of yacc.c */
-#line 2824 "parser.y"
+
+ case 281:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2912 "parser.y"
{(yyval.value).c = (yyvsp[(1) - (3)].value).c;
classinfo_t*t = (yyvsp[(1) - (3)].value).t;
char is_static = 0;
(yyval.value).c = abc_coerce_a((yyval.value).c);
(yyval.value).t = registry_getanytype();
}
- ;}
+ }
+ }
break;
- case 281:
-/* Line 1455 of yacc.c */
-#line 2857 "parser.y"
+
+ case 282:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2945 "parser.y"
{
(yyval.value).t = 0;
(yyval.value).c = 0;
// $1 is a local variable
(yyval.value).c = abc_getlocal((yyval.value).c, v->index);
(yyval.value).t = v->type;
+ break;
+ }
+
+ int i_am_static = (state->method && state->method->info)?(state->method->info->flags&FLAG_STATIC):FLAG_STATIC;
/* look at current class' members */
- } else if(state->cls && (f = registry_findmember(state->cls->info, (yyvsp[(1) - (1)].id), 1))) {
+ if(state->cls && (f = registry_findmember(state->cls->info, (yyvsp[(1) - (1)].id), 1)) &&
+ (f->flags&FLAG_STATIC) >= i_am_static) {
// $1 is a function in this class
int var_is_static = (f->flags&FLAG_STATIC);
- int i_am_static = ((state->method && state->method->info)?(state->method->info->flags&FLAG_STATIC):FLAG_STATIC);
- if(var_is_static != i_am_static) {
- /* there doesn't seem to be any "static" way to access
- static properties of a class */
+
+ if(f->kind == MEMBER_METHOD) {
+ (yyval.value).t = TYPE_FUNCTION(f);
+ } else {
+ (yyval.value).t = f->type;
+ }
+ if(var_is_static && !i_am_static) {
+ /* access to a static member from a non-static location.
+ do this via findpropstrict:
+ there doesn't seem to be any non-lookup way to access
+ static properties of a class */
state->method->late_binding = 1;
(yyval.value).t = f->type;
namespace_t ns = {flags2access(f->flags), ""};
multiname_t m = {QNAME, &ns, 0, (yyvsp[(1) - (1)].id)};
(yyval.value).c = abc_findpropstrict2((yyval.value).c, &m);
(yyval.value).c = abc_getproperty2((yyval.value).c, &m);
+ break;
+ } else if(f->slot>0) {
+ (yyval.value).c = abc_getlocal_0((yyval.value).c);
+ (yyval.value).c = abc_getslot((yyval.value).c, f->slot);
+ break;
} else {
- if(f->slot>0) {
- (yyval.value).c = abc_getlocal_0((yyval.value).c);
- (yyval.value).c = abc_getslot((yyval.value).c, f->slot);
- } else {
- namespace_t ns = {flags2access(f->flags), ""};
- multiname_t m = {QNAME, &ns, 0, (yyvsp[(1) - (1)].id)};
- (yyval.value).c = abc_getlocal_0((yyval.value).c);
- (yyval.value).c = abc_getproperty2((yyval.value).c, &m);
- }
- }
- if(f->kind == MEMBER_METHOD) {
- (yyval.value).t = TYPE_FUNCTION(f);
- } else {
- (yyval.value).t = f->type;
+ namespace_t ns = {flags2access(f->flags), ""};
+ multiname_t m = {QNAME, &ns, 0, (yyvsp[(1) - (1)].id)};
+ (yyval.value).c = abc_getlocal_0((yyval.value).c);
+ (yyval.value).c = abc_getproperty2((yyval.value).c, &m);
+ break;
}
+ }
/* look at actual classes, in the current package and imported */
- } else if((a = find_class((yyvsp[(1) - (1)].id)))) {
+ if((a = find_class((yyvsp[(1) - (1)].id)))) {
if(a->flags & FLAG_METHOD) {
MULTINAME(m, a);
(yyval.value).c = abc_findpropstrict2((yyval.value).c, &m);
}
(yyval.value).t = TYPE_CLASS(a);
}
+ break;
+ }
/* unknown object, let the avm2 resolve it */
- } else {
+ if(1) {
if(strcmp((yyvsp[(1) - (1)].id),"trace"))
as3_softwarning("Couldn't resolve '%s', doing late binding", (yyvsp[(1) - (1)].id));
state->method->late_binding = 1;
(yyval.value).c = abc_findpropstrict2((yyval.value).c, &m);
(yyval.value).c = abc_getproperty2((yyval.value).c, &m);
}
-;}
+}
+ }
break;
- case 282:
-/* Line 1455 of yacc.c */
-#line 2944 "parser.y"
- {(yyval.code)=0;;}
+
+ case 283:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 3043 "parser.y"
+ {(yyval.code)=0;}
+ }
break;
- case 283:
-/* Line 1455 of yacc.c */
-#line 2945 "parser.y"
- {(yyval.code)=0;;}
+
+ case 284:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 3044 "parser.y"
+ {(yyval.code)=0;}
+ }
break;
- case 284:
-/* Line 1455 of yacc.c */
-#line 2946 "parser.y"
- {(yyval.code)=0;;}
+
+ case 285:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 3045 "parser.y"
+ {(yyval.code)=0;}
+ }
break;
- case 285:
-/* Line 1455 of yacc.c */
-#line 2948 "parser.y"
- {(yyval.token)=0;;}
+
+ case 286:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 3047 "parser.y"
+ {(yyval.token)=0;}
+ }
break;
-/* Line 1455 of yacc.c */
-#line 6169 "parser.tab.c"
+
+/* Line 1464 of skeleton.m4 */
+#line 7170 "parser.tab.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);