From b76ad047da08d8b6c4204f52adb1000571694e11 Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Sun, 19 Jul 2015 22:36:25 +0000 Subject: [PATCH] [JSCRIPT] Sync with Wine Staging 1.7.47. CORE-9924 svn path=/trunk/; revision=68446 --- reactos/dll/win32/jscript/compile.c | 18 +- reactos/dll/win32/jscript/date.c | 9 +- reactos/dll/win32/jscript/engine.c | 60 +- reactos/dll/win32/jscript/engine.h | 1 + reactos/dll/win32/jscript/jscript.c | 14 +- reactos/dll/win32/jscript/jscript.h | 2 +- reactos/dll/win32/jscript/lex.c | 8 +- reactos/dll/win32/jscript/parser.h | 1 + reactos/dll/win32/jscript/parser.tab.c | 1965 ++++++++++++------------ reactos/dll/win32/jscript/parser.tab.h | 25 +- reactos/dll/win32/jscript/parser.y | 17 +- reactos/dll/win32/jscript/string.c | 2 +- reactos/media/doc/README.WINE | 2 +- 13 files changed, 1113 insertions(+), 1011 deletions(-) diff --git a/reactos/dll/win32/jscript/compile.c b/reactos/dll/win32/jscript/compile.c index abc86432e0e..06c55615f51 100644 --- a/reactos/dll/win32/jscript/compile.c +++ b/reactos/dll/win32/jscript/compile.c @@ -854,7 +854,7 @@ static HRESULT compile_function_expression(compiler_ctx_t *ctx, function_express ctx->func_tail = ctx->func_tail ? (ctx->func_tail->next = expr) : (ctx->func_head = expr); /* FIXME: not exactly right */ - if(expr->identifier) { + if(expr->identifier && !expr->event_target) { ctx->func->func_cnt++; return push_instr_bstr(ctx, OP_ident, expr->identifier); } @@ -1857,10 +1857,18 @@ static HRESULT compile_function(compiler_ctx_t *ctx, source_elements_t *source, func->instr_off = off; - if(func_expr && func_expr->identifier) { - func->name = compiler_alloc_bstr(ctx, func_expr->identifier); - if(!func->name) - return E_OUTOFMEMORY; + if(func_expr) { + if(func_expr->identifier) { + func->name = compiler_alloc_bstr(ctx, func_expr->identifier); + if(!func->name) + return E_OUTOFMEMORY; + } + + if(func_expr->event_target) { + func->event_target = compiler_alloc_bstr(ctx, func_expr->event_target); + if(!func->event_target) + return E_OUTOFMEMORY; + } } if(func_expr) { diff --git a/reactos/dll/win32/jscript/date.c b/reactos/dll/win32/jscript/date.c index 5513deff791..33b55023d1f 100644 --- a/reactos/dll/win32/jscript/date.c +++ b/reactos/dll/win32/jscript/date.c @@ -2121,7 +2121,7 @@ static inline HRESULT date_parse(jsstr_t *input_str, double *ret) { } } else if(parse[i]=='-' || parse[i]=='/') { - /* Short date */ + /* Short or long date */ if(set_day || set_month || set_year) break; set_day = TRUE; set_month = TRUE; @@ -2141,6 +2141,13 @@ static inline HRESULT date_parse(jsstr_t *input_str, double *ret) { if(parse[i]<'0' || parse[i]>'9') break; year = atoiW(&parse[i]); while(parse[i]>='0' && parse[i]<='9') i++; + + if(tmp >= 70){ + /* long date */ + month = day - 1; + day = year; + year = tmp; + } } else if(tmp<0) break; else if(tmp<70) { diff --git a/reactos/dll/win32/jscript/engine.c b/reactos/dll/win32/jscript/engine.c index 34a7eaedd3c..f4b487136d7 100644 --- a/reactos/dll/win32/jscript/engine.c +++ b/reactos/dll/win32/jscript/engine.c @@ -500,14 +500,16 @@ static HRESULT identifier_eval(script_ctx_t *ctx, BSTR identifier, exprval_t *re TRACE("%s\n", debugstr_w(identifier)); - for(scope = ctx->exec_ctx->scope_chain; scope; scope = scope->next) { - if(scope->jsobj) - hres = jsdisp_get_id(scope->jsobj, identifier, fdexNameImplicit, &id); - else - hres = disp_get_id(ctx, scope->obj, identifier, identifier, fdexNameImplicit, &id); - if(SUCCEEDED(hres)) { - exprval_set_idref(ret, scope->obj, id); - return S_OK; + if(ctx->exec_ctx) { + for(scope = ctx->exec_ctx->scope_chain; scope; scope = scope->next) { + if(scope->jsobj) + hres = jsdisp_get_id(scope->jsobj, identifier, fdexNameImplicit, &id); + else + hres = disp_get_id(ctx, scope->obj, identifier, identifier, fdexNameImplicit, &id); + if(SUCCEEDED(hres)) { + exprval_set_idref(ret, scope->obj, id); + return S_OK; + } } } @@ -2493,6 +2495,43 @@ static HRESULT enter_bytecode(script_ctx_t *ctx, bytecode_t *code, function_code return S_OK; } +static HRESULT bind_event_target(script_ctx_t *ctx, function_code_t *func, jsdisp_t *func_obj) +{ + IBindEventHandler *target; + exprval_t exprval; + IDispatch *disp; + jsval_t v; + HRESULT hres; + + hres = identifier_eval(ctx, func->event_target, &exprval); + if(FAILED(hres)) + return hres; + + hres = exprval_to_value(ctx, &exprval, &v); + exprval_release(&exprval); + if(FAILED(hres)) + return hres; + + if(!is_object_instance(v)) { + FIXME("Can't bind to %s\n", debugstr_jsval(v)); + jsval_release(v); + } + + disp = get_object(v); + hres = IDispatch_QueryInterface(disp, &IID_IBindEventHandler, (void**)&target); + if(SUCCEEDED(hres)) { + hres = IBindEventHandler_BindHandler(target, func->name, (IDispatch*)&func_obj->IDispatchEx_iface); + IBindEventHandler_Release(target); + if(FAILED(hres)) + WARN("BindEvent failed: %08x\n", hres); + }else { + FIXME("No IBindEventHandler, not yet supported binding\n"); + } + + IDispatch_Release(disp); + return hres; +} + HRESULT exec_source(exec_ctx_t *ctx, bytecode_t *code, function_code_t *func, BOOL from_eval, jsval_t *ret) { exec_ctx_t *prev_ctx; @@ -2510,7 +2549,10 @@ HRESULT exec_source(exec_ctx_t *ctx, bytecode_t *code, function_code_t *func, BO if(FAILED(hres)) return hres; - hres = jsdisp_propput_name(ctx->var_disp, func->funcs[i].name, jsval_obj(func_obj)); + if(func->funcs[i].event_target) + hres = bind_event_target(ctx->script, func->funcs+i, func_obj); + else + hres = jsdisp_propput_name(ctx->var_disp, func->funcs[i].name, jsval_obj(func_obj)); jsdisp_release(func_obj); if(FAILED(hres)) return hres; diff --git a/reactos/dll/win32/jscript/engine.h b/reactos/dll/win32/jscript/engine.h index a32a197ee7c..95612315e15 100644 --- a/reactos/dll/win32/jscript/engine.h +++ b/reactos/dll/win32/jscript/engine.h @@ -129,6 +129,7 @@ typedef struct { typedef struct _function_code_t { BSTR name; + BSTR event_target; unsigned instr_off; const WCHAR *source; diff --git a/reactos/dll/win32/jscript/jscript.c b/reactos/dll/win32/jscript/jscript.c index 763dac13c17..2d7a7fd7475 100644 --- a/reactos/dll/win32/jscript/jscript.c +++ b/reactos/dll/win32/jscript/jscript.c @@ -787,7 +787,11 @@ static HRESULT WINAPI JScriptParse_ParseScriptText(IActiveScriptParse *iface, return hres; } - if(!is_started(This->ctx)) { + /* + * Although pvarResult is not really used without SCRIPTTEXT_ISEXPRESSION flag, if it's not NULL, + * script is executed immediately, even if it's not in started state yet. + */ + if(!pvarResult && !is_started(This->ctx)) { if(This->queue_tail) This->queue_tail = This->queue_tail->next = code; else @@ -796,9 +800,13 @@ static HRESULT WINAPI JScriptParse_ParseScriptText(IActiveScriptParse *iface, } hres = exec_global_code(This, code); - release_bytecode(code); - return hres; + if(FAILED(hres)) + return hres; + + if(pvarResult) + V_VT(pvarResult) = VT_EMPTY; + return S_OK; } static const IActiveScriptParseVtbl JScriptParseVtbl = { diff --git a/reactos/dll/win32/jscript/jscript.h b/reactos/dll/win32/jscript/jscript.h index 8c2b561e9b5..ac6db25d34c 100644 --- a/reactos/dll/win32/jscript/jscript.h +++ b/reactos/dll/win32/jscript/jscript.h @@ -298,7 +298,7 @@ HRESULT jsdisp_propget_name(jsdisp_t*,LPCWSTR,jsval_t*) DECLSPEC_HIDDEN; HRESULT jsdisp_get_idx(jsdisp_t*,DWORD,jsval_t*) DECLSPEC_HIDDEN; HRESULT jsdisp_get_id(jsdisp_t*,const WCHAR*,DWORD,DISPID*) DECLSPEC_HIDDEN; HRESULT disp_delete(IDispatch*,DISPID,BOOL*) DECLSPEC_HIDDEN; -HRESULT disp_delete_name(script_ctx_t*,IDispatch*,jsstr_t*,BOOL*); +HRESULT disp_delete_name(script_ctx_t*,IDispatch*,jsstr_t*,BOOL*) DECLSPEC_HIDDEN; HRESULT jsdisp_delete_idx(jsdisp_t*,DWORD) DECLSPEC_HIDDEN; HRESULT jsdisp_is_own_prop(jsdisp_t*,const WCHAR*,BOOL*) DECLSPEC_HIDDEN; HRESULT jsdisp_is_enumerable(jsdisp_t*,const WCHAR*,BOOL*) DECLSPEC_HIDDEN; diff --git a/reactos/dll/win32/jscript/lex.c b/reactos/dll/win32/jscript/lex.c index e02764f47a1..98c5e40b97d 100644 --- a/reactos/dll/win32/jscript/lex.c +++ b/reactos/dll/win32/jscript/lex.c @@ -578,7 +578,6 @@ static int next_token(parser_ctx_t *ctx, void *lval) case ',': case '~': case '?': - case ':': return *ctx->ptr++; case '}': @@ -774,6 +773,13 @@ static int next_token(parser_ctx_t *ctx, void *lval) } return '/'; + case ':': + if(++ctx->ptr < ctx->end && *ctx->ptr == ':') { + ctx->ptr++; + return kDCOL; + } + return ':'; + case '\"': case '\'': return parse_string_literal(ctx, lval, *ctx->ptr); diff --git a/reactos/dll/win32/jscript/parser.h b/reactos/dll/win32/jscript/parser.h index d572ab66a46..9b7f9961db4 100644 --- a/reactos/dll/win32/jscript/parser.h +++ b/reactos/dll/win32/jscript/parser.h @@ -287,6 +287,7 @@ struct _source_elements_t { typedef struct _function_expression_t { expression_t expr; const WCHAR *identifier; + const WCHAR *event_target; parameter_t *parameter_list; source_elements_t *source_elements; const WCHAR *src_str; diff --git a/reactos/dll/win32/jscript/parser.tab.c b/reactos/dll/win32/jscript/parser.tab.c index 66d9d0b2496..798cd1df55d 100644 --- a/reactos/dll/win32/jscript/parser.tab.c +++ b/reactos/dll/win32/jscript/parser.tab.c @@ -167,7 +167,7 @@ static parameter_list_t *parameter_list_add(parser_ctx_t*,parameter_list_t*,cons static void *new_expression(parser_ctx_t *ctx,expression_type_t,size_t); static expression_t *new_function_expression(parser_ctx_t*,const WCHAR*,parameter_list_t*, - source_elements_t*,const WCHAR*,DWORD); + source_elements_t*,const WCHAR*,const WCHAR*,DWORD); static expression_t *new_binary_expression(parser_ctx_t*,expression_type_t,expression_t*,expression_t*); static expression_t *new_unary_expression(parser_ctx_t*,expression_type_t,expression_t*); static expression_t *new_conditional_expression(parser_ctx_t*,expression_t*,expression_t*,expression_t*); @@ -248,17 +248,18 @@ extern int parser_debug; tDEC = 288, tHTMLCOMMENT = 289, kDIVEQ = 290, - kFUNCTION = 291, - tIdentifier = 292, - tAssignOper = 293, - tEqOper = 294, - tShiftOper = 295, - tRelOper = 296, - tNumericLiteral = 297, - tBooleanLiteral = 298, - tStringLiteral = 299, - tEOF = 300, - LOWER_THAN_ELSE = 301 + kDCOL = 291, + kFUNCTION = 292, + tIdentifier = 293, + tAssignOper = 294, + tEqOper = 295, + tShiftOper = 296, + tRelOper = 297, + tNumericLiteral = 298, + tBooleanLiteral = 299, + tStringLiteral = 300, + tEOF = 301, + LOWER_THAN_ELSE = 302 }; #endif @@ -288,7 +289,7 @@ union YYSTYPE struct _variable_list_t *variable_list; variable_declaration_t *variable_declaration; -#line 298 "parser.tab.c" /* yacc.c:355 */ +#line 299 "parser.tab.c" /* yacc.c:355 */ }; # define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_DECLARED 1 @@ -302,7 +303,7 @@ int parser_parse (parser_ctx_t *ctx); /* Copy the second part of user declarations. */ -#line 312 "parser.tab.c" /* yacc.c:358 */ +#line 313 "parser.tab.c" /* yacc.c:358 */ #ifdef short # undef short @@ -544,21 +545,21 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 3 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 1053 +#define YYLAST 1085 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 69 +#define YYNTOKENS 70 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 95 /* YYNRULES -- Number of rules. */ -#define YYNRULES 215 +#define YYNRULES 217 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 375 +#define YYNSTATES 389 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 301 +#define YYMAXUTOK 302 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -570,16 +571,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, 63, 2, 2, 2, 61, 56, 2, - 67, 68, 59, 57, 49, 58, 66, 60, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 52, 51, - 2, 50, 2, 53, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 64, 2, 2, 2, 62, 57, 2, + 68, 69, 60, 58, 50, 59, 67, 61, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 53, 52, + 2, 51, 2, 54, 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, 64, 2, 65, 55, 2, 2, 2, 2, 2, + 2, 65, 2, 66, 56, 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, 48, 54, 37, 62, 2, 2, 2, + 2, 2, 2, 49, 55, 38, 63, 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, @@ -596,36 +597,36 @@ static const yytype_uint8 yytranslate[] = 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47 + 35, 36, 37, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48 }; #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 252, 252, 256, 257, 261, 262, 267, 271, 275, - 279, 280, 285, 286, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 303, 304, 308, - 309, 314, 315, 319, 320, 324, 329, 330, 335, 337, - 342, 347, 352, 353, 357, 362, 363, 367, 372, 376, - 381, 383, 388, 390, 393, 395, 392, 399, 401, 398, - 404, 406, 411, 416, 421, 426, 431, 436, 441, 443, - 448, 449, 453, 454, 459, 464, 469, 474, 475, 476, - 481, 486, 490, 491, 494, 495, 499, 500, 505, 506, - 510, 512, 516, 517, 521, 522, 524, 529, 531, 533, - 538, 539, 544, 546, 551, 552, 557, 559, 564, 565, - 570, 572, 577, 578, 583, 585, 590, 591, 596, 598, - 603, 604, 609, 611, 616, 617, 622, 623, 628, 629, - 631, 633, 638, 639, 641, 646, 647, 652, 654, 656, - 661, 662, 664, 666, 671, 672, 674, 675, 677, 678, - 679, 680, 681, 682, 686, 688, 690, 696, 697, 701, - 702, 706, 707, 708, 710, 712, 717, 719, 721, 723, - 728, 729, 733, 734, 739, 740, 741, 742, 743, 744, - 748, 749, 750, 751, 756, 758, 763, 764, 768, 769, - 773, 774, 779, 781, 786, 787, 788, 792, 793, 797, - 798, 799, 800, 801, 803, 808, 809, 810, 813, 814, - 817, 818, 821, 822, 825, 826 + 0, 252, 252, 256, 257, 261, 262, 267, 269, 271, + 275, 279, 283, 284, 289, 290, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 312, 313, 318, 319, 323, 324, 328, 333, 334, + 339, 341, 346, 351, 356, 357, 361, 366, 367, 371, + 376, 380, 385, 387, 392, 394, 397, 399, 396, 403, + 405, 402, 408, 410, 415, 420, 425, 430, 435, 440, + 445, 447, 452, 453, 457, 458, 463, 468, 473, 478, + 479, 480, 485, 490, 494, 495, 498, 499, 503, 504, + 509, 510, 514, 516, 520, 521, 525, 526, 528, 533, + 535, 537, 542, 543, 548, 550, 555, 556, 561, 563, + 568, 569, 574, 576, 581, 582, 587, 589, 594, 595, + 600, 602, 607, 608, 613, 615, 620, 621, 626, 627, + 632, 633, 635, 637, 642, 643, 645, 650, 651, 656, + 658, 660, 665, 666, 668, 670, 675, 676, 678, 679, + 681, 682, 683, 684, 685, 686, 690, 692, 694, 700, + 701, 705, 706, 710, 711, 712, 714, 716, 721, 723, + 725, 727, 732, 733, 737, 738, 743, 744, 745, 746, + 747, 748, 752, 753, 754, 755, 760, 762, 767, 768, + 772, 773, 777, 778, 783, 785, 790, 791, 792, 796, + 797, 801, 802, 803, 804, 805, 807, 812, 813, 814, + 817, 818, 821, 822, 825, 826, 829, 830 }; #endif @@ -638,7 +639,7 @@ static const char *const yytname[] = "kDEFAULT", "kDELETE", "kDO", "kELSE", "kIF", "kFINALLY", "kFOR", "kIN", "kINSTANCEOF", "kNEW", "kNULL", "kRETURN", "kSWITCH", "kTHIS", "kTHROW", "kTRUE", "kFALSE", "kTRY", "kTYPEOF", "kVAR", "kVOID", "kWHILE", "kWITH", - "tANDAND", "tOROR", "tINC", "tDEC", "tHTMLCOMMENT", "kDIVEQ", + "tANDAND", "tOROR", "tINC", "tDEC", "tHTMLCOMMENT", "kDIVEQ", "kDCOL", "kFUNCTION", "'}'", "tIdentifier", "tAssignOper", "tEqOper", "tShiftOper", "tRelOper", "tNumericLiteral", "tBooleanLiteral", "tStringLiteral", "tEOF", "LOWER_THAN_ELSE", "'{'", "','", "'='", "';'", @@ -684,19 +685,19 @@ static const yytype_uint16 yytoknum[] = 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 291, 125, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 123, 44, - 61, 59, 58, 63, 124, 94, 38, 43, 45, 42, - 47, 37, 126, 33, 91, 93, 46, 40, 41 + 285, 286, 287, 288, 289, 290, 291, 292, 125, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 123, + 44, 61, 59, 58, 63, 124, 94, 38, 43, 45, + 42, 47, 37, 126, 33, 91, 93, 46, 40, 41 }; # endif -#define YYPACT_NINF -293 +#define YYPACT_NINF -336 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-293))) + (!!((Yystate) == (-336))) -#define YYTABLE_NINF -197 +#define YYTABLE_NINF -199 #define yytable_value_is_error(Yytable_value) \ 0 @@ -705,44 +706,45 @@ static const yytype_uint16 yytoknum[] = STATE-NUM. */ static const yytype_int16 yypact[] = { - -293, 53, 496, -293, 26, 26, 956, 744, 8, 8, - 986, -293, 956, 8, -293, 956, -293, -293, 39, 956, - 71, 956, 8, 8, 956, 956, -293, -293, -293, 67, - -293, -293, -293, 558, -293, 956, 956, -293, 956, 956, - 41, 956, 76, 410, 26, -293, -293, -293, -293, -293, - -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, - 19, -293, -293, -7, 102, 100, 108, 111, 135, 36, - 142, -43, 97, -293, -293, 129, -293, 105, 118, -293, - -293, -293, -293, -293, -293, 7, 7, -293, 176, -293, - -293, 49, 158, -293, -293, 372, 850, -293, 105, 7, - 140, 956, 19, 620, 125, -293, 153, 47, -293, -293, - 372, 956, -293, -293, 744, 442, 67, 155, 163, -293, - 682, 80, 165, -293, -293, -293, -293, -293, -293, 42, - 48, 956, 31, -293, 8, -293, 956, -293, -293, 956, - 956, 956, 956, 956, 956, 956, 956, 956, 956, 956, - 956, 956, 956, 956, 956, -293, -293, -293, -293, 956, - 956, 956, 180, 797, -293, 956, 182, -293, -293, -293, - -293, -293, -293, -293, 8, -293, 3, 140, 184, -293, - 181, -293, -293, 35, 195, 172, 178, 175, 192, 23, - 142, 120, -293, -293, 11, -293, -293, 8, 39, 222, - -293, 956, -293, -293, 71, -293, 3, 11, -293, -293, - -293, -293, 90, 956, 186, -293, -293, -293, -293, -293, - 198, -293, 102, 185, 100, 108, 111, 135, 36, 142, - 142, 142, -43, 97, 97, -293, -293, -293, -293, -293, - 56, -293, -293, -293, 34, 66, -293, 372, -293, -293, - 744, 188, 190, 226, 10, 956, 956, 956, 956, 956, - 956, 956, 956, 956, 956, 372, 956, 956, 193, 204, - -293, -293, -293, -293, 744, 744, 194, -293, 196, 903, - -293, 202, 3, 956, -293, 956, -293, -293, 3, 234, - 956, -293, -293, 184, 10, 372, -293, -293, 956, -293, - 177, 195, 214, 172, 178, 175, 192, 23, 142, 142, - 3, -293, -293, 263, -293, 3, -293, -293, 956, -293, - -293, 230, 221, -293, -293, 7, 744, -293, -293, 956, - 3, -293, 956, 744, 956, 6, 263, -293, 39, -293, - -293, -293, -293, -293, -293, 744, 10, -293, -293, 59, - 219, -293, 263, -293, -293, 744, 239, 10, -293, 956, - 744, 744, 240, -293, 956, 3, 744, -293, -293, -293, - 3, 744, 744, -293, -293 + -336, 33, 515, -336, -17, -17, 983, 767, 37, 37, + 1017, -336, 983, 37, -336, 983, -336, -336, -12, 983, + 9, 983, 37, 37, 983, 983, -336, -336, -336, 8, + -336, -336, -336, 578, -336, 983, 983, -336, 983, 983, + 57, 983, 4, 427, 6, -336, -336, -336, -336, -336, + -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, + 56, -336, -336, -10, 90, 38, 46, 65, 83, 96, + 86, 94, 168, -336, -336, 114, -336, 159, 169, -336, + -336, -336, -336, -336, -336, 14, 14, -336, 122, -336, + -336, 180, 107, -336, -336, 388, 875, -336, 159, 14, + 113, 983, 56, 641, 42, -336, 124, 75, -336, -336, + 388, 983, -336, -336, 767, 460, 8, 120, 141, -336, + 704, 79, 156, -336, -336, -336, -336, -336, -336, 84, + 91, 983, 63, -336, 41, 177, -336, 983, -336, -336, + 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, + 983, 983, 983, 983, 983, 983, -336, -336, -336, -336, + 983, 983, 983, 199, 821, -336, 983, 200, -336, -336, + -336, -336, -336, -336, -336, 37, -336, 22, 113, 201, + -336, 192, -336, -336, 72, 213, 189, 190, 188, 206, + 17, 86, 105, -336, -336, 35, -336, -336, 37, -12, + 236, -336, 983, -336, -336, 9, -336, 22, 35, -336, + -336, -336, -336, 125, 983, 202, -336, -336, -336, -336, + -336, 211, 177, -336, 204, 22, -336, 90, 198, 38, + 46, 65, 83, 96, 86, 86, 86, 94, 168, 168, + -336, -336, -336, -336, -336, 92, -336, -336, -336, 64, + 93, -336, 388, -336, -336, 767, 210, 205, 243, 45, + 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, + 388, 983, 983, 214, 223, -336, -336, -336, -336, 767, + 767, 212, -336, 216, 929, 37, 22, 225, 218, 983, + -336, 983, -336, -336, 22, 258, 983, -336, -336, 201, + 45, 388, -336, -336, 983, -336, 182, 213, 217, 189, + 190, 188, 206, 17, 86, 86, 22, -336, -336, 265, + -336, 22, -336, -336, 983, -336, -336, 177, 222, -336, + -336, -336, -336, 14, 767, -336, -336, 983, 22, -336, + 983, 767, 983, 18, 265, -336, -12, -336, 22, -336, + 767, 234, -336, -336, -336, 767, 45, -336, -336, 117, + 220, -336, 265, -336, -336, 226, 238, -336, 45, -336, + 983, 767, 767, 245, -336, -336, 983, 22, 767, -336, + -336, -336, 246, 22, 767, -336, 767, -336, -336 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -750,74 +752,75 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 5, 0, 4, 1, 197, 197, 0, 0, 0, 0, - 0, 199, 82, 0, 174, 0, 205, 206, 0, 0, - 0, 0, 0, 0, 0, 0, 3, 204, 8, 175, - 201, 207, 202, 0, 48, 0, 0, 203, 0, 0, - 188, 0, 0, 17, 197, 6, 14, 15, 16, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 0, 86, 94, 100, 104, 108, 112, 116, 120, 124, - 128, 135, 137, 140, 144, 154, 157, 159, 158, 161, - 177, 178, 176, 200, 198, 0, 0, 175, 0, 162, - 145, 154, 0, 211, 210, 0, 88, 160, 159, 0, - 83, 0, 0, 0, 0, 147, 42, 0, 36, 146, - 0, 0, 148, 149, 0, 34, 175, 201, 202, 29, - 0, 0, 0, 150, 151, 152, 153, 186, 180, 0, - 189, 0, 0, 2, 0, 209, 0, 208, 49, 0, + 5, 0, 4, 1, 199, 199, 0, 0, 0, 0, + 0, 201, 84, 0, 176, 0, 207, 208, 0, 0, + 0, 0, 0, 0, 0, 0, 3, 206, 10, 177, + 203, 209, 204, 0, 50, 0, 0, 205, 0, 0, + 190, 0, 0, 19, 0, 6, 16, 17, 18, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 0, 88, 96, 102, 106, 110, 114, 118, 122, 126, + 130, 137, 139, 142, 146, 156, 159, 161, 160, 163, + 179, 180, 178, 202, 200, 0, 0, 177, 0, 164, + 147, 156, 0, 213, 212, 0, 90, 162, 161, 0, + 85, 0, 0, 0, 0, 149, 44, 0, 38, 148, + 0, 0, 150, 151, 0, 36, 177, 203, 204, 31, + 0, 0, 0, 152, 153, 154, 155, 188, 182, 0, + 191, 0, 0, 2, 0, 14, 211, 0, 210, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 155, 156, 93, 92, 0, - 0, 0, 0, 0, 166, 0, 0, 167, 63, 62, - 190, 194, 196, 195, 0, 85, 0, 84, 0, 54, - 89, 90, 97, 102, 106, 110, 114, 118, 122, 126, - 132, 154, 165, 64, 0, 76, 34, 0, 0, 77, - 78, 0, 40, 43, 0, 35, 0, 0, 66, 33, - 30, 191, 0, 0, 188, 182, 187, 181, 184, 179, - 12, 87, 105, 0, 109, 113, 117, 121, 125, 131, - 130, 129, 136, 138, 139, 141, 142, 143, 95, 96, - 0, 164, 170, 172, 0, 0, 169, 0, 213, 212, - 0, 45, 57, 38, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 157, 158, 95, 94, + 0, 0, 0, 0, 0, 168, 0, 0, 169, 65, + 64, 192, 196, 198, 197, 0, 87, 0, 86, 0, + 56, 91, 92, 99, 104, 108, 112, 116, 120, 124, + 128, 134, 156, 167, 66, 0, 78, 36, 0, 0, + 79, 80, 0, 42, 45, 0, 37, 0, 0, 68, + 35, 32, 193, 0, 0, 190, 184, 189, 183, 186, + 181, 0, 14, 12, 15, 0, 89, 107, 0, 111, + 115, 119, 123, 127, 133, 132, 131, 138, 140, 141, + 143, 144, 145, 97, 98, 0, 166, 172, 174, 0, + 0, 171, 0, 215, 214, 0, 47, 59, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 81, 79, 44, 37, 0, 0, 0, 192, 189, 0, - 10, 13, 0, 0, 163, 0, 171, 168, 0, 51, - 0, 41, 46, 0, 0, 0, 215, 214, 82, 91, - 154, 107, 0, 111, 115, 119, 123, 127, 134, 133, - 0, 98, 99, 70, 67, 0, 53, 65, 0, 183, - 185, 0, 0, 101, 173, 0, 0, 47, 39, 82, - 0, 55, 0, 0, 0, 0, 71, 72, 0, 193, - 11, 5, 52, 50, 58, 0, 0, 103, 60, 0, - 0, 68, 70, 73, 80, 9, 0, 0, 61, 82, - 31, 31, 0, 7, 82, 0, 32, 74, 75, 69, - 0, 0, 0, 56, 59 + 0, 0, 0, 0, 0, 83, 81, 46, 39, 0, + 0, 0, 194, 191, 0, 0, 0, 0, 0, 0, + 165, 0, 173, 170, 0, 53, 0, 43, 48, 0, + 0, 0, 217, 216, 84, 93, 156, 109, 0, 113, + 117, 121, 125, 129, 136, 135, 0, 100, 101, 72, + 69, 0, 55, 67, 0, 185, 187, 14, 0, 13, + 5, 103, 175, 0, 0, 49, 41, 84, 0, 57, + 0, 0, 0, 0, 73, 74, 0, 195, 0, 5, + 11, 0, 54, 52, 60, 0, 0, 105, 62, 0, + 0, 70, 72, 75, 82, 0, 0, 7, 0, 63, + 84, 33, 33, 0, 5, 8, 84, 0, 34, 76, + 77, 71, 0, 0, 0, 9, 0, 58, 61 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -293, -293, -293, -63, -2, -293, -293, -293, -293, 0, - -187, -82, -17, -293, -293, -293, 77, -10, -293, -293, - -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, - -293, -293, -293, -293, -293, -293, -293, -68, -293, -51, - -293, -293, -293, -293, 87, -292, -87, 15, -293, -293, - 213, -36, -238, -293, -293, -293, -293, 150, 40, 149, - 33, 151, 43, 152, 44, 148, 45, 156, 46, -62, - 145, 37, 38, -293, -3, 287, 288, -293, -9, -293, - -293, -293, -293, 86, 89, -293, -293, 95, 5, -293, - -293, -60, 32, 17, -254 + -336, -336, -336, 274, -2, -336, -335, -336, -211, 1, + -180, -87, -9, -336, -336, -336, 81, -8, -336, -336, + -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, + -336, -336, -336, -336, -336, -336, -336, -75, -336, -56, + -336, -336, -336, -336, 89, -287, -108, -11, -336, -336, + 229, -66, -244, -336, -336, -336, -336, 152, 47, 165, + 48, 166, 49, 170, 50, 167, 51, 173, 53, -61, + 171, 69, 43, -336, 34, 306, 312, -336, -35, -336, + -336, -336, -336, 108, 109, -336, -336, 112, 322, -336, + -336, -73, -3, 24, -276 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 42, 2, 89, 44, 356, 281, 282, 119, - 120, 367, 46, 47, 107, 252, 108, 253, 202, 203, - 291, 292, 48, 49, 50, 51, 254, 346, 294, 357, - 52, 53, 54, 55, 56, 57, 314, 335, 336, 337, - 352, 58, 59, 199, 200, 99, 176, 60, 179, 180, - 267, 61, 181, 62, 182, 63, 183, 64, 184, 65, - 185, 66, 186, 67, 187, 68, 188, 69, 189, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 164, 244, + -1, 1, 42, 350, 89, 44, 351, 224, 225, 119, + 120, 379, 46, 47, 107, 257, 108, 258, 203, 204, + 297, 298, 48, 49, 50, 51, 259, 356, 300, 368, + 52, 53, 54, 55, 56, 57, 320, 343, 344, 345, + 362, 58, 59, 200, 201, 99, 177, 60, 180, 181, + 272, 61, 182, 62, 183, 63, 184, 64, 185, 65, + 186, 66, 187, 67, 188, 68, 189, 69, 190, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 165, 249, 79, 80, 129, 130, 131, 81, 121, 122, 85, 82, - 83, 138, 95, 250, 298 + 83, 139, 95, 255, 304 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -825,320 +828,327 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 43, 104, 45, 91, 248, 43, 331, 92, 135, 93, - 86, 296, 248, 350, 150, 151, 91, 299, 91, 302, - 135, 91, 91, 206, 139, 168, 169, 100, 311, 312, - 102, 43, 91, 91, 190, 91, 91, 344, 263, 193, - 329, 96, 195, 351, 90, 101, 140, 205, 135, 134, - 146, 147, 327, 3, 110, 111, 132, 105, 137, 109, - 136, 297, 112, 113, 84, 264, 256, 365, 136, 167, - 137, 249, 370, 123, 124, 94, 125, 126, 148, 249, - 136, 155, 156, 285, 229, 230, 231, 103, 257, 192, - 127, 214, 359, 191, 347, 218, 204, 216, 137, 219, - 221, 43, 286, 364, 223, 136, 128, 215, 136, 106, - 177, 360, 43, 217, 208, 136, 194, 211, 43, 114, - 210, 284, 133, 238, 239, 177, 207, 243, 171, 212, - 197, 287, 141, 172, 265, 173, 91, 198, 91, 91, + 43, 100, 207, 45, 102, 43, 96, 93, 92, 104, + 101, 286, 169, 170, 366, 136, 305, 339, 308, 110, + 111, 140, 84, 253, 337, 360, 194, 317, 318, 196, + 132, 43, 268, 3, 206, 191, 253, 103, 93, 382, + 91, 135, 93, 168, 141, 134, 302, 198, 106, 90, + 354, 133, 335, 91, 199, 91, 361, 136, 91, 91, + 269, 114, 105, 193, 109, 219, 138, 112, 113, 91, + 91, 226, 91, 91, 94, 228, 136, 221, 123, 124, + 370, 125, 126, 377, 178, 137, 234, 235, 236, 383, + 195, 254, 376, 143, 243, 244, 357, 303, 248, 178, + 208, 43, 144, 261, 254, 94, 137, 127, 138, 94, + 147, 148, 43, 137, 291, 209, 348, 212, 43, 270, + 142, 211, 145, 128, 146, 205, 262, 138, 150, 213, + 192, 222, 220, 292, 215, 175, 277, 156, 157, 149, + 158, 217, 137, 137, 294, 159, 156, 157, 282, 158, + 216, 245, 151, 152, 159, 250, 271, 218, 290, 293, + 171, 172, 316, 137, 172, 160, 173, 137, 174, 173, + 371, 174, 252, -198, 91, 202, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, - 91, 91, 155, 156, 142, 157, 152, 153, 154, 158, - 288, 155, 156, 143, 157, 272, 220, 144, 158, 161, - 266, 162, 163, 366, 366, 145, 240, 277, 310, 159, - 245, 270, 165, 149, 166, 163, 174, 233, 234, 136, - 235, 236, 237, 190, 190, 190, 190, 190, 190, 190, - 190, 308, 309, 201, 190, 190, 247, -196, 330, 155, - 156, 268, 157, 170, 171, -195, 158, 213, 241, 172, - 246, 173, 251, 274, 275, 258, 259, 266, 190, 269, - 255, 261, 262, 260, 198, 127, 280, 283, 290, 293, - 295, 313, 315, 320, 326, 216, 318, 323, 43, 324, - 289, 321, 300, 91, 300, 91, 91, 91, 91, 91, - 91, 91, 177, 300, 300, 342, 332, 334, 340, 341, - 190, 361, 43, 43, 316, 317, 363, 369, 355, 368, - 177, 273, 339, 328, 362, 353, 271, 300, 160, 222, - 224, 303, 227, 225, 232, 226, 301, 97, 98, 322, - 278, 228, 304, 279, 305, 325, 306, 276, 307, 0, - 177, 0, 0, 100, 0, 0, 0, 0, 0, 0, - 0, 354, 0, 0, 43, 0, 343, 333, 0, 300, - 0, 43, 338, 348, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 43, 100, 358, 0, 345, 0, 349, - 0, 0, 0, 43, 0, 45, 0, 0, 43, 43, - 0, 0, 0, 0, 43, 0, 210, 0, 0, 43, - 43, 373, 374, 175, 100, 0, 0, 0, 0, 100, - 6, 0, 371, 0, 0, 0, 0, 372, 10, 11, - 0, 0, 14, 0, 16, 17, 0, 19, 0, 21, - 0, 0, 0, 0, 24, 25, 0, 27, 28, 0, - 87, -162, 0, 0, 0, 30, 31, 32, 0, 0, - 88, 0, 0, 0, -162, -162, 0, 0, 0, 35, - 36, 0, 37, 0, 38, 39, 40, 0, 0, 41, - -162, -162, 0, -190, 0, 0, 0, 0, 0, -162, - -162, -162, -162, 0, 0, 0, -190, -190, 0, -162, - -162, 0, 0, -162, -162, -162, -162, 0, 0, -162, - 0, -162, -190, -190, 0, 0, -162, 0, 0, 0, - 0, -190, -190, -190, -190, 0, 0, 0, 0, 0, - 0, -190, -190, 0, 0, -190, -190, -190, -190, 4, - 0, -190, 5, -190, 6, 7, 0, 8, -190, 9, - 0, 0, 10, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 0, 0, 24, 25, - 26, 27, 28, 0, 29, 0, 0, 0, 0, 30, + 275, 378, 378, 338, -197, 274, 240, 241, 242, 191, + 191, 191, 191, 191, 191, 191, 191, 314, 315, 214, + 191, 191, 156, 157, 156, 157, 223, 158, 326, 273, + 238, 239, 159, 331, 162, 332, 163, 164, 153, 154, + 155, 279, 280, 271, 166, 191, 167, 164, 246, 251, + 256, 178, 260, 263, 264, 266, 265, 267, 199, 288, + 285, 289, 127, 43, 287, 299, 295, 301, 347, 178, + 352, 296, 321, 319, 329, 324, 217, 330, 334, 342, + 340, 349, 367, 372, 2, 374, 375, 43, 43, 191, + 322, 323, 327, 381, 385, 380, 278, 373, 363, 276, + 178, 336, 227, 100, 306, 91, 306, 91, 91, 91, + 91, 91, 91, 91, 161, 306, 306, 229, 307, 230, + 328, 309, 232, 310, 231, 311, 97, 312, 333, 233, + 313, 237, 98, 283, 284, 281, 100, 86, 0, 0, + 306, 359, 43, 0, 0, 353, 0, 364, 0, 43, + 341, 0, 358, 0, 0, 346, 0, 0, 43, 0, + 0, 45, 0, 43, 0, 0, 369, 0, 0, 100, + 0, 0, 355, 0, 0, 100, 0, 0, 0, 43, + 43, 0, 365, 0, 306, 0, 43, 0, 0, 211, + 0, 0, 43, 0, 43, 387, 0, 388, 0, 176, + 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, + 0, 384, 0, 0, 10, 11, 0, 386, 14, 0, + 16, 17, 0, 19, 0, 21, 0, 0, 0, 0, + 24, 25, 0, 27, 0, 28, 0, 87, -164, 0, + 0, 0, 30, 31, 32, 0, 0, 88, 0, 0, + 0, -164, -164, 0, 0, 0, 35, 36, 0, 37, + 0, 38, 39, 40, 0, 0, 41, -164, -164, 0, + 0, -192, 0, 0, 0, 0, 0, -164, -164, -164, + -164, 0, 0, 0, -192, -192, 0, -164, -164, 0, + 0, -164, -164, -164, -164, 0, 0, -164, 0, -164, + -192, -192, 0, 0, -164, 0, 0, 0, 0, 0, + -192, -192, -192, -192, 0, 0, 0, 0, 0, 0, + -192, -192, 0, 0, -192, -192, -192, -192, 4, 0, + -192, 5, -192, 6, 7, 0, 8, -192, 9, 0, + 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 0, 0, 24, 25, 26, + 27, 0, 28, 0, 29, 0, 0, 0, 0, 30, 31, 32, 0, 0, 33, 0, 0, 34, 0, 0, 0, 0, 0, 35, 36, 0, 37, 0, 38, 39, 40, 4, 0, 41, 5, 0, 6, 7, 0, 8, 0, 9, 0, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, - 24, 25, 0, 27, 28, 115, 116, 0, 0, 0, - 0, 117, 31, 118, 0, 0, 33, 0, 0, 34, - 0, 0, 0, 0, 0, 35, 36, 0, 37, 0, - 38, 39, 40, 4, 0, 41, 5, 0, 6, 7, - 0, 8, 0, 9, 0, 0, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 0, 0, 24, 25, 0, 27, 28, 196, 29, 0, - 0, 0, 0, 30, 31, 32, 0, 0, 33, 0, - 0, 34, 0, 0, 0, 0, 0, 35, 36, 0, - 37, 0, 38, 39, 40, 4, 0, 41, 5, 0, - 6, 7, 0, 8, 0, 9, 0, 0, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 0, 0, 24, 25, 0, 27, 28, 209, + 24, 25, 0, 27, 0, 28, 115, 116, 0, 0, + 0, 0, 117, 31, 118, 0, 0, 33, 0, 0, + 34, 0, 0, 0, 0, 0, 35, 36, 0, 37, + 0, 38, 39, 40, 4, 0, 41, 5, 0, 6, + 7, 0, 8, 0, 9, 0, 0, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 0, 0, 24, 25, 0, 27, 0, 28, 197, 29, 0, 0, 0, 0, 30, 31, 32, 0, 0, 33, 0, 0, 34, 0, 0, 0, 0, 0, 35, 36, 0, 37, 0, 38, 39, 40, 4, 0, 41, 5, 0, 6, 7, 0, 8, 0, 9, 0, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 24, 25, 0, 27, - 28, 0, 29, 0, 0, 0, 0, 30, 31, 32, - 0, 0, 33, 0, 0, 34, 0, 0, 0, 0, - 0, 35, 36, 0, 37, 6, 38, 39, 40, 0, - 0, 41, 0, 10, 11, 0, 0, 14, 0, 16, - 17, 0, 19, 0, 21, 0, 0, 0, 0, 24, - 25, 0, 27, 28, 0, 87, 0, 0, 0, 0, - 30, 31, 32, 0, 0, 88, 0, 0, 0, 0, - 0, 0, 0, 0, 35, 36, 0, 37, 6, 38, - 39, 40, 0, 0, 41, 242, 10, 11, 0, 0, - 14, 0, 16, 17, 0, 19, 178, 21, 0, 0, - 0, 0, 24, 25, 0, 27, 28, 0, 87, 0, + 0, 28, 210, 29, 0, 0, 0, 0, 30, 31, + 32, 0, 0, 33, 0, 0, 34, 0, 0, 0, + 0, 0, 35, 36, 0, 37, 0, 38, 39, 40, + 4, 0, 41, 5, 0, 6, 7, 0, 8, 0, + 9, 0, 0, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 0, 0, 24, + 25, 0, 27, 0, 28, 0, 29, 0, 0, 0, + 0, 30, 31, 32, 0, 0, 33, 0, 0, 34, + 0, 0, 0, 0, 0, 35, 36, 0, 37, 6, + 38, 39, 40, 0, 0, 41, 0, 10, 11, 0, + 0, 14, 0, 16, 17, 0, 19, 0, 21, 0, + 0, 0, 0, 24, 25, 0, 27, 0, 28, 0, + 87, 0, 0, 0, 0, 30, 31, 32, 0, 0, + 88, 0, 0, 0, 0, 0, 0, 0, 0, 35, + 36, 0, 37, 6, 38, 39, 40, 0, 0, 41, + 247, 10, 11, 0, 0, 14, 0, 16, 17, 0, + 19, 179, 21, 0, 0, 0, 0, 24, 25, 0, + 27, 0, 28, 0, 87, 0, 0, 0, 0, 30, + 31, 32, 0, 0, 88, 0, 0, 0, 0, 0, + 0, 0, 0, 35, 36, 0, 37, 6, 38, 39, + 40, 0, 0, 41, 0, 10, 11, 0, 0, 14, + 0, 16, 17, 0, 19, 0, 21, 0, 0, 0, + 0, 24, 25, 0, 27, 0, 28, 0, 87, 0, 0, 0, 0, 30, 31, 32, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 35, 36, 0, - 37, 6, 38, 39, 40, 0, 0, 41, 0, 10, + 37, 6, 38, 39, 40, 325, 0, 41, 0, 10, 11, 0, 0, 14, 0, 16, 17, 0, 19, 0, - 21, 0, 0, 0, 0, 24, 25, 0, 27, 28, - 0, 87, 0, 0, 0, 0, 30, 31, 32, 0, - 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, - 35, 36, 0, 37, 6, 38, 39, 40, 319, 0, - 41, 0, 10, 11, 0, 0, 14, 0, 16, 17, - 0, 19, 0, 21, 0, 0, 0, 0, 24, 25, - 0, 27, 28, 0, 87, 0, 0, 0, 0, 30, - 31, 32, 10, 11, 88, 0, 14, 0, 16, 17, - 0, 0, 0, 35, 36, 0, 37, 0, 38, 39, - 40, 27, 28, 41, 87, 0, 0, 0, 0, 30, - 31, 32, 0, 0, 88, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, - 40, 0, 0, 41 + 21, 0, 0, 0, 0, 24, 25, 0, 27, 0, + 28, 0, 87, 0, 0, 0, 0, 30, 31, 32, + 0, 0, 88, 10, 11, 0, 0, 14, 0, 16, + 17, 35, 36, 0, 37, 0, 38, 39, 40, 0, + 0, 41, 27, 0, 28, 0, 87, 0, 0, 0, + 0, 30, 31, 32, 0, 0, 88, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, + 0, 0, 40, 0, 0, 41 }; static const yytype_int16 yycheck[] = { - 2, 18, 2, 6, 1, 7, 298, 7, 1, 1, - 5, 1, 1, 7, 57, 58, 19, 255, 21, 257, - 1, 24, 25, 110, 31, 85, 86, 12, 266, 267, - 15, 33, 35, 36, 96, 38, 39, 329, 15, 99, - 294, 9, 102, 37, 6, 13, 53, 107, 1, 44, - 14, 15, 290, 0, 22, 23, 41, 19, 51, 21, - 49, 51, 24, 25, 38, 42, 31, 359, 49, 78, - 51, 68, 364, 35, 36, 67, 38, 39, 42, 68, - 49, 32, 33, 49, 146, 147, 148, 48, 53, 98, - 49, 49, 346, 96, 332, 131, 49, 49, 51, 68, - 136, 103, 68, 357, 140, 49, 65, 65, 49, 38, - 95, 52, 114, 65, 114, 49, 101, 37, 120, 52, - 120, 65, 46, 159, 160, 110, 111, 163, 38, 49, - 5, 65, 30, 43, 14, 45, 139, 12, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 32, 33, 54, 35, 59, 60, 61, 39, - 247, 32, 33, 55, 35, 201, 134, 56, 39, 64, - 50, 66, 67, 360, 361, 40, 161, 213, 265, 50, - 165, 198, 64, 41, 66, 67, 28, 150, 151, 49, - 152, 153, 154, 255, 256, 257, 258, 259, 260, 261, - 262, 263, 264, 50, 266, 267, 174, 52, 295, 32, - 33, 194, 35, 37, 38, 52, 39, 52, 38, 43, - 38, 45, 38, 206, 207, 30, 54, 50, 290, 197, - 49, 56, 40, 55, 12, 49, 38, 52, 50, 49, - 14, 48, 38, 279, 10, 49, 52, 283, 250, 285, - 250, 49, 255, 256, 257, 258, 259, 260, 261, 262, - 263, 264, 247, 266, 267, 325, 52, 4, 38, 48, - 332, 52, 274, 275, 274, 275, 37, 37, 341, 361, - 265, 204, 318, 293, 352, 336, 199, 290, 75, 139, - 141, 258, 144, 142, 149, 143, 256, 10, 10, 282, - 214, 145, 259, 214, 260, 288, 261, 212, 262, -1, - 295, -1, -1, 298, -1, -1, -1, -1, -1, -1, - -1, 338, -1, -1, 326, -1, 326, 310, -1, 332, - -1, 333, 315, 333, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 345, 329, 345, -1, 330, -1, 334, - -1, -1, -1, 355, -1, 355, -1, -1, 360, 361, - -1, -1, -1, -1, 366, -1, 366, -1, -1, 371, - 372, 371, 372, 1, 359, -1, -1, -1, -1, 364, - 8, -1, 365, -1, -1, -1, -1, 370, 16, 17, - -1, -1, 20, -1, 22, 23, -1, 25, -1, 27, - -1, -1, -1, -1, 32, 33, -1, 35, 36, -1, - 38, 1, -1, -1, -1, 43, 44, 45, -1, -1, - 48, -1, -1, -1, 14, 15, -1, -1, -1, 57, - 58, -1, 60, -1, 62, 63, 64, -1, -1, 67, - 30, 31, -1, 1, -1, -1, -1, -1, -1, 39, - 40, 41, 42, -1, -1, -1, 14, 15, -1, 49, - 50, -1, -1, 53, 54, 55, 56, -1, -1, 59, - -1, 61, 30, 31, -1, -1, 66, -1, -1, -1, - -1, 39, 40, 41, 42, -1, -1, -1, -1, -1, - -1, 49, 50, -1, -1, 53, 54, 55, 56, 3, - -1, 59, 6, 61, 8, 9, -1, 11, 66, 13, - -1, -1, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, -1, -1, 32, 33, - 34, 35, 36, -1, 38, -1, -1, -1, -1, 43, - 44, 45, -1, -1, 48, -1, -1, 51, -1, -1, - -1, -1, -1, 57, 58, -1, 60, -1, 62, 63, - 64, 3, -1, 67, 6, -1, 8, 9, -1, 11, + 2, 12, 110, 2, 15, 7, 9, 1, 7, 18, + 13, 222, 85, 86, 349, 1, 260, 304, 262, 22, + 23, 31, 39, 1, 300, 7, 99, 271, 272, 102, + 41, 33, 15, 0, 107, 96, 1, 49, 1, 374, + 6, 44, 1, 78, 54, 39, 1, 5, 39, 6, + 337, 47, 296, 19, 12, 21, 38, 1, 24, 25, + 43, 53, 19, 98, 21, 131, 52, 24, 25, 35, + 36, 137, 38, 39, 68, 141, 1, 36, 35, 36, + 356, 38, 39, 370, 95, 50, 147, 148, 149, 376, + 101, 69, 368, 55, 160, 161, 340, 52, 164, 110, + 111, 103, 56, 31, 69, 68, 50, 50, 52, 68, + 14, 15, 114, 50, 50, 114, 327, 38, 120, 14, + 30, 120, 57, 66, 41, 50, 54, 52, 42, 50, + 96, 134, 69, 69, 50, 28, 202, 32, 33, 43, + 35, 50, 50, 50, 252, 40, 32, 33, 214, 35, + 66, 162, 58, 59, 40, 166, 51, 66, 66, 66, + 38, 39, 270, 50, 39, 51, 44, 50, 46, 44, + 53, 46, 175, 53, 140, 51, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 199, 371, 372, 301, 53, 198, 153, 154, 155, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 53, + 271, 272, 32, 33, 32, 33, 39, 35, 284, 195, + 151, 152, 40, 289, 65, 291, 67, 68, 60, 61, + 62, 207, 208, 51, 65, 296, 67, 68, 39, 39, + 39, 252, 50, 30, 55, 57, 56, 41, 12, 225, + 39, 53, 50, 255, 50, 50, 255, 14, 324, 270, + 333, 51, 39, 49, 39, 53, 50, 49, 10, 4, + 53, 49, 38, 53, 0, 49, 38, 279, 280, 340, + 279, 280, 285, 38, 38, 372, 205, 362, 344, 200, + 301, 299, 140, 304, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 75, 271, 272, 142, 261, 143, + 286, 263, 145, 264, 144, 265, 10, 266, 294, 146, + 267, 150, 10, 215, 215, 213, 337, 5, -1, -1, + 296, 342, 334, -1, -1, 334, -1, 346, -1, 341, + 316, -1, 341, -1, -1, 321, -1, -1, 350, -1, + -1, 350, -1, 355, -1, -1, 355, -1, -1, 370, + -1, -1, 338, -1, -1, 376, -1, -1, -1, 371, + 372, -1, 348, -1, 340, -1, 378, -1, -1, 378, + -1, -1, 384, -1, 386, 384, -1, 386, -1, 1, + -1, -1, -1, -1, -1, -1, 8, -1, -1, -1, + -1, 377, -1, -1, 16, 17, -1, 383, 20, -1, + 22, 23, -1, 25, -1, 27, -1, -1, -1, -1, + 32, 33, -1, 35, -1, 37, -1, 39, 1, -1, + -1, -1, 44, 45, 46, -1, -1, 49, -1, -1, + -1, 14, 15, -1, -1, -1, 58, 59, -1, 61, + -1, 63, 64, 65, -1, -1, 68, 30, 31, -1, + -1, 1, -1, -1, -1, -1, -1, 40, 41, 42, + 43, -1, -1, -1, 14, 15, -1, 50, 51, -1, + -1, 54, 55, 56, 57, -1, -1, 60, -1, 62, + 30, 31, -1, -1, 67, -1, -1, -1, -1, -1, + 40, 41, 42, 43, -1, -1, -1, -1, -1, -1, + 50, 51, -1, -1, 54, 55, 56, 57, 3, -1, + 60, 6, 62, 8, 9, -1, 11, 67, 13, -1, + -1, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, -1, -1, 32, 33, 34, + 35, -1, 37, -1, 39, -1, -1, -1, -1, 44, + 45, 46, -1, -1, 49, -1, -1, 52, -1, -1, + -1, -1, -1, 58, 59, -1, 61, -1, 63, 64, + 65, 3, -1, 68, 6, -1, 8, 9, -1, 11, -1, 13, -1, -1, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, - 32, 33, -1, 35, 36, 37, 38, -1, -1, -1, - -1, 43, 44, 45, -1, -1, 48, -1, -1, 51, - -1, -1, -1, -1, -1, 57, 58, -1, 60, -1, - 62, 63, 64, 3, -1, 67, 6, -1, 8, 9, - -1, 11, -1, 13, -1, -1, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - -1, -1, 32, 33, -1, 35, 36, 37, 38, -1, - -1, -1, -1, 43, 44, 45, -1, -1, 48, -1, - -1, 51, -1, -1, -1, -1, -1, 57, 58, -1, - 60, -1, 62, 63, 64, 3, -1, 67, 6, -1, - 8, 9, -1, 11, -1, 13, -1, -1, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, -1, -1, 32, 33, -1, 35, 36, 37, - 38, -1, -1, -1, -1, 43, 44, 45, -1, -1, - 48, -1, -1, 51, -1, -1, -1, -1, -1, 57, - 58, -1, 60, -1, 62, 63, 64, 3, -1, 67, + 32, 33, -1, 35, -1, 37, 38, 39, -1, -1, + -1, -1, 44, 45, 46, -1, -1, 49, -1, -1, + 52, -1, -1, -1, -1, -1, 58, 59, -1, 61, + -1, 63, 64, 65, 3, -1, 68, 6, -1, 8, + 9, -1, 11, -1, 13, -1, -1, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, -1, -1, 32, 33, -1, 35, -1, 37, 38, + 39, -1, -1, -1, -1, 44, 45, 46, -1, -1, + 49, -1, -1, 52, -1, -1, -1, -1, -1, 58, + 59, -1, 61, -1, 63, 64, 65, 3, -1, 68, 6, -1, 8, 9, -1, 11, -1, 13, -1, -1, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, 32, 33, -1, 35, - 36, -1, 38, -1, -1, -1, -1, 43, 44, 45, - -1, -1, 48, -1, -1, 51, -1, -1, -1, -1, - -1, 57, 58, -1, 60, 8, 62, 63, 64, -1, - -1, 67, -1, 16, 17, -1, -1, 20, -1, 22, - 23, -1, 25, -1, 27, -1, -1, -1, -1, 32, - 33, -1, 35, 36, -1, 38, -1, -1, -1, -1, - 43, 44, 45, -1, -1, 48, -1, -1, -1, -1, - -1, -1, -1, -1, 57, 58, -1, 60, 8, 62, - 63, 64, -1, -1, 67, 68, 16, 17, -1, -1, - 20, -1, 22, 23, -1, 25, 26, 27, -1, -1, - -1, -1, 32, 33, -1, 35, 36, -1, 38, -1, - -1, -1, -1, 43, 44, 45, -1, -1, 48, -1, - -1, -1, -1, -1, -1, -1, -1, 57, 58, -1, - 60, 8, 62, 63, 64, -1, -1, 67, -1, 16, + -1, 37, 38, 39, -1, -1, -1, -1, 44, 45, + 46, -1, -1, 49, -1, -1, 52, -1, -1, -1, + -1, -1, 58, 59, -1, 61, -1, 63, 64, 65, + 3, -1, 68, 6, -1, 8, 9, -1, 11, -1, + 13, -1, -1, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, -1, -1, 32, + 33, -1, 35, -1, 37, -1, 39, -1, -1, -1, + -1, 44, 45, 46, -1, -1, 49, -1, -1, 52, + -1, -1, -1, -1, -1, 58, 59, -1, 61, 8, + 63, 64, 65, -1, -1, 68, -1, 16, 17, -1, + -1, 20, -1, 22, 23, -1, 25, -1, 27, -1, + -1, -1, -1, 32, 33, -1, 35, -1, 37, -1, + 39, -1, -1, -1, -1, 44, 45, 46, -1, -1, + 49, -1, -1, -1, -1, -1, -1, -1, -1, 58, + 59, -1, 61, 8, 63, 64, 65, -1, -1, 68, + 69, 16, 17, -1, -1, 20, -1, 22, 23, -1, + 25, 26, 27, -1, -1, -1, -1, 32, 33, -1, + 35, -1, 37, -1, 39, -1, -1, -1, -1, 44, + 45, 46, -1, -1, 49, -1, -1, -1, -1, -1, + -1, -1, -1, 58, 59, -1, 61, 8, 63, 64, + 65, -1, -1, 68, -1, 16, 17, -1, -1, 20, + -1, 22, 23, -1, 25, -1, 27, -1, -1, -1, + -1, 32, 33, -1, 35, -1, 37, -1, 39, -1, + -1, -1, -1, 44, 45, 46, -1, -1, 49, -1, + -1, -1, -1, -1, -1, -1, -1, 58, 59, -1, + 61, 8, 63, 64, 65, 66, -1, 68, -1, 16, 17, -1, -1, 20, -1, 22, 23, -1, 25, -1, - 27, -1, -1, -1, -1, 32, 33, -1, 35, 36, - -1, 38, -1, -1, -1, -1, 43, 44, 45, -1, - -1, 48, -1, -1, -1, -1, -1, -1, -1, -1, - 57, 58, -1, 60, 8, 62, 63, 64, 65, -1, - 67, -1, 16, 17, -1, -1, 20, -1, 22, 23, - -1, 25, -1, 27, -1, -1, -1, -1, 32, 33, - -1, 35, 36, -1, 38, -1, -1, -1, -1, 43, - 44, 45, 16, 17, 48, -1, 20, -1, 22, 23, - -1, -1, -1, 57, 58, -1, 60, -1, 62, 63, - 64, 35, 36, 67, 38, -1, -1, -1, -1, 43, - 44, 45, -1, -1, 48, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 60, -1, -1, -1, - 64, -1, -1, 67 + 27, -1, -1, -1, -1, 32, 33, -1, 35, -1, + 37, -1, 39, -1, -1, -1, -1, 44, 45, 46, + -1, -1, 49, 16, 17, -1, -1, 20, -1, 22, + 23, 58, 59, -1, 61, -1, 63, 64, 65, -1, + -1, 68, 35, -1, 37, -1, 39, -1, -1, -1, + -1, 44, 45, 46, -1, -1, 49, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 61, -1, + -1, -1, 65, -1, -1, 68 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 70, 72, 0, 3, 6, 8, 9, 11, 13, + 0, 71, 73, 0, 3, 6, 8, 9, 11, 13, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 32, 33, 34, 35, 36, 38, - 43, 44, 45, 48, 51, 57, 58, 60, 62, 63, - 64, 67, 71, 73, 74, 78, 81, 82, 91, 92, - 93, 94, 99, 100, 101, 102, 103, 104, 110, 111, - 116, 120, 122, 124, 126, 128, 130, 132, 134, 136, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 149, - 150, 154, 158, 159, 38, 157, 157, 38, 48, 73, - 141, 143, 78, 1, 67, 161, 161, 144, 145, 114, - 116, 161, 116, 48, 81, 141, 38, 83, 85, 141, - 161, 161, 141, 141, 52, 37, 38, 43, 45, 78, - 79, 155, 156, 141, 141, 141, 141, 49, 65, 151, - 152, 153, 116, 46, 157, 1, 49, 51, 160, 31, - 53, 30, 54, 55, 56, 40, 14, 15, 42, 41, - 57, 58, 59, 60, 61, 32, 33, 35, 39, 50, - 119, 64, 66, 67, 147, 64, 66, 147, 160, 160, - 37, 38, 43, 45, 28, 1, 115, 116, 26, 117, - 118, 121, 123, 125, 127, 129, 131, 133, 135, 137, - 138, 143, 147, 160, 116, 160, 37, 5, 12, 112, - 113, 50, 87, 88, 49, 160, 115, 116, 78, 37, - 78, 37, 49, 52, 49, 65, 49, 65, 120, 68, - 161, 120, 126, 120, 128, 130, 132, 134, 136, 138, - 138, 138, 139, 140, 140, 141, 141, 141, 120, 120, - 116, 38, 68, 120, 148, 116, 38, 161, 1, 68, - 162, 38, 84, 86, 95, 49, 31, 53, 30, 54, - 55, 56, 40, 15, 42, 14, 50, 119, 162, 161, - 81, 113, 120, 85, 162, 162, 156, 120, 152, 153, - 38, 76, 77, 52, 65, 49, 68, 65, 115, 78, - 50, 89, 90, 49, 97, 14, 1, 51, 163, 121, - 143, 127, 121, 129, 131, 133, 135, 137, 138, 138, - 115, 121, 121, 48, 105, 38, 78, 78, 52, 65, - 120, 49, 162, 120, 120, 162, 10, 121, 86, 163, - 115, 114, 52, 162, 4, 106, 107, 108, 162, 120, - 38, 48, 160, 78, 114, 162, 96, 121, 78, 116, - 7, 37, 109, 108, 81, 72, 75, 98, 78, 163, - 52, 52, 106, 37, 163, 114, 79, 80, 80, 37, - 114, 162, 162, 78, 78 + 26, 27, 28, 29, 32, 33, 34, 35, 37, 39, + 44, 45, 46, 49, 52, 58, 59, 61, 63, 64, + 65, 68, 72, 74, 75, 79, 82, 83, 92, 93, + 94, 95, 100, 101, 102, 103, 104, 105, 111, 112, + 117, 121, 123, 125, 127, 129, 131, 133, 135, 137, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 150, + 151, 155, 159, 160, 39, 158, 158, 39, 49, 74, + 142, 144, 79, 1, 68, 162, 162, 145, 146, 115, + 117, 162, 117, 49, 82, 142, 39, 84, 86, 142, + 162, 162, 142, 142, 53, 38, 39, 44, 46, 79, + 80, 156, 157, 142, 142, 142, 142, 50, 66, 152, + 153, 154, 117, 47, 39, 162, 1, 50, 52, 161, + 31, 54, 30, 55, 56, 57, 41, 14, 15, 43, + 42, 58, 59, 60, 61, 62, 32, 33, 35, 40, + 51, 120, 65, 67, 68, 148, 65, 67, 148, 161, + 161, 38, 39, 44, 46, 28, 1, 116, 117, 26, + 118, 119, 122, 124, 126, 128, 130, 132, 134, 136, + 138, 139, 144, 148, 161, 117, 161, 38, 5, 12, + 113, 114, 51, 88, 89, 50, 161, 116, 117, 79, + 38, 79, 38, 50, 53, 50, 66, 50, 66, 121, + 69, 36, 162, 39, 77, 78, 121, 127, 121, 129, + 131, 133, 135, 137, 139, 139, 139, 140, 141, 141, + 142, 142, 142, 121, 121, 117, 39, 69, 121, 149, + 117, 39, 162, 1, 69, 163, 39, 85, 87, 96, + 50, 31, 54, 30, 55, 56, 57, 41, 15, 43, + 14, 51, 120, 163, 162, 82, 114, 121, 86, 163, + 163, 157, 121, 153, 154, 39, 78, 50, 163, 53, + 66, 50, 69, 66, 116, 79, 51, 90, 91, 50, + 98, 14, 1, 52, 164, 122, 144, 128, 122, 130, + 132, 134, 136, 138, 139, 139, 116, 122, 122, 49, + 106, 39, 79, 79, 53, 66, 121, 162, 163, 39, + 49, 121, 121, 163, 10, 122, 87, 164, 116, 115, + 53, 163, 4, 107, 108, 109, 163, 121, 78, 49, + 73, 76, 161, 79, 115, 163, 97, 122, 79, 117, + 7, 38, 110, 109, 82, 163, 76, 38, 99, 79, + 164, 53, 53, 107, 49, 38, 164, 115, 80, 81, + 81, 38, 76, 115, 163, 38, 163, 79, 79 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 69, 70, 71, 71, 72, 72, 73, 74, 75, - 76, 76, 77, 77, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, 78, 79, - 79, 80, 80, 81, 81, 82, 83, 83, 84, 84, - 85, 86, 87, 87, 88, 89, 89, 90, 91, 92, - 93, 93, 94, 94, 95, 96, 94, 97, 98, 94, - 94, 94, 99, 100, 101, 102, 103, 104, 105, 105, - 106, 106, 107, 107, 108, 109, 110, 111, 111, 111, - 112, 113, 114, 114, 115, 115, 116, 116, 117, 117, - 118, 118, 119, 119, 120, 120, 120, 121, 121, 121, + 0, 70, 71, 72, 72, 73, 73, 74, 74, 74, + 75, 76, 77, 77, 78, 78, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 80, 80, 81, 81, 82, 82, 83, 84, 84, + 85, 85, 86, 87, 88, 88, 89, 90, 90, 91, + 92, 93, 94, 94, 95, 95, 96, 97, 95, 98, + 99, 95, 95, 95, 100, 101, 102, 103, 104, 105, + 106, 106, 107, 107, 108, 108, 109, 110, 111, 112, + 112, 112, 113, 114, 115, 115, 116, 116, 117, 117, + 118, 118, 119, 119, 120, 120, 121, 121, 121, 122, 122, 122, 123, 123, 124, 124, 125, 125, 126, 126, 127, 127, 128, 128, 129, 129, 130, 130, 131, 131, 132, 132, 133, 133, 134, 134, 135, 135, 136, 136, - 136, 136, 137, 137, 137, 138, 138, 139, 139, 139, - 140, 140, 140, 140, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 142, 142, 142, 143, 143, 144, - 144, 145, 145, 145, 145, 145, 146, 146, 146, 146, - 147, 147, 148, 148, 149, 149, 149, 149, 149, 149, - 150, 150, 150, 150, 151, 151, 152, 152, 153, 153, - 154, 154, 155, 155, 156, 156, 156, 157, 157, 158, - 158, 158, 158, 158, 158, 159, 159, 159, 160, 160, - 161, 161, 162, 162, 163, 163 + 137, 137, 137, 137, 138, 138, 138, 139, 139, 140, + 140, 140, 141, 141, 141, 141, 142, 142, 142, 142, + 142, 142, 142, 142, 142, 142, 143, 143, 143, 144, + 144, 145, 145, 146, 146, 146, 146, 146, 147, 147, + 147, 147, 148, 148, 149, 149, 150, 150, 150, 150, + 150, 150, 151, 151, 151, 151, 152, 152, 153, 153, + 154, 154, 155, 155, 156, 156, 157, 157, 157, 158, + 158, 159, 159, 159, 159, 159, 159, 160, 160, 160, + 161, 161, 162, 162, 163, 163, 164, 164 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ static const yytype_uint8 yyr2[] = { - 0, 2, 3, 1, 0, 0, 2, 8, 1, 1, - 1, 3, 0, 1, 1, 1, 1, 1, 1, 1, + 0, 2, 3, 1, 0, 0, 2, 7, 8, 10, + 1, 1, 1, 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 2, 0, 1, 3, 2, 3, 1, 3, 1, 3, - 2, 2, 0, 1, 2, 0, 1, 2, 1, 2, - 7, 5, 7, 5, 0, 0, 11, 0, 0, 12, - 7, 8, 3, 3, 3, 5, 3, 5, 3, 5, - 0, 1, 1, 2, 4, 3, 3, 3, 3, 4, - 5, 2, 0, 1, 1, 1, 1, 3, 0, 1, - 1, 3, 1, 1, 1, 3, 3, 1, 3, 3, - 1, 5, 1, 5, 1, 3, 1, 3, 1, 3, + 1, 1, 2, 0, 1, 3, 2, 3, 1, 3, + 1, 3, 2, 2, 0, 1, 2, 0, 1, 2, + 1, 2, 7, 5, 7, 5, 0, 0, 11, 0, + 0, 12, 7, 8, 3, 3, 3, 5, 3, 5, + 3, 5, 0, 1, 1, 2, 4, 3, 3, 3, + 3, 4, 5, 2, 0, 1, 1, 1, 1, 3, + 0, 1, 1, 3, 1, 1, 1, 3, 3, 1, + 3, 3, 1, 5, 1, 5, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, - 3, 3, 1, 3, 3, 1, 3, 1, 3, 3, - 1, 3, 3, 3, 1, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, - 2, 1, 1, 4, 3, 3, 2, 2, 4, 3, - 2, 3, 1, 3, 1, 1, 1, 1, 1, 3, - 2, 3, 3, 5, 2, 4, 1, 2, 0, 1, - 2, 3, 3, 5, 1, 1, 1, 0, 1, 1, + 1, 3, 3, 3, 1, 3, 3, 1, 3, 1, + 3, 3, 1, 3, 3, 3, 1, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, + 1, 1, 2, 1, 1, 4, 3, 3, 2, 2, + 4, 3, 2, 3, 1, 3, 1, 1, 1, 1, + 1, 3, 2, 3, 3, 5, 2, 4, 1, 2, + 0, 1, 2, 3, 3, 5, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1 + 1, 1, 1, 1, 1, 1, 1, 1 }; @@ -1823,1267 +1833,1279 @@ yyreduce: case 2: #line 253 "parser.y" /* yacc.c:1646 */ { program_parsed(ctx, (yyvsp[-2].source_elements)); } -#line 1833 "parser.tab.c" /* yacc.c:1646 */ +#line 1843 "parser.tab.c" /* yacc.c:1646 */ break; case 3: #line 256 "parser.y" /* yacc.c:1646 */ {} -#line 1839 "parser.tab.c" /* yacc.c:1646 */ +#line 1849 "parser.tab.c" /* yacc.c:1646 */ break; case 4: #line 257 "parser.y" /* yacc.c:1646 */ {} -#line 1845 "parser.tab.c" /* yacc.c:1646 */ +#line 1855 "parser.tab.c" /* yacc.c:1646 */ break; case 5: #line 261 "parser.y" /* yacc.c:1646 */ { (yyval.source_elements) = new_source_elements(ctx); } -#line 1851 "parser.tab.c" /* yacc.c:1646 */ +#line 1861 "parser.tab.c" /* yacc.c:1646 */ break; case 6: #line 263 "parser.y" /* yacc.c:1646 */ { (yyval.source_elements) = source_elements_add_statement((yyvsp[-1].source_elements), (yyvsp[0].statement)); } -#line 1857 "parser.tab.c" /* yacc.c:1646 */ +#line 1867 "parser.tab.c" /* yacc.c:1646 */ break; case 7: #line 268 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_function_expression(ctx, (yyvsp[-6].identifier), (yyvsp[-4].parameter_list), (yyvsp[-1].source_elements), (yyvsp[-7].srcptr), (yyvsp[0].srcptr)-(yyvsp[-7].srcptr)+1); } -#line 1863 "parser.tab.c" /* yacc.c:1646 */ + { (yyval.expr) = new_function_expression(ctx, NULL, (yyvsp[-4].parameter_list), (yyvsp[-1].source_elements), NULL, (yyvsp[-6].srcptr), (yyvsp[0].srcptr)-(yyvsp[-6].srcptr)+1); } +#line 1873 "parser.tab.c" /* yacc.c:1646 */ break; case 8: -#line 271 "parser.y" /* yacc.c:1646 */ - { (yyval.srcptr) = (yyvsp[0].srcptr); } -#line 1869 "parser.tab.c" /* yacc.c:1646 */ +#line 270 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = new_function_expression(ctx, (yyvsp[-6].identifier), (yyvsp[-4].parameter_list), (yyvsp[-1].source_elements), NULL, (yyvsp[-7].srcptr), (yyvsp[0].srcptr)-(yyvsp[-7].srcptr)+1); } +#line 1879 "parser.tab.c" /* yacc.c:1646 */ break; case 9: -#line 275 "parser.y" /* yacc.c:1646 */ - { (yyval.source_elements) = (yyvsp[0].source_elements); } -#line 1875 "parser.tab.c" /* yacc.c:1646 */ +#line 272 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = new_function_expression(ctx, (yyvsp[-6].identifier), (yyvsp[-4].parameter_list), (yyvsp[-1].source_elements), (yyvsp[-8].identifier), (yyvsp[-9].srcptr), (yyvsp[0].srcptr)-(yyvsp[-9].srcptr)+1); } +#line 1885 "parser.tab.c" /* yacc.c:1646 */ break; case 10: -#line 279 "parser.y" /* yacc.c:1646 */ - { (yyval.parameter_list) = new_parameter_list(ctx, (yyvsp[0].identifier)); } -#line 1881 "parser.tab.c" /* yacc.c:1646 */ +#line 275 "parser.y" /* yacc.c:1646 */ + { (yyval.srcptr) = (yyvsp[0].srcptr); } +#line 1891 "parser.tab.c" /* yacc.c:1646 */ break; case 11: -#line 281 "parser.y" /* yacc.c:1646 */ - { (yyval.parameter_list) = parameter_list_add(ctx, (yyvsp[-2].parameter_list), (yyvsp[0].identifier)); } -#line 1887 "parser.tab.c" /* yacc.c:1646 */ +#line 279 "parser.y" /* yacc.c:1646 */ + { (yyval.source_elements) = (yyvsp[0].source_elements); } +#line 1897 "parser.tab.c" /* yacc.c:1646 */ break; case 12: -#line 285 "parser.y" /* yacc.c:1646 */ - { (yyval.parameter_list) = NULL; } -#line 1893 "parser.tab.c" /* yacc.c:1646 */ +#line 283 "parser.y" /* yacc.c:1646 */ + { (yyval.parameter_list) = new_parameter_list(ctx, (yyvsp[0].identifier)); } +#line 1903 "parser.tab.c" /* yacc.c:1646 */ break; case 13: -#line 286 "parser.y" /* yacc.c:1646 */ - { (yyval.parameter_list) = (yyvsp[0].parameter_list); } -#line 1899 "parser.tab.c" /* yacc.c:1646 */ +#line 285 "parser.y" /* yacc.c:1646 */ + { (yyval.parameter_list) = parameter_list_add(ctx, (yyvsp[-2].parameter_list), (yyvsp[0].identifier)); } +#line 1909 "parser.tab.c" /* yacc.c:1646 */ break; case 14: -#line 290 "parser.y" /* yacc.c:1646 */ - { (yyval.statement) = (yyvsp[0].statement); } -#line 1905 "parser.tab.c" /* yacc.c:1646 */ +#line 289 "parser.y" /* yacc.c:1646 */ + { (yyval.parameter_list) = NULL; } +#line 1915 "parser.tab.c" /* yacc.c:1646 */ break; case 15: -#line 291 "parser.y" /* yacc.c:1646 */ - { (yyval.statement) = (yyvsp[0].statement); } -#line 1911 "parser.tab.c" /* yacc.c:1646 */ +#line 290 "parser.y" /* yacc.c:1646 */ + { (yyval.parameter_list) = (yyvsp[0].parameter_list); } +#line 1921 "parser.tab.c" /* yacc.c:1646 */ break; case 16: -#line 292 "parser.y" /* yacc.c:1646 */ +#line 294 "parser.y" /* yacc.c:1646 */ { (yyval.statement) = (yyvsp[0].statement); } -#line 1917 "parser.tab.c" /* yacc.c:1646 */ +#line 1927 "parser.tab.c" /* yacc.c:1646 */ break; case 17: -#line 293 "parser.y" /* yacc.c:1646 */ - { (yyval.statement) = new_expression_statement(ctx, (yyvsp[0].expr)); } -#line 1923 "parser.tab.c" /* yacc.c:1646 */ +#line 295 "parser.y" /* yacc.c:1646 */ + { (yyval.statement) = (yyvsp[0].statement); } +#line 1933 "parser.tab.c" /* yacc.c:1646 */ break; case 18: -#line 294 "parser.y" /* yacc.c:1646 */ +#line 296 "parser.y" /* yacc.c:1646 */ { (yyval.statement) = (yyvsp[0].statement); } -#line 1929 "parser.tab.c" /* yacc.c:1646 */ +#line 1939 "parser.tab.c" /* yacc.c:1646 */ break; case 19: -#line 295 "parser.y" /* yacc.c:1646 */ - { (yyval.statement) = (yyvsp[0].statement); } -#line 1935 "parser.tab.c" /* yacc.c:1646 */ +#line 297 "parser.y" /* yacc.c:1646 */ + { (yyval.statement) = new_expression_statement(ctx, (yyvsp[0].expr)); } +#line 1945 "parser.tab.c" /* yacc.c:1646 */ break; case 20: -#line 296 "parser.y" /* yacc.c:1646 */ +#line 298 "parser.y" /* yacc.c:1646 */ { (yyval.statement) = (yyvsp[0].statement); } -#line 1941 "parser.tab.c" /* yacc.c:1646 */ +#line 1951 "parser.tab.c" /* yacc.c:1646 */ break; case 21: -#line 297 "parser.y" /* yacc.c:1646 */ +#line 299 "parser.y" /* yacc.c:1646 */ { (yyval.statement) = (yyvsp[0].statement); } -#line 1947 "parser.tab.c" /* yacc.c:1646 */ +#line 1957 "parser.tab.c" /* yacc.c:1646 */ break; case 22: -#line 298 "parser.y" /* yacc.c:1646 */ +#line 300 "parser.y" /* yacc.c:1646 */ { (yyval.statement) = (yyvsp[0].statement); } -#line 1953 "parser.tab.c" /* yacc.c:1646 */ +#line 1963 "parser.tab.c" /* yacc.c:1646 */ break; case 23: -#line 299 "parser.y" /* yacc.c:1646 */ +#line 301 "parser.y" /* yacc.c:1646 */ { (yyval.statement) = (yyvsp[0].statement); } -#line 1959 "parser.tab.c" /* yacc.c:1646 */ +#line 1969 "parser.tab.c" /* yacc.c:1646 */ break; case 24: -#line 300 "parser.y" /* yacc.c:1646 */ +#line 302 "parser.y" /* yacc.c:1646 */ { (yyval.statement) = (yyvsp[0].statement); } -#line 1965 "parser.tab.c" /* yacc.c:1646 */ +#line 1975 "parser.tab.c" /* yacc.c:1646 */ break; case 25: -#line 301 "parser.y" /* yacc.c:1646 */ +#line 303 "parser.y" /* yacc.c:1646 */ { (yyval.statement) = (yyvsp[0].statement); } -#line 1971 "parser.tab.c" /* yacc.c:1646 */ +#line 1981 "parser.tab.c" /* yacc.c:1646 */ break; case 26: -#line 302 "parser.y" /* yacc.c:1646 */ +#line 304 "parser.y" /* yacc.c:1646 */ { (yyval.statement) = (yyvsp[0].statement); } -#line 1977 "parser.tab.c" /* yacc.c:1646 */ +#line 1987 "parser.tab.c" /* yacc.c:1646 */ break; case 27: -#line 303 "parser.y" /* yacc.c:1646 */ +#line 305 "parser.y" /* yacc.c:1646 */ { (yyval.statement) = (yyvsp[0].statement); } -#line 1983 "parser.tab.c" /* yacc.c:1646 */ +#line 1993 "parser.tab.c" /* yacc.c:1646 */ break; case 28: -#line 304 "parser.y" /* yacc.c:1646 */ +#line 306 "parser.y" /* yacc.c:1646 */ { (yyval.statement) = (yyvsp[0].statement); } -#line 1989 "parser.tab.c" /* yacc.c:1646 */ +#line 1999 "parser.tab.c" /* yacc.c:1646 */ break; case 29: -#line 308 "parser.y" /* yacc.c:1646 */ - { (yyval.statement_list) = new_statement_list(ctx, (yyvsp[0].statement)); } -#line 1995 "parser.tab.c" /* yacc.c:1646 */ +#line 307 "parser.y" /* yacc.c:1646 */ + { (yyval.statement) = (yyvsp[0].statement); } +#line 2005 "parser.tab.c" /* yacc.c:1646 */ break; case 30: -#line 310 "parser.y" /* yacc.c:1646 */ - { (yyval.statement_list) = statement_list_add((yyvsp[-1].statement_list), (yyvsp[0].statement)); } -#line 2001 "parser.tab.c" /* yacc.c:1646 */ +#line 308 "parser.y" /* yacc.c:1646 */ + { (yyval.statement) = (yyvsp[0].statement); } +#line 2011 "parser.tab.c" /* yacc.c:1646 */ break; case 31: -#line 314 "parser.y" /* yacc.c:1646 */ - { (yyval.statement_list) = NULL; } -#line 2007 "parser.tab.c" /* yacc.c:1646 */ +#line 312 "parser.y" /* yacc.c:1646 */ + { (yyval.statement_list) = new_statement_list(ctx, (yyvsp[0].statement)); } +#line 2017 "parser.tab.c" /* yacc.c:1646 */ break; case 32: -#line 315 "parser.y" /* yacc.c:1646 */ - { (yyval.statement_list) = (yyvsp[0].statement_list); } -#line 2013 "parser.tab.c" /* yacc.c:1646 */ +#line 314 "parser.y" /* yacc.c:1646 */ + { (yyval.statement_list) = statement_list_add((yyvsp[-1].statement_list), (yyvsp[0].statement)); } +#line 2023 "parser.tab.c" /* yacc.c:1646 */ break; case 33: -#line 319 "parser.y" /* yacc.c:1646 */ - { (yyval.statement) = new_block_statement(ctx, (yyvsp[-1].statement_list)); } -#line 2019 "parser.tab.c" /* yacc.c:1646 */ +#line 318 "parser.y" /* yacc.c:1646 */ + { (yyval.statement_list) = NULL; } +#line 2029 "parser.tab.c" /* yacc.c:1646 */ break; case 34: -#line 320 "parser.y" /* yacc.c:1646 */ - { (yyval.statement) = new_block_statement(ctx, NULL); } -#line 2025 "parser.tab.c" /* yacc.c:1646 */ +#line 319 "parser.y" /* yacc.c:1646 */ + { (yyval.statement_list) = (yyvsp[0].statement_list); } +#line 2035 "parser.tab.c" /* yacc.c:1646 */ break; case 35: -#line 325 "parser.y" /* yacc.c:1646 */ - { (yyval.statement) = new_var_statement(ctx, (yyvsp[-1].variable_list)); } -#line 2031 "parser.tab.c" /* yacc.c:1646 */ +#line 323 "parser.y" /* yacc.c:1646 */ + { (yyval.statement) = new_block_statement(ctx, (yyvsp[-1].statement_list)); } +#line 2041 "parser.tab.c" /* yacc.c:1646 */ break; case 36: -#line 329 "parser.y" /* yacc.c:1646 */ - { (yyval.variable_list) = new_variable_list(ctx, (yyvsp[0].variable_declaration)); } -#line 2037 "parser.tab.c" /* yacc.c:1646 */ +#line 324 "parser.y" /* yacc.c:1646 */ + { (yyval.statement) = new_block_statement(ctx, NULL); } +#line 2047 "parser.tab.c" /* yacc.c:1646 */ break; case 37: -#line 331 "parser.y" /* yacc.c:1646 */ - { (yyval.variable_list) = variable_list_add(ctx, (yyvsp[-2].variable_list), (yyvsp[0].variable_declaration)); } -#line 2043 "parser.tab.c" /* yacc.c:1646 */ +#line 329 "parser.y" /* yacc.c:1646 */ + { (yyval.statement) = new_var_statement(ctx, (yyvsp[-1].variable_list)); } +#line 2053 "parser.tab.c" /* yacc.c:1646 */ break; case 38: -#line 336 "parser.y" /* yacc.c:1646 */ +#line 333 "parser.y" /* yacc.c:1646 */ { (yyval.variable_list) = new_variable_list(ctx, (yyvsp[0].variable_declaration)); } -#line 2049 "parser.tab.c" /* yacc.c:1646 */ +#line 2059 "parser.tab.c" /* yacc.c:1646 */ break; case 39: -#line 338 "parser.y" /* yacc.c:1646 */ +#line 335 "parser.y" /* yacc.c:1646 */ { (yyval.variable_list) = variable_list_add(ctx, (yyvsp[-2].variable_list), (yyvsp[0].variable_declaration)); } -#line 2055 "parser.tab.c" /* yacc.c:1646 */ +#line 2065 "parser.tab.c" /* yacc.c:1646 */ break; case 40: -#line 343 "parser.y" /* yacc.c:1646 */ - { (yyval.variable_declaration) = new_variable_declaration(ctx, (yyvsp[-1].identifier), (yyvsp[0].expr)); } -#line 2061 "parser.tab.c" /* yacc.c:1646 */ +#line 340 "parser.y" /* yacc.c:1646 */ + { (yyval.variable_list) = new_variable_list(ctx, (yyvsp[0].variable_declaration)); } +#line 2071 "parser.tab.c" /* yacc.c:1646 */ break; case 41: -#line 348 "parser.y" /* yacc.c:1646 */ - { (yyval.variable_declaration) = new_variable_declaration(ctx, (yyvsp[-1].identifier), (yyvsp[0].expr)); } -#line 2067 "parser.tab.c" /* yacc.c:1646 */ +#line 342 "parser.y" /* yacc.c:1646 */ + { (yyval.variable_list) = variable_list_add(ctx, (yyvsp[-2].variable_list), (yyvsp[0].variable_declaration)); } +#line 2077 "parser.tab.c" /* yacc.c:1646 */ break; case 42: -#line 352 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = NULL; } -#line 2073 "parser.tab.c" /* yacc.c:1646 */ +#line 347 "parser.y" /* yacc.c:1646 */ + { (yyval.variable_declaration) = new_variable_declaration(ctx, (yyvsp[-1].identifier), (yyvsp[0].expr)); } +#line 2083 "parser.tab.c" /* yacc.c:1646 */ break; case 43: -#line 353 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = (yyvsp[0].expr); } -#line 2079 "parser.tab.c" /* yacc.c:1646 */ +#line 352 "parser.y" /* yacc.c:1646 */ + { (yyval.variable_declaration) = new_variable_declaration(ctx, (yyvsp[-1].identifier), (yyvsp[0].expr)); } +#line 2089 "parser.tab.c" /* yacc.c:1646 */ break; case 44: -#line 358 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = (yyvsp[0].expr); } -#line 2085 "parser.tab.c" /* yacc.c:1646 */ +#line 356 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = NULL; } +#line 2095 "parser.tab.c" /* yacc.c:1646 */ break; case 45: -#line 362 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = NULL; } -#line 2091 "parser.tab.c" /* yacc.c:1646 */ +#line 357 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = (yyvsp[0].expr); } +#line 2101 "parser.tab.c" /* yacc.c:1646 */ break; case 46: -#line 363 "parser.y" /* yacc.c:1646 */ +#line 362 "parser.y" /* yacc.c:1646 */ { (yyval.expr) = (yyvsp[0].expr); } -#line 2097 "parser.tab.c" /* yacc.c:1646 */ +#line 2107 "parser.tab.c" /* yacc.c:1646 */ break; case 47: -#line 368 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = (yyvsp[0].expr); } -#line 2103 "parser.tab.c" /* yacc.c:1646 */ +#line 366 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = NULL; } +#line 2113 "parser.tab.c" /* yacc.c:1646 */ break; case 48: -#line 372 "parser.y" /* yacc.c:1646 */ - { (yyval.statement) = new_statement(ctx, STAT_EMPTY, 0); } -#line 2109 "parser.tab.c" /* yacc.c:1646 */ +#line 367 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = (yyvsp[0].expr); } +#line 2119 "parser.tab.c" /* yacc.c:1646 */ break; case 49: -#line 377 "parser.y" /* yacc.c:1646 */ - { (yyval.statement) = new_expression_statement(ctx, (yyvsp[-1].expr)); } -#line 2115 "parser.tab.c" /* yacc.c:1646 */ +#line 372 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = (yyvsp[0].expr); } +#line 2125 "parser.tab.c" /* yacc.c:1646 */ break; case 50: -#line 382 "parser.y" /* yacc.c:1646 */ - { (yyval.statement) = new_if_statement(ctx, (yyvsp[-4].expr), (yyvsp[-2].statement), (yyvsp[0].statement)); } -#line 2121 "parser.tab.c" /* yacc.c:1646 */ +#line 376 "parser.y" /* yacc.c:1646 */ + { (yyval.statement) = new_statement(ctx, STAT_EMPTY, 0); } +#line 2131 "parser.tab.c" /* yacc.c:1646 */ break; case 51: -#line 384 "parser.y" /* yacc.c:1646 */ - { (yyval.statement) = new_if_statement(ctx, (yyvsp[-2].expr), (yyvsp[0].statement), NULL); } -#line 2127 "parser.tab.c" /* yacc.c:1646 */ +#line 381 "parser.y" /* yacc.c:1646 */ + { (yyval.statement) = new_expression_statement(ctx, (yyvsp[-1].expr)); } +#line 2137 "parser.tab.c" /* yacc.c:1646 */ break; case 52: -#line 389 "parser.y" /* yacc.c:1646 */ - { (yyval.statement) = new_while_statement(ctx, TRUE, (yyvsp[-2].expr), (yyvsp[-5].statement)); } -#line 2133 "parser.tab.c" /* yacc.c:1646 */ +#line 386 "parser.y" /* yacc.c:1646 */ + { (yyval.statement) = new_if_statement(ctx, (yyvsp[-4].expr), (yyvsp[-2].statement), (yyvsp[0].statement)); } +#line 2143 "parser.tab.c" /* yacc.c:1646 */ break; case 53: -#line 391 "parser.y" /* yacc.c:1646 */ - { (yyval.statement) = new_while_statement(ctx, FALSE, (yyvsp[-2].expr), (yyvsp[0].statement)); } -#line 2139 "parser.tab.c" /* yacc.c:1646 */ +#line 388 "parser.y" /* yacc.c:1646 */ + { (yyval.statement) = new_if_statement(ctx, (yyvsp[-2].expr), (yyvsp[0].statement), NULL); } +#line 2149 "parser.tab.c" /* yacc.c:1646 */ break; case 54: #line 393 "parser.y" /* yacc.c:1646 */ - { if(!explicit_error(ctx, (yyvsp[0].expr), ';')) YYABORT; } -#line 2145 "parser.tab.c" /* yacc.c:1646 */ + { (yyval.statement) = new_while_statement(ctx, TRUE, (yyvsp[-2].expr), (yyvsp[-5].statement)); } +#line 2155 "parser.tab.c" /* yacc.c:1646 */ break; case 55: #line 395 "parser.y" /* yacc.c:1646 */ - { if(!explicit_error(ctx, (yyvsp[0].expr), ';')) YYABORT; } -#line 2151 "parser.tab.c" /* yacc.c:1646 */ + { (yyval.statement) = new_while_statement(ctx, FALSE, (yyvsp[-2].expr), (yyvsp[0].statement)); } +#line 2161 "parser.tab.c" /* yacc.c:1646 */ break; case 56: #line 397 "parser.y" /* yacc.c:1646 */ - { (yyval.statement) = new_for_statement(ctx, NULL, (yyvsp[-8].expr), (yyvsp[-5].expr), (yyvsp[-2].expr), (yyvsp[0].statement)); } -#line 2157 "parser.tab.c" /* yacc.c:1646 */ + { if(!explicit_error(ctx, (yyvsp[0].expr), ';')) YYABORT; } +#line 2167 "parser.tab.c" /* yacc.c:1646 */ break; case 57: #line 399 "parser.y" /* yacc.c:1646 */ - { if(!explicit_error(ctx, (yyvsp[0].variable_list), ';')) YYABORT; } -#line 2163 "parser.tab.c" /* yacc.c:1646 */ + { if(!explicit_error(ctx, (yyvsp[0].expr), ';')) YYABORT; } +#line 2173 "parser.tab.c" /* yacc.c:1646 */ break; case 58: #line 401 "parser.y" /* yacc.c:1646 */ - { if(!explicit_error(ctx, (yyvsp[0].expr), ';')) YYABORT; } -#line 2169 "parser.tab.c" /* yacc.c:1646 */ + { (yyval.statement) = new_for_statement(ctx, NULL, (yyvsp[-8].expr), (yyvsp[-5].expr), (yyvsp[-2].expr), (yyvsp[0].statement)); } +#line 2179 "parser.tab.c" /* yacc.c:1646 */ break; case 59: #line 403 "parser.y" /* yacc.c:1646 */ - { (yyval.statement) = new_for_statement(ctx, (yyvsp[-8].variable_list), NULL, (yyvsp[-5].expr), (yyvsp[-2].expr), (yyvsp[0].statement)); } -#line 2175 "parser.tab.c" /* yacc.c:1646 */ + { if(!explicit_error(ctx, (yyvsp[0].variable_list), ';')) YYABORT; } +#line 2185 "parser.tab.c" /* yacc.c:1646 */ break; case 60: #line 405 "parser.y" /* yacc.c:1646 */ - { (yyval.statement) = new_forin_statement(ctx, NULL, (yyvsp[-4].expr), (yyvsp[-2].expr), (yyvsp[0].statement)); } -#line 2181 "parser.tab.c" /* yacc.c:1646 */ + { if(!explicit_error(ctx, (yyvsp[0].expr), ';')) YYABORT; } +#line 2191 "parser.tab.c" /* yacc.c:1646 */ break; case 61: #line 407 "parser.y" /* yacc.c:1646 */ - { (yyval.statement) = new_forin_statement(ctx, (yyvsp[-4].variable_declaration), NULL, (yyvsp[-2].expr), (yyvsp[0].statement)); } -#line 2187 "parser.tab.c" /* yacc.c:1646 */ + { (yyval.statement) = new_for_statement(ctx, (yyvsp[-8].variable_list), NULL, (yyvsp[-5].expr), (yyvsp[-2].expr), (yyvsp[0].statement)); } +#line 2197 "parser.tab.c" /* yacc.c:1646 */ break; case 62: -#line 412 "parser.y" /* yacc.c:1646 */ - { (yyval.statement) = new_continue_statement(ctx, (yyvsp[-1].identifier)); } -#line 2193 "parser.tab.c" /* yacc.c:1646 */ +#line 409 "parser.y" /* yacc.c:1646 */ + { (yyval.statement) = new_forin_statement(ctx, NULL, (yyvsp[-4].expr), (yyvsp[-2].expr), (yyvsp[0].statement)); } +#line 2203 "parser.tab.c" /* yacc.c:1646 */ break; case 63: -#line 417 "parser.y" /* yacc.c:1646 */ - { (yyval.statement) = new_break_statement(ctx, (yyvsp[-1].identifier)); } -#line 2199 "parser.tab.c" /* yacc.c:1646 */ +#line 411 "parser.y" /* yacc.c:1646 */ + { (yyval.statement) = new_forin_statement(ctx, (yyvsp[-4].variable_declaration), NULL, (yyvsp[-2].expr), (yyvsp[0].statement)); } +#line 2209 "parser.tab.c" /* yacc.c:1646 */ break; case 64: -#line 422 "parser.y" /* yacc.c:1646 */ - { (yyval.statement) = new_return_statement(ctx, (yyvsp[-1].expr)); } -#line 2205 "parser.tab.c" /* yacc.c:1646 */ +#line 416 "parser.y" /* yacc.c:1646 */ + { (yyval.statement) = new_continue_statement(ctx, (yyvsp[-1].identifier)); } +#line 2215 "parser.tab.c" /* yacc.c:1646 */ break; case 65: -#line 427 "parser.y" /* yacc.c:1646 */ - { (yyval.statement) = new_with_statement(ctx, (yyvsp[-2].expr), (yyvsp[0].statement)); } -#line 2211 "parser.tab.c" /* yacc.c:1646 */ +#line 421 "parser.y" /* yacc.c:1646 */ + { (yyval.statement) = new_break_statement(ctx, (yyvsp[-1].identifier)); } +#line 2221 "parser.tab.c" /* yacc.c:1646 */ break; case 66: -#line 432 "parser.y" /* yacc.c:1646 */ - { (yyval.statement) = new_labelled_statement(ctx, (yyvsp[-2].identifier), (yyvsp[0].statement)); } -#line 2217 "parser.tab.c" /* yacc.c:1646 */ +#line 426 "parser.y" /* yacc.c:1646 */ + { (yyval.statement) = new_return_statement(ctx, (yyvsp[-1].expr)); } +#line 2227 "parser.tab.c" /* yacc.c:1646 */ break; case 67: -#line 437 "parser.y" /* yacc.c:1646 */ - { (yyval.statement) = new_switch_statement(ctx, (yyvsp[-2].expr), (yyvsp[0].case_clausule)); } -#line 2223 "parser.tab.c" /* yacc.c:1646 */ +#line 431 "parser.y" /* yacc.c:1646 */ + { (yyval.statement) = new_with_statement(ctx, (yyvsp[-2].expr), (yyvsp[0].statement)); } +#line 2233 "parser.tab.c" /* yacc.c:1646 */ break; case 68: -#line 442 "parser.y" /* yacc.c:1646 */ - { (yyval.case_clausule) = new_case_block(ctx, (yyvsp[-1].case_list), NULL, NULL); } -#line 2229 "parser.tab.c" /* yacc.c:1646 */ +#line 436 "parser.y" /* yacc.c:1646 */ + { (yyval.statement) = new_labelled_statement(ctx, (yyvsp[-2].identifier), (yyvsp[0].statement)); } +#line 2239 "parser.tab.c" /* yacc.c:1646 */ break; case 69: -#line 444 "parser.y" /* yacc.c:1646 */ - { (yyval.case_clausule) = new_case_block(ctx, (yyvsp[-3].case_list), (yyvsp[-2].case_clausule), (yyvsp[-1].case_list)); } -#line 2235 "parser.tab.c" /* yacc.c:1646 */ +#line 441 "parser.y" /* yacc.c:1646 */ + { (yyval.statement) = new_switch_statement(ctx, (yyvsp[-2].expr), (yyvsp[0].case_clausule)); } +#line 2245 "parser.tab.c" /* yacc.c:1646 */ break; case 70: -#line 448 "parser.y" /* yacc.c:1646 */ - { (yyval.case_list) = NULL; } -#line 2241 "parser.tab.c" /* yacc.c:1646 */ +#line 446 "parser.y" /* yacc.c:1646 */ + { (yyval.case_clausule) = new_case_block(ctx, (yyvsp[-1].case_list), NULL, NULL); } +#line 2251 "parser.tab.c" /* yacc.c:1646 */ break; case 71: -#line 449 "parser.y" /* yacc.c:1646 */ - { (yyval.case_list) = (yyvsp[0].case_list); } -#line 2247 "parser.tab.c" /* yacc.c:1646 */ +#line 448 "parser.y" /* yacc.c:1646 */ + { (yyval.case_clausule) = new_case_block(ctx, (yyvsp[-3].case_list), (yyvsp[-2].case_clausule), (yyvsp[-1].case_list)); } +#line 2257 "parser.tab.c" /* yacc.c:1646 */ break; case 72: -#line 453 "parser.y" /* yacc.c:1646 */ - { (yyval.case_list) = new_case_list(ctx, (yyvsp[0].case_clausule)); } -#line 2253 "parser.tab.c" /* yacc.c:1646 */ +#line 452 "parser.y" /* yacc.c:1646 */ + { (yyval.case_list) = NULL; } +#line 2263 "parser.tab.c" /* yacc.c:1646 */ break; case 73: -#line 455 "parser.y" /* yacc.c:1646 */ - { (yyval.case_list) = case_list_add(ctx, (yyvsp[-1].case_list), (yyvsp[0].case_clausule)); } -#line 2259 "parser.tab.c" /* yacc.c:1646 */ +#line 453 "parser.y" /* yacc.c:1646 */ + { (yyval.case_list) = (yyvsp[0].case_list); } +#line 2269 "parser.tab.c" /* yacc.c:1646 */ break; case 74: -#line 460 "parser.y" /* yacc.c:1646 */ - { (yyval.case_clausule) = new_case_clausule(ctx, (yyvsp[-2].expr), (yyvsp[0].statement_list)); } -#line 2265 "parser.tab.c" /* yacc.c:1646 */ +#line 457 "parser.y" /* yacc.c:1646 */ + { (yyval.case_list) = new_case_list(ctx, (yyvsp[0].case_clausule)); } +#line 2275 "parser.tab.c" /* yacc.c:1646 */ break; case 75: -#line 465 "parser.y" /* yacc.c:1646 */ - { (yyval.case_clausule) = new_case_clausule(ctx, NULL, (yyvsp[0].statement_list)); } -#line 2271 "parser.tab.c" /* yacc.c:1646 */ +#line 459 "parser.y" /* yacc.c:1646 */ + { (yyval.case_list) = case_list_add(ctx, (yyvsp[-1].case_list), (yyvsp[0].case_clausule)); } +#line 2281 "parser.tab.c" /* yacc.c:1646 */ break; case 76: -#line 470 "parser.y" /* yacc.c:1646 */ - { (yyval.statement) = new_throw_statement(ctx, (yyvsp[-1].expr)); } -#line 2277 "parser.tab.c" /* yacc.c:1646 */ +#line 464 "parser.y" /* yacc.c:1646 */ + { (yyval.case_clausule) = new_case_clausule(ctx, (yyvsp[-2].expr), (yyvsp[0].statement_list)); } +#line 2287 "parser.tab.c" /* yacc.c:1646 */ break; case 77: -#line 474 "parser.y" /* yacc.c:1646 */ - { (yyval.statement) = new_try_statement(ctx, (yyvsp[-1].statement), (yyvsp[0].catch_block), NULL); } -#line 2283 "parser.tab.c" /* yacc.c:1646 */ +#line 469 "parser.y" /* yacc.c:1646 */ + { (yyval.case_clausule) = new_case_clausule(ctx, NULL, (yyvsp[0].statement_list)); } +#line 2293 "parser.tab.c" /* yacc.c:1646 */ break; case 78: -#line 475 "parser.y" /* yacc.c:1646 */ - { (yyval.statement) = new_try_statement(ctx, (yyvsp[-1].statement), NULL, (yyvsp[0].statement)); } -#line 2289 "parser.tab.c" /* yacc.c:1646 */ +#line 474 "parser.y" /* yacc.c:1646 */ + { (yyval.statement) = new_throw_statement(ctx, (yyvsp[-1].expr)); } +#line 2299 "parser.tab.c" /* yacc.c:1646 */ break; case 79: -#line 477 "parser.y" /* yacc.c:1646 */ - { (yyval.statement) = new_try_statement(ctx, (yyvsp[-2].statement), (yyvsp[-1].catch_block), (yyvsp[0].statement)); } -#line 2295 "parser.tab.c" /* yacc.c:1646 */ +#line 478 "parser.y" /* yacc.c:1646 */ + { (yyval.statement) = new_try_statement(ctx, (yyvsp[-1].statement), (yyvsp[0].catch_block), NULL); } +#line 2305 "parser.tab.c" /* yacc.c:1646 */ break; case 80: -#line 482 "parser.y" /* yacc.c:1646 */ - { (yyval.catch_block) = new_catch_block(ctx, (yyvsp[-2].identifier), (yyvsp[0].statement)); } -#line 2301 "parser.tab.c" /* yacc.c:1646 */ +#line 479 "parser.y" /* yacc.c:1646 */ + { (yyval.statement) = new_try_statement(ctx, (yyvsp[-1].statement), NULL, (yyvsp[0].statement)); } +#line 2311 "parser.tab.c" /* yacc.c:1646 */ break; case 81: -#line 486 "parser.y" /* yacc.c:1646 */ - { (yyval.statement) = (yyvsp[0].statement); } -#line 2307 "parser.tab.c" /* yacc.c:1646 */ +#line 481 "parser.y" /* yacc.c:1646 */ + { (yyval.statement) = new_try_statement(ctx, (yyvsp[-2].statement), (yyvsp[-1].catch_block), (yyvsp[0].statement)); } +#line 2317 "parser.tab.c" /* yacc.c:1646 */ break; case 82: -#line 490 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = NULL; } -#line 2313 "parser.tab.c" /* yacc.c:1646 */ +#line 486 "parser.y" /* yacc.c:1646 */ + { (yyval.catch_block) = new_catch_block(ctx, (yyvsp[-2].identifier), (yyvsp[0].statement)); } +#line 2323 "parser.tab.c" /* yacc.c:1646 */ break; case 83: -#line 491 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = (yyvsp[0].expr); } -#line 2319 "parser.tab.c" /* yacc.c:1646 */ +#line 490 "parser.y" /* yacc.c:1646 */ + { (yyval.statement) = (yyvsp[0].statement); } +#line 2329 "parser.tab.c" /* yacc.c:1646 */ break; case 84: #line 494 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = (yyvsp[0].expr); } -#line 2325 "parser.tab.c" /* yacc.c:1646 */ + { (yyval.expr) = NULL; } +#line 2335 "parser.tab.c" /* yacc.c:1646 */ break; case 85: #line 495 "parser.y" /* yacc.c:1646 */ - { set_error(ctx, JS_E_SYNTAX); YYABORT; } -#line 2331 "parser.tab.c" /* yacc.c:1646 */ + { (yyval.expr) = (yyvsp[0].expr); } +#line 2341 "parser.tab.c" /* yacc.c:1646 */ break; case 86: -#line 499 "parser.y" /* yacc.c:1646 */ +#line 498 "parser.y" /* yacc.c:1646 */ { (yyval.expr) = (yyvsp[0].expr); } -#line 2337 "parser.tab.c" /* yacc.c:1646 */ +#line 2347 "parser.tab.c" /* yacc.c:1646 */ break; case 87: -#line 501 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_binary_expression(ctx, EXPR_COMMA, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 2343 "parser.tab.c" /* yacc.c:1646 */ +#line 499 "parser.y" /* yacc.c:1646 */ + { set_error(ctx, JS_E_SYNTAX); YYABORT; } +#line 2353 "parser.tab.c" /* yacc.c:1646 */ break; case 88: -#line 505 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = NULL; } -#line 2349 "parser.tab.c" /* yacc.c:1646 */ +#line 503 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = (yyvsp[0].expr); } +#line 2359 "parser.tab.c" /* yacc.c:1646 */ break; case 89: -#line 506 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = (yyvsp[0].expr); } -#line 2355 "parser.tab.c" /* yacc.c:1646 */ +#line 505 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = new_binary_expression(ctx, EXPR_COMMA, (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 2365 "parser.tab.c" /* yacc.c:1646 */ break; case 90: -#line 511 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = (yyvsp[0].expr); } -#line 2361 "parser.tab.c" /* yacc.c:1646 */ +#line 509 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = NULL; } +#line 2371 "parser.tab.c" /* yacc.c:1646 */ break; case 91: -#line 513 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_binary_expression(ctx, EXPR_COMMA, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 2367 "parser.tab.c" /* yacc.c:1646 */ +#line 510 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = (yyvsp[0].expr); } +#line 2377 "parser.tab.c" /* yacc.c:1646 */ break; case 92: -#line 516 "parser.y" /* yacc.c:1646 */ - { (yyval.ival) = (yyvsp[0].ival); } -#line 2373 "parser.tab.c" /* yacc.c:1646 */ +#line 515 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = (yyvsp[0].expr); } +#line 2383 "parser.tab.c" /* yacc.c:1646 */ break; case 93: #line 517 "parser.y" /* yacc.c:1646 */ - { (yyval.ival) = EXPR_ASSIGNDIV; } -#line 2379 "parser.tab.c" /* yacc.c:1646 */ + { (yyval.expr) = new_binary_expression(ctx, EXPR_COMMA, (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 2389 "parser.tab.c" /* yacc.c:1646 */ break; case 94: -#line 521 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = (yyvsp[0].expr); } -#line 2385 "parser.tab.c" /* yacc.c:1646 */ +#line 520 "parser.y" /* yacc.c:1646 */ + { (yyval.ival) = (yyvsp[0].ival); } +#line 2395 "parser.tab.c" /* yacc.c:1646 */ break; case 95: -#line 523 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_binary_expression(ctx, EXPR_ASSIGN, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 2391 "parser.tab.c" /* yacc.c:1646 */ +#line 521 "parser.y" /* yacc.c:1646 */ + { (yyval.ival) = EXPR_ASSIGNDIV; } +#line 2401 "parser.tab.c" /* yacc.c:1646 */ break; case 96: #line 525 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_binary_expression(ctx, (yyvsp[-1].ival), (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 2397 "parser.tab.c" /* yacc.c:1646 */ + { (yyval.expr) = (yyvsp[0].expr); } +#line 2407 "parser.tab.c" /* yacc.c:1646 */ break; case 97: -#line 530 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = (yyvsp[0].expr); } -#line 2403 "parser.tab.c" /* yacc.c:1646 */ +#line 527 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = new_binary_expression(ctx, EXPR_ASSIGN, (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 2413 "parser.tab.c" /* yacc.c:1646 */ break; case 98: -#line 532 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_binary_expression(ctx, EXPR_ASSIGN, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 2409 "parser.tab.c" /* yacc.c:1646 */ +#line 529 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = new_binary_expression(ctx, (yyvsp[-1].ival), (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 2419 "parser.tab.c" /* yacc.c:1646 */ break; case 99: #line 534 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_binary_expression(ctx, (yyvsp[-1].ival), (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 2415 "parser.tab.c" /* yacc.c:1646 */ + { (yyval.expr) = (yyvsp[0].expr); } +#line 2425 "parser.tab.c" /* yacc.c:1646 */ break; case 100: -#line 538 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = (yyvsp[0].expr); } -#line 2421 "parser.tab.c" /* yacc.c:1646 */ +#line 536 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = new_binary_expression(ctx, EXPR_ASSIGN, (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 2431 "parser.tab.c" /* yacc.c:1646 */ break; case 101: -#line 540 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_conditional_expression(ctx, (yyvsp[-4].expr), (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 2427 "parser.tab.c" /* yacc.c:1646 */ +#line 538 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = new_binary_expression(ctx, (yyvsp[-1].ival), (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 2437 "parser.tab.c" /* yacc.c:1646 */ break; case 102: -#line 545 "parser.y" /* yacc.c:1646 */ +#line 542 "parser.y" /* yacc.c:1646 */ { (yyval.expr) = (yyvsp[0].expr); } -#line 2433 "parser.tab.c" /* yacc.c:1646 */ +#line 2443 "parser.tab.c" /* yacc.c:1646 */ break; case 103: -#line 547 "parser.y" /* yacc.c:1646 */ +#line 544 "parser.y" /* yacc.c:1646 */ { (yyval.expr) = new_conditional_expression(ctx, (yyvsp[-4].expr), (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 2439 "parser.tab.c" /* yacc.c:1646 */ +#line 2449 "parser.tab.c" /* yacc.c:1646 */ break; case 104: -#line 551 "parser.y" /* yacc.c:1646 */ +#line 549 "parser.y" /* yacc.c:1646 */ { (yyval.expr) = (yyvsp[0].expr); } -#line 2445 "parser.tab.c" /* yacc.c:1646 */ +#line 2455 "parser.tab.c" /* yacc.c:1646 */ break; case 105: -#line 553 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_binary_expression(ctx, EXPR_OR, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 2451 "parser.tab.c" /* yacc.c:1646 */ +#line 551 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = new_conditional_expression(ctx, (yyvsp[-4].expr), (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 2461 "parser.tab.c" /* yacc.c:1646 */ break; case 106: -#line 558 "parser.y" /* yacc.c:1646 */ +#line 555 "parser.y" /* yacc.c:1646 */ { (yyval.expr) = (yyvsp[0].expr); } -#line 2457 "parser.tab.c" /* yacc.c:1646 */ +#line 2467 "parser.tab.c" /* yacc.c:1646 */ break; case 107: -#line 560 "parser.y" /* yacc.c:1646 */ +#line 557 "parser.y" /* yacc.c:1646 */ { (yyval.expr) = new_binary_expression(ctx, EXPR_OR, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 2463 "parser.tab.c" /* yacc.c:1646 */ +#line 2473 "parser.tab.c" /* yacc.c:1646 */ break; case 108: -#line 564 "parser.y" /* yacc.c:1646 */ +#line 562 "parser.y" /* yacc.c:1646 */ { (yyval.expr) = (yyvsp[0].expr); } -#line 2469 "parser.tab.c" /* yacc.c:1646 */ +#line 2479 "parser.tab.c" /* yacc.c:1646 */ break; case 109: -#line 566 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_binary_expression(ctx, EXPR_AND, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 2475 "parser.tab.c" /* yacc.c:1646 */ +#line 564 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = new_binary_expression(ctx, EXPR_OR, (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 2485 "parser.tab.c" /* yacc.c:1646 */ break; case 110: -#line 571 "parser.y" /* yacc.c:1646 */ +#line 568 "parser.y" /* yacc.c:1646 */ { (yyval.expr) = (yyvsp[0].expr); } -#line 2481 "parser.tab.c" /* yacc.c:1646 */ +#line 2491 "parser.tab.c" /* yacc.c:1646 */ break; case 111: -#line 573 "parser.y" /* yacc.c:1646 */ +#line 570 "parser.y" /* yacc.c:1646 */ { (yyval.expr) = new_binary_expression(ctx, EXPR_AND, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 2487 "parser.tab.c" /* yacc.c:1646 */ +#line 2497 "parser.tab.c" /* yacc.c:1646 */ break; case 112: -#line 577 "parser.y" /* yacc.c:1646 */ +#line 575 "parser.y" /* yacc.c:1646 */ { (yyval.expr) = (yyvsp[0].expr); } -#line 2493 "parser.tab.c" /* yacc.c:1646 */ +#line 2503 "parser.tab.c" /* yacc.c:1646 */ break; case 113: -#line 579 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_binary_expression(ctx, EXPR_BOR, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 2499 "parser.tab.c" /* yacc.c:1646 */ +#line 577 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = new_binary_expression(ctx, EXPR_AND, (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 2509 "parser.tab.c" /* yacc.c:1646 */ break; case 114: -#line 584 "parser.y" /* yacc.c:1646 */ +#line 581 "parser.y" /* yacc.c:1646 */ { (yyval.expr) = (yyvsp[0].expr); } -#line 2505 "parser.tab.c" /* yacc.c:1646 */ +#line 2515 "parser.tab.c" /* yacc.c:1646 */ break; case 115: -#line 586 "parser.y" /* yacc.c:1646 */ +#line 583 "parser.y" /* yacc.c:1646 */ { (yyval.expr) = new_binary_expression(ctx, EXPR_BOR, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 2511 "parser.tab.c" /* yacc.c:1646 */ +#line 2521 "parser.tab.c" /* yacc.c:1646 */ break; case 116: -#line 590 "parser.y" /* yacc.c:1646 */ +#line 588 "parser.y" /* yacc.c:1646 */ { (yyval.expr) = (yyvsp[0].expr); } -#line 2517 "parser.tab.c" /* yacc.c:1646 */ +#line 2527 "parser.tab.c" /* yacc.c:1646 */ break; case 117: -#line 592 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_binary_expression(ctx, EXPR_BXOR, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 2523 "parser.tab.c" /* yacc.c:1646 */ +#line 590 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = new_binary_expression(ctx, EXPR_BOR, (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 2533 "parser.tab.c" /* yacc.c:1646 */ break; case 118: -#line 597 "parser.y" /* yacc.c:1646 */ +#line 594 "parser.y" /* yacc.c:1646 */ { (yyval.expr) = (yyvsp[0].expr); } -#line 2529 "parser.tab.c" /* yacc.c:1646 */ +#line 2539 "parser.tab.c" /* yacc.c:1646 */ break; case 119: -#line 599 "parser.y" /* yacc.c:1646 */ +#line 596 "parser.y" /* yacc.c:1646 */ { (yyval.expr) = new_binary_expression(ctx, EXPR_BXOR, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 2535 "parser.tab.c" /* yacc.c:1646 */ +#line 2545 "parser.tab.c" /* yacc.c:1646 */ break; case 120: -#line 603 "parser.y" /* yacc.c:1646 */ +#line 601 "parser.y" /* yacc.c:1646 */ { (yyval.expr) = (yyvsp[0].expr); } -#line 2541 "parser.tab.c" /* yacc.c:1646 */ +#line 2551 "parser.tab.c" /* yacc.c:1646 */ break; case 121: -#line 605 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_binary_expression(ctx, EXPR_BAND, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 2547 "parser.tab.c" /* yacc.c:1646 */ +#line 603 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = new_binary_expression(ctx, EXPR_BXOR, (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 2557 "parser.tab.c" /* yacc.c:1646 */ break; case 122: -#line 610 "parser.y" /* yacc.c:1646 */ +#line 607 "parser.y" /* yacc.c:1646 */ { (yyval.expr) = (yyvsp[0].expr); } -#line 2553 "parser.tab.c" /* yacc.c:1646 */ +#line 2563 "parser.tab.c" /* yacc.c:1646 */ break; case 123: -#line 612 "parser.y" /* yacc.c:1646 */ +#line 609 "parser.y" /* yacc.c:1646 */ { (yyval.expr) = new_binary_expression(ctx, EXPR_BAND, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 2559 "parser.tab.c" /* yacc.c:1646 */ +#line 2569 "parser.tab.c" /* yacc.c:1646 */ break; case 124: -#line 616 "parser.y" /* yacc.c:1646 */ +#line 614 "parser.y" /* yacc.c:1646 */ { (yyval.expr) = (yyvsp[0].expr); } -#line 2565 "parser.tab.c" /* yacc.c:1646 */ +#line 2575 "parser.tab.c" /* yacc.c:1646 */ break; case 125: -#line 618 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_binary_expression(ctx, (yyvsp[-1].ival), (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 2571 "parser.tab.c" /* yacc.c:1646 */ +#line 616 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = new_binary_expression(ctx, EXPR_BAND, (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 2581 "parser.tab.c" /* yacc.c:1646 */ break; case 126: -#line 622 "parser.y" /* yacc.c:1646 */ +#line 620 "parser.y" /* yacc.c:1646 */ { (yyval.expr) = (yyvsp[0].expr); } -#line 2577 "parser.tab.c" /* yacc.c:1646 */ +#line 2587 "parser.tab.c" /* yacc.c:1646 */ break; case 127: -#line 624 "parser.y" /* yacc.c:1646 */ +#line 622 "parser.y" /* yacc.c:1646 */ { (yyval.expr) = new_binary_expression(ctx, (yyvsp[-1].ival), (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 2583 "parser.tab.c" /* yacc.c:1646 */ +#line 2593 "parser.tab.c" /* yacc.c:1646 */ break; case 128: -#line 628 "parser.y" /* yacc.c:1646 */ +#line 626 "parser.y" /* yacc.c:1646 */ { (yyval.expr) = (yyvsp[0].expr); } -#line 2589 "parser.tab.c" /* yacc.c:1646 */ +#line 2599 "parser.tab.c" /* yacc.c:1646 */ break; case 129: -#line 630 "parser.y" /* yacc.c:1646 */ +#line 628 "parser.y" /* yacc.c:1646 */ { (yyval.expr) = new_binary_expression(ctx, (yyvsp[-1].ival), (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 2595 "parser.tab.c" /* yacc.c:1646 */ +#line 2605 "parser.tab.c" /* yacc.c:1646 */ break; case 130: #line 632 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_binary_expression(ctx, EXPR_INSTANCEOF, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 2601 "parser.tab.c" /* yacc.c:1646 */ + { (yyval.expr) = (yyvsp[0].expr); } +#line 2611 "parser.tab.c" /* yacc.c:1646 */ break; case 131: #line 634 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_binary_expression(ctx, EXPR_IN, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 2607 "parser.tab.c" /* yacc.c:1646 */ + { (yyval.expr) = new_binary_expression(ctx, (yyvsp[-1].ival), (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 2617 "parser.tab.c" /* yacc.c:1646 */ break; case 132: -#line 638 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = (yyvsp[0].expr); } -#line 2613 "parser.tab.c" /* yacc.c:1646 */ +#line 636 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = new_binary_expression(ctx, EXPR_INSTANCEOF, (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 2623 "parser.tab.c" /* yacc.c:1646 */ break; case 133: -#line 640 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_binary_expression(ctx, (yyvsp[-1].ival), (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 2619 "parser.tab.c" /* yacc.c:1646 */ +#line 638 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = new_binary_expression(ctx, EXPR_IN, (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 2629 "parser.tab.c" /* yacc.c:1646 */ break; case 134: #line 642 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_binary_expression(ctx, EXPR_INSTANCEOF, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 2625 "parser.tab.c" /* yacc.c:1646 */ + { (yyval.expr) = (yyvsp[0].expr); } +#line 2635 "parser.tab.c" /* yacc.c:1646 */ break; case 135: -#line 646 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = (yyvsp[0].expr); } -#line 2631 "parser.tab.c" /* yacc.c:1646 */ +#line 644 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = new_binary_expression(ctx, (yyvsp[-1].ival), (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 2641 "parser.tab.c" /* yacc.c:1646 */ break; case 136: -#line 648 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_binary_expression(ctx, (yyvsp[-1].ival), (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 2637 "parser.tab.c" /* yacc.c:1646 */ +#line 646 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = new_binary_expression(ctx, EXPR_INSTANCEOF, (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 2647 "parser.tab.c" /* yacc.c:1646 */ break; case 137: -#line 653 "parser.y" /* yacc.c:1646 */ +#line 650 "parser.y" /* yacc.c:1646 */ { (yyval.expr) = (yyvsp[0].expr); } -#line 2643 "parser.tab.c" /* yacc.c:1646 */ +#line 2653 "parser.tab.c" /* yacc.c:1646 */ break; case 138: -#line 655 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_binary_expression(ctx, EXPR_ADD, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 2649 "parser.tab.c" /* yacc.c:1646 */ +#line 652 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = new_binary_expression(ctx, (yyvsp[-1].ival), (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 2659 "parser.tab.c" /* yacc.c:1646 */ break; case 139: #line 657 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_binary_expression(ctx, EXPR_SUB, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 2655 "parser.tab.c" /* yacc.c:1646 */ + { (yyval.expr) = (yyvsp[0].expr); } +#line 2665 "parser.tab.c" /* yacc.c:1646 */ break; case 140: -#line 661 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = (yyvsp[0].expr); } -#line 2661 "parser.tab.c" /* yacc.c:1646 */ +#line 659 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = new_binary_expression(ctx, EXPR_ADD, (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 2671 "parser.tab.c" /* yacc.c:1646 */ break; case 141: -#line 663 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_binary_expression(ctx, EXPR_MUL, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 2667 "parser.tab.c" /* yacc.c:1646 */ +#line 661 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = new_binary_expression(ctx, EXPR_SUB, (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 2677 "parser.tab.c" /* yacc.c:1646 */ break; case 142: #line 665 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_binary_expression(ctx, EXPR_DIV, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 2673 "parser.tab.c" /* yacc.c:1646 */ + { (yyval.expr) = (yyvsp[0].expr); } +#line 2683 "parser.tab.c" /* yacc.c:1646 */ break; case 143: #line 667 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_binary_expression(ctx, EXPR_MOD, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 2679 "parser.tab.c" /* yacc.c:1646 */ + { (yyval.expr) = new_binary_expression(ctx, EXPR_MUL, (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 2689 "parser.tab.c" /* yacc.c:1646 */ break; case 144: -#line 671 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = (yyvsp[0].expr); } -#line 2685 "parser.tab.c" /* yacc.c:1646 */ +#line 669 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = new_binary_expression(ctx, EXPR_DIV, (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 2695 "parser.tab.c" /* yacc.c:1646 */ break; case 145: -#line 673 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_unary_expression(ctx, EXPR_DELETE, (yyvsp[0].expr)); } -#line 2691 "parser.tab.c" /* yacc.c:1646 */ +#line 671 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = new_binary_expression(ctx, EXPR_MOD, (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 2701 "parser.tab.c" /* yacc.c:1646 */ break; case 146: -#line 674 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_unary_expression(ctx, EXPR_VOID, (yyvsp[0].expr)); } -#line 2697 "parser.tab.c" /* yacc.c:1646 */ +#line 675 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = (yyvsp[0].expr); } +#line 2707 "parser.tab.c" /* yacc.c:1646 */ break; case 147: -#line 676 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_unary_expression(ctx, EXPR_TYPEOF, (yyvsp[0].expr)); } -#line 2703 "parser.tab.c" /* yacc.c:1646 */ +#line 677 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = new_unary_expression(ctx, EXPR_DELETE, (yyvsp[0].expr)); } +#line 2713 "parser.tab.c" /* yacc.c:1646 */ break; case 148: -#line 677 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_unary_expression(ctx, EXPR_PREINC, (yyvsp[0].expr)); } -#line 2709 "parser.tab.c" /* yacc.c:1646 */ +#line 678 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = new_unary_expression(ctx, EXPR_VOID, (yyvsp[0].expr)); } +#line 2719 "parser.tab.c" /* yacc.c:1646 */ break; case 149: -#line 678 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_unary_expression(ctx, EXPR_PREDEC, (yyvsp[0].expr)); } -#line 2715 "parser.tab.c" /* yacc.c:1646 */ +#line 680 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = new_unary_expression(ctx, EXPR_TYPEOF, (yyvsp[0].expr)); } +#line 2725 "parser.tab.c" /* yacc.c:1646 */ break; case 150: -#line 679 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_unary_expression(ctx, EXPR_PLUS, (yyvsp[0].expr)); } -#line 2721 "parser.tab.c" /* yacc.c:1646 */ +#line 681 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = new_unary_expression(ctx, EXPR_PREINC, (yyvsp[0].expr)); } +#line 2731 "parser.tab.c" /* yacc.c:1646 */ break; case 151: -#line 680 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_unary_expression(ctx, EXPR_MINUS, (yyvsp[0].expr)); } -#line 2727 "parser.tab.c" /* yacc.c:1646 */ +#line 682 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = new_unary_expression(ctx, EXPR_PREDEC, (yyvsp[0].expr)); } +#line 2737 "parser.tab.c" /* yacc.c:1646 */ break; case 152: -#line 681 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_unary_expression(ctx, EXPR_BITNEG, (yyvsp[0].expr)); } -#line 2733 "parser.tab.c" /* yacc.c:1646 */ +#line 683 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = new_unary_expression(ctx, EXPR_PLUS, (yyvsp[0].expr)); } +#line 2743 "parser.tab.c" /* yacc.c:1646 */ break; case 153: -#line 682 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_unary_expression(ctx, EXPR_LOGNEG, (yyvsp[0].expr)); } -#line 2739 "parser.tab.c" /* yacc.c:1646 */ +#line 684 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = new_unary_expression(ctx, EXPR_MINUS, (yyvsp[0].expr)); } +#line 2749 "parser.tab.c" /* yacc.c:1646 */ break; case 154: -#line 687 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = (yyvsp[0].expr); } -#line 2745 "parser.tab.c" /* yacc.c:1646 */ +#line 685 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = new_unary_expression(ctx, EXPR_BITNEG, (yyvsp[0].expr)); } +#line 2755 "parser.tab.c" /* yacc.c:1646 */ break; case 155: -#line 689 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_unary_expression(ctx, EXPR_POSTINC, (yyvsp[-1].expr)); } -#line 2751 "parser.tab.c" /* yacc.c:1646 */ +#line 686 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = new_unary_expression(ctx, EXPR_LOGNEG, (yyvsp[0].expr)); } +#line 2761 "parser.tab.c" /* yacc.c:1646 */ break; case 156: #line 691 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_unary_expression(ctx, EXPR_POSTDEC, (yyvsp[-1].expr)); } -#line 2757 "parser.tab.c" /* yacc.c:1646 */ + { (yyval.expr) = (yyvsp[0].expr); } +#line 2767 "parser.tab.c" /* yacc.c:1646 */ break; case 157: -#line 696 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = (yyvsp[0].expr); } -#line 2763 "parser.tab.c" /* yacc.c:1646 */ +#line 693 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = new_unary_expression(ctx, EXPR_POSTINC, (yyvsp[-1].expr)); } +#line 2773 "parser.tab.c" /* yacc.c:1646 */ break; case 158: -#line 697 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = (yyvsp[0].expr); } -#line 2769 "parser.tab.c" /* yacc.c:1646 */ +#line 695 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = new_unary_expression(ctx, EXPR_POSTDEC, (yyvsp[-1].expr)); } +#line 2779 "parser.tab.c" /* yacc.c:1646 */ break; case 159: -#line 701 "parser.y" /* yacc.c:1646 */ +#line 700 "parser.y" /* yacc.c:1646 */ { (yyval.expr) = (yyvsp[0].expr); } -#line 2775 "parser.tab.c" /* yacc.c:1646 */ +#line 2785 "parser.tab.c" /* yacc.c:1646 */ break; case 160: -#line 702 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_new_expression(ctx, (yyvsp[0].expr), NULL); } -#line 2781 "parser.tab.c" /* yacc.c:1646 */ +#line 701 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = (yyvsp[0].expr); } +#line 2791 "parser.tab.c" /* yacc.c:1646 */ break; case 161: -#line 706 "parser.y" /* yacc.c:1646 */ +#line 705 "parser.y" /* yacc.c:1646 */ { (yyval.expr) = (yyvsp[0].expr); } -#line 2787 "parser.tab.c" /* yacc.c:1646 */ +#line 2797 "parser.tab.c" /* yacc.c:1646 */ break; case 162: -#line 707 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = (yyvsp[0].expr); } -#line 2793 "parser.tab.c" /* yacc.c:1646 */ +#line 706 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = new_new_expression(ctx, (yyvsp[0].expr), NULL); } +#line 2803 "parser.tab.c" /* yacc.c:1646 */ break; case 163: -#line 709 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_binary_expression(ctx, EXPR_ARRAY, (yyvsp[-3].expr), (yyvsp[-1].expr)); } -#line 2799 "parser.tab.c" /* yacc.c:1646 */ +#line 710 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = (yyvsp[0].expr); } +#line 2809 "parser.tab.c" /* yacc.c:1646 */ break; case 164: #line 711 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_member_expression(ctx, (yyvsp[-2].expr), (yyvsp[0].identifier)); } -#line 2805 "parser.tab.c" /* yacc.c:1646 */ + { (yyval.expr) = (yyvsp[0].expr); } +#line 2815 "parser.tab.c" /* yacc.c:1646 */ break; case 165: #line 713 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_new_expression(ctx, (yyvsp[-1].expr), (yyvsp[0].argument_list)); } -#line 2811 "parser.tab.c" /* yacc.c:1646 */ + { (yyval.expr) = new_binary_expression(ctx, EXPR_ARRAY, (yyvsp[-3].expr), (yyvsp[-1].expr)); } +#line 2821 "parser.tab.c" /* yacc.c:1646 */ break; case 166: -#line 718 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_call_expression(ctx, (yyvsp[-1].expr), (yyvsp[0].argument_list)); } -#line 2817 "parser.tab.c" /* yacc.c:1646 */ +#line 715 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = new_member_expression(ctx, (yyvsp[-2].expr), (yyvsp[0].identifier)); } +#line 2827 "parser.tab.c" /* yacc.c:1646 */ break; case 167: -#line 720 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_call_expression(ctx, (yyvsp[-1].expr), (yyvsp[0].argument_list)); } -#line 2823 "parser.tab.c" /* yacc.c:1646 */ +#line 717 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = new_new_expression(ctx, (yyvsp[-1].expr), (yyvsp[0].argument_list)); } +#line 2833 "parser.tab.c" /* yacc.c:1646 */ break; case 168: #line 722 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_binary_expression(ctx, EXPR_ARRAY, (yyvsp[-3].expr), (yyvsp[-1].expr)); } -#line 2829 "parser.tab.c" /* yacc.c:1646 */ + { (yyval.expr) = new_call_expression(ctx, (yyvsp[-1].expr), (yyvsp[0].argument_list)); } +#line 2839 "parser.tab.c" /* yacc.c:1646 */ break; case 169: #line 724 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_member_expression(ctx, (yyvsp[-2].expr), (yyvsp[0].identifier)); } -#line 2835 "parser.tab.c" /* yacc.c:1646 */ + { (yyval.expr) = new_call_expression(ctx, (yyvsp[-1].expr), (yyvsp[0].argument_list)); } +#line 2845 "parser.tab.c" /* yacc.c:1646 */ break; case 170: -#line 728 "parser.y" /* yacc.c:1646 */ - { (yyval.argument_list) = NULL; } -#line 2841 "parser.tab.c" /* yacc.c:1646 */ +#line 726 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = new_binary_expression(ctx, EXPR_ARRAY, (yyvsp[-3].expr), (yyvsp[-1].expr)); } +#line 2851 "parser.tab.c" /* yacc.c:1646 */ break; case 171: -#line 729 "parser.y" /* yacc.c:1646 */ - { (yyval.argument_list) = (yyvsp[-1].argument_list); } -#line 2847 "parser.tab.c" /* yacc.c:1646 */ +#line 728 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = new_member_expression(ctx, (yyvsp[-2].expr), (yyvsp[0].identifier)); } +#line 2857 "parser.tab.c" /* yacc.c:1646 */ break; case 172: -#line 733 "parser.y" /* yacc.c:1646 */ - { (yyval.argument_list) = new_argument_list(ctx, (yyvsp[0].expr)); } -#line 2853 "parser.tab.c" /* yacc.c:1646 */ +#line 732 "parser.y" /* yacc.c:1646 */ + { (yyval.argument_list) = NULL; } +#line 2863 "parser.tab.c" /* yacc.c:1646 */ break; case 173: -#line 735 "parser.y" /* yacc.c:1646 */ - { (yyval.argument_list) = argument_list_add(ctx, (yyvsp[-2].argument_list), (yyvsp[0].expr)); } -#line 2859 "parser.tab.c" /* yacc.c:1646 */ +#line 733 "parser.y" /* yacc.c:1646 */ + { (yyval.argument_list) = (yyvsp[-1].argument_list); } +#line 2869 "parser.tab.c" /* yacc.c:1646 */ break; case 174: -#line 739 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_expression(ctx, EXPR_THIS, 0); } -#line 2865 "parser.tab.c" /* yacc.c:1646 */ +#line 737 "parser.y" /* yacc.c:1646 */ + { (yyval.argument_list) = new_argument_list(ctx, (yyvsp[0].expr)); } +#line 2875 "parser.tab.c" /* yacc.c:1646 */ break; case 175: -#line 740 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_identifier_expression(ctx, (yyvsp[0].identifier)); } -#line 2871 "parser.tab.c" /* yacc.c:1646 */ +#line 739 "parser.y" /* yacc.c:1646 */ + { (yyval.argument_list) = argument_list_add(ctx, (yyvsp[-2].argument_list), (yyvsp[0].expr)); } +#line 2881 "parser.tab.c" /* yacc.c:1646 */ break; case 176: -#line 741 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_literal_expression(ctx, (yyvsp[0].literal)); } -#line 2877 "parser.tab.c" /* yacc.c:1646 */ +#line 743 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = new_expression(ctx, EXPR_THIS, 0); } +#line 2887 "parser.tab.c" /* yacc.c:1646 */ break; case 177: -#line 742 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = (yyvsp[0].expr); } -#line 2883 "parser.tab.c" /* yacc.c:1646 */ +#line 744 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = new_identifier_expression(ctx, (yyvsp[0].identifier)); } +#line 2893 "parser.tab.c" /* yacc.c:1646 */ break; case 178: -#line 743 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = (yyvsp[0].expr); } -#line 2889 "parser.tab.c" /* yacc.c:1646 */ +#line 745 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = new_literal_expression(ctx, (yyvsp[0].literal)); } +#line 2899 "parser.tab.c" /* yacc.c:1646 */ break; case 179: -#line 744 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = (yyvsp[-1].expr); } -#line 2895 "parser.tab.c" /* yacc.c:1646 */ +#line 746 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = (yyvsp[0].expr); } +#line 2905 "parser.tab.c" /* yacc.c:1646 */ break; case 180: -#line 748 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_array_literal_expression(ctx, NULL, 0); } -#line 2901 "parser.tab.c" /* yacc.c:1646 */ +#line 747 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = (yyvsp[0].expr); } +#line 2911 "parser.tab.c" /* yacc.c:1646 */ break; case 181: -#line 749 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_array_literal_expression(ctx, NULL, (yyvsp[-1].ival)+1); } -#line 2907 "parser.tab.c" /* yacc.c:1646 */ +#line 748 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = (yyvsp[-1].expr); } +#line 2917 "parser.tab.c" /* yacc.c:1646 */ break; case 182: -#line 750 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_array_literal_expression(ctx, (yyvsp[-1].element_list), 0); } -#line 2913 "parser.tab.c" /* yacc.c:1646 */ +#line 752 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = new_array_literal_expression(ctx, NULL, 0); } +#line 2923 "parser.tab.c" /* yacc.c:1646 */ break; case 183: -#line 752 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_array_literal_expression(ctx, (yyvsp[-3].element_list), (yyvsp[-1].ival)+1); } -#line 2919 "parser.tab.c" /* yacc.c:1646 */ +#line 753 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = new_array_literal_expression(ctx, NULL, (yyvsp[-1].ival)+1); } +#line 2929 "parser.tab.c" /* yacc.c:1646 */ break; case 184: -#line 757 "parser.y" /* yacc.c:1646 */ - { (yyval.element_list) = new_element_list(ctx, (yyvsp[-1].ival), (yyvsp[0].expr)); } -#line 2925 "parser.tab.c" /* yacc.c:1646 */ +#line 754 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = new_array_literal_expression(ctx, (yyvsp[-1].element_list), 0); } +#line 2935 "parser.tab.c" /* yacc.c:1646 */ break; case 185: -#line 759 "parser.y" /* yacc.c:1646 */ - { (yyval.element_list) = element_list_add(ctx, (yyvsp[-3].element_list), (yyvsp[-1].ival), (yyvsp[0].expr)); } -#line 2931 "parser.tab.c" /* yacc.c:1646 */ +#line 756 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = new_array_literal_expression(ctx, (yyvsp[-3].element_list), (yyvsp[-1].ival)+1); } +#line 2941 "parser.tab.c" /* yacc.c:1646 */ break; case 186: -#line 763 "parser.y" /* yacc.c:1646 */ - { (yyval.ival) = 1; } -#line 2937 "parser.tab.c" /* yacc.c:1646 */ +#line 761 "parser.y" /* yacc.c:1646 */ + { (yyval.element_list) = new_element_list(ctx, (yyvsp[-1].ival), (yyvsp[0].expr)); } +#line 2947 "parser.tab.c" /* yacc.c:1646 */ break; case 187: -#line 764 "parser.y" /* yacc.c:1646 */ - { (yyval.ival) = (yyvsp[-1].ival) + 1; } -#line 2943 "parser.tab.c" /* yacc.c:1646 */ +#line 763 "parser.y" /* yacc.c:1646 */ + { (yyval.element_list) = element_list_add(ctx, (yyvsp[-3].element_list), (yyvsp[-1].ival), (yyvsp[0].expr)); } +#line 2953 "parser.tab.c" /* yacc.c:1646 */ break; case 188: -#line 768 "parser.y" /* yacc.c:1646 */ - { (yyval.ival) = 0; } -#line 2949 "parser.tab.c" /* yacc.c:1646 */ +#line 767 "parser.y" /* yacc.c:1646 */ + { (yyval.ival) = 1; } +#line 2959 "parser.tab.c" /* yacc.c:1646 */ break; case 189: -#line 769 "parser.y" /* yacc.c:1646 */ - { (yyval.ival) = (yyvsp[0].ival); } -#line 2955 "parser.tab.c" /* yacc.c:1646 */ +#line 768 "parser.y" /* yacc.c:1646 */ + { (yyval.ival) = (yyvsp[-1].ival) + 1; } +#line 2965 "parser.tab.c" /* yacc.c:1646 */ break; case 190: -#line 773 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_prop_and_value_expression(ctx, NULL); } -#line 2961 "parser.tab.c" /* yacc.c:1646 */ +#line 772 "parser.y" /* yacc.c:1646 */ + { (yyval.ival) = 0; } +#line 2971 "parser.tab.c" /* yacc.c:1646 */ break; case 191: -#line 775 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = new_prop_and_value_expression(ctx, (yyvsp[-1].property_list)); } -#line 2967 "parser.tab.c" /* yacc.c:1646 */ +#line 773 "parser.y" /* yacc.c:1646 */ + { (yyval.ival) = (yyvsp[0].ival); } +#line 2977 "parser.tab.c" /* yacc.c:1646 */ break; case 192: -#line 780 "parser.y" /* yacc.c:1646 */ - { (yyval.property_list) = new_property_list(ctx, (yyvsp[-2].literal), (yyvsp[0].expr)); } -#line 2973 "parser.tab.c" /* yacc.c:1646 */ +#line 777 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = new_prop_and_value_expression(ctx, NULL); } +#line 2983 "parser.tab.c" /* yacc.c:1646 */ break; case 193: -#line 782 "parser.y" /* yacc.c:1646 */ - { (yyval.property_list) = property_list_add(ctx, (yyvsp[-4].property_list), (yyvsp[-2].literal), (yyvsp[0].expr)); } -#line 2979 "parser.tab.c" /* yacc.c:1646 */ +#line 779 "parser.y" /* yacc.c:1646 */ + { (yyval.expr) = new_prop_and_value_expression(ctx, (yyvsp[-1].property_list)); } +#line 2989 "parser.tab.c" /* yacc.c:1646 */ break; case 194: -#line 786 "parser.y" /* yacc.c:1646 */ - { (yyval.literal) = new_string_literal(ctx, (yyvsp[0].identifier)); } -#line 2985 "parser.tab.c" /* yacc.c:1646 */ +#line 784 "parser.y" /* yacc.c:1646 */ + { (yyval.property_list) = new_property_list(ctx, (yyvsp[-2].literal), (yyvsp[0].expr)); } +#line 2995 "parser.tab.c" /* yacc.c:1646 */ break; case 195: -#line 787 "parser.y" /* yacc.c:1646 */ - { (yyval.literal) = new_string_literal(ctx, (yyvsp[0].wstr)); } -#line 2991 "parser.tab.c" /* yacc.c:1646 */ +#line 786 "parser.y" /* yacc.c:1646 */ + { (yyval.property_list) = property_list_add(ctx, (yyvsp[-4].property_list), (yyvsp[-2].literal), (yyvsp[0].expr)); } +#line 3001 "parser.tab.c" /* yacc.c:1646 */ break; case 196: -#line 788 "parser.y" /* yacc.c:1646 */ - { (yyval.literal) = (yyvsp[0].literal); } -#line 2997 "parser.tab.c" /* yacc.c:1646 */ +#line 790 "parser.y" /* yacc.c:1646 */ + { (yyval.literal) = new_string_literal(ctx, (yyvsp[0].identifier)); } +#line 3007 "parser.tab.c" /* yacc.c:1646 */ break; case 197: -#line 792 "parser.y" /* yacc.c:1646 */ - { (yyval.identifier) = NULL; } -#line 3003 "parser.tab.c" /* yacc.c:1646 */ +#line 791 "parser.y" /* yacc.c:1646 */ + { (yyval.literal) = new_string_literal(ctx, (yyvsp[0].wstr)); } +#line 3013 "parser.tab.c" /* yacc.c:1646 */ break; case 198: -#line 793 "parser.y" /* yacc.c:1646 */ - { (yyval.identifier) = (yyvsp[0].identifier); } -#line 3009 "parser.tab.c" /* yacc.c:1646 */ +#line 792 "parser.y" /* yacc.c:1646 */ + { (yyval.literal) = (yyvsp[0].literal); } +#line 3019 "parser.tab.c" /* yacc.c:1646 */ break; case 199: -#line 797 "parser.y" /* yacc.c:1646 */ - { (yyval.literal) = new_null_literal(ctx); } -#line 3015 "parser.tab.c" /* yacc.c:1646 */ +#line 796 "parser.y" /* yacc.c:1646 */ + { (yyval.identifier) = NULL; } +#line 3025 "parser.tab.c" /* yacc.c:1646 */ break; case 200: -#line 798 "parser.y" /* yacc.c:1646 */ - { (yyval.literal) = (yyvsp[0].literal); } -#line 3021 "parser.tab.c" /* yacc.c:1646 */ +#line 797 "parser.y" /* yacc.c:1646 */ + { (yyval.identifier) = (yyvsp[0].identifier); } +#line 3031 "parser.tab.c" /* yacc.c:1646 */ break; case 201: -#line 799 "parser.y" /* yacc.c:1646 */ - { (yyval.literal) = (yyvsp[0].literal); } -#line 3027 "parser.tab.c" /* yacc.c:1646 */ +#line 801 "parser.y" /* yacc.c:1646 */ + { (yyval.literal) = new_null_literal(ctx); } +#line 3037 "parser.tab.c" /* yacc.c:1646 */ break; case 202: -#line 800 "parser.y" /* yacc.c:1646 */ - { (yyval.literal) = new_string_literal(ctx, (yyvsp[0].wstr)); } -#line 3033 "parser.tab.c" /* yacc.c:1646 */ +#line 802 "parser.y" /* yacc.c:1646 */ + { (yyval.literal) = (yyvsp[0].literal); } +#line 3043 "parser.tab.c" /* yacc.c:1646 */ break; case 203: -#line 801 "parser.y" /* yacc.c:1646 */ - { (yyval.literal) = parse_regexp(ctx); - if(!(yyval.literal)) YYABORT; } -#line 3040 "parser.tab.c" /* yacc.c:1646 */ +#line 803 "parser.y" /* yacc.c:1646 */ + { (yyval.literal) = (yyvsp[0].literal); } +#line 3049 "parser.tab.c" /* yacc.c:1646 */ break; case 204: -#line 803 "parser.y" /* yacc.c:1646 */ - { (yyval.literal) = parse_regexp(ctx); - if(!(yyval.literal)) YYABORT; } -#line 3047 "parser.tab.c" /* yacc.c:1646 */ +#line 804 "parser.y" /* yacc.c:1646 */ + { (yyval.literal) = new_string_literal(ctx, (yyvsp[0].wstr)); } +#line 3055 "parser.tab.c" /* yacc.c:1646 */ break; case 205: -#line 808 "parser.y" /* yacc.c:1646 */ - { (yyval.literal) = new_boolean_literal(ctx, VARIANT_TRUE); } -#line 3053 "parser.tab.c" /* yacc.c:1646 */ +#line 805 "parser.y" /* yacc.c:1646 */ + { (yyval.literal) = parse_regexp(ctx); + if(!(yyval.literal)) YYABORT; } +#line 3062 "parser.tab.c" /* yacc.c:1646 */ break; case 206: -#line 809 "parser.y" /* yacc.c:1646 */ - { (yyval.literal) = new_boolean_literal(ctx, VARIANT_FALSE); } -#line 3059 "parser.tab.c" /* yacc.c:1646 */ +#line 807 "parser.y" /* yacc.c:1646 */ + { (yyval.literal) = parse_regexp(ctx); + if(!(yyval.literal)) YYABORT; } +#line 3069 "parser.tab.c" /* yacc.c:1646 */ break; case 207: -#line 810 "parser.y" /* yacc.c:1646 */ - { (yyval.literal) = (yyvsp[0].literal); } -#line 3065 "parser.tab.c" /* yacc.c:1646 */ +#line 812 "parser.y" /* yacc.c:1646 */ + { (yyval.literal) = new_boolean_literal(ctx, VARIANT_TRUE); } +#line 3075 "parser.tab.c" /* yacc.c:1646 */ + break; + + case 208: +#line 813 "parser.y" /* yacc.c:1646 */ + { (yyval.literal) = new_boolean_literal(ctx, VARIANT_FALSE); } +#line 3081 "parser.tab.c" /* yacc.c:1646 */ break; case 209: #line 814 "parser.y" /* yacc.c:1646 */ - { if(!allow_auto_semicolon(ctx)) {YYABORT;} } -#line 3071 "parser.tab.c" /* yacc.c:1646 */ + { (yyval.literal) = (yyvsp[0].literal); } +#line 3087 "parser.tab.c" /* yacc.c:1646 */ break; case 211: #line 818 "parser.y" /* yacc.c:1646 */ - { set_error(ctx, JS_E_MISSING_LBRACKET); YYABORT; } -#line 3077 "parser.tab.c" /* yacc.c:1646 */ + { if(!allow_auto_semicolon(ctx)) {YYABORT;} } +#line 3093 "parser.tab.c" /* yacc.c:1646 */ break; case 213: #line 822 "parser.y" /* yacc.c:1646 */ - { set_error(ctx, JS_E_MISSING_RBRACKET); YYABORT; } -#line 3083 "parser.tab.c" /* yacc.c:1646 */ + { set_error(ctx, JS_E_MISSING_LBRACKET); YYABORT; } +#line 3099 "parser.tab.c" /* yacc.c:1646 */ break; case 215: #line 826 "parser.y" /* yacc.c:1646 */ + { set_error(ctx, JS_E_MISSING_RBRACKET); YYABORT; } +#line 3105 "parser.tab.c" /* yacc.c:1646 */ + break; + + case 217: +#line 830 "parser.y" /* yacc.c:1646 */ { set_error(ctx, JS_E_MISSING_SEMICOLON); YYABORT; } -#line 3089 "parser.tab.c" /* yacc.c:1646 */ +#line 3111 "parser.tab.c" /* yacc.c:1646 */ break; -#line 3093 "parser.tab.c" /* yacc.c:1646 */ +#line 3115 "parser.tab.c" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -3311,7 +3333,7 @@ yyreturn: #endif return yyresult; } -#line 828 "parser.y" /* yacc.c:1906 */ +#line 832 "parser.y" /* yacc.c:1906 */ static BOOL allow_auto_semicolon(parser_ctx_t *ctx) @@ -3787,14 +3809,15 @@ static parameter_list_t *parameter_list_add(parser_ctx_t *ctx, parameter_list_t return list; } -static expression_t *new_function_expression(parser_ctx_t *ctx, const WCHAR *identifier, - parameter_list_t *parameter_list, source_elements_t *source_elements, const WCHAR *src_str, DWORD src_len) +static expression_t *new_function_expression(parser_ctx_t *ctx, const WCHAR *identifier, parameter_list_t *parameter_list, + source_elements_t *source_elements, const WCHAR *event_target, const WCHAR *src_str, DWORD src_len) { function_expression_t *ret = new_expression(ctx, EXPR_FUNC, sizeof(*ret)); ret->identifier = identifier; ret->parameter_list = parameter_list ? parameter_list->head : NULL; ret->source_elements = source_elements; + ret->event_target = event_target; ret->src_str = src_str; ret->src_len = src_len; ret->next = NULL; diff --git a/reactos/dll/win32/jscript/parser.tab.h b/reactos/dll/win32/jscript/parser.tab.h index 1f66563788c..0233eaf9e47 100644 --- a/reactos/dll/win32/jscript/parser.tab.h +++ b/reactos/dll/win32/jscript/parser.tab.h @@ -78,17 +78,18 @@ extern int parser_debug; tDEC = 288, tHTMLCOMMENT = 289, kDIVEQ = 290, - kFUNCTION = 291, - tIdentifier = 292, - tAssignOper = 293, - tEqOper = 294, - tShiftOper = 295, - tRelOper = 296, - tNumericLiteral = 297, - tBooleanLiteral = 298, - tStringLiteral = 299, - tEOF = 300, - LOWER_THAN_ELSE = 301 + kDCOL = 291, + kFUNCTION = 292, + tIdentifier = 293, + tAssignOper = 294, + tEqOper = 295, + tShiftOper = 296, + tRelOper = 297, + tNumericLiteral = 298, + tBooleanLiteral = 299, + tStringLiteral = 300, + tEOF = 301, + LOWER_THAN_ELSE = 302 }; #endif @@ -118,7 +119,7 @@ union YYSTYPE struct _variable_list_t *variable_list; variable_declaration_t *variable_declaration; -#line 122 "parser.tab.h" /* yacc.c:1909 */ +#line 123 "parser.tab.h" /* yacc.c:1909 */ }; # define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_DECLARED 1 diff --git a/reactos/dll/win32/jscript/parser.y b/reactos/dll/win32/jscript/parser.y index 73cffd80ca6..b97e7fd5e07 100644 --- a/reactos/dll/win32/jscript/parser.y +++ b/reactos/dll/win32/jscript/parser.y @@ -114,7 +114,7 @@ static parameter_list_t *parameter_list_add(parser_ctx_t*,parameter_list_t*,cons static void *new_expression(parser_ctx_t *ctx,expression_type_t,size_t); static expression_t *new_function_expression(parser_ctx_t*,const WCHAR*,parameter_list_t*, - source_elements_t*,const WCHAR*,DWORD); + source_elements_t*,const WCHAR*,const WCHAR*,DWORD); static expression_t *new_binary_expression(parser_ctx_t*,expression_type_t,expression_t*,expression_t*); static expression_t *new_unary_expression(parser_ctx_t*,expression_type_t,expression_t*); static expression_t *new_conditional_expression(parser_ctx_t*,expression_t*,expression_t*,expression_t*); @@ -160,7 +160,7 @@ static source_elements_t *source_elements_add_statement(source_elements_t*,state /* keywords */ %token kBREAK kCASE kCATCH kCONTINUE kDEFAULT kDELETE kDO kELSE kIF kFINALLY kFOR kIN %token kINSTANCEOF kNEW kNULL kRETURN kSWITCH kTHIS kTHROW kTRUE kFALSE kTRY kTYPEOF kVAR kVOID kWHILE kWITH -%token tANDAND tOROR tINC tDEC tHTMLCOMMENT kDIVEQ +%token tANDAND tOROR tINC tDEC tHTMLCOMMENT kDIVEQ kDCOL %token kFUNCTION '}' @@ -258,8 +258,12 @@ SourceElements /* ECMA-262 3rd Edition 13 */ FunctionExpression - : KFunction Identifier_opt left_bracket FormalParameterList_opt right_bracket '{' FunctionBody '}' - { $$ = new_function_expression(ctx, $2, $4, $7, $1, $8-$1+1); } + : KFunction left_bracket FormalParameterList_opt right_bracket '{' FunctionBody '}' + { $$ = new_function_expression(ctx, NULL, $3, $6, NULL, $1, $7-$1+1); } + | KFunction tIdentifier left_bracket FormalParameterList_opt right_bracket '{' FunctionBody '}' + { $$ = new_function_expression(ctx, $2, $4, $7, NULL, $1, $8-$1+1); } + | KFunction tIdentifier kDCOL tIdentifier left_bracket FormalParameterList_opt right_bracket '{' FunctionBody '}' + { $$ = new_function_expression(ctx, $4, $6, $9, $2, $1, $10-$1+1); } KFunction : kFUNCTION { $$ = $1; } @@ -1294,14 +1298,15 @@ static parameter_list_t *parameter_list_add(parser_ctx_t *ctx, parameter_list_t return list; } -static expression_t *new_function_expression(parser_ctx_t *ctx, const WCHAR *identifier, - parameter_list_t *parameter_list, source_elements_t *source_elements, const WCHAR *src_str, DWORD src_len) +static expression_t *new_function_expression(parser_ctx_t *ctx, const WCHAR *identifier, parameter_list_t *parameter_list, + source_elements_t *source_elements, const WCHAR *event_target, const WCHAR *src_str, DWORD src_len) { function_expression_t *ret = new_expression(ctx, EXPR_FUNC, sizeof(*ret)); ret->identifier = identifier; ret->parameter_list = parameter_list ? parameter_list->head : NULL; ret->source_elements = source_elements; + ret->event_target = event_target; ret->src_str = src_str; ret->src_len = src_len; ret->next = NULL; diff --git a/reactos/dll/win32/jscript/string.c b/reactos/dll/win32/jscript/string.c index 501a2025233..35ca5ae13b7 100644 --- a/reactos/dll/win32/jscript/string.c +++ b/reactos/dll/win32/jscript/string.c @@ -1128,7 +1128,7 @@ static HRESULT String_split(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, unsi match_state_t match_result, *match_ptr = &match_result; DWORD length, i, match_len = 0; const WCHAR *ptr, *ptr2, *str, *match_str = NULL; - unsigned limit = UINT32_MAX; + unsigned limit = ~0u; jsdisp_t *array, *regexp = NULL; jsstr_t *jsstr, *match_jsstr, *tmp_str; HRESULT hres; diff --git a/reactos/media/doc/README.WINE b/reactos/media/doc/README.WINE index 17eb37caba7..2cd7e40396b 100644 --- a/reactos/media/doc/README.WINE +++ b/reactos/media/doc/README.WINE @@ -88,7 +88,7 @@ reactos/dll/win32/inseng # Synced to WineStaging-1.7.47 reactos/dll/win32/iphlpapi # Out of sync reactos/dll/win32/itircl # Synced to WineStaging-1.7.37 reactos/dll/win32/itss # Synced to WineStaging-1.7.37 -reactos/dll/win32/jscript # Synced to WineStaging-1.7.37 +reactos/dll/win32/jscript # Synced to WineStaging-1.7.47 reactos/dll/win32/jsproxy # Synced to WineStaging-1.7.37 reactos/dll/win32/loadperf # Synced to WineStaging-1.7.37 reactos/dll/win32/localspl # Synced to WineStaging-1.7.37