From 3e68821bfccc709c9e15496f0e1fac787eddaa0b Mon Sep 17 00:00:00 2001 From: Christoph von Wittich Date: Wed, 20 May 2009 13:12:23 +0000 Subject: [PATCH] sync jscript with wine 1.1.21 svn path=/trunk/; revision=41019 --- reactos/dll/win32/jscript/engine.h | 3 +- reactos/dll/win32/jscript/global.c | 2 +- reactos/dll/win32/jscript/jscript.c | 4 +- reactos/dll/win32/jscript/lex.c | 24 +- reactos/dll/win32/jscript/math.c | 22 +- reactos/dll/win32/jscript/parser.tab.c | 3196 ++++++++++++++---------- reactos/dll/win32/jscript/parser.tab.h | 118 +- reactos/dll/win32/jscript/parser.y | 15 +- reactos/dll/win32/jscript/regexp.c | 4 +- 9 files changed, 1980 insertions(+), 1408 deletions(-) diff --git a/reactos/dll/win32/jscript/engine.h b/reactos/dll/win32/jscript/engine.h index e02b717e744..f1a78ecf15d 100644 --- a/reactos/dll/win32/jscript/engine.h +++ b/reactos/dll/win32/jscript/engine.h @@ -55,6 +55,7 @@ typedef struct _parser_ctx_t { script_ctx_t *script; source_elements_t *source; BOOL nl; + BOOL is_html; HRESULT hres; jsheap_t heap; @@ -65,7 +66,7 @@ typedef struct _parser_ctx_t { struct _parser_ctx_t *next; } parser_ctx_t; -HRESULT script_parse(script_ctx_t*,const WCHAR*,parser_ctx_t**); +HRESULT script_parse(script_ctx_t*,const WCHAR*,const WCHAR*,parser_ctx_t**); void parser_release(parser_ctx_t*); int parser_lex(void*,parser_ctx_t*); diff --git a/reactos/dll/win32/jscript/global.c b/reactos/dll/win32/jscript/global.c index d98b7b4c931..01d9eb245a2 100644 --- a/reactos/dll/win32/jscript/global.c +++ b/reactos/dll/win32/jscript/global.c @@ -264,7 +264,7 @@ static HRESULT JSGlobal_eval(DispatchEx *dispex, LCID lcid, WORD flags, DISPPARA } TRACE("parsing %s\n", debugstr_w(V_BSTR(arg))); - hres = script_parse(dispex->ctx, V_BSTR(arg), &parser_ctx); + hres = script_parse(dispex->ctx, V_BSTR(arg), NULL, &parser_ctx); if(FAILED(hres)) { WARN("parse (%s) failed: %08x\n", debugstr_w(V_BSTR(arg)), hres); return hres; diff --git a/reactos/dll/win32/jscript/jscript.c b/reactos/dll/win32/jscript/jscript.c index fb99d240271..b536014997c 100644 --- a/reactos/dll/win32/jscript/jscript.c +++ b/reactos/dll/win32/jscript/jscript.c @@ -596,7 +596,7 @@ static HRESULT WINAPI JScriptParse_ParseScriptText(IActiveScriptParse *iface, if(This->thread_id != GetCurrentThreadId() || This->ctx->state == SCRIPTSTATE_CLOSED) return E_UNEXPECTED; - hres = script_parse(This->ctx, pstrCode, &parser_ctx); + hres = script_parse(This->ctx, pstrCode, pstrDelimiter, &parser_ctx); if(FAILED(hres)) return hres; @@ -662,7 +662,7 @@ static HRESULT WINAPI JScriptParseProcedure_ParseProcedureText(IActiveScriptPars if(This->thread_id != GetCurrentThreadId() || This->ctx->state == SCRIPTSTATE_CLOSED) return E_UNEXPECTED; - hres = script_parse(This->ctx, pstrCode, &parser_ctx); + hres = script_parse(This->ctx, pstrCode, pstrDelimiter, &parser_ctx); if(FAILED(hres)) { WARN("Parse failed %08x\n", hres); return hres; diff --git a/reactos/dll/win32/jscript/lex.c b/reactos/dll/win32/jscript/lex.c index bf298bfe605..68bfef82a84 100644 --- a/reactos/dll/win32/jscript/lex.c +++ b/reactos/dll/win32/jscript/lex.c @@ -174,6 +174,20 @@ static void skip_spaces(parser_ctx_t *ctx) } } +static BOOL skip_html_comment(parser_ctx_t *ctx) +{ + const WCHAR html_commentW[] = {'<','!','-','-',0}; + + if(!ctx->is_html || ctx->ptr+3 >= ctx->end || + memcmp(ctx->ptr, html_commentW, sizeof(WCHAR)*4)) + return FALSE; + + ctx->nl = TRUE; + while(ctx->ptr < ctx->end && !is_endline(*ctx->ptr++)); + + return TRUE; +} + static BOOL skip_comment(parser_ctx_t *ctx) { if(ctx->ptr+1 >= ctx->end || *ctx->ptr != '/') @@ -466,13 +480,13 @@ int parser_lex(void *lval, parser_ctx_t *ctx) { int ret; - ctx->nl = FALSE; + ctx->nl = ctx->ptr == ctx->begin; do { skip_spaces(ctx); if(ctx->ptr == ctx->end) return 0; - }while(skip_comment(ctx)); + }while(skip_comment(ctx) || skip_html_comment(ctx)); if(isalphaW(*ctx->ptr)) { ret = check_keywords(ctx, lval); @@ -585,8 +599,12 @@ int parser_lex(void *lval, parser_ctx_t *ctx) ctx->ptr++; if(ctx->ptr < ctx->end) { switch(*ctx->ptr) { - case '-': /* -- */ + case '-': /* -- or --> */ ctx->ptr++; + if(ctx->is_html && ctx->nl && ctx->ptr < ctx->end && *ctx->ptr == '>') { + ctx->ptr++; + return tHTMLCOMMENT; + } return tDEC; case '=': /* -= */ ctx->ptr++; diff --git a/reactos/dll/win32/jscript/math.c b/reactos/dll/win32/jscript/math.c index 4f6c049fa29..ac487d133b9 100644 --- a/reactos/dll/win32/jscript/math.c +++ b/reactos/dll/win32/jscript/math.c @@ -98,8 +98,8 @@ static HRESULT Math_LOG10E(DispatchEx *dispex, LCID lcid, WORD flags, DISPPARAMS static HRESULT Math_LN2(DispatchEx *dispex, LCID lcid, WORD flags, DISPPARAMS *dp, VARIANT *retv, jsexcept_t *ei, IServiceProvider *sp) { - FIXME("\n"); - return E_NOTIMPL; + TRACE("\n"); + return math_constant(M_LN2, flags, retv); } static HRESULT Math_LN10(DispatchEx *dispex, LCID lcid, WORD flags, DISPPARAMS *dp, @@ -212,8 +212,22 @@ static HRESULT Math_ceil(DispatchEx *dispex, LCID lcid, WORD flags, DISPPARAMS * static HRESULT Math_cos(DispatchEx *dispex, LCID lcid, WORD flags, DISPPARAMS *dp, VARIANT *retv, jsexcept_t *ei, IServiceProvider *sp) { - FIXME("\n"); - return E_NOTIMPL; + VARIANT v; + HRESULT hres; + + TRACE("\n"); + + if(!arg_cnt(dp)) { + if(retv) num_set_nan(retv); + return S_OK; + } + + hres = to_number(dispex->ctx, get_arg(dp, 0), ei, &v); + if(FAILED(hres)) + return hres; + + if(retv) num_set_val(retv, cos(num_val(&v))); + return S_OK; } static HRESULT Math_exp(DispatchEx *dispex, LCID lcid, WORD flags, DISPPARAMS *dp, diff --git a/reactos/dll/win32/jscript/parser.tab.c b/reactos/dll/win32/jscript/parser.tab.c index a2fd725a123..0f1cf085a48 100644 --- a/reactos/dll/win32/jscript/parser.tab.c +++ b/reactos/dll/win32/jscript/parser.tab.c @@ -1,30 +1,39 @@ -/* A Bison parser, made by GNU Bison 2.1. */ -/* Skeleton parser for Yacc-like parsing with Bison, - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. +/* A Bison parser, made by GNU Bison 2.4.1. */ - This program is free software; you can redistribute it and/or modify +/* Skeleton implementation for Bison's Yacc-like parsers in C + + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 + Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ -/* As a special exception, when this file is copied by Bison into a - Bison output file, you may use that output file without restriction. - This special exception was added by the Free Software Foundation - in version 1.24 of Bison. */ +/* As a special exception, you may create a larger work that contains + part or all of the Bison parser skeleton and distribute that work + under terms of your choice, so long as that work isn't itself a + parser generator using the skeleton or a modified version thereof + as a parser skeleton. Alternatively, if you modify or redistribute + the parser skeleton itself, you may (at your option) remove this + special exception, which will cause the skeleton and the resulting + Bison output files to be licensed under the GNU General Public + License without this special exception. + + This special exception was added by the Free Software Foundation in + version 2.2 of Bison. */ -/* Written by Richard Stallman by simplifying the original so called - ``semantic'' parser. */ +/* C LALR(1) parser skeleton written by Richard Stallman, by + simplifying the original so-called "semantic" parser. */ /* All symbols defined below should begin with yy or YY, to avoid infringing on user name space. This should be done even for local @@ -37,7 +46,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "2.1" +#define YYBISON_VERSION "2.4.1" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -45,115 +54,28 @@ /* Pure parsers. */ #define YYPURE 1 +/* Push parsers. */ +#define YYPUSH 0 + +/* Pull parsers. */ +#define YYPULL 1 + /* Using locations. */ #define YYLSP_NEEDED 0 /* Substitute the variable and function names. */ -#define yyparse parser_parse -#define yylex parser_lex -#define yyerror parser_error -#define yylval parser_lval -#define yychar parser_char -#define yydebug parser_debug -#define yynerrs parser_nerrs - - -/* Tokens. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - kBREAK = 258, - kCASE = 259, - kCATCH = 260, - kCONTINUE = 261, - kDEFAULT = 262, - kDELETE = 263, - kDO = 264, - kELSE = 265, - kIF = 266, - kFINALLY = 267, - kFOR = 268, - kIN = 269, - kINSTANCEOF = 270, - kNEW = 271, - kNULL = 272, - kUNDEFINED = 273, - kRETURN = 274, - kSWITCH = 275, - kTHIS = 276, - kTHROW = 277, - kTRUE = 278, - kFALSE = 279, - kTRY = 280, - kTYPEOF = 281, - kVAR = 282, - kVOID = 283, - kWHILE = 284, - kWITH = 285, - tANDAND = 286, - tOROR = 287, - tINC = 288, - tDEC = 289, - kFUNCTION = 290, - tIdentifier = 291, - tAssignOper = 292, - tEqOper = 293, - tShiftOper = 294, - tRelOper = 295, - tNumericLiteral = 296, - tStringLiteral = 297, - LOWER_THAN_ELSE = 298 - }; -#endif -/* Tokens. */ -#define kBREAK 258 -#define kCASE 259 -#define kCATCH 260 -#define kCONTINUE 261 -#define kDEFAULT 262 -#define kDELETE 263 -#define kDO 264 -#define kELSE 265 -#define kIF 266 -#define kFINALLY 267 -#define kFOR 268 -#define kIN 269 -#define kINSTANCEOF 270 -#define kNEW 271 -#define kNULL 272 -#define kUNDEFINED 273 -#define kRETURN 274 -#define kSWITCH 275 -#define kTHIS 276 -#define kTHROW 277 -#define kTRUE 278 -#define kFALSE 279 -#define kTRY 280 -#define kTYPEOF 281 -#define kVAR 282 -#define kVOID 283 -#define kWHILE 284 -#define kWITH 285 -#define tANDAND 286 -#define tOROR 287 -#define tINC 288 -#define tDEC 289 -#define kFUNCTION 290 -#define tIdentifier 291 -#define tAssignOper 292 -#define tEqOper 293 -#define tShiftOper 294 -#define tRelOper 295 -#define tNumericLiteral 296 -#define tStringLiteral 297 -#define LOWER_THAN_ELSE 298 - - +#define yyparse parser_parse +#define yylex parser_lex +#define yyerror parser_error +#define yylval parser_lval +#define yychar parser_char +#define yydebug parser_debug +#define yynerrs parser_nerrs /* Copy the first part of user declarations. */ + +/* Line 189 of yacc.c */ #line 19 "parser.y" @@ -282,6 +204,9 @@ static source_elements_t *source_elements_add_statement(source_elements_t*,state +/* Line 189 of yacc.c */ +#line 209 "parser.tab.c" + /* Enabling traces. */ #ifndef YYDEBUG # define YYDEBUG 0 @@ -300,9 +225,67 @@ static source_elements_t *source_elements_add_statement(source_elements_t*,state # define YYTOKEN_TABLE 0 #endif -#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) + +/* Tokens. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + kBREAK = 258, + kCASE = 259, + kCATCH = 260, + kCONTINUE = 261, + kDEFAULT = 262, + kDELETE = 263, + kDO = 264, + kELSE = 265, + kIF = 266, + kFINALLY = 267, + kFOR = 268, + kIN = 269, + kINSTANCEOF = 270, + kNEW = 271, + kNULL = 272, + kUNDEFINED = 273, + kRETURN = 274, + kSWITCH = 275, + kTHIS = 276, + kTHROW = 277, + kTRUE = 278, + kFALSE = 279, + kTRY = 280, + kTYPEOF = 281, + kVAR = 282, + kVOID = 283, + kWHILE = 284, + kWITH = 285, + tANDAND = 286, + tOROR = 287, + tINC = 288, + tDEC = 289, + tHTMLCOMMENT = 290, + kFUNCTION = 291, + tIdentifier = 292, + tAssignOper = 293, + tEqOper = 294, + tShiftOper = 295, + tRelOper = 296, + tNumericLiteral = 297, + tStringLiteral = 298, + LOWER_THAN_ELSE = 299 + }; +#endif + + + +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +typedef union YYSTYPE +{ + +/* Line 214 of yacc.c */ #line 149 "parser.y" -typedef union YYSTYPE { + int ival; const WCHAR *srcptr; LPCWSTR wstr; @@ -321,36 +304,71 @@ typedef union YYSTYPE { struct _statement_list_t *statement_list; struct _variable_list_t *variable_list; variable_declaration_t *variable_declaration; + + + +/* Line 214 of yacc.c */ +#line 312 "parser.tab.c" } YYSTYPE; -/* Line 196 of yacc.c. */ -#line 327 "parser.tab.c" +# define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 -# define YYSTYPE_IS_TRIVIAL 1 #endif - /* Copy the second part of user declarations. */ -/* Line 219 of yacc.c. */ -#line 339 "parser.tab.c" +/* Line 264 of yacc.c */ +#line 324 "parser.tab.c" -#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) -# define YYSIZE_T __SIZE_TYPE__ +#ifdef short +# undef short #endif -#if ! defined (YYSIZE_T) && defined (size_t) -# define YYSIZE_T size_t + +#ifdef YYTYPE_UINT8 +typedef YYTYPE_UINT8 yytype_uint8; +#else +typedef unsigned char yytype_uint8; #endif -#if ! defined (YYSIZE_T) && (defined (__STDC__) || defined (__cplusplus)) -# include /* INFRINGES ON USER NAME SPACE */ -# define YYSIZE_T size_t + +#ifdef YYTYPE_INT8 +typedef YYTYPE_INT8 yytype_int8; +#elif (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +typedef signed char yytype_int8; +#else +typedef short int yytype_int8; #endif -#if ! defined (YYSIZE_T) -# define YYSIZE_T unsigned int + +#ifdef YYTYPE_UINT16 +typedef YYTYPE_UINT16 yytype_uint16; +#else +typedef unsigned short int yytype_uint16; #endif +#ifdef YYTYPE_INT16 +typedef YYTYPE_INT16 yytype_int16; +#else +typedef short int yytype_int16; +#endif + +#ifndef YYSIZE_T +# ifdef __SIZE_TYPE__ +# define YYSIZE_T __SIZE_TYPE__ +# elif defined size_t +# define YYSIZE_T size_t +# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +# include /* INFRINGES ON USER NAME SPACE */ +# define YYSIZE_T size_t +# else +# define YYSIZE_T unsigned int +# endif +#endif + +#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) + #ifndef YY_ # if YYENABLE_NLS # if ENABLE_NLS @@ -363,7 +381,32 @@ typedef union YYSTYPE { # endif #endif -#if ! defined (yyoverflow) || YYERROR_VERBOSE +/* Suppress unused-variable warnings by "using" E. */ +#if ! defined lint || defined __GNUC__ +# define YYUSE(e) ((void) (e)) +#else +# define YYUSE(e) /* empty */ +#endif + +/* Identity function, used to suppress warnings about constant conditions. */ +#ifndef lint +# define YYID(n) (n) +#else +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static int +YYID (int yyi) +#else +static int +YYID (yyi) + int yyi; +#endif +{ + return yyi; +} +#endif + +#if ! defined yyoverflow || YYERROR_VERBOSE /* The parser invokes alloca or malloc; define the necessary symbols. */ @@ -371,66 +414,78 @@ typedef union YYSTYPE { # if YYSTACK_USE_ALLOCA # ifdef __GNUC__ # define YYSTACK_ALLOC __builtin_alloca +# elif defined __BUILTIN_VA_ARG_INCR +# include /* INFRINGES ON USER NAME SPACE */ +# elif defined _AIX +# define YYSTACK_ALLOC __alloca +# elif defined _MSC_VER +# include /* INFRINGES ON USER NAME SPACE */ +# define alloca _alloca # else # define YYSTACK_ALLOC alloca -# if defined (__STDC__) || defined (__cplusplus) +# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) # include /* INFRINGES ON USER NAME SPACE */ -# define YYINCLUDED_STDLIB_H +# ifndef _STDLIB_H +# define _STDLIB_H 1 +# endif # endif # endif # endif # endif # ifdef YYSTACK_ALLOC - /* Pacify GCC's `empty if-body' warning. */ -# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) + /* Pacify GCC's `empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) # ifndef YYSTACK_ALLOC_MAXIMUM /* The OS might guarantee only one guard page at the bottom of the stack, and a page size can be as small as 4096 bytes. So we cannot safely invoke alloca (N) if N exceeds 4096. Use a slightly smaller number to allow for a few compiler-allocated temporary stack slots. */ -# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2005 */ +# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ # endif # else # define YYSTACK_ALLOC YYMALLOC # define YYSTACK_FREE YYFREE # ifndef YYSTACK_ALLOC_MAXIMUM -# define YYSTACK_ALLOC_MAXIMUM ((YYSIZE_T) -1) +# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM # endif -# ifdef __cplusplus -extern "C" { +# if (defined __cplusplus && ! defined _STDLIB_H \ + && ! ((defined YYMALLOC || defined malloc) \ + && (defined YYFREE || defined free))) +# include /* INFRINGES ON USER NAME SPACE */ +# ifndef _STDLIB_H +# define _STDLIB_H 1 +# endif # endif # ifndef YYMALLOC # define YYMALLOC malloc -# if (! defined (malloc) && ! defined (YYINCLUDED_STDLIB_H) \ - && (defined (__STDC__) || defined (__cplusplus))) +# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ # endif # endif # ifndef YYFREE # define YYFREE free -# if (! defined (free) && ! defined (YYINCLUDED_STDLIB_H) \ - && (defined (__STDC__) || defined (__cplusplus))) +# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) void free (void *); /* INFRINGES ON USER NAME SPACE */ # endif # endif -# ifdef __cplusplus -} -# endif # endif -#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */ +#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ -#if (! defined (yyoverflow) \ - && (! defined (__cplusplus) \ - || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL))) +#if (! defined yyoverflow \ + && (! defined __cplusplus \ + || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc { - short int yyss; - YYSTYPE yyvs; - }; + yytype_int16 yyss_alloc; + YYSTYPE yyvs_alloc; +}; /* The size of the maximum gap between one aligned stack and the next. */ # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) @@ -438,13 +493,13 @@ union yyalloc /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ - ((N) * (sizeof (short int) + sizeof (YYSTYPE)) \ + ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + YYSTACK_GAP_MAXIMUM) /* Copy COUNT objects from FROM to TO. The source and destination do not overlap. */ # ifndef YYCOPY -# if defined (__GNUC__) && 1 < __GNUC__ +# if defined __GNUC__ && 1 < __GNUC__ # define YYCOPY(To, From, Count) \ __builtin_memcpy (To, From, (Count) * sizeof (*(From))) # else @@ -455,7 +510,7 @@ union yyalloc for (yyi = 0; yyi < (Count); yyi++) \ (To)[yyi] = (From)[yyi]; \ } \ - while (0) + while (YYID (0)) # endif # endif @@ -464,62 +519,56 @@ union yyalloc elements in the stack, and YYPTR gives the new location of the stack. Advance YYPTR to a properly aligned location for the next stack. */ -# define YYSTACK_RELOCATE(Stack) \ +# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ do \ { \ YYSIZE_T yynewbytes; \ - YYCOPY (&yyptr->Stack, Stack, yysize); \ - Stack = &yyptr->Stack; \ + YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ + Stack = &yyptr->Stack_alloc; \ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ yyptr += yynewbytes / sizeof (*yyptr); \ } \ - while (0) + while (YYID (0)) #endif -#if defined (__STDC__) || defined (__cplusplus) - typedef signed char yysigned_char; -#else - typedef short int yysigned_char; -#endif - -/* YYFINAL -- State number of the termination state. */ +/* YYFINAL -- State number of the termination state. */ #define YYFINAL 3 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 818 +#define YYLAST 891 -/* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 66 -/* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 85 -/* YYNRULES -- Number of rules. */ -#define YYNRULES 197 -/* YYNRULES -- Number of states. */ -#define YYNSTATES 356 +/* YYNTOKENS -- Number of terminals. */ +#define YYNTOKENS 67 +/* YYNNTS -- Number of nonterminals. */ +#define YYNNTS 86 +/* YYNRULES -- Number of rules. */ +#define YYNRULES 199 +/* YYNRULES -- Number of states. */ +#define YYNSTATES 358 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 298 +#define YYMAXUTOK 299 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ -static const unsigned char yytranslate[] = +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, 62, 2, 2, 2, 60, 55, 2, - 45, 46, 58, 56, 48, 57, 65, 59, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 51, 50, - 2, 49, 2, 52, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 63, 2, 2, 2, 61, 56, 2, + 46, 47, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 63, 2, 64, 54, 2, 2, 2, 2, 2, + 2, 64, 2, 65, 55, 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, 47, 53, 35, 61, 2, 2, 2, + 2, 2, 2, 48, 54, 37, 62, 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, @@ -536,148 +585,148 @@ static const unsigned char 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, - 36, 37, 38, 39, 40, 41, 42, 43, 44 + 35, 36, 38, 39, 40, 41, 42, 43, 44, 45 }; #if YYDEBUG /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in YYRHS. */ -static const unsigned short int yyprhs[] = +static const yytype_uint16 yyprhs[] = { - 0, 0, 3, 5, 6, 9, 18, 20, 22, 24, - 28, 29, 31, 33, 35, 37, 39, 41, 43, 45, - 47, 49, 51, 53, 55, 57, 59, 61, 64, 65, - 67, 71, 74, 78, 80, 84, 86, 90, 93, 96, - 97, 99, 102, 103, 105, 108, 110, 113, 121, 127, - 135, 141, 151, 162, 170, 179, 183, 187, 191, 197, - 201, 207, 211, 217, 218, 220, 222, 225, 230, 234, - 238, 242, 246, 251, 257, 260, 261, 263, 265, 269, - 270, 272, 274, 278, 280, 284, 288, 290, 294, 298, - 300, 306, 308, 314, 316, 320, 322, 326, 328, 332, - 334, 338, 340, 344, 346, 350, 352, 356, 358, 362, - 364, 368, 370, 374, 376, 380, 382, 386, 388, 392, - 396, 400, 402, 406, 410, 412, 416, 418, 422, 426, - 428, 432, 436, 440, 442, 445, 448, 451, 454, 457, - 460, 463, 466, 469, 471, 474, 477, 479, 481, 483, - 486, 488, 490, 495, 499, 503, 506, 509, 514, 518, - 521, 525, 527, 531, 533, 535, 537, 539, 541, 545, - 548, 552, 556, 562, 565, 570, 572, 575, 576, 578, - 581, 585, 589, 595, 597, 599, 601, 602, 604, 606, - 608, 610, 612, 614, 616, 618, 620, 622 + 0, 0, 3, 6, 8, 9, 10, 13, 22, 24, + 26, 28, 32, 33, 35, 37, 39, 41, 43, 45, + 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, + 68, 69, 71, 75, 78, 82, 84, 88, 90, 94, + 97, 100, 101, 103, 106, 107, 109, 112, 114, 117, + 125, 131, 139, 145, 155, 166, 174, 183, 187, 191, + 195, 201, 205, 211, 215, 221, 222, 224, 226, 229, + 234, 238, 242, 246, 250, 255, 261, 264, 265, 267, + 269, 273, 274, 276, 278, 282, 284, 288, 292, 294, + 298, 302, 304, 310, 312, 318, 320, 324, 326, 330, + 332, 336, 338, 342, 344, 348, 350, 354, 356, 360, + 362, 366, 368, 372, 374, 378, 380, 384, 386, 390, + 392, 396, 400, 404, 406, 410, 414, 416, 420, 422, + 426, 430, 432, 436, 440, 444, 446, 449, 452, 455, + 458, 461, 464, 467, 470, 473, 475, 478, 481, 483, + 485, 487, 490, 492, 494, 499, 503, 507, 510, 513, + 518, 522, 525, 529, 531, 535, 537, 539, 541, 543, + 545, 549, 552, 556, 560, 566, 569, 574, 576, 579, + 580, 582, 585, 589, 593, 599, 601, 603, 605, 606, + 608, 610, 612, 614, 616, 618, 620, 622, 624, 626 }; -/* YYRHS -- A `-1'-separated list of the rules' RHS. */ -static const short int yyrhs[] = +/* YYRHS -- A `-1'-separated list of the rules' RHS. */ +static const yytype_int16 yyrhs[] = { - 67, 0, -1, 68, -1, -1, 68, 74, -1, 70, - 147, 45, 73, 46, 47, 71, 35, -1, 36, -1, - 68, -1, 37, -1, 72, 48, 37, -1, -1, 72, - -1, 77, -1, 78, -1, 87, -1, 88, -1, 89, + 68, 0, -1, 70, 69, -1, 35, -1, -1, -1, + 70, 76, -1, 72, 149, 46, 75, 47, 48, 73, + 37, -1, 36, -1, 70, -1, 38, -1, 74, 49, + 38, -1, -1, 74, -1, 79, -1, 80, -1, 89, -1, 90, -1, 91, -1, 92, -1, 93, -1, 94, - -1, 95, -1, 96, -1, 102, -1, 103, -1, 74, - -1, 75, 74, -1, -1, 75, -1, 47, 75, 35, - -1, 47, 35, -1, 27, 79, 150, -1, 81, -1, - 79, 48, 81, -1, 82, -1, 80, 48, 82, -1, - 37, 83, -1, 37, 85, -1, -1, 84, -1, 49, - 110, -1, -1, 86, -1, 49, 111, -1, 50, -1, - 107, 150, -1, 11, 45, 107, 46, 74, 10, 74, - -1, 11, 45, 107, 46, 74, -1, 9, 74, 29, - 45, 107, 46, 50, -1, 29, 45, 107, 46, 74, - -1, 13, 45, 108, 50, 106, 50, 106, 46, 74, - -1, 13, 45, 27, 80, 50, 106, 50, 106, 46, - 74, -1, 13, 45, 133, 14, 107, 46, 74, -1, - 13, 45, 27, 82, 14, 107, 46, 74, -1, 6, - 147, 150, -1, 3, 147, 150, -1, 19, 106, 150, - -1, 30, 45, 107, 46, 74, -1, 37, 51, 74, - -1, 20, 45, 107, 46, 97, -1, 47, 98, 35, - -1, 47, 98, 101, 98, 35, -1, -1, 99, -1, - 100, -1, 99, 100, -1, 4, 107, 51, 76, -1, - 7, 51, 76, -1, 22, 107, 150, -1, 25, 77, - 104, -1, 25, 77, 105, -1, 25, 77, 104, 105, - -1, 5, 45, 37, 46, 77, -1, 12, 77, -1, - -1, 107, -1, 110, -1, 107, 48, 110, -1, -1, - 109, -1, 111, -1, 109, 48, 111, -1, 112, -1, - 133, 49, 110, -1, 133, 38, 110, -1, 113, -1, - 133, 49, 111, -1, 133, 38, 111, -1, 114, -1, - 114, 52, 110, 51, 110, -1, 115, -1, 115, 52, - 111, 51, 111, -1, 116, -1, 114, 32, 116, -1, - 117, -1, 115, 32, 117, -1, 118, -1, 116, 31, - 118, -1, 119, -1, 117, 31, 119, -1, 120, -1, - 118, 53, 120, -1, 121, -1, 119, 53, 121, -1, - 122, -1, 120, 54, 122, -1, 123, -1, 121, 54, - 123, -1, 124, -1, 122, 55, 124, -1, 125, -1, - 123, 55, 125, -1, 126, -1, 124, 39, 126, -1, - 127, -1, 125, 39, 127, -1, 128, -1, 126, 41, - 128, -1, 126, 15, 128, -1, 126, 14, 128, -1, - 128, -1, 127, 41, 128, -1, 127, 15, 128, -1, - 129, -1, 128, 40, 129, -1, 130, -1, 129, 56, - 130, -1, 129, 57, 130, -1, 131, -1, 130, 58, - 131, -1, 130, 59, 131, -1, 130, 60, 131, -1, - 132, -1, 8, 131, -1, 28, 131, -1, 26, 131, - -1, 33, 131, -1, 34, 131, -1, 56, 131, -1, - 57, 131, -1, 61, 131, -1, 62, 131, -1, 133, - -1, 133, 33, -1, 133, 34, -1, 134, -1, 136, - -1, 135, -1, 16, 134, -1, 139, -1, 69, -1, - 135, 63, 107, 64, -1, 135, 65, 37, -1, 16, - 135, 137, -1, 135, 137, -1, 136, 137, -1, 136, - 63, 107, 64, -1, 136, 65, 37, -1, 45, 46, - -1, 45, 138, 46, -1, 110, -1, 138, 48, 110, - -1, 21, -1, 37, -1, 148, -1, 140, -1, 144, - -1, 45, 107, 46, -1, 63, 64, -1, 63, 142, - 64, -1, 63, 141, 64, -1, 63, 141, 48, 143, - 64, -1, 143, 110, -1, 141, 48, 143, 110, -1, - 48, -1, 142, 48, -1, -1, 142, -1, 47, 35, - -1, 47, 145, 35, -1, 146, 51, 110, -1, 145, - 48, 146, 51, 110, -1, 37, -1, 43, -1, 42, - -1, -1, 37, -1, 17, -1, 18, -1, 149, -1, - 42, -1, 43, -1, 59, -1, 23, -1, 24, -1, - 50, -1, 1, -1 + -1, 95, -1, 96, -1, 97, -1, 98, -1, 104, + -1, 105, -1, 76, -1, 77, 76, -1, -1, 77, + -1, 48, 77, 37, -1, 48, 37, -1, 27, 81, + 152, -1, 83, -1, 81, 49, 83, -1, 84, -1, + 82, 49, 84, -1, 38, 85, -1, 38, 87, -1, + -1, 86, -1, 50, 112, -1, -1, 88, -1, 50, + 113, -1, 51, -1, 109, 152, -1, 11, 46, 109, + 47, 76, 10, 76, -1, 11, 46, 109, 47, 76, + -1, 9, 76, 29, 46, 109, 47, 51, -1, 29, + 46, 109, 47, 76, -1, 13, 46, 110, 51, 108, + 51, 108, 47, 76, -1, 13, 46, 27, 82, 51, + 108, 51, 108, 47, 76, -1, 13, 46, 135, 14, + 109, 47, 76, -1, 13, 46, 27, 84, 14, 109, + 47, 76, -1, 6, 149, 152, -1, 3, 149, 152, + -1, 19, 108, 152, -1, 30, 46, 109, 47, 76, + -1, 38, 52, 76, -1, 20, 46, 109, 47, 99, + -1, 48, 100, 37, -1, 48, 100, 103, 100, 37, + -1, -1, 101, -1, 102, -1, 101, 102, -1, 4, + 109, 52, 78, -1, 7, 52, 78, -1, 22, 109, + 152, -1, 25, 79, 106, -1, 25, 79, 107, -1, + 25, 79, 106, 107, -1, 5, 46, 38, 47, 79, + -1, 12, 79, -1, -1, 109, -1, 112, -1, 109, + 49, 112, -1, -1, 111, -1, 113, -1, 111, 49, + 113, -1, 114, -1, 135, 50, 112, -1, 135, 39, + 112, -1, 115, -1, 135, 50, 113, -1, 135, 39, + 113, -1, 116, -1, 116, 53, 112, 52, 112, -1, + 117, -1, 117, 53, 113, 52, 113, -1, 118, -1, + 116, 32, 118, -1, 119, -1, 117, 32, 119, -1, + 120, -1, 118, 31, 120, -1, 121, -1, 119, 31, + 121, -1, 122, -1, 120, 54, 122, -1, 123, -1, + 121, 54, 123, -1, 124, -1, 122, 55, 124, -1, + 125, -1, 123, 55, 125, -1, 126, -1, 124, 56, + 126, -1, 127, -1, 125, 56, 127, -1, 128, -1, + 126, 40, 128, -1, 129, -1, 127, 40, 129, -1, + 130, -1, 128, 42, 130, -1, 128, 15, 130, -1, + 128, 14, 130, -1, 130, -1, 129, 42, 130, -1, + 129, 15, 130, -1, 131, -1, 130, 41, 131, -1, + 132, -1, 131, 57, 132, -1, 131, 58, 132, -1, + 133, -1, 132, 59, 133, -1, 132, 60, 133, -1, + 132, 61, 133, -1, 134, -1, 8, 133, -1, 28, + 133, -1, 26, 133, -1, 33, 133, -1, 34, 133, + -1, 57, 133, -1, 58, 133, -1, 62, 133, -1, + 63, 133, -1, 135, -1, 135, 33, -1, 135, 34, + -1, 136, -1, 138, -1, 137, -1, 16, 136, -1, + 141, -1, 71, -1, 137, 64, 109, 65, -1, 137, + 66, 38, -1, 16, 137, 139, -1, 137, 139, -1, + 138, 139, -1, 138, 64, 109, 65, -1, 138, 66, + 38, -1, 46, 47, -1, 46, 140, 47, -1, 112, + -1, 140, 49, 112, -1, 21, -1, 38, -1, 150, + -1, 142, -1, 146, -1, 46, 109, 47, -1, 64, + 65, -1, 64, 144, 65, -1, 64, 143, 65, -1, + 64, 143, 49, 145, 65, -1, 145, 112, -1, 143, + 49, 145, 112, -1, 49, -1, 144, 49, -1, -1, + 144, -1, 48, 37, -1, 48, 147, 37, -1, 148, + 52, 112, -1, 147, 49, 148, 52, 112, -1, 38, + -1, 44, -1, 43, -1, -1, 38, -1, 17, -1, + 18, -1, 151, -1, 43, -1, 44, -1, 60, -1, + 23, -1, 24, -1, 51, -1, 1, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ -static const unsigned short int yyrline[] = +static const yytype_uint16 yyrline[] = { - 0, 254, 254, 258, 259, 264, 268, 272, 276, 277, - 282, 283, 287, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 304, 305, 310, 311, - 315, 316, 320, 325, 326, 331, 333, 338, 343, 348, - 349, 353, 358, 359, 363, 368, 372, 377, 379, 384, - 386, 388, 390, 392, 394, 399, 404, 409, 414, 419, - 424, 429, 431, 436, 437, 441, 442, 447, 452, 457, - 462, 463, 464, 469, 474, 478, 479, 483, 484, 489, - 490, 494, 496, 501, 502, 504, 509, 511, 513, 518, - 519, 524, 526, 531, 532, 537, 539, 544, 545, 550, - 552, 557, 558, 563, 565, 570, 571, 576, 578, 583, - 584, 589, 591, 596, 597, 602, 603, 608, 609, 611, - 613, 618, 619, 621, 626, 627, 632, 634, 636, 641, - 642, 644, 646, 651, 652, 654, 655, 657, 658, 659, - 660, 661, 662, 666, 668, 670, 676, 677, 681, 682, - 686, 687, 688, 690, 692, 697, 699, 701, 703, 708, - 709, 713, 714, 719, 720, 721, 722, 723, 724, 728, - 729, 730, 731, 736, 738, 743, 744, 748, 749, 753, - 754, 759, 761, 766, 767, 768, 772, 773, 777, 778, - 779, 780, 781, 782, 787, 788, 791, 792 + 0, 254, 254, 258, 259, 263, 264, 269, 273, 277, + 281, 282, 287, 288, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 309, 310, + 315, 316, 320, 321, 325, 330, 331, 336, 338, 343, + 348, 353, 354, 358, 363, 364, 368, 373, 377, 382, + 384, 389, 391, 393, 395, 397, 399, 404, 409, 414, + 419, 424, 429, 434, 436, 441, 442, 446, 447, 452, + 457, 462, 467, 468, 469, 474, 479, 483, 484, 488, + 489, 494, 495, 499, 501, 506, 507, 509, 514, 516, + 518, 523, 524, 529, 531, 536, 537, 542, 544, 549, + 550, 555, 557, 562, 563, 568, 570, 575, 576, 581, + 583, 588, 589, 594, 596, 601, 602, 607, 608, 613, + 614, 616, 618, 623, 624, 626, 631, 632, 637, 639, + 641, 646, 647, 649, 651, 656, 657, 659, 660, 662, + 663, 664, 665, 666, 667, 671, 673, 675, 681, 682, + 686, 687, 691, 692, 693, 695, 697, 702, 704, 706, + 708, 713, 714, 718, 719, 724, 725, 726, 727, 728, + 729, 733, 734, 735, 736, 741, 743, 748, 749, 753, + 754, 758, 759, 764, 766, 771, 772, 773, 777, 778, + 782, 783, 784, 785, 786, 787, 792, 793, 796, 797 }; #endif #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. - First, the terminals, then, starting at YYNTOKENS, nonterminals. */ + First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { "$end", "error", "$undefined", "kBREAK", "kCASE", "kCATCH", "kCONTINUE", "kDEFAULT", "kDELETE", "kDO", "kELSE", "kIF", "kFINALLY", "kFOR", "kIN", "kINSTANCEOF", "kNEW", "kNULL", "kUNDEFINED", "kRETURN", "kSWITCH", "kTHIS", "kTHROW", "kTRUE", "kFALSE", "kTRY", "kTYPEOF", "kVAR", "kVOID", - "kWHILE", "kWITH", "tANDAND", "tOROR", "tINC", "tDEC", "'}'", - "kFUNCTION", "tIdentifier", "tAssignOper", "tEqOper", "tShiftOper", - "tRelOper", "tNumericLiteral", "tStringLiteral", "LOWER_THAN_ELSE", - "'('", "')'", "'{'", "','", "'='", "';'", "':'", "'?'", "'|'", "'^'", - "'&'", "'+'", "'-'", "'*'", "'/'", "'%'", "'~'", "'!'", "'['", "']'", - "'.'", "$accept", "Program", "SourceElements", "FunctionExpression", - "KFunction", "FunctionBody", "FormalParameterList", - "FormalParameterList_opt", "Statement", "StatementList", - "StatementList_opt", "Block", "VariableStatement", + "kWHILE", "kWITH", "tANDAND", "tOROR", "tINC", "tDEC", "tHTMLCOMMENT", + "kFUNCTION", "'}'", "tIdentifier", "tAssignOper", "tEqOper", + "tShiftOper", "tRelOper", "tNumericLiteral", "tStringLiteral", + "LOWER_THAN_ELSE", "'('", "')'", "'{'", "','", "'='", "';'", "':'", + "'?'", "'|'", "'^'", "'&'", "'+'", "'-'", "'*'", "'/'", "'%'", "'~'", + "'!'", "'['", "']'", "'.'", "$accept", "Program", "HtmlComment", + "SourceElements", "FunctionExpression", "KFunction", "FunctionBody", + "FormalParameterList", "FormalParameterList_opt", "Statement", + "StatementList", "StatementList_opt", "Block", "VariableStatement", "VariableDeclarationList", "VariableDeclarationListNoIn", "VariableDeclaration", "VariableDeclarationNoIn", "Initialiser_opt", "Initialiser", "InitialiserNoIn_opt", "InitialiserNoIn", @@ -708,399 +757,415 @@ static const char *const yytname[] = # ifdef YYPRINT /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to token YYLEX-NUM. */ -static const unsigned short int yytoknum[] = +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, 125, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 40, 41, 123, 44, 61, - 59, 58, 63, 124, 94, 38, 43, 45, 42, 47, - 37, 126, 33, 91, 93, 46 + 285, 286, 287, 288, 289, 290, 291, 125, 292, 293, + 294, 295, 296, 297, 298, 299, 40, 41, 123, 44, + 61, 59, 58, 63, 124, 94, 38, 43, 45, 42, + 47, 37, 126, 33, 91, 93, 46 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const unsigned char yyr1[] = +static const yytype_uint8 yyr1[] = { - 0, 66, 67, 68, 68, 69, 70, 71, 72, 72, - 73, 73, 74, 74, 74, 74, 74, 74, 74, 74, - 74, 74, 74, 74, 74, 74, 75, 75, 76, 76, - 77, 77, 78, 79, 79, 80, 80, 81, 82, 83, - 83, 84, 85, 85, 86, 87, 88, 89, 89, 90, - 90, 90, 90, 90, 90, 91, 92, 93, 94, 95, - 96, 97, 97, 98, 98, 99, 99, 100, 101, 102, - 103, 103, 103, 104, 105, 106, 106, 107, 107, 108, - 108, 109, 109, 110, 110, 110, 111, 111, 111, 112, - 112, 113, 113, 114, 114, 115, 115, 116, 116, 117, - 117, 118, 118, 119, 119, 120, 120, 121, 121, 122, - 122, 123, 123, 124, 124, 125, 125, 126, 126, 126, - 126, 127, 127, 127, 128, 128, 129, 129, 129, 130, - 130, 130, 130, 131, 131, 131, 131, 131, 131, 131, - 131, 131, 131, 132, 132, 132, 133, 133, 134, 134, - 135, 135, 135, 135, 135, 136, 136, 136, 136, 137, - 137, 138, 138, 139, 139, 139, 139, 139, 139, 140, - 140, 140, 140, 141, 141, 142, 142, 143, 143, 144, - 144, 145, 145, 146, 146, 146, 147, 147, 148, 148, - 148, 148, 148, 148, 149, 149, 150, 150 + 0, 67, 68, 69, 69, 70, 70, 71, 72, 73, + 74, 74, 75, 75, 76, 76, 76, 76, 76, 76, + 76, 76, 76, 76, 76, 76, 76, 76, 77, 77, + 78, 78, 79, 79, 80, 81, 81, 82, 82, 83, + 84, 85, 85, 86, 87, 87, 88, 89, 90, 91, + 91, 92, 92, 92, 92, 92, 92, 93, 94, 95, + 96, 97, 98, 99, 99, 100, 100, 101, 101, 102, + 103, 104, 105, 105, 105, 106, 107, 108, 108, 109, + 109, 110, 110, 111, 111, 112, 112, 112, 113, 113, + 113, 114, 114, 115, 115, 116, 116, 117, 117, 118, + 118, 119, 119, 120, 120, 121, 121, 122, 122, 123, + 123, 124, 124, 125, 125, 126, 126, 127, 127, 128, + 128, 128, 128, 129, 129, 129, 130, 130, 131, 131, + 131, 132, 132, 132, 132, 133, 133, 133, 133, 133, + 133, 133, 133, 133, 133, 134, 134, 134, 135, 135, + 136, 136, 137, 137, 137, 137, 137, 138, 138, 138, + 138, 139, 139, 140, 140, 141, 141, 141, 141, 141, + 141, 142, 142, 142, 142, 143, 143, 144, 144, 145, + 145, 146, 146, 147, 147, 148, 148, 148, 149, 149, + 150, 150, 150, 150, 150, 150, 151, 151, 152, 152 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ -static const unsigned char yyr2[] = +static const yytype_uint8 yyr2[] = { - 0, 2, 1, 0, 2, 8, 1, 1, 1, 3, - 0, 1, 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, 9, 10, 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, 3, 0, - 1, 1, 3, 1, 3, 3, 1, 3, 3, 1, - 5, 1, 5, 1, 3, 1, 3, 1, 3, 1, + 0, 2, 2, 1, 0, 0, 2, 8, 1, 1, + 1, 3, 0, 1, 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, 9, 10, 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, + 3, 0, 1, 1, 3, 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, - 1, 1, 1, 1, 1, 1, 1, 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, 1, 1, 1, 1, 1, 1, 1, 1 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state STATE-NUM when YYTABLE doesn't specify something else to do. Zero means the default is an error. */ -static const unsigned char yydefact[] = +static const yytype_uint8 yydefact[] = { - 3, 0, 2, 1, 186, 186, 0, 0, 0, 0, - 0, 188, 189, 75, 0, 163, 0, 194, 195, 0, - 0, 0, 0, 0, 0, 0, 0, 6, 164, 191, - 192, 0, 0, 45, 0, 0, 193, 0, 0, 177, - 151, 186, 4, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 0, 77, 83, - 89, 93, 97, 101, 105, 109, 113, 117, 124, 126, - 129, 133, 143, 146, 148, 147, 150, 166, 167, 165, - 190, 187, 0, 0, 164, 0, 134, 143, 0, 0, - 79, 149, 148, 0, 76, 0, 0, 0, 0, 136, - 39, 0, 33, 135, 0, 0, 137, 138, 0, 0, - 31, 164, 191, 192, 26, 0, 0, 0, 139, 140, - 141, 142, 175, 169, 0, 178, 0, 0, 197, 0, - 196, 46, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 144, 145, - 0, 0, 0, 0, 0, 155, 0, 0, 156, 56, - 55, 179, 183, 185, 184, 0, 0, 0, 0, 80, - 81, 86, 91, 95, 99, 103, 107, 111, 115, 121, - 143, 154, 57, 0, 69, 31, 0, 0, 70, 71, - 0, 37, 40, 0, 32, 0, 0, 59, 168, 30, - 27, 180, 0, 0, 177, 171, 176, 170, 173, 10, - 78, 94, 0, 98, 102, 106, 110, 114, 120, 119, - 118, 125, 127, 128, 130, 131, 132, 85, 84, 159, - 161, 0, 0, 153, 0, 158, 0, 0, 42, 0, - 35, 75, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 74, 72, 41, - 34, 0, 0, 0, 181, 178, 0, 8, 11, 0, - 0, 160, 0, 152, 157, 0, 48, 0, 38, 43, - 0, 75, 0, 0, 82, 143, 96, 0, 100, 104, - 108, 112, 116, 123, 122, 0, 88, 87, 63, 60, - 0, 50, 58, 0, 172, 174, 0, 0, 90, 162, - 0, 0, 44, 36, 0, 0, 75, 0, 0, 0, - 0, 64, 65, 0, 182, 9, 3, 49, 47, 75, - 0, 0, 92, 53, 0, 0, 61, 63, 66, 73, - 7, 0, 0, 54, 0, 28, 28, 0, 5, 0, - 51, 29, 67, 68, 62, 52 + 5, 0, 4, 1, 188, 188, 0, 0, 0, 0, + 0, 190, 191, 77, 0, 165, 0, 196, 197, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 8, 166, + 193, 194, 0, 0, 47, 0, 0, 195, 0, 0, + 179, 2, 153, 188, 6, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 0, + 79, 85, 91, 95, 99, 103, 107, 111, 115, 119, + 126, 128, 131, 135, 145, 148, 150, 149, 152, 168, + 169, 167, 192, 189, 0, 0, 166, 0, 136, 145, + 0, 0, 81, 151, 150, 0, 78, 0, 0, 0, + 0, 138, 41, 0, 35, 137, 0, 0, 139, 140, + 0, 0, 33, 166, 193, 194, 28, 0, 0, 0, + 141, 142, 143, 144, 177, 171, 0, 180, 0, 0, + 199, 0, 198, 48, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 146, 147, 0, 0, 0, 0, 0, 157, 0, 0, + 158, 58, 57, 181, 185, 187, 186, 0, 0, 0, + 0, 82, 83, 88, 93, 97, 101, 105, 109, 113, + 117, 123, 145, 156, 59, 0, 71, 33, 0, 0, + 72, 73, 0, 39, 42, 0, 34, 0, 0, 61, + 170, 32, 29, 182, 0, 0, 179, 173, 178, 172, + 175, 12, 80, 96, 0, 100, 104, 108, 112, 116, + 122, 121, 120, 127, 129, 130, 132, 133, 134, 87, + 86, 161, 163, 0, 0, 155, 0, 160, 0, 0, + 44, 0, 37, 77, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, + 74, 43, 36, 0, 0, 0, 183, 180, 0, 10, + 13, 0, 0, 162, 0, 154, 159, 0, 50, 0, + 40, 45, 0, 77, 0, 0, 84, 145, 98, 0, + 102, 106, 110, 114, 118, 125, 124, 0, 90, 89, + 65, 62, 0, 52, 60, 0, 174, 176, 0, 0, + 92, 164, 0, 0, 46, 38, 0, 0, 77, 0, + 0, 0, 0, 66, 67, 0, 184, 11, 5, 51, + 49, 77, 0, 0, 94, 55, 0, 0, 63, 65, + 68, 75, 9, 0, 0, 56, 0, 30, 30, 0, + 7, 0, 53, 31, 69, 70, 64, 54 }; -/* YYDEFGOTO[NTERM-NUM]. */ -static const short int yydefgoto[] = +/* YYDEFGOTO[NTERM-NUM]. */ +static const yytype_int16 yydefgoto[] = { - -1, 1, 2, 40, 41, 341, 268, 269, 114, 115, - 352, 43, 44, 101, 239, 102, 240, 191, 192, 278, - 279, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 299, 320, 321, 322, 337, 55, 56, 188, 189, - 93, 57, 168, 169, 58, 170, 59, 171, 60, 172, - 61, 173, 62, 174, 63, 175, 64, 176, 65, 177, - 66, 178, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 155, 231, 76, 77, 124, 125, 126, 78, 116, - 117, 82, 79, 80, 131 + -1, 1, 41, 2, 42, 43, 343, 270, 271, 116, + 117, 354, 45, 46, 103, 241, 104, 242, 193, 194, + 280, 281, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 301, 322, 323, 324, 339, 57, 58, 190, + 191, 95, 59, 170, 171, 60, 172, 61, 173, 62, + 174, 63, 175, 64, 176, 65, 177, 66, 178, 67, + 179, 68, 180, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 157, 233, 78, 79, 126, 127, 128, 80, + 118, 119, 84, 81, 82, 133 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -236 -static const short int yypact[] = +#define YYPACT_NINF -242 +static const yytype_int16 yypact[] = { - -236, 13, 555, -236, -19, -19, 755, 555, -1, 31, - 87, -236, -236, 755, 37, -236, 755, -236, -236, -21, - 755, 34, 755, 54, 62, 755, 755, -236, 77, -236, - -236, 755, 372, -236, 755, 755, -236, 755, 755, 26, - -236, -19, -236, -236, -236, -236, -236, -236, -236, -236, - -236, -236, -236, -236, -236, -236, -236, 9, -236, -236, - 20, 16, 100, 104, 107, 140, 0, 182, 138, 97, - -236, -236, 51, -236, -20, -15, -236, -236, -236, -236, - -236, -236, 11, 11, -236, 117, -236, 181, 175, 755, - 655, -236, -20, 11, 173, 755, 9, 433, 126, -236, - 174, 10, -236, -236, 755, 755, -236, -236, 555, 22, - 319, 77, 176, 177, -236, 494, -28, 179, -236, -236, - -236, -236, -236, -236, 27, 61, 755, 180, -236, 755, - -236, -236, 755, 755, 755, 755, 755, 755, 755, 755, - 755, 755, 755, 755, 755, 755, 755, 755, -236, -236, - 755, 755, 705, 755, 189, -236, 755, 194, -236, -236, - -236, -236, -236, -236, -236, 187, 49, 196, 184, 188, - -236, -236, 21, 206, 185, 190, 186, 203, 1, 182, - 84, -236, -236, 68, -236, -236, 198, -21, 233, -236, - 755, -236, -236, 34, -236, 132, 152, -236, -236, -236, - -236, -236, 154, 755, 199, -236, -236, -236, -236, 209, - -236, 16, 197, 100, 104, 107, 140, 0, 182, 182, - 182, 138, 97, 97, -236, -236, -236, -236, -236, -236, - -236, 153, 73, -236, 79, -236, 755, 555, 200, 155, - 236, 755, 755, 755, 755, 755, 755, 755, 755, 755, - 755, 755, 755, 755, 755, 204, 215, -236, -236, -236, - -236, 555, 555, 202, -236, 207, 605, -236, 210, 208, - 755, -236, 755, -236, -236, 161, 247, 755, -236, -236, - 196, 755, 755, 211, -236, 102, 206, 212, 185, 190, - 186, 203, 1, 182, 182, 164, -236, -236, 258, -236, - 218, -236, -236, 755, -236, -236, 228, 219, -236, -236, - 217, 555, -236, -236, 231, 165, 755, 755, 555, 755, - -4, 258, -236, -21, -236, -236, -236, -236, -236, 755, - 555, 222, -236, -236, 94, 234, -236, 258, -236, -236, - 555, 249, 240, -236, 555, 555, 555, 252, -236, 555, - -236, 555, -236, -236, -236, -236 + -242, 16, 375, -242, 0, 0, 827, 623, 11, 55, + 93, -242, -242, 827, 76, -242, 827, -242, -242, -4, + 827, 33, 827, 86, 92, 827, 827, -242, -242, 23, + -242, -242, 827, 437, -242, 827, 827, -242, 827, 827, + -43, -242, -242, 0, -242, -242, -242, -242, -242, -242, + -242, -242, -242, -242, -242, -242, -242, -242, -242, 7, + -242, -242, -8, 52, 88, 90, 95, 119, 18, 140, + 158, 44, -242, -242, 73, -242, 27, 32, -242, -242, + -242, -242, -242, -242, 2, 2, -242, 117, -242, 186, + 164, 827, 725, -242, 27, 2, 156, 827, 7, 499, + 64, -242, 167, 10, -242, -242, 827, 827, -242, -242, + 623, 25, 321, 23, 159, 173, -242, 561, 13, 175, + -242, -242, -242, -242, -242, -242, -31, 35, 827, 182, + -242, 827, -242, -242, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + -242, -242, 827, 827, 776, 827, 191, -242, 827, 192, + -242, -242, -242, -242, -242, -242, -242, 187, 81, 194, + 183, 189, -242, -242, -7, 204, 185, 181, 188, 201, + -1, 140, 85, -242, -242, 109, -242, -242, 197, -4, + 233, -242, 827, -242, -242, 33, -242, 115, 133, -242, + -242, -242, -242, -242, 82, 827, 198, -242, -242, -242, + -242, 208, -242, 52, 196, 88, 90, 95, 119, 18, + 140, 140, 140, 158, 44, 44, -242, -242, -242, -242, + -242, -242, -242, 151, 37, -242, 48, -242, 827, 623, + 199, 150, 236, 827, 827, 827, 827, 827, 827, 827, + 827, 827, 827, 827, 827, 827, 827, 203, 214, -242, + -242, -242, -242, 623, 623, 202, -242, 206, 674, -242, + 207, 210, 827, -242, 827, -242, -242, 157, 243, 827, + -242, -242, 194, 827, 827, 209, -242, 163, 204, 211, + 185, 181, 188, 201, -1, 140, 140, 161, -242, -242, + 255, -242, 217, -242, -242, 827, -242, -242, 227, 218, + -242, -242, 216, 623, -242, -242, 219, 165, 827, 827, + 623, 827, 6, 255, -242, -4, -242, -242, -242, -242, + -242, 827, 623, 221, -242, -242, -37, 231, -242, 255, + -242, -242, 623, 232, 239, -242, 623, 623, 623, 250, + -242, 623, -242, 623, -242, -242, -242, -242 }; /* YYPGOTO[NTERM-NUM]. */ -static const short int yypgoto[] = +static const yytype_int16 yypgoto[] = { - -236, -236, -38, -236, -236, -236, -236, -236, -2, -128, - -57, -10, -236, -236, -236, 98, 12, -236, -236, -236, - -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, - -236, -236, -47, -236, -27, -236, -236, -236, -236, 105, - -235, -12, -236, -236, -64, -221, -236, -236, -236, -236, - 163, 53, 166, 52, 167, 55, 162, 56, 168, 60, - 172, 50, -61, 169, 76, 2, -236, 29, 302, 304, - -236, -58, -236, -236, -236, -236, 111, 114, -236, -236, - 119, -3, -236, -236, 19 + -242, -242, -242, -40, -242, -242, -242, -242, -242, -2, + -126, -59, -10, -242, -242, -242, 96, 8, -242, -242, + -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, + -242, -242, -242, -46, -242, -29, -242, -242, -242, -242, + 102, -241, -12, -242, -242, -65, -227, -242, -242, -242, + -242, 162, 50, 166, 51, 160, 53, 169, 54, 171, + 62, 174, 65, -61, 155, 78, 1, -242, 29, 290, + 294, -242, -47, -242, -242, -242, -242, 99, 107, -242, + -242, 113, 5, -242, -242, 49 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule which number is the opposite. If zero, do what YYDEFACT says. If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -186 -static const short int yytable[] = +#define YYTABLE_NINF -188 +static const yytype_int16 yytable[] = { - 42, 94, 83, 335, 96, 88, 283, 201, 86, 98, - 128, 128, 128, 3, 139, 140, 250, 158, 81, 109, - 202, 284, 99, 287, 103, 152, 97, 106, 107, 179, - 152, 336, 296, 297, 181, 87, 118, 119, 127, 120, - 121, 141, 251, 153, 89, 154, 314, 134, 156, 87, - 157, 87, 132, 243, 87, 87, 312, 129, 193, 130, - 130, 130, 208, 87, 87, 210, 87, 87, 198, 212, - 129, 100, 133, 244, 122, 204, 90, 166, 218, 219, - 220, 331, 95, 183, 148, 149, 227, 228, 230, 150, - 123, 205, 195, 196, 342, 237, 332, 129, 252, 104, - 151, 159, 160, 10, 11, 12, 197, 105, 15, 206, - 17, 18, 182, 200, 255, 184, 129, 148, 149, 180, - 194, 129, 253, 27, 84, 207, 259, 129, 108, 29, - 30, 186, 31, 254, 85, 148, 149, 273, 187, 264, - 253, 232, 129, 274, 234, 345, 36, 224, 225, 226, - 39, 254, 161, 135, 162, 145, 146, 147, 136, 163, - 164, 87, 137, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 257, 261, 138, - 129, 179, 179, 179, 179, 179, 179, 179, 179, 293, - 294, 162, 179, 179, 143, 144, 163, 164, 262, 271, - 129, 272, 305, 280, 165, 281, 308, 310, 309, 129, - 318, 330, 129, 129, 148, 149, 179, 351, 351, 222, - 223, 129, 142, 190, 275, 209, 233, -185, -184, 94, - 203, 235, 236, 238, 241, 276, 242, 245, 246, 324, - 295, 248, 249, 256, 247, 187, 267, 122, 270, 277, - 282, 298, 300, 303, 307, 206, 179, 311, 306, 301, - 302, 316, 319, 317, 323, 325, 326, 327, 344, 94, - 315, 285, 87, 285, 87, 87, 87, 87, 87, 87, - 87, 329, 285, 285, 348, 346, 349, 354, 340, 353, - 347, 260, 313, 258, 338, 211, 286, 288, 215, 292, - 213, 289, 214, 290, 94, 216, 285, 334, 291, 328, - 217, 221, 91, 339, 92, 265, 333, 94, 266, 0, - -179, 263, 0, 0, 0, 0, 0, 0, 343, 0, - 0, 0, 0, -179, -179, 0, 0, 0, 42, 0, - 0, 0, 350, 0, 0, 0, 285, 355, 0, 200, - -179, -179, 0, 0, 0, 0, 0, -179, -179, -179, - -179, 0, 0, 0, 0, 0, 0, -179, -179, 0, - 0, -179, -179, -179, -179, 4, 0, -179, 5, -179, - 6, 7, 0, 8, -179, 9, 0, 0, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 0, 0, 25, 26, 110, 27, 111, - 0, 0, 0, 0, 112, 113, 0, 31, 0, 32, - 0, 0, 33, 0, 0, 0, 0, 0, 34, 35, - 0, 36, 0, 37, 38, 39, 4, 0, 0, 5, - 0, 6, 7, 0, 8, 0, 9, 0, 0, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 0, 0, 25, 26, 185, 27, - 28, 0, 0, 0, 0, 29, 30, 0, 31, 0, - 32, 0, 0, 33, 0, 0, 0, 0, 0, 34, - 35, 0, 36, 0, 37, 38, 39, 4, 0, 0, - 5, 0, 6, 7, 0, 8, 0, 9, 0, 0, - 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 0, 0, 25, 26, 199, - 27, 28, 0, 0, 0, 0, 29, 30, 0, 31, - 0, 32, 0, 0, 33, 0, 0, 0, 0, 0, - 34, 35, 0, 36, 0, 37, 38, 39, 4, 0, - 0, 5, 0, 6, 7, 0, 8, 0, 9, 0, + 44, 96, 285, 130, 98, 90, 124, 88, 130, 100, + 85, 130, 131, 337, 252, 347, 3, 286, 206, 289, + 111, 101, 125, 105, 134, 245, 108, 109, 298, 299, + 160, 181, 141, 142, 207, 89, 120, 121, 83, 122, + 123, 253, 316, 338, 99, 135, 246, 183, 129, 89, + 203, 89, 314, 132, 89, 89, 131, 91, 132, 195, + 143, 132, 204, 210, 89, 89, 212, 89, 89, 188, + 214, 102, 200, 154, 131, 110, 189, 333, 154, 168, + 220, 221, 222, 136, 208, 185, 131, 229, 230, 232, + 344, 155, 334, 156, 197, 198, 158, 131, 159, 254, + 209, 92, 275, 147, 148, 149, 150, 151, 199, 10, + 11, 12, 152, 276, 15, 202, 17, 18, 150, 151, + 164, 182, 97, 153, 255, 165, 166, 261, 239, 28, + 131, 86, 106, 161, 162, 256, 30, 31, 107, 32, + 266, 87, 137, 234, 184, 138, 236, 186, 226, 227, + 228, 139, 196, 37, 163, 164, 257, 40, 131, 140, + 165, 166, 263, 89, 131, 89, 89, 89, 89, 89, + 89, 89, 89, 89, 89, 89, 89, 89, 89, 259, + 264, 144, 131, 181, 181, 181, 181, 181, 181, 181, + 181, 295, 296, 167, 181, 181, 150, 151, 273, 282, + 274, 283, 255, 307, 312, 131, 131, 310, 320, 311, + 131, -187, 332, 256, 131, 145, 146, 192, 181, 150, + 151, 353, 353, 224, 225, -186, 277, 205, 211, 235, + 237, 96, 240, 238, 243, 247, 249, 278, 244, 248, + 326, 251, 297, 258, 250, 189, 269, 124, 272, 279, + 284, 300, 302, 313, 305, 208, 308, 309, 181, 321, + 318, 303, 304, 319, 325, 327, 328, 329, 346, 350, + 331, 96, 317, 287, 89, 287, 89, 89, 89, 89, + 89, 89, 89, 348, 287, 287, 351, 356, 342, 355, + 315, 262, 260, 349, 340, 288, 213, 216, 290, 223, + 93, 291, 215, 292, 94, 267, 96, 217, 287, 336, + 218, 330, 293, 268, 219, 341, 294, 265, 335, 96, + 0, 0, -181, 0, 0, 0, 0, 0, 0, 0, + 345, 0, 0, 0, 0, -181, -181, 0, 0, 0, + 44, 0, 0, 0, 352, 0, 0, 0, 287, 357, + 0, 202, -181, -181, 0, 0, 0, 0, 0, 0, + -181, -181, -181, -181, 0, 0, 0, 0, 0, 0, + -181, -181, 0, 0, -181, -181, -181, -181, 4, 0, + -181, 5, -181, 6, 7, 0, 8, -181, 9, 0, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 25, 26, - 0, 27, 28, 0, 0, 0, 0, 29, 30, 0, - 31, 0, 32, 0, 0, 33, 0, 0, 0, 0, - 0, 34, 35, 6, 36, 0, 37, 38, 39, 0, + 27, 28, 0, 29, 0, 0, 0, 0, 30, 31, + 0, 32, 0, 33, 0, 0, 34, 0, 0, 0, + 0, 0, 35, 36, 0, 37, 0, 38, 39, 40, + 4, 0, 0, 5, 0, 6, 7, 0, 8, 0, + 9, 0, 0, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, + 25, 26, 0, 28, 112, 113, 0, 0, 0, 0, + 114, 115, 0, 32, 0, 33, 0, 0, 34, 0, + 0, 0, 0, 0, 35, 36, 0, 37, 0, 38, + 39, 40, 4, 0, 0, 5, 0, 6, 7, 0, + 8, 0, 9, 0, 0, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 0, 0, 25, 26, 0, 28, 187, 29, 0, 0, + 0, 0, 30, 31, 0, 32, 0, 33, 0, 0, + 34, 0, 0, 0, 0, 0, 35, 36, 0, 37, + 0, 38, 39, 40, 4, 0, 0, 5, 0, 6, + 7, 0, 8, 0, 9, 0, 0, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 0, 0, 25, 26, 0, 28, 201, 29, + 0, 0, 0, 0, 30, 31, 0, 32, 0, 33, + 0, 0, 34, 0, 0, 0, 0, 0, 35, 36, + 0, 37, 0, 38, 39, 40, 4, 0, 0, 5, + 0, 6, 7, 0, 8, 0, 9, 0, 0, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 0, 0, 25, 26, 0, 28, + 0, 29, 0, 0, 0, 0, 30, 31, 0, 32, + 0, 33, 0, 0, 34, 0, 0, 0, 0, 0, + 35, 36, 6, 37, 0, 38, 39, 40, 0, 0, + 10, 11, 12, 0, 0, 15, 0, 17, 18, 0, + 20, 0, 22, 0, 0, 0, 0, 25, 26, 0, + 28, 0, 86, 0, 0, 0, 0, 30, 31, 0, + 32, 0, 87, 0, 0, 0, 0, 0, 0, 0, + 0, 35, 36, 6, 37, 0, 38, 39, 40, 306, 0, 10, 11, 12, 0, 0, 15, 0, 17, 18, - 0, 20, 0, 22, 0, 0, 0, 0, 25, 26, - 0, 27, 84, 0, 0, 0, 0, 29, 30, 0, - 31, 0, 85, 0, 0, 0, 0, 0, 0, 0, - 0, 34, 35, 6, 36, 0, 37, 38, 39, 304, - 0, 10, 11, 12, 0, 0, 15, 0, 17, 18, - 0, 20, 167, 22, 0, 0, 0, 0, 25, 26, - 0, 27, 84, 0, 0, 0, 0, 29, 30, 0, - 31, 0, 85, 0, 0, 0, 0, 0, 0, 0, - 0, 34, 35, 6, 36, 0, 37, 38, 39, 0, - 0, 10, 11, 12, 0, 0, 15, 0, 17, 18, - 0, 20, 0, 22, 0, 0, 0, 0, 25, 26, - 0, 27, 84, 0, 0, 0, 0, 29, 30, 0, - 31, 229, 85, 0, 0, 0, 0, 0, 0, 0, - 0, 34, 35, 6, 36, 0, 37, 38, 39, 0, - 0, 10, 11, 12, 0, 0, 15, 0, 17, 18, - 0, 20, 0, 22, 0, 0, 0, 0, 25, 26, - 0, 27, 84, 0, 0, 0, 0, 29, 30, 0, - 31, 0, 85, 0, 0, 0, 0, 0, 0, 0, - 0, 34, 35, 0, 36, 0, 37, 38, 39 + 0, 20, 169, 22, 0, 0, 0, 0, 25, 26, + 0, 28, 0, 86, 0, 0, 0, 0, 30, 31, + 0, 32, 0, 87, 0, 0, 0, 0, 0, 0, + 0, 0, 35, 36, 6, 37, 0, 38, 39, 40, + 0, 0, 10, 11, 12, 0, 0, 15, 0, 17, + 18, 0, 20, 0, 22, 0, 0, 0, 0, 25, + 26, 0, 28, 0, 86, 0, 0, 0, 0, 30, + 31, 0, 32, 231, 87, 0, 0, 0, 0, 0, + 0, 0, 0, 35, 36, 6, 37, 0, 38, 39, + 40, 0, 0, 10, 11, 12, 0, 0, 15, 0, + 17, 18, 0, 20, 0, 22, 0, 0, 0, 0, + 25, 26, 0, 28, 0, 86, 0, 0, 0, 0, + 30, 31, 0, 32, 0, 87, 0, 0, 0, 0, + 0, 0, 0, 0, 35, 36, 0, 37, 0, 38, + 39, 40 }; -static const short int yycheck[] = +static const yytype_int16 yycheck[] = { - 2, 13, 5, 7, 16, 7, 241, 35, 6, 19, - 1, 1, 1, 0, 14, 15, 15, 75, 37, 31, - 48, 242, 20, 244, 22, 45, 47, 25, 26, 90, - 45, 35, 253, 254, 92, 6, 34, 35, 41, 37, - 38, 41, 41, 63, 45, 65, 281, 31, 63, 20, - 65, 22, 32, 32, 25, 26, 277, 48, 48, 50, - 50, 50, 126, 34, 35, 129, 37, 38, 46, 133, - 48, 37, 52, 52, 48, 48, 45, 89, 139, 140, - 141, 316, 45, 95, 33, 34, 150, 151, 152, 38, - 64, 64, 104, 105, 329, 46, 317, 48, 14, 45, - 49, 82, 83, 16, 17, 18, 108, 45, 21, 48, - 23, 24, 93, 115, 46, 96, 48, 33, 34, 90, - 101, 48, 38, 36, 37, 64, 190, 48, 51, 42, - 43, 5, 45, 49, 47, 33, 34, 64, 12, 203, - 38, 153, 48, 64, 156, 51, 59, 145, 146, 147, - 63, 49, 35, 53, 37, 58, 59, 60, 54, 42, - 43, 132, 55, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 187, 46, 39, - 48, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 37, 253, 254, 56, 57, 42, 43, 46, 46, - 48, 48, 266, 48, 29, 50, 270, 46, 272, 48, - 46, 46, 48, 48, 33, 34, 277, 345, 346, 143, - 144, 48, 40, 49, 236, 45, 37, 51, 51, 241, - 51, 37, 45, 37, 50, 237, 48, 31, 53, 303, - 252, 55, 39, 45, 54, 12, 37, 48, 51, 49, - 14, 47, 37, 51, 46, 48, 317, 10, 48, 261, - 262, 50, 4, 51, 46, 37, 47, 50, 46, 281, - 282, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 50, 253, 254, 35, 51, 46, 35, 326, 346, - 337, 193, 280, 188, 321, 132, 243, 245, 136, 249, - 134, 246, 135, 247, 316, 137, 277, 319, 248, 311, - 138, 142, 10, 323, 10, 204, 318, 329, 204, -1, - 1, 202, -1, -1, -1, -1, -1, -1, 330, -1, - -1, -1, -1, 14, 15, -1, -1, -1, 340, -1, - -1, -1, 344, -1, -1, -1, 317, 349, -1, 351, - 31, 32, -1, -1, -1, -1, -1, 38, 39, 40, - 41, -1, -1, -1, -1, -1, -1, 48, 49, -1, - -1, 52, 53, 54, 55, 3, -1, 58, 6, 60, - 8, 9, -1, 11, 65, 13, -1, -1, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, -1, -1, 33, 34, 35, 36, 37, - -1, -1, -1, -1, 42, 43, -1, 45, -1, 47, - -1, -1, 50, -1, -1, -1, -1, -1, 56, 57, - -1, 59, -1, 61, 62, 63, 3, -1, -1, 6, - -1, 8, 9, -1, 11, -1, 13, -1, -1, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, -1, -1, 33, 34, 35, 36, - 37, -1, -1, -1, -1, 42, 43, -1, 45, -1, - 47, -1, -1, 50, -1, -1, -1, -1, -1, 56, - 57, -1, 59, -1, 61, 62, 63, 3, -1, -1, - 6, -1, 8, 9, -1, 11, -1, 13, -1, -1, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, -1, -1, 33, 34, 35, - 36, 37, -1, -1, -1, -1, 42, 43, -1, 45, - -1, 47, -1, -1, 50, -1, -1, -1, -1, -1, - 56, 57, -1, 59, -1, 61, 62, 63, 3, -1, - -1, 6, -1, 8, 9, -1, 11, -1, 13, -1, + 2, 13, 243, 1, 16, 7, 49, 6, 1, 19, + 5, 1, 49, 7, 15, 52, 0, 244, 49, 246, + 32, 20, 65, 22, 32, 32, 25, 26, 255, 256, + 77, 92, 14, 15, 65, 6, 35, 36, 38, 38, + 39, 42, 283, 37, 48, 53, 53, 94, 43, 20, + 37, 22, 279, 51, 25, 26, 49, 46, 51, 49, + 42, 51, 49, 128, 35, 36, 131, 38, 39, 5, + 135, 38, 47, 46, 49, 52, 12, 318, 46, 91, + 141, 142, 143, 31, 49, 97, 49, 152, 153, 154, + 331, 64, 319, 66, 106, 107, 64, 49, 66, 14, + 65, 46, 65, 59, 60, 61, 33, 34, 110, 16, + 17, 18, 39, 65, 21, 117, 23, 24, 33, 34, + 38, 92, 46, 50, 39, 43, 44, 192, 47, 36, + 49, 38, 46, 84, 85, 50, 43, 44, 46, 46, + 205, 48, 54, 155, 95, 55, 158, 98, 147, 148, + 149, 56, 103, 60, 37, 38, 47, 64, 49, 40, + 43, 44, 47, 134, 49, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 189, + 47, 41, 49, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 29, 255, 256, 33, 34, 47, 49, + 49, 51, 39, 268, 47, 49, 49, 272, 47, 274, + 49, 52, 47, 50, 49, 57, 58, 50, 279, 33, + 34, 347, 348, 145, 146, 52, 238, 52, 46, 38, + 38, 243, 38, 46, 51, 31, 55, 239, 49, 54, + 305, 40, 254, 46, 56, 12, 38, 49, 52, 50, + 14, 48, 38, 10, 52, 49, 49, 47, 319, 4, + 51, 263, 264, 52, 47, 38, 48, 51, 47, 37, + 51, 283, 284, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 52, 255, 256, 47, 37, 328, 348, + 282, 195, 190, 339, 323, 245, 134, 137, 247, 144, + 10, 248, 136, 249, 10, 206, 318, 138, 279, 321, + 139, 313, 250, 206, 140, 325, 251, 204, 320, 331, + -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, + 332, -1, -1, -1, -1, 14, 15, -1, -1, -1, + 342, -1, -1, -1, 346, -1, -1, -1, 319, 351, + -1, 353, 31, 32, -1, -1, -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, 30, -1, -1, 33, 34, - -1, 36, 37, -1, -1, -1, -1, 42, 43, -1, - 45, -1, 47, -1, -1, 50, -1, -1, -1, -1, - -1, 56, 57, 8, 59, -1, 61, 62, 63, -1, - -1, 16, 17, 18, -1, -1, 21, -1, 23, 24, - -1, 26, -1, 28, -1, -1, -1, -1, 33, 34, - -1, 36, 37, -1, -1, -1, -1, 42, 43, -1, - 45, -1, 47, -1, -1, -1, -1, -1, -1, -1, - -1, 56, 57, 8, 59, -1, 61, 62, 63, 64, + 35, 36, -1, 38, -1, -1, -1, -1, 43, 44, + -1, 46, -1, 48, -1, -1, 51, -1, -1, -1, + -1, -1, 57, 58, -1, 60, -1, 62, 63, 64, + 3, -1, -1, 6, -1, 8, 9, -1, 11, -1, + 13, -1, -1, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, -1, -1, + 33, 34, -1, 36, 37, 38, -1, -1, -1, -1, + 43, 44, -1, 46, -1, 48, -1, -1, 51, -1, + -1, -1, -1, -1, 57, 58, -1, 60, -1, 62, + 63, 64, 3, -1, -1, 6, -1, 8, 9, -1, + 11, -1, 13, -1, -1, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + -1, -1, 33, 34, -1, 36, 37, 38, -1, -1, + -1, -1, 43, 44, -1, 46, -1, 48, -1, -1, + 51, -1, -1, -1, -1, -1, 57, 58, -1, 60, + -1, 62, 63, 64, 3, -1, -1, 6, -1, 8, + 9, -1, 11, -1, 13, -1, -1, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, -1, -1, 33, 34, -1, 36, 37, 38, + -1, -1, -1, -1, 43, 44, -1, 46, -1, 48, + -1, -1, 51, -1, -1, -1, -1, -1, 57, 58, + -1, 60, -1, 62, 63, 64, 3, -1, -1, 6, + -1, 8, 9, -1, 11, -1, 13, -1, -1, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, -1, -1, 33, 34, -1, 36, + -1, 38, -1, -1, -1, -1, 43, 44, -1, 46, + -1, 48, -1, -1, 51, -1, -1, -1, -1, -1, + 57, 58, 8, 60, -1, 62, 63, 64, -1, -1, + 16, 17, 18, -1, -1, 21, -1, 23, 24, -1, + 26, -1, 28, -1, -1, -1, -1, 33, 34, -1, + 36, -1, 38, -1, -1, -1, -1, 43, 44, -1, + 46, -1, 48, -1, -1, -1, -1, -1, -1, -1, + -1, 57, 58, 8, 60, -1, 62, 63, 64, 65, -1, 16, 17, 18, -1, -1, 21, -1, 23, 24, -1, 26, 27, 28, -1, -1, -1, -1, 33, 34, - -1, 36, 37, -1, -1, -1, -1, 42, 43, -1, - 45, -1, 47, -1, -1, -1, -1, -1, -1, -1, - -1, 56, 57, 8, 59, -1, 61, 62, 63, -1, - -1, 16, 17, 18, -1, -1, 21, -1, 23, 24, - -1, 26, -1, 28, -1, -1, -1, -1, 33, 34, - -1, 36, 37, -1, -1, -1, -1, 42, 43, -1, - 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, - -1, 56, 57, 8, 59, -1, 61, 62, 63, -1, - -1, 16, 17, 18, -1, -1, 21, -1, 23, 24, - -1, 26, -1, 28, -1, -1, -1, -1, 33, 34, - -1, 36, 37, -1, -1, -1, -1, 42, 43, -1, - 45, -1, 47, -1, -1, -1, -1, -1, -1, -1, - -1, 56, 57, -1, 59, -1, 61, 62, 63 + -1, 36, -1, 38, -1, -1, -1, -1, 43, 44, + -1, 46, -1, 48, -1, -1, -1, -1, -1, -1, + -1, -1, 57, 58, 8, 60, -1, 62, 63, 64, + -1, -1, 16, 17, 18, -1, -1, 21, -1, 23, + 24, -1, 26, -1, 28, -1, -1, -1, -1, 33, + 34, -1, 36, -1, 38, -1, -1, -1, -1, 43, + 44, -1, 46, 47, 48, -1, -1, -1, -1, -1, + -1, -1, -1, 57, 58, 8, 60, -1, 62, 63, + 64, -1, -1, 16, 17, 18, -1, -1, 21, -1, + 23, 24, -1, 26, -1, 28, -1, -1, -1, -1, + 33, 34, -1, 36, -1, 38, -1, -1, -1, -1, + 43, 44, -1, 46, -1, 48, -1, -1, -1, -1, + -1, -1, -1, -1, 57, 58, -1, 60, -1, 62, + 63, 64 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ -static const unsigned char yystos[] = +static const yytype_uint8 yystos[] = { - 0, 67, 68, 0, 3, 6, 8, 9, 11, 13, + 0, 68, 70, 0, 3, 6, 8, 9, 11, 13, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 33, 34, 36, 37, 42, - 43, 45, 47, 50, 56, 57, 59, 61, 62, 63, - 69, 70, 74, 77, 78, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 102, 103, 107, 110, 112, - 114, 116, 118, 120, 122, 124, 126, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 139, 140, 144, 148, - 149, 37, 147, 147, 37, 47, 131, 133, 74, 45, - 45, 134, 135, 106, 107, 45, 107, 47, 77, 131, - 37, 79, 81, 131, 45, 45, 131, 131, 51, 107, - 35, 37, 42, 43, 74, 75, 145, 146, 131, 131, - 131, 131, 48, 64, 141, 142, 143, 147, 1, 48, - 50, 150, 32, 52, 31, 53, 54, 55, 39, 14, - 15, 41, 40, 56, 57, 58, 59, 60, 33, 34, - 38, 49, 45, 63, 65, 137, 63, 65, 137, 150, - 150, 35, 37, 42, 43, 29, 107, 27, 108, 109, - 111, 113, 115, 117, 119, 121, 123, 125, 127, 128, - 133, 137, 150, 107, 150, 35, 5, 12, 104, 105, - 49, 83, 84, 48, 150, 107, 107, 74, 46, 35, - 74, 35, 48, 51, 48, 64, 48, 64, 110, 45, - 110, 116, 110, 118, 120, 122, 124, 126, 128, 128, - 128, 129, 130, 130, 131, 131, 131, 110, 110, 46, - 110, 138, 107, 37, 107, 37, 45, 46, 37, 80, - 82, 50, 48, 32, 52, 31, 53, 54, 55, 39, - 15, 41, 14, 38, 49, 46, 45, 77, 105, 110, - 81, 46, 46, 146, 110, 142, 143, 37, 72, 73, - 51, 46, 48, 64, 64, 107, 74, 49, 85, 86, - 48, 50, 14, 106, 111, 133, 117, 111, 119, 121, - 123, 125, 127, 128, 128, 107, 111, 111, 47, 97, - 37, 74, 74, 51, 64, 110, 48, 46, 110, 110, - 46, 10, 111, 82, 106, 107, 50, 51, 46, 4, - 98, 99, 100, 46, 110, 37, 47, 50, 74, 50, - 46, 106, 111, 74, 107, 7, 35, 101, 100, 77, - 68, 71, 106, 74, 46, 51, 51, 98, 35, 46, - 74, 75, 76, 76, 35, 74 + 26, 27, 28, 29, 30, 33, 34, 35, 36, 38, + 43, 44, 46, 48, 51, 57, 58, 60, 62, 63, + 64, 69, 71, 72, 76, 79, 80, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 104, 105, 109, + 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 141, 142, + 146, 150, 151, 38, 149, 149, 38, 48, 133, 135, + 76, 46, 46, 136, 137, 108, 109, 46, 109, 48, + 79, 133, 38, 81, 83, 133, 46, 46, 133, 133, + 52, 109, 37, 38, 43, 44, 76, 77, 147, 148, + 133, 133, 133, 133, 49, 65, 143, 144, 145, 149, + 1, 49, 51, 152, 32, 53, 31, 54, 55, 56, + 40, 14, 15, 42, 41, 57, 58, 59, 60, 61, + 33, 34, 39, 50, 46, 64, 66, 139, 64, 66, + 139, 152, 152, 37, 38, 43, 44, 29, 109, 27, + 110, 111, 113, 115, 117, 119, 121, 123, 125, 127, + 129, 130, 135, 139, 152, 109, 152, 37, 5, 12, + 106, 107, 50, 85, 86, 49, 152, 109, 109, 76, + 47, 37, 76, 37, 49, 52, 49, 65, 49, 65, + 112, 46, 112, 118, 112, 120, 122, 124, 126, 128, + 130, 130, 130, 131, 132, 132, 133, 133, 133, 112, + 112, 47, 112, 140, 109, 38, 109, 38, 46, 47, + 38, 82, 84, 51, 49, 32, 53, 31, 54, 55, + 56, 40, 15, 42, 14, 39, 50, 47, 46, 79, + 107, 112, 83, 47, 47, 148, 112, 144, 145, 38, + 74, 75, 52, 47, 49, 65, 65, 109, 76, 50, + 87, 88, 49, 51, 14, 108, 113, 135, 119, 113, + 121, 123, 125, 127, 129, 130, 130, 109, 113, 113, + 48, 99, 38, 76, 76, 52, 65, 112, 49, 47, + 112, 112, 47, 10, 113, 84, 108, 109, 51, 52, + 47, 4, 100, 101, 102, 47, 112, 38, 48, 51, + 76, 51, 47, 108, 113, 76, 109, 7, 37, 103, + 102, 79, 70, 73, 108, 76, 47, 52, 52, 100, + 37, 47, 76, 77, 78, 78, 37, 76 }; #define yyerrok (yyerrstatus = 0) @@ -1128,7 +1193,7 @@ do \ yychar = (Token); \ yylval = (Value); \ yytoken = YYTRANSLATE (yychar); \ - YYPOPSTACK; \ + YYPOPSTACK (1); \ goto yybackup; \ } \ else \ @@ -1136,7 +1201,7 @@ do \ yyerror (YY_("syntax error: cannot back up")); \ YYERROR; \ } \ -while (0) +while (YYID (0)) #define YYTERROR 1 @@ -1151,7 +1216,7 @@ while (0) #ifndef YYLLOC_DEFAULT # define YYLLOC_DEFAULT(Current, Rhs, N) \ do \ - if (N) \ + if (YYID (N)) \ { \ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ @@ -1165,7 +1230,7 @@ while (0) (Current).first_column = (Current).last_column = \ YYRHSLOC (Rhs, 0).last_column; \ } \ - while (0) + while (YYID (0)) #endif @@ -1177,8 +1242,8 @@ while (0) # if YYLTYPE_IS_TRIVIAL # define YY_LOCATION_PRINT(File, Loc) \ fprintf (File, "%d.%d-%d.%d", \ - (Loc).first_line, (Loc).first_column, \ - (Loc).last_line, (Loc).last_column) + (Loc).first_line, (Loc).first_column, \ + (Loc).last_line, (Loc).last_column) # else # define YY_LOCATION_PRINT(File, Loc) ((void) 0) # endif @@ -1205,37 +1270,100 @@ while (0) do { \ if (yydebug) \ YYFPRINTF Args; \ -} while (0) +} while (YYID (0)) -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ -do { \ - if (yydebug) \ - { \ - YYFPRINTF (stderr, "%s ", Title); \ - yysymprint (stderr, \ - Type, Value); \ - YYFPRINTF (stderr, "\n"); \ - } \ -} while (0) +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yy_symbol_print (stderr, \ + Type, Value); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (YYID (0)) + + +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ + +/*ARGSUSED*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) +#else +static void +yy_symbol_value_print (yyoutput, yytype, yyvaluep) + FILE *yyoutput; + int yytype; + YYSTYPE const * const yyvaluep; +#endif +{ + if (!yyvaluep) + return; +# ifdef YYPRINT + if (yytype < YYNTOKENS) + YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); +# else + YYUSE (yyoutput); +# endif + switch (yytype) + { + default: + break; + } +} + + +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ + +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) +#else +static void +yy_symbol_print (yyoutput, yytype, yyvaluep) + FILE *yyoutput; + int yytype; + YYSTYPE const * const yyvaluep; +#endif +{ + if (yytype < YYNTOKENS) + YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); + else + YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); + + yy_symbol_value_print (yyoutput, yytype, yyvaluep); + YYFPRINTF (yyoutput, ")"); +} /*------------------------------------------------------------------. | yy_stack_print -- Print the state stack from its BOTTOM up to its | | TOP (included). | `------------------------------------------------------------------*/ -#if defined (__STDC__) || defined (__cplusplus) +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) static void -yy_stack_print (short int *bottom, short int *top) +yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) #else static void -yy_stack_print (bottom, top) - short int *bottom; - short int *top; +yy_stack_print (yybottom, yytop) + yytype_int16 *yybottom; + yytype_int16 *yytop; #endif { YYFPRINTF (stderr, "Stack now"); - for (/* Nothing. */; bottom <= top; ++bottom) - YYFPRINTF (stderr, " %d", *bottom); + for (; yybottom <= yytop; yybottom++) + { + int yybot = *yybottom; + YYFPRINTF (stderr, " %d", yybot); + } YYFPRINTF (stderr, "\n"); } @@ -1243,37 +1371,45 @@ yy_stack_print (bottom, top) do { \ if (yydebug) \ yy_stack_print ((Bottom), (Top)); \ -} while (0) +} while (YYID (0)) /*------------------------------------------------. | Report that the YYRULE is going to be reduced. | `------------------------------------------------*/ -#if defined (__STDC__) || defined (__cplusplus) +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) static void -yy_reduce_print (int yyrule) +yy_reduce_print (YYSTYPE *yyvsp, int yyrule) #else static void -yy_reduce_print (yyrule) +yy_reduce_print (yyvsp, yyrule) + YYSTYPE *yyvsp; int yyrule; #endif { + int yynrhs = yyr2[yyrule]; int yyi; unsigned long int yylno = yyrline[yyrule]; - YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu), ", - yyrule - 1, yylno); - /* Print the symbols being reduced, and their result. */ - for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++) - YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]); - YYFPRINTF (stderr, "-> %s\n", yytname[yyr1[yyrule]]); + YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", + yyrule - 1, yylno); + /* The symbols being reduced. */ + for (yyi = 0; yyi < yynrhs; yyi++) + { + YYFPRINTF (stderr, " $%d = ", yyi + 1); + yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], + &(yyvsp[(yyi + 1) - (yynrhs)]) + ); + YYFPRINTF (stderr, "\n"); + } } # define YY_REDUCE_PRINT(Rule) \ do { \ if (yydebug) \ - yy_reduce_print (Rule); \ -} while (0) + yy_reduce_print (yyvsp, Rule); \ +} while (YYID (0)) /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ @@ -1307,42 +1443,44 @@ int yydebug; #if YYERROR_VERBOSE # ifndef yystrlen -# if defined (__GLIBC__) && defined (_STRING_H) +# if defined __GLIBC__ && defined _STRING_H # define yystrlen strlen # else /* Return the length of YYSTR. */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) static YYSIZE_T -# if defined (__STDC__) || defined (__cplusplus) yystrlen (const char *yystr) -# else +#else +static YYSIZE_T yystrlen (yystr) - const char *yystr; -# endif + const char *yystr; +#endif { - const char *yys = yystr; - - while (*yys++ != '\0') + YYSIZE_T yylen; + for (yylen = 0; yystr[yylen]; yylen++) continue; - - return yys - yystr - 1; + return yylen; } # endif # endif # ifndef yystpcpy -# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE) +# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE # define yystpcpy stpcpy # else /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in YYDEST. */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) static char * -# if defined (__STDC__) || defined (__cplusplus) yystpcpy (char *yydest, const char *yysrc) -# else +#else +static char * yystpcpy (yydest, yysrc) - char *yydest; - const char *yysrc; -# endif + char *yydest; + const char *yysrc; +#endif { char *yyd = yydest; const char *yys = yysrc; @@ -1368,7 +1506,7 @@ yytnamerr (char *yyres, const char *yystr) { if (*yystr == '"') { - size_t yyn = 0; + YYSIZE_T yyn = 0; char const *yyp = yystr; for (;;) @@ -1403,53 +1541,123 @@ yytnamerr (char *yyres, const char *yystr) } # endif -#endif /* YYERROR_VERBOSE */ +/* Copy into YYRESULT an error message about the unexpected token + YYCHAR while in state YYSTATE. Return the number of bytes copied, + including the terminating null byte. If YYRESULT is null, do not + copy anything; just return the number of bytes that would be + copied. As a special case, return 0 if an ordinary "syntax error" + message will do. Return YYSIZE_MAXIMUM if overflow occurs during + size calculation. */ +static YYSIZE_T +yysyntax_error (char *yyresult, int yystate, int yychar) +{ + int yyn = yypact[yystate]; + if (! (YYPACT_NINF < yyn && yyn <= YYLAST)) + return 0; + else + { + int yytype = YYTRANSLATE (yychar); + YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); + YYSIZE_T yysize = yysize0; + YYSIZE_T yysize1; + int yysize_overflow = 0; + enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; + char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; + int yyx; + +# if 0 + /* This is so xgettext sees the translatable formats that are + constructed on the fly. */ + YY_("syntax error, unexpected %s"); + YY_("syntax error, unexpected %s, expecting %s"); + YY_("syntax error, unexpected %s, expecting %s or %s"); + YY_("syntax error, unexpected %s, expecting %s or %s or %s"); + YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); +# endif + char *yyfmt; + char const *yyf; + static char const yyunexpected[] = "syntax error, unexpected %s"; + static char const yyexpecting[] = ", expecting %s"; + static char const yyor[] = " or %s"; + char yyformat[sizeof yyunexpected + + sizeof yyexpecting - 1 + + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) + * (sizeof yyor - 1))]; + char const *yyprefix = yyexpecting; + + /* Start YYX at -YYN if negative to avoid negative indexes in + YYCHECK. */ + int yyxbegin = yyn < 0 ? -yyn : 0; + + /* Stay within bounds of both yycheck and yytname. */ + int yychecklim = YYLAST - yyn + 1; + int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; + int yycount = 1; + + yyarg[0] = yytname[yytype]; + yyfmt = yystpcpy (yyformat, yyunexpected); + + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) + { + if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) + { + yycount = 1; + yysize = yysize0; + yyformat[sizeof yyunexpected - 1] = '\0'; + break; + } + yyarg[yycount++] = yytname[yyx]; + yysize1 = yysize + yytnamerr (0, yytname[yyx]); + yysize_overflow |= (yysize1 < yysize); + yysize = yysize1; + yyfmt = yystpcpy (yyfmt, yyprefix); + yyprefix = yyor; + } + + yyf = YY_(yyformat); + yysize1 = yysize + yystrlen (yyf); + yysize_overflow |= (yysize1 < yysize); + yysize = yysize1; + + if (yysize_overflow) + return YYSIZE_MAXIMUM; + + if (yyresult) + { + /* Avoid sprintf, as that infringes on the user's name space. + Don't have undefined behavior even if the translation + produced a string with the wrong number of "%s"s. */ + char *yyp = yyresult; + int yyi = 0; + while ((*yyp = *yyf) != '\0') + { + if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) + { + yyp += yytnamerr (yyp, yyarg[yyi++]); + yyf += 2; + } + else + { + yyp++; + yyf++; + } + } + } + return yysize; + } +} +#endif /* YYERROR_VERBOSE */ -#if YYDEBUG -/*--------------------------------. -| Print this symbol on YYOUTPUT. | -`--------------------------------*/ - -#if defined (__STDC__) || defined (__cplusplus) -static void -yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep) -#else -static void -yysymprint (yyoutput, yytype, yyvaluep) - FILE *yyoutput; - int yytype; - YYSTYPE *yyvaluep; -#endif -{ - /* Pacify ``unused variable'' warnings. */ - (void) yyvaluep; - - if (yytype < YYNTOKENS) - YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); - else - YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); - - -# ifdef YYPRINT - if (yytype < YYNTOKENS) - YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); -# endif - switch (yytype) - { - default: - break; - } - YYFPRINTF (yyoutput, ")"); -} - -#endif /* ! YYDEBUG */ /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ -#if defined (__STDC__) || defined (__cplusplus) +/*ARGSUSED*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) static void yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) #else @@ -1460,8 +1668,7 @@ yydestruct (yymsg, yytype, yyvaluep) YYSTYPE *yyvaluep; #endif { - /* Pacify ``unused variable'' warnings. */ - (void) yyvaluep; + YYUSE (yyvaluep); if (!yymsg) yymsg = "Deleting"; @@ -1471,21 +1678,19 @@ yydestruct (yymsg, yytype, yyvaluep) { default: - break; + break; } } - /* Prevent warnings from -Wmissing-prototypes. */ - #ifdef YYPARSE_PARAM -# if defined (__STDC__) || defined (__cplusplus) +#if defined __STDC__ || defined __cplusplus int yyparse (void *YYPARSE_PARAM); -# else +#else int yyparse (); -# endif +#endif #else /* ! YYPARSE_PARAM */ -#if defined (__STDC__) || defined (__cplusplus) +#if defined __STDC__ || defined __cplusplus int yyparse (void); #else int yyparse (); @@ -1496,91 +1701,101 @@ int yyparse (); - -/*----------. -| yyparse. | -`----------*/ +/*-------------------------. +| yyparse or yypush_parse. | +`-------------------------*/ #ifdef YYPARSE_PARAM -# if defined (__STDC__) || defined (__cplusplus) -int yyparse (void *YYPARSE_PARAM) -# else -int yyparse (YYPARSE_PARAM) - void *YYPARSE_PARAM; -# endif +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +int +yyparse (void *YYPARSE_PARAM) +#else +int +yyparse (YYPARSE_PARAM) + void *YYPARSE_PARAM; +#endif #else /* ! YYPARSE_PARAM */ -#if defined (__STDC__) || defined (__cplusplus) +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) int yyparse (void) #else int yyparse () - ; + #endif #endif { - /* The look-ahead symbol. */ +/* The lookahead symbol. */ int yychar; -/* The semantic value of the look-ahead symbol. */ +/* The semantic value of the lookahead symbol. */ YYSTYPE yylval; -/* Number of syntax errors so far. */ -int yynerrs; + /* Number of syntax errors so far. */ + int yynerrs; + + int yystate; + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus; + + /* The stacks and their tools: + `yyss': related to states. + `yyvs': related to semantic values. + + Refer to the stacks thru separate pointers, to allow yyoverflow + to reallocate them elsewhere. */ + + /* The state stack. */ + yytype_int16 yyssa[YYINITDEPTH]; + yytype_int16 *yyss; + yytype_int16 *yyssp; + + /* The semantic value stack. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs; + YYSTYPE *yyvsp; + + YYSIZE_T yystacksize; - int yystate; int yyn; int yyresult; - /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; - /* Look-ahead token as an internal (translated) token number. */ - int yytoken = 0; - - /* Three stacks and their tools: - `yyss': related to states, - `yyvs': related to semantic values, - `yyls': related to locations. - - Refer to the stacks thru separate pointers, to allow yyoverflow - to reallocate them elsewhere. */ - - /* The state stack. */ - short int yyssa[YYINITDEPTH]; - short int *yyss = yyssa; - short int *yyssp; - - /* The semantic value stack. */ - YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs = yyvsa; - YYSTYPE *yyvsp; - - - -#define YYPOPSTACK (yyvsp--, yyssp--) - - YYSIZE_T yystacksize = YYINITDEPTH; - + /* Lookahead token as an internal (translated) token number. */ + int yytoken; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; +#if YYERROR_VERBOSE + /* Buffer for error messages, and its allocated size. */ + char yymsgbuf[128]; + char *yymsg = yymsgbuf; + YYSIZE_T yymsg_alloc = sizeof yymsgbuf; +#endif - /* When reducing, the number of symbols on the RHS of the reduced - rule. */ - int yylen; +#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) + + /* The number of symbols on the RHS of the reduced rule. + Keep to zero when no symbol should be popped. */ + int yylen = 0; + + yytoken = 0; + yyss = yyssa; + yyvs = yyvsa; + yystacksize = YYINITDEPTH; YYDPRINTF ((stderr, "Starting parse\n")); yystate = 0; yyerrstatus = 0; yynerrs = 0; - yychar = YYEMPTY; /* Cause a token to be read. */ + yychar = YYEMPTY; /* Cause a token to be read. */ /* Initialize stack pointers. Waste one element of value and location stack so that they stay on the same level as the state stack. The wasted elements are never initialized. */ - yyssp = yyss; yyvsp = yyvs; @@ -1591,8 +1806,7 @@ int yynerrs; `------------------------------------------------------------*/ yynewstate: /* In all cases, when you get here, the value and location stacks - have just been pushed. so pushing a state here evens the stacks. - */ + have just been pushed. So pushing a state here evens the stacks. */ yyssp++; yysetstate: @@ -1605,12 +1819,11 @@ int yynerrs; #ifdef yyoverflow { - /* Give user a chance to reallocate the stack. Use copies of + /* Give user a chance to reallocate the stack. Use copies of these so that the &'s don't force the real ones into memory. */ YYSTYPE *yyvs1 = yyvs; - short int *yyss1 = yyss; - + yytype_int16 *yyss1 = yyss; /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. This used to be a @@ -1619,7 +1832,6 @@ int yynerrs; yyoverflow (YY_("memory exhausted"), &yyss1, yysize * sizeof (*yyssp), &yyvs1, yysize * sizeof (*yyvsp), - &yystacksize); yyss = yyss1; @@ -1637,14 +1849,13 @@ int yynerrs; yystacksize = YYMAXDEPTH; { - short int *yyss1 = yyss; + yytype_int16 *yyss1 = yyss; union yyalloc *yyptr = (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); if (! yyptr) goto yyexhaustedlab; - YYSTACK_RELOCATE (yyss); - YYSTACK_RELOCATE (yyvs); - + YYSTACK_RELOCATE (yyss_alloc, yyss); + YYSTACK_RELOCATE (yyvs_alloc, yyvs); # undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); @@ -1655,7 +1866,6 @@ int yynerrs; yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; - YYDPRINTF ((stderr, "Stack size increased to %lu\n", (unsigned long int) yystacksize)); @@ -1665,6 +1875,9 @@ int yynerrs; YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + if (yystate == YYFINAL) + YYACCEPT; + goto yybackup; /*-----------. @@ -1672,19 +1885,17 @@ int yynerrs; `-----------*/ yybackup: -/* Do appropriate processing given the current state. */ -/* Read a look-ahead token if we need one and don't already have one. */ -/* yyresume: */ - - /* First try to decide what to do without reference to look-ahead token. */ + /* Do appropriate processing given the current state. Read a + lookahead token if we need one and don't already have one. */ + /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; if (yyn == YYPACT_NINF) goto yydefault; - /* Not known => get a look-ahead token if don't already have one. */ + /* Not known => get a lookahead token if don't already have one. */ - /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ + /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); @@ -1716,25 +1927,20 @@ yybackup: goto yyreduce; } - if (yyn == YYFINAL) - YYACCEPT; - - /* Shift the look-ahead token. */ - YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - - /* Discard the token being shifted unless it is eof. */ - if (yychar != YYEOF) - yychar = YYEMPTY; - - *++yyvsp = yylval; - - /* Count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; + /* Shift the lookahead token. */ + YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); + + /* Discard the shifted token. */ + yychar = YYEMPTY; + yystate = yyn; + *++yyvsp = yylval; + goto yynewstate; @@ -1770,997 +1976,1399 @@ yyreduce: switch (yyn) { case 2: -#line 254 "parser.y" - { program_parsed(ctx, (yyvsp[0].source_elements)); ;} + +/* Line 1455 of yacc.c */ +#line 255 "parser.y" + { program_parsed(ctx, (yyvsp[(1) - (2)].source_elements)); ;} break; case 3: + +/* Line 1455 of yacc.c */ #line 258 "parser.y" - { (yyval.source_elements) = new_source_elements(ctx); ;} + {;} break; case 4: -#line 260 "parser.y" - { (yyval.source_elements) = source_elements_add_statement((yyvsp[-1].source_elements), (yyvsp[0].statement)); ;} + +/* Line 1455 of yacc.c */ +#line 259 "parser.y" + {;} break; case 5: -#line 265 "parser.y" - { (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 1455 of yacc.c */ +#line 263 "parser.y" + { (yyval.source_elements) = new_source_elements(ctx); ;} break; case 6: -#line 268 "parser.y" - { push_func(ctx); (yyval.srcptr) = (yyvsp[0].srcptr); ;} + +/* Line 1455 of yacc.c */ +#line 265 "parser.y" + { (yyval.source_elements) = source_elements_add_statement((yyvsp[(1) - (2)].source_elements), (yyvsp[(2) - (2)].statement)); ;} break; case 7: -#line 272 "parser.y" - { (yyval.source_elements) = function_body_parsed(ctx, (yyvsp[0].source_elements)); ;} + +/* Line 1455 of yacc.c */ +#line 270 "parser.y" + { (yyval.expr) = new_function_expression(ctx, (yyvsp[(2) - (8)].identifier), (yyvsp[(4) - (8)].parameter_list), (yyvsp[(7) - (8)].source_elements), (yyvsp[(1) - (8)].srcptr), (yyvsp[(8) - (8)].srcptr)-(yyvsp[(1) - (8)].srcptr)+1); ;} break; case 8: -#line 276 "parser.y" - { (yyval.parameter_list) = new_parameter_list(ctx, (yyvsp[0].identifier)); ;} + +/* Line 1455 of yacc.c */ +#line 273 "parser.y" + { push_func(ctx); (yyval.srcptr) = (yyvsp[(1) - (1)].srcptr); ;} break; case 9: -#line 278 "parser.y" - { (yyval.parameter_list) = parameter_list_add(ctx, (yyvsp[-2].parameter_list), (yyvsp[0].identifier)); ;} + +/* Line 1455 of yacc.c */ +#line 277 "parser.y" + { (yyval.source_elements) = function_body_parsed(ctx, (yyvsp[(1) - (1)].source_elements)); ;} break; case 10: -#line 282 "parser.y" - { (yyval.parameter_list) = NULL; ;} + +/* Line 1455 of yacc.c */ +#line 281 "parser.y" + { (yyval.parameter_list) = new_parameter_list(ctx, (yyvsp[(1) - (1)].identifier)); ;} break; case 11: + +/* Line 1455 of yacc.c */ #line 283 "parser.y" - { (yyval.parameter_list) = (yyvsp[0].parameter_list); ;} + { (yyval.parameter_list) = parameter_list_add(ctx, (yyvsp[(1) - (3)].parameter_list), (yyvsp[(3) - (3)].identifier)); ;} break; case 12: + +/* Line 1455 of yacc.c */ #line 287 "parser.y" - { (yyval.statement) = (yyvsp[0].statement); ;} + { (yyval.parameter_list) = NULL; ;} break; case 13: + +/* Line 1455 of yacc.c */ #line 288 "parser.y" - { (yyval.statement) = (yyvsp[0].statement); ;} + { (yyval.parameter_list) = (yyvsp[(1) - (1)].parameter_list); ;} break; case 14: -#line 289 "parser.y" - { (yyval.statement) = (yyvsp[0].statement); ;} + +/* Line 1455 of yacc.c */ +#line 292 "parser.y" + { (yyval.statement) = (yyvsp[(1) - (1)].statement); ;} break; case 15: -#line 290 "parser.y" - { (yyval.statement) = (yyvsp[0].statement); ;} + +/* Line 1455 of yacc.c */ +#line 293 "parser.y" + { (yyval.statement) = (yyvsp[(1) - (1)].statement); ;} break; case 16: -#line 291 "parser.y" - { (yyval.statement) = (yyvsp[0].statement); ;} + +/* Line 1455 of yacc.c */ +#line 294 "parser.y" + { (yyval.statement) = (yyvsp[(1) - (1)].statement); ;} break; case 17: -#line 292 "parser.y" - { (yyval.statement) = (yyvsp[0].statement); ;} + +/* Line 1455 of yacc.c */ +#line 295 "parser.y" + { (yyval.statement) = (yyvsp[(1) - (1)].statement); ;} break; case 18: -#line 293 "parser.y" - { (yyval.statement) = (yyvsp[0].statement); ;} + +/* Line 1455 of yacc.c */ +#line 296 "parser.y" + { (yyval.statement) = (yyvsp[(1) - (1)].statement); ;} break; case 19: -#line 294 "parser.y" - { (yyval.statement) = (yyvsp[0].statement); ;} + +/* Line 1455 of yacc.c */ +#line 297 "parser.y" + { (yyval.statement) = (yyvsp[(1) - (1)].statement); ;} break; case 20: -#line 295 "parser.y" - { (yyval.statement) = (yyvsp[0].statement); ;} + +/* Line 1455 of yacc.c */ +#line 298 "parser.y" + { (yyval.statement) = (yyvsp[(1) - (1)].statement); ;} break; case 21: -#line 296 "parser.y" - { (yyval.statement) = (yyvsp[0].statement); ;} + +/* Line 1455 of yacc.c */ +#line 299 "parser.y" + { (yyval.statement) = (yyvsp[(1) - (1)].statement); ;} break; case 22: -#line 297 "parser.y" - { (yyval.statement) = (yyvsp[0].statement); ;} + +/* Line 1455 of yacc.c */ +#line 300 "parser.y" + { (yyval.statement) = (yyvsp[(1) - (1)].statement); ;} break; case 23: -#line 298 "parser.y" - { (yyval.statement) = (yyvsp[0].statement); ;} + +/* Line 1455 of yacc.c */ +#line 301 "parser.y" + { (yyval.statement) = (yyvsp[(1) - (1)].statement); ;} break; case 24: -#line 299 "parser.y" - { (yyval.statement) = (yyvsp[0].statement); ;} + +/* Line 1455 of yacc.c */ +#line 302 "parser.y" + { (yyval.statement) = (yyvsp[(1) - (1)].statement); ;} break; case 25: -#line 300 "parser.y" - { (yyval.statement) = (yyvsp[0].statement); ;} + +/* Line 1455 of yacc.c */ +#line 303 "parser.y" + { (yyval.statement) = (yyvsp[(1) - (1)].statement); ;} break; case 26: + +/* Line 1455 of yacc.c */ #line 304 "parser.y" - { (yyval.statement_list) = new_statement_list(ctx, (yyvsp[0].statement)); ;} + { (yyval.statement) = (yyvsp[(1) - (1)].statement); ;} break; case 27: -#line 306 "parser.y" - { (yyval.statement_list) = statement_list_add((yyvsp[-1].statement_list), (yyvsp[0].statement)); ;} + +/* Line 1455 of yacc.c */ +#line 305 "parser.y" + { (yyval.statement) = (yyvsp[(1) - (1)].statement); ;} break; case 28: -#line 310 "parser.y" - { (yyval.statement_list) = NULL; ;} + +/* Line 1455 of yacc.c */ +#line 309 "parser.y" + { (yyval.statement_list) = new_statement_list(ctx, (yyvsp[(1) - (1)].statement)); ;} break; case 29: + +/* Line 1455 of yacc.c */ #line 311 "parser.y" - { (yyval.statement_list) = (yyvsp[0].statement_list); ;} + { (yyval.statement_list) = statement_list_add((yyvsp[(1) - (2)].statement_list), (yyvsp[(2) - (2)].statement)); ;} break; case 30: + +/* Line 1455 of yacc.c */ #line 315 "parser.y" - { (yyval.statement) = new_block_statement(ctx, (yyvsp[-1].statement_list)); ;} + { (yyval.statement_list) = NULL; ;} break; case 31: + +/* Line 1455 of yacc.c */ #line 316 "parser.y" - { (yyval.statement) = new_block_statement(ctx, NULL); ;} + { (yyval.statement_list) = (yyvsp[(1) - (1)].statement_list); ;} break; case 32: -#line 321 "parser.y" - { (yyval.statement) = new_var_statement(ctx, (yyvsp[-1].variable_list)); ;} + +/* Line 1455 of yacc.c */ +#line 320 "parser.y" + { (yyval.statement) = new_block_statement(ctx, (yyvsp[(2) - (3)].statement_list)); ;} break; case 33: -#line 325 "parser.y" - { (yyval.variable_list) = new_variable_list(ctx, (yyvsp[0].variable_declaration)); ;} + +/* Line 1455 of yacc.c */ +#line 321 "parser.y" + { (yyval.statement) = new_block_statement(ctx, NULL); ;} break; case 34: -#line 327 "parser.y" - { (yyval.variable_list) = variable_list_add(ctx, (yyvsp[-2].variable_list), (yyvsp[0].variable_declaration)); ;} + +/* Line 1455 of yacc.c */ +#line 326 "parser.y" + { (yyval.statement) = new_var_statement(ctx, (yyvsp[(2) - (3)].variable_list)); ;} break; case 35: -#line 332 "parser.y" - { (yyval.variable_list) = new_variable_list(ctx, (yyvsp[0].variable_declaration)); ;} + +/* Line 1455 of yacc.c */ +#line 330 "parser.y" + { (yyval.variable_list) = new_variable_list(ctx, (yyvsp[(1) - (1)].variable_declaration)); ;} break; case 36: -#line 334 "parser.y" - { (yyval.variable_list) = variable_list_add(ctx, (yyvsp[-2].variable_list), (yyvsp[0].variable_declaration)); ;} + +/* Line 1455 of yacc.c */ +#line 332 "parser.y" + { (yyval.variable_list) = variable_list_add(ctx, (yyvsp[(1) - (3)].variable_list), (yyvsp[(3) - (3)].variable_declaration)); ;} break; case 37: -#line 339 "parser.y" - { (yyval.variable_declaration) = new_variable_declaration(ctx, (yyvsp[-1].identifier), (yyvsp[0].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 337 "parser.y" + { (yyval.variable_list) = new_variable_list(ctx, (yyvsp[(1) - (1)].variable_declaration)); ;} break; case 38: -#line 344 "parser.y" - { (yyval.variable_declaration) = new_variable_declaration(ctx, (yyvsp[-1].identifier), (yyvsp[0].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 339 "parser.y" + { (yyval.variable_list) = variable_list_add(ctx, (yyvsp[(1) - (3)].variable_list), (yyvsp[(3) - (3)].variable_declaration)); ;} break; case 39: -#line 348 "parser.y" - { (yyval.expr) = NULL; ;} + +/* Line 1455 of yacc.c */ +#line 344 "parser.y" + { (yyval.variable_declaration) = new_variable_declaration(ctx, (yyvsp[(1) - (2)].identifier), (yyvsp[(2) - (2)].expr)); ;} break; case 40: + +/* Line 1455 of yacc.c */ #line 349 "parser.y" - { (yyval.expr) = (yyvsp[0].expr); ;} + { (yyval.variable_declaration) = new_variable_declaration(ctx, (yyvsp[(1) - (2)].identifier), (yyvsp[(2) - (2)].expr)); ;} break; case 41: -#line 354 "parser.y" - { (yyval.expr) = (yyvsp[0].expr); ;} + +/* Line 1455 of yacc.c */ +#line 353 "parser.y" + { (yyval.expr) = NULL; ;} break; case 42: -#line 358 "parser.y" - { (yyval.expr) = NULL; ;} + +/* Line 1455 of yacc.c */ +#line 354 "parser.y" + { (yyval.expr) = (yyvsp[(1) - (1)].expr); ;} break; case 43: + +/* Line 1455 of yacc.c */ #line 359 "parser.y" - { (yyval.expr) = (yyvsp[0].expr); ;} + { (yyval.expr) = (yyvsp[(2) - (2)].expr); ;} break; case 44: -#line 364 "parser.y" - { (yyval.expr) = (yyvsp[0].expr); ;} + +/* Line 1455 of yacc.c */ +#line 363 "parser.y" + { (yyval.expr) = NULL; ;} break; case 45: -#line 368 "parser.y" - { (yyval.statement) = new_empty_statement(ctx); ;} + +/* Line 1455 of yacc.c */ +#line 364 "parser.y" + { (yyval.expr) = (yyvsp[(1) - (1)].expr); ;} break; case 46: -#line 373 "parser.y" - { (yyval.statement) = new_expression_statement(ctx, (yyvsp[-1].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 369 "parser.y" + { (yyval.expr) = (yyvsp[(2) - (2)].expr); ;} break; case 47: -#line 378 "parser.y" - { (yyval.statement) = new_if_statement(ctx, (yyvsp[-4].expr), (yyvsp[-2].statement), (yyvsp[0].statement)); ;} + +/* Line 1455 of yacc.c */ +#line 373 "parser.y" + { (yyval.statement) = new_empty_statement(ctx); ;} break; case 48: -#line 380 "parser.y" - { (yyval.statement) = new_if_statement(ctx, (yyvsp[-2].expr), (yyvsp[0].statement), NULL); ;} + +/* Line 1455 of yacc.c */ +#line 378 "parser.y" + { (yyval.statement) = new_expression_statement(ctx, (yyvsp[(1) - (2)].expr)); ;} break; case 49: -#line 385 "parser.y" - { (yyval.statement) = new_while_statement(ctx, TRUE, (yyvsp[-2].expr), (yyvsp[-5].statement)); ;} + +/* Line 1455 of yacc.c */ +#line 383 "parser.y" + { (yyval.statement) = new_if_statement(ctx, (yyvsp[(3) - (7)].expr), (yyvsp[(5) - (7)].statement), (yyvsp[(7) - (7)].statement)); ;} break; case 50: -#line 387 "parser.y" - { (yyval.statement) = new_while_statement(ctx, FALSE, (yyvsp[-2].expr), (yyvsp[0].statement)); ;} + +/* Line 1455 of yacc.c */ +#line 385 "parser.y" + { (yyval.statement) = new_if_statement(ctx, (yyvsp[(3) - (5)].expr), (yyvsp[(5) - (5)].statement), NULL); ;} break; case 51: -#line 389 "parser.y" - { (yyval.statement) = new_for_statement(ctx, NULL, (yyvsp[-6].expr), (yyvsp[-4].expr), (yyvsp[-2].expr), (yyvsp[0].statement)); ;} + +/* Line 1455 of yacc.c */ +#line 390 "parser.y" + { (yyval.statement) = new_while_statement(ctx, TRUE, (yyvsp[(5) - (7)].expr), (yyvsp[(2) - (7)].statement)); ;} break; case 52: -#line 391 "parser.y" - { (yyval.statement) = new_for_statement(ctx, (yyvsp[-6].variable_list), NULL, (yyvsp[-4].expr), (yyvsp[-2].expr), (yyvsp[0].statement)); ;} + +/* Line 1455 of yacc.c */ +#line 392 "parser.y" + { (yyval.statement) = new_while_statement(ctx, FALSE, (yyvsp[(3) - (5)].expr), (yyvsp[(5) - (5)].statement)); ;} break; case 53: -#line 393 "parser.y" - { (yyval.statement) = new_forin_statement(ctx, NULL, (yyvsp[-4].expr), (yyvsp[-2].expr), (yyvsp[0].statement)); ;} + +/* Line 1455 of yacc.c */ +#line 394 "parser.y" + { (yyval.statement) = new_for_statement(ctx, NULL, (yyvsp[(3) - (9)].expr), (yyvsp[(5) - (9)].expr), (yyvsp[(7) - (9)].expr), (yyvsp[(9) - (9)].statement)); ;} break; case 54: -#line 395 "parser.y" - { (yyval.statement) = new_forin_statement(ctx, (yyvsp[-4].variable_declaration), NULL, (yyvsp[-2].expr), (yyvsp[0].statement)); ;} + +/* Line 1455 of yacc.c */ +#line 396 "parser.y" + { (yyval.statement) = new_for_statement(ctx, (yyvsp[(4) - (10)].variable_list), NULL, (yyvsp[(6) - (10)].expr), (yyvsp[(8) - (10)].expr), (yyvsp[(10) - (10)].statement)); ;} break; case 55: -#line 400 "parser.y" - { (yyval.statement) = new_continue_statement(ctx, (yyvsp[-1].identifier)); ;} + +/* Line 1455 of yacc.c */ +#line 398 "parser.y" + { (yyval.statement) = new_forin_statement(ctx, NULL, (yyvsp[(3) - (7)].expr), (yyvsp[(5) - (7)].expr), (yyvsp[(7) - (7)].statement)); ;} break; case 56: -#line 405 "parser.y" - { (yyval.statement) = new_break_statement(ctx, (yyvsp[-1].identifier)); ;} + +/* Line 1455 of yacc.c */ +#line 400 "parser.y" + { (yyval.statement) = new_forin_statement(ctx, (yyvsp[(4) - (8)].variable_declaration), NULL, (yyvsp[(6) - (8)].expr), (yyvsp[(8) - (8)].statement)); ;} break; case 57: -#line 410 "parser.y" - { (yyval.statement) = new_return_statement(ctx, (yyvsp[-1].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 405 "parser.y" + { (yyval.statement) = new_continue_statement(ctx, (yyvsp[(2) - (3)].identifier)); ;} break; case 58: -#line 415 "parser.y" - { (yyval.statement) = new_with_statement(ctx, (yyvsp[-2].expr), (yyvsp[0].statement)); ;} + +/* Line 1455 of yacc.c */ +#line 410 "parser.y" + { (yyval.statement) = new_break_statement(ctx, (yyvsp[(2) - (3)].identifier)); ;} break; case 59: -#line 420 "parser.y" - { (yyval.statement) = new_labelled_statement(ctx, (yyvsp[-2].identifier), (yyvsp[0].statement)); ;} + +/* Line 1455 of yacc.c */ +#line 415 "parser.y" + { (yyval.statement) = new_return_statement(ctx, (yyvsp[(2) - (3)].expr)); ;} break; case 60: -#line 425 "parser.y" - { (yyval.statement) = new_switch_statement(ctx, (yyvsp[-2].expr), (yyvsp[0].case_clausule)); ;} + +/* Line 1455 of yacc.c */ +#line 420 "parser.y" + { (yyval.statement) = new_with_statement(ctx, (yyvsp[(3) - (5)].expr), (yyvsp[(5) - (5)].statement)); ;} break; case 61: -#line 430 "parser.y" - { (yyval.case_clausule) = new_case_block(ctx, (yyvsp[-1].case_list), NULL, NULL); ;} + +/* Line 1455 of yacc.c */ +#line 425 "parser.y" + { (yyval.statement) = new_labelled_statement(ctx, (yyvsp[(1) - (3)].identifier), (yyvsp[(3) - (3)].statement)); ;} break; case 62: -#line 432 "parser.y" - { (yyval.case_clausule) = new_case_block(ctx, (yyvsp[-3].case_list), (yyvsp[-2].case_clausule), (yyvsp[-1].case_list)); ;} + +/* Line 1455 of yacc.c */ +#line 430 "parser.y" + { (yyval.statement) = new_switch_statement(ctx, (yyvsp[(3) - (5)].expr), (yyvsp[(5) - (5)].case_clausule)); ;} break; case 63: -#line 436 "parser.y" - { (yyval.case_list) = NULL; ;} + +/* Line 1455 of yacc.c */ +#line 435 "parser.y" + { (yyval.case_clausule) = new_case_block(ctx, (yyvsp[(2) - (3)].case_list), NULL, NULL); ;} break; case 64: + +/* Line 1455 of yacc.c */ #line 437 "parser.y" - { (yyval.case_list) = (yyvsp[0].case_list); ;} + { (yyval.case_clausule) = new_case_block(ctx, (yyvsp[(2) - (5)].case_list), (yyvsp[(3) - (5)].case_clausule), (yyvsp[(4) - (5)].case_list)); ;} break; case 65: + +/* Line 1455 of yacc.c */ #line 441 "parser.y" - { (yyval.case_list) = new_case_list(ctx, (yyvsp[0].case_clausule)); ;} + { (yyval.case_list) = NULL; ;} break; case 66: -#line 443 "parser.y" - { (yyval.case_list) = case_list_add(ctx, (yyvsp[-1].case_list), (yyvsp[0].case_clausule)); ;} + +/* Line 1455 of yacc.c */ +#line 442 "parser.y" + { (yyval.case_list) = (yyvsp[(1) - (1)].case_list); ;} break; case 67: -#line 448 "parser.y" - { (yyval.case_clausule) = new_case_clausule(ctx, (yyvsp[-2].expr), (yyvsp[0].statement_list)); ;} + +/* Line 1455 of yacc.c */ +#line 446 "parser.y" + { (yyval.case_list) = new_case_list(ctx, (yyvsp[(1) - (1)].case_clausule)); ;} break; case 68: -#line 453 "parser.y" - { (yyval.case_clausule) = new_case_clausule(ctx, NULL, (yyvsp[0].statement_list)); ;} + +/* Line 1455 of yacc.c */ +#line 448 "parser.y" + { (yyval.case_list) = case_list_add(ctx, (yyvsp[(1) - (2)].case_list), (yyvsp[(2) - (2)].case_clausule)); ;} break; case 69: -#line 458 "parser.y" - { (yyval.statement) = new_throw_statement(ctx, (yyvsp[-1].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 453 "parser.y" + { (yyval.case_clausule) = new_case_clausule(ctx, (yyvsp[(2) - (4)].expr), (yyvsp[(4) - (4)].statement_list)); ;} break; case 70: -#line 462 "parser.y" - { (yyval.statement) = new_try_statement(ctx, (yyvsp[-1].statement), (yyvsp[0].catch_block), NULL); ;} + +/* Line 1455 of yacc.c */ +#line 458 "parser.y" + { (yyval.case_clausule) = new_case_clausule(ctx, NULL, (yyvsp[(3) - (3)].statement_list)); ;} break; case 71: + +/* Line 1455 of yacc.c */ #line 463 "parser.y" - { (yyval.statement) = new_try_statement(ctx, (yyvsp[-1].statement), NULL, (yyvsp[0].statement)); ;} + { (yyval.statement) = new_throw_statement(ctx, (yyvsp[(2) - (3)].expr)); ;} break; case 72: -#line 465 "parser.y" - { (yyval.statement) = new_try_statement(ctx, (yyvsp[-2].statement), (yyvsp[-1].catch_block), (yyvsp[0].statement)); ;} + +/* Line 1455 of yacc.c */ +#line 467 "parser.y" + { (yyval.statement) = new_try_statement(ctx, (yyvsp[(2) - (3)].statement), (yyvsp[(3) - (3)].catch_block), NULL); ;} break; case 73: -#line 470 "parser.y" - { (yyval.catch_block) = new_catch_block(ctx, (yyvsp[-2].identifier), (yyvsp[0].statement)); ;} + +/* Line 1455 of yacc.c */ +#line 468 "parser.y" + { (yyval.statement) = new_try_statement(ctx, (yyvsp[(2) - (3)].statement), NULL, (yyvsp[(3) - (3)].statement)); ;} break; case 74: -#line 474 "parser.y" - { (yyval.statement) = (yyvsp[0].statement); ;} + +/* Line 1455 of yacc.c */ +#line 470 "parser.y" + { (yyval.statement) = new_try_statement(ctx, (yyvsp[(2) - (4)].statement), (yyvsp[(3) - (4)].catch_block), (yyvsp[(4) - (4)].statement)); ;} break; case 75: -#line 478 "parser.y" - { (yyval.expr) = NULL; ;} + +/* Line 1455 of yacc.c */ +#line 475 "parser.y" + { (yyval.catch_block) = new_catch_block(ctx, (yyvsp[(3) - (5)].identifier), (yyvsp[(5) - (5)].statement)); ;} break; case 76: + +/* Line 1455 of yacc.c */ #line 479 "parser.y" - { (yyval.expr) = (yyvsp[0].expr); ;} + { (yyval.statement) = (yyvsp[(2) - (2)].statement); ;} break; case 77: + +/* Line 1455 of yacc.c */ #line 483 "parser.y" - { (yyval.expr) = (yyvsp[0].expr); ;} - break; - - case 78: -#line 485 "parser.y" - { (yyval.expr) = new_binary_expression(ctx, EXPR_COMMA, (yyvsp[-2].expr), (yyvsp[0].expr)); ;} - break; - - case 79: -#line 489 "parser.y" { (yyval.expr) = NULL; ;} break; + case 78: + +/* Line 1455 of yacc.c */ +#line 484 "parser.y" + { (yyval.expr) = (yyvsp[(1) - (1)].expr); ;} + break; + + case 79: + +/* Line 1455 of yacc.c */ +#line 488 "parser.y" + { (yyval.expr) = (yyvsp[(1) - (1)].expr); ;} + break; + case 80: + +/* Line 1455 of yacc.c */ #line 490 "parser.y" - { (yyval.expr) = (yyvsp[0].expr); ;} + { (yyval.expr) = new_binary_expression(ctx, EXPR_COMMA, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} break; case 81: -#line 495 "parser.y" - { (yyval.expr) = (yyvsp[0].expr); ;} + +/* Line 1455 of yacc.c */ +#line 494 "parser.y" + { (yyval.expr) = NULL; ;} break; case 82: -#line 497 "parser.y" - { (yyval.expr) = new_binary_expression(ctx, EXPR_COMMA, (yyvsp[-2].expr), (yyvsp[0].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 495 "parser.y" + { (yyval.expr) = (yyvsp[(1) - (1)].expr); ;} break; case 83: -#line 501 "parser.y" - { (yyval.expr) = (yyvsp[0].expr); ;} + +/* Line 1455 of yacc.c */ +#line 500 "parser.y" + { (yyval.expr) = (yyvsp[(1) - (1)].expr); ;} break; case 84: -#line 503 "parser.y" - { (yyval.expr) = new_binary_expression(ctx, EXPR_ASSIGN, (yyvsp[-2].expr), (yyvsp[0].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 502 "parser.y" + { (yyval.expr) = new_binary_expression(ctx, EXPR_COMMA, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} break; case 85: -#line 505 "parser.y" - { (yyval.expr) = new_binary_expression(ctx, (yyvsp[-1].ival), (yyvsp[-2].expr), (yyvsp[0].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 506 "parser.y" + { (yyval.expr) = (yyvsp[(1) - (1)].expr); ;} break; case 86: -#line 510 "parser.y" - { (yyval.expr) = (yyvsp[0].expr); ;} + +/* Line 1455 of yacc.c */ +#line 508 "parser.y" + { (yyval.expr) = new_binary_expression(ctx, EXPR_ASSIGN, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} break; case 87: -#line 512 "parser.y" - { (yyval.expr) = new_binary_expression(ctx, EXPR_ASSIGN, (yyvsp[-2].expr), (yyvsp[0].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 510 "parser.y" + { (yyval.expr) = new_binary_expression(ctx, (yyvsp[(2) - (3)].ival), (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} break; case 88: -#line 514 "parser.y" - { (yyval.expr) = new_binary_expression(ctx, (yyvsp[-1].ival), (yyvsp[-2].expr), (yyvsp[0].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 515 "parser.y" + { (yyval.expr) = (yyvsp[(1) - (1)].expr); ;} break; case 89: -#line 518 "parser.y" - { (yyval.expr) = (yyvsp[0].expr); ;} + +/* Line 1455 of yacc.c */ +#line 517 "parser.y" + { (yyval.expr) = new_binary_expression(ctx, EXPR_ASSIGN, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} break; case 90: -#line 520 "parser.y" - { (yyval.expr) = new_conditional_expression(ctx, (yyvsp[-4].expr), (yyvsp[-2].expr), (yyvsp[0].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 519 "parser.y" + { (yyval.expr) = new_binary_expression(ctx, (yyvsp[(2) - (3)].ival), (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} break; case 91: -#line 525 "parser.y" - { (yyval.expr) = (yyvsp[0].expr); ;} + +/* Line 1455 of yacc.c */ +#line 523 "parser.y" + { (yyval.expr) = (yyvsp[(1) - (1)].expr); ;} break; case 92: -#line 527 "parser.y" - { (yyval.expr) = new_conditional_expression(ctx, (yyvsp[-4].expr), (yyvsp[-2].expr), (yyvsp[0].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 525 "parser.y" + { (yyval.expr) = new_conditional_expression(ctx, (yyvsp[(1) - (5)].expr), (yyvsp[(3) - (5)].expr), (yyvsp[(5) - (5)].expr)); ;} break; case 93: -#line 531 "parser.y" - { (yyval.expr) = (yyvsp[0].expr); ;} + +/* Line 1455 of yacc.c */ +#line 530 "parser.y" + { (yyval.expr) = (yyvsp[(1) - (1)].expr); ;} break; case 94: -#line 533 "parser.y" - { (yyval.expr) = new_binary_expression(ctx, EXPR_OR, (yyvsp[-2].expr), (yyvsp[0].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 532 "parser.y" + { (yyval.expr) = new_conditional_expression(ctx, (yyvsp[(1) - (5)].expr), (yyvsp[(3) - (5)].expr), (yyvsp[(5) - (5)].expr)); ;} break; case 95: -#line 538 "parser.y" - { (yyval.expr) = (yyvsp[0].expr); ;} + +/* Line 1455 of yacc.c */ +#line 536 "parser.y" + { (yyval.expr) = (yyvsp[(1) - (1)].expr); ;} break; case 96: -#line 540 "parser.y" - { (yyval.expr) = new_binary_expression(ctx, EXPR_OR, (yyvsp[-2].expr), (yyvsp[0].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 538 "parser.y" + { (yyval.expr) = new_binary_expression(ctx, EXPR_OR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} break; case 97: -#line 544 "parser.y" - { (yyval.expr) = (yyvsp[0].expr); ;} + +/* Line 1455 of yacc.c */ +#line 543 "parser.y" + { (yyval.expr) = (yyvsp[(1) - (1)].expr); ;} break; case 98: -#line 546 "parser.y" - { (yyval.expr) = new_binary_expression(ctx, EXPR_AND, (yyvsp[-2].expr), (yyvsp[0].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 545 "parser.y" + { (yyval.expr) = new_binary_expression(ctx, EXPR_OR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} break; case 99: -#line 551 "parser.y" - { (yyval.expr) = (yyvsp[0].expr); ;} + +/* Line 1455 of yacc.c */ +#line 549 "parser.y" + { (yyval.expr) = (yyvsp[(1) - (1)].expr); ;} break; case 100: -#line 553 "parser.y" - { (yyval.expr) = new_binary_expression(ctx, EXPR_AND, (yyvsp[-2].expr), (yyvsp[0].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 551 "parser.y" + { (yyval.expr) = new_binary_expression(ctx, EXPR_AND, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} break; case 101: -#line 557 "parser.y" - { (yyval.expr) = (yyvsp[0].expr); ;} + +/* Line 1455 of yacc.c */ +#line 556 "parser.y" + { (yyval.expr) = (yyvsp[(1) - (1)].expr); ;} break; case 102: -#line 559 "parser.y" - { (yyval.expr) = new_binary_expression(ctx, EXPR_BOR, (yyvsp[-2].expr), (yyvsp[0].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 558 "parser.y" + { (yyval.expr) = new_binary_expression(ctx, EXPR_AND, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} break; case 103: -#line 564 "parser.y" - { (yyval.expr) = (yyvsp[0].expr); ;} + +/* Line 1455 of yacc.c */ +#line 562 "parser.y" + { (yyval.expr) = (yyvsp[(1) - (1)].expr); ;} break; case 104: -#line 566 "parser.y" - { (yyval.expr) = new_binary_expression(ctx, EXPR_BOR, (yyvsp[-2].expr), (yyvsp[0].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 564 "parser.y" + { (yyval.expr) = new_binary_expression(ctx, EXPR_BOR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} break; case 105: -#line 570 "parser.y" - { (yyval.expr) = (yyvsp[0].expr); ;} + +/* Line 1455 of yacc.c */ +#line 569 "parser.y" + { (yyval.expr) = (yyvsp[(1) - (1)].expr); ;} break; case 106: -#line 572 "parser.y" - { (yyval.expr) = new_binary_expression(ctx, EXPR_BXOR, (yyvsp[-2].expr), (yyvsp[0].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 571 "parser.y" + { (yyval.expr) = new_binary_expression(ctx, EXPR_BOR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} break; case 107: -#line 577 "parser.y" - { (yyval.expr) = (yyvsp[0].expr); ;} + +/* Line 1455 of yacc.c */ +#line 575 "parser.y" + { (yyval.expr) = (yyvsp[(1) - (1)].expr); ;} break; case 108: -#line 579 "parser.y" - { (yyval.expr) = new_binary_expression(ctx, EXPR_BXOR, (yyvsp[-2].expr), (yyvsp[0].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 577 "parser.y" + { (yyval.expr) = new_binary_expression(ctx, EXPR_BXOR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} break; case 109: -#line 583 "parser.y" - { (yyval.expr) = (yyvsp[0].expr); ;} + +/* Line 1455 of yacc.c */ +#line 582 "parser.y" + { (yyval.expr) = (yyvsp[(1) - (1)].expr); ;} break; case 110: -#line 585 "parser.y" - { (yyval.expr) = new_binary_expression(ctx, EXPR_BAND, (yyvsp[-2].expr), (yyvsp[0].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 584 "parser.y" + { (yyval.expr) = new_binary_expression(ctx, EXPR_BXOR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} break; case 111: -#line 590 "parser.y" - { (yyval.expr) = (yyvsp[0].expr); ;} + +/* Line 1455 of yacc.c */ +#line 588 "parser.y" + { (yyval.expr) = (yyvsp[(1) - (1)].expr); ;} break; case 112: -#line 592 "parser.y" - { (yyval.expr) = new_binary_expression(ctx, EXPR_BAND, (yyvsp[-2].expr), (yyvsp[0].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 590 "parser.y" + { (yyval.expr) = new_binary_expression(ctx, EXPR_BAND, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} break; case 113: -#line 596 "parser.y" - { (yyval.expr) = (yyvsp[0].expr); ;} + +/* Line 1455 of yacc.c */ +#line 595 "parser.y" + { (yyval.expr) = (yyvsp[(1) - (1)].expr); ;} break; case 114: -#line 598 "parser.y" - { (yyval.expr) = new_binary_expression(ctx, (yyvsp[-1].ival), (yyvsp[-2].expr), (yyvsp[0].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 597 "parser.y" + { (yyval.expr) = new_binary_expression(ctx, EXPR_BAND, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} break; case 115: -#line 602 "parser.y" - { (yyval.expr) = (yyvsp[0].expr); ;} + +/* Line 1455 of yacc.c */ +#line 601 "parser.y" + { (yyval.expr) = (yyvsp[(1) - (1)].expr); ;} break; case 116: -#line 604 "parser.y" - { (yyval.expr) = new_binary_expression(ctx, (yyvsp[-1].ival), (yyvsp[-2].expr), (yyvsp[0].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 603 "parser.y" + { (yyval.expr) = new_binary_expression(ctx, (yyvsp[(2) - (3)].ival), (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} break; case 117: -#line 608 "parser.y" - { (yyval.expr) = (yyvsp[0].expr); ;} + +/* Line 1455 of yacc.c */ +#line 607 "parser.y" + { (yyval.expr) = (yyvsp[(1) - (1)].expr); ;} break; case 118: -#line 610 "parser.y" - { (yyval.expr) = new_binary_expression(ctx, (yyvsp[-1].ival), (yyvsp[-2].expr), (yyvsp[0].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 609 "parser.y" + { (yyval.expr) = new_binary_expression(ctx, (yyvsp[(2) - (3)].ival), (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} break; case 119: -#line 612 "parser.y" - { (yyval.expr) = new_binary_expression(ctx, EXPR_INSTANCEOF, (yyvsp[-2].expr), (yyvsp[0].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 613 "parser.y" + { (yyval.expr) = (yyvsp[(1) - (1)].expr); ;} break; case 120: -#line 614 "parser.y" - { (yyval.expr) = new_binary_expression(ctx, EXPR_IN, (yyvsp[-2].expr), (yyvsp[0].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 615 "parser.y" + { (yyval.expr) = new_binary_expression(ctx, (yyvsp[(2) - (3)].ival), (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} break; case 121: -#line 618 "parser.y" - { (yyval.expr) = (yyvsp[0].expr); ;} + +/* Line 1455 of yacc.c */ +#line 617 "parser.y" + { (yyval.expr) = new_binary_expression(ctx, EXPR_INSTANCEOF, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} break; case 122: -#line 620 "parser.y" - { (yyval.expr) = new_binary_expression(ctx, (yyvsp[-1].ival), (yyvsp[-2].expr), (yyvsp[0].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 619 "parser.y" + { (yyval.expr) = new_binary_expression(ctx, EXPR_IN, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} break; case 123: -#line 622 "parser.y" - { (yyval.expr) = new_binary_expression(ctx, EXPR_INSTANCEOF, (yyvsp[-2].expr), (yyvsp[0].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 623 "parser.y" + { (yyval.expr) = (yyvsp[(1) - (1)].expr); ;} break; case 124: -#line 626 "parser.y" - { (yyval.expr) = (yyvsp[0].expr); ;} + +/* Line 1455 of yacc.c */ +#line 625 "parser.y" + { (yyval.expr) = new_binary_expression(ctx, (yyvsp[(2) - (3)].ival), (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} break; case 125: -#line 628 "parser.y" - { (yyval.expr) = new_binary_expression(ctx, (yyvsp[-1].ival), (yyvsp[-2].expr), (yyvsp[0].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 627 "parser.y" + { (yyval.expr) = new_binary_expression(ctx, EXPR_INSTANCEOF, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} break; case 126: -#line 633 "parser.y" - { (yyval.expr) = (yyvsp[0].expr); ;} + +/* Line 1455 of yacc.c */ +#line 631 "parser.y" + { (yyval.expr) = (yyvsp[(1) - (1)].expr); ;} break; case 127: -#line 635 "parser.y" - { (yyval.expr) = new_binary_expression(ctx, EXPR_ADD, (yyvsp[-2].expr), (yyvsp[0].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 633 "parser.y" + { (yyval.expr) = new_binary_expression(ctx, (yyvsp[(2) - (3)].ival), (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} break; case 128: -#line 637 "parser.y" - { (yyval.expr) = new_binary_expression(ctx, EXPR_SUB, (yyvsp[-2].expr), (yyvsp[0].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 638 "parser.y" + { (yyval.expr) = (yyvsp[(1) - (1)].expr); ;} break; case 129: -#line 641 "parser.y" - { (yyval.expr) = (yyvsp[0].expr); ;} + +/* Line 1455 of yacc.c */ +#line 640 "parser.y" + { (yyval.expr) = new_binary_expression(ctx, EXPR_ADD, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} break; case 130: -#line 643 "parser.y" - { (yyval.expr) = new_binary_expression(ctx, EXPR_MUL, (yyvsp[-2].expr), (yyvsp[0].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 642 "parser.y" + { (yyval.expr) = new_binary_expression(ctx, EXPR_SUB, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} break; case 131: -#line 645 "parser.y" - { (yyval.expr) = new_binary_expression(ctx, EXPR_DIV, (yyvsp[-2].expr), (yyvsp[0].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 646 "parser.y" + { (yyval.expr) = (yyvsp[(1) - (1)].expr); ;} break; case 132: -#line 647 "parser.y" - { (yyval.expr) = new_binary_expression(ctx, EXPR_MOD, (yyvsp[-2].expr), (yyvsp[0].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 648 "parser.y" + { (yyval.expr) = new_binary_expression(ctx, EXPR_MUL, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} break; case 133: -#line 651 "parser.y" - { (yyval.expr) = (yyvsp[0].expr); ;} + +/* Line 1455 of yacc.c */ +#line 650 "parser.y" + { (yyval.expr) = new_binary_expression(ctx, EXPR_DIV, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} break; case 134: -#line 653 "parser.y" - { (yyval.expr) = new_unary_expression(ctx, EXPR_DELETE, (yyvsp[0].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 652 "parser.y" + { (yyval.expr) = new_binary_expression(ctx, EXPR_MOD, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} break; case 135: -#line 654 "parser.y" - { (yyval.expr) = new_unary_expression(ctx, EXPR_VOID, (yyvsp[0].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 656 "parser.y" + { (yyval.expr) = (yyvsp[(1) - (1)].expr); ;} break; case 136: -#line 656 "parser.y" - { (yyval.expr) = new_unary_expression(ctx, EXPR_TYPEOF, (yyvsp[0].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 658 "parser.y" + { (yyval.expr) = new_unary_expression(ctx, EXPR_DELETE, (yyvsp[(2) - (2)].expr)); ;} break; case 137: -#line 657 "parser.y" - { (yyval.expr) = new_unary_expression(ctx, EXPR_PREINC, (yyvsp[0].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 659 "parser.y" + { (yyval.expr) = new_unary_expression(ctx, EXPR_VOID, (yyvsp[(2) - (2)].expr)); ;} break; case 138: -#line 658 "parser.y" - { (yyval.expr) = new_unary_expression(ctx, EXPR_PREDEC, (yyvsp[0].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 661 "parser.y" + { (yyval.expr) = new_unary_expression(ctx, EXPR_TYPEOF, (yyvsp[(2) - (2)].expr)); ;} break; case 139: -#line 659 "parser.y" - { (yyval.expr) = new_unary_expression(ctx, EXPR_PLUS, (yyvsp[0].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 662 "parser.y" + { (yyval.expr) = new_unary_expression(ctx, EXPR_PREINC, (yyvsp[(2) - (2)].expr)); ;} break; case 140: -#line 660 "parser.y" - { (yyval.expr) = new_unary_expression(ctx, EXPR_MINUS, (yyvsp[0].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 663 "parser.y" + { (yyval.expr) = new_unary_expression(ctx, EXPR_PREDEC, (yyvsp[(2) - (2)].expr)); ;} break; case 141: -#line 661 "parser.y" - { (yyval.expr) = new_unary_expression(ctx, EXPR_BITNEG, (yyvsp[0].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 664 "parser.y" + { (yyval.expr) = new_unary_expression(ctx, EXPR_PLUS, (yyvsp[(2) - (2)].expr)); ;} break; case 142: -#line 662 "parser.y" - { (yyval.expr) = new_unary_expression(ctx, EXPR_LOGNEG, (yyvsp[0].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 665 "parser.y" + { (yyval.expr) = new_unary_expression(ctx, EXPR_MINUS, (yyvsp[(2) - (2)].expr)); ;} break; case 143: -#line 667 "parser.y" - { (yyval.expr) = (yyvsp[0].expr); ;} + +/* Line 1455 of yacc.c */ +#line 666 "parser.y" + { (yyval.expr) = new_unary_expression(ctx, EXPR_BITNEG, (yyvsp[(2) - (2)].expr)); ;} break; case 144: -#line 669 "parser.y" - { (yyval.expr) = new_unary_expression(ctx, EXPR_POSTINC, (yyvsp[-1].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 667 "parser.y" + { (yyval.expr) = new_unary_expression(ctx, EXPR_LOGNEG, (yyvsp[(2) - (2)].expr)); ;} break; case 145: -#line 671 "parser.y" - { (yyval.expr) = new_unary_expression(ctx, EXPR_POSTDEC, (yyvsp[-1].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 672 "parser.y" + { (yyval.expr) = (yyvsp[(1) - (1)].expr); ;} break; case 146: -#line 676 "parser.y" - { (yyval.expr) = (yyvsp[0].expr); ;} + +/* Line 1455 of yacc.c */ +#line 674 "parser.y" + { (yyval.expr) = new_unary_expression(ctx, EXPR_POSTINC, (yyvsp[(1) - (2)].expr)); ;} break; case 147: -#line 677 "parser.y" - { (yyval.expr) = (yyvsp[0].expr); ;} + +/* Line 1455 of yacc.c */ +#line 676 "parser.y" + { (yyval.expr) = new_unary_expression(ctx, EXPR_POSTDEC, (yyvsp[(1) - (2)].expr)); ;} break; case 148: + +/* Line 1455 of yacc.c */ #line 681 "parser.y" - { (yyval.expr) = (yyvsp[0].expr); ;} + { (yyval.expr) = (yyvsp[(1) - (1)].expr); ;} break; case 149: + +/* Line 1455 of yacc.c */ #line 682 "parser.y" - { (yyval.expr) = new_new_expression(ctx, (yyvsp[0].expr), NULL); ;} + { (yyval.expr) = (yyvsp[(1) - (1)].expr); ;} break; case 150: + +/* Line 1455 of yacc.c */ #line 686 "parser.y" - { (yyval.expr) = (yyvsp[0].expr); ;} + { (yyval.expr) = (yyvsp[(1) - (1)].expr); ;} break; case 151: + +/* Line 1455 of yacc.c */ #line 687 "parser.y" - { (yyval.expr) = (yyvsp[0].expr); ;} + { (yyval.expr) = new_new_expression(ctx, (yyvsp[(2) - (2)].expr), NULL); ;} break; case 152: -#line 689 "parser.y" - { (yyval.expr) = new_array_expression(ctx, (yyvsp[-3].expr), (yyvsp[-1].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 691 "parser.y" + { (yyval.expr) = (yyvsp[(1) - (1)].expr); ;} break; case 153: -#line 691 "parser.y" - { (yyval.expr) = new_member_expression(ctx, (yyvsp[-2].expr), (yyvsp[0].identifier)); ;} + +/* Line 1455 of yacc.c */ +#line 692 "parser.y" + { (yyval.expr) = (yyvsp[(1) - (1)].expr); ;} break; case 154: -#line 693 "parser.y" - { (yyval.expr) = new_new_expression(ctx, (yyvsp[-1].expr), (yyvsp[0].argument_list)); ;} + +/* Line 1455 of yacc.c */ +#line 694 "parser.y" + { (yyval.expr) = new_array_expression(ctx, (yyvsp[(1) - (4)].expr), (yyvsp[(3) - (4)].expr)); ;} break; case 155: -#line 698 "parser.y" - { (yyval.expr) = new_call_expression(ctx, (yyvsp[-1].expr), (yyvsp[0].argument_list)); ;} + +/* Line 1455 of yacc.c */ +#line 696 "parser.y" + { (yyval.expr) = new_member_expression(ctx, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].identifier)); ;} break; case 156: -#line 700 "parser.y" - { (yyval.expr) = new_call_expression(ctx, (yyvsp[-1].expr), (yyvsp[0].argument_list)); ;} + +/* Line 1455 of yacc.c */ +#line 698 "parser.y" + { (yyval.expr) = new_new_expression(ctx, (yyvsp[(2) - (3)].expr), (yyvsp[(3) - (3)].argument_list)); ;} break; case 157: -#line 702 "parser.y" - { (yyval.expr) = new_array_expression(ctx, (yyvsp[-3].expr), (yyvsp[-1].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 703 "parser.y" + { (yyval.expr) = new_call_expression(ctx, (yyvsp[(1) - (2)].expr), (yyvsp[(2) - (2)].argument_list)); ;} break; case 158: -#line 704 "parser.y" - { (yyval.expr) = new_member_expression(ctx, (yyvsp[-2].expr), (yyvsp[0].identifier)); ;} + +/* Line 1455 of yacc.c */ +#line 705 "parser.y" + { (yyval.expr) = new_call_expression(ctx, (yyvsp[(1) - (2)].expr), (yyvsp[(2) - (2)].argument_list)); ;} break; case 159: -#line 708 "parser.y" - { (yyval.argument_list) = NULL; ;} + +/* Line 1455 of yacc.c */ +#line 707 "parser.y" + { (yyval.expr) = new_array_expression(ctx, (yyvsp[(1) - (4)].expr), (yyvsp[(3) - (4)].expr)); ;} break; case 160: + +/* Line 1455 of yacc.c */ #line 709 "parser.y" - { (yyval.argument_list) = (yyvsp[-1].argument_list); ;} + { (yyval.expr) = new_member_expression(ctx, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].identifier)); ;} break; case 161: + +/* Line 1455 of yacc.c */ #line 713 "parser.y" - { (yyval.argument_list) = new_argument_list(ctx, (yyvsp[0].expr)); ;} + { (yyval.argument_list) = NULL; ;} break; case 162: -#line 715 "parser.y" - { (yyval.argument_list) = argument_list_add(ctx, (yyvsp[-2].argument_list), (yyvsp[0].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 714 "parser.y" + { (yyval.argument_list) = (yyvsp[(2) - (3)].argument_list); ;} break; case 163: -#line 719 "parser.y" - { (yyval.expr) = new_this_expression(ctx); ;} + +/* Line 1455 of yacc.c */ +#line 718 "parser.y" + { (yyval.argument_list) = new_argument_list(ctx, (yyvsp[(1) - (1)].expr)); ;} break; case 164: + +/* Line 1455 of yacc.c */ #line 720 "parser.y" - { (yyval.expr) = new_identifier_expression(ctx, (yyvsp[0].identifier)); ;} + { (yyval.argument_list) = argument_list_add(ctx, (yyvsp[(1) - (3)].argument_list), (yyvsp[(3) - (3)].expr)); ;} break; case 165: -#line 721 "parser.y" - { (yyval.expr) = new_literal_expression(ctx, (yyvsp[0].literal)); ;} + +/* Line 1455 of yacc.c */ +#line 724 "parser.y" + { (yyval.expr) = new_this_expression(ctx); ;} break; case 166: -#line 722 "parser.y" - { (yyval.expr) = (yyvsp[0].expr); ;} + +/* Line 1455 of yacc.c */ +#line 725 "parser.y" + { (yyval.expr) = new_identifier_expression(ctx, (yyvsp[(1) - (1)].identifier)); ;} break; case 167: -#line 723 "parser.y" - { (yyval.expr) = (yyvsp[0].expr); ;} + +/* Line 1455 of yacc.c */ +#line 726 "parser.y" + { (yyval.expr) = new_literal_expression(ctx, (yyvsp[(1) - (1)].literal)); ;} break; case 168: -#line 724 "parser.y" - { (yyval.expr) = (yyvsp[-1].expr); ;} + +/* Line 1455 of yacc.c */ +#line 727 "parser.y" + { (yyval.expr) = (yyvsp[(1) - (1)].expr); ;} break; case 169: + +/* Line 1455 of yacc.c */ #line 728 "parser.y" - { (yyval.expr) = new_array_literal_expression(ctx, NULL, 0); ;} + { (yyval.expr) = (yyvsp[(1) - (1)].expr); ;} break; case 170: + +/* Line 1455 of yacc.c */ #line 729 "parser.y" - { (yyval.expr) = new_array_literal_expression(ctx, NULL, (yyvsp[-1].ival)+1); ;} + { (yyval.expr) = (yyvsp[(2) - (3)].expr); ;} break; case 171: -#line 730 "parser.y" - { (yyval.expr) = new_array_literal_expression(ctx, (yyvsp[-1].element_list), 0); ;} + +/* Line 1455 of yacc.c */ +#line 733 "parser.y" + { (yyval.expr) = new_array_literal_expression(ctx, NULL, 0); ;} break; case 172: -#line 732 "parser.y" - { (yyval.expr) = new_array_literal_expression(ctx, (yyvsp[-3].element_list), (yyvsp[-1].ival)+1); ;} + +/* Line 1455 of yacc.c */ +#line 734 "parser.y" + { (yyval.expr) = new_array_literal_expression(ctx, NULL, (yyvsp[(2) - (3)].ival)+1); ;} break; case 173: -#line 737 "parser.y" - { (yyval.element_list) = new_element_list(ctx, (yyvsp[-1].ival), (yyvsp[0].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 735 "parser.y" + { (yyval.expr) = new_array_literal_expression(ctx, (yyvsp[(2) - (3)].element_list), 0); ;} break; case 174: -#line 739 "parser.y" - { (yyval.element_list) = element_list_add(ctx, (yyvsp[-3].element_list), (yyvsp[-1].ival), (yyvsp[0].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 737 "parser.y" + { (yyval.expr) = new_array_literal_expression(ctx, (yyvsp[(2) - (5)].element_list), (yyvsp[(4) - (5)].ival)+1); ;} break; case 175: -#line 743 "parser.y" - { (yyval.ival) = 1; ;} + +/* Line 1455 of yacc.c */ +#line 742 "parser.y" + { (yyval.element_list) = new_element_list(ctx, (yyvsp[(1) - (2)].ival), (yyvsp[(2) - (2)].expr)); ;} break; case 176: + +/* Line 1455 of yacc.c */ #line 744 "parser.y" - { (yyval.ival) = (yyvsp[-1].ival) + 1; ;} + { (yyval.element_list) = element_list_add(ctx, (yyvsp[(1) - (4)].element_list), (yyvsp[(3) - (4)].ival), (yyvsp[(4) - (4)].expr)); ;} break; case 177: + +/* Line 1455 of yacc.c */ #line 748 "parser.y" - { (yyval.ival) = 0; ;} + { (yyval.ival) = 1; ;} break; case 178: + +/* Line 1455 of yacc.c */ #line 749 "parser.y" - { (yyval.ival) = (yyvsp[0].ival); ;} + { (yyval.ival) = (yyvsp[(1) - (2)].ival) + 1; ;} break; case 179: + +/* Line 1455 of yacc.c */ #line 753 "parser.y" - { (yyval.expr) = new_prop_and_value_expression(ctx, NULL); ;} + { (yyval.ival) = 0; ;} break; case 180: -#line 755 "parser.y" - { (yyval.expr) = new_prop_and_value_expression(ctx, (yyvsp[-1].property_list)); ;} + +/* Line 1455 of yacc.c */ +#line 754 "parser.y" + { (yyval.ival) = (yyvsp[(1) - (1)].ival); ;} break; case 181: -#line 760 "parser.y" - { (yyval.property_list) = new_property_list(ctx, (yyvsp[-2].literal), (yyvsp[0].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 758 "parser.y" + { (yyval.expr) = new_prop_and_value_expression(ctx, NULL); ;} break; case 182: -#line 762 "parser.y" - { (yyval.property_list) = property_list_add(ctx, (yyvsp[-4].property_list), (yyvsp[-2].literal), (yyvsp[0].expr)); ;} + +/* Line 1455 of yacc.c */ +#line 760 "parser.y" + { (yyval.expr) = new_prop_and_value_expression(ctx, (yyvsp[(2) - (3)].property_list)); ;} break; case 183: -#line 766 "parser.y" - { (yyval.literal) = new_string_literal(ctx, (yyvsp[0].identifier)); ;} + +/* Line 1455 of yacc.c */ +#line 765 "parser.y" + { (yyval.property_list) = new_property_list(ctx, (yyvsp[(1) - (3)].literal), (yyvsp[(3) - (3)].expr)); ;} break; case 184: + +/* Line 1455 of yacc.c */ #line 767 "parser.y" - { (yyval.literal) = new_string_literal(ctx, (yyvsp[0].wstr)); ;} + { (yyval.property_list) = property_list_add(ctx, (yyvsp[(1) - (5)].property_list), (yyvsp[(3) - (5)].literal), (yyvsp[(5) - (5)].expr)); ;} break; case 185: -#line 768 "parser.y" - { (yyval.literal) = (yyvsp[0].literal); ;} + +/* Line 1455 of yacc.c */ +#line 771 "parser.y" + { (yyval.literal) = new_string_literal(ctx, (yyvsp[(1) - (1)].identifier)); ;} break; case 186: + +/* Line 1455 of yacc.c */ #line 772 "parser.y" - { (yyval.identifier) = NULL; ;} + { (yyval.literal) = new_string_literal(ctx, (yyvsp[(1) - (1)].wstr)); ;} break; case 187: + +/* Line 1455 of yacc.c */ #line 773 "parser.y" - { (yyval.identifier) = (yyvsp[0].identifier); ;} + { (yyval.literal) = (yyvsp[(1) - (1)].literal); ;} break; case 188: + +/* Line 1455 of yacc.c */ #line 777 "parser.y" - { (yyval.literal) = new_null_literal(ctx); ;} + { (yyval.identifier) = NULL; ;} break; case 189: + +/* Line 1455 of yacc.c */ #line 778 "parser.y" - { (yyval.literal) = new_undefined_literal(ctx); ;} + { (yyval.identifier) = (yyvsp[(1) - (1)].identifier); ;} break; case 190: -#line 779 "parser.y" - { (yyval.literal) = (yyvsp[0].literal); ;} + +/* Line 1455 of yacc.c */ +#line 782 "parser.y" + { (yyval.literal) = new_null_literal(ctx); ;} break; case 191: -#line 780 "parser.y" - { (yyval.literal) = (yyvsp[0].literal); ;} + +/* Line 1455 of yacc.c */ +#line 783 "parser.y" + { (yyval.literal) = new_undefined_literal(ctx); ;} break; case 192: -#line 781 "parser.y" - { (yyval.literal) = new_string_literal(ctx, (yyvsp[0].wstr)); ;} + +/* Line 1455 of yacc.c */ +#line 784 "parser.y" + { (yyval.literal) = (yyvsp[(1) - (1)].literal); ;} break; case 193: -#line 782 "parser.y" + +/* Line 1455 of yacc.c */ +#line 785 "parser.y" + { (yyval.literal) = (yyvsp[(1) - (1)].literal); ;} + break; + + case 194: + +/* Line 1455 of yacc.c */ +#line 786 "parser.y" + { (yyval.literal) = new_string_literal(ctx, (yyvsp[(1) - (1)].wstr)); ;} + break; + + case 195: + +/* Line 1455 of yacc.c */ +#line 787 "parser.y" { (yyval.literal) = parse_regexp(ctx); if(!(yyval.literal)) YYABORT; ;} break; - case 194: -#line 787 "parser.y" + case 196: + +/* Line 1455 of yacc.c */ +#line 792 "parser.y" { (yyval.literal) = new_boolean_literal(ctx, TRUE); ;} break; - case 195: -#line 788 "parser.y" + case 197: + +/* Line 1455 of yacc.c */ +#line 793 "parser.y" { (yyval.literal) = new_boolean_literal(ctx, FALSE); ;} break; - case 197: -#line 792 "parser.y" + case 199: + +/* Line 1455 of yacc.c */ +#line 797 "parser.y" { if(!allow_auto_semicolon(ctx)) {YYABORT;} ;} break; + +/* Line 1455 of yacc.c */ +#line 3362 "parser.tab.c" default: break; } + YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); -/* Line 1126 of yacc.c. */ -#line 2754 "parser.tab.c" - - yyvsp -= yylen; - yyssp -= yylen; - - + YYPOPSTACK (yylen); + yylen = 0; YY_STACK_PRINT (yyss, yyssp); *++yyvsp = yyval; - /* Now `shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ @@ -2784,133 +3392,65 @@ yyerrlab: if (!yyerrstatus) { ++yynerrs; -#if YYERROR_VERBOSE - yyn = yypact[yystate]; - - if (YYPACT_NINF < yyn && yyn < YYLAST) - { - int yytype = YYTRANSLATE (yychar); - YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); - YYSIZE_T yysize = yysize0; - YYSIZE_T yysize1; - int yysize_overflow = 0; - char *yymsg = 0; -# define YYERROR_VERBOSE_ARGS_MAXIMUM 5 - char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; - int yyx; - -#if 0 - /* This is so xgettext sees the translatable formats that are - constructed on the fly. */ - YY_("syntax error, unexpected %s"); - YY_("syntax error, unexpected %s, expecting %s"); - YY_("syntax error, unexpected %s, expecting %s or %s"); - YY_("syntax error, unexpected %s, expecting %s or %s or %s"); - YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); -#endif - char *yyfmt; - char const *yyf; - static char const yyunexpected[] = "syntax error, unexpected %s"; - static char const yyexpecting[] = ", expecting %s"; - static char const yyor[] = " or %s"; - char yyformat[sizeof yyunexpected - + sizeof yyexpecting - 1 - + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) - * (sizeof yyor - 1))]; - char const *yyprefix = yyexpecting; - - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. */ - int yyxbegin = yyn < 0 ? -yyn : 0; - - /* Stay within bounds of both yycheck and yytname. */ - int yychecklim = YYLAST - yyn; - int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; - int yycount = 1; - - yyarg[0] = yytname[yytype]; - yyfmt = yystpcpy (yyformat, yyunexpected); - - for (yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) - { - if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) - { - yycount = 1; - yysize = yysize0; - yyformat[sizeof yyunexpected - 1] = '\0'; - break; - } - yyarg[yycount++] = yytname[yyx]; - yysize1 = yysize + yytnamerr (0, yytname[yyx]); - yysize_overflow |= yysize1 < yysize; - yysize = yysize1; - yyfmt = yystpcpy (yyfmt, yyprefix); - yyprefix = yyor; - } - - yyf = YY_(yyformat); - yysize1 = yysize + yystrlen (yyf); - yysize_overflow |= yysize1 < yysize; - yysize = yysize1; - - if (!yysize_overflow && yysize <= YYSTACK_ALLOC_MAXIMUM) - yymsg = (char *) YYSTACK_ALLOC (yysize); - if (yymsg) - { - /* Avoid sprintf, as that infringes on the user's name space. - Don't have undefined behavior even if the translation - produced a string with the wrong number of "%s"s. */ - char *yyp = yymsg; - int yyi = 0; - while ((*yyp = *yyf)) - { - if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) - { - yyp += yytnamerr (yyp, yyarg[yyi++]); - yyf += 2; - } - else - { - yyp++; - yyf++; - } - } - yyerror (yymsg); +#if ! YYERROR_VERBOSE + yyerror (YY_("syntax error")); +#else + { + YYSIZE_T yysize = yysyntax_error (0, yystate, yychar); + if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM) + { + YYSIZE_T yyalloc = 2 * yysize; + if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM)) + yyalloc = YYSTACK_ALLOC_MAXIMUM; + if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); - } - else - { - yyerror (YY_("syntax error")); + yymsg = (char *) YYSTACK_ALLOC (yyalloc); + if (yymsg) + yymsg_alloc = yyalloc; + else + { + yymsg = yymsgbuf; + yymsg_alloc = sizeof yymsgbuf; + } + } + + if (0 < yysize && yysize <= yymsg_alloc) + { + (void) yysyntax_error (yymsg, yystate, yychar); + yyerror (yymsg); + } + else + { + yyerror (YY_("syntax error")); + if (yysize != 0) goto yyexhaustedlab; - } - } - else -#endif /* YYERROR_VERBOSE */ - yyerror (YY_("syntax error")); + } + } +#endif } if (yyerrstatus == 3) { - /* If just tried and failed to reuse look-ahead token after an + /* If just tried and failed to reuse lookahead token after an error, discard it. */ if (yychar <= YYEOF) - { + { /* Return failure if at end of input. */ if (yychar == YYEOF) YYABORT; - } + } else { - yydestruct ("Error: discarding", yytoken, &yylval); + yydestruct ("Error: discarding", + yytoken, &yylval); yychar = YYEMPTY; } } - /* Else will try to reuse look-ahead token after shifting the error + /* Else will try to reuse lookahead token after shifting the error token. */ goto yyerrlab1; @@ -2923,11 +3463,14 @@ yyerrorlab: /* Pacify compilers like GCC when the user code never invokes YYERROR and the label yyerrorlab therefore never appears in user code. */ - if (0) + if (/*CONSTCOND*/ 0) goto yyerrorlab; -yyvsp -= yylen; - yyssp -= yylen; + /* Do not reclaim the symbols of the rule which action triggered + this YYERROR. */ + YYPOPSTACK (yylen); + yylen = 0; + YY_STACK_PRINT (yyss, yyssp); yystate = *yyssp; goto yyerrlab1; @@ -2957,19 +3500,17 @@ yyerrlab1: YYABORT; - yydestruct ("Error: popping", yystos[yystate], yyvsp); - YYPOPSTACK; + yydestruct ("Error: popping", + yystos[yystate], yyvsp); + YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); } - if (yyn == YYFINAL) - YYACCEPT; - *++yyvsp = yylval; - /* Shift the error token. */ + /* Shift the error token. */ YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); yystate = yyn; @@ -2990,7 +3531,7 @@ yyabortlab: yyresult = 1; goto yyreturn; -#ifndef yyoverflow +#if !defined(yyoverflow) || YYERROR_VERBOSE /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ @@ -3001,24 +3542,35 @@ yyexhaustedlab: #endif yyreturn: - if (yychar != YYEOF && yychar != YYEMPTY) + if (yychar != YYEMPTY) yydestruct ("Cleanup: discarding lookahead", yytoken, &yylval); + /* Do not reclaim the symbols of the rule which action triggered + this YYABORT or YYACCEPT. */ + YYPOPSTACK (yylen); + YY_STACK_PRINT (yyss, yyssp); while (yyssp != yyss) { yydestruct ("Cleanup: popping", yystos[*yyssp], yyvsp); - YYPOPSTACK; + YYPOPSTACK (1); } #ifndef yyoverflow if (yyss != yyssa) YYSTACK_FREE (yyss); #endif - return yyresult; +#if YYERROR_VERBOSE + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); +#endif + /* Make sure YYID is used. */ + return YYID (yyresult); } -#line 794 "parser.y" + +/* Line 1675 of yacc.c */ +#line 799 "parser.y" static BOOL allow_auto_semicolon(parser_ctx_t *ctx) @@ -3777,18 +4329,22 @@ void parser_release(parser_ctx_t *ctx) heap_free(ctx); } -HRESULT script_parse(script_ctx_t *ctx, const WCHAR *code, parser_ctx_t **ret) +HRESULT script_parse(script_ctx_t *ctx, const WCHAR *code, const WCHAR *delimiter, + parser_ctx_t **ret) { parser_ctx_t *parser_ctx; jsheap_t *mark; HRESULT hres; + const WCHAR html_tagW[] = {'<','/','s','c','r','i','p','t','>',0}; + parser_ctx = heap_alloc_zero(sizeof(parser_ctx_t)); if(!parser_ctx) return E_OUTOFMEMORY; parser_ctx->ref = 1; parser_ctx->hres = E_FAIL; + parser_ctx->is_html = delimiter && !strcmpiW(delimiter, html_tagW); parser_ctx->begin = parser_ctx->ptr = code; parser_ctx->end = code + strlenW(code); diff --git a/reactos/dll/win32/jscript/parser.tab.h b/reactos/dll/win32/jscript/parser.tab.h index 1f49d2a0c6b..98b62a20aab 100644 --- a/reactos/dll/win32/jscript/parser.tab.h +++ b/reactos/dll/win32/jscript/parser.tab.h @@ -1,27 +1,37 @@ -/* A Bison parser, made by GNU Bison 2.1. */ -/* Skeleton parser for Yacc-like parsing with Bison, - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. +/* A Bison parser, made by GNU Bison 2.4.1. */ - This program is free software; you can redistribute it and/or modify +/* Skeleton interface for Bison's Yacc-like parsers in C + + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 + Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ + +/* As a special exception, you may create a larger work that contains + part or all of the Bison parser skeleton and distribute that work + under terms of your choice, so long as that work isn't itself a + parser generator using the skeleton or a modified version thereof + as a parser skeleton. Alternatively, if you modify or redistribute + the parser skeleton itself, you may (at your option) remove this + special exception, which will cause the skeleton and the resulting + Bison output files to be licensed under the GNU General Public + License without this special exception. + + This special exception was added by the Free Software Foundation in + version 2.2 of Bison. */ -/* As a special exception, when this file is copied by Bison into a - Bison output file, you may use that output file without restriction. - This special exception was added by the Free Software Foundation - in version 1.24 of Bison. */ /* Tokens. */ #ifndef YYTOKENTYPE @@ -61,66 +71,28 @@ tOROR = 287, tINC = 288, tDEC = 289, - kFUNCTION = 290, - tIdentifier = 291, - tAssignOper = 292, - tEqOper = 293, - tShiftOper = 294, - tRelOper = 295, - tNumericLiteral = 296, - tStringLiteral = 297, - LOWER_THAN_ELSE = 298 + tHTMLCOMMENT = 290, + kFUNCTION = 291, + tIdentifier = 292, + tAssignOper = 293, + tEqOper = 294, + tShiftOper = 295, + tRelOper = 296, + tNumericLiteral = 297, + tStringLiteral = 298, + LOWER_THAN_ELSE = 299 }; #endif -/* Tokens. */ -#define kBREAK 258 -#define kCASE 259 -#define kCATCH 260 -#define kCONTINUE 261 -#define kDEFAULT 262 -#define kDELETE 263 -#define kDO 264 -#define kELSE 265 -#define kIF 266 -#define kFINALLY 267 -#define kFOR 268 -#define kIN 269 -#define kINSTANCEOF 270 -#define kNEW 271 -#define kNULL 272 -#define kUNDEFINED 273 -#define kRETURN 274 -#define kSWITCH 275 -#define kTHIS 276 -#define kTHROW 277 -#define kTRUE 278 -#define kFALSE 279 -#define kTRY 280 -#define kTYPEOF 281 -#define kVAR 282 -#define kVOID 283 -#define kWHILE 284 -#define kWITH 285 -#define tANDAND 286 -#define tOROR 287 -#define tINC 288 -#define tDEC 289 -#define kFUNCTION 290 -#define tIdentifier 291 -#define tAssignOper 292 -#define tEqOper 293 -#define tShiftOper 294 -#define tRelOper 295 -#define tNumericLiteral 296 -#define tStringLiteral 297 -#define LOWER_THAN_ELSE 298 +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +typedef union YYSTYPE +{ -#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) +/* Line 1676 of yacc.c */ #line 149 "parser.y" -typedef union YYSTYPE { + int ival; const WCHAR *srcptr; LPCWSTR wstr; @@ -139,15 +111,17 @@ typedef union YYSTYPE { struct _statement_list_t *statement_list; struct _variable_list_t *variable_list; variable_declaration_t *variable_declaration; + + + +/* Line 1676 of yacc.c */ +#line 119 "parser.tab.h" } YYSTYPE; -/* Line 1447 of yacc.c. */ -#line 145 "parser.tab.h" +# define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 -# define YYSTYPE_IS_TRIVIAL 1 #endif - diff --git a/reactos/dll/win32/jscript/parser.y b/reactos/dll/win32/jscript/parser.y index 96ba29cb091..52a31c88a79 100644 --- a/reactos/dll/win32/jscript/parser.y +++ b/reactos/dll/win32/jscript/parser.y @@ -170,7 +170,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 kUNDEFINED kRETURN kSWITCH kTHIS kTHROW kTRUE kFALSE kTRY kTYPEOF kVAR kVOID kWHILE kWITH -%token tANDAND tOROR tINC tDEC +%token tANDAND tOROR tINC tDEC tHTMLCOMMENT %token kFUNCTION '}' @@ -251,7 +251,12 @@ static source_elements_t *source_elements_add_statement(source_elements_t*,state /* ECMA-262 3rd Edition 14 */ Program - : SourceElements { program_parsed(ctx, $1); } + : SourceElements HtmlComment + { program_parsed(ctx, $1); } + +HtmlComment + : tHTMLCOMMENT {} + | /* empty */ {} /* ECMA-262 3rd Edition 14 */ SourceElements @@ -1549,18 +1554,22 @@ void parser_release(parser_ctx_t *ctx) heap_free(ctx); } -HRESULT script_parse(script_ctx_t *ctx, const WCHAR *code, parser_ctx_t **ret) +HRESULT script_parse(script_ctx_t *ctx, const WCHAR *code, const WCHAR *delimiter, + parser_ctx_t **ret) { parser_ctx_t *parser_ctx; jsheap_t *mark; HRESULT hres; + const WCHAR html_tagW[] = {'<','/','s','c','r','i','p','t','>',0}; + parser_ctx = heap_alloc_zero(sizeof(parser_ctx_t)); if(!parser_ctx) return E_OUTOFMEMORY; parser_ctx->ref = 1; parser_ctx->hres = E_FAIL; + parser_ctx->is_html = delimiter && !strcmpiW(delimiter, html_tagW); parser_ctx->begin = parser_ctx->ptr = code; parser_ctx->end = code + strlenW(code); diff --git a/reactos/dll/win32/jscript/regexp.c b/reactos/dll/win32/jscript/regexp.c index 8ae215232e3..e79fee45aab 100644 --- a/reactos/dll/win32/jscript/regexp.c +++ b/reactos/dll/win32/jscript/regexp.c @@ -2386,7 +2386,7 @@ SimpleMatch(REGlobalData *gData, REMatchState *x, REOp op, const char *opname = reop_names[op]; TRACE("\n%06d: %*s%s\n", pc - gData->regexp->program, - gData->stateStackTop * 2, "", opname); + (int)gData->stateStackTop * 2, "", opname); switch (op) { case REOP_EMPTY: @@ -2625,7 +2625,7 @@ ExecuteREBytecode(REGlobalData *gData, REMatchState *x) for (;;) { const char *opname = reop_names[op]; TRACE("\n%06d: %*s%s\n", pc - gData->regexp->program, - gData->stateStackTop * 2, "", opname); + (int)gData->stateStackTop * 2, "", opname); if (REOP_IS_SIMPLE(op)) { result = SimpleMatch(gData, x, op, &pc, TRUE);