X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fas3%2Fparser.tab.c;h=07942e1d4a0493bb013ad088fd05e108f02af722;hb=d040bee21c66541e231a68fea4936328e4ce4c39;hp=b67e11b5f235719a6548090ac33997df9831dcec;hpb=639ac6b9f7a89f10d02c5d9ef41bca3bad4eaf2b;p=swftools.git diff --git a/lib/as3/parser.tab.c b/lib/as3/parser.tab.c index b67e11b..07942e1 100644 --- a/lib/as3/parser.tab.c +++ b/lib/as3/parser.tab.c @@ -1,5 +1,5 @@ -/* A Bison parser, made by GNU Bison 2.4. */ +/* A Bison parser, made by GNU Bison 2.4.1. */ /* Skeleton implementation for Bison's Yacc-like parsers in C @@ -46,7 +46,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "2.4" +#define YYBISON_VERSION "2.4.1" /* Skeleton name. */ #define YYSKELETON_NAME "./skeleton.m4" @@ -185,53 +185,54 @@ extern int a3_lex(); 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_ANDBY = 336, - T_PLUSBY = 337, - T_MINUSBY = 338, - T_XORBY = 339, - T_SHRBY = 340, - T_SHLBY = 341, - T_USHRBY = 342, - T_OROR = 343, - T_ANDAND = 344, - T_COLONCOLON = 345, - T_MINUSMINUS = 346, - T_PLUSPLUS = 347, - T_DOTDOT = 348, - T_DOTDOTDOT = 349, - T_SHL = 350, - T_USHR = 351, - T_SHR = 352, - prec_none = 353, - below_semicolon = 354, - below_assignment = 355, - below_lt = 356, - below_minus = 357, - minusminus_prefix = 358, - plusplus_prefix = 359, - below_curly = 360, - new2 = 361, - above_identifier = 362, - below_else = 363, - above_function = 364 + KW_DEFAULT_XML = 318, + KW_DELETE = 319, + KW_IF = 320, + KW_ELSE = 321, + KW_BREAK = 322, + KW_IS = 323, + KW_IN = 324, + KW_AS = 325, + T_DICTSTART = 326, + T_EQEQ = 327, + T_EQEQEQ = 328, + T_NE = 329, + T_NEE = 330, + T_LE = 331, + T_GE = 332, + T_ORBY = 333, + T_DIVBY = 334, + T_MODBY = 335, + T_MULBY = 336, + T_ANDBY = 337, + T_PLUSBY = 338, + T_MINUSBY = 339, + T_XORBY = 340, + T_SHRBY = 341, + T_SHLBY = 342, + T_USHRBY = 343, + T_OROR = 344, + T_ANDAND = 345, + T_COLONCOLON = 346, + T_MINUSMINUS = 347, + T_PLUSPLUS = 348, + T_DOTDOT = 349, + T_DOTDOTDOT = 350, + T_SHL = 351, + T_USHR = 352, + T_SHR = 353, + prec_none = 354, + below_semicolon = 355, + below_assignment = 356, + below_lt = 357, + below_minus = 358, + minusminus_prefix = 359, + plusplus_prefix = 360, + below_curly = 361, + new2 = 362, + above_identifier = 363, + below_else = 364, + above_function = 365 }; #endif @@ -280,7 +281,7 @@ tokenunion /* Line 223 of skeleton.m4 */ -#line 284 "parser.tab.c" +#line 285 "parser.tab.c" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ @@ -291,7 +292,7 @@ tokenunion /* Copy the second part of user declarations. */ /* Line 273 of skeleton.m4 */ -#line 274 "parser.y" +#line 275 "parser.y" static int a3_error(char*s) @@ -348,6 +349,7 @@ typedef struct _classstate { methodstate_t*static_init; //code_t*init; //code_t*static_init; + parsedclass_t*dependencies; char has_constructor; } classstate_t; @@ -367,6 +369,7 @@ struct _methodstate { char inner; char uses_parent_function; + char no_variable_scoping; int uses_slots; dict_t*slots; int activation_var; @@ -386,6 +389,13 @@ struct _methodstate { methodstate_list_t*innerfunctions; }; +void methodstate_destroy(methodstate_t*m) +{ + dict_destroy(m->unresolved_variables); + m->unresolved_variables = 0; + list_free(m->innerfunctions);m->innerfunctions=0; +} + typedef struct _state { struct _state*old; int level; @@ -546,8 +556,7 @@ static void old_state() state = state->old; if(as3_pass>1 && leaving->method && leaving->method != state->method && !leaving->method->inner) { - free(leaving->method); - leaving->method=0; + methodstate_destroy(leaving->method);leaving->method=0; } if(as3_pass>1 && leaving->cls && leaving->cls != state->cls) { free(leaving->cls); @@ -589,10 +598,11 @@ 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); + state->method->variable_count = 0; if(!state->method) syntaxerror("internal error: skewed tokencount"); function_initvars(state->method, 0, 0, 0, 1); - global->init = abc_initscript(global->file); + global->init = 0; } } @@ -605,9 +615,12 @@ void finish_file() if(as3_pass==2) { dict_del(global->file2token2info, current_filename); code_t*header = method_header(state->method); - code_t*c = wrap_function(header, 0, global->init->method->body->code); - global->init->method->body->code = abc_returnvoid(c); - free(state->method);state->method=0; + //if(global->init->method->body->code || global->init->traits) { + if(global->init) { + code_t*c = wrap_function(header, 0, global->init->method->body->code); + global->init->method->body->code = abc_returnvoid(c); + free(state->method);state->method=0; + } } //free(state->package);state->package=0; // used in registry @@ -638,26 +651,31 @@ typedef struct _variable { int index; classinfo_t*type; char init; + char kill; char is_parameter; methodstate_t*is_inner_method; } variable_t; static variable_t* find_variable(state_t*s, char*name) { - state_t*top = s; - while(s) { - variable_t*v = 0; - v = dict_lookup(s->vars, name); - if(v) return v; - if(s->new_vars) break; - s = s->old; + if(s->method->no_variable_scoping) { + return dict_lookup(s->allvars, name); + } else { + state_t*top = s; + while(s) { + variable_t*v = 0; + v = dict_lookup(s->vars, name); + if(v) return v; + if(s->new_vars) break; + s = s->old; + } + return 0; } - return dict_lookup(top->allvars, name); } -static variable_t* find_slot(state_t*s, const char*name) +static variable_t* find_slot(methodstate_t*m, const char*name) { - if(s->method && s->method->slots) - return dict_lookup(s->method->slots, name); + if(m && m->slots) + return dict_lookup(m->slots, name); return 0; } @@ -684,6 +702,9 @@ static code_t*defaultvalue(code_t*c, classinfo_t*type) c = abc_pushnan(c); } else if(TYPE_IS_BOOLEAN(type)) { c = abc_pushfalse(c); + } else if(TYPE_IS_STRING(type)) { + c = abc_pushnull(c); + c = abc_coerce_s(c); } else if(!type) { //c = abc_pushundefined(c); syntaxerror("internal error: can't generate default value for * type"); @@ -700,29 +721,47 @@ static int alloc_local() return state->method->variable_count++; } -static variable_t* new_variable2(const char*name, classinfo_t*type, char init, char maybeslot) +static variable_t* new_variable2(methodstate_t*method, const char*name, classinfo_t*type, char init, char maybeslot) { if(maybeslot) { - variable_t*v = find_slot(state, name); - if(v) + variable_t*v = find_slot(method, name); + if(v) { + alloc_local(); return v; + } } NEW(variable_t, v); v->index = alloc_local(); v->type = type; - v->init = init; + v->init = v->kill = init; if(name) { - dict_put(state->vars, name, v); + if(!method->no_variable_scoping) + { + if(dict_contains(state->vars, name)) { + *(int*)0=0; + syntaxerror("variable %s already defined", name); + } + dict_put(state->vars, name, v); + } + if(method->no_variable_scoping && + as3_pass==2 && + dict_contains(state->allvars, name)) + { + variable_t*v = dict_lookup(state->allvars, name); + if(v->type != type) + syntaxerror("variable %s already defined.", name); + return v; + } dict_put(state->allvars, name, v); } return v; } -static int new_variable(const char*name, classinfo_t*type, char init, char maybeslot) +static int new_variable(methodstate_t*method, const char*name, classinfo_t*type, char init, char maybeslot) { - return new_variable2(name, type, init, maybeslot)->index; + return new_variable2(method, name, type, init, maybeslot)->index; } #define TEMPVARNAME "__as3_temp__" @@ -733,28 +772,23 @@ int gettempvar() if(v) i = v->index; else - i = new_variable(TEMPVARNAME, 0, 0, 0); + i = new_variable(state->method, TEMPVARNAME, 0, 0, 0); parserassert(i); return i; } -static code_t* var_block(code_t*body) +static code_t* var_block(code_t*body, dict_t*vars) { code_t*c = 0; code_t*k = 0; int t; - int num=0; - for(t=0;tvars->hashsize;t++) { - dictentry_t*e = state->vars->slots[t]; - while(e) { - variable_t*v = (variable_t*)e->data; - if(v->type && v->init) { - c = defaultvalue(c, v->type); - c = abc_setlocal(c, v->index); - k = abc_kill(k, v->index); - num++; - } - e = e->next; + DICT_ITERATE_DATA(vars, variable_t*, v) { + if(v->type && v->init) { + c = defaultvalue(c, v->type); + c = abc_setlocal(c, v->index); + } + if(v->type && v->kill) { + k = abc_kill(k, v->index); } } @@ -792,7 +826,7 @@ static void unknown_variable(char*name) 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 + if(m->uses_slots || m->innerfunctions || (m->late_binding && !m->inner)) { c = abc_getlocal_0(c); c = abc_pushscope(c); } @@ -868,7 +902,7 @@ static code_t* method_header(methodstate_t*m) static code_t* wrap_function(code_t*c,code_t*header, code_t*body) { c = code_append(c, header); - c = code_append(c, var_block(body)); + c = code_append(c, var_block(body, state->method->no_variable_scoping?state->allvars:state->vars)); /* append return if necessary */ if(!c || (c->opcode != OPCODE_RETURNVOID && c->opcode != OPCODE_RETURNVALUE)) { @@ -905,7 +939,7 @@ static namespace_t modifiers2access(modifiers_t*mod) syntaxerror("invalid combination of access levels and namespaces"); ns.access = ACCESS_NAMESPACE; state_t*s = state; - const char*url = (const char*)trie_lookup(active_namespaces, mod->ns); + const char*url = (const char*)trie_lookup(active_namespaces, (unsigned char*)mod->ns); if(!url) { /* shouldn't happen- the tokenizer only reports something as a namespace if it was already registered */ @@ -937,65 +971,68 @@ static memberinfo_t* findmember_nsset(classinfo_t*cls, const char*name, char rec return registry_findmember_nsset(cls, state->active_namespace_urls, name, recurse); } +static void innerfunctions2vars(methodstate_t*m) +{ + methodstate_list_t*l = m->innerfunctions; + while(l) { + methodstate_t*m = l->methodstate; + + variable_t* v = new_variable2(state->method, m->info->name, TYPE_FUNCTION(m->info), 0, 0); + m->var_index = v->index; + if(m->is_a_slot) + m->slot_index = m->is_a_slot; + v->is_inner_method = m; + l = l->next; + } +} + static void function_initvars(methodstate_t*m, char has_params, params_t*params, int flags, char var0) { if(var0) { int index = -1; if(m->inner) - index = new_variable("this", 0, 0, 0); + index = new_variable(m, "this", 0, 0, 0); else if(!m->is_global) - index = new_variable((flags&FLAG_STATIC)?"class":"this", state->cls?state->cls->info:0, 0, 0); + index = new_variable(m, (flags&FLAG_STATIC)?"class":"this", state->cls?state->cls->info:0, 0, 0); else - index = new_variable("globalscope", 0, 0, 0); + index = new_variable(m, "globalscope", 0, 0, 0); + if(index) { + DICT_ITERATE_ITEMS(state->vars, char*, name, variable_t*, v) { + printf("%s %d\n", name, v->index); + } + } parserassert(!index); } if(has_params) { param_list_t*p=0; for(p=params->list;p;p=p->next) { - variable_t*v = new_variable2(p->param->name, p->param->type, 0, 1); + variable_t*v = new_variable2(m, p->param->name, p->param->type, 0, 1); v->is_parameter = 1; } - variable_t*v = new_variable2("arguments", TYPE_ARRAY, 0, 0); if(as3_pass==2 && m->need_arguments) { + /* arguments can never be used by an innerfunction (the inner functions + have their own arguments var), so it's ok to not initialize this until + pass 2. (We don't know whether we need it before, anyway) */ + variable_t*v = new_variable2(m, "arguments", TYPE_ARRAY, 0, 0); m->need_arguments = v->index; } } - if(m->uses_slots) { - /* as variables and slots share the same number, make sure - that those variable indices are reserved. It's up to the - optimizer to later shuffle the variables down to lower - indices */ - m->variable_count = m->uses_slots; - } - - - methodstate_list_t*l = m->innerfunctions; - while(l) { - methodstate_t*m = l->methodstate; - - variable_t* v = new_variable2(m->info->name, TYPE_FUNCTION(m->info), 0, 1); - m->var_index = v->index; - m->slot_index = v->index; - v->is_inner_method = m; - - l = l->next; - } + innerfunctions2vars(m); if(as3_pass==2) { m->scope_code = add_scope_code(m->scope_code, m, 0); - } - - if(as3_pass==2 && m->slots) { - /* exchange unresolved identifiers with the actual objects */ - DICT_ITERATE_ITEMS(m->slots, char*, name, variable_t*, v) { - if(v->type && v->type->kind == INFOTYPE_UNRESOLVED) { - classinfo_t*type = (classinfo_t*)registry_resolve((slotinfo_t*)v->type); - if(!type || type->kind != INFOTYPE_CLASS) { - syntaxerror("Couldn't find class %s::%s (%s)", v->type->package, v->type->name, name); + if(m->slots) { + /* exchange unresolved identifiers with the actual objects */ + DICT_ITERATE_ITEMS(m->slots, char*, name, variable_t*, v) { + if(v->type && v->type->kind == INFOTYPE_UNRESOLVED) { + classinfo_t*type = (classinfo_t*)registry_resolve((slotinfo_t*)v->type); + if(!type || type->kind != INFOTYPE_CLASS) { + syntaxerror("Couldn't find class %s::%s (%s)", v->type->package, v->type->name, name); + } + v->type = type; } - v->type = type; } } } @@ -1019,7 +1056,7 @@ static void startclass(modifiers_t* mod, char*classname, classinfo_t*extends, cl if((mod->flags&(FLAG_PUBLIC|FLAG_PACKAGEINTERNAL)) == (FLAG_PUBLIC|FLAG_PACKAGEINTERNAL)) syntaxerror("public and internal not supported at the same time."); - if((mod->flags&(FLAG_PROTECTED)) == (FLAG_STATIC)) + if((mod->flags&(FLAG_PROTECTED|FLAG_STATIC)) == (FLAG_PROTECTED|FLAG_STATIC)) syntaxerror("protected and static not supported at the same time."); //if(!(mod->flags&FLAG_INTERFACE) && !extends) { @@ -1047,7 +1084,6 @@ static void startclass(modifiers_t* mod, char*classname, classinfo_t*extends, cl state->cls->init = rfx_calloc(sizeof(methodstate_t)); state->cls->static_init = rfx_calloc(sizeof(methodstate_t)); state->cls->static_init->is_static=FLAG_STATIC; - state->cls->static_init->variable_count=1; /* notice: we make no effort to initialize the top variable (local0) here, even though it has special meaning. We just rely on the fact that pass 1 won't do anything with variables */ @@ -1077,10 +1113,12 @@ static void startclass(modifiers_t* mod, char*classname, classinfo_t*extends, cl if(as3_pass == 2) { state->cls = dict_lookup(global->token2info, (void*)(ptroff_t)as3_tokencount); - state->method = state->cls->init; parserassert(state->cls && state->cls->info); + state->method = state->cls->static_init; + function_initvars(state->cls->init, 0, 0, 0, 1); + state->cls->static_init->variable_count=1; function_initvars(state->cls->static_init, 0, 0, 0, 0); if(extends && (extends->flags & FLAG_FINAL)) @@ -1115,10 +1153,8 @@ static void startclass(modifiers_t* mod, char*classname, classinfo_t*extends, cl abc_class_add_interface(state->cls->abc, &m); } - NEW(parsedclass_t,p); - p->cls = state->cls->info; - p->abc = state->cls->abc; - list_append(global->classes, p); + state->cls->dependencies = parsedclass_new(state->cls->info, state->cls->abc); + list_append(global->classes, state->cls->dependencies); /* flash.display.MovieClip handling */ if(!as3_globalclass && (mod->flags&FLAG_PUBLIC) && slotinfo_equals((slotinfo_t*)registry_getMovieClip(),(slotinfo_t*)extends)) { @@ -1322,9 +1358,13 @@ static void innerfunction(char*name, params_t*params, classinfo_t*return_type) //parserassert(state->method && state->method->info); methodstate_t*parent_method = state->method; + variable_t*v = 0; if(as3_pass==1) { return_type = 0; // not valid in pass 1 + if(name) { + v = new_variable2(parent_method, name, 0, 0, 0); + } } new_state(); @@ -1334,8 +1374,12 @@ static void innerfunction(char*name, params_t*params, classinfo_t*return_type) if(as3_pass == 1) { state->method = rfx_calloc(sizeof(methodstate_t)); state->method->inner = 1; + state->method->is_static = parent_method->is_static; state->method->variable_count = 0; state->method->abc = rfx_calloc(sizeof(abc_method_t)); + if(v) { + v->is_inner_method = state->method; + } NEW(methodinfo_t,minfo); minfo->kind = INFOTYPE_METHOD; @@ -1410,56 +1454,65 @@ static void startfunction(modifiers_t*mod, enum yytokentype getset, char*name, } } +static void insert_unresolved(methodstate_t*m, dict_t*xvars, dict_t*allvars) +{ + parserassert(m->inner); + if(m->unresolved_variables) { + dict_t*d = m->unresolved_variables; + int t; + DICT_ITERATE_KEY(d, char*, id) { + /* check parent method's variables */ + variable_t*v; + if(dict_contains(allvars, id)) { + m->uses_parent_function = 1; + state->method->uses_slots = 1; + dict_put(xvars, id, 0); + } + } + } + methodstate_list_t*ml = m->innerfunctions; + while(ml) { + insert_unresolved(ml->methodstate, xvars, allvars); + ml = ml->next; + } +} + static abc_method_t* endfunction(modifiers_t*mod, enum yytokentype getset, char*name, params_t*params, classinfo_t*return_type, code_t*body) { if(as3_pass==1) { - // store inner methods in variables - function_initvars(state->method, 0, 0, 0, 0); - - methodstate_list_t*ml = state->method->innerfunctions; - dict_t*xvars = dict_new(); - - while(ml) { - methodstate_t*m = ml->methodstate; - parserassert(m->inner); - if(m->unresolved_variables) { - dict_t*d = m->unresolved_variables; - int t; - for(t=0;thashsize;t++) { - dictentry_t*l = d->slots[t]; - while(l) { - /* check parent method's variables */ - variable_t*v; - if((v=find_variable(state, l->key))) { - m->uses_parent_function = 1; - state->method->uses_slots = 1; - dict_put(xvars, l->key, 0); - } - l = l->next; + + if(state->method->unresolved_variables) { + DICT_ITERATE_KEY(state->method->unresolved_variables, char*, vname) { + if(!state->method->no_variable_scoping && dict_contains(state->allvars, vname)) { + variable_t*v = dict_lookup(state->allvars, vname); + if(!v->is_inner_method) { + state->method->no_variable_scoping = 1; + as3_warning("function %s uses forward or outer block variable references (%s): switching into compatiblity mode", name, vname); } - if(l) break; } - - dict_destroy(m->unresolved_variables); - m->unresolved_variables = 0; } + } + + methodstate_list_t*ml = state->method->innerfunctions; + while(ml) { + insert_unresolved(ml->methodstate, xvars, state->allvars); ml = ml->next; } if(state->method->uses_slots) { state->method->slots = dict_new(); int i = 1; - DICT_ITERATE_ITEMS(state->vars, char*, name, variable_t*, v) { + DICT_ITERATE_ITEMS(state->allvars, char*, name, variable_t*, v) { if(!name) syntaxerror("internal error"); if(v->index && dict_contains(xvars, name)) { - v->init = 0; - v->index = i++; + v->init = v->kill = 0; + v->index = i; if(v->is_inner_method) { - v->is_inner_method->is_a_slot = 1; + v->is_inner_method->is_a_slot = i; } - //v->type = 0; + i++; dict_put(state->method->slots, name, v); } } @@ -1499,6 +1552,7 @@ static abc_method_t* endfunction(modifiers_t*mod, enum yytokentype getset, char* multiname_t mname = {QNAME, &mname_ns, 0, name}; f = abc_method_new(global->file, type2, 1); + if(!global->init) global->init = abc_initscript(global->file); trait_t*t = trait_new_method(&global->init->traits, multiname_clone(&mname), f); //abc_code_t*c = global->init->method->body->code; } @@ -1523,7 +1577,7 @@ static abc_method_t* endfunction(modifiers_t*mod, enum yytokentype getset, char* check_constant_against_type(p->param->type, p->param->value); opt=1;list_append(f->optional_parameters, p->param->value); } else if(opt) { - syntaxerror("non-optional parameter not allowed after optional parameters"); + syntaxerror("function %s: non-optional parameter not allowed after optional parameters", name); } } if(state->method->slots) { @@ -1620,12 +1674,18 @@ code_t*converttype(code_t*c, classinfo_t*from, classinfo_t*to) if(TYPE_IS_STRING(to)) return abc_convert_s(c); if(TYPE_IS_OBJECT(to)) - return abc_convert_o(c); + return abc_coerce2(c, &m); + if(TYPE_IS_OBJECT(from) && TYPE_IS_XMLLIST(to)) + return abc_coerce2(c, &m); + if(TYPE_IS_OBJECT(from) && TYPE_IS_ARRAY(to)) + return abc_coerce2(c, &m); classinfo_t*supertype = from; while(supertype) { if(supertype == to) { - // target type is one of from's superclasses + /* target type is one of from's superclasses. + (not sure we need this coerce - as far as the verifier + is concerned, object==object (i think) */ return abc_coerce2(c, &m); } int t=0; @@ -1651,7 +1711,17 @@ code_t*converttype(code_t*c, classinfo_t*from, classinfo_t*to) return c; } -/* move to ast.c todo end */ +code_t* coerce_to_type(code_t*c, classinfo_t*t) +{ + if(!t) { + return abc_coerce_a(c); + } else if(TYPE_IS_STRING(t)) { + return abc_coerce_s(c); + } else { + MULTINAME(m, t); + return abc_coerce2(c, &m); + } +} char is_pushundefined(code_t*c) { @@ -1738,6 +1808,7 @@ typedcode_t push_class(slotinfo_t*a) infotypename(a), a->name, a->package, state->package); } + if(a->kind != INFOTYPE_CLASS) { MULTINAME(m, a); x.c = abc_findpropstrict2(x.c, &m); @@ -1749,7 +1820,13 @@ typedcode_t push_class(slotinfo_t*a) varinfo_t*v = (varinfo_t*)a; x.t = v->type; } + return x; } else { + if(state->cls && state->method == state->cls->static_init) { + /* we're in the static initializer. + record the fact that we're using this class here */ + parsedclass_add_dependency(state->cls->dependencies, (classinfo_t*)a); + } classinfo_t*c = (classinfo_t*)a; //if(c->slot) { if(0) { //Error #1026: Slot 1 exceeds slotCount=0 of global @@ -1905,20 +1982,28 @@ code_t* insert_finally(code_t*c, code_t*finally, int tempvar) /* Line 273 of skeleton.m4 */ -#line 1909 "parser.tab.c" +#line 1986 "parser.tab.c" /* Unqualified %code blocks. */ /* Line 274 of skeleton.m4 */ -#line 1985 "parser.y" +#line 2076 "parser.y" char is_subtype_of(classinfo_t*type, classinfo_t*supertype) { return 1; // FIXME } + char do_init_variable(char*name) + { + if(!state->method->no_variable_scoping) + return 0; + if(!state->new_vars) + return 1; + return 1; + } /* Line 274 of skeleton.m4 */ -#line 2434 "parser.y" +#line 2527 "parser.y" static void state_has_imports() { @@ -1941,7 +2026,7 @@ code_t* insert_finally(code_t*c, code_t*finally, int tempvar) /* Line 274 of skeleton.m4 */ -#line 2567 "parser.y" +#line 2666 "parser.y" static int slotstate_varconst = 0; static modifiers_t*slotstate_flags = 0; @@ -1976,6 +2061,7 @@ code_t* insert_finally(code_t*c, code_t*finally, int tempvar) code_t**code=0; if(!state->cls) { // global variable + if(!global->init) global->init = abc_initscript(global->file); ns.name = state->package; traits = &global->init->traits; code = &global->init->method->body->code; @@ -1987,6 +2073,10 @@ code_t* insert_finally(code_t*c, code_t*finally, int tempvar) // instance variable traits = &state->cls->abc->traits; code = &state->cls->init->header; + + if(ns.access == ACCESS_PROTECTED) { + ns.name = concat3(state->cls->info->package,":",state->cls->info->name); + } } if(c) *c = code; @@ -1998,13 +2088,21 @@ code_t* insert_finally(code_t*c, code_t*finally, int tempvar) /* Line 274 of skeleton.m4 */ -#line 2747 "parser.y" +#line 2846 "parser.y" static int xml_level = 0; /* Line 274 of skeleton.m4 */ -#line 3519 "parser.y" +#line 3654 "parser.y" + + node_t* var_read(variable_t*v) + { + typedcode_t o; + o.c = abc_getlocal(0, v->index); + o.t = v->type; + return mkcodenode(o); + } node_t* resolve_identifier(char*name) { @@ -2019,11 +2117,9 @@ code_t* insert_finally(code_t*c, code_t*finally, int tempvar) /* look at variables */ if((v = find_variable(state, name))) { // name is a local variable - o.c = abc_getlocal(o.c, v->index); - o.t = v->type; - return mkcodenode(o); + return var_read(v); } - if((v = find_slot(state, name))) { + if((v = find_slot(state->method, name))) { o.c = abc_getscopeobject(o.c, 1); o.c = abc_getslot(o.c, v->index); o.t = v->type; @@ -2121,7 +2217,7 @@ code_t* insert_finally(code_t*c, code_t*finally, int tempvar) /* Line 274 of skeleton.m4 */ -#line 3661 "parser.y" +#line 3805 "parser.y" void add_active_url(const char*url) { @@ -2133,7 +2229,7 @@ code_t* insert_finally(code_t*c, code_t*finally, int tempvar) /* Line 274 of skeleton.m4 */ -#line 2137 "parser.tab.c" +#line 2233 "parser.tab.c" #ifdef short # undef short @@ -2346,22 +2442,22 @@ union yyalloc #endif /* YYFINAL -- State number of the termination state. */ -#define YYFINAL 157 +#define YYFINAL 165 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 3397 +#define YYLAST 3415 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 135 +#define YYNTOKENS 136 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 134 +#define YYNNTS 135 /* YYNRULES -- Number of rules. */ -#define YYNRULES 347 +#define YYNRULES 355 /* YYNRULES -- Number of states. */ -#define YYNSTATES 591 +#define YYNSTATES 603 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 364 +#define YYMAXUTOK 365 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -2372,16 +2468,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, 119, 2, 2, 2, 117, 108, 2, - 123, 134, 116, 114, 101, 113, 128, 115, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 105, 100, - 110, 103, 111, 104, 129, 2, 2, 2, 2, 2, + 2, 2, 2, 120, 2, 2, 2, 118, 109, 2, + 124, 135, 117, 115, 102, 114, 129, 116, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 106, 101, + 111, 104, 112, 105, 130, 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, 125, 2, 126, 107, 2, 2, 2, 2, 2, + 2, 126, 2, 127, 108, 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, 127, 106, 133, 118, 2, 2, 2, + 2, 2, 2, 128, 107, 134, 119, 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, @@ -2404,8 +2500,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, 99, 102, 109, 112, 120, 121, - 122, 124, 130, 131, 132 + 95, 96, 97, 98, 99, 100, 103, 110, 113, 121, + 122, 123, 125, 131, 132, 133 }; #if YYDEBUG @@ -2415,190 +2511,194 @@ static const yytype_uint16 yyprhs[] = { 0, 0, 3, 5, 6, 8, 10, 13, 15, 17, 19, 21, 23, 25, 30, 32, 33, 35, 37, 40, - 42, 44, 46, 48, 50, 55, 57, 59, 60, 63, - 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, - 85, 87, 89, 93, 96, 98, 100, 102, 104, 106, - 108, 110, 115, 118, 120, 122, 126, 129, 130, 133, - 136, 138, 142, 146, 147, 150, 151, 159, 160, 162, - 164, 168, 170, 173, 177, 186, 193, 194, 201, 202, - 210, 212, 215, 217, 220, 221, 223, 225, 228, 230, - 233, 238, 242, 243, 252, 253, 263, 264, 270, 272, - 275, 277, 280, 282, 283, 290, 293, 295, 300, 303, - 305, 307, 309, 313, 315, 316, 323, 324, 330, 333, - 338, 339, 341, 343, 346, 348, 350, 352, 354, 356, - 358, 360, 362, 364, 366, 367, 370, 371, 374, 375, - 378, 379, 389, 390, 399, 400, 402, 404, 407, 409, - 414, 416, 418, 420, 421, 423, 425, 428, 430, 433, - 442, 444, 446, 447, 452, 454, 458, 462, 463, 466, - 468, 470, 472, 474, 476, 478, 480, 482, 484, 486, - 488, 490, 491, 492, 497, 498, 503, 504, 507, 510, - 513, 516, 520, 522, 524, 535, 542, 554, 555, 557, - 559, 562, 564, 568, 572, 576, 580, 581, 583, 586, - 591, 595, 597, 602, 605, 607, 609, 610, 611, 624, - 626, 627, 628, 639, 641, 645, 647, 649, 651, 655, - 657, 659, 661, 664, 665, 666, 670, 671, 673, 675, - 677, 680, 683, 684, 689, 694, 699, 702, 704, 707, - 709, 711, 713, 717, 719, 723, 724, 726, 728, 730, - 732, 734, 736, 740, 746, 748, 750, 752, 754, 756, - 758, 760, 762, 764, 766, 770, 774, 778, 782, 786, - 790, 794, 798, 802, 806, 810, 814, 817, 820, 824, - 828, 832, 836, 840, 844, 848, 852, 856, 860, 864, - 868, 872, 876, 880, 885, 888, 890, 894, 897, 902, - 906, 910, 914, 918, 922, 926, 930, 934, 938, 942, - 946, 950, 956, 959, 962, 965, 968, 972, 975, 976, - 983, 985, 987, 989, 991, 997, 1001, 1007, 1012, 1017, - 1024, 1031, 1035, 1037, 1040, 1045, 1050, 1053 + 42, 44, 46, 48, 50, 55, 60, 62, 64, 65, + 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, + 88, 90, 92, 94, 96, 100, 103, 105, 107, 109, + 111, 113, 115, 117, 122, 125, 127, 129, 130, 134, + 137, 138, 141, 144, 146, 150, 154, 155, 158, 159, + 162, 169, 170, 172, 174, 178, 180, 183, 187, 196, + 203, 209, 216, 218, 221, 223, 226, 227, 229, 231, + 234, 236, 239, 244, 248, 249, 258, 259, 269, 270, + 276, 278, 281, 283, 286, 288, 289, 296, 299, 301, + 306, 309, 311, 313, 315, 317, 319, 323, 325, 326, + 333, 334, 340, 343, 346, 351, 352, 354, 356, 359, + 361, 363, 365, 367, 369, 371, 373, 375, 377, 379, + 380, 383, 384, 387, 388, 391, 392, 402, 403, 412, + 413, 415, 417, 420, 422, 427, 429, 431, 433, 434, + 436, 438, 441, 443, 446, 455, 457, 459, 460, 465, + 467, 471, 475, 476, 479, 481, 483, 485, 487, 489, + 491, 493, 495, 497, 499, 501, 503, 504, 505, 510, + 511, 516, 517, 520, 523, 526, 529, 533, 535, 537, + 538, 540, 547, 558, 570, 572, 575, 577, 581, 585, + 589, 593, 594, 596, 599, 604, 608, 610, 615, 618, + 620, 622, 623, 624, 637, 639, 640, 641, 652, 654, + 658, 660, 662, 664, 668, 670, 672, 674, 677, 678, + 679, 683, 684, 686, 688, 690, 693, 696, 697, 702, + 707, 712, 715, 717, 720, 722, 724, 726, 730, 732, + 736, 737, 739, 741, 743, 745, 747, 749, 753, 759, + 761, 763, 765, 767, 769, 771, 773, 775, 777, 779, + 783, 787, 791, 795, 799, 803, 807, 811, 815, 819, + 823, 827, 830, 833, 837, 841, 845, 849, 853, 857, + 861, 865, 869, 873, 877, 881, 885, 889, 893, 896, + 899, 901, 905, 908, 913, 917, 921, 925, 929, 933, + 937, 941, 945, 949, 953, 957, 961, 967, 970, 973, + 976, 979, 983, 986, 987, 994, 996, 998, 1000, 1002, + 1004, 1010, 1014, 1020, 1025, 1030, 1037, 1044, 1048, 1050, + 1052, 1055, 1060, 1065, 1068, 1073 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 136, 0, -1, 137, -1, -1, 138, -1, 139, -1, - 138, 139, -1, 187, -1, 199, -1, 197, -1, 233, - -1, 208, -1, 148, -1, 149, 127, 137, 133, -1, - 100, -1, -1, 141, -1, 142, -1, 141, 142, -1, - 199, -1, 197, -1, 233, -1, 208, -1, 148, -1, - 149, 127, 140, 133, -1, 100, -1, 144, -1, -1, - 144, 146, -1, 146, -1, 190, -1, 160, -1, 161, - -1, 162, -1, 164, -1, 172, -1, 155, -1, 184, - -1, 180, -1, 256, -1, 268, -1, 267, -1, 127, - 144, 133, -1, 127, 133, -1, 100, -1, 145, -1, - 151, -1, 166, -1, 167, -1, 252, -1, 182, -1, - 149, 127, 144, 133, -1, 146, 100, -1, 146, -1, - 145, -1, 3, 90, 3, -1, 103, 260, -1, -1, - 46, 152, -1, 32, 152, -1, 153, -1, 152, 101, - 153, -1, 3, 243, 150, -1, -1, 65, 147, -1, - -1, 64, 123, 156, 254, 134, 147, 154, -1, -1, - 151, -1, 256, -1, 46, 3, 243, -1, 3, -1, - 11, 123, -1, 11, 50, 123, -1, 159, 157, 100, - 254, 100, 256, 134, 147, -1, 159, 158, 68, 254, - 134, 147, -1, -1, 12, 123, 163, 254, 134, 147, - -1, -1, 13, 165, 147, 12, 123, 254, 134, -1, - 66, -1, 66, 3, -1, 30, -1, 30, 3, -1, - -1, 169, -1, 171, -1, 169, 171, -1, 170, -1, - 169, 170, -1, 34, 260, 105, 143, -1, 62, 105, - 143, -1, -1, 14, 123, 173, 260, 134, 127, 168, - 133, -1, -1, 33, 123, 3, 243, 134, 175, 127, - 143, 133, -1, -1, 27, 127, 177, 143, 133, -1, - 174, -1, 178, 174, -1, 178, -1, 178, 176, -1, - 176, -1, -1, 52, 127, 181, 143, 133, 179, -1, - 37, 254, -1, 37, -1, 39, 123, 254, 134, -1, - 183, 147, -1, 3, -1, 17, -1, 4, -1, 186, - 128, 185, -1, 185, -1, -1, 17, 186, 127, 188, - 140, 133, -1, -1, 17, 127, 189, 140, 133, -1, - 41, 239, -1, 41, 186, 128, 116, -1, -1, 192, - -1, 193, -1, 192, 193, -1, 20, -1, 21, -1, - 18, -1, 38, -1, 47, -1, 49, -1, 48, -1, - 25, -1, 23, -1, 4, -1, -1, 54, 240, -1, - -1, 54, 241, -1, -1, 15, 241, -1, -1, 191, - 31, 3, 194, 196, 127, 198, 201, 133, -1, -1, - 191, 44, 3, 195, 127, 200, 204, 133, -1, -1, - 202, -1, 203, -1, 202, 203, -1, 100, -1, 149, - 127, 201, 133, -1, 208, -1, 233, -1, 145, -1, - -1, 205, -1, 206, -1, 205, 206, -1, 100, -1, - 46, 3, -1, 191, 26, 232, 3, 123, 229, 134, - 243, -1, 46, -1, 32, -1, -1, 191, 207, 209, - 210, -1, 211, -1, 210, 101, 211, -1, 3, 243, - 150, -1, -1, 103, 260, -1, 8, -1, 9, -1, - 10, -1, 5, -1, 56, -1, 55, -1, 45, -1, - 28, -1, 29, -1, 225, -1, 110, -1, 111, -1, - -1, -1, 127, 260, 219, 133, -1, -1, 127, 260, - 221, 133, -1, -1, 222, 218, -1, 222, 5, -1, - 222, 111, -1, 225, 222, -1, 223, 225, 222, -1, - 3, -1, 220, -1, 215, 224, 226, 216, 222, 110, - 115, 224, 217, 111, -1, 215, 224, 226, 115, 217, - 111, -1, 215, 224, 226, 216, 222, 223, 110, 115, - 224, 217, 111, -1, -1, 227, -1, 228, -1, 227, - 228, -1, 220, -1, 220, 103, 5, -1, 220, 103, - 220, -1, 3, 103, 220, -1, 3, 103, 5, -1, - -1, 230, -1, 94, 231, -1, 230, 101, 94, 231, - -1, 230, 101, 231, -1, 231, -1, 3, 105, 242, - 212, -1, 3, 212, -1, 51, -1, 35, -1, -1, - -1, 191, 26, 232, 3, 123, 229, 134, 243, 127, - 234, 143, 133, -1, 3, -1, -1, -1, 26, 235, - 123, 229, 134, 243, 127, 237, 143, 133, -1, 185, - -1, 186, 128, 185, -1, 239, -1, 238, -1, 240, - -1, 241, 101, 240, -1, 240, -1, 116, -1, 36, - -1, 105, 242, -1, -1, -1, 123, 245, 134, -1, - -1, 246, -1, 247, -1, 253, -1, 246, 101, -1, - 247, 253, -1, -1, 24, 260, 248, 244, -1, 260, - 123, 245, 134, -1, 53, 123, 245, 134, -1, 63, - 260, -1, 42, -1, 42, 254, -1, 260, -1, 255, - -1, 260, -1, 255, 101, 260, -1, 260, -1, 256, - 101, 260, -1, -1, 259, -1, 3, -1, 5, -1, - 8, -1, 9, -1, 10, -1, 258, 105, 253, -1, - 259, 101, 258, 105, 253, -1, 236, -1, 264, -1, - 249, -1, 251, -1, 250, -1, 265, -1, 213, -1, - 214, -1, 6, -1, 19, -1, 125, 245, 126, -1, - 70, 257, 133, -1, 260, 110, 260, -1, 260, 111, - 260, -1, 260, 75, 260, -1, 260, 76, 260, -1, - 260, 71, 260, -1, 260, 72, 260, -1, 260, 74, - 260, -1, 260, 73, 260, -1, 260, 88, 260, -1, - 260, 89, 260, -1, 119, 260, -1, 118, 260, -1, - 260, 108, 260, -1, 260, 107, 260, -1, 260, 106, - 260, -1, 260, 97, 260, -1, 260, 96, 260, -1, - 260, 95, 260, -1, 260, 115, 260, -1, 260, 117, - 260, -1, 260, 114, 260, -1, 260, 113, 260, -1, - 260, 116, 260, -1, 260, 68, 260, -1, 260, 69, - 260, -1, 260, 40, 260, -1, 260, 67, 260, -1, - 43, 123, 260, 134, -1, 36, 260, -1, 36, -1, - 123, 255, 134, -1, 113, 260, -1, 260, 125, 260, - 126, -1, 260, 80, 260, -1, 260, 79, 260, -1, - 260, 86, 260, -1, 260, 85, 260, -1, 260, 87, - 260, -1, 260, 78, 260, -1, 260, 77, 260, -1, - 260, 84, 260, -1, 260, 81, 260, -1, 260, 82, - 260, -1, 260, 83, 260, -1, 260, 103, 260, -1, - 260, 104, 260, 105, 260, -1, 260, 92, -1, 260, - 91, -1, 92, 260, -1, 91, 260, -1, 53, 128, - 3, -1, 129, 3, -1, -1, 260, 128, 123, 261, - 260, 134, -1, 3, -1, 4, -1, 3, -1, 116, - -1, 260, 128, 262, 90, 263, -1, 260, 93, 263, - -1, 260, 128, 125, 260, 126, -1, 260, 128, 129, - 263, -1, 260, 93, 129, 263, -1, 260, 128, 129, - 125, 260, 126, -1, 260, 93, 129, 125, 260, 126, - -1, 260, 128, 263, -1, 3, -1, 16, 3, -1, - 16, 3, 103, 3, -1, 16, 3, 103, 5, -1, - 191, 266, -1, 22, 16, 240, -1 + 137, 0, -1, 138, -1, -1, 139, -1, 140, -1, + 139, 140, -1, 188, -1, 200, -1, 198, -1, 234, + -1, 209, -1, 149, -1, 151, 128, 138, 134, -1, + 101, -1, -1, 142, -1, 143, -1, 142, 143, -1, + 200, -1, 198, -1, 234, -1, 209, -1, 149, -1, + 151, 128, 141, 134, -1, 126, 150, 261, 127, -1, + 101, -1, 145, -1, -1, 145, 147, -1, 147, -1, + 269, -1, 191, -1, 163, -1, 164, -1, 165, -1, + 166, -1, 173, -1, 159, -1, 185, -1, 181, -1, + 257, -1, 270, -1, 268, -1, 128, 145, 134, -1, + 128, 134, -1, 101, -1, 146, -1, 153, -1, 167, + -1, 168, -1, 253, -1, 183, -1, 151, 128, 145, + 134, -1, 147, 101, -1, 147, -1, 146, -1, -1, + 3, 91, 3, -1, 104, 261, -1, -1, 46, 154, + -1, 32, 154, -1, 155, -1, 154, 102, 155, -1, + 3, 244, 152, -1, -1, 157, 148, -1, -1, 66, + 156, -1, 65, 124, 255, 135, 156, 158, -1, -1, + 153, -1, 257, -1, 46, 3, 244, -1, 3, -1, + 11, 124, -1, 11, 50, 124, -1, 162, 160, 101, + 255, 101, 257, 135, 156, -1, 162, 161, 69, 255, + 135, 156, -1, 12, 124, 255, 135, 156, -1, 13, + 156, 12, 124, 255, 135, -1, 67, -1, 67, 3, + -1, 30, -1, 30, 3, -1, -1, 170, -1, 172, + -1, 170, 172, -1, 171, -1, 170, 171, -1, 34, + 261, 106, 144, -1, 62, 106, 144, -1, -1, 14, + 124, 174, 261, 135, 128, 169, 134, -1, -1, 33, + 124, 3, 244, 135, 176, 128, 144, 134, -1, -1, + 27, 128, 178, 144, 134, -1, 175, -1, 179, 175, + -1, 179, -1, 179, 177, -1, 177, -1, -1, 52, + 128, 182, 144, 134, 180, -1, 37, 255, -1, 37, + -1, 39, 124, 255, 135, -1, 184, 148, -1, 3, + -1, 17, -1, 16, -1, 29, -1, 4, -1, 187, + 129, 186, -1, 186, -1, -1, 17, 187, 128, 189, + 141, 134, -1, -1, 17, 128, 190, 141, 134, -1, + 41, 3, -1, 41, 240, -1, 41, 187, 129, 117, + -1, -1, 193, -1, 194, -1, 193, 194, -1, 20, + -1, 21, -1, 18, -1, 38, -1, 47, -1, 49, + -1, 48, -1, 25, -1, 23, -1, 4, -1, -1, + 54, 241, -1, -1, 54, 242, -1, -1, 15, 242, + -1, -1, 192, 31, 3, 195, 197, 128, 199, 202, + 134, -1, -1, 192, 44, 3, 196, 128, 201, 205, + 134, -1, -1, 203, -1, 204, -1, 203, 204, -1, + 101, -1, 151, 128, 202, 134, -1, 209, -1, 234, + -1, 146, -1, -1, 206, -1, 207, -1, 206, 207, + -1, 101, -1, 46, 3, -1, 192, 26, 233, 3, + 124, 230, 135, 244, -1, 46, -1, 32, -1, -1, + 192, 208, 210, 211, -1, 212, -1, 211, 102, 212, + -1, 3, 244, 152, -1, -1, 104, 261, -1, 8, + -1, 9, -1, 10, -1, 5, -1, 56, -1, 55, + -1, 45, -1, 28, -1, 29, -1, 227, -1, 111, + -1, 112, -1, -1, -1, 128, 261, 220, 134, -1, + -1, 128, 261, 222, 134, -1, -1, 223, 219, -1, + 223, 5, -1, 223, 112, -1, 227, 223, -1, 224, + 227, 223, -1, 3, -1, 221, -1, -1, 228, -1, + 216, 225, 226, 116, 218, 112, -1, 216, 225, 226, + 217, 223, 111, 116, 225, 218, 112, -1, 216, 225, + 226, 217, 223, 224, 111, 116, 225, 218, 112, -1, + 229, -1, 228, 229, -1, 221, -1, 221, 104, 5, + -1, 221, 104, 221, -1, 3, 104, 221, -1, 3, + 104, 5, -1, -1, 231, -1, 95, 232, -1, 231, + 102, 95, 232, -1, 231, 102, 232, -1, 232, -1, + 3, 106, 243, 213, -1, 3, 213, -1, 51, -1, + 35, -1, -1, -1, 192, 26, 233, 3, 124, 230, + 135, 244, 128, 235, 144, 134, -1, 3, -1, -1, + -1, 26, 236, 124, 230, 135, 244, 128, 238, 144, + 134, -1, 186, -1, 187, 129, 186, -1, 240, -1, + 239, -1, 241, -1, 242, 102, 241, -1, 241, -1, + 117, -1, 36, -1, 106, 243, -1, -1, -1, 124, + 246, 135, -1, -1, 247, -1, 248, -1, 254, -1, + 247, 102, -1, 248, 254, -1, -1, 24, 261, 249, + 245, -1, 261, 124, 246, 135, -1, 53, 124, 246, + 135, -1, 64, 261, -1, 42, -1, 42, 255, -1, + 261, -1, 256, -1, 261, -1, 256, 102, 261, -1, + 261, -1, 257, 102, 261, -1, -1, 260, -1, 3, + -1, 5, -1, 8, -1, 9, -1, 10, -1, 259, + 106, 254, -1, 260, 102, 259, 106, 254, -1, 237, + -1, 265, -1, 250, -1, 252, -1, 251, -1, 266, + -1, 214, -1, 215, -1, 6, -1, 19, -1, 126, + 246, 127, -1, 71, 258, 134, -1, 261, 111, 261, + -1, 261, 112, 261, -1, 261, 76, 261, -1, 261, + 77, 261, -1, 261, 72, 261, -1, 261, 73, 261, + -1, 261, 75, 261, -1, 261, 74, 261, -1, 261, + 89, 261, -1, 261, 90, 261, -1, 120, 261, -1, + 119, 261, -1, 261, 109, 261, -1, 261, 108, 261, + -1, 261, 107, 261, -1, 261, 98, 261, -1, 261, + 97, 261, -1, 261, 96, 261, -1, 261, 116, 261, + -1, 261, 118, 261, -1, 261, 115, 261, -1, 261, + 114, 261, -1, 261, 117, 261, -1, 261, 69, 261, + -1, 261, 70, 261, -1, 261, 40, 261, -1, 261, + 68, 261, -1, 43, 261, -1, 36, 261, -1, 36, + -1, 124, 256, 135, -1, 114, 261, -1, 261, 126, + 261, 127, -1, 261, 81, 261, -1, 261, 80, 261, + -1, 261, 87, 261, -1, 261, 86, 261, -1, 261, + 88, 261, -1, 261, 79, 261, -1, 261, 78, 261, + -1, 261, 85, 261, -1, 261, 82, 261, -1, 261, + 83, 261, -1, 261, 84, 261, -1, 261, 104, 261, + -1, 261, 105, 261, 106, 261, -1, 261, 93, -1, + 261, 92, -1, 93, 261, -1, 92, 261, -1, 53, + 129, 3, -1, 130, 3, -1, -1, 261, 129, 124, + 262, 261, 135, -1, 3, -1, 117, -1, 4, -1, + 186, -1, 117, -1, 261, 129, 263, 91, 264, -1, + 261, 94, 264, -1, 261, 129, 126, 261, 127, -1, + 261, 129, 130, 264, -1, 261, 94, 130, 264, -1, + 261, 129, 130, 126, 261, 127, -1, 261, 94, 130, + 126, 261, 127, -1, 261, 129, 264, -1, 4, -1, + 3, -1, 16, 3, -1, 16, 3, 104, 3, -1, + 16, 3, 104, 5, -1, 192, 267, -1, 63, 16, + 104, 261, -1, 22, 16, 241, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 1890, 1890, 1892, 1892, 1893, 1894, 1896, 1897, 1898, - 1899, 1900, 1901, 1902, 1903, 1905, 1905, 1906, 1907, 1909, - 1910, 1911, 1912, 1913, 1914, 1915, 1917, 1918, 1920, 1923, - 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, - 1936, 1937, 1938, 1939, 1942, 1943, 1944, 1945, 1946, 1947, - 1948, 1949, 1961, 1962, 1966, 1973, 1992, 1993, 1995, 1996, - 1998, 1999, 2001, 2061, 2062, 2065, 2065, 2084, 2085, 2086, - 2091, 2095, 2100, 2101, 2103, 2123, 2171, 2171, 2190, 2190, - 2205, 2208, 2211, 2214, 2218, 2219, 2220, 2221, 2222, 2223, - 2225, 2236, 2239, 2239, 2270, 2270, 2295, 2295, 2311, 2312, - 2313, 2314, 2322, 2331, 2331, 2380, 2384, 2395, 2405, 2422, - 2423, 2424, 2426, 2427, 2429, 2429, 2431, 2431, 2454, 2468, - 2484, 2485, 2486, 2487, 2494, 2495, 2496, 2497, 2498, 2499, - 2500, 2501, 2502, 2503, 2507, 2508, 2510, 2511, 2513, 2514, - 2518, 2516, 2524, 2522, 2531, 2532, 2533, 2534, 2535, 2536, - 2537, 2538, 2540, 2546, 2547, 2548, 2549, 2550, 2551, 2554, - 2622, 2622, 2624, 2624, 2626, 2627, 2629, 2713, 2714, 2723, - 2724, 2727, 2728, 2729, 2730, 2731, 2732, 2733, 2751, 2753, - 2754, 2755, 2757, 2757, 2761, 2761, 2765, 2766, 2769, 2770, - 2772, 2773, 2775, 2776, 2778, 2782, 2785, 2790, 2791, 2792, - 2793, 2795, 2798, 2802, 2805, 2808, 2818, 2822, 2828, 2834, - 2842, 2847, 2853, 2861, 2869, 2870, 2871, 2874, 2873, 2890, - 2891, 2893, 2892, 2916, 2935, 2949, 2950, 2952, 2953, 2955, - 2956, 2957, 2966, 2967, 2971, 2972, 2974, 2975, 2976, 2978, - 2982, 2983, 2988, 2989, 3033, 3083, 3104, 3126, 3129, 3136, - 3139, 3142, 3145, 3148, 3151, 3156, 3157, 3159, 3160, 3161, - 3162, 3163, 3165, 3171, 3180, 3181, 3182, 3183, 3184, 3185, - 3187, 3191, 3203, 3221, 3232, 3242, 3251, 3252, 3253, 3254, - 3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262, 3263, 3264, - 3265, 3266, 3267, 3268, 3269, 3270, 3271, 3272, 3273, 3274, - 3275, 3276, 3277, 3278, 3279, 3280, 3281, 3282, 3283, 3284, - 3285, 3286, 3287, 3288, 3289, 3290, 3291, 3292, 3293, 3294, - 3295, 3296, 3298, 3299, 3300, 3301, 3303, 3318, 3326, 3326, - 3380, 3381, 3382, 3383, 3385, 3403, 3410, 3421, 3428, 3435, - 3445, 3456, 3634, 3670, 3677, 3684, 3691, 3713 + 0, 1967, 1967, 1969, 1969, 1970, 1971, 1973, 1974, 1975, + 1976, 1977, 1978, 1979, 1980, 1982, 1982, 1983, 1984, 1986, + 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1995, 1996, 1998, + 2001, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, + 2013, 2014, 2015, 2016, 2017, 2018, 2021, 2022, 2023, 2024, + 2025, 2026, 2027, 2028, 2040, 2041, 2045, 2056, 2064, 2091, + 2092, 2094, 2095, 2097, 2098, 2100, 2161, 2161, 2165, 2166, + 2169, 2185, 2186, 2187, 2192, 2196, 2201, 2202, 2204, 2224, + 2268, 2284, 2296, 2299, 2302, 2305, 2309, 2310, 2311, 2312, + 2313, 2314, 2316, 2327, 2330, 2330, 2361, 2361, 2386, 2386, + 2402, 2403, 2404, 2405, 2413, 2422, 2422, 2471, 2475, 2486, + 2496, 2513, 2514, 2515, 2516, 2517, 2519, 2520, 2522, 2522, + 2524, 2524, 2548, 2556, 2567, 2583, 2584, 2585, 2586, 2593, + 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602, 2606, + 2607, 2609, 2610, 2612, 2613, 2617, 2615, 2623, 2621, 2630, + 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2639, 2645, 2646, + 2647, 2648, 2649, 2650, 2653, 2726, 2726, 2728, 2728, 2730, + 2731, 2733, 2817, 2818, 2827, 2828, 2831, 2832, 2833, 2834, + 2835, 2836, 2837, 2850, 2861, 2862, 2863, 2865, 2865, 2868, + 2868, 2871, 2872, 2875, 2880, 2883, 2886, 2889, 2892, 2896, + 2899, 2903, 2907, 2912, 2918, 2921, 2924, 2927, 2932, 2935, + 2938, 2948, 2952, 2958, 2964, 2972, 2977, 2983, 2991, 2999, + 3000, 3001, 3004, 3003, 3020, 3021, 3023, 3022, 3046, 3065, + 3079, 3080, 3082, 3083, 3085, 3086, 3087, 3096, 3097, 3101, + 3102, 3104, 3105, 3106, 3108, 3112, 3113, 3118, 3119, 3166, + 3216, 3237, 3259, 3262, 3269, 3272, 3275, 3278, 3281, 3284, + 3289, 3290, 3292, 3293, 3294, 3295, 3296, 3298, 3304, 3313, + 3314, 3315, 3316, 3317, 3318, 3320, 3324, 3329, 3347, 3358, + 3368, 3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384, 3385, + 3386, 3387, 3388, 3389, 3390, 3391, 3392, 3393, 3394, 3395, + 3396, 3397, 3398, 3399, 3400, 3401, 3402, 3403, 3404, 3405, + 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, + 3416, 3417, 3418, 3419, 3420, 3421, 3422, 3424, 3425, 3426, + 3427, 3429, 3444, 3452, 3452, 3506, 3507, 3508, 3509, 3510, + 3518, 3536, 3543, 3554, 3561, 3568, 3578, 3589, 3776, 3780, + 3814, 3821, 3828, 3835, 3857, 3863 }; #endif @@ -2619,13 +2719,13 @@ static const char *const yytname[] = "\"interface\"", "\"null\"", "\"var\"", "\"dynamic\"", "\"override\"", "\"final\"", "\"each\"", "\"get\"", "\"try\"", "\"super\"", "\"extends\"", "\"false\"", "\"true\"", "\"Boolean\"", "\"uint\"", - "\"int\"", "\"Number\"", "\"String\"", "\"default\"", "\"delete\"", - "\"if\"", "\"else\"", "\"break\"", "\"is\"", "\"in\"", "\"as\"", - "\"{ (dictionary)\"", "\"==\"", "\"===\"", "\"!=\"", "\"!==\"", "\"<=\"", - "\">=\"", "\"|=\"", "\"/=\"", "\"%=\"", "\"*=\"", "\"&=\"", "\"+=\"", - "\"-=\"", "\"^=\"", "\">>=\"", "\"<<=\"", "\">>>=\"", "\"||\"", "\"&&\"", - "\"::\"", "\"--\"", "\"++\"", "\"..\"", "\"...\"", "\"<<\"", "\">>>\"", - "\">>\"", "prec_none", "below_semicolon", "';'", "','", + "\"int\"", "\"Number\"", "\"String\"", "\"default\"", "\"default xml\"", + "\"delete\"", "\"if\"", "\"else\"", "\"break\"", "\"is\"", "\"in\"", + "\"as\"", "\"{ (dictionary)\"", "\"==\"", "\"===\"", "\"!=\"", "\"!==\"", + "\"<=\"", "\">=\"", "\"|=\"", "\"/=\"", "\"%=\"", "\"*=\"", "\"&=\"", + "\"+=\"", "\"-=\"", "\"^=\"", "\">>=\"", "\"<<=\"", "\">>>=\"", "\"||\"", + "\"&&\"", "\"::\"", "\"--\"", "\"++\"", "\"..\"", "\"...\"", "\"<<\"", + "\">>>\"", "\">>\"", "prec_none", "below_semicolon", "';'", "','", "below_assignment", "'='", "'?'", "':'", "'|'", "'^'", "'&'", "below_lt", "'<'", "'>'", "below_minus", "'-'", "'+'", "'/'", "'*'", "'%'", "'~'", "'!'", "minusminus_prefix", "plusplus_prefix", "below_curly", "'('", @@ -2634,32 +2734,32 @@ static const char *const yytname[] = "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", "XML", "OPEN", "CLOSE", "CLOSE2", "XMLEXPR1", "$@13", - "XMLEXPR2", "$@14", "XMLTEXT", "XML2", "XML_ID_OR_EXPR", "XMLNODE", - "MAYBE_XMLATTRIBUTES", "XMLATTRIBUTES", "XMLATTRIBUTE", - "MAYBE_PARAM_LIST", "PARAM_LIST", "PARAM", "GETSET", - "FUNCTION_DECLARATION", "$@15", "MAYBE_IDENTIFIER", "INNERFUNCTION", - "$@16", "CLASS", "PACKAGEANDCLASS", "CLASS_SPEC", "CLASS_SPEC_LIST", + "PACKAGE_INITCODE", "EMBED_START", "CONDITIONAL_COMPILATION", + "MAYBEEXPRESSION", "VARIABLE_DECLARATION", "VARIABLE_LIST", + "ONE_VARIABLE", "IF_CODEBLOCK", "$@1", "MAYBEELSE", "IF", "FOR_INIT", + "FOR_IN_INIT", "FOR_START", "FOR", "FOR_IN", "WHILE", "DO_WHILE", + "BREAK", "CONTINUE", "MAYBE_CASE_LIST", "CASE_LIST", "CASE", "DEFAULT", + "SWITCH", "$@2", "CATCH", "$@3", "FINALLY", "$@4", "CATCH_LIST", + "CATCH_FINALLY_LIST", "TRY", "$@5", "THROW", "WITH_HEAD", "WITH", + "X_IDENTIFIER", "PACKAGE", "PACKAGE_DECLARATION", "$@6", "$@7", "IMPORT", + "MAYBE_MODIFIERS", "MODIFIER_LIST", "MODIFIER", "EXTENDS", + "EXTENDS_LIST", "IMPLEMENTS_LIST", "CLASS_DECLARATION", "$@8", + "INTERFACE_DECLARATION", "$@9", "MAYBE_CLASS_BODY", "CLASS_BODY", + "CLASS_BODY_ITEM", "MAYBE_INTERFACE_BODY", "INTERFACE_BODY", + "IDECLARATION", "VARCONST", "SLOT_DECLARATION", "$@10", "SLOT_LIST", + "ONE_SLOT", "MAYBECONSTANT", "CONSTANT", "XML", "OPEN", "CLOSE", + "CLOSE2", "XMLEXPR1", "$@11", "XMLEXPR2", "$@12", "XMLTEXT", "XML2", + "XML_ID_OR_EXPR", "MAYBE_XMLATTRIBUTES", "XMLNODE", "XMLATTRIBUTES", + "XMLATTRIBUTE", "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_DICT_EXPRPAIR_LIST", - "DICTLH", "DICT_EXPRPAIR_LIST", "E", "$@17", "ID_OR_NS", "SUBNODE", + "DICTLH", "DICT_EXPRPAIR_LIST", "E", "$@15", "ID_OR_NS", "SUBNODE", "MEMBER", "VAR_READ", "NAMESPACE_ID", "NAMESPACE_DECLARATION", - "USE_NAMESPACE", 0 + "DEFAULT_NAMESPACE", "USE_NAMESPACE", 0 }; #endif @@ -2678,51 +2778,52 @@ 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, 354, - 59, 44, 355, 61, 63, 58, 124, 94, 38, 356, - 60, 62, 357, 45, 43, 47, 42, 37, 126, 33, - 358, 359, 360, 40, 361, 91, 93, 123, 46, 64, - 362, 363, 364, 125, 41 + 355, 59, 44, 356, 61, 63, 58, 124, 94, 38, + 357, 60, 62, 358, 45, 43, 47, 42, 37, 126, + 33, 359, 360, 361, 40, 362, 91, 93, 123, 46, + 64, 363, 364, 365, 125, 41 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint16 yyr1[] = { - 0, 135, 136, 137, 137, 138, 138, 139, 139, 139, - 139, 139, 139, 139, 139, 140, 140, 141, 141, 142, - 142, 142, 142, 142, 142, 142, 143, 143, 144, 144, - 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, - 145, 145, 145, 145, 146, 146, 146, 146, 146, 146, - 146, 146, 147, 147, 148, 149, 150, 150, 151, 151, - 152, 152, 153, 154, 154, 156, 155, 157, 157, 157, - 158, 158, 159, 159, 160, 161, 163, 162, 165, 164, - 166, 166, 167, 167, 168, 168, 168, 168, 169, 169, - 170, 171, 173, 172, 175, 174, 177, 176, 178, 178, - 179, 179, 179, 181, 180, 182, 182, 183, 184, 185, - 185, 185, 186, 186, 188, 187, 189, 187, 190, 190, - 191, 191, 192, 192, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 194, 194, 195, 195, 196, 196, - 198, 197, 200, 199, 201, 201, 202, 202, 203, 203, - 203, 203, 203, 204, 204, 205, 205, 206, 206, 206, - 207, 207, 209, 208, 210, 210, 211, 212, 212, 213, - 213, 213, 213, 213, 213, 213, 213, 213, 214, 215, - 216, 217, 219, 218, 221, 220, 222, 222, 222, 222, - 223, 223, 224, 224, 225, 225, 225, 226, 226, 227, - 227, 228, 228, 228, 228, 228, 229, 229, 229, 229, - 230, 230, 231, 231, 232, 232, 232, 234, 233, 235, - 235, 237, 236, 238, 239, 240, 240, 241, 241, 242, - 242, 242, 243, 243, 244, 244, 245, 245, 245, 246, - 247, 246, 248, 249, 250, 250, 251, 252, 252, 253, - 254, 255, 255, 256, 256, 257, 257, 258, 258, 258, - 258, 258, 259, 259, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 261, 260, - 262, 262, 263, 263, 260, 260, 260, 260, 260, 260, - 260, 264, 265, 266, 266, 266, 267, 268 + 0, 136, 137, 138, 138, 139, 139, 140, 140, 140, + 140, 140, 140, 140, 140, 141, 141, 142, 142, 143, + 143, 143, 143, 143, 143, 143, 143, 144, 144, 145, + 145, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 147, 147, 147, 147, + 147, 147, 147, 147, 148, 148, 149, 150, 151, 152, + 152, 153, 153, 154, 154, 155, 157, 156, 158, 158, + 159, 160, 160, 160, 161, 161, 162, 162, 163, 164, + 165, 166, 167, 167, 168, 168, 169, 169, 169, 169, + 170, 170, 171, 172, 174, 173, 176, 175, 178, 177, + 179, 179, 180, 180, 180, 182, 181, 183, 183, 184, + 185, 186, 186, 186, 186, 186, 187, 187, 189, 188, + 190, 188, 191, 191, 191, 192, 192, 193, 193, 194, + 194, 194, 194, 194, 194, 194, 194, 194, 194, 195, + 195, 196, 196, 197, 197, 199, 198, 201, 200, 202, + 202, 203, 203, 204, 204, 204, 204, 204, 205, 205, + 206, 206, 207, 207, 207, 208, 208, 210, 209, 211, + 211, 212, 213, 213, 214, 214, 214, 214, 214, 214, + 214, 214, 214, 215, 216, 217, 218, 220, 219, 222, + 221, 223, 223, 223, 223, 224, 224, 225, 225, 226, + 226, 227, 227, 227, 228, 228, 229, 229, 229, 229, + 229, 230, 230, 230, 230, 231, 231, 232, 232, 233, + 233, 233, 235, 234, 236, 236, 238, 237, 239, 240, + 241, 241, 242, 242, 243, 243, 243, 244, 244, 245, + 245, 246, 246, 246, 247, 248, 247, 249, 250, 251, + 251, 252, 253, 253, 254, 255, 256, 256, 257, 257, + 258, 258, 259, 259, 259, 259, 259, 260, 260, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 262, 261, 263, 263, 263, 264, 264, + 261, 261, 261, 261, 261, 261, 261, 265, 266, 266, + 267, 267, 267, 268, 269, 270 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -2730,39 +2831,40 @@ static const yytype_uint8 yyr2[] = { 0, 2, 1, 0, 1, 1, 2, 1, 1, 1, 1, 1, 1, 4, 1, 0, 1, 1, 2, 1, - 1, 1, 1, 1, 4, 1, 1, 0, 2, 1, + 1, 1, 1, 1, 4, 4, 1, 1, 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 3, 2, 1, 1, 1, 1, 1, 1, - 1, 4, 2, 1, 1, 3, 2, 0, 2, 2, - 1, 3, 3, 0, 2, 0, 7, 0, 1, 1, - 3, 1, 2, 3, 8, 6, 0, 6, 0, 7, - 1, 2, 1, 2, 0, 1, 1, 2, 1, 2, - 4, 3, 0, 8, 0, 9, 0, 5, 1, 2, - 1, 2, 1, 0, 6, 2, 1, 4, 2, 1, - 1, 1, 3, 1, 0, 6, 0, 5, 2, 4, - 0, 1, 1, 2, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 0, 2, 0, 2, 0, 2, - 0, 9, 0, 8, 0, 1, 1, 2, 1, 4, - 1, 1, 1, 0, 1, 1, 2, 1, 2, 8, - 1, 1, 0, 4, 1, 3, 3, 0, 2, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 0, 0, 4, 0, 4, 0, 2, 2, 2, - 2, 3, 1, 1, 10, 6, 11, 0, 1, 1, - 2, 1, 3, 3, 3, 3, 0, 1, 2, 4, - 3, 1, 4, 2, 1, 1, 0, 0, 12, 1, - 0, 0, 10, 1, 3, 1, 1, 1, 3, 1, - 1, 1, 2, 0, 0, 3, 0, 1, 1, 1, - 2, 2, 0, 4, 4, 4, 2, 1, 2, 1, - 1, 1, 3, 1, 3, 0, 1, 1, 1, 1, - 1, 1, 3, 5, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 3, 3, 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, + 1, 1, 1, 1, 3, 2, 1, 1, 1, 1, + 1, 1, 1, 4, 2, 1, 1, 0, 3, 2, + 0, 2, 2, 1, 3, 3, 0, 2, 0, 2, + 6, 0, 1, 1, 3, 1, 2, 3, 8, 6, + 5, 6, 1, 2, 1, 2, 0, 1, 1, 2, + 1, 2, 4, 3, 0, 8, 0, 9, 0, 5, + 1, 2, 1, 2, 1, 0, 6, 2, 1, 4, + 2, 1, 1, 1, 1, 1, 3, 1, 0, 6, + 0, 5, 2, 2, 4, 0, 1, 1, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 2, 0, 2, 0, 2, 0, 9, 0, 8, 0, + 1, 1, 2, 1, 4, 1, 1, 1, 0, 1, + 1, 2, 1, 2, 8, 1, 1, 0, 4, 1, + 3, 3, 0, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 0, 4, 0, + 4, 0, 2, 2, 2, 2, 3, 1, 1, 0, + 1, 6, 10, 11, 1, 2, 1, 3, 3, 3, + 3, 0, 1, 2, 4, 3, 1, 4, 2, 1, + 1, 0, 0, 12, 1, 0, 0, 10, 1, 3, + 1, 1, 1, 3, 1, 1, 1, 2, 0, 0, + 3, 0, 1, 1, 1, 2, 2, 0, 4, 4, + 4, 2, 1, 2, 1, 1, 1, 3, 1, 3, + 0, 1, 1, 1, 1, 1, 1, 3, 5, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 5, 2, 2, 2, 2, 3, 2, 0, 6, - 1, 1, 1, 1, 5, 3, 5, 4, 4, 6, - 6, 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, 2, 2, + 1, 3, 2, 4, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 5, 2, 2, 2, + 2, 3, 2, 0, 6, 1, 1, 1, 1, 1, + 5, 3, 5, 4, 4, 6, 6, 3, 1, 1, + 2, 4, 4, 2, 4, 3 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -2770,864 +2872,870 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint16 yydefact[] = { - 120, 342, 133, 172, 272, 169, 170, 171, 0, 0, - 78, 0, 0, 126, 273, 124, 125, 0, 132, 0, - 131, 220, 176, 177, 305, 127, 0, 0, 0, 175, - 128, 130, 129, 0, 0, 174, 173, 0, 0, 255, - 0, 0, 14, 179, 0, 0, 0, 0, 236, 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, 270, 271, 0, 178, - 10, 264, 266, 268, 267, 39, 253, 265, 269, 41, - 40, 0, 0, 72, 76, 120, 92, 109, 111, 110, - 116, 113, 0, 0, 342, 242, 219, 0, 304, 0, - 0, 118, 0, 103, 236, 0, 246, 65, 257, 258, - 259, 260, 261, 0, 0, 256, 325, 324, 307, 287, - 286, 0, 251, 0, 237, 238, 239, 249, 82, 0, - 106, 247, 0, 80, 44, 43, 120, 45, 29, 0, - 46, 47, 48, 50, 0, 49, 327, 1, 6, 120, - 342, 0, 68, 0, 0, 69, 53, 108, 0, 216, - 0, 161, 0, 160, 162, 346, 123, 192, 0, 193, - 197, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 125, 349, 348, 177, 277, 174, 175, 176, 0, 0, + 66, 0, 0, 131, 278, 129, 130, 0, 137, 0, + 136, 225, 181, 182, 310, 132, 0, 0, 0, 180, + 133, 135, 134, 0, 0, 179, 178, 0, 0, 0, + 260, 0, 0, 14, 184, 0, 0, 0, 0, 241, + 125, 0, 0, 2, 125, 5, 56, 12, 0, 38, + 71, 33, 34, 35, 36, 37, 40, 125, 39, 7, + 32, 0, 126, 127, 9, 8, 11, 275, 276, 0, + 183, 10, 269, 271, 273, 272, 41, 258, 270, 274, + 43, 31, 42, 0, 0, 76, 0, 0, 125, 94, + 111, 115, 113, 112, 114, 120, 117, 0, 0, 349, + 348, 247, 224, 0, 309, 0, 122, 0, 123, 308, + 105, 241, 0, 0, 251, 0, 262, 263, 264, 265, + 266, 0, 0, 261, 330, 329, 312, 292, 291, 0, + 256, 0, 242, 243, 244, 254, 84, 0, 108, 252, + 0, 82, 46, 45, 125, 47, 30, 0, 48, 49, + 50, 52, 0, 51, 332, 1, 6, 125, 349, 0, + 72, 0, 0, 73, 55, 110, 0, 221, 0, 166, + 0, 165, 167, 353, 138, 128, 197, 0, 198, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 323, 322, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 236, 0, 0, 55, 73, 0, 0, - 0, 120, 114, 0, 223, 0, 226, 225, 347, 234, - 206, 0, 250, 0, 0, 27, 0, 326, 0, 275, - 0, 0, 0, 306, 274, 240, 241, 83, 233, 59, - 60, 105, 248, 58, 81, 42, 28, 120, 0, 233, - 0, 0, 52, 343, 215, 214, 0, 134, 136, 0, - 184, 0, 201, 0, 198, 199, 254, 301, 302, 299, - 300, 280, 281, 283, 282, 278, 279, 315, 314, 310, - 309, 317, 318, 319, 316, 312, 311, 313, 284, 285, - 332, 333, 0, 335, 293, 292, 291, 320, 0, 290, - 289, 288, 276, 277, 297, 296, 294, 298, 295, 0, - 0, 332, 331, 328, 0, 0, 0, 341, 0, 0, - 0, 25, 0, 120, 17, 23, 0, 20, 19, 22, - 21, 120, 112, 0, 236, 243, 167, 0, 0, 207, - 211, 107, 119, 224, 303, 0, 26, 245, 0, 262, - 0, 252, 0, 57, 0, 120, 13, 57, 0, 0, - 0, 0, 0, 138, 0, 0, 233, 163, 164, 0, - 0, 0, 180, 181, 186, 200, 0, 338, 0, 244, - 308, 0, 0, 0, 337, 0, 120, 0, 0, 117, - 18, 120, 0, 0, 0, 0, 213, 208, 233, 0, - 0, 120, 0, 231, 230, 229, 232, 0, 62, 61, - 51, 0, 120, 344, 345, 206, 135, 0, 0, 227, - 137, 142, 57, 0, 185, 205, 204, 202, 203, 0, - 0, 0, 321, 0, 336, 0, 334, 77, 0, 84, - 0, 115, 235, 168, 167, 0, 0, 210, 0, 0, - 98, 102, 100, 104, 63, 263, 56, 0, 75, 0, - 139, 140, 0, 120, 166, 165, 195, 188, 179, 189, - 0, 187, 0, 186, 340, 329, 339, 79, 0, 0, - 0, 85, 88, 86, 24, 212, 221, 209, 96, 0, - 99, 101, 120, 66, 120, 233, 120, 228, 0, 157, - 0, 0, 120, 155, 0, 182, 179, 186, 190, 0, - 27, 93, 89, 87, 27, 27, 233, 64, 74, 0, - 148, 152, 0, 0, 0, 120, 146, 150, 151, 158, - 216, 143, 156, 181, 0, 0, 191, 27, 91, 0, - 0, 0, 217, 120, 141, 147, 0, 0, 183, 181, - 90, 222, 97, 94, 27, 0, 0, 194, 0, 0, - 0, 149, 206, 196, 27, 218, 0, 0, 233, 95, - 159 + 0, 0, 0, 0, 328, 327, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 241, 0, 0, 58, 77, 0, 255, 0, + 67, 0, 125, 118, 0, 228, 0, 231, 230, 355, + 239, 211, 0, 0, 28, 0, 331, 0, 0, 280, + 0, 0, 0, 311, 279, 245, 246, 85, 238, 62, + 63, 107, 253, 61, 83, 44, 29, 125, 0, 238, + 0, 0, 54, 350, 220, 219, 0, 139, 141, 0, + 189, 0, 206, 0, 200, 204, 259, 306, 307, 304, + 305, 285, 286, 288, 287, 283, 284, 320, 319, 315, + 314, 322, 323, 324, 321, 317, 316, 318, 289, 290, + 339, 0, 338, 341, 298, 297, 296, 325, 0, 295, + 294, 293, 281, 282, 302, 301, 299, 303, 300, 0, + 0, 111, 115, 339, 333, 0, 0, 0, 347, 66, + 0, 0, 26, 57, 0, 125, 17, 23, 0, 20, + 19, 22, 21, 125, 116, 0, 241, 248, 172, 0, + 0, 212, 216, 109, 124, 229, 0, 27, 250, 354, + 66, 267, 0, 257, 0, 60, 0, 125, 13, 60, + 0, 0, 0, 0, 0, 143, 0, 0, 238, 168, + 169, 0, 0, 0, 185, 186, 191, 205, 0, 344, + 0, 249, 313, 0, 0, 0, 343, 0, 80, 0, + 0, 0, 121, 18, 125, 0, 0, 0, 0, 218, + 213, 238, 0, 0, 68, 0, 236, 235, 234, 237, + 0, 65, 64, 53, 0, 66, 351, 352, 211, 140, + 0, 0, 232, 142, 147, 60, 0, 190, 210, 209, + 207, 208, 0, 0, 0, 326, 0, 342, 0, 340, + 81, 86, 0, 0, 119, 240, 173, 172, 0, 0, + 215, 0, 0, 100, 104, 102, 106, 66, 70, 268, + 59, 0, 79, 0, 144, 145, 0, 125, 171, 170, + 201, 193, 184, 194, 0, 192, 0, 191, 346, 334, + 345, 0, 0, 0, 87, 90, 88, 25, 24, 217, + 226, 214, 98, 0, 101, 103, 69, 66, 238, 125, + 233, 0, 162, 0, 0, 125, 160, 0, 187, 184, + 191, 195, 0, 28, 95, 91, 89, 28, 28, 238, + 78, 0, 153, 157, 0, 0, 0, 125, 151, 155, + 156, 163, 221, 148, 161, 186, 0, 0, 196, 28, + 93, 0, 0, 0, 222, 125, 146, 152, 0, 0, + 188, 186, 92, 227, 99, 96, 28, 0, 0, 202, + 0, 0, 0, 154, 211, 203, 28, 223, 0, 0, + 238, 97, 164 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 51, 52, 53, 54, 342, 343, 344, 365, 366, - 147, 148, 167, 345, 149, 428, 150, 263, 260, 513, - 58, 248, 163, 164, 59, 60, 61, 62, 228, 63, - 95, 151, 152, 500, 501, 502, 503, 64, 230, 470, - 579, 471, 535, 472, 473, 65, 245, 153, 66, 67, - 234, 235, 68, 351, 231, 69, 154, 71, 72, 383, - 385, 438, 347, 516, 348, 483, 544, 545, 546, 521, - 522, 523, 174, 349, 279, 387, 388, 416, 76, 77, - 78, 394, 449, 491, 554, 179, 389, 450, 492, 180, - 79, 283, 284, 285, 358, 359, 360, 276, 350, 574, - 107, 81, 534, 236, 237, 425, 440, 426, 373, 355, - 133, 134, 135, 239, 82, 83, 84, 155, 136, 241, - 242, 85, 123, 124, 125, 86, 401, 336, 313, 87, - 88, 175, 89, 90 + -1, 52, 53, 54, 55, 354, 355, 356, 376, 377, + 155, 156, 175, 357, 421, 157, 441, 158, 273, 270, + 97, 98, 488, 59, 171, 172, 60, 61, 62, 63, + 64, 159, 160, 513, 514, 515, 516, 65, 241, 483, + 591, 484, 548, 485, 486, 66, 254, 161, 67, 68, + 245, 246, 69, 363, 242, 70, 162, 72, 73, 395, + 397, 451, 359, 529, 360, 497, 556, 557, 558, 534, + 535, 536, 182, 361, 289, 399, 400, 429, 77, 78, + 79, 406, 462, 505, 566, 188, 401, 463, 506, 189, + 293, 80, 294, 295, 370, 371, 372, 286, 362, 586, + 113, 82, 547, 247, 248, 438, 453, 439, 385, 367, + 141, 142, 143, 250, 83, 84, 85, 163, 144, 237, + 238, 86, 131, 132, 133, 87, 413, 347, 323, 88, + 89, 183, 90, 91, 92 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -474 +#define YYPACT_NINF -487 static const yytype_int16 yypact[] = { - 1747, -27, -474, -474, -474, -474, -474, -474, -10, -46, - -474, -25, 26, -474, -474, -474, -474, 90, -474, 2197, - -474, 106, -474, -474, 412, -474, 11, 133, 23, -474, - -474, -474, -474, 13, -53, -474, -474, 2197, 32, 257, - 2197, 2197, -474, -474, 2197, 2197, 2197, 2197, 2197, 699, - 154, 224, -474, 568, -474, -474, -474, 99, -474, 2126, - -474, -474, -474, -474, -474, -474, 2001, -474, -474, -474, - 361, 70, -474, -474, -474, -474, -474, -474, 65, -474, - -474, -474, -474, -474, -474, 141, 2897, -474, -474, -474, - -474, 242, 125, -474, -474, 2001, -474, -474, -474, -474, - -474, -474, 143, 133, -474, -52, -474, 127, -44, 2197, - 124, -474, 2197, -474, 2197, 256, -44, -474, -474, -474, - -474, -474, -474, 135, 176, 182, -44, -44, 202, -44, - -44, -37, 2835, 159, 186, 2197, -474, 2835, 286, 288, - 2197, 2197, 288, 289, -474, -474, 830, -474, -474, 169, - -474, -474, -474, -474, 287, -474, -474, -474, -474, 1092, - 236, 302, -474, 206, 241, 141, 211, -474, 311, 43, - 312, -474, 320, -474, -474, -474, -474, -474, 2197, -474, - 66, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, - 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, - 2197, 2197, 2197, 2197, 2197, -474, -474, 15, 2197, 2197, - 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, - 2197, 2197, 2197, 2197, 2197, 22, -474, -474, 2197, 317, - 2197, 1223, -474, 133, 196, 203, -474, -474, -474, 209, - 35, 199, 235, 107, 2256, 1874, 204, -474, 2197, -474, - 2197, 257, 2197, -474, -474, -474, -474, -474, 232, 239, - -474, -474, -474, 239, -474, -474, -474, 2001, 215, 232, - 2197, 2197, -474, 246, -474, -474, 347, 300, 303, 353, - 2835, 255, 258, 37, 66, -474, 2835, 383, 560, 560, - 560, 3269, 3269, 3269, 3269, 383, 383, 2835, 2835, 2835, - 2835, 2835, 2835, 2835, 2835, 2835, 2835, 2835, 2959, 3021, - -474, -474, 42, -474, 185, 185, 185, 2835, 2463, 3083, - 3145, 3207, 383, 383, 202, 202, -44, -44, -44, 230, - 2525, 270, -474, -474, 2197, 100, 275, -474, 233, 243, - 2325, -474, 237, 1354, -474, -474, 248, -474, -474, -474, - -474, 1223, -474, 133, 2197, -474, 36, 375, 245, 280, - -474, -474, -474, 254, -474, 253, 1874, -474, 261, -474, - 291, 2835, 252, 299, 288, 961, -474, -18, 304, 269, - 151, 268, 133, 391, 133, 281, 232, 309, -474, 283, - 67, 87, -474, -474, -474, -474, 2197, -474, 2197, -474, - -474, 2197, 2587, 2197, -474, 17, 2001, 2197, 292, -474, - -474, 1223, 294, 290, 2197, 252, -474, -474, 232, 41, - 33, 2001, 2197, -474, -474, -474, -474, 2197, -474, -474, - -474, 2197, 2001, -474, -474, 35, -474, 133, 298, -474, - 328, -474, 299, 353, -474, -474, -474, -474, -474, 319, - 102, 2649, 2835, 2394, -474, 2711, -474, -474, 301, 24, - 306, -474, -474, 2835, 329, 307, 375, -474, 310, 321, - -474, -474, 33, -474, 368, -474, 2835, -30, -474, 308, - 328, -474, 133, 226, -474, -474, -474, -474, 330, -474, - 2197, -474, 333, -474, -474, -474, -474, -474, 2197, 341, - 314, 24, -474, -474, -474, -474, -474, -474, -474, 445, - -474, -474, 2001, -474, 2001, 232, 1485, -474, 446, -474, - 424, 323, 351, -474, 65, 2835, 337, -474, 111, 2773, - 1874, -474, -474, -474, 1874, 1874, 232, -474, -474, 327, - -474, -474, 334, 296, 331, 1616, -474, -474, -474, -474, - 43, -474, -474, -474, 336, 65, 111, 1874, -474, 338, - 339, 326, -474, 1485, -474, -474, 459, 352, -474, -474, - -474, -474, -474, -474, 1874, 340, 343, -474, 359, 354, - 355, -474, 35, -474, 1874, -474, 356, 358, 232, -474, - -474 + 1768, -22, 518, -487, -487, -487, -487, -487, -28, -46, + -487, -44, 95, -487, -487, -487, -487, 71, -487, 2224, + -487, 102, -487, -487, 2281, -487, -17, 378, 2224, -487, + -487, -487, -487, -5, -101, -487, -487, 128, 2224, 39, + 334, 2224, 2224, -487, -487, 2224, 2224, 2224, 2224, 2224, + 712, 169, 176, -487, 580, -487, -487, -487, 94, -487, + 2152, -487, -487, -487, -487, -487, -487, 2024, -487, -487, + -487, 353, 396, -487, -487, -487, -487, -487, -487, 14, + -487, -487, -487, -487, -487, -487, 124, 2914, -487, -487, + -487, -487, -487, 228, 111, -487, 2224, 229, 2024, -487, + -487, -487, -487, -487, -487, -487, -487, 27, 676, -487, + -487, -35, -487, 125, 312, 2224, 126, 132, -487, 312, + -487, 2224, 251, 158, 312, 2224, -487, -487, -487, -487, + -487, 129, 161, 168, 312, 312, 677, 312, 312, -40, + 2852, 149, 175, 2224, -487, 2852, 276, 277, 2224, 2224, + 277, 281, -487, -487, 844, -487, -487, 154, -487, -487, + -487, -487, 270, -487, -487, -487, -487, 1108, 223, 291, + -487, 194, 227, 124, 197, -487, 300, 65, 302, -487, + 304, -487, -487, -487, -487, -487, -487, 2224, -487, 18, + 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, + 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, + 2224, 2224, 2224, 2224, -487, -487, 36, 2224, 2224, 2224, + 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, + 2224, 2224, 2224, 2224, 15, -487, -487, 173, 212, 191, + -487, 2224, 1240, -487, 676, 187, 189, -487, -487, -487, + 198, 40, 188, 85, 1896, 196, -487, 2224, 199, -487, + 2224, 334, 2224, -487, -487, -487, -487, -487, 230, 233, + -487, -487, -487, 233, -487, -487, -487, 2024, 206, 230, + 2224, 2224, -487, 241, -487, -487, 347, 305, 313, 365, + 2852, 266, 267, 46, 18, -487, 2852, 1100, 572, 572, + 572, 3286, 3286, 3286, 3286, 1100, 1100, 2852, 2852, 2852, + 2852, 2852, 2852, 2852, 2852, 2852, 2852, 2852, 2976, 3038, + -487, 148, -487, -487, 195, 195, 195, 2852, 397, 3100, + 3162, 3224, 1100, 1100, 677, 677, 312, 312, 312, 238, + 2480, 295, 296, 297, -487, 2224, 235, 298, -487, -487, + 2224, 2340, -487, 264, 274, 1372, -487, -487, 282, -487, + -487, -487, -487, 1240, -487, 676, 2224, -487, -36, 408, + 283, 310, -487, -487, -487, 293, 286, 1896, -487, 2852, + -487, -487, 321, 2852, 57, 326, 277, 976, -487, 6, + 330, 307, 74, 308, 676, 418, 676, 311, 230, 333, + -487, 306, 19, 20, -487, -487, -487, -487, 2224, -487, + 2224, -487, -487, 2224, 2542, 2224, -487, 243, -487, 314, + 318, 2224, -487, -487, 1240, 316, 317, 2224, 57, -487, + -487, 230, 43, 116, 381, 2224, -487, -487, -487, -487, + 2224, -487, -487, -487, 2224, -487, -487, -487, 40, -487, + 676, 320, -487, 349, -487, 326, 365, -487, -487, -487, + -487, -487, 341, 22, 2604, 2852, 2410, -487, 2666, -487, + -487, 42, 2728, 322, -487, -487, 2852, 351, 329, 408, + -487, 331, 336, -487, -487, 116, -487, -487, -487, -487, + 2852, -20, -487, 323, 349, -487, 676, 279, -487, -487, + -487, -487, 345, -487, 2224, -487, 352, -487, -487, -487, + -487, 2224, 358, 354, 42, -487, -487, -487, -487, -487, + -487, -487, -487, 465, -487, -487, -487, -487, 230, 1504, + -487, 493, -487, 472, 366, 328, -487, 14, 2852, 391, + -487, 45, 2790, 1896, -487, -487, -487, 1896, 1896, 230, + -487, 382, -487, -487, 388, 346, 383, 1636, -487, -487, + -487, -487, 65, -487, -487, -487, 384, 14, 45, 1896, + -487, 385, 386, 389, -487, 1504, -487, -487, 522, 415, + -487, -487, -487, -487, -487, -487, 1896, 394, 413, -487, + 428, 414, 411, -487, 40, -487, 1896, -487, 412, 417, + 230, -487, -487 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -474, -474, 342, -474, 433, -309, -474, 144, -294, -33, - 1, -59, -86, 59, 2, 47, 436, 363, 118, -474, - -474, -474, -474, -474, -474, -474, -474, -474, -474, -474, - -474, -474, -474, -474, -474, 6, 8, -474, -474, 38, - -474, 49, -474, -474, -474, -474, -474, -474, -474, -474, - 10, 40, -474, -474, -474, -474, 0, -474, 434, -474, - -474, -474, 61, -474, 62, -474, -50, -474, -31, -474, - -474, -7, -474, 3, -474, -474, 69, 60, -474, -474, - -474, -474, -464, -474, -474, -163, -474, -447, -474, -473, - -427, -474, -474, 244, -416, -474, -336, -24, 4, -474, - -474, -474, -474, -474, 496, -98, 88, 112, -254, -474, - -100, -474, -474, -474, -474, -474, -474, -474, -125, -128, - 482, -51, -474, 279, -474, -13, -474, -474, -186, -474, - -474, -474, -474, -474 + -487, -487, 379, -487, 494, -318, -487, 200, -311, -37, + 1, -57, 454, 63, -487, 2, 98, 503, 407, 182, + -221, -487, -487, -487, -487, -487, -487, -487, -487, -487, + -487, -487, -487, -487, -487, 55, 56, -487, -487, 86, + -487, 87, -487, -487, -487, -487, -487, -487, -487, -487, + 37, 113, -487, -487, -487, -487, 0, -487, 501, -487, + -487, -487, 66, -487, 67, -487, -1, -487, 24, -487, + -487, 47, -487, 3, -487, -487, 131, 118, -487, -487, + -487, -487, -473, -487, -487, -175, -487, -422, -487, -486, + -487, -416, -487, 319, -433, -487, -349, 34, 4, -487, + -487, -487, -487, -487, 579, -103, 157, 183, -271, -487, + -110, -487, -487, -487, -487, -487, -487, -487, -134, -77, + 562, -54, -487, 356, -487, -12, -487, -487, -192, -487, + -487, -487, -487, -487, -487 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule which number is the opposite. If zero, do what YYDEFACT says. If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -331 +#define YYTABLE_NINF -338 static const yytype_int16 yytable[] = { - 70, 55, 57, 75, 80, 238, 105, 166, 165, 229, - 256, 108, 261, 262, 246, 377, 146, 282, 310, 479, - 310, 417, 101, 493, 116, 331, 332, 126, 127, 97, - 98, 128, 129, 130, 132, 137, 166, 101, 356, 337, - 92, 207, 412, 99, 356, 310, 528, 205, 206, 207, - -70, 553, 102, 70, 55, 57, 75, 80, 498, 56, - 468, 73, 74, 91, 252, 527, 469, 110, 177, 281, - 114, 181, 445, 224, 2, 115, 225, 94, 274, 223, - 556, 224, 569, 467, 225, 427, 499, 266, 13, 567, - 15, 16, 447, 18, 275, 20, 132, 253, 96, 244, - 338, 137, 460, 310, 514, 578, 103, 487, 25, 106, - 97, 98, 56, 93, 73, 74, 487, 30, 31, 32, - 368, 282, 137, 329, 99, 369, 397, 132, 132, 357, - 507, 311, 442, 311, 109, 466, 97, 98, 311, 414, - 113, 415, 378, 379, 312, 333, 112, 334, 392, 404, - 99, 335, 393, 100, 433, 117, 434, 156, 311, 70, - 55, 57, 75, 80, 465, 280, 586, 396, 286, 287, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 71, 56, 58, 76, 81, 249, 173, 111, 389, 266, + 174, 255, 114, 154, 292, 493, 119, 186, 341, 342, + 430, 291, 94, 121, 458, 460, 124, 501, 122, 134, + 135, 102, 103, 136, 137, 138, 140, 145, 252, 100, + 101, 174, 348, 368, 104, 425, 368, 507, 258, 106, + 501, 565, 102, 103, 71, 56, 58, 76, 81, 216, + 100, 101, 262, 57, 106, 104, 74, 75, 427, 93, + 428, 271, 272, 102, 103, -74, 511, 446, 96, 447, + 99, 581, 190, 480, 140, 541, 104, 108, 100, 101, + 540, 233, 579, 436, 234, 263, 95, 276, 100, 101, + 284, 102, 103, 140, 512, 112, 473, 115, 590, 145, + 440, 102, 103, 140, 104, 527, 285, 57, 568, 292, + 74, 75, 339, 120, 104, 107, 381, 455, 418, 409, + 521, 145, 343, 502, 503, 369, 140, 140, 479, 344, + 117, 345, 187, 481, 123, 346, 187, 187, 187, 482, + 504, 100, 101, 320, 416, 243, 244, 503, 404, 434, + 478, 598, 405, 125, 102, 103, 321, 71, 56, 58, + 76, 81, 164, 504, 437, 290, 165, 104, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, - 308, 309, 178, 178, 178, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 137, 330, 488, 489, 178, 132, 311, 340, 56, 456, - 73, 74, 489, 362, 157, 403, 159, 446, 448, 490, - 2, 70, 55, 346, 375, 132, 558, 137, 490, 371, - 559, 560, 181, 352, 13, 226, 15, 16, 227, 18, - 240, 20, 243, 363, 413, 97, 98, 132, 132, 247, - 118, 539, 119, 570, 25, 120, 121, 122, 249, 99, - 232, 233, 518, 30, 31, 32, 205, 206, 207, 458, - 580, 250, 561, 251, 436, 254, 439, 255, 423, 257, - 587, 258, 264, 205, 206, 207, 267, 475, 218, 219, - 220, 221, 222, 168, -71, 269, 270, 266, 223, 271, - 224, 272, 168, 225, 273, 277, 266, 220, 221, 222, - 457, 402, 169, 278, -113, 223, 519, 224, 171, 339, - 225, 353, 354, 361, 590, 474, 252, 372, 367, 439, - 374, 137, 173, 70, 55, 346, 478, 166, 376, 380, - 381, 70, 55, 346, 382, 2, 386, 384, 390, -153, - -330, 391, 166, 363, 399, 405, 407, 406, 424, 13, - 409, 15, 16, 166, 18, 411, 20, 168, 356, 418, - 477, 419, -112, 451, 517, 452, 420, 169, 453, 25, - 455, 435, 170, 171, 132, 421, 422, 518, 30, 31, - 32, 463, 427, 432, 431, 172, 437, 173, 441, 137, - 443, 70, 55, 346, 476, 104, 444, 3, 4, 459, - 5, 6, 7, -331, 462, 481, 537, 461, 538, 482, - 486, 14, 414, 512, 506, 497, 19, 508, 21, 504, - 22, 23, 515, 526, 509, 524, 530, 531, 536, 549, - 550, 519, 555, 166, 562, 166, 551, 29, -331, -331, - 573, 563, 576, 577, 564, 34, 582, 35, 36, 568, - 583, 571, 572, 581, 205, 206, 207, 525, 208, 209, - 210, 584, 39, 520, -154, 529, 158, 410, 585, 484, - 588, 589, 429, -331, -331, 162, 218, 219, 220, 221, - 222, 268, 259, 40, 41, 176, 223, 532, 224, 533, - 510, 225, 485, 575, 565, 552, 543, 541, 542, 547, - 548, 511, 520, 111, 505, 480, 566, 464, 395, 131, - 370, 0, 0, 0, 0, 47, 0, 48, 0, 0, - 0, 50, 0, 0, 0, 543, 541, 542, 547, 548, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 374, 390, 391, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + 145, 340, 167, 105, 492, 469, 190, 459, 461, 351, + 57, 235, 570, 74, 75, 236, 571, 572, 100, 101, + 387, 239, 71, 56, 358, 379, 100, 101, 145, 251, + 383, 102, 103, 322, 256, -111, 426, 551, 582, 102, + 103, 253, 257, 259, 104, 320, 526, 260, 140, 140, + 261, 322, 104, 419, 408, 592, 264, 265, 573, 267, + 268, 364, 277, 184, 274, 599, 176, 214, 215, 216, + 375, 449, -75, 452, 279, 280, 281, 13, 282, 15, + 16, 489, 18, 283, 20, 287, 550, 288, 349, 227, + 228, 229, 230, 231, 262, 350, -117, 25, 365, 232, + 276, 233, 366, 373, 234, 531, 30, 31, 32, 602, + 276, 378, 184, 414, 380, 386, 384, 126, 140, 127, + 388, 145, 128, 129, 130, 392, 13, 452, 15, 16, + 393, 18, 320, 20, 145, 71, 56, 358, 322, 394, + 320, 415, 176, 71, 56, 358, 25, 396, 398, 176, + 402, 403, 177, 411, 531, 30, 31, 32, 179, 177, + 532, 116, 101, 322, 178, 179, -335, -337, -336, 417, + 491, -241, 181, 530, 102, 103, 464, 180, 465, 181, + 184, 466, 375, 468, 214, 215, 216, 104, 422, 472, + 424, 368, 432, -158, 13, 476, 15, 16, 431, 18, + 433, 20, -116, 145, 71, 56, 358, 435, 490, 532, + 440, 444, 448, 450, 25, 456, 232, 191, 233, 454, + 457, 234, 445, 30, 31, 32, 471, 487, 495, 470, + 474, 496, 475, 500, 322, 427, 518, 520, 528, 522, + 523, 537, -159, 539, 543, 192, 193, 194, 549, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 544, 214, + 215, 216, 538, 217, 218, 219, 561, 533, 562, 542, + 563, 220, 221, 410, 222, 223, 224, 567, 225, 226, + 574, 227, 228, 229, 230, 231, 575, 576, 580, 583, + 584, 232, -138, 233, 585, 588, 234, 589, 593, 555, + 553, 554, 559, 560, -138, 533, -138, 594, -138, -138, + 595, -138, 596, -138, -138, 597, 278, 600, 166, -138, + -138, 601, 240, 498, 269, 423, -138, 555, 553, 554, + 559, 560, -138, 170, -138, -138, -138, -138, 442, 545, + 546, 524, 525, 185, 587, 555, 553, 554, 559, 560, + -4, 577, 564, 1, 2, 3, 4, 499, 5, 6, + 7, 8, 9, 10, 11, 519, 578, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 118, 494, 22, 23, + 139, 477, 191, 407, 0, 0, 24, 382, 25, 26, + 0, 27, 0, 28, 0, 29, 0, 30, 31, 32, + 0, 0, 33, 34, 0, 35, 36, 0, 0, 0, + -338, -338, -338, 37, 38, 39, 0, 0, 199, 200, + 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 214, 215, 216, 0, 217, 218, + 219, 0, 41, 42, 0, 0, 0, 0, 0, 100, + 101, 43, 0, 225, 226, 0, 227, 228, 229, 230, + 231, 44, 102, 103, 45, 0, 232, 0, 233, 46, + 47, 234, 0, 0, 48, 104, 49, 0, 50, 0, + 51, 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, 21, 0, + 22, 23, 146, 0, 147, 0, 0, 0, 24, 148, + 25, 26, 0, 27, 149, 28, 0, 29, 150, 30, + 31, 32, 0, 0, 33, 34, 0, 35, 36, 214, + 215, 216, 0, 0, 0, 37, 38, 39, 0, 151, + 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 229, 230, 231, 0, 0, 0, 0, + 0, 232, 0, 233, 41, 42, 234, 0, 0, 0, + 0, 0, 0, 152, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 44, 0, 0, 45, 0, 0, 0, + 0, 46, 47, 0, 0, 0, 48, 0, 49, 0, + 50, 0, 51, 0, 0, 0, 153, 1, 2, 3, + 4, 0, 5, 6, 7, 8, 9, 10, 11, 0, + 0, 0, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 0, 22, 23, 146, 0, 147, 0, 0, 0, + 24, 148, 25, 26, 0, 27, 149, 28, 0, 29, + 150, 30, 31, 32, 0, 0, 33, 34, 0, 35, + 36, 0, 0, 0, 0, 0, 0, 37, 38, 39, + 0, 151, 0, 0, 0, 40, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 41, 42, 0, 0, + 0, 0, 0, 0, 0, 152, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 44, 0, 0, 45, 0, + 0, 0, 0, 46, 47, 0, 0, 0, 48, 0, + 49, 0, 50, 0, 51, 0, 0, 0, 275, 1, + 2, 3, 4, 0, 5, 6, 7, 8, 9, 10, + 11, 0, 0, 0, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 0, 22, 23, 146, 0, 147, 0, + 0, 0, 24, 148, 25, 26, 0, 27, 149, 28, + 0, 29, 150, 30, 31, 32, 0, 0, 33, 34, + 0, 35, 36, 0, 0, 0, 0, 0, 0, 37, + 38, 39, 0, 151, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 543, 541, 542, 547, 548, -4, 0, - 0, 1, 2, 3, 4, 0, 5, 6, 7, 8, + 0, 0, 0, 0, 0, 0, 0, 0, 41, 42, + 0, 0, 0, 0, 0, 0, 0, 152, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, + 45, 0, 0, 0, 0, 46, 47, 0, 0, 0, + 48, 0, 49, 0, 50, 0, 51, 0, 0, 0, + 443, 1, 2, 3, 4, 0, 5, 6, 7, 8, 9, 10, 11, 0, 0, 12, 13, 14, 15, 16, 17, 18, 19, 20, 0, 0, 22, 23, 0, 0, - 182, 0, 0, 0, 24, 0, 25, 26, 0, 27, + -338, 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, -331, -331, -331, - 0, 37, 38, 0, 0, 190, 191, 0, 39, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 205, 206, 207, 0, 208, 209, 210, 0, 40, - 41, 0, 0, 0, 0, 0, 0, 0, 42, 0, - 216, 217, 0, 218, 219, 220, 221, 222, 43, 0, - 0, 44, 0, 223, 0, 224, 45, 46, 225, 0, - 0, 47, 0, 48, 0, 49, 0, 50, 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, 21, 0, 22, 23, 138, - 0, 139, 0, 0, 0, 24, 140, 25, 26, 0, - 27, 141, 28, 0, 29, 142, 30, 31, 32, 0, - 0, 33, 34, 0, 35, 36, 0, 0, 0, 0, - 0, 0, 37, 38, 0, 143, 0, 0, 0, 39, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 33, 34, 0, 35, 36, 0, 0, 0, 0, 0, + 0, 37, 38, 39, 0, 0, -338, -338, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 40, 41, 0, 0, 0, 0, 0, 0, 0, 144, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, - 0, 0, 44, 0, 0, 0, 0, 45, 46, 0, - 0, 0, 47, 0, 48, 0, 49, 0, 50, 0, - 0, 0, 145, 1, 2, 3, 4, 0, 5, 6, + 0, 0, 214, 215, 216, 0, 217, 218, 219, 0, + 41, 42, 0, 0, 0, 0, 0, 0, 0, 43, + 0, -338, -338, 0, 227, 228, 229, 230, 231, 44, + 0, 0, 45, 0, 232, 0, 233, 46, 47, 234, + 0, 0, 48, 0, 49, 0, 50, 0, 51, 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, 20, 21, 0, 22, 23, - 138, 0, 139, 0, 0, 0, 24, 140, 25, 26, - 0, 27, 141, 28, 0, 29, 142, 30, 31, 32, + 15, 16, 17, 18, 19, 20, 0, 0, 22, 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, 143, 0, 0, 0, - 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 37, 38, 39, 0, 0, 0, 0, + 0, 40, 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, - 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 43, 0, 0, 44, 0, 0, 0, 0, 45, 46, - 0, 0, 0, 47, 0, 48, 0, 49, 0, 50, - 0, 0, 0, 265, 1, 2, 3, 4, 0, 5, - 6, 7, 8, 9, 10, 11, 0, 0, 0, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 0, 22, - 23, 138, 0, 139, 0, 0, 0, 24, 140, 25, - 26, 0, 27, 141, 28, 0, 29, 142, 30, 31, - 32, 0, 0, 33, 34, 0, 35, 36, 0, 0, - 0, 0, 0, 0, 37, 38, 0, 143, 0, 0, - 0, 39, 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, 144, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 43, 0, 0, 44, 0, 0, 0, 0, 45, - 46, 0, 0, 0, 47, 0, 48, 0, 49, 0, - 50, 0, 0, 0, 430, 1, 2, 3, 4, 0, - 5, 6, 7, 8, 9, 10, 11, 0, 0, 12, + 0, 0, 41, 42, 0, 0, 0, 0, 0, 0, + 0, 352, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 44, 0, 0, 45, 0, 0, 0, 0, 46, + 47, 0, 0, 0, 48, 0, 353, 0, 50, 0, + 51, 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, 20, 0, 0, 22, 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, 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, 43, 0, 0, 44, 0, 0, 0, 0, - 45, 46, 0, 0, 0, 47, 0, 48, 0, 49, - 0, 50, 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, 20, 0, - 0, 22, 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, 37, 38, 39, 0, 0, + 0, 0, 0, 40, 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, 341, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 43, 0, 0, 44, 0, 0, 0, - 0, 45, 46, 0, 0, 0, 47, 0, 48, 0, - 49, 0, 50, 0, 0, 0, -15, 1, 2, 3, + 0, 0, 0, 0, 41, 42, 0, 0, 0, 0, + 0, 0, 0, 352, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 44, 0, 0, 45, 0, 0, 0, + 0, 46, 47, 0, 0, 0, 48, 0, 353, 0, + 50, 0, 51, 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, 20, 0, 0, 22, 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, + 36, 0, 0, 0, 0, 0, 0, 37, 38, 39, + 0, 0, 0, 0, 0, 40, 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, 341, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 43, 0, 0, 44, 0, 0, - 0, 0, 45, 46, 0, 0, 0, 47, 0, 48, - 0, 49, 0, 50, 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, - 20, 0, 0, 22, 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, 0, - 0, 0, 0, 0, 0, 0, 40, 41, 0, 0, - 0, 0, 0, 0, 0, 540, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 43, 0, 0, 44, 0, - 0, 0, 0, 45, 46, 0, 0, 0, 47, 0, - 48, 0, 49, 0, 50, 0, 0, 0, -144, 1, + 0, 0, 0, 0, 0, 0, 41, 42, 0, 0, + 0, 0, 0, 0, 0, 552, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 44, 0, 0, 45, 0, + 0, 0, 0, 46, 47, 0, 0, 0, 48, 0, + 49, 0, 50, 0, 51, 0, 0, 0, -149, 1, 2, 3, 4, 0, 5, 6, 7, 8, 9, 10, 11, 0, 0, 0, 13, 14, 15, 16, 17, 18, 19, 20, 0, 0, 22, 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, + 38, 39, 0, 0, 0, 0, 0, 40, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 41, 42, + 0, 0, 0, 0, 0, 0, 0, 552, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, + 45, 0, 0, 0, 0, 46, 47, 0, 0, 0, + 48, 0, 49, 0, 50, 0, 51, 0, -3, 0, + -150, 1, 2, 3, 4, 0, 5, 6, 7, 8, + 9, 10, 11, 0, 0, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 0, 0, 22, 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, 39, 0, 0, 0, 0, 0, 40, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 40, 41, 0, - 0, 0, 0, 0, 0, 0, 540, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 43, 0, 0, 44, - 0, 0, 0, 0, 45, 46, 0, 0, 0, 47, - 0, 48, 0, 49, 0, 50, 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, 20, 0, 0, 22, 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, + 41, 42, 0, 0, 0, 0, 0, 0, 0, 43, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, + 0, 0, 45, 0, 0, 0, 0, 46, 47, 0, + 0, 0, 48, 0, 49, 0, 50, 0, 51, 1, + 2, 3, 4, 0, 5, 6, 7, 8, 9, 10, + 11, 0, -125, 0, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 0, 22, 23, 146, 0, 147, 0, + 0, 0, 24, 148, 25, 26, 0, 27, 149, 28, + 0, 29, 150, 30, 31, 32, 0, 0, 33, 34, + 0, 35, 36, 0, 0, 0, 0, 0, 0, 37, + 38, 39, 0, 151, 0, 0, 0, 40, 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, 43, 0, 0, - 44, 0, 0, 0, 0, 45, 46, 0, 0, 0, - 47, 0, 48, 0, 49, 0, 50, 1, 2, 3, + 0, 0, 0, 0, 0, 0, 0, 0, 41, 42, + 0, 0, 0, 0, 0, 0, 0, 152, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, + 45, 0, 0, 0, 0, 46, 47, 0, 0, 0, + 48, 0, 49, 0, 50, 0, 51, 1, 2, 3, 4, 0, 5, 6, 7, 8, 9, 10, 11, 0, - -120, 0, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 0, 22, 23, 138, 0, 139, 0, 0, 0, - 24, 140, 25, 26, 0, 27, 141, 28, 0, 29, - 142, 30, 31, 32, 0, 0, 33, 34, 0, 35, - 36, 0, 0, 0, 0, 0, 0, 37, 38, 0, - 143, 0, 0, 0, 39, 0, 0, 0, 0, 0, + 0, 0, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 0, 22, 23, 146, 0, 147, 0, 0, 0, + 24, 148, 25, 26, 0, 27, 149, 28, 0, 29, + 150, 30, 31, 32, 0, 0, 33, 34, 0, 35, + 36, 0, 0, 0, 0, 0, 0, 37, 38, 39, + 0, 151, 0, 0, 0, 40, 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, 144, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 43, 0, 0, 44, 0, 0, - 0, 0, 45, 46, 0, 0, 0, 47, 0, 48, - 0, 49, 0, 50, 1, 2, 3, 4, 0, 5, - 6, 7, 8, 9, 10, 11, 0, 0, 0, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 0, 22, - 23, 138, 0, 139, 0, 0, 0, 24, 140, 25, - 26, 0, 27, 141, 28, 0, 29, 142, 30, 31, - 32, 0, 0, 33, 34, 0, 35, 36, 0, 0, - 0, 0, 0, 0, 37, 38, 0, 143, 0, 0, - 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 41, 42, 0, 0, + 0, 0, 0, 0, 0, 152, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 44, 0, 0, 45, 0, + 0, 0, 0, 46, 47, 0, 0, 0, 48, 0, + 49, 0, 50, 0, 51, 168, 110, 3, 4, 0, + 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, + 0, 14, 0, 0, 0, 0, 19, 0, 21, 0, + 22, 23, 0, 0, 147, 0, 0, 0, 24, 0, + 0, 0, 0, 0, 0, 28, 0, 29, 169, 0, + 0, 0, 0, 0, 0, 34, 0, 35, 36, 0, + 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, + 0, 0, 0, 40, 0, 0, 0, 109, 110, 3, + 4, 0, 5, 6, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 14, 41, 42, 0, 0, 19, 0, + 21, 0, 22, 23, 0, 0, 0, 0, 0, 0, + 24, 0, 0, 44, 0, 0, 45, 28, 0, 29, + 0, 46, 47, 0, 0, 0, 48, 34, 49, 35, + 36, 0, 51, 0, 109, 110, 3, 4, 38, 5, + 6, 7, 0, 0, 0, 40, 0, 0, 0, 0, + 14, 0, 0, 0, 0, 19, 0, 21, 0, 22, + 23, 0, 0, 0, 0, 0, 41, 42, 0, 0, + 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, + 0, 0, 0, 0, 34, 44, 35, 36, 45, 0, + 0, 0, 0, 46, 47, 0, 0, 0, 48, 0, + 49, 0, 40, 0, 51, 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, 144, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 43, 0, 0, 44, 0, 0, 0, 0, 45, - 46, 0, 0, 0, 47, 0, 48, 0, 49, 160, - 50, 3, 4, 0, 5, 6, 7, 0, 0, 0, - 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, - 19, 0, 21, 0, 22, 23, 0, 0, 139, 0, - 0, 0, 24, 0, 0, 0, 0, 0, 0, 28, - 0, 29, 161, 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, 0, - 104, 0, 3, 4, 0, 5, 6, 7, 0, 0, - 0, 0, 0, 0, 0, 0, 14, 40, 41, 0, - 0, 19, 0, 21, 0, 22, 23, 0, 0, 0, - 0, 0, 0, 24, 0, 0, 43, 0, 0, 44, - 28, 0, 29, 0, 45, 46, 0, 0, 0, 47, - 34, 48, 35, 36, 0, 50, 0, 0, 0, 0, - 37, 0, 0, 0, 0, 0, 0, 39, 0, 0, + 0, 0, 0, 41, 42, 0, 0, 0, 0, 0, + 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 40, 41, - 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, - 44, 0, 0, 0, 0, 45, 46, 0, 0, 0, - 47, 0, 48, 183, 184, 185, 50, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 0, 205, 206, 207, - 0, 208, 209, 210, 0, 0, 0, 0, 0, 211, - 212, 0, 213, 214, 215, 182, 216, 217, 0, 218, - 219, 220, 221, 222, 0, 0, 0, 0, 0, 223, - 0, 224, 0, 0, 225, 0, 0, 0, 0, 0, - 364, 0, 183, 184, 185, 0, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 0, 205, 206, 207, 0, - 208, 209, 210, 0, 0, 0, 0, 0, 211, 212, - 0, 213, 214, 215, 182, 216, 217, 0, 218, 219, - 220, 221, 222, 0, 0, 0, 0, 0, 223, 0, - 224, 0, 0, 225, 0, 0, 0, 0, 0, 408, - 0, 183, 184, 185, 0, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 0, 205, 206, 207, 0, 208, - 209, 210, 0, 0, 0, 0, 0, 211, 212, 0, - 213, 214, 215, 182, 216, 217, 0, 218, 219, 220, - 221, 222, 0, 0, 0, 0, 0, 223, 0, 224, - 0, 0, 225, 0, 0, 0, 0, 0, 495, 0, - 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 0, 205, 206, 207, 0, 208, 209, - 210, 0, 0, 0, 0, 182, 211, 212, 398, 213, - 214, 215, 0, 216, 217, 0, 218, 219, 220, 221, - 222, 0, 0, 0, 0, 0, 223, 0, 224, 0, - 0, 225, 183, 184, 185, 0, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 0, 205, 206, 207, 0, - 208, 209, 210, 0, 0, 0, 0, 182, 211, 212, - 0, 213, 214, 215, 0, 216, 217, 0, 218, 219, - 220, 221, 222, 0, 0, 0, 0, 0, 223, 0, - 224, 400, 0, 225, 183, 184, 185, 0, 186, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 0, 205, 206, - 207, 0, 208, 209, 210, 0, 0, 0, 0, 182, - 211, 212, 0, 213, 214, 215, 0, 216, 217, 0, - 218, 219, 220, 221, 222, 0, 0, 0, 0, 0, - 223, 0, 224, 454, 0, 225, 183, 184, 185, 0, - 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, - 205, 206, 207, 0, 208, 209, 210, 0, 0, 0, - 0, 182, 211, 212, 0, 213, 214, 215, 0, 216, - 217, 0, 218, 219, 220, 221, 222, 0, 0, 0, - 0, 0, 223, 0, 224, 494, 0, 225, 183, 184, - 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 0, 205, 206, 207, 0, 208, 209, 210, 0, - 0, 0, 0, 182, 211, 212, 0, 213, 214, 215, - 0, 216, 217, 0, 218, 219, 220, 221, 222, 0, - 0, 0, 0, 0, 223, 0, 224, 496, 0, 225, - 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 0, 205, 206, 207, 0, 208, 209, - 210, 0, 0, 0, 0, 182, 211, 212, 557, 213, - 214, 215, 0, 216, 217, 0, 218, 219, 220, 221, - 222, 0, 0, 0, 0, 0, 223, 0, 224, 0, - 0, 225, 183, 184, 185, 0, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 0, 205, 206, 207, 0, - 208, 209, 210, 0, 0, 0, 0, 182, 211, 212, - 0, 213, 214, 215, 0, 216, 217, 0, 218, 219, - 220, 221, 222, 0, 0, 0, 0, 0, 223, 0, - 224, 0, 0, 225, 183, 184, 185, 0, 186, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 0, 205, 206, - 207, 0, 208, 209, 210, 0, 0, 0, 0, 182, - 211, 212, 0, 213, 214, 215, 0, 0, 217, 0, - 218, 219, 220, 221, 222, 0, 0, 0, 0, 0, - 223, 0, 224, 0, 0, 225, 183, 184, 185, 0, - 186, 187, 188, 189, 190, 191, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 204, 0, - 205, 206, 207, 0, 208, 209, 210, 0, 0, 0, - 0, 182, 0, 0, 0, 213, 214, 215, 0, 216, - 217, 0, 218, 219, 220, 221, 222, 0, 0, 0, - 0, 0, 223, 0, 224, 0, 0, 225, 183, 184, - 185, 0, 186, 187, 188, 189, 190, 191, 0, 0, + 0, 0, 0, 0, 0, 48, 0, 49, 192, 193, + 194, 51, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 0, 214, 215, 216, 0, 217, 218, 219, 0, + 0, 0, 0, 0, 220, 221, 0, 222, 223, 224, + 191, 225, 226, 0, 227, 228, 229, 230, 231, 0, + 0, 0, 0, 0, 232, 0, 233, 0, 0, 234, + 0, 0, 0, 0, 0, 420, 0, 0, 192, 193, + 194, 0, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 0, 214, 215, 216, 0, 217, 218, 219, 0, + 0, 0, 0, 0, 220, 221, 0, 222, 223, 224, + 191, 225, 226, 0, 227, 228, 229, 230, 231, 0, + 0, 0, 0, 0, 232, 0, 233, 0, 0, 234, + 0, 0, 0, 0, 0, 509, 0, 0, 192, 193, + 194, 0, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 0, 214, 215, 216, 0, 217, 218, 219, 0, + 0, 0, 191, 0, 220, 221, 0, 222, 223, 224, + 0, 225, 226, 0, 227, 228, 229, 230, 231, 0, + 0, 0, 0, 0, 232, 0, 233, 412, 0, 234, + 192, 193, 194, 0, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 0, 214, 215, 216, 0, 217, 218, + 219, 0, 0, 0, 191, 0, 220, 221, 0, 222, + 223, 224, 0, 225, 226, 0, 227, 228, 229, 230, + 231, 0, 0, 0, 0, 0, 232, 0, 233, 467, + 0, 234, 192, 193, 194, 0, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 0, 214, 215, 216, 0, + 217, 218, 219, 0, 0, 0, 191, 0, 220, 221, + 0, 222, 223, 224, 0, 225, 226, 0, 227, 228, + 229, 230, 231, 0, 0, 0, 0, 0, 232, 0, + 233, 508, 0, 234, 192, 193, 194, 0, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 0, 214, 215, + 216, 0, 217, 218, 219, 0, 0, 0, 191, 0, + 220, 221, 0, 222, 223, 224, 0, 225, 226, 0, + 227, 228, 229, 230, 231, 0, 0, 0, 0, 0, + 232, 0, 233, 510, 0, 234, 192, 193, 194, 0, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 0, + 214, 215, 216, 0, 217, 218, 219, 0, 0, 0, + 191, 0, 220, 221, 0, 222, 223, 224, 0, 225, + 226, 0, 227, 228, 229, 230, 231, 0, 0, 0, + 0, 0, 232, 0, 233, 517, 0, 234, 192, 193, + 194, 0, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 0, 214, 215, 216, 0, 217, 218, 219, 0, + 0, 0, 191, 0, 220, 221, 569, 222, 223, 224, + 0, 225, 226, 0, 227, 228, 229, 230, 231, 0, + 0, 0, 0, 0, 232, 0, 233, 0, 0, 234, + 192, 193, 194, 0, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 0, 214, 215, 216, 0, 217, 218, + 219, 0, 0, 0, 191, 0, 220, 221, 0, 222, + 223, 224, 0, 225, 226, 0, 227, 228, 229, 230, + 231, 0, 0, 0, 0, 0, 232, 0, 233, 0, + 0, 234, 192, 193, 194, 0, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 0, 214, 215, 216, 0, + 217, 218, 219, 0, 0, 0, 191, 0, 220, 221, + 0, 222, 223, 224, 0, 0, 226, 0, 227, 228, + 229, 230, 231, 0, 0, 0, 0, 0, 232, 0, + 233, 0, 0, 234, 192, 193, 194, 0, 195, 196, + 197, 198, 199, 200, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 213, 0, 214, 215, + 216, 0, 217, 218, 219, 0, 0, 0, 191, 0, + 0, 0, 0, 222, 223, 224, 0, 225, 226, 0, + 227, 228, 229, 230, 231, 0, 0, 0, 0, 0, + 232, 0, 233, 0, 0, 234, 192, 193, 194, 0, + 195, 196, 197, 198, 199, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 205, 206, 207, 0, 208, 209, 210, 0, - 0, 0, 0, 182, 0, 0, 0, 213, 214, 215, - 0, 216, 217, 0, 218, 219, 220, 221, 222, 0, - 0, 0, 0, 0, 223, 0, 224, 0, 0, 225, - 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, + 214, 215, 216, 0, 217, 218, 219, 0, 0, 0, + 191, 0, 0, 0, 0, 222, 223, 224, 0, 225, + 226, 0, 227, 228, 229, 230, 231, 0, 0, 0, + 0, 0, 232, 0, 233, 0, 0, 234, 192, 193, + 194, 0, 195, 196, 197, 198, 199, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 205, 206, 207, 0, 208, 209, - 210, 0, 0, 0, 0, 182, 0, 0, 0, 0, - 214, 215, 0, 216, 217, 0, 218, 219, 220, 221, - 222, 0, 0, 0, 0, 0, 223, 0, 224, 0, - 0, 225, 183, 184, 185, 0, 186, 187, 188, 189, - 190, 191, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 205, 206, 207, 0, - 208, 209, 210, 0, 0, 0, 0, 182, 0, 0, - 0, 0, 0, 215, 0, 216, 217, 0, 218, 219, - 220, 221, 222, 0, 0, 0, 0, 0, 223, 0, - 224, 0, 0, 225, 183, 184, 185, 0, 186, 187, - 188, 189, 190, 191, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 205, 206, - 207, 0, 208, 209, 210, 0, 0, 0, 0, 182, - 0, 0, 0, 0, 0, -331, 0, 216, 217, 0, - 218, 219, 220, 221, 222, 0, 0, 0, 0, 0, - 223, 0, 224, 0, 0, 225, 183, 184, 185, 0, - -331, -331, -331, -331, 190, 191, 0, 0, 0, 0, + 0, 0, 214, 215, 216, 0, 217, 218, 219, 0, + 0, 0, 191, 0, 0, 0, 0, 0, 223, 224, + 0, 225, 226, 0, 227, 228, 229, 230, 231, 0, + 0, 0, 0, 0, 232, 0, 233, 0, 0, 234, + 192, 193, 194, 0, 195, 196, 197, 198, 199, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 205, 206, 207, 0, 208, 209, 210, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 216, - 217, 0, 218, 219, 220, 221, 222, 0, 0, 0, - 0, 0, 223, 0, 224, 0, 0, 225 + 0, 0, 0, 0, 214, 215, 216, 0, 217, 218, + 219, 0, 0, 0, 191, 0, 0, 0, 0, 0, + 0, 224, 0, 225, 226, 0, 227, 228, 229, 230, + 231, 0, 0, 0, 0, 0, 232, 0, 233, 0, + 0, 234, 192, 193, 194, 0, 195, 196, 197, 198, + 199, 200, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 214, 215, 216, 0, + 217, 218, 219, 0, 0, 0, 191, 0, 0, 0, + 0, 0, 0, -338, 0, 225, 226, 0, 227, 228, + 229, 230, 231, 0, 0, 0, 0, 0, 232, 0, + 233, 0, 0, 234, 192, 193, 194, 0, -338, -338, + -338, -338, 199, 200, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 214, 215, + 216, 0, 217, 218, 219, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 225, 226, 0, + 227, 228, 229, 230, 231, 0, 0, 0, 0, 0, + 232, 0, 233, 0, 0, 234 }; static const yytype_int16 yycheck[] = { - 0, 0, 0, 0, 0, 103, 19, 66, 59, 95, - 135, 24, 140, 141, 114, 269, 49, 180, 3, 435, - 3, 357, 12, 450, 37, 3, 4, 40, 41, 3, - 4, 44, 45, 46, 47, 48, 95, 27, 3, 225, - 50, 93, 351, 17, 3, 3, 493, 91, 92, 93, - 68, 524, 12, 53, 53, 53, 53, 53, 34, 0, - 27, 0, 0, 90, 101, 492, 33, 27, 3, 3, - 123, 101, 5, 125, 4, 128, 128, 123, 35, 123, - 527, 125, 555, 419, 128, 103, 62, 146, 18, 553, - 20, 21, 5, 23, 51, 25, 109, 134, 123, 112, - 228, 114, 411, 3, 134, 569, 16, 5, 38, 3, - 3, 4, 53, 123, 53, 53, 5, 47, 48, 49, - 248, 284, 135, 223, 17, 250, 312, 140, 141, 94, - 466, 116, 386, 116, 123, 94, 3, 4, 116, 103, - 127, 105, 270, 271, 129, 123, 123, 125, 111, 335, - 17, 129, 115, 127, 3, 123, 5, 3, 116, 159, - 159, 159, 159, 159, 418, 178, 582, 125, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 127, 127, 127, 208, 209, 210, 211, 212, - 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, - 223, 224, 110, 111, 127, 228, 116, 230, 159, 405, - 159, 159, 111, 116, 0, 125, 127, 390, 391, 127, - 4, 231, 231, 231, 267, 248, 530, 250, 127, 252, - 534, 535, 101, 233, 18, 3, 20, 21, 123, 23, - 123, 25, 128, 243, 354, 3, 4, 270, 271, 3, - 3, 515, 5, 557, 38, 8, 9, 10, 133, 17, - 127, 128, 46, 47, 48, 49, 91, 92, 93, 407, - 574, 105, 536, 101, 382, 126, 384, 101, 36, 3, - 584, 3, 3, 91, 92, 93, 127, 422, 113, 114, - 115, 116, 117, 16, 68, 3, 100, 366, 123, 68, - 125, 100, 16, 128, 3, 3, 375, 115, 116, 117, - 406, 334, 26, 3, 128, 123, 100, 125, 32, 12, - 128, 128, 123, 134, 588, 421, 101, 105, 134, 437, - 101, 354, 46, 343, 343, 343, 432, 406, 133, 103, - 3, 351, 351, 351, 54, 4, 3, 54, 103, 133, - 90, 103, 421, 353, 134, 90, 123, 134, 116, 18, - 133, 20, 21, 432, 23, 127, 25, 16, 3, 134, - 431, 101, 128, 396, 482, 398, 133, 26, 401, 38, - 403, 123, 31, 32, 407, 134, 105, 46, 47, 48, - 49, 414, 103, 134, 100, 44, 15, 46, 127, 422, - 101, 411, 411, 411, 427, 3, 133, 5, 6, 127, - 8, 9, 10, 40, 134, 127, 512, 133, 514, 101, - 111, 19, 103, 65, 127, 134, 24, 127, 26, 133, - 28, 29, 134, 110, 123, 115, 105, 133, 3, 3, - 26, 100, 115, 512, 127, 514, 133, 45, 75, 76, - 134, 127, 3, 111, 133, 53, 123, 55, 56, 133, - 111, 133, 133, 133, 91, 92, 93, 490, 95, 96, - 97, 127, 70, 483, 133, 498, 53, 343, 133, 442, - 134, 133, 374, 110, 111, 59, 113, 114, 115, 116, - 117, 159, 139, 91, 92, 71, 123, 501, 125, 501, - 472, 128, 443, 563, 545, 522, 516, 516, 516, 516, - 516, 472, 522, 27, 464, 437, 550, 415, 284, 47, - 251, -1, -1, -1, -1, 123, -1, 125, -1, -1, - -1, 129, -1, -1, -1, 545, 545, 545, 545, 545, + 0, 0, 0, 0, 0, 108, 60, 19, 279, 143, + 67, 121, 24, 50, 189, 448, 28, 3, 3, 4, + 369, 3, 50, 124, 5, 5, 38, 5, 129, 41, + 42, 16, 17, 45, 46, 47, 48, 49, 115, 3, + 4, 98, 234, 3, 29, 363, 3, 463, 125, 12, + 5, 537, 16, 17, 54, 54, 54, 54, 54, 94, + 3, 4, 102, 0, 27, 29, 0, 0, 104, 91, + 106, 148, 149, 16, 17, 69, 34, 3, 124, 5, + 124, 567, 102, 432, 96, 507, 29, 16, 3, 4, + 506, 126, 565, 36, 129, 135, 124, 154, 3, 4, + 35, 16, 17, 115, 62, 3, 424, 124, 581, 121, + 104, 16, 17, 125, 29, 135, 51, 54, 540, 294, + 54, 54, 232, 128, 29, 12, 260, 398, 349, 321, + 479, 143, 117, 111, 112, 95, 148, 149, 95, 124, + 27, 126, 128, 27, 16, 130, 128, 128, 128, 33, + 128, 3, 4, 117, 346, 128, 129, 112, 112, 380, + 431, 594, 116, 124, 16, 17, 130, 167, 167, 167, + 167, 167, 3, 128, 117, 187, 0, 29, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 117, 280, 281, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 128, 128, 445, 417, 102, 402, 403, 241, + 167, 3, 543, 167, 167, 124, 547, 548, 3, 4, + 277, 12, 242, 242, 242, 257, 3, 4, 260, 124, + 262, 16, 17, 216, 3, 129, 366, 528, 569, 16, + 17, 129, 104, 134, 29, 117, 487, 106, 280, 281, + 102, 234, 29, 350, 126, 586, 127, 102, 549, 3, + 3, 244, 128, 4, 3, 596, 16, 92, 93, 94, + 253, 394, 69, 396, 3, 101, 69, 18, 101, 20, + 21, 435, 23, 3, 25, 3, 527, 3, 135, 114, + 115, 116, 117, 118, 102, 124, 129, 38, 129, 124, + 377, 126, 124, 135, 129, 46, 47, 48, 49, 600, + 387, 135, 4, 345, 135, 102, 106, 3, 350, 5, + 134, 353, 8, 9, 10, 104, 18, 450, 20, 21, + 3, 23, 117, 25, 366, 355, 355, 355, 321, 54, + 117, 126, 16, 363, 363, 363, 38, 54, 3, 16, + 104, 104, 26, 135, 46, 47, 48, 49, 32, 26, + 101, 3, 4, 346, 31, 32, 91, 91, 91, 91, + 444, 127, 46, 496, 16, 17, 408, 44, 410, 46, + 4, 413, 365, 415, 92, 93, 94, 29, 134, 421, + 128, 3, 102, 134, 18, 427, 20, 21, 135, 23, + 134, 25, 129, 435, 424, 424, 424, 106, 440, 101, + 104, 101, 124, 15, 38, 102, 124, 40, 126, 128, + 134, 129, 135, 47, 48, 49, 128, 66, 128, 135, + 134, 102, 135, 112, 417, 104, 134, 128, 135, 128, + 124, 116, 134, 111, 106, 68, 69, 70, 3, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 134, 92, + 93, 94, 504, 96, 97, 98, 3, 497, 26, 511, + 134, 104, 105, 106, 107, 108, 109, 116, 111, 112, + 128, 114, 115, 116, 117, 118, 128, 134, 134, 134, + 134, 124, 4, 126, 135, 3, 129, 112, 134, 529, + 529, 529, 529, 529, 16, 535, 18, 124, 20, 21, + 112, 23, 128, 25, 26, 134, 167, 135, 54, 31, + 32, 134, 98, 455, 147, 355, 38, 557, 557, 557, + 557, 557, 44, 60, 46, 47, 48, 49, 386, 514, + 514, 485, 485, 72, 575, 575, 575, 575, 575, 575, + 0, 557, 535, 3, 4, 5, 6, 456, 8, 9, + 10, 11, 12, 13, 14, 477, 562, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 27, 450, 28, 29, + 48, 428, 40, 294, -1, -1, 36, 261, 38, 39, + -1, 41, -1, 43, -1, 45, -1, 47, 48, 49, + -1, -1, 52, 53, -1, 55, 56, -1, -1, -1, + 68, 69, 70, 63, 64, 65, -1, -1, 76, 77, + -1, 71, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 92, 93, 94, -1, 96, 97, + 98, -1, 92, 93, -1, -1, -1, -1, -1, 3, + 4, 101, -1, 111, 112, -1, 114, 115, 116, 117, + 118, 111, 16, 17, 114, -1, 124, -1, 126, 119, + 120, 129, -1, -1, 124, 29, 126, -1, 128, -1, + 130, -1, -1, -1, 134, 3, 4, 5, 6, -1, + 8, 9, 10, 11, 12, 13, 14, -1, -1, -1, + 18, 19, 20, 21, 22, 23, 24, 25, 26, -1, + 28, 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, 92, + 93, 94, -1, -1, -1, 63, 64, 65, -1, 67, + -1, -1, -1, 71, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 116, 117, 118, -1, -1, -1, -1, + -1, 124, -1, 126, 92, 93, 129, -1, -1, -1, + -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 111, -1, -1, 114, -1, -1, -1, + -1, 119, 120, -1, -1, -1, 124, -1, 126, -1, + 128, -1, 130, -1, -1, -1, 134, 3, 4, 5, + 6, -1, 8, 9, 10, 11, 12, 13, 14, -1, + -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, + 26, -1, 28, 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, 65, + -1, 67, -1, -1, -1, 71, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 92, 93, -1, -1, + -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 111, -1, -1, 114, -1, + -1, -1, -1, 119, 120, -1, -1, -1, 124, -1, + 126, -1, 128, -1, 130, -1, -1, -1, 134, 3, + 4, 5, 6, -1, 8, 9, 10, 11, 12, 13, + 14, -1, -1, -1, 18, 19, 20, 21, 22, 23, + 24, 25, 26, -1, 28, 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, 65, -1, 67, -1, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 563, 563, 563, 563, 563, 0, -1, - -1, 3, 4, 5, 6, -1, 8, 9, 10, 11, + -1, -1, -1, -1, -1, -1, -1, -1, 92, 93, + -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 111, -1, -1, + 114, -1, -1, -1, -1, 119, 120, -1, -1, -1, + 124, -1, 126, -1, 128, -1, 130, -1, -1, -1, + 134, 3, 4, 5, 6, -1, 8, 9, 10, 11, 12, 13, 14, -1, -1, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, 28, 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, - -1, 91, 92, 93, -1, 95, 96, 97, -1, 91, - 92, -1, -1, -1, -1, -1, -1, -1, 100, -1, - 110, 111, -1, 113, 114, 115, 116, 117, 110, -1, - -1, 113, -1, 123, -1, 125, 118, 119, 128, -1, - -1, 123, -1, 125, -1, 127, -1, 129, -1, -1, - -1, 133, 3, 4, 5, 6, -1, 8, 9, 10, - 11, 12, 13, 14, -1, -1, -1, 18, 19, 20, - 21, 22, 23, 24, 25, 26, -1, 28, 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, + 52, 53, -1, 55, 56, -1, -1, -1, -1, -1, + -1, 63, 64, 65, -1, -1, 76, 77, -1, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 91, 92, -1, -1, -1, -1, -1, -1, -1, 100, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, - -1, -1, 113, -1, -1, -1, -1, 118, 119, -1, - -1, -1, 123, -1, 125, -1, 127, -1, 129, -1, - -1, -1, 133, 3, 4, 5, 6, -1, 8, 9, + -1, -1, 92, 93, 94, -1, 96, 97, 98, -1, + 92, 93, -1, -1, -1, -1, -1, -1, -1, 101, + -1, 111, 112, -1, 114, 115, 116, 117, 118, 111, + -1, -1, 114, -1, 124, -1, 126, 119, 120, 129, + -1, -1, 124, -1, 126, -1, 128, -1, 130, -1, + -1, -1, 134, 3, 4, 5, 6, -1, 8, 9, 10, 11, 12, 13, 14, -1, -1, -1, 18, 19, - 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, - 30, -1, 32, -1, -1, -1, 36, 37, 38, 39, - -1, 41, 42, 43, -1, 45, 46, 47, 48, 49, + 20, 21, 22, 23, 24, 25, -1, -1, 28, 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, 66, -1, -1, -1, - 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 63, 64, 65, -1, -1, -1, -1, + -1, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 91, 92, -1, -1, -1, -1, -1, -1, -1, - 100, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 110, -1, -1, 113, -1, -1, -1, -1, 118, 119, - -1, -1, -1, 123, -1, 125, -1, 127, -1, 129, - -1, -1, -1, 133, 3, 4, 5, 6, -1, 8, - 9, 10, 11, 12, 13, 14, -1, -1, -1, 18, - 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, - 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, -1, -1, -1, -1, -1, -1, - -1, -1, 91, 92, -1, -1, -1, -1, -1, -1, - -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 110, -1, -1, 113, -1, -1, -1, -1, 118, - 119, -1, -1, -1, 123, -1, 125, -1, 127, -1, - 129, -1, -1, -1, 133, 3, 4, 5, 6, -1, - 8, 9, 10, 11, 12, 13, 14, -1, -1, 17, + -1, -1, 92, 93, -1, -1, -1, -1, -1, -1, + -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 111, -1, -1, 114, -1, -1, -1, -1, 119, + 120, -1, -1, -1, 124, -1, 126, -1, 128, -1, + 130, -1, -1, -1, 134, 3, 4, 5, 6, -1, + 8, 9, 10, 11, 12, 13, 14, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, 28, 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, -1, -1, -1, -1, - -1, -1, -1, 91, 92, -1, -1, -1, -1, -1, - -1, -1, 100, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 110, -1, -1, 113, -1, -1, -1, -1, - 118, 119, -1, -1, -1, 123, -1, 125, -1, 127, - -1, 129, -1, -1, -1, 133, 3, 4, 5, 6, - -1, 8, 9, 10, 11, 12, 13, 14, -1, -1, - -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, - -1, 28, 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, 63, 64, 65, -1, -1, + -1, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 91, 92, -1, -1, -1, -1, - -1, -1, -1, 100, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 110, -1, -1, 113, -1, -1, -1, - -1, 118, 119, -1, -1, -1, 123, -1, 125, -1, - 127, -1, 129, -1, -1, -1, 133, 3, 4, 5, + -1, -1, -1, -1, 92, 93, -1, -1, -1, -1, + -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 111, -1, -1, 114, -1, -1, -1, + -1, 119, 120, -1, -1, -1, 124, -1, 126, -1, + 128, -1, 130, -1, -1, -1, 134, 3, 4, 5, 6, -1, 8, 9, 10, 11, 12, 13, 14, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, 28, 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, + 56, -1, -1, -1, -1, -1, -1, 63, 64, 65, + -1, -1, -1, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 91, 92, -1, -1, -1, - -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 110, -1, -1, 113, -1, -1, - -1, -1, 118, 119, -1, -1, -1, 123, -1, 125, - -1, 127, -1, 129, -1, -1, -1, 133, 3, 4, - 5, 6, -1, 8, 9, 10, 11, 12, 13, 14, - -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, - 25, -1, -1, 28, 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, -1, - -1, -1, -1, -1, -1, -1, 91, 92, -1, -1, - -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 110, -1, -1, 113, -1, - -1, -1, -1, 118, 119, -1, -1, -1, 123, -1, - 125, -1, 127, -1, 129, -1, -1, -1, 133, 3, + -1, -1, -1, -1, -1, -1, 92, 93, -1, -1, + -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 111, -1, -1, 114, -1, + -1, -1, -1, 119, 120, -1, -1, -1, 124, -1, + 126, -1, 128, -1, 130, -1, -1, -1, 134, 3, 4, 5, 6, -1, 8, 9, 10, 11, 12, 13, 14, -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, 28, 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, + 64, 65, -1, -1, -1, -1, -1, 71, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 92, 93, + -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 111, -1, -1, + 114, -1, -1, -1, -1, 119, 120, -1, -1, -1, + 124, -1, 126, -1, 128, -1, 130, -1, 0, -1, + 134, 3, 4, 5, 6, -1, 8, 9, 10, 11, + 12, 13, 14, -1, -1, 17, 18, 19, 20, 21, + 22, 23, 24, 25, -1, -1, 28, 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, 65, -1, -1, -1, -1, -1, 71, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 91, 92, -1, - -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 110, -1, -1, 113, - -1, -1, -1, -1, 118, 119, -1, -1, -1, 123, - -1, 125, -1, 127, -1, 129, -1, 0, -1, 133, - 3, 4, 5, 6, -1, 8, 9, 10, 11, 12, - 13, 14, -1, -1, 17, 18, 19, 20, 21, 22, - 23, 24, 25, -1, -1, 28, 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, + 92, 93, -1, -1, -1, -1, -1, -1, -1, 101, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, + -1, -1, 114, -1, -1, -1, -1, 119, 120, -1, + -1, -1, 124, -1, 126, -1, 128, -1, 130, 3, + 4, 5, 6, -1, 8, 9, 10, 11, 12, 13, + 14, -1, 16, -1, 18, 19, 20, 21, 22, 23, + 24, 25, 26, -1, 28, 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, 65, -1, 67, -1, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 91, 92, - -1, -1, -1, -1, -1, -1, -1, 100, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 110, -1, -1, - 113, -1, -1, -1, -1, 118, 119, -1, -1, -1, - 123, -1, 125, -1, 127, -1, 129, 3, 4, 5, + -1, -1, -1, -1, -1, -1, -1, -1, 92, 93, + -1, -1, -1, -1, -1, -1, -1, 101, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 111, -1, -1, + 114, -1, -1, -1, -1, 119, 120, -1, -1, -1, + 124, -1, 126, -1, 128, -1, 130, 3, 4, 5, 6, -1, 8, 9, 10, 11, 12, 13, 14, -1, - 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, + -1, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, 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, + 56, -1, -1, -1, -1, -1, -1, 63, 64, 65, + -1, 67, -1, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 91, 92, -1, -1, -1, - -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 110, -1, -1, 113, -1, -1, - -1, -1, 118, 119, -1, -1, -1, 123, -1, 125, - -1, 127, -1, 129, 3, 4, 5, 6, -1, 8, - 9, 10, 11, 12, 13, 14, -1, -1, -1, 18, - 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, - 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, -1, -1, 92, 93, -1, -1, + -1, -1, -1, -1, -1, 101, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 111, -1, -1, 114, -1, + -1, -1, -1, 119, 120, -1, -1, -1, 124, -1, + 126, -1, 128, -1, 130, 3, 4, 5, 6, -1, + 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, + -1, 19, -1, -1, -1, -1, 24, -1, 26, -1, + 28, 29, -1, -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, -1, 64, -1, -1, -1, + -1, -1, -1, 71, -1, -1, -1, 3, 4, 5, + 6, -1, 8, 9, 10, -1, -1, -1, -1, -1, + -1, -1, -1, 19, 92, 93, -1, -1, 24, -1, + 26, -1, 28, 29, -1, -1, -1, -1, -1, -1, + 36, -1, -1, 111, -1, -1, 114, 43, -1, 45, + -1, 119, 120, -1, -1, -1, 124, 53, 126, 55, + 56, -1, 130, -1, 3, 4, 5, 6, 64, 8, + 9, 10, -1, -1, -1, 71, -1, -1, -1, -1, + 19, -1, -1, -1, -1, 24, -1, 26, -1, 28, + 29, -1, -1, -1, -1, -1, 92, 93, -1, -1, + -1, -1, -1, -1, -1, -1, 45, -1, -1, -1, + -1, -1, -1, -1, 53, 111, 55, 56, 114, -1, + -1, -1, -1, 119, 120, -1, -1, -1, 124, -1, + 126, -1, 71, -1, 130, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 91, 92, -1, -1, -1, -1, -1, -1, - -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 110, -1, -1, 113, -1, -1, -1, -1, 118, - 119, -1, -1, -1, 123, -1, 125, -1, 127, 3, - 129, 5, 6, -1, 8, 9, 10, -1, -1, -1, - -1, -1, -1, -1, -1, 19, -1, -1, -1, -1, - 24, -1, 26, -1, 28, 29, -1, -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, -1, - 3, -1, 5, 6, -1, 8, 9, 10, -1, -1, - -1, -1, -1, -1, -1, -1, 19, 91, 92, -1, - -1, 24, -1, 26, -1, 28, 29, -1, -1, -1, - -1, -1, -1, 36, -1, -1, 110, -1, -1, 113, - 43, -1, 45, -1, 118, 119, -1, -1, -1, 123, - 53, 125, 55, 56, -1, 129, -1, -1, -1, -1, - 63, -1, -1, -1, -1, -1, -1, 70, -1, -1, + -1, -1, -1, 92, 93, -1, -1, -1, -1, -1, + 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 91, 92, - -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 110, -1, -1, - 113, -1, -1, -1, -1, 118, 119, -1, -1, -1, - 123, -1, 125, 67, 68, 69, 129, 71, 72, 73, + -1, -1, -1, -1, -1, 124, -1, 126, 68, 69, + 70, 130, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, -1, 92, 93, 94, -1, 96, 97, 98, -1, + -1, -1, -1, -1, 104, 105, -1, 107, 108, 109, + 40, 111, 112, -1, 114, 115, 116, 117, 118, -1, + -1, -1, -1, -1, 124, -1, 126, -1, -1, 129, + -1, -1, -1, -1, -1, 135, -1, -1, 68, 69, + 70, -1, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, -1, 92, 93, 94, -1, 96, 97, 98, -1, + -1, -1, -1, -1, 104, 105, -1, 107, 108, 109, + 40, 111, 112, -1, 114, 115, 116, 117, 118, -1, + -1, -1, -1, -1, 124, -1, 126, -1, -1, 129, + -1, -1, -1, -1, -1, 135, -1, -1, 68, 69, + 70, -1, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, -1, 92, 93, 94, -1, 96, 97, 98, -1, + -1, -1, 40, -1, 104, 105, -1, 107, 108, 109, + -1, 111, 112, -1, 114, 115, 116, 117, 118, -1, + -1, -1, -1, -1, 124, -1, 126, 127, -1, 129, + 68, 69, 70, -1, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, -1, 92, 93, 94, -1, 96, 97, + 98, -1, -1, -1, 40, -1, 104, 105, -1, 107, + 108, 109, -1, 111, 112, -1, 114, 115, 116, 117, + 118, -1, -1, -1, -1, -1, 124, -1, 126, 127, + -1, 129, 68, 69, 70, -1, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, -1, 92, 93, 94, -1, + 96, 97, 98, -1, -1, -1, 40, -1, 104, 105, + -1, 107, 108, 109, -1, 111, 112, -1, 114, 115, + 116, 117, 118, -1, -1, -1, -1, -1, 124, -1, + 126, 127, -1, 129, 68, 69, 70, -1, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, 89, -1, 91, 92, 93, - -1, 95, 96, 97, -1, -1, -1, -1, -1, 103, - 104, -1, 106, 107, 108, 40, 110, 111, -1, 113, - 114, 115, 116, 117, -1, -1, -1, -1, -1, 123, - -1, 125, -1, -1, 128, -1, -1, -1, -1, -1, - 134, -1, 67, 68, 69, -1, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, -1, 91, 92, 93, -1, - 95, 96, 97, -1, -1, -1, -1, -1, 103, 104, - -1, 106, 107, 108, 40, 110, 111, -1, 113, 114, - 115, 116, 117, -1, -1, -1, -1, -1, 123, -1, - 125, -1, -1, 128, -1, -1, -1, -1, -1, 134, - -1, 67, 68, 69, -1, 71, 72, 73, 74, 75, + 84, 85, 86, 87, 88, 89, 90, -1, 92, 93, + 94, -1, 96, 97, 98, -1, -1, -1, 40, -1, + 104, 105, -1, 107, 108, 109, -1, 111, 112, -1, + 114, 115, 116, 117, 118, -1, -1, -1, -1, -1, + 124, -1, 126, 127, -1, 129, 68, 69, 70, -1, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, -1, + 92, 93, 94, -1, 96, 97, 98, -1, -1, -1, + 40, -1, 104, 105, -1, 107, 108, 109, -1, 111, + 112, -1, 114, 115, 116, 117, 118, -1, -1, -1, + -1, -1, 124, -1, 126, 127, -1, 129, 68, 69, + 70, -1, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, -1, 92, 93, 94, -1, 96, 97, 98, -1, + -1, -1, 40, -1, 104, 105, 106, 107, 108, 109, + -1, 111, 112, -1, 114, 115, 116, 117, 118, -1, + -1, -1, -1, -1, 124, -1, 126, -1, -1, 129, + 68, 69, 70, -1, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, -1, 92, 93, 94, -1, 96, 97, + 98, -1, -1, -1, 40, -1, 104, 105, -1, 107, + 108, 109, -1, 111, 112, -1, 114, 115, 116, 117, + 118, -1, -1, -1, -1, -1, 124, -1, 126, -1, + -1, 129, 68, 69, 70, -1, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, - 86, 87, 88, 89, -1, 91, 92, 93, -1, 95, - 96, 97, -1, -1, -1, -1, -1, 103, 104, -1, - 106, 107, 108, 40, 110, 111, -1, 113, 114, 115, - 116, 117, -1, -1, -1, -1, -1, 123, -1, 125, - -1, -1, 128, -1, -1, -1, -1, -1, 134, -1, - 67, 68, 69, -1, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 89, -1, 91, 92, 93, -1, 95, 96, - 97, -1, -1, -1, -1, 40, 103, 104, 105, 106, - 107, 108, -1, 110, 111, -1, 113, 114, 115, 116, - 117, -1, -1, -1, -1, -1, 123, -1, 125, -1, - -1, 128, 67, 68, 69, -1, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, -1, 91, 92, 93, -1, - 95, 96, 97, -1, -1, -1, -1, 40, 103, 104, - -1, 106, 107, 108, -1, 110, 111, -1, 113, 114, - 115, 116, 117, -1, -1, -1, -1, -1, 123, -1, - 125, 126, -1, 128, 67, 68, 69, -1, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, - 93, -1, 95, 96, 97, -1, -1, -1, -1, 40, - 103, 104, -1, 106, 107, 108, -1, 110, 111, -1, - 113, 114, 115, 116, 117, -1, -1, -1, -1, -1, - 123, -1, 125, 126, -1, 128, 67, 68, 69, -1, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, - 91, 92, 93, -1, 95, 96, 97, -1, -1, -1, - -1, 40, 103, 104, -1, 106, 107, 108, -1, 110, - 111, -1, 113, 114, 115, 116, 117, -1, -1, -1, - -1, -1, 123, -1, 125, 126, -1, 128, 67, 68, - 69, -1, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, -1, 91, 92, 93, -1, 95, 96, 97, -1, - -1, -1, -1, 40, 103, 104, -1, 106, 107, 108, - -1, 110, 111, -1, 113, 114, 115, 116, 117, -1, - -1, -1, -1, -1, 123, -1, 125, 126, -1, 128, - 67, 68, 69, -1, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 89, -1, 91, 92, 93, -1, 95, 96, - 97, -1, -1, -1, -1, 40, 103, 104, 105, 106, - 107, 108, -1, 110, 111, -1, 113, 114, 115, 116, - 117, -1, -1, -1, -1, -1, 123, -1, 125, -1, - -1, 128, 67, 68, 69, -1, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, -1, 91, 92, 93, -1, - 95, 96, 97, -1, -1, -1, -1, 40, 103, 104, - -1, 106, 107, 108, -1, 110, 111, -1, 113, 114, - 115, 116, 117, -1, -1, -1, -1, -1, 123, -1, - 125, -1, -1, 128, 67, 68, 69, -1, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, - 93, -1, 95, 96, 97, -1, -1, -1, -1, 40, - 103, 104, -1, 106, 107, 108, -1, -1, 111, -1, - 113, 114, 115, 116, 117, -1, -1, -1, -1, -1, - 123, -1, 125, -1, -1, 128, 67, 68, 69, -1, - 71, 72, 73, 74, 75, 76, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 89, -1, - 91, 92, 93, -1, 95, 96, 97, -1, -1, -1, - -1, 40, -1, -1, -1, 106, 107, 108, -1, 110, - 111, -1, 113, 114, 115, 116, 117, -1, -1, -1, - -1, -1, 123, -1, 125, -1, -1, 128, 67, 68, - 69, -1, 71, 72, 73, 74, 75, 76, -1, -1, + 86, 87, 88, 89, 90, -1, 92, 93, 94, -1, + 96, 97, 98, -1, -1, -1, 40, -1, 104, 105, + -1, 107, 108, 109, -1, -1, 112, -1, 114, 115, + 116, 117, 118, -1, -1, -1, -1, -1, 124, -1, + 126, -1, -1, 129, 68, 69, 70, -1, 72, 73, + 74, 75, 76, 77, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 90, -1, 92, 93, + 94, -1, 96, 97, 98, -1, -1, -1, 40, -1, + -1, -1, -1, 107, 108, 109, -1, 111, 112, -1, + 114, 115, 116, 117, 118, -1, -1, -1, -1, -1, + 124, -1, 126, -1, -1, 129, 68, 69, 70, -1, + 72, 73, 74, 75, 76, 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 91, 92, 93, -1, 95, 96, 97, -1, - -1, -1, -1, 40, -1, -1, -1, 106, 107, 108, - -1, 110, 111, -1, 113, 114, 115, 116, 117, -1, - -1, -1, -1, -1, 123, -1, 125, -1, -1, 128, - 67, 68, 69, -1, 71, 72, 73, 74, 75, 76, + 92, 93, 94, -1, 96, 97, 98, -1, -1, -1, + 40, -1, -1, -1, -1, 107, 108, 109, -1, 111, + 112, -1, 114, 115, 116, 117, 118, -1, -1, -1, + -1, -1, 124, -1, 126, -1, -1, 129, 68, 69, + 70, -1, 72, 73, 74, 75, 76, 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 91, 92, 93, -1, 95, 96, - 97, -1, -1, -1, -1, 40, -1, -1, -1, -1, - 107, 108, -1, 110, 111, -1, 113, 114, 115, 116, - 117, -1, -1, -1, -1, -1, 123, -1, 125, -1, - -1, 128, 67, 68, 69, -1, 71, 72, 73, 74, - 75, 76, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 91, 92, 93, -1, - 95, 96, 97, -1, -1, -1, -1, 40, -1, -1, - -1, -1, -1, 108, -1, 110, 111, -1, 113, 114, - 115, 116, 117, -1, -1, -1, -1, -1, 123, -1, - 125, -1, -1, 128, 67, 68, 69, -1, 71, 72, - 73, 74, 75, 76, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 91, 92, - 93, -1, 95, 96, 97, -1, -1, -1, -1, 40, - -1, -1, -1, -1, -1, 108, -1, 110, 111, -1, - 113, 114, 115, 116, 117, -1, -1, -1, -1, -1, - 123, -1, 125, -1, -1, 128, 67, 68, 69, -1, - 71, 72, 73, 74, 75, 76, -1, -1, -1, -1, + -1, -1, 92, 93, 94, -1, 96, 97, 98, -1, + -1, -1, 40, -1, -1, -1, -1, -1, 108, 109, + -1, 111, 112, -1, 114, 115, 116, 117, 118, -1, + -1, -1, -1, -1, 124, -1, 126, -1, -1, 129, + 68, 69, 70, -1, 72, 73, 74, 75, 76, 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 91, 92, 93, -1, 95, 96, 97, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, - 111, -1, 113, 114, 115, 116, 117, -1, -1, -1, - -1, -1, 123, -1, 125, -1, -1, 128 + -1, -1, -1, -1, 92, 93, 94, -1, 96, 97, + 98, -1, -1, -1, 40, -1, -1, -1, -1, -1, + -1, 109, -1, 111, 112, -1, 114, 115, 116, 117, + 118, -1, -1, -1, -1, -1, 124, -1, 126, -1, + -1, 129, 68, 69, 70, -1, 72, 73, 74, 75, + 76, 77, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 92, 93, 94, -1, + 96, 97, 98, -1, -1, -1, 40, -1, -1, -1, + -1, -1, -1, 109, -1, 111, 112, -1, 114, 115, + 116, 117, 118, -1, -1, -1, -1, -1, 124, -1, + 126, -1, -1, 129, 68, 69, 70, -1, 72, 73, + 74, 75, 76, 77, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 92, 93, + 94, -1, 96, 97, 98, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 111, 112, -1, + 114, 115, 116, 117, 118, -1, -1, -1, -1, -1, + 124, -1, 126, -1, -1, 129 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -3637,63 +3745,64 @@ static const yytype_uint16 yystos[] = 0, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 36, 38, 39, 41, 43, 45, - 47, 48, 49, 52, 53, 55, 56, 63, 64, 70, - 91, 92, 100, 110, 113, 118, 119, 123, 125, 127, - 129, 136, 137, 138, 139, 145, 148, 149, 155, 159, - 160, 161, 162, 164, 172, 180, 183, 184, 187, 190, - 191, 192, 193, 197, 199, 208, 213, 214, 215, 225, - 233, 236, 249, 250, 251, 256, 260, 264, 265, 267, - 268, 90, 50, 123, 123, 165, 123, 3, 4, 17, - 127, 185, 186, 16, 3, 260, 3, 235, 260, 123, - 186, 239, 123, 127, 123, 128, 260, 123, 3, 5, - 8, 9, 10, 257, 258, 259, 260, 260, 260, 260, - 260, 255, 260, 245, 246, 247, 253, 260, 30, 32, - 37, 42, 46, 66, 100, 133, 144, 145, 146, 149, - 151, 166, 167, 182, 191, 252, 3, 0, 139, 127, - 3, 46, 151, 157, 158, 256, 146, 147, 16, 26, - 31, 32, 44, 46, 207, 266, 193, 3, 127, 220, - 224, 101, 40, 67, 68, 69, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 91, 92, 93, 95, 96, - 97, 103, 104, 106, 107, 108, 110, 111, 113, 114, - 115, 116, 117, 123, 125, 128, 3, 123, 163, 147, - 173, 189, 127, 128, 185, 186, 238, 239, 240, 248, - 123, 254, 255, 128, 260, 181, 245, 3, 156, 133, - 105, 101, 101, 134, 126, 101, 253, 3, 3, 152, - 153, 254, 254, 152, 3, 133, 146, 127, 137, 3, - 100, 68, 100, 3, 35, 51, 232, 3, 3, 209, - 260, 3, 220, 226, 227, 228, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, - 3, 116, 129, 263, 260, 260, 260, 260, 260, 260, - 260, 260, 260, 260, 260, 260, 260, 260, 260, 245, - 260, 3, 4, 123, 125, 129, 262, 263, 254, 12, - 260, 100, 140, 141, 142, 148, 149, 197, 199, 208, - 233, 188, 185, 128, 123, 244, 3, 94, 229, 230, - 231, 134, 116, 185, 134, 143, 144, 134, 254, 253, - 258, 260, 105, 243, 101, 144, 133, 243, 254, 254, - 103, 3, 54, 194, 54, 195, 3, 210, 211, 221, - 103, 103, 111, 115, 216, 228, 125, 263, 105, 134, - 126, 261, 260, 125, 263, 90, 134, 123, 134, 133, - 142, 127, 140, 245, 103, 105, 212, 231, 134, 101, - 133, 134, 105, 36, 116, 240, 242, 103, 150, 153, - 133, 100, 134, 3, 5, 123, 240, 15, 196, 240, - 241, 127, 243, 101, 133, 5, 220, 5, 220, 217, - 222, 260, 260, 260, 126, 260, 263, 147, 254, 127, - 140, 133, 134, 260, 242, 243, 94, 231, 27, 33, - 174, 176, 178, 179, 147, 253, 260, 256, 147, 229, - 241, 127, 101, 200, 150, 211, 111, 5, 110, 111, - 127, 218, 223, 225, 126, 134, 126, 134, 34, 62, - 168, 169, 170, 171, 133, 212, 127, 231, 127, 123, - 174, 176, 65, 154, 134, 134, 198, 240, 46, 100, - 191, 204, 205, 206, 115, 260, 110, 225, 222, 260, - 105, 133, 170, 171, 237, 177, 3, 147, 147, 243, - 100, 145, 149, 191, 201, 202, 203, 208, 233, 3, - 26, 133, 206, 224, 219, 115, 222, 105, 143, 143, - 143, 243, 127, 127, 133, 203, 232, 217, 133, 224, - 143, 133, 133, 134, 234, 201, 3, 111, 217, 175, - 143, 133, 123, 111, 127, 133, 229, 143, 134, 133, - 243 + 47, 48, 49, 52, 53, 55, 56, 63, 64, 65, + 71, 92, 93, 101, 111, 114, 119, 120, 124, 126, + 128, 130, 137, 138, 139, 140, 146, 149, 151, 159, + 162, 163, 164, 165, 166, 173, 181, 184, 185, 188, + 191, 192, 193, 194, 198, 200, 209, 214, 215, 216, + 227, 234, 237, 250, 251, 252, 257, 261, 265, 266, + 268, 269, 270, 91, 50, 124, 124, 156, 157, 124, + 3, 4, 16, 17, 29, 128, 186, 187, 16, 3, + 4, 261, 3, 236, 261, 124, 3, 187, 240, 261, + 128, 124, 129, 16, 261, 124, 3, 5, 8, 9, + 10, 258, 259, 260, 261, 261, 261, 261, 261, 256, + 261, 246, 247, 248, 254, 261, 30, 32, 37, 42, + 46, 67, 101, 134, 145, 146, 147, 151, 153, 167, + 168, 183, 192, 253, 3, 0, 140, 128, 3, 46, + 153, 160, 161, 257, 147, 148, 16, 26, 31, 32, + 44, 46, 208, 267, 4, 194, 3, 128, 221, 225, + 102, 40, 68, 69, 70, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 92, 93, 94, 96, 97, 98, + 104, 105, 107, 108, 109, 111, 112, 114, 115, 116, + 117, 118, 124, 126, 129, 3, 124, 255, 256, 12, + 148, 174, 190, 128, 129, 186, 187, 239, 240, 241, + 249, 124, 255, 129, 182, 246, 3, 104, 255, 134, + 106, 102, 102, 135, 127, 102, 254, 3, 3, 154, + 155, 255, 255, 154, 3, 134, 147, 128, 138, 3, + 101, 69, 101, 3, 35, 51, 233, 3, 3, 210, + 261, 3, 221, 226, 228, 229, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 117, 130, 186, 264, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 246, + 261, 3, 4, 117, 124, 126, 130, 263, 264, 135, + 124, 261, 101, 126, 141, 142, 143, 149, 151, 198, + 200, 209, 234, 189, 186, 129, 124, 245, 3, 95, + 230, 231, 232, 135, 117, 186, 144, 145, 135, 261, + 135, 254, 259, 261, 106, 244, 102, 145, 134, 244, + 255, 255, 104, 3, 54, 195, 54, 196, 3, 211, + 212, 222, 104, 104, 112, 116, 217, 229, 126, 264, + 106, 135, 127, 262, 261, 126, 264, 91, 156, 255, + 135, 150, 134, 143, 128, 141, 246, 104, 106, 213, + 232, 135, 102, 134, 156, 106, 36, 117, 241, 243, + 104, 152, 155, 134, 101, 135, 3, 5, 124, 241, + 15, 197, 241, 242, 128, 244, 102, 134, 5, 221, + 5, 221, 218, 223, 261, 261, 261, 127, 261, 264, + 135, 128, 261, 141, 134, 135, 261, 243, 244, 95, + 232, 27, 33, 175, 177, 179, 180, 66, 158, 254, + 261, 257, 156, 230, 242, 128, 102, 201, 152, 212, + 112, 5, 111, 112, 128, 219, 224, 227, 127, 135, + 127, 34, 62, 169, 170, 171, 172, 127, 134, 213, + 128, 232, 128, 124, 175, 177, 156, 135, 135, 199, + 241, 46, 101, 192, 205, 206, 207, 116, 261, 111, + 227, 223, 261, 106, 134, 171, 172, 238, 178, 3, + 156, 244, 101, 146, 151, 192, 202, 203, 204, 209, + 234, 3, 26, 134, 207, 225, 220, 116, 223, 106, + 144, 144, 144, 244, 128, 128, 134, 204, 233, 218, + 134, 225, 144, 134, 134, 135, 235, 202, 3, 112, + 218, 176, 144, 134, 124, 112, 128, 134, 230, 144, + 135, 134, 244 }; #define yyerrok (yyerrstatus = 0) @@ -4509,7 +4618,7 @@ yyreduce: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1902 "parser.y" +#line 1979 "parser.y" {PASS_ALWAYS as3_pass=(yyvsp[(1) - (4)].number_int);} } break; @@ -4520,19 +4629,19 @@ yyreduce: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1914 "parser.y" +#line 1991 "parser.y" {PASS_ALWAYS as3_pass=(yyvsp[(1) - (4)].number_int);} } break; - case 26: + case 25: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1917 "parser.y" - {(yyval.code)=(yyvsp[(1) - (1)].code);} +#line 1992 "parser.y" + {PASS_ALWAYS as3_pass=(yyvsp[(2) - (4)].number_int);PASS1 as3_warning("embed command ignored");} } break; @@ -4542,8 +4651,8 @@ yyreduce: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1918 "parser.y" - {(yyval.code)=code_new();} +#line 1995 "parser.y" + {(yyval.code)=(yyvsp[(1) - (1)].code);} } break; @@ -4553,7 +4662,18 @@ yyreduce: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1920 "parser.y" +#line 1996 "parser.y" + {(yyval.code)=code_new();} + } + break; + + + + case 29: + if(as3_pass==2) { + +/* Line 1464 of skeleton.m4 */ +#line 1998 "parser.y" { (yyval.code)=code_append((yyvsp[(1) - (2)].code),(yyvsp[(2) - (2)].code)); } @@ -4562,55 +4682,55 @@ yyreduce: - case 29: + case 30: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1923 "parser.y" +#line 2001 "parser.y" {(yyval.code)=(yyvsp[(1) - (1)].code);} } break; - case 42: + case 44: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1938 "parser.y" +#line 2017 "parser.y" {(yyval.code)=(yyvsp[(2) - (3)].code);} } break; - case 43: + case 45: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1939 "parser.y" +#line 2018 "parser.y" {(yyval.code)=0;} } break; - case 44: + case 46: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1942 "parser.y" +#line 2021 "parser.y" {(yyval.code)=0;} } break; - case 51: + case 53: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1949 "parser.y" +#line 2028 "parser.y" { PASS_ALWAYS if(as3_pass) { @@ -4625,47 +4745,66 @@ yyreduce: - case 52: + case 54: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1961 "parser.y" +#line 2040 "parser.y" {(yyval.code)=(yyvsp[(1) - (2)].code);} } break; - case 53: + case 55: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1962 "parser.y" +#line 2041 "parser.y" {(yyval.code)=(yyvsp[(1) - (1)].code);} } break; - case 54: + case 56: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1966 "parser.y" +#line 2045 "parser.y" { - code_t**cc = &global->init->method->body->code; - *cc = code_append(*cc, (yyvsp[(1) - (1)].code)); + if((yyvsp[(1) - (1)].code)) { + if(!global->init) + global->init = abc_initscript(global->file); + code_t**cc = &global->init->method->body->code; + *cc = code_append(*cc, (yyvsp[(1) - (1)].code)); + } } } break; - case 55: + case 57: + if(as3_pass==2) { + +/* Line 1464 of skeleton.m4 */ +#line 2056 "parser.y" + { + PASS_ALWAYS + (yyval.number_int) = as3_pass; + as3_pass=0; +} + } + break; + + + + case 58: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1973 "parser.y" +#line 2064 "parser.y" { PASS12 (yyval.number_int)=as3_pass; @@ -4680,131 +4819,132 @@ yyreduce: - case 56: + case 59: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1992 "parser.y" +#line 2091 "parser.y" {(yyval.node)=(yyvsp[(2) - (2)].node);} } break; - case 57: + case 60: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1993 "parser.y" +#line 2092 "parser.y" {(yyval.node)=mkdummynode();} } break; - case 58: + case 61: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1995 "parser.y" +#line 2094 "parser.y" {(yyval.code)=(yyvsp[(2) - (2)].code);} } break; - case 59: + case 62: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1996 "parser.y" +#line 2095 "parser.y" {(yyval.code)=(yyvsp[(2) - (2)].code);} } break; - case 60: + case 63: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1998 "parser.y" +#line 2097 "parser.y" {(yyval.code) = (yyvsp[(1) - (1)].code);} } break; - case 61: + case 64: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1999 "parser.y" +#line 2098 "parser.y" {(yyval.code) = code_append((yyvsp[(1) - (3)].code), (yyvsp[(3) - (3)].code));} } break; - case 62: + case 65: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2002 "parser.y" +#line 2101 "parser.y" { PASS12 - if(variable_exists((yyvsp[(1) - (3)].id))) + if(variable_exists((yyvsp[(1) - (3)].id))) syntaxerror("Variable %s already defined", (yyvsp[(1) - (3)].id)); PASS1 - new_variable((yyvsp[(1) - (3)].id), 0, 1, 0); + new_variable(state->method, (yyvsp[(1) - (3)].id), 0, 1, 0); PASS2 char slot = 0; int index = 0; + variable_t*v = 0; if(state->method->uses_slots) { - variable_t* v = find_slot(state, (yyvsp[(1) - (3)].id)); + v = find_slot(state->method, (yyvsp[(1) - (3)].id)); if(v && !v->init) { // this variable is stored in a slot v->init = 1; v->type = (yyvsp[(2) - (3)].classinfo); slot = 1; - index = v->index; } } - if(!index) { - index = new_variable((yyvsp[(1) - (3)].id), (yyvsp[(2) - (3)].classinfo), 1, 0); + if(!v) { + v = new_variable2(state->method, (yyvsp[(1) - (3)].id), (yyvsp[(2) - (3)].classinfo), 1, 0); } (yyval.code) = slot?abc_getscopeobject(0, 1):0; - typedcode_t v = node_read((yyvsp[(3) - (3)].node)); - if(!is_subtype_of(v.t, (yyvsp[(2) - (3)].classinfo))) { - syntaxerror("Can't convert %s to %s", v.t->name, (yyvsp[(2) - (3)].classinfo)->name); + typedcode_t val = node_read((yyvsp[(3) - (3)].node)); + if(!is_subtype_of(val.t, (yyvsp[(2) - (3)].classinfo))) { + syntaxerror("Can't convert %s to %s", val.t->name, (yyvsp[(2) - (3)].classinfo)->name); } if((yyvsp[(2) - (3)].classinfo)) { - if(v.c->prev || v.c->opcode != OPCODE_PUSHUNDEFINED) { - (yyval.code) = code_append((yyval.code), v.c); - (yyval.code) = converttype((yyval.code), v.t, (yyvsp[(2) - (3)].classinfo)); + if(val.c->prev || val.c->opcode != OPCODE_PUSHUNDEFINED) { + (yyval.code) = code_append((yyval.code), val.c); + (yyval.code) = converttype((yyval.code), val.t, (yyvsp[(2) - (3)].classinfo)); } else { - code_free(v.c); + code_free(val.c); (yyval.code) = defaultvalue((yyval.code), (yyvsp[(2) - (3)].classinfo)); } } else { - if(v.c->prev || v.c->opcode != OPCODE_PUSHUNDEFINED) { - (yyval.code) = code_append((yyval.code), v.c); + if(val.c->prev || val.c->opcode != OPCODE_PUSHUNDEFINED) { + (yyval.code) = code_append((yyval.code), val.c); (yyval.code) = abc_coerce_a((yyval.code)); } else { // don't do anything - code_free(v.c); + code_free(val.c); code_free((yyval.code)); (yyval.code) = 0; break; } } if(slot) { - (yyval.code) = abc_setslot((yyval.code), index); + (yyval.code) = abc_setslot((yyval.code), v->index); } else { - (yyval.code) = abc_setlocal((yyval.code), index); + (yyval.code) = abc_setlocal((yyval.code), v->index); + v->init = do_init_variable((yyvsp[(1) - (3)].id)); } } } @@ -4812,97 +4952,108 @@ PASS2 - case 63: + case 66: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2061 "parser.y" - {(yyval.code) = code_new();} +#line 2161 "parser.y" + {PASS12 new_state();} } break; - case 64: + case 67: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2062 "parser.y" - {(yyval.code)=(yyvsp[(2) - (2)].code);} +#line 2161 "parser.y" + { + (yyval.code) = var_block((yyvsp[(2) - (2)].code), state->vars); + PASS12 old_state(); +} } break; - case 65: + case 68: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2065 "parser.y" - {PASS12 new_state();} +#line 2165 "parser.y" + {(yyval.code) = code_new();} } break; - case 66: + case 69: + if(as3_pass==2) { + +/* Line 1464 of skeleton.m4 */ +#line 2166 "parser.y" + {(yyval.code)=(yyvsp[(2) - (2)].code);} + } + break; + + + + case 70: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2065 "parser.y" +#line 2169 "parser.y" { - (yyval.code) = code_new(); - (yyval.code) = code_append((yyval.code), (yyvsp[(4) - (7)].value).c); + (yyval.code) = code_append((yyval.code), (yyvsp[(3) - (6)].value).c); code_t*myjmp,*myif = (yyval.code) = abc_iffalse((yyval.code), 0); - (yyval.code) = code_append((yyval.code), (yyvsp[(6) - (7)].code)); - if((yyvsp[(7) - (7)].code)) { + (yyval.code) = code_append((yyval.code), (yyvsp[(5) - (6)].code)); + if((yyvsp[(6) - (6)].code)) { myjmp = (yyval.code) = abc_jump((yyval.code), 0); } myif->branch = (yyval.code) = abc_nop((yyval.code)); - if((yyvsp[(7) - (7)].code)) { - (yyval.code) = code_append((yyval.code), (yyvsp[(7) - (7)].code)); + if((yyvsp[(6) - (6)].code)) { + (yyval.code) = code_append((yyval.code), (yyvsp[(6) - (6)].code)); myjmp->branch = (yyval.code) = abc_nop((yyval.code)); } - (yyval.code) = var_block((yyval.code)); - PASS12 old_state(); } } break; - case 67: + case 71: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2084 "parser.y" +#line 2185 "parser.y" {(yyval.code)=code_new();} } break; - case 70: + case 74: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2091 "parser.y" +#line 2192 "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); + PASS1 (yyval.id)=(yyvsp[(2) - (3)].id);new_variable(state->method, (yyvsp[(2) - (3)].id),0,1,0); + PASS2 (yyval.id)=(yyvsp[(2) - (3)].id);new_variable(state->method, (yyvsp[(2) - (3)].id),(yyvsp[(3) - (3)].classinfo),1,0); } } break; - case 71: + case 75: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2095 "parser.y" +#line 2196 "parser.y" { PASS12 (yyval.id)=(yyvsp[(1) - (1)].id); @@ -4912,33 +5063,33 @@ PASS2 - case 72: + case 76: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2100 "parser.y" +#line 2201 "parser.y" {PASS12 new_state();(yyval.for_start).name=(yyvsp[(1) - (2)].id);(yyval.for_start).each=0;} } break; - case 73: + case 77: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2101 "parser.y" +#line 2202 "parser.y" {PASS12 new_state();(yyval.for_start).name=(yyvsp[(1) - (3)].id);(yyval.for_start).each=1;} } break; - case 74: + case 78: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2103 "parser.y" +#line 2204 "parser.y" { if((yyvsp[(1) - (8)].for_start).each) syntaxerror("invalid syntax: ; not allowed in for each statement"); (yyval.code) = code_new(); @@ -4955,7 +5106,7 @@ PASS2 continuejumpsto((yyval.code), (yyvsp[(1) - (8)].for_start).name, cont); myif->branch = out; - (yyval.code) = var_block((yyval.code)); + (yyval.code) = var_block((yyval.code), state->vars); PASS12 old_state(); } } @@ -4963,21 +5114,17 @@ PASS2 - case 75: + case 79: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2123 "parser.y" +#line 2224 "parser.y" { - variable_t*var = find_variable(state, (yyvsp[(2) - (6)].id)); - if(!var) { - syntaxerror("variable %s not known in this scope", (yyvsp[(2) - (6)].id)); - } - - char*tmp1name = concat2((yyvsp[(2) - (6)].id), "__tmp1__"); - int it = new_variable(tmp1name, TYPE_INT, 0, 0); - char*tmp2name = concat2((yyvsp[(2) - (6)].id), "__array__"); - int array = new_variable(tmp1name, 0, 0, 0); + node_t*n = resolve_identifier((yyvsp[(2) - (6)].id)); + typedcode_t w = node_write(n); + + int it = alloc_local(); + int array = alloc_local(); (yyval.code) = code_new(); (yyval.code) = code_append((yyval.code), (yyvsp[(4) - (6)].value).c); @@ -4996,8 +5143,9 @@ PASS2 (yyval.code) = abc_nextname((yyval.code)); else (yyval.code) = abc_nextvalue((yyval.code)); - (yyval.code) = converttype((yyval.code), 0, var->type); - (yyval.code) = abc_setlocal((yyval.code), var->index); + + (yyval.code) = converttype((yyval.code), 0, w.t); + (yyval.code) = code_append((yyval.code), w.c); (yyval.code) = code_append((yyval.code), (yyvsp[(6) - (6)].code)); (yyval.code) = abc_jump((yyval.code), loopstart); @@ -5008,11 +5156,10 @@ PASS2 myif->branch = out; - (yyval.code) = var_block((yyval.code)); - - free(tmp1name); - free(tmp2name); + (yyval.code) = abc_kill((yyval.code), it); + (yyval.code) = abc_kill((yyval.code), array); + (yyval.code) = var_block((yyval.code), state->vars); PASS12 old_state(); } } @@ -5020,85 +5167,57 @@ PASS2 - case 76: - if(as3_pass==2) { - -/* Line 1464 of skeleton.m4 */ -#line 2171 "parser.y" - {PASS12 new_state();} - } - break; - - - - case 77: + case 80: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2171 "parser.y" +#line 2268 "parser.y" { (yyval.code) = code_new(); code_t*myjmp = (yyval.code) = abc_jump((yyval.code), 0); code_t*loopstart = (yyval.code) = abc_label((yyval.code)); - (yyval.code) = code_append((yyval.code), (yyvsp[(6) - (6)].code)); + (yyval.code) = code_append((yyval.code), (yyvsp[(5) - (5)].code)); code_t*cont = (yyval.code) = abc_nop((yyval.code)); myjmp->branch = cont; - (yyval.code) = code_append((yyval.code), (yyvsp[(4) - (6)].value).c); + (yyval.code) = code_append((yyval.code), (yyvsp[(3) - (5)].value).c); (yyval.code) = abc_iftrue((yyval.code), loopstart); code_t*out = (yyval.code) = abc_nop((yyval.code)); - breakjumpsto((yyval.code), (yyvsp[(1) - (6)].id), out); - continuejumpsto((yyval.code), (yyvsp[(1) - (6)].id), cont); - - (yyval.code) = var_block((yyval.code)); - PASS12 old_state(); + breakjumpsto((yyval.code), (yyvsp[(1) - (5)].id), out); + continuejumpsto((yyval.code), (yyvsp[(1) - (5)].id), cont); } } break; - case 78: - if(as3_pass==2) { - -/* Line 1464 of skeleton.m4 */ -#line 2190 "parser.y" - {PASS12 new_state();} - } - break; - - - - case 79: + case 81: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2190 "parser.y" +#line 2284 "parser.y" { (yyval.code) = code_new(); code_t*loopstart = (yyval.code) = abc_label((yyval.code)); - (yyval.code) = code_append((yyval.code), (yyvsp[(3) - (7)].code)); + (yyval.code) = code_append((yyval.code), (yyvsp[(2) - (6)].code)); code_t*cont = (yyval.code) = abc_nop((yyval.code)); - (yyval.code) = code_append((yyval.code), (yyvsp[(6) - (7)].value).c); + (yyval.code) = code_append((yyval.code), (yyvsp[(5) - (6)].value).c); (yyval.code) = abc_iftrue((yyval.code), loopstart); code_t*out = (yyval.code) = abc_nop((yyval.code)); - breakjumpsto((yyval.code), (yyvsp[(1) - (7)].id), out); - continuejumpsto((yyval.code), (yyvsp[(1) - (7)].id), cont); - - (yyval.code) = var_block((yyval.code)); - PASS12 old_state(); + breakjumpsto((yyval.code), (yyvsp[(1) - (6)].id), out); + continuejumpsto((yyval.code), (yyvsp[(1) - (6)].id), cont); } } break; - case 80: + case 82: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2205 "parser.y" +#line 2296 "parser.y" { (yyval.code) = abc___break__(0, ""); } @@ -5107,11 +5226,11 @@ PASS2 - case 81: + case 83: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2208 "parser.y" +#line 2299 "parser.y" { (yyval.code) = abc___break__(0, (yyvsp[(2) - (2)].id)); } @@ -5120,11 +5239,11 @@ PASS2 - case 82: + case 84: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2211 "parser.y" +#line 2302 "parser.y" { (yyval.code) = abc___continue__(0, ""); } @@ -5133,11 +5252,11 @@ PASS2 - case 83: + case 85: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2214 "parser.y" +#line 2305 "parser.y" { (yyval.code) = abc___continue__(0, (yyvsp[(2) - (2)].id)); } @@ -5146,77 +5265,77 @@ PASS2 - case 84: + case 86: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2218 "parser.y" +#line 2309 "parser.y" {(yyval.code)=0;} } break; - case 85: + case 87: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2219 "parser.y" +#line 2310 "parser.y" {(yyval.code)=(yyvsp[(1) - (1)].code);} } break; - case 86: + case 88: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2220 "parser.y" +#line 2311 "parser.y" {(yyval.code)=(yyvsp[(1) - (1)].code);} } break; - case 87: + case 89: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2221 "parser.y" +#line 2312 "parser.y" {(yyval.code)=code_append((yyvsp[(1) - (2)].code),(yyvsp[(2) - (2)].code));} } break; - case 88: + case 90: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2222 "parser.y" +#line 2313 "parser.y" {(yyval.code)=(yyvsp[(1) - (1)].code);} } break; - case 89: + case 91: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2223 "parser.y" +#line 2314 "parser.y" {(yyval.code)=code_append((yyval.code),(yyvsp[(2) - (2)].code));} } break; - case 90: + case 92: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2225 "parser.y" +#line 2316 "parser.y" { (yyval.code) = abc_getlocal(0, state->switch_var); (yyval.code) = code_append((yyval.code), node_read((yyvsp[(2) - (4)].node)).c); @@ -5233,11 +5352,11 @@ PASS2 - case 91: + case 93: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2236 "parser.y" +#line 2327 "parser.y" { (yyval.code) = (yyvsp[(3) - (3)].code); } @@ -5246,22 +5365,22 @@ PASS2 - case 92: + case 94: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2239 "parser.y" +#line 2330 "parser.y" {PASS12 new_state();state->switch_var=alloc_local();} } break; - case 93: + case 95: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2239 "parser.y" +#line 2330 "parser.y" { (yyval.code) = node_read((yyvsp[(4) - (8)].node)).c; (yyval.code) = abc_setlocal((yyval.code), state->switch_var); @@ -5287,7 +5406,7 @@ PASS2 c=c->prev; } - (yyval.code) = var_block((yyval.code)); + (yyval.code) = var_block((yyval.code), state->vars); PASS12 old_state(); } } @@ -5295,26 +5414,26 @@ PASS2 - case 94: + case 96: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2270 "parser.y" +#line 2361 "parser.y" {PASS12 new_state(); state->exception_name=(yyvsp[(3) - (5)].id); - PASS1 new_variable((yyvsp[(3) - (5)].id), 0, 0, 0); - PASS2 new_variable((yyvsp[(3) - (5)].id), (yyvsp[(4) - (5)].classinfo), 0, 0); + PASS1 new_variable(state->method, (yyvsp[(3) - (5)].id), 0, 0, 0); + PASS2 new_variable(state->method, (yyvsp[(3) - (5)].id), (yyvsp[(4) - (5)].classinfo), 0, 0); } } break; - case 95: + case 97: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2275 "parser.y" +#line 2366 "parser.y" { namespace_t name_ns = {ACCESS_PACKAGE, ""}; multiname_t name = {QNAME, &name_ns, 0, (yyvsp[(3) - (9)].id)}; @@ -5332,7 +5451,7 @@ PASS2 c = code_append(c, (yyvsp[(8) - (9)].code)); c = abc_kill(c, i); - c = var_block(c); + c = var_block(c, state->vars); PASS12 old_state(); } } @@ -5340,24 +5459,24 @@ PASS2 - case 96: + case 98: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2295 "parser.y" +#line 2386 "parser.y" {PASS12 new_state();state->exception_name=0;} } break; - case 97: + case 99: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2295 "parser.y" +#line 2386 "parser.y" { - (yyvsp[(4) - (5)].code) = var_block((yyvsp[(4) - (5)].code)); + (yyvsp[(4) - (5)].code) = var_block((yyvsp[(4) - (5)].code), state->vars); if(!(yyvsp[(4) - (5)].code)) { (yyval.exception)=0; } else { @@ -5376,44 +5495,44 @@ PASS2 - case 98: + case 100: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2311 "parser.y" +#line 2402 "parser.y" {(yyval.catch_list).l=list_new();(yyval.catch_list).finally=0;list_append((yyval.catch_list).l,(yyvsp[(1) - (1)].exception));} } break; - case 99: + case 101: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2312 "parser.y" +#line 2403 "parser.y" {(yyval.catch_list)=(yyvsp[(1) - (2)].catch_list);list_append((yyval.catch_list).l,(yyvsp[(2) - (2)].exception));} } break; - case 100: + case 102: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2313 "parser.y" +#line 2404 "parser.y" {(yyval.catch_list)=(yyvsp[(1) - (1)].catch_list);} } break; - case 101: + case 103: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2314 "parser.y" +#line 2405 "parser.y" { (yyval.catch_list) = (yyvsp[(1) - (2)].catch_list); (yyval.catch_list).finally = 0; @@ -5427,11 +5546,11 @@ PASS2 - case 102: + case 104: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2322 "parser.y" +#line 2413 "parser.y" { (yyval.catch_list).l=list_new(); (yyval.catch_list).finally = 0; @@ -5445,11 +5564,11 @@ PASS2 - case 103: + case 105: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2331 "parser.y" +#line 2422 "parser.y" {PASS12 new_state(); state->method->has_exceptions=1; state->method->late_binding=1;//for invariant scope_code @@ -5459,11 +5578,11 @@ PASS2 - case 104: + case 106: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2334 "parser.y" +#line 2425 "parser.y" { code_t*out = abc_nop(0); @@ -5476,7 +5595,7 @@ PASS2 int tmp; if((yyvsp[(6) - (6)].catch_list).finally) - tmp = new_variable("__finally__", 0, 0, 0); + tmp = alloc_local(); abc_exception_list_t*l = (yyvsp[(6) - (6)].catch_list).l; int count=0; @@ -5504,7 +5623,7 @@ PASS2 list_concat(state->method->exceptions, (yyvsp[(6) - (6)].catch_list).l); - (yyval.code) = var_block((yyval.code)); + (yyval.code) = var_block((yyval.code), state->vars); PASS12 old_state(); } } @@ -5512,11 +5631,11 @@ PASS2 - case 105: + case 107: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2380 "parser.y" +#line 2471 "parser.y" { (yyval.code)=(yyvsp[(2) - (2)].value).c; (yyval.code)=abc_throw((yyval.code)); @@ -5526,11 +5645,11 @@ PASS2 - case 106: + case 108: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2384 "parser.y" +#line 2475 "parser.y" { if(!state->exception_name) syntaxerror("re-throw only possible within a catch block"); @@ -5544,11 +5663,11 @@ PASS2 - case 107: + case 109: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2395 "parser.y" +#line 2486 "parser.y" { new_state(); if(state->method->has_exceptions) { @@ -5564,11 +5683,11 @@ PASS2 - case 108: + case 110: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2405 "parser.y" +#line 2496 "parser.y" { /* remove getlocal;pushwith from scope code again */ state->method->scope_code = code_cutlast(code_cutlast(state->method->scope_code)); @@ -5588,111 +5707,148 @@ PASS2 - case 110: + case 112: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2423 "parser.y" +#line 2514 "parser.y" {PASS12 (yyval.id)="package";} } break; - case 111: + case 113: + if(as3_pass==2) { + +/* Line 1464 of skeleton.m4 */ +#line 2515 "parser.y" + {PASS12 (yyval.id)="namespace";} + } + break; + + + + case 114: + if(as3_pass==2) { + +/* Line 1464 of skeleton.m4 */ +#line 2516 "parser.y" + {PASS12 (yyval.id)="NaN";} + } + break; + + + + case 115: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2424 "parser.y" +#line 2517 "parser.y" {PASS12 (yyval.id)=(yyvsp[(1) - (1)].id);} } break; - case 112: + case 116: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2426 "parser.y" +#line 2519 "parser.y" {PASS12 (yyval.id) = concat3((yyvsp[(1) - (3)].id),".",(yyvsp[(3) - (3)].id));free((yyvsp[(1) - (3)].id));(yyvsp[(1) - (3)].id)=0;} } break; - case 113: + case 117: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2427 "parser.y" +#line 2520 "parser.y" {PASS12 (yyval.id)=strdup((yyvsp[(1) - (1)].id));} } break; - case 114: + case 118: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2429 "parser.y" +#line 2522 "parser.y" {PASS12 startpackage((yyvsp[(2) - (3)].id));free((yyvsp[(2) - (3)].id));(yyvsp[(2) - (3)].id)=0;} } break; - case 115: + case 119: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2430 "parser.y" +#line 2523 "parser.y" {PASS12 endpackage();(yyval.code)=0;} } break; - case 116: + case 120: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2431 "parser.y" +#line 2524 "parser.y" {PASS12 startpackage("");} } break; - case 117: + case 121: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2432 "parser.y" +#line 2525 "parser.y" {PASS12 endpackage();(yyval.code)=0;} } break; - case 118: + case 122: + if(as3_pass==2) { + +/* Line 1464 of skeleton.m4 */ +#line 2548 "parser.y" + { + PASS12 + slotinfo_t*s = registry_find(state->package, (yyvsp[(2) - (2)].id)); + if(!s && as3_pass==1) {as3_schedule_class(state->package, (yyvsp[(2) - (2)].id));} + state_has_imports(); + dict_put(state->imports, state->package, (yyvsp[(2) - (2)].id)); + (yyval.code)=0; +} + } + break; + + + + case 123: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2454 "parser.y" +#line 2556 "parser.y" { PASS12 slotinfo_t*s = registry_find((yyvsp[(2) - (2)].classinfo)->package, (yyvsp[(2) - (2)].classinfo)->name); if(!s && as3_pass==1) {// || !(s->flags&FLAG_BUILTIN)) { as3_schedule_class((yyvsp[(2) - (2)].classinfo)->package, (yyvsp[(2) - (2)].classinfo)->name); } - classinfo_t*c = (yyvsp[(2) - (2)].classinfo); - if(!c) - syntaxerror("Couldn't import class\n"); state_has_imports(); - dict_put(state->imports, c->name, c); - import_toplevel(c->package); + dict_put(state->imports, (yyvsp[(2) - (2)].classinfo)->name, (yyvsp[(2) - (2)].classinfo)); + import_toplevel((yyvsp[(2) - (2)].classinfo)->package); (yyval.code)=0; } } @@ -5700,11 +5856,11 @@ PASS2 - case 119: + case 124: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2468 "parser.y" +#line 2567 "parser.y" { PASS12 if(strncmp("flash.", (yyvsp[(2) - (4)].id), 6) && as3_pass==1) { @@ -5723,44 +5879,44 @@ PASS2 - case 120: + case 125: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2484 "parser.y" +#line 2583 "parser.y" {PASS12 (yyval.flags).flags=0;(yyval.flags).ns=0;} } break; - case 121: + case 126: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2485 "parser.y" +#line 2584 "parser.y" {PASS12 (yyval.flags)=(yyvsp[(1) - (1)].flags);} } break; - case 122: + case 127: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2486 "parser.y" +#line 2585 "parser.y" {PASS12 (yyval.flags)=(yyvsp[(1) - (1)].flags);} } break; - case 123: + case 128: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2487 "parser.y" +#line 2586 "parser.y" { PASS12 (yyval.flags).flags=(yyvsp[(1) - (2)].flags).flags|(yyvsp[(2) - (2)].flags).flags; @@ -5773,110 +5929,110 @@ PASS2 - case 124: + case 129: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2494 "parser.y" +#line 2593 "parser.y" {PASS12 (yyval.flags).flags=FLAG_PUBLIC;(yyval.flags).ns=0;} } break; - case 125: + case 130: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2495 "parser.y" +#line 2594 "parser.y" {PASS12 (yyval.flags).flags=FLAG_PRIVATE;(yyval.flags).ns=0;} } break; - case 126: + case 131: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2496 "parser.y" +#line 2595 "parser.y" {PASS12 (yyval.flags).flags=FLAG_PROTECTED;(yyval.flags).ns=0;} } break; - case 127: + case 132: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2497 "parser.y" +#line 2596 "parser.y" {PASS12 (yyval.flags).flags=FLAG_STATIC;(yyval.flags).ns=0;} } break; - case 128: + case 133: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2498 "parser.y" +#line 2597 "parser.y" {PASS12 (yyval.flags).flags=FLAG_DYNAMIC;(yyval.flags).ns=0;} } break; - case 129: + case 134: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2499 "parser.y" +#line 2598 "parser.y" {PASS12 (yyval.flags).flags=FLAG_FINAL;(yyval.flags).ns=0;} } break; - case 130: + case 135: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2500 "parser.y" +#line 2599 "parser.y" {PASS12 (yyval.flags).flags=FLAG_OVERRIDE;(yyval.flags).ns=0;} } break; - case 131: + case 136: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2501 "parser.y" +#line 2600 "parser.y" {PASS12 (yyval.flags).flags=FLAG_NATIVE;(yyval.flags).ns=0;} } break; - case 132: + case 137: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2502 "parser.y" +#line 2601 "parser.y" {PASS12 (yyval.flags).flags=FLAG_PACKAGEINTERNAL;(yyval.flags).ns=0;} } break; - case 133: + case 138: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2503 "parser.y" +#line 2602 "parser.y" {PASS12 (yyval.flags).flags=FLAG_NAMESPACE; (yyval.flags).ns=(yyvsp[(1) - (1)].id); } @@ -5885,99 +6041,99 @@ PASS2 - case 134: + case 139: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2507 "parser.y" +#line 2606 "parser.y" {PASS12 (yyval.classinfo)=0;} } break; - case 135: + case 140: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2508 "parser.y" +#line 2607 "parser.y" {PASS12 (yyval.classinfo)=(yyvsp[(2) - (2)].classinfo);} } break; - case 136: + case 141: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2510 "parser.y" +#line 2609 "parser.y" {PASS12 (yyval.classinfo_list)=list_new();} } break; - case 137: + case 142: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2511 "parser.y" +#line 2610 "parser.y" {PASS12 (yyval.classinfo_list)=(yyvsp[(2) - (2)].classinfo_list);} } break; - case 138: + case 143: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2513 "parser.y" +#line 2612 "parser.y" {PASS12 (yyval.classinfo_list)=list_new();} } break; - case 139: + case 144: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2514 "parser.y" +#line 2613 "parser.y" {PASS12 (yyval.classinfo_list)=(yyvsp[(2) - (2)].classinfo_list);} } break; - case 140: + case 145: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2518 "parser.y" +#line 2617 "parser.y" {PASS12 startclass(&(yyvsp[(1) - (6)].flags),(yyvsp[(3) - (6)].id),(yyvsp[(4) - (6)].classinfo),(yyvsp[(5) - (6)].classinfo_list));} } break; - case 141: + case 146: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2520 "parser.y" +#line 2619 "parser.y" {PASS12 endclass();(yyval.code)=0;} } break; - case 142: + case 147: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2524 "parser.y" +#line 2623 "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));} } @@ -5985,33 +6141,33 @@ PASS2 - case 143: + case 148: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2527 "parser.y" +#line 2626 "parser.y" {PASS12 endclass();(yyval.code)=0;} } break; - case 149: + case 154: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2536 "parser.y" +#line 2635 "parser.y" {PASS_ALWAYS as3_pass=(yyvsp[(1) - (4)].number_int);} } break; - case 152: + case 157: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2540 "parser.y" +#line 2639 "parser.y" { code_t*c = state->cls->static_init->header; c = code_append(c, (yyvsp[(1) - (1)].code)); @@ -6022,11 +6178,11 @@ PASS2 - case 158: + case 163: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2551 "parser.y" +#line 2650 "parser.y" { syntaxerror("variable declarations not allowed in interfaces"); } @@ -6035,11 +6191,11 @@ PASS2 - case 159: + case 164: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2554 "parser.y" +#line 2653 "parser.y" { PASS12 (yyvsp[(1) - (8)].flags).flags |= FLAG_PUBLIC; @@ -6055,55 +6211,55 @@ PASS2 - case 162: + case 167: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2624 "parser.y" +#line 2728 "parser.y" {PASS12 setslotstate(&(yyvsp[(1) - (2)].flags),(yyvsp[(2) - (2)].token));} } break; - case 163: + case 168: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2624 "parser.y" +#line 2728 "parser.y" {PASS12 (yyval.code)=(yyvsp[(4) - (4)].code);setslotstate(0, 0);} } break; - case 164: + case 169: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2626 "parser.y" +#line 2730 "parser.y" {PASS12 (yyval.code)=0;} } break; - case 165: + case 170: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2627 "parser.y" +#line 2731 "parser.y" {PASS12 (yyval.code)=0;} } break; - case 166: + case 171: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2630 "parser.y" +#line 2734 "parser.y" { PASS12 int flags = slotstate_flags->flags; @@ -6189,22 +6345,22 @@ PASS12 - case 167: + case 172: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2713 "parser.y" +#line 2817 "parser.y" {(yyval.constant)=0;} } break; - case 168: + case 173: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2714 "parser.y" +#line 2818 "parser.y" { (yyval.constant) = malloc(sizeof(constant_t)); *(yyval.constant) = node_eval((yyvsp[(2) - (2)].node)); @@ -6217,22 +6373,22 @@ PASS12 - case 169: + case 174: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2723 "parser.y" +#line 2827 "parser.y" {(yyval.constant) = constant_new_int((yyvsp[(1) - (1)].number_int));} } break; - case 170: + case 175: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2724 "parser.y" +#line 2828 "parser.y" { (yyval.constant) = constant_new_uint((yyvsp[(1) - (1)].number_uint)); } @@ -6241,402 +6397,446 @@ PASS12 - case 171: + case 176: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2727 "parser.y" +#line 2831 "parser.y" {(yyval.constant) = constant_new_float((yyvsp[(1) - (1)].number_float));} } break; - case 172: + case 177: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2728 "parser.y" +#line 2832 "parser.y" {(yyval.constant) = constant_new_string2((yyvsp[(1) - (1)].str).str,(yyvsp[(1) - (1)].str).len);free((char*)(yyvsp[(1) - (1)].str).str);} } break; - case 173: + case 178: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2729 "parser.y" +#line 2833 "parser.y" {(yyval.constant) = constant_new_true((yyvsp[(1) - (1)].token));} } break; - case 174: + case 179: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2730 "parser.y" +#line 2834 "parser.y" {(yyval.constant) = constant_new_false((yyvsp[(1) - (1)].token));} } break; - case 175: + case 180: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2731 "parser.y" +#line 2835 "parser.y" {(yyval.constant) = constant_new_null((yyvsp[(1) - (1)].token));} } break; - case 176: + case 181: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2732 "parser.y" +#line 2836 "parser.y" {(yyval.constant) = constant_new_undefined((yyvsp[(1) - (1)].token));} } break; - case 177: + case 182: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2733 "parser.y" +#line 2837 "parser.y" {(yyval.constant) = constant_new_float(__builtin_nan(""));} } break; - case 179: + case 183: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2753 "parser.y" +#line 2850 "parser.y" + { + multiname_t m = {QNAME, &stdns, 0, "XML"}; + typedcode_t v; + v.c = 0; + v.c = abc_getlex2(v.c, &m); + v.c = code_append(v.c, node_read((yyvsp[(1) - (1)].node)).c); + v.c = abc_construct(v.c, 1); + v.t = TYPE_XML; + (yyval.node) = mkcodenode(v); +} + } + break; + + + + case 184: + if(as3_pass==2) { + +/* Line 1464 of skeleton.m4 */ +#line 2861 "parser.y" {PASS_ALWAYS if(!xml_level++) tokenizer_begin_xml();} } break; - case 180: + case 185: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2754 "parser.y" +#line 2862 "parser.y" {PASS_ALWAYS tokenizer_begin_xmltext();} } break; - case 181: + case 186: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2755 "parser.y" +#line 2863 "parser.y" {PASS_ALWAYS if(!--xml_level) tokenizer_end_xml(); else tokenizer_begin_xmltext();} } break; - case 182: + case 187: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2757 "parser.y" +#line 2865 "parser.y" {PASS_ALWAYS tokenizer_begin_xmltext();} } break; - case 183: + case 188: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2757 "parser.y" +#line 2865 "parser.y" { - (yyval.id)=strdup("{...}"); - as3_warning("xml string substitution not yet supported"); + (yyval.node) = (yyvsp[(2) - (4)].node); } } break; - case 184: + case 189: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2761 "parser.y" +#line 2868 "parser.y" {PASS_ALWAYS tokenizer_begin_xml();} } break; - case 185: + case 190: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2761 "parser.y" +#line 2868 "parser.y" { - (yyval.id)=strdup("{...}"); - as3_warning("xml string substitution not yet supported"); + (yyval.node) = (yyvsp[(2) - (4)].node); } } break; - case 186: + case 191: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2765 "parser.y" - {(yyval.id)="";} +#line 2871 "parser.y" + {(yyval.node)=mkstringnode("");} } break; - case 187: + case 192: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2766 "parser.y" +#line 2872 "parser.y" { - (yyval.id) = concat2((yyvsp[(1) - (2)].id), "{...}"); + (yyval.node) = mkaddnode((yyvsp[(1) - (2)].node),(yyvsp[(2) - (2)].node)); } } break; - case 188: + case 193: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2769 "parser.y" - {(yyval.id)=concat2((yyvsp[(1) - (2)].id), string_cstr(&(yyvsp[(2) - (2)].str)));} +#line 2875 "parser.y" + { + char* str = string_cstr(&(yyvsp[(2) - (2)].str)); + (yyval.node) = mkaddnode((yyvsp[(1) - (2)].node),mkstringnode(str)); + free(str); +} } break; - case 189: + case 194: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2770 "parser.y" - {(yyval.id)=concat2((yyvsp[(1) - (2)].id), ">");} +#line 2880 "parser.y" + { + (yyval.node) = mkaddnode((yyvsp[(1) - (2)].node), mkstringnode(">")); +} } break; - case 190: + case 195: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2772 "parser.y" - {(yyval.id)=concat2((yyvsp[(1) - (2)].id),(yyvsp[(2) - (2)].id));} +#line 2883 "parser.y" + { + (yyval.node) = mkaddnode((yyvsp[(1) - (2)].node),(yyvsp[(2) - (2)].node)); +} } break; - case 191: + case 196: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2773 "parser.y" - {(yyval.id)=concat3((yyvsp[(1) - (3)].id),(yyvsp[(2) - (3)].id),(yyvsp[(3) - (3)].id));free((yyvsp[(1) - (3)].id));free((yyvsp[(2) - (3)].id));free((yyvsp[(3) - (3)].id));} +#line 2886 "parser.y" + { + (yyval.node) = mkaddnode((yyvsp[(1) - (3)].node), mkaddnode((yyvsp[(2) - (3)].node),(yyvsp[(3) - (3)].node))); +} } break; - case 192: + case 197: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2775 "parser.y" - {(yyval.id)=(yyvsp[(1) - (1)].id);} +#line 2889 "parser.y" + { + (yyval.node) = mkstringnode((yyvsp[(1) - (1)].id)); +} } break; - case 193: + case 198: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2776 "parser.y" - {(yyval.id)=(yyvsp[(1) - (1)].id);} +#line 2892 "parser.y" + { + (yyval.node) = (yyvsp[(1) - (1)].node); +} } break; - case 194: + case 199: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2778 "parser.y" +#line 2896 "parser.y" { - (yyval.id) = allocprintf("<%s%s>%s", (yyvsp[(2) - (10)].id), (yyvsp[(3) - (10)].id), (yyvsp[(5) - (10)].id), (yyvsp[(8) - (10)].id)); - free((yyvsp[(2) - (10)].id));free((yyvsp[(3) - (10)].id));free((yyvsp[(5) - (10)].id));free((yyvsp[(8) - (10)].id)); + (yyval.node) = mkstringnode(""); } } break; - case 195: + case 200: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2782 "parser.y" +#line 2899 "parser.y" { - (yyval.id) = allocprintf("<%s%s/>", (yyvsp[(2) - (6)].id), (yyvsp[(3) - (6)].id)); + (yyval.node) = mkaddnode(mkstringnode(" "),(yyvsp[(1) - (1)].node)); } } break; - case 196: + case 201: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2785 "parser.y" +#line 2903 "parser.y" { - (yyval.id) = allocprintf("<%s%s>%s%s", (yyvsp[(2) - (11)].id), (yyvsp[(3) - (11)].id), (yyvsp[(5) - (11)].id), (yyvsp[(6) - (11)].id), (yyvsp[(9) - (11)].id)); - free((yyvsp[(2) - (11)].id));free((yyvsp[(3) - (11)].id));free((yyvsp[(5) - (11)].id));free((yyvsp[(6) - (11)].id));free((yyvsp[(9) - (11)].id)); + //$$ = allocprintf("<%s%s/>", $2, $3, $5, $8); + (yyval.node) = mkaddnode(mkaddnode(mkaddnode(mkstringnode("<"),(yyvsp[(2) - (6)].node)),(yyvsp[(3) - (6)].node)),mkstringnode("/>")); } } break; - case 197: + case 202: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2790 "parser.y" - {(yyval.id)=strdup("");} +#line 2907 "parser.y" + { + //$$ = allocprintf("<%s%s>%s", $2, $3, $5, $8); + (yyval.node) = mkaddnode(mkaddnode(mkaddnode(mkaddnode(mkaddnode(mkaddnode(mkaddnode( + mkstringnode("<"),(yyvsp[(2) - (10)].node)),(yyvsp[(3) - (10)].node)),mkstringnode(">")),(yyvsp[(5) - (10)].node)),mkstringnode("")); +} } break; - case 198: + case 203: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2791 "parser.y" - {(yyval.id)=concat2(" ",(yyvsp[(1) - (1)].id));} +#line 2912 "parser.y" + { + //$$ = allocprintf("<%s%s>%s%s", $2, $3, $5, $6, $9); + (yyval.node) = mkaddnode(mkaddnode(mkaddnode(mkaddnode(mkaddnode(mkaddnode(mkaddnode(mkaddnode( + mkstringnode("<"),(yyvsp[(2) - (11)].node)),(yyvsp[(3) - (11)].node)),mkstringnode(">")),(yyvsp[(5) - (11)].node)),(yyvsp[(6) - (11)].node)),mkstringnode("")); +} } break; - case 199: + case 204: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2792 "parser.y" - {(yyval.id)=(yyvsp[(1) - (1)].id);} +#line 2918 "parser.y" + { + (yyval.node) = (yyvsp[(1) - (1)].node); +} } break; - case 200: + case 205: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2793 "parser.y" - {(yyval.id)=concat3((yyvsp[(1) - (2)].id)," ",(yyvsp[(2) - (2)].id));free((yyvsp[(1) - (2)].id));free((yyvsp[(2) - (2)].id));} +#line 2921 "parser.y" + { + (yyval.node) = mkaddnode((yyvsp[(1) - (2)].node), mkaddnode(mkstringnode(" "),(yyvsp[(2) - (2)].node))); +} } break; - case 201: + case 206: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2795 "parser.y" +#line 2924 "parser.y" { - (yyval.id) = strdup("{...}"); + (yyval.node) = (yyvsp[(1) - (1)].node); } } break; - case 202: + case 207: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2798 "parser.y" +#line 2927 "parser.y" { char* str = string_cstr(&(yyvsp[(3) - (3)].str)); - (yyval.id) = concat2("{...}=",str); + (yyval.node) = mkaddnode((yyvsp[(1) - (3)].node), mkstringnode(concat2("=",str))); + free(str); } } break; - case 203: + case 208: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2802 "parser.y" +#line 2932 "parser.y" { - (yyval.id) = strdup("{...}={...}"); + (yyval.node) = mkaddnode((yyvsp[(1) - (3)].node), mkaddnode(mkstringnode("=\""), mkaddnode((yyvsp[(3) - (3)].node), mkstringnode("\"")))); } } break; - case 204: + case 209: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2805 "parser.y" +#line 2935 "parser.y" { - (yyval.id) = concat2((yyvsp[(1) - (3)].id),"={...}"); + (yyval.node) = mkaddnode(mkaddnode(mkstringnode(concat2((yyvsp[(1) - (3)].id),"=\"")), (yyvsp[(3) - (3)].node)), mkstringnode("\"")); } } break; - case 205: + case 210: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2808 "parser.y" +#line 2938 "parser.y" { char* str = string_cstr(&(yyvsp[(3) - (3)].str)); - (yyval.id)=allocprintf("%s=\"%s\"", (yyvsp[(1) - (3)].id),str); + (yyval.node)=mkstringnode(allocprintf("%s=%s", (yyvsp[(1) - (3)].id),str)); free(str); free((yyvsp[(1) - (3)].id));free((char*)(yyvsp[(3) - (3)].str).str); } @@ -6645,11 +6845,11 @@ PASS12 - case 206: + case 211: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2818 "parser.y" +#line 2948 "parser.y" { PASS12 memset(&(yyval.params),0,sizeof((yyval.params))); @@ -6659,11 +6859,11 @@ PASS12 - case 207: + case 212: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2822 "parser.y" +#line 2952 "parser.y" { PASS12 (yyval.params)=(yyvsp[(1) - (1)].params); @@ -6673,11 +6873,11 @@ PASS12 - case 208: + case 213: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2828 "parser.y" +#line 2958 "parser.y" { PASS12 memset(&(yyval.params),0,sizeof((yyval.params))); @@ -6689,11 +6889,11 @@ PASS12 - case 209: + case 214: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2834 "parser.y" +#line 2964 "parser.y" { PASS12 (yyval.params) =(yyvsp[(1) - (4)].params); @@ -6705,11 +6905,11 @@ PASS12 - case 210: + case 215: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2842 "parser.y" +#line 2972 "parser.y" { PASS12 (yyval.params) = (yyvsp[(1) - (3)].params); @@ -6720,11 +6920,11 @@ PASS12 - case 211: + case 216: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2847 "parser.y" +#line 2977 "parser.y" { PASS12 memset(&(yyval.params),0,sizeof((yyval.params))); @@ -6735,11 +6935,11 @@ PASS12 - case 212: + case 217: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2853 "parser.y" +#line 2983 "parser.y" { PASS12 (yyval.param) = rfx_calloc(sizeof(param_t)); @@ -6753,11 +6953,11 @@ PASS12 - case 213: + case 218: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2861 "parser.y" +#line 2991 "parser.y" { PASS12 (yyval.param) = rfx_calloc(sizeof(param_t)); @@ -6771,33 +6971,33 @@ PASS12 - case 216: + case 221: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2871 "parser.y" +#line 3001 "parser.y" {PASS12 (yyval.token)=0;} } break; - case 217: + case 222: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2874 "parser.y" +#line 3004 "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; - case 218: + case 223: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2875 "parser.y" +#line 3005 "parser.y" { PASS1 endfunction(&(yyvsp[(1) - (12)].flags),(yyvsp[(3) - (12)].token),(yyvsp[(4) - (12)].id),&(yyvsp[(6) - (12)].params),0,0); @@ -6817,33 +7017,33 @@ PASS12 - case 220: + case 225: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2891 "parser.y" +#line 3021 "parser.y" {PASS12 (yyval.id)=0;} } break; - case 221: + case 226: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2893 "parser.y" +#line 3023 "parser.y" {PASS12 innerfunction((yyvsp[(2) - (7)].id),&(yyvsp[(4) - (7)].params),(yyvsp[(6) - (7)].classinfo));} } break; - case 222: + case 227: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2894 "parser.y" +#line 3024 "parser.y" { PASS1 endfunction(0,0,(yyvsp[(2) - (10)].id),&(yyvsp[(4) - (10)].params),0,0); @@ -6867,11 +7067,11 @@ PASS12 - case 223: + case 228: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2916 "parser.y" +#line 3046 "parser.y" { PASS1 NEW(unresolvedinfo_t,c); memset(c, 0, sizeof(*c)); @@ -6895,11 +7095,11 @@ PASS12 - case 224: + case 229: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2935 "parser.y" +#line 3065 "parser.y" { PASS1 NEW(unresolvedinfo_t,c); memset(c, 0, sizeof(*c)); @@ -6918,121 +7118,121 @@ PASS12 - case 227: + case 232: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2952 "parser.y" +#line 3082 "parser.y" {PASS12 (yyval.classinfo_list)=list_new();list_append((yyval.classinfo_list), (yyvsp[(1) - (1)].classinfo));} } break; - case 228: + case 233: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2953 "parser.y" +#line 3083 "parser.y" {PASS12 (yyval.classinfo_list)=(yyvsp[(1) - (3)].classinfo_list);list_append((yyval.classinfo_list),(yyvsp[(3) - (3)].classinfo));} } break; - case 229: + case 234: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2955 "parser.y" +#line 3085 "parser.y" {PASS12 (yyval.classinfo)=(yyvsp[(1) - (1)].classinfo);} } break; - case 230: + case 235: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2956 "parser.y" +#line 3086 "parser.y" {PASS12 (yyval.classinfo)=TYPE_ANY;} } break; - case 231: + case 236: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2957 "parser.y" +#line 3087 "parser.y" {PASS12 (yyval.classinfo)=TYPE_VOID;} } break; - case 232: + case 237: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2966 "parser.y" +#line 3096 "parser.y" {PASS12 (yyval.classinfo)=(yyvsp[(2) - (2)].classinfo);} } break; - case 233: + case 238: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2967 "parser.y" +#line 3097 "parser.y" {PASS12 (yyval.classinfo)=0;} } break; - case 234: + case 239: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2971 "parser.y" +#line 3101 "parser.y" {(yyval.value_list).cc=0;(yyval.value_list).number=0;} } break; - case 235: + case 240: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2972 "parser.y" +#line 3102 "parser.y" {(yyval.value_list)=(yyvsp[(2) - (3)].value_list);} } break; - case 236: + case 241: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2974 "parser.y" +#line 3104 "parser.y" {(yyval.value_list).cc=0;(yyval.value_list).number=0;} } break; - case 239: + case 244: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2978 "parser.y" +#line 3108 "parser.y" {(yyval.value_list).number=1; (yyval.value_list).cc = (yyvsp[(1) - (1)].value).c; } @@ -7041,22 +7241,22 @@ PASS12 - case 240: + case 245: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2982 "parser.y" +#line 3112 "parser.y" {(yyval.value_list) = (yyvsp[(1) - (2)].value_list);} } break; - case 241: + case 246: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2983 "parser.y" +#line 3113 "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); @@ -7066,11 +7266,11 @@ PASS12 - case 243: + case 248: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2989 "parser.y" +#line 3119 "parser.y" { typedcode_t v = node_read((yyvsp[(2) - (4)].node)); (yyval.value).c = v.c; @@ -7083,6 +7283,9 @@ PASS12 (yyval.value).c = code_append((yyval.value).c, paramcode); (yyval.value).c = abc_constructprop2((yyval.value).c, name, (yyvsp[(4) - (4)].value_list).number); multiname_destroy(name); + } else if(is_getlocal((yyval.value).c)) { + (yyval.value).c = code_append((yyval.value).c, paramcode); + (yyval.value).c = abc_construct((yyval.value).c, (yyvsp[(4) - (4)].value_list).number); } else if(TYPE_IS_CLASS(v.t) && v.t->data) { code_free((yyval.value).c); classinfo_t*c = v.t->data; @@ -7115,11 +7318,11 @@ PASS12 - case 244: + case 249: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3033 "parser.y" +#line 3166 "parser.y" { typedcode_t v = node_read((yyvsp[(1) - (4)].node)); @@ -7165,8 +7368,8 @@ PASS12 // calling a class is like a typecast (yyval.value).t = (classinfo_t*)v.t->data; } else { - (yyval.value).c = abc_coerce_a((yyval.value).c); (yyval.value).t = TYPE_ANY; + (yyval.value).c = abc_coerce_a((yyval.value).c); } } } @@ -7174,11 +7377,11 @@ PASS12 - case 245: + case 250: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3083 "parser.y" +#line 3216 "parser.y" { if(!state->cls) syntaxerror("super() not allowed outside of a class"); if(!state->method) syntaxerror("super() not allowed outside of a function"); @@ -7204,11 +7407,11 @@ PASS12 - case 246: + case 251: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3104 "parser.y" +#line 3237 "parser.y" { typedcode_t v = node_read((yyvsp[(2) - (2)].node)); (yyval.value).c = v.c; @@ -7235,11 +7438,11 @@ PASS12 - case 247: + case 252: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3126 "parser.y" +#line 3259 "parser.y" { (yyval.code) = abc_returnvoid(0); } @@ -7248,11 +7451,11 @@ PASS12 - case 248: + case 253: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3129 "parser.y" +#line 3262 "parser.y" { (yyval.code) = (yyvsp[(2) - (2)].value).c; (yyval.code) = abc_returnvalue((yyval.code)); @@ -7262,11 +7465,11 @@ PASS12 - case 249: + case 254: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3136 "parser.y" +#line 3269 "parser.y" { (yyval.value) = node_read((yyvsp[(1) - (1)].node)); } @@ -7275,11 +7478,11 @@ PASS12 - case 250: + case 255: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3139 "parser.y" +#line 3272 "parser.y" { (yyval.value) = node_read((yyvsp[(1) - (1)].node)); } @@ -7288,11 +7491,11 @@ PASS12 - case 251: + case 256: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3142 "parser.y" +#line 3275 "parser.y" { (yyval.node) = mkmultinode(&node_comma, (yyvsp[(1) - (1)].node)); } @@ -7301,11 +7504,11 @@ PASS12 - case 252: + case 257: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3145 "parser.y" +#line 3278 "parser.y" { (yyval.node) = multinode_extend((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } @@ -7314,11 +7517,11 @@ PASS12 - case 253: + case 258: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3148 "parser.y" +#line 3281 "parser.y" { (yyval.code) = node_exec((yyvsp[(1) - (1)].node)); } @@ -7327,11 +7530,11 @@ PASS12 - case 254: + case 259: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3151 "parser.y" +#line 3284 "parser.y" { (yyval.code) = (yyvsp[(1) - (3)].code); (yyval.code) = code_append((yyval.code), node_exec((yyvsp[(3) - (3)].node))); @@ -7341,88 +7544,88 @@ PASS12 - case 255: + case 260: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3156 "parser.y" +#line 3289 "parser.y" {(yyval.value_list).cc=0;(yyval.value_list).number=0;} } break; - case 256: + case 261: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3157 "parser.y" +#line 3290 "parser.y" {(yyval.value_list)=(yyvsp[(1) - (1)].value_list);} } break; - case 257: + case 262: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3159 "parser.y" +#line 3292 "parser.y" {(yyval.code)=abc_pushstring(0,(yyvsp[(1) - (1)].id));} } break; - case 258: + case 263: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3160 "parser.y" +#line 3293 "parser.y" {(yyval.code)=abc_pushstring2(0,&(yyvsp[(1) - (1)].str));} } break; - case 259: + case 264: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3161 "parser.y" +#line 3294 "parser.y" {syntaxerror("dictionary keys must be strings");} } break; - case 260: + case 265: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3162 "parser.y" +#line 3295 "parser.y" {syntaxerror("dictionary keys must be strings");} } break; - case 261: + case 266: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3163 "parser.y" +#line 3296 "parser.y" {syntaxerror("dictionary keys must be strings");} } break; - case 262: + case 267: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3165 "parser.y" +#line 3298 "parser.y" { (yyval.value_list).cc = 0; (yyval.value_list).cc = code_append((yyval.value_list).cc, (yyvsp[(1) - (3)].code)); @@ -7434,11 +7637,11 @@ PASS12 - case 263: + case 268: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3171 "parser.y" +#line 3304 "parser.y" { (yyval.value_list).cc = (yyvsp[(1) - (5)].value_list).cc; (yyval.value_list).number = (yyvsp[(1) - (5)].value_list).number+2; @@ -7450,77 +7653,77 @@ PASS12 - case 264: + case 269: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3180 "parser.y" +#line 3313 "parser.y" {(yyval.node) = mkcodenode((yyvsp[(1) - (1)].value));} } break; - case 265: + case 270: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3181 "parser.y" +#line 3314 "parser.y" {(yyval.node) = mkcodenode((yyvsp[(1) - (1)].value));} } break; - case 266: + case 271: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3182 "parser.y" +#line 3315 "parser.y" {(yyval.node) = mkcodenode((yyvsp[(1) - (1)].value));} } break; - case 267: + case 272: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3183 "parser.y" +#line 3316 "parser.y" {(yyval.node) = mkcodenode((yyvsp[(1) - (1)].value));} } break; - case 268: + case 273: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3184 "parser.y" +#line 3317 "parser.y" {(yyval.node) = mkcodenode((yyvsp[(1) - (1)].value));} } break; - case 269: + case 274: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3185 "parser.y" +#line 3318 "parser.y" {(yyval.node) = (yyvsp[(1) - (1)].node);} } break; - case 270: + case 275: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3187 "parser.y" +#line 3320 "parser.y" { (yyval.node) = mkconstnode((yyvsp[(1) - (1)].constant)); } @@ -7529,31 +7732,24 @@ PASS12 - case 271: + case 276: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3191 "parser.y" +#line 3324 "parser.y" { - typedcode_t v; - v.c = 0; - multiname_t m = {QNAME, &stdns, 0, "XML"}; - v.c = abc_getlex2(v.c, &m); - v.c = abc_pushstring(v.c, (yyvsp[(1) - (1)].id)); - v.c = abc_construct(v.c, 1); - v.t = TYPE_XML; - (yyval.node) = mkcodenode(v); + (yyval.node) = (yyvsp[(1) - (1)].node); } } break; - case 272: + case 277: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3203 "parser.y" +#line 3329 "parser.y" { typedcode_t v; v.c = 0; @@ -7576,11 +7772,11 @@ PASS12 - case 273: + case 278: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3221 "parser.y" +#line 3347 "parser.y" { PASS1 state->method->need_arguments = 1; @@ -7595,11 +7791,11 @@ PASS12 - case 274: + case 279: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3232 "parser.y" +#line 3358 "parser.y" { typedcode_t v; v.c = code_new(); @@ -7613,11 +7809,11 @@ PASS12 - case 275: + case 280: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3242 "parser.y" +#line 3368 "parser.y" { typedcode_t v; v.c = code_new(); @@ -7631,561 +7827,561 @@ PASS12 - case 276: + case 281: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3251 "parser.y" +#line 3377 "parser.y" {(yyval.node) = mknode2(&node_lt,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));} } break; - case 277: + case 282: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3252 "parser.y" +#line 3378 "parser.y" {(yyval.node) = mknode2(&node_gt,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));} } break; - case 278: + case 283: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3253 "parser.y" +#line 3379 "parser.y" {(yyval.node) = mknode2(&node_le,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));} } break; - case 279: + case 284: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3254 "parser.y" +#line 3380 "parser.y" {(yyval.node) = mknode2(&node_ge,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));} } break; - case 280: + case 285: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3255 "parser.y" +#line 3381 "parser.y" {(yyval.node) = mknode2(&node_eqeq,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));} } break; - case 281: + case 286: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3256 "parser.y" +#line 3382 "parser.y" {(yyval.node) = mknode2(&node_eqeqeq,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));} } break; - case 282: + case 287: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3257 "parser.y" +#line 3383 "parser.y" {(yyval.node) = mknode2(&node_noteqeq,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));} } break; - case 283: + case 288: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3258 "parser.y" +#line 3384 "parser.y" {(yyval.node) = mknode2(&node_noteq,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));} } break; - case 284: + case 289: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3259 "parser.y" +#line 3385 "parser.y" {(yyval.node) = mknode2(&node_oror,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));} } break; - case 285: + case 290: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3260 "parser.y" +#line 3386 "parser.y" {(yyval.node) = mknode2(&node_andand,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));} } break; - case 286: + case 291: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3261 "parser.y" +#line 3387 "parser.y" {(yyval.node) = mknode1(&node_not, (yyvsp[(2) - (2)].node));} } break; - case 287: + case 292: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3262 "parser.y" +#line 3388 "parser.y" {(yyval.node) = mknode1(&node_bitnot, (yyvsp[(2) - (2)].node));} } break; - case 288: + case 293: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3263 "parser.y" +#line 3389 "parser.y" {(yyval.node) = mknode2(&node_bitand, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 289: + case 294: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3264 "parser.y" +#line 3390 "parser.y" {(yyval.node) = mknode2(&node_bitxor, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 290: + case 295: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3265 "parser.y" +#line 3391 "parser.y" {(yyval.node) = mknode2(&node_bitor, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 291: + case 296: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3266 "parser.y" +#line 3392 "parser.y" {(yyval.node) = mknode2(&node_shr, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 292: + case 297: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3267 "parser.y" +#line 3393 "parser.y" {(yyval.node) = mknode2(&node_ushr, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 293: + case 298: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3268 "parser.y" +#line 3394 "parser.y" {(yyval.node) = mknode2(&node_shl, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 294: + case 299: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3269 "parser.y" +#line 3395 "parser.y" {(yyval.node) = mknode2(&node_div, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 295: + case 300: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3270 "parser.y" +#line 3396 "parser.y" {(yyval.node) = mknode2(&node_mod, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 296: + case 301: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3271 "parser.y" +#line 3397 "parser.y" {(yyval.node) = mknode2(&node_plus, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 297: + case 302: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3272 "parser.y" +#line 3398 "parser.y" {(yyval.node) = mknode2(&node_minus, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 298: + case 303: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3273 "parser.y" +#line 3399 "parser.y" {(yyval.node) = mknode2(&node_multiply, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 299: + case 304: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3274 "parser.y" +#line 3400 "parser.y" {(yyval.node) = mknode2(&node_in, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 300: + case 305: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3275 "parser.y" +#line 3401 "parser.y" {(yyval.node) = mknode2(&node_as, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 301: + case 306: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3276 "parser.y" +#line 3402 "parser.y" {(yyval.node) = mknode2(&node_instanceof, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 302: + case 307: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3277 "parser.y" +#line 3403 "parser.y" {(yyval.node) = mknode2(&node_is, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 303: + case 308: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3278 "parser.y" - {(yyval.node) = mknode1(&node_typeof, (yyvsp[(3) - (4)].node));} +#line 3404 "parser.y" + {(yyval.node) = mknode1(&node_typeof, (yyvsp[(2) - (2)].node));} } break; - case 304: + case 309: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3279 "parser.y" +#line 3405 "parser.y" {(yyval.node) = mknode1(&node_void, (yyvsp[(2) - (2)].node));} } break; - case 305: + case 310: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3280 "parser.y" +#line 3406 "parser.y" { (yyval.node) = mkconstnode(constant_new_undefined());} } break; - case 306: + case 311: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3281 "parser.y" +#line 3407 "parser.y" { (yyval.node)=(yyvsp[(2) - (3)].node);} } break; - case 307: + case 312: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3282 "parser.y" +#line 3408 "parser.y" {(yyval.node) = mknode1(&node_neg, (yyvsp[(2) - (2)].node));} } break; - case 308: + case 313: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3283 "parser.y" +#line 3409 "parser.y" {(yyval.node) = mknode2(&node_arraylookup, (yyvsp[(1) - (4)].node),(yyvsp[(3) - (4)].node));} } break; - case 309: + case 314: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3284 "parser.y" +#line 3410 "parser.y" {(yyval.node) = mknode2(&node_muleq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 310: + case 315: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3285 "parser.y" +#line 3411 "parser.y" {(yyval.node) = mknode2(&node_modeq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 311: + case 316: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3286 "parser.y" +#line 3412 "parser.y" {(yyval.node) = mknode2(&node_shleq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 312: + case 317: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3287 "parser.y" +#line 3413 "parser.y" {(yyval.node) = mknode2(&node_shreq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 313: + case 318: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3288 "parser.y" +#line 3414 "parser.y" {(yyval.node) = mknode2(&node_ushreq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 314: + case 319: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3289 "parser.y" +#line 3415 "parser.y" { (yyval.node) = mknode2(&node_diveq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 315: + case 320: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3290 "parser.y" +#line 3416 "parser.y" { (yyval.node) = mknode2(&node_bitoreq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 316: + case 321: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3291 "parser.y" +#line 3417 "parser.y" { (yyval.node) = mknode2(&node_bitxoreq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 317: + case 322: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3292 "parser.y" +#line 3418 "parser.y" { (yyval.node) = mknode2(&node_bitandeq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 318: + case 323: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3293 "parser.y" +#line 3419 "parser.y" { (yyval.node) = mknode2(&node_pluseq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 319: + case 324: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3294 "parser.y" +#line 3420 "parser.y" { (yyval.node) = mknode2(&node_minuseq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 320: + case 325: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3295 "parser.y" +#line 3421 "parser.y" { (yyval.node) = mknode2(&node_assign, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 321: + case 326: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3296 "parser.y" +#line 3422 "parser.y" { (yyval.node) = mknode3(&node_tenary, (yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node));} } break; - case 322: + case 327: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3298 "parser.y" +#line 3424 "parser.y" { (yyval.node) = mknode1(&node_rplusplus, (yyvsp[(1) - (2)].node));} } break; - case 323: + case 328: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3299 "parser.y" +#line 3425 "parser.y" { (yyval.node) = mknode1(&node_rminusminus, (yyvsp[(1) - (2)].node));} } break; - case 324: + case 329: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3300 "parser.y" +#line 3426 "parser.y" {(yyval.node) = mknode1(&node_lplusplus, (yyvsp[(2) - (2)].node)); } } break; - case 325: + case 330: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3301 "parser.y" +#line 3427 "parser.y" {(yyval.node) = mknode1(&node_lminusminus, (yyvsp[(2) - (2)].node)); } } break; - case 326: + case 331: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3304 "parser.y" +#line 3430 "parser.y" { if(!state->cls->info) syntaxerror("super keyword not allowed outside a class"); classinfo_t*t = state->cls->info->superclass; @@ -8204,11 +8400,11 @@ PASS12 - case 327: + case 332: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3318 "parser.y" +#line 3444 "parser.y" { typedcode_t v; multiname_t m = {MULTINAMEA, 0, &nopackage_namespace_set, (yyvsp[(2) - (2)].id)}; @@ -8221,22 +8417,22 @@ PASS12 - case 328: + case 333: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3326 "parser.y" +#line 3452 "parser.y" {PASS12 new_state();state->xmlfilter=1;} } break; - case 329: + case 334: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3326 "parser.y" +#line 3452 "parser.y" { PASS1 old_state(); PASS2 @@ -8283,7 +8479,7 @@ PASS12 c = abc_kill(c, result); c = abc_kill(c, index); - c = var_block(c); + c = var_block(c, state->vars); old_state(); typedcode_t r; r.c = c; @@ -8295,44 +8491,55 @@ PASS12 - case 330: + case 335: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3380 "parser.y" +#line 3506 "parser.y" {(yyval.id)=(yyvsp[(1) - (1)].id);} } break; - case 331: + case 336: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3381 "parser.y" +#line 3507 "parser.y" + {(yyval.id)="*";} + } + break; + + + + case 337: + if(as3_pass==2) { + +/* Line 1464 of skeleton.m4 */ +#line 3508 "parser.y" {(yyval.id)=(char*)(yyvsp[(1) - (1)].id);} } break; - case 333: + case 339: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3383 "parser.y" +#line 3510 "parser.y" {(yyval.id)="*";} } break; - case 334: + case 340: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3385 "parser.y" +#line 3518 "parser.y" { typedcode_t v = node_read((yyvsp[(1) - (5)].node)); typedcode_t w = node_read(resolve_identifier((yyvsp[(3) - (5)].id))); @@ -8356,11 +8563,11 @@ PASS12 - case 335: + case 341: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3403 "parser.y" +#line 3536 "parser.y" { typedcode_t v = node_read((yyvsp[(1) - (3)].node)); multiname_t m = {MULTINAME, 0, &nopackage_namespace_set, (yyvsp[(3) - (3)].id)}; @@ -8373,11 +8580,11 @@ PASS12 - case 336: + case 342: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3410 "parser.y" +#line 3543 "parser.y" { typedcode_t v = node_read((yyvsp[(1) - (5)].node)); typedcode_t w = node_read((yyvsp[(4) - (5)].node)); @@ -8393,11 +8600,11 @@ PASS12 - case 337: + case 343: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3421 "parser.y" +#line 3554 "parser.y" { typedcode_t v = node_read((yyvsp[(1) - (4)].node)); multiname_t m = {MULTINAMEA, 0, &nopackage_namespace_set, (yyvsp[(4) - (4)].id)}; @@ -8410,11 +8617,11 @@ PASS12 - case 338: + case 344: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3428 "parser.y" +#line 3561 "parser.y" { typedcode_t v = node_read((yyvsp[(1) - (4)].node)); multiname_t m = {MULTINAMEA, 0, &nopackage_namespace_set, (yyvsp[(4) - (4)].id)}; @@ -8427,11 +8634,11 @@ PASS12 - case 339: + case 345: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3435 "parser.y" +#line 3568 "parser.y" { typedcode_t v = node_read((yyvsp[(1) - (6)].node)); typedcode_t w = node_read((yyvsp[(5) - (6)].node)); @@ -8447,11 +8654,11 @@ PASS12 - case 340: + case 346: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3445 "parser.y" +#line 3578 "parser.y" { typedcode_t v = node_read((yyvsp[(1) - (6)].node)); typedcode_t w = node_read((yyvsp[(5) - (6)].node)); @@ -8467,11 +8674,11 @@ PASS12 - case 341: + case 347: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3456 "parser.y" +#line 3589 "parser.y" { typedcode_t v1 = node_read((yyvsp[(1) - (3)].node)); (yyval.value).c = v1.c; @@ -8498,7 +8705,9 @@ PASS12 (yyval.value).c = abc_getslot((yyval.value).c, f->slot); } else { if(!f) { - as3_softwarning("Access of undefined property '%s' in %s", (yyvsp[(3) - (3)].id), t->name); + if(!TYPE_IS_XMLLIST(t)) { + as3_softwarning("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); @@ -8539,11 +8748,25 @@ PASS12 - case 342: + case 348: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3634 "parser.y" +#line 3776 "parser.y" + { + PASS2 + (yyval.node) = resolve_identifier((yyvsp[(1) - (1)].id)); +} + } + break; + + + + case 349: + if(as3_pass==2) { + +/* Line 1464 of skeleton.m4 */ +#line 3780 "parser.y" { PASS1 /* Queue unresolved identifiers for checking against the parent @@ -8555,9 +8778,7 @@ PASS12 */ if(!find_variable(state, (yyvsp[(1) - (1)].id))) { - if(state->method->inner) { - unknown_variable((yyvsp[(1) - (1)].id)); - } + unknown_variable((yyvsp[(1) - (1)].id)); /* 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, (yyvsp[(1) - (1)].id)); @@ -8573,11 +8794,11 @@ PASS12 - case 343: + case 350: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3670 "parser.y" +#line 3814 "parser.y" { PASS12 NEW(namespace_decl_t,n); @@ -8590,11 +8811,11 @@ PASS12 - case 344: + case 351: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3677 "parser.y" +#line 3821 "parser.y" { PASS12 NEW(namespace_decl_t,n); @@ -8607,11 +8828,11 @@ PASS12 - case 345: + case 352: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3684 "parser.y" +#line 3828 "parser.y" { PASS12 NEW(namespace_decl_t,n); @@ -8624,14 +8845,14 @@ PASS12 - case 346: + case 353: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3691 "parser.y" +#line 3835 "parser.y" { PASS12 - trie_put(active_namespaces, (yyvsp[(2) - (2)].namespace_decl)->name, (void*)(yyvsp[(2) - (2)].namespace_decl)->url); + trie_put(active_namespaces, (unsigned char*)(yyvsp[(2) - (2)].namespace_decl)->name, (void*)(yyvsp[(2) - (2)].namespace_decl)->url); namespace_t access = modifiers2access(&(yyvsp[(1) - (2)].flags)); varinfo_t* var = varinfo_register_global(access.access, state->package, (yyvsp[(2) - (2)].namespace_decl)->name); @@ -8655,11 +8876,25 @@ PASS12 - case 347: + case 354: + if(as3_pass==2) { + +/* Line 1464 of skeleton.m4 */ +#line 3858 "parser.y" + { + as3_warning("default xml namespaces not supported yet"); + (yyval.code) = 0; +} + } + break; + + + + case 355: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3713 "parser.y" +#line 3863 "parser.y" { PASS12 const char*url = (yyvsp[(3) - (3)].classinfo)->name; @@ -8677,7 +8912,7 @@ PASS12 syntaxerror("%s.%s is not a namespace", (yyvsp[(3) - (3)].classinfo)->package, (yyvsp[(3) - (3)].classinfo)->name); url = s->value->ns->name; - trie_put(active_namespaces, (yyvsp[(3) - (3)].classinfo)->name, (void*)url); + trie_put(active_namespaces, (unsigned char*)(yyvsp[(3) - (3)].classinfo)->name, (void*)url); add_active_url(url); (yyval.code)=0; } @@ -8688,7 +8923,7 @@ PASS12 /* Line 1464 of skeleton.m4 */ -#line 8692 "parser.tab.c" +#line 8927 "parser.tab.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);