From 62a83d162b254d91da418cee25f5b87b067a3f92 Mon Sep 17 00:00:00 2001 From: Matthias Kramm Date: Sun, 5 Apr 2009 21:06:46 +0200 Subject: [PATCH] started integrating expression ast --- lib/as3/code.c | 24 +- lib/as3/mkabc.py | 4 + lib/as3/opcodes.c | 4 +- lib/as3/opcodes.h | 4 +- lib/as3/parser.tab.c | 2853 +++++++++++++++++++++++------------------------- lib/as3/parser.tab.h | 201 ++-- lib/as3/parser.y | 110 +- lib/as3/registry.h | 52 +- lib/as3/tokenizer.lex | 35 +- lib/as3/tokenizer.yy.c | 2159 ++++++++++++++++++------------------ 10 files changed, 2650 insertions(+), 2796 deletions(-) diff --git a/lib/as3/code.c b/lib/as3/code.c index 5e196de..8f2033f 100644 --- a/lib/as3/code.c +++ b/lib/as3/code.c @@ -45,6 +45,7 @@ i = u30 index into method info b = byte c = u30 index into class + N = u30 index into namespaces s = string (u30 index into strings) S = switch u = u30 @@ -166,7 +167,7 @@ opcode_t opcodes[]={ {0x2f, "pushdouble", "f", 0, 1, 0, 0}, //index into floats {0x27, "pushfalse", "", 0, 1, 0, 0}, {0x2d, "pushint", "I", 0, 1, 0, 0}, //index into ints -{0x31, "pushnamespace", "u", 0, 1, 0, 0}, //index into namespace TODO +{0x31, "pushnamespace", "N", 0, 1, 0, 0}, //index into namespace {0x28, "pushnan", "", 0, 1, 0, 0}, {0x20, "pushnull", "", 0, 1, 0, 0}, {0x30, "pushscope", "", -1, 0, 1, 0}, @@ -197,8 +198,7 @@ opcode_t opcodes[]={ {0xa7, "urshift", "", -2, 1, 0, 0}, /* opcodes not documented, but seen in the wild */ -//0x53: seen in builtin.abc -{0x53, "applytype", "n", -1, 1, 0, OP_STACK_ARGS}, +{0x53, "applytype", "n", -1, 1, 0, OP_STACK_ARGS}, //seen in builtin.abc /* dummy instructions. Warning: these are not actually supported by flash */ {0xfb, "__pushpackage__", "s", 0, 1, 0, OP_INTERNAL}, @@ -305,6 +305,8 @@ code_t*code_parse(TAG*tag, int len, abc_file_t*file, pool_t*pool, codelookup_t** data = (void*)(ptroff_t)swf_GetU30(tag); } else if(*p == '2') { //multiname data = multiname_clone(pool_lookup_multiname(pool, swf_GetU30(tag))); + } else if(*p == 'N') { //namespace + data = namespace_clone(pool_lookup_namespace(pool, swf_GetU30(tag))); } else if(*p == 'U') { //uint data = (void*)(ptroff_t)pool_lookup_uint(pool, swf_GetU30(tag)); } else if(*p == 'I') { //int @@ -428,6 +430,8 @@ void code_free(code_t*c) void*data = c->data[pos]; if(*p == '2') { //multiname multiname_destroy(data); + } else if(*p == 'N') { //namespace + namespace_destroy(data); } else if(strchr("sDf", *p)) { free(data); } else if(strchr("S", *p)) { @@ -472,6 +476,9 @@ static int opcode_write(TAG*tag, code_t*c, pool_t*pool, abc_file_t*file, int len } else if(*p == '2') { //multiname multiname_t*m = (multiname_t*)data; len += swf_SetU30(tag, pool_register_multiname(pool, m)); + } else if(*p == 'N') { //namespace + namespace_t*ns = (namespace_t*)data; + len += swf_SetU30(tag, pool_register_namespace(pool, ns)); } else if(*p == 'm') { //method abc_method_t*m = (abc_method_t*)data; len += swf_SetU30(tag, m->index); @@ -631,6 +638,8 @@ static void dumpstack(currentstats_t*stats) } if(op->params[0]=='2') { printf(" %s", multiname_tostring(c->data[0])); + } else if(op->params[0]=='N') { + printf(" %s", namespace_tostring(c->data[0])); } printf("\n"); } @@ -806,6 +815,8 @@ static currentstats_t* code_get_stats(code_t*code, abc_exception_list_t*exceptio printf("%5d) %s %08x\n", t, op->name, c->branch); } else if(op->params[0]=='2') { printf("%5d) %s %s\n", t, op->name, multiname_tostring(c->data[0])); + } else if(op->params[0]=='N') { + printf("%5d) %s %s\n", t, op->name, namespace_tostring(c->data[0])); } else { printf("%5d) %s\n", t, op->name); } @@ -914,6 +925,11 @@ int code_dump2(code_t*c, abc_exception_list_t*exceptions, abc_file_t*file, char* char* m = multiname_tostring(n); fprintf(fo, "%s", m); free(m); + } else if(*p == 'N') { + namespace_t*ns = (namespace_t*)data; + char* m = namespace_tostring(ns); + fprintf(fo, "%s", m); + free(m); } else if(*p == 'm') { abc_method_t*m = (abc_method_t*)data; fprintf(fo, "[method %08x %s]", m->index, m->name); @@ -1103,6 +1119,8 @@ code_t*code_dup(code_t*c) while(*p) { if(*p == '2') { //multiname c->data[pos] = multiname_clone(c->data[pos]); + } else if(*p == 'N') { //multiname + c->data[pos] = namespace_clone(c->data[pos]); } else if(*p == 's') { c->data[pos] = string_dup3(c->data[pos]); } else if(*p == 'D') { diff --git a/lib/as3/mkabc.py b/lib/as3/mkabc.py index 551560a..029ebfc 100644 --- a/lib/as3/mkabc.py +++ b/lib/as3/mkabc.py @@ -66,6 +66,8 @@ for line in fi.readlines(): type,pname="char*","name" else: type,pname="string_t*","s" + elif c == "N": + type,pname="namespace_t*","ns" elif c in "nubs": type,pname="int","v" elif c == "m": @@ -116,6 +118,8 @@ for line in fi.readlines(): foc.write(" self->data[%d] = (void*)(ptroff_t)%s;\n" % (i,pname)) elif(c in "IU"): foc.write(" self->data[%d] = (void*)(ptroff_t)%s;\n" % (i,pname)) + elif(c in "N"): + foc.write(" self->data[%d] = namespace_clone(%s);\n" % (i,pname)) elif(c in "f"): foc.write(" double*fp = malloc(sizeof(double));\n") foc.write(" *fp = %s;\n" % (pname)) diff --git a/lib/as3/opcodes.c b/lib/as3/opcodes.c index 9030f46..93215f0 100644 --- a/lib/as3/opcodes.c +++ b/lib/as3/opcodes.c @@ -775,10 +775,10 @@ code_t* abc_pushint(code_t*prev, int i) self->data[0] = (void*)(ptroff_t)i; return self; } -code_t* abc_pushnamespace(code_t*prev, int v) +code_t* abc_pushnamespace(code_t*prev, namespace_t* ns) { code_t*self = add_opcode(prev, 0x31); - self->data[0] = (void*)(ptroff_t)v; + self->data[0] = namespace_clone(ns); return self; } code_t* abc_pushnan(code_t*prev) diff --git a/lib/as3/opcodes.h b/lib/as3/opcodes.h index 6bc38b8..b95ed07 100644 --- a/lib/as3/opcodes.h +++ b/lib/as3/opcodes.h @@ -402,8 +402,8 @@ code_t* abc_pushfalse(code_t*prev); code_t* abc_pushint(code_t*prev, int i); #define pushint(method,i) (method->code = abc_pushint(method->code,i)) #define OPCODE_PUSHINT 0x2d -code_t* abc_pushnamespace(code_t*prev, int v); -#define pushnamespace(method,v) (method->code = abc_pushnamespace(method->code,v)) +code_t* abc_pushnamespace(code_t*prev, namespace_t* ns); +#define pushnamespace(method,ns) (method->code = abc_pushnamespace(method->code,ns)) #define OPCODE_PUSHNAMESPACE 0x31 code_t* abc_pushnan(code_t*prev); #define pushnan(method) (method->code = abc_pushnan(method->code)) diff --git a/lib/as3/parser.tab.c b/lib/as3/parser.tab.c index d04c869..cfbdb48 100644 --- a/lib/as3/parser.tab.c +++ b/lib/as3/parser.tab.c @@ -90,13 +90,14 @@ #include "code.h" #include "opcodes.h" #include "compiler.h" +#include "ast.h" extern int a3_lex(); /* Line 198 of skeleton.m4 */ -#line 100 "parser.tab.c" +#line 101 "parser.tab.c" /* Enabling traces. */ #ifndef YYDEBUG @@ -130,104 +131,103 @@ extern int a3_lex(); T_EMPTY = 262, T_INT = 263, T_UINT = 264, - T_BYTE = 265, - T_SHORT = 266, - T_FLOAT = 267, - T_FOR = 268, - T_WHILE = 269, - T_DO = 270, - T_SWITCH = 271, - KW_IMPLEMENTS = 272, - KW_NAMESPACE = 273, - KW_PACKAGE = 274, - KW_PROTECTED = 275, - KW_PUBLIC = 276, - KW_PRIVATE = 277, - KW_USE = 278, - KW_INTERNAL = 279, - KW_NEW = 280, - KW_NATIVE = 281, - KW_FUNCTION = 282, - KW_FINALLY = 283, - KW_UNDEFINED = 284, - KW_CONTINUE = 285, - KW_CLASS = 286, - KW_CONST = 287, - KW_CATCH = 288, - KW_CASE = 289, - KW_SET = 290, - KW_VOID = 291, - KW_THROW = 292, - KW_STATIC = 293, - KW_WITH = 294, - KW_INSTANCEOF = 295, - KW_IMPORT = 296, - KW_RETURN = 297, - KW_TYPEOF = 298, - KW_INTERFACE = 299, - KW_NULL = 300, - KW_VAR = 301, - KW_DYNAMIC = 302, - KW_OVERRIDE = 303, - KW_FINAL = 304, - KW_EACH = 305, - KW_GET = 306, - KW_TRY = 307, - KW_SUPER = 308, - KW_EXTENDS = 309, - KW_FALSE = 310, - KW_TRUE = 311, - KW_BOOLEAN = 312, - KW_UINT = 313, - KW_INT = 314, - KW_NUMBER = 315, - KW_STRING = 316, - KW_DEFAULT = 317, - KW_DELETE = 318, - KW_IF = 319, - KW_ELSE = 320, - KW_BREAK = 321, - KW_IS = 322, - KW_IN = 323, - KW_AS = 324, - T_DICTSTART = 325, - T_EQEQ = 326, - T_EQEQEQ = 327, - T_NE = 328, - T_NEE = 329, - T_LE = 330, - T_GE = 331, - T_ORBY = 332, - T_DIVBY = 333, - T_MODBY = 334, - T_MULBY = 335, - T_PLUSBY = 336, - T_MINUSBY = 337, - T_XORBY = 338, - T_SHRBY = 339, - T_SHLBY = 340, - T_USHRBY = 341, - T_OROR = 342, - T_ANDAND = 343, - T_COLONCOLON = 344, - T_MINUSMINUS = 345, - T_PLUSPLUS = 346, - T_DOTDOT = 347, - T_DOTDOTDOT = 348, - T_SHL = 349, - T_USHR = 350, - T_SHR = 351, - prec_none = 352, - below_semicolon = 353, - below_assignment = 354, - below_minus = 356, - minusminus_prefix = 357, - plusplus_prefix = 358, - below_curly = 359, - new2 = 360, - above_identifier = 361, - below_else = 362, - above_function = 363 + T_FLOAT = 265, + T_FOR = 266, + T_WHILE = 267, + T_DO = 268, + T_SWITCH = 269, + KW_IMPLEMENTS = 270, + KW_NAMESPACE = 271, + KW_PACKAGE = 272, + KW_PROTECTED = 273, + KW_PUBLIC = 274, + KW_PRIVATE = 275, + KW_USE = 276, + KW_INTERNAL = 277, + KW_NEW = 278, + KW_NATIVE = 279, + KW_FUNCTION = 280, + KW_FINALLY = 281, + KW_UNDEFINED = 282, + KW_NAN = 283, + KW_CONTINUE = 284, + KW_CLASS = 285, + KW_CONST = 286, + KW_CATCH = 287, + KW_CASE = 288, + KW_SET = 289, + KW_VOID = 290, + KW_THROW = 291, + KW_STATIC = 292, + KW_WITH = 293, + KW_INSTANCEOF = 294, + KW_IMPORT = 295, + KW_RETURN = 296, + KW_TYPEOF = 297, + KW_INTERFACE = 298, + KW_NULL = 299, + KW_VAR = 300, + KW_DYNAMIC = 301, + KW_OVERRIDE = 302, + KW_FINAL = 303, + KW_EACH = 304, + KW_GET = 305, + KW_TRY = 306, + KW_SUPER = 307, + KW_EXTENDS = 308, + KW_FALSE = 309, + KW_TRUE = 310, + KW_BOOLEAN = 311, + KW_UINT = 312, + KW_INT = 313, + KW_NUMBER = 314, + KW_STRING = 315, + KW_DEFAULT = 316, + KW_DELETE = 317, + KW_IF = 318, + KW_ELSE = 319, + KW_BREAK = 320, + KW_IS = 321, + KW_IN = 322, + KW_AS = 323, + T_DICTSTART = 324, + T_EQEQ = 325, + T_EQEQEQ = 326, + T_NE = 327, + T_NEE = 328, + T_LE = 329, + T_GE = 330, + T_ORBY = 331, + T_DIVBY = 332, + T_MODBY = 333, + T_MULBY = 334, + T_PLUSBY = 335, + T_MINUSBY = 336, + T_XORBY = 337, + T_SHRBY = 338, + T_SHLBY = 339, + T_USHRBY = 340, + T_OROR = 341, + T_ANDAND = 342, + T_COLONCOLON = 343, + T_MINUSMINUS = 344, + T_PLUSPLUS = 345, + T_DOTDOT = 346, + T_DOTDOTDOT = 347, + T_SHL = 348, + T_USHR = 349, + T_SHR = 350, + prec_none = 351, + below_semicolon = 352, + below_assignment = 353, + below_minus = 355, + minusminus_prefix = 356, + plusplus_prefix = 357, + below_curly = 358, + new2 = 359, + above_identifier = 360, + below_else = 361, + above_function = 362 }; #endif @@ -236,12 +236,12 @@ extern int a3_lex(); #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union /* Line 223 of skeleton.m4 */ -#line 45 "parser.y" +#line 46 "parser.y" tokenunion { /* Line 223 of skeleton.m4 */ -#line 45 "parser.y" +#line 46 "parser.y" enum yytokentype token; @@ -286,7 +286,7 @@ tokenunion /* Copy the second part of user declarations. */ /* Line 273 of skeleton.m4 */ -#line 267 "parser.y" +#line 266 "parser.y" static int a3_error(char*s) @@ -1632,10 +1632,21 @@ code_t*converttype(code_t*c, classinfo_t*from, classinfo_t*to) if((TYPE_IS_NUMBER(from) || TYPE_IS_UINT(from) || TYPE_IS_INT(from)) && (TYPE_IS_NUMBER(to) || TYPE_IS_UINT(to) || TYPE_IS_INT(to))) { // allow conversion between number types + if(TYPE_IS_UINT(to)) + return abc_convert_u(c); + else if(TYPE_IS_INT(to)) + return abc_convert_i(c); + else if(TYPE_IS_NUMBER(to)) + return abc_convert_d(c); return abc_coerce2(c, &m); } - //printf("%s.%s\n", from.package, from.name); - //printf("%s.%s\n", to.package, to.name); + + if(TYPE_IS_BOOLEAN(to)) + return abc_convert_b(c); + if(TYPE_IS_STRING(to)) + return abc_convert_s(c); + if(TYPE_IS_OBJECT(to)) + return abc_convert_o(c); classinfo_t*supertype = from; while(supertype) { @@ -1661,8 +1672,8 @@ code_t*converttype(code_t*c, classinfo_t*from, classinfo_t*to) return c; as3_error("can't convert type %s%s%s to %s%s%s", - from->package, from->package?".":"", from->name, - to->package, to->package?".":"", to->name); + from->package, from->package[0]?".":"", from->name, + to->package, to->package[0]?".":"", to->name); return c; } @@ -2081,11 +2092,11 @@ code_t* insert_finally(code_t*c, code_t*finally, int tempvar) /* Line 273 of skeleton.m4 */ -#line 2085 "parser.tab.c" +#line 2096 "parser.tab.c" /* Unqualified %code blocks. */ /* Line 274 of skeleton.m4 */ -#line 2149 "parser.y" +#line 2159 "parser.y" char is_subtype_of(classinfo_t*type, classinfo_t*supertype) { @@ -2094,7 +2105,7 @@ code_t* insert_finally(code_t*c, code_t*finally, int tempvar) /* Line 274 of skeleton.m4 */ -#line 2601 "parser.y" +#line 2611 "parser.y" static void state_has_imports() { @@ -2117,7 +2128,7 @@ code_t* insert_finally(code_t*c, code_t*finally, int tempvar) /* Line 274 of skeleton.m4 */ -#line 2734 "parser.y" +#line 2744 "parser.y" static int slotstate_varconst = 0; static modifiers_t*slotstate_flags = 0; @@ -2138,7 +2149,7 @@ code_t* insert_finally(code_t*c, code_t*finally, int tempvar) /* Line 274 of skeleton.m4 */ -#line 3899 "parser.y" +#line 3885 "parser.y" void add_active_url(const char*url) { @@ -2150,7 +2161,7 @@ code_t* insert_finally(code_t*c, code_t*finally, int tempvar) /* Line 274 of skeleton.m4 */ -#line 2154 "parser.tab.c" +#line 2165 "parser.tab.c" #ifdef short # undef short @@ -2363,22 +2374,22 @@ union yyalloc #endif /* YYFINAL -- State number of the termination state. */ -#define YYFINAL 147 +#define YYFINAL 146 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 3001 +#define YYLAST 3050 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 134 +#define YYNTOKENS 133 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 114 +#define YYNNTS 113 /* YYNRULES -- Number of rules. */ -#define YYNRULES 309 +#define YYNRULES 299 /* YYNRULES -- Number of states. */ -#define YYNSTATES 521 +#define YYNSTATES 511 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 363 +#define YYMAXUTOK 362 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -2389,16 +2400,16 @@ static const yytype_uint8 yytranslate[] = 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 118, 2, 2, 2, 116, 108, 2, - 122, 133, 115, 113, 100, 112, 127, 114, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 105, 99, - 109, 102, 110, 104, 128, 2, 2, 2, 2, 2, + 2, 2, 2, 117, 2, 2, 2, 115, 107, 2, + 121, 132, 114, 112, 99, 111, 126, 113, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 104, 98, + 108, 101, 109, 103, 127, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 124, 2, 125, 107, 2, 2, 2, 2, 2, + 2, 123, 2, 124, 106, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 126, 106, 132, 117, 2, 2, 2, + 2, 2, 2, 125, 105, 131, 116, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -2421,8 +2432,8 @@ static const yytype_uint8 yytranslate[] = 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 101, 103, 111, 119, 120, 121, - 123, 129, 130, 131 + 95, 96, 97, 100, 102, 110, 118, 119, 120, 122, + 128, 129, 130 }; #if YYDEBUG @@ -2453,147 +2464,143 @@ static const yytype_uint16 yyprhs[] = 555, 559, 561, 563, 565, 568, 569, 570, 574, 575, 577, 579, 581, 584, 587, 588, 593, 598, 603, 606, 608, 611, 613, 615, 619, 621, 623, 625, 627, 629, - 631, 633, 635, 637, 639, 641, 643, 645, 647, 649, - 651, 653, 655, 659, 663, 667, 671, 675, 679, 683, - 687, 691, 695, 698, 701, 705, 709, 713, 717, 721, - 725, 729, 733, 737, 741, 745, 749, 753, 757, 761, - 766, 769, 771, 775, 778, 783, 787, 788, 790, 794, - 800, 804, 808, 812, 816, 820, 824, 828, 832, 836, - 840, 844, 848, 854, 857, 860, 863, 866, 870, 873, - 878, 884, 888, 894, 898, 900, 903, 908, 913, 916 + 631, 633, 635, 639, 643, 647, 651, 655, 659, 663, + 667, 671, 675, 678, 681, 685, 689, 693, 697, 701, + 705, 709, 713, 717, 721, 725, 729, 733, 737, 741, + 746, 749, 751, 755, 758, 763, 767, 768, 770, 774, + 780, 784, 788, 792, 796, 800, 804, 808, 812, 816, + 820, 824, 828, 834, 837, 840, 843, 846, 850, 853, + 858, 864, 868, 874, 878, 880, 883, 888, 893, 896 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 135, 0, -1, 136, -1, -1, 137, -1, 138, -1, - 137, 138, -1, 186, -1, 198, -1, 196, -1, 217, - -1, 207, -1, 147, -1, 148, 126, 136, 132, -1, - 99, -1, -1, 140, -1, 141, -1, 140, 141, -1, - 198, -1, 196, -1, 217, -1, 207, -1, 147, -1, - 148, 126, 139, 132, -1, 99, -1, 143, -1, -1, - 143, 145, -1, 145, -1, 189, -1, 159, -1, 160, - -1, 161, -1, 163, -1, 171, -1, 154, -1, 183, - -1, 179, -1, 239, -1, 247, -1, 246, -1, 126, - 143, 132, -1, 126, 132, -1, 99, -1, 144, -1, - 150, -1, 165, -1, 166, -1, 236, -1, 181, -1, - 148, 126, 143, 132, -1, 145, 99, -1, 145, -1, - 144, -1, 3, 89, 3, -1, 102, 237, -1, -1, - 46, 151, -1, 32, 151, -1, 152, -1, 151, 100, - 152, -1, 3, 227, 149, -1, -1, 65, 146, -1, - -1, 64, 122, 155, 238, 133, 146, 153, -1, -1, - 150, -1, 239, -1, 46, 3, 227, -1, 3, -1, - 13, 122, -1, 13, 50, 122, -1, 158, 156, 99, - 238, 99, 239, 133, 146, -1, 158, 157, 68, 238, - 133, 146, -1, -1, 14, 122, 162, 238, 133, 146, - -1, -1, 15, 164, 146, 14, 122, 238, 133, -1, - 66, -1, 66, 3, -1, 30, -1, 30, 3, -1, - -1, 168, -1, 170, -1, 168, 170, -1, 169, -1, - 168, 169, -1, 34, 240, 105, 142, -1, 62, 105, - 142, -1, -1, 16, 122, 172, 240, 133, 126, 167, - 132, -1, -1, 33, 122, 3, 227, 133, 174, 126, - 142, 132, -1, -1, 28, 126, 176, 142, 132, -1, - 173, -1, 177, 173, -1, 177, -1, 177, 175, -1, - 175, -1, -1, 52, 126, 180, 142, 132, 178, -1, - 37, 238, -1, 37, -1, 39, 122, 238, 133, -1, - 182, 146, -1, 3, -1, 19, -1, 4, -1, 185, - 127, 184, -1, 184, -1, -1, 19, 185, 126, 187, - 139, 132, -1, -1, 19, 126, 188, 139, 132, -1, - 41, 223, -1, 41, 185, 127, 115, -1, -1, 191, - -1, 192, -1, 191, 192, -1, 21, -1, 22, -1, - 20, -1, 38, -1, 47, -1, 49, -1, 48, -1, - 26, -1, 24, -1, 4, -1, -1, 54, 224, -1, - -1, 54, 225, -1, -1, 17, 225, -1, -1, 190, - 31, 3, 193, 195, 126, 197, 200, 132, -1, -1, - 190, 44, 3, 194, 126, 199, 203, 132, -1, -1, - 201, -1, 202, -1, 201, 202, -1, 99, -1, 148, - 126, 200, 132, -1, 207, -1, 217, -1, 144, -1, - -1, 204, -1, 205, -1, 204, 205, -1, 99, -1, - 46, 3, -1, 190, 27, 216, 3, 122, 213, 133, - 227, -1, 46, -1, 32, -1, -1, 190, 206, 208, - 209, -1, 210, -1, 209, 100, 210, -1, 3, 227, - 149, -1, -1, 102, 212, -1, 10, -1, 8, -1, - 9, -1, 12, -1, 5, -1, 56, -1, 55, -1, - 45, -1, 3, -1, -1, 214, -1, 93, 215, -1, - 214, 100, 93, 215, -1, 214, 100, 215, -1, 215, - -1, 3, 105, 226, 211, -1, 3, 211, -1, 51, - -1, 35, -1, -1, -1, 190, 27, 216, 3, 122, - 213, 133, 227, 126, 218, 142, 132, -1, 3, -1, - -1, -1, 27, 219, 122, 213, 133, 227, 126, 221, - 142, 132, -1, 184, -1, 185, 127, 184, -1, 223, - -1, 222, -1, 224, -1, 225, 100, 224, -1, 224, - -1, 115, -1, 36, -1, 105, 226, -1, -1, -1, - 122, 229, 133, -1, -1, 230, -1, 231, -1, 237, - -1, 230, 100, -1, 231, 237, -1, -1, 25, 240, - 232, 228, -1, 240, 122, 229, 133, -1, 53, 122, - 229, 133, -1, 63, 240, -1, 42, -1, 42, 238, - -1, 240, -1, 240, -1, 238, 100, 240, -1, 238, - -1, 220, -1, 241, -1, 244, -1, 233, -1, 235, - -1, 234, -1, 6, -1, 10, -1, 11, -1, 8, - -1, 9, -1, 12, -1, 5, -1, 29, -1, 56, - -1, 55, -1, 45, -1, 240, 109, 240, -1, 240, - 110, 240, -1, 240, 75, 240, -1, 240, 76, 240, - -1, 240, 71, 240, -1, 240, 72, 240, -1, 240, - 74, 240, -1, 240, 73, 240, -1, 240, 87, 240, - -1, 240, 88, 240, -1, 118, 240, -1, 117, 240, - -1, 240, 108, 240, -1, 240, 107, 240, -1, 240, - 106, 240, -1, 240, 96, 240, -1, 240, 95, 240, - -1, 240, 94, 240, -1, 240, 114, 240, -1, 240, - 116, 240, -1, 240, 113, 240, -1, 240, 112, 240, - -1, 240, 115, 240, -1, 240, 68, 240, -1, 240, - 69, 240, -1, 240, 40, 240, -1, 240, 67, 240, - -1, 43, 122, 240, 133, -1, 36, 240, -1, 36, - -1, 122, 238, 133, -1, 112, 240, -1, 240, 124, - 240, 125, -1, 124, 229, 125, -1, -1, 243, -1, - 237, 105, 237, -1, 243, 100, 237, 105, 237, -1, - 70, 242, 132, -1, 240, 80, 240, -1, 240, 79, - 240, -1, 240, 85, 240, -1, 240, 84, 240, -1, - 240, 86, 240, -1, 240, 78, 240, -1, 240, 77, - 240, -1, 240, 83, 240, -1, 240, 81, 240, -1, - 240, 82, 240, -1, 240, 102, 240, -1, 240, 104, - 240, 105, 240, -1, 240, 91, -1, 240, 90, -1, - 91, 240, -1, 90, 240, -1, 53, 127, 3, -1, - 128, 3, -1, 240, 127, 128, 3, -1, 240, 127, - 3, 89, 3, -1, 240, 92, 3, -1, 240, 127, - 122, 240, 133, -1, 240, 127, 3, -1, 3, -1, - 18, 3, -1, 18, 3, 102, 3, -1, 18, 3, - 102, 5, -1, 190, 245, -1, 23, 18, 224, -1 + 134, 0, -1, 135, -1, -1, 136, -1, 137, -1, + 136, 137, -1, 185, -1, 197, -1, 195, -1, 216, + -1, 206, -1, 146, -1, 147, 125, 135, 131, -1, + 98, -1, -1, 139, -1, 140, -1, 139, 140, -1, + 197, -1, 195, -1, 216, -1, 206, -1, 146, -1, + 147, 125, 138, 131, -1, 98, -1, 142, -1, -1, + 142, 144, -1, 144, -1, 188, -1, 158, -1, 159, + -1, 160, -1, 162, -1, 170, -1, 153, -1, 182, + -1, 178, -1, 238, -1, 245, -1, 244, -1, 125, + 142, 131, -1, 125, 131, -1, 98, -1, 143, -1, + 149, -1, 164, -1, 165, -1, 235, -1, 180, -1, + 147, 125, 142, 131, -1, 144, 98, -1, 144, -1, + 143, -1, 3, 88, 3, -1, 101, 236, -1, -1, + 45, 150, -1, 31, 150, -1, 151, -1, 150, 99, + 151, -1, 3, 226, 148, -1, -1, 64, 145, -1, + -1, 63, 121, 154, 237, 132, 145, 152, -1, -1, + 149, -1, 238, -1, 45, 3, 226, -1, 3, -1, + 11, 121, -1, 11, 49, 121, -1, 157, 155, 98, + 237, 98, 238, 132, 145, -1, 157, 156, 67, 237, + 132, 145, -1, -1, 12, 121, 161, 237, 132, 145, + -1, -1, 13, 163, 145, 12, 121, 237, 132, -1, + 65, -1, 65, 3, -1, 29, -1, 29, 3, -1, + -1, 167, -1, 169, -1, 167, 169, -1, 168, -1, + 167, 168, -1, 33, 239, 104, 141, -1, 61, 104, + 141, -1, -1, 14, 121, 171, 239, 132, 125, 166, + 131, -1, -1, 32, 121, 3, 226, 132, 173, 125, + 141, 131, -1, -1, 26, 125, 175, 141, 131, -1, + 172, -1, 176, 172, -1, 176, -1, 176, 174, -1, + 174, -1, -1, 51, 125, 179, 141, 131, 177, -1, + 36, 237, -1, 36, -1, 38, 121, 237, 132, -1, + 181, 145, -1, 3, -1, 17, -1, 4, -1, 184, + 126, 183, -1, 183, -1, -1, 17, 184, 125, 186, + 138, 131, -1, -1, 17, 125, 187, 138, 131, -1, + 40, 222, -1, 40, 184, 126, 114, -1, -1, 190, + -1, 191, -1, 190, 191, -1, 19, -1, 20, -1, + 18, -1, 37, -1, 46, -1, 48, -1, 47, -1, + 24, -1, 22, -1, 4, -1, -1, 53, 223, -1, + -1, 53, 224, -1, -1, 15, 224, -1, -1, 189, + 30, 3, 192, 194, 125, 196, 199, 131, -1, -1, + 189, 43, 3, 193, 125, 198, 202, 131, -1, -1, + 200, -1, 201, -1, 200, 201, -1, 98, -1, 147, + 125, 199, 131, -1, 206, -1, 216, -1, 143, -1, + -1, 203, -1, 204, -1, 203, 204, -1, 98, -1, + 45, 3, -1, 189, 25, 215, 3, 121, 212, 132, + 226, -1, 45, -1, 31, -1, -1, 189, 205, 207, + 208, -1, 209, -1, 208, 99, 209, -1, 3, 226, + 148, -1, -1, 101, 211, -1, 8, -1, 9, -1, + 10, -1, 5, -1, 55, -1, 54, -1, 44, -1, + 27, -1, 28, -1, -1, 213, -1, 92, 214, -1, + 213, 99, 92, 214, -1, 213, 99, 214, -1, 214, + -1, 3, 104, 225, 210, -1, 3, 210, -1, 50, + -1, 34, -1, -1, -1, 189, 25, 215, 3, 121, + 212, 132, 226, 125, 217, 141, 131, -1, 3, -1, + -1, -1, 25, 218, 121, 212, 132, 226, 125, 220, + 141, 131, -1, 183, -1, 184, 126, 183, -1, 222, + -1, 221, -1, 223, -1, 224, 99, 223, -1, 223, + -1, 114, -1, 35, -1, 104, 225, -1, -1, -1, + 121, 228, 132, -1, -1, 229, -1, 230, -1, 236, + -1, 229, 99, -1, 230, 236, -1, -1, 23, 239, + 231, 227, -1, 239, 121, 228, 132, -1, 52, 121, + 228, 132, -1, 62, 239, -1, 41, -1, 41, 237, + -1, 239, -1, 239, -1, 237, 99, 239, -1, 237, + -1, 219, -1, 242, -1, 232, -1, 234, -1, 233, + -1, 211, -1, 6, -1, 239, 108, 239, -1, 239, + 109, 239, -1, 239, 74, 239, -1, 239, 75, 239, + -1, 239, 70, 239, -1, 239, 71, 239, -1, 239, + 73, 239, -1, 239, 72, 239, -1, 239, 86, 239, + -1, 239, 87, 239, -1, 117, 239, -1, 116, 239, + -1, 239, 107, 239, -1, 239, 106, 239, -1, 239, + 105, 239, -1, 239, 95, 239, -1, 239, 94, 239, + -1, 239, 93, 239, -1, 239, 113, 239, -1, 239, + 115, 239, -1, 239, 112, 239, -1, 239, 111, 239, + -1, 239, 114, 239, -1, 239, 67, 239, -1, 239, + 68, 239, -1, 239, 39, 239, -1, 239, 66, 239, + -1, 42, 121, 239, 132, -1, 35, 239, -1, 35, + -1, 121, 237, 132, -1, 111, 239, -1, 239, 123, + 239, 124, -1, 123, 228, 124, -1, -1, 241, -1, + 236, 104, 236, -1, 241, 99, 236, 104, 236, -1, + 69, 240, 131, -1, 239, 79, 239, -1, 239, 78, + 239, -1, 239, 84, 239, -1, 239, 83, 239, -1, + 239, 85, 239, -1, 239, 77, 239, -1, 239, 76, + 239, -1, 239, 82, 239, -1, 239, 80, 239, -1, + 239, 81, 239, -1, 239, 101, 239, -1, 239, 103, + 239, 104, 239, -1, 239, 90, -1, 239, 89, -1, + 90, 239, -1, 89, 239, -1, 52, 126, 3, -1, + 127, 3, -1, 239, 126, 127, 3, -1, 239, 126, + 3, 88, 3, -1, 239, 91, 3, -1, 239, 126, + 121, 239, 132, -1, 239, 126, 3, -1, 3, -1, + 16, 3, -1, 16, 3, 101, 3, -1, 16, 3, + 101, 5, -1, 189, 243, -1, 21, 16, 223, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 2064, 2064, 2066, 2066, 2067, 2068, 2070, 2071, 2072, - 2073, 2074, 2075, 2076, 2077, 2079, 2079, 2080, 2081, 2083, - 2084, 2085, 2086, 2087, 2088, 2089, 2091, 2092, 2094, 2095, - 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, - 2108, 2109, 2110, 2111, 2114, 2115, 2116, 2117, 2118, 2119, - 2120, 2121, 2125, 2126, 2130, 2137, 2156, 2157, 2161, 2162, - 2164, 2165, 2167, 2228, 2229, 2232, 2232, 2251, 2252, 2253, - 2258, 2262, 2267, 2268, 2270, 2290, 2338, 2338, 2357, 2357, - 2372, 2375, 2378, 2381, 2385, 2386, 2387, 2388, 2389, 2390, - 2392, 2403, 2406, 2406, 2437, 2437, 2462, 2462, 2478, 2479, - 2480, 2481, 2489, 2498, 2498, 2547, 2551, 2562, 2572, 2589, - 2590, 2591, 2593, 2594, 2596, 2596, 2598, 2598, 2621, 2635, - 2651, 2652, 2653, 2654, 2661, 2662, 2663, 2664, 2665, 2666, - 2667, 2668, 2669, 2670, 2674, 2675, 2677, 2678, 2680, 2681, - 2685, 2683, 2691, 2689, 2698, 2699, 2700, 2701, 2702, 2703, - 2704, 2705, 2707, 2713, 2714, 2715, 2716, 2717, 2718, 2721, - 2753, 2753, 2755, 2755, 2757, 2758, 2760, 2845, 2846, 2848, - 2849, 2850, 2851, 2852, 2854, 2855, 2856, 2857, 2869, 2873, - 2879, 2885, 2893, 2898, 2904, 2912, 2920, 2921, 2922, 2925, - 2924, 2941, 2942, 2944, 2943, 2967, 2986, 3000, 3001, 3003, - 3004, 3006, 3007, 3008, 3017, 3018, 3022, 3023, 3025, 3026, - 3027, 3029, 3033, 3034, 3039, 3040, 3076, 3122, 3143, 3164, - 3167, 3174, 3175, 3176, 3182, 3188, 3189, 3190, 3191, 3192, - 3194, 3196, 3213, 3218, 3221, 3224, 3227, 3230, 3233, 3236, - 3239, 3242, 3246, 3249, 3252, 3255, 3258, 3261, 3264, 3267, - 3271, 3282, 3300, 3305, 3310, 3315, 3320, 3325, 3329, 3333, - 3338, 3342, 3346, 3355, 3364, 3374, 3379, 3391, 3397, 3402, - 3408, 3414, 3418, 3420, 3431, 3440, 3447, 3448, 3450, 3456, - 3465, 3472, 3484, 3490, 3496, 3502, 3508, 3514, 3520, 3526, - 3539, 3550, 3557, 3570, 3597, 3611, 3625, 3639, 3654, 3661, - 3668, 3675, 3682, 3697, 3754, 3863, 3870, 3877, 3884, 3908 + 0, 2074, 2074, 2076, 2076, 2077, 2078, 2080, 2081, 2082, + 2083, 2084, 2085, 2086, 2087, 2089, 2089, 2090, 2091, 2093, + 2094, 2095, 2096, 2097, 2098, 2099, 2101, 2102, 2104, 2105, + 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, + 2118, 2119, 2120, 2121, 2124, 2125, 2126, 2127, 2128, 2129, + 2130, 2131, 2135, 2136, 2140, 2147, 2166, 2167, 2171, 2172, + 2174, 2175, 2177, 2238, 2239, 2242, 2242, 2261, 2262, 2263, + 2268, 2272, 2277, 2278, 2280, 2300, 2348, 2348, 2367, 2367, + 2382, 2385, 2388, 2391, 2395, 2396, 2397, 2398, 2399, 2400, + 2402, 2413, 2416, 2416, 2447, 2447, 2472, 2472, 2488, 2489, + 2490, 2491, 2499, 2508, 2508, 2557, 2561, 2572, 2582, 2599, + 2600, 2601, 2603, 2604, 2606, 2606, 2608, 2608, 2631, 2645, + 2661, 2662, 2663, 2664, 2671, 2672, 2673, 2674, 2675, 2676, + 2677, 2678, 2679, 2680, 2684, 2685, 2687, 2688, 2690, 2691, + 2695, 2693, 2701, 2699, 2708, 2709, 2710, 2711, 2712, 2713, + 2714, 2715, 2717, 2723, 2724, 2725, 2726, 2727, 2728, 2731, + 2763, 2763, 2765, 2765, 2767, 2768, 2770, 2855, 2856, 2859, + 2860, 2863, 2864, 2865, 2866, 2867, 2868, 2869, 2884, 2888, + 2894, 2900, 2908, 2913, 2919, 2927, 2935, 2936, 2937, 2940, + 2939, 2956, 2957, 2959, 2958, 2982, 3001, 3015, 3016, 3018, + 3019, 3021, 3022, 3023, 3032, 3033, 3037, 3038, 3040, 3041, + 3042, 3044, 3048, 3049, 3054, 3055, 3091, 3137, 3158, 3179, + 3182, 3189, 3190, 3191, 3197, 3203, 3204, 3205, 3206, 3208, + 3210, 3215, 3232, 3235, 3238, 3241, 3244, 3247, 3250, 3253, + 3257, 3268, 3286, 3291, 3296, 3301, 3306, 3311, 3315, 3319, + 3324, 3328, 3332, 3341, 3350, 3360, 3365, 3377, 3383, 3388, + 3394, 3400, 3404, 3406, 3417, 3426, 3433, 3434, 3436, 3442, + 3451, 3458, 3470, 3476, 3482, 3488, 3494, 3500, 3506, 3512, + 3525, 3536, 3543, 3556, 3583, 3597, 3611, 3625, 3640, 3647, + 3654, 3661, 3668, 3683, 3740, 3849, 3856, 3863, 3870, 3894 }; #endif @@ -2603,11 +2610,11 @@ static const yytype_uint16 yyrline[] = static const char *const yytname[] = { "$end", "error", "$undefined", "T_IDENTIFIER", "T_NAMESPACE", - "T_STRING", "T_REGEXP", "T_EMPTY", "T_INT", "T_UINT", "T_BYTE", - "T_SHORT", "T_FLOAT", "\"for\"", "\"while\"", "\"do\"", "\"switch\"", - "\"implements\"", "\"namespace\"", "\"package\"", "\"protected\"", - "\"public\"", "\"private\"", "\"use\"", "\"internal\"", "\"new\"", - "\"native\"", "\"function\"", "\"finally\"", "\"undefined\"", + "T_STRING", "T_REGEXP", "T_EMPTY", "T_INT", "T_UINT", "T_FLOAT", + "\"for\"", "\"while\"", "\"do\"", "\"switch\"", "\"implements\"", + "\"namespace\"", "\"package\"", "\"protected\"", "\"public\"", + "\"private\"", "\"use\"", "\"internal\"", "\"new\"", "\"native\"", + "\"function\"", "\"finally\"", "\"undefined\"", "\"NaN\"", "\"continue\"", "\"class\"", "\"const\"", "\"catch\"", "\"case\"", "\"set\"", "\"void\"", "\"throw\"", "\"static\"", "\"with\"", "\"instanceof\"", "\"import\"", "\"return\"", "\"typeof\"", @@ -2641,15 +2648,15 @@ static const char *const yytname[] = "INTERFACE_DECLARATION", "$@11", "MAYBE_CLASS_BODY", "CLASS_BODY", "CLASS_BODY_ITEM", "MAYBE_INTERFACE_BODY", "INTERFACE_BODY", "IDECLARATION", "VARCONST", "SLOT_DECLARATION", "$@12", "SLOT_LIST", - "ONE_SLOT", "MAYBESTATICCONSTANT", "STATICCONSTANT", "MAYBE_PARAM_LIST", + "ONE_SLOT", "MAYBECONSTANT", "CONSTANT", "MAYBE_PARAM_LIST", "PARAM_LIST", "PARAM", "GETSET", "FUNCTION_DECLARATION", "$@13", "MAYBE_IDENTIFIER", "INNERFUNCTION", "$@14", "CLASS", "PACKAGEANDCLASS", "CLASS_SPEC", "CLASS_SPEC_LIST", "TYPE", "MAYBETYPE", "MAYBE_PARAM_VALUES", "MAYBE_EXPRESSION_LIST", "EXPRESSION_LIST", "EXPRESSION_LIST_AND_COMMA", "XX", "NEW", "FUNCTIONCALL", "DELETE", "RETURN", "NONCOMMAEXPRESSION", "EXPRESSION", "VOIDEXPRESSION", "E", - "CONSTANT", "MAYBE_EXPRPAIR_LIST", "EXPRPAIR_LIST", "VAR_READ", - "NAMESPACE_ID", "NAMESPACE_DECLARATION", "USE_NAMESPACE", 0 + "MAYBE_EXPRPAIR_LIST", "EXPRPAIR_LIST", "VAR_READ", "NAMESPACE_ID", + "NAMESPACE_DECLARATION", "USE_NAMESPACE", 0 }; #endif @@ -2667,48 +2674,47 @@ static const yytype_uint16 yytoknum[] = 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 59, - 44, 354, 61, 355, 63, 58, 124, 94, 38, 60, - 62, 356, 45, 43, 47, 42, 37, 126, 33, 357, - 358, 359, 40, 360, 91, 93, 123, 46, 64, 361, - 362, 363, 125, 41 + 345, 346, 347, 348, 349, 350, 351, 352, 59, 44, + 353, 61, 354, 63, 58, 124, 94, 38, 60, 62, + 355, 45, 43, 47, 42, 37, 126, 33, 356, 357, + 358, 40, 359, 91, 93, 123, 46, 64, 360, 361, + 362, 125, 41 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 134, 135, 136, 136, 137, 137, 138, 138, 138, - 138, 138, 138, 138, 138, 139, 139, 140, 140, 141, - 141, 141, 141, 141, 141, 141, 142, 142, 143, 143, - 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, - 144, 144, 144, 144, 145, 145, 145, 145, 145, 145, - 145, 145, 146, 146, 147, 148, 149, 149, 150, 150, - 151, 151, 152, 153, 153, 155, 154, 156, 156, 156, - 157, 157, 158, 158, 159, 160, 162, 161, 164, 163, - 165, 165, 166, 166, 167, 167, 167, 167, 168, 168, - 169, 170, 172, 171, 174, 173, 176, 175, 177, 177, - 178, 178, 178, 180, 179, 181, 181, 182, 183, 184, - 184, 184, 185, 185, 187, 186, 188, 186, 189, 189, - 190, 190, 191, 191, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 193, 193, 194, 194, 195, 195, - 197, 196, 199, 198, 200, 200, 201, 201, 202, 202, - 202, 202, 202, 203, 203, 204, 204, 205, 205, 205, - 206, 206, 208, 207, 209, 209, 210, 211, 211, 212, - 212, 212, 212, 212, 212, 212, 212, 212, 213, 213, - 213, 213, 214, 214, 215, 215, 216, 216, 216, 218, - 217, 219, 219, 221, 220, 222, 223, 224, 224, 225, - 225, 226, 226, 226, 227, 227, 228, 228, 229, 229, - 229, 230, 231, 230, 232, 233, 234, 234, 235, 236, - 236, 237, 238, 238, 239, 240, 240, 240, 240, 240, - 240, 240, 241, 241, 241, 241, 241, 241, 241, 241, - 241, 241, 240, 240, 240, 240, 240, 240, 240, 240, - 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, - 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, - 240, 240, 240, 240, 240, 240, 242, 242, 243, 243, - 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, - 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, - 240, 240, 240, 240, 244, 245, 245, 245, 246, 247 + 0, 133, 134, 135, 135, 136, 136, 137, 137, 137, + 137, 137, 137, 137, 137, 138, 138, 139, 139, 140, + 140, 140, 140, 140, 140, 140, 141, 141, 142, 142, + 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, + 143, 143, 143, 143, 144, 144, 144, 144, 144, 144, + 144, 144, 145, 145, 146, 147, 148, 148, 149, 149, + 150, 150, 151, 152, 152, 154, 153, 155, 155, 155, + 156, 156, 157, 157, 158, 159, 161, 160, 163, 162, + 164, 164, 165, 165, 166, 166, 166, 166, 167, 167, + 168, 169, 171, 170, 173, 172, 175, 174, 176, 176, + 177, 177, 177, 179, 178, 180, 180, 181, 182, 183, + 183, 183, 184, 184, 186, 185, 187, 185, 188, 188, + 189, 189, 190, 190, 191, 191, 191, 191, 191, 191, + 191, 191, 191, 191, 192, 192, 193, 193, 194, 194, + 196, 195, 198, 197, 199, 199, 200, 200, 201, 201, + 201, 201, 201, 202, 202, 203, 203, 204, 204, 204, + 205, 205, 207, 206, 208, 208, 209, 210, 210, 211, + 211, 211, 211, 211, 211, 211, 211, 211, 212, 212, + 212, 212, 213, 213, 214, 214, 215, 215, 215, 217, + 216, 218, 218, 220, 219, 221, 222, 223, 223, 224, + 224, 225, 225, 225, 226, 226, 227, 227, 228, 228, + 228, 229, 230, 229, 231, 232, 233, 233, 234, 235, + 235, 236, 237, 237, 238, 239, 239, 239, 239, 239, + 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, + 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, + 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, + 239, 239, 239, 239, 239, 239, 240, 240, 241, 241, + 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, + 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, + 239, 239, 239, 239, 242, 243, 243, 243, 244, 245 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -2737,7 +2743,6 @@ static const yytype_uint8 yyr2[] = 3, 1, 1, 1, 2, 0, 0, 3, 0, 1, 1, 1, 2, 2, 0, 4, 4, 4, 2, 1, 2, 1, 1, 3, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, @@ -2752,50 +2757,49 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint16 yydefact[] = { - 120, 304, 133, 237, 231, 234, 235, 232, 233, 236, - 0, 0, 78, 0, 0, 126, 124, 125, 0, 132, - 0, 131, 192, 238, 271, 127, 0, 0, 0, 241, - 128, 130, 129, 0, 0, 240, 239, 0, 0, 276, - 0, 0, 14, 0, 0, 0, 0, 208, 120, 0, - 0, 2, 120, 5, 54, 12, 0, 36, 67, 31, - 32, 33, 34, 35, 38, 120, 37, 7, 30, 0, - 121, 122, 9, 8, 11, 10, 225, 228, 230, 229, - 224, 39, 222, 226, 227, 41, 40, 0, 0, 72, - 76, 120, 92, 109, 111, 110, 116, 113, 0, 0, - 304, 214, 191, 0, 270, 0, 0, 118, 0, 103, - 208, 0, 218, 65, 0, 221, 0, 277, 296, 295, - 273, 253, 252, 0, 0, 209, 210, 211, 82, 0, - 106, 219, 0, 80, 44, 43, 120, 45, 29, 0, - 46, 47, 48, 50, 0, 49, 298, 1, 6, 120, - 304, 0, 68, 0, 0, 69, 53, 108, 0, 188, - 0, 161, 0, 160, 162, 308, 123, 0, 0, 0, + 120, 294, 133, 172, 231, 169, 170, 171, 0, 0, + 78, 0, 0, 126, 124, 125, 0, 132, 0, 131, + 192, 176, 177, 261, 127, 0, 0, 0, 175, 128, + 130, 129, 0, 0, 174, 173, 0, 0, 266, 0, + 0, 14, 0, 0, 0, 0, 208, 120, 0, 0, + 2, 120, 5, 54, 12, 0, 36, 67, 31, 32, + 33, 34, 35, 38, 120, 37, 7, 30, 0, 121, + 122, 9, 8, 11, 230, 10, 225, 227, 229, 228, + 224, 39, 222, 226, 41, 40, 0, 0, 72, 76, + 120, 92, 109, 111, 110, 116, 113, 0, 0, 294, + 214, 191, 0, 260, 0, 0, 118, 0, 103, 208, + 0, 218, 65, 0, 221, 0, 267, 286, 285, 263, + 243, 242, 0, 0, 209, 210, 211, 82, 0, 106, + 219, 0, 80, 44, 43, 120, 45, 29, 0, 46, + 47, 48, 50, 0, 49, 288, 1, 6, 120, 294, + 0, 68, 0, 0, 69, 53, 108, 0, 188, 0, + 161, 0, 160, 162, 298, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 294, 293, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 208, 0, - 0, 55, 73, 0, 0, 0, 120, 114, 0, 195, - 0, 198, 197, 309, 206, 178, 0, 0, 0, 27, - 0, 297, 0, 0, 280, 0, 272, 275, 212, 213, - 83, 205, 59, 60, 105, 220, 58, 81, 42, 28, - 120, 0, 205, 0, 0, 52, 305, 187, 186, 0, - 134, 136, 0, 223, 267, 268, 265, 266, 246, 247, - 249, 248, 244, 245, 287, 286, 282, 281, 289, 290, - 288, 284, 283, 285, 250, 251, 301, 259, 258, 257, - 291, 0, 256, 255, 254, 242, 243, 263, 262, 260, - 264, 261, 0, 0, 303, 0, 0, 0, 0, 0, - 25, 0, 120, 17, 23, 0, 20, 19, 22, 21, - 120, 112, 0, 208, 215, 167, 0, 0, 179, 183, - 107, 119, 196, 269, 0, 26, 217, 0, 278, 0, - 0, 57, 0, 120, 13, 57, 0, 0, 0, 0, - 0, 138, 0, 0, 205, 163, 164, 0, 216, 274, - 0, 0, 299, 120, 0, 0, 117, 18, 120, 0, - 0, 0, 0, 185, 180, 205, 0, 0, 120, 0, - 203, 202, 201, 204, 0, 62, 61, 51, 0, 120, - 306, 307, 178, 135, 0, 0, 199, 137, 142, 57, - 0, 292, 300, 302, 77, 0, 84, 0, 115, 207, - 177, 173, 170, 171, 169, 172, 176, 175, 174, 168, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 284, + 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 208, 0, 0, + 55, 73, 0, 0, 0, 120, 114, 0, 195, 0, + 198, 197, 299, 206, 178, 0, 0, 0, 27, 0, + 287, 0, 0, 270, 0, 262, 265, 212, 213, 83, + 205, 59, 60, 105, 220, 58, 81, 42, 28, 120, + 0, 205, 0, 0, 52, 295, 187, 186, 0, 134, + 136, 0, 223, 257, 258, 255, 256, 236, 237, 239, + 238, 234, 235, 277, 276, 272, 271, 279, 280, 278, + 274, 273, 275, 240, 241, 291, 249, 248, 247, 281, + 0, 246, 245, 244, 232, 233, 253, 252, 250, 254, + 251, 0, 0, 293, 0, 0, 0, 0, 0, 25, + 0, 120, 17, 23, 0, 20, 19, 22, 21, 120, + 112, 0, 208, 215, 167, 0, 0, 179, 183, 107, + 119, 196, 259, 0, 26, 217, 0, 268, 0, 0, + 57, 0, 120, 13, 57, 0, 0, 0, 0, 0, + 138, 0, 0, 205, 163, 164, 0, 216, 264, 0, + 0, 289, 120, 0, 0, 117, 18, 120, 0, 0, + 0, 0, 185, 180, 205, 0, 0, 120, 0, 203, + 202, 201, 204, 0, 62, 61, 51, 0, 120, 296, + 297, 178, 135, 0, 0, 199, 137, 142, 57, 0, + 282, 290, 292, 77, 0, 84, 0, 115, 207, 168, 167, 0, 0, 182, 0, 0, 98, 102, 100, 104, - 63, 279, 56, 0, 75, 0, 139, 140, 0, 120, + 63, 269, 56, 0, 75, 0, 139, 140, 0, 120, 166, 165, 79, 0, 0, 0, 85, 88, 86, 24, 184, 193, 181, 96, 0, 99, 101, 120, 66, 120, 205, 120, 200, 0, 157, 0, 0, 120, 155, 0, @@ -2810,95 +2814,94 @@ static const yytype_uint16 yydefact[] = /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 50, 51, 52, 53, 311, 312, 313, 334, 335, - 137, 138, 157, 314, 139, 385, 140, 246, 243, 458, - 57, 232, 153, 154, 58, 59, 60, 61, 213, 62, - 91, 141, 142, 445, 446, 447, 448, 63, 215, 426, - 510, 427, 475, 428, 429, 64, 229, 143, 65, 66, - 219, 220, 67, 320, 216, 68, 144, 70, 71, 351, - 353, 395, 316, 461, 317, 439, 484, 485, 486, 466, - 467, 468, 164, 318, 262, 355, 356, 373, 419, 327, - 328, 329, 259, 319, 507, 103, 76, 474, 221, 222, - 382, 397, 383, 341, 324, 124, 125, 126, 224, 77, - 78, 79, 145, 127, 80, 81, 82, 83, 116, 117, - 84, 165, 85, 86 + -1, 49, 50, 51, 52, 310, 311, 312, 333, 334, + 136, 137, 156, 313, 138, 384, 139, 245, 242, 448, + 56, 231, 152, 153, 57, 58, 59, 60, 212, 61, + 90, 140, 141, 435, 436, 437, 438, 62, 214, 416, + 500, 417, 465, 418, 419, 63, 228, 142, 64, 65, + 218, 219, 66, 319, 215, 67, 143, 69, 70, 350, + 352, 394, 315, 451, 316, 429, 474, 475, 476, 456, + 457, 458, 163, 317, 261, 354, 355, 372, 74, 326, + 327, 328, 258, 318, 497, 102, 76, 464, 220, 221, + 381, 396, 382, 340, 323, 123, 124, 125, 223, 77, + 78, 79, 144, 126, 80, 81, 82, 115, 116, 83, + 164, 84, 85 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -403 +#define YYPACT_NINF -423 static const yytype_int16 yypact[] = { - 1674, -70, -403, -403, -403, -403, -403, -403, -403, -403, - -15, -72, -403, -52, 19, -403, -403, -403, 80, -403, - 2094, -403, 99, -403, 2164, -403, -16, 42, -5, -403, - -403, -403, -403, -1, 5, -403, -403, 2094, 13, 2094, - 2094, 2094, -403, 2094, 2094, 2094, 2094, 2094, 634, 123, - 128, -403, 504, -403, -403, -403, 8, -403, 2024, -403, - -403, -403, -403, -403, -403, 1926, -403, -403, -403, 240, - 361, -403, -403, -403, -403, -403, -403, -403, -403, -403, - 38, -403, 2569, -403, -403, -403, -403, 137, 20, -403, - -403, 1926, -403, -403, -403, -403, -403, -403, -87, 42, - -403, -67, -403, 21, -48, 2094, 79, -403, 2094, -403, - 2094, 138, -48, -403, 43, 2569, 76, 107, -48, -48, - 604, -48, -48, -29, 84, 110, 2094, -403, 210, 211, - 2094, 2094, 211, 212, -403, -403, 764, -403, -403, 85, - -403, -403, -403, -403, 209, -403, -403, -403, -403, 1024, - 158, 232, -403, 139, 171, -403, 141, -403, 238, 12, - 239, -403, 247, -403, -403, -403, -403, 2094, 2094, 2094, - 2094, 2094, 2094, 2094, 2094, 2094, 2094, 2094, 2094, 2094, - 2094, 2094, 2094, 2094, 2094, 2094, 2094, 2094, 2094, 2094, - -403, -403, 249, 2094, 2094, 2094, 2094, 2094, 2094, 2094, - 2094, 2094, 2094, 2094, 2094, 2094, 2094, 2094, 2094, 2094, - 11, -403, -403, 2094, 229, 2094, 1154, -403, 42, 133, - 135, -403, -403, -403, 142, 15, -10, 90, 2189, 1800, - 130, -403, 2094, 2094, -403, 2094, -403, -403, -403, -403, - -403, 161, 169, -403, 38, 38, 169, -403, -403, -403, - 1926, 149, 161, 2094, 2094, -403, 168, -403, -403, 280, - 231, 233, 286, 2569, 1016, 496, 496, 496, 322, 322, - 322, 322, 1016, 1016, 2569, 2569, 2569, 2569, 2569, 2569, - 2569, 2569, 2569, 2569, 2630, 2691, -403, 368, 368, 368, - 2569, 2386, 2752, 2813, 2874, 1016, 1016, 604, 604, -48, - -48, -48, 157, 2447, 202, 2094, 291, 14, 173, 2260, - -403, 165, 1284, -403, -403, 172, -403, -403, -403, -403, - 1154, -403, 42, 2094, -403, -43, 296, 167, 201, -403, - -403, -403, 175, -403, 174, 1800, -403, 44, -403, 200, - 63, 207, 211, 894, -403, -27, -11, 46, 113, 189, - 42, 298, 42, 190, 161, 217, -403, 2094, -403, -403, - 315, 2323, -403, 1926, 2094, 193, -403, -403, 1154, 192, - 194, 75, 63, -403, -403, 161, 26, 96, 1926, 2094, - -403, -403, -403, -403, 2094, -403, -403, -403, 2094, 1926, - -403, -403, 15, -403, 42, 199, -403, 230, -403, 207, - 286, 2569, -403, -403, -403, 103, 24, 197, -403, -403, - -403, -403, -403, -403, -403, -403, -403, -403, -403, -403, - 234, 205, 296, -403, 206, 213, -403, -403, 96, -403, - 268, -403, -403, 204, -403, 215, 230, -403, 42, 208, - -403, -403, -403, 2094, 236, 214, 24, -403, -403, -403, - -403, -403, -403, -403, 335, -403, -403, 1926, -403, 1926, - 161, 1414, -403, 339, -403, 316, 219, 227, -403, 2508, - 1800, -403, -403, -403, 1800, 1800, 161, -403, -403, 223, - -403, -403, 226, 250, 221, 1544, -403, -403, -403, -403, - 12, -403, -403, 1800, -403, 222, 224, 225, -403, 1414, - -403, -403, 354, -403, -403, -403, -403, 1800, 228, 241, - 235, 243, -403, 15, 1800, -403, 244, 246, 161, -403, - -403 + 1655, -41, -423, -423, -423, -423, -423, -423, -30, -61, + -423, -52, 17, -423, -423, -423, 61, -423, 2098, -423, + 87, -423, -423, 2153, -423, -19, 42, 11, -423, -423, + -423, -423, -1, -3, -423, -423, 2098, 19, 2098, 2098, + 2098, -423, 2098, 2098, 2098, 2098, 2098, 623, 95, 136, + -423, 494, -423, -423, -423, 13, -423, 2028, -423, -423, + -423, -423, -423, -423, 1905, -423, -423, -423, 211, 394, + -423, -423, -423, -423, -423, -423, -423, -423, -423, -423, + 44, -423, 2558, -423, -423, -423, 174, 83, -423, -423, + 1905, -423, -423, -423, -423, -423, -423, 20, 42, -423, + -34, -423, 85, 18, 2098, 79, -423, 2098, -423, 2098, + 204, 18, -423, 105, 2558, 80, 113, 18, 18, -50, + 18, 18, -29, 89, 119, 2098, -423, 217, 226, 2098, + 2098, 226, 230, -423, -423, 752, -423, -423, 109, -423, + -423, -423, -423, 214, -423, -423, -423, -423, 1010, 168, + 234, -423, 140, 172, -423, 142, -423, 245, 16, 247, + -423, 249, -423, -423, -423, -423, 2098, 2098, 2098, 2098, + 2098, 2098, 2098, 2098, 2098, 2098, 2098, 2098, 2098, 2098, + 2098, 2098, 2098, 2098, 2098, 2098, 2098, 2098, 2098, -423, + -423, 250, 2098, 2098, 2098, 2098, 2098, 2098, 2098, 2098, + 2098, 2098, 2098, 2098, 2098, 2098, 2098, 2098, 2098, 10, + -423, -423, 2098, 243, 2098, 1139, -423, 42, 131, 133, + -423, -423, -423, 141, 12, -27, 64, 2178, 1780, 129, + -423, 2098, 2098, -423, 2098, -423, -423, -423, -423, -423, + 159, 166, -423, 44, 44, 166, -423, -423, -423, 1905, + 135, 159, 2098, 2098, -423, 169, -423, -423, 264, 216, + 218, 273, 2558, 486, 313, 313, 313, 2924, 2924, 2924, + 2924, 486, 486, 2558, 2558, 2558, 2558, 2558, 2558, 2558, + 2558, 2558, 2558, 2619, 2680, -423, 359, 359, 359, 2558, + 2375, 2741, 2802, 2863, 486, 486, -50, -50, 18, 18, + 18, 145, 2436, 190, 2098, 277, -16, 160, 2249, -423, + 151, 1268, -423, -423, 158, -423, -423, -423, -423, 1139, + -423, 42, 2098, -423, 21, 281, 153, 187, -423, -423, + -423, 163, -423, 161, 1780, -423, -15, -423, 186, 84, + 192, 226, 881, -423, -23, 29, -2, 130, 173, 42, + 282, 42, 171, 159, 202, -423, 2098, -423, -423, 301, + 2312, -423, 1905, 2098, 180, -423, -423, 1139, 175, 176, + 290, 84, -423, -423, 159, 14, 30, 1905, 2098, -423, + -423, -423, -423, 2098, -423, -423, -423, 2098, 1905, -423, + -423, 12, -423, 42, 185, -423, 224, -423, 192, 273, + 2558, -423, -423, -423, 15, 25, 184, -423, -423, -423, + 215, 199, 281, -423, 201, 207, -423, -423, 30, -423, + 265, -423, -423, 198, -423, 200, 224, -423, 42, 227, + -423, -423, -423, 2098, 231, 205, 25, -423, -423, -423, + -423, -423, -423, -423, 328, -423, -423, 1905, -423, 1905, + 159, 1397, -423, 336, -423, 315, 219, 337, -423, 2497, + 1780, -423, -423, -423, 1780, 1780, 159, -423, -423, 222, + -423, -423, 223, 183, 229, 1526, -423, -423, -423, -423, + 16, -423, -423, 1780, -423, 232, 233, 210, -423, 1397, + -423, -423, 346, -423, -423, -423, -423, 1780, 235, 241, + 228, 240, -423, 12, 1780, -423, 244, 246, 159, -423, + -423 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -403, -403, 218, -403, 312, -299, -403, 61, -402, -31, - 1, -55, -85, 48, 2, -23, 321, 251, 58, -403, - -403, -403, -403, -403, -403, -403, -403, -403, -403, -403, - -403, -403, -403, -403, -403, -62, -60, -403, -403, -40, - -403, -36, -403, -403, -403, -403, -403, -403, -403, -403, - 6, 50, -403, -403, -403, -403, 0, -403, 331, -403, - -403, -403, 49, -403, 51, -403, -96, -403, -80, -403, - -403, -61, -403, 3, -403, -403, 7, 9, -403, -376, - -403, -311, -79, 4, -403, -403, -403, -403, -403, 388, - -91, 25, 52, -239, -403, -98, -403, -403, -403, -403, - -403, -403, -403, -34, -9, -49, -13, -403, -403, -403, - -403, -403, -403, -403 + -423, -423, 238, -423, 321, -282, -423, 67, -422, -25, + 1, -55, -74, 28, 2, -8, 332, 263, 52, -423, + -423, -423, -423, -423, -423, -423, -423, -423, -423, -423, + -423, -423, -423, -423, -423, -40, -39, -423, -423, -18, + -423, -17, -423, -423, -423, -423, -423, -423, -423, -423, + 6, 103, -423, -423, -423, -423, 0, -423, 326, -423, + -423, -423, 48, -423, 49, -423, -90, -423, -70, -423, + -423, -48, -423, 3, -423, -423, 24, 5, 40, -377, + -423, -301, -69, 4, -423, -423, -423, -423, -423, 391, + -91, 26, 59, -240, -423, -97, -423, -423, -423, -423, + -423, -423, -423, -32, -9, -49, -13, -423, -423, -423, + -423, -423, -423 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -2908,612 +2911,622 @@ static const yytype_int16 yypgoto[] = #define YYTABLE_NINF -155 static const yytype_int16 yytable[] = { - 69, 54, 56, 74, 75, 114, 214, 101, 223, 155, - 156, 104, 230, 345, 304, 374, 435, 136, 325, 87, - 97, 369, 93, 94, 112, 192, 115, 118, 119, 325, - 120, 121, 122, 97, 115, 88, 156, 123, 95, 217, - 218, -70, 190, 191, 192, 93, 94, 257, 55, 72, - 90, 73, 69, 54, 56, 74, 75, 209, 443, 371, - 210, 95, 372, 258, 98, 423, 93, 94, 494, 407, - 92, 167, 495, 496, 208, 384, 209, 106, 410, 210, - 411, 249, 95, 412, 413, 414, 444, 415, 388, 167, - 167, 503, 239, 93, 94, 228, 226, 115, 99, 380, - 55, 72, 102, 73, 236, 511, 105, 89, 326, 95, - 302, 452, 517, 115, 167, 399, 390, 108, 391, 422, - 416, 244, 245, 330, 424, 109, 146, 110, 147, 425, - 417, 418, 111, 305, 149, 113, 421, 516, 167, 306, - 211, 231, 212, 225, 167, 96, 167, 363, 233, 69, - 54, 56, 74, 75, 263, 264, 265, 266, 267, 268, + 68, 53, 55, 73, 75, 100, 113, 222, 154, 155, + 103, 344, 229, 303, 425, 324, 213, 324, 96, 87, + 92, 93, 135, 111, 373, 114, 117, 118, 54, 119, + 120, 121, 96, 114, 94, 155, 122, 368, 484, 189, + 190, 191, 485, 486, -70, 92, 93, 86, 71, 72, + 256, 68, 53, 55, 73, 75, 414, 191, 433, 94, + 89, 493, 415, 204, 205, 206, 257, 92, 93, 91, + 166, 207, 166, 208, 413, 501, 209, 98, 383, 54, + 248, 94, 507, 166, 166, 406, 434, 92, 93, 208, + 101, 88, 209, 238, 227, 225, 114, 166, 145, 71, + 72, 94, 104, 235, 325, 329, 412, 189, 190, 191, + 301, 442, 114, 398, 166, 97, 362, 377, 109, 379, + 243, 244, 370, 110, 108, 371, 506, 387, 166, 105, + 388, 304, 107, 389, 411, 390, 146, 305, 148, 207, + 112, 208, 95, 166, 209, 216, 217, 432, 68, 53, + 55, 73, 75, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 378, 381, 389, + 279, 280, 281, 282, 283, 284, 54, 210, 330, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 115, 303, 55, 72, 338, - 73, 339, 309, 167, 307, 331, 227, 235, 234, 237, - 238, 250, 2, 240, 241, 247, 69, 54, 315, 343, - 115, 479, 115, 337, 321, 370, -71, 158, 15, 16, - 17, 2, 19, 332, 21, 252, 442, 497, 253, 254, - 255, 256, 260, 308, 346, 347, 25, 15, 16, 17, - 261, 19, 286, 21, 463, 30, 31, 32, 158, 393, - -113, 396, 322, 336, 323, 25, 340, 159, 158, 342, - 348, 160, 161, 463, 30, 31, 32, 159, 404, 520, - 249, 344, 161, 349, 162, 350, 163, 352, 249, 354, - 358, 360, 361, 430, 362, 364, 163, 366, 368, 325, - 375, 376, -112, 396, 434, 379, 377, 464, 156, 384, - 115, 392, 69, 54, 315, 394, 398, 400, 402, 406, - 69, 54, 315, 156, 408, 437, 464, 409, 332, 449, - 438, 451, 453, 457, 156, 454, 371, 459, 476, 433, - -153, 470, 489, 490, 401, 431, 471, 462, 460, 498, - 432, 491, 499, 500, 504, 405, 505, 509, 506, -154, - 512, 514, 168, 513, 148, 2, 115, 251, 69, 54, - 315, 115, 477, 367, 478, 515, 440, 518, 519, 152, - 242, 15, 16, 17, 472, 19, 473, 21, 455, 169, - 170, 171, 456, -155, -155, -155, -155, 176, 177, 25, - 386, 166, 156, 508, 156, 501, 492, 441, 30, 31, - 32, 502, 190, 191, 192, 107, 193, 194, 195, 436, - 0, 0, 0, 0, 420, 0, 0, 0, 0, 450, - 469, 201, 202, 0, 203, 204, 205, 206, 207, 465, - 0, 0, 0, 0, 208, 0, 209, 0, 0, 210, - 0, 0, 0, 0, 0, 0, 0, 0, 190, 191, - 192, 483, 481, 482, 487, 488, 0, 465, 0, 0, + 297, 298, 299, 300, 114, 302, 71, 72, 380, 157, + 337, 308, 338, 306, 211, 226, 224, 230, 158, 232, + 469, 233, 234, 236, 160, 68, 53, 314, 237, 114, + 239, 114, 336, 320, 342, 369, 487, 157, 162, 240, + 157, 2, 331, 246, 249, -71, 158, 251, 252, 253, + 254, 159, 160, 345, 346, 13, 14, 15, 255, 17, + 259, 19, 260, 285, 161, 307, 162, -113, 392, 321, + 395, 335, 322, 339, 24, 341, 343, 348, 510, 349, + 347, 351, 453, 29, 30, 31, 353, 357, 359, 248, + 361, 363, 365, 367, 324, 374, 375, 248, 403, -112, + 378, 360, 376, 383, 391, 3, 397, 393, 5, 6, + 7, 399, 395, 420, 401, 405, 407, 155, 408, 114, + 427, 68, 53, 314, 424, 439, 370, 21, 22, 68, + 53, 314, 155, 428, 441, 454, 443, 331, 444, 447, + 449, 466, 450, 155, 28, 460, 461, 452, 423, 479, + 480, 2, 496, 400, 34, 35, 421, 488, 489, 499, + 481, 422, 167, 504, 404, 13, 14, 15, -153, 17, + 490, 19, 503, 494, 495, 114, 502, 68, 53, 314, + 114, 505, 147, 467, 24, 468, 508, 509, 366, -155, + -155, -155, 453, 29, 30, 31, 250, 175, 176, 151, + 430, 241, 155, 385, 155, 165, 462, 463, 2, 498, + 445, 446, 189, 190, 191, 491, 192, 193, 194, 482, + 409, 492, 13, 14, 15, 440, 17, 106, 19, 426, + 459, 200, 201, 431, 202, 203, 204, 205, 206, 455, + 410, 24, 0, 0, 207, 454, 208, 0, 0, 209, + 29, 30, 31, 0, 0, 0, 0, 0, 189, 190, + 191, 473, 471, 472, 477, 478, 0, 455, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, -154, 0, + 202, 203, 204, 205, 206, 473, 471, 472, 477, 478, + 207, 0, 208, 0, 0, 209, 0, 0, 0, 473, + 471, 472, 477, 478, -4, 0, 0, 1, 2, 3, + 4, 0, 5, 6, 7, 8, 9, 10, 11, 0, + 0, 12, 13, 14, 15, 16, 17, 18, 19, 0, + 0, 21, 22, 0, 0, -155, 0, 0, 0, 23, + 0, 24, 25, 0, 26, 0, 27, 0, 28, 0, + 29, 30, 31, 0, 0, 32, 33, 0, 34, 35, + 0, 0, 0, 0, 0, 0, 36, 37, 0, 0, + -155, -155, 0, 38, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 189, 190, 191, 0, 192, + 193, 194, 0, 39, 40, 0, 0, 0, 0, 0, + 0, 0, 41, 0, -155, -155, 0, 202, 203, 204, + 205, 206, 0, 0, 0, 42, 0, 207, 0, 208, + 43, 44, 209, 0, 0, 45, 0, 46, 0, 47, + 0, 48, 0, 0, 0, -4, 1, 2, 3, 4, + 0, 5, 6, 7, 8, 9, 10, 11, 0, 0, + 0, 13, 14, 15, 16, 17, 18, 19, 20, 0, + 21, 22, 127, 0, 128, 0, 0, 0, 23, 129, + 24, 25, 0, 26, 130, 27, 0, 28, 131, 29, + 30, 31, 0, 0, 32, 33, 0, 34, 35, 0, + 0, 0, 0, 0, 0, 36, 37, 0, 132, 0, + 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 203, 204, 205, 206, 207, 483, 481, 482, 487, 488, - 208, 0, 209, 0, 0, 210, 0, 0, 0, 483, - 481, 482, 487, 488, -4, 0, 0, 1, 2, 3, - 4, 0, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 0, 0, 14, 15, 16, 17, 18, 19, 20, - 21, 0, 0, 23, 0, 0, 168, 0, 0, 0, - 24, 0, 25, 26, 0, 27, 0, 28, 0, 29, - 0, 30, 31, 32, 0, 0, 33, 34, 0, 35, - 36, 0, 0, -155, -155, -155, 0, 37, 38, 0, - 0, 176, 177, 0, 39, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 190, 191, 192, 0, - 193, 194, 195, 0, 40, 41, 0, 0, 0, 0, - 0, 0, 0, 42, 0, 201, 202, 0, 203, 204, - 205, 206, 207, 0, 0, 0, 43, 0, 208, 0, - 209, 44, 45, 210, 0, 0, 46, 0, 47, 0, - 48, 0, 49, 0, 0, 0, -4, 1, 2, 3, - 4, 0, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 0, 0, 0, 15, 16, 17, 18, 19, 20, - 21, 22, 0, 23, 128, 0, 129, 0, 0, 0, - 24, 130, 25, 26, 0, 27, 131, 28, 0, 29, - 132, 30, 31, 32, 0, 0, 33, 34, 0, 35, - 36, 0, 0, 0, 190, 191, 192, 37, 38, 0, - 133, 0, 0, 0, 39, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 205, 206, - 207, 0, 0, 0, 40, 41, 208, 0, 209, 0, - 0, 210, 0, 134, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, - 0, 44, 45, 0, 0, 0, 46, 0, 47, 0, - 48, 0, 49, 0, 0, 0, 135, 1, 2, 3, - 4, 0, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 0, 0, 0, 15, 16, 17, 18, 19, 20, - 21, 22, 0, 23, 128, 0, 129, 0, 0, 0, - 24, 130, 25, 26, 0, 27, 131, 28, 0, 29, - 132, 30, 31, 32, 0, 0, 33, 34, 0, 35, - 36, 0, 0, 0, 0, 0, 0, 37, 38, 0, - 133, 0, 0, 0, 39, 0, 0, 0, 0, 0, + 0, 0, 39, 40, 0, 0, 0, 0, 0, 0, + 0, 133, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 42, 0, 0, 0, 0, 43, + 44, 0, 0, 0, 45, 0, 46, 0, 47, 0, + 48, 0, 0, 0, 134, 1, 2, 3, 4, 0, + 5, 6, 7, 8, 9, 10, 11, 0, 0, 0, + 13, 14, 15, 16, 17, 18, 19, 20, 0, 21, + 22, 127, 0, 128, 0, 0, 0, 23, 129, 24, + 25, 0, 26, 130, 27, 0, 28, 131, 29, 30, + 31, 0, 0, 32, 33, 0, 34, 35, 0, 0, + 0, 0, 0, 0, 36, 37, 0, 132, 0, 0, + 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 40, 41, 0, 0, 0, 0, - 0, 0, 0, 134, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, - 0, 44, 45, 0, 0, 0, 46, 0, 47, 0, - 48, 0, 49, 0, 0, 0, 248, 1, 2, 3, - 4, 0, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 0, 0, 0, 15, 16, 17, 18, 19, 20, - 21, 22, 0, 23, 128, 0, 129, 0, 0, 0, - 24, 130, 25, 26, 0, 27, 131, 28, 0, 29, - 132, 30, 31, 32, 0, 0, 33, 34, 0, 35, - 36, 0, 0, 0, 0, 0, 0, 37, 38, 0, - 133, 0, 0, 0, 39, 0, 0, 0, 0, 0, + 0, 39, 40, 0, 0, 0, 0, 0, 0, 0, + 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 42, 0, 0, 0, 0, 43, 44, + 0, 0, 0, 45, 0, 46, 0, 47, 0, 48, + 0, 0, 0, 247, 1, 2, 3, 4, 0, 5, + 6, 7, 8, 9, 10, 11, 0, 0, 0, 13, + 14, 15, 16, 17, 18, 19, 20, 0, 21, 22, + 127, 0, 128, 0, 0, 0, 23, 129, 24, 25, + 0, 26, 130, 27, 0, 28, 131, 29, 30, 31, + 0, 0, 32, 33, 0, 34, 35, 0, 0, 0, + 0, 0, 0, 36, 37, 0, 132, 0, 0, 0, + 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 40, 41, 0, 0, 0, 0, - 0, 0, 0, 134, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, - 0, 44, 45, 0, 0, 0, 46, 0, 47, 0, - 48, 0, 49, 0, 0, 0, 387, 1, 2, 3, - 4, 0, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 0, 0, 14, 15, 16, 17, 18, 19, 20, - 21, 0, 0, 23, 0, 0, -155, 0, 0, 0, - 24, 0, 25, 26, 0, 27, 0, 28, 0, 29, - 0, 30, 31, 32, 0, 0, 33, 34, 0, 35, - 36, 0, 0, 0, 0, 0, 0, 37, 38, 0, - 0, -155, -155, 0, 39, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 190, 191, 192, 0, - 193, 194, 195, 0, 40, 41, 0, 0, 0, 0, - 0, 0, 0, 42, 0, -155, -155, 0, 203, 204, - 205, 206, 207, 0, 0, 0, 43, 0, 208, 0, - 209, 44, 45, 210, 0, 0, 46, 0, 47, 0, - 48, 0, 49, 0, 0, 0, -3, 1, 2, 3, - 4, 0, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 0, 0, 0, 15, 16, 17, 18, 19, 20, - 21, 0, 0, 23, 0, 0, 0, 0, 0, 0, - 24, 0, 25, 26, 0, 27, 0, 28, 0, 29, - 0, 30, 31, 32, 0, 0, 33, 34, 0, 35, - 36, 0, 0, 0, 0, 0, 0, 37, 38, 0, - 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, + 39, 40, 0, 0, 0, 0, 0, 0, 0, 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 40, 41, 0, 0, 0, 0, - 0, 0, 0, 310, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, - 0, 44, 45, 0, 0, 0, 46, 0, 47, 0, - 48, 0, 49, 0, 0, 0, -15, 1, 2, 3, - 4, 0, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 0, 0, 0, 15, 16, 17, 18, 19, 20, - 21, 0, 0, 23, 0, 0, 0, 0, 0, 0, - 24, 0, 25, 26, 0, 27, 0, 28, 0, 29, - 0, 30, 31, 32, 0, 0, 33, 34, 0, 35, - 36, 0, 0, 0, 0, 0, 0, 37, 38, 0, - 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, + 0, 0, 42, 0, 0, 0, 0, 43, 44, 0, + 0, 0, 45, 0, 46, 0, 47, 0, 48, 0, + 0, 0, 386, 1, 2, 3, 4, 0, 5, 6, + 7, 8, 9, 10, 11, 0, 0, 12, 13, 14, + 15, 16, 17, 18, 19, 0, 0, 21, 22, 0, + 0, 0, 0, 0, 0, 23, 0, 24, 25, 0, + 26, 0, 27, 0, 28, 0, 29, 30, 31, 0, + 0, 32, 33, 0, 34, 35, 0, 0, 0, 0, + 0, 0, 36, 37, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 40, 41, 0, 0, 0, 0, - 0, 0, 0, 310, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, - 0, 44, 45, 0, 0, 0, 46, 0, 47, 0, - 48, 0, 49, 0, 0, 0, -16, 1, 2, 3, - 4, 0, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 0, 0, 0, 15, 16, 17, 18, 19, 20, - 21, 0, 0, 23, 0, 0, 0, 0, 0, 0, - 24, 0, 25, 26, 0, 27, 0, 28, 0, 29, - 0, 30, 31, 32, 0, 0, 33, 34, 0, 35, - 36, 0, 0, 0, 0, 0, 0, 37, 38, 0, - 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, + 40, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 40, 41, 0, 0, 0, 0, - 0, 0, 0, 480, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, - 0, 44, 45, 0, 0, 0, 46, 0, 47, 0, - 48, 0, 49, 0, 0, 0, -144, 1, 2, 3, - 4, 0, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 0, 0, 0, 15, 16, 17, 18, 19, 20, - 21, 0, 0, 23, 0, 0, 0, 0, 0, 0, - 24, 0, 25, 26, 0, 27, 0, 28, 0, 29, - 0, 30, 31, 32, 0, 0, 33, 34, 0, 35, - 36, 0, 0, 0, 0, 0, 0, 37, 38, 0, - 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, + 0, 42, 0, 0, 0, 0, 43, 44, 0, 0, + 0, 45, 0, 46, 0, 47, 0, 48, 0, 0, + 0, -3, 1, 2, 3, 4, 0, 5, 6, 7, + 8, 9, 10, 11, 0, 0, 0, 13, 14, 15, + 16, 17, 18, 19, 0, 0, 21, 22, 0, 0, + 0, 0, 0, 0, 23, 0, 24, 25, 0, 26, + 0, 27, 0, 28, 0, 29, 30, 31, 0, 0, + 32, 33, 0, 34, 35, 0, 0, 0, 0, 0, + 0, 36, 37, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 40, 41, 0, 0, 0, 0, - 0, 0, 0, 480, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, - 0, 44, 45, 0, 0, 0, 46, 0, 47, 0, - 48, 0, 49, 0, -3, 0, -145, 1, 2, 3, - 4, 0, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 0, 0, 14, 15, 16, 17, 18, 19, 20, - 21, 0, 0, 23, 0, 0, 0, 0, 0, 0, - 24, 0, 25, 26, 0, 27, 0, 28, 0, 29, - 0, 30, 31, 32, 0, 0, 33, 34, 0, 35, - 36, 0, 0, 0, 0, 0, 0, 37, 38, 0, - 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 39, 40, + 0, 0, 0, 0, 0, 0, 0, 309, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 40, 41, 0, 0, 0, 0, - 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, - 0, 44, 45, 0, 0, 0, 46, 0, 47, 0, - 48, 0, 49, 1, 2, 3, 4, 0, 5, 6, - 7, 8, 9, 10, 11, 12, 13, 0, -120, 0, - 15, 16, 17, 18, 19, 20, 21, 22, 0, 23, - 128, 0, 129, 0, 0, 0, 24, 130, 25, 26, - 0, 27, 131, 28, 0, 29, 132, 30, 31, 32, - 0, 0, 33, 34, 0, 35, 36, 0, 0, 0, - 0, 0, 0, 37, 38, 0, 133, 0, 0, 0, - 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 42, 0, 0, 0, 0, 43, 44, 0, 0, 0, + 45, 0, 46, 0, 47, 0, 48, 0, 0, 0, + -15, 1, 2, 3, 4, 0, 5, 6, 7, 8, + 9, 10, 11, 0, 0, 0, 13, 14, 15, 16, + 17, 18, 19, 0, 0, 21, 22, 0, 0, 0, + 0, 0, 0, 23, 0, 24, 25, 0, 26, 0, + 27, 0, 28, 0, 29, 30, 31, 0, 0, 32, + 33, 0, 34, 35, 0, 0, 0, 0, 0, 0, + 36, 37, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 40, 41, 0, 0, 0, 0, 0, 0, 0, 134, + 0, 0, 0, 0, 0, 0, 0, 39, 40, 0, + 0, 0, 0, 0, 0, 0, 309, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, + 0, 0, 0, 0, 43, 44, 0, 0, 0, 45, + 0, 46, 0, 47, 0, 48, 0, 0, 0, -16, + 1, 2, 3, 4, 0, 5, 6, 7, 8, 9, + 10, 11, 0, 0, 0, 13, 14, 15, 16, 17, + 18, 19, 0, 0, 21, 22, 0, 0, 0, 0, + 0, 0, 23, 0, 24, 25, 0, 26, 0, 27, + 0, 28, 0, 29, 30, 31, 0, 0, 32, 33, + 0, 34, 35, 0, 0, 0, 0, 0, 0, 36, + 37, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 43, 0, 0, 0, 0, 44, 45, 0, - 0, 0, 46, 0, 47, 0, 48, 0, 49, 1, + 0, 0, 0, 0, 0, 0, 39, 40, 0, 0, + 0, 0, 0, 0, 0, 470, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 42, 0, + 0, 0, 0, 43, 44, 0, 0, 0, 45, 0, + 46, 0, 47, 0, 48, 0, 0, 0, -144, 1, 2, 3, 4, 0, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 0, 0, 0, 15, 16, 17, 18, - 19, 20, 21, 22, 0, 23, 128, 0, 129, 0, - 0, 0, 24, 130, 25, 26, 0, 27, 131, 28, - 0, 29, 132, 30, 31, 32, 0, 0, 33, 34, - 0, 35, 36, 0, 0, 0, 0, 0, 0, 37, - 38, 0, 133, 0, 0, 0, 39, 0, 0, 0, + 11, 0, 0, 0, 13, 14, 15, 16, 17, 18, + 19, 0, 0, 21, 22, 0, 0, 0, 0, 0, + 0, 23, 0, 24, 25, 0, 26, 0, 27, 0, + 28, 0, 29, 30, 31, 0, 0, 32, 33, 0, + 34, 35, 0, 0, 0, 0, 0, 0, 36, 37, + 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 39, 40, 0, 0, 0, + 0, 0, 0, 0, 470, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, + 0, 0, 43, 44, 0, 0, 0, 45, 0, 46, + 0, 47, 0, 48, 0, -3, 0, -145, 1, 2, + 3, 4, 0, 5, 6, 7, 8, 9, 10, 11, + 0, 0, 12, 13, 14, 15, 16, 17, 18, 19, + 0, 0, 21, 22, 0, 0, 0, 0, 0, 0, + 23, 0, 24, 25, 0, 26, 0, 27, 0, 28, + 0, 29, 30, 31, 0, 0, 32, 33, 0, 34, + 35, 0, 0, 0, 0, 0, 0, 36, 37, 0, + 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 39, 40, 0, 0, 0, 0, + 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, + 0, 43, 44, 0, 0, 0, 45, 0, 46, 0, + 47, 0, 48, 1, 2, 3, 4, 0, 5, 6, + 7, 8, 9, 10, 11, 0, -120, 0, 13, 14, + 15, 16, 17, 18, 19, 20, 0, 21, 22, 127, + 0, 128, 0, 0, 0, 23, 129, 24, 25, 0, + 26, 130, 27, 0, 28, 131, 29, 30, 31, 0, + 0, 32, 33, 0, 34, 35, 0, 0, 0, 0, + 0, 0, 36, 37, 0, 132, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 40, 41, 0, 0, - 0, 0, 0, 0, 0, 134, 0, 150, 0, 3, - 4, 0, 5, 6, 7, 8, 9, 0, 43, 0, - 0, 0, 0, 44, 45, 0, 0, 0, 46, 20, - 47, 22, 48, 23, 49, 0, 129, 0, 0, 0, - 24, 0, 0, 0, 0, 0, 0, 28, 0, 29, - 151, 0, 0, 0, 0, 0, 0, 34, 0, 35, - 36, 0, 0, 0, 0, 0, 0, 37, 0, 0, - 0, 0, 0, 0, 39, 0, 0, 100, 0, 3, - 4, 0, 5, 6, 7, 8, 9, 0, 0, 0, - 0, 0, 0, 0, 40, 41, 0, 0, 0, 20, - 0, 22, 0, 23, 0, 0, 0, 0, 0, 0, - 24, 0, 0, 0, 0, 0, 43, 28, 0, 29, - 0, 44, 45, 0, 0, 0, 46, 34, 47, 35, - 36, 0, 49, 0, 0, 0, 0, 37, 0, 0, - 0, 0, 0, 0, 39, 0, 0, 100, 0, 3, - 4, 0, 5, 6, 7, 8, 9, 0, 0, 0, - 0, 0, 0, 0, 40, 41, 0, 0, 0, 20, - 0, 22, 0, 23, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 43, 0, 0, 29, - 0, 44, 45, 0, 0, 0, 46, 34, 47, 35, - 36, 0, 49, 0, 0, 0, 0, 0, 0, 168, - 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, + 40, 0, 0, 0, 0, 0, 0, 0, 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 40, 41, 169, 170, 171, 0, + 0, 42, 0, 0, 0, 0, 43, 44, 0, 0, + 0, 45, 0, 46, 0, 47, 0, 48, 1, 2, + 3, 4, 0, 5, 6, 7, 8, 9, 10, 11, + 0, 0, 0, 13, 14, 15, 16, 17, 18, 19, + 20, 0, 21, 22, 127, 0, 128, 0, 0, 0, + 23, 129, 24, 25, 0, 26, 130, 27, 0, 28, + 131, 29, 30, 31, 0, 0, 32, 33, 0, 34, + 35, 0, 0, 0, 0, 0, 0, 36, 37, 0, + 132, 0, 0, 0, 38, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 39, 40, 0, 0, 0, 0, + 0, 0, 0, 133, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, + 0, 43, 44, 0, 0, 0, 45, 0, 46, 0, + 47, 149, 48, 3, 4, 0, 5, 6, 7, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 18, 0, 20, 0, 21, 22, 0, 0, 128, + 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, + 27, 0, 28, 150, 0, 0, 0, 0, 0, 0, + 33, 0, 34, 35, 0, 0, 0, 0, 0, 0, + 36, 0, 0, 0, 0, 0, 0, 38, 0, 0, + 0, 99, 0, 3, 4, 0, 5, 6, 7, 0, + 0, 0, 0, 0, 0, 0, 0, 39, 40, 0, + 0, 18, 0, 20, 0, 21, 22, 0, 0, 0, + 0, 0, 0, 23, 0, 0, 0, 0, 0, 42, + 27, 0, 28, 0, 43, 44, 0, 0, 0, 45, + 33, 46, 34, 35, 0, 48, 99, 0, 3, 4, + 36, 5, 6, 7, 0, 0, 0, 38, 0, 0, + 0, 0, 0, 0, 0, 0, 18, 0, 20, 0, + 21, 22, 0, 0, 0, 0, 0, 39, 40, 0, + 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, + 0, 0, 0, 0, 0, 33, 0, 34, 35, 42, + 0, 0, 0, 0, 43, 44, 0, 167, 0, 45, + 0, 46, 38, 0, 0, 48, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 39, 40, 168, 169, 170, 0, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 0, 189, 190, 191, + 0, 192, 193, 194, 45, 0, 46, 0, 0, 195, + 48, 196, 0, 197, 198, 199, 200, 201, 167, 202, + 203, 204, 205, 206, 0, 0, 0, 0, 0, 207, + 0, 208, 0, 0, 209, 0, 0, 0, 0, 0, + 332, 0, 0, 0, 0, 168, 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 189, 0, 190, - 191, 192, 0, 193, 194, 195, 46, 0, 47, 0, - 0, 196, 49, 197, 0, 198, 199, 200, 201, 202, - 168, 203, 204, 205, 206, 207, 0, 0, 0, 0, - 0, 208, 0, 209, 0, 0, 210, 0, 0, 0, - 0, 0, 333, 0, 0, 0, 0, 169, 170, 171, - 0, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 0, - 190, 191, 192, 0, 193, 194, 195, 0, 0, 0, - 0, 0, 196, 168, 197, 0, 198, 199, 200, 201, - 202, 0, 203, 204, 205, 206, 207, 0, 0, 0, - 0, 0, 208, 0, 209, 0, 0, 210, 0, 0, - 169, 170, 171, 365, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 0, 190, 191, 192, 0, 193, 194, 195, - 0, 0, 0, 0, 0, 196, 168, 197, 0, 198, - 199, 200, 201, 202, 0, 203, 204, 205, 206, 207, - 0, 0, 0, 0, 0, 208, 0, 209, 0, 0, - 210, 0, 0, 169, 170, 171, 403, 172, 173, 174, + 182, 183, 184, 185, 186, 187, 188, 0, 189, 190, + 191, 0, 192, 193, 194, 0, 0, 0, 0, 0, + 195, 167, 196, 0, 197, 198, 199, 200, 201, 0, + 202, 203, 204, 205, 206, 0, 0, 0, 0, 0, + 207, 0, 208, 0, 0, 209, 0, 0, 168, 169, + 170, 364, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 0, 189, 190, 191, 0, 192, 193, 194, 0, 0, + 0, 0, 0, 195, 167, 196, 0, 197, 198, 199, + 200, 201, 0, 202, 203, 204, 205, 206, 0, 0, + 0, 0, 0, 207, 0, 208, 0, 0, 209, 0, + 0, 168, 169, 170, 402, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 0, 189, 190, 191, 0, 192, 193, + 194, 0, 0, 0, 0, 167, 195, 0, 196, 356, + 197, 198, 199, 200, 201, 0, 202, 203, 204, 205, + 206, 0, 0, 0, 0, 0, 207, 0, 208, 0, + 0, 209, 168, 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 0, 190, 191, 192, 0, - 193, 194, 195, 0, 0, 0, 0, 168, 196, 0, - 197, 357, 198, 199, 200, 201, 202, 0, 203, 204, - 205, 206, 207, 0, 0, 0, 0, 0, 208, 0, - 209, 0, 0, 210, 169, 170, 171, 0, 172, 173, + 185, 186, 187, 188, 0, 189, 190, 191, 0, 192, + 193, 194, 0, 0, 0, 0, 167, 195, 0, 196, + 0, 197, 198, 199, 200, 201, 0, 202, 203, 204, + 205, 206, 0, 0, 0, 0, 0, 207, 0, 208, + 358, 0, 209, 168, 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 0, 190, 191, 192, - 0, 193, 194, 195, 0, 0, 0, 0, 168, 196, - 0, 197, 0, 198, 199, 200, 201, 202, 0, 203, - 204, 205, 206, 207, 0, 0, 0, 0, 0, 208, - 0, 209, 359, 0, 210, 169, 170, 171, 0, 172, + 184, 185, 186, 187, 188, 0, 189, 190, 191, 0, + 192, 193, 194, 0, 0, 0, 0, 167, 195, 0, + 196, 483, 197, 198, 199, 200, 201, 0, 202, 203, + 204, 205, 206, 0, 0, 0, 0, 0, 207, 0, + 208, 0, 0, 209, 168, 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 0, 190, 191, - 192, 0, 193, 194, 195, 0, 0, 0, 0, 168, - 196, 0, 197, 493, 198, 199, 200, 201, 202, 0, - 203, 204, 205, 206, 207, 0, 0, 0, 0, 0, - 208, 0, 209, 0, 0, 210, 169, 170, 171, 0, - 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 189, 0, 190, - 191, 192, 0, 193, 194, 195, 0, 0, 0, 0, - 168, 196, 0, 197, 0, 198, 199, 200, 201, 202, - 0, 203, 204, 205, 206, 207, 0, 0, 0, 0, - 0, 208, 0, 209, 0, 0, 210, 169, 170, 171, - 0, 172, 173, 174, 175, 176, 177, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 189, 0, - 190, 191, 192, 0, 193, 194, 195, 0, 0, 0, - 0, 168, 0, 0, 0, 0, 198, 199, 200, 201, - 202, 0, 203, 204, 205, 206, 207, 0, 0, 0, - 0, 0, 208, 0, 209, 0, 0, 210, 169, 170, - 171, 0, 172, 173, 174, 175, 176, 177, 0, 0, + 183, 184, 185, 186, 187, 188, 0, 189, 190, 191, + 0, 192, 193, 194, 0, 0, 0, 0, 167, 195, + 0, 196, 0, 197, 198, 199, 200, 201, 0, 202, + 203, 204, 205, 206, 0, 0, 0, 0, 0, 207, + 0, 208, 0, 0, 209, 168, 169, 170, 0, 171, + 172, 173, 174, 175, 176, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 188, 0, 189, 190, + 191, 0, 192, 193, 194, 0, 0, 0, 0, 167, + 0, 0, 0, 0, 197, 198, 199, 200, 201, 0, + 202, 203, 204, 205, 206, 0, 0, 0, 0, 0, + 207, 0, 208, 0, 0, 209, 168, 169, 170, 0, + 171, 172, 173, 174, 175, 176, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 189, + 190, 191, 0, 192, 193, 194, 0, 0, 0, 0, + 167, 0, 0, 0, 0, 197, 198, 199, 200, 201, + 0, 202, 203, 204, 205, 206, 0, 0, 0, 0, + 0, 207, 0, 208, 0, 0, 209, 168, 169, 170, + 0, 171, 172, 173, 174, 175, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 190, 191, 192, 0, 193, 194, 195, 0, 0, - 0, 0, 168, 0, 0, 0, 0, 198, 199, 200, - 201, 202, 0, 203, 204, 205, 206, 207, 0, 0, - 0, 0, 0, 208, 0, 209, 0, 0, 210, 169, - 170, 171, 0, 172, 173, 174, 175, 176, 177, 0, + 189, 190, 191, 0, 192, 193, 194, 0, 0, 0, + 0, 167, 0, 0, 0, 0, 0, 198, 199, 200, + 201, 0, 202, 203, 204, 205, 206, 0, 0, 0, + 0, 0, 207, 0, 208, 0, 0, 209, 168, 169, + 170, 0, 171, 172, 173, 174, 175, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 190, 191, 192, 0, 193, 194, 195, 0, - 0, 0, 0, 168, 0, 0, 0, 0, 0, 199, - 200, 201, 202, 0, 203, 204, 205, 206, 207, 0, - 0, 0, 0, 0, 208, 0, 209, 0, 0, 210, - 169, 170, 171, 0, 172, 173, 174, 175, 176, 177, + 0, 189, 190, 191, 0, 192, 193, 194, 0, 0, + 0, 0, 167, 0, 0, 0, 0, 0, 0, 199, + 200, 201, 0, 202, 203, 204, 205, 206, 0, 0, + 0, 0, 0, 207, 0, 208, 0, 0, 209, 168, + 169, 170, 0, 171, 172, 173, 174, 175, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 190, 191, 192, 0, 193, 194, 195, - 0, 0, 0, 0, 168, 0, 0, 0, 0, 0, - 0, 200, 201, 202, 0, 203, 204, 205, 206, 207, - 0, 0, 0, 0, 0, 208, 0, 209, 0, 0, - 210, 169, 170, 171, 0, 172, 173, 174, 175, 176, - 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 190, 191, 192, 0, 193, 194, - 195, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -155, 201, 202, 0, 203, 204, 205, 206, - 207, 0, 0, 0, 0, 0, 208, 0, 209, 0, - 0, 210 + 0, 0, 189, 190, 191, 0, 192, 193, 194, 0, + 0, 0, 0, 167, 0, 0, 0, 0, 0, 0, + -155, 200, 201, 0, 202, 203, 204, 205, 206, 0, + 0, 0, 0, 0, 207, 0, 208, 0, 0, 209, + 168, 169, 170, 0, -155, -155, -155, -155, 175, 176, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 189, 190, 191, 0, 192, 193, 194, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 200, 201, 0, 202, 203, 204, 205, 206, + 0, 0, 0, 0, 0, 207, 0, 208, 0, 0, + 209 }; static const yytype_int16 yycheck[] = { - 0, 0, 0, 0, 0, 39, 91, 20, 99, 58, - 65, 24, 110, 252, 3, 326, 392, 48, 3, 89, - 14, 320, 3, 4, 37, 92, 39, 40, 41, 3, - 43, 44, 45, 27, 47, 50, 91, 46, 19, 126, - 127, 68, 90, 91, 92, 3, 4, 35, 0, 0, - 122, 0, 52, 52, 52, 52, 52, 124, 34, 102, - 127, 19, 105, 51, 14, 376, 3, 4, 470, 368, - 122, 100, 474, 475, 122, 102, 124, 27, 3, 127, - 5, 136, 19, 8, 9, 10, 62, 12, 99, 100, - 100, 493, 126, 3, 4, 108, 105, 110, 18, 36, - 52, 52, 3, 52, 133, 507, 122, 122, 93, 19, - 208, 422, 514, 126, 100, 354, 3, 122, 5, 93, - 45, 130, 131, 133, 28, 126, 3, 122, 0, 33, - 55, 56, 127, 122, 126, 122, 375, 513, 100, 128, - 3, 3, 122, 122, 100, 126, 100, 133, 105, 149, - 149, 149, 149, 149, 167, 168, 169, 170, 171, 172, + 0, 0, 0, 0, 0, 18, 38, 98, 57, 64, + 23, 251, 109, 3, 391, 3, 90, 3, 12, 49, + 3, 4, 47, 36, 325, 38, 39, 40, 0, 42, + 43, 44, 26, 46, 17, 90, 45, 319, 460, 89, + 90, 91, 464, 465, 67, 3, 4, 88, 0, 0, + 34, 51, 51, 51, 51, 51, 26, 91, 33, 17, + 121, 483, 32, 113, 114, 115, 50, 3, 4, 121, + 99, 121, 99, 123, 375, 497, 126, 16, 101, 51, + 135, 17, 504, 99, 99, 367, 61, 3, 4, 123, + 3, 121, 126, 125, 107, 104, 109, 99, 3, 51, + 51, 17, 121, 132, 92, 132, 92, 89, 90, 91, + 207, 412, 125, 353, 99, 12, 132, 132, 121, 35, + 129, 130, 101, 126, 125, 104, 503, 98, 99, 26, + 132, 121, 121, 3, 374, 5, 0, 127, 125, 121, + 121, 123, 125, 99, 126, 125, 126, 132, 148, 148, + 148, 148, 148, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 133, 115, 133, + 183, 184, 185, 186, 187, 188, 148, 3, 114, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 149, 149, 233, - 149, 235, 215, 100, 213, 115, 127, 100, 132, 125, - 100, 126, 4, 3, 3, 3, 216, 216, 216, 250, - 233, 460, 235, 232, 218, 323, 68, 18, 20, 21, - 22, 4, 24, 227, 26, 3, 133, 476, 99, 68, - 99, 3, 3, 14, 253, 254, 38, 20, 21, 22, - 3, 24, 3, 26, 46, 47, 48, 49, 18, 350, - 127, 352, 127, 133, 122, 38, 105, 27, 18, 100, - 102, 31, 32, 46, 47, 48, 49, 27, 363, 518, - 335, 132, 32, 3, 44, 54, 46, 54, 343, 3, - 133, 89, 305, 378, 3, 122, 46, 132, 126, 3, - 133, 100, 127, 394, 389, 105, 132, 99, 363, 102, - 323, 122, 312, 312, 312, 17, 126, 100, 3, 126, - 320, 320, 320, 378, 132, 126, 99, 133, 322, 132, - 100, 126, 126, 65, 389, 122, 102, 133, 3, 388, - 132, 105, 3, 27, 357, 379, 132, 438, 133, 126, - 384, 132, 126, 132, 132, 364, 132, 3, 133, 132, - 132, 126, 40, 122, 52, 4, 379, 149, 368, 368, - 368, 384, 457, 312, 459, 132, 399, 133, 132, 58, - 129, 20, 21, 22, 446, 24, 446, 26, 428, 67, - 68, 69, 428, 71, 72, 73, 74, 75, 76, 38, - 342, 70, 457, 499, 459, 485, 467, 400, 47, 48, - 49, 490, 90, 91, 92, 27, 94, 95, 96, 394, - -1, -1, -1, -1, 372, -1, -1, -1, -1, 420, - 443, 109, 110, -1, 112, 113, 114, 115, 116, 439, - -1, -1, -1, -1, 122, -1, 124, -1, -1, 127, - -1, -1, -1, -1, -1, -1, -1, -1, 90, 91, - 92, 461, 461, 461, 461, 461, -1, 467, -1, -1, + 203, 204, 205, 206, 207, 208, 148, 148, 114, 16, + 232, 214, 234, 212, 121, 126, 121, 3, 25, 104, + 450, 131, 99, 124, 31, 215, 215, 215, 99, 232, + 3, 234, 231, 217, 249, 322, 466, 16, 45, 3, + 16, 4, 226, 3, 125, 67, 25, 3, 98, 67, + 98, 30, 31, 252, 253, 18, 19, 20, 3, 22, + 3, 24, 3, 3, 43, 12, 45, 126, 349, 126, + 351, 132, 121, 104, 37, 99, 131, 3, 508, 53, + 101, 53, 45, 46, 47, 48, 3, 132, 88, 334, + 3, 121, 131, 125, 3, 132, 99, 342, 362, 126, + 104, 304, 131, 101, 121, 5, 125, 15, 8, 9, + 10, 99, 393, 377, 3, 125, 131, 362, 132, 322, + 125, 311, 311, 311, 388, 131, 101, 27, 28, 319, + 319, 319, 377, 99, 125, 98, 125, 321, 121, 64, + 132, 3, 132, 388, 44, 104, 131, 428, 387, 3, + 25, 4, 132, 356, 54, 55, 378, 125, 125, 3, + 131, 383, 39, 125, 363, 18, 19, 20, 131, 22, + 131, 24, 121, 131, 131, 378, 131, 367, 367, 367, + 383, 131, 51, 447, 37, 449, 132, 131, 311, 66, + 67, 68, 45, 46, 47, 48, 148, 74, 75, 57, + 398, 128, 447, 341, 449, 69, 436, 436, 4, 489, + 418, 418, 89, 90, 91, 475, 93, 94, 95, 457, + 370, 480, 18, 19, 20, 410, 22, 26, 24, 393, + 433, 108, 109, 399, 111, 112, 113, 114, 115, 429, + 371, 37, -1, -1, 121, 98, 123, -1, -1, 126, + 46, 47, 48, -1, -1, -1, -1, -1, 89, 90, + 91, 451, 451, 451, 451, 451, -1, 457, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 131, -1, + 111, 112, 113, 114, 115, 475, 475, 475, 475, 475, + 121, -1, 123, -1, -1, 126, -1, -1, -1, 489, + 489, 489, 489, 489, 0, -1, -1, 3, 4, 5, + 6, -1, 8, 9, 10, 11, 12, 13, 14, -1, + -1, 17, 18, 19, 20, 21, 22, 23, 24, -1, + -1, 27, 28, -1, -1, 39, -1, -1, -1, 35, + -1, 37, 38, -1, 40, -1, 42, -1, 44, -1, + 46, 47, 48, -1, -1, 51, 52, -1, 54, 55, + -1, -1, -1, -1, -1, -1, 62, 63, -1, -1, + 74, 75, -1, 69, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 89, 90, 91, -1, 93, + 94, 95, -1, 89, 90, -1, -1, -1, -1, -1, + -1, -1, 98, -1, 108, 109, -1, 111, 112, 113, + 114, 115, -1, -1, -1, 111, -1, 121, -1, 123, + 116, 117, 126, -1, -1, 121, -1, 123, -1, 125, + -1, 127, -1, -1, -1, 131, 3, 4, 5, 6, + -1, 8, 9, 10, 11, 12, 13, 14, -1, -1, + -1, 18, 19, 20, 21, 22, 23, 24, 25, -1, + 27, 28, 29, -1, 31, -1, -1, -1, 35, 36, + 37, 38, -1, 40, 41, 42, -1, 44, 45, 46, + 47, 48, -1, -1, 51, 52, -1, 54, 55, -1, + -1, -1, -1, -1, -1, 62, 63, -1, 65, -1, + -1, -1, 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 112, 113, 114, 115, 116, 485, 485, 485, 485, 485, - 122, -1, 124, -1, -1, 127, -1, -1, -1, 499, - 499, 499, 499, 499, 0, -1, -1, 3, 4, 5, - 6, -1, 8, 9, 10, 11, 12, 13, 14, 15, - 16, -1, -1, 19, 20, 21, 22, 23, 24, 25, - 26, -1, -1, 29, -1, -1, 40, -1, -1, -1, - 36, -1, 38, 39, -1, 41, -1, 43, -1, 45, - -1, 47, 48, 49, -1, -1, 52, 53, -1, 55, - 56, -1, -1, 67, 68, 69, -1, 63, 64, -1, - -1, 75, 76, -1, 70, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 90, 91, 92, -1, - 94, 95, 96, -1, 90, 91, -1, -1, -1, -1, - -1, -1, -1, 99, -1, 109, 110, -1, 112, 113, - 114, 115, 116, -1, -1, -1, 112, -1, 122, -1, - 124, 117, 118, 127, -1, -1, 122, -1, 124, -1, - 126, -1, 128, -1, -1, -1, 132, 3, 4, 5, - 6, -1, 8, 9, 10, 11, 12, 13, 14, 15, - 16, -1, -1, -1, 20, 21, 22, 23, 24, 25, - 26, 27, -1, 29, 30, -1, 32, -1, -1, -1, - 36, 37, 38, 39, -1, 41, 42, 43, -1, 45, - 46, 47, 48, 49, -1, -1, 52, 53, -1, 55, - 56, -1, -1, -1, 90, 91, 92, 63, 64, -1, - 66, -1, -1, -1, 70, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 114, 115, - 116, -1, -1, -1, 90, 91, 122, -1, 124, -1, - -1, 127, -1, 99, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 112, -1, -1, -1, - -1, 117, 118, -1, -1, -1, 122, -1, 124, -1, - 126, -1, 128, -1, -1, -1, 132, 3, 4, 5, - 6, -1, 8, 9, 10, 11, 12, 13, 14, 15, - 16, -1, -1, -1, 20, 21, 22, 23, 24, 25, - 26, 27, -1, 29, 30, -1, 32, -1, -1, -1, - 36, 37, 38, 39, -1, 41, 42, 43, -1, 45, - 46, 47, 48, 49, -1, -1, 52, 53, -1, 55, - 56, -1, -1, -1, -1, -1, -1, 63, 64, -1, - 66, -1, -1, -1, 70, -1, -1, -1, -1, -1, + -1, -1, 89, 90, -1, -1, -1, -1, -1, -1, + -1, 98, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 111, -1, -1, -1, -1, 116, + 117, -1, -1, -1, 121, -1, 123, -1, 125, -1, + 127, -1, -1, -1, 131, 3, 4, 5, 6, -1, + 8, 9, 10, 11, 12, 13, 14, -1, -1, -1, + 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, + 28, 29, -1, 31, -1, -1, -1, 35, 36, 37, + 38, -1, 40, 41, 42, -1, 44, 45, 46, 47, + 48, -1, -1, 51, 52, -1, 54, 55, -1, -1, + -1, -1, -1, -1, 62, 63, -1, 65, -1, -1, + -1, 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 90, 91, -1, -1, -1, -1, - -1, -1, -1, 99, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 112, -1, -1, -1, - -1, 117, 118, -1, -1, -1, 122, -1, 124, -1, - 126, -1, 128, -1, -1, -1, 132, 3, 4, 5, - 6, -1, 8, 9, 10, 11, 12, 13, 14, 15, - 16, -1, -1, -1, 20, 21, 22, 23, 24, 25, - 26, 27, -1, 29, 30, -1, 32, -1, -1, -1, - 36, 37, 38, 39, -1, 41, 42, 43, -1, 45, - 46, 47, 48, 49, -1, -1, 52, 53, -1, 55, - 56, -1, -1, -1, -1, -1, -1, 63, 64, -1, - 66, -1, -1, -1, 70, -1, -1, -1, -1, -1, + -1, 89, 90, -1, -1, -1, -1, -1, -1, -1, + 98, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 111, -1, -1, -1, -1, 116, 117, + -1, -1, -1, 121, -1, 123, -1, 125, -1, 127, + -1, -1, -1, 131, 3, 4, 5, 6, -1, 8, + 9, 10, 11, 12, 13, 14, -1, -1, -1, 18, + 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, + 29, -1, 31, -1, -1, -1, 35, 36, 37, 38, + -1, 40, 41, 42, -1, 44, 45, 46, 47, 48, + -1, -1, 51, 52, -1, 54, 55, -1, -1, -1, + -1, -1, -1, 62, 63, -1, 65, -1, -1, -1, + 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 90, 91, -1, -1, -1, -1, - -1, -1, -1, 99, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 112, -1, -1, -1, - -1, 117, 118, -1, -1, -1, 122, -1, 124, -1, - 126, -1, 128, -1, -1, -1, 132, 3, 4, 5, - 6, -1, 8, 9, 10, 11, 12, 13, 14, 15, - 16, -1, -1, 19, 20, 21, 22, 23, 24, 25, - 26, -1, -1, 29, -1, -1, 40, -1, -1, -1, - 36, -1, 38, 39, -1, 41, -1, 43, -1, 45, - -1, 47, 48, 49, -1, -1, 52, 53, -1, 55, - 56, -1, -1, -1, -1, -1, -1, 63, 64, -1, - -1, 75, 76, -1, 70, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 90, 91, 92, -1, - 94, 95, 96, -1, 90, 91, -1, -1, -1, -1, - -1, -1, -1, 99, -1, 109, 110, -1, 112, 113, - 114, 115, 116, -1, -1, -1, 112, -1, 122, -1, - 124, 117, 118, 127, -1, -1, 122, -1, 124, -1, - 126, -1, 128, -1, -1, -1, 132, 3, 4, 5, - 6, -1, 8, 9, 10, 11, 12, 13, 14, 15, - 16, -1, -1, -1, 20, 21, 22, 23, 24, 25, - 26, -1, -1, 29, -1, -1, -1, -1, -1, -1, - 36, -1, 38, 39, -1, 41, -1, 43, -1, 45, - -1, 47, 48, 49, -1, -1, 52, 53, -1, 55, - 56, -1, -1, -1, -1, -1, -1, 63, 64, -1, - -1, -1, -1, -1, 70, -1, -1, -1, -1, -1, + 89, 90, -1, -1, -1, -1, -1, -1, -1, 98, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 90, 91, -1, -1, -1, -1, - -1, -1, -1, 99, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 112, -1, -1, -1, - -1, 117, 118, -1, -1, -1, 122, -1, 124, -1, - 126, -1, 128, -1, -1, -1, 132, 3, 4, 5, - 6, -1, 8, 9, 10, 11, 12, 13, 14, 15, - 16, -1, -1, -1, 20, 21, 22, 23, 24, 25, - 26, -1, -1, 29, -1, -1, -1, -1, -1, -1, - 36, -1, 38, 39, -1, 41, -1, 43, -1, 45, - -1, 47, 48, 49, -1, -1, 52, 53, -1, 55, - 56, -1, -1, -1, -1, -1, -1, 63, 64, -1, - -1, -1, -1, -1, 70, -1, -1, -1, -1, -1, + -1, -1, 111, -1, -1, -1, -1, 116, 117, -1, + -1, -1, 121, -1, 123, -1, 125, -1, 127, -1, + -1, -1, 131, 3, 4, 5, 6, -1, 8, 9, + 10, 11, 12, 13, 14, -1, -1, 17, 18, 19, + 20, 21, 22, 23, 24, -1, -1, 27, 28, -1, + -1, -1, -1, -1, -1, 35, -1, 37, 38, -1, + 40, -1, 42, -1, 44, -1, 46, 47, 48, -1, + -1, 51, 52, -1, 54, 55, -1, -1, -1, -1, + -1, -1, 62, 63, -1, -1, -1, -1, -1, 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 90, 91, -1, -1, -1, -1, - -1, -1, -1, 99, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 112, -1, -1, -1, - -1, 117, 118, -1, -1, -1, 122, -1, 124, -1, - 126, -1, 128, -1, -1, -1, 132, 3, 4, 5, - 6, -1, 8, 9, 10, 11, 12, 13, 14, 15, - 16, -1, -1, -1, 20, 21, 22, 23, 24, 25, - 26, -1, -1, 29, -1, -1, -1, -1, -1, -1, - 36, -1, 38, 39, -1, 41, -1, 43, -1, 45, - -1, 47, 48, 49, -1, -1, 52, 53, -1, 55, - 56, -1, -1, -1, -1, -1, -1, 63, 64, -1, - -1, -1, -1, -1, 70, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 89, + 90, -1, -1, -1, -1, -1, -1, -1, 98, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 90, 91, -1, -1, -1, -1, - -1, -1, -1, 99, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 112, -1, -1, -1, - -1, 117, 118, -1, -1, -1, 122, -1, 124, -1, - 126, -1, 128, -1, -1, -1, 132, 3, 4, 5, - 6, -1, 8, 9, 10, 11, 12, 13, 14, 15, - 16, -1, -1, -1, 20, 21, 22, 23, 24, 25, - 26, -1, -1, 29, -1, -1, -1, -1, -1, -1, - 36, -1, 38, 39, -1, 41, -1, 43, -1, 45, - -1, 47, 48, 49, -1, -1, 52, 53, -1, 55, - 56, -1, -1, -1, -1, -1, -1, 63, 64, -1, - -1, -1, -1, -1, 70, -1, -1, -1, -1, -1, + -1, 111, -1, -1, -1, -1, 116, 117, -1, -1, + -1, 121, -1, 123, -1, 125, -1, 127, -1, -1, + -1, 131, 3, 4, 5, 6, -1, 8, 9, 10, + 11, 12, 13, 14, -1, -1, -1, 18, 19, 20, + 21, 22, 23, 24, -1, -1, 27, 28, -1, -1, + -1, -1, -1, -1, 35, -1, 37, 38, -1, 40, + -1, 42, -1, 44, -1, 46, 47, 48, -1, -1, + 51, 52, -1, 54, 55, -1, -1, -1, -1, -1, + -1, 62, 63, -1, -1, -1, -1, -1, 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 90, 91, -1, -1, -1, -1, - -1, -1, -1, 99, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 112, -1, -1, -1, - -1, 117, 118, -1, -1, -1, 122, -1, 124, -1, - 126, -1, 128, -1, 0, -1, 132, 3, 4, 5, - 6, -1, 8, 9, 10, 11, 12, 13, 14, 15, - 16, -1, -1, 19, 20, 21, 22, 23, 24, 25, - 26, -1, -1, 29, -1, -1, -1, -1, -1, -1, - 36, -1, 38, 39, -1, 41, -1, 43, -1, 45, - -1, 47, 48, 49, -1, -1, 52, 53, -1, 55, - 56, -1, -1, -1, -1, -1, -1, 63, 64, -1, - -1, -1, -1, -1, 70, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 89, 90, + -1, -1, -1, -1, -1, -1, -1, 98, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 90, 91, -1, -1, -1, -1, - -1, -1, -1, 99, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 112, -1, -1, -1, - -1, 117, 118, -1, -1, -1, 122, -1, 124, -1, - 126, -1, 128, 3, 4, 5, 6, -1, 8, 9, - 10, 11, 12, 13, 14, 15, 16, -1, 18, -1, - 20, 21, 22, 23, 24, 25, 26, 27, -1, 29, - 30, -1, 32, -1, -1, -1, 36, 37, 38, 39, - -1, 41, 42, 43, -1, 45, 46, 47, 48, 49, - -1, -1, 52, 53, -1, 55, 56, -1, -1, -1, - -1, -1, -1, 63, 64, -1, 66, -1, -1, -1, - 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 111, -1, -1, -1, -1, 116, 117, -1, -1, -1, + 121, -1, 123, -1, 125, -1, 127, -1, -1, -1, + 131, 3, 4, 5, 6, -1, 8, 9, 10, 11, + 12, 13, 14, -1, -1, -1, 18, 19, 20, 21, + 22, 23, 24, -1, -1, 27, 28, -1, -1, -1, + -1, -1, -1, 35, -1, 37, 38, -1, 40, -1, + 42, -1, 44, -1, 46, 47, 48, -1, -1, 51, + 52, -1, 54, 55, -1, -1, -1, -1, -1, -1, + 62, 63, -1, -1, -1, -1, -1, 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 90, 91, -1, -1, -1, -1, -1, -1, -1, 99, + -1, -1, -1, -1, -1, -1, -1, 89, 90, -1, + -1, -1, -1, -1, -1, -1, 98, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, + -1, -1, -1, -1, 116, 117, -1, -1, -1, 121, + -1, 123, -1, 125, -1, 127, -1, -1, -1, 131, + 3, 4, 5, 6, -1, 8, 9, 10, 11, 12, + 13, 14, -1, -1, -1, 18, 19, 20, 21, 22, + 23, 24, -1, -1, 27, 28, -1, -1, -1, -1, + -1, -1, 35, -1, 37, 38, -1, 40, -1, 42, + -1, 44, -1, 46, 47, 48, -1, -1, 51, 52, + -1, 54, 55, -1, -1, -1, -1, -1, -1, 62, + 63, -1, -1, -1, -1, -1, 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 112, -1, -1, -1, -1, 117, 118, -1, - -1, -1, 122, -1, 124, -1, 126, -1, 128, 3, + -1, -1, -1, -1, -1, -1, 89, 90, -1, -1, + -1, -1, -1, -1, -1, 98, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 111, -1, + -1, -1, -1, 116, 117, -1, -1, -1, 121, -1, + 123, -1, 125, -1, 127, -1, -1, -1, 131, 3, 4, 5, 6, -1, 8, 9, 10, 11, 12, 13, - 14, 15, 16, -1, -1, -1, 20, 21, 22, 23, - 24, 25, 26, 27, -1, 29, 30, -1, 32, -1, - -1, -1, 36, 37, 38, 39, -1, 41, 42, 43, - -1, 45, 46, 47, 48, 49, -1, -1, 52, 53, - -1, 55, 56, -1, -1, -1, -1, -1, -1, 63, - 64, -1, 66, -1, -1, -1, 70, -1, -1, -1, + 14, -1, -1, -1, 18, 19, 20, 21, 22, 23, + 24, -1, -1, 27, 28, -1, -1, -1, -1, -1, + -1, 35, -1, 37, 38, -1, 40, -1, 42, -1, + 44, -1, 46, 47, 48, -1, -1, 51, 52, -1, + 54, 55, -1, -1, -1, -1, -1, -1, 62, 63, + -1, -1, -1, -1, -1, 69, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 89, 90, -1, -1, -1, + -1, -1, -1, -1, 98, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 111, -1, -1, + -1, -1, 116, 117, -1, -1, -1, 121, -1, 123, + -1, 125, -1, 127, -1, 0, -1, 131, 3, 4, + 5, 6, -1, 8, 9, 10, 11, 12, 13, 14, + -1, -1, 17, 18, 19, 20, 21, 22, 23, 24, + -1, -1, 27, 28, -1, -1, -1, -1, -1, -1, + 35, -1, 37, 38, -1, 40, -1, 42, -1, 44, + -1, 46, 47, 48, -1, -1, 51, 52, -1, 54, + 55, -1, -1, -1, -1, -1, -1, 62, 63, -1, + -1, -1, -1, -1, 69, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 89, 90, -1, -1, -1, -1, + -1, -1, -1, 98, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 111, -1, -1, -1, + -1, 116, 117, -1, -1, -1, 121, -1, 123, -1, + 125, -1, 127, 3, 4, 5, 6, -1, 8, 9, + 10, 11, 12, 13, 14, -1, 16, -1, 18, 19, + 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, + -1, 31, -1, -1, -1, 35, 36, 37, 38, -1, + 40, 41, 42, -1, 44, 45, 46, 47, 48, -1, + -1, 51, 52, -1, 54, 55, -1, -1, -1, -1, + -1, -1, 62, 63, -1, 65, -1, -1, -1, 69, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 89, + 90, -1, -1, -1, -1, -1, -1, -1, 98, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 111, -1, -1, -1, -1, 116, 117, -1, -1, + -1, 121, -1, 123, -1, 125, -1, 127, 3, 4, + 5, 6, -1, 8, 9, 10, 11, 12, 13, 14, + -1, -1, -1, 18, 19, 20, 21, 22, 23, 24, + 25, -1, 27, 28, 29, -1, 31, -1, -1, -1, + 35, 36, 37, 38, -1, 40, 41, 42, -1, 44, + 45, 46, 47, 48, -1, -1, 51, 52, -1, 54, + 55, -1, -1, -1, -1, -1, -1, 62, 63, -1, + 65, -1, -1, -1, 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 90, 91, -1, -1, - -1, -1, -1, -1, -1, 99, -1, 3, -1, 5, - 6, -1, 8, 9, 10, 11, 12, -1, 112, -1, - -1, -1, -1, 117, 118, -1, -1, -1, 122, 25, - 124, 27, 126, 29, 128, -1, 32, -1, -1, -1, - 36, -1, -1, -1, -1, -1, -1, 43, -1, 45, - 46, -1, -1, -1, -1, -1, -1, 53, -1, 55, - 56, -1, -1, -1, -1, -1, -1, 63, -1, -1, - -1, -1, -1, -1, 70, -1, -1, 3, -1, 5, - 6, -1, 8, 9, 10, 11, 12, -1, -1, -1, - -1, -1, -1, -1, 90, 91, -1, -1, -1, 25, - -1, 27, -1, 29, -1, -1, -1, -1, -1, -1, - 36, -1, -1, -1, -1, -1, 112, 43, -1, 45, - -1, 117, 118, -1, -1, -1, 122, 53, 124, 55, - 56, -1, 128, -1, -1, -1, -1, 63, -1, -1, - -1, -1, -1, -1, 70, -1, -1, 3, -1, 5, - 6, -1, 8, 9, 10, 11, 12, -1, -1, -1, - -1, -1, -1, -1, 90, 91, -1, -1, -1, 25, - -1, 27, -1, 29, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 112, -1, -1, 45, - -1, 117, 118, -1, -1, -1, 122, 53, 124, 55, - 56, -1, 128, -1, -1, -1, -1, -1, -1, 40, - -1, -1, -1, -1, 70, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 89, 90, -1, -1, -1, -1, + -1, -1, -1, 98, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 111, -1, -1, -1, + -1, 116, 117, -1, -1, -1, 121, -1, 123, -1, + 125, 3, 127, 5, 6, -1, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 90, 91, 67, 68, 69, -1, + -1, 23, -1, 25, -1, 27, 28, -1, -1, 31, + -1, -1, -1, 35, -1, -1, -1, -1, -1, -1, + 42, -1, 44, 45, -1, -1, -1, -1, -1, -1, + 52, -1, 54, 55, -1, -1, -1, -1, -1, -1, + 62, -1, -1, -1, -1, -1, -1, 69, -1, -1, + -1, 3, -1, 5, 6, -1, 8, 9, 10, -1, + -1, -1, -1, -1, -1, -1, -1, 89, 90, -1, + -1, 23, -1, 25, -1, 27, 28, -1, -1, -1, + -1, -1, -1, 35, -1, -1, -1, -1, -1, 111, + 42, -1, 44, -1, 116, 117, -1, -1, -1, 121, + 52, 123, 54, 55, -1, 127, 3, -1, 5, 6, + 62, 8, 9, 10, -1, -1, -1, 69, -1, -1, + -1, -1, -1, -1, -1, -1, 23, -1, 25, -1, + 27, 28, -1, -1, -1, -1, -1, 89, 90, -1, + -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, + -1, -1, -1, -1, -1, 52, -1, 54, 55, 111, + -1, -1, -1, -1, 116, 117, -1, 39, -1, 121, + -1, 123, 69, -1, -1, 127, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 89, 90, 66, 67, 68, -1, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, + -1, 93, 94, 95, 121, -1, 123, -1, -1, 101, + 127, 103, -1, 105, 106, 107, 108, 109, 39, 111, + 112, 113, 114, 115, -1, -1, -1, -1, -1, 121, + -1, 123, -1, -1, 126, -1, -1, -1, -1, -1, + 132, -1, -1, -1, -1, 66, 67, 68, -1, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, -1, 90, - 91, 92, -1, 94, 95, 96, 122, -1, 124, -1, - -1, 102, 128, 104, -1, 106, 107, 108, 109, 110, - 40, 112, 113, 114, 115, 116, -1, -1, -1, -1, - -1, 122, -1, 124, -1, -1, 127, -1, -1, -1, - -1, -1, 133, -1, -1, -1, -1, 67, 68, 69, - -1, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, -1, - 90, 91, 92, -1, 94, 95, 96, -1, -1, -1, - -1, -1, 102, 40, 104, -1, 106, 107, 108, 109, - 110, -1, 112, 113, 114, 115, 116, -1, -1, -1, - -1, -1, 122, -1, 124, -1, -1, 127, -1, -1, - 67, 68, 69, 133, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, -1, 90, 91, 92, -1, 94, 95, 96, - -1, -1, -1, -1, -1, 102, 40, 104, -1, 106, - 107, 108, 109, 110, -1, 112, 113, 114, 115, 116, - -1, -1, -1, -1, -1, 122, -1, 124, -1, -1, - 127, -1, -1, 67, 68, 69, 133, 71, 72, 73, + 81, 82, 83, 84, 85, 86, 87, -1, 89, 90, + 91, -1, 93, 94, 95, -1, -1, -1, -1, -1, + 101, 39, 103, -1, 105, 106, 107, 108, 109, -1, + 111, 112, 113, 114, 115, -1, -1, -1, -1, -1, + 121, -1, 123, -1, -1, 126, -1, -1, 66, 67, + 68, 132, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + -1, 89, 90, 91, -1, 93, 94, 95, -1, -1, + -1, -1, -1, 101, 39, 103, -1, 105, 106, 107, + 108, 109, -1, 111, 112, 113, 114, 115, -1, -1, + -1, -1, -1, 121, -1, 123, -1, -1, 126, -1, + -1, 66, 67, 68, 132, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, -1, 89, 90, 91, -1, 93, 94, + 95, -1, -1, -1, -1, 39, 101, -1, 103, 104, + 105, 106, 107, 108, 109, -1, 111, 112, 113, 114, + 115, -1, -1, -1, -1, -1, 121, -1, 123, -1, + -1, 126, 66, 67, 68, -1, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, -1, 90, 91, 92, -1, - 94, 95, 96, -1, -1, -1, -1, 40, 102, -1, - 104, 105, 106, 107, 108, 109, 110, -1, 112, 113, - 114, 115, 116, -1, -1, -1, -1, -1, 122, -1, - 124, -1, -1, 127, 67, 68, 69, -1, 71, 72, + 84, 85, 86, 87, -1, 89, 90, 91, -1, 93, + 94, 95, -1, -1, -1, -1, 39, 101, -1, 103, + -1, 105, 106, 107, 108, 109, -1, 111, 112, 113, + 114, 115, -1, -1, -1, -1, -1, 121, -1, 123, + 124, -1, 126, 66, 67, 68, -1, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, - -1, 94, 95, 96, -1, -1, -1, -1, 40, 102, - -1, 104, -1, 106, 107, 108, 109, 110, -1, 112, - 113, 114, 115, 116, -1, -1, -1, -1, -1, 122, - -1, 124, 125, -1, 127, 67, 68, 69, -1, 71, + 83, 84, 85, 86, 87, -1, 89, 90, 91, -1, + 93, 94, 95, -1, -1, -1, -1, 39, 101, -1, + 103, 104, 105, 106, 107, 108, 109, -1, 111, 112, + 113, 114, 115, -1, -1, -1, -1, -1, 121, -1, + 123, -1, -1, 126, 66, 67, 68, -1, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, -1, 90, 91, - 92, -1, 94, 95, 96, -1, -1, -1, -1, 40, - 102, -1, 104, 105, 106, 107, 108, 109, 110, -1, - 112, 113, 114, 115, 116, -1, -1, -1, -1, -1, - 122, -1, 124, -1, -1, 127, 67, 68, 69, -1, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, -1, 90, - 91, 92, -1, 94, 95, 96, -1, -1, -1, -1, - 40, 102, -1, 104, -1, 106, 107, 108, 109, 110, - -1, 112, 113, 114, 115, 116, -1, -1, -1, -1, - -1, 122, -1, 124, -1, -1, 127, 67, 68, 69, - -1, 71, 72, 73, 74, 75, 76, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, - 90, 91, 92, -1, 94, 95, 96, -1, -1, -1, - -1, 40, -1, -1, -1, -1, 106, 107, 108, 109, - 110, -1, 112, 113, 114, 115, 116, -1, -1, -1, - -1, -1, 122, -1, 124, -1, -1, 127, 67, 68, - 69, -1, 71, 72, 73, 74, 75, 76, -1, -1, + 82, 83, 84, 85, 86, 87, -1, 89, 90, 91, + -1, 93, 94, 95, -1, -1, -1, -1, 39, 101, + -1, 103, -1, 105, 106, 107, 108, 109, -1, 111, + 112, 113, 114, 115, -1, -1, -1, -1, -1, 121, + -1, 123, -1, -1, 126, 66, 67, 68, -1, 70, + 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 87, -1, 89, 90, + 91, -1, 93, 94, 95, -1, -1, -1, -1, 39, + -1, -1, -1, -1, 105, 106, 107, 108, 109, -1, + 111, 112, 113, 114, 115, -1, -1, -1, -1, -1, + 121, -1, 123, -1, -1, 126, 66, 67, 68, -1, + 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 89, + 90, 91, -1, 93, 94, 95, -1, -1, -1, -1, + 39, -1, -1, -1, -1, 105, 106, 107, 108, 109, + -1, 111, 112, 113, 114, 115, -1, -1, -1, -1, + -1, 121, -1, 123, -1, -1, 126, 66, 67, 68, + -1, 70, 71, 72, 73, 74, 75, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 89, 90, 91, -1, 93, 94, 95, -1, -1, -1, + -1, 39, -1, -1, -1, -1, -1, 106, 107, 108, + 109, -1, 111, 112, 113, 114, 115, -1, -1, -1, + -1, -1, 121, -1, 123, -1, -1, 126, 66, 67, + 68, -1, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 90, 91, 92, -1, 94, 95, 96, -1, -1, - -1, -1, 40, -1, -1, -1, -1, 106, 107, 108, - 109, 110, -1, 112, 113, 114, 115, 116, -1, -1, - -1, -1, -1, 122, -1, 124, -1, -1, 127, 67, - 68, 69, -1, 71, 72, 73, 74, 75, 76, -1, + -1, 89, 90, 91, -1, 93, 94, 95, -1, -1, + -1, -1, 39, -1, -1, -1, -1, -1, -1, 107, + 108, 109, -1, 111, 112, 113, 114, 115, -1, -1, + -1, -1, -1, 121, -1, 123, -1, -1, 126, 66, + 67, 68, -1, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 90, 91, 92, -1, 94, 95, 96, -1, - -1, -1, -1, 40, -1, -1, -1, -1, -1, 107, - 108, 109, 110, -1, 112, 113, 114, 115, 116, -1, - -1, -1, -1, -1, 122, -1, 124, -1, -1, 127, - 67, 68, 69, -1, 71, 72, 73, 74, 75, 76, + -1, -1, 89, 90, 91, -1, 93, 94, 95, -1, + -1, -1, -1, 39, -1, -1, -1, -1, -1, -1, + 107, 108, 109, -1, 111, 112, 113, 114, 115, -1, + -1, -1, -1, -1, 121, -1, 123, -1, -1, 126, + 66, 67, 68, -1, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 90, 91, 92, -1, 94, 95, 96, - -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, - -1, 108, 109, 110, -1, 112, 113, 114, 115, 116, - -1, -1, -1, -1, -1, 122, -1, 124, -1, -1, - 127, 67, 68, 69, -1, 71, 72, 73, 74, 75, - 76, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 90, 91, 92, -1, 94, 95, - 96, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 108, 109, 110, -1, 112, 113, 114, 115, - 116, -1, -1, -1, -1, -1, 122, -1, 124, -1, - -1, 127 + -1, -1, -1, 89, 90, 91, -1, 93, 94, 95, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 108, 109, -1, 111, 112, 113, 114, 115, + -1, -1, -1, -1, -1, 121, -1, 123, -1, -1, + 126 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -3521,58 +3534,57 @@ static const yytype_int16 yycheck[] = static const yytype_uint8 yystos[] = { 0, 3, 4, 5, 6, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 29, 36, 38, 39, 41, 43, 45, - 47, 48, 49, 52, 53, 55, 56, 63, 64, 70, - 90, 91, 99, 112, 117, 118, 122, 124, 126, 128, - 135, 136, 137, 138, 144, 147, 148, 154, 158, 159, - 160, 161, 163, 171, 179, 182, 183, 186, 189, 190, - 191, 192, 196, 198, 207, 217, 220, 233, 234, 235, - 238, 239, 240, 241, 244, 246, 247, 89, 50, 122, - 122, 164, 122, 3, 4, 19, 126, 184, 185, 18, - 3, 240, 3, 219, 240, 122, 185, 223, 122, 126, - 122, 127, 240, 122, 237, 240, 242, 243, 240, 240, - 240, 240, 240, 238, 229, 230, 231, 237, 30, 32, - 37, 42, 46, 66, 99, 132, 143, 144, 145, 148, - 150, 165, 166, 181, 190, 236, 3, 0, 138, 126, - 3, 46, 150, 156, 157, 239, 145, 146, 18, 27, - 31, 32, 44, 46, 206, 245, 192, 100, 40, 67, - 68, 69, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 90, 91, 92, 94, 95, 96, 102, 104, 106, 107, - 108, 109, 110, 112, 113, 114, 115, 116, 122, 124, - 127, 3, 122, 162, 146, 172, 188, 126, 127, 184, - 185, 222, 223, 224, 232, 122, 238, 127, 240, 180, - 229, 3, 155, 105, 132, 100, 133, 125, 100, 237, - 3, 3, 151, 152, 238, 238, 151, 3, 132, 145, - 126, 136, 3, 99, 68, 99, 3, 35, 51, 216, - 3, 3, 208, 240, 240, 240, 240, 240, 240, 240, - 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, - 240, 240, 240, 240, 240, 240, 3, 240, 240, 240, - 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, - 240, 240, 229, 240, 3, 122, 128, 238, 14, 240, - 99, 139, 140, 141, 147, 148, 196, 198, 207, 217, - 187, 184, 127, 122, 228, 3, 93, 213, 214, 215, - 133, 115, 184, 133, 142, 143, 133, 238, 237, 237, - 105, 227, 100, 143, 132, 227, 238, 238, 102, 3, - 54, 193, 54, 194, 3, 209, 210, 105, 133, 125, - 89, 240, 3, 133, 122, 133, 132, 141, 126, 139, - 229, 102, 105, 211, 215, 133, 100, 132, 133, 105, - 36, 115, 224, 226, 102, 149, 152, 132, 99, 133, - 3, 5, 122, 224, 17, 195, 224, 225, 126, 227, - 100, 240, 3, 133, 146, 238, 126, 139, 132, 133, - 3, 5, 8, 9, 10, 12, 45, 55, 56, 212, - 226, 227, 93, 215, 28, 33, 173, 175, 177, 178, - 146, 237, 237, 239, 146, 213, 225, 126, 100, 199, - 149, 210, 133, 34, 62, 167, 168, 169, 170, 132, - 211, 126, 215, 126, 122, 173, 175, 65, 153, 133, - 133, 197, 224, 46, 99, 190, 203, 204, 205, 240, - 105, 132, 169, 170, 221, 176, 3, 146, 146, 227, - 99, 144, 148, 190, 200, 201, 202, 207, 217, 3, - 27, 132, 205, 105, 142, 142, 142, 227, 126, 126, - 132, 202, 216, 142, 132, 132, 133, 218, 200, 3, - 174, 142, 132, 122, 126, 132, 213, 142, 133, 132, - 227 + 13, 14, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 27, 28, 35, 37, 38, 40, 42, 44, 46, + 47, 48, 51, 52, 54, 55, 62, 63, 69, 89, + 90, 98, 111, 116, 117, 121, 123, 125, 127, 134, + 135, 136, 137, 143, 146, 147, 153, 157, 158, 159, + 160, 162, 170, 178, 181, 182, 185, 188, 189, 190, + 191, 195, 197, 206, 211, 216, 219, 232, 233, 234, + 237, 238, 239, 242, 244, 245, 88, 49, 121, 121, + 163, 121, 3, 4, 17, 125, 183, 184, 16, 3, + 239, 3, 218, 239, 121, 184, 222, 121, 125, 121, + 126, 239, 121, 236, 239, 240, 241, 239, 239, 239, + 239, 239, 237, 228, 229, 230, 236, 29, 31, 36, + 41, 45, 65, 98, 131, 142, 143, 144, 147, 149, + 164, 165, 180, 189, 235, 3, 0, 137, 125, 3, + 45, 149, 155, 156, 238, 144, 145, 16, 25, 30, + 31, 43, 45, 205, 243, 191, 99, 39, 66, 67, + 68, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 89, + 90, 91, 93, 94, 95, 101, 103, 105, 106, 107, + 108, 109, 111, 112, 113, 114, 115, 121, 123, 126, + 3, 121, 161, 145, 171, 187, 125, 126, 183, 184, + 221, 222, 223, 231, 121, 237, 126, 239, 179, 228, + 3, 154, 104, 131, 99, 132, 124, 99, 236, 3, + 3, 150, 151, 237, 237, 150, 3, 131, 144, 125, + 135, 3, 98, 67, 98, 3, 34, 50, 215, 3, + 3, 207, 239, 239, 239, 239, 239, 239, 239, 239, + 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, + 239, 239, 239, 239, 239, 3, 239, 239, 239, 239, + 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, + 239, 228, 239, 3, 121, 127, 237, 12, 239, 98, + 138, 139, 140, 146, 147, 195, 197, 206, 216, 186, + 183, 126, 121, 227, 3, 92, 212, 213, 214, 132, + 114, 183, 132, 141, 142, 132, 237, 236, 236, 104, + 226, 99, 142, 131, 226, 237, 237, 101, 3, 53, + 192, 53, 193, 3, 208, 209, 104, 132, 124, 88, + 239, 3, 132, 121, 132, 131, 140, 125, 138, 228, + 101, 104, 210, 214, 132, 99, 131, 132, 104, 35, + 114, 223, 225, 101, 148, 151, 131, 98, 132, 3, + 5, 121, 223, 15, 194, 223, 224, 125, 226, 99, + 239, 3, 132, 145, 237, 125, 138, 131, 132, 211, + 225, 226, 92, 214, 26, 32, 172, 174, 176, 177, + 145, 236, 236, 238, 145, 212, 224, 125, 99, 198, + 148, 209, 132, 33, 61, 166, 167, 168, 169, 131, + 210, 125, 214, 125, 121, 172, 174, 64, 152, 132, + 132, 196, 223, 45, 98, 189, 202, 203, 204, 239, + 104, 131, 168, 169, 220, 175, 3, 145, 145, 226, + 98, 143, 147, 189, 199, 200, 201, 206, 216, 3, + 25, 131, 204, 104, 141, 141, 141, 226, 125, 125, + 131, 201, 215, 141, 131, 131, 132, 217, 199, 3, + 173, 141, 131, 121, 125, 131, 212, 141, 132, 131, + 226 }; #define yyerrok (yyerrstatus = 0) @@ -4388,7 +4400,7 @@ yyreduce: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2076 "parser.y" +#line 2086 "parser.y" {PASS_ALWAYS as3_pass=(yyvsp[(1) - (4)].number_int);} } break; @@ -4399,7 +4411,7 @@ yyreduce: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2088 "parser.y" +#line 2098 "parser.y" {PASS_ALWAYS as3_pass=(yyvsp[(1) - (4)].number_int);} } break; @@ -4410,7 +4422,7 @@ yyreduce: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2091 "parser.y" +#line 2101 "parser.y" {(yyval.code)=(yyvsp[(1) - (1)].code);} } break; @@ -4421,7 +4433,7 @@ yyreduce: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2092 "parser.y" +#line 2102 "parser.y" {(yyval.code)=code_new();} } break; @@ -4432,7 +4444,7 @@ yyreduce: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2094 "parser.y" +#line 2104 "parser.y" {(yyval.code)=code_append((yyvsp[(1) - (2)].code),(yyvsp[(2) - (2)].code));} } break; @@ -4443,7 +4455,7 @@ yyreduce: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2095 "parser.y" +#line 2105 "parser.y" {(yyval.code)=(yyvsp[(1) - (1)].code);} } break; @@ -4454,7 +4466,7 @@ yyreduce: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2110 "parser.y" +#line 2120 "parser.y" {(yyval.code)=(yyvsp[(2) - (3)].code);} } break; @@ -4465,7 +4477,7 @@ yyreduce: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2111 "parser.y" +#line 2121 "parser.y" {(yyval.code)=0;} } break; @@ -4476,7 +4488,7 @@ yyreduce: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2114 "parser.y" +#line 2124 "parser.y" {(yyval.code)=0;} } break; @@ -4487,7 +4499,7 @@ yyreduce: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2121 "parser.y" +#line 2131 "parser.y" {PASS_ALWAYS as3_pass=(yyvsp[(1) - (4)].number_int);} } break; @@ -4498,7 +4510,7 @@ yyreduce: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2125 "parser.y" +#line 2135 "parser.y" {(yyval.code)=(yyvsp[(1) - (2)].code);} } break; @@ -4509,7 +4521,7 @@ yyreduce: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2126 "parser.y" +#line 2136 "parser.y" {(yyval.code)=(yyvsp[(1) - (1)].code);} } break; @@ -4520,7 +4532,7 @@ yyreduce: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2130 "parser.y" +#line 2140 "parser.y" { code_t**cc = &global->init->method->body->code; *cc = code_append(*cc, (yyvsp[(1) - (1)].code)); @@ -4534,7 +4546,7 @@ yyreduce: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2137 "parser.y" +#line 2147 "parser.y" { PASS12 (yyval.number_int)=as3_pass; @@ -4553,7 +4565,7 @@ yyreduce: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2156 "parser.y" +#line 2166 "parser.y" {(yyval.value)=(yyvsp[(2) - (2)].value);} } break; @@ -4564,7 +4576,7 @@ yyreduce: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2157 "parser.y" +#line 2167 "parser.y" {(yyval.value).c=abc_pushundefined(0); (yyval.value).t=TYPE_ANY; } @@ -4577,7 +4589,7 @@ yyreduce: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2161 "parser.y" +#line 2171 "parser.y" {(yyval.code)=(yyvsp[(2) - (2)].code);} } break; @@ -4588,7 +4600,7 @@ yyreduce: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2162 "parser.y" +#line 2172 "parser.y" {(yyval.code)=(yyvsp[(2) - (2)].code);} } break; @@ -4599,7 +4611,7 @@ yyreduce: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2164 "parser.y" +#line 2174 "parser.y" {(yyval.code) = (yyvsp[(1) - (1)].code);} } break; @@ -4610,7 +4622,7 @@ yyreduce: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2165 "parser.y" +#line 2175 "parser.y" {(yyval.code) = code_append((yyvsp[(1) - (3)].code), (yyvsp[(3) - (3)].code));} } break; @@ -4621,7 +4633,7 @@ yyreduce: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2168 "parser.y" +#line 2178 "parser.y" { PASS12 if(variable_exists((yyvsp[(1) - (3)].id))) @@ -4688,7 +4700,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2228 "parser.y" +#line 2238 "parser.y" {(yyval.code) = code_new();} } break; @@ -4699,7 +4711,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2229 "parser.y" +#line 2239 "parser.y" {(yyval.code)=(yyvsp[(2) - (2)].code);} } break; @@ -4710,7 +4722,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2232 "parser.y" +#line 2242 "parser.y" {PASS12 new_state();} } break; @@ -4721,7 +4733,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2232 "parser.y" +#line 2242 "parser.y" { (yyval.code) = code_new(); @@ -4749,7 +4761,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2251 "parser.y" +#line 2261 "parser.y" {(yyval.code)=code_new();} } break; @@ -4760,7 +4772,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2258 "parser.y" +#line 2268 "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); @@ -4774,7 +4786,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2262 "parser.y" +#line 2272 "parser.y" { PASS12 (yyval.id)=(yyvsp[(1) - (1)].id); @@ -4788,7 +4800,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2267 "parser.y" +#line 2277 "parser.y" {PASS12 new_state();(yyval.for_start).name=(yyvsp[(1) - (2)].id);(yyval.for_start).each=0;} } break; @@ -4799,7 +4811,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2268 "parser.y" +#line 2278 "parser.y" {PASS12 new_state();(yyval.for_start).name=(yyvsp[(1) - (3)].id);(yyval.for_start).each=1;} } break; @@ -4810,7 +4822,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2270 "parser.y" +#line 2280 "parser.y" { if((yyvsp[(1) - (8)].for_start).each) syntaxerror("invalid syntax: ; not allowed in for each statement"); (yyval.code) = code_new(); @@ -4839,7 +4851,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2290 "parser.y" +#line 2300 "parser.y" { variable_t*var = find_variable(state, (yyvsp[(2) - (6)].id)); if(!var) { @@ -4896,7 +4908,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2338 "parser.y" +#line 2348 "parser.y" {PASS12 new_state();} } break; @@ -4907,7 +4919,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2338 "parser.y" +#line 2348 "parser.y" { (yyval.code) = code_new(); @@ -4935,7 +4947,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2357 "parser.y" +#line 2367 "parser.y" {PASS12 new_state();} } break; @@ -4946,7 +4958,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2357 "parser.y" +#line 2367 "parser.y" { (yyval.code) = code_new(); code_t*loopstart = (yyval.code) = abc_label((yyval.code)); @@ -4970,7 +4982,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2372 "parser.y" +#line 2382 "parser.y" { (yyval.code) = abc___break__(0, ""); } @@ -4983,7 +4995,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2375 "parser.y" +#line 2385 "parser.y" { (yyval.code) = abc___break__(0, (yyvsp[(2) - (2)].id)); } @@ -4996,7 +5008,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2378 "parser.y" +#line 2388 "parser.y" { (yyval.code) = abc___continue__(0, ""); } @@ -5009,7 +5021,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2381 "parser.y" +#line 2391 "parser.y" { (yyval.code) = abc___continue__(0, (yyvsp[(2) - (2)].id)); } @@ -5022,7 +5034,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2385 "parser.y" +#line 2395 "parser.y" {(yyval.code)=0;} } break; @@ -5033,7 +5045,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2386 "parser.y" +#line 2396 "parser.y" {(yyval.code)=(yyvsp[(1) - (1)].code);} } break; @@ -5044,7 +5056,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2387 "parser.y" +#line 2397 "parser.y" {(yyval.code)=(yyvsp[(1) - (1)].code);} } break; @@ -5055,7 +5067,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2388 "parser.y" +#line 2398 "parser.y" {(yyval.code)=code_append((yyvsp[(1) - (2)].code),(yyvsp[(2) - (2)].code));} } break; @@ -5066,7 +5078,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2389 "parser.y" +#line 2399 "parser.y" {(yyval.code)=(yyvsp[(1) - (1)].code);} } break; @@ -5077,7 +5089,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2390 "parser.y" +#line 2400 "parser.y" {(yyval.code)=code_append((yyval.code),(yyvsp[(2) - (2)].code));} } break; @@ -5088,7 +5100,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2392 "parser.y" +#line 2402 "parser.y" { (yyval.code) = abc_getlocal(0, state->switch_var); (yyval.code) = code_append((yyval.code), (yyvsp[(2) - (4)].value).c); @@ -5109,7 +5121,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2403 "parser.y" +#line 2413 "parser.y" { (yyval.code) = (yyvsp[(3) - (3)].code); } @@ -5122,7 +5134,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2406 "parser.y" +#line 2416 "parser.y" {PASS12 new_state();state->switch_var=alloc_local();} } break; @@ -5133,7 +5145,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2406 "parser.y" +#line 2416 "parser.y" { (yyval.code)=(yyvsp[(4) - (8)].value).c; (yyval.code) = abc_setlocal((yyval.code), state->switch_var); @@ -5171,7 +5183,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2437 "parser.y" +#line 2447 "parser.y" {PASS12 new_state(); state->exception_name=(yyvsp[(3) - (5)].id); PASS1 new_variable((yyvsp[(3) - (5)].id), 0, 0, 0); @@ -5186,7 +5198,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2442 "parser.y" +#line 2452 "parser.y" { namespace_t name_ns = {ACCESS_PACKAGE, ""}; multiname_t name = {QNAME, &name_ns, 0, (yyvsp[(3) - (9)].id)}; @@ -5216,7 +5228,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2462 "parser.y" +#line 2472 "parser.y" {PASS12 new_state();state->exception_name=0;} } break; @@ -5227,7 +5239,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2462 "parser.y" +#line 2472 "parser.y" { (yyvsp[(4) - (5)].code) = var_block((yyvsp[(4) - (5)].code)); if(!(yyvsp[(4) - (5)].code)) { @@ -5252,7 +5264,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2478 "parser.y" +#line 2488 "parser.y" {(yyval.catch_list).l=list_new();(yyval.catch_list).finally=0;list_append((yyval.catch_list).l,(yyvsp[(1) - (1)].exception));} } break; @@ -5263,7 +5275,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2479 "parser.y" +#line 2489 "parser.y" {(yyval.catch_list)=(yyvsp[(1) - (2)].catch_list);list_append((yyval.catch_list).l,(yyvsp[(2) - (2)].exception));} } break; @@ -5274,7 +5286,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2480 "parser.y" +#line 2490 "parser.y" {(yyval.catch_list)=(yyvsp[(1) - (1)].catch_list);} } break; @@ -5285,7 +5297,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2481 "parser.y" +#line 2491 "parser.y" { (yyval.catch_list) = (yyvsp[(1) - (2)].catch_list); (yyval.catch_list).finally = 0; @@ -5303,7 +5315,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2489 "parser.y" +#line 2499 "parser.y" { (yyval.catch_list).l=list_new(); (yyval.catch_list).finally = 0; @@ -5321,7 +5333,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2498 "parser.y" +#line 2508 "parser.y" {PASS12 new_state(); state->method->has_exceptions=1; state->method->late_binding=1;//for invariant scope_code @@ -5335,7 +5347,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2501 "parser.y" +#line 2511 "parser.y" { code_t*out = abc_nop(0); @@ -5388,7 +5400,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2547 "parser.y" +#line 2557 "parser.y" { (yyval.code)=(yyvsp[(2) - (2)].value).c; (yyval.code)=abc_throw((yyval.code)); @@ -5402,7 +5414,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2551 "parser.y" +#line 2561 "parser.y" { if(!state->exception_name) syntaxerror("re-throw only possible within a catch block"); @@ -5420,7 +5432,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2562 "parser.y" +#line 2572 "parser.y" { new_state(); if(state->method->has_exceptions) { @@ -5440,7 +5452,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2572 "parser.y" +#line 2582 "parser.y" { /* remove getlocal;pushwith from scope code again */ state->method->scope_code = code_cutlast(code_cutlast(state->method->scope_code)); @@ -5464,7 +5476,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2590 "parser.y" +#line 2600 "parser.y" {PASS12 (yyval.id)="package";} } break; @@ -5475,7 +5487,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2591 "parser.y" +#line 2601 "parser.y" {PASS12 (yyval.id)=(yyvsp[(1) - (1)].id);} } break; @@ -5486,7 +5498,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2593 "parser.y" +#line 2603 "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; @@ -5497,7 +5509,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2594 "parser.y" +#line 2604 "parser.y" {PASS12 (yyval.id)=strdup((yyvsp[(1) - (1)].id));} } break; @@ -5508,7 +5520,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2596 "parser.y" +#line 2606 "parser.y" {PASS12 startpackage((yyvsp[(2) - (3)].id));free((yyvsp[(2) - (3)].id));(yyvsp[(2) - (3)].id)=0;} } break; @@ -5519,7 +5531,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2597 "parser.y" +#line 2607 "parser.y" {PASS12 endpackage();(yyval.code)=0;} } break; @@ -5530,7 +5542,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2598 "parser.y" +#line 2608 "parser.y" {PASS12 startpackage("");} } break; @@ -5541,7 +5553,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2599 "parser.y" +#line 2609 "parser.y" {PASS12 endpackage();(yyval.code)=0;} } break; @@ -5552,7 +5564,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2621 "parser.y" +#line 2631 "parser.y" { PASS12 slotinfo_t*s = registry_find((yyvsp[(2) - (2)].classinfo)->package, (yyvsp[(2) - (2)].classinfo)->name); @@ -5576,7 +5588,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2635 "parser.y" +#line 2645 "parser.y" { PASS12 if(strncmp("flash.", (yyvsp[(2) - (4)].id), 6) && as3_pass==1) { @@ -5599,7 +5611,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2651 "parser.y" +#line 2661 "parser.y" {PASS12 (yyval.flags).flags=0;(yyval.flags).ns=0;} } break; @@ -5610,7 +5622,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2652 "parser.y" +#line 2662 "parser.y" {PASS12 (yyval.flags)=(yyvsp[(1) - (1)].flags);} } break; @@ -5621,7 +5633,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2653 "parser.y" +#line 2663 "parser.y" {PASS12 (yyval.flags)=(yyvsp[(1) - (1)].flags);} } break; @@ -5632,7 +5644,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2654 "parser.y" +#line 2664 "parser.y" { PASS12 (yyval.flags).flags=(yyvsp[(1) - (2)].flags).flags|(yyvsp[(2) - (2)].flags).flags; @@ -5649,7 +5661,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2661 "parser.y" +#line 2671 "parser.y" {PASS12 (yyval.flags).flags=FLAG_PUBLIC;(yyval.flags).ns=0;} } break; @@ -5660,7 +5672,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2662 "parser.y" +#line 2672 "parser.y" {PASS12 (yyval.flags).flags=FLAG_PRIVATE;(yyval.flags).ns=0;} } break; @@ -5671,7 +5683,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2663 "parser.y" +#line 2673 "parser.y" {PASS12 (yyval.flags).flags=FLAG_PROTECTED;(yyval.flags).ns=0;} } break; @@ -5682,7 +5694,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2664 "parser.y" +#line 2674 "parser.y" {PASS12 (yyval.flags).flags=FLAG_STATIC;(yyval.flags).ns=0;} } break; @@ -5693,7 +5705,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2665 "parser.y" +#line 2675 "parser.y" {PASS12 (yyval.flags).flags=FLAG_DYNAMIC;(yyval.flags).ns=0;} } break; @@ -5704,7 +5716,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2666 "parser.y" +#line 2676 "parser.y" {PASS12 (yyval.flags).flags=FLAG_FINAL;(yyval.flags).ns=0;} } break; @@ -5715,7 +5727,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2667 "parser.y" +#line 2677 "parser.y" {PASS12 (yyval.flags).flags=FLAG_OVERRIDE;(yyval.flags).ns=0;} } break; @@ -5726,7 +5738,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2668 "parser.y" +#line 2678 "parser.y" {PASS12 (yyval.flags).flags=FLAG_NATIVE;(yyval.flags).ns=0;} } break; @@ -5737,7 +5749,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2669 "parser.y" +#line 2679 "parser.y" {PASS12 (yyval.flags).flags=FLAG_PACKAGEINTERNAL;(yyval.flags).ns=0;} } break; @@ -5748,7 +5760,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2670 "parser.y" +#line 2680 "parser.y" {PASS12 (yyval.flags).flags=FLAG_NAMESPACE; (yyval.flags).ns=(yyvsp[(1) - (1)].id); } @@ -5761,7 +5773,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2674 "parser.y" +#line 2684 "parser.y" {PASS12 (yyval.classinfo)=0;} } break; @@ -5772,7 +5784,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2675 "parser.y" +#line 2685 "parser.y" {PASS12 (yyval.classinfo)=(yyvsp[(2) - (2)].classinfo);} } break; @@ -5783,7 +5795,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2677 "parser.y" +#line 2687 "parser.y" {PASS12 (yyval.classinfo_list)=list_new();} } break; @@ -5794,7 +5806,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2678 "parser.y" +#line 2688 "parser.y" {PASS12 (yyval.classinfo_list)=(yyvsp[(2) - (2)].classinfo_list);} } break; @@ -5805,7 +5817,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2680 "parser.y" +#line 2690 "parser.y" {PASS12 (yyval.classinfo_list)=list_new();} } break; @@ -5816,7 +5828,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2681 "parser.y" +#line 2691 "parser.y" {PASS12 (yyval.classinfo_list)=(yyvsp[(2) - (2)].classinfo_list);} } break; @@ -5827,7 +5839,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2685 "parser.y" +#line 2695 "parser.y" {PASS12 startclass(&(yyvsp[(1) - (6)].flags),(yyvsp[(3) - (6)].id),(yyvsp[(4) - (6)].classinfo),(yyvsp[(5) - (6)].classinfo_list));} } break; @@ -5838,7 +5850,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2687 "parser.y" +#line 2697 "parser.y" {PASS12 endclass();(yyval.code)=0;} } break; @@ -5849,7 +5861,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2691 "parser.y" +#line 2701 "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));} } @@ -5861,7 +5873,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2694 "parser.y" +#line 2704 "parser.y" {PASS12 endclass();(yyval.code)=0;} } break; @@ -5872,7 +5884,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2703 "parser.y" +#line 2713 "parser.y" {PASS_ALWAYS as3_pass=(yyvsp[(1) - (4)].number_int);} } break; @@ -5883,7 +5895,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2707 "parser.y" +#line 2717 "parser.y" { code_t*c = state->cls->static_init->header; c = code_append(c, (yyvsp[(1) - (1)].code)); @@ -5898,7 +5910,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2718 "parser.y" +#line 2728 "parser.y" { syntaxerror("variable declarations not allowed in interfaces"); } @@ -5911,7 +5923,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2721 "parser.y" +#line 2731 "parser.y" { PASS12 (yyvsp[(1) - (8)].flags).flags |= FLAG_PUBLIC; @@ -5931,7 +5943,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2755 "parser.y" +#line 2765 "parser.y" {PASS12 setslotstate(&(yyvsp[(1) - (2)].flags),(yyvsp[(2) - (2)].token));} } break; @@ -5942,7 +5954,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2755 "parser.y" +#line 2765 "parser.y" {PASS12 (yyval.code)=(yyvsp[(4) - (4)].code);setslotstate(0, 0);} } break; @@ -5953,7 +5965,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2757 "parser.y" +#line 2767 "parser.y" {PASS12 (yyval.code)=0;} } break; @@ -5964,7 +5976,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2758 "parser.y" +#line 2768 "parser.y" {PASS12 (yyval.code)=0;} } break; @@ -5975,7 +5987,7 @@ PASS2 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2761 "parser.y" +#line 2771 "parser.y" { PASS12 int flags = slotstate_flags->flags; @@ -6066,7 +6078,7 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2845 "parser.y" +#line 2855 "parser.y" {(yyval.constant)=0;} } break; @@ -6077,7 +6089,7 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2846 "parser.y" +#line 2856 "parser.y" {(yyval.constant)=(yyvsp[(2) - (2)].constant);} } break; @@ -6088,8 +6100,8 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2848 "parser.y" - {(yyval.constant) = constant_new_int((yyvsp[(1) - (1)].number_uint));} +#line 2859 "parser.y" + {(yyval.constant) = constant_new_int((yyvsp[(1) - (1)].number_int));} } break; @@ -6099,8 +6111,10 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2849 "parser.y" - {(yyval.constant) = constant_new_int((yyvsp[(1) - (1)].number_int));} +#line 2860 "parser.y" + { + (yyval.constant) = constant_new_uint((yyvsp[(1) - (1)].number_uint)); +} } break; @@ -6110,8 +6124,8 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2850 "parser.y" - {(yyval.constant) = constant_new_uint((yyvsp[(1) - (1)].number_uint));} +#line 2863 "parser.y" + {(yyval.constant) = constant_new_float((yyvsp[(1) - (1)].number_float));} } break; @@ -6121,8 +6135,8 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2851 "parser.y" - {(yyval.constant) = constant_new_float((yyvsp[(1) - (1)].number_float));} +#line 2864 "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; @@ -6132,8 +6146,8 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2852 "parser.y" - {(yyval.constant) = constant_new_string2((yyvsp[(1) - (1)].str).str,(yyvsp[(1) - (1)].str).len);free((char*)(yyvsp[(1) - (1)].str).str);} +#line 2865 "parser.y" + {(yyval.constant) = constant_new_true((yyvsp[(1) - (1)].token));} } break; @@ -6143,8 +6157,8 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2854 "parser.y" - {(yyval.constant) = constant_new_true((yyvsp[(1) - (1)].token));} +#line 2866 "parser.y" + {(yyval.constant) = constant_new_false((yyvsp[(1) - (1)].token));} } break; @@ -6154,8 +6168,8 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2855 "parser.y" - {(yyval.constant) = constant_new_false((yyvsp[(1) - (1)].token));} +#line 2867 "parser.y" + {(yyval.constant) = constant_new_null((yyvsp[(1) - (1)].token));} } break; @@ -6165,8 +6179,8 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2856 "parser.y" - {(yyval.constant) = constant_new_null((yyvsp[(1) - (1)].token));} +#line 2868 "parser.y" + {(yyval.constant) = constant_new_undefined((yyvsp[(1) - (1)].token));} } break; @@ -6176,15 +6190,8 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2857 "parser.y" - { - if(!strcmp((yyvsp[(1) - (1)].id), "NaN")) { - (yyval.constant) = constant_new_float(__builtin_nan("")); - } else { - as3_warning("Couldn't evaluate constant value of %s", (yyvsp[(1) - (1)].id)); - (yyval.constant) = constant_new_null((yyvsp[(1) - (1)].id)); - } -} +#line 2869 "parser.y" + {(yyval.constant) = constant_new_float(__builtin_nan(""));} } break; @@ -6194,7 +6201,7 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2869 "parser.y" +#line 2884 "parser.y" { PASS12 memset(&(yyval.params),0,sizeof((yyval.params))); @@ -6208,7 +6215,7 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2873 "parser.y" +#line 2888 "parser.y" { PASS12 (yyval.params)=(yyvsp[(1) - (1)].params); @@ -6222,7 +6229,7 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2879 "parser.y" +#line 2894 "parser.y" { PASS12 memset(&(yyval.params),0,sizeof((yyval.params))); @@ -6238,7 +6245,7 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2885 "parser.y" +#line 2900 "parser.y" { PASS12 (yyval.params) =(yyvsp[(1) - (4)].params); @@ -6254,7 +6261,7 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2893 "parser.y" +#line 2908 "parser.y" { PASS12 (yyval.params) = (yyvsp[(1) - (3)].params); @@ -6269,7 +6276,7 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2898 "parser.y" +#line 2913 "parser.y" { PASS12 memset(&(yyval.params),0,sizeof((yyval.params))); @@ -6284,7 +6291,7 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2904 "parser.y" +#line 2919 "parser.y" { PASS12 (yyval.param) = rfx_calloc(sizeof(param_t)); @@ -6302,7 +6309,7 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2912 "parser.y" +#line 2927 "parser.y" { PASS12 (yyval.param) = rfx_calloc(sizeof(param_t)); @@ -6320,7 +6327,7 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2922 "parser.y" +#line 2937 "parser.y" {PASS12 (yyval.token)=0;} } break; @@ -6331,7 +6338,7 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2925 "parser.y" +#line 2940 "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; @@ -6342,7 +6349,7 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2926 "parser.y" +#line 2941 "parser.y" { PASS1 endfunction(&(yyvsp[(1) - (12)].flags),(yyvsp[(3) - (12)].token),(yyvsp[(4) - (12)].id),&(yyvsp[(6) - (12)].params),0,0); @@ -6366,7 +6373,7 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2942 "parser.y" +#line 2957 "parser.y" {PASS12 (yyval.id)=0;} } break; @@ -6377,7 +6384,7 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2944 "parser.y" +#line 2959 "parser.y" {PASS12 innerfunction((yyvsp[(2) - (7)].id),&(yyvsp[(4) - (7)].params),(yyvsp[(6) - (7)].classinfo));} } break; @@ -6388,7 +6395,7 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2945 "parser.y" +#line 2960 "parser.y" { PASS1 endfunction(0,0,(yyvsp[(2) - (10)].id),&(yyvsp[(4) - (10)].params),0,0); @@ -6416,7 +6423,7 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2967 "parser.y" +#line 2982 "parser.y" { PASS1 NEW(unresolvedinfo_t,c); memset(c, 0, sizeof(*c)); @@ -6444,7 +6451,7 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 2986 "parser.y" +#line 3001 "parser.y" { PASS1 NEW(unresolvedinfo_t,c); memset(c, 0, sizeof(*c)); @@ -6467,7 +6474,7 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3003 "parser.y" +#line 3018 "parser.y" {PASS12 (yyval.classinfo_list)=list_new();list_append((yyval.classinfo_list), (yyvsp[(1) - (1)].classinfo));} } break; @@ -6478,7 +6485,7 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3004 "parser.y" +#line 3019 "parser.y" {PASS12 (yyval.classinfo_list)=(yyvsp[(1) - (3)].classinfo_list);list_append((yyval.classinfo_list),(yyvsp[(3) - (3)].classinfo));} } break; @@ -6489,7 +6496,7 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3006 "parser.y" +#line 3021 "parser.y" {PASS12 (yyval.classinfo)=(yyvsp[(1) - (1)].classinfo);} } break; @@ -6500,7 +6507,7 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3007 "parser.y" +#line 3022 "parser.y" {PASS12 (yyval.classinfo)=registry_getanytype();} } break; @@ -6511,7 +6518,7 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3008 "parser.y" +#line 3023 "parser.y" {PASS12 (yyval.classinfo)=registry_getanytype();} } break; @@ -6522,7 +6529,7 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3017 "parser.y" +#line 3032 "parser.y" {PASS12 (yyval.classinfo)=(yyvsp[(2) - (2)].classinfo);} } break; @@ -6533,7 +6540,7 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3018 "parser.y" +#line 3033 "parser.y" {PASS12 (yyval.classinfo)=0;} } break; @@ -6544,7 +6551,7 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3022 "parser.y" +#line 3037 "parser.y" {(yyval.value_list).cc=0;(yyval.value_list).number=0;} } break; @@ -6555,7 +6562,7 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3023 "parser.y" +#line 3038 "parser.y" {(yyval.value_list)=(yyvsp[(2) - (3)].value_list);} } break; @@ -6566,7 +6573,7 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3025 "parser.y" +#line 3040 "parser.y" {(yyval.value_list).cc=0;(yyval.value_list).number=0;} } break; @@ -6577,7 +6584,7 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3029 "parser.y" +#line 3044 "parser.y" {(yyval.value_list).number=1; (yyval.value_list).cc = (yyvsp[(1) - (1)].value).c; } @@ -6590,7 +6597,7 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3033 "parser.y" +#line 3048 "parser.y" {(yyval.value_list) = (yyvsp[(1) - (2)].value_list);} } break; @@ -6601,7 +6608,7 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3034 "parser.y" +#line 3049 "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); @@ -6615,7 +6622,7 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3040 "parser.y" +#line 3055 "parser.y" { (yyval.value).c = (yyvsp[(2) - (4)].value).c; if((yyval.value).c->opcode == OPCODE_COERCE_A) (yyval.value).c = code_cutlast((yyval.value).c); @@ -6656,7 +6663,7 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3076 "parser.y" +#line 3091 "parser.y" { (yyval.value).c = (yyvsp[(1) - (4)].value).c; @@ -6711,7 +6718,7 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3122 "parser.y" +#line 3137 "parser.y" { if(!state->cls) syntaxerror("super() not allowed outside of a class"); if(!state->method) syntaxerror("super() not allowed outside of a function"); @@ -6741,7 +6748,7 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3143 "parser.y" +#line 3158 "parser.y" { (yyval.value).c = (yyvsp[(2) - (2)].value).c; if((yyval.value).c->opcode == OPCODE_COERCE_A) { @@ -6771,7 +6778,7 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3164 "parser.y" +#line 3179 "parser.y" { (yyval.code) = abc_returnvoid(0); } @@ -6784,7 +6791,7 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3167 "parser.y" +#line 3182 "parser.y" { (yyval.code) = (yyvsp[(2) - (2)].value).c; (yyval.code) = abc_returnvalue((yyval.code)); @@ -6798,7 +6805,7 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3174 "parser.y" +#line 3189 "parser.y" {(yyval.value)=(yyvsp[(1) - (1)].value);} } break; @@ -6809,7 +6816,7 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3175 "parser.y" +#line 3190 "parser.y" {(yyval.value) = (yyvsp[(1) - (1)].value);} } break; @@ -6820,7 +6827,7 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3176 "parser.y" +#line 3191 "parser.y" { (yyval.value).c = (yyvsp[(1) - (3)].value).c; (yyval.value).c = cut_last_push((yyval.value).c); @@ -6836,7 +6843,7 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3182 "parser.y" +#line 3197 "parser.y" { (yyval.code)=cut_last_push((yyvsp[(1) - (1)].value).c); } @@ -6849,7 +6856,18 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3188 "parser.y" +#line 3203 "parser.y" + {(yyval.value) = (yyvsp[(1) - (1)].value);} + } + break; + + + + case 226: + if(as3_pass==2) { + +/* Line 1464 of skeleton.m4 */ +#line 3204 "parser.y" {(yyval.value) = (yyvsp[(1) - (1)].value);} } break; @@ -6860,7 +6878,7 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3190 "parser.y" +#line 3205 "parser.y" {(yyval.value) = (yyvsp[(1) - (1)].value);} } break; @@ -6871,19 +6889,22 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3191 "parser.y" +#line 3206 "parser.y" {(yyval.value) = (yyvsp[(1) - (1)].value);} } break; - case 229: + case 230: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3192 "parser.y" - {(yyval.value) = (yyvsp[(1) - (1)].value);} +#line 3210 "parser.y" + { + node_t*n = mkconstnode((yyvsp[(1) - (1)].constant)); + (yyval.value) = node_read(n); +} } break; @@ -6893,7 +6914,7 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3196 "parser.y" +#line 3215 "parser.y" { (yyval.value).c = 0; namespace_t ns = {ACCESS_PACKAGE, ""}; @@ -6919,139 +6940,7 @@ PASS12 if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3213 "parser.y" - {(yyval.value).c = abc_pushbyte(0, (yyvsp[(1) - (1)].number_uint)); - //MULTINAME(m, registry_getintclass()); - //$$.c = abc_coerce2($$.c, &m); // FIXME - (yyval.value).t = TYPE_INT; - } - } - break; - - - - case 233: - if(as3_pass==2) { - -/* Line 1464 of skeleton.m4 */ -#line 3218 "parser.y" - {(yyval.value).c = abc_pushshort(0, (yyvsp[(1) - (1)].number_uint)); - (yyval.value).t = TYPE_INT; - } - } - break; - - - - case 234: - if(as3_pass==2) { - -/* Line 1464 of skeleton.m4 */ -#line 3221 "parser.y" - {(yyval.value).c = abc_pushint(0, (yyvsp[(1) - (1)].number_int)); - (yyval.value).t = TYPE_INT; - } - } - break; - - - - case 235: - if(as3_pass==2) { - -/* Line 1464 of skeleton.m4 */ -#line 3224 "parser.y" - {(yyval.value).c = abc_pushuint(0, (yyvsp[(1) - (1)].number_uint)); - (yyval.value).t = TYPE_UINT; - } - } - break; - - - - case 236: - if(as3_pass==2) { - -/* Line 1464 of skeleton.m4 */ -#line 3227 "parser.y" - {(yyval.value).c = abc_pushdouble(0, (yyvsp[(1) - (1)].number_float)); - (yyval.value).t = TYPE_FLOAT; - } - } - break; - - - - case 237: - if(as3_pass==2) { - -/* Line 1464 of skeleton.m4 */ -#line 3230 "parser.y" - {(yyval.value).c = abc_pushstring2(0, &(yyvsp[(1) - (1)].str));free((char*)(yyvsp[(1) - (1)].str).str); - (yyval.value).t = TYPE_STRING; - } - } - break; - - - - case 238: - if(as3_pass==2) { - -/* Line 1464 of skeleton.m4 */ -#line 3233 "parser.y" - {(yyval.value).c = abc_pushundefined(0); - (yyval.value).t = TYPE_ANY; - } - } - break; - - - - case 239: - if(as3_pass==2) { - -/* Line 1464 of skeleton.m4 */ -#line 3236 "parser.y" - {(yyval.value).c = abc_pushtrue(0); - (yyval.value).t = TYPE_BOOLEAN; - } - } - break; - - - - case 240: - if(as3_pass==2) { - -/* Line 1464 of skeleton.m4 */ -#line 3239 "parser.y" - {(yyval.value).c = abc_pushfalse(0); - (yyval.value).t = TYPE_BOOLEAN; - } - } - break; - - - - case 241: - if(as3_pass==2) { - -/* Line 1464 of skeleton.m4 */ -#line 3242 "parser.y" - {(yyval.value).c = abc_pushnull(0); - (yyval.value).t = TYPE_NULL; - } - } - break; - - - - case 242: - if(as3_pass==2) { - -/* Line 1464 of skeleton.m4 */ -#line 3246 "parser.y" +#line 3232 "parser.y" {(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c);(yyval.value).c = abc_greaterequals((yyval.value).c);(yyval.value).c=abc_not((yyval.value).c); (yyval.value).t = TYPE_BOOLEAN; } @@ -7060,11 +6949,11 @@ PASS12 - case 243: + case 233: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3249 "parser.y" +#line 3235 "parser.y" {(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c);(yyval.value).c = abc_greaterthan((yyval.value).c); (yyval.value).t = TYPE_BOOLEAN; } @@ -7073,11 +6962,11 @@ PASS12 - case 244: + case 234: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3252 "parser.y" +#line 3238 "parser.y" {(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c);(yyval.value).c = abc_greaterthan((yyval.value).c);(yyval.value).c=abc_not((yyval.value).c); (yyval.value).t = TYPE_BOOLEAN; } @@ -7086,11 +6975,11 @@ PASS12 - case 245: + case 235: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3255 "parser.y" +#line 3241 "parser.y" {(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c);(yyval.value).c = abc_greaterequals((yyval.value).c); (yyval.value).t = TYPE_BOOLEAN; } @@ -7099,11 +6988,11 @@ PASS12 - case 246: + case 236: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3258 "parser.y" +#line 3244 "parser.y" {(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c);(yyval.value).c = abc_equals((yyval.value).c); (yyval.value).t = TYPE_BOOLEAN; } @@ -7112,11 +7001,11 @@ PASS12 - case 247: + case 237: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3261 "parser.y" +#line 3247 "parser.y" {(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c);(yyval.value).c = abc_strictequals((yyval.value).c); (yyval.value).t = TYPE_BOOLEAN; } @@ -7125,11 +7014,11 @@ PASS12 - case 248: + case 238: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3264 "parser.y" +#line 3250 "parser.y" {(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c);(yyval.value).c = abc_strictequals((yyval.value).c);(yyval.value).c = abc_not((yyval.value).c); (yyval.value).t = TYPE_BOOLEAN; } @@ -7138,11 +7027,11 @@ PASS12 - case 249: + case 239: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3267 "parser.y" +#line 3253 "parser.y" {(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c);(yyval.value).c = abc_equals((yyval.value).c);(yyval.value).c = abc_not((yyval.value).c); (yyval.value).t = TYPE_BOOLEAN; } @@ -7151,11 +7040,11 @@ PASS12 - case 250: + case 240: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3271 "parser.y" +#line 3257 "parser.y" {(yyval.value).t = join_types((yyvsp[(1) - (3)].value).t, (yyvsp[(3) - (3)].value).t, 'O'); (yyval.value).c = (yyvsp[(1) - (3)].value).c; (yyval.value).c = converttype((yyval.value).c, (yyvsp[(1) - (3)].value).t, (yyval.value).t); @@ -7172,11 +7061,11 @@ PASS12 - case 251: + case 241: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3282 "parser.y" +#line 3268 "parser.y" { (yyval.value).t = join_types((yyvsp[(1) - (3)].value).t, (yyvsp[(3) - (3)].value).t, 'A'); /*printf("%08x:\n",$1.t); @@ -7199,11 +7088,11 @@ PASS12 - case 252: + case 242: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3300 "parser.y" +#line 3286 "parser.y" {(yyval.value).c=(yyvsp[(2) - (2)].value).c; (yyval.value).c = abc_not((yyval.value).c); (yyval.value).t = TYPE_BOOLEAN; @@ -7213,11 +7102,11 @@ PASS12 - case 253: + case 243: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3305 "parser.y" +#line 3291 "parser.y" {(yyval.value).c=(yyvsp[(2) - (2)].value).c; (yyval.value).c = abc_bitnot((yyval.value).c); (yyval.value).t = TYPE_INT; @@ -7227,11 +7116,11 @@ PASS12 - case 254: + case 244: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3310 "parser.y" +#line 3296 "parser.y" {(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c); (yyval.value).c = abc_bitand((yyval.value).c); (yyval.value).t = TYPE_INT; @@ -7241,11 +7130,11 @@ PASS12 - case 255: + case 245: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3315 "parser.y" +#line 3301 "parser.y" {(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c); (yyval.value).c = abc_bitxor((yyval.value).c); (yyval.value).t = TYPE_INT; @@ -7255,11 +7144,11 @@ PASS12 - case 256: + case 246: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3320 "parser.y" +#line 3306 "parser.y" {(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c); (yyval.value).c = abc_bitor((yyval.value).c); (yyval.value).t = TYPE_INT; @@ -7269,11 +7158,11 @@ PASS12 - case 257: + case 247: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3325 "parser.y" +#line 3311 "parser.y" {(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c); (yyval.value).c = abc_rshift((yyval.value).c); (yyval.value).t = TYPE_INT; @@ -7283,11 +7172,11 @@ PASS12 - case 258: + case 248: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3329 "parser.y" +#line 3315 "parser.y" {(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c); (yyval.value).c = abc_urshift((yyval.value).c); (yyval.value).t = TYPE_INT; @@ -7297,11 +7186,11 @@ PASS12 - case 259: + case 249: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3333 "parser.y" +#line 3319 "parser.y" {(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c); (yyval.value).c = abc_lshift((yyval.value).c); (yyval.value).t = TYPE_INT; @@ -7311,11 +7200,11 @@ PASS12 - case 260: + case 250: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3338 "parser.y" +#line 3324 "parser.y" {(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c); (yyval.value).c = abc_divide((yyval.value).c); (yyval.value).t = TYPE_NUMBER; @@ -7325,11 +7214,11 @@ PASS12 - case 261: + case 251: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3342 "parser.y" +#line 3328 "parser.y" {(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c); (yyval.value).c = abc_modulo((yyval.value).c); (yyval.value).t = TYPE_NUMBER; @@ -7339,11 +7228,11 @@ PASS12 - case 262: + case 252: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3346 "parser.y" +#line 3332 "parser.y" {(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c); if(BOTH_INT((yyvsp[(1) - (3)].value).t, (yyvsp[(3) - (3)].value).t)) { (yyval.value).c = abc_add_i((yyval.value).c); @@ -7358,11 +7247,11 @@ PASS12 - case 263: + case 253: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3355 "parser.y" +#line 3341 "parser.y" {(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c); if(BOTH_INT((yyvsp[(1) - (3)].value).t,(yyvsp[(3) - (3)].value).t)) { (yyval.value).c = abc_subtract_i((yyval.value).c); @@ -7377,11 +7266,11 @@ PASS12 - case 264: + case 254: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3364 "parser.y" +#line 3350 "parser.y" {(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c); if(BOTH_INT((yyvsp[(1) - (3)].value).t,(yyvsp[(3) - (3)].value).t)) { (yyval.value).c = abc_multiply_i((yyval.value).c); @@ -7396,11 +7285,11 @@ PASS12 - case 265: + case 255: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3374 "parser.y" +#line 3360 "parser.y" {(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c); (yyval.value).c = abc_in((yyval.value).c); (yyval.value).t = TYPE_BOOLEAN; @@ -7410,11 +7299,11 @@ PASS12 - case 266: + case 256: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3379 "parser.y" +#line 3365 "parser.y" {char use_astype=0; // flash player's astype works differently than astypelate if(use_astype && TYPE_IS_CLASS((yyvsp[(3) - (3)].value).t) && (yyvsp[(3) - (3)].value).t->data) { MULTINAME(m, (classinfo_t*)((yyvsp[(3) - (3)].value).t->data)); @@ -7431,11 +7320,11 @@ PASS12 - case 267: + case 257: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3392 "parser.y" +#line 3378 "parser.y" {(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c, (yyvsp[(3) - (3)].value).c); (yyval.value).c = abc_instanceof((yyval.value).c); (yyval.value).t = TYPE_BOOLEAN; @@ -7445,11 +7334,11 @@ PASS12 - case 268: + case 258: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3397 "parser.y" +#line 3383 "parser.y" {(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c, (yyvsp[(3) - (3)].value).c); (yyval.value).c = abc_istypelate((yyval.value).c); (yyval.value).t = TYPE_BOOLEAN; @@ -7459,11 +7348,11 @@ PASS12 - case 269: + case 259: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3402 "parser.y" +#line 3388 "parser.y" { (yyval.value).c = (yyvsp[(3) - (4)].value).c; (yyval.value).c = abc_typeof((yyval.value).c); @@ -7474,11 +7363,11 @@ PASS12 - case 270: + case 260: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3408 "parser.y" +#line 3394 "parser.y" { (yyval.value).c = cut_last_push((yyvsp[(2) - (2)].value).c); (yyval.value).c = abc_pushundefined((yyval.value).c); @@ -7489,11 +7378,11 @@ PASS12 - case 271: + case 261: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3414 "parser.y" +#line 3400 "parser.y" { (yyval.value).c = abc_pushundefined(0); (yyval.value).t = TYPE_ANY; } @@ -7502,22 +7391,22 @@ PASS12 - case 272: + case 262: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3418 "parser.y" +#line 3404 "parser.y" {(yyval.value)=(yyvsp[(2) - (3)].value);} } break; - case 273: + case 263: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3420 "parser.y" +#line 3406 "parser.y" { (yyval.value).c = (yyvsp[(2) - (2)].value).c; if(IS_INT((yyvsp[(2) - (2)].value).t)) { @@ -7533,11 +7422,11 @@ PASS12 - case 274: + case 264: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3431 "parser.y" +#line 3417 "parser.y" { (yyval.value).c = (yyvsp[(1) - (4)].value).c; (yyval.value).c = code_append((yyval.value).c, (yyvsp[(3) - (4)].value).c); @@ -7551,11 +7440,11 @@ PASS12 - case 275: + case 265: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3440 "parser.y" +#line 3426 "parser.y" { (yyval.value).c = code_new(); (yyval.value).c = code_append((yyval.value).c, (yyvsp[(2) - (3)].value_list).cc); @@ -7567,33 +7456,33 @@ PASS12 - case 276: + case 266: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3447 "parser.y" +#line 3433 "parser.y" {(yyval.value_list).cc=0;(yyval.value_list).number=0;} } break; - case 277: + case 267: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3448 "parser.y" +#line 3434 "parser.y" {(yyval.value_list)=(yyvsp[(1) - (1)].value_list);} } break; - case 278: + case 268: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3450 "parser.y" +#line 3436 "parser.y" { (yyval.value_list).cc = 0; (yyval.value_list).cc = code_append((yyval.value_list).cc, (yyvsp[(1) - (3)].value).c); @@ -7605,11 +7494,11 @@ PASS12 - case 279: + case 269: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3456 "parser.y" +#line 3442 "parser.y" { (yyval.value_list).cc = (yyvsp[(1) - (5)].value_list).cc; (yyval.value_list).number = (yyvsp[(1) - (5)].value_list).number+2; @@ -7621,11 +7510,11 @@ PASS12 - case 280: + case 270: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3465 "parser.y" +#line 3451 "parser.y" { (yyval.value).c = code_new(); (yyval.value).c = code_append((yyval.value).c, (yyvsp[(2) - (3)].value_list).cc); @@ -7637,11 +7526,11 @@ PASS12 - case 281: + case 271: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3472 "parser.y" +#line 3458 "parser.y" { code_t*c = (yyvsp[(3) - (3)].value).c; if(BOTH_INT((yyvsp[(1) - (3)].value).t,(yyvsp[(3) - (3)].value).t)) { @@ -7658,11 +7547,11 @@ PASS12 - case 282: + case 272: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3484 "parser.y" +#line 3470 "parser.y" { code_t*c = abc_modulo((yyvsp[(3) - (3)].value).c); c=converttype(c, join_types((yyvsp[(1) - (3)].value).t, (yyvsp[(3) - (3)].value).t, '%'), (yyvsp[(1) - (3)].value).t); @@ -7674,11 +7563,11 @@ PASS12 - case 283: + case 273: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3490 "parser.y" +#line 3476 "parser.y" { code_t*c = abc_lshift((yyvsp[(3) - (3)].value).c); c=converttype(c, join_types((yyvsp[(1) - (3)].value).t, (yyvsp[(3) - (3)].value).t, '<'), (yyvsp[(1) - (3)].value).t); @@ -7690,11 +7579,11 @@ PASS12 - case 284: + case 274: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3496 "parser.y" +#line 3482 "parser.y" { code_t*c = abc_rshift((yyvsp[(3) - (3)].value).c); c=converttype(c, join_types((yyvsp[(1) - (3)].value).t, (yyvsp[(3) - (3)].value).t, '>'), (yyvsp[(1) - (3)].value).t); @@ -7706,11 +7595,11 @@ PASS12 - case 285: + case 275: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3502 "parser.y" +#line 3488 "parser.y" { code_t*c = abc_urshift((yyvsp[(3) - (3)].value).c); c=converttype(c, join_types((yyvsp[(1) - (3)].value).t, (yyvsp[(3) - (3)].value).t, 'U'), (yyvsp[(1) - (3)].value).t); @@ -7722,11 +7611,11 @@ PASS12 - case 286: + case 276: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3508 "parser.y" +#line 3494 "parser.y" { code_t*c = abc_divide((yyvsp[(3) - (3)].value).c); c=converttype(c, join_types((yyvsp[(1) - (3)].value).t, (yyvsp[(3) - (3)].value).t, '/'), (yyvsp[(1) - (3)].value).t); @@ -7738,11 +7627,11 @@ PASS12 - case 287: + case 277: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3514 "parser.y" +#line 3500 "parser.y" { code_t*c = abc_bitor((yyvsp[(3) - (3)].value).c); c=converttype(c, TYPE_INT, (yyvsp[(1) - (3)].value).t); @@ -7754,11 +7643,11 @@ PASS12 - case 288: + case 278: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3520 "parser.y" +#line 3506 "parser.y" { code_t*c = abc_bitxor((yyvsp[(3) - (3)].value).c); c=converttype(c, TYPE_INT, (yyvsp[(1) - (3)].value).t); @@ -7770,11 +7659,11 @@ PASS12 - case 289: + case 279: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3526 "parser.y" +#line 3512 "parser.y" { code_t*c = (yyvsp[(3) - (3)].value).c; @@ -7793,11 +7682,11 @@ PASS12 - case 290: + case 280: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3539 "parser.y" +#line 3525 "parser.y" { code_t*c = (yyvsp[(3) - (3)].value).c; if(TYPE_IS_INT((yyvsp[(1) - (3)].value).t)) { c=abc_subtract_i(c); @@ -7814,11 +7703,11 @@ PASS12 - case 291: + case 281: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3550 "parser.y" +#line 3536 "parser.y" { code_t*c = 0; c = code_append(c, (yyvsp[(3) - (3)].value).c); c = converttype(c, (yyvsp[(3) - (3)].value).t, (yyvsp[(1) - (3)].value).t); @@ -7830,11 +7719,11 @@ PASS12 - case 292: + case 282: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3557 "parser.y" +#line 3543 "parser.y" { (yyval.value).t = join_types((yyvsp[(3) - (5)].value).t,(yyvsp[(5) - (5)].value).t,'?'); (yyval.value).c = (yyvsp[(1) - (5)].value).c; @@ -7852,11 +7741,11 @@ PASS12 - case 293: + case 283: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3570 "parser.y" +#line 3556 "parser.y" { code_t*c = 0; classinfo_t*type = (yyvsp[(1) - (2)].value).t; if(is_getlocal((yyvsp[(1) - (2)].value).c) && (TYPE_IS_INT((yyvsp[(1) - (2)].value).t) || TYPE_IS_NUMBER((yyvsp[(1) - (2)].value).t))) { @@ -7887,11 +7776,11 @@ PASS12 - case 294: + case 284: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3597 "parser.y" +#line 3583 "parser.y" { code_t*c = 0; classinfo_t*type = (yyvsp[(1) - (2)].value).t; if(TYPE_IS_INT(type) || TYPE_IS_UINT(type)) { @@ -7910,11 +7799,11 @@ PASS12 - case 295: + case 285: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3611 "parser.y" +#line 3597 "parser.y" { code_t*c = 0; classinfo_t*type = (yyvsp[(2) - (2)].value).t; if(TYPE_IS_INT(type) || TYPE_IS_UINT(type)) { @@ -7933,11 +7822,11 @@ PASS12 - case 296: + case 286: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3625 "parser.y" +#line 3611 "parser.y" { code_t*c = 0; classinfo_t*type = (yyvsp[(2) - (2)].value).t; if(TYPE_IS_INT(type) || TYPE_IS_UINT(type)) { @@ -7956,11 +7845,11 @@ PASS12 - case 297: + case 287: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3640 "parser.y" +#line 3626 "parser.y" { if(!state->cls->info) syntaxerror("super keyword not allowed outside a class"); classinfo_t*t = state->cls->info->superclass; @@ -7979,11 +7868,11 @@ PASS12 - case 298: + case 288: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3654 "parser.y" +#line 3640 "parser.y" { // attribute TODO (yyval.value).c = abc_pushundefined(0); @@ -7995,11 +7884,11 @@ PASS12 - case 299: + case 289: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3661 "parser.y" +#line 3647 "parser.y" { // child attribute TODO (yyval.value).c = abc_pushundefined(0); @@ -8011,11 +7900,11 @@ PASS12 - case 300: + case 290: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3668 "parser.y" +#line 3654 "parser.y" { // namespace declaration TODO (yyval.value).c = abc_pushundefined(0); @@ -8027,11 +7916,11 @@ PASS12 - case 301: + case 291: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3675 "parser.y" +#line 3661 "parser.y" { // descendants TODO (yyval.value).c = abc_pushundefined(0); @@ -8043,11 +7932,11 @@ PASS12 - case 302: + case 292: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3682 "parser.y" +#line 3668 "parser.y" { // filter TODO (yyval.value).c = abc_pushundefined(0); @@ -8059,11 +7948,11 @@ PASS12 - case 303: + case 293: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3697 "parser.y" +#line 3683 "parser.y" { (yyval.value).c = (yyvsp[(1) - (3)].value).c; classinfo_t*t = (yyvsp[(1) - (3)].value).t; @@ -8125,11 +8014,11 @@ PASS12 - case 304: + case 294: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3754 "parser.y" +#line 3740 "parser.y" { PASS1 /* Queue unresolved identifiers for checking against the parent @@ -8241,11 +8130,11 @@ PASS12 - case 305: + case 295: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3863 "parser.y" +#line 3849 "parser.y" { PASS12 NEW(namespace_decl_t,n); @@ -8258,11 +8147,11 @@ PASS12 - case 306: + case 296: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3870 "parser.y" +#line 3856 "parser.y" { PASS12 NEW(namespace_decl_t,n); @@ -8275,11 +8164,11 @@ PASS12 - case 307: + case 297: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3877 "parser.y" +#line 3863 "parser.y" { PASS12 NEW(namespace_decl_t,n); @@ -8292,11 +8181,11 @@ PASS12 - case 308: + case 298: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3884 "parser.y" +#line 3870 "parser.y" { PASS12 trie_put(active_namespaces, (yyvsp[(2) - (2)].namespace_decl)->name, (void*)(yyvsp[(2) - (2)].namespace_decl)->url); @@ -8316,11 +8205,11 @@ PASS12 - case 309: + case 299: if(as3_pass==2) { /* Line 1464 of skeleton.m4 */ -#line 3908 "parser.y" +#line 3894 "parser.y" { PASS12 const char*url = (yyvsp[(3) - (3)].classinfo)->name; @@ -8349,7 +8238,7 @@ PASS12 /* Line 1464 of skeleton.m4 */ -#line 8353 "parser.tab.c" +#line 8242 "parser.tab.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); diff --git a/lib/as3/parser.tab.h b/lib/as3/parser.tab.h index 287e3cd..b4d1e59 100644 --- a/lib/as3/parser.tab.h +++ b/lib/as3/parser.tab.h @@ -46,104 +46,103 @@ T_EMPTY = 262, T_INT = 263, T_UINT = 264, - T_BYTE = 265, - T_SHORT = 266, - T_FLOAT = 267, - T_FOR = 268, - T_WHILE = 269, - T_DO = 270, - T_SWITCH = 271, - KW_IMPLEMENTS = 272, - KW_NAMESPACE = 273, - KW_PACKAGE = 274, - KW_PROTECTED = 275, - KW_PUBLIC = 276, - KW_PRIVATE = 277, - KW_USE = 278, - KW_INTERNAL = 279, - KW_NEW = 280, - KW_NATIVE = 281, - KW_FUNCTION = 282, - KW_FINALLY = 283, - KW_UNDEFINED = 284, - KW_CONTINUE = 285, - KW_CLASS = 286, - KW_CONST = 287, - KW_CATCH = 288, - KW_CASE = 289, - KW_SET = 290, - KW_VOID = 291, - KW_THROW = 292, - KW_STATIC = 293, - KW_WITH = 294, - KW_INSTANCEOF = 295, - KW_IMPORT = 296, - KW_RETURN = 297, - KW_TYPEOF = 298, - KW_INTERFACE = 299, - KW_NULL = 300, - KW_VAR = 301, - KW_DYNAMIC = 302, - KW_OVERRIDE = 303, - KW_FINAL = 304, - KW_EACH = 305, - KW_GET = 306, - KW_TRY = 307, - KW_SUPER = 308, - KW_EXTENDS = 309, - KW_FALSE = 310, - KW_TRUE = 311, - KW_BOOLEAN = 312, - KW_UINT = 313, - KW_INT = 314, - KW_NUMBER = 315, - KW_STRING = 316, - KW_DEFAULT = 317, - KW_DELETE = 318, - KW_IF = 319, - KW_ELSE = 320, - KW_BREAK = 321, - KW_IS = 322, - KW_IN = 323, - KW_AS = 324, - T_DICTSTART = 325, - T_EQEQ = 326, - T_EQEQEQ = 327, - T_NE = 328, - T_NEE = 329, - T_LE = 330, - T_GE = 331, - T_ORBY = 332, - T_DIVBY = 333, - T_MODBY = 334, - T_MULBY = 335, - T_PLUSBY = 336, - T_MINUSBY = 337, - T_XORBY = 338, - T_SHRBY = 339, - T_SHLBY = 340, - T_USHRBY = 341, - T_OROR = 342, - T_ANDAND = 343, - T_COLONCOLON = 344, - T_MINUSMINUS = 345, - T_PLUSPLUS = 346, - T_DOTDOT = 347, - T_DOTDOTDOT = 348, - T_SHL = 349, - T_USHR = 350, - T_SHR = 351, - prec_none = 352, - below_semicolon = 353, - below_assignment = 354, - below_minus = 356, - minusminus_prefix = 357, - plusplus_prefix = 358, - below_curly = 359, - new2 = 360, - above_identifier = 361, - below_else = 362, - above_function = 363 + T_FLOAT = 265, + T_FOR = 266, + T_WHILE = 267, + T_DO = 268, + T_SWITCH = 269, + KW_IMPLEMENTS = 270, + KW_NAMESPACE = 271, + KW_PACKAGE = 272, + KW_PROTECTED = 273, + KW_PUBLIC = 274, + KW_PRIVATE = 275, + KW_USE = 276, + KW_INTERNAL = 277, + KW_NEW = 278, + KW_NATIVE = 279, + KW_FUNCTION = 280, + KW_FINALLY = 281, + KW_UNDEFINED = 282, + KW_NAN = 283, + KW_CONTINUE = 284, + KW_CLASS = 285, + KW_CONST = 286, + KW_CATCH = 287, + KW_CASE = 288, + KW_SET = 289, + KW_VOID = 290, + KW_THROW = 291, + KW_STATIC = 292, + KW_WITH = 293, + KW_INSTANCEOF = 294, + KW_IMPORT = 295, + KW_RETURN = 296, + KW_TYPEOF = 297, + KW_INTERFACE = 298, + KW_NULL = 299, + KW_VAR = 300, + KW_DYNAMIC = 301, + KW_OVERRIDE = 302, + KW_FINAL = 303, + KW_EACH = 304, + KW_GET = 305, + KW_TRY = 306, + KW_SUPER = 307, + KW_EXTENDS = 308, + KW_FALSE = 309, + KW_TRUE = 310, + KW_BOOLEAN = 311, + KW_UINT = 312, + KW_INT = 313, + KW_NUMBER = 314, + KW_STRING = 315, + KW_DEFAULT = 316, + KW_DELETE = 317, + KW_IF = 318, + KW_ELSE = 319, + KW_BREAK = 320, + KW_IS = 321, + KW_IN = 322, + KW_AS = 323, + T_DICTSTART = 324, + T_EQEQ = 325, + T_EQEQEQ = 326, + T_NE = 327, + T_NEE = 328, + T_LE = 329, + T_GE = 330, + T_ORBY = 331, + T_DIVBY = 332, + T_MODBY = 333, + T_MULBY = 334, + T_PLUSBY = 335, + T_MINUSBY = 336, + T_XORBY = 337, + T_SHRBY = 338, + T_SHLBY = 339, + T_USHRBY = 340, + T_OROR = 341, + T_ANDAND = 342, + T_COLONCOLON = 343, + T_MINUSMINUS = 344, + T_PLUSPLUS = 345, + T_DOTDOT = 346, + T_DOTDOTDOT = 347, + T_SHL = 348, + T_USHR = 349, + T_SHR = 350, + prec_none = 351, + below_semicolon = 352, + below_assignment = 353, + below_minus = 355, + minusminus_prefix = 356, + plusplus_prefix = 357, + below_curly = 358, + new2 = 359, + above_identifier = 360, + below_else = 361, + above_function = 362 }; #endif @@ -152,12 +151,12 @@ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union /* Line 1685 of skeleton.m4 */ -#line 45 "parser.y" +#line 46 "parser.y" tokenunion { /* Line 1685 of skeleton.m4 */ -#line 45 "parser.y" +#line 46 "parser.y" enum yytokentype token; @@ -191,7 +190,7 @@ tokenunion /* Line 1685 of skeleton.m4 */ -#line 195 "parser.tab.h" +#line 194 "parser.tab.h" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ diff --git a/lib/as3/parser.y b/lib/as3/parser.y index f37a3ff..a1ce232 100644 --- a/lib/as3/parser.y +++ b/lib/as3/parser.y @@ -33,6 +33,7 @@ #include "code.h" #include "opcodes.h" #include "compiler.h" +#include "ast.h" extern int a3_lex(); @@ -80,8 +81,6 @@ extern int a3_lex(); %token T_EMPTY %token T_INT %token T_UINT -%token T_BYTE -%token T_SHORT %token T_FLOAT %token T_FOR "for" @@ -102,6 +101,7 @@ extern int a3_lex(); %token KW_FUNCTION "function" %token KW_FINALLY "finally" %token KW_UNDEFINED "undefined" +%token KW_NAN "NaN" %token KW_CONTINUE "continue" %token KW_CLASS "class" %token KW_CONST "const" @@ -191,7 +191,6 @@ extern int a3_lex(); %type EXPRESSION NONCOMMAEXPRESSION %type MAYBEEXPRESSION %type E DELETE -%type CONSTANT %type FOR FOR_IN IF WHILE DO_WHILE MAYBEELSE BREAK RETURN CONTINUE TRY %type INNERFUNCTION %type USE_NAMESPACE @@ -205,7 +204,7 @@ extern int a3_lex(); %type MAYBE_MODIFIERS %type MODIFIER_LIST %type MODIFIER -%type STATICCONSTANT MAYBESTATICCONSTANT +%type CONSTANT MAYBECONSTANT %type IMPLEMENTS_LIST %type EXTENDS CLASS_SPEC %type EXTENDS_LIST @@ -258,7 +257,7 @@ extern int a3_lex(); // needed for "return" precedence: %nonassoc T_STRING T_REGEXP -%nonassoc T_INT T_UINT T_BYTE T_SHORT T_FLOAT +%nonassoc T_INT T_UINT T_FLOAT KW_NAN %nonassoc "false" "true" "null" "undefined" "super" "function" %left above_function @@ -1609,10 +1608,21 @@ code_t*converttype(code_t*c, classinfo_t*from, classinfo_t*to) if((TYPE_IS_NUMBER(from) || TYPE_IS_UINT(from) || TYPE_IS_INT(from)) && (TYPE_IS_NUMBER(to) || TYPE_IS_UINT(to) || TYPE_IS_INT(to))) { // allow conversion between number types + if(TYPE_IS_UINT(to)) + return abc_convert_u(c); + else if(TYPE_IS_INT(to)) + return abc_convert_i(c); + else if(TYPE_IS_NUMBER(to)) + return abc_convert_d(c); return abc_coerce2(c, &m); } - //printf("%s.%s\n", from.package, from.name); - //printf("%s.%s\n", to.package, to.name); + + if(TYPE_IS_BOOLEAN(to)) + return abc_convert_b(c); + if(TYPE_IS_STRING(to)) + return abc_convert_s(c); + if(TYPE_IS_OBJECT(to)) + return abc_convert_o(c); classinfo_t*supertype = from; while(supertype) { @@ -1638,8 +1648,8 @@ code_t*converttype(code_t*c, classinfo_t*from, classinfo_t*to) return c; as3_error("can't convert type %s%s%s to %s%s%s", - from->package, from->package?".":"", from->name, - to->package, to->package?".":"", to->name); + from->package, from->package[0]?".":"", from->name, + to->package, to->package[0]?".":"", to->name); return c; } @@ -2842,26 +2852,31 @@ PASS12 /* ------------ constants -------------------------------------- */ -MAYBESTATICCONSTANT: {$$=0;} -MAYBESTATICCONSTANT: '=' STATICCONSTANT {$$=$2;} - -STATICCONSTANT : T_BYTE {$$ = constant_new_int($1);} -STATICCONSTANT : T_INT {$$ = constant_new_int($1);} -STATICCONSTANT : T_UINT {$$ = constant_new_uint($1);} -STATICCONSTANT : T_FLOAT {$$ = constant_new_float($1);} -STATICCONSTANT : T_STRING {$$ = constant_new_string2($1.str,$1.len);free((char*)$1.str);} -//STATICCONSTANT : T_NAMESPACE {$$ = constant_new_namespace($1);} -STATICCONSTANT : "true" {$$ = constant_new_true($1);} -STATICCONSTANT : "false" {$$ = constant_new_false($1);} -STATICCONSTANT : "null" {$$ = constant_new_null($1);} -STATICCONSTANT : T_IDENTIFIER { +MAYBECONSTANT: {$$=0;} +MAYBECONSTANT: '=' CONSTANT {$$=$2;} + +//CONSTANT : T_NAMESPACE {$$ = constant_new_namespace($1);} +CONSTANT : T_INT {$$ = constant_new_int($1);} +CONSTANT : T_UINT { + $$ = constant_new_uint($1); +} +CONSTANT : T_FLOAT {$$ = constant_new_float($1);} +CONSTANT : T_STRING {$$ = constant_new_string2($1.str,$1.len);free((char*)$1.str);} +CONSTANT : "true" {$$ = constant_new_true($1);} +CONSTANT : "false" {$$ = constant_new_false($1);} +CONSTANT : "null" {$$ = constant_new_null($1);} +CONSTANT : "undefined" {$$ = constant_new_undefined($1);} +CONSTANT : KW_NAN {$$ = constant_new_float(__builtin_nan(""));} + +/* +CONSTANT : T_IDENTIFIER { if(!strcmp($1, "NaN")) { $$ = constant_new_float(__builtin_nan("")); } else { as3_warning("Couldn't evaluate constant value of %s", $1); $$ = constant_new_null($1); } -} +}*/ /* ------------ classes and interfaces (body, functions) ------- */ @@ -2901,7 +2916,7 @@ PARAM_LIST: PARAM { list_append($$.list, $1); } -PARAM: T_IDENTIFIER ':' TYPE MAYBESTATICCONSTANT { +PARAM: T_IDENTIFIER ':' TYPE MAYBECONSTANT { PASS12 $$ = rfx_calloc(sizeof(param_t)); $$->name=$1; @@ -2909,7 +2924,7 @@ PARAM: T_IDENTIFIER ':' TYPE MAYBESTATICCONSTANT { PASS2 $$->value = $4; } -PARAM: T_IDENTIFIER MAYBESTATICCONSTANT { +PARAM: T_IDENTIFIER MAYBECONSTANT { PASS12 $$ = rfx_calloc(sizeof(param_t)); $$->name=$1; @@ -3186,13 +3201,17 @@ VOIDEXPRESSION : EXPRESSION %prec below_minus { // ----------------------- expression evaluation ------------------------------------- E : INNERFUNCTION %prec prec_none {$$ = $1;} -E : CONSTANT -E : VAR_READ %prec T_IDENTIFIER {$$ = $1;} -E : NEW {$$ = $1;} -E : DELETE {$$ = $1;} +E : VAR_READ %prec T_IDENTIFIER {$$ = $1;} +E : NEW {$$ = $1;} +E : DELETE {$$ = $1;} E : FUNCTIONCALL +E : CONSTANT { + node_t*n = mkconstnode($1); + $$ = node_read(n); +} + E : T_REGEXP { $$.c = 0; namespace_t ns = {ACCESS_PACKAGE, ""}; @@ -3210,39 +3229,6 @@ E : T_REGEXP { $$.t = TYPE_REGEXP; } -CONSTANT : T_BYTE {$$.c = abc_pushbyte(0, $1); - //MULTINAME(m, registry_getintclass()); - //$$.c = abc_coerce2($$.c, &m); // FIXME - $$.t = TYPE_INT; - } -CONSTANT : T_SHORT {$$.c = abc_pushshort(0, $1); - $$.t = TYPE_INT; - } -CONSTANT : T_INT {$$.c = abc_pushint(0, $1); - $$.t = TYPE_INT; - } -CONSTANT : T_UINT {$$.c = abc_pushuint(0, $1); - $$.t = TYPE_UINT; - } -CONSTANT : T_FLOAT {$$.c = abc_pushdouble(0, $1); - $$.t = TYPE_FLOAT; - } -CONSTANT : T_STRING {$$.c = abc_pushstring2(0, &$1);free((char*)$1.str); - $$.t = TYPE_STRING; - } -CONSTANT : "undefined" {$$.c = abc_pushundefined(0); - $$.t = TYPE_ANY; - } -CONSTANT : "true" {$$.c = abc_pushtrue(0); - $$.t = TYPE_BOOLEAN; - } -CONSTANT : "false" {$$.c = abc_pushfalse(0); - $$.t = TYPE_BOOLEAN; - } -CONSTANT : "null" {$$.c = abc_pushnull(0); - $$.t = TYPE_NULL; - } - E : E '<' E {$$.c = code_append($1.c,$3.c);$$.c = abc_greaterequals($$.c);$$.c=abc_not($$.c); $$.t = TYPE_BOOLEAN; } diff --git a/lib/as3/registry.h b/lib/as3/registry.h index 31267bf..a4ee9ac 100644 --- a/lib/as3/registry.h +++ b/lib/as3/registry.h @@ -161,35 +161,33 @@ char* infotypename(slotinfo_t*s); /* convenience functions */ #define sig2mname(x) (x->superclass,classinfo_to_multiname((slotinfo_t*)(x))) -#define TYPE_ANY registry_getanytype() -#define TYPE_IS_ANY(t) ((t) == registry_getanytype()) -#define TYPE_INT registry_getintclass() -#define TYPE_IS_INT(t) ((t) == registry_getintclass()) -#define TYPE_UINT registry_getuintclass() -#define TYPE_IS_UINT(t) ((t) == registry_getuintclass()) -#define TYPE_NUMBER registry_getnumberclass() -#define TYPE_IS_NUMBER(t) ((t) == registry_getnumberclass()) -#define TYPE_FLOAT registry_getnumberclass() -#define TYPE_IS_FLOAT(t) ((t) == registry_getnumberclass()) -#define TYPE_BOOLEAN registry_getbooleanclass() -#define TYPE_IS_BOOLEAN(t)((t) == registry_getbooleanclass()) -#define TYPE_STRING registry_getstringclass() -#define TYPE_IS_STRING(t) ((t) == registry_getstringclass()) -#define TYPE_REGEXP registry_getregexpclass() -#define TYPE_IS_REGEXP(t) ((t) == registry_getregexpclass()) + +#define TYPE_ANY registry_getanytype() +#define TYPE_IS_ANY(t) ((t) == registry_getanytype()) +#define TYPE_INT registry_getintclass() +#define TYPE_IS_INT(t) ((t) == registry_getintclass()) +#define TYPE_UINT registry_getuintclass() +#define TYPE_IS_UINT(t) ((t) == registry_getuintclass()) +#define TYPE_NUMBER registry_getnumberclass() +#define TYPE_IS_NUMBER(t) ((t) == registry_getnumberclass()) +#define TYPE_FLOAT registry_getnumberclass() +#define TYPE_IS_FLOAT(t) ((t) == registry_getnumberclass()) +#define TYPE_BOOLEAN registry_getbooleanclass() +#define TYPE_IS_BOOLEAN(t) ((t) == registry_getbooleanclass()) +#define TYPE_STRING registry_getstringclass() +#define TYPE_IS_STRING(t) ((t) == registry_getstringclass()) +#define TYPE_OBJECT registry_getobjectclass() +#define TYPE_IS_OBJECT(t) ((t) == registry_getobjectclass()) +#define TYPE_REGEXP registry_getregexpclass() +#define TYPE_IS_REGEXP(t) ((t) == registry_getregexpclass()) #define TYPE_NAMESPACE registry_getnamespaceclass() #define TYPE_IS_NAMESPACE(t) ((t) == registry_getnamespaceclass()) - -#define TYPE_OBJECT registry_getobjectclass() - -#define TYPE_FUNCTION(f) ((f)->return_type,slotinfo_asclass((slotinfo_t*)(f))) -#define TYPE_IS_FUNCTION(t) registry_isfunctionclass(t) - -#define TYPE_CLASS(f) ((f)->superclass,slotinfo_asclass((slotinfo_t*)(f))) -#define TYPE_IS_CLASS(t) registry_isclassclass(t) - -#define TYPE_NULL registry_getnullclass() -#define TYPE_IS_NULL(t) ((t) == registry_getnullclass()) +#define TYPE_FUNCTION(f) ((f)->return_type,slotinfo_asclass((slotinfo_t*)(f))) +#define TYPE_IS_FUNCTION(t) registry_isfunctionclass(t) +#define TYPE_CLASS(f) ((f)->superclass,slotinfo_asclass((slotinfo_t*)(f))) +#define TYPE_IS_CLASS(t) registry_isclassclass(t) +#define TYPE_NULL registry_getnullclass() +#define TYPE_IS_NULL(t) ((t) == registry_getnullclass()) #define TYPE_IS_BUILTIN_SIMPLE(type) (TYPE_IS_INT(type) || \ TYPE_IS_UINT(type) || \ diff --git a/lib/as3/tokenizer.lex b/lib/as3/tokenizer.lex index 012602e..805cf2e 100644 --- a/lib/as3/tokenizer.lex +++ b/lib/as3/tokenizer.lex @@ -291,22 +291,7 @@ static char*nrbuf() static inline int setint(int v) { a3_lval.number_int = v; - if(v>-128) - return T_BYTE; - else if(v>=-32768) - return T_SHORT; - else - return T_INT; -} -static inline int setuint(unsigned int v) -{ - a3_lval.number_uint = v; - if(v<128) - return T_BYTE; - else if(v<32768) - return T_SHORT; - else - return T_UINT; + return T_INT; } static inline int setfloat(double v) { @@ -326,7 +311,9 @@ static inline int handleint() char*s = nrbuf(); char l = (yytext[0]=='-'); - char*max = l?"1073741824":"2147483647"; + //char*max = l?"1073741824":"2147483647"; + char*max = l?"2147483648":"2147483647"; + if(yyleng-l>10) { as3_softwarning("integer overflow: %s (converted to Number)", s); return handlefloat(); @@ -352,7 +339,7 @@ static inline int handleint() v*=10; v+=yytext[t]-'0'; } - return setuint(v); + return setint(v); } } @@ -401,21 +388,21 @@ static inline int handlehex() else if((c>='a' && c<='f') || (c>='A' && c<='F')) v|=(c&0x0f)+9; } - if(l && v>1073741824) { + if(l && v>=0x80000000) { char*s = nrbuf(); - as3_softwarning("signed integer overflow: %s (converted to Number)", s); + as3_softwarning("integer overflow: %s (converted to Number)", s); return setfloat(v); } - if(!l && v>2147483647) { + if(!l && v>0x7fffffff) { char*s = nrbuf(); - as3_softwarning("unsigned integer overflow: %s (converted to Number)", s); + as3_softwarning("integer overflow: %s (converted to Number)", s); return setfloat(v); } if(l==3) { return setint(-(int)v); } else { - return setuint(v); + return setint(v); } } @@ -561,6 +548,7 @@ REGEXP [/]([^/\n]|\\[/])*[/][a-zA-Z]* {HEXFLOAT}/{_} {c(); BEGIN(INITIAL);return handlehexfloat();} {INT}/{_} {c(); BEGIN(INITIAL);return handleint();} {FLOAT}/{_} {c(); BEGIN(INITIAL);return handlefloat();} +NaN {c(); BEGIN(INITIAL);return m(KW_NAN);} 3rr0r {/* for debugging: generates a tokenizer-level error */ syntaxerror("3rr0r");} @@ -717,7 +705,6 @@ char*token2string(enum yytokentype nr, YYSTYPE v) } else if(nr==T_INT) return ""; else if(nr==T_UINT) return ""; - else if(nr==T_BYTE) return ""; else if(nr==T_FLOAT) return ""; else if(nr==T_EOF) return "***END***"; else if(nr==T_GE) return ">="; diff --git a/lib/as3/tokenizer.yy.c b/lib/as3/tokenizer.yy.c index 415fefa..135e965 100644 --- a/lib/as3/tokenizer.yy.c +++ b/lib/as3/tokenizer.yy.c @@ -379,8 +379,8 @@ static void yy_fatal_error (yyconst char msg[] ); *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 111 -#define YY_END_OF_BUFFER 112 +#define YY_NUM_RULES 112 +#define YY_END_OF_BUFFER 113 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -388,65 +388,65 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[512] = +static yyconst flex_int16_t yy_accept[515] = { 0, - 0, 0, 0, 0, 0, 0, 112, 110, 16, 16, - 108, 110, 108, 108, 108, 110, 108, 109, 107, 108, - 108, 55, 108, 110, 110, 110, 57, 108, 108, 108, - 106, 107, 108, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 14, 108, 107, 110, 106, 108, 108, 55, 108, 110, - 110, 110, 13, 32, 0, 6, 0, 106, 44, 30, - 0, 0, 45, 39, 40, 38, 42, 54, 0, 3, - 0, 43, 19, 19, 0, 0, 0, 0, 56, 0, - 50, 37, 35, 36, 52, 0, 106, 0, 41, 105, - - 106, 106, 106, 106, 106, 27, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 104, 106, 103, 102, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 46, 31, 0, 103, 0, 0, 0, 0, 0, 3, - 8, 43, 0, 11, 11, 0, 0, 0, 33, 106, - 53, 20, 0, 0, 0, 0, 0, 1, 0, 0, - 0, 0, 0, 0, 48, 34, 47, 51, 0, 0, - 0, 0, 0, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 26, 106, 98, 106, - - 106, 106, 106, 106, 97, 106, 106, 106, 106, 106, - 106, 106, 99, 106, 106, 106, 106, 106, 101, 106, - 106, 96, 100, 106, 106, 106, 15, 106, 0, 11, - 11, 0, 0, 12, 8, 0, 0, 0, 8, 0, - 8, 8, 0, 0, 0, 0, 0, 0, 0, 2, - 0, 18, 0, 17, 17, 0, 0, 49, 0, 0, - 0, 0, 106, 94, 106, 106, 106, 106, 106, 106, - 106, 89, 93, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 92, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 91, 106, 106, 90, 106, 95, - - 106, 12, 0, 0, 0, 0, 8, 0, 8, 0, - 0, 2, 0, 8, 8, 10, 0, 9, 9, 0, - 2, 21, 0, 23, 0, 0, 0, 87, 84, 82, - 83, 106, 106, 106, 106, 106, 86, 85, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 88, 106, 81, 106, 106, 28, 106, 10, - 0, 9, 9, 0, 0, 2, 0, 8, 8, 0, - 22, 0, 0, 106, 106, 74, 106, 106, 106, 106, - 106, 79, 106, 106, 106, 106, 77, 106, 106, 106, - 106, 76, 75, 78, 29, 80, 106, 106, 8, 0, - - 0, 0, 106, 69, 72, 73, 68, 106, 106, 106, - 106, 106, 106, 106, 70, 71, 106, 106, 106, 8, - 0, 0, 24, 64, 67, 106, 106, 106, 66, 106, - 65, 106, 106, 0, 0, 25, 106, 106, 60, 61, - 62, 63, 0, 0, 0, 0, 0, 0, 59, 58, - 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, - 0, 0, 4, 0, 0, 4, 0, 5, 0, 0, - 0, 0, 7, 0, 23, 5, 23, 23, 0, 0, - 0, 7, 0, 22, 5, 22, 22, 0, 0, 0, - - 0, 0, 24, 5, 24, 24, 25, 5, 25, 25, - 0 + 0, 0, 0, 0, 0, 0, 113, 111, 16, 16, + 109, 111, 109, 109, 109, 111, 109, 110, 108, 109, + 109, 56, 109, 111, 111, 111, 58, 109, 109, 109, + 107, 107, 108, 109, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 14, 109, 108, 111, 107, 109, 109, 56, 109, + 111, 111, 111, 13, 33, 0, 6, 0, 107, 45, + 31, 0, 0, 46, 40, 41, 39, 43, 55, 0, + 3, 0, 44, 19, 19, 0, 0, 0, 0, 57, + 0, 51, 38, 36, 37, 53, 0, 107, 0, 107, + + 42, 106, 107, 107, 107, 107, 107, 28, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 105, 107, 104, + 103, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 47, 32, 0, 104, 0, 0, 0, 0, + 0, 3, 8, 44, 0, 11, 11, 0, 0, 0, + 34, 107, 54, 20, 0, 0, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, 49, 35, 48, 52, + 0, 0, 0, 0, 0, 21, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 27, + + 107, 99, 107, 107, 107, 107, 107, 98, 107, 107, + 107, 107, 107, 107, 107, 100, 107, 107, 107, 107, + 107, 102, 107, 107, 97, 101, 107, 107, 107, 15, + 107, 0, 11, 11, 0, 0, 12, 8, 0, 0, + 0, 8, 0, 8, 8, 0, 0, 0, 0, 0, + 0, 0, 2, 0, 18, 0, 17, 17, 0, 0, + 50, 0, 0, 0, 0, 107, 95, 107, 107, 107, + 107, 107, 107, 107, 90, 94, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 93, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 92, 107, 107, + + 91, 107, 96, 107, 12, 0, 0, 0, 0, 8, + 0, 8, 0, 0, 2, 0, 8, 8, 10, 0, + 9, 9, 0, 2, 22, 0, 24, 0, 0, 0, + 88, 85, 83, 84, 107, 107, 107, 107, 107, 87, + 86, 107, 107, 107, 107, 107, 107, 107, 107, 107, + 107, 107, 107, 107, 107, 89, 107, 82, 107, 107, + 29, 107, 10, 0, 9, 9, 0, 0, 2, 0, + 8, 8, 0, 23, 0, 0, 107, 107, 75, 107, + 107, 107, 107, 107, 80, 107, 107, 107, 107, 78, + 107, 107, 107, 107, 77, 76, 79, 30, 81, 107, + + 107, 8, 0, 0, 0, 107, 70, 73, 74, 69, + 107, 107, 107, 107, 107, 107, 107, 71, 72, 107, + 107, 107, 8, 0, 0, 25, 65, 68, 107, 107, + 107, 67, 107, 66, 107, 107, 0, 0, 26, 107, + 107, 61, 62, 63, 64, 0, 0, 0, 0, 0, + 0, 60, 59, 0, 5, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, + 0, 0, 0, 0, 0, 4, 0, 0, 4, 0, + 5, 0, 0, 0, 0, 7, 0, 24, 5, 24, + 24, 0, 0, 0, 7, 0, 23, 5, 23, 23, + + 0, 0, 0, 0, 0, 25, 5, 25, 25, 26, + 5, 26, 26, 0 } ; static yyconst flex_int32_t yy_ec[256] = @@ -458,508 +458,499 @@ static yyconst flex_int32_t yy_ec[256] = 14, 15, 16, 13, 17, 18, 19, 20, 21, 21, 22, 21, 21, 21, 21, 21, 21, 23, 13, 24, 25, 26, 13, 13, 27, 28, 29, 30, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 31, 28, 28, 28, 28, 28, 28, - 32, 33, 34, 35, 36, 8, 37, 38, 39, 40, + 28, 28, 28, 28, 28, 28, 28, 31, 28, 28, + 28, 28, 28, 32, 28, 28, 28, 28, 28, 28, + 33, 34, 35, 36, 37, 8, 38, 39, 40, 41, - 41, 42, 43, 44, 45, 28, 46, 47, 48, 49, - 50, 51, 28, 52, 53, 54, 55, 56, 57, 58, - 59, 28, 60, 61, 62, 13, 8, 8, 8, 8, + 42, 43, 44, 45, 46, 28, 47, 48, 49, 50, + 51, 52, 28, 53, 54, 55, 56, 57, 58, 59, + 60, 28, 61, 62, 63, 13, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 63, 8, 8, 8, - 64, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 64, 8, 8, 8, + 65, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 65, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 66, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 } ; -static yyconst flex_int32_t yy_meta[66] = +static yyconst flex_int32_t yy_meta[67] = { 0, 1, 2, 3, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 4, 6, 6, 6, 2, 4, 4, 4, 7, 7, 7, 7, - 7, 4, 8, 4, 4, 9, 7, 7, 7, 7, - 10, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 11, 7, 4, - 4, 4, 4, 4, 4 + 7, 7, 4, 8, 4, 4, 9, 7, 7, 7, + 7, 10, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 11, 7, + 4, 4, 4, 4, 4, 4 } ; -static yyconst flex_int16_t yy_base[545] = +static yyconst flex_int16_t yy_base[548] = { 0, - 0, 530, 50, 57, 64, 71, 572, 2984, 2984, 2984, - 545, 87, 0, 543, 556, 85, 2984, 2984, 539, 79, - 81, 87, 96, 104, 109, 114, 526, 113, 521, 74, - 137, 2984, 516, 154, 166, 176, 145, 96, 138, 150, - 161, 165, 180, 182, 194, 201, 202, 210, 114, 225, - 2984, 87, 2984, 470, 229, 265, 271, 277, 285, 285, - 291, 299, 2984, 505, 116, 2984, 525, 0, 2984, 2984, - 132, 523, 2984, 2984, 2984, 2984, 2984, 507, 294, 326, - 110, 2984, 2984, 303, 332, 316, 501, 465, 2984, 481, - 483, 2984, 476, 2984, 127, 356, 126, 360, 2984, 203, - - 330, 331, 319, 339, 345, 346, 354, 360, 361, 368, - 369, 383, 384, 388, 392, 403, 404, 410, 411, 419, - 415, 431, 433, 438, 439, 453, 445, 457, 459, 465, - 473, 477, 484, 485, 500, 501, 507, 508, 515, 519, - 2984, 2984, 434, 524, 326, 561, 566, 569, 261, 593, - 624, 289, 390, 2984, 579, 666, 406, 475, 2984, 0, - 2984, 2984, 602, 628, 689, 468, 218, 2984, 593, 601, - 724, 789, 439, 420, 2984, 2984, 2984, 399, 853, 362, - 344, 318, 330, 588, 599, 600, 648, 652, 663, 822, - 672, 823, 824, 838, 831, 839, 840, 855, 854, 861, - - 862, 876, 877, 883, 882, 884, 888, 899, 900, 904, - 905, 916, 920, 922, 927, 928, 936, 943, 942, 944, - 958, 950, 951, 966, 965, 967, 2984, 972, 1003, 2984, - 1006, 423, 354, 2984, 0, 1030, 1035, 1054, 351, 1063, - 0, 1078, 1020, 1031, 1137, 1202, 175, 1073, 1267, 336, - 1272, 2984, 0, 2984, 0, 290, 309, 2984, 0, 282, - 288, 286, 1033, 1034, 1048, 1242, 1243, 1054, 1251, 1257, - 1262, 1053, 1266, 1268, 1282, 1277, 1283, 1284, 1289, 1298, - 1303, 1307, 1309, 1314, 1321, 1325, 1329, 1333, 1340, 1341, - 1347, 1349, 1361, 1365, 1366, 1367, 1381, 1382, 1383, 1388, - - 1389, 2984, 1420, 1425, 1466, 1531, 0, 1594, 1627, 1692, - 1697, 283, 1702, 1735, 0, 2984, 0, 2984, 0, 1597, - 2984, 2984, 274, 2984, 0, 230, 227, 1406, 1412, 1413, - 1567, 1571, 1672, 1673, 1681, 1764, 1765, 1766, 1772, 1773, - 1781, 1787, 1796, 1802, 1807, 1813, 1818, 1819, 1825, 1837, - 1830, 1844, 1845, 1849, 1851, 1860, 1866, 1867, 1868, 2984, - 0, 2984, 0, 1918, 1923, 0, 1928, 0, 0, 237, - 2984, 228, 223, 1898, 1912, 1907, 1913, 1918, 1927, 1932, - 1943, 1938, 1944, 1950, 1952, 1958, 1959, 1964, 1966, 1978, - 1973, 1984, 1985, 1989, 1993, 2000, 2004, 2005, 226, 216, - - 184, 0, 2019, 2011, 2012, 2020, 2026, 2028, 2034, 2045, - 2050, 2043, 2057, 2061, 2062, 2066, 2073, 2078, 2127, 182, - 164, 0, 2984, 2087, 2089, 2096, 2098, 2110, 2105, 2112, - 2119, 2121, 2133, 2182, 140, 2984, 2128, 2151, 2145, 2153, - 2159, 2160, 654, 464, 2210, 2214, 113, 94, 2183, 2184, - 712, 1620, 1803, 2221, 472, 2233, 100, 172, 2237, 2243, - 2256, 2248, 2261, 2270, 2275, 2280, 2288, 2292, 2296, 2300, - 190, 2304, 2343, 98, 2347, 2352, 2356, 2360, 2393, 2371, - 2375, 2379, 2984, 199, 2364, 2383, 2387, 2427, 2458, 2431, - 2439, 62, 239, 2435, 2443, 2447, 2492, 2496, 2500, 2504, - - 2548, 2613, 2508, 2512, 2522, 2526, 2534, 2540, 2573, 2582, - 2984, 2678, 2683, 2694, 2705, 2715, 2726, 2737, 2743, 2754, - 2764, 2775, 2782, 2793, 2804, 2814, 2821, 2832, 2843, 2849, - 2854, 2865, 2876, 2887, 2892, 2903, 2908, 2913, 2918, 2929, - 2939, 2950, 2961, 2972 + 0, 527, 51, 58, 65, 72, 568, 2903, 2903, 2903, + 542, 88, 0, 540, 548, 86, 2903, 2903, 533, 80, + 82, 88, 96, 105, 110, 115, 530, 118, 519, 75, + 136, 158, 2903, 514, 168, 174, 180, 107, 142, 154, + 156, 186, 200, 168, 161, 201, 212, 221, 207, 65, + 175, 2903, 72, 2903, 460, 235, 272, 278, 284, 131, + 289, 294, 299, 2903, 495, 95, 2903, 516, 0, 2903, + 2903, 132, 514, 2903, 2903, 2903, 2903, 2903, 498, 166, + 323, 150, 2903, 2903, 308, 325, 255, 473, 430, 2903, + 439, 446, 2903, 439, 2903, 207, 352, 284, 357, 332, + + 2903, 326, 330, 331, 351, 353, 369, 357, 368, 383, + 376, 384, 390, 395, 399, 406, 410, 411, 415, 422, + 430, 431, 436, 437, 451, 452, 458, 459, 457, 463, + 475, 477, 484, 483, 489, 495, 500, 512, 504, 518, + 524, 523, 2903, 2903, 390, 539, 372, 562, 577, 580, + 196, 605, 637, 228, 245, 2903, 590, 595, 605, 433, + 2903, 0, 2903, 2903, 627, 642, 697, 423, 330, 2903, + 613, 628, 716, 782, 420, 407, 2903, 2903, 2903, 404, + 808, 375, 374, 355, 365, 538, 623, 778, 783, 771, + 802, 776, 790, 804, 816, 821, 832, 827, 820, 838, + + 839, 844, 846, 850, 858, 865, 864, 866, 870, 881, + 888, 889, 890, 882, 904, 905, 906, 920, 921, 926, + 937, 932, 944, 949, 951, 955, 960, 956, 967, 2903, + 971, 631, 2903, 1003, 638, 391, 2903, 0, 1025, 1031, + 1051, 371, 1059, 0, 1075, 1016, 1027, 1135, 1201, 272, + 1080, 1227, 357, 1237, 2903, 0, 2903, 0, 320, 341, + 2903, 0, 313, 319, 305, 1029, 1041, 1206, 1207, 1221, + 1050, 1222, 1233, 1184, 1049, 1239, 1241, 1255, 1247, 1256, + 1267, 1248, 1262, 1274, 1278, 1282, 1283, 1290, 1297, 1298, + 1302, 1309, 1313, 1321, 1320, 1314, 1332, 1336, 1337, 1338, + + 1344, 1355, 1353, 1360, 2903, 1357, 1392, 1434, 1500, 0, + 1519, 1566, 1526, 1632, 325, 1637, 1671, 0, 2903, 0, + 2903, 0, 1642, 2903, 2903, 312, 2903, 0, 282, 275, + 1367, 1369, 1371, 1499, 1501, 1506, 1611, 1612, 1700, 1508, + 1616, 1701, 1705, 1707, 1719, 1723, 1617, 1730, 1737, 1738, + 1739, 1753, 1757, 1761, 1762, 1712, 1769, 1768, 1780, 1784, + 1786, 1788, 2903, 0, 2903, 0, 1839, 1844, 0, 1849, + 0, 0, 286, 2903, 273, 266, 1818, 1824, 1819, 1842, + 1833, 1838, 1853, 1854, 1859, 1868, 1861, 1873, 1875, 1877, + 1879, 1891, 1893, 1898, 1899, 1900, 1907, 1914, 1916, 1918, + + 1932, 282, 255, 235, 0, 1933, 1925, 1934, 1939, 1940, + 1948, 1954, 1955, 1969, 1962, 1974, 1973, 1978, 1980, 1985, + 1992, 2042, 246, 220, 0, 2903, 2000, 2001, 2012, 2017, + 2024, 2023, 2031, 2038, 2040, 2046, 2096, 211, 2903, 2058, + 2067, 2066, 2073, 2075, 2082, 700, 141, 2133, 2137, 206, + 160, 2105, 2106, 704, 920, 945, 1245, 237, 1421, 148, + 177, 2147, 2159, 2171, 1425, 2183, 2194, 2199, 2204, 2208, + 2212, 2216, 2220, 314, 2054, 2224, 114, 2228, 2264, 2268, + 2273, 2307, 2284, 2288, 2292, 2903, 361, 2277, 2296, 2300, + 2342, 2373, 2346, 2352, 79, 362, 2356, 2360, 2400, 2408, + + 2412, 2416, 2420, 2465, 2531, 2424, 2428, 2438, 2442, 2446, + 2451, 2457, 2490, 2903, 2597, 2602, 2613, 2624, 2634, 2645, + 2656, 2662, 2673, 2683, 2694, 2701, 2712, 2723, 2733, 2740, + 2751, 2762, 2768, 2773, 2784, 2795, 2806, 2811, 2822, 2827, + 2832, 2837, 2848, 2858, 2869, 2880, 2891 } ; -static yyconst flex_int16_t yy_def[545] = +static yyconst flex_int16_t yy_def[548] = { 0, - 511, 1, 1, 1, 1, 1, 511, 511, 511, 511, - 511, 512, 513, 511, 511, 514, 511, 511, 511, 511, - 511, 511, 511, 515, 515, 515, 511, 511, 511, 511, - 516, 511, 511, 516, 516, 516, 36, 36, 36, 36, - 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, - 511, 511, 511, 511, 36, 511, 511, 511, 517, 518, - 518, 518, 511, 511, 512, 511, 512, 519, 511, 511, - 514, 514, 511, 511, 511, 511, 511, 511, 520, 521, - 522, 511, 511, 520, 515, 511, 523, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 36, 511, 511, 36, - - 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, - 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, - 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, - 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, - 511, 511, 511, 36, 511, 524, 524, 525, 517, 526, - 522, 517, 517, 511, 525, 518, 511, 527, 511, 519, - 511, 511, 521, 521, 528, 511, 522, 511, 520, 520, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 36, 36, 36, 36, 36, 36, 36, - 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, - - 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, - 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, - 36, 36, 36, 36, 36, 36, 511, 36, 529, 511, - 529, 511, 530, 511, 531, 526, 526, 532, 531, 526, - 151, 517, 525, 525, 511, 511, 533, 521, 528, 511, - 521, 511, 171, 511, 171, 511, 511, 511, 534, 511, - 511, 511, 36, 36, 36, 36, 36, 36, 36, 36, - 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, - 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, - 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, - - 36, 511, 529, 529, 511, 511, 531, 535, 511, 526, - 532, 531, 526, 511, 242, 511, 245, 511, 245, 521, - 511, 511, 511, 511, 536, 511, 511, 36, 36, 36, - 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, - 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, - 36, 36, 36, 36, 36, 36, 36, 36, 36, 511, - 305, 511, 305, 526, 526, 531, 526, 309, 314, 511, - 511, 511, 511, 36, 36, 36, 36, 36, 36, 36, - 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, - 36, 36, 36, 36, 36, 36, 36, 36, 242, 511, - - 511, 537, 36, 36, 36, 36, 36, 36, 36, 36, - 36, 36, 36, 36, 36, 36, 36, 36, 36, 309, - 511, 538, 511, 36, 36, 36, 36, 36, 36, 36, - 36, 36, 36, 539, 540, 511, 36, 36, 36, 36, - 36, 36, 541, 542, 543, 541, 540, 540, 36, 36, - 511, 511, 541, 541, 542, 511, 542, 544, 544, 543, - 543, 541, 543, 511, 511, 541, 541, 541, 541, 541, - 540, 511, 511, 544, 511, 511, 541, 544, 541, 541, - 541, 541, 511, 540, 511, 511, 541, 541, 541, 541, - 541, 540, 540, 511, 511, 541, 541, 541, 541, 541, - - 541, 541, 511, 511, 541, 541, 511, 511, 541, 541, - 0, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511 + 514, 1, 1, 1, 1, 1, 514, 514, 514, 514, + 514, 515, 516, 514, 514, 517, 514, 514, 514, 514, + 514, 514, 514, 518, 518, 518, 514, 514, 514, 514, + 519, 519, 514, 514, 519, 519, 519, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 514, 514, 514, 514, 37, 514, 514, 514, 520, + 521, 521, 521, 514, 514, 515, 514, 515, 522, 514, + 514, 517, 517, 514, 514, 514, 514, 514, 514, 523, + 524, 525, 514, 514, 523, 518, 514, 526, 514, 514, + 514, 514, 514, 514, 514, 514, 514, 37, 514, 37, + + 514, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 514, 514, 514, 37, 514, 527, 527, 528, + 520, 529, 525, 520, 520, 514, 528, 521, 514, 530, + 514, 522, 514, 514, 524, 524, 531, 514, 525, 514, + 523, 523, 514, 526, 514, 514, 514, 514, 514, 514, + 514, 514, 514, 514, 514, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + + 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 514, + 37, 532, 514, 532, 514, 533, 514, 534, 529, 529, + 535, 534, 529, 153, 520, 528, 528, 514, 530, 536, + 524, 531, 514, 524, 514, 173, 514, 173, 514, 514, + 514, 537, 514, 514, 514, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + + 37, 37, 37, 37, 514, 532, 532, 514, 533, 534, + 538, 514, 529, 535, 534, 529, 514, 245, 514, 248, + 514, 248, 524, 514, 514, 514, 514, 539, 514, 514, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 514, 308, 514, 308, 529, 529, 534, 529, + 312, 317, 514, 514, 514, 514, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + + 37, 245, 514, 514, 540, 37, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 37, 37, 312, 514, 541, 514, 37, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 542, 543, 514, 37, + 37, 37, 37, 37, 37, 544, 545, 546, 544, 543, + 543, 37, 37, 514, 514, 544, 544, 545, 514, 545, + 547, 547, 546, 546, 544, 546, 514, 514, 544, 544, + 544, 544, 544, 543, 514, 514, 547, 514, 514, 544, + 547, 544, 544, 544, 544, 514, 543, 514, 514, 544, + 544, 544, 544, 544, 543, 543, 514, 514, 544, 544, + + 544, 544, 544, 544, 544, 514, 514, 544, 544, 514, + 514, 544, 544, 0, 514, 514, 514, 514, 514, 514, + 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, + 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, + 514, 514, 514, 514, 514, 514, 514 } ; -static yyconst flex_int16_t yy_nxt[3050] = +static yyconst flex_int16_t yy_nxt[2970] = { 0, 8, 9, 10, 9, 9, 11, 12, 8, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 31, 31, 31, - 31, 17, 8, 32, 33, 31, 34, 35, 36, 37, - 38, 39, 40, 31, 41, 31, 31, 31, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 31, 31, 51, - 52, 53, 8, 8, 54, 56, 57, 58, 59, 60, - 61, 62, 56, 57, 58, 59, 60, 61, 62, 56, - 57, 58, 59, 60, 61, 62, 56, 57, 58, 59, - 60, 61, 62, 66, 74, 448, 66, 76, 94, 95, - - 458, 55, 455, 75, 78, 77, 79, 79, 79, 63, - 80, 141, 168, 168, 81, 55, 63, 72, 90, 67, - 82, 84, 66, 85, 85, 85, 84, 471, 85, 85, - 85, 84, 108, 85, 85, 85, 91, 92, 96, 96, - 96, 96, 109, 66, 86, 97, 448, 142, 67, 86, - 137, 177, 178, 110, 86, 96, 96, 96, 96, 98, - 97, 87, 97, 138, 72, 88, 511, 96, 96, 96, - 96, 511, 97, 448, 111, 97, 98, 96, 96, 96, - 96, 97, 112, 456, 97, 105, 97, 113, 98, 320, - 115, 97, 114, 321, 106, 435, 97, 97, 98, 97, - - 166, 120, 116, 107, 474, 121, 100, 97, 117, 118, - 97, 97, 102, 119, 97, 483, 97, 101, 124, 122, - 168, 168, 103, 484, 492, 104, 97, 422, 97, 97, - 97, 97, 493, 125, 127, 123, 126, 97, 97, 97, - 97, 128, 421, 97, 420, 132, 97, 97, 97, 97, - 97, 97, 97, 133, 129, 130, 97, 131, 135, 97, - 134, 97, 136, 402, 492, 97, 401, 400, 139, 140, - 116, 97, 471, 373, 97, 97, 117, 144, 97, 235, - 74, 119, 145, 372, 146, 147, 147, 76, 145, 75, - 146, 147, 147, 153, 78, 77, 148, 148, 148, 150, - - 370, 251, 155, 151, 156, 156, 156, 235, 155, 152, - 156, 156, 156, 79, 79, 79, 155, 153, 156, 156, - 156, 153, 169, 169, 169, 157, 163, 163, 163, 163, - 327, 157, 326, 325, 86, 170, 170, 170, 323, 157, - 165, 322, 158, 86, 166, 229, 229, 229, 511, 84, - 88, 85, 85, 85, 251, 187, 511, 96, 96, 96, - 96, 179, 179, 179, 179, 97, 97, 97, 97, 251, - 184, 305, 86, 262, 261, 97, 97, 97, 98, 97, - 97, 97, 97, 185, 186, 97, 189, 188, 97, 511, - 97, 190, 97, 260, 97, 97, 97, 97, 192, 180, - - 97, 181, 191, 97, 97, 97, 97, 97, 242, 97, - 97, 259, 182, 193, 97, 195, 183, 97, 97, 97, - 97, 194, 153, 258, 97, 244, 244, 244, 97, 97, - 97, 196, 97, 97, 97, 197, 198, 97, 97, 97, - 97, 97, 304, 304, 304, 199, 97, 97, 257, 97, - 97, 97, 97, 97, 200, 97, 97, 97, 256, 97, - 97, 97, 201, 202, 97, 97, 203, 97, 97, 97, - 456, 205, 204, 207, 97, 97, 208, 206, 456, 97, - 97, 97, 97, 209, 97, 97, 251, 97, 210, 97, - 211, 97, 245, 97, 97, 214, 457, 227, 212, 97, - - 176, 97, 97, 97, 457, 97, 97, 175, 97, 97, - 213, 97, 174, 97, 97, 215, 173, 216, 171, 97, - 97, 97, 97, 97, 161, 71, 97, 65, 217, 159, - 97, 97, 143, 97, 97, 220, 97, 97, 218, 221, - 99, 222, 219, 97, 97, 93, 97, 97, 89, 97, - 97, 97, 224, 97, 97, 97, 97, 97, 223, 225, - 97, 97, 228, 73, 97, 97, 70, 69, 97, 64, - 97, 511, 226, 97, 55, 511, 201, 202, 231, 511, - 147, 147, 147, 231, 511, 147, 147, 147, 148, 148, - 148, 511, 511, 236, 236, 163, 236, 511, 243, 243, - - 243, 232, 163, 163, 163, 163, 232, 238, 511, 157, - 511, 239, 169, 169, 169, 511, 247, 511, 233, 157, - 170, 170, 170, 511, 263, 240, 168, 168, 163, 163, - 163, 163, 511, 86, 97, 97, 97, 97, 265, 264, - 511, 511, 247, 511, 511, 97, 97, 511, 97, 97, - 241, 241, 241, 241, 241, 451, 452, 451, 453, 511, - 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, - 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, - 241, 241, 241, 155, 97, 156, 156, 156, 97, 248, - 248, 248, 248, 511, 97, 511, 511, 97, 97, 269, - - 266, 97, 511, 249, 267, 268, 157, 250, 271, 97, - 511, 511, 97, 451, 452, 451, 451, 511, 97, 511, - 511, 97, 511, 511, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 253, 253, 253, 252, 252, 252, 252, - 253, 253, 253, 253, 253, 252, 511, 252, 252, 511, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 252, 252, 252, 252, 252, 252, 254, - 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, - - 254, 254, 254, 254, 254, 254, 255, 254, 172, 172, - 172, 254, 254, 254, 254, 172, 172, 172, 172, 172, - 254, 511, 254, 254, 511, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 254, 254, - 254, 254, 254, 254, 179, 179, 179, 179, 97, 97, - 97, 511, 270, 511, 273, 511, 272, 97, 97, 97, - 97, 97, 97, 97, 97, 276, 97, 97, 274, 511, - 97, 511, 511, 275, 97, 97, 97, 97, 97, 97, - 97, 97, 180, 277, 181, 511, 511, 97, 97, 511, - - 97, 97, 511, 97, 97, 182, 511, 278, 97, 183, - 279, 97, 97, 97, 511, 280, 281, 282, 97, 97, - 97, 511, 97, 97, 97, 97, 97, 283, 97, 97, - 284, 97, 97, 97, 97, 97, 97, 97, 511, 285, - 97, 97, 511, 511, 286, 97, 97, 511, 97, 97, - 97, 289, 97, 97, 97, 287, 97, 288, 97, 511, - 511, 511, 97, 97, 97, 97, 97, 292, 97, 97, - 290, 97, 97, 97, 97, 291, 97, 97, 97, 97, - 97, 293, 97, 295, 296, 294, 97, 97, 97, 97, - 97, 97, 97, 97, 97, 511, 97, 97, 297, 97, - - 97, 97, 97, 97, 97, 298, 511, 97, 97, 511, - 300, 299, 97, 97, 97, 97, 97, 511, 301, 511, - 511, 97, 229, 229, 229, 303, 303, 303, 511, 511, - 236, 236, 163, 236, 511, 236, 236, 163, 236, 243, - 243, 243, 511, 232, 308, 511, 232, 511, 309, 308, - 244, 244, 244, 309, 310, 310, 248, 310, 511, 511, - 157, 511, 240, 236, 236, 163, 236, 240, 311, 97, - 97, 511, 312, 163, 163, 163, 163, 308, 328, 97, - 97, 314, 97, 97, 97, 511, 313, 247, 511, 97, - 97, 329, 511, 511, 97, 240, 235, 97, 332, 97, - - 97, 511, 97, 97, 315, 315, 315, 315, 315, 511, - 153, 511, 511, 511, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 316, 316, 316, - 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, - 316, 316, 316, 316, 316, 316, 317, 317, 317, 316, - 316, 316, 316, 317, 317, 317, 317, 317, 316, 511, - 316, 316, 511, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 316, 316, 316, 316, - - 316, 316, 318, 318, 318, 318, 318, 318, 318, 318, - 318, 318, 318, 318, 318, 318, 318, 318, 318, 319, - 318, 246, 246, 246, 318, 318, 318, 318, 246, 246, - 246, 246, 246, 318, 511, 318, 318, 511, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 318, 318, 318, 318, 318, 318, 248, 248, 248, - 248, 511, 163, 163, 163, 163, 511, 511, 97, 97, - 511, 249, 511, 511, 511, 250, 247, 97, 97, 97, - 166, 97, 97, 97, 330, 511, 331, 97, 97, 511, - - 97, 511, 97, 97, 97, 333, 97, 511, 97, 335, - 334, 97, 97, 97, 97, 97, 336, 97, 97, 97, - 97, 511, 337, 338, 340, 97, 97, 511, 97, 97, - 97, 97, 97, 97, 342, 97, 339, 511, 97, 97, - 341, 511, 511, 97, 97, 97, 511, 97, 511, 97, - 97, 511, 97, 97, 343, 97, 97, 97, 97, 344, - 97, 347, 511, 97, 345, 348, 511, 97, 511, 97, - 97, 97, 346, 349, 97, 97, 97, 97, 97, 97, - 511, 511, 97, 97, 350, 97, 97, 97, 511, 97, - 97, 352, 351, 97, 511, 97, 97, 97, 97, 354, - - 353, 97, 97, 97, 511, 511, 511, 97, 511, 511, - 97, 97, 97, 97, 97, 97, 356, 97, 97, 97, - 511, 355, 357, 358, 97, 97, 511, 97, 97, 97, - 97, 97, 97, 511, 97, 97, 511, 97, 97, 303, - 303, 303, 97, 359, 304, 304, 304, 511, 97, 97, - 511, 511, 97, 511, 511, 97, 511, 511, 97, 97, - 232, 97, 97, 511, 511, 511, 360, 360, 360, 360, - 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, - 360, 360, 360, 360, 360, 361, 361, 361, 360, 360, - 360, 360, 361, 361, 361, 361, 361, 360, 511, 360, - - 360, 511, 361, 361, 361, 361, 361, 361, 361, 361, - 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, - 361, 361, 361, 361, 361, 360, 360, 360, 360, 360, - 360, 362, 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, 363, 362, - 306, 306, 306, 362, 362, 362, 362, 306, 306, 306, - 306, 306, 362, 511, 362, 362, 511, 306, 306, 306, - 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, - 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, - 362, 362, 362, 362, 362, 362, 251, 163, 163, 163, - - 163, 511, 511, 97, 511, 511, 511, 97, 365, 511, - 511, 247, 366, 97, 511, 250, 97, 97, 511, 374, - 97, 451, 452, 451, 451, 511, 367, 163, 163, 163, - 163, 164, 164, 164, 164, 164, 164, 164, 164, 164, - 164, 247, 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 368, 368, 368, 368, 368, 164, 164, - 164, 164, 164, 368, 368, 368, 368, 368, 368, 368, - 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, - 368, 368, 368, 368, 368, 368, 164, 164, 164, 164, - 164, 164, 236, 236, 163, 236, 511, 310, 310, 248, - - 310, 511, 236, 236, 163, 236, 308, 511, 97, 97, - 309, 311, 511, 376, 511, 312, 308, 97, 375, 97, - 314, 97, 97, 511, 240, 377, 511, 97, 511, 313, - 97, 511, 511, 511, 240, 236, 236, 163, 236, 237, - 237, 237, 237, 237, 237, 237, 237, 237, 237, 308, - 237, 237, 237, 309, 237, 237, 237, 237, 237, 237, - 237, 369, 369, 369, 369, 369, 237, 240, 237, 237, - 237, 369, 369, 369, 369, 369, 369, 369, 369, 369, - 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, - 369, 369, 369, 369, 237, 237, 237, 237, 237, 237, - - 97, 97, 97, 378, 451, 452, 451, 453, 97, 97, - 97, 97, 379, 97, 97, 97, 380, 97, 97, 97, - 381, 97, 97, 97, 511, 511, 511, 97, 511, 511, - 97, 511, 97, 97, 382, 383, 97, 384, 97, 511, - 511, 511, 97, 97, 385, 97, 511, 387, 97, 97, - 511, 97, 386, 97, 97, 97, 97, 388, 511, 97, - 389, 97, 97, 391, 97, 97, 97, 97, 97, 511, - 511, 97, 390, 97, 97, 392, 97, 511, 393, 97, - 97, 97, 394, 97, 511, 97, 97, 97, 511, 511, - 97, 97, 395, 97, 97, 97, 97, 97, 97, 511, - - 97, 396, 97, 97, 97, 511, 97, 398, 511, 97, - 397, 511, 97, 97, 97, 97, 97, 97, 236, 236, - 163, 236, 511, 236, 236, 163, 236, 511, 236, 236, - 163, 236, 308, 511, 97, 511, 239, 308, 511, 511, - 511, 312, 308, 97, 97, 511, 399, 97, 97, 97, - 240, 405, 403, 97, 97, 240, 97, 511, 97, 97, - 240, 97, 97, 97, 97, 404, 511, 97, 97, 511, - 406, 511, 511, 97, 97, 511, 97, 511, 97, 97, - 97, 408, 410, 409, 97, 407, 411, 97, 412, 97, - 97, 511, 97, 97, 413, 97, 97, 511, 97, 97, - - 97, 97, 97, 414, 97, 97, 415, 97, 97, 97, - 97, 511, 97, 97, 97, 97, 511, 511, 416, 97, - 97, 97, 97, 511, 97, 97, 417, 97, 511, 97, - 97, 97, 511, 97, 97, 97, 97, 511, 97, 97, - 97, 97, 97, 511, 511, 419, 97, 97, 97, 97, - 97, 97, 418, 97, 97, 97, 97, 97, 97, 424, - 97, 97, 97, 511, 97, 97, 97, 511, 97, 97, - 97, 511, 97, 511, 97, 97, 425, 97, 511, 97, - 97, 97, 426, 97, 511, 427, 97, 511, 428, 429, - 511, 97, 97, 97, 97, 430, 97, 97, 97, 97, - - 511, 431, 97, 97, 511, 511, 97, 97, 97, 97, - 97, 97, 97, 432, 97, 97, 511, 511, 433, 97, - 511, 511, 97, 97, 97, 97, 511, 97, 434, 434, - 434, 434, 97, 97, 97, 97, 97, 511, 97, 511, - 511, 97, 97, 511, 97, 97, 97, 438, 97, 437, - 439, 97, 440, 511, 97, 97, 97, 97, 97, 97, - 441, 97, 511, 97, 97, 97, 511, 97, 97, 97, - 97, 511, 442, 97, 97, 511, 97, 97, 511, 97, - 449, 97, 97, 434, 434, 434, 434, 97, 444, 97, - 511, 97, 450, 445, 97, 97, 97, 97, 511, 97, - - 97, 511, 97, 511, 446, 97, 97, 511, 97, 97, - 458, 459, 452, 459, 460, 464, 465, 464, 466, 97, - 97, 462, 451, 452, 451, 453, 511, 511, 511, 97, - 97, 511, 97, 97, 472, 473, 472, 472, 459, 452, - 459, 459, 463, 458, 459, 452, 459, 460, 456, 475, - 476, 475, 477, 467, 462, 468, 458, 459, 452, 459, - 460, 458, 459, 478, 459, 460, 469, 462, 511, 474, - 470, 464, 465, 464, 464, 463, 464, 465, 464, 464, - 511, 464, 465, 464, 466, 511, 511, 511, 463, 451, - 452, 451, 453, 451, 452, 451, 453, 451, 452, 451, - - 453, 451, 452, 451, 453, 472, 473, 472, 472, 180, - 511, 181, 511, 511, 180, 511, 181, 511, 511, 467, - 511, 468, 182, 511, 511, 511, 183, 182, 511, 511, - 511, 183, 469, 511, 511, 511, 470, 479, 511, 511, - 511, 480, 511, 482, 472, 473, 472, 472, 475, 476, - 475, 475, 481, 475, 476, 475, 475, 475, 476, 475, - 477, 459, 452, 459, 459, 451, 452, 451, 451, 511, - 511, 456, 451, 452, 451, 453, 451, 452, 451, 453, - 451, 452, 451, 453, 451, 452, 451, 451, 451, 452, - 451, 453, 474, 324, 485, 486, 485, 487, 488, 488, - - 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, - 488, 488, 511, 511, 511, 488, 488, 488, 488, 490, - 511, 511, 489, 491, 488, 511, 488, 488, 451, 452, - 451, 453, 451, 452, 451, 453, 451, 452, 451, 451, - 451, 452, 451, 453, 451, 452, 451, 451, 451, 452, - 451, 453, 488, 488, 488, 488, 488, 488, 371, 494, - 495, 494, 496, 497, 497, 497, 497, 497, 497, 497, - 497, 497, 497, 497, 497, 497, 497, 511, 511, 511, - 497, 497, 497, 497, 498, 499, 511, 511, 511, 497, - 511, 497, 497, 451, 452, 451, 453, 451, 452, 451, - - 453, 451, 452, 451, 453, 451, 452, 451, 453, 451, - 452, 451, 451, 451, 452, 451, 451, 497, 497, 497, - 497, 497, 497, 451, 452, 451, 453, 451, 452, 451, - 453, 511, 511, 511, 500, 451, 452, 451, 451, 511, - 501, 451, 452, 451, 451, 511, 511, 502, 423, 503, - 504, 503, 505, 506, 506, 506, 506, 506, 506, 506, - 506, 506, 506, 506, 506, 506, 506, 511, 511, 511, - 506, 506, 506, 506, 451, 452, 451, 453, 511, 506, - 511, 506, 506, 451, 452, 451, 453, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - - 511, 511, 511, 511, 511, 511, 511, 506, 506, 506, - 506, 506, 506, 436, 507, 508, 507, 509, 510, 510, - 510, 510, 510, 510, 510, 510, 510, 510, 510, 510, - 510, 510, 511, 511, 511, 510, 510, 510, 510, 511, - 511, 511, 511, 511, 510, 511, 510, 510, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 510, 510, 510, 510, 510, 510, 65, 65, - 511, 65, 65, 65, 65, 65, 65, 65, 65, 68, - 511, 68, 68, 68, 71, 71, 511, 71, 71, 71, - - 71, 71, 71, 71, 71, 83, 83, 83, 83, 83, - 83, 511, 511, 511, 83, 83, 97, 97, 511, 511, - 97, 97, 97, 97, 97, 97, 149, 149, 511, 149, - 149, 149, 149, 149, 149, 149, 149, 154, 154, 154, - 154, 154, 154, 511, 511, 511, 154, 154, 160, 160, - 160, 160, 160, 160, 162, 162, 162, 162, 162, 162, - 511, 511, 511, 162, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 167, 167, 167, 167, 167, - 167, 167, 167, 167, 167, 167, 172, 172, 172, 511, - 511, 172, 172, 230, 230, 230, 230, 230, 230, 511, - - 511, 511, 230, 230, 234, 234, 234, 234, 234, 234, - 511, 511, 511, 234, 237, 237, 237, 237, 237, 237, - 237, 237, 237, 237, 237, 246, 246, 246, 511, 511, - 246, 246, 163, 163, 163, 163, 163, 163, 163, 163, - 163, 163, 163, 302, 302, 302, 302, 302, 302, 511, - 511, 511, 302, 306, 306, 306, 511, 511, 306, 306, - 307, 511, 511, 307, 307, 236, 236, 236, 236, 236, - 236, 236, 236, 236, 236, 236, 251, 251, 251, 251, - 251, 251, 251, 251, 251, 251, 251, 324, 324, 324, - 324, 324, 364, 364, 364, 364, 364, 364, 364, 364, - - 364, 364, 364, 371, 371, 371, 371, 371, 423, 423, - 423, 423, 423, 436, 436, 436, 436, 436, 443, 443, - 443, 443, 443, 443, 443, 443, 443, 443, 443, 447, - 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, - 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, - 455, 455, 511, 455, 455, 455, 455, 455, 455, 455, - 455, 461, 461, 461, 461, 461, 461, 461, 461, 461, - 461, 461, 458, 458, 511, 458, 458, 458, 458, 458, - 458, 458, 458, 7, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511 + 32, 31, 17, 8, 33, 34, 31, 35, 36, 37, + 38, 39, 40, 41, 31, 42, 31, 31, 31, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 31, 31, + 52, 53, 54, 8, 8, 55, 57, 58, 59, 60, + 61, 62, 63, 57, 58, 59, 60, 61, 62, 63, + 57, 58, 59, 60, 61, 62, 63, 57, 58, 59, + 60, 61, 62, 63, 67, 75, 143, 67, 77, 95, + + 96, 67, 139, 56, 76, 79, 78, 80, 80, 80, + 81, 64, 98, 451, 82, 140, 461, 56, 64, 73, + 83, 68, 85, 91, 86, 86, 86, 85, 68, 86, + 86, 86, 85, 144, 86, 86, 86, 97, 97, 97, + 97, 92, 93, 67, 98, 152, 87, 459, 107, 153, + 458, 87, 170, 170, 98, 154, 87, 108, 99, 97, + 97, 97, 97, 88, 155, 73, 109, 89, 514, 97, + 97, 97, 97, 514, 460, 97, 97, 97, 97, 110, + 99, 97, 97, 97, 97, 80, 80, 80, 459, 111, + 99, 113, 98, 98, 474, 100, 99, 117, 126, 114, + + 112, 98, 99, 98, 115, 98, 98, 87, 98, 116, + 477, 98, 98, 127, 238, 98, 128, 104, 98, 141, + 142, 102, 98, 98, 125, 98, 103, 105, 118, 155, + 106, 179, 180, 98, 119, 120, 98, 122, 98, 121, + 451, 123, 129, 459, 98, 451, 238, 98, 98, 98, + 98, 98, 438, 130, 98, 124, 137, 98, 98, 98, + 138, 155, 98, 245, 168, 134, 131, 132, 98, 133, + 460, 98, 98, 135, 172, 172, 172, 118, 155, 425, + 136, 424, 98, 119, 146, 98, 323, 75, 121, 147, + 324, 148, 149, 149, 77, 147, 76, 148, 149, 149, + + 423, 79, 78, 150, 150, 150, 157, 405, 158, 158, + 158, 157, 404, 158, 158, 158, 157, 403, 158, 158, + 158, 98, 376, 165, 165, 165, 165, 171, 171, 171, + 159, 98, 170, 170, 98, 159, 375, 167, 373, 486, + 159, 168, 85, 254, 86, 86, 86, 160, 487, 87, + 330, 89, 514, 97, 97, 97, 97, 514, 181, 181, + 181, 181, 186, 98, 329, 328, 87, 98, 98, 98, + 326, 187, 325, 98, 99, 254, 98, 98, 98, 98, + 98, 98, 98, 514, 188, 189, 495, 495, 190, 254, + 98, 232, 232, 232, 98, 496, 474, 182, 98, 183, + + 98, 98, 191, 98, 98, 98, 98, 98, 308, 265, + 184, 192, 264, 98, 185, 98, 193, 194, 98, 98, + 98, 98, 195, 98, 263, 262, 98, 98, 261, 196, + 98, 98, 98, 98, 98, 260, 98, 198, 197, 259, + 98, 254, 98, 98, 199, 98, 98, 98, 98, 98, + 248, 200, 98, 98, 230, 201, 98, 98, 98, 98, + 98, 98, 98, 178, 202, 98, 203, 98, 98, 98, + 177, 176, 98, 98, 98, 204, 205, 98, 98, 206, + 98, 98, 175, 98, 209, 207, 98, 98, 98, 98, + 173, 211, 210, 208, 98, 98, 98, 214, 98, 98, + + 98, 98, 98, 212, 98, 98, 98, 98, 213, 98, + 98, 215, 217, 98, 98, 163, 72, 216, 66, 161, + 98, 98, 98, 145, 98, 98, 98, 98, 218, 219, + 98, 98, 98, 98, 98, 220, 98, 98, 101, 98, + 224, 98, 98, 94, 221, 98, 223, 98, 222, 98, + 98, 98, 90, 225, 98, 98, 226, 74, 71, 98, + 98, 98, 98, 227, 70, 98, 65, 514, 98, 228, + 98, 98, 56, 98, 98, 98, 98, 229, 231, 234, + 514, 149, 149, 149, 514, 98, 98, 514, 98, 98, + 514, 514, 204, 205, 234, 514, 149, 149, 149, 150, + + 150, 150, 514, 235, 514, 239, 239, 165, 239, 246, + 246, 246, 157, 514, 158, 158, 158, 514, 235, 241, + 236, 159, 514, 242, 247, 247, 247, 165, 165, 165, + 165, 159, 171, 171, 171, 514, 159, 514, 243, 170, + 170, 250, 165, 165, 165, 165, 514, 172, 172, 172, + 232, 232, 232, 514, 87, 514, 250, 307, 307, 307, + 266, 514, 514, 244, 244, 244, 244, 244, 244, 514, + 98, 514, 235, 98, 244, 244, 244, 244, 244, 244, + 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, + 244, 244, 244, 244, 244, 244, 244, 251, 251, 251, + + 251, 454, 455, 454, 456, 454, 455, 454, 454, 514, + 514, 252, 514, 514, 514, 253, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 256, 256, 256, 255, 255, + 255, 255, 256, 256, 256, 256, 256, 256, 255, 514, + 255, 255, 514, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 255, 255, 255, 255, + 255, 255, 257, 257, 257, 257, 257, 257, 257, 257, + 257, 257, 257, 257, 257, 257, 257, 257, 257, 258, + + 257, 514, 514, 514, 257, 257, 257, 257, 98, 181, + 181, 181, 181, 272, 257, 98, 257, 257, 98, 267, + 98, 98, 268, 98, 269, 98, 98, 98, 98, 514, + 98, 273, 514, 98, 514, 514, 514, 98, 514, 98, + 98, 274, 257, 257, 257, 257, 257, 257, 182, 98, + 183, 98, 98, 98, 98, 270, 271, 279, 98, 514, + 275, 184, 276, 98, 98, 185, 98, 98, 98, 98, + 98, 98, 514, 277, 98, 98, 98, 98, 280, 98, + 278, 98, 98, 98, 514, 98, 98, 98, 98, 98, + 514, 98, 514, 281, 98, 98, 282, 98, 514, 284, + + 98, 98, 98, 98, 283, 98, 285, 98, 98, 286, + 514, 98, 98, 98, 98, 98, 98, 287, 98, 98, + 98, 454, 455, 454, 454, 98, 98, 98, 98, 292, + 514, 98, 98, 288, 289, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 291, 290, 454, 455, 454, 456, + 514, 98, 98, 98, 98, 98, 98, 98, 98, 293, + 294, 295, 514, 98, 514, 514, 514, 98, 98, 98, + 98, 98, 514, 98, 98, 296, 297, 514, 298, 98, + 514, 98, 98, 514, 98, 299, 98, 98, 98, 514, + 300, 98, 98, 98, 98, 514, 98, 98, 98, 98, + + 301, 98, 98, 302, 98, 98, 98, 98, 98, 514, + 98, 303, 514, 514, 98, 514, 514, 98, 304, 514, + 514, 98, 306, 306, 306, 239, 239, 165, 239, 514, + 514, 239, 239, 165, 239, 246, 246, 246, 514, 311, + 514, 514, 514, 312, 235, 311, 247, 247, 247, 312, + 514, 313, 313, 251, 313, 514, 514, 159, 243, 239, + 239, 165, 239, 514, 243, 314, 98, 514, 514, 315, + 514, 514, 514, 311, 514, 331, 98, 317, 98, 98, + 165, 165, 165, 165, 316, 514, 98, 98, 98, 514, + 514, 98, 243, 238, 250, 335, 98, 98, 514, 98, + + 98, 318, 318, 318, 318, 318, 318, 514, 155, 514, + 514, 514, 318, 318, 318, 318, 318, 318, 318, 318, + 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, + 318, 318, 318, 318, 318, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 320, 320, 320, 319, 319, 319, + 319, 320, 320, 320, 320, 320, 320, 319, 514, 319, + 319, 514, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 319, 319, 319, 319, 319, + + 319, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 321, 321, 321, 321, 321, 321, 321, 321, 322, 321, + 514, 98, 514, 321, 321, 321, 321, 251, 251, 251, + 251, 98, 338, 321, 98, 321, 321, 165, 165, 165, + 165, 252, 514, 98, 98, 253, 454, 455, 454, 456, + 332, 250, 514, 98, 98, 168, 98, 98, 98, 98, + 333, 321, 321, 321, 321, 321, 321, 514, 98, 98, + 98, 98, 98, 514, 514, 334, 98, 336, 98, 514, + 98, 514, 514, 98, 98, 98, 98, 337, 98, 98, + 339, 98, 98, 98, 341, 98, 340, 98, 98, 345, + + 344, 514, 98, 98, 98, 98, 98, 514, 343, 98, + 342, 98, 98, 514, 98, 98, 514, 98, 514, 98, + 98, 98, 514, 514, 98, 98, 346, 98, 98, 98, + 98, 347, 98, 98, 350, 351, 514, 98, 348, 98, + 98, 514, 349, 352, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 357, 353, 514, 98, 98, 98, 98, + 98, 98, 514, 98, 98, 354, 355, 98, 98, 98, + 98, 98, 356, 98, 98, 98, 306, 306, 306, 98, + 360, 98, 98, 98, 98, 98, 98, 359, 98, 358, + 98, 98, 98, 514, 98, 514, 361, 98, 235, 514, + + 98, 514, 98, 98, 98, 98, 98, 98, 98, 514, + 98, 307, 307, 307, 98, 362, 98, 98, 98, 98, + 514, 98, 475, 476, 475, 475, 478, 479, 478, 480, + 514, 514, 514, 514, 363, 363, 363, 363, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 363, 364, 364, 364, 363, 363, 363, 363, + 364, 364, 364, 364, 364, 364, 363, 514, 363, 363, + 514, 364, 364, 364, 364, 364, 364, 364, 364, 364, + 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, + 364, 364, 364, 364, 363, 363, 363, 363, 363, 363, + + 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, + 365, 365, 365, 365, 365, 365, 365, 366, 365, 514, + 514, 254, 365, 365, 365, 365, 239, 239, 165, 239, + 514, 514, 365, 368, 365, 365, 98, 369, 98, 514, + 311, 514, 514, 98, 312, 98, 98, 514, 98, 98, + 377, 98, 370, 378, 514, 98, 98, 514, 98, 243, + 365, 365, 365, 365, 365, 365, 165, 165, 165, 165, + 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, + 250, 166, 166, 166, 166, 166, 166, 166, 166, 166, + 166, 166, 371, 371, 371, 371, 371, 371, 166, 166, + + 166, 166, 166, 371, 371, 371, 371, 371, 371, 371, + 371, 371, 371, 371, 371, 371, 371, 371, 371, 371, + 371, 371, 371, 371, 371, 371, 166, 166, 166, 166, + 166, 166, 313, 313, 251, 313, 514, 239, 239, 165, + 239, 514, 165, 165, 165, 165, 314, 514, 98, 98, + 315, 311, 379, 98, 98, 317, 250, 380, 98, 98, + 253, 98, 98, 382, 98, 316, 98, 98, 389, 514, + 243, 239, 239, 165, 239, 240, 240, 240, 240, 240, + 240, 240, 240, 240, 240, 311, 240, 240, 240, 312, + 240, 240, 240, 240, 240, 240, 240, 372, 372, 372, + + 372, 372, 372, 240, 243, 240, 240, 240, 372, 372, + 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, + 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, + 372, 240, 240, 240, 240, 240, 240, 98, 98, 514, + 381, 514, 98, 514, 98, 514, 383, 98, 98, 98, + 98, 98, 98, 384, 98, 98, 98, 98, 514, 98, + 98, 385, 98, 514, 514, 387, 98, 98, 386, 98, + 98, 390, 388, 98, 98, 98, 98, 98, 514, 514, + 98, 392, 391, 514, 98, 98, 98, 98, 98, 98, + 98, 514, 394, 393, 98, 514, 395, 514, 98, 98, + + 98, 397, 514, 98, 98, 98, 98, 98, 98, 98, + 396, 98, 98, 398, 514, 98, 98, 98, 98, 98, + 514, 98, 399, 98, 514, 98, 514, 98, 401, 400, + 98, 98, 514, 98, 98, 98, 98, 514, 98, 239, + 239, 165, 239, 514, 239, 239, 165, 239, 514, 239, + 239, 165, 239, 311, 514, 98, 98, 242, 311, 514, + 514, 98, 315, 311, 514, 98, 98, 402, 98, 98, + 98, 98, 243, 406, 98, 98, 514, 243, 407, 98, + 98, 408, 243, 98, 514, 98, 409, 514, 98, 98, + 98, 98, 98, 514, 514, 412, 98, 410, 414, 514, + + 98, 98, 514, 411, 98, 98, 98, 413, 98, 98, + 415, 98, 416, 514, 98, 98, 98, 514, 98, 417, + 98, 514, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 514, 418, 514, 419, 98, 98, 98, 98, 514, + 98, 98, 514, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 420, 98, 98, 98, 514, 98, 514, 514, + 514, 98, 98, 98, 98, 98, 98, 421, 98, 98, + 98, 98, 98, 422, 427, 98, 98, 98, 514, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 514, 98, + 98, 98, 98, 514, 514, 98, 430, 428, 98, 98, + + 514, 98, 98, 429, 98, 98, 98, 514, 431, 432, + 98, 98, 98, 433, 434, 98, 98, 98, 514, 98, + 98, 98, 98, 98, 98, 98, 435, 98, 98, 98, + 98, 514, 98, 436, 514, 98, 514, 98, 98, 98, + 514, 514, 98, 437, 437, 437, 437, 98, 98, 98, + 98, 98, 514, 514, 98, 475, 476, 475, 475, 98, + 98, 98, 98, 514, 98, 442, 440, 441, 98, 514, + 98, 98, 443, 98, 98, 98, 514, 98, 98, 98, + 444, 98, 514, 98, 514, 98, 445, 98, 98, 98, + 98, 514, 98, 98, 514, 98, 98, 437, 437, 437, + + 437, 514, 447, 98, 98, 98, 514, 448, 98, 453, + 98, 452, 98, 98, 98, 514, 98, 98, 449, 98, + 98, 514, 98, 98, 514, 98, 514, 514, 514, 98, + 514, 514, 98, 461, 462, 455, 462, 463, 467, 468, + 467, 469, 98, 98, 465, 514, 514, 514, 462, 455, + 462, 462, 98, 98, 514, 98, 98, 514, 459, 461, + 462, 455, 462, 463, 514, 514, 466, 514, 514, 514, + 465, 461, 462, 455, 462, 463, 514, 470, 514, 471, + 477, 514, 465, 461, 462, 481, 462, 463, 514, 514, + 472, 514, 466, 514, 473, 467, 468, 467, 467, 514, + + 467, 468, 467, 467, 466, 467, 468, 467, 469, 454, + 455, 454, 456, 454, 455, 454, 456, 454, 455, 454, + 456, 454, 455, 454, 456, 475, 476, 475, 475, 478, + 479, 478, 478, 514, 182, 514, 183, 514, 514, 182, + 514, 183, 514, 514, 470, 514, 471, 184, 514, 514, + 514, 185, 184, 514, 514, 514, 185, 472, 482, 514, + 514, 473, 483, 514, 485, 478, 479, 478, 478, 478, + 479, 478, 480, 484, 462, 455, 462, 462, 454, 455, + 454, 454, 514, 514, 459, 454, 455, 454, 456, 454, + 455, 454, 456, 454, 455, 454, 456, 454, 455, 454, + + 454, 454, 455, 454, 456, 514, 477, 327, 488, 489, + 488, 490, 491, 491, 491, 491, 491, 491, 491, 491, + 491, 491, 491, 491, 491, 491, 514, 514, 514, 491, + 491, 491, 491, 493, 514, 514, 492, 494, 514, 491, + 514, 491, 491, 454, 455, 454, 456, 454, 455, 454, + 456, 514, 514, 454, 455, 454, 456, 454, 455, 454, + 454, 454, 455, 454, 454, 514, 514, 491, 491, 491, + 491, 491, 491, 374, 497, 498, 497, 499, 500, 500, + 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, + 500, 500, 514, 514, 514, 500, 500, 500, 500, 502, + + 501, 454, 455, 454, 456, 500, 514, 500, 500, 454, + 455, 454, 456, 454, 455, 454, 456, 454, 455, 454, + 456, 454, 455, 454, 456, 454, 455, 454, 454, 454, + 455, 454, 454, 500, 500, 500, 500, 500, 500, 454, + 455, 454, 456, 454, 455, 454, 456, 454, 455, 454, + 454, 503, 454, 455, 454, 454, 514, 504, 454, 455, + 454, 456, 514, 514, 505, 426, 506, 507, 506, 508, + 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, + 509, 509, 509, 509, 514, 514, 514, 509, 509, 509, + 509, 454, 455, 454, 456, 514, 514, 509, 514, 509, + + 509, 514, 514, 514, 514, 514, 514, 514, 514, 514, + 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, + 514, 514, 514, 514, 514, 509, 509, 509, 509, 509, + 509, 439, 510, 511, 510, 512, 513, 513, 513, 513, + 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, + 514, 514, 514, 513, 513, 513, 513, 514, 514, 514, + 514, 514, 514, 513, 514, 513, 513, 514, 514, 514, + 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, + 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, + 514, 513, 513, 513, 513, 513, 513, 66, 66, 514, + + 66, 66, 66, 66, 66, 66, 66, 66, 69, 514, + 69, 69, 69, 72, 72, 514, 72, 72, 72, 72, + 72, 72, 72, 72, 84, 84, 84, 84, 84, 84, + 514, 514, 514, 84, 84, 98, 98, 514, 514, 98, + 98, 98, 98, 98, 98, 151, 151, 514, 151, 151, + 151, 151, 151, 151, 151, 151, 156, 156, 156, 156, + 156, 156, 514, 514, 514, 156, 156, 162, 162, 162, + 162, 162, 162, 164, 164, 164, 164, 164, 164, 514, + 514, 514, 164, 166, 166, 166, 166, 166, 166, 166, + 166, 166, 166, 166, 169, 169, 169, 169, 169, 169, + + 169, 169, 169, 169, 169, 174, 174, 174, 514, 514, + 174, 174, 233, 233, 233, 233, 233, 233, 514, 514, + 514, 233, 233, 237, 237, 237, 237, 237, 237, 514, + 514, 514, 237, 240, 240, 240, 240, 240, 240, 240, + 240, 240, 240, 240, 249, 249, 249, 514, 514, 249, + 249, 165, 165, 165, 165, 165, 165, 165, 165, 165, + 165, 165, 305, 305, 305, 305, 305, 305, 514, 514, + 514, 305, 309, 309, 309, 514, 514, 309, 309, 310, + 514, 514, 310, 310, 239, 239, 239, 239, 239, 239, + 239, 239, 239, 239, 239, 254, 254, 254, 254, 254, + + 254, 254, 254, 254, 254, 254, 327, 327, 327, 327, + 327, 367, 367, 367, 367, 367, 367, 367, 367, 367, + 367, 367, 374, 374, 374, 374, 374, 426, 426, 426, + 426, 426, 439, 439, 439, 439, 439, 446, 446, 446, + 446, 446, 446, 446, 446, 446, 446, 446, 450, 450, + 450, 450, 450, 450, 450, 450, 450, 450, 450, 457, + 457, 457, 457, 457, 457, 457, 457, 457, 457, 458, + 458, 514, 458, 458, 458, 458, 458, 458, 458, 458, + 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, + 464, 461, 461, 514, 461, 461, 461, 461, 461, 461, + + 461, 461, 7, 514, 514, 514, 514, 514, 514, 514, + 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, + 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, + 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, + 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, + 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, + 514, 514, 514, 514, 514, 514, 514, 514, 514 } ; -static yyconst flex_int16_t yy_chk[3050] = +static yyconst flex_int16_t yy_chk[2970] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -967,335 +958,326 @@ static yyconst flex_int16_t yy_chk[3050] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, - 3, 3, 4, 4, 4, 4, 4, 4, 4, 5, - 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, - 6, 6, 6, 12, 20, 492, 16, 21, 30, 30, - - 474, 4, 457, 20, 22, 21, 22, 22, 22, 3, - 23, 52, 81, 81, 23, 6, 4, 16, 28, 12, - 23, 24, 65, 24, 24, 24, 25, 448, 25, 25, - 25, 26, 38, 26, 26, 26, 28, 28, 31, 31, - 31, 31, 38, 71, 24, 38, 447, 52, 65, 25, - 49, 95, 95, 38, 26, 34, 34, 34, 34, 31, - 49, 24, 97, 49, 71, 26, 25, 35, 35, 35, - 35, 26, 97, 435, 39, 97, 34, 36, 36, 36, - 36, 37, 39, 458, 39, 37, 40, 39, 35, 247, - 40, 37, 39, 247, 37, 421, 40, 41, 36, 40, - - 420, 42, 41, 37, 458, 42, 34, 41, 41, 41, - 41, 42, 36, 41, 42, 471, 43, 35, 44, 42, - 167, 167, 36, 471, 484, 36, 43, 401, 44, 43, - 45, 44, 484, 44, 45, 43, 44, 46, 47, 100, - 45, 46, 400, 45, 399, 47, 48, 46, 47, 100, - 46, 47, 100, 47, 46, 46, 48, 46, 48, 48, - 47, 50, 48, 373, 493, 55, 372, 370, 50, 50, - 55, 50, 493, 327, 50, 55, 55, 55, 55, 149, - 56, 55, 56, 326, 56, 56, 56, 57, 57, 56, - 57, 57, 57, 149, 58, 57, 58, 58, 58, 59, - - 323, 312, 60, 59, 60, 60, 60, 152, 61, 59, - 61, 61, 61, 79, 79, 79, 62, 59, 62, 62, - 62, 152, 84, 84, 84, 60, 80, 80, 80, 80, - 262, 61, 261, 260, 79, 86, 86, 86, 257, 62, - 80, 256, 60, 84, 80, 145, 145, 145, 61, 85, - 62, 85, 85, 85, 250, 103, 62, 96, 96, 96, - 96, 98, 98, 98, 98, 103, 101, 102, 103, 239, - 101, 233, 85, 183, 182, 104, 101, 102, 96, 101, - 102, 105, 106, 102, 102, 104, 105, 104, 104, 85, - 107, 105, 106, 181, 105, 106, 108, 109, 108, 98, - - 107, 98, 107, 107, 110, 111, 108, 109, 153, 108, - 109, 180, 98, 109, 110, 111, 98, 110, 111, 112, - 113, 110, 153, 178, 114, 157, 157, 157, 115, 112, - 113, 112, 112, 113, 114, 113, 114, 114, 115, 116, - 117, 115, 232, 232, 232, 115, 118, 119, 174, 116, - 117, 121, 116, 117, 117, 120, 118, 119, 173, 118, - 119, 121, 118, 118, 121, 120, 120, 122, 120, 123, - 444, 121, 120, 123, 124, 125, 124, 122, 455, 123, - 122, 127, 123, 125, 124, 125, 166, 124, 125, 126, - 126, 127, 158, 128, 127, 129, 444, 143, 127, 126, - - 93, 130, 126, 128, 455, 129, 128, 91, 129, 131, - 128, 130, 90, 132, 130, 130, 88, 131, 87, 131, - 133, 134, 131, 132, 78, 72, 132, 67, 132, 64, - 133, 134, 54, 133, 134, 134, 135, 136, 133, 135, - 33, 136, 133, 137, 138, 29, 135, 136, 27, 135, - 136, 139, 138, 137, 138, 140, 137, 138, 137, 139, - 144, 139, 144, 19, 139, 140, 15, 14, 140, 11, - 144, 7, 140, 144, 2, 0, 144, 144, 146, 0, - 146, 146, 146, 147, 0, 147, 147, 147, 148, 148, - 148, 0, 0, 150, 150, 150, 150, 0, 155, 155, - - 155, 146, 163, 163, 163, 163, 147, 150, 0, 148, - 0, 150, 169, 169, 169, 0, 163, 0, 146, 155, - 170, 170, 170, 147, 184, 150, 151, 151, 164, 164, - 164, 164, 0, 169, 184, 185, 186, 184, 186, 185, - 0, 170, 164, 0, 0, 185, 186, 0, 185, 186, - 151, 151, 151, 151, 151, 443, 443, 443, 443, 0, - 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 156, 187, 156, 156, 156, 188, 165, - 165, 165, 165, 0, 187, 0, 0, 187, 188, 189, - - 187, 188, 0, 165, 188, 188, 156, 165, 191, 189, - 0, 0, 189, 451, 451, 451, 451, 0, 191, 0, - 0, 191, 0, 156, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 0, 171, 171, 0, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 0, 172, 172, 0, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 179, 179, 179, 179, 190, 192, - 193, 0, 190, 0, 193, 0, 192, 195, 190, 192, - 193, 190, 192, 193, 194, 196, 197, 195, 194, 0, - 195, 0, 0, 195, 194, 196, 197, 194, 196, 197, - 199, 198, 179, 198, 179, 0, 0, 200, 201, 0, - - 199, 198, 0, 199, 198, 179, 0, 200, 201, 179, - 200, 201, 202, 203, 0, 201, 202, 203, 205, 204, - 206, 0, 202, 203, 207, 202, 203, 204, 205, 204, - 206, 205, 204, 206, 207, 208, 209, 207, 0, 207, - 210, 211, 0, 0, 208, 208, 209, 0, 208, 209, - 210, 211, 212, 210, 211, 209, 213, 210, 214, 0, - 0, 0, 212, 215, 216, 212, 213, 215, 214, 213, - 212, 214, 217, 215, 216, 214, 215, 216, 219, 218, - 220, 216, 217, 218, 220, 217, 222, 223, 219, 218, - 220, 219, 218, 220, 221, 0, 222, 223, 221, 222, - - 223, 225, 224, 226, 221, 224, 0, 221, 228, 0, - 226, 225, 224, 226, 225, 224, 226, 0, 228, 0, - 0, 228, 229, 229, 229, 231, 231, 231, 0, 0, - 236, 236, 236, 236, 0, 237, 237, 237, 237, 243, - 243, 243, 0, 229, 236, 0, 231, 0, 236, 237, - 244, 244, 244, 237, 238, 238, 238, 238, 0, 0, - 243, 0, 236, 240, 240, 240, 240, 237, 238, 263, - 264, 244, 238, 248, 248, 248, 248, 240, 263, 263, - 264, 240, 263, 264, 265, 0, 238, 248, 0, 272, - 268, 265, 0, 0, 265, 240, 242, 265, 268, 272, - - 268, 0, 272, 268, 242, 242, 242, 242, 242, 0, - 242, 0, 0, 0, 242, 242, 242, 242, 242, 242, - 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, - 242, 242, 242, 242, 242, 242, 242, 245, 245, 245, - 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, - 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, - 245, 245, 245, 245, 245, 245, 245, 245, 245, 0, - 245, 245, 0, 245, 245, 245, 245, 245, 245, 245, - 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, + 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, + 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, + 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, + 6, 6, 6, 6, 12, 20, 53, 16, 21, 30, + + 30, 66, 50, 4, 20, 22, 21, 22, 22, 22, + 23, 3, 50, 495, 23, 50, 477, 6, 4, 16, + 23, 12, 24, 28, 24, 24, 24, 25, 66, 25, + 25, 25, 26, 53, 26, 26, 26, 31, 31, 31, + 31, 28, 28, 72, 38, 60, 24, 447, 38, 60, + 460, 25, 82, 82, 38, 60, 26, 38, 31, 32, + 32, 32, 32, 24, 60, 72, 38, 26, 25, 35, + 35, 35, 35, 26, 447, 36, 36, 36, 36, 39, + 32, 37, 37, 37, 37, 80, 80, 80, 461, 39, + 35, 40, 39, 41, 451, 32, 36, 41, 45, 40, + + 39, 40, 37, 41, 40, 44, 41, 80, 45, 40, + 461, 45, 51, 45, 151, 44, 45, 37, 44, 51, + 51, 35, 51, 42, 44, 51, 36, 37, 42, 151, + 37, 96, 96, 42, 42, 42, 42, 43, 46, 42, + 450, 43, 46, 458, 49, 438, 154, 43, 46, 47, + 43, 46, 424, 47, 49, 43, 49, 49, 48, 47, + 49, 154, 47, 155, 423, 48, 47, 47, 48, 47, + 458, 48, 56, 48, 87, 87, 87, 56, 155, 404, + 48, 403, 56, 56, 56, 56, 250, 57, 56, 57, + 250, 57, 57, 57, 58, 58, 57, 58, 58, 58, + + 402, 59, 58, 59, 59, 59, 61, 376, 61, 61, + 61, 62, 375, 62, 62, 62, 63, 373, 63, 63, + 63, 98, 330, 81, 81, 81, 81, 85, 85, 85, + 61, 98, 169, 169, 98, 62, 329, 81, 326, 474, + 63, 81, 86, 315, 86, 86, 86, 61, 474, 85, + 265, 63, 62, 97, 97, 97, 97, 63, 99, 99, + 99, 99, 100, 102, 264, 263, 86, 103, 104, 100, + 260, 103, 259, 102, 97, 253, 102, 103, 104, 100, + 103, 104, 100, 86, 104, 104, 487, 496, 105, 242, + 106, 147, 147, 147, 108, 487, 496, 99, 105, 99, + + 106, 105, 106, 106, 108, 109, 107, 108, 236, 185, + 99, 107, 184, 111, 99, 109, 107, 109, 109, 107, + 110, 112, 110, 111, 183, 182, 111, 113, 180, 111, + 110, 112, 114, 110, 112, 176, 115, 113, 112, 175, + 113, 168, 114, 116, 114, 114, 115, 117, 118, 115, + 160, 115, 119, 116, 145, 116, 116, 117, 118, 120, + 117, 118, 119, 94, 117, 119, 119, 121, 122, 120, + 92, 91, 120, 123, 124, 120, 120, 121, 122, 122, + 121, 122, 89, 123, 124, 122, 123, 124, 125, 126, + 88, 126, 125, 123, 129, 127, 128, 128, 125, 126, + + 130, 125, 126, 127, 129, 127, 128, 129, 127, 128, + 130, 129, 131, 130, 132, 79, 73, 130, 68, 65, + 134, 133, 131, 55, 132, 131, 135, 132, 132, 133, + 134, 133, 136, 134, 133, 134, 135, 137, 34, 135, + 137, 139, 136, 29, 135, 136, 136, 137, 135, 138, + 137, 139, 27, 138, 139, 140, 139, 19, 15, 138, + 142, 141, 138, 140, 14, 140, 11, 7, 140, 141, + 142, 141, 2, 142, 141, 186, 146, 142, 146, 148, + 0, 148, 148, 148, 0, 186, 146, 0, 186, 146, + 0, 0, 146, 146, 149, 0, 149, 149, 149, 150, + + 150, 150, 0, 148, 0, 152, 152, 152, 152, 157, + 157, 157, 158, 0, 158, 158, 158, 0, 149, 152, + 148, 150, 0, 152, 159, 159, 159, 165, 165, 165, + 165, 157, 171, 171, 171, 149, 158, 0, 152, 153, + 153, 165, 166, 166, 166, 166, 0, 172, 172, 172, + 232, 232, 232, 158, 171, 0, 166, 235, 235, 235, + 187, 0, 0, 153, 153, 153, 153, 153, 153, 172, + 187, 0, 232, 187, 153, 153, 153, 153, 153, 153, + 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, + 153, 153, 153, 153, 153, 153, 153, 167, 167, 167, + + 167, 446, 446, 446, 446, 454, 454, 454, 454, 0, + 0, 167, 0, 0, 0, 167, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 0, + 173, 173, 0, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 174, 174, 174, 174, 174, 174, 174, 174, + 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, + + 174, 0, 0, 0, 174, 174, 174, 174, 190, 181, + 181, 181, 181, 192, 174, 188, 174, 174, 190, 188, + 189, 190, 189, 192, 190, 188, 192, 193, 188, 0, + 189, 193, 0, 189, 0, 0, 0, 193, 0, 191, + 193, 194, 174, 174, 174, 174, 174, 174, 181, 191, + 181, 194, 191, 195, 194, 191, 191, 199, 196, 0, + 195, 181, 196, 195, 198, 181, 195, 199, 196, 197, + 199, 196, 0, 197, 198, 200, 201, 198, 201, 197, + 198, 202, 197, 203, 0, 200, 201, 204, 200, 201, + 0, 202, 0, 203, 202, 205, 203, 204, 0, 205, + + 204, 207, 206, 208, 204, 205, 206, 209, 205, 207, + 0, 207, 206, 208, 207, 206, 208, 209, 210, 214, + 209, 455, 455, 455, 455, 211, 212, 213, 210, 214, + 0, 210, 214, 210, 211, 211, 212, 213, 211, 212, + 213, 215, 216, 217, 213, 212, 456, 456, 456, 456, + 0, 215, 216, 217, 215, 216, 217, 218, 219, 215, + 217, 218, 0, 220, 0, 0, 0, 218, 219, 222, + 218, 219, 0, 220, 221, 219, 220, 0, 221, 222, + 0, 223, 222, 0, 221, 223, 224, 221, 225, 0, + 224, 223, 226, 228, 223, 0, 224, 227, 225, 224, + + 227, 225, 226, 228, 229, 226, 228, 227, 231, 0, + 227, 229, 0, 0, 229, 0, 0, 229, 231, 0, + 0, 231, 234, 234, 234, 239, 239, 239, 239, 0, + 0, 240, 240, 240, 240, 246, 246, 246, 0, 239, + 0, 0, 0, 239, 234, 240, 247, 247, 247, 240, + 0, 241, 241, 241, 241, 0, 0, 246, 239, 243, + 243, 243, 243, 0, 240, 241, 266, 0, 247, 241, + 0, 0, 0, 243, 0, 266, 266, 243, 267, 266, + 251, 251, 251, 251, 241, 0, 275, 271, 267, 0, + 0, 267, 243, 245, 251, 271, 275, 271, 0, 275, + + 271, 245, 245, 245, 245, 245, 245, 0, 245, 0, + 0, 0, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, + 245, 245, 245, 245, 245, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, 0, 248, + 248, 0, 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, + + 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, + 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, + 0, 274, 0, 249, 249, 249, 249, 252, 252, 252, + 252, 274, 274, 249, 274, 249, 249, 254, 254, 254, + 254, 252, 0, 268, 269, 252, 457, 457, 457, 457, + 268, 254, 0, 268, 269, 254, 268, 269, 270, 272, + 269, 249, 249, 249, 249, 249, 249, 0, 270, 272, + 273, 270, 272, 0, 0, 270, 276, 272, 277, 0, + 273, 0, 0, 273, 279, 282, 276, 273, 277, 276, + 277, 277, 278, 280, 279, 282, 278, 279, 282, 283, + + 282, 0, 278, 280, 281, 278, 280, 0, 281, 283, + 280, 284, 283, 0, 281, 285, 0, 281, 0, 286, + 287, 284, 0, 0, 284, 285, 284, 288, 285, 286, + 287, 285, 286, 287, 289, 290, 0, 288, 286, 291, + 288, 0, 288, 291, 289, 290, 292, 289, 290, 291, + 293, 296, 291, 296, 292, 0, 292, 295, 294, 292, + 293, 296, 0, 293, 296, 293, 294, 295, 294, 297, + 295, 294, 295, 298, 299, 300, 306, 306, 306, 297, + 300, 301, 297, 298, 299, 300, 298, 299, 300, 297, + 303, 301, 302, 0, 301, 0, 302, 304, 306, 0, + + 303, 0, 302, 303, 331, 302, 332, 304, 333, 0, + 304, 307, 307, 307, 331, 304, 332, 331, 333, 332, + 0, 333, 459, 459, 459, 459, 465, 465, 465, 465, + 0, 0, 0, 307, 308, 308, 308, 308, 308, 308, + 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, + 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, + 308, 308, 308, 308, 308, 308, 308, 0, 308, 308, + 0, 308, 308, 308, 308, 308, 308, 308, 308, 308, + 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, + 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, - 245, 245, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 0, 246, 246, 0, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, - 246, 246, 246, 246, 246, 246, 246, 249, 249, 249, - 249, 0, 251, 251, 251, 251, 0, 0, 266, 267, - 0, 249, 0, 0, 0, 249, 251, 269, 266, 267, - 251, 266, 267, 270, 266, 0, 267, 269, 271, 0, - - 269, 0, 273, 270, 274, 269, 270, 0, 271, 271, - 270, 271, 273, 276, 274, 273, 274, 274, 275, 277, - 278, 0, 275, 276, 278, 279, 276, 0, 275, 277, - 278, 275, 277, 278, 280, 279, 277, 0, 279, 281, - 279, 0, 0, 282, 280, 283, 0, 280, 0, 281, - 284, 0, 281, 282, 281, 283, 282, 285, 283, 282, - 284, 286, 0, 284, 283, 287, 0, 285, 0, 288, - 285, 286, 285, 288, 286, 287, 289, 290, 287, 288, - 0, 0, 288, 291, 289, 292, 289, 290, 0, 289, - 290, 291, 290, 291, 0, 292, 291, 293, 292, 293, - - 292, 294, 295, 296, 0, 0, 0, 293, 0, 0, - 293, 294, 295, 296, 294, 295, 296, 297, 298, 299, - 0, 294, 297, 299, 300, 301, 0, 297, 298, 299, - 297, 298, 299, 0, 300, 301, 0, 300, 301, 303, - 303, 303, 328, 301, 304, 304, 304, 0, 329, 330, - 0, 0, 328, 0, 0, 328, 0, 0, 329, 330, - 303, 329, 330, 0, 0, 304, 305, 305, 305, 305, - 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, - 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, - 305, 305, 305, 305, 305, 305, 305, 305, 0, 305, - - 305, 0, 305, 305, 305, 305, 305, 305, 305, 305, - 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, - 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, - 305, 306, 306, 306, 306, 306, 306, 306, 306, 306, - 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, - 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, - 306, 306, 306, 0, 306, 306, 0, 306, 306, 306, - 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, - 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, - 306, 306, 306, 306, 306, 306, 308, 320, 320, 320, - - 320, 0, 0, 331, 0, 0, 0, 332, 308, 0, - 0, 320, 308, 331, 0, 320, 331, 332, 0, 332, - 332, 452, 452, 452, 452, 0, 308, 309, 309, 309, - 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, - 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, - 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, - 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, - 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, - 309, 309, 310, 310, 310, 310, 0, 311, 311, 311, - - 311, 0, 313, 313, 313, 313, 310, 0, 333, 334, - 310, 311, 0, 334, 0, 311, 313, 335, 333, 334, - 313, 333, 334, 0, 310, 335, 0, 335, 0, 311, - 335, 0, 0, 0, 313, 314, 314, 314, 314, 314, - 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, - 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, - 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, - 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, - 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, - 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, - - 336, 337, 338, 336, 453, 453, 453, 453, 339, 340, - 336, 337, 338, 336, 337, 338, 339, 341, 339, 340, - 340, 339, 340, 342, 0, 0, 0, 341, 0, 0, - 341, 0, 343, 342, 341, 342, 342, 343, 344, 0, - 0, 0, 343, 345, 343, 343, 0, 345, 344, 346, - 0, 344, 344, 345, 347, 348, 345, 346, 0, 346, - 347, 349, 346, 349, 347, 348, 351, 347, 348, 0, - 0, 349, 348, 350, 349, 350, 351, 0, 351, 351, - 352, 353, 352, 350, 0, 354, 350, 355, 0, 0, - 352, 353, 354, 352, 353, 354, 356, 355, 354, 0, - - 355, 356, 357, 358, 359, 0, 356, 359, 0, 356, - 357, 0, 357, 358, 359, 357, 358, 359, 364, 364, - 364, 364, 0, 365, 365, 365, 365, 0, 367, 367, - 367, 367, 364, 0, 374, 0, 364, 365, 0, 0, - 0, 365, 367, 376, 374, 0, 367, 374, 375, 377, - 364, 377, 374, 376, 378, 365, 376, 0, 375, 377, - 367, 375, 377, 379, 378, 375, 0, 378, 380, 0, - 378, 0, 0, 379, 382, 0, 379, 0, 380, 381, - 383, 380, 383, 381, 382, 379, 384, 382, 385, 381, - 383, 0, 381, 383, 386, 387, 384, 0, 385, 384, - - 388, 385, 389, 388, 386, 387, 389, 386, 387, 391, - 388, 0, 389, 388, 390, 389, 0, 0, 390, 391, - 392, 393, 391, 0, 390, 394, 391, 390, 0, 395, - 392, 393, 0, 392, 393, 394, 396, 0, 394, 395, - 397, 398, 395, 0, 0, 398, 396, 404, 405, 396, - 397, 398, 397, 397, 398, 403, 406, 404, 405, 403, - 404, 405, 407, 0, 408, 403, 406, 0, 403, 406, - 409, 0, 407, 0, 408, 407, 408, 408, 0, 412, - 409, 410, 409, 409, 0, 410, 411, 0, 411, 412, - 0, 410, 412, 413, 410, 413, 411, 414, 415, 411, - - 0, 414, 416, 413, 0, 0, 413, 414, 415, 417, - 414, 415, 416, 417, 418, 416, 0, 0, 418, 417, - 0, 0, 417, 424, 418, 425, 0, 418, 419, 419, - 419, 419, 426, 424, 427, 425, 424, 0, 425, 0, - 0, 429, 426, 0, 427, 426, 428, 427, 430, 426, - 428, 429, 430, 0, 429, 431, 428, 432, 430, 428, - 432, 430, 0, 419, 437, 431, 0, 432, 431, 433, - 432, 0, 433, 419, 437, 0, 419, 437, 0, 433, - 437, 439, 433, 434, 434, 434, 434, 438, 434, 440, - 0, 439, 438, 434, 439, 441, 442, 438, 0, 440, - - 438, 0, 440, 0, 434, 441, 442, 0, 441, 442, - 445, 445, 445, 445, 445, 446, 446, 446, 446, 449, - 450, 445, 454, 454, 454, 454, 0, 0, 0, 449, - 450, 0, 449, 450, 456, 456, 456, 456, 459, 459, - 459, 459, 445, 460, 460, 460, 460, 460, 459, 462, - 462, 462, 462, 446, 460, 446, 461, 461, 461, 461, - 461, 463, 463, 463, 463, 463, 446, 461, 0, 459, - 446, 464, 464, 464, 464, 460, 465, 465, 465, 465, - 0, 466, 466, 466, 466, 0, 0, 0, 461, 467, - 467, 467, 467, 468, 468, 468, 468, 469, 469, 469, - - 469, 470, 470, 470, 470, 472, 472, 472, 472, 464, - 0, 464, 0, 0, 465, 0, 465, 0, 0, 466, - 0, 466, 464, 0, 0, 0, 464, 465, 0, 0, - 0, 465, 466, 0, 0, 0, 466, 467, 0, 0, - 0, 468, 0, 470, 473, 473, 473, 473, 475, 475, - 475, 475, 469, 476, 476, 476, 476, 477, 477, 477, - 477, 478, 478, 478, 478, 485, 485, 485, 485, 0, - 0, 478, 480, 480, 480, 480, 481, 481, 481, 481, - 482, 482, 482, 482, 486, 486, 486, 486, 487, 487, - 487, 487, 478, 479, 479, 479, 479, 479, 479, 479, - - 479, 479, 479, 479, 479, 479, 479, 479, 479, 479, - 479, 479, 0, 0, 0, 479, 479, 479, 479, 481, - 0, 0, 480, 482, 479, 0, 479, 479, 488, 488, - 488, 488, 490, 490, 490, 490, 494, 494, 494, 494, - 491, 491, 491, 491, 495, 495, 495, 495, 496, 496, - 496, 496, 479, 479, 479, 479, 479, 479, 489, 489, - 489, 489, 489, 489, 489, 489, 489, 489, 489, 489, - 489, 489, 489, 489, 489, 489, 489, 0, 0, 0, - 489, 489, 489, 489, 490, 491, 0, 0, 0, 489, - 0, 489, 489, 497, 497, 497, 497, 498, 498, 498, - - 498, 499, 499, 499, 499, 500, 500, 500, 500, 503, - 503, 503, 503, 504, 504, 504, 504, 489, 489, 489, - 489, 489, 489, 505, 505, 505, 505, 506, 506, 506, - 506, 0, 0, 0, 498, 507, 507, 507, 507, 0, - 499, 508, 508, 508, 508, 0, 0, 500, 501, 501, - 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, - 501, 501, 501, 501, 501, 501, 501, 0, 0, 0, - 501, 501, 501, 501, 509, 509, 509, 509, 0, 501, - 0, 501, 501, 510, 510, 510, 510, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 309, 309, 309, 309, 309, 309, 309, 309, 309, 0, + 0, 311, 309, 309, 309, 309, 313, 313, 313, 313, + 0, 0, 309, 311, 309, 309, 334, 311, 335, 0, + 313, 0, 0, 336, 313, 340, 334, 0, 335, 334, + 335, 335, 311, 336, 0, 340, 336, 0, 340, 313, + 309, 309, 309, 309, 309, 309, 312, 312, 312, 312, + 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, + 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, + 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, + + 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, + 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, + 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, + 312, 312, 314, 314, 314, 314, 0, 316, 316, 316, + 316, 0, 323, 323, 323, 323, 314, 0, 337, 338, + 314, 316, 337, 341, 347, 316, 323, 338, 337, 338, + 323, 337, 338, 341, 347, 314, 341, 347, 347, 0, + 316, 317, 317, 317, 317, 317, 317, 317, 317, 317, + 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, + 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, - 0, 0, 0, 0, 0, 0, 0, 501, 501, 501, - 501, 501, 501, 502, 502, 502, 502, 502, 502, 502, - 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, - 502, 502, 0, 0, 0, 502, 502, 502, 502, 0, - 0, 0, 0, 0, 502, 0, 502, 502, 0, 0, + 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, + 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, + 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, + 317, 317, 317, 317, 317, 317, 317, 339, 342, 0, + 339, 0, 343, 0, 344, 0, 342, 339, 342, 356, + 339, 342, 343, 343, 344, 343, 345, 344, 0, 356, + 346, 344, 356, 0, 0, 346, 345, 348, 345, 345, + 346, 348, 346, 346, 349, 350, 351, 348, 0, 0, + 348, 350, 349, 0, 349, 350, 351, 349, 350, 351, + 352, 0, 352, 351, 353, 0, 353, 0, 354, 355, + + 352, 355, 0, 352, 353, 358, 357, 353, 354, 355, + 354, 354, 355, 357, 0, 358, 357, 359, 358, 357, + 0, 360, 359, 361, 0, 362, 0, 359, 362, 360, + 359, 360, 0, 361, 360, 362, 361, 0, 362, 367, + 367, 367, 367, 0, 368, 368, 368, 368, 0, 370, + 370, 370, 370, 367, 0, 377, 379, 367, 368, 0, + 0, 378, 368, 370, 0, 377, 379, 370, 377, 379, + 381, 378, 367, 377, 378, 382, 0, 368, 378, 380, + 381, 380, 370, 381, 0, 382, 381, 0, 382, 380, + 383, 384, 380, 0, 0, 384, 385, 382, 387, 0, + + 383, 384, 0, 383, 384, 386, 385, 386, 387, 385, + 388, 387, 389, 0, 390, 386, 391, 0, 386, 391, + 388, 0, 389, 388, 390, 389, 391, 390, 392, 391, + 393, 0, 392, 0, 393, 394, 395, 396, 392, 0, + 393, 392, 0, 393, 397, 394, 395, 396, 394, 395, + 396, 398, 394, 399, 397, 400, 0, 397, 0, 0, + 0, 398, 407, 399, 398, 400, 399, 400, 400, 401, + 406, 408, 407, 401, 406, 407, 409, 410, 0, 401, + 406, 408, 401, 406, 408, 411, 409, 410, 0, 409, + 410, 412, 413, 0, 0, 411, 413, 411, 411, 415, + + 0, 412, 413, 412, 412, 413, 414, 0, 414, 415, + 417, 416, 415, 416, 417, 418, 414, 419, 0, 414, + 417, 416, 420, 417, 416, 418, 420, 419, 418, 421, + 419, 0, 420, 421, 0, 420, 0, 427, 428, 421, + 0, 0, 421, 422, 422, 422, 422, 427, 428, 429, + 427, 428, 0, 0, 430, 475, 475, 475, 475, 429, + 432, 431, 429, 0, 430, 431, 429, 430, 433, 0, + 432, 431, 433, 432, 431, 434, 0, 435, 433, 422, + 435, 433, 0, 436, 0, 434, 436, 435, 434, 422, + 435, 0, 422, 436, 0, 440, 436, 437, 437, 437, + + 437, 0, 437, 442, 441, 440, 0, 437, 440, 441, + 443, 440, 444, 442, 441, 0, 442, 441, 437, 445, + 443, 0, 444, 443, 0, 444, 0, 0, 0, 445, + 0, 0, 445, 448, 448, 448, 448, 448, 449, 449, + 449, 449, 452, 453, 448, 0, 0, 0, 462, 462, + 462, 462, 452, 453, 0, 452, 453, 0, 462, 463, + 463, 463, 463, 463, 0, 0, 448, 0, 0, 0, + 463, 464, 464, 464, 464, 464, 0, 449, 0, 449, + 462, 0, 464, 466, 466, 466, 466, 466, 0, 0, + 449, 0, 463, 0, 449, 467, 467, 467, 467, 0, + + 468, 468, 468, 468, 464, 469, 469, 469, 469, 470, + 470, 470, 470, 471, 471, 471, 471, 472, 472, 472, + 472, 473, 473, 473, 473, 476, 476, 476, 476, 478, + 478, 478, 478, 0, 467, 0, 467, 0, 0, 468, + 0, 468, 0, 0, 469, 0, 469, 467, 0, 0, + 0, 467, 468, 0, 0, 0, 468, 469, 470, 0, + 0, 469, 471, 0, 473, 479, 479, 479, 479, 480, + 480, 480, 480, 472, 481, 481, 481, 481, 488, 488, + 488, 488, 0, 0, 481, 483, 483, 483, 483, 484, + 484, 484, 484, 485, 485, 485, 485, 489, 489, 489, + + 489, 490, 490, 490, 490, 0, 481, 482, 482, 482, + 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, + 482, 482, 482, 482, 482, 482, 0, 0, 0, 482, + 482, 482, 482, 484, 0, 0, 483, 485, 0, 482, + 0, 482, 482, 491, 491, 491, 491, 493, 493, 493, + 493, 0, 0, 494, 494, 494, 494, 497, 497, 497, + 497, 498, 498, 498, 498, 0, 0, 482, 482, 482, + 482, 482, 482, 492, 492, 492, 492, 492, 492, 492, + 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, + 492, 492, 0, 0, 0, 492, 492, 492, 492, 494, + + 493, 499, 499, 499, 499, 492, 0, 492, 492, 500, + 500, 500, 500, 501, 501, 501, 501, 502, 502, 502, + 502, 503, 503, 503, 503, 506, 506, 506, 506, 507, + 507, 507, 507, 492, 492, 492, 492, 492, 492, 508, + 508, 508, 508, 509, 509, 509, 509, 510, 510, 510, + 510, 501, 511, 511, 511, 511, 0, 502, 512, 512, + 512, 512, 0, 0, 503, 504, 504, 504, 504, 504, + 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, + 504, 504, 504, 504, 0, 0, 0, 504, 504, 504, + 504, 513, 513, 513, 513, 0, 0, 504, 0, 504, + + 504, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 504, 504, 504, 504, 504, + 504, 505, 505, 505, 505, 505, 505, 505, 505, 505, + 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, + 0, 0, 0, 505, 505, 505, 505, 0, 0, 0, + 0, 0, 0, 505, 0, 505, 505, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 502, 502, 502, 502, 502, 502, 512, 512, - 0, 512, 512, 512, 512, 512, 512, 512, 512, 513, - 0, 513, 513, 513, 514, 514, 0, 514, 514, 514, - - 514, 514, 514, 514, 514, 515, 515, 515, 515, 515, - 515, 0, 0, 0, 515, 515, 516, 516, 0, 0, - 516, 516, 516, 516, 516, 516, 517, 517, 0, 517, - 517, 517, 517, 517, 517, 517, 517, 518, 518, 518, - 518, 518, 518, 0, 0, 0, 518, 518, 519, 519, - 519, 519, 519, 519, 520, 520, 520, 520, 520, 520, - 0, 0, 0, 520, 521, 521, 521, 521, 521, 521, - 521, 521, 521, 521, 521, 522, 522, 522, 522, 522, - 522, 522, 522, 522, 522, 522, 523, 523, 523, 0, - 0, 523, 523, 524, 524, 524, 524, 524, 524, 0, - - 0, 0, 524, 524, 525, 525, 525, 525, 525, 525, - 0, 0, 0, 525, 526, 526, 526, 526, 526, 526, - 526, 526, 526, 526, 526, 527, 527, 527, 0, 0, - 527, 527, 528, 528, 528, 528, 528, 528, 528, 528, - 528, 528, 528, 529, 529, 529, 529, 529, 529, 0, - 0, 0, 529, 530, 530, 530, 0, 0, 530, 530, - 531, 0, 0, 531, 531, 532, 532, 532, 532, 532, - 532, 532, 532, 532, 532, 532, 533, 533, 533, 533, - 533, 533, 533, 533, 533, 533, 533, 534, 534, 534, - 534, 534, 535, 535, 535, 535, 535, 535, 535, 535, - - 535, 535, 535, 536, 536, 536, 536, 536, 537, 537, - 537, 537, 537, 538, 538, 538, 538, 538, 539, 539, - 539, 539, 539, 539, 539, 539, 539, 539, 539, 540, - 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, - 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, - 542, 542, 0, 542, 542, 542, 542, 542, 542, 542, - 542, 543, 543, 543, 543, 543, 543, 543, 543, 543, - 543, 543, 544, 544, 0, 544, 544, 544, 544, 544, - 544, 544, 544, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 505, 505, 505, 505, 505, 505, 515, 515, 0, + + 515, 515, 515, 515, 515, 515, 515, 515, 516, 0, + 516, 516, 516, 517, 517, 0, 517, 517, 517, 517, + 517, 517, 517, 517, 518, 518, 518, 518, 518, 518, + 0, 0, 0, 518, 518, 519, 519, 0, 0, 519, + 519, 519, 519, 519, 519, 520, 520, 0, 520, 520, + 520, 520, 520, 520, 520, 520, 521, 521, 521, 521, + 521, 521, 0, 0, 0, 521, 521, 522, 522, 522, + 522, 522, 522, 523, 523, 523, 523, 523, 523, 0, + 0, 0, 523, 524, 524, 524, 524, 524, 524, 524, + 524, 524, 524, 524, 525, 525, 525, 525, 525, 525, + + 525, 525, 525, 525, 525, 526, 526, 526, 0, 0, + 526, 526, 527, 527, 527, 527, 527, 527, 0, 0, + 0, 527, 527, 528, 528, 528, 528, 528, 528, 0, + 0, 0, 528, 529, 529, 529, 529, 529, 529, 529, + 529, 529, 529, 529, 530, 530, 530, 0, 0, 530, + 530, 531, 531, 531, 531, 531, 531, 531, 531, 531, + 531, 531, 532, 532, 532, 532, 532, 532, 0, 0, + 0, 532, 533, 533, 533, 0, 0, 533, 533, 534, + 0, 0, 534, 534, 535, 535, 535, 535, 535, 535, + 535, 535, 535, 535, 535, 536, 536, 536, 536, 536, + + 536, 536, 536, 536, 536, 536, 537, 537, 537, 537, + 537, 538, 538, 538, 538, 538, 538, 538, 538, 538, + 538, 538, 539, 539, 539, 539, 539, 540, 540, 540, + 540, 540, 541, 541, 541, 541, 541, 542, 542, 542, + 542, 542, 542, 542, 542, 542, 542, 542, 543, 543, + 543, 543, 543, 543, 543, 543, 543, 543, 543, 544, + 544, 544, 544, 544, 544, 544, 544, 544, 544, 545, + 545, 0, 545, 545, 545, 545, 545, 545, 545, 545, + 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, + 546, 547, 547, 0, 547, 547, 547, 547, 547, 547, + + 547, 547, 514, 514, 514, 514, 514, 514, 514, 514, + 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, + 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, + 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, + 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, + 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, + 514, 514, 514, 514, 514, 514, 514, 514, 514 } ; static yy_state_type yy_last_accepting_state; @@ -1606,22 +1588,7 @@ static char*nrbuf() static inline int setint(int v) { a3_lval.number_int = v; - if(v>-128) - return T_BYTE; - else if(v>=-32768) - return T_SHORT; - else - return T_INT; -} -static inline int setuint(unsigned int v) -{ - a3_lval.number_uint = v; - if(v<128) - return T_BYTE; - else if(v<32768) - return T_SHORT; - else - return T_UINT; + return T_INT; } static inline int setfloat(double v) { @@ -1641,7 +1608,9 @@ static inline int handleint() char*s = nrbuf(); char l = (as3_text[0]=='-'); - char*max = l?"1073741824":"2147483647"; + //char*max = l?"1073741824":"2147483647"; + char*max = l?"2147483648":"2147483647"; + if(as3_leng-l>10) { as3_softwarning("integer overflow: %s (converted to Number)", s); return handlefloat(); @@ -1667,7 +1636,7 @@ static inline int handleint() v*=10; v+=as3_text[t]-'0'; } - return setuint(v); + return setint(v); } } @@ -1716,21 +1685,21 @@ static inline int handlehex() else if((c>='a' && c<='f') || (c>='A' && c<='F')) v|=(c&0x0f)+9; } - if(l && v>1073741824) { + if(l && v>=0x80000000) { char*s = nrbuf(); - as3_softwarning("signed integer overflow: %s (converted to Number)", s); + as3_softwarning("integer overflow: %s (converted to Number)", s); return setfloat(v); } - if(!l && v>2147483647) { + if(!l && v>0x7fffffff) { char*s = nrbuf(); - as3_softwarning("unsigned integer overflow: %s (converted to Number)", s); + as3_softwarning("integer overflow: %s (converted to Number)", s); return setfloat(v); } if(l==3) { return setint(-(int)v); } else { - return setuint(v); + return setint(v); } } @@ -1824,7 +1793,7 @@ static inline int handleIdentifier() -#line 1828 "tokenizer.yy.c" +#line 1797 "tokenizer.yy.c" #define INITIAL 0 #define REGEXPOK 1 @@ -2011,11 +1980,11 @@ YY_DECL register char *yy_cp, *yy_bp; register int yy_act; -#line 534 "tokenizer.lex" +#line 521 "tokenizer.lex" -#line 2019 "tokenizer.yy.c" +#line 1988 "tokenizer.yy.c" if ( !(yy_init) ) { @@ -2069,13 +2038,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 512 ) + if ( yy_current_state >= 515 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } - while ( yy_current_state != 511 ); + while ( yy_current_state != 514 ); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); @@ -2098,18 +2067,18 @@ do_action: /* This label is used only to access EOF actions. */ case 1: /* rule 1 can match eol */ YY_RULE_SETUP -#line 537 "tokenizer.lex" +#line 524 "tokenizer.lex" {l(); /* single line comment */} YY_BREAK case 2: /* rule 2 can match eol */ YY_RULE_SETUP -#line 538 "tokenizer.lex" +#line 525 "tokenizer.lex" {l(); /* multi line comment */} YY_BREAK case 3: YY_RULE_SETUP -#line 539 "tokenizer.lex" +#line 526 "tokenizer.lex" {syntaxerror("syntax error: unterminated comment", as3_text);} YY_BREAK case 4: @@ -2118,7 +2087,7 @@ case 4: (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up as3_text again */ YY_RULE_SETUP -#line 541 "tokenizer.lex" +#line 528 "tokenizer.lex" {l();handleInclude(as3_text, as3_leng, 1);} YY_BREAK case 5: @@ -2127,25 +2096,25 @@ case 5: (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up as3_text again */ YY_RULE_SETUP -#line 542 "tokenizer.lex" +#line 529 "tokenizer.lex" {l();handleInclude(as3_text, as3_leng, 0);} YY_BREAK case 6: /* rule 6 can match eol */ YY_RULE_SETUP -#line 543 "tokenizer.lex" +#line 530 "tokenizer.lex" {l(); BEGIN(INITIAL);handleString(as3_text, as3_leng);return T_STRING;} YY_BREAK case 7: /* rule 7 can match eol */ YY_RULE_SETUP -#line 544 "tokenizer.lex" +#line 531 "tokenizer.lex" {l(); BEGIN(INITIAL);handleCData(as3_text, as3_leng);return T_STRING;} YY_BREAK case 8: YY_RULE_SETUP -#line 547 "tokenizer.lex" +#line 534 "tokenizer.lex" {c(); BEGIN(INITIAL);return handleregexp();} YY_BREAK case 9: @@ -2154,7 +2123,7 @@ case 9: (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up as3_text again */ YY_RULE_SETUP -#line 548 "tokenizer.lex" +#line 535 "tokenizer.lex" {c(); BEGIN(INITIAL);return handlehex();} YY_BREAK case 10: @@ -2163,7 +2132,7 @@ case 10: (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up as3_text again */ YY_RULE_SETUP -#line 549 "tokenizer.lex" +#line 536 "tokenizer.lex" {c(); BEGIN(INITIAL);return handlehexfloat();} YY_BREAK case 11: @@ -2172,7 +2141,7 @@ case 11: (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up as3_text again */ YY_RULE_SETUP -#line 550 "tokenizer.lex" +#line 537 "tokenizer.lex" {c(); BEGIN(INITIAL);return handleint();} YY_BREAK case 12: @@ -2181,29 +2150,29 @@ case 12: (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up as3_text again */ YY_RULE_SETUP -#line 551 "tokenizer.lex" +#line 538 "tokenizer.lex" {c(); BEGIN(INITIAL);return handlefloat();} YY_BREAK case 13: YY_RULE_SETUP -#line 554 "tokenizer.lex" +#line 541 "tokenizer.lex" {c(); BEGIN(REGEXPOK);return m(T_DICTSTART);} YY_BREAK case 14: YY_RULE_SETUP -#line 555 "tokenizer.lex" +#line 542 "tokenizer.lex" {c(); BEGIN(INITIAL); return m('{');} YY_BREAK case 15: YY_RULE_SETUP -#line 557 "tokenizer.lex" +#line 544 "tokenizer.lex" {/* utf 8 bom */} YY_BREAK case 16: /* rule 16 can match eol */ YY_RULE_SETUP -#line 558 "tokenizer.lex" +#line 545 "tokenizer.lex" {l();} YY_BREAK case 17: @@ -2212,7 +2181,7 @@ case 17: (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up as3_text again */ YY_RULE_SETUP -#line 560 "tokenizer.lex" +#line 547 "tokenizer.lex" {c(); BEGIN(INITIAL);return handlehex();} YY_BREAK case 18: @@ -2221,7 +2190,7 @@ case 18: (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up as3_text again */ YY_RULE_SETUP -#line 561 "tokenizer.lex" +#line 548 "tokenizer.lex" {c(); BEGIN(INITIAL);return handlehexfloat();} YY_BREAK case 19: @@ -2230,7 +2199,7 @@ case 19: (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up as3_text again */ YY_RULE_SETUP -#line 562 "tokenizer.lex" +#line 549 "tokenizer.lex" {c(); BEGIN(INITIAL);return handleint();} YY_BREAK case 20: @@ -2239,474 +2208,479 @@ case 20: (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up as3_text again */ YY_RULE_SETUP -#line 563 "tokenizer.lex" +#line 550 "tokenizer.lex" {c(); BEGIN(INITIAL);return handlefloat();} YY_BREAK case 21: YY_RULE_SETUP -#line 565 "tokenizer.lex" +#line 551 "tokenizer.lex" +{c(); BEGIN(INITIAL);return m(KW_NAN);} + YY_BREAK +case 22: +YY_RULE_SETUP +#line 553 "tokenizer.lex" {/* for debugging: generates a tokenizer-level error */ syntaxerror("3rr0r");} YY_BREAK -case 22: -/* rule 22 can match eol */ +case 23: +/* rule 23 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */ (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up as3_text again */ YY_RULE_SETUP -#line 568 "tokenizer.lex" +#line 556 "tokenizer.lex" {l();BEGIN(INITIAL);handleLabel(as3_text, as3_leng-3);return T_FOR;} YY_BREAK -case 23: -/* rule 23 can match eol */ +case 24: +/* rule 24 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */ (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up as3_text again */ YY_RULE_SETUP -#line 569 "tokenizer.lex" +#line 557 "tokenizer.lex" {l();BEGIN(INITIAL);handleLabel(as3_text, as3_leng-2);return T_DO;} YY_BREAK -case 24: -/* rule 24 can match eol */ +case 25: +/* rule 25 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */ (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up as3_text again */ YY_RULE_SETUP -#line 570 "tokenizer.lex" +#line 558 "tokenizer.lex" {l();BEGIN(INITIAL);handleLabel(as3_text, as3_leng-5);return T_WHILE;} YY_BREAK -case 25: -/* rule 25 can match eol */ +case 26: +/* rule 26 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up as3_text */ (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up as3_text again */ YY_RULE_SETUP -#line 571 "tokenizer.lex" +#line 559 "tokenizer.lex" {l();BEGIN(INITIAL);handleLabel(as3_text, as3_leng-6);return T_SWITCH;} YY_BREAK -case 26: +case 27: YY_RULE_SETUP -#line 572 "tokenizer.lex" +#line 560 "tokenizer.lex" {c();BEGIN(INITIAL);a3_lval.id="";return T_FOR;} YY_BREAK -case 27: +case 28: YY_RULE_SETUP -#line 573 "tokenizer.lex" +#line 561 "tokenizer.lex" {c();BEGIN(INITIAL);a3_lval.id="";return T_DO;} YY_BREAK -case 28: +case 29: YY_RULE_SETUP -#line 574 "tokenizer.lex" +#line 562 "tokenizer.lex" {c();BEGIN(INITIAL);a3_lval.id="";return T_WHILE;} YY_BREAK -case 29: +case 30: YY_RULE_SETUP -#line 575 "tokenizer.lex" +#line 563 "tokenizer.lex" {c();BEGIN(INITIAL);a3_lval.id="";return T_SWITCH;} YY_BREAK -case 30: +case 31: YY_RULE_SETUP -#line 577 "tokenizer.lex" +#line 565 "tokenizer.lex" {c();BEGIN(REGEXPOK);return m(T_ANDAND);} YY_BREAK -case 31: +case 32: YY_RULE_SETUP -#line 578 "tokenizer.lex" +#line 566 "tokenizer.lex" {c();BEGIN(REGEXPOK);return m(T_OROR);} YY_BREAK -case 32: +case 33: YY_RULE_SETUP -#line 579 "tokenizer.lex" +#line 567 "tokenizer.lex" {c();BEGIN(REGEXPOK);return m(T_NE);} YY_BREAK -case 33: +case 34: YY_RULE_SETUP -#line 580 "tokenizer.lex" +#line 568 "tokenizer.lex" {c();BEGIN(REGEXPOK);return m(T_NEE);} YY_BREAK -case 34: +case 35: YY_RULE_SETUP -#line 581 "tokenizer.lex" +#line 569 "tokenizer.lex" {c();BEGIN(REGEXPOK);return m(T_EQEQEQ);} YY_BREAK -case 35: +case 36: YY_RULE_SETUP -#line 582 "tokenizer.lex" +#line 570 "tokenizer.lex" {c();BEGIN(REGEXPOK);return m(T_EQEQ);} YY_BREAK -case 36: +case 37: YY_RULE_SETUP -#line 583 "tokenizer.lex" +#line 571 "tokenizer.lex" {c();BEGIN(REGEXPOK);return m(T_GE);} YY_BREAK -case 37: +case 38: YY_RULE_SETUP -#line 584 "tokenizer.lex" +#line 572 "tokenizer.lex" {c();BEGIN(REGEXPOK);return m(T_LE);} YY_BREAK -case 38: +case 39: YY_RULE_SETUP -#line 585 "tokenizer.lex" +#line 573 "tokenizer.lex" {c();BEGIN(INITIAL);return m(T_MINUSMINUS);} YY_BREAK -case 39: +case 40: YY_RULE_SETUP -#line 586 "tokenizer.lex" +#line 574 "tokenizer.lex" {c();BEGIN(INITIAL);return m(T_PLUSPLUS);} YY_BREAK -case 40: +case 41: YY_RULE_SETUP -#line 587 "tokenizer.lex" +#line 575 "tokenizer.lex" {c();BEGIN(REGEXPOK);return m(T_PLUSBY);} YY_BREAK -case 41: +case 42: YY_RULE_SETUP -#line 588 "tokenizer.lex" +#line 576 "tokenizer.lex" {c();BEGIN(REGEXPOK);return m(T_XORBY);} YY_BREAK -case 42: +case 43: YY_RULE_SETUP -#line 589 "tokenizer.lex" +#line 577 "tokenizer.lex" {c();BEGIN(REGEXPOK);return m(T_MINUSBY);} YY_BREAK -case 43: +case 44: YY_RULE_SETUP -#line 590 "tokenizer.lex" +#line 578 "tokenizer.lex" {c();BEGIN(REGEXPOK);return m(T_DIVBY);} YY_BREAK -case 44: +case 45: YY_RULE_SETUP -#line 591 "tokenizer.lex" +#line 579 "tokenizer.lex" {c();BEGIN(REGEXPOK);return m(T_MODBY);} YY_BREAK -case 45: +case 46: YY_RULE_SETUP -#line 592 "tokenizer.lex" +#line 580 "tokenizer.lex" {c();BEGIN(REGEXPOK);return m(T_MULBY);} YY_BREAK -case 46: +case 47: YY_RULE_SETUP -#line 593 "tokenizer.lex" +#line 581 "tokenizer.lex" {c();BEGIN(REGEXPOK);return m(T_ORBY);} YY_BREAK -case 47: +case 48: YY_RULE_SETUP -#line 594 "tokenizer.lex" +#line 582 "tokenizer.lex" {c();BEGIN(REGEXPOK);return m(T_SHRBY);} YY_BREAK -case 48: +case 49: YY_RULE_SETUP -#line 595 "tokenizer.lex" +#line 583 "tokenizer.lex" {c();BEGIN(REGEXPOK);return m(T_SHLBY);} YY_BREAK -case 49: +case 50: YY_RULE_SETUP -#line 596 "tokenizer.lex" +#line 584 "tokenizer.lex" {c();BEGIN(REGEXPOK);return m(T_USHRBY);} YY_BREAK -case 50: +case 51: YY_RULE_SETUP -#line 597 "tokenizer.lex" +#line 585 "tokenizer.lex" {c();BEGIN(REGEXPOK);return m(T_SHL);} YY_BREAK -case 51: +case 52: YY_RULE_SETUP -#line 598 "tokenizer.lex" +#line 586 "tokenizer.lex" {c();BEGIN(REGEXPOK);return m(T_USHR);} YY_BREAK -case 52: +case 53: YY_RULE_SETUP -#line 599 "tokenizer.lex" +#line 587 "tokenizer.lex" {c();BEGIN(REGEXPOK);return m(T_SHR);} YY_BREAK -case 53: +case 54: YY_RULE_SETUP -#line 600 "tokenizer.lex" +#line 588 "tokenizer.lex" {c();BEGIN(REGEXPOK);return m(T_DOTDOTDOT);} YY_BREAK -case 54: +case 55: YY_RULE_SETUP -#line 601 "tokenizer.lex" +#line 589 "tokenizer.lex" {c();BEGIN(REGEXPOK);return m(T_DOTDOT);} YY_BREAK -case 55: +case 56: YY_RULE_SETUP -#line 602 "tokenizer.lex" +#line 590 "tokenizer.lex" {c();BEGIN(REGEXPOK);return m('.');} YY_BREAK -case 56: +case 57: YY_RULE_SETUP -#line 603 "tokenizer.lex" +#line 591 "tokenizer.lex" {c();BEGIN(REGEXPOK);return m(T_COLONCOLON);} YY_BREAK -case 57: +case 58: YY_RULE_SETUP -#line 604 "tokenizer.lex" +#line 592 "tokenizer.lex" {c();BEGIN(REGEXPOK);return m(':');} YY_BREAK -case 58: +case 59: YY_RULE_SETUP -#line 605 "tokenizer.lex" +#line 593 "tokenizer.lex" {c();BEGIN(REGEXPOK);return m(KW_INSTANCEOF);} YY_BREAK -case 59: +case 60: YY_RULE_SETUP -#line 606 "tokenizer.lex" +#line 594 "tokenizer.lex" {c();BEGIN(REGEXPOK);return m(KW_IMPLEMENTS);} YY_BREAK -case 60: +case 61: YY_RULE_SETUP -#line 607 "tokenizer.lex" +#line 595 "tokenizer.lex" {c();BEGIN(INITIAL);return m(KW_INTERFACE);} YY_BREAK -case 61: +case 62: YY_RULE_SETUP -#line 608 "tokenizer.lex" +#line 596 "tokenizer.lex" {c();BEGIN(INITIAL);return m(KW_NAMESPACE);} YY_BREAK -case 62: +case 63: YY_RULE_SETUP -#line 609 "tokenizer.lex" +#line 597 "tokenizer.lex" {c();BEGIN(INITIAL);return m(KW_PROTECTED);} YY_BREAK -case 63: +case 64: YY_RULE_SETUP -#line 610 "tokenizer.lex" +#line 598 "tokenizer.lex" {c();BEGIN(INITIAL);return m(KW_UNDEFINED);} YY_BREAK -case 64: +case 65: YY_RULE_SETUP -#line 611 "tokenizer.lex" +#line 599 "tokenizer.lex" {c();BEGIN(INITIAL);return m(KW_CONTINUE);} YY_BREAK -case 65: +case 66: YY_RULE_SETUP -#line 612 "tokenizer.lex" +#line 600 "tokenizer.lex" {c();BEGIN(INITIAL);return m(KW_OVERRIDE);} YY_BREAK -case 66: +case 67: YY_RULE_SETUP -#line 613 "tokenizer.lex" +#line 601 "tokenizer.lex" {c();BEGIN(INITIAL);return m(KW_INTERNAL);} YY_BREAK -case 67: +case 68: YY_RULE_SETUP -#line 614 "tokenizer.lex" +#line 602 "tokenizer.lex" {c();BEGIN(INITIAL);return m(KW_FUNCTION);} YY_BREAK -case 68: +case 69: YY_RULE_SETUP -#line 615 "tokenizer.lex" +#line 603 "tokenizer.lex" {c();BEGIN(INITIAL);return m(KW_FINALLY);} YY_BREAK -case 69: +case 70: YY_RULE_SETUP -#line 616 "tokenizer.lex" +#line 604 "tokenizer.lex" {c();BEGIN(INITIAL);return m(KW_DEFAULT);} YY_BREAK -case 70: +case 71: YY_RULE_SETUP -#line 617 "tokenizer.lex" +#line 605 "tokenizer.lex" {c();BEGIN(INITIAL);return m(KW_PACKAGE);} YY_BREAK -case 71: +case 72: YY_RULE_SETUP -#line 618 "tokenizer.lex" +#line 606 "tokenizer.lex" {c();BEGIN(INITIAL);return m(KW_PRIVATE);} YY_BREAK -case 72: +case 73: YY_RULE_SETUP -#line 619 "tokenizer.lex" +#line 607 "tokenizer.lex" {c();BEGIN(INITIAL);return m(KW_DYNAMIC);} YY_BREAK -case 73: +case 74: YY_RULE_SETUP -#line 620 "tokenizer.lex" +#line 608 "tokenizer.lex" {c();BEGIN(INITIAL);return m(KW_EXTENDS);} YY_BREAK -case 74: +case 75: YY_RULE_SETUP -#line 621 "tokenizer.lex" +#line 609 "tokenizer.lex" {c();BEGIN(REGEXPOK);return m(KW_DELETE);} YY_BREAK -case 75: +case 76: YY_RULE_SETUP -#line 622 "tokenizer.lex" +#line 610 "tokenizer.lex" {c();BEGIN(REGEXPOK);return m(KW_RETURN);} YY_BREAK -case 76: +case 77: YY_RULE_SETUP -#line 623 "tokenizer.lex" +#line 611 "tokenizer.lex" {c();BEGIN(INITIAL);return m(KW_PUBLIC);} YY_BREAK -case 77: +case 78: YY_RULE_SETUP -#line 624 "tokenizer.lex" +#line 612 "tokenizer.lex" {c();BEGIN(INITIAL);return m(KW_NATIVE);} YY_BREAK -case 78: +case 79: YY_RULE_SETUP -#line 625 "tokenizer.lex" +#line 613 "tokenizer.lex" {c();BEGIN(INITIAL);return m(KW_STATIC);} YY_BREAK -case 79: +case 80: YY_RULE_SETUP -#line 626 "tokenizer.lex" +#line 614 "tokenizer.lex" {c();BEGIN(REGEXPOK);return m(KW_IMPORT);} YY_BREAK -case 80: +case 81: YY_RULE_SETUP -#line 627 "tokenizer.lex" +#line 615 "tokenizer.lex" {c();BEGIN(REGEXPOK);return m(KW_TYPEOF);} YY_BREAK -case 81: +case 82: YY_RULE_SETUP -#line 628 "tokenizer.lex" +#line 616 "tokenizer.lex" {c();BEGIN(REGEXPOK);return m(KW_THROW);} YY_BREAK -case 82: +case 83: YY_RULE_SETUP -#line 629 "tokenizer.lex" +#line 617 "tokenizer.lex" {c();BEGIN(INITIAL);return m(KW_CLASS);} YY_BREAK -case 83: +case 84: YY_RULE_SETUP -#line 630 "tokenizer.lex" +#line 618 "tokenizer.lex" {c();BEGIN(INITIAL);return m(KW_CONST);} YY_BREAK -case 84: +case 85: YY_RULE_SETUP -#line 631 "tokenizer.lex" +#line 619 "tokenizer.lex" {c();BEGIN(INITIAL);return m(KW_CATCH);} YY_BREAK -case 85: +case 86: YY_RULE_SETUP -#line 632 "tokenizer.lex" +#line 620 "tokenizer.lex" {c();BEGIN(INITIAL);return m(KW_FINAL);} YY_BREAK -case 86: +case 87: YY_RULE_SETUP -#line 633 "tokenizer.lex" +#line 621 "tokenizer.lex" {c();BEGIN(INITIAL);return m(KW_FALSE);} YY_BREAK -case 87: +case 88: YY_RULE_SETUP -#line 634 "tokenizer.lex" +#line 622 "tokenizer.lex" {c();BEGIN(INITIAL);return m(KW_BREAK);} YY_BREAK -case 88: +case 89: YY_RULE_SETUP -#line 635 "tokenizer.lex" +#line 623 "tokenizer.lex" {c();BEGIN(INITIAL);return m(KW_SUPER);} YY_BREAK -case 89: +case 90: YY_RULE_SETUP -#line 636 "tokenizer.lex" +#line 624 "tokenizer.lex" {c();BEGIN(INITIAL);return m(KW_EACH);} YY_BREAK -case 90: +case 91: YY_RULE_SETUP -#line 637 "tokenizer.lex" +#line 625 "tokenizer.lex" {c();BEGIN(INITIAL);return m(KW_VOID);} YY_BREAK -case 91: +case 92: YY_RULE_SETUP -#line 638 "tokenizer.lex" +#line 626 "tokenizer.lex" {c();BEGIN(INITIAL);return m(KW_TRUE);} YY_BREAK -case 92: +case 93: YY_RULE_SETUP -#line 639 "tokenizer.lex" +#line 627 "tokenizer.lex" {c();BEGIN(INITIAL);return m(KW_NULL);} YY_BREAK -case 93: +case 94: YY_RULE_SETUP -#line 640 "tokenizer.lex" +#line 628 "tokenizer.lex" {c();BEGIN(INITIAL);return m(KW_ELSE);} YY_BREAK -case 94: +case 95: YY_RULE_SETUP -#line 641 "tokenizer.lex" +#line 629 "tokenizer.lex" {c();BEGIN(REGEXPOK);return m(KW_CASE);} YY_BREAK -case 95: +case 96: YY_RULE_SETUP -#line 642 "tokenizer.lex" +#line 630 "tokenizer.lex" {c();BEGIN(REGEXPOK);return m(KW_WITH);} YY_BREAK -case 96: +case 97: YY_RULE_SETUP -#line 643 "tokenizer.lex" +#line 631 "tokenizer.lex" {c();BEGIN(REGEXPOK);return m(KW_USE);} YY_BREAK -case 97: +case 98: YY_RULE_SETUP -#line 644 "tokenizer.lex" +#line 632 "tokenizer.lex" {c();BEGIN(REGEXPOK);return m(KW_NEW);} YY_BREAK -case 98: +case 99: YY_RULE_SETUP -#line 645 "tokenizer.lex" +#line 633 "tokenizer.lex" {c();BEGIN(INITIAL);return m(KW_GET);} YY_BREAK -case 99: +case 100: YY_RULE_SETUP -#line 646 "tokenizer.lex" +#line 634 "tokenizer.lex" {c();BEGIN(INITIAL);return m(KW_SET);} YY_BREAK -case 100: +case 101: YY_RULE_SETUP -#line 647 "tokenizer.lex" +#line 635 "tokenizer.lex" {c();BEGIN(INITIAL);return m(KW_VAR);} YY_BREAK -case 101: +case 102: YY_RULE_SETUP -#line 648 "tokenizer.lex" +#line 636 "tokenizer.lex" {c();BEGIN(INITIAL);return m(KW_TRY);} YY_BREAK -case 102: +case 103: YY_RULE_SETUP -#line 649 "tokenizer.lex" +#line 637 "tokenizer.lex" {c();BEGIN(REGEXPOK);return m(KW_IS) ;} YY_BREAK -case 103: +case 104: YY_RULE_SETUP -#line 650 "tokenizer.lex" +#line 638 "tokenizer.lex" {c();BEGIN(REGEXPOK);return m(KW_IN) ;} YY_BREAK -case 104: +case 105: YY_RULE_SETUP -#line 651 "tokenizer.lex" +#line 639 "tokenizer.lex" {c();BEGIN(INITIAL);return m(KW_IF) ;} YY_BREAK -case 105: +case 106: YY_RULE_SETUP -#line 652 "tokenizer.lex" +#line 640 "tokenizer.lex" {c();BEGIN(REGEXPOK);return m(KW_AS);} YY_BREAK -case 106: +case 107: YY_RULE_SETUP -#line 653 "tokenizer.lex" +#line 641 "tokenizer.lex" {c();BEGIN(INITIAL);return handleIdentifier();} YY_BREAK -case 107: +case 108: YY_RULE_SETUP -#line 655 "tokenizer.lex" +#line 643 "tokenizer.lex" {c();BEGIN(INITIAL);return m(as3_text[0]);} YY_BREAK -case 108: +case 109: YY_RULE_SETUP -#line 656 "tokenizer.lex" +#line 644 "tokenizer.lex" {c();BEGIN(REGEXPOK);return m(as3_text[0]);} YY_BREAK -case 109: +case 110: YY_RULE_SETUP -#line 657 "tokenizer.lex" +#line 645 "tokenizer.lex" {c();BEGIN(INITIAL);return m(as3_text[0]);} YY_BREAK -case 110: +case 111: YY_RULE_SETUP -#line 659 "tokenizer.lex" +#line 647 "tokenizer.lex" {/* ERROR */ char c1=as3_text[0]; char buf[128]; @@ -2731,7 +2705,7 @@ YY_RULE_SETUP case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(REGEXPOK): case YY_STATE_EOF(BEGINNING): -#line 679 "tokenizer.lex" +#line 667 "tokenizer.lex" {l(); void*b = leave_file(); if (!b) { @@ -2744,12 +2718,12 @@ case YY_STATE_EOF(BEGINNING): } } YY_BREAK -case 111: +case 112: YY_RULE_SETUP -#line 691 "tokenizer.lex" +#line 679 "tokenizer.lex" ECHO; YY_BREAK -#line 2753 "tokenizer.yy.c" +#line 2727 "tokenizer.yy.c" case YY_END_OF_BUFFER: { @@ -3041,7 +3015,7 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 512 ) + if ( yy_current_state >= 515 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -3069,11 +3043,11 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 512 ) + if ( yy_current_state >= 515 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 511); + yy_is_jam = (yy_current_state == 514); return yy_is_jam ? 0 : yy_current_state; } @@ -3759,7 +3733,7 @@ void as3_free (void * ptr ) #define YYTABLES_NAME "yytables" -#line 691 "tokenizer.lex" +#line 679 "tokenizer.lex" @@ -3790,7 +3764,6 @@ char*token2string(enum yytokentype nr, YYSTYPE v) } else if(nr==T_INT) return ""; else if(nr==T_UINT) return ""; - else if(nr==T_BYTE) return ""; else if(nr==T_FLOAT) return ""; else if(nr==T_EOF) return "***END***"; else if(nr==T_GE) return ">="; -- 1.7.10.4