X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fas3%2Fparser.tab.c;h=b9826cffafdb4b780f09c96e796815ce8c7f2c7d;hb=33587317de37070aae89b6fd125cac2ed74f972f;hp=483ebcd2bff81429e467609e3ec383ef29273373;hpb=618a86d162d32d7b64cdf872d3033a56d548b526;p=swftools.git diff --git a/lib/as3/parser.tab.c b/lib/as3/parser.tab.c index 483ebcd..b9826cf 100644 --- a/lib/as3/parser.tab.c +++ b/lib/as3/parser.tab.c @@ -88,13 +88,14 @@ #include "registry.h" #include "code.h" #include "opcodes.h" +#include "compiler.h" extern int a3_lex(); /* Line 198 of skeleton.m4 */ -#line 98 "parser.tab.c" +#line 99 "parser.tab.c" /* Enabling traces. */ #ifndef YYDEBUG @@ -122,107 +123,108 @@ extern int a3_lex(); know about them. */ enum yytokentype { T_IDENTIFIER = 258, - T_STRING = 259, - T_REGEXP = 260, - T_EMPTY = 261, - T_INT = 262, - T_UINT = 263, - T_BYTE = 264, - T_SHORT = 265, - T_FLOAT = 266, - T_FOR = 267, - T_WHILE = 268, - T_DO = 269, - T_SWITCH = 270, - KW_IMPLEMENTS = 271, - KW_NAMESPACE = 272, - KW_PACKAGE = 273, - KW_PROTECTED = 274, - KW_PUBLIC = 275, - KW_PRIVATE = 276, - KW_USE = 277, - KW_INTERNAL = 278, - KW_NEW = 279, - KW_NATIVE = 280, - KW_FUNCTION = 281, - KW_FINALLY = 282, - KW_UNDEFINED = 283, - KW_CONTINUE = 284, - KW_CLASS = 285, - KW_CONST = 286, - KW_CATCH = 287, - KW_CASE = 288, - KW_SET = 289, - KW_VOID = 290, - KW_THROW = 291, - KW_STATIC = 292, - KW_WITH = 293, - KW_INSTANCEOF = 294, - KW_IMPORT = 295, - KW_RETURN = 296, - KW_TYPEOF = 297, - KW_INTERFACE = 298, - KW_NULL = 299, - KW_VAR = 300, - KW_DYNAMIC = 301, - KW_OVERRIDE = 302, - KW_FINAL = 303, - KW_EACH = 304, - KW_GET = 305, - KW_TRY = 306, - KW_SUPER = 307, - KW_EXTENDS = 308, - KW_FALSE = 309, - KW_TRUE = 310, - KW_BOOLEAN = 311, - KW_UINT = 312, - KW_INT = 313, - KW_NUMBER = 314, - KW_STRING = 315, - KW_DEFAULT = 316, - KW_DELETE = 317, - KW_IF = 318, - KW_ELSE = 319, - KW_BREAK = 320, - KW_IS = 321, - KW_IN = 322, - KW_AS = 323, - T_EQEQ = 324, - T_EQEQEQ = 325, - T_NE = 326, - T_NEE = 327, - T_LE = 328, - T_GE = 329, - T_ORBY = 330, - T_DIVBY = 331, - T_MODBY = 332, - T_MULBY = 333, - T_PLUSBY = 334, - T_MINUSBY = 335, - T_SHRBY = 336, - T_SHLBY = 337, - T_USHRBY = 338, - T_OROR = 339, - T_ANDAND = 340, - T_COLONCOLON = 341, - T_MINUSMINUS = 342, - T_PLUSPLUS = 343, - T_DOTDOT = 344, - T_DOTDOTDOT = 345, - T_SHL = 346, - T_USHR = 347, - T_SHR = 348, - prec_none = 349, - below_semicolon = 350, - below_assignment = 351, - below_minus = 354, - minusminus_prefix = 355, - plusplus_prefix = 356, - below_curly = 357, - new2 = 358, - above_identifier = 359, - below_else = 360, - above_function = 361 + T_NAMESPACE = 259, + T_STRING = 260, + T_REGEXP = 261, + T_EMPTY = 262, + T_INT = 263, + T_UINT = 264, + T_BYTE = 265, + T_SHORT = 266, + T_FLOAT = 267, + T_FOR = 268, + T_WHILE = 269, + T_DO = 270, + T_SWITCH = 271, + KW_IMPLEMENTS = 272, + KW_NAMESPACE = 273, + KW_PACKAGE = 274, + KW_PROTECTED = 275, + KW_PUBLIC = 276, + KW_PRIVATE = 277, + KW_USE = 278, + KW_INTERNAL = 279, + KW_NEW = 280, + KW_NATIVE = 281, + KW_FUNCTION = 282, + KW_FINALLY = 283, + KW_UNDEFINED = 284, + KW_CONTINUE = 285, + KW_CLASS = 286, + KW_CONST = 287, + KW_CATCH = 288, + KW_CASE = 289, + KW_SET = 290, + KW_VOID = 291, + KW_THROW = 292, + KW_STATIC = 293, + KW_WITH = 294, + KW_INSTANCEOF = 295, + KW_IMPORT = 296, + KW_RETURN = 297, + KW_TYPEOF = 298, + KW_INTERFACE = 299, + KW_NULL = 300, + KW_VAR = 301, + KW_DYNAMIC = 302, + KW_OVERRIDE = 303, + KW_FINAL = 304, + KW_EACH = 305, + KW_GET = 306, + KW_TRY = 307, + KW_SUPER = 308, + KW_EXTENDS = 309, + KW_FALSE = 310, + KW_TRUE = 311, + KW_BOOLEAN = 312, + KW_UINT = 313, + KW_INT = 314, + KW_NUMBER = 315, + KW_STRING = 316, + KW_DEFAULT = 317, + KW_DELETE = 318, + KW_IF = 319, + KW_ELSE = 320, + KW_BREAK = 321, + KW_IS = 322, + KW_IN = 323, + KW_AS = 324, + T_EQEQ = 325, + T_EQEQEQ = 326, + T_NE = 327, + T_NEE = 328, + T_LE = 329, + T_GE = 330, + T_ORBY = 331, + T_DIVBY = 332, + T_MODBY = 333, + T_MULBY = 334, + T_PLUSBY = 335, + T_MINUSBY = 336, + T_SHRBY = 337, + T_SHLBY = 338, + T_USHRBY = 339, + T_OROR = 340, + T_ANDAND = 341, + T_COLONCOLON = 342, + T_MINUSMINUS = 343, + T_PLUSPLUS = 344, + T_DOTDOT = 345, + T_DOTDOTDOT = 346, + T_SHL = 347, + T_USHR = 348, + T_SHR = 349, + prec_none = 350, + below_semicolon = 351, + below_assignment = 352, + below_minus = 355, + minusminus_prefix = 356, + plusplus_prefix = 357, + below_curly = 358, + new2 = 359, + above_identifier = 360, + below_else = 361, + above_function = 362 }; #endif @@ -231,12 +233,12 @@ extern int a3_lex(); #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union /* Line 223 of skeleton.m4 */ -#line 43 "parser.y" +#line 44 "parser.y" tokenunion { /* Line 223 of skeleton.m4 */ -#line 43 "parser.y" +#line 44 "parser.y" enum yytokentype token; int flags; @@ -267,7 +269,7 @@ tokenunion /* Line 223 of skeleton.m4 */ -#line 271 "parser.tab.c" +#line 273 "parser.tab.c" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ @@ -278,7 +280,7 @@ tokenunion /* Copy the second part of user declarations. */ /* Line 273 of skeleton.m4 */ -#line 256 "parser.y" +#line 257 "parser.y" static int a3_error(char*s) @@ -330,7 +332,7 @@ DECLARE_LIST(methodstate); typedef struct _methodstate { /* method data */ - memberinfo_t*info; + methodinfo_t*info; char late_binding; char is_constructor; char has_super; @@ -368,6 +370,7 @@ typedef struct _global { abc_file_t*file; abc_script_t*init; dict_t*token2info; + dict_t*file2token2info; } global_t; static global_t*global = 0; @@ -378,13 +381,15 @@ DECLARE_LIST(state); #define MULTINAME(m,x) \ multiname_t m;\ namespace_t m##_ns;\ - registry_fill_multiname(&m, &m##_ns, x); + (x)->package; \ + registry_fill_multiname(&m, &m##_ns, (slotinfo_t*)(x)); #define MEMBER_MULTINAME(m,f,n) \ multiname_t m;\ namespace_t m##_ns;\ if(f) { \ - m##_ns = flags2namespace(f->flags, ""); \ + m##_ns.access = (f)->access; \ + m##_ns.name = ""; \ m.type = QNAME; \ m.ns = &m##_ns; \ m.namespace_set = 0; \ @@ -482,13 +487,25 @@ static void old_state() state_destroy(leaving); } +static char* internal_filename_package = 0; void initialize_file(char*filename) { + if(state) { + syntaxerror("invalid call to initialize_file during parsing of another file"); + } new_state(); - state->package = filename; + state->package = internal_filename_package = strdup(filename); state->method = rfx_calloc(sizeof(methodstate_t)); state->method->variable_count = 1; + + global->token2info = dict_lookup(global->file2token2info, + current_filename // use long version + ); + if(!global->token2info) { + global->token2info = dict_new2(&ptr_type); + dict_put(global->file2token2info, current_filename, global->token2info); + } } void finish_file() @@ -496,6 +513,10 @@ void finish_file() if(!state || state->level!=1) { syntaxerror("unexpected end of file in pass %d", as3_pass); } + free(state->method);state->method=0; + + //free(state->package);state->package=0; // used in registry + state_destroy(state);state=0; } @@ -504,7 +525,8 @@ void initialize_parser() global = rfx_calloc(sizeof(global_t)); global->file = abc_file_new(); global->file->flags &= ~ABCFILE_LAZY; - global->token2info = dict_new2(&ptr_type); + global->file2token2info = dict_new(); + global->token2info = 0; global->init = abc_initscript(global->file); code_t*c = global->init->method->body->code; @@ -521,7 +543,11 @@ void* finish_parser() c = abc_callpropvoid(c, "[package]::trace", 1);*/ c = abc_returnvoid(c); global->init->method->body->code = c; - dict_destroy(global->token2info);global->token2info=0; + + dict_free_all(global->file2token2info, 1, (void*)dict_destroy); + + global->token2info=0; + return global->file; } @@ -721,22 +747,46 @@ static void endpackage() old_state(); } +#define FLAG_PUBLIC 256 +#define FLAG_PROTECTED 512 +#define FLAG_PRIVATE 1024 +#define FLAG_PACKAGEINTERNAL 2048 +#define FLAG_NAMESPACE 4096 + +static int flags2access(int flags) +{ + int access = 0; + if(flags&FLAG_PUBLIC) { + if(access&(FLAG_PRIVATE|FLAG_PROTECTED|FLAG_PACKAGEINTERNAL)) + syntaxerror("invalid combination of access levels"); + access = ACCESS_PACKAGE; + } else if(flags&FLAG_PRIVATE) { + if(access&(FLAG_PUBLIC|FLAG_PROTECTED|FLAG_PACKAGEINTERNAL)) + syntaxerror("invalid combination of access levels"); + access = ACCESS_PRIVATE; + } else if(flags&FLAG_PROTECTED) { + if(access&(FLAG_PUBLIC|FLAG_PRIVATE|FLAG_PACKAGEINTERNAL)) + syntaxerror("invalid combination of access levels"); + access = ACCESS_PROTECTED; + } else { + access = ACCESS_PACKAGEINTERNAL; + } + return access; +} char*as3_globalclass=0; -static void startclass(int flags, char*classname, classinfo_t*extends, classinfo_list_t*implements, char interface) +static void startclass(int flags, char*classname, classinfo_t*extends, classinfo_list_t*implements) { if(state->cls) { syntaxerror("inner classes now allowed"); } new_state(); state->cls = rfx_calloc(sizeof(classstate_t)); - state->method = rfx_calloc(sizeof(methodstate_t)); // method state, for static constructor - state->method->variable_count = 1; token_list_t*t=0; classinfo_list_t*mlist=0; - if(flags&~(FLAG_PACKAGEINTERNAL|FLAG_PUBLIC|FLAG_FINAL|FLAG_DYNAMIC)) + if(flags&~(FLAG_PACKAGEINTERNAL|FLAG_PUBLIC|FLAG_FINAL|FLAG_DYNAMIC|FLAG_INTERFACE)) syntaxerror("invalid modifier(s)"); if((flags&(FLAG_PUBLIC|FLAG_PACKAGEINTERNAL)) == (FLAG_PUBLIC|FLAG_PACKAGEINTERNAL)) @@ -746,34 +796,46 @@ static void startclass(int flags, char*classname, classinfo_t*extends, classinfo int access=0; char*package=0; - if(!(flags&FLAG_PUBLIC) && !state->package) { - access = ACCESS_PRIVATE; package = current_filename; - } else if(!(flags&FLAG_PUBLIC) && state->package) { + if(!(flags&FLAG_PUBLIC) && state->package==internal_filename_package) { + access = ACCESS_PRIVATE; package = internal_filename_package; + } else if(!(flags&FLAG_PUBLIC) && state->package!=internal_filename_package) { access = ACCESS_PACKAGEINTERNAL; package = state->package; - } else if(state->package) { + } else if(state->package!=internal_filename_package) { access = ACCESS_PACKAGE; package = state->package; } else { syntaxerror("public classes only allowed inside a package"); } if(as3_pass==1) { - if(registry_findclass(package, classname)) { + state->method = rfx_calloc(sizeof(methodstate_t)); // method state, for static constructor + state->method->variable_count = 1; + dict_put(global->token2info, (void*)(ptroff_t)as3_tokencount, state->method); + + if(registry_find(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->flags |= flags & (FLAG_DYNAMIC|FLAG_INTERFACE|FLAG_FINAL); } if(as3_pass == 2) { - state->cls->info = registry_findclass(package, classname); + state->method = dict_lookup(global->token2info, (void*)(ptroff_t)as3_tokencount); + + state->cls->info = (classinfo_t*)registry_find(package, classname); parserassert((int)state->cls->info); + if(extends && (extends->flags & FLAG_FINAL)) + syntaxerror("Can't extend final class '%s'", extends->name); + /* 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) { + if(!(l->classinfo->flags & FLAG_INTERFACE)) + syntaxerror("'%s' is not an interface", l->classinfo->name); state->cls->info->interfaces[pos++] = l->classinfo; } @@ -782,10 +844,9 @@ static void startclass(int flags, char*classname, classinfo_t*extends, classinfo 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; + if(state->cls->info->flags&FLAG_FINAL) abc_class_final(state->cls->abc); + if(!(state->cls->info->flags&FLAG_DYNAMIC)) abc_class_sealed(state->cls->abc); + if(state->cls->info->flags&FLAG_INTERFACE) { abc_class_interface(state->cls->abc); } @@ -848,7 +909,7 @@ static void startclass(int flags, char*classname, classinfo_t*extends, classinfo /* flash.display.MovieClip handling */ - if(!as3_globalclass && (flags&FLAG_PUBLIC) && classinfo_equals(registry_getMovieClip(),extends)) { + if(!as3_globalclass && (flags&FLAG_PUBLIC) && slotinfo_equals((slotinfo_t*)registry_getMovieClip(),(slotinfo_t*)extends)) { if(state->package && state->package[0]) { as3_globalclass = concat3(state->package, ".", classname); } else { @@ -861,7 +922,7 @@ static void startclass(int flags, char*classname, classinfo_t*extends, classinfo static void endclass() { if(as3_pass == 2) { - if(!state->cls->has_constructor && !(state->cls->info->flags&CLASS_INTERFACE)) { + if(!state->cls->has_constructor && !(state->cls->info->flags&FLAG_INTERFACE)) { code_t*c = 0; c = abc_getlocal_0(c); c = abc_constructsuper(c, 0); @@ -922,86 +983,88 @@ static void check_constant_against_type(classinfo_t*t, constant_t*c) } } - -static int flags2access(int flags) +static void check_override(memberinfo_t*m, int flags) { - int access = 0; - if(flags&FLAG_PUBLIC) { - if(access&(FLAG_PRIVATE|FLAG_PROTECTED|FLAG_PACKAGEINTERNAL)) - syntaxerror("invalid combination of access levels"); - access = ACCESS_PACKAGE; - } else if(flags&FLAG_PRIVATE) { - if(access&(FLAG_PUBLIC|FLAG_PROTECTED|FLAG_PACKAGEINTERNAL)) - syntaxerror("invalid combination of access levels"); - access = ACCESS_PRIVATE; - } else if(flags&FLAG_PROTECTED) { - if(access&(FLAG_PUBLIC|FLAG_PRIVATE|FLAG_PACKAGEINTERNAL)) - syntaxerror("invalid combination of access levels"); - access = ACCESS_PROTECTED; - } else { - access = ACCESS_PACKAGEINTERNAL; + if(!m) + return; + if(m->parent == state->cls->info) + syntaxerror("class '%s' already contains a method/slot '%s'", m->parent->name, m->name); + if(!m->parent) + syntaxerror("internal error: overriding method %s, which doesn't have parent", m->name); + if(m->access==ACCESS_PRIVATE) + return; + if(m->flags & FLAG_FINAL) + syntaxerror("can't override final member %s", m->name); + if((m->flags & FLAG_STATIC) && !(flags&FLAG_STATIC)) + syntaxerror("can't override static member %s", m->name); + if(!(m->flags & FLAG_STATIC) && (flags&FLAG_STATIC)) + syntaxerror("can't override non-static member %s with static declaration", m->name); + + if(!(flags&FLAG_OVERRIDE)) { + if(m->parent && !(m->parent->flags&FLAG_INTERFACE)) { + if(m->kind == INFOTYPE_METHOD) + syntaxerror("can't override without explicit 'override' declaration"); + else + syntaxerror("can't override '%s'", m->name); + } } - return access; } - -static memberinfo_t*registerfunction(enum yytokentype getset, int flags, char*name, params_t*params, classinfo_t*return_type, int slot) +static methodinfo_t*registerfunction(enum yytokentype getset, int flags, char*name, params_t*params, classinfo_t*return_type, int slot) { - memberinfo_t*minfo = 0; + methodinfo_t*minfo = 0; + U8 access = flags2access(flags); if(!state->cls) { //package method - minfo = memberinfo_register_global(flags2access(flags), state->package, name, MEMBER_METHOD); + minfo = methodinfo_register_global(access, state->package, name); minfo->return_type = return_type; } else if(getset != KW_GET && getset != KW_SET) { //class method - if((minfo = registry_findmember(state->cls->info, name, 0))) { - if(minfo->parent == state->cls->info) { - syntaxerror("class already contains a member/method called '%s'", name); - } else if(!minfo->parent) { - syntaxerror("internal error: overriding method %s, which doesn't have parent", name); - } else { - if(!(minfo->flags&(FLAG_STATIC|FLAG_PRIVATE))) - syntaxerror("function %s already exists in superclass. Did you forget the 'override' keyword?"); - } + memberinfo_t* m = registry_findmember(state->cls->info, name, 0); + if(m) { + syntaxerror("class already contains a %s '%s'", infotypename((slotinfo_t*)m), m->name); } - minfo = memberinfo_register(state->cls->info, name, MEMBER_METHOD); + minfo = methodinfo_register_onclass(state->cls->info, access, name); minfo->return_type = return_type; // getslot on a member slot only returns "undefined", so no need // to actually store these //state->minfo->slot = state->method->abc->method->trait->slot_id; } else { //class getter/setter - int gs = getset==KW_GET?MEMBER_GET:MEMBER_SET; + int gs = getset==KW_GET?SUBTYPE_GET:SUBTYPE_SET; classinfo_t*type=0; if(getset == KW_GET) type = return_type; else if(params->list && params->list->param) type = params->list->param->type; // not sure wether to look into superclasses here, too - if((minfo=registry_findmember(state->cls->info, name, 0))) { - if(minfo->kind & ~(MEMBER_GET|MEMBER_SET)) - syntaxerror("class already contains a member or method called '%s'", name); - if(minfo->kind & gs) + minfo = (methodinfo_t*)registry_findmember(state->cls->info, name, 1); + if(minfo) { + if(minfo->kind!=INFOTYPE_SLOT) + syntaxerror("class already contains a method called '%s'", name); + if(!(minfo->subtype & (SUBTYPE_GETSET))) + syntaxerror("class already contains a field called '%s'", name); + if(minfo->subtype & gs) syntaxerror("getter/setter for '%s' already defined", name); /* make a setter or getter into a getset */ - minfo->kind |= gs; - if(!minfo->type) - minfo->type = type; - else - if(type && minfo->type != type) + minfo->subtype |= gs; + if(!minfo->return_type) { + minfo->return_type = type; + } else { + if(minfo && minfo->return_type != type) syntaxerror("different type in getter and setter"); + } } else { - minfo = memberinfo_register(state->cls->info, name, gs); - minfo->type = type; + minfo = methodinfo_register_onclass(state->cls->info, access, name); + minfo->kind = INFOTYPE_SLOT; //hack + minfo->subtype = gs; + minfo->return_type = type; } /* can't assign a slot as getter and setter might have different slots */ //minfo->slot = slot; } + if(flags&FLAG_FINAL) minfo->flags |= FLAG_FINAL; if(flags&FLAG_STATIC) minfo->flags |= FLAG_STATIC; - if(flags&FLAG_PUBLIC) minfo->flags |= FLAG_PUBLIC; - if(flags&FLAG_PRIVATE) minfo->flags |= FLAG_PRIVATE; - if(flags&FLAG_PROTECTED) minfo->flags |= FLAG_PROTECTED; - if(flags&FLAG_PACKAGEINTERNAL) minfo->flags |= FLAG_PACKAGEINTERNAL; if(flags&FLAG_OVERRIDE) minfo->flags |= FLAG_OVERRIDE; return minfo; } @@ -1049,7 +1112,7 @@ static void innerfunction(char*name, params_t*params, classinfo_t*return_type) state->method->variable_count = 0; state->method->abc = rfx_calloc(sizeof(abc_method_t)); - NEW(memberinfo_t,minfo); + NEW(methodinfo_t,minfo); minfo->name = name; state->method->info = minfo; @@ -1098,6 +1161,11 @@ static void startfunction(token_t*ns, int flags, enum yytokentype getset, char*n if(as3_pass == 2) { state->method = dict_lookup(global->token2info, (void*)(ptroff_t)as3_tokencount); parserassert(state->method); + + if(state->cls) { + memberinfo_t*m = registry_findmember(state->cls->info, name, 2); + check_override(m, flags); + } if(state->cls) { state->cls->has_constructor |= state->method->is_constructor; @@ -1126,7 +1194,7 @@ static abc_method_t* endfunction(token_t*ns, int flags, enum yytokentype getset, } 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, ""); + namespace_t mname_ns = {state->method->info->access, ""}; multiname_t mname = {QNAME, &mname_ns, 0, name}; if(flags&FLAG_STATIC) @@ -1135,7 +1203,7 @@ static abc_method_t* endfunction(token_t*ns, int flags, enum yytokentype getset, f = abc_class_method(state->cls->abc, type2, &mname); slot = f->trait->slot_id; } else { - namespace_t mname_ns = flags2namespace(flags, state->package); + namespace_t mname_ns = {state->method->info->access, state->package}; multiname_t mname = {QNAME, &mname_ns, 0, name}; f = abc_method_new(global->file, type2, 1); @@ -1276,6 +1344,8 @@ code_t*converttype(code_t*c, classinfo_t*from, classinfo_t*to) return c; if(TYPE_IS_CLASS(from) && TYPE_IS_CLASS(to)) return c; + if(TYPE_IS_NULL(from) && !IS_NUMBER_OR_INT(to)) + return c; syntaxerror("can't convert type %s to %s", from->name, to->name); return 0; // make gcc happy } @@ -1305,11 +1375,11 @@ char is_pushundefined(code_t*c) return (c && !c->prev && !c->next && c->opcode == OPCODE_PUSHUNDEFINED); } -static classinfo_t* find_class(char*name) +static slotinfo_t* find_class(char*name) { - classinfo_t*c=0; + slotinfo_t*c=0; - c = registry_findclass(state->package, name); + c = registry_find(state->package, name); if(c) return c; /* try explicit imports */ @@ -1317,7 +1387,7 @@ static classinfo_t* find_class(char*name) if(c) return c; while(e) { if(!strcmp(e->key, name)) { - c = (classinfo_t*)e->data; + c = (slotinfo_t*)e->data; if(c) return c; } e = e->next; @@ -1327,17 +1397,17 @@ static classinfo_t* find_class(char*name) import_list_t*l = state->wildcard_imports; while(l) { //printf("does package %s contain a class %s?\n", l->import->package, name); - c = registry_findclass(l->import->package, name); + c = registry_find(l->import->package, name); if(c) return c; l = l->next; } /* try global package */ - c = registry_findclass("", name); + c = registry_find("", name); if(c) return c; - + /* try local "filename" package */ - c = registry_findclass(current_filename_short, name); + c = registry_find(internal_filename_package, name); if(c) return c; return 0; @@ -1374,7 +1444,6 @@ static code_t* toreadwrite(code_t*in, code_t*middlepart, char justassign, char r [prefix code] ([dup]) [read instruction] [middlepart] [setvar] [write instruction] [getvar] */ - if(in && in->opcode == OPCODE_COERCE_A) { in = code_cutlast(in); } @@ -1494,6 +1563,7 @@ static code_t* toreadwrite(code_t*in, code_t*middlepart, char justassign, char r c = code_append(c, write); c = code_append(c, r); } else { + code_free(r);r=0; temp = gettempvar(); if(prefix) { c = code_append(c, prefix); @@ -1649,7 +1719,7 @@ code_t* insert_finally(code_t*c, code_t*finally, int tempvar) /* Line 273 of skeleton.m4 */ -#line 1653 "parser.tab.c" +#line 1723 "parser.tab.c" #ifdef short # undef short @@ -1862,22 +1932,22 @@ union yyalloc #endif /* YYFINAL -- State number of the termination state. */ -#define YYFINAL 118 +#define YYFINAL 125 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 2669 +#define YYLAST 3223 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 131 +#define YYNTOKENS 133 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 107 +#define YYNNTS 109 /* YYNRULES -- Number of rules. */ -#define YYNRULES 287 +#define YYNRULES 301 /* YYNRULES -- Number of states. */ -#define YYNSTATES 479 +#define YYNSTATES 512 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 361 +#define YYMAXUTOK 362 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -1888,16 +1958,16 @@ static const yytype_uint8 yytranslate[] = 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 116, 2, 2, 2, 114, 106, 2, - 120, 130, 113, 111, 97, 110, 125, 112, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 103, 96, - 107, 99, 108, 102, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 117, 2, 2, 2, 115, 107, 2, + 121, 132, 114, 112, 98, 111, 126, 113, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 104, 97, + 108, 100, 109, 103, 127, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 122, 2, 123, 105, 2, 2, 2, 2, 2, + 2, 123, 2, 124, 106, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 124, 104, 129, 115, 2, 2, 2, + 2, 2, 2, 125, 105, 131, 116, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -1920,8 +1990,8 @@ static const yytype_uint8 yytranslate[] = 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 98, 100, 101, 109, 117, 118, 119, 121, 126, - 127, 128 + 95, 96, 99, 101, 102, 110, 118, 119, 120, 122, + 128, 129, 130 }; #if YYDEBUG @@ -1930,158 +2000,168 @@ static const yytype_uint8 yytranslate[] = static const yytype_uint16 yyprhs[] = { 0, 0, 3, 5, 6, 8, 10, 13, 15, 17, - 19, 21, 23, 25, 27, 28, 30, 32, 35, 37, - 39, 41, 43, 45, 47, 49, 50, 53, 55, 57, - 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, - 79, 81, 83, 85, 87, 89, 91, 93, 97, 100, - 103, 105, 107, 110, 111, 114, 117, 119, 123, 127, - 128, 131, 132, 140, 141, 143, 145, 149, 151, 154, - 158, 167, 174, 175, 182, 183, 191, 193, 196, 198, - 201, 202, 204, 206, 209, 211, 214, 219, 223, 224, - 233, 234, 244, 245, 251, 253, 256, 258, 261, 263, - 264, 271, 274, 276, 282, 284, 286, 290, 292, 293, - 300, 301, 307, 310, 315, 316, 318, 320, 323, 325, - 327, 329, 331, 333, 335, 337, 339, 341, 342, 345, - 346, 349, 350, 353, 354, 364, 365, 374, 375, 377, - 379, 382, 384, 386, 388, 390, 391, 393, 395, 398, - 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, 490, 501, 503, 507, 509, 511, 513, 517, 519, - 521, 523, 526, 527, 528, 532, 533, 535, 537, 541, - 542, 547, 552, 557, 560, 562, 565, 567, 569, 573, - 575, 577, 579, 581, 583, 585, 587, 589, 591, 593, - 595, 597, 599, 601, 603, 605, 607, 609, 613, 617, - 621, 625, 629, 633, 637, 641, 645, 649, 652, 655, - 659, 663, 667, 671, 675, 679, 683, 687, 691, 695, - 699, 703, 707, 711, 715, 720, 723, 725, 729, 732, - 737, 741, 742, 744, 748, 754, 758, 762, 766, 770, - 774, 778, 782, 786, 790, 794, 798, 804, 807, 810, - 813, 816, 820, 824, 826, 830, 836, 842 + 19, 21, 23, 25, 30, 32, 33, 35, 37, 40, + 42, 44, 46, 48, 50, 55, 57, 59, 60, 63, + 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, + 85, 87, 89, 91, 93, 95, 97, 99, 101, 106, + 108, 112, 115, 118, 120, 122, 126, 129, 130, 133, + 136, 138, 142, 146, 147, 150, 151, 159, 160, 162, + 164, 168, 170, 173, 177, 186, 193, 194, 201, 202, + 210, 212, 215, 217, 220, 221, 223, 225, 228, 230, + 233, 238, 242, 243, 252, 253, 263, 264, 270, 272, + 275, 277, 280, 282, 283, 290, 293, 295, 301, 303, + 305, 309, 311, 312, 319, 320, 326, 329, 334, 335, + 337, 339, 342, 344, 346, 348, 350, 352, 354, 356, + 358, 360, 362, 363, 366, 367, 370, 371, 374, 375, + 385, 386, 395, 396, 398, 400, 403, 405, 410, 412, + 414, 416, 417, 419, 421, 424, 426, 429, 438, 440, + 442, 448, 449, 452, 454, 456, 458, 460, 462, 464, + 466, 468, 470, 471, 473, 476, 481, 485, 487, 492, + 495, 497, 499, 500, 501, 514, 516, 517, 518, 529, + 531, 535, 537, 539, 541, 545, 547, 549, 551, 554, + 555, 556, 560, 561, 563, 565, 567, 570, 573, 574, + 579, 584, 589, 592, 594, 597, 599, 601, 605, 607, + 609, 611, 613, 615, 617, 619, 621, 623, 625, 627, + 629, 631, 633, 635, 637, 639, 641, 645, 649, 653, + 657, 661, 665, 669, 673, 677, 681, 684, 687, 691, + 695, 699, 703, 707, 711, 715, 719, 723, 727, 731, + 735, 739, 743, 747, 752, 755, 757, 761, 764, 769, + 773, 774, 776, 780, 786, 790, 794, 798, 802, 806, + 810, 814, 818, 822, 826, 830, 836, 839, 842, 845, + 848, 852, 855, 860, 866, 870, 876, 880, 882, 886, + 892, 898 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 132, 0, -1, 133, -1, -1, 134, -1, 135, -1, - 134, 135, -1, 181, -1, 193, -1, 191, -1, 209, - -1, 202, -1, 144, -1, 96, -1, -1, 137, -1, - 138, -1, 137, 138, -1, 193, -1, 191, -1, 209, - -1, 202, -1, 144, -1, 96, -1, 140, -1, -1, - 140, 142, -1, 142, -1, 184, -1, 155, -1, 156, - -1, 157, -1, 159, -1, 167, -1, 150, -1, 178, - -1, 175, -1, 230, -1, 96, -1, 141, -1, 146, - -1, 161, -1, 162, -1, 227, -1, 177, -1, 236, - -1, 237, -1, 124, 140, 129, -1, 124, 129, -1, - 142, 96, -1, 142, -1, 141, -1, 99, 228, -1, - -1, 45, 147, -1, 31, 147, -1, 148, -1, 147, - 97, 148, -1, 3, 219, 145, -1, -1, 64, 143, - -1, -1, 63, 120, 151, 229, 130, 143, 149, -1, - -1, 146, -1, 230, -1, 45, 3, 219, -1, 3, - -1, 12, 120, -1, 12, 49, 120, -1, 154, 152, - 96, 229, 96, 230, 130, 143, -1, 154, 153, 67, - 229, 130, 143, -1, -1, 13, 120, 158, 229, 130, - 143, -1, -1, 14, 160, 143, 13, 120, 229, 130, - -1, 65, -1, 65, 3, -1, 29, -1, 29, 3, - -1, -1, 164, -1, 166, -1, 164, 166, -1, 165, - -1, 164, 165, -1, 33, 231, 103, 139, -1, 61, - 103, 139, -1, -1, 15, 120, 168, 231, 130, 124, - 163, 129, -1, -1, 32, 120, 3, 219, 130, 170, - 124, 139, 129, -1, -1, 27, 124, 172, 139, 129, - -1, 169, -1, 173, 169, -1, 173, -1, 173, 171, - -1, 171, -1, -1, 51, 124, 176, 139, 129, 174, - -1, 36, 229, -1, 36, -1, 38, 120, 229, 130, - 143, -1, 3, -1, 18, -1, 180, 125, 179, -1, - 179, -1, -1, 18, 180, 124, 182, 136, 129, -1, - -1, 18, 124, 183, 136, 129, -1, 40, 216, -1, - 40, 180, 125, 113, -1, -1, 186, -1, 187, -1, - 186, 187, -1, 20, -1, 21, -1, 19, -1, 37, - -1, 46, -1, 48, -1, 47, -1, 25, -1, 23, - -1, -1, 53, 216, -1, -1, 53, 217, -1, -1, - 16, 217, -1, -1, 185, 30, 3, 188, 190, 124, - 192, 195, 129, -1, -1, 185, 43, 3, 189, 124, - 194, 198, 129, -1, -1, 196, -1, 197, -1, 196, - 197, -1, 96, -1, 202, -1, 209, -1, 141, -1, - -1, 199, -1, 200, -1, 199, 200, -1, 96, -1, - 45, 3, -1, 185, 26, 208, 3, 120, 205, 130, - 219, -1, 45, -1, 31, -1, 185, 201, 3, 219, - 145, -1, -1, 99, 204, -1, 9, -1, 7, -1, - 8, -1, 11, -1, 4, -1, 55, -1, 54, -1, - 44, -1, -1, 206, -1, 90, 207, -1, 206, 97, - 90, 207, -1, 206, 97, 207, -1, 207, -1, 3, - 103, 218, 203, -1, 3, 203, -1, 50, -1, 34, - -1, -1, -1, 185, 26, 208, 3, 120, 205, 130, - 219, 124, 210, 139, 129, -1, 3, -1, -1, -1, - 26, 211, 120, 205, 130, 219, 124, 213, 139, 129, - -1, 3, -1, 180, 125, 3, -1, 215, -1, 214, - -1, 216, -1, 217, 97, 216, -1, 216, -1, 113, - -1, 35, -1, 103, 218, -1, -1, -1, 120, 221, - 130, -1, -1, 222, -1, 228, -1, 222, 97, 228, - -1, -1, 24, 231, 223, 220, -1, 231, 120, 221, - 130, -1, 52, 120, 221, 130, -1, 62, 231, -1, - 41, -1, 41, 229, -1, 231, -1, 231, -1, 229, - 97, 231, -1, 229, -1, 212, -1, 232, -1, 235, - -1, 224, -1, 226, -1, 225, -1, 5, -1, 9, - -1, 10, -1, 7, -1, 8, -1, 11, -1, 4, - -1, 28, -1, 55, -1, 54, -1, 44, -1, 231, - 107, 231, -1, 231, 108, 231, -1, 231, 73, 231, - -1, 231, 74, 231, -1, 231, 69, 231, -1, 231, - 70, 231, -1, 231, 72, 231, -1, 231, 71, 231, - -1, 231, 84, 231, -1, 231, 85, 231, -1, 116, - 231, -1, 115, 231, -1, 231, 106, 231, -1, 231, - 105, 231, -1, 231, 104, 231, -1, 231, 93, 231, - -1, 231, 92, 231, -1, 231, 91, 231, -1, 231, - 112, 231, -1, 231, 114, 231, -1, 231, 111, 231, - -1, 231, 110, 231, -1, 231, 113, 231, -1, 231, - 67, 231, -1, 231, 68, 231, -1, 231, 39, 231, - -1, 231, 66, 231, -1, 42, 120, 231, 130, -1, - 35, 231, -1, 35, -1, 120, 229, 130, -1, 110, - 231, -1, 231, 122, 231, 123, -1, 122, 221, 123, - -1, -1, 234, -1, 228, 103, 228, -1, 234, 97, - 228, 103, 228, -1, 124, 233, 129, -1, 231, 78, - 231, -1, 231, 77, 231, -1, 231, 82, 231, -1, - 231, 81, 231, -1, 231, 83, 231, -1, 231, 76, - 231, -1, 231, 75, 231, -1, 231, 79, 231, -1, - 231, 80, 231, -1, 231, 99, 231, -1, 231, 102, - 231, 103, 231, -1, 231, 88, -1, 231, 87, -1, - 88, 231, -1, 87, 231, -1, 52, 125, 3, -1, - 231, 125, 3, -1, 3, -1, 185, 17, 3, -1, - 185, 17, 3, 99, 3, -1, 185, 17, 3, 99, - 4, -1, 22, 17, 3, -1 + 134, 0, -1, 135, -1, -1, 136, -1, 137, -1, + 136, 137, -1, 184, -1, 196, -1, 194, -1, 212, + -1, 205, -1, 146, -1, 147, 125, 135, 131, -1, + 97, -1, -1, 139, -1, 140, -1, 139, 140, -1, + 196, -1, 194, -1, 212, -1, 205, -1, 146, -1, + 147, 125, 138, 131, -1, 97, -1, 142, -1, -1, + 142, 144, -1, 144, -1, 187, -1, 158, -1, 159, + -1, 160, -1, 162, -1, 170, -1, 153, -1, 181, + -1, 178, -1, 234, -1, 241, -1, 97, -1, 143, + -1, 149, -1, 164, -1, 165, -1, 231, -1, 180, + -1, 147, 125, 142, 131, -1, 240, -1, 125, 142, + 131, -1, 125, 131, -1, 144, 97, -1, 144, -1, + 143, -1, 3, 87, 3, -1, 100, 232, -1, -1, + 46, 150, -1, 32, 150, -1, 151, -1, 150, 98, + 151, -1, 3, 222, 148, -1, -1, 65, 145, -1, + -1, 64, 121, 154, 233, 132, 145, 152, -1, -1, + 149, -1, 234, -1, 46, 3, 222, -1, 3, -1, + 13, 121, -1, 13, 50, 121, -1, 157, 155, 97, + 233, 97, 234, 132, 145, -1, 157, 156, 68, 233, + 132, 145, -1, -1, 14, 121, 161, 233, 132, 145, + -1, -1, 15, 163, 145, 14, 121, 233, 132, -1, + 66, -1, 66, 3, -1, 30, -1, 30, 3, -1, + -1, 167, -1, 169, -1, 167, 169, -1, 168, -1, + 167, 168, -1, 34, 235, 104, 141, -1, 62, 104, + 141, -1, -1, 16, 121, 171, 235, 132, 125, 166, + 131, -1, -1, 33, 121, 3, 222, 132, 173, 125, + 141, 131, -1, -1, 28, 125, 175, 141, 131, -1, + 172, -1, 176, 172, -1, 176, -1, 176, 174, -1, + 174, -1, -1, 52, 125, 179, 141, 131, 177, -1, + 37, 233, -1, 37, -1, 39, 121, 233, 132, 145, + -1, 3, -1, 19, -1, 183, 126, 182, -1, 182, + -1, -1, 19, 183, 125, 185, 138, 131, -1, -1, + 19, 125, 186, 138, 131, -1, 41, 218, -1, 41, + 183, 126, 114, -1, -1, 189, -1, 190, -1, 189, + 190, -1, 21, -1, 22, -1, 20, -1, 38, -1, + 47, -1, 49, -1, 48, -1, 26, -1, 24, -1, + 4, -1, -1, 54, 219, -1, -1, 54, 220, -1, + -1, 17, 220, -1, -1, 188, 31, 3, 191, 193, + 125, 195, 198, 131, -1, -1, 188, 44, 3, 192, + 125, 197, 201, 131, -1, -1, 199, -1, 200, -1, + 199, 200, -1, 97, -1, 147, 125, 198, 131, -1, + 205, -1, 212, -1, 143, -1, -1, 202, -1, 203, + -1, 202, 203, -1, 97, -1, 46, 3, -1, 188, + 27, 211, 3, 121, 208, 132, 222, -1, 46, -1, + 32, -1, 188, 204, 3, 222, 148, -1, -1, 100, + 207, -1, 10, -1, 8, -1, 9, -1, 12, -1, + 5, -1, 56, -1, 55, -1, 45, -1, 3, -1, + -1, 209, -1, 91, 210, -1, 209, 98, 91, 210, + -1, 209, 98, 210, -1, 210, -1, 3, 104, 221, + 206, -1, 3, 206, -1, 51, -1, 35, -1, -1, + -1, 188, 27, 211, 3, 121, 208, 132, 222, 125, + 213, 141, 131, -1, 3, -1, -1, -1, 27, 214, + 121, 208, 132, 222, 125, 216, 141, 131, -1, 3, + -1, 183, 126, 3, -1, 218, -1, 217, -1, 219, + -1, 220, 98, 219, -1, 219, -1, 114, -1, 36, + -1, 104, 221, -1, -1, -1, 121, 224, 132, -1, + -1, 225, -1, 226, -1, 232, -1, 225, 98, -1, + 226, 232, -1, -1, 25, 235, 227, 223, -1, 235, + 121, 224, 132, -1, 53, 121, 224, 132, -1, 63, + 235, -1, 42, -1, 42, 233, -1, 235, -1, 235, + -1, 233, 98, 235, -1, 233, -1, 215, -1, 236, + -1, 239, -1, 228, -1, 230, -1, 229, -1, 6, + -1, 10, -1, 11, -1, 8, -1, 9, -1, 12, + -1, 5, -1, 29, -1, 56, -1, 55, -1, 45, + -1, 235, 108, 235, -1, 235, 109, 235, -1, 235, + 74, 235, -1, 235, 75, 235, -1, 235, 70, 235, + -1, 235, 71, 235, -1, 235, 73, 235, -1, 235, + 72, 235, -1, 235, 85, 235, -1, 235, 86, 235, + -1, 117, 235, -1, 116, 235, -1, 235, 107, 235, + -1, 235, 106, 235, -1, 235, 105, 235, -1, 235, + 94, 235, -1, 235, 93, 235, -1, 235, 92, 235, + -1, 235, 113, 235, -1, 235, 115, 235, -1, 235, + 112, 235, -1, 235, 111, 235, -1, 235, 114, 235, + -1, 235, 68, 235, -1, 235, 69, 235, -1, 235, + 40, 235, -1, 235, 67, 235, -1, 43, 121, 235, + 132, -1, 36, 235, -1, 36, -1, 121, 233, 132, + -1, 111, 235, -1, 235, 123, 235, 124, -1, 123, + 224, 124, -1, -1, 238, -1, 232, 104, 232, -1, + 238, 98, 232, 104, 232, -1, 125, 237, 131, -1, + 235, 79, 235, -1, 235, 78, 235, -1, 235, 83, + 235, -1, 235, 82, 235, -1, 235, 84, 235, -1, + 235, 77, 235, -1, 235, 76, 235, -1, 235, 80, + 235, -1, 235, 81, 235, -1, 235, 100, 235, -1, + 235, 103, 235, 104, 235, -1, 235, 89, -1, 235, + 88, -1, 89, 235, -1, 88, 235, -1, 53, 126, + 3, -1, 127, 3, -1, 235, 126, 127, 3, -1, + 235, 126, 3, 87, 3, -1, 235, 90, 3, -1, + 235, 126, 121, 235, 132, -1, 235, 126, 3, -1, + 3, -1, 188, 18, 3, -1, 188, 18, 3, 100, + 3, -1, 188, 18, 3, 100, 5, -1, 23, 18, + 3, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 1629, 1629, 1631, 1631, 1632, 1633, 1635, 1636, 1637, - 1638, 1639, 1640, 1641, 1643, 1643, 1644, 1645, 1647, 1648, - 1649, 1650, 1651, 1652, 1654, 1655, 1657, 1658, 1661, 1662, - 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1673, 1674, - 1675, 1676, 1677, 1678, 1679, 1681, 1682, 1684, 1685, 1686, - 1687, 1691, 1698, 1699, 1703, 1704, 1706, 1707, 1709, 1750, - 1751, 1754, 1754, 1773, 1774, 1775, 1778, 1781, 1785, 1786, - 1788, 1808, 1851, 1851, 1870, 1870, 1885, 1888, 1891, 1894, - 1898, 1899, 1900, 1901, 1902, 1903, 1905, 1916, 1919, 1919, - 1948, 1948, 1968, 1968, 1985, 1986, 1987, 1988, 1996, 2005, - 2005, 2050, 2054, 2065, 2074, 2075, 2077, 2078, 2080, 2080, - 2082, 2082, 2085, 2093, 2103, 2104, 2105, 2106, 2108, 2109, - 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2118, 2119, 2121, - 2122, 2124, 2125, 2129, 2127, 2135, 2133, 2141, 2142, 2143, - 2144, 2145, 2146, 2147, 2149, 2155, 2156, 2157, 2158, 2159, - 2160, 2163, 2175, 2175, 2177, 2236, 2237, 2239, 2240, 2241, - 2242, 2243, 2245, 2246, 2247, 2252, 2256, 2262, 2268, 2276, - 2281, 2287, 2295, 2303, 2304, 2305, 2308, 2307, 2321, 2322, - 2324, 2323, 2344, 2352, 2360, 2361, 2363, 2364, 2366, 2367, - 2368, 2377, 2378, 2382, 2383, 2385, 2386, 2387, 2390, 2395, - 2396, 2432, 2478, 2499, 2520, 2523, 2530, 2531, 2532, 2538, - 2544, 2546, 2548, 2550, 2552, 2554, 2556, 2573, 2578, 2581, - 2584, 2587, 2590, 2593, 2596, 2599, 2602, 2606, 2609, 2612, - 2615, 2618, 2621, 2624, 2627, 2631, 2642, 2660, 2665, 2670, - 2675, 2680, 2685, 2689, 2693, 2698, 2702, 2706, 2715, 2724, - 2734, 2739, 2751, 2757, 2762, 2768, 2774, 2778, 2780, 2791, - 2800, 2807, 2808, 2810, 2816, 2825, 2832, 2844, 2850, 2856, - 2862, 2868, 2874, 2880, 2893, 2904, 2911, 2924, 2951, 2965, - 2979, 2993, 3008, 3042, 3139, 3140, 3141, 3143 + 0, 1698, 1698, 1700, 1700, 1701, 1702, 1704, 1705, 1706, + 1707, 1708, 1709, 1710, 1711, 1713, 1713, 1714, 1715, 1717, + 1718, 1719, 1720, 1721, 1722, 1723, 1725, 1726, 1728, 1729, + 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, + 1742, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1754, + 1756, 1757, 1758, 1759, 1763, 1770, 1774, 1775, 1779, 1780, + 1782, 1783, 1785, 1828, 1829, 1832, 1832, 1851, 1852, 1853, + 1856, 1859, 1863, 1864, 1866, 1886, 1929, 1929, 1948, 1948, + 1963, 1966, 1969, 1972, 1976, 1977, 1978, 1979, 1980, 1981, + 1983, 1994, 1997, 1997, 2026, 2026, 2046, 2046, 2063, 2064, + 2065, 2066, 2074, 2083, 2083, 2128, 2132, 2143, 2152, 2153, + 2155, 2156, 2158, 2158, 2160, 2160, 2163, 2177, 2193, 2194, + 2195, 2196, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, + 2206, 2207, 2209, 2210, 2212, 2213, 2215, 2216, 2220, 2218, + 2226, 2224, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, + 2241, 2247, 2248, 2249, 2250, 2251, 2252, 2255, 2268, 2268, + 2270, 2343, 2344, 2346, 2347, 2348, 2349, 2350, 2352, 2353, + 2354, 2355, 2364, 2368, 2374, 2380, 2388, 2393, 2399, 2407, + 2415, 2416, 2417, 2420, 2419, 2434, 2435, 2437, 2436, 2458, + 2467, 2480, 2481, 2483, 2484, 2486, 2487, 2488, 2497, 2498, + 2502, 2503, 2505, 2506, 2507, 2509, 2513, 2514, 2519, 2520, + 2556, 2602, 2623, 2644, 2647, 2654, 2655, 2656, 2662, 2668, + 2670, 2672, 2674, 2676, 2678, 2680, 2697, 2702, 2705, 2708, + 2711, 2714, 2717, 2720, 2723, 2726, 2730, 2733, 2736, 2739, + 2742, 2745, 2748, 2751, 2755, 2766, 2784, 2789, 2794, 2799, + 2804, 2809, 2813, 2817, 2822, 2826, 2830, 2839, 2848, 2858, + 2863, 2875, 2881, 2886, 2892, 2898, 2902, 2904, 2915, 2924, + 2931, 2932, 2934, 2940, 2949, 2956, 2968, 2974, 2980, 2986, + 2992, 2998, 3004, 3017, 3028, 3035, 3048, 3075, 3089, 3103, + 3117, 3132, 3139, 3146, 3153, 3160, 3171, 3205, 3307, 3308, + 3309, 3311 }; #endif @@ -2090,13 +2170,14 @@ static const yytype_uint16 yyrline[] = First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { - "$end", "error", "$undefined", "T_IDENTIFIER", "T_STRING", "T_REGEXP", - "T_EMPTY", "T_INT", "T_UINT", "T_BYTE", "T_SHORT", "T_FLOAT", "\"for\"", - "\"while\"", "\"do\"", "\"switch\"", "\"implements\"", "\"namespace\"", - "\"package\"", "\"protected\"", "\"public\"", "\"private\"", "\"use\"", - "\"internal\"", "\"new\"", "\"native\"", "\"function\"", "\"finally\"", - "\"undefined\"", "\"continue\"", "\"class\"", "\"const\"", "\"catch\"", - "\"case\"", "\"set\"", "\"void\"", "\"throw\"", "\"static\"", "\"with\"", + "$end", "error", "$undefined", "T_IDENTIFIER", "T_NAMESPACE", + "T_STRING", "T_REGEXP", "T_EMPTY", "T_INT", "T_UINT", "T_BYTE", + "T_SHORT", "T_FLOAT", "\"for\"", "\"while\"", "\"do\"", "\"switch\"", + "\"implements\"", "\"namespace\"", "\"package\"", "\"protected\"", + "\"public\"", "\"private\"", "\"use\"", "\"internal\"", "\"new\"", + "\"native\"", "\"function\"", "\"finally\"", "\"undefined\"", + "\"continue\"", "\"class\"", "\"const\"", "\"catch\"", "\"case\"", + "\"set\"", "\"void\"", "\"throw\"", "\"static\"", "\"with\"", "\"instanceof\"", "\"import\"", "\"return\"", "\"typeof\"", "\"interface\"", "\"null\"", "\"var\"", "\"dynamic\"", "\"override\"", "\"final\"", "\"each\"", "\"get\"", "\"try\"", "\"super\"", @@ -2111,31 +2192,31 @@ static const char *const yytname[] = "':'", "'|'", "'^'", "'&'", "'<'", "'>'", "below_minus", "'-'", "'+'", "'/'", "'*'", "'%'", "'~'", "'!'", "minusminus_prefix", "plusplus_prefix", "below_curly", "'('", "new2", "'['", "']'", "'{'", - "'.'", "above_identifier", "below_else", "above_function", "'}'", "')'", - "$accept", "PROGRAM", "MAYBE_PROGRAM_CODE_LIST", "PROGRAM_CODE_LIST", - "PROGRAM_CODE", "MAYBE_INPACKAGE_CODE_LIST", "INPACKAGE_CODE_LIST", - "INPACKAGE_CODE", "MAYBECODE", "CODE", "CODE_STATEMENT", "CODEPIECE", - "CODEBLOCK", "PACKAGE_INITCODE", "MAYBEEXPRESSION", - "VARIABLE_DECLARATION", "VARIABLE_LIST", "ONE_VARIABLE", "MAYBEELSE", - "IF", "$@1", "FOR_INIT", "FOR_IN_INIT", "FOR_START", "FOR", "FOR_IN", - "WHILE", "$@2", "DO_WHILE", "$@3", "BREAK", "CONTINUE", - "MAYBE_CASE_LIST", "CASE_LIST", "CASE", "DEFAULT", "SWITCH", "$@4", - "CATCH", "$@5", "FINALLY", "$@6", "CATCH_LIST", "CATCH_FINALLY_LIST", - "TRY", "$@7", "THROW", "WITH", "X_IDENTIFIER", "PACKAGE", - "PACKAGE_DECLARATION", "$@8", "$@9", "IMPORT", "MAYBE_MODIFIERS", - "MODIFIER_LIST", "MODIFIER", "EXTENDS", "EXTENDS_LIST", - "IMPLEMENTS_LIST", "CLASS_DECLARATION", "$@10", "INTERFACE_DECLARATION", - "$@11", "MAYBE_CLASS_BODY", "CLASS_BODY", "CLASS_BODY_ITEM", - "MAYBE_INTERFACE_BODY", "INTERFACE_BODY", "IDECLARATION", "VARCONST", - "SLOT_DECLARATION", "MAYBESTATICCONSTANT", "STATICCONSTANT", - "MAYBE_PARAM_LIST", "PARAM_LIST", "PARAM", "GETSET", + "'.'", "'@'", "above_identifier", "below_else", "above_function", "'}'", + "')'", "$accept", "PROGRAM", "MAYBE_PROGRAM_CODE_LIST", + "PROGRAM_CODE_LIST", "PROGRAM_CODE", "MAYBE_INPACKAGE_CODE_LIST", + "INPACKAGE_CODE_LIST", "INPACKAGE_CODE", "MAYBECODE", "CODE", + "CODE_STATEMENT", "CODEPIECE", "CODEBLOCK", "PACKAGE_INITCODE", + "CONDITIONAL_COMPILATION", "MAYBEEXPRESSION", "VARIABLE_DECLARATION", + "VARIABLE_LIST", "ONE_VARIABLE", "MAYBEELSE", "IF", "$@1", "FOR_INIT", + "FOR_IN_INIT", "FOR_START", "FOR", "FOR_IN", "WHILE", "$@2", "DO_WHILE", + "$@3", "BREAK", "CONTINUE", "MAYBE_CASE_LIST", "CASE_LIST", "CASE", + "DEFAULT", "SWITCH", "$@4", "CATCH", "$@5", "FINALLY", "$@6", + "CATCH_LIST", "CATCH_FINALLY_LIST", "TRY", "$@7", "THROW", "WITH", + "X_IDENTIFIER", "PACKAGE", "PACKAGE_DECLARATION", "$@8", "$@9", "IMPORT", + "MAYBE_MODIFIERS", "MODIFIER_LIST", "MODIFIER", "EXTENDS", + "EXTENDS_LIST", "IMPLEMENTS_LIST", "CLASS_DECLARATION", "$@10", + "INTERFACE_DECLARATION", "$@11", "MAYBE_CLASS_BODY", "CLASS_BODY", + "CLASS_BODY_ITEM", "MAYBE_INTERFACE_BODY", "INTERFACE_BODY", + "IDECLARATION", "VARCONST", "SLOT_DECLARATION", "MAYBESTATICCONSTANT", + "STATICCONSTANT", "MAYBE_PARAM_LIST", "PARAM_LIST", "PARAM", "GETSET", "FUNCTION_DECLARATION", "$@12", "MAYBE_IDENTIFIER", "INNERFUNCTION", - "$@13", "CLASS", "PACKAGEANDCLASS", "QNAME", "QNAME_LIST", "TYPE", - "MAYBETYPE", "MAYBE_PARAM_VALUES", "MAYBE_EXPRESSION_LIST", - "EXPRESSION_LIST", "XX", "NEW", "FUNCTIONCALL", "DELETE", "RETURN", - "NONCOMMAEXPRESSION", "EXPRESSION", "VOIDEXPRESSION", "E", "CONSTANT", - "MAYBE_EXPRPAIR_LIST", "EXPRPAIR_LIST", "VAR_READ", - "NAMESPACE_DECLARATION", "USE_NAMESPACE", 0 + "$@13", "CLASS", "PACKAGEANDCLASS", "CLASS_SPEC", "CLASS_SPEC_LIST", + "TYPE", "MAYBETYPE", "MAYBE_PARAM_VALUES", "MAYBE_EXPRESSION_LIST", + "EXPRESSION_LIST", "EXPRESSION_LIST_AND_COMMA", "XX", "NEW", + "FUNCTIONCALL", "DELETE", "RETURN", "NONCOMMAEXPRESSION", "EXPRESSION", + "VOIDEXPRESSION", "E", "CONSTANT", "MAYBE_EXPRPAIR_LIST", + "EXPRPAIR_LIST", "VAR_READ", "NAMESPACE_DECLARATION", "USE_NAMESPACE", 0 }; #endif @@ -2153,80 +2234,84 @@ static const yytype_uint16 yytoknum[] = 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 59, 44, 351, 61, - 352, 353, 63, 58, 124, 94, 38, 60, 62, 354, - 45, 43, 47, 42, 37, 126, 33, 355, 356, 357, - 40, 358, 91, 93, 123, 46, 359, 360, 361, 125, - 41 + 345, 346, 347, 348, 349, 350, 351, 59, 44, 352, + 61, 353, 354, 63, 58, 124, 94, 38, 60, 62, + 355, 45, 43, 47, 42, 37, 126, 33, 356, 357, + 358, 40, 359, 91, 93, 123, 46, 64, 360, 361, + 362, 125, 41 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 131, 132, 133, 133, 134, 134, 135, 135, 135, - 135, 135, 135, 135, 136, 136, 137, 137, 138, 138, - 138, 138, 138, 138, 139, 139, 140, 140, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 142, 142, - 142, 142, 142, 142, 142, 142, 142, 143, 143, 143, - 143, 144, 145, 145, 146, 146, 147, 147, 148, 149, - 149, 151, 150, 152, 152, 152, 153, 153, 154, 154, - 155, 156, 158, 157, 160, 159, 161, 161, 162, 162, - 163, 163, 163, 163, 164, 164, 165, 166, 168, 167, - 170, 169, 172, 171, 173, 173, 174, 174, 174, 176, - 175, 177, 177, 178, 179, 179, 180, 180, 182, 181, - 183, 181, 184, 184, 185, 185, 186, 186, 187, 187, - 187, 187, 187, 187, 187, 187, 187, 188, 188, 189, - 189, 190, 190, 192, 191, 194, 193, 195, 195, 196, - 196, 197, 197, 197, 197, 198, 198, 199, 199, 200, - 200, 200, 201, 201, 202, 203, 203, 204, 204, 204, - 204, 204, 204, 204, 204, 205, 205, 205, 205, 206, - 206, 207, 207, 208, 208, 208, 210, 209, 211, 211, - 213, 212, 214, 215, 216, 216, 217, 217, 218, 218, - 218, 219, 219, 220, 220, 221, 221, 222, 222, 223, - 224, 225, 225, 226, 227, 227, 228, 229, 229, 230, - 231, 231, 231, 231, 231, 231, 231, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 231, 231, 231, - 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, - 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, - 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, - 231, 233, 233, 234, 234, 231, 231, 231, 231, 231, - 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, - 231, 231, 231, 235, 236, 236, 236, 237 + 0, 133, 134, 135, 135, 136, 136, 137, 137, 137, + 137, 137, 137, 137, 137, 138, 138, 139, 139, 140, + 140, 140, 140, 140, 140, 140, 141, 141, 142, 142, + 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, + 143, 144, 144, 144, 144, 144, 144, 144, 144, 144, + 145, 145, 145, 145, 146, 147, 148, 148, 149, 149, + 150, 150, 151, 152, 152, 154, 153, 155, 155, 155, + 156, 156, 157, 157, 158, 159, 161, 160, 163, 162, + 164, 164, 165, 165, 166, 166, 166, 166, 167, 167, + 168, 169, 171, 170, 173, 172, 175, 174, 176, 176, + 177, 177, 177, 179, 178, 180, 180, 181, 182, 182, + 183, 183, 185, 184, 186, 184, 187, 187, 188, 188, + 189, 189, 190, 190, 190, 190, 190, 190, 190, 190, + 190, 190, 191, 191, 192, 192, 193, 193, 195, 194, + 197, 196, 198, 198, 199, 199, 200, 200, 200, 200, + 200, 201, 201, 202, 202, 203, 203, 203, 204, 204, + 205, 206, 206, 207, 207, 207, 207, 207, 207, 207, + 207, 207, 208, 208, 208, 208, 209, 209, 210, 210, + 211, 211, 211, 213, 212, 214, 214, 216, 215, 217, + 218, 219, 219, 220, 220, 221, 221, 221, 222, 222, + 223, 223, 224, 224, 224, 225, 226, 225, 227, 228, + 229, 229, 230, 231, 231, 232, 233, 233, 234, 235, + 235, 235, 235, 235, 235, 235, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 237, 237, 238, 238, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 239, 240, 240, + 240, 241 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ static const yytype_uint8 yyr2[] = { 0, 2, 1, 0, 1, 1, 2, 1, 1, 1, - 1, 1, 1, 1, 0, 1, 1, 2, 1, 1, - 1, 1, 1, 1, 1, 0, 2, 1, 1, 1, + 1, 1, 1, 4, 1, 0, 1, 1, 2, 1, + 1, 1, 1, 1, 4, 1, 1, 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 3, 2, 2, - 1, 1, 2, 0, 2, 2, 1, 3, 3, 0, - 2, 0, 7, 0, 1, 1, 3, 1, 2, 3, - 8, 6, 0, 6, 0, 7, 1, 2, 1, 2, - 0, 1, 1, 2, 1, 2, 4, 3, 0, 8, - 0, 9, 0, 5, 1, 2, 1, 2, 1, 0, - 6, 2, 1, 5, 1, 1, 3, 1, 0, 6, - 0, 5, 2, 4, 0, 1, 1, 2, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 0, 2, 0, - 2, 0, 2, 0, 9, 0, 8, 0, 1, 1, - 2, 1, 1, 1, 1, 0, 1, 1, 2, 1, - 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, - 0, 10, 1, 3, 1, 1, 1, 3, 1, 1, - 1, 2, 0, 0, 3, 0, 1, 1, 3, 0, - 4, 4, 4, 2, 1, 2, 1, 1, 3, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, + 3, 2, 2, 1, 1, 3, 2, 0, 2, 2, + 1, 3, 3, 0, 2, 0, 7, 0, 1, 1, + 3, 1, 2, 3, 8, 6, 0, 6, 0, 7, + 1, 2, 1, 2, 0, 1, 1, 2, 1, 2, + 4, 3, 0, 8, 0, 9, 0, 5, 1, 2, + 1, 2, 1, 0, 6, 2, 1, 5, 1, 1, + 3, 1, 0, 6, 0, 5, 2, 4, 0, 1, + 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 0, 2, 0, 2, 0, 2, 0, 9, + 0, 8, 0, 1, 1, 2, 1, 4, 1, 1, + 1, 0, 1, 1, 2, 1, 2, 8, 1, 1, + 5, 0, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 0, 1, 2, 4, 3, 1, 4, 2, + 1, 1, 0, 0, 12, 1, 0, 0, 10, 1, + 3, 1, 1, 1, 3, 1, 1, 1, 2, 0, + 0, 3, 0, 1, 1, 1, 2, 2, 0, 4, + 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, 1, 1, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 2, 2, 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, 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, 2, 4, 5, 3, 5, 3, 1, 3, 5, + 5, 3 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -2234,742 +2319,866 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint16 yydefact[] = { - 114, 283, 222, 216, 219, 220, 217, 218, 221, 0, - 0, 74, 0, 0, 120, 118, 119, 126, 0, 125, - 179, 223, 256, 121, 0, 0, 0, 226, 122, 124, - 123, 0, 0, 225, 224, 0, 0, 0, 0, 13, - 0, 0, 0, 0, 195, 261, 0, 2, 114, 5, - 51, 12, 34, 63, 29, 30, 31, 32, 33, 36, - 35, 7, 28, 0, 115, 116, 9, 8, 11, 10, - 210, 213, 215, 214, 209, 37, 207, 211, 212, 0, - 68, 72, 114, 88, 104, 105, 110, 107, 0, 199, - 178, 0, 255, 0, 182, 0, 185, 184, 112, 0, - 99, 195, 0, 203, 61, 280, 279, 258, 238, 237, - 0, 0, 196, 197, 206, 0, 0, 262, 1, 6, - 283, 0, 0, 64, 0, 0, 65, 175, 0, 153, - 0, 152, 0, 117, 0, 0, 0, 0, 0, 0, + 118, 297, 131, 231, 225, 228, 229, 226, 227, 230, + 0, 0, 78, 0, 0, 124, 122, 123, 0, 130, + 0, 129, 186, 232, 265, 125, 0, 0, 0, 235, + 126, 128, 127, 0, 0, 234, 233, 0, 0, 0, + 0, 14, 0, 0, 0, 0, 202, 270, 0, 0, + 2, 118, 5, 54, 12, 0, 36, 67, 31, 32, + 33, 34, 35, 38, 37, 7, 30, 0, 119, 120, + 9, 8, 11, 10, 219, 222, 224, 223, 218, 39, + 216, 220, 221, 40, 0, 0, 72, 76, 118, 92, + 108, 109, 114, 111, 0, 0, 297, 208, 185, 0, + 264, 0, 0, 116, 0, 103, 202, 0, 212, 65, + 289, 288, 267, 247, 246, 0, 0, 203, 204, 205, + 215, 0, 0, 271, 291, 1, 6, 118, 297, 0, + 0, 68, 0, 0, 69, 182, 0, 159, 0, 158, + 0, 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 278, 277, 0, 0, + 0, 0, 0, 0, 287, 286, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 195, 0, 0, 69, 0, 0, 78, - 102, 204, 0, 76, 38, 114, 39, 50, 0, 40, - 41, 42, 44, 0, 43, 45, 46, 0, 114, 108, - 0, 193, 165, 0, 0, 0, 25, 0, 281, 0, - 257, 260, 0, 0, 265, 0, 192, 55, 56, 192, - 54, 0, 0, 174, 173, 0, 127, 129, 192, 208, - 252, 253, 250, 251, 231, 232, 234, 233, 229, 230, - 272, 271, 267, 266, 273, 274, 269, 268, 270, 235, - 236, 244, 243, 242, 275, 0, 241, 240, 239, 227, - 228, 248, 247, 245, 249, 246, 0, 0, 282, 0, - 0, 79, 101, 205, 77, 48, 114, 27, 207, 49, - 0, 0, 0, 23, 0, 114, 16, 22, 19, 18, - 21, 20, 114, 106, 195, 200, 155, 0, 0, 166, - 170, 114, 183, 113, 254, 0, 24, 202, 0, 198, - 263, 0, 0, 53, 0, 53, 0, 0, 0, 0, - 131, 0, 0, 53, 0, 201, 259, 114, 287, 47, - 26, 0, 284, 0, 111, 17, 0, 0, 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, 276, 73, 0, 0, - 80, 109, 194, 161, 158, 159, 157, 160, 164, 163, - 162, 156, 155, 0, 0, 169, 0, 0, 94, 98, - 96, 100, 59, 264, 0, 52, 0, 71, 0, 132, - 133, 0, 114, 75, 285, 286, 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, 0, 0, 0, 176, - 134, 140, 0, 86, 181, 93, 90, 25, 0, 0, - 0, 165, 25, 177, 0, 0, 192, 91, 151 + 0, 0, 202, 0, 0, 55, 73, 0, 82, 106, + 213, 0, 80, 41, 118, 42, 53, 0, 0, 43, + 44, 45, 47, 0, 46, 49, 0, 118, 112, 0, + 301, 200, 172, 0, 0, 0, 27, 0, 290, 0, + 266, 269, 206, 207, 0, 274, 0, 0, 199, 59, + 60, 199, 58, 0, 0, 181, 180, 0, 132, 134, + 199, 217, 261, 262, 259, 260, 240, 241, 243, 242, + 238, 239, 281, 280, 276, 275, 282, 283, 278, 277, + 279, 244, 245, 294, 253, 252, 251, 284, 0, 250, + 249, 248, 236, 237, 257, 256, 254, 258, 255, 0, + 0, 296, 0, 0, 0, 83, 105, 214, 81, 51, + 118, 29, 216, 52, 0, 118, 0, 0, 25, 0, + 118, 17, 23, 0, 20, 19, 22, 21, 118, 110, + 202, 209, 161, 0, 0, 173, 177, 118, 190, 117, + 263, 0, 26, 211, 0, 272, 0, 13, 0, 57, + 0, 57, 0, 0, 0, 0, 136, 0, 0, 57, + 0, 210, 268, 0, 0, 292, 118, 50, 28, 0, + 118, 298, 0, 115, 18, 118, 0, 0, 0, 0, + 179, 174, 199, 0, 107, 0, 118, 0, 189, 197, + 196, 0, 192, 191, 195, 198, 0, 62, 61, 0, + 118, 172, 133, 0, 0, 193, 135, 140, 160, 285, + 293, 295, 77, 0, 48, 0, 84, 0, 113, 201, + 171, 167, 164, 165, 163, 166, 170, 169, 168, 162, + 161, 0, 0, 176, 0, 0, 98, 102, 100, 104, + 63, 273, 0, 56, 0, 75, 0, 137, 138, 0, + 118, 79, 299, 300, 0, 0, 0, 85, 88, 86, + 24, 178, 187, 175, 96, 0, 99, 101, 118, 66, + 118, 199, 118, 194, 0, 155, 0, 0, 118, 153, + 0, 27, 93, 89, 87, 27, 27, 199, 64, 74, + 0, 146, 150, 0, 0, 0, 118, 144, 148, 149, + 156, 182, 141, 154, 27, 91, 0, 0, 0, 183, + 118, 139, 145, 0, 90, 188, 97, 94, 27, 0, + 0, 0, 0, 147, 172, 27, 184, 0, 0, 199, + 95, 157 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 46, 47, 48, 49, 284, 285, 286, 305, 306, - 186, 277, 188, 287, 354, 189, 220, 218, 420, 52, - 209, 124, 125, 53, 54, 55, 56, 177, 57, 82, - 190, 191, 408, 409, 410, 411, 58, 197, 388, 469, - 389, 437, 390, 391, 59, 206, 192, 60, 87, 350, - 61, 292, 198, 62, 193, 64, 65, 320, 322, 361, - 288, 423, 289, 402, 445, 446, 447, 428, 429, 430, - 132, 290, 340, 381, 298, 299, 300, 225, 291, 467, - 91, 70, 436, 96, 97, 351, 363, 352, 313, 295, - 111, 112, 201, 71, 72, 73, 194, 113, 74, 75, - 76, 77, 116, 117, 78, 195, 196 + -1, 49, 50, 51, 52, 299, 300, 301, 321, 322, + 195, 291, 197, 302, 198, 377, 199, 232, 230, 449, + 56, 219, 132, 133, 57, 58, 59, 60, 187, 61, + 88, 200, 201, 436, 437, 438, 439, 62, 206, 416, + 501, 417, 466, 418, 419, 63, 216, 202, 64, 93, + 371, 65, 308, 207, 66, 203, 68, 69, 336, 338, + 384, 304, 452, 305, 430, 475, 476, 477, 457, 458, + 459, 140, 306, 360, 409, 314, 315, 316, 237, 307, + 498, 99, 74, 465, 372, 373, 374, 386, 375, 329, + 311, 116, 117, 118, 211, 75, 76, 77, 204, 119, + 78, 79, 80, 81, 122, 123, 82, 205, 83 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -352 +#define YYPACT_NINF -348 static const yytype_int16 yypact[] = { - 1185, -352, -352, -352, -352, -352, -352, -352, -352, -34, - -75, -352, -55, 39, -352, -352, -352, -352, 1740, -352, - 40, -352, 310, -352, -46, 103, -39, -352, -352, -352, - -352, -24, -85, -352, -352, 1740, -16, 1740, 1740, -352, - 1740, 1740, 1740, 1740, 1740, 1740, 114, -352, 1308, -352, - -352, -352, -352, 1647, -352, -352, -352, -352, -352, -352, - -352, -352, -352, 258, 305, -352, -352, -352, -352, -352, - -352, -352, -352, -352, 21, -352, 2183, -352, -352, 59, - -352, -352, 1552, -352, -352, -352, -352, -352, -61, -86, - -352, 61, -10, 1740, 62, 63, -352, -352, -352, 1740, - -352, 1740, 180, -10, -352, -10, -10, 155, -10, -10, - -78, 67, 87, -352, 2183, 88, 82, 113, -352, -352, - 150, 215, 219, -352, 127, 157, -352, 10, 223, -352, - 225, -352, 226, -352, 1740, 1740, 1740, 1740, 1740, 1740, - 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, - 1740, 1740, 1740, 1740, 1740, 1740, -352, -352, 1740, 1740, - 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, - 1740, 1740, 1740, 1740, 1740, 227, -352, 1740, 214, 232, - 1740, 1740, 215, 233, -352, 447, -352, 144, 231, -352, - -352, -352, -352, 229, -352, -352, -352, 1740, 693, -352, - 162, 128, 11, -77, 58, 1799, 1430, 117, -352, 1740, - -352, -352, 1740, 1740, -352, 1740, 148, 159, -352, 148, - 159, 1740, 1740, -352, -352, 249, 201, 204, 148, 2183, - 803, 685, 685, 685, 2544, 2544, 2544, 2544, 803, 803, - 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2244, - 2304, 151, 151, 151, 2183, 1939, 2364, 2424, 2484, 803, - 803, 155, 155, -10, -10, -10, 136, 2000, -352, -76, - 255, -352, 21, 21, -352, -352, 570, -352, 2061, -352, - 154, 267, 1869, -352, 152, 816, -352, -352, -352, -352, - -352, -352, 693, -352, 1740, -352, 8, 284, 160, 194, - -352, 1552, 62, -352, -352, 165, 1430, -352, -60, -352, - -352, 192, 6, 197, 215, -11, 20, -50, 177, 103, - 283, 103, 178, 197, 1740, -352, -352, 1552, -352, -352, - -352, 1740, 206, 182, -352, -352, 175, 179, 205, 6, - -352, -352, 148, 13, -352, 81, 1552, 1740, -352, -352, - 185, -352, -352, 1740, -352, -352, 1740, 1552, 11, -352, - 103, 183, -352, 230, -352, -352, 2183, -352, -38, 172, - 29, -352, -352, -352, -352, -352, -352, -352, -352, -352, - -352, -352, 212, 198, 284, -352, 199, 196, -352, -352, - 81, -352, 265, -352, 164, -352, 202, -352, 203, 230, - -352, 103, 48, -352, -352, -352, 1740, 228, 208, 29, - -352, -352, -352, -352, -352, -352, 341, -352, -352, 1552, - -352, 1552, 148, 939, -352, 345, -352, 323, 221, 149, - -352, 2122, 1430, -352, -352, -352, 1430, 1430, 148, -352, - -352, 234, -352, -352, 53, 237, 1062, -352, -352, -352, - -352, 10, -352, -352, 1430, -352, 238, 239, 240, -352, - -352, -352, 352, -352, -352, -352, -352, 1430, 236, 235, - 242, 11, 1430, -352, 243, 245, 148, -352, -352 + 1656, -44, -348, -348, -348, -348, -348, -348, -348, -348, + -31, -41, -348, -30, 7, -348, -348, -348, 82, -348, + 2221, -348, 100, -348, 336, -348, -1, 19, 13, -348, + -348, -348, -348, -2, -77, -348, -348, 2221, 38, 2221, + 2221, -348, 2221, 2221, 2221, 2221, 2221, 2221, 179, 196, + -348, 495, -348, -348, -348, 78, -348, 2128, -348, -348, + -348, -348, -348, -348, -348, -348, -348, 166, 240, -348, + -348, -348, -348, -348, -348, -348, -348, -348, 115, -348, + 2736, -348, -348, -348, 213, 102, -348, -348, 1906, -348, + -348, -348, -348, -348, -102, 222, -348, -4, -348, 109, + -25, 2221, 110, -348, 2221, -348, 2221, 237, -25, -348, + -25, -25, 305, -25, -25, -56, 118, 145, 2221, -348, + 2736, 141, 116, 150, -348, -348, -348, 1011, 181, 247, + 248, -348, 155, 190, -348, -10, 253, -348, 260, -348, + 262, -348, 2221, 2221, 2221, 2221, 2221, 2221, 2221, 2221, + 2221, 2221, 2221, 2221, 2221, 2221, 2221, 2221, 2221, 2221, + 2221, 2221, 2221, 2221, -348, -348, 266, 2221, 2221, 2221, + 2221, 2221, 2221, 2221, 2221, 2221, 2221, 2221, 2221, 2221, + 2221, 2221, 2221, 2221, 64, -348, -348, 2221, 273, 2221, + 2221, 247, 281, -348, 624, -348, 189, 271, 167, -348, + -348, -348, -348, 275, -348, -348, 2221, 1140, -348, 19, + -348, 173, 24, -38, 66, 2282, 1781, 163, -348, 2221, + -348, -348, -348, -348, 2221, -348, 2221, 165, 193, 200, + -348, 193, 200, 2221, 2221, -348, -348, 296, 252, 259, + 193, 2736, 998, 487, 487, 487, 3097, 3097, 3097, 3097, + 998, 998, 2736, 2736, 2736, 2736, 2736, 2736, 2736, 2736, + 2736, 2797, 2857, -348, 287, 287, 287, 2736, 2492, 2917, + 2977, 3037, 998, 998, 305, 305, -25, -25, -25, 175, + 2553, 227, 2221, 312, -28, -348, 115, 115, -348, -348, + 753, -348, 2614, -348, 195, 2031, 314, 2352, -348, 187, + 1269, -348, -348, 194, -348, -348, -348, -348, 1140, -348, + 2221, -348, 131, 317, 191, 223, -348, 1906, 198, -348, + -348, 197, 1781, -348, -27, -348, 218, -348, 12, 226, + 247, -39, 135, -14, 208, 89, 315, 89, 209, 226, + 2221, -348, -348, 332, 2422, -348, 1906, -348, -348, 2221, + 882, 236, 212, -348, -348, 1140, 207, 211, 69, 12, + -348, -348, 193, 25, -348, 60, 1906, 2221, 198, -348, + -348, 224, -348, -348, -348, -348, 2221, -348, -348, 2221, + 1906, 24, -348, 89, 228, -348, 251, -348, -348, 2736, + -348, -348, -348, -11, -348, 178, 11, 220, -348, -348, + -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, + 258, 234, 317, -348, 241, 231, -348, -348, 60, -348, + 297, -348, 202, -348, 235, -348, 238, 251, -348, 89, + 180, -348, -348, -348, 2221, 264, 242, 11, -348, -348, + -348, -348, -348, -348, -348, 368, -348, -348, 1906, -348, + 1906, 193, 1398, -348, 375, -348, 352, 249, 233, -348, + 2675, 1781, -348, -348, -348, 1781, 1781, 193, -348, -348, + 257, -348, -348, 261, 188, 254, 1527, -348, -348, -348, + -348, -10, -348, -348, 1781, -348, 256, 265, 272, -348, + 1398, -348, -348, 380, -348, -348, -348, -348, 1781, 274, + 263, 278, 276, -348, 24, 1781, -348, 277, 280, 193, + -348, -348 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -352, -352, -352, -352, 309, 68, -352, 76, -217, 184, - 1, -74, -255, 18, 49, 322, 256, 64, -352, -352, - -352, -352, -352, -352, -352, -352, -352, -352, -352, -352, - -352, -352, -352, -352, -33, -30, -352, -352, -27, -352, - -9, -352, -352, -352, -352, -352, -352, -352, -187, 84, - -352, -352, -352, -352, 0, -352, 318, -352, -352, -352, - 27, -352, 34, -352, -352, -352, -63, -352, -352, -45, - -352, 2, 4, -352, -351, -352, -285, -66, 3, -352, - -352, -352, -352, -352, -352, -21, 28, 50, -197, -352, - -90, -352, -352, -352, -352, -352, -352, -7, 12, -48, - -12, -352, -352, -352, -352, -352, -352 + -348, -348, 270, -348, 337, -287, -348, 90, -193, -178, + 1, -76, -271, 6, 2, 67, 355, 285, 85, -348, + -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, + -348, -348, -348, -348, -348, -21, -20, -348, -348, 14, + -348, 15, -348, -348, -348, -348, -348, -348, -348, -200, + 75, -348, -348, -348, -348, 0, -348, 353, -348, -348, + -348, 59, -348, 62, -348, -68, -348, -53, -348, -348, + -29, -348, 3, 26, -348, -347, -348, -305, -47, 4, + -348, -348, -348, -348, -348, 408, -317, 54, 79, -184, + -348, -99, -348, -348, -348, -348, -348, -348, -348, -36, + 5, -52, -7, -348, -348, -348, -348, -348, -348 }; /* 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 -207 +#define YYTABLE_NINF -216 static const yytype_int16 yytable[] = { - 63, 50, 68, 69, 98, 126, 89, 398, 187, 94, - 92, 207, 341, 293, 296, 79, 296, 293, 51, 134, - 134, 134, 315, 103, 85, 105, 106, 66, 107, 108, - 109, 323, 114, 114, 67, 101, 174, 134, 115, 175, - 102, 348, 84, 90, 223, 81, 344, 134, 63, 50, - 68, 69, 210, 301, 327, 110, -66, 85, 385, 134, - 224, 302, 406, 199, 200, 83, 51, 14, 15, 16, - 346, 17, 367, 19, 93, 66, 85, 156, 157, 127, - 357, 99, 67, 266, 129, 23, 80, 205, 353, 114, - 407, 392, 403, 425, 28, 29, 30, 88, 131, 414, - 100, 297, 397, 384, 104, 203, 94, 338, 386, 95, - 173, 339, 174, 387, 118, 175, 356, 134, 134, 349, - 474, 85, 229, 230, 231, 232, 233, 234, 235, 236, - 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, - 247, 248, 249, 250, 426, 383, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 114, 267, 86, 439, 84, 440, 302, 14, 15, - 16, 303, 17, 278, 19, 404, 405, -145, 115, 176, - 85, 202, 85, 208, 212, 282, 23, -104, 204, 269, - 211, 213, 272, 273, 425, 28, 29, 30, 63, 50, - 114, 114, 330, 114, 337, 309, 310, 293, 311, 373, - 215, 214, 374, 375, 376, 455, 377, -67, 216, 456, - 457, 308, 219, 221, 222, 441, 226, 187, 227, 228, - 268, 270, 330, 316, 317, 271, 274, 463, 156, 157, - 279, 458, 156, 157, 280, 426, 281, 307, 294, 378, - 470, 312, 318, 187, 319, 475, 314, 321, 328, 379, - 380, 168, 169, 170, 171, 172, 325, 170, 171, 172, - 332, 173, 187, 174, 331, 173, 175, 174, -146, 478, - 175, 334, 114, 187, 127, 63, 50, 296, 128, 129, - 342, 343, 63, 50, 345, 347, 353, 358, 359, 360, - 362, 130, 364, 131, 371, 369, 370, 400, 396, 372, - 394, 338, 366, 1, 2, 3, 416, 4, 5, 6, - 7, 8, 413, 415, 14, 15, 16, 401, 17, 419, - 19, 432, 421, 422, 18, 114, 20, 433, 21, 362, - 393, 114, 23, 368, 438, 187, 395, 187, 450, 451, - 452, 28, 29, 30, 27, 468, 471, 119, 459, 472, - 336, 335, 32, 417, 33, 34, 460, 464, 465, 276, - 466, 473, 365, 476, 477, 123, 434, 217, 355, 435, - 424, 418, 133, 461, 453, 462, 412, 0, 399, 382, - 0, 0, 0, 0, 431, 0, 0, 37, 38, 0, - 0, 0, 427, 0, 0, 0, 0, 0, 0, 0, + 67, 53, 55, 72, 73, 134, 54, 217, 361, 309, + 90, 121, 196, 97, 309, 368, 290, 100, 382, 85, + 385, 356, 90, 208, 209, 235, 91, 312, 312, -70, + 108, 91, 110, 111, 426, 112, 113, 114, 91, 120, + 120, 236, 142, 84, 106, 434, 364, 331, 369, 107, + 115, 67, 53, 55, 72, 73, 339, 54, 413, 70, + 142, 376, 71, 164, 165, 166, 385, 281, 397, 318, + 142, 142, 400, 435, 401, 392, 220, 402, 403, 404, + 87, 405, 223, 279, 142, 91, 166, 142, 414, 94, + 86, 89, 368, 415, 317, 420, 182, 215, 183, 120, + 95, 184, 102, 98, 346, 366, 213, 443, 91, 425, + 70, 120, 453, 71, 406, 313, 412, 350, 380, 183, + 101, 431, 184, 105, 407, 408, 370, 67, 53, 55, + 72, 73, 92, 54, 104, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 507, 121, 109, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 120, 280, 468, 411, 469, + 319, 432, 124, 433, 2, 282, 70, 292, 325, 71, + 326, 283, 284, 135, 286, 287, 125, 136, 137, 297, + 15, 16, 17, 127, 19, 318, 21, 67, 53, 303, + 138, 357, 139, 142, 348, 135, 185, 120, 25, 120, + 137, 91, 309, 186, 324, 210, 454, 30, 31, 32, + 212, 358, 379, 142, 139, 359, 214, 2, 332, 333, + 218, 196, 221, 222, 2, 224, 348, 225, 226, -71, + 228, 231, 233, 15, 16, 17, 238, 19, 234, 21, + 15, 16, 17, 239, 19, 240, 21, 470, 485, 263, + 196, 25, 486, 487, 348, 344, 285, 455, 25, 454, + 30, 31, 32, 488, 288, 294, 293, 30, 31, 32, + 196, 494, 295, 296, 310, 323, 327, 328, 330, 334, + 67, 53, 303, 120, 196, 502, 335, 341, 67, 53, + 303, -151, 508, 337, 343, 345, 349, 351, 353, 355, + 312, 363, 367, 362, -108, 511, 376, 424, 365, 381, + 455, 421, 383, 389, 387, 390, 395, 396, 398, 96, + 423, 3, 4, 399, 5, 6, 7, 8, 9, 429, + 422, 440, 445, 428, 393, 67, 53, 303, 358, 442, + 120, 20, 448, 22, -152, 23, 444, 450, 461, 120, + 451, 467, 196, 462, 196, 164, 165, 166, 480, 481, + 482, 29, 489, 500, 504, 491, 490, 495, 126, 34, + 354, 35, 36, 164, 165, 166, 496, 227, 177, 178, + 179, 180, 181, 505, 497, 503, 388, 506, 182, 509, + 183, 510, 131, 184, 229, 378, 463, 464, 179, 180, + 181, 141, 499, 492, 39, 40, 182, 460, 183, 483, + 456, 184, 446, 447, 493, 103, 441, 427, 410, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 444, 443, 448, 449, 0, 0, 427, - 43, 0, 44, 0, 45, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 444, 443, 448, 449, - 1, 2, 3, 0, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 0, 0, 0, 14, 15, 16, 178, - 17, 18, 19, 20, 0, 21, 179, 0, 121, 0, - 0, 0, 22, 180, 23, 24, 0, 25, 181, 26, - 0, 27, 182, 28, 29, 30, 0, 0, 31, 32, - 0, 33, 34, 0, 0, 0, 0, 0, 0, 35, - 36, 0, 183, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 474, 472, 473, 478, 479, 45, 456, 46, + 0, 47, 0, 48, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 474, 472, 473, 478, + 479, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 474, 472, 473, 478, 479, -4, 0, 0, 1, 2, + 3, 4, 0, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 0, 0, 14, 15, 16, 17, 18, 19, + 20, 21, 0, 0, 23, 0, 0, 143, 0, 0, + 0, 24, 0, 25, 26, 0, 27, 0, 28, 0, + 29, 0, 30, 31, 32, 0, 0, 33, 34, 0, + 35, 36, 0, 0, -216, -216, -216, 0, 37, 38, + 0, 151, 152, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 164, 165, 166, 0, 167, + 168, 169, 0, 39, 40, 0, 0, 0, 0, 0, + 0, 0, 41, 0, 0, 175, 176, 0, 177, 178, + 179, 180, 181, 0, 0, 0, 42, 0, 182, 0, + 183, 43, 44, 184, 0, 0, 45, 0, 46, 0, + 47, 0, 48, 0, 0, 0, -4, 1, 2, 3, + 4, 0, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 0, 0, 0, 15, 16, 17, 18, 19, 20, + 21, 22, 0, 23, 188, 0, 129, 0, 0, 0, + 24, 189, 25, 26, 0, 27, 190, 28, 0, 29, + 191, 30, 31, 32, 0, 0, 33, 34, 0, 35, + 36, 0, 0, 0, 0, 0, 0, 37, 38, 0, + 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 37, 38, 0, 0, 0, 0, - 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, - 0, 0, 41, 42, 0, 0, 0, 43, 0, 44, - 0, 45, 0, 1, 2, 3, 275, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 0, 0, 0, 14, - 15, 16, 178, 17, 18, 19, 20, 0, 21, 179, - 0, 121, 0, 0, 0, 22, 180, 23, 24, 0, - 25, 181, 26, 0, 27, 182, 28, 29, 30, 0, - 0, 31, 32, 0, 33, 34, 0, 0, 0, 0, - 0, 0, 35, 36, 0, 183, 0, 0, 0, 0, + 0, 0, 39, 40, 0, 0, 0, 0, 0, 0, + 0, 193, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 42, 0, 0, 0, 0, + 43, 44, 0, 0, 0, 45, 0, 46, 0, 47, + 0, 48, 0, 0, 0, 289, 1, 2, 3, 4, + 0, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 0, 0, 0, 15, 16, 17, 18, 19, 20, 21, + 22, 0, 23, 188, 0, 129, 0, 0, 0, 24, + 189, 25, 26, 0, 27, 190, 28, 0, 29, 191, + 30, 31, 32, 0, 0, 33, 34, 0, 35, 36, + 0, 0, 0, 0, 0, 0, 37, 38, 0, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 37, 38, 0, - 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 40, 0, 0, 0, 0, 41, 42, 0, 0, 0, - 43, 0, 44, 0, 45, 0, 1, 2, 3, 329, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, - 0, 0, 14, 15, 16, 0, 17, 18, 19, 0, - 0, 21, 0, 0, 135, 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, -207, -207, -207, 0, 35, 36, 0, 143, 144, + 0, 39, 40, 0, 0, 0, 0, 0, 0, 0, + 193, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 42, 0, 0, 0, 0, 43, + 44, 0, 0, 0, 45, 0, 46, 0, 47, 0, + 48, 0, 0, 0, 347, 1, 2, 3, 4, 0, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, + 0, 0, 15, 16, 17, 18, 19, 20, 21, 22, + 0, 23, 188, 0, 129, 0, 0, 0, 24, 189, + 25, 26, 0, 27, 190, 28, 0, 29, 191, 30, + 31, 32, 0, 0, 33, 34, 0, 35, 36, 0, + 0, 0, 0, 0, 0, 37, 38, 0, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 156, 157, 0, 0, 158, 159, 160, 0, - 37, 38, 0, 0, 0, 0, 0, 0, 0, 283, - 0, 0, 166, 167, 0, 168, 169, 170, 171, 172, - 0, 0, 0, 40, 0, 173, 0, 174, 41, 42, - 175, 0, 0, 43, 0, 44, 0, 45, 0, 1, - 2, 3, -14, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 0, 0, 0, 14, 15, 16, 0, 17, - 18, 19, -207, 0, 21, 0, 0, 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, -207, -207, 35, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 156, 157, 0, 0, 158, 159, 160, 0, 0, 0, - 0, 0, 0, 37, 38, 0, 0, 0, 0, 0, - -207, -207, 283, 168, 169, 170, 171, 172, 0, 0, - 0, 0, 0, 173, 0, 174, 40, 0, 175, 0, - 0, 41, 42, 0, 0, 0, 43, 0, 44, 0, - 45, 0, 1, 2, 3, -15, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 0, 0, 0, 14, 15, - 16, 0, 17, 18, 19, 0, 0, 21, 0, 0, - 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, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 37, 38, 0, 0, - 0, 0, 0, 0, 0, 442, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, - 0, 0, 0, 0, 41, 42, 0, 0, 0, 43, - 0, 44, 0, 45, 0, 1, 2, 3, -137, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, - 0, 14, 15, 16, 0, 17, 18, 19, 0, 0, - 21, 0, 0, 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, 0, 0, 0, 0, + 39, 40, 0, 0, 0, 0, 0, 0, 0, 193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, - 38, 0, 0, 0, 0, 0, 0, 0, 442, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 40, 0, 0, 0, 0, 41, 42, 0, - 0, 0, 43, 0, 44, -3, 45, 0, 1, 2, - 3, -138, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 0, 0, 13, 14, 15, 16, 0, 17, 18, - 19, 0, 0, 21, 0, 0, 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, 0, + 0, 0, 0, 42, 0, 0, 0, 0, 43, 44, + 0, 0, 0, 45, 0, 46, 0, 47, 0, 48, + 0, 0, 0, 394, 1, 2, 3, 4, 0, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, + 14, 15, 16, 17, 18, 19, 20, 21, -216, 0, + 23, 0, 0, 0, 0, 0, 0, 24, 0, 25, + 26, 0, 27, 0, 28, 0, 29, 0, 30, 31, + 32, 0, 0, 33, 34, 0, 35, 36, 0, 0, + 0, 0, -216, -216, 37, 38, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 164, 165, 166, 0, + 167, 168, 169, 0, 0, 0, 0, 0, 0, 39, + 40, 0, 0, 0, 0, 0, -216, -216, 41, 177, + 178, 179, 180, 181, 0, 0, 0, 0, 0, 182, + 0, 183, 42, 0, 184, 0, 0, 43, 44, 0, + 0, 0, 45, 0, 46, 0, 47, 0, 48, 0, + 0, 0, -3, 1, 2, 3, 4, 0, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 0, 0, 0, + 15, 16, 17, 18, 19, 20, 21, 0, 0, 23, + 0, 0, 0, 0, 0, 0, 24, 0, 25, 26, + 0, 27, 0, 28, 0, 29, 0, 30, 31, 32, + 0, 0, 33, 34, 0, 35, 36, 0, 0, 0, + 0, 0, 0, 37, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 39, 40, + 0, 0, 0, 0, 0, 0, 0, 298, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 42, 0, 0, 0, 0, 43, 44, 0, 0, + 0, 45, 0, 46, 0, 47, 0, 48, 0, 0, + 0, -15, 1, 2, 3, 4, 0, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 0, 0, 0, 15, + 16, 17, 18, 19, 20, 21, 0, 0, 23, 0, + 0, 0, 0, 0, 0, 24, 0, 25, 26, 0, + 27, 0, 28, 0, 29, 0, 30, 31, 32, 0, + 0, 33, 34, 0, 35, 36, 0, 0, 0, 0, 0, 0, 37, 38, 0, 0, 0, 0, 0, 0, - 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, - 41, 42, 0, 0, 0, 43, 0, 44, -4, 45, - 0, 1, 2, 3, 0, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 0, 0, 13, 14, 15, 16, - 0, 17, 18, 19, 0, 0, 21, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 37, 38, 0, 0, 0, - 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, - 0, 0, 0, 41, 42, 0, 0, 0, 43, 0, - 44, 0, 45, 1, 2, 3, 0, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 0, -114, 0, 14, - 15, 16, 178, 17, 18, 19, 20, 0, 21, 179, - 0, 121, 0, 0, 0, 22, 180, 23, 24, 0, - 25, 181, 26, 0, 27, 182, 28, 29, 30, 0, - 0, 31, 32, 0, 33, 34, 0, 0, 0, 0, - 0, 0, 35, 36, 0, 183, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 39, 40, 0, + 0, 0, 0, 0, 0, 0, 298, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 37, 38, 0, - 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, + 42, 0, 0, 0, 0, 43, 44, 0, 0, 0, + 45, 0, 46, 0, 47, 0, 48, 0, 0, 0, + -16, 1, 2, 3, 4, 0, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 0, 0, 0, 15, 16, + 17, 18, 19, 20, 21, 0, 0, 23, 0, 0, + 0, 0, 0, 0, 24, 0, 25, 26, 0, 27, + 0, 28, 0, 29, 0, 30, 31, 32, 0, 0, + 33, 34, 0, 35, 36, 0, 0, 0, 0, 0, + 0, 37, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 40, 0, 0, 0, 0, 41, 42, 0, 0, 0, - 43, 0, 44, 0, 45, 1, 2, 3, 0, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, - 0, 14, 15, 16, 178, 17, 18, 19, 20, 0, - 21, 179, 0, 121, 0, 0, 0, 22, 180, 23, - 24, 0, 25, 181, 26, 0, 27, 182, 28, 29, - 30, 0, 0, 31, 32, 0, 33, 34, 0, 0, - 0, 0, 0, 0, 35, 36, 0, 183, 0, 0, + 0, 0, 0, 0, 0, 0, 39, 40, 0, 0, + 0, 0, 0, 0, 0, 471, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, + 0, 0, 0, 0, 43, 44, 0, 0, 0, 45, + 0, 46, 0, 47, 0, 48, 0, 0, 0, -142, + 1, 2, 3, 4, 0, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 0, 0, 0, 15, 16, 17, + 18, 19, 20, 21, 0, 0, 23, 0, 0, 0, + 0, 0, 0, 24, 0, 25, 26, 0, 27, 0, + 28, 0, 29, 0, 30, 31, 32, 0, 0, 33, + 34, 0, 35, 36, 0, 0, 0, 0, 0, 0, + 37, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, - 38, 0, 0, 0, 0, 0, 0, 0, 184, 0, - 120, 2, 3, 0, 4, 5, 6, 7, 8, 0, - 0, 0, 40, 0, 0, 0, 0, 41, 42, 0, - 0, 18, 43, 20, 44, 21, 185, 0, 121, 0, - 0, 0, 22, 0, 0, 0, 0, 0, 0, 26, - 0, 27, 122, 0, 0, 0, 0, 0, 0, 32, - 0, 33, 34, 0, 0, 0, 0, 0, 0, 35, + 0, 0, 0, 0, 0, 39, 40, 0, 0, 0, + 0, 0, 0, 0, 471, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 42, 0, + 0, 0, 0, 43, 44, 0, 0, 0, 45, 0, + 46, 0, 47, 0, 48, 0, -3, 0, -143, 1, + 2, 3, 4, 0, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 0, 0, 14, 15, 16, 17, 18, + 19, 20, 21, 0, 0, 23, 0, 0, 0, 0, + 0, 0, 24, 0, 25, 26, 0, 27, 0, 28, + 0, 29, 0, 30, 31, 32, 0, 0, 33, 34, + 0, 35, 36, 0, 0, 0, 0, 0, 0, 37, + 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 39, 40, 0, 0, 0, 0, + 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, + 0, 0, 43, 44, 0, 0, 0, 45, 0, 46, + 0, 47, 0, 48, 1, 2, 3, 4, 0, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 0, -118, + 0, 15, 16, 17, 18, 19, 20, 21, 22, 0, + 23, 188, 0, 129, 0, 0, 0, 24, 189, 25, + 26, 0, 27, 190, 28, 0, 29, 191, 30, 31, + 32, 0, 0, 33, 34, 0, 35, 36, 0, 0, + 0, 0, 0, 0, 37, 38, 0, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 37, 38, 0, 0, 0, 0, - 0, 0, 0, 1, 2, 3, 0, 4, 5, 6, - 7, 8, 0, 0, 0, 0, 0, 40, 0, 0, - 0, 0, 41, 42, 18, 0, 20, 43, 21, 44, - 0, 45, 0, 0, 0, 22, 0, 0, 0, 0, - 0, 0, 26, 0, 27, 0, 0, 0, 0, 0, - 0, 0, 32, 0, 33, 34, 0, 0, 0, 0, - 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, + 40, 0, 0, 0, 0, 0, 0, 0, 193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 37, 38, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 135, 0, + 0, 0, 42, 0, 0, 0, 0, 43, 44, 0, + 0, 0, 45, 0, 46, 0, 47, 0, 48, 1, + 2, 3, 4, 0, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 0, 0, 0, 15, 16, 17, 18, + 19, 20, 21, 22, 0, 23, 188, 0, 129, 0, + 0, 0, 24, 189, 25, 26, 0, 27, 190, 28, + 0, 29, 191, 30, 31, 32, 0, 0, 33, 34, + 0, 35, 36, 0, 0, 0, 0, 0, 0, 37, + 38, 0, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 40, 0, 0, 0, 0, 41, 42, 0, 0, 0, - 43, 0, 44, 0, 45, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 0, 156, 157, 0, 0, - 158, 159, 160, 0, 0, 0, 0, 0, 161, 0, - 0, 162, 0, 163, 164, 165, 166, 167, 135, 168, - 169, 170, 171, 172, 0, 0, 0, 0, 0, 173, - 0, 174, 0, 0, 175, 0, 0, 0, 0, 304, - 0, 0, 0, 0, 0, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 0, 156, 157, 0, 0, - 158, 159, 160, 0, 0, 0, 0, 0, 161, 0, - 0, 162, 0, 163, 164, 165, 166, 167, 135, 168, - 169, 170, 171, 172, 0, 0, 0, 0, 0, 173, - 0, 174, 0, 0, 175, 0, 0, 0, 0, 333, - 0, 0, 0, 0, 0, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 0, 156, 157, 0, 0, - 158, 159, 160, 0, 0, 0, 0, 0, 161, 135, - 0, 162, 324, 163, 164, 165, 166, 167, 0, 168, - 169, 170, 171, 172, 0, 0, 0, 0, 0, 173, - 0, 174, 0, 0, 175, 0, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 0, 156, 157, 0, - 0, 158, 159, 160, 0, 0, 0, 0, 0, 161, - 135, 0, 162, 0, 163, 164, 165, 166, 167, 0, - 168, 169, 170, 171, 172, 0, 0, 0, 0, 0, - 173, 0, 174, 326, 0, 175, 0, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 0, 156, 157, - 0, 0, 158, 159, 160, 0, 0, 0, 0, 0, - 161, 135, 0, 162, -206, 163, 164, 165, 166, 167, - 0, 168, 169, 170, 171, 172, 0, 0, 0, 0, - 0, 173, 0, 174, 0, 0, 175, 0, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 0, 156, - 157, 0, 0, 158, 159, 160, 0, 0, 0, 0, - 0, 161, 135, 0, 162, 454, 163, 164, 165, 166, - 167, 0, 168, 169, 170, 171, 172, 0, 0, 0, - 0, 0, 173, 0, 174, 0, 0, 175, 0, 136, - 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 0, - 156, 157, 0, 0, 158, 159, 160, 0, 0, 0, - 0, 0, 161, 135, 0, 162, 0, 163, 164, 165, - 166, 167, 0, 168, 169, 170, 171, 172, 0, 0, - 0, 0, 0, 173, 0, 174, 0, 0, 175, 0, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 155, - 0, 156, 157, 0, 0, 158, 159, 160, 0, 0, - 0, 0, 0, 135, 0, 0, 0, 0, 163, 164, - 165, 166, 167, 0, 168, 169, 170, 171, 172, 0, - 0, 0, 0, 0, 173, 0, 174, 0, 0, 175, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, + 0, 0, 0, 0, 39, 40, 0, 0, 0, 0, + 0, 0, 0, 193, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, + 0, 0, 43, 44, 0, 0, 0, 45, 0, 46, + 0, 194, 0, 48, 1, 2, 3, 4, 0, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 0, 0, + 0, 15, 16, 17, 18, 19, 20, 21, 22, 0, + 23, 188, 0, 129, 0, 0, 0, 24, 189, 25, + 26, 0, 27, 190, 28, 0, 29, 191, 30, 31, + 32, 0, 0, 33, 34, 0, 35, 36, 0, 0, + 0, 0, 0, 0, 37, 38, 0, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 156, 157, 0, 0, 158, 159, 160, 0, 0, - 0, 0, 0, 135, 0, 0, 0, 0, 163, 164, - 165, 166, 167, 0, 168, 169, 170, 171, 172, 0, - 0, 0, 0, 0, 173, 0, 174, 0, 0, 175, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, + 40, 0, 0, 0, 0, 0, 0, 0, 193, 0, + 0, 128, 0, 3, 4, 0, 5, 6, 7, 8, + 9, 0, 42, 0, 0, 0, 0, 43, 44, 0, + 0, 0, 45, 20, 46, 22, 47, 23, 48, 0, + 129, 0, 0, 0, 24, 0, 0, 0, 0, 0, + 0, 28, 0, 29, 130, 0, 0, 0, 0, 0, + 0, 34, 0, 35, 36, 0, 0, 0, 0, 0, + 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 156, 157, 0, 0, 158, 159, 160, 0, 0, - 0, 0, 0, 135, 0, 0, 0, 0, 0, 164, - 165, 166, 167, 0, 168, 169, 170, 171, 172, 0, - 0, 0, 0, 0, 173, 0, 174, 0, 0, 175, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, + 0, 0, 0, 0, 0, 0, 39, 40, 0, 0, + 0, 0, 0, 0, 96, 0, 3, 4, 0, 5, + 6, 7, 8, 9, 0, 0, 0, 0, 0, 42, + 0, 0, 0, 0, 43, 44, 20, 0, 22, 45, + 23, 46, 0, 47, 0, 48, 0, 24, 0, 0, + 0, 0, 0, 0, 28, 0, 29, 0, 0, 0, + 0, 0, 0, 0, 34, 0, 35, 36, 0, 0, + 0, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 156, 157, 0, 0, 158, 159, 160, 0, 0, - 0, 0, 0, 135, 0, 0, 0, 0, 0, 0, - 165, 166, 167, 0, 168, 169, 170, 171, 172, 0, - 0, 0, 0, 0, 173, 0, 174, 0, 0, 175, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 156, 157, 0, 0, 158, 159, 160, 0, 0, - 0, 0, 0, 135, 0, 0, 0, 0, 0, 0, - -207, 166, 167, 0, 168, 169, 170, 171, 172, 0, - 0, 0, 0, 0, 173, 0, 174, 0, 0, 175, - 136, 137, 138, -207, -207, -207, -207, 143, 144, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 156, 157, 0, 0, 158, 159, 160, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 166, 167, 0, 168, 169, 170, 171, 172, 0, - 0, 0, 0, 0, 173, 0, 174, 0, 0, 175 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, + 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 143, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 42, 0, 0, 0, 0, 43, 44, 0, + 0, 0, 45, 0, 46, 0, 47, 0, 48, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 0, + 164, 165, 166, 0, 167, 168, 169, 0, 0, 0, + 0, 0, 170, 0, 0, 171, 0, 172, 173, 174, + 175, 176, 143, 177, 178, 179, 180, 181, 0, 0, + 0, 0, 0, 182, 0, 183, 0, 0, 184, 0, + 0, 0, 0, 0, 320, 0, 0, 0, 0, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 0, + 164, 165, 166, 0, 167, 168, 169, 0, 0, 0, + 0, 0, 170, 0, 0, 171, 0, 172, 173, 174, + 175, 176, 143, 177, 178, 179, 180, 181, 0, 0, + 0, 0, 0, 182, 0, 183, 0, 0, 184, 0, + 0, 0, 0, 0, 352, 0, 0, 0, 0, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 0, + 164, 165, 166, 0, 167, 168, 169, 0, 0, 0, + 0, 0, 170, 0, 0, 171, 0, 172, 173, 174, + 175, 176, 143, 177, 178, 179, 180, 181, 0, 0, + 0, 0, 0, 182, 0, 183, 0, 0, 184, 0, + 0, 0, 0, 0, 391, 0, 0, 0, 0, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 0, + 164, 165, 166, 0, 167, 168, 169, 0, 0, 0, + 0, 0, 170, 143, 0, 171, 340, 172, 173, 174, + 175, 176, 0, 177, 178, 179, 180, 181, 0, 0, + 0, 0, 0, 182, 0, 183, 0, 0, 184, 0, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 0, 164, 165, 166, 0, 167, 168, 169, 0, 0, + 0, 0, 0, 170, 143, 0, 171, 0, 172, 173, + 174, 175, 176, 0, 177, 178, 179, 180, 181, 0, + 0, 0, 0, 0, 182, 0, 183, 342, 0, 184, + 0, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 0, 164, 165, 166, 0, 167, 168, 169, 0, + 0, 0, 0, 0, 170, 143, 0, 171, -215, 172, + 173, 174, 175, 176, 0, 177, 178, 179, 180, 181, + 0, 0, 0, 0, 0, 182, 0, 183, 0, 0, + 184, 0, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 0, 164, 165, 166, 0, 167, 168, 169, + 0, 0, 0, 0, 0, 170, 143, 0, 171, 484, + 172, 173, 174, 175, 176, 0, 177, 178, 179, 180, + 181, 0, 0, 0, 0, 0, 182, 0, 183, 0, + 0, 184, 0, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 0, 164, 165, 166, 0, 167, 168, + 169, 0, 0, 0, 0, 0, 170, 143, 0, 171, + 0, 172, 173, 174, 175, 176, 0, 177, 178, 179, + 180, 181, 0, 0, 0, 0, 0, 182, 0, 183, + 0, 0, 184, 0, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 163, 0, 164, 165, 166, 0, 167, + 168, 169, 0, 0, 0, 0, 0, 143, 0, 0, + 0, 0, 172, 173, 174, 175, 176, 0, 177, 178, + 179, 180, 181, 0, 0, 0, 0, 0, 182, 0, + 183, 0, 0, 184, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 164, 165, 166, 0, 167, + 168, 169, 0, 0, 0, 0, 0, 143, 0, 0, + 0, 0, 172, 173, 174, 175, 176, 0, 177, 178, + 179, 180, 181, 0, 0, 0, 0, 0, 182, 0, + 183, 0, 0, 184, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 164, 165, 166, 0, 167, + 168, 169, 0, 0, 0, 0, 0, 143, 0, 0, + 0, 0, 0, 173, 174, 175, 176, 0, 177, 178, + 179, 180, 181, 0, 0, 0, 0, 0, 182, 0, + 183, 0, 0, 184, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 164, 165, 166, 0, 167, + 168, 169, 0, 0, 0, 0, 0, 143, 0, 0, + 0, 0, 0, 0, 174, 175, 176, 0, 177, 178, + 179, 180, 181, 0, 0, 0, 0, 0, 182, 0, + 183, 0, 0, 184, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 164, 165, 166, 0, 167, + 168, 169, 0, 0, 0, 0, 0, 143, 0, 0, + 0, 0, 0, 0, -216, 175, 176, 0, 177, 178, + 179, 180, 181, 0, 0, 0, 0, 0, 182, 0, + 183, 0, 0, 184, 144, 145, 146, -216, -216, -216, + -216, 151, 152, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 164, 165, 166, 0, 167, + 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 175, 176, 0, 177, 178, + 179, 180, 181, 0, 0, 0, 0, 0, 182, 0, + 183, 0, 0, 184 }; static const yytype_int16 yycheck[] = { - 0, 0, 0, 0, 25, 53, 18, 358, 82, 3, - 22, 101, 297, 200, 3, 49, 3, 204, 0, 97, - 97, 97, 219, 35, 18, 37, 38, 0, 40, 41, - 42, 228, 44, 45, 0, 120, 122, 97, 45, 125, - 125, 35, 3, 3, 34, 120, 301, 97, 48, 48, - 48, 48, 130, 130, 130, 43, 67, 18, 343, 97, - 50, 3, 33, 124, 125, 120, 48, 19, 20, 21, - 130, 23, 327, 25, 120, 48, 18, 87, 88, 26, - 130, 120, 48, 173, 31, 37, 120, 99, 99, 101, - 61, 346, 130, 45, 46, 47, 48, 13, 45, 384, - 124, 90, 357, 90, 120, 93, 3, 99, 27, 25, - 120, 103, 122, 32, 0, 125, 96, 97, 97, 113, - 471, 18, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 96, 342, 158, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 124, 419, 3, 421, 3, 19, 20, - 21, 113, 23, 185, 25, 3, 4, 129, 185, 120, - 18, 120, 18, 3, 97, 197, 37, 125, 125, 177, - 123, 103, 180, 181, 45, 46, 47, 48, 198, 198, - 212, 213, 276, 215, 294, 212, 213, 394, 215, 4, - 97, 129, 7, 8, 9, 432, 11, 67, 3, 436, - 437, 209, 3, 96, 67, 422, 3, 301, 3, 3, - 3, 17, 306, 221, 222, 3, 3, 454, 87, 88, - 96, 438, 87, 88, 13, 96, 17, 130, 120, 44, - 467, 103, 3, 327, 53, 472, 97, 53, 3, 54, - 55, 110, 111, 112, 113, 114, 130, 112, 113, 114, - 3, 120, 346, 122, 120, 120, 125, 122, 129, 476, - 125, 129, 294, 357, 26, 285, 285, 3, 30, 31, - 130, 97, 292, 292, 129, 103, 99, 120, 319, 16, - 321, 43, 124, 45, 129, 99, 124, 124, 356, 130, - 125, 99, 324, 3, 4, 5, 120, 7, 8, 9, - 10, 11, 124, 124, 19, 20, 21, 97, 23, 64, - 25, 103, 130, 130, 24, 347, 26, 129, 28, 360, - 347, 353, 37, 331, 3, 419, 353, 421, 3, 26, - 129, 46, 47, 48, 44, 3, 120, 48, 124, 124, - 292, 285, 52, 390, 54, 55, 129, 129, 129, 185, - 130, 129, 323, 130, 129, 53, 409, 121, 314, 409, - 401, 390, 64, 446, 429, 451, 382, -1, 360, 339, - -1, -1, -1, -1, 406, -1, -1, 87, 88, -1, - -1, -1, 402, -1, -1, -1, -1, -1, -1, -1, + 0, 0, 0, 0, 0, 57, 0, 106, 313, 209, + 3, 47, 88, 20, 214, 3, 194, 24, 335, 50, + 337, 308, 3, 125, 126, 35, 19, 3, 3, 68, + 37, 19, 39, 40, 381, 42, 43, 44, 19, 46, + 47, 51, 98, 87, 121, 34, 317, 231, 36, 126, + 45, 51, 51, 51, 51, 51, 240, 51, 363, 0, + 98, 100, 0, 88, 89, 90, 383, 3, 355, 3, + 98, 98, 3, 62, 5, 346, 132, 8, 9, 10, + 121, 12, 118, 182, 98, 19, 90, 98, 28, 14, + 121, 121, 3, 33, 132, 366, 121, 104, 123, 106, + 18, 126, 27, 3, 132, 132, 101, 412, 19, 380, + 51, 118, 429, 51, 45, 91, 91, 295, 132, 123, + 121, 132, 126, 125, 55, 56, 114, 127, 127, 127, + 127, 127, 125, 127, 121, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 504, 194, 121, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 448, 362, 450, + 114, 3, 3, 5, 4, 121, 127, 194, 224, 127, + 226, 127, 187, 27, 189, 190, 0, 31, 32, 206, + 20, 21, 22, 125, 24, 3, 26, 207, 207, 207, + 44, 310, 46, 98, 290, 27, 3, 224, 38, 226, + 32, 19, 422, 121, 219, 3, 46, 47, 48, 49, + 121, 100, 97, 98, 46, 104, 126, 4, 233, 234, + 3, 317, 124, 98, 4, 104, 322, 131, 98, 68, + 3, 3, 97, 20, 21, 22, 3, 24, 68, 26, + 20, 21, 22, 3, 24, 3, 26, 451, 461, 3, + 346, 38, 465, 466, 350, 282, 3, 97, 38, 46, + 47, 48, 49, 467, 3, 14, 97, 47, 48, 49, + 366, 484, 125, 18, 121, 132, 131, 104, 98, 3, + 300, 300, 300, 310, 380, 498, 54, 132, 308, 308, + 308, 131, 505, 54, 87, 3, 121, 3, 131, 125, + 3, 98, 104, 132, 126, 509, 100, 379, 131, 121, + 97, 367, 17, 340, 125, 3, 100, 125, 131, 3, + 376, 5, 6, 132, 8, 9, 10, 11, 12, 98, + 126, 131, 121, 125, 349, 355, 355, 355, 100, 125, + 367, 25, 65, 27, 131, 29, 125, 132, 104, 376, + 132, 3, 448, 131, 450, 88, 89, 90, 3, 27, + 131, 45, 125, 3, 121, 131, 125, 131, 51, 53, + 300, 55, 56, 88, 89, 90, 131, 127, 111, 112, + 113, 114, 115, 125, 132, 131, 339, 131, 121, 132, + 123, 131, 57, 126, 129, 330, 437, 437, 113, 114, + 115, 68, 490, 476, 88, 89, 121, 434, 123, 458, + 430, 126, 418, 418, 481, 27, 410, 383, 359, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 452, 452, 452, 452, 452, 121, 458, 123, + -1, 125, -1, 127, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 476, 476, 476, 476, + 476, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 490, 490, 490, 490, 490, 0, -1, -1, 3, 4, + 5, 6, -1, 8, 9, 10, 11, 12, 13, 14, + 15, 16, -1, -1, 19, 20, 21, 22, 23, 24, + 25, 26, -1, -1, 29, -1, -1, 40, -1, -1, + -1, 36, -1, 38, 39, -1, 41, -1, 43, -1, + 45, -1, 47, 48, 49, -1, -1, 52, 53, -1, + 55, 56, -1, -1, 67, 68, 69, -1, 63, 64, + -1, 74, 75, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 88, 89, 90, -1, 92, + 93, 94, -1, 88, 89, -1, -1, -1, -1, -1, + -1, -1, 97, -1, -1, 108, 109, -1, 111, 112, + 113, 114, 115, -1, -1, -1, 111, -1, 121, -1, + 123, 116, 117, 126, -1, -1, 121, -1, 123, -1, + 125, -1, 127, -1, -1, -1, 131, 3, 4, 5, + 6, -1, 8, 9, 10, 11, 12, 13, 14, 15, + 16, -1, -1, -1, 20, 21, 22, 23, 24, 25, + 26, 27, -1, 29, 30, -1, 32, -1, -1, -1, + 36, 37, 38, 39, -1, 41, 42, 43, -1, 45, + 46, 47, 48, 49, -1, -1, 52, 53, -1, 55, + 56, -1, -1, -1, -1, -1, -1, 63, 64, -1, + 66, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 423, 423, 423, 423, -1, -1, 429, - 120, -1, 122, -1, 124, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 446, 446, 446, 446, - 3, 4, 5, -1, 7, 8, 9, 10, 11, 12, - 13, 14, 15, -1, -1, -1, 19, 20, 21, 22, - 23, 24, 25, 26, -1, 28, 29, -1, 31, -1, - -1, -1, 35, 36, 37, 38, -1, 40, 41, 42, - -1, 44, 45, 46, 47, 48, -1, -1, 51, 52, - -1, 54, 55, -1, -1, -1, -1, -1, -1, 62, - 63, -1, 65, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 88, 89, -1, -1, -1, -1, -1, -1, + -1, 97, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 111, -1, -1, -1, -1, + 116, 117, -1, -1, -1, 121, -1, 123, -1, 125, + -1, 127, -1, -1, -1, 131, 3, 4, 5, 6, + -1, 8, 9, 10, 11, 12, 13, 14, 15, 16, + -1, -1, -1, 20, 21, 22, 23, 24, 25, 26, + 27, -1, 29, 30, -1, 32, -1, -1, -1, 36, + 37, 38, 39, -1, 41, 42, 43, -1, 45, 46, + 47, 48, 49, -1, -1, 52, 53, -1, 55, 56, + -1, -1, -1, -1, -1, -1, 63, 64, -1, 66, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 87, 88, -1, -1, -1, -1, - -1, -1, -1, 96, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 110, -1, -1, - -1, -1, 115, 116, -1, -1, -1, 120, -1, 122, - -1, 124, -1, 3, 4, 5, 129, 7, 8, 9, - 10, 11, 12, 13, 14, 15, -1, -1, -1, 19, - 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, - -1, 31, -1, -1, -1, 35, 36, 37, 38, -1, - 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, - -1, 51, 52, -1, 54, 55, -1, -1, -1, -1, - -1, -1, 62, 63, -1, 65, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 87, 88, -1, - -1, -1, -1, -1, -1, -1, 96, -1, -1, -1, + -1, 88, 89, -1, -1, -1, -1, -1, -1, -1, + 97, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 111, -1, -1, -1, -1, 116, + 117, -1, -1, -1, 121, -1, 123, -1, 125, -1, + 127, -1, -1, -1, 131, 3, 4, 5, 6, -1, + 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, + -1, -1, 20, 21, 22, 23, 24, 25, 26, 27, + -1, 29, 30, -1, 32, -1, -1, -1, 36, 37, + 38, 39, -1, 41, 42, 43, -1, 45, 46, 47, + 48, 49, -1, -1, 52, 53, -1, 55, 56, -1, + -1, -1, -1, -1, -1, 63, 64, -1, 66, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 110, -1, -1, -1, -1, 115, 116, -1, -1, -1, - 120, -1, 122, -1, 124, -1, 3, 4, 5, 129, - 7, 8, 9, 10, 11, 12, 13, 14, 15, -1, - -1, -1, 19, 20, 21, -1, 23, 24, 25, -1, - -1, 28, -1, -1, 39, -1, -1, -1, 35, -1, - 37, 38, -1, 40, -1, 42, -1, 44, -1, 46, - 47, 48, -1, -1, 51, 52, -1, 54, 55, -1, - -1, 66, 67, 68, -1, 62, 63, -1, 73, 74, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 87, 88, -1, -1, 91, 92, 93, -1, - 87, 88, -1, -1, -1, -1, -1, -1, -1, 96, - -1, -1, 107, 108, -1, 110, 111, 112, 113, 114, - -1, -1, -1, 110, -1, 120, -1, 122, 115, 116, - 125, -1, -1, 120, -1, 122, -1, 124, -1, 3, - 4, 5, 129, 7, 8, 9, 10, 11, 12, 13, - 14, 15, -1, -1, -1, 19, 20, 21, -1, 23, - 24, 25, 39, -1, 28, -1, -1, -1, -1, -1, - -1, 35, -1, 37, 38, -1, 40, -1, 42, -1, - 44, -1, 46, 47, 48, -1, -1, 51, 52, -1, - 54, 55, -1, -1, -1, -1, 73, 74, 62, 63, + 88, 89, -1, -1, -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 87, 88, -1, -1, 91, 92, 93, -1, -1, -1, - -1, -1, -1, 87, 88, -1, -1, -1, -1, -1, - 107, 108, 96, 110, 111, 112, 113, 114, -1, -1, - -1, -1, -1, 120, -1, 122, 110, -1, 125, -1, - -1, 115, 116, -1, -1, -1, 120, -1, 122, -1, - 124, -1, 3, 4, 5, 129, 7, 8, 9, 10, - 11, 12, 13, 14, 15, -1, -1, -1, 19, 20, - 21, -1, 23, 24, 25, -1, -1, 28, -1, -1, - -1, -1, -1, -1, 35, -1, 37, 38, -1, 40, - -1, 42, -1, 44, -1, 46, 47, 48, -1, -1, - 51, 52, -1, 54, 55, -1, -1, -1, -1, -1, - -1, 62, 63, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 111, -1, -1, -1, -1, 116, 117, + -1, -1, -1, 121, -1, 123, -1, 125, -1, 127, + -1, -1, -1, 131, 3, 4, 5, 6, -1, 8, + 9, 10, 11, 12, 13, 14, 15, 16, -1, -1, + 19, 20, 21, 22, 23, 24, 25, 26, 40, -1, + 29, -1, -1, -1, -1, -1, -1, 36, -1, 38, + 39, -1, 41, -1, 43, -1, 45, -1, 47, 48, + 49, -1, -1, 52, 53, -1, 55, 56, -1, -1, + -1, -1, 74, 75, 63, 64, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 88, 89, 90, -1, + 92, 93, 94, -1, -1, -1, -1, -1, -1, 88, + 89, -1, -1, -1, -1, -1, 108, 109, 97, 111, + 112, 113, 114, 115, -1, -1, -1, -1, -1, 121, + -1, 123, 111, -1, 126, -1, -1, 116, 117, -1, + -1, -1, 121, -1, 123, -1, 125, -1, 127, -1, + -1, -1, 131, 3, 4, 5, 6, -1, 8, 9, + 10, 11, 12, 13, 14, 15, 16, -1, -1, -1, + 20, 21, 22, 23, 24, 25, 26, -1, -1, 29, + -1, -1, -1, -1, -1, -1, 36, -1, 38, 39, + -1, 41, -1, 43, -1, 45, -1, 47, 48, 49, + -1, -1, 52, 53, -1, 55, 56, -1, -1, -1, + -1, -1, -1, 63, 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 87, 88, -1, -1, - -1, -1, -1, -1, -1, 96, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, - -1, -1, -1, -1, 115, 116, -1, -1, -1, 120, - -1, 122, -1, 124, -1, 3, 4, 5, 129, 7, - 8, 9, 10, 11, 12, 13, 14, 15, -1, -1, - -1, 19, 20, 21, -1, 23, 24, 25, -1, -1, - 28, -1, -1, -1, -1, -1, -1, 35, -1, 37, - 38, -1, 40, -1, 42, -1, 44, -1, 46, 47, - 48, -1, -1, 51, 52, -1, 54, 55, -1, -1, - -1, -1, -1, -1, 62, 63, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 88, 89, + -1, -1, -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 87, - 88, -1, -1, -1, -1, -1, -1, -1, 96, -1, + -1, 111, -1, -1, -1, -1, 116, 117, -1, -1, + -1, 121, -1, 123, -1, 125, -1, 127, -1, -1, + -1, 131, 3, 4, 5, 6, -1, 8, 9, 10, + 11, 12, 13, 14, 15, 16, -1, -1, -1, 20, + 21, 22, 23, 24, 25, 26, -1, -1, 29, -1, + -1, -1, -1, -1, -1, 36, -1, 38, 39, -1, + 41, -1, 43, -1, 45, -1, 47, 48, 49, -1, + -1, 52, 53, -1, 55, 56, -1, -1, -1, -1, + -1, -1, 63, 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 110, -1, -1, -1, -1, 115, 116, -1, - -1, -1, 120, -1, 122, 0, 124, -1, 3, 4, - 5, 129, 7, 8, 9, 10, 11, 12, 13, 14, - 15, -1, -1, 18, 19, 20, 21, -1, 23, 24, - 25, -1, -1, 28, -1, -1, -1, -1, -1, -1, - 35, -1, 37, 38, -1, 40, -1, 42, -1, 44, - -1, 46, 47, 48, -1, -1, 51, 52, -1, 54, - 55, -1, -1, -1, -1, -1, -1, 62, 63, -1, + -1, -1, -1, -1, -1, -1, -1, 88, 89, -1, + -1, -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 111, -1, -1, -1, -1, 116, 117, -1, -1, -1, + 121, -1, 123, -1, 125, -1, 127, -1, -1, -1, + 131, 3, 4, 5, 6, -1, 8, 9, 10, 11, + 12, 13, 14, 15, 16, -1, -1, -1, 20, 21, + 22, 23, 24, 25, 26, -1, -1, 29, -1, -1, + -1, -1, -1, -1, 36, -1, 38, 39, -1, 41, + -1, 43, -1, 45, -1, 47, 48, 49, -1, -1, + 52, 53, -1, 55, 56, -1, -1, -1, -1, -1, + -1, 63, 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 87, 88, -1, -1, -1, -1, -1, -1, - -1, 96, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 110, -1, -1, -1, -1, - 115, 116, -1, -1, -1, 120, -1, 122, 0, 124, - -1, 3, 4, 5, -1, 7, 8, 9, 10, 11, - 12, 13, 14, 15, -1, -1, 18, 19, 20, 21, - -1, 23, 24, 25, -1, -1, 28, -1, -1, -1, - -1, -1, -1, 35, -1, 37, 38, -1, 40, -1, - 42, -1, 44, -1, 46, 47, 48, -1, -1, 51, - 52, -1, 54, 55, -1, -1, -1, -1, -1, -1, - 62, 63, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 88, 89, -1, -1, + -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, + -1, -1, -1, -1, 116, 117, -1, -1, -1, 121, + -1, 123, -1, 125, -1, 127, -1, -1, -1, 131, + 3, 4, 5, 6, -1, 8, 9, 10, 11, 12, + 13, 14, 15, 16, -1, -1, -1, 20, 21, 22, + 23, 24, 25, 26, -1, -1, 29, -1, -1, -1, + -1, -1, -1, 36, -1, 38, 39, -1, 41, -1, + 43, -1, 45, -1, 47, 48, 49, -1, -1, 52, + 53, -1, 55, 56, -1, -1, -1, -1, -1, -1, + 63, 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 87, 88, -1, -1, -1, - -1, -1, -1, -1, 96, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 110, -1, - -1, -1, -1, 115, 116, -1, -1, -1, 120, -1, - 122, -1, 124, 3, 4, 5, -1, 7, 8, 9, - 10, 11, 12, 13, 14, 15, -1, 17, -1, 19, - 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, - -1, 31, -1, -1, -1, 35, 36, 37, 38, -1, - 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, - -1, 51, 52, -1, 54, 55, -1, -1, -1, -1, - -1, -1, 62, 63, -1, 65, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 88, 89, -1, -1, -1, + -1, -1, -1, -1, 97, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 111, -1, + -1, -1, -1, 116, 117, -1, -1, -1, 121, -1, + 123, -1, 125, -1, 127, -1, 0, -1, 131, 3, + 4, 5, 6, -1, 8, 9, 10, 11, 12, 13, + 14, 15, 16, -1, -1, 19, 20, 21, 22, 23, + 24, 25, 26, -1, -1, 29, -1, -1, -1, -1, + -1, -1, 36, -1, 38, 39, -1, 41, -1, 43, + -1, 45, -1, 47, 48, 49, -1, -1, 52, 53, + -1, 55, 56, -1, -1, -1, -1, -1, -1, 63, + 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 87, 88, -1, - -1, -1, -1, -1, -1, -1, 96, -1, -1, -1, + -1, -1, -1, -1, 88, 89, -1, -1, -1, -1, + -1, -1, -1, 97, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 111, -1, -1, + -1, -1, 116, 117, -1, -1, -1, 121, -1, 123, + -1, 125, -1, 127, 3, 4, 5, 6, -1, 8, + 9, 10, 11, 12, 13, 14, 15, 16, -1, 18, + -1, 20, 21, 22, 23, 24, 25, 26, 27, -1, + 29, 30, -1, 32, -1, -1, -1, 36, 37, 38, + 39, -1, 41, 42, 43, -1, 45, 46, 47, 48, + 49, -1, -1, 52, 53, -1, 55, 56, -1, -1, + -1, -1, -1, -1, 63, 64, -1, 66, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 110, -1, -1, -1, -1, 115, 116, -1, -1, -1, - 120, -1, 122, -1, 124, 3, 4, 5, -1, 7, - 8, 9, 10, 11, 12, 13, 14, 15, -1, -1, - -1, 19, 20, 21, 22, 23, 24, 25, 26, -1, - 28, 29, -1, 31, -1, -1, -1, 35, 36, 37, - 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, - 48, -1, -1, 51, 52, -1, 54, 55, -1, -1, - -1, -1, -1, -1, 62, 63, -1, 65, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, + 89, -1, -1, -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 87, - 88, -1, -1, -1, -1, -1, -1, -1, 96, -1, - 3, 4, 5, -1, 7, 8, 9, 10, 11, -1, - -1, -1, 110, -1, -1, -1, -1, 115, 116, -1, - -1, 24, 120, 26, 122, 28, 124, -1, 31, -1, - -1, -1, 35, -1, -1, -1, -1, -1, -1, 42, - -1, 44, 45, -1, -1, -1, -1, -1, -1, 52, - -1, 54, 55, -1, -1, -1, -1, -1, -1, 62, + -1, -1, 111, -1, -1, -1, -1, 116, 117, -1, + -1, -1, 121, -1, 123, -1, 125, -1, 127, 3, + 4, 5, 6, -1, 8, 9, 10, 11, 12, 13, + 14, 15, 16, -1, -1, -1, 20, 21, 22, 23, + 24, 25, 26, 27, -1, 29, 30, -1, 32, -1, + -1, -1, 36, 37, 38, 39, -1, 41, 42, 43, + -1, 45, 46, 47, 48, 49, -1, -1, 52, 53, + -1, 55, 56, -1, -1, -1, -1, -1, -1, 63, + 64, -1, 66, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 88, 89, -1, -1, -1, -1, + -1, -1, -1, 97, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 111, -1, -1, + -1, -1, 116, 117, -1, -1, -1, 121, -1, 123, + -1, 125, -1, 127, 3, 4, 5, 6, -1, 8, + 9, 10, 11, 12, 13, 14, 15, 16, -1, -1, + -1, 20, 21, 22, 23, 24, 25, 26, 27, -1, + 29, 30, -1, 32, -1, -1, -1, 36, 37, 38, + 39, -1, 41, 42, 43, -1, 45, 46, 47, 48, + 49, -1, -1, 52, 53, -1, 55, 56, -1, -1, + -1, -1, -1, -1, 63, 64, -1, 66, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 87, 88, -1, -1, -1, -1, - -1, -1, -1, 3, 4, 5, -1, 7, 8, 9, - 10, 11, -1, -1, -1, -1, -1, 110, -1, -1, - -1, -1, 115, 116, 24, -1, 26, 120, 28, 122, - -1, 124, -1, -1, -1, 35, -1, -1, -1, -1, - -1, -1, 42, -1, 44, -1, -1, -1, -1, -1, - -1, -1, 52, -1, 54, 55, -1, -1, -1, -1, - -1, -1, 62, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, + 89, -1, -1, -1, -1, -1, -1, -1, 97, -1, + -1, 3, -1, 5, 6, -1, 8, 9, 10, 11, + 12, -1, 111, -1, -1, -1, -1, 116, 117, -1, + -1, -1, 121, 25, 123, 27, 125, 29, 127, -1, + 32, -1, -1, -1, 36, -1, -1, -1, -1, -1, + -1, 43, -1, 45, 46, -1, -1, -1, -1, -1, + -1, 53, -1, 55, 56, -1, -1, -1, -1, -1, + -1, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 87, 88, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 39, -1, + -1, -1, -1, -1, -1, -1, 88, 89, -1, -1, + -1, -1, -1, -1, 3, -1, 5, 6, -1, 8, + 9, 10, 11, 12, -1, -1, -1, -1, -1, 111, + -1, -1, -1, -1, 116, 117, 25, -1, 27, 121, + 29, 123, -1, 125, -1, 127, -1, 36, -1, -1, + -1, -1, -1, -1, 43, -1, 45, -1, -1, -1, + -1, -1, -1, -1, 53, -1, 55, 56, -1, -1, + -1, -1, -1, -1, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 110, -1, -1, -1, -1, 115, 116, -1, -1, -1, - 120, -1, 122, -1, 124, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, -1, 87, 88, -1, -1, - 91, 92, 93, -1, -1, -1, -1, -1, 99, -1, - -1, 102, -1, 104, 105, 106, 107, 108, 39, 110, - 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, - -1, 122, -1, -1, 125, -1, -1, -1, -1, 130, - -1, -1, -1, -1, -1, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, -1, 87, 88, -1, -1, - 91, 92, 93, -1, -1, -1, -1, -1, 99, -1, - -1, 102, -1, 104, 105, 106, 107, 108, 39, 110, - 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, - -1, 122, -1, -1, 125, -1, -1, -1, -1, 130, - -1, -1, -1, -1, -1, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, -1, 87, 88, -1, -1, - 91, 92, 93, -1, -1, -1, -1, -1, 99, 39, - -1, 102, 103, 104, 105, 106, 107, 108, -1, 110, - 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, - -1, 122, -1, -1, 125, -1, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, -1, 87, 88, -1, - -1, 91, 92, 93, -1, -1, -1, -1, -1, 99, - 39, -1, 102, -1, 104, 105, 106, 107, 108, -1, - 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, - 120, -1, 122, 123, -1, 125, -1, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, -1, 87, 88, - -1, -1, 91, 92, 93, -1, -1, -1, -1, -1, - 99, 39, -1, 102, 103, 104, 105, 106, 107, 108, - -1, 110, 111, 112, 113, 114, -1, -1, -1, -1, - -1, 120, -1, 122, -1, -1, 125, -1, 66, 67, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, + 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 40, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 111, -1, -1, -1, -1, 116, 117, -1, + -1, -1, 121, -1, 123, -1, 125, -1, 127, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 83, 84, 85, -1, 87, - 88, -1, -1, 91, 92, 93, -1, -1, -1, -1, - -1, 99, 39, -1, 102, 103, 104, 105, 106, 107, - 108, -1, 110, 111, 112, 113, 114, -1, -1, -1, - -1, -1, 120, -1, 122, -1, -1, 125, -1, 66, + 78, 79, 80, 81, 82, 83, 84, 85, 86, -1, + 88, 89, 90, -1, 92, 93, 94, -1, -1, -1, + -1, -1, 100, -1, -1, 103, -1, 105, 106, 107, + 108, 109, 40, 111, 112, 113, 114, 115, -1, -1, + -1, -1, -1, 121, -1, 123, -1, -1, 126, -1, + -1, -1, -1, -1, 132, -1, -1, -1, -1, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, -1, + 88, 89, 90, -1, 92, 93, 94, -1, -1, -1, + -1, -1, 100, -1, -1, 103, -1, 105, 106, 107, + 108, 109, 40, 111, 112, 113, 114, 115, -1, -1, + -1, -1, -1, 121, -1, 123, -1, -1, 126, -1, + -1, -1, -1, -1, 132, -1, -1, -1, -1, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, -1, + 88, 89, 90, -1, 92, 93, 94, -1, -1, -1, + -1, -1, 100, -1, -1, 103, -1, 105, 106, 107, + 108, 109, 40, 111, 112, 113, 114, 115, -1, -1, + -1, -1, -1, 121, -1, 123, -1, -1, 126, -1, + -1, -1, -1, -1, 132, -1, -1, -1, -1, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, -1, + 88, 89, 90, -1, 92, 93, 94, -1, -1, -1, + -1, -1, 100, 40, -1, 103, 104, 105, 106, 107, + 108, 109, -1, 111, 112, 113, 114, 115, -1, -1, + -1, -1, -1, 121, -1, 123, -1, -1, 126, -1, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, - 87, 88, -1, -1, 91, 92, 93, -1, -1, -1, - -1, -1, 99, 39, -1, 102, -1, 104, 105, 106, - 107, 108, -1, 110, 111, 112, 113, 114, -1, -1, - -1, -1, -1, 120, -1, 122, -1, -1, 125, -1, - 66, 67, 68, 69, 70, 71, 72, 73, 74, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, - -1, 87, 88, -1, -1, 91, 92, 93, -1, -1, - -1, -1, -1, 39, -1, -1, -1, -1, 104, 105, - 106, 107, 108, -1, 110, 111, 112, 113, 114, -1, - -1, -1, -1, -1, 120, -1, 122, -1, -1, 125, - 66, 67, 68, 69, 70, 71, 72, 73, 74, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 87, 88, -1, -1, 91, 92, 93, -1, -1, - -1, -1, -1, 39, -1, -1, -1, -1, 104, 105, - 106, 107, 108, -1, 110, 111, 112, 113, 114, -1, - -1, -1, -1, -1, 120, -1, 122, -1, -1, 125, - 66, 67, 68, 69, 70, 71, 72, 73, 74, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 87, 88, -1, -1, 91, 92, 93, -1, -1, - -1, -1, -1, 39, -1, -1, -1, -1, -1, 105, - 106, 107, 108, -1, 110, 111, 112, 113, 114, -1, - -1, -1, -1, -1, 120, -1, 122, -1, -1, 125, - 66, 67, 68, 69, 70, 71, 72, 73, 74, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 87, 88, -1, -1, 91, 92, 93, -1, -1, - -1, -1, -1, 39, -1, -1, -1, -1, -1, -1, - 106, 107, 108, -1, 110, 111, 112, 113, 114, -1, - -1, -1, -1, -1, 120, -1, 122, -1, -1, 125, - 66, 67, 68, 69, 70, 71, 72, 73, 74, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 87, 88, -1, -1, 91, 92, 93, -1, -1, - -1, -1, -1, 39, -1, -1, -1, -1, -1, -1, - 106, 107, 108, -1, 110, 111, 112, 113, 114, -1, - -1, -1, -1, -1, 120, -1, 122, -1, -1, 125, - 66, 67, 68, 69, 70, 71, 72, 73, 74, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 87, 88, -1, -1, 91, 92, 93, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 107, 108, -1, 110, 111, 112, 113, 114, -1, - -1, -1, -1, -1, 120, -1, 122, -1, -1, 125 + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + -1, 88, 89, 90, -1, 92, 93, 94, -1, -1, + -1, -1, -1, 100, 40, -1, 103, -1, 105, 106, + 107, 108, 109, -1, 111, 112, 113, 114, 115, -1, + -1, -1, -1, -1, 121, -1, 123, 124, -1, 126, + -1, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, -1, 88, 89, 90, -1, 92, 93, 94, -1, + -1, -1, -1, -1, 100, 40, -1, 103, 104, 105, + 106, 107, 108, 109, -1, 111, 112, 113, 114, 115, + -1, -1, -1, -1, -1, 121, -1, 123, -1, -1, + 126, -1, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, -1, 88, 89, 90, -1, 92, 93, 94, + -1, -1, -1, -1, -1, 100, 40, -1, 103, 104, + 105, 106, 107, 108, 109, -1, 111, 112, 113, 114, + 115, -1, -1, -1, -1, -1, 121, -1, 123, -1, + -1, 126, -1, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, -1, 88, 89, 90, -1, 92, 93, + 94, -1, -1, -1, -1, -1, 100, 40, -1, 103, + -1, 105, 106, 107, 108, 109, -1, 111, 112, 113, + 114, 115, -1, -1, -1, -1, -1, 121, -1, 123, + -1, -1, 126, -1, 67, 68, 69, 70, 71, 72, + 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 86, -1, 88, 89, 90, -1, 92, + 93, 94, -1, -1, -1, -1, -1, 40, -1, -1, + -1, -1, 105, 106, 107, 108, 109, -1, 111, 112, + 113, 114, 115, -1, -1, -1, -1, -1, 121, -1, + 123, -1, -1, 126, 67, 68, 69, 70, 71, 72, + 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 88, 89, 90, -1, 92, + 93, 94, -1, -1, -1, -1, -1, 40, -1, -1, + -1, -1, 105, 106, 107, 108, 109, -1, 111, 112, + 113, 114, 115, -1, -1, -1, -1, -1, 121, -1, + 123, -1, -1, 126, 67, 68, 69, 70, 71, 72, + 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 88, 89, 90, -1, 92, + 93, 94, -1, -1, -1, -1, -1, 40, -1, -1, + -1, -1, -1, 106, 107, 108, 109, -1, 111, 112, + 113, 114, 115, -1, -1, -1, -1, -1, 121, -1, + 123, -1, -1, 126, 67, 68, 69, 70, 71, 72, + 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 88, 89, 90, -1, 92, + 93, 94, -1, -1, -1, -1, -1, 40, -1, -1, + -1, -1, -1, -1, 107, 108, 109, -1, 111, 112, + 113, 114, 115, -1, -1, -1, -1, -1, 121, -1, + 123, -1, -1, 126, 67, 68, 69, 70, 71, 72, + 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 88, 89, 90, -1, 92, + 93, 94, -1, -1, -1, -1, -1, 40, -1, -1, + -1, -1, -1, -1, 107, 108, 109, -1, 111, 112, + 113, 114, 115, -1, -1, -1, -1, -1, 121, -1, + 123, -1, -1, 126, 67, 68, 69, 70, 71, 72, + 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 88, 89, 90, -1, 92, + 93, 94, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 108, 109, -1, 111, 112, + 113, 114, 115, -1, -1, -1, -1, -1, 121, -1, + 123, -1, -1, 126 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 3, 4, 5, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 18, 19, 20, 21, 23, 24, 25, - 26, 28, 35, 37, 38, 40, 42, 44, 46, 47, - 48, 51, 52, 54, 55, 62, 63, 87, 88, 96, - 110, 115, 116, 120, 122, 124, 132, 133, 134, 135, - 141, 144, 150, 154, 155, 156, 157, 159, 167, 175, - 178, 181, 184, 185, 186, 187, 191, 193, 202, 209, - 212, 224, 225, 226, 229, 230, 231, 232, 235, 49, - 120, 120, 160, 120, 3, 18, 124, 179, 180, 231, - 3, 211, 231, 120, 3, 180, 214, 215, 216, 120, - 124, 120, 125, 231, 120, 231, 231, 231, 231, 231, - 229, 221, 222, 228, 231, 228, 233, 234, 0, 135, - 3, 31, 45, 146, 152, 153, 230, 26, 30, 31, - 43, 45, 201, 187, 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, 122, 125, 120, 158, 22, 29, - 36, 41, 45, 65, 96, 124, 141, 142, 143, 146, - 161, 162, 177, 185, 227, 236, 237, 168, 183, 124, - 125, 223, 120, 229, 125, 231, 176, 221, 3, 151, - 130, 123, 97, 103, 129, 97, 3, 147, 148, 3, - 147, 96, 67, 34, 50, 208, 3, 3, 3, 231, - 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, - 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, - 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, - 231, 231, 231, 231, 231, 231, 221, 231, 3, 229, - 17, 3, 229, 229, 3, 129, 140, 142, 231, 96, - 13, 17, 231, 96, 136, 137, 138, 144, 191, 193, - 202, 209, 182, 179, 120, 220, 3, 90, 205, 206, - 207, 130, 3, 113, 130, 139, 140, 130, 229, 228, - 228, 228, 103, 219, 97, 219, 229, 229, 3, 53, - 188, 53, 189, 219, 103, 130, 123, 130, 3, 129, - 142, 120, 3, 130, 129, 138, 136, 221, 99, 103, - 203, 207, 130, 97, 143, 129, 130, 103, 35, 113, - 180, 216, 218, 99, 145, 148, 96, 130, 120, 216, - 16, 190, 216, 217, 124, 145, 231, 143, 229, 99, - 124, 129, 130, 4, 7, 8, 9, 11, 44, 54, - 55, 204, 218, 219, 90, 207, 27, 32, 169, 171, - 173, 174, 143, 228, 125, 228, 230, 143, 205, 217, - 124, 97, 194, 130, 3, 4, 33, 61, 163, 164, - 165, 166, 203, 124, 207, 124, 120, 169, 171, 64, - 149, 130, 130, 192, 216, 45, 96, 185, 198, 199, - 200, 231, 103, 129, 165, 166, 213, 172, 3, 143, - 143, 219, 96, 141, 185, 195, 196, 197, 202, 209, - 3, 26, 129, 200, 103, 139, 139, 139, 219, 124, - 129, 197, 208, 139, 129, 129, 130, 210, 3, 170, - 139, 120, 124, 129, 205, 139, 130, 129, 219 + 0, 3, 4, 5, 6, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 29, 36, 38, 39, 41, 43, 45, + 47, 48, 49, 52, 53, 55, 56, 63, 64, 88, + 89, 97, 111, 116, 117, 121, 123, 125, 127, 134, + 135, 136, 137, 143, 146, 147, 153, 157, 158, 159, + 160, 162, 170, 178, 181, 184, 187, 188, 189, 190, + 194, 196, 205, 212, 215, 228, 229, 230, 233, 234, + 235, 236, 239, 241, 87, 50, 121, 121, 163, 121, + 3, 19, 125, 182, 183, 18, 3, 235, 3, 214, + 235, 121, 183, 218, 121, 125, 121, 126, 235, 121, + 235, 235, 235, 235, 235, 233, 224, 225, 226, 232, + 235, 232, 237, 238, 3, 0, 137, 125, 3, 32, + 46, 149, 155, 156, 234, 27, 31, 32, 44, 46, + 204, 190, 98, 40, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 88, 89, 90, 92, 93, 94, + 100, 103, 105, 106, 107, 108, 109, 111, 112, 113, + 114, 115, 121, 123, 126, 3, 121, 161, 30, 37, + 42, 46, 66, 97, 125, 143, 144, 145, 147, 149, + 164, 165, 180, 188, 231, 240, 171, 186, 125, 126, + 3, 227, 121, 233, 126, 235, 179, 224, 3, 154, + 132, 124, 98, 232, 104, 131, 98, 135, 3, 150, + 151, 3, 150, 97, 68, 35, 51, 211, 3, 3, + 3, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 3, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 224, + 235, 3, 121, 127, 233, 3, 233, 233, 3, 131, + 142, 144, 235, 97, 14, 125, 18, 235, 97, 138, + 139, 140, 146, 147, 194, 196, 205, 212, 185, 182, + 121, 223, 3, 91, 208, 209, 210, 132, 3, 114, + 132, 141, 142, 132, 233, 232, 232, 131, 104, 222, + 98, 222, 233, 233, 3, 54, 191, 54, 192, 222, + 104, 132, 124, 87, 235, 3, 132, 131, 144, 121, + 142, 3, 132, 131, 140, 125, 138, 224, 100, 104, + 206, 210, 132, 98, 145, 131, 132, 104, 3, 36, + 114, 183, 217, 218, 219, 221, 100, 148, 151, 97, + 132, 121, 219, 17, 193, 219, 220, 125, 148, 235, + 3, 132, 145, 233, 131, 100, 125, 138, 131, 132, + 3, 5, 8, 9, 10, 12, 45, 55, 56, 207, + 221, 222, 91, 210, 28, 33, 172, 174, 176, 177, + 145, 232, 126, 232, 234, 145, 208, 220, 125, 98, + 197, 132, 3, 5, 34, 62, 166, 167, 168, 169, + 131, 206, 125, 210, 125, 121, 172, 174, 65, 152, + 132, 132, 195, 219, 46, 97, 188, 201, 202, 203, + 235, 104, 131, 168, 169, 216, 175, 3, 145, 145, + 222, 97, 143, 147, 188, 198, 199, 200, 205, 212, + 3, 27, 131, 203, 104, 141, 141, 141, 222, 125, + 125, 131, 200, 211, 141, 131, 131, 132, 213, 198, + 3, 173, 141, 131, 121, 125, 131, 208, 141, 132, + 131, 222 }; #define yyerrok (yyerrstatus = 0) @@ -3781,132 +3990,132 @@ yyreduce: switch (yyn) { - case 24: + case 26: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1654 "parser.y" +#line 1725 "parser.y" {(yyval.code)=(yyvsp[(1) - (1)].code);} } break; - case 25: + case 27: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1655 "parser.y" +#line 1726 "parser.y" {(yyval.code)=code_new();} } break; - case 26: + case 28: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1657 "parser.y" +#line 1728 "parser.y" {(yyval.code)=code_append((yyvsp[(1) - (2)].code),(yyvsp[(2) - (2)].code));} } break; - case 27: + case 29: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1658 "parser.y" +#line 1729 "parser.y" {(yyval.code)=(yyvsp[(1) - (1)].code);} } break; - case 38: + case 41: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1673 "parser.y" +#line 1745 "parser.y" {(yyval.code)=0;} } break; - case 45: + case 48: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1681 "parser.y" - {/*TODO*/(yyval.code)=0;} +#line 1752 "parser.y" + {(yyval.code)=(yyvsp[(3) - (4)].code);} } break; - case 46: + case 49: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1682 "parser.y" +#line 1754 "parser.y" {/*TODO*/(yyval.code)=0;} } break; - case 47: + case 50: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1684 "parser.y" +#line 1756 "parser.y" {(yyval.code)=(yyvsp[(2) - (3)].code);} } break; - case 48: + case 51: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1685 "parser.y" +#line 1757 "parser.y" {(yyval.code)=0;} } break; - case 49: + case 52: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1686 "parser.y" +#line 1758 "parser.y" {(yyval.code)=(yyvsp[(1) - (2)].code);} } break; - case 50: + case 53: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1687 "parser.y" +#line 1759 "parser.y" {(yyval.code)=(yyvsp[(1) - (1)].code);} } break; - case 51: + case 54: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1691 "parser.y" +#line 1763 "parser.y" { code_t**cc = &global->init->method->body->code; *cc = code_append(*cc, (yyvsp[(1) - (1)].code)); @@ -3916,22 +4125,22 @@ yyreduce: - case 52: + case 56: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1698 "parser.y" +#line 1774 "parser.y" {(yyval.value)=(yyvsp[(2) - (2)].value);} } break; - case 53: + case 57: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1699 "parser.y" +#line 1775 "parser.y" {(yyval.value).c=abc_pushundefined(0); (yyval.value).t=TYPE_ANY; } @@ -3940,55 +4149,55 @@ yyreduce: - case 54: + case 58: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1703 "parser.y" +#line 1779 "parser.y" {(yyval.code)=(yyvsp[(2) - (2)].code);} } break; - case 55: + case 59: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1704 "parser.y" +#line 1780 "parser.y" {(yyval.code)=(yyvsp[(2) - (2)].code);} } break; - case 56: + case 60: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1706 "parser.y" +#line 1782 "parser.y" {(yyval.code) = (yyvsp[(1) - (1)].code);} } break; - case 57: + case 61: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1707 "parser.y" +#line 1783 "parser.y" {(yyval.code) = code_append((yyvsp[(1) - (3)].code), (yyvsp[(3) - (3)].code));} } break; - case 58: + case 62: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1710 "parser.y" +#line 1786 "parser.y" { if(variable_exists((yyvsp[(1) - (3)].id))) syntaxerror("Variable %s already defined", (yyvsp[(1) - (3)].id)); @@ -4006,6 +4215,7 @@ yyreduce: (yyval.code) = converttype((yyval.code), (yyvsp[(3) - (3)].value).t, (yyvsp[(2) - (3)].classinfo)); (yyval.code) = abc_setlocal((yyval.code), index); } else { + code_free((yyvsp[(3) - (3)].value).c); (yyval.code) = defaultvalue(0, (yyvsp[(2) - (3)].classinfo)); (yyval.code) = abc_setlocal((yyval.code), index); } @@ -4015,6 +4225,7 @@ yyreduce: (yyval.code) = abc_coerce_a((yyval.code)); (yyval.code) = abc_setlocal((yyval.code), index); } else { + code_free((yyvsp[(3) - (3)].value).c); (yyval.code) = code_new(); } } @@ -4031,44 +4242,44 @@ yyreduce: - case 59: + case 63: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1750 "parser.y" +#line 1828 "parser.y" {(yyval.code) = code_new();} } break; - case 60: + case 64: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1751 "parser.y" +#line 1829 "parser.y" {(yyval.code)=(yyvsp[(2) - (2)].code);} } break; - case 61: + case 65: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1754 "parser.y" +#line 1832 "parser.y" {new_state();} } break; - case 62: + case 66: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1754 "parser.y" +#line 1832 "parser.y" { (yyval.code) = code_new(); @@ -4092,22 +4303,22 @@ yyreduce: - case 63: + case 67: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1773 "parser.y" +#line 1851 "parser.y" {(yyval.code)=code_new();} } break; - case 66: + case 70: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1778 "parser.y" +#line 1856 "parser.y" { (yyval.id)=(yyvsp[(2) - (3)].id);new_variable((yyvsp[(2) - (3)].id),(yyvsp[(3) - (3)].classinfo),1); } @@ -4116,11 +4327,11 @@ yyreduce: - case 67: + case 71: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1781 "parser.y" +#line 1859 "parser.y" { (yyval.id)=(yyvsp[(1) - (1)].id); } @@ -4129,33 +4340,33 @@ yyreduce: - case 68: + case 72: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1785 "parser.y" +#line 1863 "parser.y" {new_state();(yyval.for_start).name=(yyvsp[(1) - (2)].id);(yyval.for_start).each=0;} } break; - case 69: + case 73: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1786 "parser.y" +#line 1864 "parser.y" {new_state();(yyval.for_start).name=(yyvsp[(1) - (3)].id);(yyval.for_start).each=1;} } break; - case 70: + case 74: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1788 "parser.y" +#line 1866 "parser.y" { if((yyvsp[(1) - (8)].for_start).each) syntaxerror("invalid syntax: ; not allowed in for each statement"); (yyval.code) = code_new(); @@ -4180,11 +4391,11 @@ yyreduce: - case 71: + case 75: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1808 "parser.y" +#line 1886 "parser.y" { variable_t*var = find_variable((yyvsp[(2) - (6)].id)); char*tmp1name = concat2((yyvsp[(2) - (6)].id), "__tmp1__"); @@ -4232,22 +4443,22 @@ yyreduce: - case 72: + case 76: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1851 "parser.y" +#line 1929 "parser.y" {new_state();} } break; - case 73: + case 77: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1851 "parser.y" +#line 1929 "parser.y" { (yyval.code) = code_new(); @@ -4271,22 +4482,22 @@ yyreduce: - case 74: + case 78: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1870 "parser.y" +#line 1948 "parser.y" {new_state();} } break; - case 75: + case 79: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1870 "parser.y" +#line 1948 "parser.y" { (yyval.code) = code_new(); code_t*loopstart = (yyval.code) = abc_label((yyval.code)); @@ -4306,11 +4517,11 @@ yyreduce: - case 76: + case 80: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1885 "parser.y" +#line 1963 "parser.y" { (yyval.code) = abc___break__(0, ""); } @@ -4319,11 +4530,11 @@ yyreduce: - case 77: + case 81: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1888 "parser.y" +#line 1966 "parser.y" { (yyval.code) = abc___break__(0, (yyvsp[(2) - (2)].id)); } @@ -4332,11 +4543,11 @@ yyreduce: - case 78: + case 82: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1891 "parser.y" +#line 1969 "parser.y" { (yyval.code) = abc___continue__(0, ""); } @@ -4345,11 +4556,11 @@ yyreduce: - case 79: + case 83: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1894 "parser.y" +#line 1972 "parser.y" { (yyval.code) = abc___continue__(0, (yyvsp[(2) - (2)].id)); } @@ -4358,77 +4569,77 @@ yyreduce: - case 80: + case 84: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1898 "parser.y" +#line 1976 "parser.y" {(yyval.code)=0;} } break; - case 81: + case 85: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1899 "parser.y" +#line 1977 "parser.y" {(yyval.code)=(yyvsp[(1) - (1)].code);} } break; - case 82: + case 86: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1900 "parser.y" +#line 1978 "parser.y" {(yyval.code)=(yyvsp[(1) - (1)].code);} } break; - case 83: + case 87: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1901 "parser.y" +#line 1979 "parser.y" {(yyval.code)=code_append((yyvsp[(1) - (2)].code),(yyvsp[(2) - (2)].code));} } break; - case 84: + case 88: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1902 "parser.y" +#line 1980 "parser.y" {(yyval.code)=(yyvsp[(1) - (1)].code);} } break; - case 85: + case 89: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1903 "parser.y" +#line 1981 "parser.y" {(yyval.code)=code_append((yyval.code),(yyvsp[(2) - (2)].code));} } break; - case 86: + case 90: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1905 "parser.y" +#line 1983 "parser.y" { (yyval.code) = abc_dup(0); (yyval.code) = code_append((yyval.code), (yyvsp[(2) - (4)].value).c); @@ -4445,11 +4656,11 @@ yyreduce: - case 87: + case 91: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1916 "parser.y" +#line 1994 "parser.y" { (yyval.code) = (yyvsp[(3) - (3)].code); } @@ -4458,22 +4669,22 @@ yyreduce: - case 88: + case 92: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1919 "parser.y" +#line 1997 "parser.y" {new_state();} } break; - case 89: + case 93: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1919 "parser.y" +#line 1997 "parser.y" { (yyval.code)=(yyvsp[(4) - (8)].value).c; (yyval.code) = code_append((yyval.code), (yyvsp[(7) - (8)].code)); @@ -4505,22 +4716,22 @@ yyreduce: - case 90: + case 94: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1948 "parser.y" +#line 2026 "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: + case 95: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1949 "parser.y" +#line 2027 "parser.y" { namespace_t name_ns = {ACCESS_PACKAGE, ""}; multiname_t name = {QNAME, &name_ns, 0, (yyvsp[(3) - (9)].id)}; @@ -4545,22 +4756,22 @@ yyreduce: - case 92: + case 96: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1968 "parser.y" +#line 2046 "parser.y" {new_state();state->exception_name=0;} } break; - case 93: + case 97: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1968 "parser.y" +#line 2046 "parser.y" { (yyvsp[(4) - (5)].code) = var_block((yyvsp[(4) - (5)].code)); if(!(yyvsp[(4) - (5)].code)) { @@ -4582,44 +4793,44 @@ yyreduce: - case 94: + case 98: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1985 "parser.y" +#line 2063 "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: + case 99: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1986 "parser.y" +#line 2064 "parser.y" {(yyval.catch_list)=(yyvsp[(1) - (2)].catch_list);list_append((yyval.catch_list).l,(yyvsp[(2) - (2)].exception));} } break; - case 96: + case 100: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1987 "parser.y" +#line 2065 "parser.y" {(yyval.catch_list)=(yyvsp[(1) - (1)].catch_list);} } break; - case 97: + case 101: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1988 "parser.y" +#line 2066 "parser.y" { (yyval.catch_list) = (yyvsp[(1) - (2)].catch_list); (yyval.catch_list).finally = 0; @@ -4633,11 +4844,11 @@ yyreduce: - case 98: + case 102: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1996 "parser.y" +#line 2074 "parser.y" { (yyval.catch_list).l=list_new(); (yyval.catch_list).finally = 0; @@ -4651,22 +4862,22 @@ yyreduce: - case 99: + case 103: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2005 "parser.y" +#line 2083 "parser.y" {new_state();} } break; - case 100: + case 104: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2005 "parser.y" +#line 2083 "parser.y" { code_t*out = abc_nop(0); @@ -4714,11 +4925,11 @@ yyreduce: - case 101: + case 105: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2050 "parser.y" +#line 2128 "parser.y" { (yyval.code)=(yyvsp[(2) - (2)].value).c; (yyval.code)=abc_throw((yyval.code)); @@ -4728,11 +4939,11 @@ yyreduce: - case 102: + case 106: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2054 "parser.y" +#line 2132 "parser.y" { if(!state->exception_name) syntaxerror("re-throw only possible within a catch block"); @@ -4746,11 +4957,11 @@ yyreduce: - case 103: + case 107: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2065 "parser.y" +#line 2143 "parser.y" { (yyval.code) = (yyvsp[(3) - (5)].value).c; (yyval.code) = abc_pushscope((yyval.code)); @@ -4762,89 +4973,95 @@ yyreduce: - case 105: + case 109: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2075 "parser.y" +#line 2153 "parser.y" {PASS12 (yyval.id)="package";} } break; - case 106: + case 110: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2077 "parser.y" +#line 2155 "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: + case 111: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2078 "parser.y" +#line 2156 "parser.y" {PASS12 (yyval.id)=strdup((yyvsp[(1) - (1)].id));} } break; - case 108: + case 112: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2080 "parser.y" +#line 2158 "parser.y" {PASS12 startpackage((yyvsp[(2) - (3)].id));free((yyvsp[(2) - (3)].id));(yyvsp[(2) - (3)].id)=0;} } break; - case 109: + case 113: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2081 "parser.y" +#line 2159 "parser.y" {PASS12 endpackage();(yyval.code)=0;} } break; - case 110: + case 114: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2082 "parser.y" +#line 2160 "parser.y" {PASS12 startpackage("");} } break; - case 111: + case 115: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2083 "parser.y" +#line 2161 "parser.y" {PASS12 endpackage();(yyval.code)=0;} } break; - case 112: + case 116: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2085 "parser.y" +#line 2163 "parser.y" { + PASS1 + if(!registry_find((yyvsp[(2) - (2)].classinfo)->package, (yyvsp[(2) - (2)].classinfo)->name)) { + as3_schedule_class((yyvsp[(2) - (2)].classinfo)->package, (yyvsp[(2) - (2)].classinfo)->name); + } + + PASS2 classinfo_t*c = (yyvsp[(2) - (2)].classinfo); if(!c) syntaxerror("Couldn't import class\n"); @@ -4857,12 +5074,18 @@ yyreduce: - case 113: + case 117: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2093 "parser.y" +#line 2177 "parser.y" { + PASS1 + if(strncmp("flash.", (yyvsp[(2) - (4)].id), 6)) { + as3_schedule_package((yyvsp[(2) - (4)].id)); + } + + PASS2 NEW(import_t,i); i->package = (yyvsp[(2) - (4)].id); state_has_imports(); @@ -4874,264 +5097,275 @@ yyreduce: - case 114: + case 118: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2103 "parser.y" +#line 2193 "parser.y" {PASS12 (yyval.flags)=0;} } break; - case 115: + case 119: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2104 "parser.y" +#line 2194 "parser.y" {PASS12 (yyval.flags)=(yyvsp[(1) - (1)].flags);} } break; - case 116: + case 120: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2105 "parser.y" +#line 2195 "parser.y" {PASS12 (yyval.flags)=(yyvsp[(1) - (1)].token);} } break; - case 117: + case 121: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2106 "parser.y" +#line 2196 "parser.y" {PASS12 (yyval.flags)=(yyvsp[(1) - (2)].flags)|(yyvsp[(2) - (2)].token);} } break; - case 118: + case 122: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2108 "parser.y" +#line 2198 "parser.y" {PASS12 (yyval.token)=FLAG_PUBLIC;} } break; - case 119: + case 123: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2109 "parser.y" +#line 2199 "parser.y" {PASS12 (yyval.token)=FLAG_PRIVATE;} } break; - case 120: + case 124: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2110 "parser.y" +#line 2200 "parser.y" {PASS12 (yyval.token)=FLAG_PROTECTED;} } break; - case 121: + case 125: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2111 "parser.y" +#line 2201 "parser.y" {PASS12 (yyval.token)=FLAG_STATIC;} } break; - case 122: + case 126: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2112 "parser.y" +#line 2202 "parser.y" {PASS12 (yyval.token)=FLAG_DYNAMIC;} } break; - case 123: + case 127: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2113 "parser.y" +#line 2203 "parser.y" {PASS12 (yyval.token)=FLAG_FINAL;} } break; - case 124: + case 128: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2114 "parser.y" +#line 2204 "parser.y" {PASS12 (yyval.token)=FLAG_OVERRIDE;} } break; - case 125: + case 129: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2115 "parser.y" +#line 2205 "parser.y" {PASS12 (yyval.token)=FLAG_NATIVE;} } break; - case 126: + case 130: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2116 "parser.y" +#line 2206 "parser.y" {PASS12 (yyval.token)=FLAG_PACKAGEINTERNAL;} } break; - case 127: + case 131: + if(as3_pass==2) { + +/* Line 1464 of skeleton.m4 */ +#line 2207 "parser.y" + {PASS12 (yyval.token)=FLAG_NAMESPACE;} + } + break; + + + + case 132: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2118 "parser.y" +#line 2209 "parser.y" {(yyval.classinfo)=registry_getobjectclass();} } break; - case 128: + case 133: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2119 "parser.y" +#line 2210 "parser.y" {(yyval.classinfo)=(yyvsp[(2) - (2)].classinfo);} } break; - case 129: + case 134: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2121 "parser.y" +#line 2212 "parser.y" {PASS12 (yyval.classinfo_list)=list_new();} } break; - case 130: + case 135: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2122 "parser.y" +#line 2213 "parser.y" {PASS12 (yyval.classinfo_list)=(yyvsp[(2) - (2)].classinfo_list);} } break; - case 131: + case 136: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2124 "parser.y" +#line 2215 "parser.y" {PASS12 (yyval.classinfo_list)=list_new();} } break; - case 132: + case 137: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2125 "parser.y" +#line 2216 "parser.y" {PASS12 (yyval.classinfo_list)=(yyvsp[(2) - (2)].classinfo_list);} } break; - case 133: + case 138: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2129 "parser.y" - {PASS12 startclass((yyvsp[(1) - (6)].flags),(yyvsp[(3) - (6)].id),(yyvsp[(4) - (6)].classinfo),(yyvsp[(5) - (6)].classinfo_list), 0);} +#line 2220 "parser.y" + {PASS12 startclass((yyvsp[(1) - (6)].flags),(yyvsp[(3) - (6)].id),(yyvsp[(4) - (6)].classinfo),(yyvsp[(5) - (6)].classinfo_list));} } break; - case 134: + case 139: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2131 "parser.y" +#line 2222 "parser.y" {PASS12 endclass();(yyval.code)=0;} } break; - case 135: + case 140: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2135 "parser.y" - {PASS12 startclass((yyvsp[(1) - (5)].flags),(yyvsp[(3) - (5)].id),0,(yyvsp[(4) - (5)].classinfo_list),1);} +#line 2226 "parser.y" + {PASS12 startclass((yyvsp[(1) - (5)].flags)|FLAG_INTERFACE,(yyvsp[(3) - (5)].id),0,(yyvsp[(4) - (5)].classinfo_list));} } break; - case 136: + case 141: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2137 "parser.y" +#line 2228 "parser.y" {PASS12 endclass();(yyval.code)=0;} } break; - case 144: + case 150: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2149 "parser.y" +#line 2241 "parser.y" { code_t*c = state->cls->static_init; c = code_append(c, (yyvsp[(1) - (1)].code)); @@ -5142,11 +5376,11 @@ yyreduce: - case 150: + case 156: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2160 "parser.y" +#line 2252 "parser.y" { syntaxerror("variable declarations not allowed in interfaces"); } @@ -5155,11 +5389,11 @@ yyreduce: - case 151: + case 157: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2163 "parser.y" +#line 2255 "parser.y" { PASS12 (yyvsp[(1) - (8)].flags) |= FLAG_PUBLIC; @@ -5168,28 +5402,43 @@ yyreduce: } 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); + list_deep_free((yyvsp[(6) - (8)].params).list); } } break; - case 154: + case 160: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2177 "parser.y" +#line 2270 "parser.y" { int flags = (yyvsp[(1) - (5)].flags); - memberinfo_t* info = state->cls? - memberinfo_register(state->cls->info, (yyvsp[(3) - (5)].id), MEMBER_SLOT): - memberinfo_register_global(flags2access((yyvsp[(1) - (5)].flags)), state->package, (yyvsp[(3) - (5)].id), MEMBER_SLOT); + U8 access = flags2access((yyvsp[(1) - (5)].flags)); + + varinfo_t* info = 0; + if(state->cls) { + memberinfo_t*i = registry_findmember(state->cls->info, (yyvsp[(3) - (5)].id), 1); + if(i) { + check_override(i, flags); + } + + info = varinfo_register_onclass(state->cls->info, access, (yyvsp[(3) - (5)].id)); + } else { + slotinfo_t*i = registry_find(state->package, (yyvsp[(3) - (5)].id)); + if(i) { + syntaxerror("package %s already contains '%s'", state->package, (yyvsp[(3) - (5)].id)); + } + info = varinfo_register_global(access, state->package, (yyvsp[(3) - (5)].id)); + } info->type = (yyvsp[(4) - (5)].classinfo); info->flags = flags; /* slot name */ - namespace_t mname_ns = {flags2access(flags), ""}; + namespace_t mname_ns = {access, ""}; multiname_t mname = {QNAME, &mname_ns, 0, (yyvsp[(3) - (5)].id)}; trait_list_t**traits; @@ -5240,121 +5489,136 @@ yyreduce: - case 155: + case 161: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2236 "parser.y" +#line 2343 "parser.y" {(yyval.constant)=0;} } break; - case 156: + case 162: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2237 "parser.y" +#line 2344 "parser.y" {(yyval.constant)=(yyvsp[(2) - (2)].constant);} } break; - case 157: + case 163: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2239 "parser.y" +#line 2346 "parser.y" {(yyval.constant) = constant_new_int((yyvsp[(1) - (1)].number_uint));} } break; - case 158: + case 164: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2240 "parser.y" +#line 2347 "parser.y" {(yyval.constant) = constant_new_int((yyvsp[(1) - (1)].number_int));} } break; - case 159: + case 165: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2241 "parser.y" +#line 2348 "parser.y" {(yyval.constant) = constant_new_uint((yyvsp[(1) - (1)].number_uint));} } break; - case 160: + case 166: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2242 "parser.y" +#line 2349 "parser.y" {(yyval.constant) = constant_new_float((yyvsp[(1) - (1)].number_float));} } break; - case 161: + case 167: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2243 "parser.y" - {(yyval.constant) = constant_new_string2((yyvsp[(1) - (1)].str).str,(yyvsp[(1) - (1)].str).len);} +#line 2350 "parser.y" + {(yyval.constant) = constant_new_string2((yyvsp[(1) - (1)].str).str,(yyvsp[(1) - (1)].str).len);free((char*)(yyvsp[(1) - (1)].str).str);} } break; - case 162: + case 168: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2245 "parser.y" +#line 2352 "parser.y" {(yyval.constant) = constant_new_true((yyvsp[(1) - (1)].token));} } break; - case 163: + case 169: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2246 "parser.y" +#line 2353 "parser.y" {(yyval.constant) = constant_new_false((yyvsp[(1) - (1)].token));} } break; - case 164: + case 170: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2247 "parser.y" +#line 2354 "parser.y" {(yyval.constant) = constant_new_null((yyvsp[(1) - (1)].token));} } break; - case 165: + case 171: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2252 "parser.y" +#line 2355 "parser.y" + { + // TODO + as3_warning("Couldn't resolve %s", (yyvsp[(1) - (1)].id)); + (yyval.constant) = constant_new_null((yyvsp[(1) - (1)].id)); +} + } + break; + + + + case 172: + if(as3_pass==2) { + +/* Line 1464 of skeleton.m4 */ +#line 2364 "parser.y" { PASS12 memset(&(yyval.params),0,sizeof((yyval.params))); @@ -5364,11 +5628,11 @@ yyreduce: - case 166: + case 173: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2256 "parser.y" +#line 2368 "parser.y" { PASS12 (yyval.params)=(yyvsp[(1) - (1)].params); @@ -5378,11 +5642,11 @@ yyreduce: - case 167: + case 174: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2262 "parser.y" +#line 2374 "parser.y" { PASS12 memset(&(yyval.params),0,sizeof((yyval.params))); @@ -5394,11 +5658,11 @@ yyreduce: - case 168: + case 175: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2268 "parser.y" +#line 2380 "parser.y" { PASS12 (yyval.params) =(yyvsp[(1) - (4)].params); @@ -5410,11 +5674,11 @@ yyreduce: - case 169: + case 176: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2276 "parser.y" +#line 2388 "parser.y" { PASS12 (yyval.params) = (yyvsp[(1) - (3)].params); @@ -5425,11 +5689,11 @@ yyreduce: - case 170: + case 177: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2281 "parser.y" +#line 2393 "parser.y" { PASS12 memset(&(yyval.params),0,sizeof((yyval.params))); @@ -5440,11 +5704,11 @@ yyreduce: - case 171: + case 178: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2287 "parser.y" +#line 2399 "parser.y" { PASS1 (yyval.param)=0; PASS2 @@ -5458,11 +5722,11 @@ yyreduce: - case 172: + case 179: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2295 "parser.y" +#line 2407 "parser.y" { PASS1 (yyval.param)=0; PASS2 @@ -5476,57 +5740,57 @@ yyreduce: - case 173: + case 180: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2303 "parser.y" +#line 2415 "parser.y" {(yyval.token)=(yyvsp[(1) - (1)].token);} } break; - case 174: + case 181: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2304 "parser.y" +#line 2416 "parser.y" {(yyval.token)=(yyvsp[(1) - (1)].token);} } break; - case 175: + case 182: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2305 "parser.y" +#line 2417 "parser.y" {(yyval.token)=0;} } break; - case 176: + case 183: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2308 "parser.y" +#line 2420 "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: + case 184: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2309 "parser.y" +#line 2421 "parser.y" { - PASS1 old_state(); + PASS1 old_state();list_deep_free((yyvsp[(6) - (12)].params).list); PASS2 if(!state->method->info) syntaxerror("internal error"); @@ -5534,6 +5798,7 @@ yyreduce: 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); + list_deep_free((yyvsp[(6) - (12)].params).list); (yyval.code)=0; } } @@ -5541,37 +5806,37 @@ yyreduce: - case 179: + case 186: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2322 "parser.y" +#line 2435 "parser.y" {PASS12 (yyval.id)=0;} } break; - case 180: + case 187: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2324 "parser.y" +#line 2437 "parser.y" {PASS12 innerfunction((yyvsp[(2) - (7)].id),&(yyvsp[(4) - (7)].params),(yyvsp[(6) - (7)].classinfo));} } break; - case 181: + case 188: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2325 "parser.y" +#line 2438 "parser.y" { - PASS1 old_state(); + PASS1 old_state();list_deep_free((yyvsp[(4) - (10)].params).list); PASS2 - memberinfo_t*f = state->method->info; + methodinfo_t*f = state->method->info; if(!f) syntaxerror("internal error"); code_t*c = method_header(); @@ -5579,6 +5844,7 @@ yyreduce: int index = state->method->var_index; endfunction(0,0,0,(yyvsp[(2) - (10)].id),&(yyvsp[(4) - (10)].params),(yyvsp[(6) - (10)].classinfo),c); + list_deep_free((yyvsp[(4) - (10)].params).list); (yyval.value).c = abc_getlocal(0, index); (yyval.value).t = TYPE_FUNCTION(f); @@ -5588,155 +5854,161 @@ yyreduce: - case 182: + case 189: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2344 "parser.y" +#line 2458 "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)); + slotinfo_t*s = find_class((yyvsp[(1) - (1)].id)); + if(!s) syntaxerror("Could not find class/method %s\n", (yyvsp[(1) - (1)].id)); + (yyval.classinfo) = (classinfo_t*)s; } } break; - case 183: + case 190: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2352 "parser.y" +#line 2467 "parser.y" { - PASS1 (yyval.classinfo)=0; + PASS1 static classinfo_t c; + memset(&c, 0, sizeof(c)); + c.package = (yyvsp[(1) - (3)].id); + c.name = (yyvsp[(3) - (3)].id); + (yyval.classinfo)=&c; 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)); + slotinfo_t*s = registry_find((yyvsp[(1) - (3)].id), (yyvsp[(3) - (3)].id)); + if(!s) syntaxerror("Couldn't find class/method %s.%s\n", (yyvsp[(1) - (3)].id), (yyvsp[(3) - (3)].id)); free((yyvsp[(1) - (3)].id));(yyvsp[(1) - (3)].id)=0; + (yyval.classinfo) = (classinfo_t*)s; } } break; - case 186: + case 193: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2363 "parser.y" +#line 2483 "parser.y" {PASS12 (yyval.classinfo_list)=list_new();list_append((yyval.classinfo_list), (yyvsp[(1) - (1)].classinfo));} } break; - case 187: + case 194: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2364 "parser.y" +#line 2484 "parser.y" {PASS12 (yyval.classinfo_list)=(yyvsp[(1) - (3)].classinfo_list);list_append((yyval.classinfo_list),(yyvsp[(3) - (3)].classinfo));} } break; - case 188: + case 195: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2366 "parser.y" +#line 2486 "parser.y" {(yyval.classinfo)=(yyvsp[(1) - (1)].classinfo);} } break; - case 189: + case 196: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2367 "parser.y" +#line 2487 "parser.y" {(yyval.classinfo)=registry_getanytype();} } break; - case 190: + case 197: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2368 "parser.y" +#line 2488 "parser.y" {(yyval.classinfo)=registry_getanytype();} } break; - case 191: + case 198: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2377 "parser.y" +#line 2497 "parser.y" {(yyval.classinfo)=(yyvsp[(2) - (2)].classinfo);} } break; - case 192: + case 199: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2378 "parser.y" +#line 2498 "parser.y" {(yyval.classinfo)=0;} } break; - case 193: + case 200: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2382 "parser.y" +#line 2502 "parser.y" {(yyval.value_list).cc=0;(yyval.value_list).len=0;} } break; - case 194: + case 201: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2383 "parser.y" +#line 2503 "parser.y" {(yyval.value_list)=(yyvsp[(2) - (3)].value_list);} } break; - case 195: + case 202: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2385 "parser.y" +#line 2505 "parser.y" {(yyval.value_list).cc=0;(yyval.value_list).len=0;} } break; - case 197: + case 205: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2387 "parser.y" +#line 2509 "parser.y" {(yyval.value_list).len=1; (yyval.value_list).cc = (yyvsp[(1) - (1)].value).c; } @@ -5745,25 +6017,36 @@ yyreduce: - case 198: + case 206: + if(as3_pass==2) { + +/* Line 1464 of skeleton.m4 */ +#line 2513 "parser.y" + {(yyval.value_list) = (yyvsp[(1) - (2)].value_list);} + } + break; + + + + case 207: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2390 "parser.y" +#line 2514 "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); + (yyval.value_list).len= (yyvsp[(1) - (2)].value_list).len+1; + (yyval.value_list).cc = code_append((yyvsp[(1) - (2)].value_list).cc, (yyvsp[(2) - (2)].value).c); } } break; - case 200: + case 209: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2396 "parser.y" +#line 2520 "parser.y" { (yyval.value).c = (yyvsp[(2) - (4)].value).c; if((yyval.value).c->opcode == OPCODE_COERCE_A) (yyval.value).c = code_cutlast((yyval.value).c); @@ -5788,8 +6071,8 @@ yyreduce: } (yyval.value).t = TYPE_ANY; - if(TYPE_IS_CLASS((yyvsp[(2) - (4)].value).t) && (yyvsp[(2) - (4)].value).t->cls) { - (yyval.value).t = (yyvsp[(2) - (4)].value).t->cls; + if(TYPE_IS_CLASS((yyvsp[(2) - (4)].value).t) && (yyvsp[(2) - (4)].value).t->data) { + (yyval.value).t = (yyvsp[(2) - (4)].value).t->data; } else { (yyval.value).c = abc_coerce_a((yyval.value).c); (yyval.value).t = TYPE_ANY; @@ -5800,11 +6083,11 @@ yyreduce: - case 201: + case 210: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2432 "parser.y" +#line 2556 "parser.y" { (yyval.value).c = (yyvsp[(1) - (4)].value).c; @@ -5843,8 +6126,8 @@ yyreduce: (yyval.value).c = abc_call((yyval.value).c, (yyvsp[(3) - (4)].value_list).len); } - if(TYPE_IS_FUNCTION((yyvsp[(1) - (4)].value).t) && (yyvsp[(1) - (4)].value).t->function) { - (yyval.value).t = (yyvsp[(1) - (4)].value).t->function->return_type; + if(TYPE_IS_FUNCTION((yyvsp[(1) - (4)].value).t) && (yyvsp[(1) - (4)].value).t->data) { + (yyval.value).t = ((methodinfo_t*)((yyvsp[(1) - (4)].value).t->data))->return_type; } else { (yyval.value).c = abc_coerce_a((yyval.value).c); (yyval.value).t = TYPE_ANY; @@ -5855,11 +6138,11 @@ yyreduce: - case 202: + case 211: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2478 "parser.y" +#line 2602 "parser.y" { if(!state->cls) syntaxerror("super() not allowed outside of a class"); if(!state->method) syntaxerror("super() not allowed outside of a function"); @@ -5885,11 +6168,11 @@ yyreduce: - case 203: + case 212: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2499 "parser.y" +#line 2623 "parser.y" { (yyval.value).c = (yyvsp[(2) - (2)].value).c; if((yyval.value).c->opcode == OPCODE_COERCE_A) { @@ -5915,11 +6198,11 @@ yyreduce: - case 204: + case 213: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2520 "parser.y" +#line 2644 "parser.y" { (yyval.code) = abc_returnvoid(0); } @@ -5928,11 +6211,11 @@ yyreduce: - case 205: + case 214: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2523 "parser.y" +#line 2647 "parser.y" { (yyval.code) = (yyvsp[(2) - (2)].value).c; (yyval.code) = abc_returnvalue((yyval.code)); @@ -5942,33 +6225,33 @@ yyreduce: - case 206: + case 215: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2530 "parser.y" +#line 2654 "parser.y" {(yyval.value)=(yyvsp[(1) - (1)].value);} } break; - case 207: + case 216: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2531 "parser.y" +#line 2655 "parser.y" {(yyval.value) = (yyvsp[(1) - (1)].value);} } break; - case 208: + case 217: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2532 "parser.y" +#line 2656 "parser.y" { (yyval.value).c = (yyvsp[(1) - (3)].value).c; (yyval.value).c = cut_last_push((yyval.value).c); @@ -5980,11 +6263,11 @@ yyreduce: - case 209: + case 218: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2538 "parser.y" +#line 2662 "parser.y" { (yyval.code)=cut_last_push((yyvsp[(1) - (1)].value).c); } @@ -5993,55 +6276,55 @@ yyreduce: - case 210: + case 219: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2544 "parser.y" +#line 2668 "parser.y" {(yyval.value) = (yyvsp[(1) - (1)].value);} } break; - case 212: + case 221: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2548 "parser.y" +#line 2672 "parser.y" {(yyval.value) = (yyvsp[(1) - (1)].value);} } break; - case 213: + case 222: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2550 "parser.y" +#line 2674 "parser.y" {(yyval.value) = (yyvsp[(1) - (1)].value);} } break; - case 214: + case 223: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2552 "parser.y" +#line 2676 "parser.y" {(yyval.value) = (yyvsp[(1) - (1)].value);} } break; - case 216: + case 225: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2556 "parser.y" +#line 2680 "parser.y" { (yyval.value).c = 0; namespace_t ns = {ACCESS_PACKAGE, ""}; @@ -6063,11 +6346,11 @@ yyreduce: - case 217: + case 226: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2573 "parser.y" +#line 2697 "parser.y" {(yyval.value).c = abc_pushbyte(0, (yyvsp[(1) - (1)].number_uint)); //MULTINAME(m, registry_getintclass()); //$$.c = abc_coerce2($$.c, &m); // FIXME @@ -6078,11 +6361,11 @@ yyreduce: - case 218: + case 227: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2578 "parser.y" +#line 2702 "parser.y" {(yyval.value).c = abc_pushshort(0, (yyvsp[(1) - (1)].number_uint)); (yyval.value).t = TYPE_INT; } @@ -6091,11 +6374,11 @@ yyreduce: - case 219: + case 228: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2581 "parser.y" +#line 2705 "parser.y" {(yyval.value).c = abc_pushint(0, (yyvsp[(1) - (1)].number_int)); (yyval.value).t = TYPE_INT; } @@ -6104,11 +6387,11 @@ yyreduce: - case 220: + case 229: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2584 "parser.y" +#line 2708 "parser.y" {(yyval.value).c = abc_pushuint(0, (yyvsp[(1) - (1)].number_uint)); (yyval.value).t = TYPE_UINT; } @@ -6117,11 +6400,11 @@ yyreduce: - case 221: + case 230: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2587 "parser.y" +#line 2711 "parser.y" {(yyval.value).c = abc_pushdouble(0, (yyvsp[(1) - (1)].number_float)); (yyval.value).t = TYPE_FLOAT; } @@ -6130,12 +6413,12 @@ yyreduce: - case 222: + case 231: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2590 "parser.y" - {(yyval.value).c = abc_pushstring2(0, &(yyvsp[(1) - (1)].str)); +#line 2714 "parser.y" + {(yyval.value).c = abc_pushstring2(0, &(yyvsp[(1) - (1)].str));free((char*)(yyvsp[(1) - (1)].str).str); (yyval.value).t = TYPE_STRING; } } @@ -6143,11 +6426,11 @@ yyreduce: - case 223: + case 232: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2593 "parser.y" +#line 2717 "parser.y" {(yyval.value).c = abc_pushundefined(0); (yyval.value).t = TYPE_ANY; } @@ -6156,11 +6439,11 @@ yyreduce: - case 224: + case 233: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2596 "parser.y" +#line 2720 "parser.y" {(yyval.value).c = abc_pushtrue(0); (yyval.value).t = TYPE_BOOLEAN; } @@ -6169,11 +6452,11 @@ yyreduce: - case 225: + case 234: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2599 "parser.y" +#line 2723 "parser.y" {(yyval.value).c = abc_pushfalse(0); (yyval.value).t = TYPE_BOOLEAN; } @@ -6182,11 +6465,11 @@ yyreduce: - case 226: + case 235: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2602 "parser.y" +#line 2726 "parser.y" {(yyval.value).c = abc_pushnull(0); (yyval.value).t = TYPE_NULL; } @@ -6195,11 +6478,11 @@ yyreduce: - case 227: + case 236: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2606 "parser.y" +#line 2730 "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; } @@ -6208,11 +6491,11 @@ yyreduce: - case 228: + case 237: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2609 "parser.y" +#line 2733 "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; } @@ -6221,11 +6504,11 @@ yyreduce: - case 229: + case 238: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2612 "parser.y" +#line 2736 "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; } @@ -6234,11 +6517,11 @@ yyreduce: - case 230: + case 239: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2615 "parser.y" +#line 2739 "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; } @@ -6247,11 +6530,11 @@ yyreduce: - case 231: + case 240: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2618 "parser.y" +#line 2742 "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; } @@ -6260,11 +6543,11 @@ yyreduce: - case 232: + case 241: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2621 "parser.y" +#line 2745 "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; } @@ -6273,11 +6556,11 @@ yyreduce: - case 233: + case 242: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2624 "parser.y" +#line 2748 "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; } @@ -6286,11 +6569,11 @@ yyreduce: - case 234: + case 243: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2627 "parser.y" +#line 2751 "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; } @@ -6299,11 +6582,11 @@ yyreduce: - case 235: + case 244: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2631 "parser.y" +#line 2755 "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); @@ -6320,11 +6603,11 @@ yyreduce: - case 236: + case 245: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2642 "parser.y" +#line 2766 "parser.y" { (yyval.value).t = join_types((yyvsp[(1) - (3)].value).t, (yyvsp[(3) - (3)].value).t, 'A'); /*printf("%08x:\n",$1.t); @@ -6347,11 +6630,11 @@ yyreduce: - case 237: + case 246: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2660 "parser.y" +#line 2784 "parser.y" {(yyval.value).c=(yyvsp[(2) - (2)].value).c; (yyval.value).c = abc_not((yyval.value).c); (yyval.value).t = TYPE_BOOLEAN; @@ -6361,11 +6644,11 @@ yyreduce: - case 238: + case 247: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2665 "parser.y" +#line 2789 "parser.y" {(yyval.value).c=(yyvsp[(2) - (2)].value).c; (yyval.value).c = abc_bitnot((yyval.value).c); (yyval.value).t = TYPE_INT; @@ -6375,11 +6658,11 @@ yyreduce: - case 239: + case 248: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2670 "parser.y" +#line 2794 "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; @@ -6389,11 +6672,11 @@ yyreduce: - case 240: + case 249: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2675 "parser.y" +#line 2799 "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; @@ -6403,11 +6686,11 @@ yyreduce: - case 241: + case 250: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2680 "parser.y" +#line 2804 "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; @@ -6417,11 +6700,11 @@ yyreduce: - case 242: + case 251: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2685 "parser.y" +#line 2809 "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; @@ -6431,11 +6714,11 @@ yyreduce: - case 243: + case 252: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2689 "parser.y" +#line 2813 "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; @@ -6445,11 +6728,11 @@ yyreduce: - case 244: + case 253: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2693 "parser.y" +#line 2817 "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; @@ -6459,11 +6742,11 @@ yyreduce: - case 245: + case 254: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2698 "parser.y" +#line 2822 "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; @@ -6473,11 +6756,11 @@ yyreduce: - case 246: + case 255: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2702 "parser.y" +#line 2826 "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; @@ -6487,11 +6770,11 @@ yyreduce: - case 247: + case 256: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2706 "parser.y" +#line 2830 "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); @@ -6506,11 +6789,11 @@ yyreduce: - case 248: + case 257: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2715 "parser.y" +#line 2839 "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); @@ -6525,11 +6808,11 @@ yyreduce: - case 249: + case 258: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2724 "parser.y" +#line 2848 "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); @@ -6544,11 +6827,11 @@ yyreduce: - case 250: + case 259: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2734 "parser.y" +#line 2858 "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; @@ -6558,16 +6841,16 @@ yyreduce: - case 251: + case 260: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2739 "parser.y" +#line 2863 "parser.y" {char use_astype=0; // flash player's astype works differently than astypelate - if(use_astype && TYPE_IS_CLASS((yyvsp[(3) - (3)].value).t)) { - MULTINAME(m,(yyvsp[(3) - (3)].value).t->cls); + if(use_astype && TYPE_IS_CLASS((yyvsp[(3) - (3)].value).t) && (yyvsp[(3) - (3)].value).t->data) { + MULTINAME(m, (classinfo_t*)((yyvsp[(3) - (3)].value).t->data)); (yyval.value).c = abc_astype2((yyvsp[(1) - (3)].value).c, &m); - (yyval.value).t = (yyvsp[(3) - (3)].value).t->cls; + (yyval.value).t = (yyvsp[(3) - (3)].value).t->data; } else { (yyval.value).c = code_append((yyvsp[(1) - (3)].value).c, (yyvsp[(3) - (3)].value).c); (yyval.value).c = abc_astypelate((yyval.value).c); @@ -6579,11 +6862,11 @@ yyreduce: - case 252: + case 261: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2752 "parser.y" +#line 2876 "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; @@ -6593,11 +6876,11 @@ yyreduce: - case 253: + case 262: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2757 "parser.y" +#line 2881 "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; @@ -6607,11 +6890,11 @@ yyreduce: - case 254: + case 263: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2762 "parser.y" +#line 2886 "parser.y" { (yyval.value).c = (yyvsp[(3) - (4)].value).c; (yyval.value).c = abc_typeof((yyval.value).c); @@ -6622,11 +6905,11 @@ yyreduce: - case 255: + case 264: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2768 "parser.y" +#line 2892 "parser.y" { (yyval.value).c = cut_last_push((yyvsp[(2) - (2)].value).c); (yyval.value).c = abc_pushundefined((yyval.value).c); @@ -6637,11 +6920,11 @@ yyreduce: - case 256: + case 265: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2774 "parser.y" +#line 2898 "parser.y" { (yyval.value).c = abc_pushundefined(0); (yyval.value).t = TYPE_ANY; } @@ -6650,22 +6933,22 @@ yyreduce: - case 257: + case 266: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2778 "parser.y" +#line 2902 "parser.y" {(yyval.value)=(yyvsp[(2) - (3)].value);} } break; - case 258: + case 267: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2780 "parser.y" +#line 2904 "parser.y" { (yyval.value)=(yyvsp[(2) - (2)].value); if(IS_INT((yyvsp[(2) - (2)].value).t)) { @@ -6681,11 +6964,11 @@ yyreduce: - case 259: + case 268: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2791 "parser.y" +#line 2915 "parser.y" { (yyval.value).c = (yyvsp[(1) - (4)].value).c; (yyval.value).c = code_append((yyval.value).c, (yyvsp[(3) - (4)].value).c); @@ -6699,11 +6982,11 @@ yyreduce: - case 260: + case 269: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2800 "parser.y" +#line 2924 "parser.y" { (yyval.value).c = code_new(); (yyval.value).c = code_append((yyval.value).c, (yyvsp[(2) - (3)].value_list).cc); @@ -6715,33 +6998,33 @@ yyreduce: - case 261: + case 270: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2807 "parser.y" +#line 2931 "parser.y" {(yyval.value_list).cc=0;(yyval.value_list).len=0;} } break; - case 262: + case 271: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2808 "parser.y" +#line 2932 "parser.y" {(yyval.value_list)=(yyvsp[(1) - (1)].value_list);} } break; - case 263: + case 272: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2810 "parser.y" +#line 2934 "parser.y" { (yyval.value_list).cc = 0; (yyval.value_list).cc = code_append((yyval.value_list).cc, (yyvsp[(1) - (3)].value).c); @@ -6753,11 +7036,11 @@ yyreduce: - case 264: + case 273: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2816 "parser.y" +#line 2940 "parser.y" { (yyval.value_list).cc = (yyvsp[(1) - (5)].value_list).cc; (yyval.value_list).len = (yyvsp[(1) - (5)].value_list).len+2; @@ -6769,11 +7052,11 @@ yyreduce: - case 265: + case 274: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2825 "parser.y" +#line 2949 "parser.y" { (yyval.value).c = code_new(); (yyval.value).c = code_append((yyval.value).c, (yyvsp[(2) - (3)].value_list).cc); @@ -6785,11 +7068,11 @@ yyreduce: - case 266: + case 275: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2832 "parser.y" +#line 2956 "parser.y" { code_t*c = (yyvsp[(3) - (3)].value).c; if(BOTH_INT((yyvsp[(1) - (3)].value).t,(yyvsp[(3) - (3)].value).t)) { @@ -6806,11 +7089,11 @@ yyreduce: - case 267: + case 276: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2844 "parser.y" +#line 2968 "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); @@ -6822,11 +7105,11 @@ yyreduce: - case 268: + case 277: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2850 "parser.y" +#line 2974 "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); @@ -6838,11 +7121,11 @@ yyreduce: - case 269: + case 278: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2856 "parser.y" +#line 2980 "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); @@ -6854,11 +7137,11 @@ yyreduce: - case 270: + case 279: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2862 "parser.y" +#line 2986 "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); @@ -6870,11 +7153,11 @@ yyreduce: - case 271: + case 280: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2868 "parser.y" +#line 2992 "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); @@ -6886,11 +7169,11 @@ yyreduce: - case 272: + case 281: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2874 "parser.y" +#line 2998 "parser.y" { code_t*c = abc_bitor((yyvsp[(3) - (3)].value).c); c=converttype(c, TYPE_INT, (yyvsp[(1) - (3)].value).t); @@ -6902,11 +7185,11 @@ yyreduce: - case 273: + case 282: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2880 "parser.y" +#line 3004 "parser.y" { code_t*c = (yyvsp[(3) - (3)].value).c; @@ -6925,11 +7208,11 @@ yyreduce: - case 274: + case 283: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2893 "parser.y" +#line 3017 "parser.y" { code_t*c = (yyvsp[(3) - (3)].value).c; if(TYPE_IS_INT((yyvsp[(1) - (3)].value).t)) { c=abc_subtract_i(c); @@ -6946,11 +7229,11 @@ yyreduce: - case 275: + case 284: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2904 "parser.y" +#line 3028 "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); @@ -6962,11 +7245,11 @@ yyreduce: - case 276: + case 285: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2911 "parser.y" +#line 3035 "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; @@ -6984,11 +7267,11 @@ yyreduce: - case 277: + case 286: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2924 "parser.y" +#line 3048 "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)) { @@ -7019,11 +7302,11 @@ yyreduce: - case 278: + case 287: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2951 "parser.y" +#line 3075 "parser.y" { code_t*c = 0; classinfo_t*type = (yyvsp[(1) - (2)].value).t; if(TYPE_IS_INT(type) || TYPE_IS_UINT(type)) { @@ -7042,11 +7325,11 @@ yyreduce: - case 279: + case 288: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2965 "parser.y" +#line 3089 "parser.y" { code_t*c = 0; classinfo_t*type = (yyvsp[(2) - (2)].value).t; if(TYPE_IS_INT(type) || TYPE_IS_UINT(type)) { @@ -7065,11 +7348,11 @@ yyreduce: - case 280: + case 289: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2979 "parser.y" +#line 3103 "parser.y" { code_t*c = 0; classinfo_t*type = (yyvsp[(2) - (2)].value).t; if(TYPE_IS_INT(type) || TYPE_IS_UINT(type)) { @@ -7088,39 +7371,119 @@ yyreduce: - case 281: + case 290: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2994 "parser.y" +#line 3118 "parser.y" { if(!state->cls->info) syntaxerror("super keyword not allowed outside a class"); classinfo_t*t = state->cls->info->superclass; if(!t) t = TYPE_OBJECT; memberinfo_t*f = registry_findmember(t, (yyvsp[(3) - (3)].id), 1); - namespace_t ns = flags2namespace(f->flags, ""); + namespace_t ns = {f->access, ""}; MEMBER_MULTINAME(m, f, (yyvsp[(3) - (3)].id)); (yyval.value).c = 0; (yyval.value).c = abc_getlocal_0((yyval.value).c); (yyval.value).c = abc_getsuper2((yyval.value).c, &m); - (yyval.value).t = memberinfo_gettype(f); + (yyval.value).t = slotinfo_gettype((slotinfo_t*)f); } } break; - case 282: + case 291: + if(as3_pass==2) { + +/* Line 1464 of skeleton.m4 */ +#line 3132 "parser.y" + { + // attribute TODO + (yyval.value).c = abc_pushundefined(0); + (yyval.value).t = 0; + as3_warning("ignored @ operator"); + } + } + break; + + + + case 292: + if(as3_pass==2) { + +/* Line 1464 of skeleton.m4 */ +#line 3139 "parser.y" + { + // child attribute TODO + (yyval.value).c = abc_pushundefined(0); + (yyval.value).t = 0; + as3_warning("ignored .@ operator"); + } + } + break; + + + + case 293: + if(as3_pass==2) { + +/* Line 1464 of skeleton.m4 */ +#line 3146 "parser.y" + { + // namespace declaration TODO + (yyval.value).c = abc_pushundefined(0); + (yyval.value).t = 0; + as3_warning("ignored :: operator"); + } + } + break; + + + + case 294: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3009 "parser.y" +#line 3153 "parser.y" + { + // descendants TODO + (yyval.value).c = abc_pushundefined(0); + (yyval.value).t = 0; + as3_warning("ignored .. operator"); + } + } + break; + + + + case 295: + if(as3_pass==2) { + +/* Line 1464 of skeleton.m4 */ +#line 3160 "parser.y" + { + // filter TODO + (yyval.value).c = abc_pushundefined(0); + (yyval.value).t = 0; + as3_warning("ignored .() operator"); + } + } + break; + + + + case 296: + if(as3_pass==2) { + +/* Line 1464 of skeleton.m4 */ +#line 3172 "parser.y" {(yyval.value).c = (yyvsp[(1) - (3)].value).c; classinfo_t*t = (yyvsp[(1) - (3)].value).t; char is_static = 0; - if(TYPE_IS_CLASS(t) && t->cls) { - t = t->cls; + if(TYPE_IS_CLASS(t) && t->data) { + t = t->data; is_static = 1; } if(t) { @@ -7135,7 +7498,7 @@ yyreduce: (yyval.value).c = abc_getproperty2((yyval.value).c, &m); } /* determine type */ - (yyval.value).t = memberinfo_gettype(f); + (yyval.value).t = slotinfo_gettype((slotinfo_t*)f); if(!(yyval.value).t) (yyval.value).c = abc_coerce_a((yyval.value).c); } else { @@ -7153,15 +7516,15 @@ yyreduce: - case 283: + case 297: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3042 "parser.y" +#line 3205 "parser.y" { (yyval.value).t = 0; (yyval.value).c = 0; - classinfo_t*a = 0; + slotinfo_t*a = 0; memberinfo_t*f = 0; variable_t*v; @@ -7181,7 +7544,7 @@ yyreduce: // $1 is a function in this class int var_is_static = (f->flags&FLAG_STATIC); - if(f->kind == MEMBER_METHOD) { + if(f->kind == INFOTYPE_METHOD) { (yyval.value).t = TYPE_FUNCTION(f); } else { (yyval.value).t = f->type; @@ -7193,7 +7556,7 @@ yyreduce: static properties of a class */ state->method->late_binding = 1; (yyval.value).t = f->type; - namespace_t ns = {flags2access(f->flags), ""}; + namespace_t ns = {f->access, ""}; 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); @@ -7203,7 +7566,7 @@ yyreduce: (yyval.value).c = abc_getslot((yyval.value).c, f->slot); break; } else { - namespace_t ns = {flags2access(f->flags), ""}; + namespace_t ns = {f->access, ""}; 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); @@ -7213,24 +7576,34 @@ yyreduce: /* look at actual classes, in the current package and imported */ if((a = find_class((yyvsp[(1) - (1)].id)))) { - if(a->flags & FLAG_METHOD) { + if(a->access == ACCESS_PACKAGEINTERNAL && + strcmp(a->package, state->package) && + strcmp(a->package, internal_filename_package) + ) + syntaxerror("Can't access internal %s %s in package '%s' from package '%s'", + infotypename(a),(yyvsp[(1) - (1)].id), a->package, state->package); + + if(a->kind != INFOTYPE_CLASS) { MULTINAME(m, a); (yyval.value).c = abc_findpropstrict2((yyval.value).c, &m); (yyval.value).c = abc_getproperty2((yyval.value).c, &m); - if(a->function->kind == MEMBER_METHOD) { - (yyval.value).t = TYPE_FUNCTION(a->function); + if(a->kind == INFOTYPE_METHOD) { + methodinfo_t*f = (methodinfo_t*)a; + (yyval.value).t = TYPE_FUNCTION(f); } else { - (yyval.value).t = a->function->type; + varinfo_t*v = (varinfo_t*)a; + (yyval.value).t = v->type; } } else { - if(a->slot) { + classinfo_t*c = (classinfo_t*)a; + if(c->slot) { (yyval.value).c = abc_getglobalscope((yyval.value).c); - (yyval.value).c = abc_getslot((yyval.value).c, a->slot); + (yyval.value).c = abc_getslot((yyval.value).c, c->slot); } else { - MULTINAME(m, a); + MULTINAME(m, c); (yyval.value).c = abc_getlex2((yyval.value).c, &m); } - (yyval.value).t = TYPE_CLASS(a); + (yyval.value).t = TYPE_CLASS(c); } break; } @@ -7252,45 +7625,49 @@ yyreduce: - case 284: + case 298: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3139 "parser.y" +#line 3307 "parser.y" {(yyval.code)=0;} } break; - case 285: + case 299: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3140 "parser.y" +#line 3308 "parser.y" {(yyval.code)=0;} } break; - case 286: + case 300: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3141 "parser.y" +#line 3309 "parser.y" {(yyval.code)=0;} } break; - case 287: + case 301: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3143 "parser.y" - {(yyval.token)=0;} +#line 3311 "parser.y" + { + PASS12 + tokenizer_register_namespace((yyvsp[(3) - (3)].id)); + (yyval.code)=0; +} } break; @@ -7298,7 +7675,7 @@ yyreduce: /* Line 1464 of skeleton.m4 */ -#line 7302 "parser.tab.c" +#line 7679 "parser.tab.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);