1
/* A Bison parser, made by GNU Bison 2.3. */
3
/* Skeleton implementation for Bison's Yacc-like parsers in C
5
Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
6
Free Software Foundation, Inc.
8
This program is free software; you can redistribute it and/or modify
9
it under the terms of the GNU General Public License as published by
10
the Free Software Foundation; either version 2, or (at your option)
13
This program is distributed in the hope that it will be useful,
14
but WITHOUT ANY WARRANTY; without even the implied warranty of
15
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
GNU General Public License for more details.
18
You should have received a copy of the GNU General Public License
19
along with this program; if not, write to the Free Software
20
Foundation, Inc., 51 Franklin Street, Fifth Floor,
21
Boston, MA 02110-1301, USA. */
23
/* As a special exception, you may create a larger work that contains
24
part or all of the Bison parser skeleton and distribute that work
25
under terms of your choice, so long as that work isn't itself a
26
parser generator using the skeleton or a modified version thereof
27
as a parser skeleton. Alternatively, if you modify or redistribute
28
the parser skeleton itself, you may (at your option) remove this
29
special exception, which will cause the skeleton and the resulting
30
Bison output files to be licensed under the GNU General Public
31
License without this special exception.
33
This special exception was added by the Free Software Foundation in
34
version 2.2 of Bison. */
36
/* C LALR(1) parser skeleton written by Richard Stallman, by
37
simplifying the original so-called "semantic" parser. */
39
/* All symbols defined below should begin with yy or YY, to avoid
40
infringing on user name space. This should be done even for local
41
variables, as they might otherwise be expanded by user macros.
42
There are some unavoidable exceptions within include files to
43
define necessary library symbols; they are noted "INFRINGES ON
44
USER NAME SPACE" below. */
46
/* Identify Bison output. */
50
#define YYBISON_VERSION "2.3"
53
#define YYSKELETON_NAME "yacc.c"
58
/* Using locations. */
59
#define YYLSP_NEEDED 1
61
/* Substitute the variable and function names. */
62
#define yyparse jscyyparse
63
#define yylex jscyylex
64
#define yyerror jscyyerror
65
#define yylval jscyylval
66
#define yychar jscyychar
67
#define yydebug jscyydebug
68
#define yynerrs jscyynerrs
69
#define yylloc jscyylloc
74
/* Put the tokens into the symbol table, so that GDB and other debuggers
107
IF_WITHOUT_ELSE = 288,
143
#define NULLTOKEN 258
144
#define TRUETOKEN 259
145
#define FALSETOKEN 260
152
#define CONSTTOKEN 267
156
#define VOIDTOKEN 271
157
#define DELETETOKEN 272
159
#define THISTOKEN 274
163
#define INSTANCEOF 278
173
#define IF_WITHOUT_ELSE 288
184
#define MINUSMINUS 299
188
#define PLUSEQUAL 303
189
#define MINUSEQUAL 304
190
#define MULTEQUAL 305
192
#define LSHIFTEQUAL 307
193
#define RSHIFTEQUAL 308
194
#define URSHIFTEQUAL 309
199
#define OPENBRACE 314
200
#define CLOSEBRACE 315
204
#define AUTOPLUSPLUS 319
205
#define AUTOMINUSMINUS 320
210
/* Copy the first part of user declarations. */
211
#line 3 "../parser/Grammar.y"
215
* Copyright (C) 1999-2000 Harri Porten (porten@kde.org)
216
* Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
217
* Copyright (C) 2007 Eric Seidel <eric@webkit.org>
219
* This library is free software; you can redistribute it and/or
220
* modify it under the terms of the GNU Lesser General Public
221
* License as published by the Free Software Foundation; either
222
* version 2 of the License, or (at your option) any later version.
224
* This library is distributed in the hope that it will be useful,
225
* but WITHOUT ANY WARRANTY; without even the implied warranty of
226
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
227
* Lesser General Public License for more details.
229
* You should have received a copy of the GNU Lesser General Public
230
* License along with this library; if not, write to the Free Software
231
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
237
#include "JSObject.h"
238
#include "JSString.h"
239
#include "NodeConstructors.h"
240
#include "NodeInfo.h"
243
#include <wtf/MathExtras.h>
245
#define YYMALLOC fastMalloc
246
#define YYFREE fastFree
248
#define YYMAXDEPTH 10000
249
#define YYENABLE_NLS 0
251
// Default values for bison.
252
#define YYDEBUG 0 // Set to 1 to debug a parse error.
253
#define jscyydebug 0 // Set to 1 to debug a parse error.
254
#if !PLATFORM(DARWIN)
255
// Avoid triggering warnings in older bison by not setting this on the Darwin platform.
256
// FIXME: Is this still needed?
257
#define YYERROR_VERBOSE
260
int jscyylex(void* lvalp, void* llocp, void* globalPtr);
261
int jscyyerror(const char*);
263
static inline bool allowAutomaticSemicolon(JSC::Lexer&, int);
265
#define GLOBAL_DATA static_cast<JSGlobalData*>(globalPtr)
266
#define AUTO_SEMICOLON do { if (!allowAutomaticSemicolon(*GLOBAL_DATA->lexer, yychar)) YYABORT; } while (0)
271
static ExpressionNode* makeAssignNode(JSGlobalData*, ExpressionNode* left, Operator, ExpressionNode* right, bool leftHasAssignments, bool rightHasAssignments, int start, int divot, int end);
272
static ExpressionNode* makePrefixNode(JSGlobalData*, ExpressionNode*, Operator, int start, int divot, int end);
273
static ExpressionNode* makePostfixNode(JSGlobalData*, ExpressionNode*, Operator, int start, int divot, int end);
274
static PropertyNode* makeGetterOrSetterPropertyNode(JSGlobalData*, const Identifier& getOrSet, const Identifier& name, ParameterNode*, FunctionBodyNode*, const SourceCode&);
275
static ExpressionNodeInfo makeFunctionCallNode(JSGlobalData*, ExpressionNodeInfo function, ArgumentsNodeInfo, int start, int divot, int end);
276
static ExpressionNode* makeTypeOfNode(JSGlobalData*, ExpressionNode*);
277
static ExpressionNode* makeDeleteNode(JSGlobalData*, ExpressionNode*, int start, int divot, int end);
278
static ExpressionNode* makeNegateNode(JSGlobalData*, ExpressionNode*);
279
static NumberNode* makeNumberNode(JSGlobalData*, double);
280
static ExpressionNode* makeBitwiseNotNode(JSGlobalData*, ExpressionNode*);
281
static ExpressionNode* makeMultNode(JSGlobalData*, ExpressionNode* left, ExpressionNode* right, bool rightHasAssignments);
282
static ExpressionNode* makeDivNode(JSGlobalData*, ExpressionNode* left, ExpressionNode* right, bool rightHasAssignments);
283
static ExpressionNode* makeAddNode(JSGlobalData*, ExpressionNode* left, ExpressionNode* right, bool rightHasAssignments);
284
static ExpressionNode* makeSubNode(JSGlobalData*, ExpressionNode* left, ExpressionNode* right, bool rightHasAssignments);
285
static ExpressionNode* makeLeftShiftNode(JSGlobalData*, ExpressionNode* left, ExpressionNode* right, bool rightHasAssignments);
286
static ExpressionNode* makeRightShiftNode(JSGlobalData*, ExpressionNode* left, ExpressionNode* right, bool rightHasAssignments);
287
static StatementNode* makeVarStatementNode(JSGlobalData*, ExpressionNode*);
288
static ExpressionNode* combineCommaNodes(JSGlobalData*, ExpressionNode* list, ExpressionNode* init);
292
#pragma warning(disable: 4065)
293
#pragma warning(disable: 4244)
294
#pragma warning(disable: 4702)
298
#define YYPARSE_PARAM globalPtr
299
#define YYLEX_PARAM globalPtr
301
template <typename T> inline NodeDeclarationInfo<T> createNodeDeclarationInfo(T node,
302
ParserArenaData<DeclarationStacks::VarStack>* varDecls,
303
ParserArenaData<DeclarationStacks::FunctionStack>* funcDecls,
304
CodeFeatures info, int numConstants)
306
ASSERT((info & ~AllFeatures) == 0);
307
NodeDeclarationInfo<T> result = { node, varDecls, funcDecls, info, numConstants };
311
template <typename T> inline NodeInfo<T> createNodeInfo(T node, CodeFeatures info, int numConstants)
313
ASSERT((info & ~AllFeatures) == 0);
314
NodeInfo<T> result = { node, info, numConstants };
318
template <typename T> inline T mergeDeclarationLists(T decls1, T decls2)
320
// decls1 or both are null
323
// only decls1 is non-null
328
decls1->data.append(decls2->data);
330
// Manually release as much as possible from the now-defunct declaration lists
331
// to avoid accumulating so many unused heap allocated vectors.
332
decls2->data.clear();
337
static inline void appendToVarDeclarationList(JSGlobalData* globalData, ParserArenaData<DeclarationStacks::VarStack>*& varDecls, const Identifier& ident, unsigned attrs)
340
varDecls = new (globalData) ParserArenaData<DeclarationStacks::VarStack>;
342
varDecls->data.append(make_pair(&ident, attrs));
345
static inline void appendToVarDeclarationList(JSGlobalData* globalData, ParserArenaData<DeclarationStacks::VarStack>*& varDecls, ConstDeclNode* decl)
347
unsigned attrs = DeclarationStacks::IsConstant;
348
if (decl->hasInitializer())
349
attrs |= DeclarationStacks::HasInitializer;
350
appendToVarDeclarationList(globalData, varDecls, decl->ident(), attrs);
355
/* Enabling traces. */
360
/* Enabling verbose error messages. */
361
#ifdef YYERROR_VERBOSE
362
# undef YYERROR_VERBOSE
363
# define YYERROR_VERBOSE 1
365
# define YYERROR_VERBOSE 0
368
/* Enabling the token table. */
369
#ifndef YYTOKEN_TABLE
370
# define YYTOKEN_TABLE 0
373
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
374
typedef union YYSTYPE
375
#line 146 "../parser/Grammar.y"
379
const Identifier* ident;
381
// expression subtrees
382
ExpressionNodeInfo expressionNode;
383
FuncDeclNodeInfo funcDeclNode;
384
PropertyNodeInfo propertyNode;
385
ArgumentsNodeInfo argumentsNode;
386
ConstDeclNodeInfo constDeclNode;
387
CaseBlockNodeInfo caseBlockNode;
388
CaseClauseNodeInfo caseClauseNode;
389
FuncExprNodeInfo funcExprNode;
392
StatementNodeInfo statementNode;
393
FunctionBodyNode* functionBodyNode;
394
ProgramNode* programNode;
396
SourceElementsInfo sourceElements;
397
PropertyListInfo propertyList;
398
ArgumentListInfo argumentList;
399
VarDeclListInfo varDeclList;
400
ConstDeclListInfo constDeclList;
401
ClauseListInfo clauseList;
402
ElementListInfo elementList;
403
ParameterListInfo parameterList;
407
/* Line 187 of yacc.c. */
408
#line 409 "JavaScriptCore/tmp/../generated/Grammar.tab.c"
410
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
411
# define YYSTYPE_IS_DECLARED 1
412
# define YYSTYPE_IS_TRIVIAL 1
415
#if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
416
typedef struct YYLTYPE
423
# define yyltype YYLTYPE /* obsolescent; will be withdrawn */
424
# define YYLTYPE_IS_DECLARED 1
425
# define YYLTYPE_IS_TRIVIAL 1
429
/* Copy the second part of user declarations. */
430
#line 178 "../parser/Grammar.y"
433
template <typename T> inline void setStatementLocation(StatementNode* statement, const T& start, const T& end)
435
statement->setLoc(start.first_line, end.last_line, start.first_column);
438
static inline void setExceptionLocation(ThrowableExpressionData* node, unsigned start, unsigned divot, unsigned end)
440
node->setExceptionSourceCode(divot, divot - start, end - divot);
445
/* Line 216 of yacc.c. */
446
#line 447 "JavaScriptCore/tmp/../generated/Grammar.tab.c"
453
typedef YYTYPE_UINT8 yytype_uint8;
455
typedef unsigned char yytype_uint8;
459
typedef YYTYPE_INT8 yytype_int8;
460
#elif (defined __STDC__ || defined __C99__FUNC__ \
461
|| defined __cplusplus || defined _MSC_VER)
462
typedef signed char yytype_int8;
464
typedef short int yytype_int8;
468
typedef YYTYPE_UINT16 yytype_uint16;
470
typedef unsigned short int yytype_uint16;
474
typedef YYTYPE_INT16 yytype_int16;
476
typedef short int yytype_int16;
480
# ifdef __SIZE_TYPE__
481
# define YYSIZE_T __SIZE_TYPE__
482
# elif defined size_t
483
# define YYSIZE_T size_t
484
# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
485
|| defined __cplusplus || defined _MSC_VER)
486
# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
487
# define YYSIZE_T size_t
489
# define YYSIZE_T unsigned int
493
#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
498
# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
499
# define YY_(msgid) dgettext ("bison-runtime", msgid)
503
# define YY_(msgid) msgid
507
/* Suppress unused-variable warnings by "using" E. */
508
#if ! defined lint || defined __GNUC__
509
# define YYUSE(e) ((void) (e))
511
# define YYUSE(e) /* empty */
514
/* Identity function, used to suppress warnings about constant conditions. */
518
#if (defined __STDC__ || defined __C99__FUNC__ \
519
|| defined __cplusplus || defined _MSC_VER)
532
#if ! defined yyoverflow || YYERROR_VERBOSE
534
/* The parser invokes alloca or malloc; define the necessary symbols. */
536
# ifdef YYSTACK_USE_ALLOCA
537
# if YYSTACK_USE_ALLOCA
539
# define YYSTACK_ALLOC __builtin_alloca
540
# elif defined __BUILTIN_VA_ARG_INCR
541
# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
543
# define YYSTACK_ALLOC __alloca
544
# elif defined _MSC_VER
545
# include <malloc.h> /* INFRINGES ON USER NAME SPACE */
546
# define alloca _alloca
548
# define YYSTACK_ALLOC alloca
549
# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
550
|| defined __cplusplus || defined _MSC_VER)
551
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
560
# ifdef YYSTACK_ALLOC
561
/* Pacify GCC's `empty if-body' warning. */
562
# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
563
# ifndef YYSTACK_ALLOC_MAXIMUM
564
/* The OS might guarantee only one guard page at the bottom of the stack,
565
and a page size can be as small as 4096 bytes. So we cannot safely
566
invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
567
to allow for a few compiler-allocated temporary stack slots. */
568
# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
571
# define YYSTACK_ALLOC YYMALLOC
572
# define YYSTACK_FREE YYFREE
573
# ifndef YYSTACK_ALLOC_MAXIMUM
574
# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
576
# if (defined __cplusplus && ! defined _STDLIB_H \
577
&& ! ((defined YYMALLOC || defined malloc) \
578
&& (defined YYFREE || defined free)))
579
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
585
# define YYMALLOC malloc
586
# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
587
|| defined __cplusplus || defined _MSC_VER)
588
void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
593
# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
594
|| defined __cplusplus || defined _MSC_VER)
595
void free (void *); /* INFRINGES ON USER NAME SPACE */
599
#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
602
#if (! defined yyoverflow \
603
&& (! defined __cplusplus \
604
|| (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
605
&& defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
607
/* A type that is properly aligned for any stack member. */
615
/* The size of the maximum gap between one aligned stack and the next. */
616
# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
618
/* The size of an array large to enough to hold all stacks, each with
620
# define YYSTACK_BYTES(N) \
621
((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
622
+ 2 * YYSTACK_GAP_MAXIMUM)
624
/* Copy COUNT objects from FROM to TO. The source and destination do
627
# if defined __GNUC__ && 1 < __GNUC__
628
# define YYCOPY(To, From, Count) \
629
__builtin_memcpy (To, From, (Count) * sizeof (*(From)))
631
# define YYCOPY(To, From, Count) \
635
for (yyi = 0; yyi < (Count); yyi++) \
636
(To)[yyi] = (From)[yyi]; \
642
/* Relocate STACK from its old location to the new one. The
643
local variables YYSIZE and YYSTACKSIZE give the old and new number of
644
elements in the stack, and YYPTR gives the new location of the
645
stack. Advance YYPTR to a properly aligned location for the next
647
# define YYSTACK_RELOCATE(Stack) \
650
YYSIZE_T yynewbytes; \
651
YYCOPY (&yyptr->Stack, Stack, yysize); \
652
Stack = &yyptr->Stack; \
653
yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
654
yyptr += yynewbytes / sizeof (*yyptr); \
660
/* YYFINAL -- State number of the termination state. */
662
/* YYLAST -- Last index in YYTABLE. */
665
/* YYNTOKENS -- Number of terminals. */
667
/* YYNNTS -- Number of nonterminals. */
669
/* YYNRULES -- Number of rules. */
671
/* YYNRULES -- Number of states. */
672
#define YYNSTATES 1082
674
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
676
#define YYMAXUTOK 320
678
#define YYTRANSLATE(YYX) \
679
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
681
/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
682
static const yytype_uint8 yytranslate[] =
684
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
685
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
686
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
687
2, 2, 2, 77, 2, 2, 2, 79, 82, 2,
688
68, 69, 78, 74, 70, 75, 73, 66, 2, 2,
689
2, 2, 2, 2, 2, 2, 2, 2, 67, 87,
690
80, 86, 81, 85, 2, 2, 2, 2, 2, 2,
691
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
692
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
693
2, 71, 2, 72, 83, 2, 2, 2, 2, 2,
694
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
695
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
696
2, 2, 2, 2, 84, 2, 76, 2, 2, 2,
697
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
698
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
699
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
700
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
701
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
702
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
703
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
704
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
705
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
706
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
707
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
708
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
709
2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
710
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
711
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
712
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
713
35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
714
45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
715
55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
720
/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
722
static const yytype_uint16 yyprhs[] =
724
0, 0, 3, 5, 7, 9, 11, 13, 15, 17,
725
21, 25, 29, 37, 46, 48, 52, 54, 57, 61,
726
66, 68, 70, 72, 74, 78, 82, 86, 92, 95,
727
100, 101, 103, 105, 108, 110, 112, 117, 121, 125,
728
127, 132, 136, 140, 142, 145, 147, 150, 153, 156,
729
161, 165, 168, 171, 176, 180, 183, 187, 189, 193,
730
195, 197, 199, 201, 203, 206, 209, 211, 214, 217,
731
220, 223, 226, 229, 232, 235, 238, 241, 244, 247,
732
250, 252, 254, 256, 258, 260, 264, 268, 272, 274,
733
278, 282, 286, 288, 292, 296, 298, 302, 306, 308,
734
312, 316, 320, 322, 326, 330, 334, 336, 340, 344,
735
348, 352, 356, 360, 362, 366, 370, 374, 378, 382,
736
384, 388, 392, 396, 400, 404, 408, 410, 414, 418,
737
422, 426, 428, 432, 436, 440, 444, 446, 450, 454,
738
458, 462, 464, 468, 470, 474, 476, 480, 482, 486,
739
488, 492, 494, 498, 500, 504, 506, 510, 512, 516,
740
518, 522, 524, 528, 530, 534, 536, 540, 542, 546,
741
548, 552, 554, 560, 562, 568, 570, 576, 578, 582,
742
584, 588, 590, 594, 596, 598, 600, 602, 604, 606,
743
608, 610, 612, 614, 616, 618, 620, 624, 626, 630,
744
632, 636, 638, 640, 642, 644, 646, 648, 650, 652,
745
654, 656, 658, 660, 662, 664, 666, 668, 670, 673,
746
677, 681, 685, 687, 690, 694, 699, 701, 704, 708,
747
713, 717, 721, 723, 727, 729, 732, 735, 738, 740,
748
743, 746, 752, 760, 768, 776, 782, 792, 803, 811,
749
820, 830, 831, 833, 834, 836, 839, 842, 846, 850,
750
853, 856, 860, 864, 867, 870, 874, 878, 884, 890,
751
894, 900, 901, 903, 905, 908, 912, 917, 920, 924,
752
928, 932, 936, 941, 949, 959, 962, 965, 973, 982,
753
989, 997, 1005, 1014, 1016, 1020, 1021, 1023, 1024, 1026,
754
1028, 1031, 1033, 1035, 1037, 1039, 1041, 1043, 1045, 1049,
755
1053, 1057, 1065, 1074, 1076, 1080, 1082, 1085, 1089, 1094,
756
1096, 1098, 1100, 1102, 1106, 1110, 1114, 1120, 1123, 1128,
757
1129, 1131, 1133, 1136, 1138, 1140, 1145, 1149, 1153, 1155,
758
1160, 1164, 1168, 1170, 1173, 1175, 1178, 1181, 1184, 1189,
759
1193, 1196, 1199, 1204, 1208, 1211, 1215, 1217, 1221, 1223,
760
1225, 1227, 1229, 1231, 1234, 1237, 1239, 1242, 1245, 1248,
761
1251, 1254, 1257, 1260, 1263, 1266, 1269, 1272, 1275, 1278,
762
1280, 1282, 1284, 1286, 1288, 1292, 1296, 1300, 1302, 1306,
763
1310, 1314, 1316, 1320, 1324, 1326, 1330, 1334, 1336, 1340,
764
1344, 1348, 1350, 1354, 1358, 1362, 1364, 1368, 1372, 1376,
765
1380, 1384, 1388, 1390, 1394, 1398, 1402, 1406, 1410, 1412,
766
1416, 1420, 1424, 1428, 1432, 1436, 1438, 1442, 1446, 1450,
767
1454, 1456, 1460, 1464, 1468, 1472, 1474, 1478, 1482, 1486,
768
1490, 1492, 1496, 1498, 1502, 1504, 1508, 1510, 1514, 1516,
769
1520, 1522, 1526, 1528, 1532, 1534, 1538, 1540, 1544, 1546,
770
1550, 1552, 1556, 1558, 1562, 1564, 1568, 1570, 1574, 1576,
771
1580, 1582, 1588, 1590, 1596, 1598, 1604, 1606, 1610, 1612,
772
1616, 1618, 1622, 1624, 1626, 1628, 1630, 1632, 1634, 1636,
773
1638, 1640, 1642, 1644, 1646, 1648, 1652, 1654, 1658, 1660,
774
1664, 1666, 1668, 1670, 1672, 1674, 1676, 1678, 1680, 1682,
775
1684, 1686, 1688, 1690, 1692, 1694, 1696, 1698, 1701, 1705,
776
1709, 1713, 1715, 1718, 1722, 1727, 1729, 1732, 1736, 1741,
777
1745, 1749, 1751, 1755, 1757, 1760, 1763, 1766, 1768, 1771,
778
1774, 1780, 1788, 1796, 1804, 1810, 1820, 1831, 1839, 1848,
779
1858, 1859, 1861, 1862, 1864, 1867, 1870, 1874, 1878, 1881,
780
1884, 1888, 1892, 1895, 1898, 1902, 1906, 1912, 1918, 1922,
781
1928, 1929, 1931, 1933, 1936, 1940, 1945, 1948, 1952, 1956,
782
1960, 1964, 1969, 1977, 1987, 1990, 1993, 2001, 2010, 2017,
783
2025, 2033, 2042, 2044, 2048, 2049, 2051, 2053
786
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
787
static const yytype_int16 yyrhs[] =
789
184, 0, -1, 3, -1, 4, -1, 5, -1, 61,
790
-1, 63, -1, 66, -1, 51, -1, 62, 67, 143,
791
-1, 63, 67, 143, -1, 61, 67, 143, -1, 62,
792
62, 68, 69, 59, 183, 60, -1, 62, 62, 68,
793
182, 69, 59, 183, 60, -1, 90, -1, 91, 70,
794
90, -1, 93, -1, 59, 60, -1, 59, 91, 60,
795
-1, 59, 91, 70, 60, -1, 19, -1, 89, -1,
796
94, -1, 62, -1, 68, 147, 69, -1, 71, 96,
797
72, -1, 71, 95, 72, -1, 71, 95, 70, 96,
798
72, -1, 96, 143, -1, 95, 70, 96, 143, -1,
799
-1, 97, -1, 70, -1, 97, 70, -1, 92, -1,
800
181, -1, 98, 71, 147, 72, -1, 98, 73, 62,
801
-1, 10, 98, 104, -1, 93, -1, 99, 71, 147,
802
72, -1, 99, 73, 62, -1, 10, 98, 104, -1,
803
98, -1, 10, 100, -1, 99, -1, 10, 100, -1,
804
98, 104, -1, 102, 104, -1, 102, 71, 147, 72,
805
-1, 102, 73, 62, -1, 99, 104, -1, 103, 104,
806
-1, 103, 71, 147, 72, -1, 103, 73, 62, -1,
807
68, 69, -1, 68, 105, 69, -1, 143, -1, 105,
808
70, 143, -1, 100, -1, 102, -1, 101, -1, 103,
809
-1, 106, -1, 106, 43, -1, 106, 44, -1, 107,
810
-1, 107, 43, -1, 107, 44, -1, 17, 111, -1,
811
16, 111, -1, 24, 111, -1, 43, 111, -1, 64,
812
111, -1, 44, 111, -1, 65, 111, -1, 74, 111,
813
-1, 75, 111, -1, 76, 111, -1, 77, 111, -1,
814
108, -1, 110, -1, 109, -1, 110, -1, 111, -1,
815
113, 78, 111, -1, 113, 66, 111, -1, 113, 79,
816
111, -1, 112, -1, 114, 78, 111, -1, 114, 66,
817
111, -1, 114, 79, 111, -1, 113, -1, 115, 74,
818
113, -1, 115, 75, 113, -1, 114, -1, 116, 74,
819
113, -1, 116, 75, 113, -1, 115, -1, 117, 45,
820
115, -1, 117, 46, 115, -1, 117, 47, 115, -1,
821
116, -1, 118, 45, 115, -1, 118, 46, 115, -1,
822
118, 47, 115, -1, 117, -1, 119, 80, 117, -1,
823
119, 81, 117, -1, 119, 39, 117, -1, 119, 40,
824
117, -1, 119, 23, 117, -1, 119, 22, 117, -1,
825
117, -1, 120, 80, 117, -1, 120, 81, 117, -1,
826
120, 39, 117, -1, 120, 40, 117, -1, 120, 23,
827
117, -1, 118, -1, 121, 80, 117, -1, 121, 81,
828
117, -1, 121, 39, 117, -1, 121, 40, 117, -1,
829
121, 23, 117, -1, 121, 22, 117, -1, 119, -1,
830
122, 35, 119, -1, 122, 36, 119, -1, 122, 37,
831
119, -1, 122, 38, 119, -1, 120, -1, 123, 35,
832
120, -1, 123, 36, 120, -1, 123, 37, 120, -1,
833
123, 38, 120, -1, 121, -1, 124, 35, 119, -1,
834
124, 36, 119, -1, 124, 37, 119, -1, 124, 38,
835
119, -1, 122, -1, 125, 82, 122, -1, 123, -1,
836
126, 82, 123, -1, 124, -1, 127, 82, 122, -1,
837
125, -1, 128, 83, 125, -1, 126, -1, 129, 83,
838
126, -1, 127, -1, 130, 83, 125, -1, 128, -1,
839
131, 84, 128, -1, 129, -1, 132, 84, 129, -1,
840
130, -1, 133, 84, 128, -1, 131, -1, 134, 42,
841
131, -1, 132, -1, 135, 42, 132, -1, 133, -1,
842
136, 42, 131, -1, 134, -1, 137, 41, 134, -1,
843
135, -1, 138, 41, 135, -1, 136, -1, 139, 41,
844
134, -1, 137, -1, 137, 85, 143, 67, 143, -1,
845
138, -1, 138, 85, 144, 67, 144, -1, 139, -1,
846
139, 85, 143, 67, 143, -1, 140, -1, 106, 146,
847
143, -1, 141, -1, 106, 146, 144, -1, 142, -1,
848
107, 146, 143, -1, 86, -1, 48, -1, 49, -1,
849
50, -1, 51, -1, 52, -1, 53, -1, 54, -1,
850
55, -1, 57, -1, 58, -1, 56, -1, 143, -1,
851
147, 70, 143, -1, 144, -1, 148, 70, 144, -1,
852
145, -1, 149, 70, 143, -1, 151, -1, 152, -1,
853
155, -1, 180, -1, 160, -1, 161, -1, 162, -1,
854
163, -1, 166, -1, 167, -1, 168, -1, 169, -1,
855
170, -1, 176, -1, 177, -1, 178, -1, 179, -1,
856
59, 60, -1, 59, 185, 60, -1, 11, 153, 87,
857
-1, 11, 153, 1, -1, 62, -1, 62, 158, -1,
858
153, 70, 62, -1, 153, 70, 62, 158, -1, 62,
859
-1, 62, 159, -1, 154, 70, 62, -1, 154, 70,
860
62, 159, -1, 12, 156, 87, -1, 12, 156, 1,
861
-1, 157, -1, 156, 70, 157, -1, 62, -1, 62,
862
158, -1, 86, 143, -1, 86, 144, -1, 87, -1,
863
149, 87, -1, 149, 1, -1, 18, 68, 147, 69,
864
150, -1, 18, 68, 147, 69, 150, 34, 150, -1,
865
20, 150, 21, 68, 147, 69, 87, -1, 20, 150,
866
21, 68, 147, 69, 1, -1, 21, 68, 147, 69,
867
150, -1, 9, 68, 165, 87, 164, 87, 164, 69,
868
150, -1, 9, 68, 11, 154, 87, 164, 87, 164,
869
69, 150, -1, 9, 68, 106, 22, 147, 69, 150,
870
-1, 9, 68, 11, 62, 22, 147, 69, 150, -1,
871
9, 68, 11, 62, 159, 22, 147, 69, 150, -1,
872
-1, 147, -1, -1, 148, -1, 13, 87, -1, 13,
873
1, -1, 13, 62, 87, -1, 13, 62, 1, -1,
874
6, 87, -1, 6, 1, -1, 6, 62, 87, -1,
875
6, 62, 1, -1, 15, 87, -1, 15, 1, -1,
876
15, 147, 87, -1, 15, 147, 1, -1, 26, 68,
877
147, 69, 150, -1, 25, 68, 147, 69, 171, -1,
878
59, 172, 60, -1, 59, 172, 175, 172, 60, -1,
879
-1, 173, -1, 174, -1, 173, 174, -1, 7, 147,
880
67, -1, 7, 147, 67, 185, -1, 8, 67, -1,
881
8, 67, 185, -1, 62, 67, 150, -1, 28, 147,
882
87, -1, 28, 147, 1, -1, 29, 151, 31, 151,
883
-1, 29, 151, 30, 68, 62, 69, 151, -1, 29,
884
151, 30, 68, 62, 69, 151, 31, 151, -1, 32,
885
87, -1, 32, 1, -1, 14, 62, 68, 69, 59,
886
183, 60, -1, 14, 62, 68, 182, 69, 59, 183,
887
60, -1, 14, 68, 69, 59, 183, 60, -1, 14,
888
68, 182, 69, 59, 183, 60, -1, 14, 62, 68,
889
69, 59, 183, 60, -1, 14, 62, 68, 182, 69,
890
59, 183, 60, -1, 62, -1, 182, 70, 62, -1,
891
-1, 281, -1, -1, 185, -1, 150, -1, 185, 150,
892
-1, 3, -1, 4, -1, 5, -1, 61, -1, 63,
893
-1, 66, -1, 51, -1, 62, 67, 240, -1, 63,
894
67, 240, -1, 61, 67, 240, -1, 62, 62, 68,
895
69, 59, 280, 60, -1, 62, 62, 68, 279, 69,
896
59, 280, 60, -1, 187, -1, 188, 70, 187, -1,
897
190, -1, 59, 60, -1, 59, 188, 60, -1, 59,
898
188, 70, 60, -1, 19, -1, 186, -1, 191, -1,
899
62, -1, 68, 244, 69, -1, 71, 193, 72, -1,
900
71, 192, 72, -1, 71, 192, 70, 193, 72, -1,
901
193, 240, -1, 192, 70, 193, 240, -1, -1, 194,
902
-1, 70, -1, 194, 70, -1, 189, -1, 278, -1,
903
195, 71, 244, 72, -1, 195, 73, 62, -1, 10,
904
195, 201, -1, 190, -1, 196, 71, 244, 72, -1,
905
196, 73, 62, -1, 10, 195, 201, -1, 195, -1,
906
10, 197, -1, 196, -1, 10, 197, -1, 195, 201,
907
-1, 199, 201, -1, 199, 71, 244, 72, -1, 199,
908
73, 62, -1, 196, 201, -1, 200, 201, -1, 200,
909
71, 244, 72, -1, 200, 73, 62, -1, 68, 69,
910
-1, 68, 202, 69, -1, 240, -1, 202, 70, 240,
911
-1, 197, -1, 199, -1, 198, -1, 200, -1, 203,
912
-1, 203, 43, -1, 203, 44, -1, 204, -1, 204,
913
43, -1, 204, 44, -1, 17, 208, -1, 16, 208,
914
-1, 24, 208, -1, 43, 208, -1, 64, 208, -1,
915
44, 208, -1, 65, 208, -1, 74, 208, -1, 75,
916
208, -1, 76, 208, -1, 77, 208, -1, 205, -1,
917
207, -1, 206, -1, 207, -1, 208, -1, 210, 78,
918
208, -1, 210, 66, 208, -1, 210, 79, 208, -1,
919
209, -1, 211, 78, 208, -1, 211, 66, 208, -1,
920
211, 79, 208, -1, 210, -1, 212, 74, 210, -1,
921
212, 75, 210, -1, 211, -1, 213, 74, 210, -1,
922
213, 75, 210, -1, 212, -1, 214, 45, 212, -1,
923
214, 46, 212, -1, 214, 47, 212, -1, 213, -1,
924
215, 45, 212, -1, 215, 46, 212, -1, 215, 47,
925
212, -1, 214, -1, 216, 80, 214, -1, 216, 81,
926
214, -1, 216, 39, 214, -1, 216, 40, 214, -1,
927
216, 23, 214, -1, 216, 22, 214, -1, 214, -1,
928
217, 80, 214, -1, 217, 81, 214, -1, 217, 39,
929
214, -1, 217, 40, 214, -1, 217, 23, 214, -1,
930
215, -1, 218, 80, 214, -1, 218, 81, 214, -1,
931
218, 39, 214, -1, 218, 40, 214, -1, 218, 23,
932
214, -1, 218, 22, 214, -1, 216, -1, 219, 35,
933
216, -1, 219, 36, 216, -1, 219, 37, 216, -1,
934
219, 38, 216, -1, 217, -1, 220, 35, 217, -1,
935
220, 36, 217, -1, 220, 37, 217, -1, 220, 38,
936
217, -1, 218, -1, 221, 35, 216, -1, 221, 36,
937
216, -1, 221, 37, 216, -1, 221, 38, 216, -1,
938
219, -1, 222, 82, 219, -1, 220, -1, 223, 82,
939
220, -1, 221, -1, 224, 82, 219, -1, 222, -1,
940
225, 83, 222, -1, 223, -1, 226, 83, 223, -1,
941
224, -1, 227, 83, 222, -1, 225, -1, 228, 84,
942
225, -1, 226, -1, 229, 84, 226, -1, 227, -1,
943
230, 84, 225, -1, 228, -1, 231, 42, 228, -1,
944
229, -1, 232, 42, 229, -1, 230, -1, 233, 42,
945
228, -1, 231, -1, 234, 41, 231, -1, 232, -1,
946
235, 41, 232, -1, 233, -1, 236, 41, 231, -1,
947
234, -1, 234, 85, 240, 67, 240, -1, 235, -1,
948
235, 85, 241, 67, 241, -1, 236, -1, 236, 85,
949
240, 67, 240, -1, 237, -1, 203, 243, 240, -1,
950
238, -1, 203, 243, 241, -1, 239, -1, 204, 243,
951
240, -1, 86, -1, 48, -1, 49, -1, 50, -1,
952
51, -1, 52, -1, 53, -1, 54, -1, 55, -1,
953
57, -1, 58, -1, 56, -1, 240, -1, 244, 70,
954
240, -1, 241, -1, 245, 70, 241, -1, 242, -1,
955
246, 70, 240, -1, 248, -1, 249, -1, 252, -1,
956
277, -1, 257, -1, 258, -1, 259, -1, 260, -1,
957
263, -1, 264, -1, 265, -1, 266, -1, 267, -1,
958
273, -1, 274, -1, 275, -1, 276, -1, 59, 60,
959
-1, 59, 281, 60, -1, 11, 250, 87, -1, 11,
960
250, 1, -1, 62, -1, 62, 255, -1, 250, 70,
961
62, -1, 250, 70, 62, 255, -1, 62, -1, 62,
962
256, -1, 251, 70, 62, -1, 251, 70, 62, 256,
963
-1, 12, 253, 87, -1, 12, 253, 1, -1, 254,
964
-1, 253, 70, 254, -1, 62, -1, 62, 255, -1,
965
86, 240, -1, 86, 241, -1, 87, -1, 246, 87,
966
-1, 246, 1, -1, 18, 68, 244, 69, 247, -1,
967
18, 68, 244, 69, 247, 34, 247, -1, 20, 247,
968
21, 68, 244, 69, 87, -1, 20, 247, 21, 68,
969
244, 69, 1, -1, 21, 68, 244, 69, 247, -1,
970
9, 68, 262, 87, 261, 87, 261, 69, 247, -1,
971
9, 68, 11, 251, 87, 261, 87, 261, 69, 247,
972
-1, 9, 68, 203, 22, 244, 69, 247, -1, 9,
973
68, 11, 62, 22, 244, 69, 247, -1, 9, 68,
974
11, 62, 256, 22, 244, 69, 247, -1, -1, 244,
975
-1, -1, 245, -1, 13, 87, -1, 13, 1, -1,
976
13, 62, 87, -1, 13, 62, 1, -1, 6, 87,
977
-1, 6, 1, -1, 6, 62, 87, -1, 6, 62,
978
1, -1, 15, 87, -1, 15, 1, -1, 15, 244,
979
87, -1, 15, 244, 1, -1, 26, 68, 244, 69,
980
247, -1, 25, 68, 244, 69, 268, -1, 59, 269,
981
60, -1, 59, 269, 272, 269, 60, -1, -1, 270,
982
-1, 271, -1, 270, 271, -1, 7, 244, 67, -1,
983
7, 244, 67, 281, -1, 8, 67, -1, 8, 67,
984
281, -1, 62, 67, 247, -1, 28, 244, 87, -1,
985
28, 244, 1, -1, 29, 248, 31, 248, -1, 29,
986
248, 30, 68, 62, 69, 248, -1, 29, 248, 30,
987
68, 62, 69, 248, 31, 248, -1, 32, 87, -1,
988
32, 1, -1, 14, 62, 68, 69, 59, 280, 60,
989
-1, 14, 62, 68, 279, 69, 59, 280, 60, -1,
990
14, 68, 69, 59, 280, 60, -1, 14, 68, 279,
991
69, 59, 280, 60, -1, 14, 62, 68, 69, 59,
992
280, 60, -1, 14, 62, 68, 279, 69, 59, 280,
993
60, -1, 62, -1, 279, 70, 62, -1, -1, 281,
994
-1, 247, -1, 281, 247, -1
997
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
998
static const yytype_uint16 yyrline[] =
1000
0, 293, 293, 294, 295, 296, 297, 298, 309, 323,
1001
324, 325, 326, 327, 339, 343, 350, 351, 352, 354,
1002
358, 359, 360, 361, 362, 366, 367, 368, 372, 376,
1003
384, 385, 389, 390, 394, 395, 396, 400, 404, 411,
1004
412, 416, 420, 427, 428, 435, 436, 443, 444, 445,
1005
449, 455, 456, 457, 461, 468, 469, 473, 477, 484,
1006
485, 489, 490, 494, 495, 496, 500, 501, 502, 506,
1007
507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
1008
519, 520, 524, 525, 529, 530, 531, 532, 536, 537,
1009
539, 541, 546, 547, 548, 552, 553, 555, 560, 561,
1010
562, 563, 567, 568, 569, 570, 574, 575, 576, 577,
1011
578, 579, 582, 588, 589, 590, 591, 592, 593, 600,
1012
601, 602, 603, 604, 605, 609, 616, 617, 618, 619,
1013
620, 624, 625, 627, 629, 631, 636, 637, 639, 640,
1014
642, 647, 648, 652, 653, 658, 659, 663, 664, 668,
1015
669, 674, 675, 680, 681, 685, 686, 691, 692, 697,
1016
698, 702, 703, 708, 709, 714, 715, 719, 720, 725,
1017
726, 730, 731, 736, 737, 742, 743, 748, 749, 756,
1018
757, 764, 765, 772, 773, 774, 775, 776, 777, 778,
1019
779, 780, 781, 782, 783, 787, 788, 792, 793, 797,
1020
798, 802, 803, 804, 805, 806, 807, 808, 809, 810,
1021
811, 812, 813, 814, 815, 816, 817, 818, 822, 824,
1022
829, 831, 837, 844, 853, 861, 874, 881, 890, 898,
1023
911, 913, 919, 927, 939, 940, 944, 948, 952, 956,
1024
958, 963, 966, 976, 978, 980, 982, 988, 995, 1004,
1025
1010, 1021, 1022, 1026, 1027, 1031, 1035, 1039, 1043, 1050,
1026
1053, 1056, 1059, 1065, 1068, 1071, 1074, 1080, 1086, 1092,
1027
1093, 1102, 1103, 1107, 1113, 1123, 1124, 1128, 1129, 1133,
1028
1139, 1143, 1150, 1156, 1162, 1172, 1174, 1179, 1180, 1191,
1029
1192, 1199, 1200, 1210, 1213, 1219, 1220, 1224, 1225, 1230,
1030
1237, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1258, 1259,
1031
1260, 1261, 1262, 1266, 1267, 1271, 1272, 1273, 1275, 1279,
1032
1280, 1281, 1282, 1283, 1287, 1288, 1289, 1293, 1294, 1297,
1033
1299, 1303, 1304, 1308, 1309, 1310, 1311, 1312, 1316, 1317,
1034
1318, 1319, 1323, 1324, 1328, 1329, 1333, 1334, 1335, 1336,
1035
1340, 1341, 1342, 1343, 1347, 1348, 1352, 1353, 1357, 1358,
1036
1362, 1363, 1367, 1368, 1369, 1373, 1374, 1375, 1379, 1380,
1037
1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1392,
1038
1393, 1397, 1398, 1402, 1403, 1404, 1405, 1409, 1410, 1411,
1039
1412, 1416, 1417, 1418, 1422, 1423, 1424, 1428, 1429, 1430,
1040
1431, 1435, 1436, 1437, 1438, 1442, 1443, 1444, 1445, 1446,
1041
1447, 1448, 1452, 1453, 1454, 1455, 1456, 1457, 1461, 1462,
1042
1463, 1464, 1465, 1466, 1467, 1471, 1472, 1473, 1474, 1475,
1043
1479, 1480, 1481, 1482, 1483, 1487, 1488, 1489, 1490, 1491,
1044
1495, 1496, 1500, 1501, 1505, 1506, 1510, 1511, 1515, 1516,
1045
1520, 1521, 1525, 1526, 1530, 1531, 1535, 1536, 1540, 1541,
1046
1545, 1546, 1550, 1551, 1555, 1556, 1560, 1561, 1565, 1566,
1047
1570, 1571, 1575, 1576, 1580, 1581, 1585, 1586, 1590, 1591,
1048
1595, 1596, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607,
1049
1608, 1609, 1610, 1611, 1615, 1616, 1620, 1621, 1625, 1626,
1050
1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639,
1051
1640, 1641, 1642, 1643, 1644, 1645, 1646, 1650, 1651, 1655,
1052
1656, 1660, 1661, 1662, 1663, 1667, 1668, 1669, 1670, 1674,
1053
1675, 1679, 1680, 1684, 1685, 1689, 1693, 1697, 1701, 1702,
1054
1706, 1707, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718,
1055
1721, 1723, 1726, 1728, 1732, 1733, 1734, 1735, 1739, 1740,
1056
1741, 1742, 1746, 1747, 1748, 1749, 1753, 1757, 1761, 1762,
1057
1765, 1767, 1771, 1772, 1776, 1777, 1781, 1782, 1786, 1790,
1058
1791, 1795, 1796, 1797, 1801, 1802, 1806, 1807, 1811, 1812,
1059
1813, 1814, 1818, 1819, 1822, 1824, 1828, 1829
1063
#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
1064
/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1065
First, the terminals, then, starting at YYNTOKENS, nonterminals. */
1066
static const char *const yytname[] =
1068
"$end", "error", "$undefined", "NULLTOKEN", "TRUETOKEN", "FALSETOKEN",
1069
"BREAK", "CASE", "DEFAULT", "FOR", "NEW", "VAR", "CONSTTOKEN",
1070
"CONTINUE", "FUNCTION", "RETURN", "VOIDTOKEN", "DELETETOKEN", "IF",
1071
"THISTOKEN", "DO", "WHILE", "INTOKEN", "INSTANCEOF", "TYPEOF", "SWITCH",
1072
"WITH", "RESERVED", "THROW", "TRY", "CATCH", "FINALLY", "DEBUGGER",
1073
"IF_WITHOUT_ELSE", "ELSE", "EQEQ", "NE", "STREQ", "STRNEQ", "LE", "GE",
1074
"OR", "AND", "PLUSPLUS", "MINUSMINUS", "LSHIFT", "RSHIFT", "URSHIFT",
1075
"PLUSEQUAL", "MINUSEQUAL", "MULTEQUAL", "DIVEQUAL", "LSHIFTEQUAL",
1076
"RSHIFTEQUAL", "URSHIFTEQUAL", "ANDEQUAL", "MODEQUAL", "XOREQUAL",
1077
"OREQUAL", "OPENBRACE", "CLOSEBRACE", "NUMBER", "IDENT", "STRING",
1078
"AUTOPLUSPLUS", "AUTOMINUSMINUS", "'/'", "':'", "'('", "')'", "','",
1079
"'['", "']'", "'.'", "'+'", "'-'", "'~'", "'!'", "'*'", "'%'", "'<'",
1080
"'>'", "'&'", "'^'", "'|'", "'?'", "'='", "';'", "$accept", "Literal",
1081
"Property", "PropertyList", "PrimaryExpr", "PrimaryExprNoBrace",
1082
"ArrayLiteral", "ElementList", "ElisionOpt", "Elision", "MemberExpr",
1083
"MemberExprNoBF", "NewExpr", "NewExprNoBF", "CallExpr", "CallExprNoBF",
1084
"Arguments", "ArgumentList", "LeftHandSideExpr", "LeftHandSideExprNoBF",
1085
"PostfixExpr", "PostfixExprNoBF", "UnaryExprCommon", "UnaryExpr",
1086
"UnaryExprNoBF", "MultiplicativeExpr", "MultiplicativeExprNoBF",
1087
"AdditiveExpr", "AdditiveExprNoBF", "ShiftExpr", "ShiftExprNoBF",
1088
"RelationalExpr", "RelationalExprNoIn", "RelationalExprNoBF",
1089
"EqualityExpr", "EqualityExprNoIn", "EqualityExprNoBF", "BitwiseANDExpr",
1090
"BitwiseANDExprNoIn", "BitwiseANDExprNoBF", "BitwiseXORExpr",
1091
"BitwiseXORExprNoIn", "BitwiseXORExprNoBF", "BitwiseORExpr",
1092
"BitwiseORExprNoIn", "BitwiseORExprNoBF", "LogicalANDExpr",
1093
"LogicalANDExprNoIn", "LogicalANDExprNoBF", "LogicalORExpr",
1094
"LogicalORExprNoIn", "LogicalORExprNoBF", "ConditionalExpr",
1095
"ConditionalExprNoIn", "ConditionalExprNoBF", "AssignmentExpr",
1096
"AssignmentExprNoIn", "AssignmentExprNoBF", "AssignmentOperator", "Expr",
1097
"ExprNoIn", "ExprNoBF", "Statement", "Block", "VariableStatement",
1098
"VariableDeclarationList", "VariableDeclarationListNoIn",
1099
"ConstStatement", "ConstDeclarationList", "ConstDeclaration",
1100
"Initializer", "InitializerNoIn", "EmptyStatement", "ExprStatement",
1101
"IfStatement", "IterationStatement", "ExprOpt", "ExprNoInOpt",
1102
"ContinueStatement", "BreakStatement", "ReturnStatement",
1103
"WithStatement", "SwitchStatement", "CaseBlock", "CaseClausesOpt",
1104
"CaseClauses", "CaseClause", "DefaultClause", "LabelledStatement",
1105
"ThrowStatement", "TryStatement", "DebuggerStatement",
1106
"FunctionDeclaration", "FunctionExpr", "FormalParameterList",
1107
"FunctionBody", "Program", "SourceElements", "Literal_NoNode",
1108
"Property_NoNode", "PropertyList_NoNode", "PrimaryExpr_NoNode",
1109
"PrimaryExprNoBrace_NoNode", "ArrayLiteral_NoNode", "ElementList_NoNode",
1110
"ElisionOpt_NoNode", "Elision_NoNode", "MemberExpr_NoNode",
1111
"MemberExprNoBF_NoNode", "NewExpr_NoNode", "NewExprNoBF_NoNode",
1112
"CallExpr_NoNode", "CallExprNoBF_NoNode", "Arguments_NoNode",
1113
"ArgumentList_NoNode", "LeftHandSideExpr_NoNode",
1114
"LeftHandSideExprNoBF_NoNode", "PostfixExpr_NoNode",
1115
"PostfixExprNoBF_NoNode", "UnaryExprCommon_NoNode", "UnaryExpr_NoNode",
1116
"UnaryExprNoBF_NoNode", "MultiplicativeExpr_NoNode",
1117
"MultiplicativeExprNoBF_NoNode", "AdditiveExpr_NoNode",
1118
"AdditiveExprNoBF_NoNode", "ShiftExpr_NoNode", "ShiftExprNoBF_NoNode",
1119
"RelationalExpr_NoNode", "RelationalExprNoIn_NoNode",
1120
"RelationalExprNoBF_NoNode", "EqualityExpr_NoNode",
1121
"EqualityExprNoIn_NoNode", "EqualityExprNoBF_NoNode",
1122
"BitwiseANDExpr_NoNode", "BitwiseANDExprNoIn_NoNode",
1123
"BitwiseANDExprNoBF_NoNode", "BitwiseXORExpr_NoNode",
1124
"BitwiseXORExprNoIn_NoNode", "BitwiseXORExprNoBF_NoNode",
1125
"BitwiseORExpr_NoNode", "BitwiseORExprNoIn_NoNode",
1126
"BitwiseORExprNoBF_NoNode", "LogicalANDExpr_NoNode",
1127
"LogicalANDExprNoIn_NoNode", "LogicalANDExprNoBF_NoNode",
1128
"LogicalORExpr_NoNode", "LogicalORExprNoIn_NoNode",
1129
"LogicalORExprNoBF_NoNode", "ConditionalExpr_NoNode",
1130
"ConditionalExprNoIn_NoNode", "ConditionalExprNoBF_NoNode",
1131
"AssignmentExpr_NoNode", "AssignmentExprNoIn_NoNode",
1132
"AssignmentExprNoBF_NoNode", "AssignmentOperator_NoNode", "Expr_NoNode",
1133
"ExprNoIn_NoNode", "ExprNoBF_NoNode", "Statement_NoNode", "Block_NoNode",
1134
"VariableStatement_NoNode", "VariableDeclarationList_NoNode",
1135
"VariableDeclarationListNoIn_NoNode", "ConstStatement_NoNode",
1136
"ConstDeclarationList_NoNode", "ConstDeclaration_NoNode",
1137
"Initializer_NoNode", "InitializerNoIn_NoNode", "EmptyStatement_NoNode",
1138
"ExprStatement_NoNode", "IfStatement_NoNode",
1139
"IterationStatement_NoNode", "ExprOpt_NoNode", "ExprNoInOpt_NoNode",
1140
"ContinueStatement_NoNode", "BreakStatement_NoNode",
1141
"ReturnStatement_NoNode", "WithStatement_NoNode",
1142
"SwitchStatement_NoNode", "CaseBlock_NoNode", "CaseClausesOpt_NoNode",
1143
"CaseClauses_NoNode", "CaseClause_NoNode", "DefaultClause_NoNode",
1144
"LabelledStatement_NoNode", "ThrowStatement_NoNode",
1145
"TryStatement_NoNode", "DebuggerStatement_NoNode",
1146
"FunctionDeclaration_NoNode", "FunctionExpr_NoNode",
1147
"FormalParameterList_NoNode", "FunctionBody_NoNode",
1148
"SourceElements_NoNode", 0
1153
/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
1155
static const yytype_uint16 yytoknum[] =
1157
0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1158
265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1159
275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1160
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1161
295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1162
305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1163
315, 316, 317, 318, 319, 320, 47, 58, 40, 41,
1164
44, 91, 93, 46, 43, 45, 126, 33, 42, 37,
1165
60, 62, 38, 94, 124, 63, 61, 59
1169
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
1170
static const yytype_uint16 yyr1[] =
1172
0, 88, 89, 89, 89, 89, 89, 89, 89, 90,
1173
90, 90, 90, 90, 91, 91, 92, 92, 92, 92,
1174
93, 93, 93, 93, 93, 94, 94, 94, 95, 95,
1175
96, 96, 97, 97, 98, 98, 98, 98, 98, 99,
1176
99, 99, 99, 100, 100, 101, 101, 102, 102, 102,
1177
102, 103, 103, 103, 103, 104, 104, 105, 105, 106,
1178
106, 107, 107, 108, 108, 108, 109, 109, 109, 110,
1179
110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
1180
111, 111, 112, 112, 113, 113, 113, 113, 114, 114,
1181
114, 114, 115, 115, 115, 116, 116, 116, 117, 117,
1182
117, 117, 118, 118, 118, 118, 119, 119, 119, 119,
1183
119, 119, 119, 120, 120, 120, 120, 120, 120, 121,
1184
121, 121, 121, 121, 121, 121, 122, 122, 122, 122,
1185
122, 123, 123, 123, 123, 123, 124, 124, 124, 124,
1186
124, 125, 125, 126, 126, 127, 127, 128, 128, 129,
1187
129, 130, 130, 131, 131, 132, 132, 133, 133, 134,
1188
134, 135, 135, 136, 136, 137, 137, 138, 138, 139,
1189
139, 140, 140, 141, 141, 142, 142, 143, 143, 144,
1190
144, 145, 145, 146, 146, 146, 146, 146, 146, 146,
1191
146, 146, 146, 146, 146, 147, 147, 148, 148, 149,
1192
149, 150, 150, 150, 150, 150, 150, 150, 150, 150,
1193
150, 150, 150, 150, 150, 150, 150, 150, 151, 151,
1194
152, 152, 153, 153, 153, 153, 154, 154, 154, 154,
1195
155, 155, 156, 156, 157, 157, 158, 159, 160, 161,
1196
161, 162, 162, 163, 163, 163, 163, 163, 163, 163,
1197
163, 164, 164, 165, 165, 166, 166, 166, 166, 167,
1198
167, 167, 167, 168, 168, 168, 168, 169, 170, 171,
1199
171, 172, 172, 173, 173, 174, 174, 175, 175, 176,
1200
177, 177, 178, 178, 178, 179, 179, 180, 180, 181,
1201
181, 181, 181, 182, 182, 183, 183, 184, 184, 185,
1202
185, 186, 186, 186, 186, 186, 186, 186, 187, 187,
1203
187, 187, 187, 188, 188, 189, 189, 189, 189, 190,
1204
190, 190, 190, 190, 191, 191, 191, 192, 192, 193,
1205
193, 194, 194, 195, 195, 195, 195, 195, 196, 196,
1206
196, 196, 197, 197, 198, 198, 199, 199, 199, 199,
1207
200, 200, 200, 200, 201, 201, 202, 202, 203, 203,
1208
204, 204, 205, 205, 205, 206, 206, 206, 207, 207,
1209
207, 207, 207, 207, 207, 207, 207, 207, 207, 208,
1210
208, 209, 209, 210, 210, 210, 210, 211, 211, 211,
1211
211, 212, 212, 212, 213, 213, 213, 214, 214, 214,
1212
214, 215, 215, 215, 215, 216, 216, 216, 216, 216,
1213
216, 216, 217, 217, 217, 217, 217, 217, 218, 218,
1214
218, 218, 218, 218, 218, 219, 219, 219, 219, 219,
1215
220, 220, 220, 220, 220, 221, 221, 221, 221, 221,
1216
222, 222, 223, 223, 224, 224, 225, 225, 226, 226,
1217
227, 227, 228, 228, 229, 229, 230, 230, 231, 231,
1218
232, 232, 233, 233, 234, 234, 235, 235, 236, 236,
1219
237, 237, 238, 238, 239, 239, 240, 240, 241, 241,
1220
242, 242, 243, 243, 243, 243, 243, 243, 243, 243,
1221
243, 243, 243, 243, 244, 244, 245, 245, 246, 246,
1222
247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
1223
247, 247, 247, 247, 247, 247, 247, 248, 248, 249,
1224
249, 250, 250, 250, 250, 251, 251, 251, 251, 252,
1225
252, 253, 253, 254, 254, 255, 256, 257, 258, 258,
1226
259, 259, 260, 260, 260, 260, 260, 260, 260, 260,
1227
261, 261, 262, 262, 263, 263, 263, 263, 264, 264,
1228
264, 264, 265, 265, 265, 265, 266, 267, 268, 268,
1229
269, 269, 270, 270, 271, 271, 272, 272, 273, 274,
1230
274, 275, 275, 275, 276, 276, 277, 277, 278, 278,
1231
278, 278, 279, 279, 280, 280, 281, 281
1234
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
1235
static const yytype_uint8 yyr2[] =
1237
0, 2, 1, 1, 1, 1, 1, 1, 1, 3,
1238
3, 3, 7, 8, 1, 3, 1, 2, 3, 4,
1239
1, 1, 1, 1, 3, 3, 3, 5, 2, 4,
1240
0, 1, 1, 2, 1, 1, 4, 3, 3, 1,
1241
4, 3, 3, 1, 2, 1, 2, 2, 2, 4,
1242
3, 2, 2, 4, 3, 2, 3, 1, 3, 1,
1243
1, 1, 1, 1, 2, 2, 1, 2, 2, 2,
1244
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1245
1, 1, 1, 1, 1, 3, 3, 3, 1, 3,
1246
3, 3, 1, 3, 3, 1, 3, 3, 1, 3,
1247
3, 3, 1, 3, 3, 3, 1, 3, 3, 3,
1248
3, 3, 3, 1, 3, 3, 3, 3, 3, 1,
1249
3, 3, 3, 3, 3, 3, 1, 3, 3, 3,
1250
3, 1, 3, 3, 3, 3, 1, 3, 3, 3,
1251
3, 1, 3, 1, 3, 1, 3, 1, 3, 1,
1252
3, 1, 3, 1, 3, 1, 3, 1, 3, 1,
1253
3, 1, 3, 1, 3, 1, 3, 1, 3, 1,
1254
3, 1, 5, 1, 5, 1, 5, 1, 3, 1,
1255
3, 1, 3, 1, 1, 1, 1, 1, 1, 1,
1256
1, 1, 1, 1, 1, 1, 3, 1, 3, 1,
1257
3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1258
1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
1259
3, 3, 1, 2, 3, 4, 1, 2, 3, 4,
1260
3, 3, 1, 3, 1, 2, 2, 2, 1, 2,
1261
2, 5, 7, 7, 7, 5, 9, 10, 7, 8,
1262
9, 0, 1, 0, 1, 2, 2, 3, 3, 2,
1263
2, 3, 3, 2, 2, 3, 3, 5, 5, 3,
1264
5, 0, 1, 1, 2, 3, 4, 2, 3, 3,
1265
3, 3, 4, 7, 9, 2, 2, 7, 8, 6,
1266
7, 7, 8, 1, 3, 0, 1, 0, 1, 1,
1267
2, 1, 1, 1, 1, 1, 1, 1, 3, 3,
1268
3, 7, 8, 1, 3, 1, 2, 3, 4, 1,
1269
1, 1, 1, 3, 3, 3, 5, 2, 4, 0,
1270
1, 1, 2, 1, 1, 4, 3, 3, 1, 4,
1271
3, 3, 1, 2, 1, 2, 2, 2, 4, 3,
1272
2, 2, 4, 3, 2, 3, 1, 3, 1, 1,
1273
1, 1, 1, 2, 2, 1, 2, 2, 2, 2,
1274
2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
1275
1, 1, 1, 1, 3, 3, 3, 1, 3, 3,
1276
3, 1, 3, 3, 1, 3, 3, 1, 3, 3,
1277
3, 1, 3, 3, 3, 1, 3, 3, 3, 3,
1278
3, 3, 1, 3, 3, 3, 3, 3, 1, 3,
1279
3, 3, 3, 3, 3, 1, 3, 3, 3, 3,
1280
1, 3, 3, 3, 3, 1, 3, 3, 3, 3,
1281
1, 3, 1, 3, 1, 3, 1, 3, 1, 3,
1282
1, 3, 1, 3, 1, 3, 1, 3, 1, 3,
1283
1, 3, 1, 3, 1, 3, 1, 3, 1, 3,
1284
1, 5, 1, 5, 1, 5, 1, 3, 1, 3,
1285
1, 3, 1, 1, 1, 1, 1, 1, 1, 1,
1286
1, 1, 1, 1, 1, 3, 1, 3, 1, 3,
1287
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1288
1, 1, 1, 1, 1, 1, 1, 2, 3, 3,
1289
3, 1, 2, 3, 4, 1, 2, 3, 4, 3,
1290
3, 1, 3, 1, 2, 2, 2, 1, 2, 2,
1291
5, 7, 7, 7, 5, 9, 10, 7, 8, 9,
1292
0, 1, 0, 1, 2, 2, 3, 3, 2, 2,
1293
3, 3, 2, 2, 3, 3, 5, 5, 3, 5,
1294
0, 1, 1, 2, 3, 4, 2, 3, 3, 3,
1295
3, 4, 7, 9, 2, 2, 7, 8, 6, 7,
1296
7, 8, 1, 3, 0, 1, 1, 2
1299
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
1300
STATE-NUM when YYTABLE doesn't specify something else to do. Zero
1301
means the default is an error. */
1302
static const yytype_uint16 yydefact[] =
1304
297, 2, 3, 4, 0, 0, 0, 0, 0, 0,
1305
0, 0, 0, 0, 0, 20, 0, 0, 0, 0,
1306
0, 0, 0, 0, 0, 0, 8, 0, 5, 23,
1307
6, 0, 0, 7, 0, 30, 0, 0, 0, 0,
1308
238, 21, 39, 22, 45, 61, 62, 66, 82, 83,
1309
88, 95, 102, 119, 136, 145, 151, 157, 163, 169,
1310
175, 181, 199, 0, 299, 201, 202, 203, 205, 206,
1311
207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
1312
217, 204, 0, 298, 260, 0, 259, 253, 0, 0,
1313
0, 23, 34, 16, 43, 46, 35, 222, 0, 234,
1314
0, 232, 256, 0, 255, 0, 264, 263, 43, 59,
1315
60, 63, 80, 81, 84, 92, 98, 106, 126, 141,
1316
147, 153, 159, 165, 171, 177, 195, 0, 63, 70,
1317
69, 0, 0, 0, 71, 0, 0, 0, 0, 286,
1318
285, 72, 74, 218, 0, 0, 73, 75, 0, 32,
1319
0, 0, 31, 76, 77, 78, 79, 0, 0, 0,
1320
51, 0, 0, 52, 67, 68, 184, 185, 186, 187,
1321
188, 189, 190, 191, 194, 192, 193, 183, 0, 0,
1322
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1323
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1324
0, 0, 0, 240, 0, 239, 1, 300, 262, 261,
1325
0, 63, 113, 131, 143, 149, 155, 161, 167, 173,
1326
179, 197, 254, 0, 43, 44, 0, 0, 17, 0,
1327
0, 0, 14, 0, 0, 0, 42, 0, 223, 221,
1328
0, 220, 235, 231, 0, 230, 258, 257, 0, 47,
1329
0, 0, 48, 64, 65, 0, 0, 0, 0, 0,
1330
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1331
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1332
266, 0, 265, 0, 0, 0, 0, 0, 281, 280,
1333
0, 0, 219, 279, 24, 30, 26, 25, 28, 33,
1334
55, 0, 57, 0, 41, 0, 54, 182, 90, 89,
1335
91, 96, 97, 103, 104, 105, 125, 124, 122, 123,
1336
120, 121, 137, 138, 139, 140, 146, 152, 158, 164,
1337
170, 0, 200, 226, 0, 0, 0, 0, 0, 0,
1338
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1339
0, 0, 0, 251, 38, 0, 293, 0, 0, 0,
1340
0, 0, 0, 18, 0, 0, 37, 236, 224, 233,
1341
0, 0, 0, 50, 178, 86, 85, 87, 93, 94,
1342
99, 100, 101, 112, 111, 109, 110, 107, 108, 127,
1343
128, 129, 130, 142, 148, 154, 160, 166, 0, 196,
1344
0, 0, 0, 0, 0, 0, 282, 0, 56, 0,
1345
40, 53, 0, 0, 0, 227, 0, 251, 0, 63,
1346
180, 118, 116, 117, 114, 115, 132, 133, 134, 135,
1347
144, 150, 156, 162, 168, 0, 198, 252, 0, 0,
1348
0, 295, 0, 0, 11, 0, 9, 10, 19, 15,
1349
36, 225, 295, 0, 49, 0, 241, 0, 245, 271,
1350
268, 267, 0, 27, 29, 58, 176, 0, 237, 0,
1351
228, 0, 0, 0, 251, 295, 0, 301, 302, 303,
1352
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1353
0, 319, 0, 0, 0, 0, 0, 0, 0, 0,
1354
0, 0, 307, 0, 304, 322, 305, 0, 0, 306,
1355
0, 329, 0, 0, 0, 0, 537, 0, 320, 338,
1356
321, 344, 360, 361, 365, 381, 382, 387, 394, 401,
1357
418, 435, 444, 450, 456, 462, 468, 474, 480, 498,
1358
0, 596, 500, 501, 502, 504, 505, 506, 507, 508,
1359
509, 510, 511, 512, 513, 514, 515, 516, 503, 296,
1360
295, 294, 0, 0, 0, 295, 172, 0, 0, 0,
1361
0, 272, 273, 0, 0, 0, 229, 251, 248, 174,
1362
0, 0, 295, 559, 0, 558, 552, 0, 0, 0,
1363
322, 333, 315, 342, 345, 334, 521, 0, 533, 0,
1364
531, 555, 0, 554, 0, 563, 562, 342, 358, 359,
1365
362, 379, 380, 383, 391, 397, 405, 425, 440, 446,
1366
452, 458, 464, 470, 476, 494, 0, 362, 369, 368,
1367
0, 0, 0, 370, 0, 0, 0, 0, 585, 584,
1368
371, 373, 517, 0, 0, 372, 374, 0, 331, 0,
1369
0, 330, 375, 376, 377, 378, 289, 0, 0, 0,
1370
350, 0, 0, 351, 366, 367, 483, 484, 485, 486,
1371
487, 488, 489, 490, 493, 491, 492, 482, 0, 0,
1372
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1373
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1374
0, 0, 0, 539, 0, 538, 597, 0, 295, 0,
1375
287, 0, 242, 244, 243, 0, 0, 269, 271, 274,
1376
283, 249, 0, 0, 0, 291, 0, 561, 560, 0,
1377
362, 412, 430, 442, 448, 454, 460, 466, 472, 478,
1378
496, 553, 0, 342, 343, 0, 0, 316, 0, 0,
1379
0, 313, 0, 0, 0, 341, 0, 522, 520, 0,
1380
519, 534, 530, 0, 529, 557, 556, 0, 346, 0,
1381
0, 347, 363, 364, 0, 0, 0, 0, 0, 0,
1382
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1383
0, 0, 0, 0, 0, 0, 0, 0, 0, 565,
1384
0, 564, 0, 0, 0, 0, 0, 580, 579, 0,
1385
0, 518, 578, 323, 329, 325, 324, 327, 332, 354,
1386
0, 356, 0, 340, 0, 353, 481, 389, 388, 390,
1387
395, 396, 402, 403, 404, 424, 423, 421, 422, 419,
1388
420, 436, 437, 438, 439, 445, 451, 457, 463, 469,
1389
0, 499, 290, 0, 295, 288, 275, 277, 0, 0,
1390
250, 0, 246, 292, 525, 0, 0, 0, 0, 0,
1391
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1392
0, 0, 0, 0, 550, 337, 0, 592, 0, 0,
1393
0, 0, 0, 0, 317, 0, 0, 336, 535, 523,
1394
532, 0, 0, 0, 349, 477, 385, 384, 386, 392,
1395
393, 398, 399, 400, 411, 410, 408, 409, 406, 407,
1396
426, 427, 428, 429, 441, 447, 453, 459, 465, 0,
1397
495, 0, 0, 0, 0, 0, 0, 581, 0, 355,
1398
0, 339, 352, 0, 12, 0, 276, 278, 270, 284,
1399
247, 0, 0, 526, 0, 550, 0, 362, 479, 417,
1400
415, 416, 413, 414, 431, 432, 433, 434, 443, 449,
1401
455, 461, 467, 0, 497, 551, 0, 0, 0, 594,
1402
0, 0, 310, 0, 308, 309, 318, 314, 335, 524,
1403
594, 0, 348, 0, 540, 0, 544, 570, 567, 566,
1404
0, 326, 328, 357, 475, 13, 0, 536, 0, 527,
1405
0, 0, 0, 550, 594, 0, 0, 595, 594, 593,
1406
0, 0, 0, 594, 471, 0, 0, 0, 0, 571,
1407
572, 0, 0, 0, 528, 550, 547, 473, 0, 0,
1408
594, 588, 0, 594, 0, 586, 0, 541, 543, 542,
1409
0, 0, 568, 570, 573, 582, 548, 0, 0, 0,
1410
590, 0, 589, 0, 594, 587, 574, 576, 0, 0,
1411
549, 0, 545, 591, 311, 0, 575, 577, 569, 583,
1415
/* YYDEFGOTO[NTERM-NUM]. */
1416
static const yytype_int16 yydefgoto[] =
1418
-1, 41, 232, 233, 92, 93, 43, 150, 151, 152,
1419
108, 44, 109, 45, 110, 46, 160, 301, 128, 47,
1420
112, 48, 113, 114, 50, 115, 51, 116, 52, 117,
1421
53, 118, 213, 54, 119, 214, 55, 120, 215, 56,
1422
121, 216, 57, 122, 217, 58, 123, 218, 59, 124,
1423
219, 60, 125, 220, 61, 126, 221, 62, 336, 437,
1424
222, 63, 64, 65, 66, 98, 334, 67, 100, 101,
1425
238, 415, 68, 69, 70, 71, 438, 223, 72, 73,
1426
74, 75, 76, 460, 570, 571, 572, 718, 77, 78,
1427
79, 80, 81, 96, 358, 517, 82, 83, 518, 751,
1428
752, 591, 592, 520, 649, 650, 651, 607, 521, 608,
1429
522, 609, 523, 660, 820, 627, 524, 611, 525, 612,
1430
613, 527, 614, 528, 615, 529, 616, 530, 617, 732,
1431
531, 618, 733, 532, 619, 734, 533, 620, 735, 534,
1432
621, 736, 535, 622, 737, 536, 623, 738, 537, 624,
1433
739, 538, 625, 740, 539, 867, 975, 741, 540, 541,
1434
542, 543, 597, 865, 544, 599, 600, 757, 953, 545,
1435
546, 547, 548, 976, 742, 549, 550, 551, 552, 553,
1436
998, 1028, 1029, 1030, 1053, 554, 555, 556, 557, 558,
1440
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1442
#define YYPACT_NINF -941
1443
static const yytype_int16 yypact[] =
1445
1516, -941, -941, -941, 44, -2, 839, 26, 178, 73,
1446
192, 954, 2114, 2114, 189, -941, 1516, 207, 2114, 245,
1447
275, 2114, 226, 47, 2114, 2114, -941, 1200, -941, 280,
1448
-941, 2114, 2114, -941, 2114, 20, 2114, 2114, 2114, 2114,
1449
-941, -941, -941, -941, 350, -941, 361, 2201, -941, -941,
1450
-941, 6, -21, 437, 446, 264, 269, 315, 306, 364,
1451
9, -941, -941, 69, -941, -941, -941, -941, -941, -941,
1452
-941, -941, -941, -941, -941, -941, -941, -941, -941, -941,
1453
-941, -941, 417, 1516, -941, 88, -941, 1670, 839, 25,
1454
435, -941, -941, -941, 390, -941, -941, 338, 96, 338,
1455
151, -941, -941, 90, -941, 365, -941, -941, 390, -941,
1456
394, 2224, -941, -941, -941, 215, 255, 483, 509, 504,
1457
374, 377, 380, 424, 14, -941, -941, 163, 445, -941,
1458
-941, 2114, 452, 2114, -941, 2114, 2114, 164, 486, -941,
1459
-941, -941, -941, -941, 1279, 1516, -941, -941, 495, -941,
1460
311, 1706, 400, -941, -941, -941, -941, 1781, 2114, 418,
1461
-941, 2114, 432, -941, -941, -941, -941, -941, -941, -941,
1462
-941, -941, -941, -941, -941, -941, -941, -941, 2114, 2114,
1463
2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114,
1464
2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114,
1465
2114, 2114, 2114, -941, 2114, -941, -941, -941, -941, -941,
1466
442, 737, 483, 355, 583, 428, 440, 453, 491, 17,
1467
-941, -941, 481, 469, 390, -941, 505, 187, -941, 513,
1468
-5, 521, -941, 177, 2114, 539, -941, 2114, -941, -941,
1469
545, -941, -941, -941, 178, -941, -941, -941, 236, -941,
1470
2114, 547, -941, -941, -941, 2114, 2114, 2114, 2114, 2114,
1471
2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114,
1472
2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114,
1473
-941, 2114, -941, 499, 548, 559, 582, 617, -941, -941,
1474
556, 226, -941, -941, -941, 20, -941, -941, -941, -941,
1475
-941, 628, -941, 314, -941, 329, -941, -941, -941, -941,
1476
-941, 215, 215, 255, 255, 255, 483, 483, 483, 483,
1477
483, 483, 509, 509, 509, 509, 504, 374, 377, 380,
1478
424, 546, -941, 29, -11, 2114, 2114, 2114, 2114, 2114,
1479
2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114,
1480
2114, 2114, 2114, 2114, -941, 256, -941, 567, 632, 2114,
1481
563, 2114, 2114, -941, 586, 358, -941, -941, 338, -941,
1482
574, 635, 436, -941, -941, -941, -941, -941, 215, 215,
1483
255, 255, 255, 483, 483, 483, 483, 483, 483, 509,
1484
509, 509, 509, 504, 374, 377, 380, 424, 571, -941,
1485
1516, 2114, 1516, 584, 1516, 591, -941, 1817, -941, 2114,
1486
-941, -941, 2114, 2114, 2114, 656, 598, 2114, 648, 2224,
1487
-941, 483, 483, 483, 483, 483, 355, 355, 355, 355,
1488
583, 428, 440, 453, 491, 639, -941, 614, 608, 649,
1489
662, 1595, 651, 650, -941, 283, -941, -941, -941, -941,
1490
-941, -941, 1595, 660, -941, 2114, 681, 670, -941, 716,
1491
-941, -941, 657, -941, -941, -941, -941, 680, -941, 2114,
1492
647, 654, 1516, 2114, 2114, 1595, 677, -941, -941, -941,
1493
141, 688, 1122, 707, 712, 179, 717, 1087, 2150, 2150,
1494
728, -941, 1595, 730, 2150, 732, 743, 2150, 754, 91,
1495
2150, 2150, -941, 1358, -941, 755, -941, 2150, 2150, -941,
1496
2150, 714, 2150, 2150, 2150, 2150, -941, 756, -941, -941,
1497
-941, 403, -941, 434, 2240, -941, -941, -941, 257, 581,
1498
498, 619, 630, 747, 769, 753, 828, 23, -941, -941,
1499
185, -941, -941, -941, -941, -941, -941, -941, -941, -941,
1500
-941, -941, -941, -941, -941, -941, -941, -941, -941, 1595,
1501
1595, -941, 819, 685, 821, 1595, -941, 1516, 171, 2114,
1502
219, 716, -941, 226, 1516, 692, -941, 2114, -941, -941,
1503
810, 822, 1595, -941, 183, -941, 1892, 1122, 305, 609,
1504
-941, -941, -941, 441, -941, -941, 797, 195, 797, 203,
1505
-941, -941, 197, -941, 816, -941, -941, 441, -941, 447,
1506
2263, -941, -941, -941, 262, 698, 515, 640, 638, 812,
1507
802, 811, 845, 28, -941, -941, 208, 739, -941, -941,
1508
2150, 868, 2150, -941, 2150, 2150, 216, 777, -941, -941,
1509
-941, -941, -941, 1437, 1595, -941, -941, 740, -941, 449,
1510
1928, 827, -941, -941, -941, -941, -941, 2003, 2150, 837,
1511
-941, 2150, 841, -941, -941, -941, -941, -941, -941, -941,
1512
-941, -941, -941, -941, -941, -941, -941, -941, 2150, 2150,
1513
2150, 2150, 2150, 2150, 2150, 2150, 2150, 2150, 2150, 2150,
1514
2150, 2150, 2150, 2150, 2150, 2150, 2150, 2150, 2150, 2150,
1515
2150, 2150, 2150, -941, 2150, -941, -941, 844, 1595, 847,
1516
-941, 848, -941, -941, -941, 8, 842, -941, 716, -941,
1517
880, -941, 1516, 849, 1516, -941, 859, -941, -941, 860,
1518
2185, 515, 357, 655, 843, 838, 840, 884, 150, -941,
1519
-941, 857, 846, 441, -941, 861, 299, -941, 863, 181,
1520
870, -941, 284, 2150, 866, -941, 2150, -941, -941, 873,
1521
-941, -941, -941, 712, -941, -941, -941, 301, -941, 2150,
1522
876, -941, -941, -941, 2150, 2150, 2150, 2150, 2150, 2150,
1523
2150, 2150, 2150, 2150, 2150, 2150, 2150, 2150, 2150, 2150,
1524
2150, 2150, 2150, 2150, 2150, 2150, 2150, 2150, 2150, -941,
1525
2150, -941, 749, 871, 751, 757, 766, -941, -941, 872,
1526
754, -941, -941, -941, 714, -941, -941, -941, -941, -941,
1527
778, -941, 464, -941, 511, -941, -941, -941, -941, -941,
1528
262, 262, 698, 698, 698, 515, 515, 515, 515, 515,
1529
515, 640, 640, 640, 640, 638, 812, 802, 811, 845,
1530
878, -941, -941, 891, 1595, -941, 1516, 1516, 894, 226,
1531
-941, 1516, -941, -941, 39, -7, 2150, 2150, 2150, 2150,
1532
2150, 2150, 2150, 2150, 2150, 2150, 2150, 2150, 2150, 2150,
1533
2150, 2150, 2150, 2150, 2150, -941, 307, -941, 897, 781,
1534
2150, 892, 2150, 2150, -941, 683, 522, -941, -941, 797,
1535
-941, 902, 785, 525, -941, -941, -941, -941, -941, 262,
1536
262, 698, 698, 698, 515, 515, 515, 515, 515, 515,
1537
640, 640, 640, 640, 638, 812, 802, 811, 845, 895,
1538
-941, 1595, 2150, 1595, 904, 1595, 907, -941, 2039, -941,
1539
2150, -941, -941, 2150, -941, 906, 1516, 1516, -941, -941,
1540
-941, 2150, 2150, 950, 912, 2150, 793, 2263, -941, 515,
1541
515, 515, 515, 515, 357, 357, 357, 357, 655, 843,
1542
838, 840, 884, 908, -941, 909, 889, 918, 796, 1595,
1543
921, 919, -941, 313, -941, -941, -941, -941, -941, -941,
1544
1595, 923, -941, 2150, 949, 798, -941, 977, -941, -941,
1545
916, -941, -941, -941, -941, -941, 803, -941, 2150, 900,
1546
901, 1595, 2150, 2150, 1595, 928, 935, 1595, 1595, -941,
1547
937, 805, 939, 1595, -941, 1595, 217, 2150, 237, 977,
1548
-941, 754, 1595, 807, -941, 2150, -941, -941, 931, 941,
1549
1595, -941, 942, 1595, 944, -941, 946, -941, -941, -941,
1550
37, 940, -941, 977, -941, 973, -941, 1595, 943, 1595,
1551
-941, 948, -941, 951, 1595, -941, 1595, 1595, 961, 754,
1552
-941, 1595, -941, -941, -941, 963, 1595, 1595, -941, -941,
1556
/* YYPGOTO[NTERM-NUM]. */
1557
static const yytype_int16 yypgoto[] =
1559
-941, -941, 645, -941, -941, 0, -941, -941, 715, -941,
1560
22, -941, 186, -941, -941, -941, -29, -941, 479, -941,
1561
-941, -941, 3, 169, -941, 105, -941, 230, -941, 725,
1562
-941, 138, 423, -941, -174, 668, -941, 31, 679, -941,
1563
40, 676, -941, 42, 678, -941, 68, 682, -941, -941,
1564
-941, -941, -941, -941, -941, -35, -305, -941, 172, 18,
1565
-941, -941, -15, -20, -941, -941, -941, -941, -941, 791,
1566
-91, 566, -941, -941, -941, -941, -407, -941, -941, -941,
1567
-941, -941, -941, -941, 319, -941, 471, -941, -941, -941,
1568
-941, -941, -941, -941, -235, -441, -941, -23, -941, 148,
1569
-941, -941, -432, -941, -941, 231, -941, -450, -941, -449,
1570
-941, -941, -941, -511, -941, 167, -941, -941, -941, -329,
1571
263, -941, -661, -941, -460, -941, -428, -941, -480, -70,
1572
-941, -679, 170, -941, -673, 166, -941, -663, 173, -941,
1573
-660, 174, -941, -657, 165, -941, -941, -941, -941, -941,
1574
-941, -941, -601, -841, -941, -302, -473, -941, -941, -454,
1575
-493, -941, -941, -941, -941, -941, 290, -592, 46, -941,
1576
-941, -941, -941, -940, -941, -941, -941, -941, -941, -941,
1577
-941, 5, -941, 49, -941, -941, -941, -941, -941, -941,
1578
-941, -760, -652, -468
1581
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
1582
positive, shift that token. If negative, reduce the rule which
1583
number is the opposite. If zero, do what YYDEFACT says.
1584
If YYTABLE_NINF, syntax error. */
1585
#define YYTABLE_NINF -1
1586
static const yytype_uint16 yytable[] =
1588
42, 132, 138, 49, 144, 637, 761, 902, 242, 519,
1589
471, 564, 663, 371, 626, 1010, 42, 163, 845, 49,
1590
519, 830, 831, 326, 636, 846, 958, 42, 94, 127,
1591
49, 420, 593, 594, 581, 643, 847, 647, 631, 137,
1592
848, 973, 974, 519, 849, 84, 435, 436, 139, 817,
1593
201, 413, 148, 182, 183, 278, 821, 360, 350, 416,
1594
519, 951, 361, 954, 701, 236, 87, 580, 207, 797,
1595
203, 519, 179, 1038, 102, 856, 417, 826, 281, 249,
1596
955, 252, 755, 42, 180, 181, 49, 226, 97, 208,
1597
149, 246, 638, 227, 202, 1058, 768, 239, 771, 279,
1598
393, 850, 351, 851, 1066, 706, 85, 800, 702, 468,
1599
224, 1007, 526, 798, 924, 414, 298, 909, 910, 707,
1600
440, 925, 302, 526, 711, 952, 978, 519, 519, 207,
1601
293, 86, 926, 519, 140, 103, 927, 743, 744, 204,
1602
928, 726, 583, 307, 42, 42, 526, 49, 49, 283,
1603
519, 285, 243, 286, 287, 898, 205, 802, 731, 804,
1604
104, 805, 806, 526, 280, 288, 240, 331, 579, 332,
1605
723, 1037, 713, 905, 526, 209, 303, 247, 639, 305,
1606
601, 129, 130, 241, 727, 822, 703, 134, 824, 706,
1607
812, 881, 95, 141, 142, 354, 758, 929, 765, 930,
1608
146, 147, 367, 584, 762, 153, 154, 155, 156, 799,
1609
563, 519, 519, 841, 842, 843, 844, 807, 1048, 178,
1610
374, 244, 678, 1021, 832, 833, 834, 716, 585, 327,
1611
526, 526, 885, 281, 281, 882, 526, 363, 245, 328,
1612
99, 602, 329, 891, 398, 1051, 399, 364, 892, 356,
1613
282, 289, 365, 526, 105, 704, 357, 131, 714, 835,
1614
836, 837, 838, 839, 840, 759, 603, 853, 372, 330,
1615
728, 406, 705, 763, 225, 133, 519, 451, 800, 717,
1616
896, 256, 760, 255, 766, 27, 800, 311, 312, 982,
1617
764, 984, 985, 257, 258, 801, 903, 1052, 356, 193,
1618
194, 195, 196, 808, 1049, 370, 394, 989, 774, 920,
1619
921, 922, 923, 135, 526, 526, 395, 937, 356, 396,
1620
911, 912, 913, 679, 444, 439, 446, 447, 775, 259,
1621
260, 322, 323, 324, 325, 680, 681, 1002, 1022, 1003,
1622
776, 777, 1004, 136, 894, 356, 397, 145, 308, 309,
1623
310, 197, 562, 418, 895, 914, 915, 916, 917, 918,
1624
919, 887, 1039, 887, 378, 379, 1042, 745, 888, 887,
1625
901, 1046, 464, 746, 465, 887, 977, 466, 337, 526,
1626
868, 295, 1020, 296, 281, 456, 410, 458, 1061, 461,
1627
199, 1063, 1024, 956, 338, 339, 869, 870, 198, 281,
1628
42, 411, 42, 49, 42, 49, 200, 49, 389, 390,
1629
391, 392, 1075, 945, 313, 314, 315, 206, 157, 457,
1630
566, 158, 519, 159, 237, 375, 376, 377, 281, 157,
1631
450, 467, 161, 248, 162, 340, 341, 871, 872, 731,
1632
959, 960, 961, 962, 963, 731, 731, 731, 731, 731,
1633
731, 731, 731, 731, 731, 731, 274, 578, 157, 995,
1634
275, 234, 157, 235, 276, 250, 277, 251, 187, 188,
1635
299, 657, 42, 284, 658, 49, 659, 994, 1006, 996,
1636
304, 999, 184, 185, 186, 189, 190, 575, 253, 254,
1637
111, 380, 381, 382, 306, 228, 229, 230, 231, 519,
1638
111, 519, 657, 519, 333, 661, 281, 662, 454, 657,
1639
346, 1017, 753, 111, 754, 657, 290, 291, 769, 814,
1640
770, 815, 1017, 347, 731, 526, 191, 192, 261, 262,
1641
263, 264, 265, 349, 800, 1033, 941, 348, 1055, 270,
1642
271, 272, 273, 684, 685, 686, 1017, 519, 266, 267,
1643
1017, 352, 712, 720, 1050, 1017, 353, 1036, 519, 721,
1644
780, 781, 782, 706, 294, 281, 211, 42, 400, 281,
1645
49, 1047, 1017, 355, 42, 1017, 1079, 49, 1056, 519,
1646
359, 800, 519, 942, 731, 519, 519, 715, 362, 268,
1647
269, 519, 800, 519, 988, 800, 1017, 992, 1076, 1077,
1648
519, 366, 526, 1070, 526, 1072, 526, 368, 519, 373,
1649
111, 519, 111, 412, 111, 111, 401, 1080, 342, 343,
1650
344, 345, 706, 706, 405, 519, 441, 519, 402, 281,
1651
111, 445, 519, 452, 519, 519, 111, 111, 455, 519,
1652
111, 687, 688, 459, 519, 519, 448, 229, 230, 231,
1653
526, 403, 281, 462, 610, 682, 683, 111, 689, 690,
1654
470, 526, 783, 784, 610, 693, 694, 695, 696, 747,
1655
748, 749, 750, 789, 790, 791, 792, 610, 469, 785,
1656
786, 111, 526, 111, 281, 526, 404, 281, 526, 526,
1657
873, 874, 875, 876, 526, 474, 526, 408, 409, 691,
1658
692, 442, 443, 526, 453, 443, 473, 860, 475, 862,
1659
560, 526, 561, 111, 526, 567, 111, 472, 281, 565,
1660
787, 788, 42, 569, 42, 49, 573, 49, 526, 111,
1661
526, 476, 443, 414, 111, 526, 582, 526, 526, 568,
1662
281, 577, 526, 986, 748, 749, 750, 526, 526, 574,
1663
281, 628, 629, 730, 709, 443, 586, 633, 111, 335,
1664
111, 722, 281, 640, 641, 426, 427, 428, 429, 596,
1665
645, 646, 778, 779, 598, 652, 653, 654, 655, 604,
1666
253, 254, 772, 773, 648, 166, 167, 168, 169, 170,
1667
171, 172, 173, 174, 175, 176, 630, 610, 632, 610,
1668
634, 610, 610, 964, 965, 966, 967, 809, 810, 813,
1669
800, 635, 212, 503, 111, 419, 656, 610, 931, 800,
1670
933, 800, 644, 177, 610, 610, 934, 800, 610, 697,
1671
419, 419, 111, 946, 947, 935, 800, 699, 111, 949,
1672
111, 111, 1, 2, 3, 610, 950, 939, 940, 88,
1673
980, 981, 698, 89, 991, 981, 42, 42, 15, 49,
1674
49, 42, 1011, 800, 49, 1015, 981, 1026, 800, 610,
1675
700, 610, 1032, 800, 1044, 981, 1057, 800, 708, 724,
1676
111, 710, 725, 756, 767, 794, 111, 796, 111, 803,
1677
26, 111, 111, 419, 793, 795, 111, 818, 90, 823,
1678
28, 91, 30, 825, 852, 33, 854, 34, 855, 857,
1679
35, 859, 316, 317, 318, 319, 320, 321, 861, 863,
1680
610, 878, 864, 610, 879, 877, 880, 883, 897, 886,
1681
890, 207, 207, 884, 111, 899, 610, 893, 904, 932,
1682
936, 610, 827, 828, 829, 943, 42, 42, 111, 49,
1683
49, 944, 419, 111, 948, 106, 979, 1, 2, 3,
1684
983, 990, 993, 997, 88, 610, 1005, 610, 89, 1000,
1685
12, 13, 1008, 15, 1009, 1012, 1013, 1014, 18, 800,
1686
1018, 1019, 1023, 1025, 1027, 1031, 952, 1040, 1035, 383,
1687
384, 385, 386, 387, 388, 1041, 1043, 24, 25, 1045,
1688
1059, 1060, 1062, 1064, 1069, 26, 1065, 1067, 1073, 449,
1689
407, 1074, 1071, 90, 430, 28, 91, 30, 31, 32,
1690
33, 1078, 34, 1081, 432, 35, 431, 433, 36, 37,
1691
38, 39, 434, 610, 957, 369, 576, 858, 906, 907,
1692
908, 107, 719, 987, 969, 938, 972, 968, 111, 957,
1693
957, 610, 970, 900, 971, 1034, 111, 610, 1068, 610,
1694
610, 212, 421, 422, 423, 424, 425, 212, 212, 212,
1695
212, 212, 212, 212, 212, 212, 212, 212, 1054, 0,
1696
0, 0, 0, 0, 0, 0, 0, 0, 605, 0,
1697
477, 478, 479, 0, 0, 0, 0, 587, 0, 610,
1698
0, 588, 0, 488, 489, 610, 491, 610, 0, 0,
1699
610, 494, 0, 0, 0, 0, 0, 0, 610, 957,
1700
0, 0, 610, 0, 0, 477, 478, 479, 0, 0,
1701
500, 501, 587, 0, 0, 0, 588, 0, 502, 212,
1702
0, 491, 0, 0, 0, 0, 589, 0, 504, 590,
1703
506, 507, 508, 509, 0, 510, 0, 0, 511, 0,
1704
610, 512, 513, 514, 515, 0, 0, 0, 0, 0,
1705
0, 0, 0, 502, 606, 610, 0, 0, 0, 957,
1706
610, 589, 0, 504, 590, 506, 0, 0, 509, 0,
1707
510, 0, 0, 511, 610, 0, 0, 0, 212, 0,
1708
0, 0, 610, 1, 2, 3, 4, 0, 0, 5,
1709
6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
1710
16, 17, 0, 0, 18, 19, 20, 0, 21, 22,
1711
0, 0, 23, 0, 0, 0, 0, 0, 0, 0,
1712
0, 0, 0, 24, 25, 0, 0, 0, 0, 0,
1713
0, 26, 0, 0, 0, 0, 0, 0, 0, 27,
1714
143, 28, 29, 30, 31, 32, 33, 0, 34, 0,
1715
0, 35, 0, 0, 36, 37, 38, 39, 0, 0,
1716
0, 0, 1, 2, 3, 4, 0, 40, 5, 6,
1717
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
1718
17, 0, 0, 18, 19, 20, 0, 21, 22, 0,
1719
0, 23, 0, 0, 0, 0, 0, 0, 0, 0,
1720
0, 0, 24, 25, 0, 0, 0, 0, 0, 0,
1721
26, 0, 0, 0, 0, 0, 0, 0, 27, 292,
1722
28, 29, 30, 31, 32, 33, 0, 34, 0, 0,
1723
35, 0, 0, 36, 37, 38, 39, 0, 0, 0,
1724
0, 477, 478, 479, 480, 0, 40, 481, 482, 483,
1725
484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
1726
0, 0, 494, 495, 496, 0, 497, 498, 0, 0,
1727
499, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1728
0, 500, 501, 0, 0, 0, 0, 0, 0, 502,
1729
0, 0, 0, 0, 0, 0, 0, 503, 642, 504,
1730
505, 506, 507, 508, 509, 0, 510, 0, 0, 511,
1731
0, 0, 512, 513, 514, 515, 0, 0, 0, 0,
1732
477, 478, 479, 480, 0, 516, 481, 482, 483, 484,
1733
485, 486, 487, 488, 489, 490, 491, 492, 493, 0,
1734
0, 494, 495, 496, 0, 497, 498, 0, 0, 499,
1735
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1736
500, 501, 0, 0, 0, 0, 0, 0, 502, 0,
1737
0, 0, 0, 0, 0, 0, 503, 811, 504, 505,
1738
506, 507, 508, 509, 0, 510, 0, 0, 511, 0,
1739
0, 512, 513, 514, 515, 0, 0, 0, 0, 1,
1740
2, 3, 4, 0, 516, 5, 6, 7, 8, 9,
1741
10, 11, 12, 13, 14, 15, 16, 17, 0, 0,
1742
18, 19, 20, 0, 21, 22, 0, 0, 23, 0,
1743
0, 0, 0, 0, 0, 0, 0, 0, 0, 24,
1744
25, 0, 0, 0, 0, 0, 0, 26, 0, 0,
1745
0, 0, 0, 0, 0, 27, 0, 28, 29, 30,
1746
31, 32, 33, 0, 34, 0, 0, 35, 0, 0,
1747
36, 37, 38, 39, 0, 0, 0, 0, 477, 478,
1748
479, 480, 0, 40, 481, 482, 483, 484, 485, 486,
1749
487, 488, 489, 490, 491, 492, 493, 0, 0, 494,
1750
495, 496, 0, 497, 498, 0, 0, 499, 0, 0,
1751
0, 0, 0, 0, 0, 0, 0, 0, 500, 501,
1752
0, 0, 0, 0, 0, 0, 502, 0, 0, 0,
1753
0, 0, 0, 0, 503, 0, 504, 505, 506, 507,
1754
508, 509, 0, 510, 0, 0, 511, 0, 0, 512,
1755
513, 514, 515, 1, 2, 3, 0, 0, 0, 0,
1756
88, 210, 516, 0, 89, 0, 12, 13, 0, 15,
1757
0, 0, 0, 0, 18, 0, 0, 0, 0, 0,
1758
0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
1759
2, 3, 0, 24, 25, 0, 88, 0, 0, 0,
1760
89, 26, 12, 13, 0, 15, 0, 0, 0, 90,
1761
18, 28, 91, 30, 31, 32, 33, 0, 34, 0,
1762
0, 35, 0, 0, 36, 37, 38, 39, 0, 24,
1763
25, 0, 0, 0, 0, 0, 0, 26, 0, 0,
1764
0, 0, 0, 0, 0, 90, 0, 28, 91, 30,
1765
31, 32, 33, 0, 34, 0, 0, 35, 297, 0,
1766
36, 37, 38, 39, 1, 2, 3, 0, 0, 0,
1767
0, 88, 0, 0, 0, 89, 0, 12, 13, 0,
1768
15, 0, 0, 0, 0, 18, 0, 0, 0, 0,
1769
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1770
1, 2, 3, 0, 24, 25, 0, 88, 0, 0,
1771
0, 89, 26, 12, 13, 0, 15, 0, 0, 0,
1772
90, 18, 28, 91, 30, 31, 32, 33, 0, 34,
1773
300, 0, 35, 0, 0, 36, 37, 38, 39, 0,
1774
24, 25, 0, 0, 0, 0, 0, 0, 26, 0,
1775
0, 0, 0, 0, 0, 0, 90, 0, 28, 91,
1776
30, 31, 32, 33, 0, 34, 0, 0, 35, 463,
1777
0, 36, 37, 38, 39, 477, 478, 479, 0, 0,
1778
0, 0, 587, 729, 0, 0, 588, 0, 488, 489,
1779
0, 491, 0, 0, 0, 0, 494, 0, 0, 0,
1780
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1781
0, 477, 478, 479, 0, 500, 501, 0, 587, 0,
1782
0, 0, 588, 502, 488, 489, 0, 491, 0, 0,
1783
0, 589, 494, 504, 590, 506, 507, 508, 509, 0,
1784
510, 0, 0, 511, 0, 0, 512, 513, 514, 515,
1785
0, 500, 501, 0, 0, 0, 0, 0, 0, 502,
1786
0, 0, 0, 0, 0, 0, 0, 589, 0, 504,
1787
590, 506, 507, 508, 509, 0, 510, 0, 0, 511,
1788
816, 0, 512, 513, 514, 515, 477, 478, 479, 0,
1789
0, 0, 0, 587, 0, 0, 0, 588, 0, 488,
1790
489, 0, 491, 0, 0, 0, 0, 494, 0, 0,
1791
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1792
0, 0, 477, 478, 479, 0, 500, 501, 0, 587,
1793
0, 0, 0, 588, 502, 488, 489, 0, 491, 0,
1794
0, 0, 589, 494, 504, 590, 506, 507, 508, 509,
1795
0, 510, 819, 0, 511, 0, 0, 512, 513, 514,
1796
515, 0, 500, 501, 0, 0, 0, 0, 0, 0,
1797
502, 0, 0, 0, 0, 0, 0, 0, 589, 0,
1798
504, 590, 506, 507, 508, 509, 0, 510, 0, 0,
1799
511, 1001, 0, 512, 513, 514, 515, 1, 2, 3,
1800
0, 0, 0, 0, 88, 0, 0, 0, 89, 0,
1801
12, 13, 0, 15, 0, 0, 0, 0, 18, 0,
1802
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1803
0, 0, 0, 477, 478, 479, 0, 24, 25, 0,
1804
587, 0, 0, 0, 588, 26, 488, 489, 0, 491,
1805
0, 0, 0, 90, 494, 28, 91, 30, 31, 32,
1806
33, 0, 34, 0, 0, 35, 0, 0, 36, 37,
1807
38, 39, 0, 500, 501, 0, 0, 0, 0, 0,
1808
0, 502, 0, 0, 0, 0, 0, 866, 0, 589,
1809
0, 504, 590, 506, 507, 508, 509, 0, 510, 0,
1810
0, 511, 0, 0, 512, 513, 514, 515, 772, 773,
1811
0, 0, 0, 666, 667, 668, 669, 670, 671, 672,
1812
673, 674, 675, 676, 164, 165, 0, 0, 0, 166,
1813
167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
1814
0, 0, 0, 0, 0, 0, 0, 253, 254, 0,
1815
0, 677, 166, 167, 168, 169, 170, 171, 172, 173,
1816
174, 175, 176, 664, 665, 0, 0, 177, 666, 667,
1817
668, 669, 670, 671, 672, 673, 674, 675, 676, 0,
1818
0, 0, 0, 0, 0, 0, 772, 773, 0, 0,
1819
177, 666, 667, 668, 669, 670, 671, 672, 673, 674,
1820
675, 676, 0, 0, 0, 0, 677, 0, 0, 0,
1821
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1822
0, 0, 0, 0, 0, 0, 0, 0, 0, 677
1825
static const yytype_int16 yycheck[] =
1827
0, 16, 22, 0, 27, 498, 598, 767, 99, 441,
1828
417, 452, 523, 248, 487, 955, 16, 46, 697, 16,
1829
452, 682, 683, 197, 497, 698, 867, 27, 6, 11,
1830
27, 336, 482, 482, 475, 503, 699, 510, 492, 21,
1831
700, 882, 883, 475, 701, 1, 351, 352, 1, 650,
1832
41, 22, 34, 74, 75, 41, 657, 62, 41, 70,
1833
492, 22, 67, 70, 41, 94, 68, 474, 83, 41,
1834
1, 503, 66, 1013, 1, 67, 87, 678, 70, 108,
1835
87, 110, 593, 83, 78, 79, 83, 62, 62, 1,
1836
70, 1, 1, 68, 85, 1035, 607, 1, 609, 85,
1837
274, 702, 85, 704, 67, 559, 62, 70, 85, 414,
1838
88, 952, 441, 85, 793, 86, 151, 778, 779, 560,
1839
355, 794, 157, 452, 565, 86, 886, 559, 560, 144,
1840
145, 87, 795, 565, 87, 62, 796, 587, 587, 70,
1841
797, 582, 1, 178, 144, 145, 475, 144, 145, 131,
1842
582, 133, 1, 135, 136, 756, 87, 630, 586, 632,
1843
87, 634, 635, 492, 1, 1, 70, 202, 473, 204,
1844
577, 1012, 1, 774, 503, 87, 158, 87, 87, 161,
1845
1, 12, 13, 87, 1, 658, 1, 18, 661, 643,
1846
644, 41, 6, 24, 25, 224, 1, 798, 1, 800,
1847
31, 32, 237, 62, 1, 36, 37, 38, 39, 1,
1848
445, 643, 644, 693, 694, 695, 696, 1, 1, 47,
1849
255, 70, 524, 983, 684, 685, 686, 8, 87, 198,
1850
559, 560, 743, 70, 70, 85, 565, 60, 87, 199,
1851
62, 62, 200, 62, 279, 8, 281, 70, 67, 62,
1852
87, 87, 234, 582, 62, 70, 69, 68, 87, 687,
1853
688, 689, 690, 691, 692, 70, 87, 708, 250, 201,
1854
87, 291, 87, 70, 88, 68, 708, 368, 70, 60,
1855
753, 66, 87, 111, 87, 59, 70, 182, 183, 890,
1856
87, 892, 893, 78, 79, 87, 769, 60, 62, 35,
1857
36, 37, 38, 87, 87, 69, 275, 899, 610, 789,
1858
790, 791, 792, 68, 643, 644, 276, 810, 62, 277,
1859
780, 781, 782, 66, 359, 69, 361, 362, 66, 74,
1860
75, 193, 194, 195, 196, 78, 79, 938, 990, 940,
1861
78, 79, 943, 68, 60, 62, 278, 67, 179, 180,
1862
181, 82, 69, 335, 70, 783, 784, 785, 786, 787,
1863
788, 62, 1014, 62, 259, 260, 1018, 62, 69, 62,
1864
69, 1023, 407, 68, 409, 62, 69, 412, 23, 708,
1865
23, 70, 69, 72, 70, 400, 72, 402, 1040, 404,
1866
84, 1043, 993, 866, 39, 40, 39, 40, 83, 70,
1867
400, 72, 402, 400, 404, 402, 42, 404, 270, 271,
1868
272, 273, 1064, 854, 184, 185, 186, 0, 68, 401,
1869
455, 71, 854, 73, 86, 256, 257, 258, 70, 68,
1870
72, 413, 71, 68, 73, 80, 81, 80, 81, 867,
1871
868, 869, 870, 871, 872, 873, 874, 875, 876, 877,
1872
878, 879, 880, 881, 882, 883, 82, 472, 68, 932,
1873
83, 71, 68, 73, 84, 71, 42, 73, 22, 23,
1874
70, 68, 472, 21, 71, 472, 73, 931, 951, 933,
1875
62, 935, 45, 46, 47, 39, 40, 469, 43, 44,
1876
11, 261, 262, 263, 62, 60, 61, 62, 63, 931,
1877
21, 933, 68, 935, 62, 71, 70, 73, 72, 68,
1878
82, 979, 71, 34, 73, 68, 30, 31, 71, 70,
1879
73, 72, 990, 83, 952, 854, 80, 81, 45, 46,
1880
47, 22, 23, 42, 70, 1008, 72, 84, 1031, 35,
1881
36, 37, 38, 45, 46, 47, 1014, 979, 39, 40,
1882
1018, 70, 567, 573, 1027, 1023, 87, 1011, 990, 574,
1883
45, 46, 47, 1017, 69, 70, 87, 567, 69, 70,
1884
567, 1025, 1040, 68, 574, 1043, 1069, 574, 1032, 1011,
1885
67, 70, 1014, 72, 1012, 1017, 1018, 569, 67, 80,
1886
81, 1023, 70, 1025, 72, 70, 1064, 72, 1066, 1067,
1887
1032, 62, 931, 1057, 933, 1059, 935, 62, 1040, 62,
1888
131, 1043, 133, 67, 135, 136, 68, 1071, 35, 36,
1889
37, 38, 1076, 1077, 68, 1057, 59, 1059, 69, 70,
1890
151, 68, 1064, 59, 1066, 1067, 157, 158, 67, 1071,
1891
161, 22, 23, 59, 1076, 1077, 60, 61, 62, 63,
1892
979, 69, 70, 62, 487, 74, 75, 178, 39, 40,
1893
62, 990, 22, 23, 497, 35, 36, 37, 38, 60,
1894
61, 62, 63, 35, 36, 37, 38, 510, 22, 39,
1895
40, 202, 1011, 204, 70, 1014, 69, 70, 1017, 1018,
1896
35, 36, 37, 38, 1023, 87, 1025, 69, 70, 80,
1897
81, 69, 70, 1032, 69, 70, 67, 722, 59, 724,
1898
59, 1040, 62, 234, 1043, 34, 237, 69, 70, 59,
1899
80, 81, 722, 7, 724, 722, 69, 724, 1057, 250,
1900
1059, 69, 70, 86, 255, 1064, 59, 1066, 1067, 69,
1901
70, 87, 1071, 60, 61, 62, 63, 1076, 1077, 69,
1902
70, 488, 489, 586, 69, 70, 68, 494, 279, 22,
1903
281, 69, 70, 500, 501, 342, 343, 344, 345, 62,
1904
507, 508, 74, 75, 62, 512, 513, 514, 515, 62,
1905
43, 44, 43, 44, 70, 48, 49, 50, 51, 52,
1906
53, 54, 55, 56, 57, 58, 68, 630, 68, 632,
1907
68, 634, 635, 873, 874, 875, 876, 30, 31, 69,
1908
70, 68, 87, 59, 335, 336, 60, 650, 69, 70,
1909
69, 70, 67, 86, 657, 658, 69, 70, 661, 82,
1910
351, 352, 353, 856, 857, 69, 70, 84, 359, 859,
1911
361, 362, 3, 4, 5, 678, 861, 69, 70, 10,
1912
69, 70, 83, 14, 69, 70, 856, 857, 19, 856,
1913
857, 861, 69, 70, 861, 69, 70, 69, 70, 702,
1914
42, 704, 69, 70, 69, 70, 69, 70, 59, 69,
1915
401, 60, 60, 86, 68, 83, 407, 42, 409, 21,
1916
51, 412, 413, 414, 82, 84, 417, 70, 59, 62,
1917
61, 62, 63, 62, 60, 66, 59, 68, 60, 67,
1918
71, 31, 187, 188, 189, 190, 191, 192, 69, 60,
1919
753, 83, 62, 756, 84, 82, 42, 70, 62, 68,
1920
67, 946, 947, 87, 455, 62, 769, 67, 62, 68,
1921
68, 774, 679, 680, 681, 67, 946, 947, 469, 946,
1922
947, 60, 473, 474, 60, 1, 59, 3, 4, 5,
1923
68, 59, 67, 59, 10, 798, 60, 800, 14, 62,
1924
16, 17, 22, 19, 62, 67, 87, 59, 24, 70,
1925
59, 62, 59, 34, 7, 69, 86, 59, 87, 264,
1926
265, 266, 267, 268, 269, 60, 59, 43, 44, 60,
1927
69, 60, 60, 59, 31, 51, 60, 67, 60, 364,
1928
295, 60, 69, 59, 346, 61, 62, 63, 64, 65,
1929
66, 60, 68, 60, 348, 71, 347, 349, 74, 75,
1930
76, 77, 350, 866, 867, 244, 470, 718, 775, 776,
1931
777, 87, 571, 895, 878, 814, 881, 877, 569, 882,
1932
883, 884, 879, 763, 880, 1009, 577, 890, 1053, 892,
1933
893, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1934
345, 346, 347, 348, 349, 350, 351, 352, 1029, -1,
1935
-1, -1, -1, -1, -1, -1, -1, -1, 1, -1,
1936
3, 4, 5, -1, -1, -1, -1, 10, -1, 932,
1937
-1, 14, -1, 16, 17, 938, 19, 940, -1, -1,
1938
943, 24, -1, -1, -1, -1, -1, -1, 951, 952,
1939
-1, -1, 955, -1, -1, 3, 4, 5, -1, -1,
1940
43, 44, 10, -1, -1, -1, 14, -1, 51, 414,
1941
-1, 19, -1, -1, -1, -1, 59, -1, 61, 62,
1942
63, 64, 65, 66, -1, 68, -1, -1, 71, -1,
1943
993, 74, 75, 76, 77, -1, -1, -1, -1, -1,
1944
-1, -1, -1, 51, 87, 1008, -1, -1, -1, 1012,
1945
1013, 59, -1, 61, 62, 63, -1, -1, 66, -1,
1946
68, -1, -1, 71, 1027, -1, -1, -1, 473, -1,
1947
-1, -1, 1035, 3, 4, 5, 6, -1, -1, 9,
1948
10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
1949
20, 21, -1, -1, 24, 25, 26, -1, 28, 29,
1950
-1, -1, 32, -1, -1, -1, -1, -1, -1, -1,
1951
-1, -1, -1, 43, 44, -1, -1, -1, -1, -1,
1952
-1, 51, -1, -1, -1, -1, -1, -1, -1, 59,
1953
60, 61, 62, 63, 64, 65, 66, -1, 68, -1,
1954
-1, 71, -1, -1, 74, 75, 76, 77, -1, -1,
1955
-1, -1, 3, 4, 5, 6, -1, 87, 9, 10,
1956
11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
1957
21, -1, -1, 24, 25, 26, -1, 28, 29, -1,
1958
-1, 32, -1, -1, -1, -1, -1, -1, -1, -1,
1959
-1, -1, 43, 44, -1, -1, -1, -1, -1, -1,
1960
51, -1, -1, -1, -1, -1, -1, -1, 59, 60,
1961
61, 62, 63, 64, 65, 66, -1, 68, -1, -1,
1962
71, -1, -1, 74, 75, 76, 77, -1, -1, -1,
1963
-1, 3, 4, 5, 6, -1, 87, 9, 10, 11,
1964
12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
1965
-1, -1, 24, 25, 26, -1, 28, 29, -1, -1,
1966
32, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1967
-1, 43, 44, -1, -1, -1, -1, -1, -1, 51,
1968
-1, -1, -1, -1, -1, -1, -1, 59, 60, 61,
1969
62, 63, 64, 65, 66, -1, 68, -1, -1, 71,
1970
-1, -1, 74, 75, 76, 77, -1, -1, -1, -1,
1971
3, 4, 5, 6, -1, 87, 9, 10, 11, 12,
1972
13, 14, 15, 16, 17, 18, 19, 20, 21, -1,
1973
-1, 24, 25, 26, -1, 28, 29, -1, -1, 32,
1974
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1975
43, 44, -1, -1, -1, -1, -1, -1, 51, -1,
1976
-1, -1, -1, -1, -1, -1, 59, 60, 61, 62,
1977
63, 64, 65, 66, -1, 68, -1, -1, 71, -1,
1978
-1, 74, 75, 76, 77, -1, -1, -1, -1, 3,
1979
4, 5, 6, -1, 87, 9, 10, 11, 12, 13,
1980
14, 15, 16, 17, 18, 19, 20, 21, -1, -1,
1981
24, 25, 26, -1, 28, 29, -1, -1, 32, -1,
1982
-1, -1, -1, -1, -1, -1, -1, -1, -1, 43,
1983
44, -1, -1, -1, -1, -1, -1, 51, -1, -1,
1984
-1, -1, -1, -1, -1, 59, -1, 61, 62, 63,
1985
64, 65, 66, -1, 68, -1, -1, 71, -1, -1,
1986
74, 75, 76, 77, -1, -1, -1, -1, 3, 4,
1987
5, 6, -1, 87, 9, 10, 11, 12, 13, 14,
1988
15, 16, 17, 18, 19, 20, 21, -1, -1, 24,
1989
25, 26, -1, 28, 29, -1, -1, 32, -1, -1,
1990
-1, -1, -1, -1, -1, -1, -1, -1, 43, 44,
1991
-1, -1, -1, -1, -1, -1, 51, -1, -1, -1,
1992
-1, -1, -1, -1, 59, -1, 61, 62, 63, 64,
1993
65, 66, -1, 68, -1, -1, 71, -1, -1, 74,
1994
75, 76, 77, 3, 4, 5, -1, -1, -1, -1,
1995
10, 11, 87, -1, 14, -1, 16, 17, -1, 19,
1996
-1, -1, -1, -1, 24, -1, -1, -1, -1, -1,
1997
-1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
1998
4, 5, -1, 43, 44, -1, 10, -1, -1, -1,
1999
14, 51, 16, 17, -1, 19, -1, -1, -1, 59,
2000
24, 61, 62, 63, 64, 65, 66, -1, 68, -1,
2001
-1, 71, -1, -1, 74, 75, 76, 77, -1, 43,
2002
44, -1, -1, -1, -1, -1, -1, 51, -1, -1,
2003
-1, -1, -1, -1, -1, 59, -1, 61, 62, 63,
2004
64, 65, 66, -1, 68, -1, -1, 71, 72, -1,
2005
74, 75, 76, 77, 3, 4, 5, -1, -1, -1,
2006
-1, 10, -1, -1, -1, 14, -1, 16, 17, -1,
2007
19, -1, -1, -1, -1, 24, -1, -1, -1, -1,
2008
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2009
3, 4, 5, -1, 43, 44, -1, 10, -1, -1,
2010
-1, 14, 51, 16, 17, -1, 19, -1, -1, -1,
2011
59, 24, 61, 62, 63, 64, 65, 66, -1, 68,
2012
69, -1, 71, -1, -1, 74, 75, 76, 77, -1,
2013
43, 44, -1, -1, -1, -1, -1, -1, 51, -1,
2014
-1, -1, -1, -1, -1, -1, 59, -1, 61, 62,
2015
63, 64, 65, 66, -1, 68, -1, -1, 71, 72,
2016
-1, 74, 75, 76, 77, 3, 4, 5, -1, -1,
2017
-1, -1, 10, 11, -1, -1, 14, -1, 16, 17,
2018
-1, 19, -1, -1, -1, -1, 24, -1, -1, -1,
2019
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2020
-1, 3, 4, 5, -1, 43, 44, -1, 10, -1,
2021
-1, -1, 14, 51, 16, 17, -1, 19, -1, -1,
2022
-1, 59, 24, 61, 62, 63, 64, 65, 66, -1,
2023
68, -1, -1, 71, -1, -1, 74, 75, 76, 77,
2024
-1, 43, 44, -1, -1, -1, -1, -1, -1, 51,
2025
-1, -1, -1, -1, -1, -1, -1, 59, -1, 61,
2026
62, 63, 64, 65, 66, -1, 68, -1, -1, 71,
2027
72, -1, 74, 75, 76, 77, 3, 4, 5, -1,
2028
-1, -1, -1, 10, -1, -1, -1, 14, -1, 16,
2029
17, -1, 19, -1, -1, -1, -1, 24, -1, -1,
2030
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2031
-1, -1, 3, 4, 5, -1, 43, 44, -1, 10,
2032
-1, -1, -1, 14, 51, 16, 17, -1, 19, -1,
2033
-1, -1, 59, 24, 61, 62, 63, 64, 65, 66,
2034
-1, 68, 69, -1, 71, -1, -1, 74, 75, 76,
2035
77, -1, 43, 44, -1, -1, -1, -1, -1, -1,
2036
51, -1, -1, -1, -1, -1, -1, -1, 59, -1,
2037
61, 62, 63, 64, 65, 66, -1, 68, -1, -1,
2038
71, 72, -1, 74, 75, 76, 77, 3, 4, 5,
2039
-1, -1, -1, -1, 10, -1, -1, -1, 14, -1,
2040
16, 17, -1, 19, -1, -1, -1, -1, 24, -1,
2041
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2042
-1, -1, -1, 3, 4, 5, -1, 43, 44, -1,
2043
10, -1, -1, -1, 14, 51, 16, 17, -1, 19,
2044
-1, -1, -1, 59, 24, 61, 62, 63, 64, 65,
2045
66, -1, 68, -1, -1, 71, -1, -1, 74, 75,
2046
76, 77, -1, 43, 44, -1, -1, -1, -1, -1,
2047
-1, 51, -1, -1, -1, -1, -1, 22, -1, 59,
2048
-1, 61, 62, 63, 64, 65, 66, -1, 68, -1,
2049
-1, 71, -1, -1, 74, 75, 76, 77, 43, 44,
2050
-1, -1, -1, 48, 49, 50, 51, 52, 53, 54,
2051
55, 56, 57, 58, 43, 44, -1, -1, -1, 48,
2052
49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
2053
-1, -1, -1, -1, -1, -1, -1, 43, 44, -1,
2054
-1, 86, 48, 49, 50, 51, 52, 53, 54, 55,
2055
56, 57, 58, 43, 44, -1, -1, 86, 48, 49,
2056
50, 51, 52, 53, 54, 55, 56, 57, 58, -1,
2057
-1, -1, -1, -1, -1, -1, 43, 44, -1, -1,
2058
86, 48, 49, 50, 51, 52, 53, 54, 55, 56,
2059
57, 58, -1, -1, -1, -1, 86, -1, -1, -1,
2060
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2061
-1, -1, -1, -1, -1, -1, -1, -1, -1, 86
2064
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2065
symbol of state STATE-NUM. */
2066
static const yytype_uint16 yystos[] =
2068
0, 3, 4, 5, 6, 9, 10, 11, 12, 13,
2069
14, 15, 16, 17, 18, 19, 20, 21, 24, 25,
2070
26, 28, 29, 32, 43, 44, 51, 59, 61, 62,
2071
63, 64, 65, 66, 68, 71, 74, 75, 76, 77,
2072
87, 89, 93, 94, 99, 101, 103, 107, 109, 110,
2073
112, 114, 116, 118, 121, 124, 127, 130, 133, 136,
2074
139, 142, 145, 149, 150, 151, 152, 155, 160, 161,
2075
162, 163, 166, 167, 168, 169, 170, 176, 177, 178,
2076
179, 180, 184, 185, 1, 62, 87, 68, 10, 14,
2077
59, 62, 92, 93, 98, 100, 181, 62, 153, 62,
2078
156, 157, 1, 62, 87, 62, 1, 87, 98, 100,
2079
102, 106, 108, 110, 111, 113, 115, 117, 119, 122,
2080
125, 128, 131, 134, 137, 140, 143, 147, 106, 111,
2081
111, 68, 150, 68, 111, 68, 68, 147, 151, 1,
2082
87, 111, 111, 60, 185, 67, 111, 111, 147, 70,
2083
95, 96, 97, 111, 111, 111, 111, 68, 71, 73,
2084
104, 71, 73, 104, 43, 44, 48, 49, 50, 51,
2085
52, 53, 54, 55, 56, 57, 58, 86, 146, 66,
2086
78, 79, 74, 75, 45, 46, 47, 22, 23, 39,
2087
40, 80, 81, 35, 36, 37, 38, 82, 83, 84,
2088
42, 41, 85, 1, 70, 87, 0, 150, 1, 87,
2089
11, 106, 117, 120, 123, 126, 129, 132, 135, 138,
2090
141, 144, 148, 165, 98, 100, 62, 68, 60, 61,
2091
62, 63, 90, 91, 71, 73, 104, 86, 158, 1,
2092
70, 87, 158, 1, 70, 87, 1, 87, 68, 104,
2093
71, 73, 104, 43, 44, 146, 66, 78, 79, 74,
2094
75, 45, 46, 47, 22, 23, 39, 40, 80, 81,
2095
35, 36, 37, 38, 82, 83, 84, 42, 41, 85,
2096
1, 70, 87, 147, 21, 147, 147, 147, 1, 87,
2097
30, 31, 60, 150, 69, 70, 72, 72, 143, 70,
2098
69, 105, 143, 147, 62, 147, 62, 143, 111, 111,
2099
111, 113, 113, 115, 115, 115, 117, 117, 117, 117,
2100
117, 117, 119, 119, 119, 119, 122, 125, 128, 131,
2101
134, 143, 143, 62, 154, 22, 146, 23, 39, 40,
2102
80, 81, 35, 36, 37, 38, 82, 83, 84, 42,
2103
41, 85, 70, 87, 104, 68, 62, 69, 182, 67,
2104
62, 67, 67, 60, 70, 147, 62, 143, 62, 157,
2105
69, 182, 147, 62, 143, 111, 111, 111, 113, 113,
2106
115, 115, 115, 117, 117, 117, 117, 117, 117, 119,
2107
119, 119, 119, 122, 125, 128, 131, 134, 143, 143,
2108
69, 68, 69, 69, 69, 68, 151, 96, 69, 70,
2109
72, 72, 67, 22, 86, 159, 70, 87, 147, 106,
2110
144, 117, 117, 117, 117, 117, 120, 120, 120, 120,
2111
123, 126, 129, 132, 135, 144, 144, 147, 164, 69,
2112
182, 59, 69, 70, 143, 68, 143, 143, 60, 90,
2113
72, 158, 59, 69, 72, 67, 150, 147, 150, 59,
2114
171, 150, 62, 72, 143, 143, 143, 147, 144, 22,
2115
62, 164, 69, 67, 87, 59, 69, 3, 4, 5,
2116
6, 9, 10, 11, 12, 13, 14, 15, 16, 17,
2117
18, 19, 20, 21, 24, 25, 26, 28, 29, 32,
2118
43, 44, 51, 59, 61, 62, 63, 64, 65, 66,
2119
68, 71, 74, 75, 76, 77, 87, 183, 186, 190,
2120
191, 196, 198, 200, 204, 206, 207, 209, 211, 213,
2121
215, 218, 221, 224, 227, 230, 233, 236, 239, 242,
2122
246, 247, 248, 249, 252, 257, 258, 259, 260, 263,
2123
264, 265, 266, 267, 273, 274, 275, 276, 277, 281,
2124
59, 62, 69, 182, 183, 59, 143, 34, 69, 7,
2125
172, 173, 174, 69, 69, 147, 159, 87, 150, 144,
2126
164, 183, 59, 1, 62, 87, 68, 10, 14, 59,
2127
62, 189, 190, 195, 197, 278, 62, 250, 62, 253,
2128
254, 1, 62, 87, 62, 1, 87, 195, 197, 199,
2129
203, 205, 207, 208, 210, 212, 214, 216, 219, 222,
2130
225, 228, 231, 234, 237, 240, 244, 203, 208, 208,
2131
68, 247, 68, 208, 68, 68, 244, 248, 1, 87,
2132
208, 208, 60, 281, 67, 208, 208, 244, 70, 192,
2133
193, 194, 208, 208, 208, 208, 60, 68, 71, 73,
2134
201, 71, 73, 201, 43, 44, 48, 49, 50, 51,
2135
52, 53, 54, 55, 56, 57, 58, 86, 243, 66,
2136
78, 79, 74, 75, 45, 46, 47, 22, 23, 39,
2137
40, 80, 81, 35, 36, 37, 38, 82, 83, 84,
2138
42, 41, 85, 1, 70, 87, 247, 183, 59, 69,
2139
60, 183, 150, 1, 87, 147, 8, 60, 175, 174,
2140
151, 150, 69, 164, 69, 60, 183, 1, 87, 11,
2141
203, 214, 217, 220, 223, 226, 229, 232, 235, 238,
2142
241, 245, 262, 195, 197, 62, 68, 60, 61, 62,
2143
63, 187, 188, 71, 73, 201, 86, 255, 1, 70,
2144
87, 255, 1, 70, 87, 1, 87, 68, 201, 71,
2145
73, 201, 43, 44, 243, 66, 78, 79, 74, 75,
2146
45, 46, 47, 22, 23, 39, 40, 80, 81, 35,
2147
36, 37, 38, 82, 83, 84, 42, 41, 85, 1,
2148
70, 87, 244, 21, 244, 244, 244, 1, 87, 30,
2149
31, 60, 247, 69, 70, 72, 72, 240, 70, 69,
2150
202, 240, 244, 62, 244, 62, 240, 208, 208, 208,
2151
210, 210, 212, 212, 212, 214, 214, 214, 214, 214,
2152
214, 216, 216, 216, 216, 219, 222, 225, 228, 231,
2153
240, 240, 60, 183, 59, 60, 67, 67, 172, 31,
2154
150, 69, 150, 60, 62, 251, 22, 243, 23, 39,
2155
40, 80, 81, 35, 36, 37, 38, 82, 83, 84,
2156
42, 41, 85, 70, 87, 201, 68, 62, 69, 279,
2157
67, 62, 67, 67, 60, 70, 244, 62, 240, 62,
2158
254, 69, 279, 244, 62, 240, 208, 208, 208, 210,
2159
210, 212, 212, 212, 214, 214, 214, 214, 214, 214,
2160
216, 216, 216, 216, 219, 222, 225, 228, 231, 240,
2161
240, 69, 68, 69, 69, 69, 68, 248, 193, 69,
2162
70, 72, 72, 67, 60, 183, 185, 185, 60, 151,
2163
150, 22, 86, 256, 70, 87, 244, 203, 241, 214,
2164
214, 214, 214, 214, 217, 217, 217, 217, 220, 223,
2165
226, 229, 232, 241, 241, 244, 261, 69, 279, 59,
2166
69, 70, 240, 68, 240, 240, 60, 187, 72, 255,
2167
59, 69, 72, 67, 247, 244, 247, 59, 268, 247,
2168
62, 72, 240, 240, 240, 60, 244, 241, 22, 62,
2169
261, 69, 67, 87, 59, 69, 280, 281, 59, 62,
2170
69, 279, 280, 59, 240, 34, 69, 7, 269, 270,
2171
271, 69, 69, 244, 256, 87, 247, 241, 261, 280,
2172
59, 60, 280, 59, 69, 60, 280, 247, 1, 87,
2173
244, 8, 60, 272, 271, 248, 247, 69, 261, 69,
2174
60, 280, 60, 280, 59, 60, 67, 67, 269, 31,
2175
247, 69, 247, 60, 60, 280, 281, 281, 60, 248,
2179
#define yyerrok (yyerrstatus = 0)
2180
#define yyclearin (yychar = YYEMPTY)
2181
#define YYEMPTY (-2)
2184
#define YYACCEPT goto yyacceptlab
2185
#define YYABORT goto yyabortlab
2186
#define YYERROR goto yyerrorlab
2189
/* Like YYERROR except do call yyerror. This remains here temporarily
2190
to ease the transition to the new meaning of YYERROR, for GCC.
2191
Once GCC version 2 has supplanted version 1, this can go. */
2193
#define YYFAIL goto yyerrlab
2195
#define YYRECOVERING() (!!yyerrstatus)
2197
#define YYBACKUP(Token, Value) \
2199
if (yychar == YYEMPTY && yylen == 1) \
2203
yytoken = YYTRANSLATE (yychar); \
2209
yyerror (YY_("syntax error: cannot back up")); \
2216
#define YYERRCODE 256
2219
/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2220
If N is 0, then set CURRENT to the empty location which ends
2221
the previous symbol: RHS[0] (always defined). */
2223
#define YYRHSLOC(Rhs, K) ((Rhs)[K])
2224
#ifndef YYLLOC_DEFAULT
2225
# define YYLLOC_DEFAULT(Current, Rhs, N) \
2229
(Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
2230
(Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
2231
(Current).last_line = YYRHSLOC (Rhs, N).last_line; \
2232
(Current).last_column = YYRHSLOC (Rhs, N).last_column; \
2236
(Current).first_line = (Current).last_line = \
2237
YYRHSLOC (Rhs, 0).last_line; \
2238
(Current).first_column = (Current).last_column = \
2239
YYRHSLOC (Rhs, 0).last_column; \
2245
/* YY_LOCATION_PRINT -- Print the location on the stream.
2246
This macro was not mandated originally: define only if we know
2247
we won't break user code: when these are the locations we know. */
2249
#ifndef YY_LOCATION_PRINT
2250
# if YYLTYPE_IS_TRIVIAL
2251
# define YY_LOCATION_PRINT(File, Loc) \
2252
fprintf (File, "%d.%d-%d.%d", \
2253
(Loc).first_line, (Loc).first_column, \
2254
(Loc).last_line, (Loc).last_column)
2256
# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2261
/* YYLEX -- calling `yylex' with the right arguments. */
2264
# define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
2266
# define YYLEX yylex (&yylval, &yylloc)
2269
/* Enable debugging if requested. */
2273
# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2274
# define YYFPRINTF fprintf
2277
# define YYDPRINTF(Args) \
2283
# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
2287
YYFPRINTF (stderr, "%s ", Title); \
2288
yy_symbol_print (stderr, \
2289
Type, Value, Location); \
2290
YYFPRINTF (stderr, "\n"); \
2295
/*--------------------------------.
2296
| Print this symbol on YYOUTPUT. |
2297
`--------------------------------*/
2300
#if (defined __STDC__ || defined __C99__FUNC__ \
2301
|| defined __cplusplus || defined _MSC_VER)
2303
yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp)
2306
yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp)
2309
YYSTYPE const * const yyvaluep;
2310
YYLTYPE const * const yylocationp;
2315
YYUSE (yylocationp);
2317
if (yytype < YYNTOKENS)
2318
YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
2330
/*--------------------------------.
2331
| Print this symbol on YYOUTPUT. |
2332
`--------------------------------*/
2334
#if (defined __STDC__ || defined __C99__FUNC__ \
2335
|| defined __cplusplus || defined _MSC_VER)
2337
yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp)
2340
yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp)
2343
YYSTYPE const * const yyvaluep;
2344
YYLTYPE const * const yylocationp;
2347
if (yytype < YYNTOKENS)
2348
YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
2350
YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
2352
YY_LOCATION_PRINT (yyoutput, *yylocationp);
2353
YYFPRINTF (yyoutput, ": ");
2354
yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp);
2355
YYFPRINTF (yyoutput, ")");
2358
/*------------------------------------------------------------------.
2359
| yy_stack_print -- Print the state stack from its BOTTOM up to its |
2361
`------------------------------------------------------------------*/
2363
#if (defined __STDC__ || defined __C99__FUNC__ \
2364
|| defined __cplusplus || defined _MSC_VER)
2366
yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
2369
yy_stack_print (bottom, top)
2370
yytype_int16 *bottom;
2374
YYFPRINTF (stderr, "Stack now");
2375
for (; bottom <= top; ++bottom)
2376
YYFPRINTF (stderr, " %d", *bottom);
2377
YYFPRINTF (stderr, "\n");
2380
# define YY_STACK_PRINT(Bottom, Top) \
2383
yy_stack_print ((Bottom), (Top)); \
2387
/*------------------------------------------------.
2388
| Report that the YYRULE is going to be reduced. |
2389
`------------------------------------------------*/
2391
#if (defined __STDC__ || defined __C99__FUNC__ \
2392
|| defined __cplusplus || defined _MSC_VER)
2394
yy_reduce_print (YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule)
2397
yy_reduce_print (yyvsp, yylsp, yyrule)
2403
int yynrhs = yyr2[yyrule];
2405
unsigned long int yylno = yyrline[yyrule];
2406
YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
2408
/* The symbols being reduced. */
2409
for (yyi = 0; yyi < yynrhs; yyi++)
2411
fprintf (stderr, " $%d = ", yyi + 1);
2412
yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
2413
&(yyvsp[(yyi + 1) - (yynrhs)])
2414
, &(yylsp[(yyi + 1) - (yynrhs)]) );
2415
fprintf (stderr, "\n");
2419
# define YY_REDUCE_PRINT(Rule) \
2422
yy_reduce_print (yyvsp, yylsp, Rule); \
2425
/* Nonzero means print parse trace. It is left uninitialized so that
2426
multiple parsers can coexist. */
2428
#else /* !YYDEBUG */
2429
# define YYDPRINTF(Args)
2430
# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
2431
# define YY_STACK_PRINT(Bottom, Top)
2432
# define YY_REDUCE_PRINT(Rule)
2433
#endif /* !YYDEBUG */
2436
/* YYINITDEPTH -- initial size of the parser's stacks. */
2438
# define YYINITDEPTH 200
2441
/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2442
if the built-in stack extension method is used).
2444
Do not make this value too large; the results are undefined if
2445
YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
2446
evaluated with infinite-precision integer arithmetic. */
2449
# define YYMAXDEPTH 10000
2457
# if defined __GLIBC__ && defined _STRING_H
2458
# define yystrlen strlen
2460
/* Return the length of YYSTR. */
2461
#if (defined __STDC__ || defined __C99__FUNC__ \
2462
|| defined __cplusplus || defined _MSC_VER)
2464
yystrlen (const char *yystr)
2472
for (yylen = 0; yystr[yylen]; yylen++)
2480
# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2481
# define yystpcpy stpcpy
2483
/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2485
#if (defined __STDC__ || defined __C99__FUNC__ \
2486
|| defined __cplusplus || defined _MSC_VER)
2488
yystpcpy (char *yydest, const char *yysrc)
2491
yystpcpy (yydest, yysrc)
2497
const char *yys = yysrc;
2499
while ((*yyd++ = *yys++) != '\0')
2508
/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2509
quotes and backslashes, so that it's suitable for yyerror. The
2510
heuristic is that double-quoting is unnecessary unless the string
2511
contains an apostrophe, a comma, or backslash (other than
2512
backslash-backslash). YYSTR is taken from yytname. If YYRES is
2513
null, do not copy; instead, return the length of what the result
2516
yytnamerr (char *yyres, const char *yystr)
2521
char const *yyp = yystr;
2528
goto do_not_strip_quotes;
2532
goto do_not_strip_quotes;
2545
do_not_strip_quotes: ;
2549
return yystrlen (yystr);
2551
return yystpcpy (yyres, yystr) - yyres;
2555
/* Copy into YYRESULT an error message about the unexpected token
2556
YYCHAR while in state YYSTATE. Return the number of bytes copied,
2557
including the terminating null byte. If YYRESULT is null, do not
2558
copy anything; just return the number of bytes that would be
2559
copied. As a special case, return 0 if an ordinary "syntax error"
2560
message will do. Return YYSIZE_MAXIMUM if overflow occurs during
2561
size calculation. */
2563
yysyntax_error (char *yyresult, int yystate, int yychar)
2565
int yyn = yypact[yystate];
2567
if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
2571
int yytype = YYTRANSLATE (yychar);
2572
YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
2573
YYSIZE_T yysize = yysize0;
2575
int yysize_overflow = 0;
2576
enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2577
char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2581
/* This is so xgettext sees the translatable formats that are
2582
constructed on the fly. */
2583
YY_("syntax error, unexpected %s");
2584
YY_("syntax error, unexpected %s, expecting %s");
2585
YY_("syntax error, unexpected %s, expecting %s or %s");
2586
YY_("syntax error, unexpected %s, expecting %s or %s or %s");
2587
YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
2591
static char const yyunexpected[] = "syntax error, unexpected %s";
2592
static char const yyexpecting[] = ", expecting %s";
2593
static char const yyor[] = " or %s";
2594
char yyformat[sizeof yyunexpected
2595
+ sizeof yyexpecting - 1
2596
+ ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
2597
* (sizeof yyor - 1))];
2598
char const *yyprefix = yyexpecting;
2600
/* Start YYX at -YYN if negative to avoid negative indexes in
2602
int yyxbegin = yyn < 0 ? -yyn : 0;
2604
/* Stay within bounds of both yycheck and yytname. */
2605
int yychecklim = YYLAST - yyn + 1;
2606
int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
2609
yyarg[0] = yytname[yytype];
2610
yyfmt = yystpcpy (yyformat, yyunexpected);
2612
for (yyx = yyxbegin; yyx < yyxend; ++yyx)
2613
if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
2615
if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
2619
yyformat[sizeof yyunexpected - 1] = '\0';
2622
yyarg[yycount++] = yytname[yyx];
2623
yysize1 = yysize + yytnamerr (0, yytname[yyx]);
2624
yysize_overflow |= (yysize1 < yysize);
2626
yyfmt = yystpcpy (yyfmt, yyprefix);
2630
yyf = YY_(yyformat);
2631
yysize1 = yysize + yystrlen (yyf);
2632
yysize_overflow |= (yysize1 < yysize);
2635
if (yysize_overflow)
2636
return YYSIZE_MAXIMUM;
2640
/* Avoid sprintf, as that infringes on the user's name space.
2641
Don't have undefined behavior even if the translation
2642
produced a string with the wrong number of "%s"s. */
2643
char *yyp = yyresult;
2645
while ((*yyp = *yyf) != '\0')
2647
if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
2649
yyp += yytnamerr (yyp, yyarg[yyi++]);
2662
#endif /* YYERROR_VERBOSE */
2665
/*-----------------------------------------------.
2666
| Release the memory associated to this symbol. |
2667
`-----------------------------------------------*/
2670
#if (defined __STDC__ || defined __C99__FUNC__ \
2671
|| defined __cplusplus || defined _MSC_VER)
2673
yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp)
2676
yydestruct (yymsg, yytype, yyvaluep, yylocationp)
2680
YYLTYPE *yylocationp;
2684
YYUSE (yylocationp);
2688
YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2699
/* Prevent warnings from -Wmissing-prototypes. */
2701
#ifdef YYPARSE_PARAM
2702
#if defined __STDC__ || defined __cplusplus
2703
int yyparse (void *YYPARSE_PARAM);
2707
#else /* ! YYPARSE_PARAM */
2708
#if defined __STDC__ || defined __cplusplus
2713
#endif /* ! YYPARSE_PARAM */
2724
#ifdef YYPARSE_PARAM
2725
#if (defined __STDC__ || defined __C99__FUNC__ \
2726
|| defined __cplusplus || defined _MSC_VER)
2728
yyparse (void *YYPARSE_PARAM)
2731
yyparse (YYPARSE_PARAM)
2732
void *YYPARSE_PARAM;
2734
#else /* ! YYPARSE_PARAM */
2735
#if (defined __STDC__ || defined __C99__FUNC__ \
2736
|| defined __cplusplus || defined _MSC_VER)
2746
/* The look-ahead symbol. */
2749
/* The semantic value of the look-ahead symbol. */
2752
/* Number of syntax errors so far. */
2754
/* Location data for the look-ahead symbol. */
2760
/* Number of tokens to shift before error messages enabled. */
2762
/* Look-ahead token as an internal (translated) token number. */
2765
/* Buffer for error messages, and its allocated size. */
2767
char *yymsg = yymsgbuf;
2768
YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
2771
/* Three stacks and their tools:
2772
`yyss': related to states,
2773
`yyvs': related to semantic values,
2774
`yyls': related to locations.
2776
Refer to the stacks thru separate pointers, to allow yyoverflow
2777
to reallocate them elsewhere. */
2779
/* The state stack. */
2780
yytype_int16 yyssa[YYINITDEPTH];
2781
yytype_int16 *yyss = yyssa;
2782
yytype_int16 *yyssp;
2784
/* The semantic value stack. */
2785
YYSTYPE yyvsa[YYINITDEPTH];
2786
YYSTYPE *yyvs = yyvsa;
2789
/* The location stack. */
2790
YYLTYPE yylsa[YYINITDEPTH];
2791
YYLTYPE *yyls = yylsa;
2793
/* The locations where the error started and ended. */
2794
YYLTYPE yyerror_range[2];
2796
#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
2798
YYSIZE_T yystacksize = YYINITDEPTH;
2800
/* The variables used to return semantic value and location from the
2805
/* The number of symbols on the RHS of the reduced rule.
2806
Keep to zero when no symbol should be popped. */
2809
YYDPRINTF ((stderr, "Starting parse\n"));
2814
yychar = YYEMPTY; /* Cause a token to be read. */
2816
/* Initialize stack pointers.
2817
Waste one element of value and location stack
2818
so that they stay on the same level as the state stack.
2819
The wasted elements are never initialized. */
2824
#if YYLTYPE_IS_TRIVIAL
2825
/* Initialize the default location before parsing starts. */
2826
yylloc.first_line = yylloc.last_line = 1;
2827
yylloc.first_column = yylloc.last_column = 0;
2832
/*------------------------------------------------------------.
2833
| yynewstate -- Push a new state, which is found in yystate. |
2834
`------------------------------------------------------------*/
2836
/* In all cases, when you get here, the value and location stacks
2837
have just been pushed. So pushing a state here evens the stacks. */
2843
if (yyss + yystacksize - 1 <= yyssp)
2845
/* Get the current used size of the three stacks, in elements. */
2846
YYSIZE_T yysize = yyssp - yyss + 1;
2850
/* Give user a chance to reallocate the stack. Use copies of
2851
these so that the &'s don't force the real ones into
2853
YYSTYPE *yyvs1 = yyvs;
2854
yytype_int16 *yyss1 = yyss;
2855
YYLTYPE *yyls1 = yyls;
2857
/* Each stack pointer address is followed by the size of the
2858
data in use in that stack, in bytes. This used to be a
2859
conditional around just the two extra args, but that might
2860
be undefined if yyoverflow is a macro. */
2861
yyoverflow (YY_("memory exhausted"),
2862
&yyss1, yysize * sizeof (*yyssp),
2863
&yyvs1, yysize * sizeof (*yyvsp),
2864
&yyls1, yysize * sizeof (*yylsp),
2870
#else /* no yyoverflow */
2871
# ifndef YYSTACK_RELOCATE
2872
goto yyexhaustedlab;
2874
/* Extend the stack our own way. */
2875
if (YYMAXDEPTH <= yystacksize)
2876
goto yyexhaustedlab;
2878
if (YYMAXDEPTH < yystacksize)
2879
yystacksize = YYMAXDEPTH;
2882
yytype_int16 *yyss1 = yyss;
2883
union yyalloc *yyptr =
2884
(union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2886
goto yyexhaustedlab;
2887
YYSTACK_RELOCATE (yyss);
2888
YYSTACK_RELOCATE (yyvs);
2889
YYSTACK_RELOCATE (yyls);
2890
# undef YYSTACK_RELOCATE
2892
YYSTACK_FREE (yyss1);
2895
#endif /* no yyoverflow */
2897
yyssp = yyss + yysize - 1;
2898
yyvsp = yyvs + yysize - 1;
2899
yylsp = yyls + yysize - 1;
2901
YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2902
(unsigned long int) yystacksize));
2904
if (yyss + yystacksize - 1 <= yyssp)
2908
YYDPRINTF ((stderr, "Entering state %d\n", yystate));
2917
/* Do appropriate processing given the current state. Read a
2918
look-ahead token if we need one and don't already have one. */
2920
/* First try to decide what to do without reference to look-ahead token. */
2921
yyn = yypact[yystate];
2922
if (yyn == YYPACT_NINF)
2925
/* Not known => get a look-ahead token if don't already have one. */
2927
/* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
2928
if (yychar == YYEMPTY)
2930
YYDPRINTF ((stderr, "Reading a token: "));
2934
if (yychar <= YYEOF)
2936
yychar = yytoken = YYEOF;
2937
YYDPRINTF ((stderr, "Now at end of input.\n"));
2941
yytoken = YYTRANSLATE (yychar);
2942
YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
2945
/* If the proper action on seeing token YYTOKEN is to reduce or to
2946
detect an error, take that action. */
2948
if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
2953
if (yyn == 0 || yyn == YYTABLE_NINF)
2962
/* Count tokens shifted since error; after three, turn off error
2967
/* Shift the look-ahead token. */
2968
YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
2970
/* Discard the shifted token unless it is eof. */
2971
if (yychar != YYEOF)
2980
/*-----------------------------------------------------------.
2981
| yydefault -- do the default action for the current state. |
2982
`-----------------------------------------------------------*/
2984
yyn = yydefact[yystate];
2990
/*-----------------------------.
2991
| yyreduce -- Do a reduction. |
2992
`-----------------------------*/
2994
/* yyn is the number of a rule to reduce with. */
2997
/* If YYLEN is nonzero, implement the default value of the action:
3000
Otherwise, the following line sets YYVAL to garbage.
3001
This behavior is undocumented and Bison
3002
users should not rely upon it. Assigning to YYVAL
3003
unconditionally makes the parser a bit smaller, and it avoids a
3004
GCC warning that YYVAL may be used uninitialized. */
3005
yyval = yyvsp[1-yylen];
3007
/* Default location. */
3008
YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
3009
YY_REDUCE_PRINT (yyn);
3013
#line 293 "../parser/Grammar.y"
3014
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) NullNode(GLOBAL_DATA), 0, 1); ;}
3018
#line 294 "../parser/Grammar.y"
3019
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) BooleanNode(GLOBAL_DATA, true), 0, 1); ;}
3023
#line 295 "../parser/Grammar.y"
3024
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) BooleanNode(GLOBAL_DATA, false), 0, 1); ;}
3028
#line 296 "../parser/Grammar.y"
3029
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeNumberNode(GLOBAL_DATA, (yyvsp[(1) - (1)].doubleValue)), 0, 1); ;}
3033
#line 297 "../parser/Grammar.y"
3034
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) StringNode(GLOBAL_DATA, *(yyvsp[(1) - (1)].ident)), 0, 1); ;}
3038
#line 298 "../parser/Grammar.y"
3040
Lexer& l = *GLOBAL_DATA->lexer;
3041
const Identifier* pattern;
3042
const Identifier* flags;
3043
if (!l.scanRegExp(pattern, flags))
3045
RegExpNode* node = new (GLOBAL_DATA) RegExpNode(GLOBAL_DATA, *pattern, *flags);
3046
int size = pattern->size() + 2; // + 2 for the two /'s
3047
setExceptionLocation(node, (yylsp[(1) - (1)]).first_column, (yylsp[(1) - (1)]).first_column + size, (yylsp[(1) - (1)]).first_column + size);
3048
(yyval.expressionNode) = createNodeInfo<ExpressionNode*>(node, 0, 0);
3053
#line 309 "../parser/Grammar.y"
3055
Lexer& l = *GLOBAL_DATA->lexer;
3056
const Identifier* pattern;
3057
const Identifier* flags;
3058
if (!l.scanRegExp(pattern, flags, '='))
3060
RegExpNode* node = new (GLOBAL_DATA) RegExpNode(GLOBAL_DATA, *pattern, *flags);
3061
int size = pattern->size() + 2; // + 2 for the two /'s
3062
setExceptionLocation(node, (yylsp[(1) - (1)]).first_column, (yylsp[(1) - (1)]).first_column + size, (yylsp[(1) - (1)]).first_column + size);
3063
(yyval.expressionNode) = createNodeInfo<ExpressionNode*>(node, 0, 0);
3068
#line 323 "../parser/Grammar.y"
3069
{ (yyval.propertyNode) = createNodeInfo<PropertyNode*>(new (GLOBAL_DATA) PropertyNode(GLOBAL_DATA, *(yyvsp[(1) - (3)].ident), (yyvsp[(3) - (3)].expressionNode).m_node, PropertyNode::Constant), (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3073
#line 324 "../parser/Grammar.y"
3074
{ (yyval.propertyNode) = createNodeInfo<PropertyNode*>(new (GLOBAL_DATA) PropertyNode(GLOBAL_DATA, *(yyvsp[(1) - (3)].ident), (yyvsp[(3) - (3)].expressionNode).m_node, PropertyNode::Constant), (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3078
#line 325 "../parser/Grammar.y"
3079
{ (yyval.propertyNode) = createNodeInfo<PropertyNode*>(new (GLOBAL_DATA) PropertyNode(GLOBAL_DATA, (yyvsp[(1) - (3)].doubleValue), (yyvsp[(3) - (3)].expressionNode).m_node, PropertyNode::Constant), (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3083
#line 326 "../parser/Grammar.y"
3084
{ (yyval.propertyNode) = createNodeInfo<PropertyNode*>(makeGetterOrSetterPropertyNode(GLOBAL_DATA, *(yyvsp[(1) - (7)].ident), *(yyvsp[(2) - (7)].ident), 0, (yyvsp[(6) - (7)].functionBodyNode), GLOBAL_DATA->lexer->sourceCode((yyvsp[(5) - (7)].intValue), (yyvsp[(7) - (7)].intValue), (yylsp[(5) - (7)]).first_line)), ClosureFeature, 0); setStatementLocation((yyvsp[(6) - (7)].functionBodyNode), (yylsp[(5) - (7)]), (yylsp[(7) - (7)])); if (!(yyval.propertyNode).m_node) YYABORT; ;}
3088
#line 328 "../parser/Grammar.y"
3090
(yyval.propertyNode) = createNodeInfo<PropertyNode*>(makeGetterOrSetterPropertyNode(GLOBAL_DATA, *(yyvsp[(1) - (8)].ident), *(yyvsp[(2) - (8)].ident), (yyvsp[(4) - (8)].parameterList).m_node.head, (yyvsp[(7) - (8)].functionBodyNode), GLOBAL_DATA->lexer->sourceCode((yyvsp[(6) - (8)].intValue), (yyvsp[(8) - (8)].intValue), (yylsp[(6) - (8)]).first_line)), (yyvsp[(4) - (8)].parameterList).m_features | ClosureFeature, 0);
3091
if ((yyvsp[(4) - (8)].parameterList).m_features & ArgumentsFeature)
3092
(yyvsp[(7) - (8)].functionBodyNode)->setUsesArguments();
3093
setStatementLocation((yyvsp[(7) - (8)].functionBodyNode), (yylsp[(6) - (8)]), (yylsp[(8) - (8)]));
3094
if (!(yyval.propertyNode).m_node)
3100
#line 339 "../parser/Grammar.y"
3101
{ (yyval.propertyList).m_node.head = new (GLOBAL_DATA) PropertyListNode(GLOBAL_DATA, (yyvsp[(1) - (1)].propertyNode).m_node);
3102
(yyval.propertyList).m_node.tail = (yyval.propertyList).m_node.head;
3103
(yyval.propertyList).m_features = (yyvsp[(1) - (1)].propertyNode).m_features;
3104
(yyval.propertyList).m_numConstants = (yyvsp[(1) - (1)].propertyNode).m_numConstants; ;}
3108
#line 343 "../parser/Grammar.y"
3109
{ (yyval.propertyList).m_node.head = (yyvsp[(1) - (3)].propertyList).m_node.head;
3110
(yyval.propertyList).m_node.tail = new (GLOBAL_DATA) PropertyListNode(GLOBAL_DATA, (yyvsp[(3) - (3)].propertyNode).m_node, (yyvsp[(1) - (3)].propertyList).m_node.tail);
3111
(yyval.propertyList).m_features = (yyvsp[(1) - (3)].propertyList).m_features | (yyvsp[(3) - (3)].propertyNode).m_features;
3112
(yyval.propertyList).m_numConstants = (yyvsp[(1) - (3)].propertyList).m_numConstants + (yyvsp[(3) - (3)].propertyNode).m_numConstants; ;}
3116
#line 351 "../parser/Grammar.y"
3117
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) ObjectLiteralNode(GLOBAL_DATA), 0, 0); ;}
3121
#line 352 "../parser/Grammar.y"
3122
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) ObjectLiteralNode(GLOBAL_DATA, (yyvsp[(2) - (3)].propertyList).m_node.head), (yyvsp[(2) - (3)].propertyList).m_features, (yyvsp[(2) - (3)].propertyList).m_numConstants); ;}
3126
#line 354 "../parser/Grammar.y"
3127
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) ObjectLiteralNode(GLOBAL_DATA, (yyvsp[(2) - (4)].propertyList).m_node.head), (yyvsp[(2) - (4)].propertyList).m_features, (yyvsp[(2) - (4)].propertyList).m_numConstants); ;}
3131
#line 358 "../parser/Grammar.y"
3132
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) ThisNode(GLOBAL_DATA), ThisFeature, 0); ;}
3136
#line 361 "../parser/Grammar.y"
3137
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) ResolveNode(GLOBAL_DATA, *(yyvsp[(1) - (1)].ident), (yylsp[(1) - (1)]).first_column), (*(yyvsp[(1) - (1)].ident) == GLOBAL_DATA->propertyNames->arguments) ? ArgumentsFeature : 0, 0); ;}
3141
#line 362 "../parser/Grammar.y"
3142
{ (yyval.expressionNode) = (yyvsp[(2) - (3)].expressionNode); ;}
3146
#line 366 "../parser/Grammar.y"
3147
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) ArrayNode(GLOBAL_DATA, (yyvsp[(2) - (3)].intValue)), 0, (yyvsp[(2) - (3)].intValue) ? 1 : 0); ;}
3151
#line 367 "../parser/Grammar.y"
3152
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) ArrayNode(GLOBAL_DATA, (yyvsp[(2) - (3)].elementList).m_node.head), (yyvsp[(2) - (3)].elementList).m_features, (yyvsp[(2) - (3)].elementList).m_numConstants); ;}
3156
#line 368 "../parser/Grammar.y"
3157
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) ArrayNode(GLOBAL_DATA, (yyvsp[(4) - (5)].intValue), (yyvsp[(2) - (5)].elementList).m_node.head), (yyvsp[(2) - (5)].elementList).m_features, (yyvsp[(4) - (5)].intValue) ? (yyvsp[(2) - (5)].elementList).m_numConstants + 1 : (yyvsp[(2) - (5)].elementList).m_numConstants); ;}
3161
#line 372 "../parser/Grammar.y"
3162
{ (yyval.elementList).m_node.head = new (GLOBAL_DATA) ElementNode(GLOBAL_DATA, (yyvsp[(1) - (2)].intValue), (yyvsp[(2) - (2)].expressionNode).m_node);
3163
(yyval.elementList).m_node.tail = (yyval.elementList).m_node.head;
3164
(yyval.elementList).m_features = (yyvsp[(2) - (2)].expressionNode).m_features;
3165
(yyval.elementList).m_numConstants = (yyvsp[(2) - (2)].expressionNode).m_numConstants; ;}
3169
#line 377 "../parser/Grammar.y"
3170
{ (yyval.elementList).m_node.head = (yyvsp[(1) - (4)].elementList).m_node.head;
3171
(yyval.elementList).m_node.tail = new (GLOBAL_DATA) ElementNode(GLOBAL_DATA, (yyvsp[(1) - (4)].elementList).m_node.tail, (yyvsp[(3) - (4)].intValue), (yyvsp[(4) - (4)].expressionNode).m_node);
3172
(yyval.elementList).m_features = (yyvsp[(1) - (4)].elementList).m_features | (yyvsp[(4) - (4)].expressionNode).m_features;
3173
(yyval.elementList).m_numConstants = (yyvsp[(1) - (4)].elementList).m_numConstants + (yyvsp[(4) - (4)].expressionNode).m_numConstants; ;}
3177
#line 384 "../parser/Grammar.y"
3178
{ (yyval.intValue) = 0; ;}
3182
#line 389 "../parser/Grammar.y"
3183
{ (yyval.intValue) = 1; ;}
3187
#line 390 "../parser/Grammar.y"
3188
{ (yyval.intValue) = (yyvsp[(1) - (2)].intValue) + 1; ;}
3192
#line 395 "../parser/Grammar.y"
3193
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>((yyvsp[(1) - (1)].funcExprNode).m_node, (yyvsp[(1) - (1)].funcExprNode).m_features, (yyvsp[(1) - (1)].funcExprNode).m_numConstants); ;}
3197
#line 396 "../parser/Grammar.y"
3198
{ BracketAccessorNode* node = new (GLOBAL_DATA) BracketAccessorNode(GLOBAL_DATA, (yyvsp[(1) - (4)].expressionNode).m_node, (yyvsp[(3) - (4)].expressionNode).m_node, (yyvsp[(3) - (4)].expressionNode).m_features & AssignFeature);
3199
setExceptionLocation(node, (yylsp[(1) - (4)]).first_column, (yylsp[(1) - (4)]).last_column, (yylsp[(4) - (4)]).last_column);
3200
(yyval.expressionNode) = createNodeInfo<ExpressionNode*>(node, (yyvsp[(1) - (4)].expressionNode).m_features | (yyvsp[(3) - (4)].expressionNode).m_features, (yyvsp[(1) - (4)].expressionNode).m_numConstants + (yyvsp[(3) - (4)].expressionNode).m_numConstants);
3205
#line 400 "../parser/Grammar.y"
3206
{ DotAccessorNode* node = new (GLOBAL_DATA) DotAccessorNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, *(yyvsp[(3) - (3)].ident));
3207
setExceptionLocation(node, (yylsp[(1) - (3)]).first_column, (yylsp[(1) - (3)]).last_column, (yylsp[(3) - (3)]).last_column);
3208
(yyval.expressionNode) = createNodeInfo<ExpressionNode*>(node, (yyvsp[(1) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants);
3213
#line 404 "../parser/Grammar.y"
3214
{ NewExprNode* node = new (GLOBAL_DATA) NewExprNode(GLOBAL_DATA, (yyvsp[(2) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].argumentsNode).m_node);
3215
setExceptionLocation(node, (yylsp[(1) - (3)]).first_column, (yylsp[(2) - (3)]).last_column, (yylsp[(3) - (3)]).last_column);
3216
(yyval.expressionNode) = createNodeInfo<ExpressionNode*>(node, (yyvsp[(2) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].argumentsNode).m_features, (yyvsp[(2) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].argumentsNode).m_numConstants);
3221
#line 412 "../parser/Grammar.y"
3222
{ BracketAccessorNode* node = new (GLOBAL_DATA) BracketAccessorNode(GLOBAL_DATA, (yyvsp[(1) - (4)].expressionNode).m_node, (yyvsp[(3) - (4)].expressionNode).m_node, (yyvsp[(3) - (4)].expressionNode).m_features & AssignFeature);
3223
setExceptionLocation(node, (yylsp[(1) - (4)]).first_column, (yylsp[(1) - (4)]).last_column, (yylsp[(4) - (4)]).last_column);
3224
(yyval.expressionNode) = createNodeInfo<ExpressionNode*>(node, (yyvsp[(1) - (4)].expressionNode).m_features | (yyvsp[(3) - (4)].expressionNode).m_features, (yyvsp[(1) - (4)].expressionNode).m_numConstants + (yyvsp[(3) - (4)].expressionNode).m_numConstants);
3229
#line 416 "../parser/Grammar.y"
3230
{ DotAccessorNode* node = new (GLOBAL_DATA) DotAccessorNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, *(yyvsp[(3) - (3)].ident));
3231
setExceptionLocation(node, (yylsp[(1) - (3)]).first_column, (yylsp[(1) - (3)]).last_column, (yylsp[(3) - (3)]).last_column);
3232
(yyval.expressionNode) = createNodeInfo<ExpressionNode*>(node, (yyvsp[(1) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants);
3237
#line 420 "../parser/Grammar.y"
3238
{ NewExprNode* node = new (GLOBAL_DATA) NewExprNode(GLOBAL_DATA, (yyvsp[(2) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].argumentsNode).m_node);
3239
setExceptionLocation(node, (yylsp[(1) - (3)]).first_column, (yylsp[(2) - (3)]).last_column, (yylsp[(3) - (3)]).last_column);
3240
(yyval.expressionNode) = createNodeInfo<ExpressionNode*>(node, (yyvsp[(2) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].argumentsNode).m_features, (yyvsp[(2) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].argumentsNode).m_numConstants);
3245
#line 428 "../parser/Grammar.y"
3246
{ NewExprNode* node = new (GLOBAL_DATA) NewExprNode(GLOBAL_DATA, (yyvsp[(2) - (2)].expressionNode).m_node);
3247
setExceptionLocation(node, (yylsp[(1) - (2)]).first_column, (yylsp[(2) - (2)]).last_column, (yylsp[(2) - (2)]).last_column);
3248
(yyval.expressionNode) = createNodeInfo<ExpressionNode*>(node, (yyvsp[(2) - (2)].expressionNode).m_features, (yyvsp[(2) - (2)].expressionNode).m_numConstants);
3253
#line 436 "../parser/Grammar.y"
3254
{ NewExprNode* node = new (GLOBAL_DATA) NewExprNode(GLOBAL_DATA, (yyvsp[(2) - (2)].expressionNode).m_node);
3255
setExceptionLocation(node, (yylsp[(1) - (2)]).first_column, (yylsp[(2) - (2)]).last_column, (yylsp[(2) - (2)]).last_column);
3256
(yyval.expressionNode) = createNodeInfo<ExpressionNode*>(node, (yyvsp[(2) - (2)].expressionNode).m_features, (yyvsp[(2) - (2)].expressionNode).m_numConstants);
3261
#line 443 "../parser/Grammar.y"
3262
{ (yyval.expressionNode) = makeFunctionCallNode(GLOBAL_DATA, (yyvsp[(1) - (2)].expressionNode), (yyvsp[(2) - (2)].argumentsNode), (yylsp[(1) - (2)]).first_column, (yylsp[(1) - (2)]).last_column, (yylsp[(2) - (2)]).last_column); ;}
3266
#line 444 "../parser/Grammar.y"
3267
{ (yyval.expressionNode) = makeFunctionCallNode(GLOBAL_DATA, (yyvsp[(1) - (2)].expressionNode), (yyvsp[(2) - (2)].argumentsNode), (yylsp[(1) - (2)]).first_column, (yylsp[(1) - (2)]).last_column, (yylsp[(2) - (2)]).last_column); ;}
3271
#line 445 "../parser/Grammar.y"
3272
{ BracketAccessorNode* node = new (GLOBAL_DATA) BracketAccessorNode(GLOBAL_DATA, (yyvsp[(1) - (4)].expressionNode).m_node, (yyvsp[(3) - (4)].expressionNode).m_node, (yyvsp[(3) - (4)].expressionNode).m_features & AssignFeature);
3273
setExceptionLocation(node, (yylsp[(1) - (4)]).first_column, (yylsp[(1) - (4)]).last_column, (yylsp[(4) - (4)]).last_column);
3274
(yyval.expressionNode) = createNodeInfo<ExpressionNode*>(node, (yyvsp[(1) - (4)].expressionNode).m_features | (yyvsp[(3) - (4)].expressionNode).m_features, (yyvsp[(1) - (4)].expressionNode).m_numConstants + (yyvsp[(3) - (4)].expressionNode).m_numConstants);
3279
#line 449 "../parser/Grammar.y"
3280
{ DotAccessorNode* node = new (GLOBAL_DATA) DotAccessorNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, *(yyvsp[(3) - (3)].ident));
3281
setExceptionLocation(node, (yylsp[(1) - (3)]).first_column, (yylsp[(1) - (3)]).last_column, (yylsp[(3) - (3)]).last_column);
3282
(yyval.expressionNode) = createNodeInfo<ExpressionNode*>(node, (yyvsp[(1) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants); ;}
3286
#line 455 "../parser/Grammar.y"
3287
{ (yyval.expressionNode) = makeFunctionCallNode(GLOBAL_DATA, (yyvsp[(1) - (2)].expressionNode), (yyvsp[(2) - (2)].argumentsNode), (yylsp[(1) - (2)]).first_column, (yylsp[(1) - (2)]).last_column, (yylsp[(2) - (2)]).last_column); ;}
3291
#line 456 "../parser/Grammar.y"
3292
{ (yyval.expressionNode) = makeFunctionCallNode(GLOBAL_DATA, (yyvsp[(1) - (2)].expressionNode), (yyvsp[(2) - (2)].argumentsNode), (yylsp[(1) - (2)]).first_column, (yylsp[(1) - (2)]).last_column, (yylsp[(2) - (2)]).last_column); ;}
3296
#line 457 "../parser/Grammar.y"
3297
{ BracketAccessorNode* node = new (GLOBAL_DATA) BracketAccessorNode(GLOBAL_DATA, (yyvsp[(1) - (4)].expressionNode).m_node, (yyvsp[(3) - (4)].expressionNode).m_node, (yyvsp[(3) - (4)].expressionNode).m_features & AssignFeature);
3298
setExceptionLocation(node, (yylsp[(1) - (4)]).first_column, (yylsp[(1) - (4)]).last_column, (yylsp[(4) - (4)]).last_column);
3299
(yyval.expressionNode) = createNodeInfo<ExpressionNode*>(node, (yyvsp[(1) - (4)].expressionNode).m_features | (yyvsp[(3) - (4)].expressionNode).m_features, (yyvsp[(1) - (4)].expressionNode).m_numConstants + (yyvsp[(3) - (4)].expressionNode).m_numConstants);
3304
#line 461 "../parser/Grammar.y"
3305
{ DotAccessorNode* node = new (GLOBAL_DATA) DotAccessorNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, *(yyvsp[(3) - (3)].ident));
3306
setExceptionLocation(node, (yylsp[(1) - (3)]).first_column, (yylsp[(1) - (3)]).last_column, (yylsp[(3) - (3)]).last_column);
3307
(yyval.expressionNode) = createNodeInfo<ExpressionNode*>(node, (yyvsp[(1) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants);
3312
#line 468 "../parser/Grammar.y"
3313
{ (yyval.argumentsNode) = createNodeInfo<ArgumentsNode*>(new (GLOBAL_DATA) ArgumentsNode(GLOBAL_DATA), 0, 0); ;}
3317
#line 469 "../parser/Grammar.y"
3318
{ (yyval.argumentsNode) = createNodeInfo<ArgumentsNode*>(new (GLOBAL_DATA) ArgumentsNode(GLOBAL_DATA, (yyvsp[(2) - (3)].argumentList).m_node.head), (yyvsp[(2) - (3)].argumentList).m_features, (yyvsp[(2) - (3)].argumentList).m_numConstants); ;}
3322
#line 473 "../parser/Grammar.y"
3323
{ (yyval.argumentList).m_node.head = new (GLOBAL_DATA) ArgumentListNode(GLOBAL_DATA, (yyvsp[(1) - (1)].expressionNode).m_node);
3324
(yyval.argumentList).m_node.tail = (yyval.argumentList).m_node.head;
3325
(yyval.argumentList).m_features = (yyvsp[(1) - (1)].expressionNode).m_features;
3326
(yyval.argumentList).m_numConstants = (yyvsp[(1) - (1)].expressionNode).m_numConstants; ;}
3330
#line 477 "../parser/Grammar.y"
3331
{ (yyval.argumentList).m_node.head = (yyvsp[(1) - (3)].argumentList).m_node.head;
3332
(yyval.argumentList).m_node.tail = new (GLOBAL_DATA) ArgumentListNode(GLOBAL_DATA, (yyvsp[(1) - (3)].argumentList).m_node.tail, (yyvsp[(3) - (3)].expressionNode).m_node);
3333
(yyval.argumentList).m_features = (yyvsp[(1) - (3)].argumentList).m_features | (yyvsp[(3) - (3)].expressionNode).m_features;
3334
(yyval.argumentList).m_numConstants = (yyvsp[(1) - (3)].argumentList).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants; ;}
3338
#line 495 "../parser/Grammar.y"
3339
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makePostfixNode(GLOBAL_DATA, (yyvsp[(1) - (2)].expressionNode).m_node, OpPlusPlus, (yylsp[(1) - (2)]).first_column, (yylsp[(1) - (2)]).last_column, (yylsp[(2) - (2)]).last_column), (yyvsp[(1) - (2)].expressionNode).m_features | AssignFeature, (yyvsp[(1) - (2)].expressionNode).m_numConstants); ;}
3343
#line 496 "../parser/Grammar.y"
3344
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makePostfixNode(GLOBAL_DATA, (yyvsp[(1) - (2)].expressionNode).m_node, OpMinusMinus, (yylsp[(1) - (2)]).first_column, (yylsp[(1) - (2)]).last_column, (yylsp[(2) - (2)]).last_column), (yyvsp[(1) - (2)].expressionNode).m_features | AssignFeature, (yyvsp[(1) - (2)].expressionNode).m_numConstants); ;}
3348
#line 501 "../parser/Grammar.y"
3349
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makePostfixNode(GLOBAL_DATA, (yyvsp[(1) - (2)].expressionNode).m_node, OpPlusPlus, (yylsp[(1) - (2)]).first_column, (yylsp[(1) - (2)]).last_column, (yylsp[(2) - (2)]).last_column), (yyvsp[(1) - (2)].expressionNode).m_features | AssignFeature, (yyvsp[(1) - (2)].expressionNode).m_numConstants); ;}
3353
#line 502 "../parser/Grammar.y"
3354
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makePostfixNode(GLOBAL_DATA, (yyvsp[(1) - (2)].expressionNode).m_node, OpMinusMinus, (yylsp[(1) - (2)]).first_column, (yylsp[(1) - (2)]).last_column, (yylsp[(2) - (2)]).last_column), (yyvsp[(1) - (2)].expressionNode).m_features | AssignFeature, (yyvsp[(1) - (2)].expressionNode).m_numConstants); ;}
3358
#line 506 "../parser/Grammar.y"
3359
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeDeleteNode(GLOBAL_DATA, (yyvsp[(2) - (2)].expressionNode).m_node, (yylsp[(1) - (2)]).first_column, (yylsp[(2) - (2)]).last_column, (yylsp[(2) - (2)]).last_column), (yyvsp[(2) - (2)].expressionNode).m_features, (yyvsp[(2) - (2)].expressionNode).m_numConstants); ;}
3363
#line 507 "../parser/Grammar.y"
3364
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) VoidNode(GLOBAL_DATA, (yyvsp[(2) - (2)].expressionNode).m_node), (yyvsp[(2) - (2)].expressionNode).m_features, (yyvsp[(2) - (2)].expressionNode).m_numConstants + 1); ;}
3368
#line 508 "../parser/Grammar.y"
3369
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeTypeOfNode(GLOBAL_DATA, (yyvsp[(2) - (2)].expressionNode).m_node), (yyvsp[(2) - (2)].expressionNode).m_features, (yyvsp[(2) - (2)].expressionNode).m_numConstants); ;}
3373
#line 509 "../parser/Grammar.y"
3374
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makePrefixNode(GLOBAL_DATA, (yyvsp[(2) - (2)].expressionNode).m_node, OpPlusPlus, (yylsp[(1) - (2)]).first_column, (yylsp[(2) - (2)]).first_column + 1, (yylsp[(2) - (2)]).last_column), (yyvsp[(2) - (2)].expressionNode).m_features | AssignFeature, (yyvsp[(2) - (2)].expressionNode).m_numConstants); ;}
3378
#line 510 "../parser/Grammar.y"
3379
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makePrefixNode(GLOBAL_DATA, (yyvsp[(2) - (2)].expressionNode).m_node, OpPlusPlus, (yylsp[(1) - (2)]).first_column, (yylsp[(2) - (2)]).first_column + 1, (yylsp[(2) - (2)]).last_column), (yyvsp[(2) - (2)].expressionNode).m_features | AssignFeature, (yyvsp[(2) - (2)].expressionNode).m_numConstants); ;}
3383
#line 511 "../parser/Grammar.y"
3384
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makePrefixNode(GLOBAL_DATA, (yyvsp[(2) - (2)].expressionNode).m_node, OpMinusMinus, (yylsp[(1) - (2)]).first_column, (yylsp[(2) - (2)]).first_column + 1, (yylsp[(2) - (2)]).last_column), (yyvsp[(2) - (2)].expressionNode).m_features | AssignFeature, (yyvsp[(2) - (2)].expressionNode).m_numConstants); ;}
3388
#line 512 "../parser/Grammar.y"
3389
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makePrefixNode(GLOBAL_DATA, (yyvsp[(2) - (2)].expressionNode).m_node, OpMinusMinus, (yylsp[(1) - (2)]).first_column, (yylsp[(2) - (2)]).first_column + 1, (yylsp[(2) - (2)]).last_column), (yyvsp[(2) - (2)].expressionNode).m_features | AssignFeature, (yyvsp[(2) - (2)].expressionNode).m_numConstants); ;}
3393
#line 513 "../parser/Grammar.y"
3394
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) UnaryPlusNode(GLOBAL_DATA, (yyvsp[(2) - (2)].expressionNode).m_node), (yyvsp[(2) - (2)].expressionNode).m_features, (yyvsp[(2) - (2)].expressionNode).m_numConstants); ;}
3398
#line 514 "../parser/Grammar.y"
3399
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeNegateNode(GLOBAL_DATA, (yyvsp[(2) - (2)].expressionNode).m_node), (yyvsp[(2) - (2)].expressionNode).m_features, (yyvsp[(2) - (2)].expressionNode).m_numConstants); ;}
3403
#line 515 "../parser/Grammar.y"
3404
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeBitwiseNotNode(GLOBAL_DATA, (yyvsp[(2) - (2)].expressionNode).m_node), (yyvsp[(2) - (2)].expressionNode).m_features, (yyvsp[(2) - (2)].expressionNode).m_numConstants); ;}
3408
#line 516 "../parser/Grammar.y"
3409
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) LogicalNotNode(GLOBAL_DATA, (yyvsp[(2) - (2)].expressionNode).m_node), (yyvsp[(2) - (2)].expressionNode).m_features, (yyvsp[(2) - (2)].expressionNode).m_numConstants); ;}
3413
#line 530 "../parser/Grammar.y"
3414
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeMultNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3418
#line 531 "../parser/Grammar.y"
3419
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeDivNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3423
#line 532 "../parser/Grammar.y"
3424
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) ModNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3428
#line 538 "../parser/Grammar.y"
3429
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeMultNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3433
#line 540 "../parser/Grammar.y"
3434
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeDivNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3438
#line 542 "../parser/Grammar.y"
3439
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) ModNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3443
#line 547 "../parser/Grammar.y"
3444
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeAddNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3448
#line 548 "../parser/Grammar.y"
3449
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeSubNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3453
#line 554 "../parser/Grammar.y"
3454
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeAddNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3458
#line 556 "../parser/Grammar.y"
3459
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeSubNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3463
#line 561 "../parser/Grammar.y"
3464
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeLeftShiftNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3468
#line 562 "../parser/Grammar.y"
3469
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeRightShiftNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3473
#line 563 "../parser/Grammar.y"
3474
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) UnsignedRightShiftNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3478
#line 568 "../parser/Grammar.y"
3479
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeLeftShiftNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3483
#line 569 "../parser/Grammar.y"
3484
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeRightShiftNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3488
#line 570 "../parser/Grammar.y"
3489
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) UnsignedRightShiftNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3493
#line 575 "../parser/Grammar.y"
3494
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) LessNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3498
#line 576 "../parser/Grammar.y"
3499
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) GreaterNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3503
#line 577 "../parser/Grammar.y"
3504
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) LessEqNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3508
#line 578 "../parser/Grammar.y"
3509
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) GreaterEqNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3513
#line 579 "../parser/Grammar.y"
3514
{ InstanceOfNode* node = new (GLOBAL_DATA) InstanceOfNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature);
3515
setExceptionLocation(node, (yylsp[(1) - (3)]).first_column, (yylsp[(3) - (3)]).first_column, (yylsp[(3) - (3)]).last_column);
3516
(yyval.expressionNode) = createNodeInfo<ExpressionNode*>(node, (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3520
#line 582 "../parser/Grammar.y"
3521
{ InNode* node = new (GLOBAL_DATA) InNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature);
3522
setExceptionLocation(node, (yylsp[(1) - (3)]).first_column, (yylsp[(3) - (3)]).first_column, (yylsp[(3) - (3)]).last_column);
3523
(yyval.expressionNode) = createNodeInfo<ExpressionNode*>(node, (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3527
#line 589 "../parser/Grammar.y"
3528
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) LessNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3532
#line 590 "../parser/Grammar.y"
3533
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) GreaterNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3537
#line 591 "../parser/Grammar.y"
3538
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) LessEqNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3542
#line 592 "../parser/Grammar.y"
3543
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) GreaterEqNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3547
#line 594 "../parser/Grammar.y"
3548
{ InstanceOfNode* node = new (GLOBAL_DATA) InstanceOfNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature);
3549
setExceptionLocation(node, (yylsp[(1) - (3)]).first_column, (yylsp[(3) - (3)]).first_column, (yylsp[(3) - (3)]).last_column);
3550
(yyval.expressionNode) = createNodeInfo<ExpressionNode*>(node, (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3554
#line 601 "../parser/Grammar.y"
3555
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) LessNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3559
#line 602 "../parser/Grammar.y"
3560
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) GreaterNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3564
#line 603 "../parser/Grammar.y"
3565
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) LessEqNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3569
#line 604 "../parser/Grammar.y"
3570
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) GreaterEqNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3574
#line 606 "../parser/Grammar.y"
3575
{ InstanceOfNode* node = new (GLOBAL_DATA) InstanceOfNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature);
3576
setExceptionLocation(node, (yylsp[(1) - (3)]).first_column, (yylsp[(3) - (3)]).first_column, (yylsp[(3) - (3)]).last_column);
3577
(yyval.expressionNode) = createNodeInfo<ExpressionNode*>(node, (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3581
#line 610 "../parser/Grammar.y"
3582
{ InNode* node = new (GLOBAL_DATA) InNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature);
3583
setExceptionLocation(node, (yylsp[(1) - (3)]).first_column, (yylsp[(3) - (3)]).first_column, (yylsp[(3) - (3)]).last_column);
3584
(yyval.expressionNode) = createNodeInfo<ExpressionNode*>(node, (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3588
#line 617 "../parser/Grammar.y"
3589
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) EqualNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3593
#line 618 "../parser/Grammar.y"
3594
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) NotEqualNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3598
#line 619 "../parser/Grammar.y"
3599
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) StrictEqualNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3603
#line 620 "../parser/Grammar.y"
3604
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) NotStrictEqualNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3608
#line 626 "../parser/Grammar.y"
3609
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) EqualNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3613
#line 628 "../parser/Grammar.y"
3614
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) NotEqualNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3618
#line 630 "../parser/Grammar.y"
3619
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) StrictEqualNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3623
#line 632 "../parser/Grammar.y"
3624
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) NotStrictEqualNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3628
#line 638 "../parser/Grammar.y"
3629
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) EqualNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3633
#line 639 "../parser/Grammar.y"
3634
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) NotEqualNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3638
#line 641 "../parser/Grammar.y"
3639
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) StrictEqualNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3643
#line 643 "../parser/Grammar.y"
3644
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) NotStrictEqualNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3648
#line 648 "../parser/Grammar.y"
3649
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) BitAndNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3653
#line 654 "../parser/Grammar.y"
3654
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) BitAndNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3658
#line 659 "../parser/Grammar.y"
3659
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) BitAndNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3663
#line 664 "../parser/Grammar.y"
3664
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) BitXOrNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3668
#line 670 "../parser/Grammar.y"
3669
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) BitXOrNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3673
#line 676 "../parser/Grammar.y"
3674
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) BitXOrNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3678
#line 681 "../parser/Grammar.y"
3679
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) BitOrNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3683
#line 687 "../parser/Grammar.y"
3684
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) BitOrNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3688
#line 693 "../parser/Grammar.y"
3689
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) BitOrNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3693
#line 698 "../parser/Grammar.y"
3694
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) LogicalOpNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, OpLogicalAnd), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3698
#line 704 "../parser/Grammar.y"
3699
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) LogicalOpNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, OpLogicalAnd), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3703
#line 710 "../parser/Grammar.y"
3704
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) LogicalOpNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, OpLogicalAnd), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3708
#line 715 "../parser/Grammar.y"
3709
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) LogicalOpNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, OpLogicalOr), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3713
#line 721 "../parser/Grammar.y"
3714
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) LogicalOpNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, OpLogicalOr), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3718
#line 726 "../parser/Grammar.y"
3719
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) LogicalOpNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node, OpLogicalOr), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3723
#line 732 "../parser/Grammar.y"
3724
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) ConditionalNode(GLOBAL_DATA, (yyvsp[(1) - (5)].expressionNode).m_node, (yyvsp[(3) - (5)].expressionNode).m_node, (yyvsp[(5) - (5)].expressionNode).m_node), (yyvsp[(1) - (5)].expressionNode).m_features | (yyvsp[(3) - (5)].expressionNode).m_features | (yyvsp[(5) - (5)].expressionNode).m_features, (yyvsp[(1) - (5)].expressionNode).m_numConstants + (yyvsp[(3) - (5)].expressionNode).m_numConstants + (yyvsp[(5) - (5)].expressionNode).m_numConstants); ;}
3728
#line 738 "../parser/Grammar.y"
3729
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) ConditionalNode(GLOBAL_DATA, (yyvsp[(1) - (5)].expressionNode).m_node, (yyvsp[(3) - (5)].expressionNode).m_node, (yyvsp[(5) - (5)].expressionNode).m_node), (yyvsp[(1) - (5)].expressionNode).m_features | (yyvsp[(3) - (5)].expressionNode).m_features | (yyvsp[(5) - (5)].expressionNode).m_features, (yyvsp[(1) - (5)].expressionNode).m_numConstants + (yyvsp[(3) - (5)].expressionNode).m_numConstants + (yyvsp[(5) - (5)].expressionNode).m_numConstants); ;}
3733
#line 744 "../parser/Grammar.y"
3734
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) ConditionalNode(GLOBAL_DATA, (yyvsp[(1) - (5)].expressionNode).m_node, (yyvsp[(3) - (5)].expressionNode).m_node, (yyvsp[(5) - (5)].expressionNode).m_node), (yyvsp[(1) - (5)].expressionNode).m_features | (yyvsp[(3) - (5)].expressionNode).m_features | (yyvsp[(5) - (5)].expressionNode).m_features, (yyvsp[(1) - (5)].expressionNode).m_numConstants + (yyvsp[(3) - (5)].expressionNode).m_numConstants + (yyvsp[(5) - (5)].expressionNode).m_numConstants); ;}
3738
#line 750 "../parser/Grammar.y"
3739
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeAssignNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(2) - (3)].op), (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(1) - (3)].expressionNode).m_features & AssignFeature, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature,
3740
(yylsp[(1) - (3)]).first_column, (yylsp[(2) - (3)]).first_column + 1, (yylsp[(3) - (3)]).last_column), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features | AssignFeature, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants);
3745
#line 758 "../parser/Grammar.y"
3746
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeAssignNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(2) - (3)].op), (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(1) - (3)].expressionNode).m_features & AssignFeature, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature,
3747
(yylsp[(1) - (3)]).first_column, (yylsp[(2) - (3)]).first_column + 1, (yylsp[(3) - (3)]).last_column), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features | AssignFeature, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants);
3752
#line 766 "../parser/Grammar.y"
3753
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeAssignNode(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(2) - (3)].op), (yyvsp[(3) - (3)].expressionNode).m_node, (yyvsp[(1) - (3)].expressionNode).m_features & AssignFeature, (yyvsp[(3) - (3)].expressionNode).m_features & AssignFeature,
3754
(yylsp[(1) - (3)]).first_column, (yylsp[(2) - (3)]).first_column + 1, (yylsp[(3) - (3)]).last_column), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features | AssignFeature, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants);
3759
#line 772 "../parser/Grammar.y"
3760
{ (yyval.op) = OpEqual; ;}
3764
#line 773 "../parser/Grammar.y"
3765
{ (yyval.op) = OpPlusEq; ;}
3769
#line 774 "../parser/Grammar.y"
3770
{ (yyval.op) = OpMinusEq; ;}
3774
#line 775 "../parser/Grammar.y"
3775
{ (yyval.op) = OpMultEq; ;}
3779
#line 776 "../parser/Grammar.y"
3780
{ (yyval.op) = OpDivEq; ;}
3784
#line 777 "../parser/Grammar.y"
3785
{ (yyval.op) = OpLShift; ;}
3789
#line 778 "../parser/Grammar.y"
3790
{ (yyval.op) = OpRShift; ;}
3794
#line 779 "../parser/Grammar.y"
3795
{ (yyval.op) = OpURShift; ;}
3799
#line 780 "../parser/Grammar.y"
3800
{ (yyval.op) = OpAndEq; ;}
3804
#line 781 "../parser/Grammar.y"
3805
{ (yyval.op) = OpXOrEq; ;}
3809
#line 782 "../parser/Grammar.y"
3810
{ (yyval.op) = OpOrEq; ;}
3814
#line 783 "../parser/Grammar.y"
3815
{ (yyval.op) = OpModEq; ;}
3819
#line 788 "../parser/Grammar.y"
3820
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(combineCommaNodes(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3824
#line 793 "../parser/Grammar.y"
3825
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(combineCommaNodes(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3829
#line 798 "../parser/Grammar.y"
3830
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(combineCommaNodes(GLOBAL_DATA, (yyvsp[(1) - (3)].expressionNode).m_node, (yyvsp[(3) - (3)].expressionNode).m_node), (yyvsp[(1) - (3)].expressionNode).m_features | (yyvsp[(3) - (3)].expressionNode).m_features, (yyvsp[(1) - (3)].expressionNode).m_numConstants + (yyvsp[(3) - (3)].expressionNode).m_numConstants); ;}
3834
#line 822 "../parser/Grammar.y"
3835
{ (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) BlockNode(GLOBAL_DATA, 0), 0, 0, 0, 0);
3836
setStatementLocation((yyval.statementNode).m_node, (yylsp[(1) - (2)]), (yylsp[(2) - (2)])); ;}
3840
#line 824 "../parser/Grammar.y"
3841
{ (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) BlockNode(GLOBAL_DATA, (yyvsp[(2) - (3)].sourceElements).m_node), (yyvsp[(2) - (3)].sourceElements).m_varDeclarations, (yyvsp[(2) - (3)].sourceElements).m_funcDeclarations, (yyvsp[(2) - (3)].sourceElements).m_features, (yyvsp[(2) - (3)].sourceElements).m_numConstants);
3842
setStatementLocation((yyval.statementNode).m_node, (yylsp[(1) - (3)]), (yylsp[(3) - (3)])); ;}
3846
#line 829 "../parser/Grammar.y"
3847
{ (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(makeVarStatementNode(GLOBAL_DATA, (yyvsp[(2) - (3)].varDeclList).m_node), (yyvsp[(2) - (3)].varDeclList).m_varDeclarations, (yyvsp[(2) - (3)].varDeclList).m_funcDeclarations, (yyvsp[(2) - (3)].varDeclList).m_features, (yyvsp[(2) - (3)].varDeclList).m_numConstants);
3848
setStatementLocation((yyval.statementNode).m_node, (yylsp[(1) - (3)]), (yylsp[(3) - (3)])); ;}
3852
#line 831 "../parser/Grammar.y"
3853
{ (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(makeVarStatementNode(GLOBAL_DATA, (yyvsp[(2) - (3)].varDeclList).m_node), (yyvsp[(2) - (3)].varDeclList).m_varDeclarations, (yyvsp[(2) - (3)].varDeclList).m_funcDeclarations, (yyvsp[(2) - (3)].varDeclList).m_features, (yyvsp[(2) - (3)].varDeclList).m_numConstants);
3854
setStatementLocation((yyval.statementNode).m_node, (yylsp[(1) - (3)]), (yylsp[(2) - (3)]));
3859
#line 837 "../parser/Grammar.y"
3860
{ (yyval.varDeclList).m_node = 0;
3861
(yyval.varDeclList).m_varDeclarations = new (GLOBAL_DATA) ParserArenaData<DeclarationStacks::VarStack>;
3862
appendToVarDeclarationList(GLOBAL_DATA, (yyval.varDeclList).m_varDeclarations, *(yyvsp[(1) - (1)].ident), 0);
3863
(yyval.varDeclList).m_funcDeclarations = 0;
3864
(yyval.varDeclList).m_features = (*(yyvsp[(1) - (1)].ident) == GLOBAL_DATA->propertyNames->arguments) ? ArgumentsFeature : 0;
3865
(yyval.varDeclList).m_numConstants = 0;
3870
#line 844 "../parser/Grammar.y"
3871
{ AssignResolveNode* node = new (GLOBAL_DATA) AssignResolveNode(GLOBAL_DATA, *(yyvsp[(1) - (2)].ident), (yyvsp[(2) - (2)].expressionNode).m_node, (yyvsp[(2) - (2)].expressionNode).m_features & AssignFeature);
3872
setExceptionLocation(node, (yylsp[(1) - (2)]).first_column, (yylsp[(2) - (2)]).first_column + 1, (yylsp[(2) - (2)]).last_column);
3873
(yyval.varDeclList).m_node = node;
3874
(yyval.varDeclList).m_varDeclarations = new (GLOBAL_DATA) ParserArenaData<DeclarationStacks::VarStack>;
3875
appendToVarDeclarationList(GLOBAL_DATA, (yyval.varDeclList).m_varDeclarations, *(yyvsp[(1) - (2)].ident), DeclarationStacks::HasInitializer);
3876
(yyval.varDeclList).m_funcDeclarations = 0;
3877
(yyval.varDeclList).m_features = ((*(yyvsp[(1) - (2)].ident) == GLOBAL_DATA->propertyNames->arguments) ? ArgumentsFeature : 0) | (yyvsp[(2) - (2)].expressionNode).m_features;
3878
(yyval.varDeclList).m_numConstants = (yyvsp[(2) - (2)].expressionNode).m_numConstants;
3883
#line 854 "../parser/Grammar.y"
3884
{ (yyval.varDeclList).m_node = (yyvsp[(1) - (3)].varDeclList).m_node;
3885
(yyval.varDeclList).m_varDeclarations = (yyvsp[(1) - (3)].varDeclList).m_varDeclarations;
3886
appendToVarDeclarationList(GLOBAL_DATA, (yyval.varDeclList).m_varDeclarations, *(yyvsp[(3) - (3)].ident), 0);
3887
(yyval.varDeclList).m_funcDeclarations = 0;
3888
(yyval.varDeclList).m_features = (yyvsp[(1) - (3)].varDeclList).m_features | ((*(yyvsp[(3) - (3)].ident) == GLOBAL_DATA->propertyNames->arguments) ? ArgumentsFeature : 0);
3889
(yyval.varDeclList).m_numConstants = (yyvsp[(1) - (3)].varDeclList).m_numConstants;
3894
#line 862 "../parser/Grammar.y"
3895
{ AssignResolveNode* node = new (GLOBAL_DATA) AssignResolveNode(GLOBAL_DATA, *(yyvsp[(3) - (4)].ident), (yyvsp[(4) - (4)].expressionNode).m_node, (yyvsp[(4) - (4)].expressionNode).m_features & AssignFeature);
3896
setExceptionLocation(node, (yylsp[(3) - (4)]).first_column, (yylsp[(4) - (4)]).first_column + 1, (yylsp[(4) - (4)]).last_column);
3897
(yyval.varDeclList).m_node = combineCommaNodes(GLOBAL_DATA, (yyvsp[(1) - (4)].varDeclList).m_node, node);
3898
(yyval.varDeclList).m_varDeclarations = (yyvsp[(1) - (4)].varDeclList).m_varDeclarations;
3899
appendToVarDeclarationList(GLOBAL_DATA, (yyval.varDeclList).m_varDeclarations, *(yyvsp[(3) - (4)].ident), DeclarationStacks::HasInitializer);
3900
(yyval.varDeclList).m_funcDeclarations = 0;
3901
(yyval.varDeclList).m_features = (yyvsp[(1) - (4)].varDeclList).m_features | ((*(yyvsp[(3) - (4)].ident) == GLOBAL_DATA->propertyNames->arguments) ? ArgumentsFeature : 0) | (yyvsp[(4) - (4)].expressionNode).m_features;
3902
(yyval.varDeclList).m_numConstants = (yyvsp[(1) - (4)].varDeclList).m_numConstants + (yyvsp[(4) - (4)].expressionNode).m_numConstants;
3907
#line 874 "../parser/Grammar.y"
3908
{ (yyval.varDeclList).m_node = 0;
3909
(yyval.varDeclList).m_varDeclarations = new (GLOBAL_DATA) ParserArenaData<DeclarationStacks::VarStack>;
3910
appendToVarDeclarationList(GLOBAL_DATA, (yyval.varDeclList).m_varDeclarations, *(yyvsp[(1) - (1)].ident), 0);
3911
(yyval.varDeclList).m_funcDeclarations = 0;
3912
(yyval.varDeclList).m_features = (*(yyvsp[(1) - (1)].ident) == GLOBAL_DATA->propertyNames->arguments) ? ArgumentsFeature : 0;
3913
(yyval.varDeclList).m_numConstants = 0;
3918
#line 881 "../parser/Grammar.y"
3919
{ AssignResolveNode* node = new (GLOBAL_DATA) AssignResolveNode(GLOBAL_DATA, *(yyvsp[(1) - (2)].ident), (yyvsp[(2) - (2)].expressionNode).m_node, (yyvsp[(2) - (2)].expressionNode).m_features & AssignFeature);
3920
setExceptionLocation(node, (yylsp[(1) - (2)]).first_column, (yylsp[(2) - (2)]).first_column + 1, (yylsp[(2) - (2)]).last_column);
3921
(yyval.varDeclList).m_node = node;
3922
(yyval.varDeclList).m_varDeclarations = new (GLOBAL_DATA) ParserArenaData<DeclarationStacks::VarStack>;
3923
appendToVarDeclarationList(GLOBAL_DATA, (yyval.varDeclList).m_varDeclarations, *(yyvsp[(1) - (2)].ident), DeclarationStacks::HasInitializer);
3924
(yyval.varDeclList).m_funcDeclarations = 0;
3925
(yyval.varDeclList).m_features = ((*(yyvsp[(1) - (2)].ident) == GLOBAL_DATA->propertyNames->arguments) ? ArgumentsFeature : 0) | (yyvsp[(2) - (2)].expressionNode).m_features;
3926
(yyval.varDeclList).m_numConstants = (yyvsp[(2) - (2)].expressionNode).m_numConstants;
3931
#line 891 "../parser/Grammar.y"
3932
{ (yyval.varDeclList).m_node = (yyvsp[(1) - (3)].varDeclList).m_node;
3933
(yyval.varDeclList).m_varDeclarations = (yyvsp[(1) - (3)].varDeclList).m_varDeclarations;
3934
appendToVarDeclarationList(GLOBAL_DATA, (yyval.varDeclList).m_varDeclarations, *(yyvsp[(3) - (3)].ident), 0);
3935
(yyval.varDeclList).m_funcDeclarations = 0;
3936
(yyval.varDeclList).m_features = (yyvsp[(1) - (3)].varDeclList).m_features | ((*(yyvsp[(3) - (3)].ident) == GLOBAL_DATA->propertyNames->arguments) ? ArgumentsFeature : 0);
3937
(yyval.varDeclList).m_numConstants = (yyvsp[(1) - (3)].varDeclList).m_numConstants;
3942
#line 899 "../parser/Grammar.y"
3943
{ AssignResolveNode* node = new (GLOBAL_DATA) AssignResolveNode(GLOBAL_DATA, *(yyvsp[(3) - (4)].ident), (yyvsp[(4) - (4)].expressionNode).m_node, (yyvsp[(4) - (4)].expressionNode).m_features & AssignFeature);
3944
setExceptionLocation(node, (yylsp[(3) - (4)]).first_column, (yylsp[(4) - (4)]).first_column + 1, (yylsp[(4) - (4)]).last_column);
3945
(yyval.varDeclList).m_node = combineCommaNodes(GLOBAL_DATA, (yyvsp[(1) - (4)].varDeclList).m_node, node);
3946
(yyval.varDeclList).m_varDeclarations = (yyvsp[(1) - (4)].varDeclList).m_varDeclarations;
3947
appendToVarDeclarationList(GLOBAL_DATA, (yyval.varDeclList).m_varDeclarations, *(yyvsp[(3) - (4)].ident), DeclarationStacks::HasInitializer);
3948
(yyval.varDeclList).m_funcDeclarations = 0;
3949
(yyval.varDeclList).m_features = (yyvsp[(1) - (4)].varDeclList).m_features | ((*(yyvsp[(3) - (4)].ident) == GLOBAL_DATA->propertyNames->arguments) ? ArgumentsFeature : 0) | (yyvsp[(4) - (4)].expressionNode).m_features;
3950
(yyval.varDeclList).m_numConstants = (yyvsp[(1) - (4)].varDeclList).m_numConstants + (yyvsp[(4) - (4)].expressionNode).m_numConstants;
3955
#line 911 "../parser/Grammar.y"
3956
{ (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) ConstStatementNode(GLOBAL_DATA, (yyvsp[(2) - (3)].constDeclList).m_node.head), (yyvsp[(2) - (3)].constDeclList).m_varDeclarations, (yyvsp[(2) - (3)].constDeclList).m_funcDeclarations, (yyvsp[(2) - (3)].constDeclList).m_features, (yyvsp[(2) - (3)].constDeclList).m_numConstants);
3957
setStatementLocation((yyval.statementNode).m_node, (yylsp[(1) - (3)]), (yylsp[(3) - (3)])); ;}
3961
#line 914 "../parser/Grammar.y"
3962
{ (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) ConstStatementNode(GLOBAL_DATA, (yyvsp[(2) - (3)].constDeclList).m_node.head), (yyvsp[(2) - (3)].constDeclList).m_varDeclarations, (yyvsp[(2) - (3)].constDeclList).m_funcDeclarations, (yyvsp[(2) - (3)].constDeclList).m_features, (yyvsp[(2) - (3)].constDeclList).m_numConstants);
3963
setStatementLocation((yyval.statementNode).m_node, (yylsp[(1) - (3)]), (yylsp[(2) - (3)])); AUTO_SEMICOLON; ;}
3967
#line 919 "../parser/Grammar.y"
3968
{ (yyval.constDeclList).m_node.head = (yyvsp[(1) - (1)].constDeclNode).m_node;
3969
(yyval.constDeclList).m_node.tail = (yyval.constDeclList).m_node.head;
3970
(yyval.constDeclList).m_varDeclarations = new (GLOBAL_DATA) ParserArenaData<DeclarationStacks::VarStack>;
3971
appendToVarDeclarationList(GLOBAL_DATA, (yyval.constDeclList).m_varDeclarations, (yyvsp[(1) - (1)].constDeclNode).m_node);
3972
(yyval.constDeclList).m_funcDeclarations = 0;
3973
(yyval.constDeclList).m_features = (yyvsp[(1) - (1)].constDeclNode).m_features;
3974
(yyval.constDeclList).m_numConstants = (yyvsp[(1) - (1)].constDeclNode).m_numConstants;
3979
#line 928 "../parser/Grammar.y"
3980
{ (yyval.constDeclList).m_node.head = (yyvsp[(1) - (3)].constDeclList).m_node.head;
3981
(yyvsp[(1) - (3)].constDeclList).m_node.tail->m_next = (yyvsp[(3) - (3)].constDeclNode).m_node;
3982
(yyval.constDeclList).m_node.tail = (yyvsp[(3) - (3)].constDeclNode).m_node;
3983
(yyval.constDeclList).m_varDeclarations = (yyvsp[(1) - (3)].constDeclList).m_varDeclarations;
3984
appendToVarDeclarationList(GLOBAL_DATA, (yyval.constDeclList).m_varDeclarations, (yyvsp[(3) - (3)].constDeclNode).m_node);
3985
(yyval.constDeclList).m_funcDeclarations = 0;
3986
(yyval.constDeclList).m_features = (yyvsp[(1) - (3)].constDeclList).m_features | (yyvsp[(3) - (3)].constDeclNode).m_features;
3987
(yyval.constDeclList).m_numConstants = (yyvsp[(1) - (3)].constDeclList).m_numConstants + (yyvsp[(3) - (3)].constDeclNode).m_numConstants; ;}
3991
#line 939 "../parser/Grammar.y"
3992
{ (yyval.constDeclNode) = createNodeInfo<ConstDeclNode*>(new (GLOBAL_DATA) ConstDeclNode(GLOBAL_DATA, *(yyvsp[(1) - (1)].ident), 0), (*(yyvsp[(1) - (1)].ident) == GLOBAL_DATA->propertyNames->arguments) ? ArgumentsFeature : 0, 0); ;}
3996
#line 940 "../parser/Grammar.y"
3997
{ (yyval.constDeclNode) = createNodeInfo<ConstDeclNode*>(new (GLOBAL_DATA) ConstDeclNode(GLOBAL_DATA, *(yyvsp[(1) - (2)].ident), (yyvsp[(2) - (2)].expressionNode).m_node), ((*(yyvsp[(1) - (2)].ident) == GLOBAL_DATA->propertyNames->arguments) ? ArgumentsFeature : 0) | (yyvsp[(2) - (2)].expressionNode).m_features, (yyvsp[(2) - (2)].expressionNode).m_numConstants); ;}
4001
#line 944 "../parser/Grammar.y"
4002
{ (yyval.expressionNode) = (yyvsp[(2) - (2)].expressionNode); ;}
4006
#line 948 "../parser/Grammar.y"
4007
{ (yyval.expressionNode) = (yyvsp[(2) - (2)].expressionNode); ;}
4011
#line 952 "../parser/Grammar.y"
4012
{ (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) EmptyStatementNode(GLOBAL_DATA), 0, 0, 0, 0); ;}
4016
#line 956 "../parser/Grammar.y"
4017
{ (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) ExprStatementNode(GLOBAL_DATA, (yyvsp[(1) - (2)].expressionNode).m_node), 0, 0, (yyvsp[(1) - (2)].expressionNode).m_features, (yyvsp[(1) - (2)].expressionNode).m_numConstants);
4018
setStatementLocation((yyval.statementNode).m_node, (yylsp[(1) - (2)]), (yylsp[(2) - (2)])); ;}
4022
#line 958 "../parser/Grammar.y"
4023
{ (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) ExprStatementNode(GLOBAL_DATA, (yyvsp[(1) - (2)].expressionNode).m_node), 0, 0, (yyvsp[(1) - (2)].expressionNode).m_features, (yyvsp[(1) - (2)].expressionNode).m_numConstants);
4024
setStatementLocation((yyval.statementNode).m_node, (yylsp[(1) - (2)]), (yylsp[(1) - (2)])); AUTO_SEMICOLON; ;}
4028
#line 964 "../parser/Grammar.y"
4029
{ (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) IfNode(GLOBAL_DATA, (yyvsp[(3) - (5)].expressionNode).m_node, (yyvsp[(5) - (5)].statementNode).m_node), (yyvsp[(5) - (5)].statementNode).m_varDeclarations, (yyvsp[(5) - (5)].statementNode).m_funcDeclarations, (yyvsp[(3) - (5)].expressionNode).m_features | (yyvsp[(5) - (5)].statementNode).m_features, (yyvsp[(3) - (5)].expressionNode).m_numConstants + (yyvsp[(5) - (5)].statementNode).m_numConstants);
4030
setStatementLocation((yyval.statementNode).m_node, (yylsp[(1) - (5)]), (yylsp[(4) - (5)])); ;}
4034
#line 967 "../parser/Grammar.y"
4035
{ (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) IfElseNode(GLOBAL_DATA, (yyvsp[(3) - (7)].expressionNode).m_node, (yyvsp[(5) - (7)].statementNode).m_node, (yyvsp[(7) - (7)].statementNode).m_node),
4036
mergeDeclarationLists((yyvsp[(5) - (7)].statementNode).m_varDeclarations, (yyvsp[(7) - (7)].statementNode).m_varDeclarations),
4037
mergeDeclarationLists((yyvsp[(5) - (7)].statementNode).m_funcDeclarations, (yyvsp[(7) - (7)].statementNode).m_funcDeclarations),
4038
(yyvsp[(3) - (7)].expressionNode).m_features | (yyvsp[(5) - (7)].statementNode).m_features | (yyvsp[(7) - (7)].statementNode).m_features,
4039
(yyvsp[(3) - (7)].expressionNode).m_numConstants + (yyvsp[(5) - (7)].statementNode).m_numConstants + (yyvsp[(7) - (7)].statementNode).m_numConstants);
4040
setStatementLocation((yyval.statementNode).m_node, (yylsp[(1) - (7)]), (yylsp[(4) - (7)])); ;}
4044
#line 976 "../parser/Grammar.y"
4045
{ (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) DoWhileNode(GLOBAL_DATA, (yyvsp[(2) - (7)].statementNode).m_node, (yyvsp[(5) - (7)].expressionNode).m_node), (yyvsp[(2) - (7)].statementNode).m_varDeclarations, (yyvsp[(2) - (7)].statementNode).m_funcDeclarations, (yyvsp[(2) - (7)].statementNode).m_features | (yyvsp[(5) - (7)].expressionNode).m_features, (yyvsp[(2) - (7)].statementNode).m_numConstants + (yyvsp[(5) - (7)].expressionNode).m_numConstants);
4046
setStatementLocation((yyval.statementNode).m_node, (yylsp[(1) - (7)]), (yylsp[(3) - (7)])); ;}
4050
#line 978 "../parser/Grammar.y"
4051
{ (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) DoWhileNode(GLOBAL_DATA, (yyvsp[(2) - (7)].statementNode).m_node, (yyvsp[(5) - (7)].expressionNode).m_node), (yyvsp[(2) - (7)].statementNode).m_varDeclarations, (yyvsp[(2) - (7)].statementNode).m_funcDeclarations, (yyvsp[(2) - (7)].statementNode).m_features | (yyvsp[(5) - (7)].expressionNode).m_features, (yyvsp[(2) - (7)].statementNode).m_numConstants + (yyvsp[(5) - (7)].expressionNode).m_numConstants);
4052
setStatementLocation((yyval.statementNode).m_node, (yylsp[(1) - (7)]), (yylsp[(3) - (7)])); ;}
4056
#line 980 "../parser/Grammar.y"
4057
{ (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) WhileNode(GLOBAL_DATA, (yyvsp[(3) - (5)].expressionNode).m_node, (yyvsp[(5) - (5)].statementNode).m_node), (yyvsp[(5) - (5)].statementNode).m_varDeclarations, (yyvsp[(5) - (5)].statementNode).m_funcDeclarations, (yyvsp[(3) - (5)].expressionNode).m_features | (yyvsp[(5) - (5)].statementNode).m_features, (yyvsp[(3) - (5)].expressionNode).m_numConstants + (yyvsp[(5) - (5)].statementNode).m_numConstants);
4058
setStatementLocation((yyval.statementNode).m_node, (yylsp[(1) - (5)]), (yylsp[(4) - (5)])); ;}
4062
#line 983 "../parser/Grammar.y"
4063
{ (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) ForNode(GLOBAL_DATA, (yyvsp[(3) - (9)].expressionNode).m_node, (yyvsp[(5) - (9)].expressionNode).m_node, (yyvsp[(7) - (9)].expressionNode).m_node, (yyvsp[(9) - (9)].statementNode).m_node, false), (yyvsp[(9) - (9)].statementNode).m_varDeclarations, (yyvsp[(9) - (9)].statementNode).m_funcDeclarations,
4064
(yyvsp[(3) - (9)].expressionNode).m_features | (yyvsp[(5) - (9)].expressionNode).m_features | (yyvsp[(7) - (9)].expressionNode).m_features | (yyvsp[(9) - (9)].statementNode).m_features,
4065
(yyvsp[(3) - (9)].expressionNode).m_numConstants + (yyvsp[(5) - (9)].expressionNode).m_numConstants + (yyvsp[(7) - (9)].expressionNode).m_numConstants + (yyvsp[(9) - (9)].statementNode).m_numConstants);
4066
setStatementLocation((yyval.statementNode).m_node, (yylsp[(1) - (9)]), (yylsp[(8) - (9)]));
4071
#line 989 "../parser/Grammar.y"
4072
{ (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) ForNode(GLOBAL_DATA, (yyvsp[(4) - (10)].varDeclList).m_node, (yyvsp[(6) - (10)].expressionNode).m_node, (yyvsp[(8) - (10)].expressionNode).m_node, (yyvsp[(10) - (10)].statementNode).m_node, true),
4073
mergeDeclarationLists((yyvsp[(4) - (10)].varDeclList).m_varDeclarations, (yyvsp[(10) - (10)].statementNode).m_varDeclarations),
4074
mergeDeclarationLists((yyvsp[(4) - (10)].varDeclList).m_funcDeclarations, (yyvsp[(10) - (10)].statementNode).m_funcDeclarations),
4075
(yyvsp[(4) - (10)].varDeclList).m_features | (yyvsp[(6) - (10)].expressionNode).m_features | (yyvsp[(8) - (10)].expressionNode).m_features | (yyvsp[(10) - (10)].statementNode).m_features,
4076
(yyvsp[(4) - (10)].varDeclList).m_numConstants + (yyvsp[(6) - (10)].expressionNode).m_numConstants + (yyvsp[(8) - (10)].expressionNode).m_numConstants + (yyvsp[(10) - (10)].statementNode).m_numConstants);
4077
setStatementLocation((yyval.statementNode).m_node, (yylsp[(1) - (10)]), (yylsp[(9) - (10)])); ;}
4081
#line 996 "../parser/Grammar.y"
4083
ForInNode* node = new (GLOBAL_DATA) ForInNode(GLOBAL_DATA, (yyvsp[(3) - (7)].expressionNode).m_node, (yyvsp[(5) - (7)].expressionNode).m_node, (yyvsp[(7) - (7)].statementNode).m_node);
4084
setExceptionLocation(node, (yylsp[(3) - (7)]).first_column, (yylsp[(3) - (7)]).last_column, (yylsp[(5) - (7)]).last_column);
4085
(yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(node, (yyvsp[(7) - (7)].statementNode).m_varDeclarations, (yyvsp[(7) - (7)].statementNode).m_funcDeclarations,
4086
(yyvsp[(3) - (7)].expressionNode).m_features | (yyvsp[(5) - (7)].expressionNode).m_features | (yyvsp[(7) - (7)].statementNode).m_features,
4087
(yyvsp[(3) - (7)].expressionNode).m_numConstants + (yyvsp[(5) - (7)].expressionNode).m_numConstants + (yyvsp[(7) - (7)].statementNode).m_numConstants);
4088
setStatementLocation((yyval.statementNode).m_node, (yylsp[(1) - (7)]), (yylsp[(6) - (7)]));
4093
#line 1005 "../parser/Grammar.y"
4094
{ ForInNode *forIn = new (GLOBAL_DATA) ForInNode(GLOBAL_DATA, *(yyvsp[(4) - (8)].ident), 0, (yyvsp[(6) - (8)].expressionNode).m_node, (yyvsp[(8) - (8)].statementNode).m_node, (yylsp[(5) - (8)]).first_column, (yylsp[(5) - (8)]).first_column - (yylsp[(4) - (8)]).first_column, (yylsp[(6) - (8)]).last_column - (yylsp[(5) - (8)]).first_column);
4095
setExceptionLocation(forIn, (yylsp[(4) - (8)]).first_column, (yylsp[(5) - (8)]).first_column + 1, (yylsp[(6) - (8)]).last_column);
4096
appendToVarDeclarationList(GLOBAL_DATA, (yyvsp[(8) - (8)].statementNode).m_varDeclarations, *(yyvsp[(4) - (8)].ident), DeclarationStacks::HasInitializer);
4097
(yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(forIn, (yyvsp[(8) - (8)].statementNode).m_varDeclarations, (yyvsp[(8) - (8)].statementNode).m_funcDeclarations, ((*(yyvsp[(4) - (8)].ident) == GLOBAL_DATA->propertyNames->arguments) ? ArgumentsFeature : 0) | (yyvsp[(6) - (8)].expressionNode).m_features | (yyvsp[(8) - (8)].statementNode).m_features, (yyvsp[(6) - (8)].expressionNode).m_numConstants + (yyvsp[(8) - (8)].statementNode).m_numConstants);
4098
setStatementLocation((yyval.statementNode).m_node, (yylsp[(1) - (8)]), (yylsp[(7) - (8)])); ;}
4102
#line 1011 "../parser/Grammar.y"
4103
{ ForInNode *forIn = new (GLOBAL_DATA) ForInNode(GLOBAL_DATA, *(yyvsp[(4) - (9)].ident), (yyvsp[(5) - (9)].expressionNode).m_node, (yyvsp[(7) - (9)].expressionNode).m_node, (yyvsp[(9) - (9)].statementNode).m_node, (yylsp[(5) - (9)]).first_column, (yylsp[(5) - (9)]).first_column - (yylsp[(4) - (9)]).first_column, (yylsp[(5) - (9)]).last_column - (yylsp[(5) - (9)]).first_column);
4104
setExceptionLocation(forIn, (yylsp[(4) - (9)]).first_column, (yylsp[(6) - (9)]).first_column + 1, (yylsp[(7) - (9)]).last_column);
4105
appendToVarDeclarationList(GLOBAL_DATA, (yyvsp[(9) - (9)].statementNode).m_varDeclarations, *(yyvsp[(4) - (9)].ident), DeclarationStacks::HasInitializer);
4106
(yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(forIn, (yyvsp[(9) - (9)].statementNode).m_varDeclarations, (yyvsp[(9) - (9)].statementNode).m_funcDeclarations,
4107
((*(yyvsp[(4) - (9)].ident) == GLOBAL_DATA->propertyNames->arguments) ? ArgumentsFeature : 0) | (yyvsp[(5) - (9)].expressionNode).m_features | (yyvsp[(7) - (9)].expressionNode).m_features | (yyvsp[(9) - (9)].statementNode).m_features,
4108
(yyvsp[(5) - (9)].expressionNode).m_numConstants + (yyvsp[(7) - (9)].expressionNode).m_numConstants + (yyvsp[(9) - (9)].statementNode).m_numConstants);
4109
setStatementLocation((yyval.statementNode).m_node, (yylsp[(1) - (9)]), (yylsp[(8) - (9)])); ;}
4113
#line 1021 "../parser/Grammar.y"
4114
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(0, 0, 0); ;}
4118
#line 1026 "../parser/Grammar.y"
4119
{ (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(0, 0, 0); ;}
4123
#line 1031 "../parser/Grammar.y"
4124
{ ContinueNode* node = new (GLOBAL_DATA) ContinueNode(GLOBAL_DATA);
4125
setExceptionLocation(node, (yylsp[(1) - (2)]).first_column, (yylsp[(1) - (2)]).last_column, (yylsp[(1) - (2)]).last_column);
4126
(yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(node, 0, 0, 0, 0);
4127
setStatementLocation((yyval.statementNode).m_node, (yylsp[(1) - (2)]), (yylsp[(2) - (2)])); ;}
4131
#line 1035 "../parser/Grammar.y"
4132
{ ContinueNode* node = new (GLOBAL_DATA) ContinueNode(GLOBAL_DATA);
4133
setExceptionLocation(node, (yylsp[(1) - (2)]).first_column, (yylsp[(1) - (2)]).last_column, (yylsp[(1) - (2)]).last_column);
4134
(yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(node, 0, 0, 0, 0);
4135
setStatementLocation((yyval.statementNode).m_node, (yylsp[(1) - (2)]), (yylsp[(1) - (2)])); AUTO_SEMICOLON; ;}
4139
#line 1039 "../parser/Grammar.y"
4140
{ ContinueNode* node = new (GLOBAL_DATA) ContinueNode(GLOBAL_DATA, *(yyvsp[(2) - (3)].ident));
4141
setExceptionLocation(node, (yylsp[(1) - (3)]).first_column, (yylsp[(2) - (3)]).last_column, (yylsp[(2) - (3)]).last_column);
4142
(yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(node, 0, 0, 0, 0);
4143
setStatementLocation((yyval.statementNode).m_node, (yylsp[(1) - (3)]), (yylsp[(3) - (3)])); ;}
4147
#line 1043 "../parser/Grammar.y"
4148
{ ContinueNode* node = new (GLOBAL_DATA) ContinueNode(GLOBAL_DATA, *(yyvsp[(2) - (3)].ident));
4149
setExceptionLocation(node, (yylsp[(1) - (3)]).first_column, (yylsp[(2) - (3)]).last_column, (yylsp[(2) - (3)]).last_column);
4150
(yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(node, 0, 0, 0, 0);
4151
setStatementLocation((yyval.statementNode).m_node, (yylsp[(1) - (3)]), (yylsp[(2) - (3)])); AUTO_SEMICOLON; ;}
4155
#line 1050 "../parser/Grammar.y"
4156
{ BreakNode* node = new (GLOBAL_DATA) BreakNode(GLOBAL_DATA);
4157
setExceptionLocation(node, (yylsp[(1) - (2)]).first_column, (yylsp[(1) - (2)]).last_column, (yylsp[(1) - (2)]).last_column);
4158
(yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(node, 0, 0, 0, 0); setStatementLocation((yyval.statementNode).m_node, (yylsp[(1) - (2)]), (yylsp[(2) - (2)])); ;}
4162
#line 1053 "../parser/Grammar.y"
4163
{ BreakNode* node = new (GLOBAL_DATA) BreakNode(GLOBAL_DATA);
4164
setExceptionLocation(node, (yylsp[(1) - (2)]).first_column, (yylsp[(1) - (2)]).last_column, (yylsp[(1) - (2)]).last_column);
4165
(yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) BreakNode(GLOBAL_DATA), 0, 0, 0, 0); setStatementLocation((yyval.statementNode).m_node, (yylsp[(1) - (2)]), (yylsp[(1) - (2)])); AUTO_SEMICOLON; ;}
4169
#line 1056 "../parser/Grammar.y"
4170
{ BreakNode* node = new (GLOBAL_DATA) BreakNode(GLOBAL_DATA, *(yyvsp[(2) - (3)].ident));
4171
setExceptionLocation(node, (yylsp[(1) - (3)]).first_column, (yylsp[(2) - (3)]).last_column, (yylsp[(2) - (3)]).last_column);
4172
(yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(node, 0, 0, 0, 0); setStatementLocation((yyval.statementNode).m_node, (yylsp[(1) - (3)]), (yylsp[(3) - (3)])); ;}
4176
#line 1059 "../parser/Grammar.y"
4177
{ BreakNode* node = new (GLOBAL_DATA) BreakNode(GLOBAL_DATA, *(yyvsp[(2) - (3)].ident));
4178
setExceptionLocation(node, (yylsp[(1) - (3)]).first_column, (yylsp[(2) - (3)]).last_column, (yylsp[(2) - (3)]).last_column);
4179
(yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) BreakNode(GLOBAL_DATA, *(yyvsp[(2) - (3)].ident)), 0, 0, 0, 0); setStatementLocation((yyval.statementNode).m_node, (yylsp[(1) - (3)]), (yylsp[(2) - (3)])); AUTO_SEMICOLON; ;}
4183
#line 1065 "../parser/Grammar.y"
4184
{ ReturnNode* node = new (GLOBAL_DATA) ReturnNode(GLOBAL_DATA, 0);
4185
setExceptionLocation(node, (yylsp[(1) - (2)]).first_column, (yylsp[(1) - (2)]).last_column, (yylsp[(1) - (2)]).last_column);
4186
(yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(node, 0, 0, 0, 0); setStatementLocation((yyval.statementNode).m_node, (yylsp[(1) - (2)]), (yylsp[(2) - (2)])); ;}
4190
#line 1068 "../parser/Grammar.y"
4191
{ ReturnNode* node = new (GLOBAL_DATA) ReturnNode(GLOBAL_DATA, 0);
4192
setExceptionLocation(node, (yylsp[(1) - (2)]).first_column, (yylsp[(1) - (2)]).last_column, (yylsp[(1) - (2)]).last_column);
4193
(yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(node, 0, 0, 0, 0); setStatementLocation((yyval.statementNode).m_node, (yylsp[(1) - (2)]), (yylsp[(1) - (2)])); AUTO_SEMICOLON; ;}
4197
#line 1071 "../parser/Grammar.y"
4198
{ ReturnNode* node = new (GLOBAL_DATA) ReturnNode(GLOBAL_DATA, (yyvsp[(2) - (3)].expressionNode).m_node);
4199
setExceptionLocation(node, (yylsp[(1) - (3)]).first_column, (yylsp[(2) - (3)]).last_column, (yylsp[(2) - (3)]).last_column);
4200
(yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(node, 0, 0, (yyvsp[(2) - (3)].expressionNode).m_features, (yyvsp[(2) - (3)].expressionNode).m_numConstants); setStatementLocation((yyval.statementNode).m_node, (yylsp[(1) - (3)]), (yylsp[(3) - (3)])); ;}
4204
#line 1074 "../parser/Grammar.y"
4205
{ ReturnNode* node = new (GLOBAL_DATA) ReturnNode(GLOBAL_DATA, (yyvsp[(2) - (3)].expressionNode).m_node);
4206
setExceptionLocation(node, (yylsp[(1) - (3)]).first_column, (yylsp[(2) - (3)]).last_column, (yylsp[(2) - (3)]).last_column);
4207
(yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(node, 0, 0, (yyvsp[(2) - (3)].expressionNode).m_features, (yyvsp[(2) - (3)].expressionNode).m_numConstants); setStatementLocation((yyval.statementNode).m_node, (yylsp[(1) - (3)]), (yylsp[(2) - (3)])); AUTO_SEMICOLON; ;}
4211
#line 1080 "../parser/Grammar.y"
4212
{ (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) WithNode(GLOBAL_DATA, (yyvsp[(3) - (5)].expressionNode).m_node, (yyvsp[(5) - (5)].statementNode).m_node, (yylsp[(3) - (5)]).last_column, (yylsp[(3) - (5)]).last_column - (yylsp[(3) - (5)]).first_column),
4213
(yyvsp[(5) - (5)].statementNode).m_varDeclarations, (yyvsp[(5) - (5)].statementNode).m_funcDeclarations, (yyvsp[(3) - (5)].expressionNode).m_features | (yyvsp[(5) - (5)].statementNode).m_features | WithFeature, (yyvsp[(3) - (5)].expressionNode).m_numConstants + (yyvsp[(5) - (5)].statementNode).m_numConstants);
4214
setStatementLocation((yyval.statementNode).m_node, (yylsp[(1) - (5)]), (yylsp[(4) - (5)])); ;}
4218
#line 1086 "../parser/Grammar.y"
4219
{ (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) SwitchNode(GLOBAL_DATA, (yyvsp[(3) - (5)].expressionNode).m_node, (yyvsp[(5) - (5)].caseBlockNode).m_node), (yyvsp[(5) - (5)].caseBlockNode).m_varDeclarations, (yyvsp[(5) - (5)].caseBlockNode).m_funcDeclarations,
4220
(yyvsp[(3) - (5)].expressionNode).m_features | (yyvsp[(5) - (5)].caseBlockNode).m_features, (yyvsp[(3) - (5)].expressionNode).m_numConstants + (yyvsp[(5) - (5)].caseBlockNode).m_numConstants);
4221
setStatementLocation((yyval.statementNode).m_node, (yylsp[(1) - (5)]), (yylsp[(4) - (5)])); ;}
4225
#line 1092 "../parser/Grammar.y"
4226
{ (yyval.caseBlockNode) = createNodeDeclarationInfo<CaseBlockNode*>(new (GLOBAL_DATA) CaseBlockNode(GLOBAL_DATA, (yyvsp[(2) - (3)].clauseList).m_node.head, 0, 0), (yyvsp[(2) - (3)].clauseList).m_varDeclarations, (yyvsp[(2) - (3)].clauseList).m_funcDeclarations, (yyvsp[(2) - (3)].clauseList).m_features, (yyvsp[(2) - (3)].clauseList).m_numConstants); ;}
4230
#line 1094 "../parser/Grammar.y"
4231
{ (yyval.caseBlockNode) = createNodeDeclarationInfo<CaseBlockNode*>(new (GLOBAL_DATA) CaseBlockNode(GLOBAL_DATA, (yyvsp[(2) - (5)].clauseList).m_node.head, (yyvsp[(3) - (5)].caseClauseNode).m_node, (yyvsp[(4) - (5)].clauseList).m_node.head),
4232
mergeDeclarationLists(mergeDeclarationLists((yyvsp[(2) - (5)].clauseList).m_varDeclarations, (yyvsp[(3) - (5)].caseClauseNode).m_varDeclarations), (yyvsp[(4) - (5)].clauseList).m_varDeclarations),
4233
mergeDeclarationLists(mergeDeclarationLists((yyvsp[(2) - (5)].clauseList).m_funcDeclarations, (yyvsp[(3) - (5)].caseClauseNode).m_funcDeclarations), (yyvsp[(4) - (5)].clauseList).m_funcDeclarations),
4234
(yyvsp[(2) - (5)].clauseList).m_features | (yyvsp[(3) - (5)].caseClauseNode).m_features | (yyvsp[(4) - (5)].clauseList).m_features,
4235
(yyvsp[(2) - (5)].clauseList).m_numConstants + (yyvsp[(3) - (5)].caseClauseNode).m_numConstants + (yyvsp[(4) - (5)].clauseList).m_numConstants); ;}
4239
#line 1102 "../parser/Grammar.y"
4240
{ (yyval.clauseList).m_node.head = 0; (yyval.clauseList).m_node.tail = 0; (yyval.clauseList).m_varDeclarations = 0; (yyval.clauseList).m_funcDeclarations = 0; (yyval.clauseList).m_features = 0; (yyval.clauseList).m_numConstants = 0; ;}
4244
#line 1107 "../parser/Grammar.y"
4245
{ (yyval.clauseList).m_node.head = new (GLOBAL_DATA) ClauseListNode(GLOBAL_DATA, (yyvsp[(1) - (1)].caseClauseNode).m_node);
4246
(yyval.clauseList).m_node.tail = (yyval.clauseList).m_node.head;
4247
(yyval.clauseList).m_varDeclarations = (yyvsp[(1) - (1)].caseClauseNode).m_varDeclarations;
4248
(yyval.clauseList).m_funcDeclarations = (yyvsp[(1) - (1)].caseClauseNode).m_funcDeclarations;
4249
(yyval.clauseList).m_features = (yyvsp[(1) - (1)].caseClauseNode).m_features;
4250
(yyval.clauseList).m_numConstants = (yyvsp[(1) - (1)].caseClauseNode).m_numConstants; ;}
4254
#line 1113 "../parser/Grammar.y"
4255
{ (yyval.clauseList).m_node.head = (yyvsp[(1) - (2)].clauseList).m_node.head;
4256
(yyval.clauseList).m_node.tail = new (GLOBAL_DATA) ClauseListNode(GLOBAL_DATA, (yyvsp[(1) - (2)].clauseList).m_node.tail, (yyvsp[(2) - (2)].caseClauseNode).m_node);
4257
(yyval.clauseList).m_varDeclarations = mergeDeclarationLists((yyvsp[(1) - (2)].clauseList).m_varDeclarations, (yyvsp[(2) - (2)].caseClauseNode).m_varDeclarations);
4258
(yyval.clauseList).m_funcDeclarations = mergeDeclarationLists((yyvsp[(1) - (2)].clauseList).m_funcDeclarations, (yyvsp[(2) - (2)].caseClauseNode).m_funcDeclarations);
4259
(yyval.clauseList).m_features = (yyvsp[(1) - (2)].clauseList).m_features | (yyvsp[(2) - (2)].caseClauseNode).m_features;
4260
(yyval.clauseList).m_numConstants = (yyvsp[(1) - (2)].clauseList).m_numConstants + (yyvsp[(2) - (2)].caseClauseNode).m_numConstants;
4265
#line 1123 "../parser/Grammar.y"
4266
{ (yyval.caseClauseNode) = createNodeDeclarationInfo<CaseClauseNode*>(new (GLOBAL_DATA) CaseClauseNode(GLOBAL_DATA, (yyvsp[(2) - (3)].expressionNode).m_node), 0, 0, (yyvsp[(2) - (3)].expressionNode).m_features, (yyvsp[(2) - (3)].expressionNode).m_numConstants); ;}
4270
#line 1124 "../parser/Grammar.y"
4271
{ (yyval.caseClauseNode) = createNodeDeclarationInfo<CaseClauseNode*>(new (GLOBAL_DATA) CaseClauseNode(GLOBAL_DATA, (yyvsp[(2) - (4)].expressionNode).m_node, (yyvsp[(4) - (4)].sourceElements).m_node), (yyvsp[(4) - (4)].sourceElements).m_varDeclarations, (yyvsp[(4) - (4)].sourceElements).m_funcDeclarations, (yyvsp[(2) - (4)].expressionNode).m_features | (yyvsp[(4) - (4)].sourceElements).m_features, (yyvsp[(2) - (4)].expressionNode).m_numConstants + (yyvsp[(4) - (4)].sourceElements).m_numConstants); ;}
4275
#line 1128 "../parser/Grammar.y"
4276
{ (yyval.caseClauseNode) = createNodeDeclarationInfo<CaseClauseNode*>(new (GLOBAL_DATA) CaseClauseNode(GLOBAL_DATA, 0), 0, 0, 0, 0); ;}
4280
#line 1129 "../parser/Grammar.y"
4281
{ (yyval.caseClauseNode) = createNodeDeclarationInfo<CaseClauseNode*>(new (GLOBAL_DATA) CaseClauseNode(GLOBAL_DATA, 0, (yyvsp[(3) - (3)].sourceElements).m_node), (yyvsp[(3) - (3)].sourceElements).m_varDeclarations, (yyvsp[(3) - (3)].sourceElements).m_funcDeclarations, (yyvsp[(3) - (3)].sourceElements).m_features, (yyvsp[(3) - (3)].sourceElements).m_numConstants); ;}
4285
#line 1133 "../parser/Grammar.y"
4286
{ LabelNode* node = new (GLOBAL_DATA) LabelNode(GLOBAL_DATA, *(yyvsp[(1) - (3)].ident), (yyvsp[(3) - (3)].statementNode).m_node);
4287
setExceptionLocation(node, (yylsp[(1) - (3)]).first_column, (yylsp[(2) - (3)]).last_column, (yylsp[(2) - (3)]).last_column);
4288
(yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(node, (yyvsp[(3) - (3)].statementNode).m_varDeclarations, (yyvsp[(3) - (3)].statementNode).m_funcDeclarations, (yyvsp[(3) - (3)].statementNode).m_features, (yyvsp[(3) - (3)].statementNode).m_numConstants); ;}
4292
#line 1139 "../parser/Grammar.y"
4293
{ ThrowNode* node = new (GLOBAL_DATA) ThrowNode(GLOBAL_DATA, (yyvsp[(2) - (3)].expressionNode).m_node);
4294
setExceptionLocation(node, (yylsp[(1) - (3)]).first_column, (yylsp[(2) - (3)]).last_column, (yylsp[(2) - (3)]).last_column);
4295
(yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(node, 0, 0, (yyvsp[(2) - (3)].expressionNode).m_features, (yyvsp[(2) - (3)].expressionNode).m_numConstants); setStatementLocation((yyval.statementNode).m_node, (yylsp[(1) - (3)]), (yylsp[(2) - (3)]));
4300
#line 1143 "../parser/Grammar.y"
4301
{ ThrowNode* node = new (GLOBAL_DATA) ThrowNode(GLOBAL_DATA, (yyvsp[(2) - (3)].expressionNode).m_node);
4302
setExceptionLocation(node, (yylsp[(1) - (3)]).first_column, (yylsp[(2) - (3)]).last_column, (yylsp[(2) - (3)]).last_column);
4303
(yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(node, 0, 0, (yyvsp[(2) - (3)].expressionNode).m_features, (yyvsp[(2) - (3)].expressionNode).m_numConstants); setStatementLocation((yyval.statementNode).m_node, (yylsp[(1) - (3)]), (yylsp[(2) - (3)])); AUTO_SEMICOLON;
4308
#line 1150 "../parser/Grammar.y"
4309
{ (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) TryNode(GLOBAL_DATA, (yyvsp[(2) - (4)].statementNode).m_node, GLOBAL_DATA->propertyNames->nullIdentifier, false, 0, (yyvsp[(4) - (4)].statementNode).m_node),
4310
mergeDeclarationLists((yyvsp[(2) - (4)].statementNode).m_varDeclarations, (yyvsp[(4) - (4)].statementNode).m_varDeclarations),
4311
mergeDeclarationLists((yyvsp[(2) - (4)].statementNode).m_funcDeclarations, (yyvsp[(4) - (4)].statementNode).m_funcDeclarations),
4312
(yyvsp[(2) - (4)].statementNode).m_features | (yyvsp[(4) - (4)].statementNode).m_features,
4313
(yyvsp[(2) - (4)].statementNode).m_numConstants + (yyvsp[(4) - (4)].statementNode).m_numConstants);
4314
setStatementLocation((yyval.statementNode).m_node, (yylsp[(1) - (4)]), (yylsp[(2) - (4)])); ;}
4318
#line 1156 "../parser/Grammar.y"
4319
{ (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) TryNode(GLOBAL_DATA, (yyvsp[(2) - (7)].statementNode).m_node, *(yyvsp[(5) - (7)].ident), ((yyvsp[(7) - (7)].statementNode).m_features & EvalFeature) != 0, (yyvsp[(7) - (7)].statementNode).m_node, 0),
4320
mergeDeclarationLists((yyvsp[(2) - (7)].statementNode).m_varDeclarations, (yyvsp[(7) - (7)].statementNode).m_varDeclarations),
4321
mergeDeclarationLists((yyvsp[(2) - (7)].statementNode).m_funcDeclarations, (yyvsp[(7) - (7)].statementNode).m_funcDeclarations),
4322
(yyvsp[(2) - (7)].statementNode).m_features | (yyvsp[(7) - (7)].statementNode).m_features | CatchFeature,
4323
(yyvsp[(2) - (7)].statementNode).m_numConstants + (yyvsp[(7) - (7)].statementNode).m_numConstants);
4324
setStatementLocation((yyval.statementNode).m_node, (yylsp[(1) - (7)]), (yylsp[(2) - (7)])); ;}
4328
#line 1163 "../parser/Grammar.y"
4329
{ (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) TryNode(GLOBAL_DATA, (yyvsp[(2) - (9)].statementNode).m_node, *(yyvsp[(5) - (9)].ident), ((yyvsp[(7) - (9)].statementNode).m_features & EvalFeature) != 0, (yyvsp[(7) - (9)].statementNode).m_node, (yyvsp[(9) - (9)].statementNode).m_node),
4330
mergeDeclarationLists(mergeDeclarationLists((yyvsp[(2) - (9)].statementNode).m_varDeclarations, (yyvsp[(7) - (9)].statementNode).m_varDeclarations), (yyvsp[(9) - (9)].statementNode).m_varDeclarations),
4331
mergeDeclarationLists(mergeDeclarationLists((yyvsp[(2) - (9)].statementNode).m_funcDeclarations, (yyvsp[(7) - (9)].statementNode).m_funcDeclarations), (yyvsp[(9) - (9)].statementNode).m_funcDeclarations),
4332
(yyvsp[(2) - (9)].statementNode).m_features | (yyvsp[(7) - (9)].statementNode).m_features | (yyvsp[(9) - (9)].statementNode).m_features | CatchFeature,
4333
(yyvsp[(2) - (9)].statementNode).m_numConstants + (yyvsp[(7) - (9)].statementNode).m_numConstants + (yyvsp[(9) - (9)].statementNode).m_numConstants);
4334
setStatementLocation((yyval.statementNode).m_node, (yylsp[(1) - (9)]), (yylsp[(2) - (9)])); ;}
4338
#line 1172 "../parser/Grammar.y"
4339
{ (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) DebuggerStatementNode(GLOBAL_DATA), 0, 0, 0, 0);
4340
setStatementLocation((yyval.statementNode).m_node, (yylsp[(1) - (2)]), (yylsp[(2) - (2)])); ;}
4344
#line 1174 "../parser/Grammar.y"
4345
{ (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) DebuggerStatementNode(GLOBAL_DATA), 0, 0, 0, 0);
4346
setStatementLocation((yyval.statementNode).m_node, (yylsp[(1) - (2)]), (yylsp[(1) - (2)])); AUTO_SEMICOLON; ;}
4350
#line 1179 "../parser/Grammar.y"
4351
{ (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) FuncDeclNode(GLOBAL_DATA, *(yyvsp[(2) - (7)].ident), (yyvsp[(6) - (7)].functionBodyNode), GLOBAL_DATA->lexer->sourceCode((yyvsp[(5) - (7)].intValue), (yyvsp[(7) - (7)].intValue), (yylsp[(5) - (7)]).first_line)), 0, new (GLOBAL_DATA) ParserArenaData<DeclarationStacks::FunctionStack>, ((*(yyvsp[(2) - (7)].ident) == GLOBAL_DATA->propertyNames->arguments) ? ArgumentsFeature : 0) | ClosureFeature, 0); setStatementLocation((yyvsp[(6) - (7)].functionBodyNode), (yylsp[(5) - (7)]), (yylsp[(7) - (7)])); (yyval.statementNode).m_funcDeclarations->data.append(static_cast<FuncDeclNode*>((yyval.statementNode).m_node)->body()); ;}
4355
#line 1181 "../parser/Grammar.y"
4357
(yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) FuncDeclNode(GLOBAL_DATA, *(yyvsp[(2) - (8)].ident), (yyvsp[(7) - (8)].functionBodyNode), GLOBAL_DATA->lexer->sourceCode((yyvsp[(6) - (8)].intValue), (yyvsp[(8) - (8)].intValue), (yylsp[(6) - (8)]).first_line), (yyvsp[(4) - (8)].parameterList).m_node.head), 0, new (GLOBAL_DATA) ParserArenaData<DeclarationStacks::FunctionStack>, ((*(yyvsp[(2) - (8)].ident) == GLOBAL_DATA->propertyNames->arguments) ? ArgumentsFeature : 0) | (yyvsp[(4) - (8)].parameterList).m_features | ClosureFeature, 0);
4358
if ((yyvsp[(4) - (8)].parameterList).m_features & ArgumentsFeature)
4359
(yyvsp[(7) - (8)].functionBodyNode)->setUsesArguments();
4360
setStatementLocation((yyvsp[(7) - (8)].functionBodyNode), (yylsp[(6) - (8)]), (yylsp[(8) - (8)]));
4361
(yyval.statementNode).m_funcDeclarations->data.append(static_cast<FuncDeclNode*>((yyval.statementNode).m_node)->body());
4366
#line 1191 "../parser/Grammar.y"
4367
{ (yyval.funcExprNode) = createNodeInfo(new (GLOBAL_DATA) FuncExprNode(GLOBAL_DATA, GLOBAL_DATA->propertyNames->nullIdentifier, (yyvsp[(5) - (6)].functionBodyNode), GLOBAL_DATA->lexer->sourceCode((yyvsp[(4) - (6)].intValue), (yyvsp[(6) - (6)].intValue), (yylsp[(4) - (6)]).first_line)), ClosureFeature, 0); setStatementLocation((yyvsp[(5) - (6)].functionBodyNode), (yylsp[(4) - (6)]), (yylsp[(6) - (6)])); ;}
4371
#line 1193 "../parser/Grammar.y"
4373
(yyval.funcExprNode) = createNodeInfo(new (GLOBAL_DATA) FuncExprNode(GLOBAL_DATA, GLOBAL_DATA->propertyNames->nullIdentifier, (yyvsp[(6) - (7)].functionBodyNode), GLOBAL_DATA->lexer->sourceCode((yyvsp[(5) - (7)].intValue), (yyvsp[(7) - (7)].intValue), (yylsp[(5) - (7)]).first_line), (yyvsp[(3) - (7)].parameterList).m_node.head), (yyvsp[(3) - (7)].parameterList).m_features | ClosureFeature, 0);
4374
if ((yyvsp[(3) - (7)].parameterList).m_features & ArgumentsFeature)
4375
(yyvsp[(6) - (7)].functionBodyNode)->setUsesArguments();
4376
setStatementLocation((yyvsp[(6) - (7)].functionBodyNode), (yylsp[(5) - (7)]), (yylsp[(7) - (7)]));
4381
#line 1199 "../parser/Grammar.y"
4382
{ (yyval.funcExprNode) = createNodeInfo(new (GLOBAL_DATA) FuncExprNode(GLOBAL_DATA, *(yyvsp[(2) - (7)].ident), (yyvsp[(6) - (7)].functionBodyNode), GLOBAL_DATA->lexer->sourceCode((yyvsp[(5) - (7)].intValue), (yyvsp[(7) - (7)].intValue), (yylsp[(5) - (7)]).first_line)), ClosureFeature, 0); setStatementLocation((yyvsp[(6) - (7)].functionBodyNode), (yylsp[(5) - (7)]), (yylsp[(7) - (7)])); ;}
4386
#line 1201 "../parser/Grammar.y"
4388
(yyval.funcExprNode) = createNodeInfo(new (GLOBAL_DATA) FuncExprNode(GLOBAL_DATA, *(yyvsp[(2) - (8)].ident), (yyvsp[(7) - (8)].functionBodyNode), GLOBAL_DATA->lexer->sourceCode((yyvsp[(6) - (8)].intValue), (yyvsp[(8) - (8)].intValue), (yylsp[(6) - (8)]).first_line), (yyvsp[(4) - (8)].parameterList).m_node.head), (yyvsp[(4) - (8)].parameterList).m_features | ClosureFeature, 0);
4389
if ((yyvsp[(4) - (8)].parameterList).m_features & ArgumentsFeature)
4390
(yyvsp[(7) - (8)].functionBodyNode)->setUsesArguments();
4391
setStatementLocation((yyvsp[(7) - (8)].functionBodyNode), (yylsp[(6) - (8)]), (yylsp[(8) - (8)]));
4396
#line 1210 "../parser/Grammar.y"
4397
{ (yyval.parameterList).m_node.head = new (GLOBAL_DATA) ParameterNode(GLOBAL_DATA, *(yyvsp[(1) - (1)].ident));
4398
(yyval.parameterList).m_features = (*(yyvsp[(1) - (1)].ident) == GLOBAL_DATA->propertyNames->arguments) ? ArgumentsFeature : 0;
4399
(yyval.parameterList).m_node.tail = (yyval.parameterList).m_node.head; ;}
4403
#line 1213 "../parser/Grammar.y"
4404
{ (yyval.parameterList).m_node.head = (yyvsp[(1) - (3)].parameterList).m_node.head;
4405
(yyval.parameterList).m_features = (yyvsp[(1) - (3)].parameterList).m_features | ((*(yyvsp[(3) - (3)].ident) == GLOBAL_DATA->propertyNames->arguments) ? ArgumentsFeature : 0);
4406
(yyval.parameterList).m_node.tail = new (GLOBAL_DATA) ParameterNode(GLOBAL_DATA, (yyvsp[(1) - (3)].parameterList).m_node.tail, *(yyvsp[(3) - (3)].ident)); ;}
4410
#line 1219 "../parser/Grammar.y"
4411
{ (yyval.functionBodyNode) = FunctionBodyNode::create(GLOBAL_DATA); ;}
4415
#line 1220 "../parser/Grammar.y"
4416
{ (yyval.functionBodyNode) = FunctionBodyNode::create(GLOBAL_DATA); ;}
4420
#line 1224 "../parser/Grammar.y"
4421
{ GLOBAL_DATA->parser->didFinishParsing(new (GLOBAL_DATA) SourceElements(GLOBAL_DATA), 0, 0, NoFeatures, (yylsp[(0) - (0)]).last_line, 0); ;}
4425
#line 1225 "../parser/Grammar.y"
4426
{ GLOBAL_DATA->parser->didFinishParsing((yyvsp[(1) - (1)].sourceElements).m_node, (yyvsp[(1) - (1)].sourceElements).m_varDeclarations, (yyvsp[(1) - (1)].sourceElements).m_funcDeclarations, (yyvsp[(1) - (1)].sourceElements).m_features,
4427
(yylsp[(1) - (1)]).last_line, (yyvsp[(1) - (1)].sourceElements).m_numConstants); ;}
4431
#line 1230 "../parser/Grammar.y"
4432
{ (yyval.sourceElements).m_node = new (GLOBAL_DATA) SourceElements(GLOBAL_DATA);
4433
(yyval.sourceElements).m_node->append((yyvsp[(1) - (1)].statementNode).m_node);
4434
(yyval.sourceElements).m_varDeclarations = (yyvsp[(1) - (1)].statementNode).m_varDeclarations;
4435
(yyval.sourceElements).m_funcDeclarations = (yyvsp[(1) - (1)].statementNode).m_funcDeclarations;
4436
(yyval.sourceElements).m_features = (yyvsp[(1) - (1)].statementNode).m_features;
4437
(yyval.sourceElements).m_numConstants = (yyvsp[(1) - (1)].statementNode).m_numConstants;
4442
#line 1237 "../parser/Grammar.y"
4443
{ (yyval.sourceElements).m_node->append((yyvsp[(2) - (2)].statementNode).m_node);
4444
(yyval.sourceElements).m_varDeclarations = mergeDeclarationLists((yyvsp[(1) - (2)].sourceElements).m_varDeclarations, (yyvsp[(2) - (2)].statementNode).m_varDeclarations);
4445
(yyval.sourceElements).m_funcDeclarations = mergeDeclarationLists((yyvsp[(1) - (2)].sourceElements).m_funcDeclarations, (yyvsp[(2) - (2)].statementNode).m_funcDeclarations);
4446
(yyval.sourceElements).m_features = (yyvsp[(1) - (2)].sourceElements).m_features | (yyvsp[(2) - (2)].statementNode).m_features;
4447
(yyval.sourceElements).m_numConstants = (yyvsp[(1) - (2)].sourceElements).m_numConstants + (yyvsp[(2) - (2)].statementNode).m_numConstants;
4452
#line 1251 "../parser/Grammar.y"
4457
#line 1252 "../parser/Grammar.y"
4462
#line 1253 "../parser/Grammar.y"
4463
{ if (!GLOBAL_DATA->lexer->skipRegExp()) YYABORT; ;}
4467
#line 1254 "../parser/Grammar.y"
4468
{ if (!GLOBAL_DATA->lexer->skipRegExp()) YYABORT; ;}
4472
#line 1258 "../parser/Grammar.y"
4477
#line 1259 "../parser/Grammar.y"
4482
#line 1260 "../parser/Grammar.y"
4487
#line 1261 "../parser/Grammar.y"
4488
{ if (*(yyvsp[(1) - (7)].ident) != "get" && *(yyvsp[(1) - (7)].ident) != "set") YYABORT; ;}
4492
#line 1262 "../parser/Grammar.y"
4493
{ if (*(yyvsp[(1) - (8)].ident) != "get" && *(yyvsp[(1) - (8)].ident) != "set") YYABORT; ;}
4497
#line 1272 "../parser/Grammar.y"
4502
#line 1273 "../parser/Grammar.y"
4507
#line 1275 "../parser/Grammar.y"
4512
#line 1282 "../parser/Grammar.y"
4517
#line 1650 "../parser/Grammar.y"
4522
#line 1651 "../parser/Grammar.y"
4527
#line 1656 "../parser/Grammar.y"
4528
{ AUTO_SEMICOLON; ;}
4532
#line 1660 "../parser/Grammar.y"
4537
#line 1661 "../parser/Grammar.y"
4542
#line 1667 "../parser/Grammar.y"
4547
#line 1668 "../parser/Grammar.y"
4552
#line 1675 "../parser/Grammar.y"
4553
{ AUTO_SEMICOLON; ;}
4557
#line 1684 "../parser/Grammar.y"
4562
#line 1685 "../parser/Grammar.y"
4567
#line 1702 "../parser/Grammar.y"
4568
{ AUTO_SEMICOLON; ;}
4572
#line 1733 "../parser/Grammar.y"
4573
{ AUTO_SEMICOLON; ;}
4577
#line 1735 "../parser/Grammar.y"
4578
{ AUTO_SEMICOLON; ;}
4582
#line 1740 "../parser/Grammar.y"
4583
{ AUTO_SEMICOLON; ;}
4587
#line 1742 "../parser/Grammar.y"
4588
{ AUTO_SEMICOLON; ;}
4592
#line 1747 "../parser/Grammar.y"
4593
{ AUTO_SEMICOLON; ;}
4597
#line 1749 "../parser/Grammar.y"
4598
{ AUTO_SEMICOLON; ;}
4602
#line 1761 "../parser/Grammar.y"
4607
#line 1762 "../parser/Grammar.y"
4612
#line 1786 "../parser/Grammar.y"
4617
#line 1791 "../parser/Grammar.y"
4618
{ AUTO_SEMICOLON; ;}
4622
#line 1802 "../parser/Grammar.y"
4623
{ AUTO_SEMICOLON; ;}
4627
#line 1818 "../parser/Grammar.y"
4632
/* Line 1267 of yacc.c. */
4633
#line 4634 "JavaScriptCore/tmp/../generated/Grammar.tab.c"
4636
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
4640
YY_STACK_PRINT (yyss, yyssp);
4645
/* Now `shift' the result of the reduction. Determine what state
4646
that goes to, based on the state we popped back to and the rule
4647
number reduced by. */
4651
yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
4652
if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
4653
yystate = yytable[yystate];
4655
yystate = yydefgoto[yyn - YYNTOKENS];
4660
/*------------------------------------.
4661
| yyerrlab -- here on detecting error |
4662
`------------------------------------*/
4664
/* If not already recovering from an error, report this error. */
4668
#if ! YYERROR_VERBOSE
4669
yyerror (YY_("syntax error"));
4672
YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
4673
if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
4675
YYSIZE_T yyalloc = 2 * yysize;
4676
if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
4677
yyalloc = YYSTACK_ALLOC_MAXIMUM;
4678
if (yymsg != yymsgbuf)
4679
YYSTACK_FREE (yymsg);
4680
yymsg = (char *) YYSTACK_ALLOC (yyalloc);
4682
yymsg_alloc = yyalloc;
4686
yymsg_alloc = sizeof yymsgbuf;
4690
if (0 < yysize && yysize <= yymsg_alloc)
4692
(void) yysyntax_error (yymsg, yystate, yychar);
4697
yyerror (YY_("syntax error"));
4699
goto yyexhaustedlab;
4705
yyerror_range[0] = yylloc;
4707
if (yyerrstatus == 3)
4709
/* If just tried and failed to reuse look-ahead token after an
4710
error, discard it. */
4712
if (yychar <= YYEOF)
4714
/* Return failure if at end of input. */
4715
if (yychar == YYEOF)
4720
yydestruct ("Error: discarding",
4721
yytoken, &yylval, &yylloc);
4726
/* Else will try to reuse look-ahead token after shifting the error
4731
/*---------------------------------------------------.
4732
| yyerrorlab -- error raised explicitly by YYERROR. |
4733
`---------------------------------------------------*/
4736
/* Pacify compilers like GCC when the user code never invokes
4737
YYERROR and the label yyerrorlab therefore never appears in user
4739
if (/*CONSTCOND*/ 0)
4742
yyerror_range[0] = yylsp[1-yylen];
4743
/* Do not reclaim the symbols of the rule which action triggered
4747
YY_STACK_PRINT (yyss, yyssp);
4752
/*-------------------------------------------------------------.
4753
| yyerrlab1 -- common code for both syntax error and YYERROR. |
4754
`-------------------------------------------------------------*/
4756
yyerrstatus = 3; /* Each real token shifted decrements this. */
4760
yyn = yypact[yystate];
4761
if (yyn != YYPACT_NINF)
4764
if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
4772
/* Pop the current state because it cannot handle the error token. */
4776
yyerror_range[0] = *yylsp;
4777
yydestruct ("Error: popping",
4778
yystos[yystate], yyvsp, yylsp);
4781
YY_STACK_PRINT (yyss, yyssp);
4789
yyerror_range[1] = yylloc;
4790
/* Using YYLLOC is tempting, but would change the location of
4791
the look-ahead. YYLOC is available though. */
4792
YYLLOC_DEFAULT (yyloc, (yyerror_range - 1), 2);
4795
/* Shift the error token. */
4796
YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
4802
/*-------------------------------------.
4803
| yyacceptlab -- YYACCEPT comes here. |
4804
`-------------------------------------*/
4809
/*-----------------------------------.
4810
| yyabortlab -- YYABORT comes here. |
4811
`-----------------------------------*/
4817
/*-------------------------------------------------.
4818
| yyexhaustedlab -- memory exhaustion comes here. |
4819
`-------------------------------------------------*/
4821
yyerror (YY_("memory exhausted"));
4827
if (yychar != YYEOF && yychar != YYEMPTY)
4828
yydestruct ("Cleanup: discarding lookahead",
4829
yytoken, &yylval, &yylloc);
4830
/* Do not reclaim the symbols of the rule which action triggered
4831
this YYABORT or YYACCEPT. */
4833
YY_STACK_PRINT (yyss, yyssp);
4834
while (yyssp != yyss)
4836
yydestruct ("Cleanup: popping",
4837
yystos[*yyssp], yyvsp, yylsp);
4842
YYSTACK_FREE (yyss);
4845
if (yymsg != yymsgbuf)
4846
YYSTACK_FREE (yymsg);
4848
/* Make sure YYID is used. */
4849
return YYID (yyresult);
4853
#line 1834 "../parser/Grammar.y"
4858
static ExpressionNode* makeAssignNode(JSGlobalData* globalData, ExpressionNode* loc, Operator op, ExpressionNode* expr, bool locHasAssignments, bool exprHasAssignments, int start, int divot, int end)
4860
if (!loc->isLocation())
4861
return new (globalData) AssignErrorNode(globalData, loc, op, expr, divot, divot - start, end - divot);
4863
if (loc->isResolveNode()) {
4864
ResolveNode* resolve = static_cast<ResolveNode*>(loc);
4865
if (op == OpEqual) {
4866
AssignResolveNode* node = new (globalData) AssignResolveNode(globalData, resolve->identifier(), expr, exprHasAssignments);
4867
setExceptionLocation(node, start, divot, end);
4870
return new (globalData) ReadModifyResolveNode(globalData, resolve->identifier(), op, expr, exprHasAssignments, divot, divot - start, end - divot);
4872
if (loc->isBracketAccessorNode()) {
4873
BracketAccessorNode* bracket = static_cast<BracketAccessorNode*>(loc);
4875
return new (globalData) AssignBracketNode(globalData, bracket->base(), bracket->subscript(), expr, locHasAssignments, exprHasAssignments, bracket->divot(), bracket->divot() - start, end - bracket->divot());
4877
ReadModifyBracketNode* node = new (globalData) ReadModifyBracketNode(globalData, bracket->base(), bracket->subscript(), op, expr, locHasAssignments, exprHasAssignments, divot, divot - start, end - divot);
4878
node->setSubexpressionInfo(bracket->divot(), bracket->endOffset());
4882
ASSERT(loc->isDotAccessorNode());
4883
DotAccessorNode* dot = static_cast<DotAccessorNode*>(loc);
4885
return new (globalData) AssignDotNode(globalData, dot->base(), dot->identifier(), expr, exprHasAssignments, dot->divot(), dot->divot() - start, end - dot->divot());
4887
ReadModifyDotNode* node = new (globalData) ReadModifyDotNode(globalData, dot->base(), dot->identifier(), op, expr, exprHasAssignments, divot, divot - start, end - divot);
4888
node->setSubexpressionInfo(dot->divot(), dot->endOffset());
4892
static ExpressionNode* makePrefixNode(JSGlobalData* globalData, ExpressionNode* expr, Operator op, int start, int divot, int end)
4894
if (!expr->isLocation())
4895
return new (globalData) PrefixErrorNode(globalData, expr, op, divot, divot - start, end - divot);
4897
if (expr->isResolveNode()) {
4898
ResolveNode* resolve = static_cast<ResolveNode*>(expr);
4899
return new (globalData) PrefixResolveNode(globalData, resolve->identifier(), op, divot, divot - start, end - divot);
4901
if (expr->isBracketAccessorNode()) {
4902
BracketAccessorNode* bracket = static_cast<BracketAccessorNode*>(expr);
4903
PrefixBracketNode* node = new (globalData) PrefixBracketNode(globalData, bracket->base(), bracket->subscript(), op, divot, divot - start, end - divot);
4904
node->setSubexpressionInfo(bracket->divot(), bracket->startOffset());
4907
ASSERT(expr->isDotAccessorNode());
4908
DotAccessorNode* dot = static_cast<DotAccessorNode*>(expr);
4909
PrefixDotNode* node = new (globalData) PrefixDotNode(globalData, dot->base(), dot->identifier(), op, divot, divot - start, end - divot);
4910
node->setSubexpressionInfo(dot->divot(), dot->startOffset());
4914
static ExpressionNode* makePostfixNode(JSGlobalData* globalData, ExpressionNode* expr, Operator op, int start, int divot, int end)
4916
if (!expr->isLocation())
4917
return new (globalData) PostfixErrorNode(globalData, expr, op, divot, divot - start, end - divot);
4919
if (expr->isResolveNode()) {
4920
ResolveNode* resolve = static_cast<ResolveNode*>(expr);
4921
return new (globalData) PostfixResolveNode(globalData, resolve->identifier(), op, divot, divot - start, end - divot);
4923
if (expr->isBracketAccessorNode()) {
4924
BracketAccessorNode* bracket = static_cast<BracketAccessorNode*>(expr);
4925
PostfixBracketNode* node = new (globalData) PostfixBracketNode(globalData, bracket->base(), bracket->subscript(), op, divot, divot - start, end - divot);
4926
node->setSubexpressionInfo(bracket->divot(), bracket->endOffset());
4930
ASSERT(expr->isDotAccessorNode());
4931
DotAccessorNode* dot = static_cast<DotAccessorNode*>(expr);
4932
PostfixDotNode* node = new (globalData) PostfixDotNode(globalData, dot->base(), dot->identifier(), op, divot, divot - start, end - divot);
4933
node->setSubexpressionInfo(dot->divot(), dot->endOffset());
4937
static ExpressionNodeInfo makeFunctionCallNode(JSGlobalData* globalData, ExpressionNodeInfo func, ArgumentsNodeInfo args, int start, int divot, int end)
4939
CodeFeatures features = func.m_features | args.m_features;
4940
int numConstants = func.m_numConstants + args.m_numConstants;
4941
if (!func.m_node->isLocation())
4942
return createNodeInfo<ExpressionNode*>(new (globalData) FunctionCallValueNode(globalData, func.m_node, args.m_node, divot, divot - start, end - divot), features, numConstants);
4943
if (func.m_node->isResolveNode()) {
4944
ResolveNode* resolve = static_cast<ResolveNode*>(func.m_node);
4945
const Identifier& identifier = resolve->identifier();
4946
if (identifier == globalData->propertyNames->eval)
4947
return createNodeInfo<ExpressionNode*>(new (globalData) EvalFunctionCallNode(globalData, args.m_node, divot, divot - start, end - divot), EvalFeature | features, numConstants);
4948
return createNodeInfo<ExpressionNode*>(new (globalData) FunctionCallResolveNode(globalData, identifier, args.m_node, divot, divot - start, end - divot), features, numConstants);
4950
if (func.m_node->isBracketAccessorNode()) {
4951
BracketAccessorNode* bracket = static_cast<BracketAccessorNode*>(func.m_node);
4952
FunctionCallBracketNode* node = new (globalData) FunctionCallBracketNode(globalData, bracket->base(), bracket->subscript(), args.m_node, divot, divot - start, end - divot);
4953
node->setSubexpressionInfo(bracket->divot(), bracket->endOffset());
4954
return createNodeInfo<ExpressionNode*>(node, features, numConstants);
4956
ASSERT(func.m_node->isDotAccessorNode());
4957
DotAccessorNode* dot = static_cast<DotAccessorNode*>(func.m_node);
4958
FunctionCallDotNode* node;
4959
if (dot->identifier() == globalData->propertyNames->call)
4960
node = new (globalData) CallFunctionCallDotNode(globalData, dot->base(), dot->identifier(), args.m_node, divot, divot - start, end - divot);
4961
else if (dot->identifier() == globalData->propertyNames->apply)
4962
node = new (globalData) ApplyFunctionCallDotNode(globalData, dot->base(), dot->identifier(), args.m_node, divot, divot - start, end - divot);
4964
node = new (globalData) FunctionCallDotNode(globalData, dot->base(), dot->identifier(), args.m_node, divot, divot - start, end - divot);
4965
node->setSubexpressionInfo(dot->divot(), dot->endOffset());
4966
return createNodeInfo<ExpressionNode*>(node, features, numConstants);
4969
static ExpressionNode* makeTypeOfNode(JSGlobalData* globalData, ExpressionNode* expr)
4971
if (expr->isResolveNode()) {
4972
ResolveNode* resolve = static_cast<ResolveNode*>(expr);
4973
return new (globalData) TypeOfResolveNode(globalData, resolve->identifier());
4975
return new (globalData) TypeOfValueNode(globalData, expr);
4978
static ExpressionNode* makeDeleteNode(JSGlobalData* globalData, ExpressionNode* expr, int start, int divot, int end)
4980
if (!expr->isLocation())
4981
return new (globalData) DeleteValueNode(globalData, expr);
4982
if (expr->isResolveNode()) {
4983
ResolveNode* resolve = static_cast<ResolveNode*>(expr);
4984
return new (globalData) DeleteResolveNode(globalData, resolve->identifier(), divot, divot - start, end - divot);
4986
if (expr->isBracketAccessorNode()) {
4987
BracketAccessorNode* bracket = static_cast<BracketAccessorNode*>(expr);
4988
return new (globalData) DeleteBracketNode(globalData, bracket->base(), bracket->subscript(), divot, divot - start, end - divot);
4990
ASSERT(expr->isDotAccessorNode());
4991
DotAccessorNode* dot = static_cast<DotAccessorNode*>(expr);
4992
return new (globalData) DeleteDotNode(globalData, dot->base(), dot->identifier(), divot, divot - start, end - divot);
4995
static PropertyNode* makeGetterOrSetterPropertyNode(JSGlobalData* globalData, const Identifier& getOrSet, const Identifier& name, ParameterNode* params, FunctionBodyNode* body, const SourceCode& source)
4997
PropertyNode::Type type;
4998
if (getOrSet == "get")
4999
type = PropertyNode::Getter;
5000
else if (getOrSet == "set")
5001
type = PropertyNode::Setter;
5004
return new (globalData) PropertyNode(globalData, name, new (globalData) FuncExprNode(globalData, globalData->propertyNames->nullIdentifier, body, source, params), type);
5007
static ExpressionNode* makeNegateNode(JSGlobalData* globalData, ExpressionNode* n)
5009
if (n->isNumber()) {
5010
NumberNode* number = static_cast<NumberNode*>(n);
5012
if (number->value() > 0.0) {
5013
number->setValue(-number->value());
5018
return new (globalData) NegateNode(globalData, n);
5021
static NumberNode* makeNumberNode(JSGlobalData* globalData, double d)
5023
return new (globalData) NumberNode(globalData, d);
5026
static ExpressionNode* makeBitwiseNotNode(JSGlobalData* globalData, ExpressionNode* expr)
5028
if (expr->isNumber())
5029
return makeNumberNode(globalData, ~toInt32(static_cast<NumberNode*>(expr)->value()));
5030
return new (globalData) BitwiseNotNode(globalData, expr);
5033
static ExpressionNode* makeMultNode(JSGlobalData* globalData, ExpressionNode* expr1, ExpressionNode* expr2, bool rightHasAssignments)
5035
expr1 = expr1->stripUnaryPlus();
5036
expr2 = expr2->stripUnaryPlus();
5038
if (expr1->isNumber() && expr2->isNumber())
5039
return makeNumberNode(globalData, static_cast<NumberNode*>(expr1)->value() * static_cast<NumberNode*>(expr2)->value());
5041
if (expr1->isNumber() && static_cast<NumberNode*>(expr1)->value() == 1)
5042
return new (globalData) UnaryPlusNode(globalData, expr2);
5044
if (expr2->isNumber() && static_cast<NumberNode*>(expr2)->value() == 1)
5045
return new (globalData) UnaryPlusNode(globalData, expr1);
5047
return new (globalData) MultNode(globalData, expr1, expr2, rightHasAssignments);
5050
static ExpressionNode* makeDivNode(JSGlobalData* globalData, ExpressionNode* expr1, ExpressionNode* expr2, bool rightHasAssignments)
5052
expr1 = expr1->stripUnaryPlus();
5053
expr2 = expr2->stripUnaryPlus();
5055
if (expr1->isNumber() && expr2->isNumber())
5056
return makeNumberNode(globalData, static_cast<NumberNode*>(expr1)->value() / static_cast<NumberNode*>(expr2)->value());
5057
return new (globalData) DivNode(globalData, expr1, expr2, rightHasAssignments);
5060
static ExpressionNode* makeAddNode(JSGlobalData* globalData, ExpressionNode* expr1, ExpressionNode* expr2, bool rightHasAssignments)
5062
if (expr1->isNumber() && expr2->isNumber())
5063
return makeNumberNode(globalData, static_cast<NumberNode*>(expr1)->value() + static_cast<NumberNode*>(expr2)->value());
5064
return new (globalData) AddNode(globalData, expr1, expr2, rightHasAssignments);
5067
static ExpressionNode* makeSubNode(JSGlobalData* globalData, ExpressionNode* expr1, ExpressionNode* expr2, bool rightHasAssignments)
5069
expr1 = expr1->stripUnaryPlus();
5070
expr2 = expr2->stripUnaryPlus();
5072
if (expr1->isNumber() && expr2->isNumber())
5073
return makeNumberNode(globalData, static_cast<NumberNode*>(expr1)->value() - static_cast<NumberNode*>(expr2)->value());
5074
return new (globalData) SubNode(globalData, expr1, expr2, rightHasAssignments);
5077
static ExpressionNode* makeLeftShiftNode(JSGlobalData* globalData, ExpressionNode* expr1, ExpressionNode* expr2, bool rightHasAssignments)
5079
if (expr1->isNumber() && expr2->isNumber())
5080
return makeNumberNode(globalData, toInt32(static_cast<NumberNode*>(expr1)->value()) << (toUInt32(static_cast<NumberNode*>(expr2)->value()) & 0x1f));
5081
return new (globalData) LeftShiftNode(globalData, expr1, expr2, rightHasAssignments);
5084
static ExpressionNode* makeRightShiftNode(JSGlobalData* globalData, ExpressionNode* expr1, ExpressionNode* expr2, bool rightHasAssignments)
5086
if (expr1->isNumber() && expr2->isNumber())
5087
return makeNumberNode(globalData, toInt32(static_cast<NumberNode*>(expr1)->value()) >> (toUInt32(static_cast<NumberNode*>(expr2)->value()) & 0x1f));
5088
return new (globalData) RightShiftNode(globalData, expr1, expr2, rightHasAssignments);
5091
// Called by yyparse on error.
5092
int yyerror(const char*)
5097
// May we automatically insert a semicolon?
5098
static bool allowAutomaticSemicolon(Lexer& lexer, int yychar)
5100
return yychar == CLOSEBRACE || yychar == 0 || lexer.prevTerminator();
5103
static ExpressionNode* combineCommaNodes(JSGlobalData* globalData, ExpressionNode* list, ExpressionNode* init)
5107
if (list->isCommaNode()) {
5108
static_cast<CommaNode*>(list)->append(init);
5111
return new (globalData) CommaNode(globalData, list, init);
5114
// We turn variable declarations into either assignments or empty
5115
// statements (which later get stripped out), because the actual
5116
// declaration work is hoisted up to the start of the function body
5117
static StatementNode* makeVarStatementNode(JSGlobalData* globalData, ExpressionNode* expr)
5120
return new (globalData) EmptyStatementNode(globalData);
5121
return new (globalData) VarStatementNode(globalData, expr);