From f00ad28507322054abc4859cb2049ec6f807c0c8 Mon Sep 17 00:00:00 2001 From: Matthias Kramm Date: Fri, 17 Apr 2009 16:10:11 +0200 Subject: [PATCH] as3: added xml string substitution, variable scoping compatibility, optimizations --- lib/as3/expr.c | 49 +- lib/as3/expr.h | 2 + lib/as3/ok/reconcile.as | 27 +- lib/as3/ok/vars.as | 26 +- lib/as3/ok/while.as | 4 + lib/as3/ok/xml.as | 6 +- lib/as3/parser.tab.c | 3495 ++++++++++++++++++++++++----------------------- lib/as3/parser.y | 301 ++-- lib/as3/pool.c | 2 +- lib/as3/pool.h | 2 +- lib/q.c | 1 + 11 files changed, 2072 insertions(+), 1843 deletions(-) diff --git a/lib/as3/expr.c b/lib/as3/expr.c index 30cb855..33afc0b 100644 --- a/lib/as3/expr.c +++ b/lib/as3/expr.c @@ -278,6 +278,32 @@ static code_t* toreadwrite(code_t*in, code_t*middlepart, char justassign, char r return c; } +typedcode_t push_constant(constant_t*v) +{ + typedcode_t t; + switch(v->type) { + case CONSTANT_INT: t.c = abc_pushint(0, v->i);t.t = TYPE_INT;break; + case CONSTANT_UINT: t.c = abc_pushuint(0, v->u);t.t = TYPE_UINT;break; + case CONSTANT_FLOAT: t.c = abc_pushdouble(0, v->f);t.t = TYPE_FLOAT;break; + case CONSTANT_TRUE: t.c = abc_pushtrue(0);t.t = TYPE_BOOLEAN;break; + case CONSTANT_FALSE: t.c = abc_pushfalse(0);t.t = TYPE_BOOLEAN;break; + case CONSTANT_STRING: t.c = abc_pushstring2(0, v->s);t.t = TYPE_STRING;break; + case CONSTANT_NULL: t.c = abc_pushnull(0);t.t = TYPE_NULL;break; + case CONSTANT_UNDEFINED: t.c = abc_pushundefined(0);t.t = TYPE_ANY;break; + case CONSTANT_NAMESPACE: + case CONSTANT_NAMESPACE_PACKAGE: + case CONSTANT_NAMESPACE_PACKAGEINTERNAL: + case CONSTANT_NAMESPACE_PROTECTED: + case CONSTANT_NAMESPACE_EXPLICIT: + case CONSTANT_NAMESPACE_STATICPROTECTED: + case CONSTANT_NAMESPACE_PRIVATE: + t.c = abc_pushnamespace(0, v->ns);t.t = TYPE_NAMESPACE;break; + default: + syntaxerror("internal error: bad constant"); + } + return t; +} + code_t*converttype(code_t*c, classinfo_t*from, classinfo_t*to); int constant_to_int(constant_t*c) @@ -2719,6 +2745,16 @@ node_t* mkmultinode(nodetype_t*t, node_t*one) return n; } +node_t* mkstringnode(const char*s) +{ + return mkconstnode(constant_new_string(s)); +} + +node_t* mkaddnode(node_t*n1, node_t*n2) +{ + return mknode2(&node_plus, n1, n2); +} + node_t* multinode_extend(node_t*n, node_t*add) { n->child = realloc(n->child, (n->num_children+1)*sizeof(node_t*)); @@ -2785,9 +2821,16 @@ void node_free(node_t*n) typedcode_t node_read(node_t*n) { - typedcode_t t = n->type->read(n); - node_free(n); - return t; + constant_t c = n->type->eval(n); + if(c.type == CONSTANT_UNKNOWN) { + typedcode_t t = n->type->read(n); + node_free(n); + return t; + } else { + typedcode_t t = push_constant(&c); + node_free(n); + return t; + } } code_t* node_exec(node_t*n) { diff --git a/lib/as3/expr.h b/lib/as3/expr.h index f8252a2..d98ad5c 100644 --- a/lib/as3/expr.h +++ b/lib/as3/expr.h @@ -133,6 +133,8 @@ struct _node { node_t* mkdummynode(); node_t* mkconstnode(constant_t*c); node_t* mkcodenode(typedcode_t c); +node_t* mkstringnode(const char*s); +node_t* mkaddnode(node_t*n1, node_t*n2); node_t* mkmultinode(nodetype_t*t, node_t*one); node_t* mknode1(nodetype_t*t, node_t*node); node_t* mknode2(nodetype_t*t, node_t*left, node_t*right); diff --git a/lib/as3/ok/reconcile.as b/lib/as3/ok/reconcile.as index 3c99727..5204962 100644 --- a/lib/as3/ok/reconcile.as +++ b/lib/as3/ok/reconcile.as @@ -4,6 +4,14 @@ public class Main extends flash.display.MovieClip { + public function test0() { + // simple sanity test + while(false) { + var x1:String; + } + trace("ok 1/10"); + } + // test whether local variables with default value "null" // will be coerced to their object public function test1() { @@ -13,7 +21,7 @@ if(dataBuffer) break; } - trace("ok 1/9"); + trace("ok 2/10"); } public function test2() { @@ -21,7 +29,7 @@ while(output.length<1) { output += "abc".charAt(0); } - trace("ok 2/9"); + trace("ok 3/10"); } public function test3() { @@ -32,7 +40,7 @@ } break; } - trace("ok 3/9"); + trace("ok 4/10"); } public var b:Boolean = false; @@ -44,7 +52,7 @@ x = x+y; y = y+x; } - trace("ok 4/9"); + trace("ok 5/10"); } public function test5() { var x:int; @@ -54,19 +62,19 @@ x = x*y; z = x*z; } - trace("ok 5/9"); + trace("ok 6/10"); } public function test6() { var i:int = b?3.0:3; var j:uint = b?3:"abc"; - trace("ok 6/9"); + trace("ok 7/10"); } public function test7() { var j:Number = 0; if(b) { j += 8; } - trace("ok 7/9"); + trace("ok 8/10"); } public function s():String { return "x"; @@ -89,7 +97,7 @@ if(!b) { i = s(); } - trace("ok 8/9"); + trace("ok 9/10"); } public function test_add() { @@ -189,10 +197,11 @@ z11a = array1+array2; z11b = array1+array2; } - trace("ok 9/9"); + trace("ok 10/10"); } public function Main() { + test0(); test1(); test2(); test3(); diff --git a/lib/as3/ok/vars.as b/lib/as3/ok/vars.as index 449ab27..f6bc45b 100644 --- a/lib/as3/ok/vars.as +++ b/lib/as3/ok/vars.as @@ -1,8 +1,8 @@ package { import flash.display.MovieClip; public class Main extends flash.display.MovieClip { - function Main() { - + + function test_overload() { var x = 3; if(true) { var x = 4; @@ -11,10 +11,28 @@ package { if( x == 4 //flex logic || x == 3 //as3compile logic ) - trace("ok 1/2"); + trace("ok 1/3"); if(y==5) - trace("ok 2/2"); + trace("ok 2/3"); + } + + function test_global() { + var l = 0; + do { + var g:int = l++; + } while(g<10); + if(l==11) { + trace("ok 3/3"); + } else { + trace("error 3/3"); + } + } + + function Main() { + + test_overload(); + test_global(); trace("[exit]"); } diff --git a/lib/as3/ok/while.as b/lib/as3/ok/while.as index bf120cf..152ea1f 100644 --- a/lib/as3/ok/while.as +++ b/lib/as3/ok/while.as @@ -16,6 +16,9 @@ package test.package { if(i!=21) trace("error"); else trace("ok 2/3"); + + /* notice: this type of overloading behaves differently if + this function is switched into compatibility mode */ var x1=0; var a=1; var sum=0; @@ -41,6 +44,7 @@ package test.package { sum+=a; if(sum!=4321) trace("error"); else trace("ok 3/3"); + trace("[exit]"); } } diff --git a/lib/as3/ok/xml.as b/lib/as3/ok/xml.as index a9d79f3..a7e6428 100644 --- a/lib/as3/ok/xml.as +++ b/lib/as3/ok/xml.as @@ -2,7 +2,7 @@ package { import flash.display.MovieClip public class Main extends flash.display.MovieClip { var count:int = 1; - var num:int = 29; + var num:int = 31; function assert(b:Boolean) { if(b) { trace("ok "+count+"/"+num); @@ -157,8 +157,8 @@ package { /* ----- substitution ----- */ trace("[substitution]"); - - var x2:XML = <{"tree"} {"na"+"me"}="test" {"t=x"}> + x1.@t = "x"; + var x2:XML = <{"tree"} {"na"+"me"}="test" {"t=\"x\""}> <{{three: "branch"}["three"]} bname={"t1"}>{"Branch" + " " + 1} Branch 2 diff --git a/lib/as3/parser.tab.c b/lib/as3/parser.tab.c index 3e68d39..59fd16d 100644 --- a/lib/as3/parser.tab.c +++ b/lib/as3/parser.tab.c @@ -369,6 +369,7 @@ struct _methodstate { char inner; char uses_parent_function; + char no_variable_scoping; int uses_slots; dict_t*slots; int activation_var; @@ -644,21 +645,26 @@ 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) { @@ -722,10 +728,24 @@ static variable_t* new_variable2(const char*name, classinfo_t*type, char init, c 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(!state->method->no_variable_scoping) + { + if(dict_contains(state->vars, name)) + syntaxerror("variable %s already defined", name); + dict_put(state->vars, name, v); + } + if(state->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); } @@ -749,18 +769,18 @@ int gettempvar() 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; - DICT_ITERATE_DATA(state->vars, variable_t*, v) { + 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); - num++; } } @@ -874,7 +894,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)) { @@ -968,13 +988,6 @@ static void function_initvars(methodstate_t*m, char has_params, params_t*params, index = new_variable((flags&FLAG_STATIC)?"class":"this", state->cls?state->cls->info:0, 0, 0); else index = new_variable("globalscope", 0, 0, 0); - if(index) { - printf("pass: %d\n", as3_pass); - DICT_ITERATE_ITEMS(state->vars, char*, name, variable_t*, v) { - printf("%d) %s\n", v->index, name); - } - printf("count: %d\n", state->method->variable_count); - } parserassert(!index); } @@ -1429,6 +1442,16 @@ static abc_method_t* endfunction(modifiers_t*mod, enum yytokentype getset, char* methodstate_list_t*ml = state->method->innerfunctions; dict_t*xvars = dict_new(); + + if(state->method->unresolved_variables) { + DICT_ITERATE_KEY(state->method->unresolved_variables, char*, vname) { + if(dict_contains(state->allvars, vname)) { + state->method->no_variable_scoping = 1; + as3_warning("function %s uses forward or outer block variable references (%s): switching into compatiblity mode", name, vname); + break; + } + } + } while(ml) { methodstate_t*m = ml->methodstate; @@ -1445,7 +1468,8 @@ static abc_method_t* endfunction(modifiers_t*mod, enum yytokentype getset, char* dict_put(xvars, id, 0); } } - dict_destroy(m->unresolved_variables);m->unresolved_variables = 0; + dict_destroy(m->unresolved_variables); + m->unresolved_variables = 0; } ml = ml->next; } @@ -1456,7 +1480,7 @@ static abc_method_t* endfunction(modifiers_t*mod, enum yytokentype getset, char* DICT_ITERATE_ITEMS(state->vars, char*, name, variable_t*, v) { if(!name) syntaxerror("internal error"); if(v->index && dict_contains(xvars, name)) { - v->init = 0; + v->init = v->kill = 0; v->index = i; if(v->is_inner_method) { v->is_inner_method->is_a_slot = i; @@ -1931,20 +1955,28 @@ code_t* insert_finally(code_t*c, code_t*finally, int tempvar) /* Line 273 of skeleton.m4 */ -#line 1935 "parser.tab.c" +#line 1959 "parser.tab.c" /* Unqualified %code blocks. */ /* Line 274 of skeleton.m4 */ -#line 2017 "parser.y" +#line 2050 "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 2468 "parser.y" +#line 2500 "parser.y" static void state_has_imports() { @@ -1967,7 +1999,7 @@ code_t* insert_finally(code_t*c, code_t*finally, int tempvar) /* Line 274 of skeleton.m4 */ -#line 2607 "parser.y" +#line 2639 "parser.y" static int slotstate_varconst = 0; static modifiers_t*slotstate_flags = 0; @@ -2029,13 +2061,13 @@ code_t* insert_finally(code_t*c, code_t*finally, int tempvar) /* Line 274 of skeleton.m4 */ -#line 2787 "parser.y" +#line 2819 "parser.y" static int xml_level = 0; /* Line 274 of skeleton.m4 */ -#line 3566 "parser.y" +#line 3624 "parser.y" node_t* resolve_identifier(char*name) { @@ -2152,7 +2184,7 @@ code_t* insert_finally(code_t*c, code_t*finally, int tempvar) /* Line 274 of skeleton.m4 */ -#line 3708 "parser.y" +#line 3764 "parser.y" void add_active_url(const char*url) { @@ -2164,7 +2196,7 @@ code_t* insert_finally(code_t*c, code_t*finally, int tempvar) /* Line 274 of skeleton.m4 */ -#line 2168 "parser.tab.c" +#line 2200 "parser.tab.c" #ifdef short # undef short @@ -2377,18 +2409,18 @@ union yyalloc #endif /* YYFINAL -- State number of the termination state. */ -#define YYFINAL 163 +#define YYFINAL 164 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 3351 +#define YYLAST 3411 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 136 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 135 /* YYNRULES -- Number of rules. */ -#define YYNRULES 353 +#define YYNRULES 354 /* YYNRULES -- Number of states. */ -#define YYNSTATES 598 +#define YYNSTATES 601 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -2446,40 +2478,40 @@ 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, 91, 95, 98, 100, 102, 104, 106, - 108, 110, 112, 117, 120, 122, 124, 128, 131, 132, - 135, 138, 140, 144, 148, 149, 152, 153, 161, 162, - 164, 166, 170, 172, 175, 179, 188, 195, 196, 203, - 204, 212, 214, 217, 219, 222, 223, 225, 227, 230, - 232, 235, 240, 244, 245, 254, 255, 265, 266, 272, - 274, 277, 279, 282, 284, 285, 292, 295, 297, 302, - 305, 307, 309, 311, 313, 315, 319, 321, 322, 329, - 330, 336, 339, 342, 347, 348, 350, 352, 355, 357, - 359, 361, 363, 365, 367, 369, 371, 373, 375, 376, - 379, 380, 383, 384, 387, 388, 398, 399, 408, 409, - 411, 413, 416, 418, 423, 425, 427, 429, 430, 432, - 434, 437, 439, 442, 451, 453, 455, 456, 461, 463, - 467, 471, 472, 475, 477, 479, 481, 483, 485, 487, - 489, 491, 493, 495, 497, 499, 500, 501, 506, 507, - 512, 513, 516, 519, 522, 525, 529, 531, 533, 544, - 551, 563, 564, 566, 568, 571, 573, 577, 581, 585, - 589, 590, 592, 595, 600, 604, 606, 611, 614, 616, - 618, 619, 620, 633, 635, 636, 637, 648, 650, 654, - 656, 658, 660, 664, 666, 668, 670, 673, 674, 675, - 679, 680, 682, 684, 686, 689, 692, 693, 698, 703, - 708, 711, 713, 716, 718, 720, 722, 726, 728, 732, - 733, 735, 737, 739, 741, 743, 745, 749, 755, 757, - 759, 761, 763, 765, 767, 769, 771, 773, 775, 779, + 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, 826, 829, 833, 837, 841, 845, 849, 853, 857, - 861, 865, 869, 873, 877, 881, 885, 889, 892, 895, - 897, 901, 904, 909, 913, 917, 921, 925, 929, 933, - 937, 941, 945, 949, 953, 957, 963, 966, 969, 972, - 975, 979, 982, 983, 990, 992, 994, 996, 998, 1000, - 1006, 1010, 1016, 1021, 1026, 1033, 1040, 1044, 1046, 1049, - 1054, 1059, 1062, 1067 + 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, + 1053, 1058, 1063, 1066, 1071 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ @@ -2487,153 +2519,153 @@ static const yytype_int16 yyrhs[] = { 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, 150, 128, 138, 134, -1, + -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, - 150, 128, 141, 134, -1, 101, -1, 145, -1, -1, - 145, 147, -1, 147, -1, 269, -1, 191, -1, 161, - -1, 162, -1, 163, -1, 165, -1, 173, -1, 156, - -1, 185, -1, 181, -1, 257, -1, 270, -1, 268, - -1, 128, 145, 134, -1, 128, 134, -1, 101, -1, - 146, -1, 152, -1, 167, -1, 168, -1, 253, -1, - 183, -1, 150, 128, 145, 134, -1, 147, 101, -1, - 147, -1, 146, -1, 3, 91, 3, -1, 104, 261, - -1, -1, 46, 153, -1, 32, 153, -1, 154, -1, - 153, 102, 154, -1, 3, 244, 151, -1, -1, 66, - 148, -1, -1, 65, 124, 157, 255, 135, 148, 155, - -1, -1, 152, -1, 257, -1, 46, 3, 244, -1, - 3, -1, 11, 124, -1, 11, 50, 124, -1, 160, - 158, 101, 255, 101, 257, 135, 148, -1, 160, 159, - 69, 255, 135, 148, -1, -1, 12, 124, 164, 255, - 135, 148, -1, -1, 13, 166, 148, 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, 150, 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, 151, - -1, -1, 104, 261, -1, 8, -1, 9, -1, 10, - -1, 5, -1, 56, -1, 55, -1, 45, -1, 28, - -1, 29, -1, 226, -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, 226, 223, -1, 224, 226, 223, -1, 3, - -1, 221, -1, 216, 225, 227, 217, 223, 111, 116, - 225, 218, 112, -1, 216, 225, 227, 116, 218, 112, - -1, 216, 225, 227, 217, 223, 224, 111, 116, 225, - 218, 112, -1, -1, 228, -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, 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 + 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, 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, 1917, 1917, 1919, 1919, 1920, 1921, 1923, 1924, 1925, - 1926, 1927, 1928, 1929, 1930, 1932, 1932, 1933, 1934, 1936, - 1937, 1938, 1939, 1940, 1941, 1942, 1944, 1945, 1947, 1950, - 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, - 1963, 1964, 1965, 1966, 1967, 1970, 1971, 1972, 1973, 1974, - 1975, 1976, 1977, 1989, 1990, 1994, 2005, 2024, 2025, 2027, - 2028, 2030, 2031, 2033, 2093, 2094, 2097, 2097, 2116, 2117, - 2118, 2123, 2127, 2132, 2133, 2135, 2155, 2203, 2203, 2222, - 2222, 2237, 2240, 2243, 2246, 2250, 2251, 2252, 2253, 2254, - 2255, 2257, 2268, 2271, 2271, 2302, 2302, 2327, 2327, 2343, - 2344, 2345, 2346, 2354, 2363, 2363, 2412, 2416, 2427, 2437, - 2454, 2455, 2456, 2457, 2458, 2460, 2461, 2463, 2463, 2465, - 2465, 2489, 2497, 2508, 2524, 2525, 2526, 2527, 2534, 2535, - 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2547, 2548, - 2550, 2551, 2553, 2554, 2558, 2556, 2564, 2562, 2571, 2572, - 2573, 2574, 2575, 2576, 2577, 2578, 2580, 2586, 2587, 2588, - 2589, 2590, 2591, 2594, 2667, 2667, 2669, 2669, 2671, 2672, - 2674, 2758, 2759, 2768, 2769, 2772, 2773, 2774, 2775, 2776, - 2777, 2778, 2791, 2793, 2794, 2795, 2797, 2797, 2801, 2801, - 2805, 2806, 2809, 2810, 2812, 2813, 2815, 2816, 2818, 2822, - 2825, 2830, 2831, 2832, 2833, 2835, 2838, 2842, 2845, 2848, - 2858, 2862, 2868, 2874, 2882, 2887, 2893, 2901, 2909, 2910, - 2911, 2914, 2913, 2930, 2931, 2933, 2932, 2956, 2975, 2989, - 2990, 2992, 2993, 2995, 2996, 2997, 3006, 3007, 3011, 3012, - 3014, 3015, 3016, 3018, 3022, 3023, 3028, 3029, 3073, 3123, - 3144, 3166, 3169, 3176, 3179, 3182, 3185, 3188, 3191, 3196, - 3197, 3199, 3200, 3201, 3202, 3203, 3205, 3211, 3220, 3221, - 3222, 3223, 3224, 3225, 3227, 3231, 3243, 3261, 3272, 3282, - 3291, 3292, 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300, - 3301, 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, - 3311, 3312, 3313, 3314, 3315, 3316, 3317, 3318, 3319, 3320, - 3321, 3322, 3323, 3324, 3325, 3326, 3327, 3328, 3329, 3330, - 3331, 3332, 3333, 3334, 3335, 3336, 3338, 3339, 3340, 3341, - 3343, 3358, 3366, 3366, 3420, 3421, 3422, 3423, 3424, 3432, - 3450, 3457, 3468, 3475, 3482, 3492, 3503, 3681, 3717, 3724, - 3731, 3738, 3760, 3766 + 0, 1941, 1941, 1943, 1943, 1944, 1945, 1947, 1948, 1949, + 1950, 1951, 1952, 1953, 1954, 1956, 1956, 1957, 1958, 1960, + 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1969, 1970, 1972, + 1975, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, + 1987, 1988, 1989, 1990, 1991, 1992, 1995, 1996, 1997, 1998, + 1999, 2000, 2001, 2002, 2014, 2015, 2019, 2030, 2038, 2065, + 2066, 2068, 2069, 2071, 2072, 2074, 2135, 2135, 2139, 2140, + 2143, 2159, 2160, 2161, 2166, 2170, 2175, 2176, 2178, 2198, + 2241, 2257, 2269, 2272, 2275, 2278, 2282, 2283, 2284, 2285, + 2286, 2287, 2289, 2300, 2303, 2303, 2334, 2334, 2359, 2359, + 2375, 2376, 2377, 2378, 2386, 2395, 2395, 2444, 2448, 2459, + 2469, 2486, 2487, 2488, 2489, 2490, 2492, 2493, 2495, 2495, + 2497, 2497, 2521, 2529, 2540, 2556, 2557, 2558, 2559, 2566, + 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2579, + 2580, 2582, 2583, 2585, 2586, 2590, 2588, 2596, 2594, 2603, + 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2612, 2618, 2619, + 2620, 2621, 2622, 2623, 2626, 2699, 2699, 2701, 2701, 2703, + 2704, 2706, 2790, 2791, 2800, 2801, 2804, 2805, 2806, 2807, + 2808, 2809, 2810, 2823, 2834, 2835, 2836, 2838, 2838, 2841, + 2841, 2844, 2845, 2848, 2853, 2856, 2859, 2862, 2865, 2869, + 2872, 2876, 2880, 2885, 2891, 2894, 2897, 2900, 2905, 2908, + 2911, 2921, 2925, 2931, 2937, 2945, 2950, 2956, 2964, 2972, + 2973, 2974, 2977, 2976, 2993, 2994, 2996, 2995, 3019, 3038, + 3052, 3053, 3055, 3056, 3058, 3059, 3060, 3069, 3070, 3074, + 3075, 3077, 3078, 3079, 3081, 3085, 3086, 3091, 3092, 3136, + 3186, 3207, 3229, 3232, 3239, 3242, 3245, 3248, 3251, 3254, + 3259, 3260, 3262, 3263, 3264, 3265, 3266, 3268, 3274, 3283, + 3284, 3285, 3286, 3287, 3288, 3290, 3294, 3299, 3317, 3328, + 3338, 3347, 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355, + 3356, 3357, 3358, 3359, 3360, 3361, 3362, 3363, 3364, 3365, + 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3375, + 3376, 3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384, 3385, + 3386, 3387, 3388, 3389, 3390, 3391, 3392, 3394, 3395, 3396, + 3397, 3399, 3414, 3422, 3422, 3476, 3477, 3478, 3479, 3480, + 3488, 3506, 3513, 3524, 3531, 3538, 3548, 3559, 3739, 3773, + 3780, 3787, 3794, 3816, 3822 }; #endif @@ -2669,30 +2701,30 @@ 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", "DEFAULT_NAMESPACE", "USE_NAMESPACE", 0 }; @@ -2725,40 +2757,40 @@ static const yytype_uint16 yyr1[] = { 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, 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, 151, 152, - 152, 153, 153, 154, 155, 155, 157, 156, 158, 158, - 158, 159, 159, 160, 160, 161, 162, 164, 163, 166, - 165, 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, - 226, 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, + 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, 262, 261, 263, 263, 263, 264, 264, 261, - 261, 261, 261, 261, 261, 261, 265, 266, 267, 267, - 267, 268, 269, 270 + 261, 261, 261, 262, 261, 263, 263, 263, 264, 264, + 261, 261, 261, 261, 261, 261, 261, 265, 266, 267, + 267, 267, 268, 269, 270 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -2766,40 +2798,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, 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, 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, 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, + 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, - 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, 2, 4, - 4, 2, 4, 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, 2, + 4, 4, 2, 4, 3 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -2807,754 +2839,768 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint16 yydefact[] = { - 124, 347, 137, 176, 276, 173, 174, 175, 0, 0, - 79, 0, 0, 130, 277, 128, 129, 0, 136, 0, - 135, 224, 180, 181, 309, 131, 0, 0, 0, 179, - 132, 134, 133, 0, 0, 178, 177, 0, 0, 0, - 259, 0, 0, 14, 183, 0, 0, 0, 0, 240, - 124, 0, 0, 2, 124, 5, 55, 12, 0, 37, - 68, 32, 33, 34, 35, 36, 39, 124, 38, 7, - 31, 0, 125, 126, 9, 8, 11, 274, 275, 0, - 182, 10, 268, 270, 272, 271, 40, 257, 269, 273, - 42, 30, 41, 0, 0, 73, 77, 124, 93, 110, - 114, 112, 111, 113, 119, 116, 0, 0, 347, 246, - 223, 0, 308, 0, 121, 0, 122, 307, 104, 240, - 0, 0, 250, 66, 261, 262, 263, 264, 265, 0, - 0, 260, 329, 328, 311, 291, 290, 0, 255, 0, - 241, 242, 243, 253, 83, 0, 107, 251, 0, 81, - 45, 44, 124, 46, 29, 0, 47, 48, 49, 51, - 0, 50, 331, 1, 6, 124, 347, 0, 69, 0, - 0, 70, 54, 109, 0, 220, 0, 165, 0, 164, - 166, 351, 127, 196, 0, 197, 201, 0, 0, 0, + 125, 348, 138, 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, 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, 348, 0, 72, + 0, 0, 73, 55, 110, 0, 221, 0, 166, 0, + 165, 167, 352, 128, 197, 0, 198, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 327, 326, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, - 0, 0, 56, 74, 0, 0, 0, 124, 117, 0, - 227, 0, 230, 229, 353, 238, 210, 0, 254, 0, - 27, 0, 330, 0, 0, 279, 0, 0, 0, 310, - 278, 244, 245, 84, 237, 60, 61, 106, 252, 59, - 82, 43, 28, 124, 0, 237, 0, 0, 53, 348, - 219, 218, 0, 138, 140, 0, 188, 0, 205, 0, - 202, 203, 258, 305, 306, 303, 304, 284, 285, 287, - 286, 282, 283, 319, 318, 314, 313, 321, 322, 323, - 320, 316, 315, 317, 288, 289, 338, 0, 337, 340, - 297, 296, 295, 324, 0, 294, 293, 292, 280, 281, - 301, 300, 298, 302, 299, 0, 0, 110, 114, 338, - 332, 0, 0, 0, 346, 0, 0, 0, 25, 0, - 124, 17, 23, 0, 20, 19, 22, 21, 124, 115, - 0, 240, 247, 171, 0, 0, 211, 215, 108, 123, - 228, 0, 26, 249, 352, 0, 266, 0, 256, 0, - 58, 0, 124, 13, 58, 0, 0, 0, 0, 0, - 142, 0, 0, 237, 167, 168, 0, 0, 0, 184, - 185, 190, 204, 0, 343, 0, 248, 312, 0, 0, - 0, 342, 0, 124, 0, 0, 120, 18, 124, 0, - 0, 0, 0, 217, 212, 237, 0, 0, 124, 0, - 235, 234, 233, 236, 0, 63, 62, 52, 0, 124, - 349, 350, 210, 139, 0, 0, 231, 141, 146, 58, - 0, 189, 209, 208, 206, 207, 0, 0, 0, 325, - 0, 341, 0, 339, 78, 0, 85, 0, 118, 239, - 172, 171, 0, 0, 214, 0, 0, 99, 103, 101, - 105, 64, 267, 57, 0, 76, 0, 143, 144, 0, - 124, 170, 169, 199, 192, 183, 193, 0, 191, 0, - 190, 345, 333, 344, 80, 0, 0, 0, 86, 89, - 87, 24, 216, 225, 213, 97, 0, 100, 102, 124, - 67, 124, 237, 124, 232, 0, 161, 0, 0, 124, - 159, 0, 186, 183, 190, 194, 0, 27, 94, 90, - 88, 27, 27, 237, 65, 75, 0, 152, 156, 0, - 0, 0, 124, 150, 154, 155, 162, 220, 147, 160, - 185, 0, 0, 195, 27, 92, 0, 0, 0, 221, - 124, 145, 151, 0, 0, 187, 185, 91, 226, 98, - 95, 27, 0, 0, 198, 0, 0, 0, 153, 210, - 200, 27, 222, 0, 0, 237, 96, 163 + 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, 354, 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, 349, 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, 353, 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, 350, 351, 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, 52, 53, 54, 55, 349, 350, 351, 371, 372, - 153, 154, 173, 352, 155, 435, 156, 269, 266, 520, - 59, 254, 169, 170, 60, 61, 62, 63, 234, 64, - 97, 157, 158, 507, 508, 509, 510, 65, 236, 477, - 586, 478, 542, 479, 480, 66, 250, 159, 67, 68, - 240, 241, 69, 358, 237, 70, 160, 72, 73, 390, - 392, 445, 354, 523, 355, 490, 551, 552, 553, 528, - 529, 530, 180, 356, 285, 394, 395, 423, 77, 78, - 79, 401, 456, 498, 561, 185, 396, 457, 499, 186, - 80, 289, 290, 291, 365, 366, 367, 282, 357, 581, - 111, 82, 541, 242, 243, 432, 447, 433, 380, 362, - 139, 140, 141, 245, 83, 84, 85, 161, 142, 247, - 248, 86, 129, 130, 131, 87, 408, 343, 319, 88, - 89, 181, 90, 91, 92 + -1, 52, 53, 54, 55, 352, 353, 354, 374, 375, + 154, 155, 174, 355, 419, 156, 439, 157, 271, 268, + 97, 98, 486, 59, 170, 171, 60, 61, 62, 63, + 64, 158, 159, 511, 512, 513, 514, 65, 239, 481, + 589, 482, 546, 483, 484, 66, 252, 160, 67, 68, + 243, 244, 69, 361, 240, 70, 161, 72, 73, 393, + 395, 449, 357, 527, 358, 495, 554, 555, 556, 532, + 533, 534, 181, 359, 287, 397, 398, 427, 77, 78, + 79, 404, 460, 503, 564, 186, 399, 461, 504, 187, + 291, 80, 292, 293, 368, 369, 370, 284, 360, 584, + 112, 82, 545, 245, 246, 436, 451, 437, 383, 365, + 140, 141, 142, 248, 83, 84, 85, 162, 143, 235, + 236, 86, 130, 131, 132, 87, 411, 345, 321, 88, + 89, 182, 90, 91, 92 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -490 +#define YYPACT_NINF -515 static const yytype_int16 yypact[] = { - 1763, -22, -490, -490, -490, -490, -490, -490, -28, -44, - -490, -38, 94, -490, -490, -490, -490, 73, -490, 2217, - -490, 102, -490, -490, 247, -490, -12, 547, 2217, -490, - -490, -490, -490, 10, -36, -490, -490, 120, 2217, 5, - 147, 2217, 2217, -490, -490, 2217, 2217, 2217, 2217, 2217, - 707, 136, 141, -490, 575, -490, -490, -490, 20, -490, - 2145, -490, -490, -490, -490, -490, -490, 2019, -490, -490, - -490, 338, 286, -490, -490, -490, -490, -490, -490, 17, - -490, -490, -490, -490, -490, -490, 49, 2850, -490, -490, - -490, -490, -490, 151, 34, -490, -490, 2019, -490, -490, - -490, -490, -490, -490, -490, -490, -9, 671, -490, -27, - -490, 35, 406, 2217, 32, 41, -490, 406, -490, 2217, - 160, 68, 406, -490, -490, -490, -490, -490, -490, 39, - 92, 118, 406, 406, 378, 406, 406, -41, 2788, 99, - 125, 2217, -490, 2788, 225, 229, 2217, 2217, 229, 230, - -490, -490, 839, -490, -490, 103, -490, -490, -490, -490, - 218, -490, -490, -490, -490, 1103, 166, 233, -490, 145, - 178, 49, 161, -490, 258, 28, 264, -490, 265, -490, - -490, -490, -490, -490, 2217, -490, 18, 2217, 2217, 2217, - 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, - 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, - 2217, -490, -490, 23, 2217, 2217, 2217, 2217, 2217, 2217, - 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, 2217, - 2217, 327, -490, -490, 2217, 260, 2217, 1235, -490, 671, - 149, 150, -490, -490, -490, 146, 40, 153, 182, 358, - 1891, 154, -490, 2217, 2217, -490, 2217, 147, 2217, -490, - -490, -490, -490, -490, 179, 184, -490, -490, -490, 184, - -490, -490, -490, 2019, 163, 179, 2217, 2217, -490, 190, - -490, -490, 296, 251, 256, 298, 2788, 209, 210, -8, - 18, -490, 2788, 1095, 567, 567, 567, 3222, 3222, 3222, - 3222, 1095, 1095, 2788, 2788, 2788, 2788, 2788, 2788, 2788, - 2788, 2788, 2788, 2788, 2912, 2974, -490, 396, -490, -490, - 362, 362, 362, 2788, 2416, 3036, 3098, 3160, 1095, 1095, - 378, 378, 406, 406, 406, 181, 2478, 226, 232, 234, - -490, 2217, 420, 235, -490, 185, 195, 2276, -490, 193, - 1367, -490, -490, 201, -490, -490, -490, -490, 1235, -490, - 671, 2217, -490, 11, 334, 203, 239, -490, -490, -490, - 213, 211, 1891, -490, 2788, 214, -490, 257, 2788, 279, - 253, 229, 971, -490, -1, 266, 231, 113, 241, 671, - 357, 671, 248, 179, 276, -490, 249, 71, 72, -490, - -490, -490, -490, 2217, -490, 2217, -490, -490, 2217, 2540, - 2217, -490, 431, 2019, 2217, 261, -490, -490, 1235, 259, - 246, 2217, 279, -490, -490, 179, 42, 57, 2019, 2217, - -490, -490, -490, -490, 2217, -490, -490, -490, 2217, 2019, - -490, -490, 40, -490, 671, 275, -490, 283, -490, 253, - 298, -490, -490, -490, -490, -490, 282, 137, 2602, 2788, - 2346, -490, 2664, -490, -490, 271, 8, 277, -490, -490, - 2788, 306, 287, 334, -490, 289, 290, -490, -490, 57, - -490, 360, -490, 2788, -40, -490, 293, 283, -490, 671, - 26, -490, -490, -490, -490, 322, -490, 2217, -490, 328, - -490, -490, -490, -490, -490, 2217, 335, 308, 8, -490, - -490, -490, -490, -490, -490, -490, 437, -490, -490, 2019, - -490, 2019, 179, 1499, -490, 440, -490, 419, 312, 384, - -490, 17, 2788, 336, -490, 19, 2726, 1891, -490, -490, - -490, 1891, 1891, 179, -490, -490, 330, -490, -490, 337, - 228, 329, 1631, -490, -490, -490, -490, 28, -490, -490, - -490, 339, 17, 19, 1891, -490, 340, 347, 333, -490, - 1499, -490, -490, 461, 370, -490, -490, -490, -490, -490, - -490, 1891, 349, 345, -490, 375, 365, 363, -490, 40, - -490, 1891, -490, 366, 369, 179, -490, -490 + 1766, 12, -515, -515, -515, -515, -515, -515, -28, -6, + -515, 16, 94, -515, -515, -515, -515, 108, -515, 2220, + -515, 122, -515, -515, 2277, -515, 17, 363, 2220, -515, + -515, -515, -515, 24, 27, -515, -515, 112, 2220, 29, + 332, 2220, 2220, -515, -515, 2220, 2220, 2220, 2220, 2220, + 710, 158, 165, -515, 578, -515, -515, -515, 44, -515, + 2148, -515, -515, -515, -515, -515, -515, 2022, -515, -515, + -515, 288, 766, -515, -515, -515, -515, -515, -515, 11, + -515, -515, -515, -515, -515, -515, 118, 2972, -515, -515, + -515, -515, -515, 218, 101, -515, 2220, 221, 2022, -515, + -515, -515, -515, -515, -515, -515, -515, -83, 373, -515, + -50, -515, 111, -51, 2220, 110, 124, -515, -51, -515, + 2220, 253, 155, -51, 2220, -515, -515, -515, -515, -515, + 127, 159, 162, -51, -51, 702, -51, -51, -52, 2910, + 141, 168, 2220, -515, 2910, 268, 272, 2220, 2220, 272, + 273, -515, -515, 842, -515, -515, 149, -515, -515, -515, + -515, 266, -515, -515, -515, -515, 1106, 214, 282, -515, + 191, 225, 118, 202, -515, 302, 54, 304, -515, 305, + -515, -515, -515, -515, -515, 2220, -515, 20, 2220, 2220, + 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, + 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, + 2220, 2220, -515, -515, 130, 2220, 2220, 2220, 2220, 2220, + 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, + 2220, 2220, 128, -515, -515, 174, 209, 188, -515, 2220, + 1238, -515, 373, 184, 187, -515, -515, -515, 194, 21, + 186, 84, 1894, 193, -515, 2220, 198, -515, 2220, 332, + 2220, -515, -515, -515, -515, -515, 216, 236, -515, -515, + -515, 236, -515, -515, -515, 2022, 226, 216, 2220, 2220, + -515, 239, -515, -515, 345, 311, 314, 366, 2910, 278, + 280, -49, 20, -515, 2910, 408, 570, 570, 570, 3282, + 3282, 3282, 3282, 408, 408, 2910, 2910, 2910, 2910, 2910, + 2910, 2910, 2910, 2910, 2910, 2910, 365, 3034, -515, 146, + -515, -515, 424, 424, 424, 2910, 2476, 3096, 3158, 3220, + 408, 408, 702, 702, -51, -51, -51, 250, 2538, 295, + 306, 307, -515, 2220, 233, 312, -515, -515, 2220, 2336, + -515, 279, 259, 1370, -515, -515, 267, -515, -515, -515, + -515, 1238, -515, 373, 2220, -515, 126, 401, 274, 308, + -515, -515, -515, 283, 281, 1894, -515, 2910, -515, -515, + 310, 2910, 270, 313, 272, 974, -515, -30, 317, 284, + 104, 290, 373, 393, 373, 292, 216, 323, -515, 294, + 14, 15, -515, -515, -515, -515, 2220, -515, 2220, -515, + -515, 2220, 2600, 2220, -515, 354, -515, 296, 301, 2220, + -515, -515, 1238, 298, 309, 2220, 270, -515, -515, 216, + 22, 39, 364, 2220, -515, -515, -515, -515, 2220, -515, + -515, -515, 2220, -515, -515, -515, 21, -515, 373, 315, + -515, 334, -515, 313, 366, -515, -515, -515, -515, -515, + 333, 43, 2662, 2910, 2406, -515, 2724, -515, -515, 28, + 2786, 316, -515, -515, 2910, 342, 319, 401, -515, 321, + 327, -515, -515, 39, -515, -515, -515, -515, 2910, -41, + -515, 318, 334, -515, 373, 277, -515, -515, -515, -515, + 338, -515, 2220, -515, 353, -515, -515, -515, -515, 2220, + 350, 331, 28, -515, -515, -515, -515, -515, -515, -515, + -515, 463, -515, -515, -515, -515, 216, 1502, -515, 464, + -515, 442, 335, 326, -515, 11, 2910, 359, -515, 46, + 2848, 1894, -515, -515, -515, 1894, 1894, 216, -515, 358, + -515, -515, 360, 264, 336, 1634, -515, -515, -515, -515, + 54, -515, -515, -515, 344, 11, 46, 1894, -515, 362, + 369, 352, -515, 1502, -515, -515, 489, 381, -515, -515, + -515, -515, -515, -515, 1894, 374, 375, -515, 386, 379, + 376, -515, 21, -515, 1894, -515, 377, 380, 216, -515, + -515 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -490, -490, 343, -490, 451, -327, -490, 159, -75, -31, - 1, -60, -92, 53, 2, 61, 452, 372, 130, -490, - -490, -490, -490, -490, -490, -490, -490, -490, -490, -490, - -490, -490, -490, -490, -490, 6, 7, -490, -490, 52, - -490, 55, -490, -490, -490, -490, -490, -490, -490, -490, - 38, 54, -490, -490, -490, -490, 0, -490, 447, -490, - -490, -490, 59, -490, 60, -490, -50, -490, -24, -490, - -490, 9, -490, 3, -490, -490, 83, 50, -490, -490, - -490, -490, -489, -490, -490, -168, -490, -452, -490, -453, - -416, -490, -490, 250, -425, -490, -341, -21, 4, -490, - -490, -490, -490, -490, 512, -98, 97, 121, -263, -490, - -103, -490, -490, -490, -490, -490, -490, -490, -131, -133, - 494, -52, -490, 288, -490, -13, -490, -490, -193, -490, - -490, -490, -490, -490, -490 + -515, -515, 343, -515, 457, -340, -515, 160, -514, -37, + 1, -58, 417, 60, -515, 2, 82, 461, 390, 161, + -241, -515, -515, -515, -515, -515, -515, -515, -515, -515, + -515, -515, -515, -515, -515, 31, 32, -515, -515, 63, + -515, 64, -515, -515, -515, -515, -515, -515, -515, -515, + 37, 59, -515, -515, -515, -515, 0, -515, 477, -515, + -515, -515, 65, -515, 68, -515, -22, -515, -3, -515, + -515, 30, -515, 3, -515, -515, 100, 85, -515, -515, + -515, -515, -464, -515, -515, -172, -515, -453, -515, -488, + -515, -423, -515, 269, -428, -515, -339, 5, 4, -515, + -515, -515, -515, -515, 535, -103, 116, 140, -269, -515, + -109, -515, -515, -515, -515, -515, -515, -515, -132, -55, + 519, -54, -515, 320, -515, -12, -515, -515, -215, -515, + -515, -515, -515, -515, -515 }; /* 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 -337 +#define YYTABLE_NINF -338 static const yytype_int16 yytable[] = { - 71, 56, 58, 76, 81, 235, 109, 172, 171, 244, - 262, 112, 384, 267, 268, 117, 251, 486, 288, 152, - 183, 287, 94, 424, 494, 122, 99, 100, 132, 133, - 2, 419, 134, 135, 136, 138, 143, 172, 344, 101, - 102, 500, 505, 363, 13, 363, 15, 16, 535, 18, - 105, 20, 103, 57, 71, 56, 58, 76, 81, 74, - 75, 258, 187, 280, 25, 105, 106, 213, -71, 93, - 506, 574, 525, 30, 31, 32, 452, 454, 560, 281, - 96, 115, 563, 534, 475, 474, 98, 585, 119, 107, - 476, 467, 272, 120, 259, 521, 95, 99, 100, 230, - 138, 345, 231, 434, 399, 110, 143, 57, 400, 576, - 101, 102, 113, 74, 75, 421, 440, 422, 441, 238, - 239, 375, 288, 103, 404, 376, 335, 526, 143, 123, - 449, 496, 514, 138, 138, 364, 121, 473, 118, 162, - 316, 163, 494, 385, 386, 184, 184, 497, 165, 411, - 124, 187, 125, 317, 232, 126, 127, 128, 233, 246, - -157, -110, 472, 252, 593, 71, 56, 58, 76, 81, - 249, 286, 253, 255, 292, 293, 294, 295, 296, 297, + 71, 56, 58, 76, 81, 247, 172, 110, 387, 173, + 264, 253, 113, 153, 184, 290, 118, 346, 491, 456, + 458, 423, 94, 289, 366, 366, 123, 568, 428, 133, + 134, 569, 570, 135, 136, 137, 139, 144, 505, -74, + 173, 212, 213, 214, 214, 241, 242, 563, 499, 106, + 260, 499, 539, 580, 71, 56, 58, 76, 81, 250, + 57, 188, 509, 402, 106, 74, 479, 403, 75, 256, + 590, 107, 480, 230, 438, 231, 231, 579, 232, 232, + 597, 538, 471, 261, 139, 566, 116, 100, 101, 282, + 510, 478, 269, 270, 525, 274, 95, 100, 101, 577, + 102, 103, 139, 93, 407, 283, 416, 444, 144, 445, + 102, 103, 139, 104, 57, 588, 367, 477, 96, 74, + 290, 337, 75, 104, 108, 111, 379, 453, 122, 414, + 144, 339, 340, 100, 101, 139, 139, 432, 519, 185, + 99, 114, 185, 185, 102, 103, 102, 103, 185, 100, + 101, 120, 119, 124, 500, 501, 121, 104, 501, 104, + 476, 163, 102, 103, 596, 164, 71, 56, 58, 76, + 81, 502, 166, 288, 502, 104, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, - 308, 309, 310, 311, 312, 313, 314, 315, 256, 184, - 184, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 333, 334, 143, 336, 57, 463, - 257, 138, 104, 347, 74, 75, 260, 261, 263, 453, - 455, 273, 264, 270, 174, -72, 275, 71, 56, 353, - 374, 138, 382, 143, 174, 378, 276, 277, 495, 496, - 108, 318, 3, 4, 175, 5, 6, 7, 420, 546, - 177, 279, 278, 138, 138, 497, 14, 283, 284, 318, - 361, 19, 346, 21, 179, 22, 23, 359, -116, 360, - 568, 465, 99, 100, 258, 379, 381, 370, 368, 373, - 2, 443, 29, 446, 387, 101, 102, 383, 482, 388, - 34, 393, 35, 36, 13, 389, 15, 16, 103, 18, - 391, 20, 272, 397, 398, 430, 406, -334, 40, 414, - 413, 464, 272, -336, 25, -335, 412, 416, 409, 418, - 337, 338, 597, 30, 31, 32, 481, 363, 425, 41, - 42, 426, -115, 101, 102, 427, 446, 485, 143, 428, - 71, 56, 353, 172, 174, 318, 103, 434, 71, 56, - 353, 99, 100, 429, 175, 442, 439, 438, 172, 176, - 177, 48, 444, 49, 101, 102, 448, 51, 450, 172, - 318, 469, 178, 451, 179, 489, 484, 103, 2, 466, - 458, 524, 459, 468, 493, 460, 431, 462, 370, 99, - 100, 138, 13, 488, 15, 16, 504, 18, 470, 20, - 421, 511, 101, 102, 516, 513, 143, 515, 71, 56, - 353, 483, 25, 99, 100, 103, 519, 544, 522, 545, - 525, 30, 31, 32, 99, 100, 101, 102, 531, 533, - 543, 537, 538, 556, 339, 557, 558, 101, 102, 103, - 318, 340, 562, 341, 211, 212, 213, 342, 569, 172, - 103, 172, 565, 571, 583, 570, 566, 567, 580, 589, - 211, 212, 213, 575, 578, 369, 224, 225, 226, 227, - 228, 579, 584, 588, 532, 526, 229, 590, 230, 577, - 527, 231, 536, 591, 226, 227, 228, 592, 211, 212, - 213, 595, 229, 596, 230, 164, 587, 231, 274, 417, - 491, 436, 168, 316, 539, 540, 594, 265, -158, 182, - 582, 512, 403, 550, 548, 549, 554, 555, 572, 527, - 229, 517, 230, 492, 518, 231, 573, 316, 559, 116, - 402, 487, 137, 471, 0, 377, 410, 0, 316, 0, - 114, 100, 550, 548, 549, 554, 555, 0, 0, 0, - 0, 0, 0, 101, 102, 0, 0, 0, 0, 0, - 550, 548, 549, 554, 555, -4, 103, 0, 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, 188, 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, -337, -337, -337, 37, 38, - 39, 0, 0, 196, 197, 0, 40, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 211, - 212, 213, 0, 214, 215, 216, 0, 41, 42, 0, - 0, 0, 0, 0, 99, 100, 43, 0, 222, 223, - 0, 224, 225, 226, 227, 228, 44, 101, 102, 45, - 0, 229, 0, 230, 46, 47, 231, 0, 0, 48, - 103, 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, 144, 0, 145, - 0, 0, 0, 24, 146, 25, 26, 0, 27, 147, - 28, 0, 29, 148, 30, 31, 32, 0, 0, 33, - 34, 0, 35, 36, 0, 0, 0, 0, 0, 0, - 37, 38, 39, 0, 149, 0, 0, 0, 40, 0, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 467, 372, 490, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 144, 338, + 188, 233, 105, 388, 389, 234, 57, 349, 457, 459, + 425, 74, 426, 237, 75, 249, 100, 101, 385, -111, + 71, 56, 356, 377, 524, 341, 144, 318, 381, 102, + 103, 320, 342, 251, 343, 424, 254, 549, 344, 255, + 319, 257, 104, 318, 259, 258, 139, 139, 262, 320, + 263, 265, 406, 100, 101, 266, 272, 275, 571, 362, + 175, 2, 175, -75, 548, 277, 102, 103, 373, 447, + 176, 450, 278, 417, 279, 13, 178, 15, 16, 104, + 18, 487, 20, 280, 175, 281, 434, 285, 286, 347, + 180, 260, 348, -117, 176, 25, 363, 274, 364, 177, + 178, 371, 382, 529, 30, 31, 32, 274, 376, 600, + 2, 412, 179, 378, 180, 125, 139, 126, 384, 144, + 127, 128, 129, 390, 13, 450, 15, 16, 391, 18, + 318, 20, 144, 71, 56, 356, 320, 100, 101, 413, + 386, 71, 56, 356, 25, 392, 115, 101, 394, 396, + 102, 103, 529, 30, 31, 32, 100, 101, 530, 102, + 103, 320, 400, 104, 401, 409, -335, 435, 489, 102, + 103, 528, 104, 420, 462, 422, 463, -337, -336, 464, + 373, 466, 104, 415, 366, 189, -241, 470, 448, 429, + 430, -158, -116, 474, 446, 431, 433, 438, 442, 443, + 452, 144, 71, 56, 356, 454, 488, 530, 455, 469, + 485, 468, 472, 190, 191, 192, 494, 193, 194, 195, + 196, 197, 198, 493, 473, 498, 425, 518, -338, 520, + 516, 521, 320, 526, 535, 211, 541, 212, 213, 214, + -159, 215, 216, 217, 537, 542, 547, 559, 560, 561, + 574, 318, 220, 221, 222, 565, 223, 224, 578, 225, + 226, 227, 228, 229, -338, -338, 572, 583, 573, 230, + 536, 231, 586, 587, 232, 531, 581, 540, 593, 592, + 212, 213, 214, 582, 215, 216, 217, 594, 591, 276, + 595, 165, 598, 421, 599, 238, 212, 213, 214, -338, + -338, 169, 225, 226, 227, 228, 229, 553, 551, 552, + 557, 558, 230, 531, 231, 496, 267, 232, 225, 226, + 227, 228, 229, 543, 544, 440, 522, 523, 230, 183, + 231, 585, 575, 232, 497, 553, 551, 552, 557, 558, + 517, 405, 117, 562, 492, 576, 475, 138, 0, 0, + 0, 0, 0, 553, 551, 552, 557, 558, -4, 380, + 0, 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, + 189, 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, -338, -338, + -338, 37, 38, 39, 0, 0, 197, 198, 0, 40, 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, 150, 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, 151, 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, 144, - 0, 145, 0, 0, 0, 24, 146, 25, 26, 0, - 27, 147, 28, 0, 29, 148, 30, 31, 32, 0, - 0, 33, 34, 0, 35, 36, 0, 0, 0, 0, - 0, 0, 37, 38, 39, 0, 149, 0, 0, 0, - 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 212, 213, 214, 0, 215, 216, 217, 0, + 41, 42, 0, 0, 0, 0, 0, 0, 0, 43, + 0, 223, 224, 0, 225, 226, 227, 228, 229, 44, + 0, 0, 45, 0, 230, 0, 231, 46, 47, 232, + 0, 0, 48, 0, 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, + 145, 0, 146, 0, 0, 0, 24, 147, 25, 26, + 0, 27, 148, 28, 0, 29, 149, 30, 31, 32, + 0, 0, 33, 34, 0, 35, 36, 0, 0, 0, + 2, 0, 0, 37, 38, 39, 0, 150, 0, 0, + 0, 40, 0, 0, 13, 0, 15, 16, 0, 18, + 0, 20, 0, 0, 212, 213, 214, 0, 0, 0, + 0, 0, 41, 42, 25, 0, 0, 0, 0, 0, + 0, 151, 0, 30, 31, 32, 0, 0, 227, 228, + 229, 44, 0, 0, 45, 0, 230, 0, 231, 46, + 47, 232, 0, 0, 48, 0, 49, 0, 50, 0, + 51, 0, 0, 0, 152, 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, 145, 0, 146, 0, 0, 0, 24, 147, + 25, 26, 0, 27, 148, 28, 0, 29, 149, 30, + 31, 32, 0, 0, 33, 34, 0, 35, 36, 0, + 0, 0, 0, 0, 0, 37, 38, 39, 0, 150, + 0, 0, 0, 40, 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, - 150, 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, 271, 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, 144, 0, 145, 0, 0, 0, 24, 146, 25, - 26, 0, 27, 147, 28, 0, 29, 148, 30, 31, - 32, 0, 0, 33, 34, 0, 35, 36, 0, 0, - 0, 0, 0, 0, 37, 38, 39, 0, 149, 0, - 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 41, 42, 0, 0, 0, 0, + 0, 0, 0, 151, 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, 273, 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, 145, 0, 146, 0, 0, 0, + 24, 147, 25, 26, 0, 27, 148, 28, 0, 29, + 149, 30, 31, 32, 0, 0, 33, 34, 0, 35, + 36, 0, 0, 0, 0, 0, 0, 37, 38, 39, + 0, 150, 0, 0, 0, 40, 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, 150, 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, 437, 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, -337, 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, -337, -337, 0, 40, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 211, 212, 213, - 0, 214, 215, 216, 0, 41, 42, 0, 0, 0, - 0, 0, 0, 0, 43, 0, -337, -337, 0, 224, - 225, 226, 227, 228, 44, 0, 0, 45, 0, 229, - 0, 230, 46, 47, 231, 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, 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, 41, 42, 0, 0, + 0, 0, 0, 0, 0, 151, 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, 441, 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, 41, 42, 0, - 0, 0, 0, 0, 0, 0, 348, 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, -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, 39, 0, 0, 0, 0, 0, 40, 0, + 0, 0, 0, 0, 0, 0, 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, 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, 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, 41, - 42, 0, 0, 0, 0, 0, 0, 0, 348, 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, -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, 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, - 547, 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, -148, 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, 39, 0, 0, 0, - 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, + 41, 42, 0, 0, 0, 0, 0, 0, 0, 350, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, + 0, 0, 45, 0, 0, 0, 0, 46, 47, 0, + 0, 0, 48, 0, 351, 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, 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, 41, 42, 0, 0, 0, 0, 0, - 0, 0, 547, 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, -149, 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, 41, 42, 0, 0, 0, 0, 0, 0, + 0, 350, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 44, 0, 0, 45, 0, 0, 0, 0, 46, + 47, 0, 0, 0, 48, 0, 351, 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, 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, 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, -124, 0, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 0, 22, - 23, 144, 0, 145, 0, 0, 0, 24, 146, 25, - 26, 0, 27, 147, 28, 0, 29, 148, 30, 31, - 32, 0, 0, 33, 34, 0, 35, 36, 0, 0, - 0, 0, 0, 0, 37, 38, 39, 0, 149, 0, - 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 41, 42, 0, 0, 0, 0, + 0, 0, 0, 550, 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, 39, + 0, 0, 0, 0, 0, 40, 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, 150, 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, 0, 0, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 0, 22, 23, 144, - 0, 145, 0, 0, 0, 24, 146, 25, 26, 0, - 27, 147, 28, 0, 29, 148, 30, 31, 32, 0, - 0, 33, 34, 0, 35, 36, 0, 0, 0, 0, - 0, 0, 37, 38, 39, 0, 149, 0, 0, 0, - 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 41, 42, 0, 0, + 0, 0, 0, 0, 0, 550, 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, 41, 42, 0, 0, 0, 0, 0, 0, 0, - 150, 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, 166, 51, - 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, 145, 0, 0, - 0, 24, 0, 0, 0, 0, 0, 0, 28, 0, - 29, 167, 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, - 108, 0, 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, 0, 0, 0, - 0, 38, 0, 0, 0, 0, 0, 0, 40, 0, + 0, 0, 0, 0, 0, 0, 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, 145, 0, 146, 0, 0, 0, + 24, 147, 25, 26, 0, 27, 148, 28, 0, 29, + 149, 30, 31, 32, 0, 0, 33, 34, 0, 35, + 36, 0, 0, 0, 0, 0, 0, 37, 38, 39, + 0, 150, 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, 151, 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, 0, 0, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, + 22, 23, 145, 0, 146, 0, 0, 0, 24, 147, + 25, 26, 0, 27, 148, 28, 0, 29, 149, 30, + 31, 32, 0, 0, 33, 34, 0, 35, 36, 0, + 0, 0, 0, 0, 0, 37, 38, 39, 0, 150, + 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, 151, 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, 167, 51, 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, + 146, 0, 0, 0, 24, 0, 0, 0, 0, 0, + 0, 28, 0, 29, 168, 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, 0, 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, 0, 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, 0, 41, - 42, 0, 0, 0, 0, 0, 188, 0, 0, 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, 189, 190, 191, 51, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 0, 211, 212, - 213, 0, 214, 215, 216, 0, 0, 0, 0, 0, - 217, 218, 0, 219, 220, 221, 188, 222, 223, 0, - 224, 225, 226, 227, 228, 0, 0, 0, 0, 0, - 229, 0, 230, 0, 0, 231, 0, 0, 0, 0, - 0, 415, 0, 0, 189, 190, 191, 0, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 0, 211, 212, - 213, 0, 214, 215, 216, 0, 0, 0, 0, 0, - 217, 218, 0, 219, 220, 221, 188, 222, 223, 0, - 224, 225, 226, 227, 228, 0, 0, 0, 0, 0, - 229, 0, 230, 0, 0, 231, 0, 0, 0, 0, - 0, 502, 0, 0, 189, 190, 191, 0, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 0, 211, 212, - 213, 0, 214, 215, 216, 0, 0, 0, 188, 0, - 217, 218, 405, 219, 220, 221, 0, 222, 223, 0, - 224, 225, 226, 227, 228, 0, 0, 0, 0, 0, - 229, 0, 230, 0, 0, 231, 189, 190, 191, 0, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 210, 0, - 211, 212, 213, 0, 214, 215, 216, 0, 0, 0, - 188, 0, 217, 218, 0, 219, 220, 221, 0, 222, - 223, 0, 224, 225, 226, 227, 228, 0, 0, 0, - 0, 0, 229, 0, 230, 407, 0, 231, 189, 190, - 191, 0, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 0, 211, 212, 213, 0, 214, 215, 216, 0, - 0, 0, 188, 0, 217, 218, 0, 219, 220, 221, - 0, 222, 223, 0, 224, 225, 226, 227, 228, 0, - 0, 0, 0, 0, 229, 0, 230, 461, 0, 231, - 189, 190, 191, 0, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 0, 211, 212, 213, 0, 214, 215, - 216, 0, 0, 0, 188, 0, 217, 218, 0, 219, - 220, 221, 0, 222, 223, 0, 224, 225, 226, 227, - 228, 0, 0, 0, 0, 0, 229, 0, 230, 501, - 0, 231, 189, 190, 191, 0, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 0, 211, 212, 213, 0, - 214, 215, 216, 0, 0, 0, 188, 0, 217, 218, - 0, 219, 220, 221, 0, 222, 223, 0, 224, 225, - 226, 227, 228, 0, 0, 0, 0, 0, 229, 0, - 230, 503, 0, 231, 189, 190, 191, 0, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 0, 211, 212, - 213, 0, 214, 215, 216, 0, 0, 0, 188, 0, - 217, 218, 564, 219, 220, 221, 0, 222, 223, 0, - 224, 225, 226, 227, 228, 0, 0, 0, 0, 0, - 229, 0, 230, 0, 0, 231, 189, 190, 191, 0, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 210, 0, - 211, 212, 213, 0, 214, 215, 216, 0, 0, 0, - 188, 0, 217, 218, 0, 219, 220, 221, 0, 222, - 223, 0, 224, 225, 226, 227, 228, 0, 0, 0, - 0, 0, 229, 0, 230, 0, 0, 231, 189, 190, - 191, 0, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 0, 211, 212, 213, 0, 214, 215, 216, 0, - 0, 0, 188, 0, 217, 218, 0, 219, 220, 221, - 0, 0, 223, 0, 224, 225, 226, 227, 228, 0, - 0, 0, 0, 0, 229, 0, 230, 0, 0, 231, - 189, 190, 191, 0, 192, 193, 194, 195, 196, 197, + 42, 0, 0, 0, 0, 0, 189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 210, 0, 211, 212, 213, 0, 214, 215, - 216, 0, 0, 0, 188, 0, 0, 0, 0, 219, - 220, 221, 0, 222, 223, 0, 224, 225, 226, 227, - 228, 0, 0, 0, 0, 0, 229, 0, 230, 0, - 0, 231, 189, 190, 191, 0, 192, 193, 194, 195, - 196, 197, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 211, 212, 213, 0, - 214, 215, 216, 0, 0, 0, 188, 0, 0, 0, - 0, 219, 220, 221, 0, 222, 223, 0, 224, 225, - 226, 227, 228, 0, 0, 0, 0, 0, 229, 0, - 230, 0, 0, 231, 189, 190, 191, 0, 192, 193, - 194, 195, 196, 197, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 211, 212, - 213, 0, 214, 215, 216, 0, 0, 0, 188, 0, - 0, 0, 0, 0, 220, 221, 0, 222, 223, 0, - 224, 225, 226, 227, 228, 0, 0, 0, 0, 0, - 229, 0, 230, 0, 0, 231, 189, 190, 191, 0, - 192, 193, 194, 195, 196, 197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 211, 212, 213, 0, 214, 215, 216, 0, 0, 0, - 188, 0, 0, 0, 0, 0, 0, 221, 0, 222, - 223, 0, 224, 225, 226, 227, 228, 0, 0, 0, - 0, 0, 229, 0, 230, 0, 0, 231, 189, 190, - 191, 0, 192, 193, 194, 195, 196, 197, 0, 0, + 0, 48, 0, 49, 190, 191, 192, 51, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 0, 212, 213, + 214, 0, 215, 216, 217, 0, 0, 0, 0, 0, + 218, 219, 0, 220, 221, 222, 189, 223, 224, 0, + 225, 226, 227, 228, 229, 0, 0, 0, 0, 0, + 230, 0, 231, 0, 0, 232, 0, 0, 0, 0, + 0, 418, 0, 0, 190, 191, 192, 0, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 0, 212, 213, + 214, 0, 215, 216, 217, 0, 0, 0, 0, 0, + 218, 219, 0, 220, 221, 222, 189, 223, 224, 0, + 225, 226, 227, 228, 229, 0, 0, 0, 0, 0, + 230, 0, 231, 0, 0, 232, 0, 0, 0, 0, + 0, 507, 0, 0, 190, 191, 192, 0, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 0, 212, 213, + 214, 0, 215, 216, 217, 0, 0, 0, 189, 0, + 218, 219, 408, 220, 221, 222, 0, 223, 224, 0, + 225, 226, 227, 228, 229, 0, 0, 0, 0, 0, + 230, 0, 231, 0, 0, 232, 190, 191, 192, 0, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 0, + 212, 213, 214, 0, 215, 216, 217, 0, 0, 0, + 189, 0, 218, 219, 0, 220, 221, 222, 0, 223, + 224, 0, 225, 226, 227, 228, 229, 0, 0, 0, + 0, 0, 230, 0, 231, 410, 0, 232, 190, 191, + 192, 0, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 0, 212, 213, 214, 0, 215, 216, 217, 0, + 0, 0, 189, 0, 218, 219, 0, 220, 221, 222, + 0, 223, 224, 0, 225, 226, 227, 228, 229, 0, + 0, 0, 0, 0, 230, 0, 231, 465, 0, 232, + 190, 191, 192, 0, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 0, 212, 213, 214, 0, 215, 216, + 217, 0, 0, 0, 189, 0, 218, 219, 0, 220, + 221, 222, 0, 223, 224, 0, 225, 226, 227, 228, + 229, 0, 0, 0, 0, 0, 230, 0, 231, 506, + 0, 232, 190, 191, 192, 0, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 0, 212, 213, 214, 0, + 215, 216, 217, 0, 0, 0, 189, 0, 218, 219, + 0, 220, 221, 222, 0, 223, 224, 0, 225, 226, + 227, 228, 229, 0, 0, 0, 0, 0, 230, 0, + 231, 508, 0, 232, 190, 191, 192, 0, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 0, 212, 213, + 214, 0, 215, 216, 217, 0, 0, 0, 189, 0, + 218, 219, 0, 220, 221, 222, 0, 223, 224, 0, + 225, 226, 227, 228, 229, 0, 0, 0, 0, 0, + 230, 0, 231, 515, 0, 232, 190, 191, 192, 0, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 0, + 212, 213, 214, 0, 215, 216, 217, 0, 0, 0, + 189, 0, 218, 219, 567, 220, 221, 222, 0, 223, + 224, 0, 225, 226, 227, 228, 229, 0, 0, 0, + 0, 0, 230, 0, 231, 0, 0, 232, 190, 191, + 192, 0, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 0, 212, 213, 214, 0, 215, 216, 217, 0, + 0, 0, 189, 0, 218, 219, 0, 220, 221, 222, + 0, 223, 224, 0, 225, 226, 227, 228, 229, 0, + 0, 0, 0, 0, 230, 0, 231, 0, 0, 232, + 190, 191, 192, 0, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 0, 212, 213, 214, 0, 215, 216, + 217, 0, 0, 0, 189, 0, 218, 219, 0, 220, + 221, 222, 0, 0, 224, 0, 225, 226, 227, 228, + 229, 0, 0, 0, 0, 0, 230, 0, 231, 0, + 0, 232, 190, 191, 192, 0, 193, 194, 195, 196, + 197, 198, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 212, 213, 214, 0, + 215, 216, 217, 0, 0, 0, 189, 0, 0, 0, + 0, 220, 221, 222, 0, 223, 224, 0, 225, 226, + 227, 228, 229, 0, 0, 0, 0, 0, 230, 0, + 231, 0, 0, 232, 190, 191, 192, 0, 193, 194, + 195, 196, 197, 198, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 212, 213, + 214, 0, 215, 216, 217, 0, 0, 0, 189, 0, + 0, 0, 0, 0, 221, 222, 0, 223, 224, 0, + 225, 226, 227, 228, 229, 0, 0, 0, 0, 0, + 230, 0, 231, 0, 0, 232, 190, 191, 192, 0, + 193, 194, 195, 196, 197, 198, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 212, 213, 214, 0, 215, 216, 217, 0, 0, 0, + 189, 0, 0, 0, 0, 0, 0, 222, 0, 223, + 224, 0, 225, 226, 227, 228, 229, 0, 0, 0, + 0, 0, 230, 0, 231, 0, 0, 232, 190, 191, + 192, 0, 193, 194, 195, 196, 197, 198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 211, 212, 213, 0, 214, 215, 216, 0, - 0, 0, 188, 0, 0, 0, 0, 0, 0, -337, - 0, 222, 223, 0, 224, 225, 226, 227, 228, 0, - 0, 0, 0, 0, 229, 0, 230, 0, 0, 231, - 189, 190, 191, 0, -337, -337, -337, -337, 196, 197, + 0, 0, 212, 213, 214, 0, 215, 216, 217, 0, + 0, 0, 189, 0, 0, 0, 0, 0, 0, -338, + 0, 223, 224, 0, 225, 226, 227, 228, 229, 0, + 0, 0, 0, 0, 230, 0, 231, 0, 0, 232, + 190, 191, 192, 0, -338, -338, -338, -338, 197, 198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 211, 212, 213, 0, 214, 215, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 222, 223, 0, 224, 225, 226, 227, - 228, 0, 0, 0, 0, 0, 229, 0, 230, 0, - 0, 231 + 0, 0, 0, 0, 212, 213, 214, 0, 215, 216, + 217, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 223, 224, 0, 225, 226, 227, 228, + 229, 0, 0, 0, 0, 0, 230, 0, 231, 0, + 0, 232 }; static const yytype_int16 yycheck[] = { - 0, 0, 0, 0, 0, 97, 19, 67, 60, 107, - 141, 24, 275, 146, 147, 28, 119, 442, 186, 50, - 3, 3, 50, 364, 5, 38, 3, 4, 41, 42, - 4, 358, 45, 46, 47, 48, 49, 97, 231, 16, - 17, 457, 34, 3, 18, 3, 20, 21, 500, 23, - 12, 25, 29, 0, 54, 54, 54, 54, 54, 0, - 0, 102, 102, 35, 38, 27, 12, 94, 69, 91, - 62, 560, 46, 47, 48, 49, 5, 5, 531, 51, - 124, 27, 534, 499, 27, 426, 124, 576, 124, 16, - 33, 418, 152, 129, 135, 135, 124, 3, 4, 126, - 113, 234, 129, 104, 112, 3, 119, 54, 116, 562, - 16, 17, 124, 54, 54, 104, 3, 106, 5, 128, - 129, 254, 290, 29, 317, 256, 229, 101, 141, 124, - 393, 112, 473, 146, 147, 95, 16, 95, 128, 3, - 117, 0, 5, 276, 277, 128, 128, 128, 128, 342, - 3, 102, 5, 130, 3, 8, 9, 10, 124, 124, - 134, 129, 425, 3, 589, 165, 165, 165, 165, 165, - 129, 184, 104, 134, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 210, 106, 128, - 128, 214, 215, 216, 217, 218, 219, 220, 221, 222, - 223, 224, 225, 226, 227, 228, 229, 230, 165, 412, - 102, 234, 128, 236, 165, 165, 127, 102, 3, 397, - 398, 128, 3, 3, 16, 69, 3, 237, 237, 237, - 253, 254, 273, 256, 16, 258, 101, 69, 111, 112, - 3, 213, 5, 6, 26, 8, 9, 10, 361, 522, - 32, 3, 101, 276, 277, 128, 19, 3, 3, 231, - 124, 24, 12, 26, 46, 28, 29, 239, 129, 129, - 543, 414, 3, 4, 102, 106, 102, 249, 135, 135, - 4, 389, 45, 391, 104, 16, 17, 134, 429, 3, - 53, 3, 55, 56, 18, 54, 20, 21, 29, 23, - 54, 25, 372, 104, 104, 36, 135, 91, 71, 124, - 135, 413, 382, 91, 38, 91, 91, 134, 341, 128, - 3, 4, 595, 47, 48, 49, 428, 3, 135, 92, - 93, 102, 129, 16, 17, 134, 444, 439, 361, 135, - 350, 350, 350, 413, 16, 317, 29, 104, 358, 358, - 358, 3, 4, 106, 26, 124, 135, 101, 428, 31, - 32, 124, 15, 126, 16, 17, 128, 130, 102, 439, - 342, 135, 44, 134, 46, 102, 438, 29, 4, 128, - 403, 489, 405, 134, 112, 408, 117, 410, 360, 3, - 4, 414, 18, 128, 20, 21, 135, 23, 421, 25, - 104, 134, 16, 17, 124, 128, 429, 128, 418, 418, - 418, 434, 38, 3, 4, 29, 66, 519, 135, 521, - 46, 47, 48, 49, 3, 4, 16, 17, 116, 111, - 3, 106, 134, 3, 117, 26, 134, 16, 17, 29, - 412, 124, 116, 126, 92, 93, 94, 130, 128, 519, - 29, 521, 537, 134, 3, 128, 541, 542, 135, 124, - 92, 93, 94, 134, 134, 117, 114, 115, 116, 117, - 118, 134, 112, 134, 497, 101, 124, 112, 126, 564, - 490, 129, 505, 128, 116, 117, 118, 134, 92, 93, - 94, 135, 124, 134, 126, 54, 581, 129, 165, 350, - 449, 381, 60, 117, 508, 508, 591, 145, 134, 72, - 570, 471, 126, 523, 523, 523, 523, 523, 552, 529, - 124, 479, 126, 450, 479, 129, 557, 117, 529, 27, - 290, 444, 48, 422, -1, 257, 126, -1, 117, -1, - 3, 4, 552, 552, 552, 552, 552, -1, -1, -1, - -1, -1, -1, 16, 17, -1, -1, -1, -1, -1, - 570, 570, 570, 570, 570, 0, 29, -1, 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, -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, -1, -1, -1, -1, -1, -1, - 63, 64, 65, -1, 67, -1, -1, -1, 71, -1, + 0, 0, 0, 0, 0, 108, 60, 19, 277, 67, + 142, 120, 24, 50, 3, 187, 28, 232, 446, 5, + 5, 361, 50, 3, 3, 3, 38, 541, 367, 41, + 42, 545, 546, 45, 46, 47, 48, 49, 461, 69, + 98, 92, 93, 94, 94, 128, 129, 535, 5, 12, + 102, 5, 505, 567, 54, 54, 54, 54, 54, 114, + 0, 102, 34, 112, 27, 0, 27, 116, 0, 124, + 584, 12, 33, 124, 104, 126, 126, 565, 129, 129, + 594, 504, 422, 135, 96, 538, 27, 3, 4, 35, + 62, 430, 147, 148, 135, 153, 124, 3, 4, 563, + 16, 17, 114, 91, 319, 51, 347, 3, 120, 5, + 16, 17, 124, 29, 54, 579, 95, 95, 124, 54, + 292, 230, 54, 29, 16, 3, 258, 396, 16, 344, + 142, 3, 4, 3, 4, 147, 148, 378, 477, 128, + 124, 124, 128, 128, 16, 17, 16, 17, 128, 3, + 4, 124, 128, 124, 111, 112, 129, 29, 112, 29, + 429, 3, 16, 17, 592, 0, 166, 166, 166, 166, + 166, 128, 128, 185, 128, 29, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 415, 117, 443, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 102, 3, 128, 278, 279, 124, 166, 239, 400, 401, + 104, 166, 106, 12, 166, 124, 3, 4, 275, 129, + 240, 240, 240, 255, 485, 117, 258, 117, 260, 16, + 17, 214, 124, 129, 126, 364, 3, 526, 130, 104, + 130, 134, 29, 117, 102, 106, 278, 279, 127, 232, + 102, 3, 126, 3, 4, 3, 3, 128, 547, 242, + 16, 4, 16, 69, 525, 3, 16, 17, 251, 392, + 26, 394, 101, 348, 69, 18, 32, 20, 21, 29, + 23, 433, 25, 101, 16, 3, 36, 3, 3, 135, + 46, 102, 124, 129, 26, 38, 129, 375, 124, 31, + 32, 135, 106, 46, 47, 48, 49, 385, 135, 598, + 4, 343, 44, 135, 46, 3, 348, 5, 102, 351, + 8, 9, 10, 104, 18, 448, 20, 21, 3, 23, + 117, 25, 364, 353, 353, 353, 319, 3, 4, 126, + 134, 361, 361, 361, 38, 54, 3, 4, 54, 3, + 16, 17, 46, 47, 48, 49, 3, 4, 101, 16, + 17, 344, 104, 29, 104, 135, 91, 117, 442, 16, + 17, 494, 29, 134, 406, 128, 408, 91, 91, 411, + 363, 413, 29, 91, 3, 40, 127, 419, 15, 135, + 102, 134, 129, 425, 124, 134, 106, 104, 101, 135, + 128, 433, 422, 422, 422, 102, 438, 101, 134, 128, + 66, 135, 134, 68, 69, 70, 102, 72, 73, 74, + 75, 76, 77, 128, 135, 112, 104, 128, 40, 128, + 134, 124, 415, 135, 116, 90, 106, 92, 93, 94, + 134, 96, 97, 98, 111, 134, 3, 3, 26, 134, + 134, 117, 107, 108, 109, 116, 111, 112, 134, 114, + 115, 116, 117, 118, 76, 77, 128, 135, 128, 124, + 502, 126, 3, 112, 129, 495, 134, 509, 112, 124, + 92, 93, 94, 134, 96, 97, 98, 128, 134, 166, + 134, 54, 135, 353, 134, 98, 92, 93, 94, 111, + 112, 60, 114, 115, 116, 117, 118, 527, 527, 527, + 527, 527, 124, 533, 126, 453, 146, 129, 114, 115, + 116, 117, 118, 512, 512, 384, 483, 483, 124, 72, + 126, 573, 555, 129, 454, 555, 555, 555, 555, 555, + 475, 292, 27, 533, 448, 560, 426, 48, -1, -1, + -1, -1, -1, 573, 573, 573, 573, 573, 0, 259, + -1, 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, -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, -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, 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, + -1, -1, 52, 53, -1, 55, 56, -1, -1, -1, + 4, -1, -1, 63, 64, 65, -1, 67, -1, -1, + -1, 71, -1, -1, 18, -1, 20, 21, -1, 23, + -1, 25, -1, -1, 92, 93, 94, -1, -1, -1, + -1, -1, 92, 93, 38, -1, -1, -1, -1, -1, + -1, 101, -1, 47, 48, 49, -1, -1, 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, -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, 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, 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, -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, -1, -1, -1, -1, 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, -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, -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, 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, -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, 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, 65, -1, -1, -1, -1, -1, 71, -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, -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, 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, 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, -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, 65, -1, -1, -1, - -1, -1, 71, -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, -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, 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, 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, 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, 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, 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, 65, + -1, -1, -1, -1, -1, 71, -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, 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, 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, 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, 3, 130, - 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, -1, 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, -1, -1, -1, - -1, 64, -1, -1, -1, -1, -1, -1, 71, -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, 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, 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, -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, 3, 130, 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, -1, 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, -1, 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, -1, 92, 93, -1, -1, -1, -1, -1, 40, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 111, -1, - -1, 114, -1, -1, -1, -1, 119, 120, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -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, @@ -3604,26 +3650,26 @@ static const yytype_int16 yycheck[] = 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, + 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, + 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, + 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, -1, 112, -1, 114, 115, 116, 117, 118, -1, + -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, 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, + 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, -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, @@ -3668,61 +3714,62 @@ static const yytype_uint16 yystos[] = 25, 26, 28, 29, 36, 38, 39, 41, 43, 45, 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, 150, 156, - 160, 161, 162, 163, 165, 173, 181, 184, 185, 188, + 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, - 226, 234, 237, 250, 251, 252, 257, 261, 265, 266, - 268, 269, 270, 91, 50, 124, 124, 166, 124, 3, - 4, 16, 17, 29, 128, 186, 187, 16, 3, 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, 150, 152, 167, 168, 183, - 192, 253, 3, 0, 140, 128, 3, 46, 152, 158, - 159, 257, 147, 148, 16, 26, 31, 32, 44, 46, - 208, 267, 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, 164, 148, 174, 190, 128, 129, - 186, 187, 239, 240, 241, 249, 124, 255, 256, 129, - 182, 246, 3, 104, 157, 134, 106, 102, 102, 135, - 127, 102, 254, 3, 3, 153, 154, 255, 255, 153, - 3, 134, 147, 128, 138, 3, 101, 69, 101, 3, - 35, 51, 233, 3, 3, 210, 261, 3, 221, 227, - 228, 229, 261, 261, 261, 261, 261, 261, 261, 261, + 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, + 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, 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, 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, 255, 12, 261, 101, 141, - 142, 143, 149, 150, 198, 200, 209, 234, 189, 186, - 129, 124, 245, 3, 95, 230, 231, 232, 135, 117, - 186, 144, 145, 135, 261, 255, 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, 135, 124, 135, 134, 143, 128, 141, - 246, 104, 106, 213, 232, 135, 102, 134, 135, 106, - 36, 117, 241, 243, 104, 151, 154, 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, 148, 255, 128, 141, 134, 135, - 261, 243, 244, 95, 232, 27, 33, 175, 177, 179, - 180, 148, 254, 261, 257, 148, 230, 242, 128, 102, - 201, 151, 212, 112, 5, 111, 112, 128, 219, 224, - 226, 127, 135, 127, 135, 34, 62, 169, 170, 171, - 172, 134, 213, 128, 232, 128, 124, 175, 177, 66, - 155, 135, 135, 199, 241, 46, 101, 192, 205, 206, - 207, 116, 261, 111, 226, 223, 261, 106, 134, 171, - 172, 238, 178, 3, 148, 148, 244, 101, 146, 150, - 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 + 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) @@ -4538,7 +4585,7 @@ yyreduce: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1929 "parser.y" +#line 1953 "parser.y" {PASS_ALWAYS as3_pass=(yyvsp[(1) - (4)].number_int);} } break; @@ -4549,19 +4596,19 @@ yyreduce: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1941 "parser.y" +#line 1965 "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 1944 "parser.y" - {(yyval.code)=(yyvsp[(1) - (1)].code);} +#line 1966 "parser.y" + {PASS_ALWAYS as3_pass=(yyvsp[(2) - (4)].number_int);PASS1 as3_warning("embed command ignored");} } break; @@ -4571,8 +4618,8 @@ yyreduce: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1945 "parser.y" - {(yyval.code)=code_new();} +#line 1969 "parser.y" + {(yyval.code)=(yyvsp[(1) - (1)].code);} } break; @@ -4582,7 +4629,18 @@ yyreduce: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1947 "parser.y" +#line 1970 "parser.y" + {(yyval.code)=code_new();} + } + break; + + + + case 29: + if(as3_pass==2) { + +/* Line 1464 of skeleton.m4 */ +#line 1972 "parser.y" { (yyval.code)=code_append((yyvsp[(1) - (2)].code),(yyvsp[(2) - (2)].code)); } @@ -4591,55 +4649,55 @@ yyreduce: - case 29: + case 30: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1950 "parser.y" +#line 1975 "parser.y" {(yyval.code)=(yyvsp[(1) - (1)].code);} } break; - case 43: + case 44: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1966 "parser.y" +#line 1991 "parser.y" {(yyval.code)=(yyvsp[(2) - (3)].code);} } break; - case 44: + case 45: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1967 "parser.y" +#line 1992 "parser.y" {(yyval.code)=0;} } break; - case 45: + case 46: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1970 "parser.y" +#line 1995 "parser.y" {(yyval.code)=0;} } break; - case 52: + case 53: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1977 "parser.y" +#line 2002 "parser.y" { PASS_ALWAYS if(as3_pass) { @@ -4654,33 +4712,33 @@ yyreduce: - case 53: + case 54: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1989 "parser.y" +#line 2014 "parser.y" {(yyval.code)=(yyvsp[(1) - (2)].code);} } break; - case 54: + case 55: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1990 "parser.y" +#line 2015 "parser.y" {(yyval.code)=(yyvsp[(1) - (1)].code);} } break; - case 55: + case 56: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 1994 "parser.y" +#line 2019 "parser.y" { if((yyvsp[(1) - (1)].code)) { if(!global->init) @@ -4694,11 +4752,26 @@ yyreduce: - case 56: + case 57: + if(as3_pass==2) { + +/* Line 1464 of skeleton.m4 */ +#line 2030 "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 2005 "parser.y" +#line 2038 "parser.y" { PASS12 (yyval.number_int)=as3_pass; @@ -4713,77 +4786,77 @@ yyreduce: - case 57: + case 59: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2024 "parser.y" +#line 2065 "parser.y" {(yyval.node)=(yyvsp[(2) - (2)].node);} } break; - case 58: + case 60: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2025 "parser.y" +#line 2066 "parser.y" {(yyval.node)=mkdummynode();} } break; - case 59: + case 61: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2027 "parser.y" +#line 2068 "parser.y" {(yyval.code)=(yyvsp[(2) - (2)].code);} } break; - case 60: + case 62: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2028 "parser.y" +#line 2069 "parser.y" {(yyval.code)=(yyvsp[(2) - (2)].code);} } break; - case 61: + case 63: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2030 "parser.y" +#line 2071 "parser.y" {(yyval.code) = (yyvsp[(1) - (1)].code);} } break; - case 62: + case 64: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2031 "parser.y" +#line 2072 "parser.y" {(yyval.code) = code_append((yyvsp[(1) - (3)].code), (yyvsp[(3) - (3)].code));} } break; - case 63: + case 65: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2034 "parser.y" +#line 2075 "parser.y" { PASS12 if(variable_exists((yyvsp[(1) - (3)].id))) @@ -4794,50 +4867,51 @@ 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, (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((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)); } } } @@ -4845,83 +4919,94 @@ PASS2 - case 64: + case 66: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2093 "parser.y" - {(yyval.code) = code_new();} +#line 2135 "parser.y" + {PASS12 new_state();} } break; - case 65: + case 67: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2094 "parser.y" - {(yyval.code)=(yyvsp[(2) - (2)].code);} +#line 2135 "parser.y" + { + (yyval.code) = var_block((yyvsp[(2) - (2)].code), state->vars); + PASS12 old_state(); +} } break; - case 66: + case 68: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2097 "parser.y" - {PASS12 new_state();} +#line 2139 "parser.y" + {(yyval.code) = code_new();} } break; - case 67: + case 69: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2097 "parser.y" +#line 2140 "parser.y" + {(yyval.code)=(yyvsp[(2) - (2)].code);} + } + break; + + + + case 70: + if(as3_pass==2) { + +/* Line 1464 of skeleton.m4 */ +#line 2143 "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 68: + case 71: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2116 "parser.y" +#line 2159 "parser.y" {(yyval.code)=code_new();} } break; - case 71: + case 74: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2123 "parser.y" +#line 2166 "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); @@ -4931,11 +5016,11 @@ PASS2 - case 72: + case 75: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2127 "parser.y" +#line 2170 "parser.y" { PASS12 (yyval.id)=(yyvsp[(1) - (1)].id); @@ -4945,33 +5030,33 @@ PASS2 - case 73: + case 76: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2132 "parser.y" +#line 2175 "parser.y" {PASS12 new_state();(yyval.for_start).name=(yyvsp[(1) - (2)].id);(yyval.for_start).each=0;} } break; - case 74: + case 77: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2133 "parser.y" +#line 2176 "parser.y" {PASS12 new_state();(yyval.for_start).name=(yyvsp[(1) - (3)].id);(yyval.for_start).each=1;} } break; - case 75: + case 78: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2135 "parser.y" +#line 2178 "parser.y" { if((yyvsp[(1) - (8)].for_start).each) syntaxerror("invalid syntax: ; not allowed in for each statement"); (yyval.code) = code_new(); @@ -4988,7 +5073,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(); } } @@ -4996,21 +5081,18 @@ PASS2 - case 76: + case 79: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2155 "parser.y" +#line 2198 "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); + int it = alloc_local(); + int array = alloc_local(); (yyval.code) = code_new(); (yyval.code) = code_append((yyval.code), (yyvsp[(4) - (6)].value).c); @@ -5041,10 +5123,8 @@ 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); PASS12 old_state(); } @@ -5053,85 +5133,57 @@ PASS2 - case 77: - if(as3_pass==2) { - -/* Line 1464 of skeleton.m4 */ -#line 2203 "parser.y" - {PASS12 new_state();} - } - break; - - - - case 78: + case 80: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2203 "parser.y" +#line 2241 "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 79: - if(as3_pass==2) { - -/* Line 1464 of skeleton.m4 */ -#line 2222 "parser.y" - {PASS12 new_state();} - } - break; - - - - case 80: + case 81: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2222 "parser.y" +#line 2257 "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 81: + case 82: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2237 "parser.y" +#line 2269 "parser.y" { (yyval.code) = abc___break__(0, ""); } @@ -5140,11 +5192,11 @@ PASS2 - case 82: + case 83: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2240 "parser.y" +#line 2272 "parser.y" { (yyval.code) = abc___break__(0, (yyvsp[(2) - (2)].id)); } @@ -5153,11 +5205,11 @@ PASS2 - case 83: + case 84: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2243 "parser.y" +#line 2275 "parser.y" { (yyval.code) = abc___continue__(0, ""); } @@ -5166,11 +5218,11 @@ PASS2 - case 84: + case 85: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2246 "parser.y" +#line 2278 "parser.y" { (yyval.code) = abc___continue__(0, (yyvsp[(2) - (2)].id)); } @@ -5179,77 +5231,77 @@ PASS2 - case 85: + case 86: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2250 "parser.y" +#line 2282 "parser.y" {(yyval.code)=0;} } break; - case 86: + case 87: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2251 "parser.y" +#line 2283 "parser.y" {(yyval.code)=(yyvsp[(1) - (1)].code);} } break; - case 87: + case 88: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2252 "parser.y" +#line 2284 "parser.y" {(yyval.code)=(yyvsp[(1) - (1)].code);} } break; - case 88: + case 89: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2253 "parser.y" +#line 2285 "parser.y" {(yyval.code)=code_append((yyvsp[(1) - (2)].code),(yyvsp[(2) - (2)].code));} } break; - case 89: + case 90: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2254 "parser.y" +#line 2286 "parser.y" {(yyval.code)=(yyvsp[(1) - (1)].code);} } break; - case 90: + case 91: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2255 "parser.y" +#line 2287 "parser.y" {(yyval.code)=code_append((yyval.code),(yyvsp[(2) - (2)].code));} } break; - case 91: + case 92: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2257 "parser.y" +#line 2289 "parser.y" { (yyval.code) = abc_getlocal(0, state->switch_var); (yyval.code) = code_append((yyval.code), node_read((yyvsp[(2) - (4)].node)).c); @@ -5266,11 +5318,11 @@ PASS2 - case 92: + case 93: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2268 "parser.y" +#line 2300 "parser.y" { (yyval.code) = (yyvsp[(3) - (3)].code); } @@ -5279,22 +5331,22 @@ PASS2 - case 93: + case 94: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2271 "parser.y" +#line 2303 "parser.y" {PASS12 new_state();state->switch_var=alloc_local();} } break; - case 94: + case 95: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2271 "parser.y" +#line 2303 "parser.y" { (yyval.code) = node_read((yyvsp[(4) - (8)].node)).c; (yyval.code) = abc_setlocal((yyval.code), state->switch_var); @@ -5320,7 +5372,7 @@ PASS2 c=c->prev; } - (yyval.code) = var_block((yyval.code)); + (yyval.code) = var_block((yyval.code), state->vars); PASS12 old_state(); } } @@ -5328,11 +5380,11 @@ PASS2 - case 95: + case 96: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2302 "parser.y" +#line 2334 "parser.y" {PASS12 new_state(); state->exception_name=(yyvsp[(3) - (5)].id); PASS1 new_variable((yyvsp[(3) - (5)].id), 0, 0, 0); @@ -5343,11 +5395,11 @@ PASS2 - case 96: + case 97: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2307 "parser.y" +#line 2339 "parser.y" { namespace_t name_ns = {ACCESS_PACKAGE, ""}; multiname_t name = {QNAME, &name_ns, 0, (yyvsp[(3) - (9)].id)}; @@ -5365,7 +5417,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(); } } @@ -5373,24 +5425,24 @@ PASS2 - case 97: + case 98: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2327 "parser.y" +#line 2359 "parser.y" {PASS12 new_state();state->exception_name=0;} } break; - case 98: + case 99: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2327 "parser.y" +#line 2359 "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 { @@ -5409,44 +5461,44 @@ PASS2 - case 99: + case 100: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2343 "parser.y" +#line 2375 "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 100: + case 101: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2344 "parser.y" +#line 2376 "parser.y" {(yyval.catch_list)=(yyvsp[(1) - (2)].catch_list);list_append((yyval.catch_list).l,(yyvsp[(2) - (2)].exception));} } break; - case 101: + case 102: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2345 "parser.y" +#line 2377 "parser.y" {(yyval.catch_list)=(yyvsp[(1) - (1)].catch_list);} } break; - case 102: + case 103: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2346 "parser.y" +#line 2378 "parser.y" { (yyval.catch_list) = (yyvsp[(1) - (2)].catch_list); (yyval.catch_list).finally = 0; @@ -5460,11 +5512,11 @@ PASS2 - case 103: + case 104: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2354 "parser.y" +#line 2386 "parser.y" { (yyval.catch_list).l=list_new(); (yyval.catch_list).finally = 0; @@ -5478,11 +5530,11 @@ PASS2 - case 104: + case 105: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2363 "parser.y" +#line 2395 "parser.y" {PASS12 new_state(); state->method->has_exceptions=1; state->method->late_binding=1;//for invariant scope_code @@ -5492,11 +5544,11 @@ PASS2 - case 105: + case 106: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2366 "parser.y" +#line 2398 "parser.y" { code_t*out = abc_nop(0); @@ -5509,7 +5561,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; @@ -5537,7 +5589,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(); } } @@ -5545,11 +5597,11 @@ PASS2 - case 106: + case 107: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2412 "parser.y" +#line 2444 "parser.y" { (yyval.code)=(yyvsp[(2) - (2)].value).c; (yyval.code)=abc_throw((yyval.code)); @@ -5559,11 +5611,11 @@ PASS2 - case 107: + case 108: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2416 "parser.y" +#line 2448 "parser.y" { if(!state->exception_name) syntaxerror("re-throw only possible within a catch block"); @@ -5577,11 +5629,11 @@ PASS2 - case 108: + case 109: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2427 "parser.y" +#line 2459 "parser.y" { new_state(); if(state->method->has_exceptions) { @@ -5597,11 +5649,11 @@ PASS2 - case 109: + case 110: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2437 "parser.y" +#line 2469 "parser.y" { /* remove getlocal;pushwith from scope code again */ state->method->scope_code = code_cutlast(code_cutlast(state->method->scope_code)); @@ -5621,121 +5673,121 @@ PASS2 - case 111: + case 112: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2455 "parser.y" +#line 2487 "parser.y" {PASS12 (yyval.id)="package";} } break; - case 112: + case 113: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2456 "parser.y" +#line 2488 "parser.y" {PASS12 (yyval.id)="namespace";} } break; - case 113: + case 114: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2457 "parser.y" +#line 2489 "parser.y" {PASS12 (yyval.id)="NaN";} } break; - case 114: + case 115: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2458 "parser.y" +#line 2490 "parser.y" {PASS12 (yyval.id)=(yyvsp[(1) - (1)].id);} } break; - case 115: + case 116: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2460 "parser.y" +#line 2492 "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 116: + case 117: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2461 "parser.y" +#line 2493 "parser.y" {PASS12 (yyval.id)=strdup((yyvsp[(1) - (1)].id));} } break; - case 117: + case 118: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2463 "parser.y" +#line 2495 "parser.y" {PASS12 startpackage((yyvsp[(2) - (3)].id));free((yyvsp[(2) - (3)].id));(yyvsp[(2) - (3)].id)=0;} } break; - case 118: + case 119: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2464 "parser.y" +#line 2496 "parser.y" {PASS12 endpackage();(yyval.code)=0;} } break; - case 119: + case 120: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2465 "parser.y" +#line 2497 "parser.y" {PASS12 startpackage("");} } break; - case 120: + case 121: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2466 "parser.y" +#line 2498 "parser.y" {PASS12 endpackage();(yyval.code)=0;} } break; - case 121: + case 122: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2489 "parser.y" +#line 2521 "parser.y" { PASS12 slotinfo_t*s = registry_find(state->package, (yyvsp[(2) - (2)].id)); @@ -5749,11 +5801,11 @@ PASS2 - case 122: + case 123: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2497 "parser.y" +#line 2529 "parser.y" { PASS12 slotinfo_t*s = registry_find((yyvsp[(2) - (2)].classinfo)->package, (yyvsp[(2) - (2)].classinfo)->name); @@ -5770,11 +5822,11 @@ PASS2 - case 123: + case 124: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2508 "parser.y" +#line 2540 "parser.y" { PASS12 if(strncmp("flash.", (yyvsp[(2) - (4)].id), 6) && as3_pass==1) { @@ -5793,44 +5845,44 @@ PASS2 - case 124: + case 125: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2524 "parser.y" +#line 2556 "parser.y" {PASS12 (yyval.flags).flags=0;(yyval.flags).ns=0;} } break; - case 125: + case 126: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2525 "parser.y" +#line 2557 "parser.y" {PASS12 (yyval.flags)=(yyvsp[(1) - (1)].flags);} } break; - case 126: + case 127: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2526 "parser.y" +#line 2558 "parser.y" {PASS12 (yyval.flags)=(yyvsp[(1) - (1)].flags);} } break; - case 127: + case 128: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2527 "parser.y" +#line 2559 "parser.y" { PASS12 (yyval.flags).flags=(yyvsp[(1) - (2)].flags).flags|(yyvsp[(2) - (2)].flags).flags; @@ -5843,110 +5895,110 @@ PASS2 - case 128: + case 129: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2534 "parser.y" +#line 2566 "parser.y" {PASS12 (yyval.flags).flags=FLAG_PUBLIC;(yyval.flags).ns=0;} } break; - case 129: + case 130: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2535 "parser.y" +#line 2567 "parser.y" {PASS12 (yyval.flags).flags=FLAG_PRIVATE;(yyval.flags).ns=0;} } break; - case 130: + case 131: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2536 "parser.y" +#line 2568 "parser.y" {PASS12 (yyval.flags).flags=FLAG_PROTECTED;(yyval.flags).ns=0;} } break; - case 131: + case 132: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2537 "parser.y" +#line 2569 "parser.y" {PASS12 (yyval.flags).flags=FLAG_STATIC;(yyval.flags).ns=0;} } break; - case 132: + case 133: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2538 "parser.y" +#line 2570 "parser.y" {PASS12 (yyval.flags).flags=FLAG_DYNAMIC;(yyval.flags).ns=0;} } break; - case 133: + case 134: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2539 "parser.y" +#line 2571 "parser.y" {PASS12 (yyval.flags).flags=FLAG_FINAL;(yyval.flags).ns=0;} } break; - case 134: + case 135: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2540 "parser.y" +#line 2572 "parser.y" {PASS12 (yyval.flags).flags=FLAG_OVERRIDE;(yyval.flags).ns=0;} } break; - case 135: + case 136: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2541 "parser.y" +#line 2573 "parser.y" {PASS12 (yyval.flags).flags=FLAG_NATIVE;(yyval.flags).ns=0;} } break; - case 136: + case 137: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2542 "parser.y" +#line 2574 "parser.y" {PASS12 (yyval.flags).flags=FLAG_PACKAGEINTERNAL;(yyval.flags).ns=0;} } break; - case 137: + case 138: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2543 "parser.y" +#line 2575 "parser.y" {PASS12 (yyval.flags).flags=FLAG_NAMESPACE; (yyval.flags).ns=(yyvsp[(1) - (1)].id); } @@ -5955,99 +6007,99 @@ PASS2 - case 138: + case 139: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2547 "parser.y" +#line 2579 "parser.y" {PASS12 (yyval.classinfo)=0;} } break; - case 139: + case 140: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2548 "parser.y" +#line 2580 "parser.y" {PASS12 (yyval.classinfo)=(yyvsp[(2) - (2)].classinfo);} } break; - case 140: + case 141: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2550 "parser.y" +#line 2582 "parser.y" {PASS12 (yyval.classinfo_list)=list_new();} } break; - case 141: + case 142: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2551 "parser.y" +#line 2583 "parser.y" {PASS12 (yyval.classinfo_list)=(yyvsp[(2) - (2)].classinfo_list);} } break; - case 142: + case 143: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2553 "parser.y" +#line 2585 "parser.y" {PASS12 (yyval.classinfo_list)=list_new();} } break; - case 143: + case 144: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2554 "parser.y" +#line 2586 "parser.y" {PASS12 (yyval.classinfo_list)=(yyvsp[(2) - (2)].classinfo_list);} } break; - case 144: + case 145: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2558 "parser.y" +#line 2590 "parser.y" {PASS12 startclass(&(yyvsp[(1) - (6)].flags),(yyvsp[(3) - (6)].id),(yyvsp[(4) - (6)].classinfo),(yyvsp[(5) - (6)].classinfo_list));} } break; - case 145: + case 146: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2560 "parser.y" +#line 2592 "parser.y" {PASS12 endclass();(yyval.code)=0;} } break; - case 146: + case 147: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2564 "parser.y" +#line 2596 "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));} } @@ -6055,33 +6107,33 @@ PASS2 - case 147: + case 148: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2567 "parser.y" +#line 2599 "parser.y" {PASS12 endclass();(yyval.code)=0;} } break; - case 153: + case 154: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2576 "parser.y" +#line 2608 "parser.y" {PASS_ALWAYS as3_pass=(yyvsp[(1) - (4)].number_int);} } break; - case 156: + case 157: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2580 "parser.y" +#line 2612 "parser.y" { code_t*c = state->cls->static_init->header; c = code_append(c, (yyvsp[(1) - (1)].code)); @@ -6092,11 +6144,11 @@ PASS2 - case 162: + case 163: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2591 "parser.y" +#line 2623 "parser.y" { syntaxerror("variable declarations not allowed in interfaces"); } @@ -6105,11 +6157,11 @@ PASS2 - case 163: + case 164: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2594 "parser.y" +#line 2626 "parser.y" { PASS12 (yyvsp[(1) - (8)].flags).flags |= FLAG_PUBLIC; @@ -6125,55 +6177,55 @@ PASS2 - case 166: + case 167: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2669 "parser.y" +#line 2701 "parser.y" {PASS12 setslotstate(&(yyvsp[(1) - (2)].flags),(yyvsp[(2) - (2)].token));} } break; - case 167: + case 168: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2669 "parser.y" +#line 2701 "parser.y" {PASS12 (yyval.code)=(yyvsp[(4) - (4)].code);setslotstate(0, 0);} } break; - case 168: + case 169: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2671 "parser.y" +#line 2703 "parser.y" {PASS12 (yyval.code)=0;} } break; - case 169: + case 170: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2672 "parser.y" +#line 2704 "parser.y" {PASS12 (yyval.code)=0;} } break; - case 170: + case 171: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2675 "parser.y" +#line 2707 "parser.y" { PASS12 int flags = slotstate_flags->flags; @@ -6259,22 +6311,22 @@ PASS12 - case 171: + case 172: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2758 "parser.y" +#line 2790 "parser.y" {(yyval.constant)=0;} } break; - case 172: + case 173: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2759 "parser.y" +#line 2791 "parser.y" { (yyval.constant) = malloc(sizeof(constant_t)); *(yyval.constant) = node_eval((yyvsp[(2) - (2)].node)); @@ -6287,22 +6339,22 @@ PASS12 - case 173: + case 174: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2768 "parser.y" +#line 2800 "parser.y" {(yyval.constant) = constant_new_int((yyvsp[(1) - (1)].number_int));} } break; - case 174: + case 175: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2769 "parser.y" +#line 2801 "parser.y" { (yyval.constant) = constant_new_uint((yyvsp[(1) - (1)].number_uint)); } @@ -6311,77 +6363,77 @@ PASS12 - case 175: + case 176: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2772 "parser.y" +#line 2804 "parser.y" {(yyval.constant) = constant_new_float((yyvsp[(1) - (1)].number_float));} } break; - case 176: + case 177: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2773 "parser.y" +#line 2805 "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 177: + case 178: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2774 "parser.y" +#line 2806 "parser.y" {(yyval.constant) = constant_new_true((yyvsp[(1) - (1)].token));} } break; - case 178: + case 179: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2775 "parser.y" +#line 2807 "parser.y" {(yyval.constant) = constant_new_false((yyvsp[(1) - (1)].token));} } break; - case 179: + case 180: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2776 "parser.y" +#line 2808 "parser.y" {(yyval.constant) = constant_new_null((yyvsp[(1) - (1)].token));} } break; - case 180: + case 181: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2777 "parser.y" +#line 2809 "parser.y" {(yyval.constant) = constant_new_undefined((yyvsp[(1) - (1)].token));} } break; - case 181: + case 182: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2778 "parser.y" +#line 2810 "parser.y" {(yyval.constant) = constant_new_float(__builtin_nan(""));} } break; @@ -6392,8 +6444,17 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2793 "parser.y" - {PASS_ALWAYS if(!xml_level++) tokenizer_begin_xml();} +#line 2823 "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; @@ -6403,8 +6464,8 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2794 "parser.y" - {PASS_ALWAYS tokenizer_begin_xmltext();} +#line 2834 "parser.y" + {PASS_ALWAYS if(!xml_level++) tokenizer_begin_xml();} } break; @@ -6414,8 +6475,8 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2795 "parser.y" - {PASS_ALWAYS if(!--xml_level) tokenizer_end_xml(); else tokenizer_begin_xmltext();} +#line 2835 "parser.y" + {PASS_ALWAYS tokenizer_begin_xmltext();} } break; @@ -6425,8 +6486,8 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2797 "parser.y" - {PASS_ALWAYS tokenizer_begin_xmltext();} +#line 2836 "parser.y" + {PASS_ALWAYS if(!--xml_level) tokenizer_end_xml(); else tokenizer_begin_xmltext();} } break; @@ -6436,11 +6497,8 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2797 "parser.y" - { - (yyval.id)=strdup("{...}"); - as3_warning("xml string substitution not yet supported"); -} +#line 2838 "parser.y" + {PASS_ALWAYS tokenizer_begin_xmltext();} } break; @@ -6450,8 +6508,10 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2801 "parser.y" - {PASS_ALWAYS tokenizer_begin_xml();} +#line 2838 "parser.y" + { + (yyval.node) = (yyvsp[(2) - (4)].node); +} } break; @@ -6461,11 +6521,8 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2801 "parser.y" - { - (yyval.id)=strdup("{...}"); - as3_warning("xml string substitution not yet supported"); -} +#line 2841 "parser.y" + {PASS_ALWAYS tokenizer_begin_xml();} } break; @@ -6475,8 +6532,10 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2805 "parser.y" - {(yyval.id)="";} +#line 2841 "parser.y" + { + (yyval.node) = (yyvsp[(2) - (4)].node); +} } break; @@ -6486,10 +6545,8 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2806 "parser.y" - { - (yyval.id) = concat2((yyvsp[(1) - (2)].id), "{...}"); -} +#line 2844 "parser.y" + {(yyval.node)=mkstringnode("");} } break; @@ -6499,8 +6556,10 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2809 "parser.y" - {(yyval.id)=concat2((yyvsp[(1) - (2)].id), string_cstr(&(yyvsp[(2) - (2)].str)));} +#line 2845 "parser.y" + { + (yyval.node) = mkaddnode((yyvsp[(1) - (2)].node),(yyvsp[(2) - (2)].node)); +} } break; @@ -6510,8 +6569,12 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2810 "parser.y" - {(yyval.id)=concat2((yyvsp[(1) - (2)].id), ">");} +#line 2848 "parser.y" + { + char* str = string_cstr(&(yyvsp[(2) - (2)].str)); + (yyval.node) = mkaddnode((yyvsp[(1) - (2)].node),mkstringnode(str)); + free(str); +} } break; @@ -6521,8 +6584,10 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2812 "parser.y" - {(yyval.id)=concat2((yyvsp[(1) - (2)].id),(yyvsp[(2) - (2)].id));} +#line 2853 "parser.y" + { + (yyval.node) = mkaddnode((yyvsp[(1) - (2)].node), mkstringnode(">")); +} } break; @@ -6532,8 +6597,10 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2813 "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 2856 "parser.y" + { + (yyval.node) = mkaddnode((yyvsp[(1) - (2)].node),(yyvsp[(2) - (2)].node)); +} } break; @@ -6543,8 +6610,10 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2815 "parser.y" - {(yyval.id)=(yyvsp[(1) - (1)].id);} +#line 2859 "parser.y" + { + (yyval.node) = mkaddnode((yyvsp[(1) - (3)].node), mkaddnode((yyvsp[(2) - (3)].node),(yyvsp[(3) - (3)].node))); +} } break; @@ -6554,8 +6623,10 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2816 "parser.y" - {(yyval.id)=(yyvsp[(1) - (1)].id);} +#line 2862 "parser.y" + { + (yyval.node) = mkstringnode((yyvsp[(1) - (1)].id)); +} } break; @@ -6565,10 +6636,9 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2818 "parser.y" +#line 2865 "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) = (yyvsp[(1) - (1)].node); } } break; @@ -6579,9 +6649,9 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2822 "parser.y" +#line 2869 "parser.y" { - (yyval.id) = allocprintf("<%s%s/>", (yyvsp[(2) - (6)].id), (yyvsp[(3) - (6)].id)); + (yyval.node) = mkstringnode(""); } } break; @@ -6592,10 +6662,9 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2825 "parser.y" +#line 2872 "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)); + (yyval.node) = mkaddnode(mkstringnode(" "),(yyvsp[(1) - (1)].node)); } } break; @@ -6606,8 +6675,11 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2830 "parser.y" - {(yyval.id)=strdup("");} +#line 2876 "parser.y" + { + //$$ = allocprintf("<%s%s/>", $2, $3, $5, $8); + (yyval.node) = mkaddnode(mkaddnode(mkaddnode(mkstringnode("<"),(yyvsp[(2) - (6)].node)),(yyvsp[(3) - (6)].node)),mkstringnode("/>")); +} } break; @@ -6617,8 +6689,12 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2831 "parser.y" - {(yyval.id)=concat2(" ",(yyvsp[(1) - (1)].id));} +#line 2880 "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; @@ -6628,8 +6704,12 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2832 "parser.y" - {(yyval.id)=(yyvsp[(1) - (1)].id);} +#line 2885 "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; @@ -6639,8 +6719,10 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2833 "parser.y" - {(yyval.id)=concat3((yyvsp[(1) - (2)].id)," ",(yyvsp[(2) - (2)].id));free((yyvsp[(1) - (2)].id));free((yyvsp[(2) - (2)].id));} +#line 2891 "parser.y" + { + (yyval.node) = (yyvsp[(1) - (1)].node); +} } break; @@ -6650,9 +6732,9 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2835 "parser.y" +#line 2894 "parser.y" { - (yyval.id) = strdup("{...}"); + (yyval.node) = mkaddnode((yyvsp[(1) - (2)].node), mkaddnode(mkstringnode(" "),(yyvsp[(2) - (2)].node))); } } break; @@ -6663,10 +6745,9 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2838 "parser.y" +#line 2897 "parser.y" { - char* str = string_cstr(&(yyvsp[(3) - (3)].str)); - (yyval.id) = concat2("{...}=",str); + (yyval.node) = (yyvsp[(1) - (1)].node); } } break; @@ -6677,9 +6758,11 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2842 "parser.y" +#line 2900 "parser.y" { - (yyval.id) = strdup("{...}={...}"); + char* str = string_cstr(&(yyvsp[(3) - (3)].str)); + (yyval.node) = mkaddnode((yyvsp[(1) - (3)].node), mkstringnode(concat2("=",str))); + free(str); } } break; @@ -6690,9 +6773,9 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2845 "parser.y" +#line 2905 "parser.y" { - (yyval.id) = concat2((yyvsp[(1) - (3)].id),"={...}"); + (yyval.node) = mkaddnode((yyvsp[(1) - (3)].node), mkaddnode(mkstringnode("=\""), mkaddnode((yyvsp[(3) - (3)].node), mkstringnode("\"")))); } } break; @@ -6703,10 +6786,23 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2848 "parser.y" +#line 2908 "parser.y" + { + (yyval.node) = mkaddnode(mkaddnode(mkstringnode(concat2((yyvsp[(1) - (3)].id),"=\"")), (yyvsp[(3) - (3)].node)), mkstringnode("\"")); +} + } + break; + + + + case 210: + if(as3_pass==2) { + +/* Line 1464 of skeleton.m4 */ +#line 2911 "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); } @@ -6715,11 +6811,11 @@ PASS12 - case 210: + case 211: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2858 "parser.y" +#line 2921 "parser.y" { PASS12 memset(&(yyval.params),0,sizeof((yyval.params))); @@ -6729,11 +6825,11 @@ PASS12 - case 211: + case 212: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2862 "parser.y" +#line 2925 "parser.y" { PASS12 (yyval.params)=(yyvsp[(1) - (1)].params); @@ -6743,11 +6839,11 @@ PASS12 - case 212: + case 213: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2868 "parser.y" +#line 2931 "parser.y" { PASS12 memset(&(yyval.params),0,sizeof((yyval.params))); @@ -6759,11 +6855,11 @@ PASS12 - case 213: + case 214: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2874 "parser.y" +#line 2937 "parser.y" { PASS12 (yyval.params) =(yyvsp[(1) - (4)].params); @@ -6775,11 +6871,11 @@ PASS12 - case 214: + case 215: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2882 "parser.y" +#line 2945 "parser.y" { PASS12 (yyval.params) = (yyvsp[(1) - (3)].params); @@ -6790,11 +6886,11 @@ PASS12 - case 215: + case 216: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2887 "parser.y" +#line 2950 "parser.y" { PASS12 memset(&(yyval.params),0,sizeof((yyval.params))); @@ -6805,11 +6901,11 @@ PASS12 - case 216: + case 217: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2893 "parser.y" +#line 2956 "parser.y" { PASS12 (yyval.param) = rfx_calloc(sizeof(param_t)); @@ -6823,11 +6919,11 @@ PASS12 - case 217: + case 218: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2901 "parser.y" +#line 2964 "parser.y" { PASS12 (yyval.param) = rfx_calloc(sizeof(param_t)); @@ -6841,33 +6937,33 @@ PASS12 - case 220: + case 221: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2911 "parser.y" +#line 2974 "parser.y" {PASS12 (yyval.token)=0;} } break; - case 221: + case 222: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2914 "parser.y" +#line 2977 "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 222: + case 223: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2915 "parser.y" +#line 2978 "parser.y" { PASS1 endfunction(&(yyvsp[(1) - (12)].flags),(yyvsp[(3) - (12)].token),(yyvsp[(4) - (12)].id),&(yyvsp[(6) - (12)].params),0,0); @@ -6887,33 +6983,33 @@ PASS12 - case 224: + case 225: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2931 "parser.y" +#line 2994 "parser.y" {PASS12 (yyval.id)=0;} } break; - case 225: + case 226: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2933 "parser.y" +#line 2996 "parser.y" {PASS12 innerfunction((yyvsp[(2) - (7)].id),&(yyvsp[(4) - (7)].params),(yyvsp[(6) - (7)].classinfo));} } break; - case 226: + case 227: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2934 "parser.y" +#line 2997 "parser.y" { PASS1 endfunction(0,0,(yyvsp[(2) - (10)].id),&(yyvsp[(4) - (10)].params),0,0); @@ -6937,11 +7033,11 @@ PASS12 - case 227: + case 228: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2956 "parser.y" +#line 3019 "parser.y" { PASS1 NEW(unresolvedinfo_t,c); memset(c, 0, sizeof(*c)); @@ -6965,11 +7061,11 @@ PASS12 - case 228: + case 229: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2975 "parser.y" +#line 3038 "parser.y" { PASS1 NEW(unresolvedinfo_t,c); memset(c, 0, sizeof(*c)); @@ -6988,121 +7084,121 @@ PASS12 - case 231: + case 232: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2992 "parser.y" +#line 3055 "parser.y" {PASS12 (yyval.classinfo_list)=list_new();list_append((yyval.classinfo_list), (yyvsp[(1) - (1)].classinfo));} } break; - case 232: + case 233: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2993 "parser.y" +#line 3056 "parser.y" {PASS12 (yyval.classinfo_list)=(yyvsp[(1) - (3)].classinfo_list);list_append((yyval.classinfo_list),(yyvsp[(3) - (3)].classinfo));} } break; - case 233: + case 234: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2995 "parser.y" +#line 3058 "parser.y" {PASS12 (yyval.classinfo)=(yyvsp[(1) - (1)].classinfo);} } break; - case 234: + case 235: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2996 "parser.y" +#line 3059 "parser.y" {PASS12 (yyval.classinfo)=TYPE_ANY;} } break; - case 235: + case 236: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2997 "parser.y" +#line 3060 "parser.y" {PASS12 (yyval.classinfo)=TYPE_VOID;} } break; - case 236: + case 237: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3006 "parser.y" +#line 3069 "parser.y" {PASS12 (yyval.classinfo)=(yyvsp[(2) - (2)].classinfo);} } break; - case 237: + case 238: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3007 "parser.y" +#line 3070 "parser.y" {PASS12 (yyval.classinfo)=0;} } break; - case 238: + case 239: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3011 "parser.y" +#line 3074 "parser.y" {(yyval.value_list).cc=0;(yyval.value_list).number=0;} } break; - case 239: + case 240: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3012 "parser.y" +#line 3075 "parser.y" {(yyval.value_list)=(yyvsp[(2) - (3)].value_list);} } break; - case 240: + case 241: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3014 "parser.y" +#line 3077 "parser.y" {(yyval.value_list).cc=0;(yyval.value_list).number=0;} } break; - case 243: + case 244: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3018 "parser.y" +#line 3081 "parser.y" {(yyval.value_list).number=1; (yyval.value_list).cc = (yyvsp[(1) - (1)].value).c; } @@ -7111,22 +7207,22 @@ PASS12 - case 244: + case 245: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3022 "parser.y" +#line 3085 "parser.y" {(yyval.value_list) = (yyvsp[(1) - (2)].value_list);} } break; - case 245: + case 246: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3023 "parser.y" +#line 3086 "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); @@ -7136,11 +7232,11 @@ PASS12 - case 247: + case 248: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3029 "parser.y" +#line 3092 "parser.y" { typedcode_t v = node_read((yyvsp[(2) - (4)].node)); (yyval.value).c = v.c; @@ -7185,11 +7281,11 @@ PASS12 - case 248: + case 249: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3073 "parser.y" +#line 3136 "parser.y" { typedcode_t v = node_read((yyvsp[(1) - (4)].node)); @@ -7244,11 +7340,11 @@ PASS12 - case 249: + case 250: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3123 "parser.y" +#line 3186 "parser.y" { if(!state->cls) syntaxerror("super() not allowed outside of a class"); if(!state->method) syntaxerror("super() not allowed outside of a function"); @@ -7274,11 +7370,11 @@ PASS12 - case 250: + case 251: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3144 "parser.y" +#line 3207 "parser.y" { typedcode_t v = node_read((yyvsp[(2) - (2)].node)); (yyval.value).c = v.c; @@ -7305,11 +7401,11 @@ PASS12 - case 251: + case 252: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3166 "parser.y" +#line 3229 "parser.y" { (yyval.code) = abc_returnvoid(0); } @@ -7318,11 +7414,11 @@ PASS12 - case 252: + case 253: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3169 "parser.y" +#line 3232 "parser.y" { (yyval.code) = (yyvsp[(2) - (2)].value).c; (yyval.code) = abc_returnvalue((yyval.code)); @@ -7332,11 +7428,11 @@ PASS12 - case 253: + case 254: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3176 "parser.y" +#line 3239 "parser.y" { (yyval.value) = node_read((yyvsp[(1) - (1)].node)); } @@ -7345,11 +7441,11 @@ PASS12 - case 254: + case 255: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3179 "parser.y" +#line 3242 "parser.y" { (yyval.value) = node_read((yyvsp[(1) - (1)].node)); } @@ -7358,11 +7454,11 @@ PASS12 - case 255: + case 256: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3182 "parser.y" +#line 3245 "parser.y" { (yyval.node) = mkmultinode(&node_comma, (yyvsp[(1) - (1)].node)); } @@ -7371,11 +7467,11 @@ PASS12 - case 256: + case 257: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3185 "parser.y" +#line 3248 "parser.y" { (yyval.node) = multinode_extend((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } @@ -7384,11 +7480,11 @@ PASS12 - case 257: + case 258: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3188 "parser.y" +#line 3251 "parser.y" { (yyval.code) = node_exec((yyvsp[(1) - (1)].node)); } @@ -7397,11 +7493,11 @@ PASS12 - case 258: + case 259: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3191 "parser.y" +#line 3254 "parser.y" { (yyval.code) = (yyvsp[(1) - (3)].code); (yyval.code) = code_append((yyval.code), node_exec((yyvsp[(3) - (3)].node))); @@ -7411,88 +7507,88 @@ PASS12 - case 259: + case 260: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3196 "parser.y" +#line 3259 "parser.y" {(yyval.value_list).cc=0;(yyval.value_list).number=0;} } break; - case 260: + case 261: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3197 "parser.y" +#line 3260 "parser.y" {(yyval.value_list)=(yyvsp[(1) - (1)].value_list);} } break; - case 261: + case 262: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3199 "parser.y" +#line 3262 "parser.y" {(yyval.code)=abc_pushstring(0,(yyvsp[(1) - (1)].id));} } break; - case 262: + case 263: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3200 "parser.y" +#line 3263 "parser.y" {(yyval.code)=abc_pushstring2(0,&(yyvsp[(1) - (1)].str));} } break; - case 263: + case 264: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3201 "parser.y" +#line 3264 "parser.y" {syntaxerror("dictionary keys must be strings");} } break; - case 264: + case 265: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3202 "parser.y" +#line 3265 "parser.y" {syntaxerror("dictionary keys must be strings");} } break; - case 265: + case 266: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3203 "parser.y" +#line 3266 "parser.y" {syntaxerror("dictionary keys must be strings");} } break; - case 266: + case 267: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3205 "parser.y" +#line 3268 "parser.y" { (yyval.value_list).cc = 0; (yyval.value_list).cc = code_append((yyval.value_list).cc, (yyvsp[(1) - (3)].code)); @@ -7504,11 +7600,11 @@ PASS12 - case 267: + case 268: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3211 "parser.y" +#line 3274 "parser.y" { (yyval.value_list).cc = (yyvsp[(1) - (5)].value_list).cc; (yyval.value_list).number = (yyvsp[(1) - (5)].value_list).number+2; @@ -7520,77 +7616,77 @@ PASS12 - case 268: + case 269: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3220 "parser.y" +#line 3283 "parser.y" {(yyval.node) = mkcodenode((yyvsp[(1) - (1)].value));} } break; - case 269: + case 270: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3221 "parser.y" +#line 3284 "parser.y" {(yyval.node) = mkcodenode((yyvsp[(1) - (1)].value));} } break; - case 270: + case 271: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3222 "parser.y" +#line 3285 "parser.y" {(yyval.node) = mkcodenode((yyvsp[(1) - (1)].value));} } break; - case 271: + case 272: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3223 "parser.y" +#line 3286 "parser.y" {(yyval.node) = mkcodenode((yyvsp[(1) - (1)].value));} } break; - case 272: + case 273: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3224 "parser.y" +#line 3287 "parser.y" {(yyval.node) = mkcodenode((yyvsp[(1) - (1)].value));} } break; - case 273: + case 274: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3225 "parser.y" +#line 3288 "parser.y" {(yyval.node) = (yyvsp[(1) - (1)].node);} } break; - case 274: + case 275: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3227 "parser.y" +#line 3290 "parser.y" { (yyval.node) = mkconstnode((yyvsp[(1) - (1)].constant)); } @@ -7599,31 +7695,24 @@ PASS12 - case 275: + case 276: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3231 "parser.y" +#line 3294 "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 276: + case 277: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3243 "parser.y" +#line 3299 "parser.y" { typedcode_t v; v.c = 0; @@ -7646,11 +7735,11 @@ PASS12 - case 277: + case 278: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3261 "parser.y" +#line 3317 "parser.y" { PASS1 state->method->need_arguments = 1; @@ -7665,11 +7754,11 @@ PASS12 - case 278: + case 279: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3272 "parser.y" +#line 3328 "parser.y" { typedcode_t v; v.c = code_new(); @@ -7683,11 +7772,11 @@ PASS12 - case 279: + case 280: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3282 "parser.y" +#line 3338 "parser.y" { typedcode_t v; v.c = code_new(); @@ -7701,561 +7790,561 @@ PASS12 - case 280: + case 281: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3291 "parser.y" +#line 3347 "parser.y" {(yyval.node) = mknode2(&node_lt,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));} } break; - case 281: + case 282: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3292 "parser.y" +#line 3348 "parser.y" {(yyval.node) = mknode2(&node_gt,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));} } break; - case 282: + case 283: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3293 "parser.y" +#line 3349 "parser.y" {(yyval.node) = mknode2(&node_le,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));} } break; - case 283: + case 284: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3294 "parser.y" +#line 3350 "parser.y" {(yyval.node) = mknode2(&node_ge,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));} } break; - case 284: + case 285: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3295 "parser.y" +#line 3351 "parser.y" {(yyval.node) = mknode2(&node_eqeq,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));} } break; - case 285: + case 286: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3296 "parser.y" +#line 3352 "parser.y" {(yyval.node) = mknode2(&node_eqeqeq,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));} } break; - case 286: + case 287: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3297 "parser.y" +#line 3353 "parser.y" {(yyval.node) = mknode2(&node_noteqeq,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));} } break; - case 287: + case 288: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3298 "parser.y" +#line 3354 "parser.y" {(yyval.node) = mknode2(&node_noteq,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));} } break; - case 288: + case 289: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3299 "parser.y" +#line 3355 "parser.y" {(yyval.node) = mknode2(&node_oror,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));} } break; - case 289: + case 290: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3300 "parser.y" +#line 3356 "parser.y" {(yyval.node) = mknode2(&node_andand,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));} } break; - case 290: + case 291: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3301 "parser.y" +#line 3357 "parser.y" {(yyval.node) = mknode1(&node_not, (yyvsp[(2) - (2)].node));} } break; - case 291: + case 292: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3302 "parser.y" +#line 3358 "parser.y" {(yyval.node) = mknode1(&node_bitnot, (yyvsp[(2) - (2)].node));} } break; - case 292: + case 293: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3303 "parser.y" +#line 3359 "parser.y" {(yyval.node) = mknode2(&node_bitand, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 293: + case 294: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3304 "parser.y" +#line 3360 "parser.y" {(yyval.node) = mknode2(&node_bitxor, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 294: + case 295: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3305 "parser.y" +#line 3361 "parser.y" {(yyval.node) = mknode2(&node_bitor, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 295: + case 296: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3306 "parser.y" +#line 3362 "parser.y" {(yyval.node) = mknode2(&node_shr, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 296: + case 297: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3307 "parser.y" +#line 3363 "parser.y" {(yyval.node) = mknode2(&node_ushr, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 297: + case 298: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3308 "parser.y" +#line 3364 "parser.y" {(yyval.node) = mknode2(&node_shl, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 298: + case 299: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3309 "parser.y" +#line 3365 "parser.y" {(yyval.node) = mknode2(&node_div, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 299: + case 300: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3310 "parser.y" +#line 3366 "parser.y" {(yyval.node) = mknode2(&node_mod, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 300: + case 301: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3311 "parser.y" +#line 3367 "parser.y" {(yyval.node) = mknode2(&node_plus, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 301: + case 302: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3312 "parser.y" +#line 3368 "parser.y" {(yyval.node) = mknode2(&node_minus, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 302: + case 303: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3313 "parser.y" +#line 3369 "parser.y" {(yyval.node) = mknode2(&node_multiply, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 303: + case 304: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3314 "parser.y" +#line 3370 "parser.y" {(yyval.node) = mknode2(&node_in, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 304: + case 305: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3315 "parser.y" +#line 3371 "parser.y" {(yyval.node) = mknode2(&node_as, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 305: + case 306: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3316 "parser.y" +#line 3372 "parser.y" {(yyval.node) = mknode2(&node_instanceof, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 306: + case 307: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3317 "parser.y" +#line 3373 "parser.y" {(yyval.node) = mknode2(&node_is, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 307: + case 308: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3318 "parser.y" +#line 3374 "parser.y" {(yyval.node) = mknode1(&node_typeof, (yyvsp[(2) - (2)].node));} } break; - case 308: + case 309: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3319 "parser.y" +#line 3375 "parser.y" {(yyval.node) = mknode1(&node_void, (yyvsp[(2) - (2)].node));} } break; - case 309: + case 310: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3320 "parser.y" +#line 3376 "parser.y" { (yyval.node) = mkconstnode(constant_new_undefined());} } break; - case 310: + case 311: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3321 "parser.y" +#line 3377 "parser.y" { (yyval.node)=(yyvsp[(2) - (3)].node);} } break; - case 311: + case 312: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3322 "parser.y" +#line 3378 "parser.y" {(yyval.node) = mknode1(&node_neg, (yyvsp[(2) - (2)].node));} } break; - case 312: + case 313: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3323 "parser.y" +#line 3379 "parser.y" {(yyval.node) = mknode2(&node_arraylookup, (yyvsp[(1) - (4)].node),(yyvsp[(3) - (4)].node));} } break; - case 313: + case 314: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3324 "parser.y" +#line 3380 "parser.y" {(yyval.node) = mknode2(&node_muleq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 314: + case 315: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3325 "parser.y" +#line 3381 "parser.y" {(yyval.node) = mknode2(&node_modeq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 315: + case 316: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3326 "parser.y" +#line 3382 "parser.y" {(yyval.node) = mknode2(&node_shleq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 316: + case 317: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3327 "parser.y" +#line 3383 "parser.y" {(yyval.node) = mknode2(&node_shreq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 317: + case 318: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3328 "parser.y" +#line 3384 "parser.y" {(yyval.node) = mknode2(&node_ushreq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 318: + case 319: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3329 "parser.y" +#line 3385 "parser.y" { (yyval.node) = mknode2(&node_diveq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 319: + case 320: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3330 "parser.y" +#line 3386 "parser.y" { (yyval.node) = mknode2(&node_bitoreq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 320: + case 321: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3331 "parser.y" +#line 3387 "parser.y" { (yyval.node) = mknode2(&node_bitxoreq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 321: + case 322: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3332 "parser.y" +#line 3388 "parser.y" { (yyval.node) = mknode2(&node_bitandeq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 322: + case 323: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3333 "parser.y" +#line 3389 "parser.y" { (yyval.node) = mknode2(&node_pluseq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 323: + case 324: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3334 "parser.y" +#line 3390 "parser.y" { (yyval.node) = mknode2(&node_minuseq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 324: + case 325: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3335 "parser.y" +#line 3391 "parser.y" { (yyval.node) = mknode2(&node_assign, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} } break; - case 325: + case 326: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3336 "parser.y" +#line 3392 "parser.y" { (yyval.node) = mknode3(&node_tenary, (yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node));} } break; - case 326: + case 327: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3338 "parser.y" +#line 3394 "parser.y" { (yyval.node) = mknode1(&node_rplusplus, (yyvsp[(1) - (2)].node));} } break; - case 327: + case 328: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3339 "parser.y" +#line 3395 "parser.y" { (yyval.node) = mknode1(&node_rminusminus, (yyvsp[(1) - (2)].node));} } break; - case 328: + case 329: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3340 "parser.y" +#line 3396 "parser.y" {(yyval.node) = mknode1(&node_lplusplus, (yyvsp[(2) - (2)].node)); } } break; - case 329: + case 330: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3341 "parser.y" +#line 3397 "parser.y" {(yyval.node) = mknode1(&node_lminusminus, (yyvsp[(2) - (2)].node)); } } break; - case 330: + case 331: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3344 "parser.y" +#line 3400 "parser.y" { if(!state->cls->info) syntaxerror("super keyword not allowed outside a class"); classinfo_t*t = state->cls->info->superclass; @@ -8274,11 +8363,11 @@ PASS12 - case 331: + case 332: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3358 "parser.y" +#line 3414 "parser.y" { typedcode_t v; multiname_t m = {MULTINAMEA, 0, &nopackage_namespace_set, (yyvsp[(2) - (2)].id)}; @@ -8291,22 +8380,22 @@ PASS12 - case 332: + case 333: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3366 "parser.y" +#line 3422 "parser.y" {PASS12 new_state();state->xmlfilter=1;} } break; - case 333: + case 334: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3366 "parser.y" +#line 3422 "parser.y" { PASS1 old_state(); PASS2 @@ -8353,7 +8442,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; @@ -8365,55 +8454,55 @@ PASS12 - case 334: + case 335: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3420 "parser.y" +#line 3476 "parser.y" {(yyval.id)=(yyvsp[(1) - (1)].id);} } break; - case 335: + case 336: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3421 "parser.y" +#line 3477 "parser.y" {(yyval.id)="*";} } break; - case 336: + case 337: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3422 "parser.y" +#line 3478 "parser.y" {(yyval.id)=(char*)(yyvsp[(1) - (1)].id);} } break; - case 338: + case 339: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3424 "parser.y" +#line 3480 "parser.y" {(yyval.id)="*";} } break; - case 339: + case 340: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3432 "parser.y" +#line 3488 "parser.y" { typedcode_t v = node_read((yyvsp[(1) - (5)].node)); typedcode_t w = node_read(resolve_identifier((yyvsp[(3) - (5)].id))); @@ -8437,11 +8526,11 @@ PASS12 - case 340: + case 341: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3450 "parser.y" +#line 3506 "parser.y" { typedcode_t v = node_read((yyvsp[(1) - (3)].node)); multiname_t m = {MULTINAME, 0, &nopackage_namespace_set, (yyvsp[(3) - (3)].id)}; @@ -8454,11 +8543,11 @@ PASS12 - case 341: + case 342: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3457 "parser.y" +#line 3513 "parser.y" { typedcode_t v = node_read((yyvsp[(1) - (5)].node)); typedcode_t w = node_read((yyvsp[(4) - (5)].node)); @@ -8474,11 +8563,11 @@ PASS12 - case 342: + case 343: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3468 "parser.y" +#line 3524 "parser.y" { typedcode_t v = node_read((yyvsp[(1) - (4)].node)); multiname_t m = {MULTINAMEA, 0, &nopackage_namespace_set, (yyvsp[(4) - (4)].id)}; @@ -8491,11 +8580,11 @@ PASS12 - case 343: + case 344: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3475 "parser.y" +#line 3531 "parser.y" { typedcode_t v = node_read((yyvsp[(1) - (4)].node)); multiname_t m = {MULTINAMEA, 0, &nopackage_namespace_set, (yyvsp[(4) - (4)].id)}; @@ -8508,11 +8597,11 @@ PASS12 - case 344: + case 345: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3482 "parser.y" +#line 3538 "parser.y" { typedcode_t v = node_read((yyvsp[(1) - (6)].node)); typedcode_t w = node_read((yyvsp[(5) - (6)].node)); @@ -8528,11 +8617,11 @@ PASS12 - case 345: + case 346: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3492 "parser.y" +#line 3548 "parser.y" { typedcode_t v = node_read((yyvsp[(1) - (6)].node)); typedcode_t w = node_read((yyvsp[(5) - (6)].node)); @@ -8548,11 +8637,11 @@ PASS12 - case 346: + case 347: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3503 "parser.y" +#line 3559 "parser.y" { typedcode_t v1 = node_read((yyvsp[(1) - (3)].node)); (yyval.value).c = v1.c; @@ -8579,7 +8668,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); @@ -8620,11 +8711,11 @@ PASS12 - case 347: + case 348: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3681 "parser.y" +#line 3739 "parser.y" { PASS1 /* Queue unresolved identifiers for checking against the parent @@ -8636,9 +8727,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)); @@ -8654,11 +8743,11 @@ PASS12 - case 348: + case 349: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3717 "parser.y" +#line 3773 "parser.y" { PASS12 NEW(namespace_decl_t,n); @@ -8671,11 +8760,11 @@ PASS12 - case 349: + case 350: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3724 "parser.y" +#line 3780 "parser.y" { PASS12 NEW(namespace_decl_t,n); @@ -8688,11 +8777,11 @@ PASS12 - case 350: + case 351: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3731 "parser.y" +#line 3787 "parser.y" { PASS12 NEW(namespace_decl_t,n); @@ -8705,11 +8794,11 @@ PASS12 - case 351: + case 352: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3738 "parser.y" +#line 3794 "parser.y" { PASS12 trie_put(active_namespaces, (yyvsp[(2) - (2)].namespace_decl)->name, (void*)(yyvsp[(2) - (2)].namespace_decl)->url); @@ -8736,11 +8825,11 @@ PASS12 - case 352: + case 353: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3761 "parser.y" +#line 3817 "parser.y" { as3_warning("default xml namespaces not supported yet"); (yyval.code) = 0; @@ -8750,11 +8839,11 @@ PASS12 - case 353: + case 354: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3766 "parser.y" +#line 3822 "parser.y" { PASS12 const char*url = (yyvsp[(3) - (3)].classinfo)->name; @@ -8783,7 +8872,7 @@ PASS12 /* Line 1464 of skeleton.m4 */ -#line 8787 "parser.tab.c" +#line 8876 "parser.tab.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); diff --git a/lib/as3/parser.y b/lib/as3/parser.y index d21da23..95a7e17 100644 --- a/lib/as3/parser.y +++ b/lib/as3/parser.y @@ -176,14 +176,14 @@ extern int a3_lex(); %token T_USHR ">>>" %token T_SHR ">>" -%type CONDITIONAL_COMPILATION +%type CONDITIONAL_COMPILATION EMBED_START %type FOR_START %type X_IDENTIFIER PACKAGE FOR_IN_INIT MAYBE_IDENTIFIER ID_OR_NS SUBNODE %type NAMESPACE_ID %type VARCONST %type CODE %type CODEPIECE CODE_STATEMENT -%type CODEBLOCK MAYBECODE MAYBE_CASE_LIST CASE_LIST DEFAULT CASE SWITCH WITH +%type CODEBLOCK IF_CODEBLOCK MAYBECODE MAYBE_CASE_LIST CASE_LIST DEFAULT CASE SWITCH WITH %type PACKAGE_DECLARATION SLOT_DECLARATION SLOT_LIST ONE_SLOT %type FUNCTION_DECLARATION PACKAGE_INITCODE %type VARIABLE_DECLARATION ONE_VARIABLE VARIABLE_LIST THROW @@ -217,7 +217,7 @@ extern int a3_lex(); %type EXTENDS_LIST %type CLASS PACKAGEANDCLASS %type CLASS_SPEC_LIST -%type XML XML2 XMLNODE XMLATTRIBUTE XMLATTRIBUTES MAYBE_XMLATTRIBUTES XMLTEXT XML_ID_OR_EXPR XMLEXPR1 XMLEXPR2 +%type XMLEXPR1 XMLEXPR2 XML2 XMLNODE XMLATTRIBUTE XMLATTRIBUTES MAYBE_XMLATTRIBUTES XMLTEXT XML_ID_OR_EXPR XML %type TYPE //%type VARIABLE %type MEMBER @@ -349,6 +349,7 @@ struct _methodstate { char inner; char uses_parent_function; + char no_variable_scoping; int uses_slots; dict_t*slots; int activation_var; @@ -624,21 +625,26 @@ 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) { @@ -702,10 +708,24 @@ static variable_t* new_variable2(const char*name, classinfo_t*type, char init, c 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(!state->method->no_variable_scoping) + { + if(dict_contains(state->vars, name)) + syntaxerror("variable %s already defined", name); + dict_put(state->vars, name, v); + } + if(state->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); } @@ -729,18 +749,18 @@ int gettempvar() 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; - DICT_ITERATE_DATA(state->vars, variable_t*, v) { + 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); - num++; } } @@ -854,7 +874,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)) { @@ -1402,6 +1422,16 @@ static abc_method_t* endfunction(modifiers_t*mod, enum yytokentype getset, char* methodstate_list_t*ml = state->method->innerfunctions; dict_t*xvars = dict_new(); + + if(state->method->unresolved_variables) { + DICT_ITERATE_KEY(state->method->unresolved_variables, char*, vname) { + if(dict_contains(state->allvars, vname)) { + state->method->no_variable_scoping = 1; + as3_warning("function %s uses forward or outer block variable references (%s): switching into compatiblity mode", name, vname); + break; + } + } + } while(ml) { methodstate_t*m = ml->methodstate; @@ -1418,7 +1448,8 @@ static abc_method_t* endfunction(modifiers_t*mod, enum yytokentype getset, char* dict_put(xvars, id, 0); } } - dict_destroy(m->unresolved_variables);m->unresolved_variables = 0; + dict_destroy(m->unresolved_variables); + m->unresolved_variables = 0; } ml = ml->next; } @@ -1429,7 +1460,7 @@ static abc_method_t* endfunction(modifiers_t*mod, enum yytokentype getset, char* DICT_ITERATE_ITEMS(state->vars, char*, name, variable_t*, v) { if(!name) syntaxerror("internal error"); if(v->index && dict_contains(xvars, name)) { - v->init = 0; + v->init = v->kill = 0; v->index = i; if(v->is_inner_method) { v->is_inner_method->is_a_slot = i; @@ -1932,6 +1963,7 @@ INPACKAGE_CODE: INTERFACE_DECLARATION | SLOT_DECLARATION | PACKAGE_INITCODE | CONDITIONAL_COMPILATION '{' MAYBE_INPACKAGE_CODE_LIST '}' {PASS_ALWAYS as3_pass=$1;} + | '[' EMBED_START E ']' {PASS_ALWAYS as3_pass=$2;PASS1 as3_warning("embed command ignored");} | ';' MAYBECODE: CODE {$$=$1;} @@ -1993,6 +2025,14 @@ PACKAGE_INITCODE: CODE_STATEMENT { } } +/* ------------ embed code ------------- */ + +EMBED_START: %prec above_function { + PASS_ALWAYS + $$ = as3_pass; + as3_pass=0; +} + /* ------------ conditional compilation ------------- */ CONDITIONAL_COMPILATION: T_IDENTIFIER "::" T_IDENTIFIER { @@ -2012,6 +2052,14 @@ CONDITIONAL_COMPILATION: T_IDENTIFIER "::" T_IDENTIFIER { { 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; + } }; MAYBEEXPRESSION : '=' E {$$=$2;} @@ -2034,76 +2082,78 @@ PASS2 char slot = 0; int index = 0; + variable_t*v = 0; if(state->method->uses_slots) { - variable_t* v = find_slot(state, $1); + v = find_slot(state, $1); if(v && !v->init) { // this variable is stored in a slot v->init = 1; v->type = $2; slot = 1; - index = v->index; } } - if(!index) { - index = new_variable($1, $2, 1, 0); + if(!v) { + v = new_variable2($1, $2, 1, 0); } $$ = slot?abc_getscopeobject(0, 1):0; - typedcode_t v = node_read($3); - if(!is_subtype_of(v.t, $2)) { - syntaxerror("Can't convert %s to %s", v.t->name, $2->name); + typedcode_t val = node_read($3); + if(!is_subtype_of(val.t, $2)) { + syntaxerror("Can't convert %s to %s", val.t->name, $2->name); } if($2) { - if(v.c->prev || v.c->opcode != OPCODE_PUSHUNDEFINED) { - $$ = code_append($$, v.c); - $$ = converttype($$, v.t, $2); + if(val.c->prev || val.c->opcode != OPCODE_PUSHUNDEFINED) { + $$ = code_append($$, val.c); + $$ = converttype($$, val.t, $2); } else { - code_free(v.c); + code_free(val.c); $$ = defaultvalue($$, $2); } } else { - if(v.c->prev || v.c->opcode != OPCODE_PUSHUNDEFINED) { - $$ = code_append($$, v.c); + if(val.c->prev || val.c->opcode != OPCODE_PUSHUNDEFINED) { + $$ = code_append($$, val.c); $$ = abc_coerce_a($$); } else { // don't do anything - code_free(v.c); + code_free(val.c); code_free($$); $$ = 0; break; } } if(slot) { - $$ = abc_setslot($$, index); + $$ = abc_setslot($$, v->index); } else { - $$ = abc_setlocal($$, index); + $$ = abc_setlocal($$, v->index); + v->init = do_init_variable($1); } } /* ------------ control flow ------------------------- */ +IF_CODEBLOCK: {PASS12 new_state();} CODEBLOCK { + $$ = var_block($2, state->vars); + PASS12 old_state(); +} MAYBEELSE: %prec below_else {$$ = code_new();} -MAYBEELSE: "else" CODEBLOCK {$$=$2;} +MAYBEELSE: "else" IF_CODEBLOCK {$$=$2;} //MAYBEELSE: ';' "else" CODEBLOCK {$$=$3;} -IF : "if" '(' {PASS12 new_state();} EXPRESSION ')' CODEBLOCK MAYBEELSE { - +IF : "if" '(' EXPRESSION ')' IF_CODEBLOCK MAYBEELSE { $$ = code_new(); - $$ = code_append($$, $4.c); + $$ = code_append($$, $3.c); code_t*myjmp,*myif = $$ = abc_iffalse($$, 0); - $$ = code_append($$, $6); - if($7) { + $$ = code_append($$, $5); + if($6) { myjmp = $$ = abc_jump($$, 0); } myif->branch = $$ = abc_nop($$); - if($7) { - $$ = code_append($$, $7); + if($6) { + $$ = code_append($$, $6); myjmp->branch = $$ = abc_nop($$); } - $$ = var_block($$); - PASS12 old_state(); } FOR_INIT : {$$=code_new();} @@ -2125,7 +2175,7 @@ FOR_IN_INIT : T_IDENTIFIER { FOR_START : T_FOR '(' {PASS12 new_state();$$.name=$1;$$.each=0;} FOR_START : T_FOR "each" '(' {PASS12 new_state();$$.name=$1;$$.each=1;} -FOR : FOR_START FOR_INIT ';' EXPRESSION ';' VOIDEXPRESSION ')' CODEBLOCK { +FOR : FOR_START FOR_INIT ';' EXPRESSION ';' VOIDEXPRESSION ')' IF_CODEBLOCK { if($1.each) syntaxerror("invalid syntax: ; not allowed in for each statement"); $$ = code_new(); $$ = code_append($$, $2); @@ -2141,20 +2191,17 @@ FOR : FOR_START FOR_INIT ';' EXPRESSION ';' VOIDEXPRESSION ')' CODEBLOCK { continuejumpsto($$, $1.name, cont); myif->branch = out; - $$ = var_block($$); + $$ = var_block($$, state->vars); PASS12 old_state(); } -FOR_IN : FOR_START FOR_IN_INIT "in" EXPRESSION ')' CODEBLOCK { +FOR_IN : FOR_START FOR_IN_INIT "in" EXPRESSION ')' IF_CODEBLOCK { variable_t*var = find_variable(state, $2); if(!var) { syntaxerror("variable %s not known in this scope", $2); } - - char*tmp1name = concat2($2, "__tmp1__"); - int it = new_variable(tmp1name, TYPE_INT, 0, 0); - char*tmp2name = concat2($2, "__array__"); - int array = new_variable(tmp1name, 0, 0, 0); + int it = alloc_local(); + int array = alloc_local(); $$ = code_new(); $$ = code_append($$, $4.c); @@ -2185,46 +2232,38 @@ FOR_IN : FOR_START FOR_IN_INIT "in" EXPRESSION ')' CODEBLOCK { myif->branch = out; - $$ = var_block($$); - - free(tmp1name); - free(tmp2name); + $$ = abc_kill($$, it); + $$ = abc_kill($$, array); PASS12 old_state(); } -WHILE : T_WHILE '(' {PASS12 new_state();} EXPRESSION ')' CODEBLOCK { +WHILE : T_WHILE '(' EXPRESSION ')' IF_CODEBLOCK { $$ = code_new(); code_t*myjmp = $$ = abc_jump($$, 0); code_t*loopstart = $$ = abc_label($$); - $$ = code_append($$, $6); + $$ = code_append($$, $5); code_t*cont = $$ = abc_nop($$); myjmp->branch = cont; - $$ = code_append($$, $4.c); + $$ = code_append($$, $3.c); $$ = abc_iftrue($$, loopstart); code_t*out = $$ = abc_nop($$); breakjumpsto($$, $1, out); continuejumpsto($$, $1, cont); - - $$ = var_block($$); - PASS12 old_state(); } -DO_WHILE : T_DO {PASS12 new_state();} CODEBLOCK "while" '(' EXPRESSION ')' { +DO_WHILE : T_DO IF_CODEBLOCK "while" '(' EXPRESSION ')' { $$ = code_new(); code_t*loopstart = $$ = abc_label($$); - $$ = code_append($$, $3); + $$ = code_append($$, $2); code_t*cont = $$ = abc_nop($$); - $$ = code_append($$, $6.c); + $$ = code_append($$, $5.c); $$ = abc_iftrue($$, loopstart); code_t*out = $$ = abc_nop($$); breakjumpsto($$, $1, out); continuejumpsto($$, $1, cont); - - $$ = var_block($$); - PASS12 old_state(); } BREAK : "break" %prec prec_none { @@ -2286,7 +2325,7 @@ SWITCH : T_SWITCH '(' {PASS12 new_state();state->switch_var=alloc_local();} E ') c=c->prev; } - $$ = var_block($$); + $$ = var_block($$, state->vars); PASS12 old_state(); } @@ -2314,11 +2353,11 @@ CATCH: "catch" '(' T_IDENTIFIER MAYBETYPE ')' {PASS12 new_state(); c = code_append(c, $8); c = abc_kill(c, i); - c = var_block(c); + c = var_block(c, state->vars); PASS12 old_state(); } FINALLY: "finally" '{' {PASS12 new_state();state->exception_name=0;} MAYBECODE '}' { - $4 = var_block($4); + $4 = var_block($4, state->vars); if(!$4) { $$=0; } else { @@ -2368,7 +2407,7 @@ TRY : "try" '{' {PASS12 new_state(); int tmp; if($6.finally) - tmp = new_variable("__finally__", 0, 0, 0); + tmp = alloc_local(); abc_exception_list_t*l = $6.l; int count=0; @@ -2396,7 +2435,7 @@ TRY : "try" '{' {PASS12 new_state(); list_concat(state->method->exceptions, $6.l); - $$ = var_block($$); + $$ = var_block($$, state->vars); PASS12 old_state(); } @@ -2781,66 +2820,97 @@ CONSTANT : KW_NAN {$$ = constant_new_float(__builtin_nan(""));} static int xml_level = 0; }; -XML: XMLNODE +XML: XMLNODE { + 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($1).c); + v.c = abc_construct(v.c, 1); + v.t = TYPE_XML; + $$ = mkcodenode(v); +} OPEN : '<' {PASS_ALWAYS if(!xml_level++) tokenizer_begin_xml();} CLOSE : '>' {PASS_ALWAYS tokenizer_begin_xmltext();} CLOSE2 : {PASS_ALWAYS if(!--xml_level) tokenizer_end_xml(); else tokenizer_begin_xmltext();} XMLEXPR1 : '{' E {PASS_ALWAYS tokenizer_begin_xmltext();} '}' { - $$=strdup("{...}"); - as3_warning("xml string substitution not yet supported"); + $$ = $2; } XMLEXPR2 : '{' E {PASS_ALWAYS tokenizer_begin_xml();} '}' { - $$=strdup("{...}"); - as3_warning("xml string substitution not yet supported"); + $$ = $2; } -XMLTEXT : {$$="";} +XMLTEXT : {$$=mkstringnode("");} XMLTEXT : XMLTEXT XMLEXPR1 { - $$ = concat2($1, "{...}"); + $$ = mkaddnode($1,$2); +} +XMLTEXT : XMLTEXT T_STRING { + char* str = string_cstr(&$2); + $$ = mkaddnode($1,mkstringnode(str)); + free(str); +} +XMLTEXT : XMLTEXT '>' { + $$ = mkaddnode($1, mkstringnode(">")); +} +XML2 : XMLNODE XMLTEXT { + $$ = mkaddnode($1,$2); +} +XML2 : XML2 XMLNODE XMLTEXT { + $$ = mkaddnode($1, mkaddnode($2,$3)); +} +XML_ID_OR_EXPR: T_IDENTIFIER { + $$ = mkstringnode($1); +} +XML_ID_OR_EXPR: XMLEXPR2 { + $$ = $1; } -XMLTEXT : XMLTEXT T_STRING {$$=concat2($1, string_cstr(&$2));} -XMLTEXT : XMLTEXT '>' {$$=concat2($1, ">");} - -XML2 : XMLNODE XMLTEXT {$$=concat2($1,$2);} -XML2 : XML2 XMLNODE XMLTEXT {$$=concat3($1,$2,$3);free($1);free($2);free($3);} - -XML_ID_OR_EXPR: T_IDENTIFIER {$$=$1;} -XML_ID_OR_EXPR: XMLEXPR2 {$$=$1;} -XMLNODE : OPEN XML_ID_OR_EXPR MAYBE_XMLATTRIBUTES CLOSE XMLTEXT '<' '/' XML_ID_OR_EXPR CLOSE2 '>' { - $$ = allocprintf("<%s%s>%s", $2, $3, $5, $8); - free($2);free($3);free($5);free($8); +MAYBE_XMLATTRIBUTES: { + $$ = mkstringnode(""); } +MAYBE_XMLATTRIBUTES: XMLATTRIBUTES { + $$ = mkaddnode(mkstringnode(" "),$1); +} + XMLNODE : OPEN XML_ID_OR_EXPR MAYBE_XMLATTRIBUTES '/' CLOSE2 '>' { - $$ = allocprintf("<%s%s/>", $2, $3); + //$$ = allocprintf("<%s%s/>", $2, $3, $5, $8); + $$ = mkaddnode(mkaddnode(mkaddnode(mkstringnode("<"),$2),$3),mkstringnode("/>")); +} +XMLNODE : OPEN XML_ID_OR_EXPR MAYBE_XMLATTRIBUTES CLOSE XMLTEXT '<' '/' XML_ID_OR_EXPR CLOSE2 '>' { + //$$ = allocprintf("<%s%s>%s", $2, $3, $5, $8); + $$ = mkaddnode(mkaddnode(mkaddnode(mkaddnode(mkaddnode(mkaddnode(mkaddnode( + mkstringnode("<"),$2),$3),mkstringnode(">")),$5),mkstringnode("")); } XMLNODE : OPEN XML_ID_OR_EXPR MAYBE_XMLATTRIBUTES CLOSE XMLTEXT XML2 '<' '/' XML_ID_OR_EXPR CLOSE2 '>' { - $$ = allocprintf("<%s%s>%s%s", $2, $3, $5, $6, $9); - free($2);free($3);free($5);free($6);free($9); + //$$ = allocprintf("<%s%s>%s%s", $2, $3, $5, $6, $9); + $$ = mkaddnode(mkaddnode(mkaddnode(mkaddnode(mkaddnode(mkaddnode(mkaddnode(mkaddnode( + mkstringnode("<"),$2),$3),mkstringnode(">")),$5),$6),mkstringnode("")); } -MAYBE_XMLATTRIBUTES: {$$=strdup("");} -MAYBE_XMLATTRIBUTES: XMLATTRIBUTES {$$=concat2(" ",$1);} -XMLATTRIBUTES: XMLATTRIBUTE {$$=$1;} -XMLATTRIBUTES: XMLATTRIBUTES XMLATTRIBUTE {$$=concat3($1," ",$2);free($1);free($2);} - +XMLATTRIBUTES: XMLATTRIBUTE { + $$ = $1; +} +XMLATTRIBUTES: XMLATTRIBUTES XMLATTRIBUTE { + $$ = mkaddnode($1, mkaddnode(mkstringnode(" "),$2)); +} XMLATTRIBUTE: XMLEXPR2 { - $$ = strdup("{...}"); + $$ = $1; } XMLATTRIBUTE: XMLEXPR2 '=' T_STRING { char* str = string_cstr(&$3); - $$ = concat2("{...}=",str); + $$ = mkaddnode($1, mkstringnode(concat2("=",str))); + free(str); } XMLATTRIBUTE: XMLEXPR2 '=' XMLEXPR2 { - $$ = strdup("{...}={...}"); + $$ = mkaddnode($1, mkaddnode(mkstringnode("=\""), mkaddnode($3, mkstringnode("\"")))); } XMLATTRIBUTE: T_IDENTIFIER '=' XMLEXPR2 { - $$ = concat2($1,"={...}"); + $$ = mkaddnode(mkaddnode(mkstringnode(concat2($1,"=\"")), $3), mkstringnode("\"")); } XMLATTRIBUTE: T_IDENTIFIER '=' T_STRING { char* str = string_cstr(&$3); - $$=allocprintf("%s=%s", $1,str); + $$=mkstringnode(allocprintf("%s=%s", $1,str)); free(str); free($1);free((char*)$3.str); } @@ -3222,14 +3292,7 @@ E : CONSTANT { } E : XML { - 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, $1); - v.c = abc_construct(v.c, 1); - v.t = TYPE_XML; - $$ = mkcodenode(v); + $$ = $1; } /* regexp */ @@ -3402,7 +3465,7 @@ E : E '.' '(' {PASS12 new_state();state->xmlfilter=1;} E ')' { 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; @@ -3519,7 +3582,9 @@ MEMBER : E '.' SUBNODE { $$.c = abc_getslot($$.c, f->slot); } else { if(!f) { - as3_softwarning("Access of undefined property '%s' in %s", $3, t->name); + if(!TYPE_IS_XMLLIST(t)) { + as3_softwarning("Access of undefined property '%s' in %s", $3, t->name); + } } MEMBER_MULTINAME(m, f, $3); $$.c = abc_getproperty2($$.c, &m); @@ -3682,9 +3747,7 @@ VAR_READ : T_IDENTIFIER { */ if(!find_variable(state, $1)) { - if(state->method->inner) { - unknown_variable($1); - } + unknown_variable($1); /* let the compiler know that it might want to check the current directory/package for this identifier- maybe there's a file $1.as defining $1. */ as3_schedule_class_noerror(state->package, $1); diff --git a/lib/as3/pool.c b/lib/as3/pool.c index 913a84e..ec089a0 100644 --- a/lib/as3/pool.c +++ b/lib/as3/pool.c @@ -657,7 +657,7 @@ constant_t* constant_new_float(double f) c->type = CONSTANT_FLOAT; return c; } -constant_t* constant_new_string(char*s) +constant_t* constant_new_string(const char*s) { NEW(constant_t,c); c->s = string_new4(s); diff --git a/lib/as3/pool.h b/lib/as3/pool.h index 2a850e9..e279ad9 100644 --- a/lib/as3/pool.h +++ b/lib/as3/pool.h @@ -100,7 +100,7 @@ constant_t* constant_clone(); constant_t* constant_new_int(int x); constant_t* constant_new_uint(unsigned int x); constant_t* constant_new_float(double x); -constant_t* constant_new_string(char*s); +constant_t* constant_new_string(const char*s); constant_t* constant_new_string2(const char*s, int len); constant_t* constant_new_namespace(namespace_t*ns); constant_t* constant_new_true(); diff --git a/lib/q.c b/lib/q.c index 615f2fe..d91d17f 100644 --- a/lib/q.c +++ b/lib/q.c @@ -265,6 +265,7 @@ void* heap_max(heap_t*h) void* heap_chopmax(heap_t*h) { void*p = h->elements[0]; + assert(h->size); h->elements[0] = h->elements[--h->size]; down(h,0); return p; -- 1.7.10.4