X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fas3%2Fparser.tab.c;h=3c0ca8a3e254b3b3f126657ae8631ef647360bfe;hb=5564aa996b3d6fc258138a7bafc4537431db1c48;hp=155254eea1f9afa33f10c3dddfd43974bb28977e;hpb=b99a9f03d0f161800baafab39eedde7353630d7f;p=swftools.git diff --git a/lib/as3/parser.tab.c b/lib/as3/parser.tab.c index 155254e..3c0ca8a 100644 --- a/lib/as3/parser.tab.c +++ b/lib/as3/parser.tab.c @@ -84,18 +84,20 @@ #include "abc.h" #include "pool.h" #include "files.h" +#include "common.h" #include "tokenizer.h" #include "registry.h" #include "code.h" #include "opcodes.h" #include "compiler.h" +#include "expr.h" extern int a3_lex(); /* Line 198 of skeleton.m4 */ -#line 99 "parser.tab.c" +#line 101 "parser.tab.c" /* Enabling traces. */ #ifndef YYDEBUG @@ -129,77 +131,77 @@ extern int a3_lex(); 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_DICTSTART = 325, - T_EQEQ = 326, - T_EQEQEQ = 327, - T_NE = 328, - T_NEE = 329, - T_LE = 330, - T_GE = 331, - T_ORBY = 332, - T_DIVBY = 333, - T_MODBY = 334, - T_MULBY = 335, + T_FLOAT = 265, + T_FOR = 266, + T_WHILE = 267, + T_DO = 268, + T_SWITCH = 269, + KW_IMPLEMENTS = 270, + KW_NAMESPACE = 271, + KW_PACKAGE = 272, + KW_PROTECTED = 273, + KW_PUBLIC = 274, + KW_PRIVATE = 275, + KW_USE = 276, + KW_INTERNAL = 277, + KW_NEW = 278, + KW_NATIVE = 279, + KW_FUNCTION = 280, + KW_FINALLY = 281, + KW_UNDEFINED = 282, + KW_NAN = 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_DICTSTART = 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_ANDBY = 335, T_PLUSBY = 336, T_MINUSBY = 337, T_XORBY = 338, @@ -219,14 +221,14 @@ extern int a3_lex(); prec_none = 352, below_semicolon = 353, below_assignment = 354, - below_minus = 356, - minusminus_prefix = 357, - plusplus_prefix = 358, - below_curly = 359, - new2 = 360, - above_identifier = 361, - below_else = 362, - above_function = 363 + below_minus = 355, + minusminus_prefix = 356, + plusplus_prefix = 357, + below_curly = 358, + new2 = 359, + above_identifier = 360, + below_else = 361, + above_function = 362 }; #endif @@ -235,12 +237,12 @@ extern int a3_lex(); #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union /* Line 223 of skeleton.m4 */ -#line 44 "parser.y" +#line 46 "parser.y" tokenunion { /* Line 223 of skeleton.m4 */ -#line 44 "parser.y" +#line 46 "parser.y" enum yytokentype token; @@ -266,6 +268,7 @@ tokenunion regexp_t regexp; modifiers_t flags; namespace_decl_t* namespace_decl; + node_t*node; struct { abc_exception_list_t *l; code_t*finally; @@ -274,7 +277,7 @@ tokenunion /* Line 223 of skeleton.m4 */ -#line 278 "parser.tab.c" +#line 281 "parser.tab.c" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ @@ -285,7 +288,7 @@ tokenunion /* Copy the second part of user declarations. */ /* Line 273 of skeleton.m4 */ -#line 265 "parser.y" +#line 269 "parser.y" static int a3_error(char*s) @@ -294,6 +297,13 @@ static int a3_error(char*s) return 0; //make gcc happy } +static void parsererror(const char*file, int line, const char*f) +{ + syntaxerror("internal error in %s, %s:%d", f, file, line); +} + +#define parserassert(b) {if(!(b)) parsererror(__FILE__, __LINE__,__func__);} + static char* concat2(const char* t1, const char* t2) { @@ -321,7 +331,6 @@ static char* concat3(const char* t1, const char* t2, const char* t3) typedef struct _import { char*package; } import_t; - DECLARE_LIST(import); DECLARE(methodstate); @@ -452,6 +461,15 @@ static namespace_list_t nl2 = {&ns2,&nl3}; static namespace_list_t nl1 = {&ns1,&nl2}; static namespace_set_t nopackage_namespace_set = {&nl1}; +static dict_t*definitions=0; +void as3_set_define(const char*c) +{ + if(!definitions) + definitions = dict_new(); + if(!dict_contains(definitions,c)) + dict_put(definitions,c,0); +} + static void new_state() { NEW(state_t, s); @@ -476,24 +494,6 @@ static void new_state() if(oldstate) state->active_namespace_urls = list_clone(oldstate->active_namespace_urls); } -static void state_has_imports() -{ - state->wildcard_imports = list_clone(state->wildcard_imports); - state->imports = dict_clone(state->imports); - state->has_own_imports = 1; -} -static void import_toplevel(const char*package) -{ - char* s = strdup(package); - while(1) { - dict_put(state->import_toplevel_packages, s, 0); - char*x = strrchr(s, '.'); - if(!x) - break; - *x = 0; - } - free(s); -} static void state_destroy(state_t*state) { @@ -575,6 +575,8 @@ void initialize_file(char*filename) state->method->late_binding = 1; // init scripts use getglobalscope, so we need a getlocal0/pushscope } else { state->method = dict_lookup(global->token2info, (void*)(ptroff_t)as3_tokencount); + if(!state->method) + syntaxerror("internal error: skewed tokencount"); function_initvars(state->method, 0, 0, 1); global->init = abc_initscript(global->file); } @@ -585,8 +587,10 @@ void finish_file() if(!state || state->level!=1) { syntaxerror("unexpected end of file in pass %d", as3_pass); } - + if(as3_pass==2) { + dict_del(global->file2token2info, current_filename); + code_t*header = method_header(state->method); code_t*c = wrap_function(header, 0, global->init->method->body->code); global->init->method->body->code = c; @@ -609,46 +613,15 @@ void initialize_parser() void* finish_parser() { dict_free_all(global->file2token2info, 1, (void*)dict_destroy); - global->token2info=0; - return global->file; } - -static void xx_scopetest() -{ - /* findpropstrict doesn't just return a scope object- it - also makes it "active" somehow. Push local_0 on the - scope stack and read it back with findpropstrict, it'll - contain properties like "trace". Trying to find the same - property on a "vanilla" local_0 yields only a "undefined" */ - //c = abc_findpropstrict(c, "[package]::trace"); - - /*c = abc_getlocal_0(c); - c = abc_findpropstrict(c, "[package]::trace"); - c = abc_coerce_a(c); - c = abc_setlocal_1(c); - - c = abc_pushbyte(c, 0); - c = abc_setlocal_2(c); - - code_t*xx = c = abc_label(c); - c = abc_findpropstrict(c, "[package]::trace"); - c = abc_pushstring(c, "prop:"); - c = abc_hasnext2(c, 1, 2); - c = abc_dup(c); - c = abc_setlocal_3(c); - c = abc_callpropvoid(c, "[package]::trace", 2); - c = abc_getlocal_3(c); - c = abc_kill(c, 3); - c = abc_iftrue(c,xx);*/ -} - typedef struct _variable { int index; classinfo_t*type; char init; + char is_parameter; methodstate_t*is_inner_method; } variable_t; @@ -677,11 +650,32 @@ static variable_t* find_variable_safe(state_t*s, char*name) syntaxerror("undefined variable: %s", name); return v; } + static char variable_exists(char*name) { return dict_contains(state->vars, name); } -code_t*defaultvalue(code_t*c, classinfo_t*type); + +static code_t*defaultvalue(code_t*c, classinfo_t*type) +{ + if(TYPE_IS_INT(type)) { + c = abc_pushbyte(c, 0); + } else if(TYPE_IS_UINT(type)) { + c = abc_pushuint(c, 0); + } else if(TYPE_IS_FLOAT(type)) { + c = abc_pushnan(c); + } else if(TYPE_IS_BOOLEAN(type)) { + c = abc_pushfalse(c); + } else if(!type) { + //c = abc_pushundefined(c); + syntaxerror("internal error: can't generate default value for * type"); + } else { + c = abc_pushnull(c); + MULTINAME(m, type); + c = abc_coerce2(c, &m); + } + return c; +} static int alloc_local() { @@ -712,7 +706,7 @@ static int new_variable(const char*name, classinfo_t*type, char init, char maybe } #define TEMPVARNAME "__as3_temp__" -static int gettempvar() +int gettempvar() { variable_t*v = find_variable(state, TEMPVARNAME); if(v) @@ -720,7 +714,7 @@ static int gettempvar() return new_variable(TEMPVARNAME, 0, 0, 0); } -code_t* var_block(code_t*body) +static code_t* var_block(code_t*body) { code_t*c = 0; code_t*k = 0; @@ -764,7 +758,7 @@ code_t* var_block(code_t*body) return c; } -void unknown_variable(char*name) +static void unknown_variable(char*name) { if(!state->method->unresolved_variables) state->method->unresolved_variables = dict_new(); @@ -772,14 +766,6 @@ void unknown_variable(char*name) dict_put(state->method->unresolved_variables, name, 0); } -#define parserassert(b) {if(!(b)) parsererror(__FILE__, __LINE__,__func__);} - -static void parsererror(const char*file, int line, const char*f) -{ - syntaxerror("internal error in %s, %s:%d", f, file, line); -} - - static code_t* add_scope_code(code_t*c, methodstate_t*m, char init) { if(m->uses_slots || (m->late_binding && !m->inner)) { //???? especially inner functions need the pushscope @@ -835,6 +821,19 @@ static code_t* method_header(methodstate_t*m) c = abc_getlocal_0(c); c = abc_constructsuper(c, 0); } + + if(m->slots) { + /* all parameters that are used by inner functions + need to be copied from local to slot */ + parserassert(m->activation_var); + DICT_ITERATE_ITEMS(m->slots,char*,name,variable_t*,v) { + if(v->is_parameter) { + c = abc_getlocal(c, m->activation_var); + c = abc_getlocal(c, v->index); + c = abc_setslot(c, v->index); + } + } + } list_free(m->innerfunctions); m->innerfunctions = 0; return c; @@ -853,20 +852,15 @@ static code_t* wrap_function(code_t*c,code_t*header, code_t*body) return c; } - static void startpackage(char*name) { new_state(); - /*printf("entering package \"%s\"\n", name);*/ state->package = strdup(name); } static void endpackage() { - /*printf("leaving package \"%s\"\n", state->package);*/ - //used e.g. in classinfo_register: //free(state->package);state->package=0; - old_state(); } @@ -918,13 +912,6 @@ static memberinfo_t* findmember_nsset(classinfo_t*cls, const char*name, char rec return registry_findmember_nsset(cls, state->active_namespace_urls, name, recurse); } -void add_active_url(const char*url) -{ - NEW(namespace_t,n); - n->name = url; - list_append(state->active_namespace_urls, n); -} - static void function_initvars(methodstate_t*m, params_t*params, int flags, char var0) { if(var0) { @@ -951,7 +938,8 @@ static void function_initvars(methodstate_t*m, params_t*params, int flags, char if(params) { param_list_t*p=0; for(p=params->list;p;p=p->next) { - new_variable(p->param->name, p->param->type, 0, 1); + variable_t*v = new_variable2(p->param->name, p->param->type, 0, 1); + v->is_parameter = 1; } } @@ -1155,23 +1143,6 @@ static void startclass(modifiers_t* mod, char*classname, classinfo_t*extends, cl } } -static int slotstate_varconst = 0; -static modifiers_t*slotstate_flags = 0; -static void setslotstate(modifiers_t* flags, int varconst) -{ - slotstate_varconst = varconst; - slotstate_flags = flags; - if(state->cls) { - if(flags && flags->flags&FLAG_STATIC) { - state->method = state->cls->static_init; - } else { - state->method = state->cls->init; - } - } else { - parserassert(state->method); - } -} - static void endclass() { if(as3_pass == 2) { @@ -1213,6 +1184,12 @@ void check_code_for_break(code_t*c) char*name = string_cstr(c->data[0]); syntaxerror("Unresolved \"continue %s\"", name); } + if(c->opcode == OPCODE___RETHROW__) { + syntaxerror("Unresolved \"rethrow\""); + } + if(c->opcode == OPCODE___FALLTHROUGH__) { + syntaxerror("Unresolved \"fallthrough\""); + } if(c->opcode == OPCODE___PUSHPACKAGE__) { char*name = string_cstr(c->data[0]); syntaxerror("Can't reference a package (%s) as such", name); @@ -1221,10 +1198,8 @@ void check_code_for_break(code_t*c) } } - static void check_constant_against_type(classinfo_t*t, constant_t*c) { - return; #define xassert(b) if(!(b)) syntaxerror("Invalid default value %s for type '%s'", constant_tostring(c), t->name) if(TYPE_IS_NUMBER(t)) { xassert(c->type == CONSTANT_FLOAT @@ -1283,9 +1258,6 @@ static methodinfo_t*registerfunction(enum yytokentype getset, modifiers_t*mod, c //class method memberinfo_t* m = registry_findmember(state->cls->info, ns.name, name, 0); if(m) { - printf("%s.%s | %s.%s\n", - m->package, m->name, - ns.name, name); syntaxerror("class already contains a %s '%s'", infotypename((slotinfo_t*)m), m->name); } minfo = methodinfo_register_onclass(state->cls->info, ns.access, ns.name, name); @@ -1579,11 +1551,6 @@ static abc_method_t* endfunction(modifiers_t*mod, enum yytokentype getset, char* return 0; } -char is_subtype_of(classinfo_t*type, classinfo_t*supertype) -{ - return 1; // FIXME -} - void breakjumpsto(code_t*c, char*name, code_t*jump) { while(c) { @@ -1611,29 +1578,8 @@ void continuejumpsto(code_t*c, char*name, code_t*jump) } } -#define IS_INT(a) (TYPE_IS_INT((a)) || TYPE_IS_UINT((a))) #define IS_NUMBER_OR_INT(a) (TYPE_IS_INT((a)) || TYPE_IS_UINT((a)) || TYPE_IS_NUMBER((a))) -#define BOTH_INT(a,b) (IS_INT(a) && IS_INT(b)) - -classinfo_t*join_types(classinfo_t*type1, classinfo_t*type2, char op) -{ - if(!type1 || !type2) - return registry_getanytype(); - if(TYPE_IS_ANY(type1) || TYPE_IS_ANY(type2)) - return registry_getanytype(); - - if(op=='+') { - if(IS_NUMBER_OR_INT(type1) && IS_NUMBER_OR_INT(type2)) { - return TYPE_NUMBER; - } else { - return TYPE_ANY; - } - } - if(type1 == type2) - return type1; - return registry_getanytype(); -} code_t*converttype(code_t*c, classinfo_t*from, classinfo_t*to) { if(from==to) @@ -1651,10 +1597,21 @@ code_t*converttype(code_t*c, classinfo_t*from, classinfo_t*to) if((TYPE_IS_NUMBER(from) || TYPE_IS_UINT(from) || TYPE_IS_INT(from)) && (TYPE_IS_NUMBER(to) || TYPE_IS_UINT(to) || TYPE_IS_INT(to))) { // allow conversion between number types + if(TYPE_IS_UINT(to)) + return abc_convert_u(c); + else if(TYPE_IS_INT(to)) + return abc_convert_i(c); + else if(TYPE_IS_NUMBER(to)) + return abc_convert_d(c); return abc_coerce2(c, &m); } - //printf("%s.%s\n", from.package, from.name); - //printf("%s.%s\n", to.package, to.name); + + if(TYPE_IS_BOOLEAN(to)) + return abc_convert_b(c); + if(TYPE_IS_STRING(to)) + return abc_convert_s(c); + if(TYPE_IS_OBJECT(to)) + return abc_convert_o(c); classinfo_t*supertype = from; while(supertype) { @@ -1680,30 +1637,12 @@ code_t*converttype(code_t*c, classinfo_t*from, classinfo_t*to) return c; as3_error("can't convert type %s%s%s to %s%s%s", - from->package, from->package?".":"", from->name, - to->package, to->package?".":"", to->name); - return c; -} + from->package, from->package[0]?".":"", from->name, + to->package, to->package[0]?".":"", to->name); -code_t*defaultvalue(code_t*c, classinfo_t*type) -{ - if(TYPE_IS_INT(type)) { - c = abc_pushbyte(c, 0); - } else if(TYPE_IS_UINT(type)) { - c = abc_pushuint(c, 0); - } else if(TYPE_IS_FLOAT(type)) { - c = abc_pushnan(c); - } else if(TYPE_IS_BOOLEAN(type)) { - c = abc_pushfalse(c); - } else if(!type) { - //c = abc_pushundefined(c); - } else { - c = abc_pushnull(c); - MULTINAME(m, type); - c = abc_coerce2(c, &m); - } return c; } +/* move to ast.c todo end */ char is_pushundefined(code_t*c) { @@ -1815,175 +1754,6 @@ typedcode_t push_class(slotinfo_t*a) return x; } -static char is_getlocal(code_t*c) -{ - if(!c || c->prev || c->next) - return 0; - return(c->opcode == OPCODE_GETLOCAL - || c->opcode == OPCODE_GETLOCAL_0 - || c->opcode == OPCODE_GETLOCAL_1 - || c->opcode == OPCODE_GETLOCAL_2 - || c->opcode == OPCODE_GETLOCAL_3); -} -static int getlocalnr(code_t*c) -{ - if(c->opcode == OPCODE_GETLOCAL) {return (ptroff_t)c->data[0];} - else if(c->opcode == OPCODE_GETLOCAL_0) {return 0;} - else if(c->opcode == OPCODE_GETLOCAL_1) {return 1;} - else if(c->opcode == OPCODE_GETLOCAL_2) {return 2;} - else if(c->opcode == OPCODE_GETLOCAL_3) {return 3;} - else syntaxerror("Internal error: opcode %02x is not a getlocal call", c->opcode); - return 0; -} - -static code_t* toreadwrite(code_t*in, code_t*middlepart, char justassign, char readbefore) -{ - /* converts this: - - [prefix code] [read instruction] - - to this: - - [prefix code] ([dup]) [read instruction] [middlepart] [setvar] [write instruction] [getvar] - */ - if(in && in->opcode == OPCODE_COERCE_A) { - in = code_cutlast(in); - } - if(in->next) - syntaxerror("internal error"); - - /* chop off read instruction */ - code_t*prefix = in; - code_t*r = in; - if(r->prev) { - prefix = r->prev;r->prev = 0; - prefix->next=0; - } else { - prefix = 0; - } - - char use_temp_var = readbefore; - - /* generate the write instruction, and maybe append a dup to the prefix code */ - code_t* write = abc_nop(0); - if(r->opcode == OPCODE_GETPROPERTY) { - write->opcode = OPCODE_SETPROPERTY; - multiname_t*m = (multiname_t*)r->data[0]; - write->data[0] = multiname_clone(m); - if(m->type == QNAME || m->type == MULTINAME) { - if(!justassign) { - prefix = abc_dup(prefix); // we need the object, too - } - use_temp_var = 1; - } else if(m->type == MULTINAMEL) { - if(!justassign) { - /* dupping two values on the stack requires 5 operations and one register- - couldn't adobe just have given us a dup2? */ - int temp = gettempvar(); - prefix = abc_setlocal(prefix, temp); - prefix = abc_dup(prefix); - prefix = abc_getlocal(prefix, temp); - prefix = abc_swap(prefix); - prefix = abc_getlocal(prefix, temp); - if(!use_temp_var); - prefix = abc_kill(prefix, temp); - } - use_temp_var = 1; - } else { - syntaxerror("illegal lvalue: can't assign a value to this expression (not a qname/multiname)"); - } - } else if(r->opcode == OPCODE_GETSLOT) { - write->opcode = OPCODE_SETSLOT; - write->data[0] = r->data[0]; - if(!justassign) { - prefix = abc_dup(prefix); // we need the object, too - } - use_temp_var = 1; - } else if(r->opcode == OPCODE_GETLOCAL) { - write->opcode = OPCODE_SETLOCAL; - write->data[0] = r->data[0]; - } else if(r->opcode == OPCODE_GETLOCAL_0) { - write->opcode = OPCODE_SETLOCAL_0; - } else if(r->opcode == OPCODE_GETLOCAL_1) { - write->opcode = OPCODE_SETLOCAL_1; - } else if(r->opcode == OPCODE_GETLOCAL_2) { - write->opcode = OPCODE_SETLOCAL_2; - } else if(r->opcode == OPCODE_GETLOCAL_3) { - write->opcode = OPCODE_SETLOCAL_3; - } else if(r->opcode == OPCODE_GETSUPER) { - write->opcode = OPCODE_SETSUPER; - multiname_t*m = (multiname_t*)r->data[0]; - write->data[0] = multiname_clone(m); - } else { - code_dump(r); - syntaxerror("illegal lvalue: can't assign a value to this expression"); - } - code_t* c = 0; - - int temp = -1; - if(!justassign) { - if(use_temp_var) { - /* with getproperty/getslot, we have to be extra careful not - to execute the read code twice, as it might have side-effects - (e.g. if the property is in fact a setter/getter combination) - - So read the value, modify it, and write it again, - using prefix only once and making sure (by using a temporary - register) that the return value is what we just wrote */ - temp = gettempvar(); - c = code_append(c, prefix); - c = code_append(c, r); - if(readbefore) { - c = abc_dup(c); - c = abc_setlocal(c, temp); - } - c = code_append(c, middlepart); - if(!readbefore) { - c = abc_dup(c); - c = abc_setlocal(c, temp); - } - c = code_append(c, write); - c = abc_getlocal(c, temp); - c = abc_kill(c, temp); - } else { - /* if we're allowed to execute the read code twice *and* - the middlepart doesn't modify the code, things are easier. - */ - code_t* r2 = code_dup(r); - //c = code_append(c, prefix); - parserassert(!prefix); - c = code_append(c, r); - c = code_append(c, middlepart); - c = code_append(c, write); - c = code_append(c, r2); - } - } else { - /* even smaller version: overwrite the value without reading - it out first */ - if(!use_temp_var) { - if(prefix) { - c = code_append(c, prefix); - c = abc_dup(c); - } - c = code_append(c, middlepart); - 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); - } - c = code_append(c, middlepart); - c = abc_dup(c); - c = abc_setlocal(c, temp); - c = code_append(c, write); - c = abc_getlocal(c, temp); - c = abc_kill(c, temp); - } - } - return c; -} char is_break_or_jump(code_t*c) { @@ -2118,13 +1888,83 @@ code_t* insert_finally(code_t*c, code_t*finally, int tempvar) #define PASS1 }} if(as3_pass == 1) {{ #define PASS1END }} if(as3_pass == 2) {{ #define PASS2 }} if(as3_pass == 2) {{ -#define PASS12 }} {{ +#define PASS12 }} if(as3_pass == 1 || as3_pass == 2) {{ #define PASS12END }} if(as3_pass == 2) {{ +#define PASS_ALWAYS }} {{ /* Line 273 of skeleton.m4 */ -#line 2128 "parser.tab.c" +#line 1899 "parser.tab.c" +/* Unqualified %code blocks. */ + +/* Line 274 of skeleton.m4 */ +#line 1963 "parser.y" + + char is_subtype_of(classinfo_t*type, classinfo_t*supertype) + { + return 1; // FIXME + } + + +/* Line 274 of skeleton.m4 */ +#line 2415 "parser.y" + + static void state_has_imports() + { + state->wildcard_imports = list_clone(state->wildcard_imports); + state->imports = dict_clone(state->imports); + state->has_own_imports = 1; + } + static void import_toplevel(const char*package) + { + char* s = strdup(package); + while(1) { + dict_put(state->import_toplevel_packages, s, 0); + char*x = strrchr(s, '.'); + if(!x) + break; + *x = 0; + } + free(s); + } + + +/* Line 274 of skeleton.m4 */ +#line 2548 "parser.y" + + static int slotstate_varconst = 0; + static modifiers_t*slotstate_flags = 0; + static void setslotstate(modifiers_t* flags, int varconst) + { + slotstate_varconst = varconst; + slotstate_flags = flags; + if(state->cls) { + if(flags && flags->flags&FLAG_STATIC) { + state->method = state->cls->static_init; + } else { + state->method = state->cls->init; + } + } else { + parserassert(state->method); + } + } + + +/* Line 274 of skeleton.m4 */ +#line 3392 "parser.y" + + void add_active_url(const char*url) + { + NEW(namespace_t,n); + n->name = url; + list_append(state->active_namespace_urls, n); + } + + + +/* Line 274 of skeleton.m4 */ +#line 1968 "parser.tab.c" #ifdef short # undef short @@ -2339,20 +2179,20 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 147 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 3001 +#define YYLAST 3105 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 134 +#define YYNTOKENS 133 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 114 +#define YYNNTS 115 /* YYNRULES -- Number of rules. */ -#define YYNRULES 309 +#define YYNRULES 303 /* YYNRULES -- Number of states. */ -#define YYNSTATES 521 +#define YYNSTATES 517 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 363 +#define YYMAXUTOK 362 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -2363,16 +2203,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, 118, 2, 2, 2, 116, 108, 2, - 122, 133, 115, 113, 100, 112, 127, 114, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 105, 99, - 109, 102, 110, 104, 128, 2, 2, 2, 2, 2, + 2, 2, 2, 117, 2, 2, 2, 115, 107, 2, + 121, 132, 114, 112, 100, 111, 126, 113, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 104, 99, + 108, 102, 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, 124, 2, 125, 107, 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, 126, 106, 132, 117, 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, @@ -2395,8 +2235,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, 96, 97, 98, 101, 103, 111, 119, 120, 121, - 123, 129, 130, 131 + 95, 96, 97, 98, 101, 110, 118, 119, 120, 122, + 128, 129, 130 }; #if YYDEBUG @@ -2426,148 +2266,148 @@ static const yytype_uint16 yyprhs[] = 515, 528, 530, 531, 532, 543, 545, 549, 551, 553, 555, 559, 561, 563, 565, 568, 569, 570, 574, 575, 577, 579, 581, 584, 587, 588, 593, 598, 603, 606, - 608, 611, 613, 615, 619, 621, 623, 625, 627, 629, - 631, 633, 635, 637, 639, 641, 643, 645, 647, 649, - 651, 653, 655, 659, 663, 667, 671, 675, 679, 683, - 687, 691, 695, 698, 701, 705, 709, 713, 717, 721, - 725, 729, 733, 737, 741, 745, 749, 753, 757, 761, - 766, 769, 771, 775, 778, 783, 787, 788, 790, 794, - 800, 804, 808, 812, 816, 820, 824, 828, 832, 836, - 840, 844, 848, 854, 857, 860, 863, 866, 870, 873, - 878, 884, 888, 894, 898, 900, 903, 908, 913, 916 + 608, 611, 613, 615, 617, 621, 623, 627, 628, 630, + 634, 640, 642, 644, 646, 648, 650, 652, 654, 656, + 660, 664, 668, 672, 676, 680, 684, 688, 692, 696, + 700, 704, 707, 710, 714, 718, 722, 726, 730, 734, + 738, 742, 746, 750, 754, 758, 762, 766, 770, 775, + 778, 780, 784, 787, 792, 796, 800, 804, 808, 812, + 816, 820, 824, 828, 832, 836, 840, 846, 849, 852, + 855, 858, 862, 865, 870, 876, 880, 886, 890, 892, + 895, 900, 905, 908 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 135, 0, -1, 136, -1, -1, 137, -1, 138, -1, - 137, 138, -1, 186, -1, 198, -1, 196, -1, 217, - -1, 207, -1, 147, -1, 148, 126, 136, 132, -1, - 99, -1, -1, 140, -1, 141, -1, 140, 141, -1, - 198, -1, 196, -1, 217, -1, 207, -1, 147, -1, - 148, 126, 139, 132, -1, 99, -1, 143, -1, -1, - 143, 145, -1, 145, -1, 189, -1, 159, -1, 160, - -1, 161, -1, 163, -1, 171, -1, 154, -1, 183, - -1, 179, -1, 239, -1, 247, -1, 246, -1, 126, - 143, 132, -1, 126, 132, -1, 99, -1, 144, -1, - 150, -1, 165, -1, 166, -1, 236, -1, 181, -1, - 148, 126, 143, 132, -1, 145, 99, -1, 145, -1, - 144, -1, 3, 89, 3, -1, 102, 237, -1, -1, - 46, 151, -1, 32, 151, -1, 152, -1, 151, 100, - 152, -1, 3, 227, 149, -1, -1, 65, 146, -1, - -1, 64, 122, 155, 238, 133, 146, 153, -1, -1, - 150, -1, 239, -1, 46, 3, 227, -1, 3, -1, - 13, 122, -1, 13, 50, 122, -1, 158, 156, 99, - 238, 99, 239, 133, 146, -1, 158, 157, 68, 238, - 133, 146, -1, -1, 14, 122, 162, 238, 133, 146, - -1, -1, 15, 164, 146, 14, 122, 238, 133, -1, - 66, -1, 66, 3, -1, 30, -1, 30, 3, -1, - -1, 168, -1, 170, -1, 168, 170, -1, 169, -1, - 168, 169, -1, 34, 240, 105, 142, -1, 62, 105, - 142, -1, -1, 16, 122, 172, 240, 133, 126, 167, - 132, -1, -1, 33, 122, 3, 227, 133, 174, 126, - 142, 132, -1, -1, 28, 126, 176, 142, 132, -1, - 173, -1, 177, 173, -1, 177, -1, 177, 175, -1, - 175, -1, -1, 52, 126, 180, 142, 132, 178, -1, - 37, 238, -1, 37, -1, 39, 122, 238, 133, -1, - 182, 146, -1, 3, -1, 19, -1, 4, -1, 185, - 127, 184, -1, 184, -1, -1, 19, 185, 126, 187, - 139, 132, -1, -1, 19, 126, 188, 139, 132, -1, - 41, 223, -1, 41, 185, 127, 115, -1, -1, 191, - -1, 192, -1, 191, 192, -1, 21, -1, 22, -1, - 20, -1, 38, -1, 47, -1, 49, -1, 48, -1, - 26, -1, 24, -1, 4, -1, -1, 54, 224, -1, - -1, 54, 225, -1, -1, 17, 225, -1, -1, 190, - 31, 3, 193, 195, 126, 197, 200, 132, -1, -1, - 190, 44, 3, 194, 126, 199, 203, 132, -1, -1, - 201, -1, 202, -1, 201, 202, -1, 99, -1, 148, - 126, 200, 132, -1, 207, -1, 217, -1, 144, -1, - -1, 204, -1, 205, -1, 204, 205, -1, 99, -1, - 46, 3, -1, 190, 27, 216, 3, 122, 213, 133, - 227, -1, 46, -1, 32, -1, -1, 190, 206, 208, - 209, -1, 210, -1, 209, 100, 210, -1, 3, 227, - 149, -1, -1, 102, 212, -1, 10, -1, 8, -1, - 9, -1, 12, -1, 5, -1, 56, -1, 55, -1, - 45, -1, 3, -1, -1, 214, -1, 93, 215, -1, - 214, 100, 93, 215, -1, 214, 100, 215, -1, 215, - -1, 3, 105, 226, 211, -1, 3, 211, -1, 51, - -1, 35, -1, -1, -1, 190, 27, 216, 3, 122, - 213, 133, 227, 126, 218, 142, 132, -1, 3, -1, - -1, -1, 27, 219, 122, 213, 133, 227, 126, 221, - 142, 132, -1, 184, -1, 185, 127, 184, -1, 223, - -1, 222, -1, 224, -1, 225, 100, 224, -1, 224, - -1, 115, -1, 36, -1, 105, 226, -1, -1, -1, - 122, 229, 133, -1, -1, 230, -1, 231, -1, 237, - -1, 230, 100, -1, 231, 237, -1, -1, 25, 240, - 232, 228, -1, 240, 122, 229, 133, -1, 53, 122, - 229, 133, -1, 63, 240, -1, 42, -1, 42, 238, - -1, 240, -1, 240, -1, 238, 100, 240, -1, 238, - -1, 220, -1, 241, -1, 244, -1, 233, -1, 235, - -1, 234, -1, 6, -1, 10, -1, 11, -1, 8, - -1, 9, -1, 12, -1, 5, -1, 29, -1, 56, - -1, 55, -1, 45, -1, 240, 109, 240, -1, 240, - 110, 240, -1, 240, 75, 240, -1, 240, 76, 240, - -1, 240, 71, 240, -1, 240, 72, 240, -1, 240, - 74, 240, -1, 240, 73, 240, -1, 240, 87, 240, - -1, 240, 88, 240, -1, 118, 240, -1, 117, 240, - -1, 240, 108, 240, -1, 240, 107, 240, -1, 240, - 106, 240, -1, 240, 96, 240, -1, 240, 95, 240, - -1, 240, 94, 240, -1, 240, 114, 240, -1, 240, - 116, 240, -1, 240, 113, 240, -1, 240, 112, 240, - -1, 240, 115, 240, -1, 240, 68, 240, -1, 240, - 69, 240, -1, 240, 40, 240, -1, 240, 67, 240, - -1, 43, 122, 240, 133, -1, 36, 240, -1, 36, - -1, 122, 238, 133, -1, 112, 240, -1, 240, 124, - 240, 125, -1, 124, 229, 125, -1, -1, 243, -1, - 237, 105, 237, -1, 243, 100, 237, 105, 237, -1, - 70, 242, 132, -1, 240, 80, 240, -1, 240, 79, - 240, -1, 240, 85, 240, -1, 240, 84, 240, -1, - 240, 86, 240, -1, 240, 78, 240, -1, 240, 77, - 240, -1, 240, 83, 240, -1, 240, 81, 240, -1, - 240, 82, 240, -1, 240, 102, 240, -1, 240, 104, - 240, 105, 240, -1, 240, 91, -1, 240, 90, -1, - 91, 240, -1, 90, 240, -1, 53, 127, 3, -1, - 128, 3, -1, 240, 127, 128, 3, -1, 240, 127, - 3, 89, 3, -1, 240, 92, 3, -1, 240, 127, - 122, 240, 133, -1, 240, 127, 3, -1, 3, -1, - 18, 3, -1, 18, 3, 102, 3, -1, 18, 3, - 102, 5, -1, 190, 245, -1, 23, 18, 224, -1 + 134, 0, -1, 135, -1, -1, 136, -1, 137, -1, + 136, 137, -1, 185, -1, 197, -1, 195, -1, 216, + -1, 206, -1, 146, -1, 147, 125, 135, 131, -1, + 99, -1, -1, 139, -1, 140, -1, 139, 140, -1, + 197, -1, 195, -1, 216, -1, 206, -1, 146, -1, + 147, 125, 138, 131, -1, 99, -1, 142, -1, -1, + 142, 144, -1, 144, -1, 188, -1, 158, -1, 159, + -1, 160, -1, 162, -1, 170, -1, 153, -1, 182, + -1, 178, -1, 239, -1, 247, -1, 246, -1, 125, + 142, 131, -1, 125, 131, -1, 99, -1, 143, -1, + 149, -1, 164, -1, 165, -1, 235, -1, 180, -1, + 147, 125, 142, 131, -1, 144, 99, -1, 144, -1, + 143, -1, 3, 89, 3, -1, 102, 236, -1, -1, + 45, 150, -1, 31, 150, -1, 151, -1, 150, 100, + 151, -1, 3, 226, 148, -1, -1, 64, 145, -1, + -1, 63, 121, 154, 237, 132, 145, 152, -1, -1, + 149, -1, 239, -1, 45, 3, 226, -1, 3, -1, + 11, 121, -1, 11, 49, 121, -1, 157, 155, 99, + 237, 99, 239, 132, 145, -1, 157, 156, 67, 237, + 132, 145, -1, -1, 12, 121, 161, 237, 132, 145, + -1, -1, 13, 163, 145, 12, 121, 237, 132, -1, + 65, -1, 65, 3, -1, 29, -1, 29, 3, -1, + -1, 167, -1, 169, -1, 167, 169, -1, 168, -1, + 167, 168, -1, 33, 242, 104, 141, -1, 61, 104, + 141, -1, -1, 14, 121, 171, 242, 132, 125, 166, + 131, -1, -1, 32, 121, 3, 226, 132, 173, 125, + 141, 131, -1, -1, 26, 125, 175, 141, 131, -1, + 172, -1, 176, 172, -1, 176, -1, 176, 174, -1, + 174, -1, -1, 51, 125, 179, 141, 131, 177, -1, + 36, 237, -1, 36, -1, 38, 121, 237, 132, -1, + 181, 145, -1, 3, -1, 17, -1, 4, -1, 184, + 126, 183, -1, 183, -1, -1, 17, 184, 125, 186, + 138, 131, -1, -1, 17, 125, 187, 138, 131, -1, + 40, 222, -1, 40, 184, 126, 114, -1, -1, 190, + -1, 191, -1, 190, 191, -1, 19, -1, 20, -1, + 18, -1, 37, -1, 46, -1, 48, -1, 47, -1, + 24, -1, 22, -1, 4, -1, -1, 53, 223, -1, + -1, 53, 224, -1, -1, 15, 224, -1, -1, 189, + 30, 3, 192, 194, 125, 196, 199, 131, -1, -1, + 189, 43, 3, 193, 125, 198, 202, 131, -1, -1, + 200, -1, 201, -1, 200, 201, -1, 99, -1, 147, + 125, 199, 131, -1, 206, -1, 216, -1, 143, -1, + -1, 203, -1, 204, -1, 203, 204, -1, 99, -1, + 45, 3, -1, 189, 25, 215, 3, 121, 212, 132, + 226, -1, 45, -1, 31, -1, -1, 189, 205, 207, + 208, -1, 209, -1, 208, 100, 209, -1, 3, 226, + 148, -1, -1, 102, 211, -1, 8, -1, 9, -1, + 10, -1, 5, -1, 55, -1, 54, -1, 44, -1, + 27, -1, 28, -1, -1, 213, -1, 93, 214, -1, + 213, 100, 93, 214, -1, 213, 100, 214, -1, 214, + -1, 3, 104, 225, 210, -1, 3, 210, -1, 50, + -1, 34, -1, -1, -1, 189, 25, 215, 3, 121, + 212, 132, 226, 125, 217, 141, 131, -1, 3, -1, + -1, -1, 25, 218, 121, 212, 132, 226, 125, 220, + 141, 131, -1, 183, -1, 184, 126, 183, -1, 222, + -1, 221, -1, 223, -1, 224, 100, 223, -1, 223, + -1, 114, -1, 35, -1, 104, 225, -1, -1, -1, + 121, 228, 132, -1, -1, 229, -1, 230, -1, 236, + -1, 229, 100, -1, 230, 236, -1, -1, 23, 242, + 231, 227, -1, 242, 121, 228, 132, -1, 52, 121, + 228, 132, -1, 62, 242, -1, 41, -1, 41, 237, + -1, 242, -1, 238, -1, 242, -1, 238, 100, 242, + -1, 242, -1, 239, 100, 242, -1, -1, 241, -1, + 236, 104, 236, -1, 241, 100, 236, 104, 236, -1, + 219, -1, 244, -1, 243, -1, 232, -1, 234, -1, + 233, -1, 211, -1, 6, -1, 123, 228, 124, -1, + 69, 240, 131, -1, 242, 108, 242, -1, 242, 109, + 242, -1, 242, 74, 242, -1, 242, 75, 242, -1, + 242, 70, 242, -1, 242, 71, 242, -1, 242, 73, + 242, -1, 242, 72, 242, -1, 242, 87, 242, -1, + 242, 88, 242, -1, 117, 242, -1, 116, 242, -1, + 242, 107, 242, -1, 242, 106, 242, -1, 242, 105, + 242, -1, 242, 96, 242, -1, 242, 95, 242, -1, + 242, 94, 242, -1, 242, 113, 242, -1, 242, 115, + 242, -1, 242, 112, 242, -1, 242, 111, 242, -1, + 242, 114, 242, -1, 242, 67, 242, -1, 242, 68, + 242, -1, 242, 39, 242, -1, 242, 66, 242, -1, + 42, 121, 242, 132, -1, 35, 242, -1, 35, -1, + 121, 238, 132, -1, 111, 242, -1, 242, 123, 242, + 124, -1, 242, 79, 242, -1, 242, 78, 242, -1, + 242, 85, 242, -1, 242, 84, 242, -1, 242, 86, + 242, -1, 242, 77, 242, -1, 242, 76, 242, -1, + 242, 83, 242, -1, 242, 80, 242, -1, 242, 81, + 242, -1, 242, 82, 242, -1, 242, 102, 242, -1, + 242, 103, 242, 104, 242, -1, 242, 91, -1, 242, + 90, -1, 91, 242, -1, 90, 242, -1, 52, 126, + 3, -1, 127, 3, -1, 242, 126, 127, 3, -1, + 242, 126, 3, 89, 3, -1, 242, 92, 3, -1, + 242, 126, 121, 242, 132, -1, 242, 126, 3, -1, + 3, -1, 16, 3, -1, 16, 3, 102, 3, -1, + 16, 3, 102, 5, -1, 189, 245, -1, 21, 16, + 223, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 2106, 2106, 2108, 2108, 2109, 2110, 2112, 2113, 2114, - 2115, 2116, 2117, 2118, 2119, 2121, 2121, 2122, 2123, 2125, - 2126, 2127, 2128, 2129, 2130, 2131, 2133, 2134, 2136, 2137, - 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, - 2150, 2151, 2152, 2153, 2156, 2157, 2158, 2159, 2160, 2161, - 2162, 2163, 2167, 2168, 2172, 2179, 2183, 2184, 2188, 2189, - 2191, 2192, 2194, 2255, 2256, 2259, 2259, 2278, 2279, 2280, - 2285, 2289, 2294, 2295, 2297, 2317, 2365, 2365, 2384, 2384, - 2399, 2402, 2405, 2408, 2412, 2413, 2414, 2415, 2416, 2417, - 2419, 2430, 2433, 2433, 2464, 2464, 2489, 2489, 2505, 2506, - 2507, 2508, 2516, 2525, 2525, 2574, 2578, 2589, 2599, 2616, - 2617, 2618, 2620, 2621, 2623, 2623, 2625, 2625, 2628, 2642, - 2658, 2659, 2660, 2661, 2668, 2669, 2670, 2671, 2672, 2673, - 2674, 2675, 2676, 2677, 2681, 2682, 2684, 2685, 2687, 2688, - 2692, 2690, 2698, 2696, 2705, 2706, 2707, 2708, 2709, 2710, - 2711, 2712, 2714, 2720, 2721, 2722, 2723, 2724, 2725, 2728, - 2741, 2741, 2743, 2743, 2745, 2746, 2748, 2823, 2824, 2826, - 2827, 2828, 2829, 2830, 2832, 2833, 2834, 2835, 2847, 2851, - 2857, 2863, 2871, 2876, 2882, 2890, 2898, 2899, 2900, 2903, - 2902, 2919, 2920, 2922, 2921, 2945, 2964, 2978, 2979, 2981, - 2982, 2984, 2985, 2986, 2995, 2996, 3000, 3001, 3003, 3004, - 3005, 3007, 3011, 3012, 3017, 3018, 3054, 3100, 3121, 3142, - 3145, 3152, 3153, 3154, 3160, 3166, 3168, 3170, 3172, 3174, - 3176, 3178, 3195, 3200, 3203, 3206, 3209, 3212, 3215, 3218, - 3221, 3224, 3228, 3231, 3234, 3237, 3240, 3243, 3246, 3249, - 3253, 3264, 3282, 3287, 3292, 3297, 3302, 3307, 3311, 3315, - 3320, 3324, 3328, 3337, 3346, 3356, 3361, 3373, 3379, 3384, - 3390, 3396, 3400, 3402, 3413, 3422, 3429, 3430, 3432, 3438, - 3447, 3454, 3466, 3472, 3478, 3484, 3490, 3496, 3502, 3508, - 3521, 3532, 3539, 3552, 3579, 3593, 3607, 3621, 3636, 3643, - 3650, 3657, 3664, 3675, 3727, 3836, 3843, 3850, 3857, 3872 + 0, 1878, 1878, 1880, 1880, 1881, 1882, 1884, 1885, 1886, + 1887, 1888, 1889, 1890, 1891, 1893, 1893, 1894, 1895, 1897, + 1898, 1899, 1900, 1901, 1902, 1903, 1905, 1906, 1908, 1909, + 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, + 1922, 1923, 1924, 1925, 1928, 1929, 1930, 1931, 1932, 1933, + 1934, 1935, 1939, 1940, 1944, 1951, 1970, 1971, 1975, 1976, + 1978, 1979, 1981, 2042, 2043, 2046, 2046, 2065, 2066, 2067, + 2072, 2076, 2081, 2082, 2084, 2104, 2152, 2152, 2171, 2171, + 2186, 2189, 2192, 2195, 2199, 2200, 2201, 2202, 2203, 2204, + 2206, 2217, 2220, 2220, 2251, 2251, 2276, 2276, 2292, 2293, + 2294, 2295, 2303, 2312, 2312, 2361, 2365, 2376, 2386, 2403, + 2404, 2405, 2407, 2408, 2410, 2410, 2412, 2412, 2435, 2449, + 2465, 2466, 2467, 2468, 2475, 2476, 2477, 2478, 2479, 2480, + 2481, 2482, 2483, 2484, 2488, 2489, 2491, 2492, 2494, 2495, + 2499, 2497, 2505, 2503, 2512, 2513, 2514, 2515, 2516, 2517, + 2518, 2519, 2521, 2527, 2528, 2529, 2530, 2531, 2532, 2535, + 2567, 2567, 2569, 2569, 2571, 2572, 2574, 2659, 2660, 2663, + 2664, 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2688, 2692, + 2698, 2704, 2712, 2717, 2723, 2731, 2739, 2740, 2741, 2744, + 2743, 2760, 2761, 2763, 2762, 2786, 2805, 2819, 2820, 2822, + 2823, 2825, 2826, 2827, 2836, 2837, 2841, 2842, 2844, 2845, + 2846, 2848, 2852, 2853, 2858, 2859, 2896, 2943, 2964, 2986, + 2989, 2996, 2999, 3002, 3005, 3008, 3011, 3016, 3017, 3019, + 3025, 3034, 3035, 3036, 3037, 3038, 3039, 3041, 3046, 3066, + 3076, 3085, 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3093, + 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, 3103, + 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3113, + 3114, 3115, 3116, 3117, 3118, 3119, 3120, 3121, 3122, 3123, + 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3132, 3133, 3134, + 3135, 3137, 3152, 3158, 3164, 3170, 3176, 3189, 3247, 3356, + 3363, 3370, 3377, 3401 }; #endif @@ -2577,11 +2417,11 @@ static const yytype_uint16 yyrline[] = static const char *const yytname[] = { "$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\"", + "T_STRING", "T_REGEXP", "T_EMPTY", "T_INT", "T_UINT", "T_FLOAT", + "\"for\"", "\"while\"", "\"do\"", "\"switch\"", "\"implements\"", + "\"namespace\"", "\"package\"", "\"protected\"", "\"public\"", + "\"private\"", "\"use\"", "\"internal\"", "\"new\"", "\"native\"", + "\"function\"", "\"finally\"", "\"undefined\"", "\"NaN\"", "\"continue\"", "\"class\"", "\"const\"", "\"catch\"", "\"case\"", "\"set\"", "\"void\"", "\"throw\"", "\"static\"", "\"with\"", "\"instanceof\"", "\"import\"", "\"return\"", "\"typeof\"", @@ -2591,39 +2431,40 @@ static const char *const yytname[] = "\"int\"", "\"Number\"", "\"String\"", "\"default\"", "\"delete\"", "\"if\"", "\"else\"", "\"break\"", "\"is\"", "\"in\"", "\"as\"", "\"{ (dictionary)\"", "\"==\"", "\"===\"", "\"!=\"", "\"!==\"", "\"<=\"", - "\">=\"", "\"|=\"", "\"/=\"", "\"%=\"", "\"*=\"", "\"+=\"", "\"-=\"", - "\"^=\"", "\">>=\"", "\"<<=\"", "\">>>=\"", "\"||\"", "\"&&\"", "\"::\"", - "\"--\"", "\"++\"", "\"..\"", "\"...\"", "\"<<\"", "\">>>\"", "\">>\"", - "prec_none", "below_semicolon", "';'", "','", "below_assignment", "'='", - "\"&=\"", "'?'", "':'", "'|'", "'^'", "'&'", "'<'", "'>'", "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", - "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_HEAD", - "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", "$@12", "SLOT_LIST", - "ONE_SLOT", "MAYBESTATICCONSTANT", "STATICCONSTANT", "MAYBE_PARAM_LIST", - "PARAM_LIST", "PARAM", "GETSET", "FUNCTION_DECLARATION", "$@13", - "MAYBE_IDENTIFIER", "INNERFUNCTION", "$@14", "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_ID", "NAMESPACE_DECLARATION", "USE_NAMESPACE", 0 + "\">=\"", "\"|=\"", "\"/=\"", "\"%=\"", "\"*=\"", "\"&=\"", "\"+=\"", + "\"-=\"", "\"^=\"", "\">>=\"", "\"<<=\"", "\">>>=\"", "\"||\"", "\"&&\"", + "\"::\"", "\"--\"", "\"++\"", "\"..\"", "\"...\"", "\"<<\"", "\">>>\"", + "\">>\"", "prec_none", "below_semicolon", "';'", "','", + "below_assignment", "'='", "'?'", "':'", "'|'", "'^'", "'&'", "'<'", + "'>'", "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", "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_HEAD", "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", "$@12", "SLOT_LIST", "ONE_SLOT", "MAYBECONSTANT", + "CONSTANT", "MAYBE_PARAM_LIST", "PARAM_LIST", "PARAM", "GETSET", + "FUNCTION_DECLARATION", "$@13", "MAYBE_IDENTIFIER", "INNERFUNCTION", + "$@14", "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", + "COMMA_EXPRESSION", "VOIDEXPRESSION", "MAYBE_EXPRPAIR_LIST", + "EXPRPAIR_LIST", "E", "MEMBER", "VAR_READ", "NAMESPACE_ID", + "NAMESPACE_DECLARATION", "USE_NAMESPACE", 0 }; #endif @@ -2642,47 +2483,47 @@ static const yytype_uint16 yytoknum[] = 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, 351, 352, 353, 59, - 44, 354, 61, 355, 63, 58, 124, 94, 38, 60, - 62, 356, 45, 43, 47, 42, 37, 126, 33, 357, - 358, 359, 40, 360, 91, 93, 123, 46, 64, 361, - 362, 363, 125, 41 + 44, 354, 61, 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, 134, 135, 136, 136, 137, 137, 138, 138, 138, - 138, 138, 138, 138, 138, 139, 139, 140, 140, 141, - 141, 141, 141, 141, 141, 141, 142, 142, 143, 143, - 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, - 144, 144, 144, 144, 145, 145, 145, 145, 145, 145, - 145, 145, 146, 146, 147, 148, 149, 149, 150, 150, - 151, 151, 152, 153, 153, 155, 154, 156, 156, 156, - 157, 157, 158, 158, 159, 160, 162, 161, 164, 163, - 165, 165, 166, 166, 167, 167, 167, 167, 168, 168, - 169, 170, 172, 171, 174, 173, 176, 175, 177, 177, - 178, 178, 178, 180, 179, 181, 181, 182, 183, 184, - 184, 184, 185, 185, 187, 186, 188, 186, 189, 189, - 190, 190, 191, 191, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 193, 193, 194, 194, 195, 195, - 197, 196, 199, 198, 200, 200, 201, 201, 202, 202, - 202, 202, 202, 203, 203, 204, 204, 205, 205, 205, - 206, 206, 208, 207, 209, 209, 210, 211, 211, 212, - 212, 212, 212, 212, 212, 212, 212, 212, 213, 213, - 213, 213, 214, 214, 215, 215, 216, 216, 216, 218, - 217, 219, 219, 221, 220, 222, 223, 224, 224, 225, - 225, 226, 226, 226, 227, 227, 228, 228, 229, 229, - 229, 230, 231, 230, 232, 233, 234, 234, 235, 236, - 236, 237, 238, 238, 239, 240, 240, 240, 240, 240, - 240, 240, 241, 241, 241, 241, 241, 241, 241, 241, - 241, 241, 240, 240, 240, 240, 240, 240, 240, 240, - 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, - 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, - 240, 240, 240, 240, 240, 240, 242, 242, 243, 243, - 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, - 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, - 240, 240, 240, 240, 244, 245, 245, 245, 246, 247 + 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, 143, 143, 143, 144, 144, 144, 144, 144, 144, + 144, 144, 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, 183, + 183, 183, 184, 184, 186, 185, 187, 185, 188, 188, + 189, 189, 190, 190, 191, 191, 191, 191, 191, 191, + 191, 191, 191, 191, 192, 192, 193, 193, 194, 194, + 196, 195, 198, 197, 199, 199, 200, 200, 201, 201, + 201, 201, 201, 202, 202, 203, 203, 204, 204, 204, + 205, 205, 207, 206, 208, 208, 209, 210, 210, 211, + 211, 211, 211, 211, 211, 211, 211, 211, 212, 212, + 212, 212, 213, 213, 214, 214, 215, 215, 215, 217, + 216, 218, 218, 220, 219, 221, 222, 223, 223, 224, + 224, 225, 225, 225, 226, 226, 227, 227, 228, 228, + 228, 229, 230, 229, 231, 232, 233, 233, 234, 235, + 235, 236, 237, 238, 238, 239, 239, 240, 240, 241, + 241, 242, 242, 242, 242, 242, 242, 242, 242, 242, + 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, + 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, + 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, + 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, + 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, + 242, 242, 242, 242, 242, 242, 242, 243, 244, 245, + 245, 245, 246, 247 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -2710,15 +2551,15 @@ static const yytype_uint8 yyr2[] = 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, 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, 4, - 2, 1, 3, 2, 4, 3, 0, 1, 3, 5, + 2, 1, 1, 1, 3, 1, 3, 0, 1, 3, + 5, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 5, 2, 2, 2, 2, 3, 2, 4, - 5, 3, 5, 3, 1, 2, 4, 4, 2, 3 + 3, 2, 2, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 4, 2, + 1, 3, 2, 4, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 5, 2, 2, 2, + 2, 3, 2, 4, 5, 3, 5, 3, 1, 2, + 4, 4, 2, 3 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -2726,153 +2567,151 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint16 yydefact[] = { - 120, 304, 133, 237, 231, 234, 235, 232, 233, 236, - 0, 0, 78, 0, 0, 126, 124, 125, 0, 132, - 0, 131, 192, 238, 271, 127, 0, 0, 0, 241, - 128, 130, 129, 0, 0, 240, 239, 0, 0, 276, - 0, 0, 14, 0, 0, 0, 0, 208, 120, 0, - 0, 2, 120, 5, 54, 12, 0, 36, 67, 31, - 32, 33, 34, 35, 38, 120, 37, 7, 30, 0, - 121, 122, 9, 8, 11, 10, 225, 228, 230, 229, - 224, 39, 222, 226, 227, 41, 40, 0, 0, 72, - 76, 120, 92, 109, 111, 110, 116, 113, 0, 0, - 304, 214, 191, 0, 270, 0, 0, 118, 0, 103, - 208, 0, 218, 65, 0, 221, 0, 277, 296, 295, - 273, 253, 252, 0, 0, 209, 210, 211, 82, 0, + 120, 298, 133, 172, 238, 169, 170, 171, 0, 0, + 78, 0, 0, 126, 124, 125, 0, 132, 0, 131, + 192, 176, 177, 270, 127, 0, 0, 0, 175, 128, + 130, 129, 0, 0, 174, 173, 0, 0, 227, 0, + 0, 14, 0, 0, 0, 0, 208, 120, 0, 0, + 2, 120, 5, 54, 12, 0, 36, 67, 31, 32, + 33, 34, 35, 38, 120, 37, 7, 30, 0, 121, + 122, 9, 8, 11, 237, 10, 231, 234, 236, 235, + 39, 225, 233, 232, 41, 40, 0, 0, 72, 76, + 120, 92, 109, 111, 110, 116, 113, 0, 0, 298, + 214, 191, 0, 269, 0, 0, 118, 0, 103, 208, + 0, 218, 65, 0, 0, 228, 221, 290, 289, 272, + 252, 251, 0, 223, 0, 209, 210, 211, 82, 0, 106, 219, 0, 80, 44, 43, 120, 45, 29, 0, - 46, 47, 48, 50, 0, 49, 298, 1, 6, 120, - 304, 0, 68, 0, 0, 69, 53, 108, 0, 188, - 0, 161, 0, 160, 162, 308, 123, 0, 0, 0, + 46, 47, 48, 50, 0, 49, 292, 1, 6, 120, + 298, 0, 68, 0, 0, 69, 53, 108, 0, 188, + 0, 161, 0, 160, 162, 302, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 294, 293, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 208, 0, - 0, 55, 73, 0, 0, 0, 120, 114, 0, 195, - 0, 198, 197, 309, 206, 178, 0, 0, 0, 27, - 0, 297, 0, 0, 280, 0, 272, 275, 212, 213, - 83, 205, 59, 60, 105, 220, 58, 81, 42, 28, - 120, 0, 205, 0, 0, 52, 305, 187, 186, 0, - 134, 136, 0, 223, 267, 268, 265, 266, 246, 247, - 249, 248, 244, 245, 287, 286, 282, 281, 289, 290, - 288, 284, 283, 285, 250, 251, 301, 259, 258, 257, - 291, 0, 256, 255, 254, 242, 243, 263, 262, 260, - 264, 261, 0, 0, 303, 0, 0, 0, 0, 0, - 25, 0, 120, 17, 23, 0, 20, 19, 22, 21, - 120, 112, 0, 208, 215, 167, 0, 0, 179, 183, - 107, 119, 196, 269, 0, 26, 217, 0, 278, 0, - 0, 57, 0, 120, 13, 57, 0, 0, 0, 0, - 0, 138, 0, 0, 205, 163, 164, 0, 216, 274, - 0, 0, 299, 120, 0, 0, 117, 18, 120, 0, - 0, 0, 0, 185, 180, 205, 0, 0, 120, 0, - 203, 202, 201, 204, 0, 62, 61, 51, 0, 120, - 306, 307, 178, 135, 0, 0, 199, 137, 142, 57, - 0, 292, 300, 302, 77, 0, 84, 0, 115, 207, - 177, 173, 170, 171, 169, 172, 176, 175, 174, 168, - 167, 0, 0, 182, 0, 0, 98, 102, 100, 104, - 63, 279, 56, 0, 75, 0, 139, 140, 0, 120, - 166, 165, 79, 0, 0, 0, 85, 88, 86, 24, - 184, 193, 181, 96, 0, 99, 101, 120, 66, 120, - 205, 120, 200, 0, 157, 0, 0, 120, 155, 0, - 27, 93, 89, 87, 27, 27, 205, 64, 74, 0, - 148, 152, 0, 0, 0, 120, 146, 150, 151, 158, - 188, 143, 156, 27, 91, 0, 0, 0, 189, 120, - 141, 147, 0, 90, 194, 97, 94, 27, 0, 0, - 0, 0, 149, 178, 27, 190, 0, 0, 205, 95, - 159 + 0, 288, 287, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, + 0, 0, 55, 73, 0, 0, 0, 120, 114, 0, + 195, 0, 198, 197, 303, 206, 178, 0, 222, 0, + 0, 27, 0, 291, 0, 0, 240, 0, 0, 271, + 239, 212, 213, 83, 205, 59, 60, 105, 220, 58, + 81, 42, 28, 120, 0, 205, 0, 0, 52, 299, + 187, 186, 0, 134, 136, 0, 226, 266, 267, 264, + 265, 245, 246, 248, 247, 243, 244, 280, 279, 275, + 274, 282, 283, 284, 281, 277, 276, 278, 249, 250, + 295, 258, 257, 256, 285, 0, 255, 254, 253, 241, + 242, 262, 261, 259, 263, 260, 0, 0, 297, 0, + 0, 0, 0, 0, 25, 0, 120, 17, 23, 0, + 20, 19, 22, 21, 120, 112, 0, 208, 215, 167, + 0, 0, 179, 183, 107, 119, 196, 268, 0, 26, + 217, 0, 229, 0, 224, 0, 57, 0, 120, 13, + 57, 0, 0, 0, 0, 0, 138, 0, 0, 205, + 163, 164, 0, 216, 273, 0, 0, 293, 120, 0, + 0, 117, 18, 120, 0, 0, 0, 0, 185, 180, + 205, 0, 0, 120, 0, 203, 202, 201, 204, 0, + 62, 61, 51, 0, 120, 300, 301, 178, 135, 0, + 0, 199, 137, 142, 57, 0, 286, 294, 296, 77, + 0, 84, 0, 115, 207, 168, 167, 0, 0, 182, + 0, 0, 98, 102, 100, 104, 63, 230, 56, 0, + 75, 0, 139, 140, 0, 120, 166, 165, 79, 0, + 0, 0, 85, 88, 86, 24, 184, 193, 181, 96, + 0, 99, 101, 120, 66, 120, 205, 120, 200, 0, + 157, 0, 0, 120, 155, 0, 27, 93, 89, 87, + 27, 27, 205, 64, 74, 0, 148, 152, 0, 0, + 0, 120, 146, 150, 151, 158, 188, 143, 156, 27, + 91, 0, 0, 0, 189, 120, 141, 147, 0, 90, + 194, 97, 94, 27, 0, 0, 0, 0, 149, 178, + 27, 190, 0, 0, 205, 95, 159 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 50, 51, 52, 53, 311, 312, 313, 334, 335, - 137, 138, 157, 314, 139, 385, 140, 246, 243, 458, - 57, 232, 153, 154, 58, 59, 60, 61, 213, 62, - 91, 141, 142, 445, 446, 447, 448, 63, 215, 426, - 510, 427, 475, 428, 429, 64, 229, 143, 65, 66, - 219, 220, 67, 320, 216, 68, 144, 70, 71, 351, - 353, 395, 316, 461, 317, 439, 484, 485, 486, 466, - 467, 468, 164, 318, 262, 355, 356, 373, 419, 327, - 328, 329, 259, 319, 507, 103, 76, 474, 221, 222, - 382, 397, 383, 341, 324, 124, 125, 126, 224, 77, - 78, 79, 145, 127, 80, 81, 82, 83, 116, 117, - 84, 165, 85, 86 + -1, 49, 50, 51, 52, 315, 316, 317, 338, 339, + 137, 138, 157, 318, 139, 390, 140, 249, 246, 454, + 56, 234, 153, 154, 57, 58, 59, 60, 214, 61, + 90, 141, 142, 441, 442, 443, 444, 62, 216, 422, + 506, 423, 471, 424, 425, 63, 231, 143, 64, 65, + 220, 221, 66, 324, 217, 67, 144, 69, 70, 356, + 358, 400, 320, 457, 321, 435, 480, 481, 482, 462, + 463, 464, 164, 322, 265, 360, 361, 378, 74, 331, + 332, 333, 262, 323, 503, 102, 76, 470, 222, 223, + 387, 402, 388, 346, 328, 124, 125, 126, 225, 77, + 78, 79, 145, 127, 227, 228, 80, 114, 115, 81, + 82, 83, 165, 84, 85 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -403 +#define YYPACT_NINF -406 static const yytype_int16 yypact[] = { - 1674, -70, -403, -403, -403, -403, -403, -403, -403, -403, - -15, -72, -403, -52, 19, -403, -403, -403, 80, -403, - 2094, -403, 99, -403, 2164, -403, -16, 42, -5, -403, - -403, -403, -403, -1, 5, -403, -403, 2094, 13, 2094, - 2094, 2094, -403, 2094, 2094, 2094, 2094, 2094, 634, 123, - 128, -403, 504, -403, -403, -403, 8, -403, 2024, -403, - -403, -403, -403, -403, -403, 1926, -403, -403, -403, 240, - 361, -403, -403, -403, -403, -403, -403, -403, -403, -403, - 38, -403, 2569, -403, -403, -403, -403, 137, 20, -403, - -403, 1926, -403, -403, -403, -403, -403, -403, -87, 42, - -403, -67, -403, 21, -48, 2094, 79, -403, 2094, -403, - 2094, 138, -48, -403, 43, 2569, 76, 107, -48, -48, - 604, -48, -48, -29, 84, 110, 2094, -403, 210, 211, - 2094, 2094, 211, 212, -403, -403, 764, -403, -403, 85, - -403, -403, -403, -403, 209, -403, -403, -403, -403, 1024, - 158, 232, -403, 139, 171, -403, 141, -403, 238, 12, - 239, -403, 247, -403, -403, -403, -403, 2094, 2094, 2094, - 2094, 2094, 2094, 2094, 2094, 2094, 2094, 2094, 2094, 2094, - 2094, 2094, 2094, 2094, 2094, 2094, 2094, 2094, 2094, 2094, - -403, -403, 249, 2094, 2094, 2094, 2094, 2094, 2094, 2094, - 2094, 2094, 2094, 2094, 2094, 2094, 2094, 2094, 2094, 2094, - 11, -403, -403, 2094, 229, 2094, 1154, -403, 42, 133, - 135, -403, -403, -403, 142, 15, -10, 90, 2189, 1800, - 130, -403, 2094, 2094, -403, 2094, -403, -403, -403, -403, - -403, 161, 169, -403, 38, 38, 169, -403, -403, -403, - 1926, 149, 161, 2094, 2094, -403, 168, -403, -403, 280, - 231, 233, 286, 2569, 1016, 496, 496, 496, 322, 322, - 322, 322, 1016, 1016, 2569, 2569, 2569, 2569, 2569, 2569, - 2569, 2569, 2569, 2569, 2630, 2691, -403, 368, 368, 368, - 2569, 2386, 2752, 2813, 2874, 1016, 1016, 604, 604, -48, - -48, -48, 157, 2447, 202, 2094, 291, 14, 173, 2260, - -403, 165, 1284, -403, -403, 172, -403, -403, -403, -403, - 1154, -403, 42, 2094, -403, -43, 296, 167, 201, -403, - -403, -403, 175, -403, 174, 1800, -403, 44, -403, 200, - 63, 207, 211, 894, -403, -27, -11, 46, 113, 189, - 42, 298, 42, 190, 161, 217, -403, 2094, -403, -403, - 315, 2323, -403, 1926, 2094, 193, -403, -403, 1154, 192, - 194, 75, 63, -403, -403, 161, 26, 96, 1926, 2094, - -403, -403, -403, -403, 2094, -403, -403, -403, 2094, 1926, - -403, -403, 15, -403, 42, 199, -403, 230, -403, 207, - 286, 2569, -403, -403, -403, 103, 24, 197, -403, -403, - -403, -403, -403, -403, -403, -403, -403, -403, -403, -403, - 234, 205, 296, -403, 206, 213, -403, -403, 96, -403, - 268, -403, -403, 204, -403, 215, 230, -403, 42, 208, - -403, -403, -403, 2094, 236, 214, 24, -403, -403, -403, - -403, -403, -403, -403, 335, -403, -403, 1926, -403, 1926, - 161, 1414, -403, 339, -403, 316, 219, 227, -403, 2508, - 1800, -403, -403, -403, 1800, 1800, 161, -403, -403, 223, - -403, -403, 226, 250, 221, 1544, -403, -403, -403, -403, - 12, -403, -403, 1800, -403, 222, 224, 225, -403, 1414, - -403, -403, 354, -403, -403, -403, -403, 1800, 228, 241, - 235, 243, -403, 15, 1800, -403, 244, 246, 161, -403, - -403 + 1661, -65, -406, -406, -406, -406, -406, -406, -10, -85, + -406, -59, 54, -406, -406, -406, 66, -406, 2104, -406, + 101, -406, -406, 2159, -406, -9, 89, -6, -406, -406, + -406, -406, -3, -51, -406, -406, 2104, 7, 2104, 2104, + 2104, -406, 2104, 2104, 2104, 2104, 2104, 629, 120, 130, + -406, 500, -406, -406, -406, -1, -406, 2034, -406, -406, + -406, -406, -406, -406, 1911, -406, -406, -406, 244, 364, + -406, -406, -406, -406, -406, -406, -406, -406, -406, -406, + 31, 2613, -406, -406, -406, -406, 129, 12, -406, -406, + 1911, -406, -406, -406, -406, -406, -406, -81, 89, -406, + -54, -406, 18, 119, 2104, 8, -406, 2104, -406, 2104, + 132, 119, -406, 36, 5, 43, 2613, 119, 119, 595, + 119, 119, -53, 2613, 21, 46, 2104, -406, 144, 145, + 2104, 2104, 145, 177, -406, -406, 758, -406, -406, 77, + -406, -406, -406, -406, 188, -406, -406, -406, -406, 1016, + 140, 209, -406, 115, 148, 31, 117, -406, 217, 14, + 223, -406, 224, -406, -406, -406, -406, 2104, 2104, 2104, + 2104, 2104, 2104, 2104, 2104, 2104, 2104, 2104, 2104, 2104, + 2104, 2104, 2104, 2104, 2104, 2104, 2104, 2104, 2104, 2104, + 2104, -406, -406, 227, 2104, 2104, 2104, 2104, 2104, 2104, + 2104, 2104, 2104, 2104, 2104, 2104, 2104, 2104, 2104, 2104, + 2104, 17, -406, -406, 2104, 219, 2104, 1145, -406, 89, + 107, 108, -406, -406, -406, 118, 15, 104, 141, 64, + 2217, 1786, 116, -406, 2104, 2104, -406, 2104, 2104, -406, + -406, -406, -406, -406, 143, 156, -406, -406, -406, 156, + -406, -406, -406, 1911, 126, 143, 2104, 2104, -406, 157, + -406, -406, 255, 208, 211, 259, 2613, 492, 328, 328, + 328, 2979, 2979, 2979, 2979, 492, 492, 2613, 2613, 2613, + 2613, 2613, 2613, 2613, 2613, 2613, 2613, 2613, 2674, 2735, + -406, 354, 354, 354, 2613, 2430, 2796, 2857, 2918, 492, + 492, 595, 595, 119, 119, 119, 135, 2491, 181, 2104, + 269, 149, 152, 2288, -406, 151, 1274, -406, -406, 155, + -406, -406, -406, -406, 1145, -406, 89, 2104, -406, -19, + 281, 154, 191, -406, -406, -406, 162, -406, 163, 1786, + -406, 161, -406, 193, 2613, 86, 196, 145, 887, -406, + -24, 200, 169, 124, 174, 89, 287, 89, 178, 143, + 213, -406, 2104, -406, -406, 306, 2359, -406, 1911, 2104, + 190, -406, -406, 1145, 189, 187, 32, 86, -406, -406, + 143, 16, 94, 1911, 2104, -406, -406, -406, -406, 2104, + -406, -406, -406, 2104, 1911, -406, -406, 15, -406, 89, + 197, -406, 228, -406, 196, 259, 2613, -406, -406, -406, + 204, 13, 198, -406, -406, -406, 235, 214, 281, -406, + 215, 220, -406, -406, 94, -406, 257, -406, -406, -37, + -406, 212, 228, -406, 89, 231, -406, -406, -406, 2104, + 239, 222, 13, -406, -406, -406, -406, -406, -406, -406, + 342, -406, -406, 1911, -406, 1911, 143, 1403, -406, 343, + -406, 323, 226, 286, -406, 2552, 1786, -406, -406, -406, + 1786, 1786, 143, -406, -406, 225, -406, -406, 229, 221, + 230, 1532, -406, -406, -406, -406, 14, -406, -406, 1786, + -406, 232, 233, 234, -406, 1403, -406, -406, 348, -406, + -406, -406, -406, 1786, 238, 237, 240, 246, -406, 15, + 1786, -406, 247, 249, 143, -406, -406 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -403, -403, 218, -403, 312, -299, -403, 61, -402, -31, - 1, -55, -85, 48, 2, -23, 321, 251, 58, -403, - -403, -403, -403, -403, -403, -403, -403, -403, -403, -403, - -403, -403, -403, -403, -403, -62, -60, -403, -403, -40, - -403, -36, -403, -403, -403, -403, -403, -403, -403, -403, - 6, 50, -403, -403, -403, -403, 0, -403, 331, -403, - -403, -403, 49, -403, 51, -403, -96, -403, -80, -403, - -403, -61, -403, 3, -403, -403, 7, 9, -403, -376, - -403, -311, -79, 4, -403, -403, -403, -403, -403, 388, - -91, 25, 52, -239, -403, -98, -403, -403, -403, -403, - -403, -403, -403, -34, -9, -49, -13, -403, -403, -403, - -403, -403, -403, -403 + -406, -406, 203, -406, 308, -296, -406, 62, -405, -30, + 1, -56, -83, 49, 2, -23, 330, 260, 44, -406, + -406, -406, -406, -406, -406, -406, -406, -406, -406, -406, + -406, -406, -406, -406, -406, -52, -50, -406, -406, -31, + -406, -26, -406, -406, -406, -406, -406, -406, -406, -406, + 9, 76, -406, -406, -406, -406, 0, -406, 331, -406, + -406, -406, 50, -406, 56, -406, -91, -406, -76, -406, + -406, -57, -406, 3, -406, -406, 10, -8, 33, -384, + -406, -308, -79, 4, -406, -406, -406, -406, -406, 387, + -92, 22, 37, -243, -406, -95, -406, -406, -406, -406, + -406, -406, -406, -29, -115, 371, -46, -406, -406, -13, + -406, -406, -406, -406, -406 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -2882,612 +2721,632 @@ static const yytype_int16 yypgoto[] = #define YYTABLE_NINF -155 static const yytype_int16 yytable[] = { - 69, 54, 56, 74, 75, 114, 214, 101, 223, 155, - 156, 104, 230, 345, 304, 374, 435, 136, 325, 87, - 97, 369, 93, 94, 112, 192, 115, 118, 119, 325, - 120, 121, 122, 97, 115, 88, 156, 123, 95, 217, - 218, -70, 190, 191, 192, 93, 94, 257, 55, 72, - 90, 73, 69, 54, 56, 74, 75, 209, 443, 371, - 210, 95, 372, 258, 98, 423, 93, 94, 494, 407, - 92, 167, 495, 496, 208, 384, 209, 106, 410, 210, - 411, 249, 95, 412, 413, 414, 444, 415, 388, 167, - 167, 503, 239, 93, 94, 228, 226, 115, 99, 380, - 55, 72, 102, 73, 236, 511, 105, 89, 326, 95, - 302, 452, 517, 115, 167, 399, 390, 108, 391, 422, - 416, 244, 245, 330, 424, 109, 146, 110, 147, 425, - 417, 418, 111, 305, 149, 113, 421, 516, 167, 306, - 211, 231, 212, 225, 167, 96, 167, 363, 233, 69, - 54, 56, 74, 75, 263, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 378, 381, 389, - 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 115, 303, 55, 72, 338, - 73, 339, 309, 167, 307, 331, 227, 235, 234, 237, - 238, 250, 2, 240, 241, 247, 69, 54, 315, 343, - 115, 479, 115, 337, 321, 370, -71, 158, 15, 16, - 17, 2, 19, 332, 21, 252, 442, 497, 253, 254, - 255, 256, 260, 308, 346, 347, 25, 15, 16, 17, - 261, 19, 286, 21, 463, 30, 31, 32, 158, 393, - -113, 396, 322, 336, 323, 25, 340, 159, 158, 342, - 348, 160, 161, 463, 30, 31, 32, 159, 404, 520, - 249, 344, 161, 349, 162, 350, 163, 352, 249, 354, - 358, 360, 361, 430, 362, 364, 163, 366, 368, 325, - 375, 376, -112, 396, 434, 379, 377, 464, 156, 384, - 115, 392, 69, 54, 315, 394, 398, 400, 402, 406, - 69, 54, 315, 156, 408, 437, 464, 409, 332, 449, - 438, 451, 453, 457, 156, 454, 371, 459, 476, 433, - -153, 470, 489, 490, 401, 431, 471, 462, 460, 498, - 432, 491, 499, 500, 504, 405, 505, 509, 506, -154, - 512, 514, 168, 513, 148, 2, 115, 251, 69, 54, - 315, 115, 477, 367, 478, 515, 440, 518, 519, 152, - 242, 15, 16, 17, 472, 19, 473, 21, 455, 169, - 170, 171, 456, -155, -155, -155, -155, 176, 177, 25, - 386, 166, 156, 508, 156, 501, 492, 441, 30, 31, - 32, 502, 190, 191, 192, 107, 193, 194, 195, 436, - 0, 0, 0, 0, 420, 0, 0, 0, 0, 450, - 469, 201, 202, 0, 203, 204, 205, 206, 207, 465, - 0, 0, 0, 0, 208, 0, 209, 0, 0, 210, - 0, 0, 0, 0, 0, 0, 0, 0, 190, 191, - 192, 483, 481, 482, 487, 488, 0, 465, 0, 0, + 68, 53, 55, 73, 75, 100, 224, 215, 156, 113, + 103, 155, 350, 431, 232, 247, 248, 136, 329, 329, + 308, 96, 379, 111, 86, 116, 117, 118, 374, 119, + 120, 121, 123, 116, 156, 96, 89, 3, 193, 87, + 5, 6, 7, -70, 218, 219, 439, 238, 260, 54, + 71, 68, 53, 55, 73, 75, 72, 92, 93, 21, + 22, 490, 91, 167, 261, 491, 492, 92, 93, 210, + 109, 94, 211, 419, 440, 110, 28, 412, 389, 239, + 252, 94, 98, 376, 499, 377, 34, 35, 97, 92, + 93, 123, 92, 93, 230, 455, 116, 242, 507, 311, + 54, 71, 105, 94, 101, 513, 94, 72, 330, 418, + 448, 88, 104, 116, 306, 107, 404, 123, 123, 341, + 420, 385, 108, 146, 149, 512, 421, 395, 112, 396, + 147, 167, 212, 213, 229, 233, 236, 417, 309, 226, + 235, 351, 352, 237, 310, 240, 241, 243, 244, 68, + 53, 55, 73, 75, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 335, 95, + 250, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 116, 307, 54, 71, + 386, 123, 253, 313, 158, 72, 342, -71, 343, 191, + 192, 193, 255, 475, 256, 257, 258, 68, 53, 319, + 259, 123, 116, 348, 116, 344, 263, 264, 325, 493, + 290, 312, 375, -113, 326, 2, 334, 158, 336, 327, + 209, 238, 210, 123, 123, 211, 159, 345, 340, 13, + 14, 15, 161, 17, 410, 19, 347, 349, 354, 353, + 158, 355, 359, 398, 357, 401, 163, 363, 24, 159, + 365, 516, 367, 369, 160, 161, 459, 29, 30, 31, + 373, 368, 371, 252, 329, 409, 380, 162, -112, 163, + 2, 381, 252, 383, 382, 397, 366, 384, 389, 393, + 426, 394, 399, 403, 13, 14, 15, 401, 17, 407, + 19, 430, 156, 405, 116, 411, 68, 53, 319, 414, + 413, 453, 433, 24, 68, 53, 319, 156, 434, 445, + 460, 459, 29, 30, 31, 336, 438, 376, 156, 447, + 449, 450, 458, 466, 456, 472, 485, 429, 486, 406, + 494, 505, 254, 467, 495, 427, 123, 487, 509, 148, + 428, 496, -153, 500, 501, 510, 502, 168, 2, 508, + 473, 116, 474, 68, 53, 319, 116, 511, 372, 514, + 515, 436, 13, 14, 15, 460, 17, 152, 19, 245, + 468, 391, 469, 451, -155, -155, -155, 156, 452, 156, + 166, 24, 176, 177, 504, 497, 488, 498, 446, 415, + 29, 30, 31, 106, 416, 437, 122, -154, 191, 192, + 193, 432, 194, 195, 196, 0, 465, 0, 0, 0, + 0, 0, 0, 0, 0, 461, 202, 203, 0, 204, + 205, 206, 207, 208, 191, 192, 193, 0, 0, 209, + 0, 210, 0, 0, 211, 0, 0, 479, 477, 478, + 483, 484, 0, 461, 0, 204, 205, 206, 207, 208, + 0, 0, 0, 0, 0, 209, 0, 210, 0, 0, + 211, 479, 477, 478, 483, 484, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 479, 477, 478, 483, 484, + -4, 0, 0, 1, 2, 3, 4, 0, 5, 6, + 7, 8, 9, 10, 11, 0, 0, 12, 13, 14, + 15, 16, 17, 18, 19, 0, 0, 21, 22, 0, + 0, -155, 0, 0, 0, 23, 0, 24, 25, 0, + 26, 0, 27, 0, 28, 0, 29, 30, 31, 0, + 0, 32, 33, 0, 34, 35, 0, 0, 0, 0, + 0, 0, 36, 37, 0, 0, -155, -155, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 203, 204, 205, 206, 207, 483, 481, 482, 487, 488, - 208, 0, 209, 0, 0, 210, 0, 0, 0, 483, - 481, 482, 487, 488, -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, 168, 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, -155, -155, -155, 0, 37, 38, 0, - 0, 176, 177, 0, 39, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 190, 191, 192, 0, - 193, 194, 195, 0, 40, 41, 0, 0, 0, 0, - 0, 0, 0, 42, 0, 201, 202, 0, 203, 204, - 205, 206, 207, 0, 0, 0, 43, 0, 208, 0, - 209, 44, 45, 210, 0, 0, 46, 0, 47, 0, - 48, 0, 49, 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, 128, 0, 129, 0, 0, 0, - 24, 130, 25, 26, 0, 27, 131, 28, 0, 29, - 132, 30, 31, 32, 0, 0, 33, 34, 0, 35, - 36, 0, 0, 0, 190, 191, 192, 37, 38, 0, - 133, 0, 0, 0, 39, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 205, 206, - 207, 0, 0, 0, 40, 41, 208, 0, 209, 0, - 0, 210, 0, 134, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, - 0, 44, 45, 0, 0, 0, 46, 0, 47, 0, - 48, 0, 49, 0, 0, 0, 135, 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, 128, 0, 129, 0, 0, 0, - 24, 130, 25, 26, 0, 27, 131, 28, 0, 29, - 132, 30, 31, 32, 0, 0, 33, 34, 0, 35, - 36, 0, 0, 0, 0, 0, 0, 37, 38, 0, - 133, 0, 0, 0, 39, 0, 0, 0, 0, 0, + 0, 0, 191, 192, 193, 0, 194, 195, 196, 0, + 39, 40, 0, 0, 0, 0, 0, 0, 0, 41, + -155, -155, 0, 204, 205, 206, 207, 208, 0, 0, + 0, 42, 0, 209, 0, 210, 43, 44, 211, 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, 0, 0, 0, 13, 14, 15, + 16, 17, 18, 19, 20, 0, 21, 22, 128, 0, + 129, 0, 0, 0, 23, 130, 24, 25, 0, 26, + 131, 27, 0, 28, 132, 29, 30, 31, 0, 0, + 32, 33, 0, 34, 35, 191, 192, 193, 0, 0, + 0, 36, 37, 0, 133, 0, 0, 0, 38, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 206, 207, + 208, 0, 0, 0, 0, 0, 209, 0, 210, 39, + 40, 211, 0, 0, 0, 0, 0, 0, 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 40, 41, 0, 0, 0, 0, - 0, 0, 0, 134, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, - 0, 44, 45, 0, 0, 0, 46, 0, 47, 0, - 48, 0, 49, 0, 0, 0, 248, 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, 128, 0, 129, 0, 0, 0, - 24, 130, 25, 26, 0, 27, 131, 28, 0, 29, - 132, 30, 31, 32, 0, 0, 33, 34, 0, 35, - 36, 0, 0, 0, 0, 0, 0, 37, 38, 0, - 133, 0, 0, 0, 39, 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, + 135, 1, 2, 3, 4, 0, 5, 6, 7, 8, + 9, 10, 11, 0, 0, 0, 13, 14, 15, 16, + 17, 18, 19, 20, 0, 21, 22, 128, 0, 129, + 0, 0, 0, 23, 130, 24, 25, 0, 26, 131, + 27, 0, 28, 132, 29, 30, 31, 0, 0, 32, + 33, 0, 34, 35, 0, 0, 0, 0, 0, 0, + 36, 37, 0, 133, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 40, 41, 0, 0, 0, 0, - 0, 0, 0, 134, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, - 0, 44, 45, 0, 0, 0, 46, 0, 47, 0, - 48, 0, 49, 0, 0, 0, 387, 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, -155, 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, -155, -155, 0, 39, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 190, 191, 192, 0, - 193, 194, 195, 0, 40, 41, 0, 0, 0, 0, - 0, 0, 0, 42, 0, -155, -155, 0, 203, 204, - 205, 206, 207, 0, 0, 0, 43, 0, 208, 0, - 209, 44, 45, 210, 0, 0, 46, 0, 47, 0, - 48, 0, 49, 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, 39, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 39, 40, + 0, 0, 0, 0, 0, 0, 0, 134, 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, 251, + 1, 2, 3, 4, 0, 5, 6, 7, 8, 9, + 10, 11, 0, 0, 0, 13, 14, 15, 16, 17, + 18, 19, 20, 0, 21, 22, 128, 0, 129, 0, + 0, 0, 23, 130, 24, 25, 0, 26, 131, 27, + 0, 28, 132, 29, 30, 31, 0, 0, 32, 33, + 0, 34, 35, 0, 0, 0, 0, 0, 0, 36, + 37, 0, 133, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 40, 41, 0, 0, 0, 0, - 0, 0, 0, 310, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, - 0, 44, 45, 0, 0, 0, 46, 0, 47, 0, - 48, 0, 49, 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, 39, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 39, 40, 0, + 0, 0, 0, 0, 0, 0, 134, 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, 392, 1, + 2, 3, 4, 0, 5, 6, 7, 8, 9, 10, + 11, 0, 0, 12, 13, 14, 15, 16, 17, 18, + 19, 0, 0, 21, 22, 0, 0, 0, 0, 0, + 0, 23, 0, 24, 25, 0, 26, 0, 27, 0, + 28, 0, 29, 30, 31, 0, 0, 32, 33, 0, + 34, 35, 0, 0, 0, 0, 0, 0, 36, 37, + 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 40, 41, 0, 0, 0, 0, - 0, 0, 0, 310, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, - 0, 44, 45, 0, 0, 0, 46, 0, 47, 0, - 48, 0, 49, 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, 39, 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, 42, 0, 0, + 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, + 0, 0, 0, 13, 14, 15, 16, 17, 18, 19, + 0, 0, 21, 22, 0, 0, 0, 0, 0, 0, + 23, 0, 24, 25, 0, 26, 0, 27, 0, 28, + 0, 29, 30, 31, 0, 0, 32, 33, 0, 34, + 35, 0, 0, 0, 0, 0, 0, 36, 37, 0, + 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 40, 41, 0, 0, 0, 0, - 0, 0, 0, 480, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, - 0, 44, 45, 0, 0, 0, 46, 0, 47, 0, - 48, 0, 49, 0, 0, 0, -144, 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, 39, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 39, 40, 0, 0, 0, + 0, 0, 0, 0, 314, 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, 0, + 0, 0, 13, 14, 15, 16, 17, 18, 19, 0, + 0, 21, 22, 0, 0, 0, 0, 0, 0, 23, + 0, 24, 25, 0, 26, 0, 27, 0, 28, 0, + 29, 30, 31, 0, 0, 32, 33, 0, 34, 35, + 0, 0, 0, 0, 0, 0, 36, 37, 0, 0, + 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 40, 41, 0, 0, 0, 0, - 0, 0, 0, 480, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, - 0, 44, 45, 0, 0, 0, 46, 0, 47, 0, - 48, 0, 49, 0, -3, 0, -145, 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, 39, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 39, 40, 0, 0, 0, 0, + 0, 0, 0, 314, 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, -16, 1, 2, 3, 4, + 0, 5, 6, 7, 8, 9, 10, 11, 0, 0, + 0, 13, 14, 15, 16, 17, 18, 19, 0, 0, + 21, 22, 0, 0, 0, 0, 0, 0, 23, 0, + 24, 25, 0, 26, 0, 27, 0, 28, 0, 29, + 30, 31, 0, 0, 32, 33, 0, 34, 35, 0, + 0, 0, 0, 0, 0, 36, 37, 0, 0, 0, + 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 40, 41, 0, 0, 0, 0, - 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, - 0, 44, 45, 0, 0, 0, 46, 0, 47, 0, - 48, 0, 49, 1, 2, 3, 4, 0, 5, 6, - 7, 8, 9, 10, 11, 12, 13, 0, -120, 0, - 15, 16, 17, 18, 19, 20, 21, 22, 0, 23, - 128, 0, 129, 0, 0, 0, 24, 130, 25, 26, - 0, 27, 131, 28, 0, 29, 132, 30, 31, 32, - 0, 0, 33, 34, 0, 35, 36, 0, 0, 0, - 0, 0, 0, 37, 38, 0, 133, 0, 0, 0, - 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 39, 40, 0, 0, 0, 0, 0, + 0, 0, 476, 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, -144, 1, 2, 3, 4, 0, + 5, 6, 7, 8, 9, 10, 11, 0, 0, 0, + 13, 14, 15, 16, 17, 18, 19, 0, 0, 21, + 22, 0, 0, 0, 0, 0, 0, 23, 0, 24, + 25, 0, 26, 0, 27, 0, 28, 0, 29, 30, + 31, 0, 0, 32, 33, 0, 34, 35, 0, 0, + 0, 0, 0, 0, 36, 37, 0, 0, 0, 0, + 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 40, 41, 0, 0, 0, 0, 0, 0, 0, 134, + 0, 0, 39, 40, 0, 0, 0, 0, 0, 0, + 0, 476, 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, -145, 1, 2, 3, 4, 0, 5, + 6, 7, 8, 9, 10, 11, 0, 0, 12, 13, + 14, 15, 16, 17, 18, 19, 0, 0, 21, 22, + 0, 0, 0, 0, 0, 0, 23, 0, 24, 25, + 0, 26, 0, 27, 0, 28, 0, 29, 30, 31, + 0, 0, 32, 33, 0, 34, 35, 0, 0, 0, + 0, 0, 0, 36, 37, 0, 0, 0, 0, 0, + 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 43, 0, 0, 0, 0, 44, 45, 0, - 0, 0, 46, 0, 47, 0, 48, 0, 49, 1, + 0, 39, 40, 0, 0, 0, 0, 0, 0, 0, + 41, 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, 0, 0, 15, 16, 17, 18, - 19, 20, 21, 22, 0, 23, 128, 0, 129, 0, - 0, 0, 24, 130, 25, 26, 0, 27, 131, 28, - 0, 29, 132, 30, 31, 32, 0, 0, 33, 34, - 0, 35, 36, 0, 0, 0, 0, 0, 0, 37, - 38, 0, 133, 0, 0, 0, 39, 0, 0, 0, + 11, 0, -120, 0, 13, 14, 15, 16, 17, 18, + 19, 20, 0, 21, 22, 128, 0, 129, 0, 0, + 0, 23, 130, 24, 25, 0, 26, 131, 27, 0, + 28, 132, 29, 30, 31, 0, 0, 32, 33, 0, + 34, 35, 0, 0, 0, 0, 0, 0, 36, 37, + 0, 133, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 40, 41, 0, 0, - 0, 0, 0, 0, 0, 134, 0, 150, 0, 3, - 4, 0, 5, 6, 7, 8, 9, 0, 43, 0, - 0, 0, 0, 44, 45, 0, 0, 0, 46, 20, - 47, 22, 48, 23, 49, 0, 129, 0, 0, 0, - 24, 0, 0, 0, 0, 0, 0, 28, 0, 29, - 151, 0, 0, 0, 0, 0, 0, 34, 0, 35, - 36, 0, 0, 0, 0, 0, 0, 37, 0, 0, - 0, 0, 0, 0, 39, 0, 0, 100, 0, 3, - 4, 0, 5, 6, 7, 8, 9, 0, 0, 0, - 0, 0, 0, 0, 40, 41, 0, 0, 0, 20, - 0, 22, 0, 23, 0, 0, 0, 0, 0, 0, - 24, 0, 0, 0, 0, 0, 43, 28, 0, 29, - 0, 44, 45, 0, 0, 0, 46, 34, 47, 35, - 36, 0, 49, 0, 0, 0, 0, 37, 0, 0, - 0, 0, 0, 0, 39, 0, 0, 100, 0, 3, - 4, 0, 5, 6, 7, 8, 9, 0, 0, 0, - 0, 0, 0, 0, 40, 41, 0, 0, 0, 20, - 0, 22, 0, 23, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 43, 0, 0, 29, - 0, 44, 45, 0, 0, 0, 46, 34, 47, 35, - 36, 0, 49, 0, 0, 0, 0, 0, 0, 168, - 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 39, 40, 0, 0, + 0, 0, 0, 0, 0, 134, 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, 0, 0, 0, 13, + 14, 15, 16, 17, 18, 19, 20, 0, 21, 22, + 128, 0, 129, 0, 0, 0, 23, 130, 24, 25, + 0, 26, 131, 27, 0, 28, 132, 29, 30, 31, + 0, 0, 32, 33, 0, 34, 35, 0, 0, 0, + 0, 0, 0, 36, 37, 0, 133, 0, 0, 0, + 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 40, 41, 169, 170, 171, 0, - 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 189, 0, 190, - 191, 192, 0, 193, 194, 195, 46, 0, 47, 0, - 0, 196, 49, 197, 0, 198, 199, 200, 201, 202, - 168, 203, 204, 205, 206, 207, 0, 0, 0, 0, - 0, 208, 0, 209, 0, 0, 210, 0, 0, 0, - 0, 0, 333, 0, 0, 0, 0, 169, 170, 171, - 0, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 0, - 190, 191, 192, 0, 193, 194, 195, 0, 0, 0, - 0, 0, 196, 168, 197, 0, 198, 199, 200, 201, - 202, 0, 203, 204, 205, 206, 207, 0, 0, 0, - 0, 0, 208, 0, 209, 0, 0, 210, 0, 0, - 169, 170, 171, 365, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 0, 190, 191, 192, 0, 193, 194, 195, - 0, 0, 0, 0, 0, 196, 168, 197, 0, 198, - 199, 200, 201, 202, 0, 203, 204, 205, 206, 207, - 0, 0, 0, 0, 0, 208, 0, 209, 0, 0, - 210, 0, 0, 169, 170, 171, 403, 172, 173, 174, + 0, 39, 40, 0, 0, 0, 0, 0, 0, 0, + 134, 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, 150, 48, 3, + 4, 0, 5, 6, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 18, 0, 20, + 0, 21, 22, 0, 0, 129, 0, 0, 0, 23, + 0, 0, 0, 0, 0, 0, 27, 0, 28, 151, + 0, 0, 0, 0, 0, 0, 33, 0, 34, 35, + 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, + 0, 0, 0, 38, 0, 0, 0, 99, 0, 3, + 4, 0, 5, 6, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 39, 40, 0, 18, 0, 20, + 0, 21, 22, 0, 0, 0, 0, 0, 0, 23, + 0, 0, 0, 0, 0, 42, 27, 0, 28, 0, + 43, 44, 0, 0, 0, 45, 33, 46, 34, 35, + 0, 48, 99, 0, 3, 4, 36, 5, 6, 7, + 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, + 0, 0, 18, 0, 20, 0, 21, 22, 0, 0, + 0, 0, 0, 0, 39, 40, 0, 0, 0, 0, + 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, + 0, 33, 0, 34, 35, 42, 0, 0, 0, 0, + 43, 44, 0, 0, 0, 45, 0, 46, 38, 0, + 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, + 40, 0, 0, 0, 0, 0, 168, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 45, 0, 46, 169, 170, 171, 48, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 0, 190, 191, 192, 0, - 193, 194, 195, 0, 0, 0, 0, 168, 196, 0, - 197, 357, 198, 199, 200, 201, 202, 0, 203, 204, - 205, 206, 207, 0, 0, 0, 0, 0, 208, 0, - 209, 0, 0, 210, 169, 170, 171, 0, 172, 173, + 185, 186, 187, 188, 189, 190, 0, 191, 192, 193, + 0, 194, 195, 196, 0, 0, 0, 0, 0, 197, + 198, 0, 199, 200, 201, 202, 203, 168, 204, 205, + 206, 207, 208, 0, 0, 0, 0, 0, 209, 0, + 210, 0, 0, 211, 0, 0, 0, 0, 0, 337, + 0, 0, 0, 0, 169, 170, 171, 0, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 0, 190, 191, 192, - 0, 193, 194, 195, 0, 0, 0, 0, 168, 196, - 0, 197, 0, 198, 199, 200, 201, 202, 0, 203, - 204, 205, 206, 207, 0, 0, 0, 0, 0, 208, - 0, 209, 359, 0, 210, 169, 170, 171, 0, 172, + 184, 185, 186, 187, 188, 189, 190, 0, 191, 192, + 193, 0, 194, 195, 196, 0, 0, 0, 0, 0, + 197, 198, 0, 199, 200, 201, 202, 203, 168, 204, + 205, 206, 207, 208, 0, 0, 0, 0, 0, 209, + 0, 210, 0, 0, 211, 0, 0, 0, 0, 0, + 370, 0, 0, 0, 0, 169, 170, 171, 0, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 0, 190, 191, - 192, 0, 193, 194, 195, 0, 0, 0, 0, 168, - 196, 0, 197, 493, 198, 199, 200, 201, 202, 0, - 203, 204, 205, 206, 207, 0, 0, 0, 0, 0, - 208, 0, 209, 0, 0, 210, 169, 170, 171, 0, + 183, 184, 185, 186, 187, 188, 189, 190, 0, 191, + 192, 193, 0, 194, 195, 196, 0, 0, 0, 0, + 0, 197, 198, 0, 199, 200, 201, 202, 203, 168, + 204, 205, 206, 207, 208, 0, 0, 0, 0, 0, + 209, 0, 210, 0, 0, 211, 0, 0, 0, 0, + 0, 408, 0, 0, 0, 0, 169, 170, 171, 0, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 189, 0, 190, - 191, 192, 0, 193, 194, 195, 0, 0, 0, 0, - 168, 196, 0, 197, 0, 198, 199, 200, 201, 202, - 0, 203, 204, 205, 206, 207, 0, 0, 0, 0, - 0, 208, 0, 209, 0, 0, 210, 169, 170, 171, - 0, 172, 173, 174, 175, 176, 177, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 189, 0, - 190, 191, 192, 0, 193, 194, 195, 0, 0, 0, - 0, 168, 0, 0, 0, 0, 198, 199, 200, 201, - 202, 0, 203, 204, 205, 206, 207, 0, 0, 0, - 0, 0, 208, 0, 209, 0, 0, 210, 169, 170, - 171, 0, 172, 173, 174, 175, 176, 177, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 190, 191, 192, 0, 193, 194, 195, 0, 0, - 0, 0, 168, 0, 0, 0, 0, 198, 199, 200, - 201, 202, 0, 203, 204, 205, 206, 207, 0, 0, - 0, 0, 0, 208, 0, 209, 0, 0, 210, 169, - 170, 171, 0, 172, 173, 174, 175, 176, 177, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 190, 191, 192, 0, 193, 194, 195, 0, - 0, 0, 0, 168, 0, 0, 0, 0, 0, 199, - 200, 201, 202, 0, 203, 204, 205, 206, 207, 0, - 0, 0, 0, 0, 208, 0, 209, 0, 0, 210, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 0, + 191, 192, 193, 0, 194, 195, 196, 0, 0, 0, + 168, 0, 197, 198, 362, 199, 200, 201, 202, 203, + 0, 204, 205, 206, 207, 208, 0, 0, 0, 0, + 0, 209, 0, 210, 0, 0, 211, 169, 170, 171, + 0, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 0, 191, 192, 193, 0, 194, 195, 196, 0, 0, + 0, 168, 0, 197, 198, 0, 199, 200, 201, 202, + 203, 0, 204, 205, 206, 207, 208, 0, 0, 0, + 0, 0, 209, 0, 210, 364, 0, 211, 169, 170, + 171, 0, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 0, 191, 192, 193, 0, 194, 195, 196, 0, + 0, 0, 168, 0, 197, 198, 489, 199, 200, 201, + 202, 203, 0, 204, 205, 206, 207, 208, 0, 0, + 0, 0, 0, 209, 0, 210, 0, 0, 211, 169, + 170, 171, 0, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 0, 191, 192, 193, 0, 194, 195, 196, + 0, 0, 0, 168, 0, 197, 198, 0, 199, 200, + 201, 202, 203, 0, 204, 205, 206, 207, 208, 0, + 0, 0, 0, 0, 209, 0, 210, 0, 0, 211, 169, 170, 171, 0, 172, 173, 174, 175, 176, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 190, 191, 192, 0, 193, 194, 195, - 0, 0, 0, 0, 168, 0, 0, 0, 0, 0, - 0, 200, 201, 202, 0, 203, 204, 205, 206, 207, - 0, 0, 0, 0, 0, 208, 0, 209, 0, 0, - 210, 169, 170, 171, 0, 172, 173, 174, 175, 176, + 0, 0, 190, 0, 191, 192, 193, 0, 194, 195, + 196, 0, 0, 0, 168, 0, 0, 0, 0, 199, + 200, 201, 202, 203, 0, 204, 205, 206, 207, 208, + 0, 0, 0, 0, 0, 209, 0, 210, 0, 0, + 211, 169, 170, 171, 0, 172, 173, 174, 175, 176, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 190, 191, 192, 0, 193, 194, - 195, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -155, 201, 202, 0, 203, 204, 205, 206, - 207, 0, 0, 0, 0, 0, 208, 0, 209, 0, - 0, 210 + 0, 0, 0, 0, 0, 191, 192, 193, 0, 194, + 195, 196, 0, 0, 0, 168, 0, 0, 0, 0, + 199, 200, 201, 202, 203, 0, 204, 205, 206, 207, + 208, 0, 0, 0, 0, 0, 209, 0, 210, 0, + 0, 211, 169, 170, 171, 0, 172, 173, 174, 175, + 176, 177, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 191, 192, 193, 0, + 194, 195, 196, 0, 0, 0, 168, 0, 0, 0, + 0, 0, 200, 201, 202, 203, 0, 204, 205, 206, + 207, 208, 0, 0, 0, 0, 0, 209, 0, 210, + 0, 0, 211, 169, 170, 171, 0, 172, 173, 174, + 175, 176, 177, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 191, 192, 193, + 0, 194, 195, 196, 0, 0, 0, 168, 0, 0, + 0, 0, 0, 0, 201, 202, 203, 0, 204, 205, + 206, 207, 208, 0, 0, 0, 0, 0, 209, 0, + 210, 0, 0, 211, 169, 170, 171, 0, 172, 173, + 174, 175, 176, 177, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 191, 192, + 193, 0, 194, 195, 196, 0, 0, 0, 168, 0, + 0, 0, 0, 0, 0, -155, 202, 203, 0, 204, + 205, 206, 207, 208, 0, 0, 0, 0, 0, 209, + 0, 210, 0, 0, 211, 169, 170, 171, 0, -155, + -155, -155, -155, 176, 177, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, + 192, 193, 0, 194, 195, 196, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 202, 203, 0, + 204, 205, 206, 207, 208, 0, 0, 0, 0, 0, + 209, 0, 210, 0, 0, 211 }; static const yytype_int16 yycheck[] = { - 0, 0, 0, 0, 0, 39, 91, 20, 99, 58, - 65, 24, 110, 252, 3, 326, 392, 48, 3, 89, - 14, 320, 3, 4, 37, 92, 39, 40, 41, 3, - 43, 44, 45, 27, 47, 50, 91, 46, 19, 126, - 127, 68, 90, 91, 92, 3, 4, 35, 0, 0, - 122, 0, 52, 52, 52, 52, 52, 124, 34, 102, - 127, 19, 105, 51, 14, 376, 3, 4, 470, 368, - 122, 100, 474, 475, 122, 102, 124, 27, 3, 127, - 5, 136, 19, 8, 9, 10, 62, 12, 99, 100, - 100, 493, 126, 3, 4, 108, 105, 110, 18, 36, - 52, 52, 3, 52, 133, 507, 122, 122, 93, 19, - 208, 422, 514, 126, 100, 354, 3, 122, 5, 93, - 45, 130, 131, 133, 28, 126, 3, 122, 0, 33, - 55, 56, 127, 122, 126, 122, 375, 513, 100, 128, - 3, 3, 122, 122, 100, 126, 100, 133, 105, 149, + 0, 0, 0, 0, 0, 18, 98, 90, 64, 38, + 23, 57, 255, 397, 109, 130, 131, 47, 3, 3, + 3, 12, 330, 36, 89, 38, 39, 40, 324, 42, + 43, 44, 45, 46, 90, 26, 121, 5, 92, 49, + 8, 9, 10, 67, 125, 126, 33, 100, 34, 0, + 0, 51, 51, 51, 51, 51, 0, 3, 4, 27, + 28, 466, 121, 100, 50, 470, 471, 3, 4, 123, + 121, 17, 126, 381, 61, 126, 44, 373, 102, 132, + 136, 17, 16, 102, 489, 104, 54, 55, 12, 3, + 4, 104, 3, 4, 107, 132, 109, 126, 503, 214, + 51, 51, 26, 17, 3, 510, 17, 51, 93, 93, + 418, 121, 121, 126, 209, 121, 359, 130, 131, 234, + 26, 35, 125, 3, 125, 509, 32, 3, 121, 5, + 0, 100, 3, 121, 126, 3, 131, 380, 121, 121, + 104, 256, 257, 100, 127, 124, 100, 3, 3, 149, 149, 149, 149, 149, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 133, 115, 133, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 149, 149, 233, - 149, 235, 215, 100, 213, 115, 127, 100, 132, 125, - 100, 126, 4, 3, 3, 3, 216, 216, 216, 250, - 233, 460, 235, 232, 218, 323, 68, 18, 20, 21, - 22, 4, 24, 227, 26, 3, 133, 476, 99, 68, - 99, 3, 3, 14, 253, 254, 38, 20, 21, 22, - 3, 24, 3, 26, 46, 47, 48, 49, 18, 350, - 127, 352, 127, 133, 122, 38, 105, 27, 18, 100, - 102, 31, 32, 46, 47, 48, 49, 27, 363, 518, - 335, 132, 32, 3, 44, 54, 46, 54, 343, 3, - 133, 89, 305, 378, 3, 122, 46, 132, 126, 3, - 133, 100, 127, 394, 389, 105, 132, 99, 363, 102, - 323, 122, 312, 312, 312, 17, 126, 100, 3, 126, - 320, 320, 320, 378, 132, 126, 99, 133, 322, 132, - 100, 126, 126, 65, 389, 122, 102, 133, 3, 388, - 132, 105, 3, 27, 357, 379, 132, 438, 133, 126, - 384, 132, 126, 132, 132, 364, 132, 3, 133, 132, - 132, 126, 40, 122, 52, 4, 379, 149, 368, 368, - 368, 384, 457, 312, 459, 132, 399, 133, 132, 58, - 129, 20, 21, 22, 446, 24, 446, 26, 428, 67, - 68, 69, 428, 71, 72, 73, 74, 75, 76, 38, - 342, 70, 457, 499, 459, 485, 467, 400, 47, 48, - 49, 490, 90, 91, 92, 27, 94, 95, 96, 394, - -1, -1, -1, -1, 372, -1, -1, -1, -1, 420, - 443, 109, 110, -1, 112, 113, 114, 115, 116, 439, - -1, -1, -1, -1, 122, -1, 124, -1, -1, 127, - -1, -1, -1, -1, -1, -1, -1, -1, 90, 91, - 92, 461, 461, 461, 461, 461, -1, 467, -1, -1, + 183, 184, 185, 186, 187, 188, 189, 190, 114, 125, + 3, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 149, 149, + 114, 214, 125, 216, 16, 149, 235, 67, 237, 90, + 91, 92, 3, 456, 99, 67, 99, 217, 217, 217, + 3, 234, 235, 253, 237, 238, 3, 3, 219, 472, + 3, 12, 327, 126, 126, 4, 132, 16, 229, 121, + 121, 100, 123, 256, 257, 126, 25, 104, 132, 18, + 19, 20, 31, 22, 369, 24, 100, 131, 3, 102, + 16, 53, 3, 355, 53, 357, 45, 132, 37, 25, + 89, 514, 3, 121, 30, 31, 45, 46, 47, 48, + 125, 132, 131, 339, 3, 368, 132, 43, 126, 45, + 4, 100, 348, 132, 131, 121, 309, 104, 102, 99, + 383, 132, 15, 125, 18, 19, 20, 399, 22, 3, + 24, 394, 368, 100, 327, 125, 316, 316, 316, 132, + 131, 64, 125, 37, 324, 324, 324, 383, 100, 131, + 99, 45, 46, 47, 48, 326, 132, 102, 394, 125, + 125, 121, 434, 104, 132, 3, 3, 393, 25, 362, + 125, 3, 149, 131, 125, 384, 369, 131, 121, 51, + 389, 131, 131, 131, 131, 125, 132, 39, 4, 131, + 453, 384, 455, 373, 373, 373, 389, 131, 316, 132, + 131, 404, 18, 19, 20, 99, 22, 57, 24, 129, + 442, 347, 442, 424, 66, 67, 68, 453, 424, 455, + 69, 37, 74, 75, 495, 481, 463, 486, 416, 376, + 46, 47, 48, 26, 377, 405, 45, 131, 90, 91, + 92, 399, 94, 95, 96, -1, 439, -1, -1, -1, + -1, -1, -1, -1, -1, 435, 108, 109, -1, 111, + 112, 113, 114, 115, 90, 91, 92, -1, -1, 121, + -1, 123, -1, -1, 126, -1, -1, 457, 457, 457, + 457, 457, -1, 463, -1, 111, 112, 113, 114, 115, + -1, -1, -1, -1, -1, 121, -1, 123, -1, -1, + 126, 481, 481, 481, 481, 481, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 495, 495, 495, 495, 495, + 0, -1, -1, 3, 4, 5, 6, -1, 8, 9, + 10, 11, 12, 13, 14, -1, -1, 17, 18, 19, + 20, 21, 22, 23, 24, -1, -1, 27, 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, -1, -1, + -1, -1, 62, 63, -1, -1, 74, 75, -1, 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 112, 113, 114, 115, 116, 485, 485, 485, 485, 485, - 122, -1, 124, -1, -1, 127, -1, -1, -1, 499, - 499, 499, 499, 499, 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, - -1, 75, 76, -1, 70, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 90, 91, 92, -1, - 94, 95, 96, -1, 90, 91, -1, -1, -1, -1, - -1, -1, -1, 99, -1, 109, 110, -1, 112, 113, - 114, 115, 116, -1, -1, -1, 112, -1, 122, -1, - 124, 117, 118, 127, -1, -1, 122, -1, 124, -1, - 126, -1, 128, -1, -1, -1, 132, 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, 90, 91, 92, 63, 64, -1, - 66, -1, -1, -1, 70, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 114, 115, - 116, -1, -1, -1, 90, 91, 122, -1, 124, -1, - -1, 127, -1, 99, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 112, -1, -1, -1, - -1, 117, 118, -1, -1, -1, 122, -1, 124, -1, - 126, -1, 128, -1, -1, -1, 132, 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, 70, -1, -1, -1, -1, -1, + -1, -1, 90, 91, 92, -1, 94, 95, 96, -1, + 90, 91, -1, -1, -1, -1, -1, -1, -1, 99, + 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, -1, -1, -1, 18, 19, 20, + 21, 22, 23, 24, 25, -1, 27, 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, 90, 91, 92, -1, -1, + -1, 62, 63, -1, 65, -1, -1, -1, 69, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 113, 114, + 115, -1, -1, -1, -1, -1, 121, -1, 123, 90, + 91, 126, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 90, 91, -1, -1, -1, -1, - -1, -1, -1, 99, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 112, -1, -1, -1, - -1, 117, 118, -1, -1, -1, 122, -1, 124, -1, - 126, -1, 128, -1, -1, -1, 132, 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, 70, -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, -1, -1, -1, 18, 19, 20, 21, + 22, 23, 24, 25, -1, 27, 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, 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 90, 91, -1, -1, -1, -1, - -1, -1, -1, 99, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 112, -1, -1, -1, - -1, 117, 118, -1, -1, -1, 122, -1, 124, -1, - 126, -1, 128, -1, -1, -1, 132, 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, -1, -1, -1, -1, 63, 64, -1, - -1, 75, 76, -1, 70, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 90, 91, 92, -1, - 94, 95, 96, -1, 90, 91, -1, -1, -1, -1, - -1, -1, -1, 99, -1, 109, 110, -1, 112, 113, - 114, 115, 116, -1, -1, -1, 112, -1, 122, -1, - 124, 117, 118, 127, -1, -1, 122, -1, 124, -1, - 126, -1, 128, -1, -1, -1, 132, 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, 70, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 90, 91, + -1, -1, -1, -1, -1, -1, -1, 99, -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, -1, -1, -1, 18, 19, 20, 21, 22, + 23, 24, 25, -1, 27, 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, 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 90, 91, -1, -1, -1, -1, - -1, -1, -1, 99, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 112, -1, -1, -1, - -1, 117, 118, -1, -1, -1, 122, -1, 124, -1, - 126, -1, 128, -1, -1, -1, 132, 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, 70, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 90, 91, -1, + -1, -1, -1, -1, -1, -1, 99, -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, -1, -1, 17, 18, 19, 20, 21, 22, 23, + 24, -1, -1, 27, 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, 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 90, 91, -1, -1, -1, -1, - -1, -1, -1, 99, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 112, -1, -1, -1, - -1, 117, 118, -1, -1, -1, 122, -1, 124, -1, - 126, -1, 128, -1, -1, -1, 132, 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, 70, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 90, 91, -1, -1, + -1, -1, -1, -1, -1, 99, -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, + -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, + -1, -1, 27, 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, 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 90, 91, -1, -1, -1, -1, - -1, -1, -1, 99, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 112, -1, -1, -1, - -1, 117, 118, -1, -1, -1, 122, -1, 124, -1, - 126, -1, 128, -1, -1, -1, 132, 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, 70, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 90, 91, -1, -1, -1, + -1, -1, -1, -1, 99, -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, -1, + -1, -1, 18, 19, 20, 21, 22, 23, 24, -1, + -1, 27, 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, 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 90, 91, -1, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 112, -1, -1, -1, - -1, 117, 118, -1, -1, -1, 122, -1, 124, -1, - 126, -1, 128, -1, 0, -1, 132, 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, 70, -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, -1, -1, + -1, 18, 19, 20, 21, 22, 23, 24, -1, -1, + 27, 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, 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 90, 91, -1, -1, -1, -1, - -1, -1, -1, 99, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 112, -1, -1, -1, - -1, 117, 118, -1, -1, -1, 122, -1, 124, -1, - 126, -1, 128, 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, - 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 90, 91, -1, -1, -1, -1, -1, + -1, -1, 99, -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, -1, -1, -1, + 18, 19, 20, 21, 22, 23, 24, -1, -1, 27, + 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, 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 90, 91, -1, -1, -1, -1, -1, -1, -1, 99, + -1, -1, 90, 91, -1, -1, -1, -1, -1, -1, + -1, 99, -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, -1, -1, 17, 18, + 19, 20, 21, 22, 23, 24, -1, -1, 27, 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, + 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 112, -1, -1, -1, -1, 117, 118, -1, - -1, -1, 122, -1, 124, -1, 126, -1, 128, 3, + -1, 90, 91, -1, -1, -1, -1, -1, -1, -1, + 99, -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, 70, -1, -1, -1, + 14, -1, 16, -1, 18, 19, 20, 21, 22, 23, + 24, 25, -1, 27, 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, 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 90, 91, -1, -1, - -1, -1, -1, -1, -1, 99, -1, 3, -1, 5, - 6, -1, 8, 9, 10, 11, 12, -1, 112, -1, - -1, -1, -1, 117, 118, -1, -1, -1, 122, 25, - 124, 27, 126, 29, 128, -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, 70, -1, -1, 3, -1, 5, - 6, -1, 8, 9, 10, 11, 12, -1, -1, -1, - -1, -1, -1, -1, 90, 91, -1, -1, -1, 25, - -1, 27, -1, 29, -1, -1, -1, -1, -1, -1, - 36, -1, -1, -1, -1, -1, 112, 43, -1, 45, - -1, 117, 118, -1, -1, -1, 122, 53, 124, 55, - 56, -1, 128, -1, -1, -1, -1, 63, -1, -1, - -1, -1, -1, -1, 70, -1, -1, 3, -1, 5, - 6, -1, 8, 9, 10, 11, 12, -1, -1, -1, - -1, -1, -1, -1, 90, 91, -1, -1, -1, 25, - -1, 27, -1, 29, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 112, -1, -1, 45, - -1, 117, 118, -1, -1, -1, 122, 53, 124, 55, - 56, -1, 128, -1, -1, -1, -1, -1, -1, 40, - -1, -1, -1, -1, 70, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 99, -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, -1, -1, -1, 18, + 19, 20, 21, 22, 23, 24, 25, -1, 27, 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, + 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 90, 91, 67, 68, 69, -1, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, -1, 90, - 91, 92, -1, 94, 95, 96, 122, -1, 124, -1, - -1, 102, 128, 104, -1, 106, 107, 108, 109, 110, - 40, 112, 113, 114, 115, 116, -1, -1, -1, -1, - -1, 122, -1, 124, -1, -1, 127, -1, -1, -1, - -1, -1, 133, -1, -1, -1, -1, 67, 68, 69, - -1, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, -1, - 90, 91, 92, -1, 94, 95, 96, -1, -1, -1, - -1, -1, 102, 40, 104, -1, 106, 107, 108, 109, - 110, -1, 112, 113, 114, 115, 116, -1, -1, -1, - -1, -1, 122, -1, 124, -1, -1, 127, -1, -1, - 67, 68, 69, 133, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, -1, 90, 91, 92, -1, 94, 95, 96, - -1, -1, -1, -1, -1, 102, 40, 104, -1, 106, - 107, 108, 109, 110, -1, 112, 113, 114, 115, 116, - -1, -1, -1, -1, -1, 122, -1, 124, -1, -1, - 127, -1, -1, 67, 68, 69, 133, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, -1, 90, 91, 92, -1, - 94, 95, 96, -1, -1, -1, -1, 40, 102, -1, - 104, 105, 106, 107, 108, 109, 110, -1, 112, 113, - 114, 115, 116, -1, -1, -1, -1, -1, 122, -1, - 124, -1, -1, 127, 67, 68, 69, -1, 71, 72, + -1, 90, 91, -1, -1, -1, -1, -1, -1, -1, + 99, -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, 3, 127, 5, + 6, -1, 8, 9, 10, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 23, -1, 25, + -1, 27, 28, -1, -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, -1, + -1, -1, -1, 69, -1, -1, -1, 3, -1, 5, + 6, -1, 8, 9, 10, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 90, 91, -1, 23, -1, 25, + -1, 27, 28, -1, -1, -1, -1, -1, -1, 35, + -1, -1, -1, -1, -1, 111, 42, -1, 44, -1, + 116, 117, -1, -1, -1, 121, 52, 123, 54, 55, + -1, 127, 3, -1, 5, 6, 62, 8, 9, 10, + -1, -1, -1, 69, -1, -1, -1, -1, -1, -1, + -1, -1, 23, -1, 25, -1, 27, 28, -1, -1, + -1, -1, -1, -1, 90, 91, -1, -1, -1, -1, + -1, -1, -1, 44, -1, -1, -1, -1, -1, -1, + -1, 52, -1, 54, 55, 111, -1, -1, -1, -1, + 116, 117, -1, -1, -1, 121, -1, 123, 69, -1, + -1, 127, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 90, + 91, -1, -1, -1, -1, -1, 39, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 121, -1, 123, 66, 67, 68, 127, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, - -1, 94, 95, 96, -1, -1, -1, -1, 40, 102, - -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, - 113, 114, 115, 116, -1, -1, -1, -1, -1, 122, - -1, 124, 125, -1, 127, 67, 68, 69, -1, 71, + -1, 94, 95, 96, -1, -1, -1, -1, -1, 102, + 103, -1, 105, 106, 107, 108, 109, 39, 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, 66, 67, 68, -1, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, -1, 90, 91, - 92, -1, 94, 95, 96, -1, -1, -1, -1, 40, - 102, -1, 104, 105, 106, 107, 108, 109, 110, -1, - 112, 113, 114, 115, 116, -1, -1, -1, -1, -1, - 122, -1, 124, -1, -1, 127, 67, 68, 69, -1, + 92, -1, 94, 95, 96, -1, -1, -1, -1, -1, + 102, 103, -1, 105, 106, 107, 108, 109, 39, 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, 66, 67, 68, -1, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, -1, 94, 95, 96, -1, -1, -1, -1, - 40, 102, -1, 104, -1, 106, 107, 108, 109, 110, - -1, 112, 113, 114, 115, 116, -1, -1, -1, -1, - -1, 122, -1, 124, -1, -1, 127, 67, 68, 69, - -1, 71, 72, 73, 74, 75, 76, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, + -1, 102, 103, -1, 105, 106, 107, 108, 109, 39, + 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, 66, 67, 68, -1, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, -1, 94, 95, 96, -1, -1, -1, - -1, 40, -1, -1, -1, -1, 106, 107, 108, 109, - 110, -1, 112, 113, 114, 115, 116, -1, -1, -1, - -1, -1, 122, -1, 124, -1, -1, 127, 67, 68, - 69, -1, 71, 72, 73, 74, 75, 76, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 39, -1, 102, 103, 104, 105, 106, 107, 108, 109, + -1, 111, 112, 113, 114, 115, -1, -1, -1, -1, + -1, 121, -1, 123, -1, -1, 126, 66, 67, 68, + -1, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, -1, 94, 95, 96, -1, -1, - -1, -1, 40, -1, -1, -1, -1, 106, 107, 108, - 109, 110, -1, 112, 113, 114, 115, 116, -1, -1, - -1, -1, -1, 122, -1, 124, -1, -1, 127, 67, - 68, 69, -1, 71, 72, 73, 74, 75, 76, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 90, 91, 92, -1, 94, 95, 96, -1, - -1, -1, -1, 40, -1, -1, -1, -1, -1, 107, - 108, 109, 110, -1, 112, 113, 114, 115, 116, -1, - -1, -1, -1, -1, 122, -1, 124, -1, -1, 127, - 67, 68, 69, -1, 71, 72, 73, 74, 75, 76, + -1, 39, -1, 102, 103, -1, 105, 106, 107, 108, + 109, -1, 111, 112, 113, 114, 115, -1, -1, -1, + -1, -1, 121, -1, 123, 124, -1, 126, 66, 67, + 68, -1, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, -1, 90, 91, 92, -1, 94, 95, 96, -1, + -1, -1, 39, -1, 102, 103, 104, 105, 106, 107, + 108, 109, -1, 111, 112, 113, 114, 115, -1, -1, + -1, -1, -1, 121, -1, 123, -1, -1, 126, 66, + 67, 68, -1, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, -1, 90, 91, 92, -1, 94, 95, 96, + -1, -1, -1, 39, -1, 102, 103, -1, 105, 106, + 107, 108, 109, -1, 111, 112, 113, 114, 115, -1, + -1, -1, -1, -1, 121, -1, 123, -1, -1, 126, + 66, 67, 68, -1, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 90, 91, 92, -1, 94, 95, 96, - -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, - -1, 108, 109, 110, -1, 112, 113, 114, 115, 116, - -1, -1, -1, -1, -1, 122, -1, 124, -1, -1, - 127, 67, 68, 69, -1, 71, 72, 73, 74, 75, - 76, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 90, 91, 92, -1, 94, 95, - 96, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 108, 109, 110, -1, 112, 113, 114, 115, - 116, -1, -1, -1, -1, -1, 122, -1, 124, -1, - -1, 127 + -1, -1, 88, -1, 90, 91, 92, -1, 94, 95, + 96, -1, -1, -1, 39, -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, 66, 67, 68, -1, 70, 71, 72, 73, 74, + 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 90, 91, 92, -1, 94, + 95, 96, -1, -1, -1, 39, -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, 66, 67, 68, -1, 70, 71, 72, 73, + 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 90, 91, 92, -1, + 94, 95, 96, -1, -1, -1, 39, -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, 66, 67, 68, -1, 70, 71, 72, + 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 90, 91, 92, + -1, 94, 95, 96, -1, -1, -1, 39, -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, 66, 67, 68, -1, 70, 71, + 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 90, 91, + 92, -1, 94, 95, 96, -1, -1, -1, 39, -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, 66, 67, 68, -1, 70, + 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 90, + 91, 92, -1, 94, 95, 96, -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 @@ -3495,58 +3354,57 @@ static const yytype_int16 yycheck[] = static const yytype_uint8 yystos[] = { 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, 70, - 90, 91, 99, 112, 117, 118, 122, 124, 126, 128, - 135, 136, 137, 138, 144, 147, 148, 154, 158, 159, - 160, 161, 163, 171, 179, 182, 183, 186, 189, 190, - 191, 192, 196, 198, 207, 217, 220, 233, 234, 235, - 238, 239, 240, 241, 244, 246, 247, 89, 50, 122, - 122, 164, 122, 3, 4, 19, 126, 184, 185, 18, - 3, 240, 3, 219, 240, 122, 185, 223, 122, 126, - 122, 127, 240, 122, 237, 240, 242, 243, 240, 240, - 240, 240, 240, 238, 229, 230, 231, 237, 30, 32, - 37, 42, 46, 66, 99, 132, 143, 144, 145, 148, - 150, 165, 166, 181, 190, 236, 3, 0, 138, 126, - 3, 46, 150, 156, 157, 239, 145, 146, 18, 27, - 31, 32, 44, 46, 206, 245, 192, 100, 40, 67, - 68, 69, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 90, 91, 92, 94, 95, 96, 102, 104, 106, 107, - 108, 109, 110, 112, 113, 114, 115, 116, 122, 124, - 127, 3, 122, 162, 146, 172, 188, 126, 127, 184, - 185, 222, 223, 224, 232, 122, 238, 127, 240, 180, - 229, 3, 155, 105, 132, 100, 133, 125, 100, 237, - 3, 3, 151, 152, 238, 238, 151, 3, 132, 145, - 126, 136, 3, 99, 68, 99, 3, 35, 51, 216, - 3, 3, 208, 240, 240, 240, 240, 240, 240, 240, - 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, - 240, 240, 240, 240, 240, 240, 3, 240, 240, 240, - 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, - 240, 240, 229, 240, 3, 122, 128, 238, 14, 240, - 99, 139, 140, 141, 147, 148, 196, 198, 207, 217, - 187, 184, 127, 122, 228, 3, 93, 213, 214, 215, - 133, 115, 184, 133, 142, 143, 133, 238, 237, 237, - 105, 227, 100, 143, 132, 227, 238, 238, 102, 3, - 54, 193, 54, 194, 3, 209, 210, 105, 133, 125, - 89, 240, 3, 133, 122, 133, 132, 141, 126, 139, - 229, 102, 105, 211, 215, 133, 100, 132, 133, 105, - 36, 115, 224, 226, 102, 149, 152, 132, 99, 133, - 3, 5, 122, 224, 17, 195, 224, 225, 126, 227, - 100, 240, 3, 133, 146, 238, 126, 139, 132, 133, - 3, 5, 8, 9, 10, 12, 45, 55, 56, 212, - 226, 227, 93, 215, 28, 33, 173, 175, 177, 178, - 146, 237, 237, 239, 146, 213, 225, 126, 100, 199, - 149, 210, 133, 34, 62, 167, 168, 169, 170, 132, - 211, 126, 215, 126, 122, 173, 175, 65, 153, 133, - 133, 197, 224, 46, 99, 190, 203, 204, 205, 240, - 105, 132, 169, 170, 221, 176, 3, 146, 146, 227, - 99, 144, 148, 190, 200, 201, 202, 207, 217, 3, - 27, 132, 205, 105, 142, 142, 142, 227, 126, 126, - 132, 202, 216, 142, 132, 132, 133, 218, 200, 3, - 174, 142, 132, 122, 126, 132, 213, 142, 133, 132, - 227 + 13, 14, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 27, 28, 35, 37, 38, 40, 42, 44, 46, + 47, 48, 51, 52, 54, 55, 62, 63, 69, 90, + 91, 99, 111, 116, 117, 121, 123, 125, 127, 134, + 135, 136, 137, 143, 146, 147, 153, 157, 158, 159, + 160, 162, 170, 178, 181, 182, 185, 188, 189, 190, + 191, 195, 197, 206, 211, 216, 219, 232, 233, 234, + 239, 242, 243, 244, 246, 247, 89, 49, 121, 121, + 163, 121, 3, 4, 17, 125, 183, 184, 16, 3, + 242, 3, 218, 242, 121, 184, 222, 121, 125, 121, + 126, 242, 121, 236, 240, 241, 242, 242, 242, 242, + 242, 242, 238, 242, 228, 229, 230, 236, 29, 31, + 36, 41, 45, 65, 99, 131, 142, 143, 144, 147, + 149, 164, 165, 180, 189, 235, 3, 0, 137, 125, + 3, 45, 149, 155, 156, 239, 144, 145, 16, 25, + 30, 31, 43, 45, 205, 245, 191, 100, 39, 66, + 67, 68, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 90, 91, 92, 94, 95, 96, 102, 103, 105, + 106, 107, 108, 109, 111, 112, 113, 114, 115, 121, + 123, 126, 3, 121, 161, 145, 171, 187, 125, 126, + 183, 184, 221, 222, 223, 231, 121, 237, 238, 126, + 242, 179, 228, 3, 154, 104, 131, 100, 100, 132, + 124, 100, 236, 3, 3, 150, 151, 237, 237, 150, + 3, 131, 144, 125, 135, 3, 99, 67, 99, 3, + 34, 50, 215, 3, 3, 207, 242, 242, 242, 242, + 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, + 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, + 3, 242, 242, 242, 242, 242, 242, 242, 242, 242, + 242, 242, 242, 242, 242, 242, 228, 242, 3, 121, + 127, 237, 12, 242, 99, 138, 139, 140, 146, 147, + 195, 197, 206, 216, 186, 183, 126, 121, 227, 3, + 93, 212, 213, 214, 132, 114, 183, 132, 141, 142, + 132, 237, 236, 236, 242, 104, 226, 100, 142, 131, + 226, 237, 237, 102, 3, 53, 192, 53, 193, 3, + 208, 209, 104, 132, 124, 89, 242, 3, 132, 121, + 132, 131, 140, 125, 138, 228, 102, 104, 210, 214, + 132, 100, 131, 132, 104, 35, 114, 223, 225, 102, + 148, 151, 131, 99, 132, 3, 5, 121, 223, 15, + 194, 223, 224, 125, 226, 100, 242, 3, 132, 145, + 237, 125, 138, 131, 132, 211, 225, 226, 93, 214, + 26, 32, 172, 174, 176, 177, 145, 236, 236, 239, + 145, 212, 224, 125, 100, 198, 148, 209, 132, 33, + 61, 166, 167, 168, 169, 131, 210, 125, 214, 125, + 121, 172, 174, 64, 152, 132, 132, 196, 223, 45, + 99, 189, 202, 203, 204, 242, 104, 131, 168, 169, + 220, 175, 3, 145, 145, 226, 99, 143, 147, 189, + 199, 200, 201, 206, 216, 3, 25, 131, 204, 104, + 141, 141, 141, 226, 125, 125, 131, 201, 215, 141, + 131, 131, 132, 217, 199, 3, 173, 141, 131, 121, + 125, 131, 212, 141, 132, 131, 226 }; #define yyerrok (yyerrstatus = 0) @@ -4358,11 +4216,33 @@ yyreduce: switch (yyn) { + case 13: + if(as3_pass==2) { + +/* Line 1464 of skeleton.m4 */ +#line 1890 "parser.y" + {PASS_ALWAYS as3_pass=(yyvsp[(1) - (4)].number_int);} + } + break; + + + + case 24: + if(as3_pass==2) { + +/* Line 1464 of skeleton.m4 */ +#line 1902 "parser.y" + {PASS_ALWAYS as3_pass=(yyvsp[(1) - (4)].number_int);} + } + break; + + + case 26: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2133 "parser.y" +#line 1905 "parser.y" {(yyval.code)=(yyvsp[(1) - (1)].code);} } break; @@ -4373,7 +4253,7 @@ yyreduce: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2134 "parser.y" +#line 1906 "parser.y" {(yyval.code)=code_new();} } break; @@ -4384,7 +4264,7 @@ yyreduce: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2136 "parser.y" +#line 1908 "parser.y" {(yyval.code)=code_append((yyvsp[(1) - (2)].code),(yyvsp[(2) - (2)].code));} } break; @@ -4395,7 +4275,7 @@ yyreduce: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2137 "parser.y" +#line 1909 "parser.y" {(yyval.code)=(yyvsp[(1) - (1)].code);} } break; @@ -4406,7 +4286,7 @@ yyreduce: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2152 "parser.y" +#line 1924 "parser.y" {(yyval.code)=(yyvsp[(2) - (3)].code);} } break; @@ -4417,7 +4297,7 @@ yyreduce: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2153 "parser.y" +#line 1925 "parser.y" {(yyval.code)=0;} } break; @@ -4428,7 +4308,7 @@ yyreduce: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2156 "parser.y" +#line 1928 "parser.y" {(yyval.code)=0;} } break; @@ -4439,8 +4319,8 @@ yyreduce: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2163 "parser.y" - {(yyval.code)=(yyvsp[(3) - (4)].code);} +#line 1935 "parser.y" + {PASS_ALWAYS as3_pass=(yyvsp[(1) - (4)].number_int);} } break; @@ -4450,7 +4330,7 @@ yyreduce: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2167 "parser.y" +#line 1939 "parser.y" {(yyval.code)=(yyvsp[(1) - (2)].code);} } break; @@ -4461,7 +4341,7 @@ yyreduce: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2168 "parser.y" +#line 1940 "parser.y" {(yyval.code)=(yyvsp[(1) - (1)].code);} } break; @@ -4472,7 +4352,7 @@ yyreduce: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2172 "parser.y" +#line 1944 "parser.y" { code_t**cc = &global->init->method->body->code; *cc = code_append(*cc, (yyvsp[(1) - (1)].code)); @@ -4482,11 +4362,30 @@ yyreduce: + case 55: + if(as3_pass==2) { + +/* Line 1464 of skeleton.m4 */ +#line 1951 "parser.y" + { + PASS12 + (yyval.number_int)=as3_pass; + char*key = concat3((yyvsp[(1) - (3)].id),"::",(yyvsp[(3) - (3)].id)); + if(!definitions || !dict_contains(definitions, key)) { + as3_pass=0; + } + free(key); +} + } + break; + + + case 56: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2183 "parser.y" +#line 1970 "parser.y" {(yyval.value)=(yyvsp[(2) - (2)].value);} } break; @@ -4497,7 +4396,7 @@ yyreduce: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2184 "parser.y" +#line 1971 "parser.y" {(yyval.value).c=abc_pushundefined(0); (yyval.value).t=TYPE_ANY; } @@ -4510,7 +4409,7 @@ yyreduce: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2188 "parser.y" +#line 1975 "parser.y" {(yyval.code)=(yyvsp[(2) - (2)].code);} } break; @@ -4521,7 +4420,7 @@ yyreduce: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2189 "parser.y" +#line 1976 "parser.y" {(yyval.code)=(yyvsp[(2) - (2)].code);} } break; @@ -4532,7 +4431,7 @@ yyreduce: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2191 "parser.y" +#line 1978 "parser.y" {(yyval.code) = (yyvsp[(1) - (1)].code);} } break; @@ -4543,7 +4442,7 @@ yyreduce: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2192 "parser.y" +#line 1979 "parser.y" {(yyval.code) = code_append((yyvsp[(1) - (3)].code), (yyvsp[(3) - (3)].code));} } break; @@ -4554,7 +4453,7 @@ yyreduce: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2195 "parser.y" +#line 1982 "parser.y" { PASS12 if(variable_exists((yyvsp[(1) - (3)].id))) @@ -4621,7 +4520,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2255 "parser.y" +#line 2042 "parser.y" {(yyval.code) = code_new();} } break; @@ -4632,7 +4531,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2256 "parser.y" +#line 2043 "parser.y" {(yyval.code)=(yyvsp[(2) - (2)].code);} } break; @@ -4643,7 +4542,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2259 "parser.y" +#line 2046 "parser.y" {PASS12 new_state();} } break; @@ -4654,7 +4553,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2259 "parser.y" +#line 2046 "parser.y" { (yyval.code) = code_new(); @@ -4682,7 +4581,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2278 "parser.y" +#line 2065 "parser.y" {(yyval.code)=code_new();} } break; @@ -4693,7 +4592,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2285 "parser.y" +#line 2072 "parser.y" { PASS1 (yyval.id)=(yyvsp[(2) - (3)].id);new_variable((yyvsp[(2) - (3)].id),0,1,0); PASS2 (yyval.id)=(yyvsp[(2) - (3)].id);new_variable((yyvsp[(2) - (3)].id),(yyvsp[(3) - (3)].classinfo),1,0); @@ -4707,7 +4606,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2289 "parser.y" +#line 2076 "parser.y" { PASS12 (yyval.id)=(yyvsp[(1) - (1)].id); @@ -4721,7 +4620,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2294 "parser.y" +#line 2081 "parser.y" {PASS12 new_state();(yyval.for_start).name=(yyvsp[(1) - (2)].id);(yyval.for_start).each=0;} } break; @@ -4732,7 +4631,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2295 "parser.y" +#line 2082 "parser.y" {PASS12 new_state();(yyval.for_start).name=(yyvsp[(1) - (3)].id);(yyval.for_start).each=1;} } break; @@ -4743,7 +4642,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2297 "parser.y" +#line 2084 "parser.y" { if((yyvsp[(1) - (8)].for_start).each) syntaxerror("invalid syntax: ; not allowed in for each statement"); (yyval.code) = code_new(); @@ -4772,7 +4671,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2317 "parser.y" +#line 2104 "parser.y" { variable_t*var = find_variable(state, (yyvsp[(2) - (6)].id)); if(!var) { @@ -4829,7 +4728,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2365 "parser.y" +#line 2152 "parser.y" {PASS12 new_state();} } break; @@ -4840,7 +4739,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2365 "parser.y" +#line 2152 "parser.y" { (yyval.code) = code_new(); @@ -4868,7 +4767,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2384 "parser.y" +#line 2171 "parser.y" {PASS12 new_state();} } break; @@ -4879,7 +4778,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2384 "parser.y" +#line 2171 "parser.y" { (yyval.code) = code_new(); code_t*loopstart = (yyval.code) = abc_label((yyval.code)); @@ -4903,7 +4802,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2399 "parser.y" +#line 2186 "parser.y" { (yyval.code) = abc___break__(0, ""); } @@ -4916,7 +4815,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2402 "parser.y" +#line 2189 "parser.y" { (yyval.code) = abc___break__(0, (yyvsp[(2) - (2)].id)); } @@ -4929,7 +4828,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2405 "parser.y" +#line 2192 "parser.y" { (yyval.code) = abc___continue__(0, ""); } @@ -4942,7 +4841,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2408 "parser.y" +#line 2195 "parser.y" { (yyval.code) = abc___continue__(0, (yyvsp[(2) - (2)].id)); } @@ -4955,7 +4854,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2412 "parser.y" +#line 2199 "parser.y" {(yyval.code)=0;} } break; @@ -4966,7 +4865,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2413 "parser.y" +#line 2200 "parser.y" {(yyval.code)=(yyvsp[(1) - (1)].code);} } break; @@ -4977,7 +4876,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2414 "parser.y" +#line 2201 "parser.y" {(yyval.code)=(yyvsp[(1) - (1)].code);} } break; @@ -4988,7 +4887,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2415 "parser.y" +#line 2202 "parser.y" {(yyval.code)=code_append((yyvsp[(1) - (2)].code),(yyvsp[(2) - (2)].code));} } break; @@ -4999,7 +4898,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2416 "parser.y" +#line 2203 "parser.y" {(yyval.code)=(yyvsp[(1) - (1)].code);} } break; @@ -5010,7 +4909,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2417 "parser.y" +#line 2204 "parser.y" {(yyval.code)=code_append((yyval.code),(yyvsp[(2) - (2)].code));} } break; @@ -5021,10 +4920,10 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2419 "parser.y" +#line 2206 "parser.y" { (yyval.code) = abc_getlocal(0, state->switch_var); - (yyval.code) = code_append((yyval.code), (yyvsp[(2) - (4)].value).c); + (yyval.code) = code_append((yyval.code), node_read((yyvsp[(2) - (4)].node)).c); code_t*j = (yyval.code) = abc_ifne((yyval.code), 0); (yyval.code) = code_append((yyval.code), (yyvsp[(4) - (4)].code)); if((yyval.code)->opcode != OPCODE___BREAK__) { @@ -5042,7 +4941,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2430 "parser.y" +#line 2217 "parser.y" { (yyval.code) = (yyvsp[(3) - (3)].code); } @@ -5055,7 +4954,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2433 "parser.y" +#line 2220 "parser.y" {PASS12 new_state();state->switch_var=alloc_local();} } break; @@ -5066,9 +4965,9 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2433 "parser.y" +#line 2220 "parser.y" { - (yyval.code)=(yyvsp[(4) - (8)].value).c; + (yyval.code) = node_read((yyvsp[(4) - (8)].node)).c; (yyval.code) = abc_setlocal((yyval.code), state->switch_var); (yyval.code) = code_append((yyval.code), (yyvsp[(7) - (8)].code)); @@ -5104,7 +5003,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2464 "parser.y" +#line 2251 "parser.y" {PASS12 new_state(); state->exception_name=(yyvsp[(3) - (5)].id); PASS1 new_variable((yyvsp[(3) - (5)].id), 0, 0, 0); @@ -5119,7 +5018,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2469 "parser.y" +#line 2256 "parser.y" { namespace_t name_ns = {ACCESS_PACKAGE, ""}; multiname_t name = {QNAME, &name_ns, 0, (yyvsp[(3) - (9)].id)}; @@ -5149,7 +5048,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2489 "parser.y" +#line 2276 "parser.y" {PASS12 new_state();state->exception_name=0;} } break; @@ -5160,7 +5059,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2489 "parser.y" +#line 2276 "parser.y" { (yyvsp[(4) - (5)].code) = var_block((yyvsp[(4) - (5)].code)); if(!(yyvsp[(4) - (5)].code)) { @@ -5185,7 +5084,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2505 "parser.y" +#line 2292 "parser.y" {(yyval.catch_list).l=list_new();(yyval.catch_list).finally=0;list_append((yyval.catch_list).l,(yyvsp[(1) - (1)].exception));} } break; @@ -5196,7 +5095,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2506 "parser.y" +#line 2293 "parser.y" {(yyval.catch_list)=(yyvsp[(1) - (2)].catch_list);list_append((yyval.catch_list).l,(yyvsp[(2) - (2)].exception));} } break; @@ -5207,7 +5106,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2507 "parser.y" +#line 2294 "parser.y" {(yyval.catch_list)=(yyvsp[(1) - (1)].catch_list);} } break; @@ -5218,7 +5117,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2508 "parser.y" +#line 2295 "parser.y" { (yyval.catch_list) = (yyvsp[(1) - (2)].catch_list); (yyval.catch_list).finally = 0; @@ -5236,7 +5135,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2516 "parser.y" +#line 2303 "parser.y" { (yyval.catch_list).l=list_new(); (yyval.catch_list).finally = 0; @@ -5254,7 +5153,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2525 "parser.y" +#line 2312 "parser.y" {PASS12 new_state(); state->method->has_exceptions=1; state->method->late_binding=1;//for invariant scope_code @@ -5268,7 +5167,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2528 "parser.y" +#line 2315 "parser.y" { code_t*out = abc_nop(0); @@ -5321,7 +5220,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2574 "parser.y" +#line 2361 "parser.y" { (yyval.code)=(yyvsp[(2) - (2)].value).c; (yyval.code)=abc_throw((yyval.code)); @@ -5335,7 +5234,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2578 "parser.y" +#line 2365 "parser.y" { if(!state->exception_name) syntaxerror("re-throw only possible within a catch block"); @@ -5353,7 +5252,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2589 "parser.y" +#line 2376 "parser.y" { new_state(); if(state->method->has_exceptions) { @@ -5373,7 +5272,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2599 "parser.y" +#line 2386 "parser.y" { /* remove getlocal;pushwith from scope code again */ state->method->scope_code = code_cutlast(code_cutlast(state->method->scope_code)); @@ -5397,7 +5296,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2617 "parser.y" +#line 2404 "parser.y" {PASS12 (yyval.id)="package";} } break; @@ -5408,7 +5307,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2618 "parser.y" +#line 2405 "parser.y" {PASS12 (yyval.id)=(yyvsp[(1) - (1)].id);} } break; @@ -5419,7 +5318,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2620 "parser.y" +#line 2407 "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; @@ -5430,7 +5329,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2621 "parser.y" +#line 2408 "parser.y" {PASS12 (yyval.id)=strdup((yyvsp[(1) - (1)].id));} } break; @@ -5441,7 +5340,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2623 "parser.y" +#line 2410 "parser.y" {PASS12 startpackage((yyvsp[(2) - (3)].id));free((yyvsp[(2) - (3)].id));(yyvsp[(2) - (3)].id)=0;} } break; @@ -5452,7 +5351,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2624 "parser.y" +#line 2411 "parser.y" {PASS12 endpackage();(yyval.code)=0;} } break; @@ -5463,7 +5362,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2625 "parser.y" +#line 2412 "parser.y" {PASS12 startpackage("");} } break; @@ -5474,7 +5373,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2626 "parser.y" +#line 2413 "parser.y" {PASS12 endpackage();(yyval.code)=0;} } break; @@ -5485,7 +5384,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2628 "parser.y" +#line 2435 "parser.y" { PASS12 slotinfo_t*s = registry_find((yyvsp[(2) - (2)].classinfo)->package, (yyvsp[(2) - (2)].classinfo)->name); @@ -5509,7 +5408,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2642 "parser.y" +#line 2449 "parser.y" { PASS12 if(strncmp("flash.", (yyvsp[(2) - (4)].id), 6) && as3_pass==1) { @@ -5532,7 +5431,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2658 "parser.y" +#line 2465 "parser.y" {PASS12 (yyval.flags).flags=0;(yyval.flags).ns=0;} } break; @@ -5543,7 +5442,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2659 "parser.y" +#line 2466 "parser.y" {PASS12 (yyval.flags)=(yyvsp[(1) - (1)].flags);} } break; @@ -5554,7 +5453,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2660 "parser.y" +#line 2467 "parser.y" {PASS12 (yyval.flags)=(yyvsp[(1) - (1)].flags);} } break; @@ -5565,7 +5464,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2661 "parser.y" +#line 2468 "parser.y" { PASS12 (yyval.flags).flags=(yyvsp[(1) - (2)].flags).flags|(yyvsp[(2) - (2)].flags).flags; @@ -5582,7 +5481,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2668 "parser.y" +#line 2475 "parser.y" {PASS12 (yyval.flags).flags=FLAG_PUBLIC;(yyval.flags).ns=0;} } break; @@ -5593,7 +5492,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2669 "parser.y" +#line 2476 "parser.y" {PASS12 (yyval.flags).flags=FLAG_PRIVATE;(yyval.flags).ns=0;} } break; @@ -5604,7 +5503,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2670 "parser.y" +#line 2477 "parser.y" {PASS12 (yyval.flags).flags=FLAG_PROTECTED;(yyval.flags).ns=0;} } break; @@ -5615,7 +5514,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2671 "parser.y" +#line 2478 "parser.y" {PASS12 (yyval.flags).flags=FLAG_STATIC;(yyval.flags).ns=0;} } break; @@ -5626,7 +5525,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2672 "parser.y" +#line 2479 "parser.y" {PASS12 (yyval.flags).flags=FLAG_DYNAMIC;(yyval.flags).ns=0;} } break; @@ -5637,7 +5536,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2673 "parser.y" +#line 2480 "parser.y" {PASS12 (yyval.flags).flags=FLAG_FINAL;(yyval.flags).ns=0;} } break; @@ -5648,7 +5547,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2674 "parser.y" +#line 2481 "parser.y" {PASS12 (yyval.flags).flags=FLAG_OVERRIDE;(yyval.flags).ns=0;} } break; @@ -5659,7 +5558,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2675 "parser.y" +#line 2482 "parser.y" {PASS12 (yyval.flags).flags=FLAG_NATIVE;(yyval.flags).ns=0;} } break; @@ -5670,7 +5569,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2676 "parser.y" +#line 2483 "parser.y" {PASS12 (yyval.flags).flags=FLAG_PACKAGEINTERNAL;(yyval.flags).ns=0;} } break; @@ -5681,7 +5580,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2677 "parser.y" +#line 2484 "parser.y" {PASS12 (yyval.flags).flags=FLAG_NAMESPACE; (yyval.flags).ns=(yyvsp[(1) - (1)].id); } @@ -5694,7 +5593,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2681 "parser.y" +#line 2488 "parser.y" {PASS12 (yyval.classinfo)=0;} } break; @@ -5705,7 +5604,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2682 "parser.y" +#line 2489 "parser.y" {PASS12 (yyval.classinfo)=(yyvsp[(2) - (2)].classinfo);} } break; @@ -5716,7 +5615,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2684 "parser.y" +#line 2491 "parser.y" {PASS12 (yyval.classinfo_list)=list_new();} } break; @@ -5727,7 +5626,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2685 "parser.y" +#line 2492 "parser.y" {PASS12 (yyval.classinfo_list)=(yyvsp[(2) - (2)].classinfo_list);} } break; @@ -5738,7 +5637,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2687 "parser.y" +#line 2494 "parser.y" {PASS12 (yyval.classinfo_list)=list_new();} } break; @@ -5749,7 +5648,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2688 "parser.y" +#line 2495 "parser.y" {PASS12 (yyval.classinfo_list)=(yyvsp[(2) - (2)].classinfo_list);} } break; @@ -5760,7 +5659,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2692 "parser.y" +#line 2499 "parser.y" {PASS12 startclass(&(yyvsp[(1) - (6)].flags),(yyvsp[(3) - (6)].id),(yyvsp[(4) - (6)].classinfo),(yyvsp[(5) - (6)].classinfo_list));} } break; @@ -5771,7 +5670,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2694 "parser.y" +#line 2501 "parser.y" {PASS12 endclass();(yyval.code)=0;} } break; @@ -5782,7 +5681,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2698 "parser.y" +#line 2505 "parser.y" {PASS12 (yyvsp[(1) - (5)].flags).flags|=FLAG_INTERFACE; startclass(&(yyvsp[(1) - (5)].flags),(yyvsp[(3) - (5)].id),0,(yyvsp[(4) - (5)].classinfo_list));} } @@ -5794,18 +5693,29 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2701 "parser.y" +#line 2508 "parser.y" {PASS12 endclass();(yyval.code)=0;} } break; + case 149: + if(as3_pass==2) { + +/* Line 1464 of skeleton.m4 */ +#line 2517 "parser.y" + {PASS_ALWAYS as3_pass=(yyvsp[(1) - (4)].number_int);} + } + break; + + + case 152: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2714 "parser.y" +#line 2521 "parser.y" { code_t*c = state->cls->static_init->header; c = code_append(c, (yyvsp[(1) - (1)].code)); @@ -5820,7 +5730,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2725 "parser.y" +#line 2532 "parser.y" { syntaxerror("variable declarations not allowed in interfaces"); } @@ -5833,7 +5743,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2728 "parser.y" +#line 2535 "parser.y" { PASS12 (yyvsp[(1) - (8)].flags).flags |= FLAG_PUBLIC; @@ -5853,8 +5763,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2743 "parser.y" - {setslotstate(&(yyvsp[(1) - (2)].flags),(yyvsp[(2) - (2)].token));} +#line 2569 "parser.y" + {PASS12 setslotstate(&(yyvsp[(1) - (2)].flags),(yyvsp[(2) - (2)].token));} } break; @@ -5864,8 +5774,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2743 "parser.y" - {(yyval.code)=(yyvsp[(4) - (4)].code);setslotstate(0, 0);} +#line 2569 "parser.y" + {PASS12 (yyval.code)=(yyvsp[(4) - (4)].code);setslotstate(0, 0);} } break; @@ -5875,8 +5785,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2745 "parser.y" - {(yyval.code) = (yyvsp[(1) - (1)].code);} +#line 2571 "parser.y" + {PASS12 (yyval.code)=0;} } break; @@ -5886,8 +5796,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2746 "parser.y" - {(yyval.code) = code_append((yyvsp[(1) - (3)].code), (yyvsp[(3) - (3)].code));} +#line 2572 "parser.y" + {PASS12 (yyval.code)=0;} } break; @@ -5897,74 +5807,84 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2749 "parser.y" +#line 2575 "parser.y" { +PASS12 int flags = slotstate_flags->flags; namespace_t ns = modifiers2access(slotstate_flags); - varinfo_t* info = 0; - if(state->cls) { - memberinfo_t*i = registry_findmember(state->cls->info, ns.name, (yyvsp[(1) - (3)].id), 1); - if(i) { - check_override(i, flags); - } - info = varinfo_register_onclass(state->cls->info, ns.access, ns.name, (yyvsp[(1) - (3)].id)); - } else { - slotinfo_t*i = registry_find(state->package, (yyvsp[(1) - (3)].id)); - if(i) { - syntaxerror("package %s already contains '%s'", state->package, (yyvsp[(1) - (3)].id)); - } - if(ns.name && ns.name[0]) { - syntaxerror("namespaces not allowed on package-level variables"); - } - info = varinfo_register_global(ns.access, state->package, (yyvsp[(1) - (3)].id)); - } + if(as3_pass == 1) { - info->type = (yyvsp[(2) - (3)].classinfo); - info->flags = flags; + varinfo_t* info = 0; + if(state->cls) { + memberinfo_t*i = registry_findmember(state->cls->info, ns.name, (yyvsp[(1) - (3)].id), 1); + if(i) { + check_override(i, flags); + } + info = varinfo_register_onclass(state->cls->info, ns.access, ns.name, (yyvsp[(1) - (3)].id)); + } else { + slotinfo_t*i = registry_find(state->package, (yyvsp[(1) - (3)].id)); + if(i) { + syntaxerror("package %s already contains '%s'", state->package, (yyvsp[(1) - (3)].id)); + } + if(ns.name && ns.name[0]) { + syntaxerror("namespaces not allowed on package-level variables"); + } + info = varinfo_register_global(ns.access, state->package, (yyvsp[(1) - (3)].id)); + } - /* slot name */ - multiname_t mname = {QNAME, &ns, 0, (yyvsp[(1) - (3)].id)}; - - trait_list_t**traits; - code_t**code; - if(!state->cls) { - // global variable - ns.name = state->package; - traits = &global->init->traits; - code = &global->init->method->body->code; - } else if(flags&FLAG_STATIC) { - // static variable - traits = &state->cls->abc->static_traits; - code = &state->cls->static_init->header; - } else { - // instance variable - traits = &state->cls->abc->traits; - code = &state->cls->init->header; - } - - trait_t*t=0; - if((yyvsp[(2) - (3)].classinfo)) { - MULTINAME(m, (yyvsp[(2) - (3)].classinfo)); - t = trait_new_member(traits, multiname_clone(&m), multiname_clone(&mname), 0); - } else { - t = trait_new_member(traits, 0, multiname_clone(&mname), 0); - } - info->slot = t->slot_id; - - /* initalization code (if needed) */ - code_t*c = 0; - if((yyvsp[(3) - (3)].value).c && !is_pushundefined((yyvsp[(3) - (3)].value).c)) { - c = abc_getlocal_0(c); - c = code_append(c, (yyvsp[(3) - (3)].value).c); - c = converttype(c, (yyvsp[(3) - (3)].value).t, (yyvsp[(2) - (3)].classinfo)); - c = abc_setslot(c, t->slot_id); + info->type = (yyvsp[(2) - (3)].classinfo); + info->flags = flags; + + dict_put(global->token2info, (void*)(ptroff_t)as3_tokencount, info); } - *code = code_append(*code, c); + if(as3_pass == 2) { + varinfo_t*info = dict_lookup(global->token2info, (void*)(ptroff_t)as3_tokencount); + + /* slot name */ + multiname_t mname = {QNAME, &ns, 0, (yyvsp[(1) - (3)].id)}; + + trait_list_t**traits; + code_t**code; + if(!state->cls) { + // global variable + ns.name = state->package; + traits = &global->init->traits; + code = &global->init->method->body->code; + } else if(flags&FLAG_STATIC) { + // static variable + traits = &state->cls->abc->static_traits; + code = &state->cls->static_init->header; + } else { + // instance variable + traits = &state->cls->abc->traits; + code = &state->cls->init->header; + } + + trait_t*t=0; + if((yyvsp[(2) - (3)].classinfo)) { + MULTINAME(m, (yyvsp[(2) - (3)].classinfo)); + t = trait_new_member(traits, multiname_clone(&m), multiname_clone(&mname), 0); + } else { + t = trait_new_member(traits, 0, multiname_clone(&mname), 0); + } + info->slot = t->slot_id; + + /* initalization code (if needed) */ + code_t*c = 0; + if((yyvsp[(3) - (3)].value).c && !is_pushundefined((yyvsp[(3) - (3)].value).c)) { + c = abc_getlocal_0(c); + c = code_append(c, (yyvsp[(3) - (3)].value).c); + c = converttype(c, (yyvsp[(3) - (3)].value).t, (yyvsp[(2) - (3)].classinfo)); + c = abc_setslot(c, t->slot_id); + } + + *code = code_append(*code, c); - if(slotstate_varconst==KW_CONST) { - t->kind= TRAIT_CONST; + if(slotstate_varconst==KW_CONST) { + t->kind= TRAIT_CONST; + } } (yyval.code)=0; @@ -5978,7 +5898,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2823 "parser.y" +#line 2659 "parser.y" {(yyval.constant)=0;} } break; @@ -5989,7 +5909,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2824 "parser.y" +#line 2660 "parser.y" {(yyval.constant)=(yyvsp[(2) - (2)].constant);} } break; @@ -6000,8 +5920,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2826 "parser.y" - {(yyval.constant) = constant_new_int((yyvsp[(1) - (1)].number_uint));} +#line 2663 "parser.y" + {(yyval.constant) = constant_new_int((yyvsp[(1) - (1)].number_int));} } break; @@ -6011,8 +5931,10 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2827 "parser.y" - {(yyval.constant) = constant_new_int((yyvsp[(1) - (1)].number_int));} +#line 2664 "parser.y" + { + (yyval.constant) = constant_new_uint((yyvsp[(1) - (1)].number_uint)); +} } break; @@ -6022,8 +5944,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2828 "parser.y" - {(yyval.constant) = constant_new_uint((yyvsp[(1) - (1)].number_uint));} +#line 2667 "parser.y" + {(yyval.constant) = constant_new_float((yyvsp[(1) - (1)].number_float));} } break; @@ -6033,8 +5955,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2829 "parser.y" - {(yyval.constant) = constant_new_float((yyvsp[(1) - (1)].number_float));} +#line 2668 "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; @@ -6044,8 +5966,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2830 "parser.y" - {(yyval.constant) = constant_new_string2((yyvsp[(1) - (1)].str).str,(yyvsp[(1) - (1)].str).len);free((char*)(yyvsp[(1) - (1)].str).str);} +#line 2669 "parser.y" + {(yyval.constant) = constant_new_true((yyvsp[(1) - (1)].token));} } break; @@ -6055,8 +5977,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2832 "parser.y" - {(yyval.constant) = constant_new_true((yyvsp[(1) - (1)].token));} +#line 2670 "parser.y" + {(yyval.constant) = constant_new_false((yyvsp[(1) - (1)].token));} } break; @@ -6066,8 +5988,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2833 "parser.y" - {(yyval.constant) = constant_new_false((yyvsp[(1) - (1)].token));} +#line 2671 "parser.y" + {(yyval.constant) = constant_new_null((yyvsp[(1) - (1)].token));} } break; @@ -6077,8 +5999,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2834 "parser.y" - {(yyval.constant) = constant_new_null((yyvsp[(1) - (1)].token));} +#line 2672 "parser.y" + {(yyval.constant) = constant_new_undefined((yyvsp[(1) - (1)].token));} } break; @@ -6088,15 +6010,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2835 "parser.y" - { - if(!strcmp((yyvsp[(1) - (1)].id), "NaN")) { - (yyval.constant) = constant_new_float(__builtin_nan("")); - } else { - as3_warning("Couldn't evaluate constant value of %s", (yyvsp[(1) - (1)].id)); - (yyval.constant) = constant_new_null((yyvsp[(1) - (1)].id)); - } -} +#line 2673 "parser.y" + {(yyval.constant) = constant_new_float(__builtin_nan(""));} } break; @@ -6106,7 +6021,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2847 "parser.y" +#line 2688 "parser.y" { PASS12 memset(&(yyval.params),0,sizeof((yyval.params))); @@ -6120,7 +6035,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2851 "parser.y" +#line 2692 "parser.y" { PASS12 (yyval.params)=(yyvsp[(1) - (1)].params); @@ -6134,7 +6049,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2857 "parser.y" +#line 2698 "parser.y" { PASS12 memset(&(yyval.params),0,sizeof((yyval.params))); @@ -6150,7 +6065,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2863 "parser.y" +#line 2704 "parser.y" { PASS12 (yyval.params) =(yyvsp[(1) - (4)].params); @@ -6166,7 +6081,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2871 "parser.y" +#line 2712 "parser.y" { PASS12 (yyval.params) = (yyvsp[(1) - (3)].params); @@ -6181,7 +6096,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2876 "parser.y" +#line 2717 "parser.y" { PASS12 memset(&(yyval.params),0,sizeof((yyval.params))); @@ -6196,7 +6111,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2882 "parser.y" +#line 2723 "parser.y" { PASS12 (yyval.param) = rfx_calloc(sizeof(param_t)); @@ -6214,7 +6129,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2890 "parser.y" +#line 2731 "parser.y" { PASS12 (yyval.param) = rfx_calloc(sizeof(param_t)); @@ -6232,7 +6147,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2900 "parser.y" +#line 2741 "parser.y" {PASS12 (yyval.token)=0;} } break; @@ -6243,7 +6158,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2903 "parser.y" +#line 2744 "parser.y" {PASS12 startfunction(&(yyvsp[(1) - (9)].flags),(yyvsp[(3) - (9)].token),(yyvsp[(4) - (9)].id),&(yyvsp[(6) - (9)].params),(yyvsp[(8) - (9)].classinfo));} } break; @@ -6254,7 +6169,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2904 "parser.y" +#line 2745 "parser.y" { PASS1 endfunction(&(yyvsp[(1) - (12)].flags),(yyvsp[(3) - (12)].token),(yyvsp[(4) - (12)].id),&(yyvsp[(6) - (12)].params),0,0); @@ -6278,7 +6193,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2920 "parser.y" +#line 2761 "parser.y" {PASS12 (yyval.id)=0;} } break; @@ -6289,7 +6204,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2922 "parser.y" +#line 2763 "parser.y" {PASS12 innerfunction((yyvsp[(2) - (7)].id),&(yyvsp[(4) - (7)].params),(yyvsp[(6) - (7)].classinfo));} } break; @@ -6300,7 +6215,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2923 "parser.y" +#line 2764 "parser.y" { PASS1 endfunction(0,0,(yyvsp[(2) - (10)].id),&(yyvsp[(4) - (10)].params),0,0); @@ -6328,7 +6243,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2945 "parser.y" +#line 2786 "parser.y" { PASS1 NEW(unresolvedinfo_t,c); memset(c, 0, sizeof(*c)); @@ -6339,7 +6254,7 @@ PASS2 c->nsset = get_current_imports(); /* make the compiler look for this class in the current directory, just in case: */ - //as3_schedule_class_noerror(state->package, $1); + as3_schedule_class_noerror(state->package, (yyvsp[(1) - (1)].id)); } (yyval.classinfo) = (classinfo_t*)c; PASS2 @@ -6356,7 +6271,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2964 "parser.y" +#line 2805 "parser.y" { PASS1 NEW(unresolvedinfo_t,c); memset(c, 0, sizeof(*c)); @@ -6379,7 +6294,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2981 "parser.y" +#line 2822 "parser.y" {PASS12 (yyval.classinfo_list)=list_new();list_append((yyval.classinfo_list), (yyvsp[(1) - (1)].classinfo));} } break; @@ -6390,7 +6305,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2982 "parser.y" +#line 2823 "parser.y" {PASS12 (yyval.classinfo_list)=(yyvsp[(1) - (3)].classinfo_list);list_append((yyval.classinfo_list),(yyvsp[(3) - (3)].classinfo));} } break; @@ -6401,7 +6316,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2984 "parser.y" +#line 2825 "parser.y" {PASS12 (yyval.classinfo)=(yyvsp[(1) - (1)].classinfo);} } break; @@ -6412,7 +6327,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2985 "parser.y" +#line 2826 "parser.y" {PASS12 (yyval.classinfo)=registry_getanytype();} } break; @@ -6423,7 +6338,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2986 "parser.y" +#line 2827 "parser.y" {PASS12 (yyval.classinfo)=registry_getanytype();} } break; @@ -6434,7 +6349,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2995 "parser.y" +#line 2836 "parser.y" {PASS12 (yyval.classinfo)=(yyvsp[(2) - (2)].classinfo);} } break; @@ -6445,7 +6360,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2996 "parser.y" +#line 2837 "parser.y" {PASS12 (yyval.classinfo)=0;} } break; @@ -6456,7 +6371,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3000 "parser.y" +#line 2841 "parser.y" {(yyval.value_list).cc=0;(yyval.value_list).number=0;} } break; @@ -6467,7 +6382,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3001 "parser.y" +#line 2842 "parser.y" {(yyval.value_list)=(yyvsp[(2) - (3)].value_list);} } break; @@ -6478,7 +6393,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3003 "parser.y" +#line 2844 "parser.y" {(yyval.value_list).cc=0;(yyval.value_list).number=0;} } break; @@ -6489,7 +6404,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3007 "parser.y" +#line 2848 "parser.y" {(yyval.value_list).number=1; (yyval.value_list).cc = (yyvsp[(1) - (1)].value).c; } @@ -6502,7 +6417,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3011 "parser.y" +#line 2852 "parser.y" {(yyval.value_list) = (yyvsp[(1) - (2)].value_list);} } break; @@ -6513,7 +6428,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3012 "parser.y" +#line 2853 "parser.y" { (yyval.value_list).number= (yyvsp[(1) - (2)].value_list).number+1; (yyval.value_list).cc = code_append((yyvsp[(1) - (2)].value_list).cc, (yyvsp[(2) - (2)].value).c); @@ -6527,9 +6442,10 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3018 "parser.y" +#line 2859 "parser.y" { - (yyval.value).c = (yyvsp[(2) - (4)].value).c; + typedcode_t v = node_read((yyvsp[(2) - (4)].node)); + (yyval.value).c = v.c; if((yyval.value).c->opcode == OPCODE_COERCE_A) (yyval.value).c = code_cutlast((yyval.value).c); code_t*paramcode = (yyvsp[(4) - (4)].value_list).cc; @@ -6552,8 +6468,8 @@ PASS2 } (yyval.value).t = TYPE_ANY; - if(TYPE_IS_CLASS((yyvsp[(2) - (4)].value).t) && (yyvsp[(2) - (4)].value).t->data) { - (yyval.value).t = (yyvsp[(2) - (4)].value).t->data; + if(TYPE_IS_CLASS(v.t) && v.t->data) { + (yyval.value).t = v.t->data; } else { (yyval.value).c = abc_coerce_a((yyval.value).c); (yyval.value).t = TYPE_ANY; @@ -6568,10 +6484,11 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3054 "parser.y" +#line 2896 "parser.y" { - - (yyval.value).c = (yyvsp[(1) - (4)].value).c; + + typedcode_t v = node_read((yyvsp[(1) - (4)].node)); + (yyval.value).c = v.c; if((yyval.value).c->opcode == OPCODE_COERCE_A) { (yyval.value).c = code_cutlast((yyval.value).c); } @@ -6607,8 +6524,8 @@ PASS2 (yyval.value).c = abc_call((yyval.value).c, (yyvsp[(3) - (4)].value_list).number); } - 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; + if(TYPE_IS_FUNCTION(v.t) && v.t->data) { + (yyval.value).t = ((methodinfo_t*)(v.t->data))->return_type; } else { (yyval.value).c = abc_coerce_a((yyval.value).c); (yyval.value).t = TYPE_ANY; @@ -6623,7 +6540,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3100 "parser.y" +#line 2943 "parser.y" { if(!state->cls) syntaxerror("super() not allowed outside of a class"); if(!state->method) syntaxerror("super() not allowed outside of a function"); @@ -6653,9 +6570,10 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3121 "parser.y" +#line 2964 "parser.y" { - (yyval.value).c = (yyvsp[(2) - (2)].value).c; + typedcode_t v = node_read((yyvsp[(2) - (2)].node)); + (yyval.value).c = v.c; if((yyval.value).c->opcode == OPCODE_COERCE_A) { (yyval.value).c = code_cutlast((yyval.value).c); } @@ -6669,7 +6587,7 @@ PASS2 (yyval.value).c = abc_deleteproperty2((yyval.value).c, name); } else { (yyval.value).c = abc_getlocal_0((yyval.value).c); - MULTINAME_LATE(m, (yyvsp[(2) - (2)].value).t?(yyvsp[(2) - (2)].value).t->access:ACCESS_PACKAGE, ""); + MULTINAME_LATE(m, v.t?v.t->access:ACCESS_PACKAGE, ""); (yyval.value).c = abc_deleteproperty2((yyval.value).c, &m); } (yyval.value).t = TYPE_BOOLEAN; @@ -6683,7 +6601,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3142 "parser.y" +#line 2986 "parser.y" { (yyval.code) = abc_returnvoid(0); } @@ -6696,7 +6614,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3145 "parser.y" +#line 2989 "parser.y" { (yyval.code) = (yyvsp[(2) - (2)].value).c; (yyval.code) = abc_returnvalue((yyval.code)); @@ -6710,8 +6628,10 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3152 "parser.y" - {(yyval.value)=(yyvsp[(1) - (1)].value);} +#line 2996 "parser.y" + { + (yyval.value) = node_read((yyvsp[(1) - (1)].node)); +} } break; @@ -6721,8 +6641,10 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3153 "parser.y" - {(yyval.value) = (yyvsp[(1) - (1)].value);} +#line 2999 "parser.y" + { + (yyval.value) = node_read((yyvsp[(1) - (1)].node)); +} } break; @@ -6732,12 +6654,9 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3154 "parser.y" +#line 3002 "parser.y" { - (yyval.value).c = (yyvsp[(1) - (3)].value).c; - (yyval.value).c = cut_last_push((yyval.value).c); - (yyval.value).c = code_append((yyval.value).c,(yyvsp[(3) - (3)].value).c); - (yyval.value).t = (yyvsp[(3) - (3)].value).t; + (yyval.node) = mkmultinode(&node_comma, (yyvsp[(1) - (1)].node)); } } break; @@ -6748,9 +6667,9 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3160 "parser.y" +#line 3005 "parser.y" { - (yyval.code)=cut_last_push((yyvsp[(1) - (1)].value).c); + (yyval.node) = multinode_extend((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } } break; @@ -6761,8 +6680,24 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3166 "parser.y" - {(yyval.value) = (yyvsp[(1) - (1)].value);} +#line 3008 "parser.y" + { + (yyval.code) = node_exec((yyvsp[(1) - (1)].node)); +} + } + break; + + + + case 226: + if(as3_pass==2) { + +/* Line 1464 of skeleton.m4 */ +#line 3011 "parser.y" + { + (yyval.code) = (yyvsp[(1) - (3)].code); + (yyval.code) = code_append((yyval.code), node_exec((yyvsp[(3) - (3)].node))); +} } break; @@ -6772,8 +6707,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3170 "parser.y" - {(yyval.value) = (yyvsp[(1) - (1)].value);} +#line 3016 "parser.y" + {(yyval.value_list).cc=0;(yyval.value_list).number=0;} } break; @@ -6783,8 +6718,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3172 "parser.y" - {(yyval.value) = (yyvsp[(1) - (1)].value);} +#line 3017 "parser.y" + {(yyval.value_list)=(yyvsp[(1) - (1)].value_list);} } break; @@ -6794,49 +6729,51 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3174 "parser.y" - {(yyval.value) = (yyvsp[(1) - (1)].value);} +#line 3019 "parser.y" + { + (yyval.value_list).cc = 0; + (yyval.value_list).cc = code_append((yyval.value_list).cc, (yyvsp[(1) - (3)].value).c); + (yyval.value_list).cc = code_append((yyval.value_list).cc, (yyvsp[(3) - (3)].value).c); + (yyval.value_list).number = 2; +} } break; - case 231: + case 230: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3178 "parser.y" +#line 3025 "parser.y" { - (yyval.value).c = 0; - namespace_t ns = {ACCESS_PACKAGE, ""}; - multiname_t m = {QNAME, &ns, 0, "RegExp"}; - if(!(yyvsp[(1) - (1)].regexp).options) { - (yyval.value).c = abc_getlex2((yyval.value).c, &m); - (yyval.value).c = abc_pushstring((yyval.value).c, (yyvsp[(1) - (1)].regexp).pattern); - (yyval.value).c = abc_construct((yyval.value).c, 1); - } else { - (yyval.value).c = abc_getlex2((yyval.value).c, &m); - (yyval.value).c = abc_pushstring((yyval.value).c, (yyvsp[(1) - (1)].regexp).pattern); - (yyval.value).c = abc_pushstring((yyval.value).c, (yyvsp[(1) - (1)].regexp).options); - (yyval.value).c = abc_construct((yyval.value).c, 2); - } - (yyval.value).t = TYPE_REGEXP; + (yyval.value_list).cc = (yyvsp[(1) - (5)].value_list).cc; + (yyval.value_list).number = (yyvsp[(1) - (5)].value_list).number+2; + (yyval.value_list).cc = code_append((yyval.value_list).cc, (yyvsp[(3) - (5)].value).c); + (yyval.value_list).cc = code_append((yyval.value_list).cc, (yyvsp[(5) - (5)].value).c); } } break; + case 231: + if(as3_pass==2) { + +/* Line 1464 of skeleton.m4 */ +#line 3034 "parser.y" + {(yyval.node) = mkcodenode((yyvsp[(1) - (1)].value));} + } + break; + + + case 232: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3195 "parser.y" - {(yyval.value).c = abc_pushbyte(0, (yyvsp[(1) - (1)].number_uint)); - //MULTINAME(m, registry_getintclass()); - //$$.c = abc_coerce2($$.c, &m); // FIXME - (yyval.value).t = TYPE_INT; - } +#line 3035 "parser.y" + {(yyval.node) = mkcodenode((yyvsp[(1) - (1)].value));} } break; @@ -6846,10 +6783,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3200 "parser.y" - {(yyval.value).c = abc_pushshort(0, (yyvsp[(1) - (1)].number_uint)); - (yyval.value).t = TYPE_INT; - } +#line 3036 "parser.y" + {(yyval.node) = mkcodenode((yyvsp[(1) - (1)].value));} } break; @@ -6859,10 +6794,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3203 "parser.y" - {(yyval.value).c = abc_pushint(0, (yyvsp[(1) - (1)].number_int)); - (yyval.value).t = TYPE_INT; - } +#line 3037 "parser.y" + {(yyval.node) = mkcodenode((yyvsp[(1) - (1)].value));} } break; @@ -6872,10 +6805,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3206 "parser.y" - {(yyval.value).c = abc_pushuint(0, (yyvsp[(1) - (1)].number_uint)); - (yyval.value).t = TYPE_UINT; - } +#line 3038 "parser.y" + {(yyval.node) = mkcodenode((yyvsp[(1) - (1)].value));} } break; @@ -6885,10 +6816,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3209 "parser.y" - {(yyval.value).c = abc_pushdouble(0, (yyvsp[(1) - (1)].number_float)); - (yyval.value).t = TYPE_FLOAT; - } +#line 3039 "parser.y" + {(yyval.node) = mkcodenode((yyvsp[(1) - (1)].value));} } break; @@ -6898,10 +6827,10 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3212 "parser.y" - {(yyval.value).c = abc_pushstring2(0, &(yyvsp[(1) - (1)].str));free((char*)(yyvsp[(1) - (1)].str).str); - (yyval.value).t = TYPE_STRING; - } +#line 3041 "parser.y" + { + (yyval.node) = mkconstnode((yyvsp[(1) - (1)].constant)); +} } break; @@ -6911,10 +6840,25 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3215 "parser.y" - {(yyval.value).c = abc_pushundefined(0); - (yyval.value).t = TYPE_ANY; - } +#line 3046 "parser.y" + { + typedcode_t v; + v.c = 0; + namespace_t ns = {ACCESS_PACKAGE, ""}; + multiname_t m = {QNAME, &ns, 0, "RegExp"}; + if(!(yyvsp[(1) - (1)].regexp).options) { + v.c = abc_getlex2(v.c, &m); + v.c = abc_pushstring(v.c, (yyvsp[(1) - (1)].regexp).pattern); + v.c = abc_construct(v.c, 1); + } else { + v.c = abc_getlex2(v.c, &m); + v.c = abc_pushstring(v.c, (yyvsp[(1) - (1)].regexp).pattern); + v.c = abc_pushstring(v.c, (yyvsp[(1) - (1)].regexp).options); + v.c = abc_construct(v.c, 2); + } + v.t = TYPE_REGEXP; + (yyval.node) = mkcodenode(v); +} } break; @@ -6924,10 +6868,15 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3218 "parser.y" - {(yyval.value).c = abc_pushtrue(0); - (yyval.value).t = TYPE_BOOLEAN; - } +#line 3066 "parser.y" + { + typedcode_t v; + v.c = code_new(); + v.c = code_append(v.c, (yyvsp[(2) - (3)].value_list).cc); + v.c = abc_newarray(v.c, (yyvsp[(2) - (3)].value_list).number); + v.t = registry_getarrayclass(); + (yyval.node) = mkcodenode(v); +} } break; @@ -6937,10 +6886,15 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3221 "parser.y" - {(yyval.value).c = abc_pushfalse(0); - (yyval.value).t = TYPE_BOOLEAN; - } +#line 3076 "parser.y" + { + typedcode_t v; + v.c = code_new(); + v.c = code_append(v.c, (yyvsp[(2) - (3)].value_list).cc); + v.c = abc_newobject(v.c, (yyvsp[(2) - (3)].value_list).number/2); + v.t = registry_getobjectclass(); + (yyval.node) = mkcodenode(v); +} } break; @@ -6950,10 +6904,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3224 "parser.y" - {(yyval.value).c = abc_pushnull(0); - (yyval.value).t = TYPE_NULL; - } +#line 3085 "parser.y" + {(yyval.node) = mknode2(&node_lt,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));} } break; @@ -6963,10 +6915,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3228 "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; - } +#line 3086 "parser.y" + {(yyval.node) = mknode2(&node_gt,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));} } break; @@ -6976,10 +6926,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3231 "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; - } +#line 3087 "parser.y" + {(yyval.node) = mknode2(&node_le,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));} } break; @@ -6989,10 +6937,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3234 "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; - } +#line 3088 "parser.y" + {(yyval.node) = mknode2(&node_ge,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));} } break; @@ -7002,10 +6948,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3237 "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; - } +#line 3089 "parser.y" + {(yyval.node) = mknode2(&node_eqeq,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));} } break; @@ -7015,10 +6959,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3240 "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; - } +#line 3090 "parser.y" + {(yyval.node) = mknode2(&node_eqeqeq,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));} } break; @@ -7028,10 +6970,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3243 "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; - } +#line 3091 "parser.y" + {(yyval.node) = mknode2(&node_noteqeq,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));} } break; @@ -7041,10 +6981,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3246 "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; - } +#line 3092 "parser.y" + {(yyval.node) = mknode2(&node_noteq,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));} } break; @@ -7054,10 +6992,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3249 "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; - } +#line 3093 "parser.y" + {(yyval.node) = mknode2(&node_oror,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));} } break; @@ -7067,18 +7003,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3253 "parser.y" - {(yyval.value).t = join_types((yyvsp[(1) - (3)].value).t, (yyvsp[(3) - (3)].value).t, 'O'); - (yyval.value).c = (yyvsp[(1) - (3)].value).c; - (yyval.value).c = converttype((yyval.value).c, (yyvsp[(1) - (3)].value).t, (yyval.value).t); - (yyval.value).c = abc_dup((yyval.value).c); - code_t*jmp = (yyval.value).c = abc_iftrue((yyval.value).c, 0); - (yyval.value).c = cut_last_push((yyval.value).c); - (yyval.value).c = code_append((yyval.value).c,(yyvsp[(3) - (3)].value).c); - (yyval.value).c = converttype((yyval.value).c, (yyvsp[(3) - (3)].value).t, (yyval.value).t); - code_t*label = (yyval.value).c = abc_label((yyval.value).c); - jmp->branch = label; - } +#line 3094 "parser.y" + {(yyval.node) = mknode2(&node_andand,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));} } break; @@ -7088,24 +7014,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3264 "parser.y" - { - (yyval.value).t = join_types((yyvsp[(1) - (3)].value).t, (yyvsp[(3) - (3)].value).t, 'A'); - /*printf("%08x:\n",$1.t); - code_dump($1.c, 0, 0, "", stdout); - printf("%08x:\n",$3.t); - code_dump($3.c, 0, 0, "", stdout); - printf("joining %08x and %08x to %08x\n", $1.t, $3.t, $$.t);*/ - (yyval.value).c = (yyvsp[(1) - (3)].value).c; - (yyval.value).c = converttype((yyval.value).c, (yyvsp[(1) - (3)].value).t, (yyval.value).t); - (yyval.value).c = abc_dup((yyval.value).c); - code_t*jmp = (yyval.value).c = abc_iffalse((yyval.value).c, 0); - (yyval.value).c = cut_last_push((yyval.value).c); - (yyval.value).c = code_append((yyval.value).c,(yyvsp[(3) - (3)].value).c); - (yyval.value).c = converttype((yyval.value).c, (yyvsp[(3) - (3)].value).t, (yyval.value).t); - code_t*label = (yyval.value).c = abc_label((yyval.value).c); - jmp->branch = label; - } +#line 3095 "parser.y" + {(yyval.node) = mknode1(&node_not, (yyvsp[(2) - (2)].node));} } break; @@ -7115,11 +7025,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3282 "parser.y" - {(yyval.value).c=(yyvsp[(2) - (2)].value).c; - (yyval.value).c = abc_not((yyval.value).c); - (yyval.value).t = TYPE_BOOLEAN; - } +#line 3096 "parser.y" + {(yyval.node) = mknode1(&node_bitnot, (yyvsp[(2) - (2)].node));} } break; @@ -7129,11 +7036,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3287 "parser.y" - {(yyval.value).c=(yyvsp[(2) - (2)].value).c; - (yyval.value).c = abc_bitnot((yyval.value).c); - (yyval.value).t = TYPE_INT; - } +#line 3097 "parser.y" + {(yyval.node) = mknode2(&node_bitand, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; @@ -7143,11 +7047,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3292 "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; - } +#line 3098 "parser.y" + {(yyval.node) = mknode2(&node_bitxor, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; @@ -7157,11 +7058,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3297 "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; - } +#line 3099 "parser.y" + {(yyval.node) = mknode2(&node_bitor, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; @@ -7171,11 +7069,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3302 "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; - } +#line 3100 "parser.y" + {(yyval.node) = mknode2(&node_shr, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; @@ -7185,11 +7080,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3307 "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; - } +#line 3101 "parser.y" + {(yyval.node) = mknode2(&node_ushr, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; @@ -7199,11 +7091,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3311 "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; - } +#line 3102 "parser.y" + {(yyval.node) = mknode2(&node_shl, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; @@ -7213,11 +7102,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3315 "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; - } +#line 3103 "parser.y" + {(yyval.node) = mknode2(&node_div, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; @@ -7227,11 +7113,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3320 "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; - } +#line 3104 "parser.y" + {(yyval.node) = mknode2(&node_mod, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; @@ -7241,11 +7124,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3324 "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; - } +#line 3105 "parser.y" + {(yyval.node) = mknode2(&node_plus, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; @@ -7255,16 +7135,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3328 "parser.y" - {(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c); - if(BOTH_INT((yyvsp[(1) - (3)].value).t, (yyvsp[(3) - (3)].value).t)) { - (yyval.value).c = abc_add_i((yyval.value).c); - (yyval.value).t = TYPE_INT; - } else { - (yyval.value).c = abc_add((yyval.value).c); - (yyval.value).t = join_types((yyvsp[(1) - (3)].value).t,(yyvsp[(3) - (3)].value).t,'+'); - } - } +#line 3106 "parser.y" + {(yyval.node) = mknode2(&node_minus, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; @@ -7274,16 +7146,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3337 "parser.y" - {(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c); - if(BOTH_INT((yyvsp[(1) - (3)].value).t,(yyvsp[(3) - (3)].value).t)) { - (yyval.value).c = abc_subtract_i((yyval.value).c); - (yyval.value).t = TYPE_INT; - } else { - (yyval.value).c = abc_subtract((yyval.value).c); - (yyval.value).t = TYPE_NUMBER; - } - } +#line 3107 "parser.y" + {(yyval.node) = mknode2(&node_multiply, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; @@ -7293,16 +7157,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3346 "parser.y" - {(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c); - if(BOTH_INT((yyvsp[(1) - (3)].value).t,(yyvsp[(3) - (3)].value).t)) { - (yyval.value).c = abc_multiply_i((yyval.value).c); - (yyval.value).t = TYPE_INT; - } else { - (yyval.value).c = abc_multiply((yyval.value).c); - (yyval.value).t = TYPE_NUMBER; - } - } +#line 3108 "parser.y" + {(yyval.node) = mknode2(&node_in, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; @@ -7312,11 +7168,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3356 "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; - } +#line 3109 "parser.y" + {(yyval.node) = mknode2(&node_as, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; @@ -7326,18 +7179,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3361 "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) && (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->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); - (yyval.value).t = TYPE_ANY; - } - } +#line 3110 "parser.y" + {(yyval.node) = mknode2(&node_instanceof, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; @@ -7347,11 +7190,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3374 "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; - } +#line 3111 "parser.y" + {(yyval.node) = mknode2(&node_is, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; @@ -7361,11 +7201,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3379 "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; - } +#line 3112 "parser.y" + {(yyval.node) = mknode1(&node_typeof, (yyvsp[(3) - (4)].node));} } break; @@ -7375,12 +7212,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3384 "parser.y" - { - (yyval.value).c = (yyvsp[(3) - (4)].value).c; - (yyval.value).c = abc_typeof((yyval.value).c); - (yyval.value).t = TYPE_STRING; - } +#line 3113 "parser.y" + {(yyval.node) = mknode1(&node_void, (yyvsp[(2) - (2)].node));} } break; @@ -7390,12 +7223,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3390 "parser.y" - { - (yyval.value).c = cut_last_push((yyvsp[(2) - (2)].value).c); - (yyval.value).c = abc_pushundefined((yyval.value).c); - (yyval.value).t = TYPE_ANY; - } +#line 3114 "parser.y" + { (yyval.node) = mkconstnode(constant_new_undefined());} } break; @@ -7405,10 +7234,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3396 "parser.y" - { (yyval.value).c = abc_pushundefined(0); - (yyval.value).t = TYPE_ANY; - } +#line 3115 "parser.y" + { (yyval.node)=(yyvsp[(2) - (3)].node);} } break; @@ -7418,8 +7245,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3400 "parser.y" - {(yyval.value)=(yyvsp[(2) - (3)].value);} +#line 3116 "parser.y" + {(yyval.node) = mknode1(&node_neg, (yyvsp[(2) - (2)].node));} } break; @@ -7429,17 +7256,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3402 "parser.y" - { - (yyval.value)=(yyvsp[(2) - (2)].value); - if(IS_INT((yyvsp[(2) - (2)].value).t)) { - (yyval.value).c=abc_negate_i((yyval.value).c); - (yyval.value).t = TYPE_INT; - } else { - (yyval.value).c=abc_negate((yyval.value).c); - (yyval.value).t = TYPE_NUMBER; - } -} +#line 3117 "parser.y" + {(yyval.node) = mknode2(&node_arraylookup, (yyvsp[(1) - (4)].node),(yyvsp[(3) - (4)].node));} } break; @@ -7449,15 +7267,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3413 "parser.y" - { - (yyval.value).c = (yyvsp[(1) - (4)].value).c; - (yyval.value).c = code_append((yyval.value).c, (yyvsp[(3) - (4)].value).c); - - MULTINAME_LATE(m, (yyvsp[(1) - (4)].value).t?(yyvsp[(1) - (4)].value).t->access:ACCESS_PACKAGE, ""); - (yyval.value).c = abc_getproperty2((yyval.value).c, &m); - (yyval.value).t = 0; // array elements have unknown type -} +#line 3118 "parser.y" + {(yyval.node) = mknode2(&node_muleq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; @@ -7467,13 +7278,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3422 "parser.y" - { - (yyval.value).c = code_new(); - (yyval.value).c = code_append((yyval.value).c, (yyvsp[(2) - (3)].value_list).cc); - (yyval.value).c = abc_newarray((yyval.value).c, (yyvsp[(2) - (3)].value_list).number); - (yyval.value).t = registry_getarrayclass(); -} +#line 3119 "parser.y" + {(yyval.node) = mknode2(&node_modeq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; @@ -7483,8 +7289,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3429 "parser.y" - {(yyval.value_list).cc=0;(yyval.value_list).number=0;} +#line 3120 "parser.y" + {(yyval.node) = mknode2(&node_shleq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; @@ -7494,8 +7300,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3430 "parser.y" - {(yyval.value_list)=(yyvsp[(1) - (1)].value_list);} +#line 3121 "parser.y" + {(yyval.node) = mknode2(&node_shreq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; @@ -7505,13 +7311,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3432 "parser.y" - { - (yyval.value_list).cc = 0; - (yyval.value_list).cc = code_append((yyval.value_list).cc, (yyvsp[(1) - (3)].value).c); - (yyval.value_list).cc = code_append((yyval.value_list).cc, (yyvsp[(3) - (3)].value).c); - (yyval.value_list).number = 2; -} +#line 3122 "parser.y" + {(yyval.node) = mknode2(&node_ushreq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; @@ -7521,13 +7322,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3438 "parser.y" - { - (yyval.value_list).cc = (yyvsp[(1) - (5)].value_list).cc; - (yyval.value_list).number = (yyvsp[(1) - (5)].value_list).number+2; - (yyval.value_list).cc = code_append((yyval.value_list).cc, (yyvsp[(3) - (5)].value).c); - (yyval.value_list).cc = code_append((yyval.value_list).cc, (yyvsp[(5) - (5)].value).c); -} +#line 3123 "parser.y" + { (yyval.node) = mknode2(&node_diveq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; @@ -7537,13 +7333,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3447 "parser.y" - { - (yyval.value).c = code_new(); - (yyval.value).c = code_append((yyval.value).c, (yyvsp[(2) - (3)].value_list).cc); - (yyval.value).c = abc_newobject((yyval.value).c, (yyvsp[(2) - (3)].value_list).number/2); - (yyval.value).t = registry_getobjectclass(); -} +#line 3124 "parser.y" + { (yyval.node) = mknode2(&node_bitoreq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; @@ -7553,18 +7344,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3454 "parser.y" - { - code_t*c = (yyvsp[(3) - (3)].value).c; - if(BOTH_INT((yyvsp[(1) - (3)].value).t,(yyvsp[(3) - (3)].value).t)) { - c=abc_multiply_i(c); - } else { - c=abc_multiply(c); - } - c=converttype(c, join_types((yyvsp[(1) - (3)].value).t, (yyvsp[(3) - (3)].value).t, '*'), (yyvsp[(1) - (3)].value).t); - (yyval.value).c = toreadwrite((yyvsp[(1) - (3)].value).c, c, 0, 0); - (yyval.value).t = (yyvsp[(1) - (3)].value).t; - } +#line 3125 "parser.y" + { (yyval.node) = mknode2(&node_bitxoreq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; @@ -7574,13 +7355,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3466 "parser.y" - { - code_t*c = abc_modulo((yyvsp[(3) - (3)].value).c); - c=converttype(c, join_types((yyvsp[(1) - (3)].value).t, (yyvsp[(3) - (3)].value).t, '%'), (yyvsp[(1) - (3)].value).t); - (yyval.value).c = toreadwrite((yyvsp[(1) - (3)].value).c, c, 0, 0); - (yyval.value).t = (yyvsp[(1) - (3)].value).t; - } +#line 3126 "parser.y" + { (yyval.node) = mknode2(&node_bitandeq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; @@ -7590,13 +7366,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3472 "parser.y" - { - code_t*c = abc_lshift((yyvsp[(3) - (3)].value).c); - c=converttype(c, join_types((yyvsp[(1) - (3)].value).t, (yyvsp[(3) - (3)].value).t, '<'), (yyvsp[(1) - (3)].value).t); - (yyval.value).c = toreadwrite((yyvsp[(1) - (3)].value).c, c, 0, 0); - (yyval.value).t = (yyvsp[(1) - (3)].value).t; - } +#line 3127 "parser.y" + { (yyval.node) = mknode2(&node_pluseq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; @@ -7606,13 +7377,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3478 "parser.y" - { - code_t*c = abc_rshift((yyvsp[(3) - (3)].value).c); - c=converttype(c, join_types((yyvsp[(1) - (3)].value).t, (yyvsp[(3) - (3)].value).t, '>'), (yyvsp[(1) - (3)].value).t); - (yyval.value).c = toreadwrite((yyvsp[(1) - (3)].value).c, c, 0, 0); - (yyval.value).t = (yyvsp[(1) - (3)].value).t; - } +#line 3128 "parser.y" + { (yyval.node) = mknode2(&node_minuseq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; @@ -7622,13 +7388,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3484 "parser.y" - { - code_t*c = abc_urshift((yyvsp[(3) - (3)].value).c); - c=converttype(c, join_types((yyvsp[(1) - (3)].value).t, (yyvsp[(3) - (3)].value).t, 'U'), (yyvsp[(1) - (3)].value).t); - (yyval.value).c = toreadwrite((yyvsp[(1) - (3)].value).c, c, 0, 0); - (yyval.value).t = (yyvsp[(1) - (3)].value).t; - } +#line 3129 "parser.y" + { (yyval.node) = mknode2(&node_assign, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; @@ -7638,13 +7399,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3490 "parser.y" - { - code_t*c = abc_divide((yyvsp[(3) - (3)].value).c); - c=converttype(c, join_types((yyvsp[(1) - (3)].value).t, (yyvsp[(3) - (3)].value).t, '/'), (yyvsp[(1) - (3)].value).t); - (yyval.value).c = toreadwrite((yyvsp[(1) - (3)].value).c, c, 0, 0); - (yyval.value).t = (yyvsp[(1) - (3)].value).t; - } +#line 3130 "parser.y" + { (yyval.node) = mknode3(&node_tenary, (yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node));} } break; @@ -7654,13 +7410,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3496 "parser.y" - { - code_t*c = abc_bitor((yyvsp[(3) - (3)].value).c); - c=converttype(c, TYPE_INT, (yyvsp[(1) - (3)].value).t); - (yyval.value).c = toreadwrite((yyvsp[(1) - (3)].value).c, c, 0, 0); - (yyval.value).t = (yyvsp[(1) - (3)].value).t; - } +#line 3132 "parser.y" + { (yyval.node) = mknode1(&node_rplusplus, (yyvsp[(1) - (2)].node));} } break; @@ -7670,13 +7421,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3502 "parser.y" - { - code_t*c = abc_bitxor((yyvsp[(3) - (3)].value).c); - c=converttype(c, TYPE_INT, (yyvsp[(1) - (3)].value).t); - (yyval.value).c = toreadwrite((yyvsp[(1) - (3)].value).c, c, 0, 0); - (yyval.value).t = (yyvsp[(1) - (3)].value).t; - } +#line 3133 "parser.y" + { (yyval.node) = mknode1(&node_rminusminus, (yyvsp[(1) - (2)].node));} } break; @@ -7686,20 +7432,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3508 "parser.y" - { - code_t*c = (yyvsp[(3) - (3)].value).c; - - if(TYPE_IS_INT((yyvsp[(1) - (3)].value).t)) { - c=abc_add_i(c); - } else { - c=abc_add(c); - c=converttype(c, join_types((yyvsp[(1) - (3)].value).t, (yyvsp[(3) - (3)].value).t, '+'), (yyvsp[(1) - (3)].value).t); - } - - (yyval.value).c = toreadwrite((yyvsp[(1) - (3)].value).c, c, 0, 0); - (yyval.value).t = (yyvsp[(1) - (3)].value).t; - } +#line 3134 "parser.y" + {(yyval.node) = mknode1(&node_lplusplus, (yyvsp[(2) - (2)].node)); } } break; @@ -7709,18 +7443,8 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3521 "parser.y" - { code_t*c = (yyvsp[(3) - (3)].value).c; - if(TYPE_IS_INT((yyvsp[(1) - (3)].value).t)) { - c=abc_subtract_i(c); - } else { - c=abc_subtract(c); - c=converttype(c, join_types((yyvsp[(1) - (3)].value).t, (yyvsp[(3) - (3)].value).t, '-'), (yyvsp[(1) - (3)].value).t); - } - - (yyval.value).c = toreadwrite((yyvsp[(1) - (3)].value).c, c, 0, 0); - (yyval.value).t = (yyvsp[(1) - (3)].value).t; - } +#line 3135 "parser.y" + {(yyval.node) = mknode1(&node_lminusminus, (yyvsp[(2) - (2)].node)); } } break; @@ -7730,176 +7454,33 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3532 "parser.y" - { code_t*c = 0; - c = code_append(c, (yyvsp[(3) - (3)].value).c); - c = converttype(c, (yyvsp[(3) - (3)].value).t, (yyvsp[(1) - (3)].value).t); - (yyval.value).c = toreadwrite((yyvsp[(1) - (3)].value).c, c, 1, 0); - (yyval.value).t = (yyvsp[(1) - (3)].value).t; - } - } - break; - - - - case 292: - if(as3_pass==2) { - -/* Line 1464 of skeleton.m4 */ -#line 3539 "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; - code_t*j1 = (yyval.value).c = abc_iffalse((yyval.value).c, 0); - (yyval.value).c = code_append((yyval.value).c, (yyvsp[(3) - (5)].value).c); - (yyval.value).c = converttype((yyval.value).c, (yyvsp[(3) - (5)].value).t, (yyval.value).t); - code_t*j2 = (yyval.value).c = abc_jump((yyval.value).c, 0); - (yyval.value).c = j1->branch = abc_label((yyval.value).c); - (yyval.value).c = code_append((yyval.value).c, (yyvsp[(5) - (5)].value).c); - (yyval.value).c = converttype((yyval.value).c, (yyvsp[(5) - (5)].value).t, (yyval.value).t); - (yyval.value).c = j2->branch = abc_label((yyval.value).c); - } - } - break; - - - - case 293: - if(as3_pass==2) { - -/* Line 1464 of skeleton.m4 */ -#line 3552 "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))) { - int nr = getlocalnr((yyvsp[(1) - (2)].value).c); - code_free((yyvsp[(1) - (2)].value).c);(yyvsp[(1) - (2)].value).c=0; - if(TYPE_IS_INT((yyvsp[(1) - (2)].value).t)) { - (yyval.value).c = abc_getlocal(0, nr); - (yyval.value).c = abc_inclocal_i((yyval.value).c, nr); - } else if(TYPE_IS_NUMBER((yyvsp[(1) - (2)].value).t)) { - (yyval.value).c = abc_getlocal(0, nr); - (yyval.value).c = abc_inclocal((yyval.value).c, nr); - } else syntaxerror("internal error"); - } else { - if(TYPE_IS_INT(type) || TYPE_IS_UINT(type)) { - c=abc_increment_i(c); - type = TYPE_INT; - } else { - c=abc_increment(c); - type = TYPE_NUMBER; - } - c=converttype(c, type, (yyvsp[(1) - (2)].value).t); - (yyval.value).c = toreadwrite((yyvsp[(1) - (2)].value).c, c, 0, 1); - (yyval.value).t = (yyvsp[(1) - (2)].value).t; - } - } - } - break; - - - - case 294: - if(as3_pass==2) { - -/* Line 1464 of skeleton.m4 */ -#line 3579 "parser.y" - { code_t*c = 0; - classinfo_t*type = (yyvsp[(1) - (2)].value).t; - if(TYPE_IS_INT(type) || TYPE_IS_UINT(type)) { - c=abc_decrement_i(c); - type = TYPE_INT; - } else { - c=abc_decrement(c); - type = TYPE_NUMBER; - } - c=converttype(c, type, (yyvsp[(1) - (2)].value).t); - (yyval.value).c = toreadwrite((yyvsp[(1) - (2)].value).c, c, 0, 1); - (yyval.value).t = (yyvsp[(1) - (2)].value).t; - } - } - break; - - - - case 295: - if(as3_pass==2) { - -/* Line 1464 of skeleton.m4 */ -#line 3593 "parser.y" - { code_t*c = 0; - classinfo_t*type = (yyvsp[(2) - (2)].value).t; - if(TYPE_IS_INT(type) || TYPE_IS_UINT(type)) { - c=abc_increment_i(c); - type = TYPE_INT; - } else { - c=abc_increment(c); - type = TYPE_NUMBER; - } - c=converttype(c, type, (yyvsp[(2) - (2)].value).t); - (yyval.value).c = toreadwrite((yyvsp[(2) - (2)].value).c, c, 0, 0); - (yyval.value).t = (yyvsp[(2) - (2)].value).t; - } - } - break; - - - - case 296: - if(as3_pass==2) { - -/* Line 1464 of skeleton.m4 */ -#line 3607 "parser.y" - { code_t*c = 0; - classinfo_t*type = (yyvsp[(2) - (2)].value).t; - if(TYPE_IS_INT(type) || TYPE_IS_UINT(type)) { - c=abc_decrement_i(c); - type = TYPE_INT; - } else { - c=abc_decrement(c); - type = TYPE_NUMBER; - } - c=converttype(c, type, (yyvsp[(2) - (2)].value).t); - (yyval.value).c = toreadwrite((yyvsp[(2) - (2)].value).c, c, 0, 0); - (yyval.value).t = (yyvsp[(2) - (2)].value).t; - } - } - break; - - - - case 297: - if(as3_pass==2) { - -/* Line 1464 of skeleton.m4 */ -#line 3622 "parser.y" +#line 3138 "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 = findmember_nsset(t, (yyvsp[(3) - (3)].id), 1); - 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 = slotinfo_gettype((slotinfo_t*)f); + typedcode_t v; + v.c = 0; + v.c = abc_getlocal_0(v.c); + v.c = abc_getsuper2(v.c, &m); + v.t = slotinfo_gettype((slotinfo_t*)f); + (yyval.node) = mkcodenode(v); } } break; - case 298: + case 292: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3636 "parser.y" +#line 3152 "parser.y" { // attribute TODO - (yyval.value).c = abc_pushundefined(0); - (yyval.value).t = 0; + (yyval.node) = mkdummynode(); as3_warning("ignored @ operator"); } } @@ -7907,15 +7488,14 @@ PASS2 - case 299: + case 293: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3643 "parser.y" +#line 3158 "parser.y" { // child attribute TODO - (yyval.value).c = abc_pushundefined(0); - (yyval.value).t = 0; + (yyval.node) = mkdummynode(); as3_warning("ignored .@ operator"); } } @@ -7923,15 +7503,14 @@ PASS2 - case 300: + case 294: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3650 "parser.y" +#line 3164 "parser.y" { // namespace declaration TODO - (yyval.value).c = abc_pushundefined(0); - (yyval.value).t = 0; + (yyval.node) = mkdummynode(); as3_warning("ignored :: operator"); } } @@ -7939,15 +7518,14 @@ PASS2 - case 301: + case 295: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3657 "parser.y" +#line 3170 "parser.y" { // descendants TODO - (yyval.value).c = abc_pushundefined(0); - (yyval.value).t = 0; + (yyval.node) = mkdummynode(); as3_warning("ignored .. operator"); } } @@ -7955,15 +7533,14 @@ PASS2 - case 302: + case 296: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3664 "parser.y" +#line 3176 "parser.y" { // filter TODO - (yyval.value).c = abc_pushundefined(0); - (yyval.value).t = 0; + (yyval.node) = mkdummynode(); as3_warning("ignored .() operator"); } } @@ -7971,14 +7548,15 @@ PASS2 - case 303: + case 297: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3675 "parser.y" +#line 3189 "parser.y" { - (yyval.value).c = (yyvsp[(1) - (3)].value).c; - classinfo_t*t = (yyvsp[(1) - (3)].value).t; + typedcode_t v1 = node_read((yyvsp[(1) - (3)].node)); + (yyval.value).c = v1.c; + classinfo_t*t = v1.t; char is_static = 0; if(TYPE_IS_CLASS(t) && t->data) { t = t->data; @@ -7995,6 +7573,10 @@ PASS2 if(f && f->slot && !noslot) { (yyval.value).c = abc_getslot((yyval.value).c, f->slot); } else { + if(!f) { + as3_warning("Access of undefined property '%s' in %s", (yyvsp[(3) - (3)].id), t->name); + } + MEMBER_MULTINAME(m, f, (yyvsp[(3) - (3)].id)); (yyval.value).c = abc_getproperty2((yyval.value).c, &m); } @@ -8002,8 +7584,8 @@ PASS2 (yyval.value).t = slotinfo_gettype((slotinfo_t*)f); if(!(yyval.value).t) (yyval.value).c = abc_coerce_a((yyval.value).c); - } else if((yyvsp[(1) - (3)].value).c && (yyvsp[(1) - (3)].value).c->opcode == OPCODE___PUSHPACKAGE__) { - string_t*package = (yyvsp[(1) - (3)].value).c->data[0]; + } else if(v1.c && v1.c->opcode == OPCODE___PUSHPACKAGE__) { + string_t*package = v1.c->data[0]; char*package2 = concat3(package->str, ".", (yyvsp[(3) - (3)].id)); slotinfo_t*a = registry_find(package->str, (yyvsp[(3) - (3)].id)); @@ -8011,7 +7593,7 @@ PASS2 (yyval.value) = push_class(a); } else if(dict_contains(state->import_toplevel_packages, package2) || registry_ispackage(package2)) { - (yyval.value).c = (yyvsp[(1) - (3)].value).c; + (yyval.value).c = v1.c; (yyval.value).c->data[0] = string_new4(package2); (yyval.value).t = 0; } else { @@ -8021,6 +7603,7 @@ PASS2 /* when resolving a property on an unknown type, we do know the name of the property (and don't seem to need the package), but we need to make avm2 try out all access modes */ + as3_warning("Resolving %s on unknown type", (yyvsp[(3) - (3)].id)); multiname_t m = {MULTINAME, 0, &nopackage_namespace_set, (yyvsp[(3) - (3)].id)}; (yyval.value).c = abc_getproperty2((yyval.value).c, &m); (yyval.value).c = abc_coerce_a((yyval.value).c); @@ -8032,11 +7615,11 @@ PASS2 - case 304: + case 298: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3727 "parser.y" +#line 3247 "parser.y" { PASS1 /* Queue unresolved identifiers for checking against the parent @@ -8052,7 +7635,7 @@ PASS2 /* let the compiler know that it might want to check the current directory/package for this identifier- maybe there's a file $1.as defining $1. */ - //as3_schedule_class_noerror(state->package, $1); + as3_schedule_class_noerror(state->package, (yyvsp[(1) - (1)].id)); PASS2 (yyval.value).t = 0; @@ -8098,7 +7681,7 @@ PASS2 static properties of a class */ state->method->late_binding = 1; (yyval.value).t = f->type; - namespace_t ns = {f->access, ""}; + namespace_t ns = {f->access, f->package}; 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); @@ -8108,7 +7691,7 @@ PASS2 (yyval.value).c = abc_getslot((yyval.value).c, f->slot); break; } else { - namespace_t ns = {f->access, ""}; + namespace_t ns = {f->access, f->package}; 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); @@ -8148,11 +7731,11 @@ PASS2 - case 305: + case 299: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3836 "parser.y" +#line 3356 "parser.y" { PASS12 NEW(namespace_decl_t,n); @@ -8165,11 +7748,11 @@ PASS2 - case 306: + case 300: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3843 "parser.y" +#line 3363 "parser.y" { PASS12 NEW(namespace_decl_t,n); @@ -8182,11 +7765,11 @@ PASS2 - case 307: + case 301: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3850 "parser.y" +#line 3370 "parser.y" { PASS12 NEW(namespace_decl_t,n); @@ -8199,11 +7782,11 @@ PASS2 - case 308: + case 302: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3857 "parser.y" +#line 3377 "parser.y" { PASS12 trie_put(active_namespaces, (yyvsp[(2) - (2)].namespace_decl)->name, (void*)(yyvsp[(2) - (2)].namespace_decl)->url); @@ -8223,15 +7806,22 @@ PASS2 - case 309: + case 303: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3872 "parser.y" +#line 3401 "parser.y" { - + PASS12 const char*url = (yyvsp[(3) - (3)].classinfo)->name; + varinfo_t*s = (varinfo_t*)(yyvsp[(3) - (3)].classinfo); + if(s->kind == INFOTYPE_UNRESOLVED) { + s = (varinfo_t*)registry_resolve((slotinfo_t*)s); + if(!s) + syntaxerror("Couldn't resolve namespace %s", (yyvsp[(3) - (3)].classinfo)->name); + } + if(!s || s->kind != INFOTYPE_SLOT) syntaxerror("%s.%s is not a public namespace (%d)", (yyvsp[(3) - (3)].classinfo)->package, (yyvsp[(3) - (3)].classinfo)->name, s?s->kind:-1); if(!s->value || !NS_TYPE(s->value->type)) @@ -8249,7 +7839,7 @@ PASS2 /* Line 1464 of skeleton.m4 */ -#line 8253 "parser.tab.c" +#line 7843 "parser.tab.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);