~oif-team/ubuntu/natty/qt4-x11/xi2.1

« back to all changes in this revision

Viewing changes to src/3rdparty/javascriptcore/JavaScriptCore/generated/Grammar.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Alessandro Ghersi
  • Date: 2009-11-02 18:30:08 UTC
  • mfrom: (1.2.2 upstream)
  • mto: (15.2.5 experimental)
  • mto: This revision was merged to the branch mainline in revision 88.
  • Revision ID: james.westby@ubuntu.com-20091102183008-b6a4gcs128mvfb3m
Tags: upstream-4.6.0~beta1
ImportĀ upstreamĀ versionĀ 4.6.0~beta1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* A Bison parser, made by GNU Bison 2.3.  */
 
2
 
 
3
/* Skeleton implementation for Bison's Yacc-like parsers in C
 
4
 
 
5
   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
 
6
   Free Software Foundation, Inc.
 
7
 
 
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)
 
11
   any later version.
 
12
 
 
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.
 
17
 
 
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.  */
 
22
 
 
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.
 
32
 
 
33
   This special exception was added by the Free Software Foundation in
 
34
   version 2.2 of Bison.  */
 
35
 
 
36
/* C LALR(1) parser skeleton written by Richard Stallman, by
 
37
   simplifying the original so-called "semantic" parser.  */
 
38
 
 
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.  */
 
45
 
 
46
/* Identify Bison output.  */
 
47
#define YYBISON 1
 
48
 
 
49
/* Bison version.  */
 
50
#define YYBISON_VERSION "2.3"
 
51
 
 
52
/* Skeleton name.  */
 
53
#define YYSKELETON_NAME "yacc.c"
 
54
 
 
55
/* Pure parsers.  */
 
56
#define YYPURE 1
 
57
 
 
58
/* Using locations.  */
 
59
#define YYLSP_NEEDED 1
 
60
 
 
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
 
70
 
 
71
/* Tokens.  */
 
72
#ifndef YYTOKENTYPE
 
73
# define YYTOKENTYPE
 
74
   /* Put the tokens into the symbol table, so that GDB and other debuggers
 
75
      know about them.  */
 
76
   enum yytokentype {
 
77
     NULLTOKEN = 258,
 
78
     TRUETOKEN = 259,
 
79
     FALSETOKEN = 260,
 
80
     BREAK = 261,
 
81
     CASE = 262,
 
82
     DEFAULT = 263,
 
83
     FOR = 264,
 
84
     NEW = 265,
 
85
     VAR = 266,
 
86
     CONSTTOKEN = 267,
 
87
     CONTINUE = 268,
 
88
     FUNCTION = 269,
 
89
     RETURN = 270,
 
90
     VOIDTOKEN = 271,
 
91
     DELETETOKEN = 272,
 
92
     IF = 273,
 
93
     THISTOKEN = 274,
 
94
     DO = 275,
 
95
     WHILE = 276,
 
96
     INTOKEN = 277,
 
97
     INSTANCEOF = 278,
 
98
     TYPEOF = 279,
 
99
     SWITCH = 280,
 
100
     WITH = 281,
 
101
     RESERVED = 282,
 
102
     THROW = 283,
 
103
     TRY = 284,
 
104
     CATCH = 285,
 
105
     FINALLY = 286,
 
106
     DEBUGGER = 287,
 
107
     IF_WITHOUT_ELSE = 288,
 
108
     ELSE = 289,
 
109
     EQEQ = 290,
 
110
     NE = 291,
 
111
     STREQ = 292,
 
112
     STRNEQ = 293,
 
113
     LE = 294,
 
114
     GE = 295,
 
115
     OR = 296,
 
116
     AND = 297,
 
117
     PLUSPLUS = 298,
 
118
     MINUSMINUS = 299,
 
119
     LSHIFT = 300,
 
120
     RSHIFT = 301,
 
121
     URSHIFT = 302,
 
122
     PLUSEQUAL = 303,
 
123
     MINUSEQUAL = 304,
 
124
     MULTEQUAL = 305,
 
125
     DIVEQUAL = 306,
 
126
     LSHIFTEQUAL = 307,
 
127
     RSHIFTEQUAL = 308,
 
128
     URSHIFTEQUAL = 309,
 
129
     ANDEQUAL = 310,
 
130
     MODEQUAL = 311,
 
131
     XOREQUAL = 312,
 
132
     OREQUAL = 313,
 
133
     OPENBRACE = 314,
 
134
     CLOSEBRACE = 315,
 
135
     NUMBER = 316,
 
136
     IDENT = 317,
 
137
     STRING = 318,
 
138
     AUTOPLUSPLUS = 319,
 
139
     AUTOMINUSMINUS = 320
 
140
   };
 
141
#endif
 
142
/* Tokens.  */
 
143
#define NULLTOKEN 258
 
144
#define TRUETOKEN 259
 
145
#define FALSETOKEN 260
 
146
#define BREAK 261
 
147
#define CASE 262
 
148
#define DEFAULT 263
 
149
#define FOR 264
 
150
#define NEW 265
 
151
#define VAR 266
 
152
#define CONSTTOKEN 267
 
153
#define CONTINUE 268
 
154
#define FUNCTION 269
 
155
#define RETURN 270
 
156
#define VOIDTOKEN 271
 
157
#define DELETETOKEN 272
 
158
#define IF 273
 
159
#define THISTOKEN 274
 
160
#define DO 275
 
161
#define WHILE 276
 
162
#define INTOKEN 277
 
163
#define INSTANCEOF 278
 
164
#define TYPEOF 279
 
165
#define SWITCH 280
 
166
#define WITH 281
 
167
#define RESERVED 282
 
168
#define THROW 283
 
169
#define TRY 284
 
170
#define CATCH 285
 
171
#define FINALLY 286
 
172
#define DEBUGGER 287
 
173
#define IF_WITHOUT_ELSE 288
 
174
#define ELSE 289
 
175
#define EQEQ 290
 
176
#define NE 291
 
177
#define STREQ 292
 
178
#define STRNEQ 293
 
179
#define LE 294
 
180
#define GE 295
 
181
#define OR 296
 
182
#define AND 297
 
183
#define PLUSPLUS 298
 
184
#define MINUSMINUS 299
 
185
#define LSHIFT 300
 
186
#define RSHIFT 301
 
187
#define URSHIFT 302
 
188
#define PLUSEQUAL 303
 
189
#define MINUSEQUAL 304
 
190
#define MULTEQUAL 305
 
191
#define DIVEQUAL 306
 
192
#define LSHIFTEQUAL 307
 
193
#define RSHIFTEQUAL 308
 
194
#define URSHIFTEQUAL 309
 
195
#define ANDEQUAL 310
 
196
#define MODEQUAL 311
 
197
#define XOREQUAL 312
 
198
#define OREQUAL 313
 
199
#define OPENBRACE 314
 
200
#define CLOSEBRACE 315
 
201
#define NUMBER 316
 
202
#define IDENT 317
 
203
#define STRING 318
 
204
#define AUTOPLUSPLUS 319
 
205
#define AUTOMINUSMINUS 320
 
206
 
 
207
 
 
208
 
 
209
 
 
210
/* Copy the first part of user declarations.  */
 
211
#line 3 "../parser/Grammar.y"
 
212
 
 
213
 
 
214
/*
 
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>
 
218
 *
 
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.
 
223
 *
 
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.
 
228
 *
 
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
 
232
 *
 
233
 */
 
234
 
 
235
#include "config.h"
 
236
 
 
237
#include "JSObject.h"
 
238
#include "JSString.h"
 
239
#include "NodeConstructors.h"
 
240
#include "NodeInfo.h"
 
241
#include <stdlib.h>
 
242
#include <string.h>
 
243
#include <wtf/MathExtras.h>
 
244
 
 
245
#define YYMALLOC fastMalloc
 
246
#define YYFREE fastFree
 
247
 
 
248
#define YYMAXDEPTH 10000
 
249
#define YYENABLE_NLS 0
 
250
 
 
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
 
258
#endif
 
259
 
 
260
int jscyylex(void* lvalp, void* llocp, void* globalPtr);
 
261
int jscyyerror(const char*);
 
262
 
 
263
static inline bool allowAutomaticSemicolon(JSC::Lexer&, int);
 
264
 
 
265
#define GLOBAL_DATA static_cast<JSGlobalData*>(globalPtr)
 
266
#define AUTO_SEMICOLON do { if (!allowAutomaticSemicolon(*GLOBAL_DATA->lexer, yychar)) YYABORT; } while (0)
 
267
 
 
268
using namespace JSC;
 
269
using namespace std;
 
270
 
 
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);
 
289
 
 
290
#if COMPILER(MSVC)
 
291
 
 
292
#pragma warning(disable: 4065)
 
293
#pragma warning(disable: 4244)
 
294
#pragma warning(disable: 4702)
 
295
 
 
296
#endif
 
297
 
 
298
#define YYPARSE_PARAM globalPtr
 
299
#define YYLEX_PARAM globalPtr
 
300
 
 
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) 
 
305
{
 
306
    ASSERT((info & ~AllFeatures) == 0);
 
307
    NodeDeclarationInfo<T> result = { node, varDecls, funcDecls, info, numConstants };
 
308
    return result;
 
309
}
 
310
 
 
311
template <typename T> inline NodeInfo<T> createNodeInfo(T node, CodeFeatures info, int numConstants)
 
312
{
 
313
    ASSERT((info & ~AllFeatures) == 0);
 
314
    NodeInfo<T> result = { node, info, numConstants };
 
315
    return result;
 
316
}
 
317
 
 
318
template <typename T> inline T mergeDeclarationLists(T decls1, T decls2) 
 
319
{
 
320
    // decls1 or both are null
 
321
    if (!decls1)
 
322
        return decls2;
 
323
    // only decls1 is non-null
 
324
    if (!decls2)
 
325
        return decls1;
 
326
 
 
327
    // Both are non-null
 
328
    decls1->data.append(decls2->data);
 
329
    
 
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();
 
333
 
 
334
    return decls1;
 
335
}
 
336
 
 
337
static inline void appendToVarDeclarationList(JSGlobalData* globalData, ParserArenaData<DeclarationStacks::VarStack>*& varDecls, const Identifier& ident, unsigned attrs)
 
338
{
 
339
    if (!varDecls)
 
340
        varDecls = new (globalData) ParserArenaData<DeclarationStacks::VarStack>;
 
341
 
 
342
    varDecls->data.append(make_pair(&ident, attrs));
 
343
}
 
344
 
 
345
static inline void appendToVarDeclarationList(JSGlobalData* globalData, ParserArenaData<DeclarationStacks::VarStack>*& varDecls, ConstDeclNode* decl)
 
346
{
 
347
    unsigned attrs = DeclarationStacks::IsConstant;
 
348
    if (decl->hasInitializer())
 
349
        attrs |= DeclarationStacks::HasInitializer;        
 
350
    appendToVarDeclarationList(globalData, varDecls, decl->ident(), attrs);
 
351
}
 
352
 
 
353
 
 
354
 
 
355
/* Enabling traces.  */
 
356
#ifndef YYDEBUG
 
357
# define YYDEBUG 0
 
358
#endif
 
359
 
 
360
/* Enabling verbose error messages.  */
 
361
#ifdef YYERROR_VERBOSE
 
362
# undef YYERROR_VERBOSE
 
363
# define YYERROR_VERBOSE 1
 
364
#else
 
365
# define YYERROR_VERBOSE 0
 
366
#endif
 
367
 
 
368
/* Enabling the token table.  */
 
369
#ifndef YYTOKEN_TABLE
 
370
# define YYTOKEN_TABLE 0
 
371
#endif
 
372
 
 
373
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
 
374
typedef union YYSTYPE
 
375
#line 146 "../parser/Grammar.y"
 
376
{
 
377
    int                 intValue;
 
378
    double              doubleValue;
 
379
    const Identifier*   ident;
 
380
 
 
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;
 
390
 
 
391
    // statement nodes
 
392
    StatementNodeInfo   statementNode;
 
393
    FunctionBodyNode*   functionBodyNode;
 
394
    ProgramNode*        programNode;
 
395
 
 
396
    SourceElementsInfo  sourceElements;
 
397
    PropertyListInfo    propertyList;
 
398
    ArgumentListInfo    argumentList;
 
399
    VarDeclListInfo     varDeclList;
 
400
    ConstDeclListInfo   constDeclList;
 
401
    ClauseListInfo      clauseList;
 
402
    ElementListInfo     elementList;
 
403
    ParameterListInfo   parameterList;
 
404
 
 
405
    Operator            op;
 
406
}
 
407
/* Line 187 of yacc.c.  */
 
408
#line 409 "JavaScriptCore/tmp/../generated/Grammar.tab.c"
 
409
        YYSTYPE;
 
410
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
 
411
# define YYSTYPE_IS_DECLARED 1
 
412
# define YYSTYPE_IS_TRIVIAL 1
 
413
#endif
 
414
 
 
415
#if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
 
416
typedef struct YYLTYPE
 
417
{
 
418
  int first_line;
 
419
  int first_column;
 
420
  int last_line;
 
421
  int last_column;
 
422
} YYLTYPE;
 
423
# define yyltype YYLTYPE /* obsolescent; will be withdrawn */
 
424
# define YYLTYPE_IS_DECLARED 1
 
425
# define YYLTYPE_IS_TRIVIAL 1
 
426
#endif
 
427
 
 
428
 
 
429
/* Copy the second part of user declarations.  */
 
430
#line 178 "../parser/Grammar.y"
 
431
 
 
432
 
 
433
template <typename T> inline void setStatementLocation(StatementNode* statement, const T& start, const T& end)
 
434
{
 
435
    statement->setLoc(start.first_line, end.last_line, start.first_column);
 
436
}
 
437
 
 
438
static inline void setExceptionLocation(ThrowableExpressionData* node, unsigned start, unsigned divot, unsigned end)
 
439
{
 
440
    node->setExceptionSourceCode(divot, divot - start, end - divot);
 
441
}
 
442
 
 
443
 
 
444
 
 
445
/* Line 216 of yacc.c.  */
 
446
#line 447 "JavaScriptCore/tmp/../generated/Grammar.tab.c"
 
447
 
 
448
#ifdef short
 
449
# undef short
 
450
#endif
 
451
 
 
452
#ifdef YYTYPE_UINT8
 
453
typedef YYTYPE_UINT8 yytype_uint8;
 
454
#else
 
455
typedef unsigned char yytype_uint8;
 
456
#endif
 
457
 
 
458
#ifdef YYTYPE_INT8
 
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;
 
463
#else
 
464
typedef short int yytype_int8;
 
465
#endif
 
466
 
 
467
#ifdef YYTYPE_UINT16
 
468
typedef YYTYPE_UINT16 yytype_uint16;
 
469
#else
 
470
typedef unsigned short int yytype_uint16;
 
471
#endif
 
472
 
 
473
#ifdef YYTYPE_INT16
 
474
typedef YYTYPE_INT16 yytype_int16;
 
475
#else
 
476
typedef short int yytype_int16;
 
477
#endif
 
478
 
 
479
#ifndef YYSIZE_T
 
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
 
488
# else
 
489
#  define YYSIZE_T unsigned int
 
490
# endif
 
491
#endif
 
492
 
 
493
#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
 
494
 
 
495
#ifndef YY_
 
496
# if YYENABLE_NLS
 
497
#  if ENABLE_NLS
 
498
#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
 
499
#   define YY_(msgid) dgettext ("bison-runtime", msgid)
 
500
#  endif
 
501
# endif
 
502
# ifndef YY_
 
503
#  define YY_(msgid) msgid
 
504
# endif
 
505
#endif
 
506
 
 
507
/* Suppress unused-variable warnings by "using" E.  */
 
508
#if ! defined lint || defined __GNUC__
 
509
# define YYUSE(e) ((void) (e))
 
510
#else
 
511
# define YYUSE(e) /* empty */
 
512
#endif
 
513
 
 
514
/* Identity function, used to suppress warnings about constant conditions.  */
 
515
#ifndef lint
 
516
# define YYID(n) (n)
 
517
#else
 
518
#if (defined __STDC__ || defined __C99__FUNC__ \
 
519
     || defined __cplusplus || defined _MSC_VER)
 
520
static int
 
521
YYID (int i)
 
522
#else
 
523
static int
 
524
YYID (i)
 
525
    int i;
 
526
#endif
 
527
{
 
528
  return i;
 
529
}
 
530
#endif
 
531
 
 
532
#if ! defined yyoverflow || YYERROR_VERBOSE
 
533
 
 
534
/* The parser invokes alloca or malloc; define the necessary symbols.  */
 
535
 
 
536
# ifdef YYSTACK_USE_ALLOCA
 
537
#  if YYSTACK_USE_ALLOCA
 
538
#   ifdef __GNUC__
 
539
#    define YYSTACK_ALLOC __builtin_alloca
 
540
#   elif defined __BUILTIN_VA_ARG_INCR
 
541
#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
 
542
#   elif defined _AIX
 
543
#    define YYSTACK_ALLOC __alloca
 
544
#   elif defined _MSC_VER
 
545
#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
 
546
#    define alloca _alloca
 
547
#   else
 
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 */
 
552
#     ifndef _STDLIB_H
 
553
#      define _STDLIB_H 1
 
554
#     endif
 
555
#    endif
 
556
#   endif
 
557
#  endif
 
558
# endif
 
559
 
 
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 */
 
569
#  endif
 
570
# else
 
571
#  define YYSTACK_ALLOC YYMALLOC
 
572
#  define YYSTACK_FREE YYFREE
 
573
#  ifndef YYSTACK_ALLOC_MAXIMUM
 
574
#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
 
575
#  endif
 
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 */
 
580
#   ifndef _STDLIB_H
 
581
#    define _STDLIB_H 1
 
582
#   endif
 
583
#  endif
 
584
#  ifndef YYMALLOC
 
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 */
 
589
#   endif
 
590
#  endif
 
591
#  ifndef YYFREE
 
592
#   define YYFREE free
 
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 */
 
596
#   endif
 
597
#  endif
 
598
# endif
 
599
#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
 
600
 
 
601
 
 
602
#if (! defined yyoverflow \
 
603
     && (! defined __cplusplus \
 
604
         || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
 
605
             && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
 
606
 
 
607
/* A type that is properly aligned for any stack member.  */
 
608
union yyalloc
 
609
{
 
610
  yytype_int16 yyss;
 
611
  YYSTYPE yyvs;
 
612
    YYLTYPE yyls;
 
613
};
 
614
 
 
615
/* The size of the maximum gap between one aligned stack and the next.  */
 
616
# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
 
617
 
 
618
/* The size of an array large to enough to hold all stacks, each with
 
619
   N elements.  */
 
620
# define YYSTACK_BYTES(N) \
 
621
     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
 
622
      + 2 * YYSTACK_GAP_MAXIMUM)
 
623
 
 
624
/* Copy COUNT objects from FROM to TO.  The source and destination do
 
625
   not overlap.  */
 
626
# ifndef YYCOPY
 
627
#  if defined __GNUC__ && 1 < __GNUC__
 
628
#   define YYCOPY(To, From, Count) \
 
629
      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
 
630
#  else
 
631
#   define YYCOPY(To, From, Count)              \
 
632
      do                                        \
 
633
        {                                       \
 
634
          YYSIZE_T yyi;                         \
 
635
          for (yyi = 0; yyi < (Count); yyi++)   \
 
636
            (To)[yyi] = (From)[yyi];            \
 
637
        }                                       \
 
638
      while (YYID (0))
 
639
#  endif
 
640
# endif
 
641
 
 
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
 
646
   stack.  */
 
647
# define YYSTACK_RELOCATE(Stack)                                        \
 
648
    do                                                                  \
 
649
      {                                                                 \
 
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);                          \
 
655
      }                                                                 \
 
656
    while (YYID (0))
 
657
 
 
658
#endif
 
659
 
 
660
/* YYFINAL -- State number of the termination state.  */
 
661
#define YYFINAL  206
 
662
/* YYLAST -- Last index in YYTABLE.  */
 
663
#define YYLAST   2349
 
664
 
 
665
/* YYNTOKENS -- Number of terminals.  */
 
666
#define YYNTOKENS  88
 
667
/* YYNNTS -- Number of nonterminals.  */
 
668
#define YYNNTS  194
 
669
/* YYNRULES -- Number of rules.  */
 
670
#define YYNRULES  597
 
671
/* YYNRULES -- Number of states.  */
 
672
#define YYNSTATES  1082
 
673
 
 
674
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 
675
#define YYUNDEFTOK  2
 
676
#define YYMAXUTOK   320
 
677
 
 
678
#define YYTRANSLATE(YYX)                                                \
 
679
  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
 
680
 
 
681
/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
 
682
static const yytype_uint8 yytranslate[] =
 
683
{
 
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,
 
716
      65
 
717
};
 
718
 
 
719
#if YYDEBUG
 
720
/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
 
721
   YYRHS.  */
 
722
static const yytype_uint16 yyprhs[] =
 
723
{
 
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
 
784
};
 
785
 
 
786
/* YYRHS -- A `-1'-separated list of the rules' RHS.  */
 
787
static const yytype_int16 yyrhs[] =
 
788
{
 
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
 
995
};
 
996
 
 
997
/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 
998
static const yytype_uint16 yyrline[] =
 
999
{
 
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
 
1060
};
 
1061
#endif
 
1062
 
 
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[] =
 
1067
{
 
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
 
1149
};
 
1150
#endif
 
1151
 
 
1152
# ifdef YYPRINT
 
1153
/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
 
1154
   token YYLEX-NUM.  */
 
1155
static const yytype_uint16 yytoknum[] =
 
1156
{
 
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
 
1166
};
 
1167
# endif
 
1168
 
 
1169
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
 
1170
static const yytype_uint16 yyr1[] =
 
1171
{
 
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
 
1232
};
 
1233
 
 
1234
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
 
1235
static const yytype_uint8 yyr2[] =
 
1236
{
 
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
 
1297
};
 
1298
 
 
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[] =
 
1303
{
 
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,
 
1412
     546,   312
 
1413
};
 
1414
 
 
1415
/* YYDEFGOTO[NTERM-NUM].  */
 
1416
static const yytype_int16 yydefgoto[] =
 
1417
{
 
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,
 
1437
     595,   889,  1016,   559
 
1438
};
 
1439
 
 
1440
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
 
1441
   STATE-NUM.  */
 
1442
#define YYPACT_NINF -941
 
1443
static const yytype_int16 yypact[] =
 
1444
{
 
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,
 
1553
    -941,  -941
 
1554
};
 
1555
 
 
1556
/* YYPGOTO[NTERM-NUM].  */
 
1557
static const yytype_int16 yypgoto[] =
 
1558
{
 
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
 
1579
};
 
1580
 
 
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[] =
 
1587
{
 
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
 
1823
};
 
1824
 
 
1825
static const yytype_int16 yycheck[] =
 
1826
{
 
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
 
2062
};
 
2063
 
 
2064
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
 
2065
   symbol of state STATE-NUM.  */
 
2066
static const yytype_uint16 yystos[] =
 
2067
{
 
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,
 
2176
     247,    60
 
2177
};
 
2178
 
 
2179
#define yyerrok         (yyerrstatus = 0)
 
2180
#define yyclearin       (yychar = YYEMPTY)
 
2181
#define YYEMPTY         (-2)
 
2182
#define YYEOF           0
 
2183
 
 
2184
#define YYACCEPT        goto yyacceptlab
 
2185
#define YYABORT         goto yyabortlab
 
2186
#define YYERROR         goto yyerrorlab
 
2187
 
 
2188
 
 
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.  */
 
2192
 
 
2193
#define YYFAIL          goto yyerrlab
 
2194
 
 
2195
#define YYRECOVERING()  (!!yyerrstatus)
 
2196
 
 
2197
#define YYBACKUP(Token, Value)                                  \
 
2198
do                                                              \
 
2199
  if (yychar == YYEMPTY && yylen == 1)                          \
 
2200
    {                                                           \
 
2201
      yychar = (Token);                                         \
 
2202
      yylval = (Value);                                         \
 
2203
      yytoken = YYTRANSLATE (yychar);                           \
 
2204
      YYPOPSTACK (1);                                           \
 
2205
      goto yybackup;                                            \
 
2206
    }                                                           \
 
2207
  else                                                          \
 
2208
    {                                                           \
 
2209
      yyerror (YY_("syntax error: cannot back up")); \
 
2210
      YYERROR;                                                  \
 
2211
    }                                                           \
 
2212
while (YYID (0))
 
2213
 
 
2214
 
 
2215
#define YYTERROR        1
 
2216
#define YYERRCODE       256
 
2217
 
 
2218
 
 
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).  */
 
2222
 
 
2223
#define YYRHSLOC(Rhs, K) ((Rhs)[K])
 
2224
#ifndef YYLLOC_DEFAULT
 
2225
# define YYLLOC_DEFAULT(Current, Rhs, N)                                \
 
2226
    do                                                                  \
 
2227
      if (YYID (N))                                                    \
 
2228
        {                                                               \
 
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;       \
 
2233
        }                                                               \
 
2234
      else                                                              \
 
2235
        {                                                               \
 
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;                              \
 
2240
        }                                                               \
 
2241
    while (YYID (0))
 
2242
#endif
 
2243
 
 
2244
 
 
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.  */
 
2248
 
 
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)
 
2255
# else
 
2256
#  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
 
2257
# endif
 
2258
#endif
 
2259
 
 
2260
 
 
2261
/* YYLEX -- calling `yylex' with the right arguments.  */
 
2262
 
 
2263
#ifdef YYLEX_PARAM
 
2264
# define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
 
2265
#else
 
2266
# define YYLEX yylex (&yylval, &yylloc)
 
2267
#endif
 
2268
 
 
2269
/* Enable debugging if requested.  */
 
2270
#if YYDEBUG
 
2271
 
 
2272
# ifndef YYFPRINTF
 
2273
#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
 
2274
#  define YYFPRINTF fprintf
 
2275
# endif
 
2276
 
 
2277
# define YYDPRINTF(Args)                        \
 
2278
do {                                            \
 
2279
  if (yydebug)                                  \
 
2280
    YYFPRINTF Args;                             \
 
2281
} while (YYID (0))
 
2282
 
 
2283
# define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
 
2284
do {                                                                      \
 
2285
  if (yydebug)                                                            \
 
2286
    {                                                                     \
 
2287
      YYFPRINTF (stderr, "%s ", Title);                                   \
 
2288
      yy_symbol_print (stderr,                                            \
 
2289
                  Type, Value, Location); \
 
2290
      YYFPRINTF (stderr, "\n");                                           \
 
2291
    }                                                                     \
 
2292
} while (YYID (0))
 
2293
 
 
2294
 
 
2295
/*--------------------------------.
 
2296
| Print this symbol on YYOUTPUT.  |
 
2297
`--------------------------------*/
 
2298
 
 
2299
/*ARGSUSED*/
 
2300
#if (defined __STDC__ || defined __C99__FUNC__ \
 
2301
     || defined __cplusplus || defined _MSC_VER)
 
2302
static void
 
2303
yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp)
 
2304
#else
 
2305
static void
 
2306
yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp)
 
2307
    FILE *yyoutput;
 
2308
    int yytype;
 
2309
    YYSTYPE const * const yyvaluep;
 
2310
    YYLTYPE const * const yylocationp;
 
2311
#endif
 
2312
{
 
2313
  if (!yyvaluep)
 
2314
    return;
 
2315
  YYUSE (yylocationp);
 
2316
# ifdef YYPRINT
 
2317
  if (yytype < YYNTOKENS)
 
2318
    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
 
2319
# else
 
2320
  YYUSE (yyoutput);
 
2321
# endif
 
2322
  switch (yytype)
 
2323
    {
 
2324
      default:
 
2325
        break;
 
2326
    }
 
2327
}
 
2328
 
 
2329
 
 
2330
/*--------------------------------.
 
2331
| Print this symbol on YYOUTPUT.  |
 
2332
`--------------------------------*/
 
2333
 
 
2334
#if (defined __STDC__ || defined __C99__FUNC__ \
 
2335
     || defined __cplusplus || defined _MSC_VER)
 
2336
static void
 
2337
yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp)
 
2338
#else
 
2339
static void
 
2340
yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp)
 
2341
    FILE *yyoutput;
 
2342
    int yytype;
 
2343
    YYSTYPE const * const yyvaluep;
 
2344
    YYLTYPE const * const yylocationp;
 
2345
#endif
 
2346
{
 
2347
  if (yytype < YYNTOKENS)
 
2348
    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
 
2349
  else
 
2350
    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
 
2351
 
 
2352
  YY_LOCATION_PRINT (yyoutput, *yylocationp);
 
2353
  YYFPRINTF (yyoutput, ": ");
 
2354
  yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp);
 
2355
  YYFPRINTF (yyoutput, ")");
 
2356
}
 
2357
 
 
2358
/*------------------------------------------------------------------.
 
2359
| yy_stack_print -- Print the state stack from its BOTTOM up to its |
 
2360
| TOP (included).                                                   |
 
2361
`------------------------------------------------------------------*/
 
2362
 
 
2363
#if (defined __STDC__ || defined __C99__FUNC__ \
 
2364
     || defined __cplusplus || defined _MSC_VER)
 
2365
static void
 
2366
yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
 
2367
#else
 
2368
static void
 
2369
yy_stack_print (bottom, top)
 
2370
    yytype_int16 *bottom;
 
2371
    yytype_int16 *top;
 
2372
#endif
 
2373
{
 
2374
  YYFPRINTF (stderr, "Stack now");
 
2375
  for (; bottom <= top; ++bottom)
 
2376
    YYFPRINTF (stderr, " %d", *bottom);
 
2377
  YYFPRINTF (stderr, "\n");
 
2378
}
 
2379
 
 
2380
# define YY_STACK_PRINT(Bottom, Top)                            \
 
2381
do {                                                            \
 
2382
  if (yydebug)                                                  \
 
2383
    yy_stack_print ((Bottom), (Top));                           \
 
2384
} while (YYID (0))
 
2385
 
 
2386
 
 
2387
/*------------------------------------------------.
 
2388
| Report that the YYRULE is going to be reduced.  |
 
2389
`------------------------------------------------*/
 
2390
 
 
2391
#if (defined __STDC__ || defined __C99__FUNC__ \
 
2392
     || defined __cplusplus || defined _MSC_VER)
 
2393
static void
 
2394
yy_reduce_print (YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule)
 
2395
#else
 
2396
static void
 
2397
yy_reduce_print (yyvsp, yylsp, yyrule)
 
2398
    YYSTYPE *yyvsp;
 
2399
    YYLTYPE *yylsp;
 
2400
    int yyrule;
 
2401
#endif
 
2402
{
 
2403
  int yynrhs = yyr2[yyrule];
 
2404
  int yyi;
 
2405
  unsigned long int yylno = yyrline[yyrule];
 
2406
  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
 
2407
             yyrule - 1, yylno);
 
2408
  /* The symbols being reduced.  */
 
2409
  for (yyi = 0; yyi < yynrhs; yyi++)
 
2410
    {
 
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");
 
2416
    }
 
2417
}
 
2418
 
 
2419
# define YY_REDUCE_PRINT(Rule)          \
 
2420
do {                                    \
 
2421
  if (yydebug)                          \
 
2422
    yy_reduce_print (yyvsp, yylsp, Rule); \
 
2423
} while (YYID (0))
 
2424
 
 
2425
/* Nonzero means print parse trace.  It is left uninitialized so that
 
2426
   multiple parsers can coexist.  */
 
2427
int yydebug;
 
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 */
 
2434
 
 
2435
 
 
2436
/* YYINITDEPTH -- initial size of the parser's stacks.  */
 
2437
#ifndef YYINITDEPTH
 
2438
# define YYINITDEPTH 200
 
2439
#endif
 
2440
 
 
2441
/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
 
2442
   if the built-in stack extension method is used).
 
2443
 
 
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.  */
 
2447
 
 
2448
#ifndef YYMAXDEPTH
 
2449
# define YYMAXDEPTH 10000
 
2450
#endif
 
2451
 
 
2452
 
 
2453
 
 
2454
#if YYERROR_VERBOSE
 
2455
 
 
2456
# ifndef yystrlen
 
2457
#  if defined __GLIBC__ && defined _STRING_H
 
2458
#   define yystrlen strlen
 
2459
#  else
 
2460
/* Return the length of YYSTR.  */
 
2461
#if (defined __STDC__ || defined __C99__FUNC__ \
 
2462
     || defined __cplusplus || defined _MSC_VER)
 
2463
static YYSIZE_T
 
2464
yystrlen (const char *yystr)
 
2465
#else
 
2466
static YYSIZE_T
 
2467
yystrlen (yystr)
 
2468
    const char *yystr;
 
2469
#endif
 
2470
{
 
2471
  YYSIZE_T yylen;
 
2472
  for (yylen = 0; yystr[yylen]; yylen++)
 
2473
    continue;
 
2474
  return yylen;
 
2475
}
 
2476
#  endif
 
2477
# endif
 
2478
 
 
2479
# ifndef yystpcpy
 
2480
#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
 
2481
#   define yystpcpy stpcpy
 
2482
#  else
 
2483
/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
 
2484
   YYDEST.  */
 
2485
#if (defined __STDC__ || defined __C99__FUNC__ \
 
2486
     || defined __cplusplus || defined _MSC_VER)
 
2487
static char *
 
2488
yystpcpy (char *yydest, const char *yysrc)
 
2489
#else
 
2490
static char *
 
2491
yystpcpy (yydest, yysrc)
 
2492
    char *yydest;
 
2493
    const char *yysrc;
 
2494
#endif
 
2495
{
 
2496
  char *yyd = yydest;
 
2497
  const char *yys = yysrc;
 
2498
 
 
2499
  while ((*yyd++ = *yys++) != '\0')
 
2500
    continue;
 
2501
 
 
2502
  return yyd - 1;
 
2503
}
 
2504
#  endif
 
2505
# endif
 
2506
 
 
2507
# ifndef yytnamerr
 
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
 
2514
   would have been.  */
 
2515
static YYSIZE_T
 
2516
yytnamerr (char *yyres, const char *yystr)
 
2517
{
 
2518
  if (*yystr == '"')
 
2519
    {
 
2520
      YYSIZE_T yyn = 0;
 
2521
      char const *yyp = yystr;
 
2522
 
 
2523
      for (;;)
 
2524
        switch (*++yyp)
 
2525
          {
 
2526
          case '\'':
 
2527
          case ',':
 
2528
            goto do_not_strip_quotes;
 
2529
 
 
2530
          case '\\':
 
2531
            if (*++yyp != '\\')
 
2532
              goto do_not_strip_quotes;
 
2533
            /* Fall through.  */
 
2534
          default:
 
2535
            if (yyres)
 
2536
              yyres[yyn] = *yyp;
 
2537
            yyn++;
 
2538
            break;
 
2539
 
 
2540
          case '"':
 
2541
            if (yyres)
 
2542
              yyres[yyn] = '\0';
 
2543
            return yyn;
 
2544
          }
 
2545
    do_not_strip_quotes: ;
 
2546
    }
 
2547
 
 
2548
  if (! yyres)
 
2549
    return yystrlen (yystr);
 
2550
 
 
2551
  return yystpcpy (yyres, yystr) - yyres;
 
2552
}
 
2553
# endif
 
2554
 
 
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.  */
 
2562
static YYSIZE_T
 
2563
yysyntax_error (char *yyresult, int yystate, int yychar)
 
2564
{
 
2565
  int yyn = yypact[yystate];
 
2566
 
 
2567
  if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
 
2568
    return 0;
 
2569
  else
 
2570
    {
 
2571
      int yytype = YYTRANSLATE (yychar);
 
2572
      YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
 
2573
      YYSIZE_T yysize = yysize0;
 
2574
      YYSIZE_T yysize1;
 
2575
      int yysize_overflow = 0;
 
2576
      enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
 
2577
      char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
 
2578
      int yyx;
 
2579
 
 
2580
# if 0
 
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");
 
2588
# endif
 
2589
      char *yyfmt;
 
2590
      char const *yyf;
 
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;
 
2599
 
 
2600
      /* Start YYX at -YYN if negative to avoid negative indexes in
 
2601
         YYCHECK.  */
 
2602
      int yyxbegin = yyn < 0 ? -yyn : 0;
 
2603
 
 
2604
      /* Stay within bounds of both yycheck and yytname.  */
 
2605
      int yychecklim = YYLAST - yyn + 1;
 
2606
      int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
 
2607
      int yycount = 1;
 
2608
 
 
2609
      yyarg[0] = yytname[yytype];
 
2610
      yyfmt = yystpcpy (yyformat, yyunexpected);
 
2611
 
 
2612
      for (yyx = yyxbegin; yyx < yyxend; ++yyx)
 
2613
        if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
 
2614
          {
 
2615
            if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
 
2616
              {
 
2617
                yycount = 1;
 
2618
                yysize = yysize0;
 
2619
                yyformat[sizeof yyunexpected - 1] = '\0';
 
2620
                break;
 
2621
              }
 
2622
            yyarg[yycount++] = yytname[yyx];
 
2623
            yysize1 = yysize + yytnamerr (0, yytname[yyx]);
 
2624
            yysize_overflow |= (yysize1 < yysize);
 
2625
            yysize = yysize1;
 
2626
            yyfmt = yystpcpy (yyfmt, yyprefix);
 
2627
            yyprefix = yyor;
 
2628
          }
 
2629
 
 
2630
      yyf = YY_(yyformat);
 
2631
      yysize1 = yysize + yystrlen (yyf);
 
2632
      yysize_overflow |= (yysize1 < yysize);
 
2633
      yysize = yysize1;
 
2634
 
 
2635
      if (yysize_overflow)
 
2636
        return YYSIZE_MAXIMUM;
 
2637
 
 
2638
      if (yyresult)
 
2639
        {
 
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;
 
2644
          int yyi = 0;
 
2645
          while ((*yyp = *yyf) != '\0')
 
2646
            {
 
2647
              if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
 
2648
                {
 
2649
                  yyp += yytnamerr (yyp, yyarg[yyi++]);
 
2650
                  yyf += 2;
 
2651
                }
 
2652
              else
 
2653
                {
 
2654
                  yyp++;
 
2655
                  yyf++;
 
2656
                }
 
2657
            }
 
2658
        }
 
2659
      return yysize;
 
2660
    }
 
2661
}
 
2662
#endif /* YYERROR_VERBOSE */
 
2663
 
 
2664
 
 
2665
/*-----------------------------------------------.
 
2666
| Release the memory associated to this symbol.  |
 
2667
`-----------------------------------------------*/
 
2668
 
 
2669
/*ARGSUSED*/
 
2670
#if (defined __STDC__ || defined __C99__FUNC__ \
 
2671
     || defined __cplusplus || defined _MSC_VER)
 
2672
static void
 
2673
yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp)
 
2674
#else
 
2675
static void
 
2676
yydestruct (yymsg, yytype, yyvaluep, yylocationp)
 
2677
    const char *yymsg;
 
2678
    int yytype;
 
2679
    YYSTYPE *yyvaluep;
 
2680
    YYLTYPE *yylocationp;
 
2681
#endif
 
2682
{
 
2683
  YYUSE (yyvaluep);
 
2684
  YYUSE (yylocationp);
 
2685
 
 
2686
  if (!yymsg)
 
2687
    yymsg = "Deleting";
 
2688
  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
 
2689
 
 
2690
  switch (yytype)
 
2691
    {
 
2692
 
 
2693
      default:
 
2694
        break;
 
2695
    }
 
2696
}
 
2697
 
 
2698
 
 
2699
/* Prevent warnings from -Wmissing-prototypes.  */
 
2700
 
 
2701
#ifdef YYPARSE_PARAM
 
2702
#if defined __STDC__ || defined __cplusplus
 
2703
int yyparse (void *YYPARSE_PARAM);
 
2704
#else
 
2705
int yyparse ();
 
2706
#endif
 
2707
#else /* ! YYPARSE_PARAM */
 
2708
#if defined __STDC__ || defined __cplusplus
 
2709
int yyparse (void);
 
2710
#else
 
2711
int yyparse ();
 
2712
#endif
 
2713
#endif /* ! YYPARSE_PARAM */
 
2714
 
 
2715
 
 
2716
 
 
2717
 
 
2718
 
 
2719
 
 
2720
/*----------.
 
2721
| yyparse.  |
 
2722
`----------*/
 
2723
 
 
2724
#ifdef YYPARSE_PARAM
 
2725
#if (defined __STDC__ || defined __C99__FUNC__ \
 
2726
     || defined __cplusplus || defined _MSC_VER)
 
2727
int
 
2728
yyparse (void *YYPARSE_PARAM)
 
2729
#else
 
2730
int
 
2731
yyparse (YYPARSE_PARAM)
 
2732
    void *YYPARSE_PARAM;
 
2733
#endif
 
2734
#else /* ! YYPARSE_PARAM */
 
2735
#if (defined __STDC__ || defined __C99__FUNC__ \
 
2736
     || defined __cplusplus || defined _MSC_VER)
 
2737
int
 
2738
yyparse (void)
 
2739
#else
 
2740
int
 
2741
yyparse ()
 
2742
 
 
2743
#endif
 
2744
#endif
 
2745
{
 
2746
  /* The look-ahead symbol.  */
 
2747
int yychar;
 
2748
 
 
2749
/* The semantic value of the look-ahead symbol.  */
 
2750
YYSTYPE yylval;
 
2751
 
 
2752
/* Number of syntax errors so far.  */
 
2753
int yynerrs;
 
2754
/* Location data for the look-ahead symbol.  */
 
2755
YYLTYPE yylloc;
 
2756
 
 
2757
  int yystate;
 
2758
  int yyn;
 
2759
  int yyresult;
 
2760
  /* Number of tokens to shift before error messages enabled.  */
 
2761
  int yyerrstatus;
 
2762
  /* Look-ahead token as an internal (translated) token number.  */
 
2763
  int yytoken = 0;
 
2764
#if YYERROR_VERBOSE
 
2765
  /* Buffer for error messages, and its allocated size.  */
 
2766
  char yymsgbuf[128];
 
2767
  char *yymsg = yymsgbuf;
 
2768
  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
 
2769
#endif
 
2770
 
 
2771
  /* Three stacks and their tools:
 
2772
     `yyss': related to states,
 
2773
     `yyvs': related to semantic values,
 
2774
     `yyls': related to locations.
 
2775
 
 
2776
     Refer to the stacks thru separate pointers, to allow yyoverflow
 
2777
     to reallocate them elsewhere.  */
 
2778
 
 
2779
  /* The state stack.  */
 
2780
  yytype_int16 yyssa[YYINITDEPTH];
 
2781
  yytype_int16 *yyss = yyssa;
 
2782
  yytype_int16 *yyssp;
 
2783
 
 
2784
  /* The semantic value stack.  */
 
2785
  YYSTYPE yyvsa[YYINITDEPTH];
 
2786
  YYSTYPE *yyvs = yyvsa;
 
2787
  YYSTYPE *yyvsp;
 
2788
 
 
2789
  /* The location stack.  */
 
2790
  YYLTYPE yylsa[YYINITDEPTH];
 
2791
  YYLTYPE *yyls = yylsa;
 
2792
  YYLTYPE *yylsp;
 
2793
  /* The locations where the error started and ended.  */
 
2794
  YYLTYPE yyerror_range[2];
 
2795
 
 
2796
#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
 
2797
 
 
2798
  YYSIZE_T yystacksize = YYINITDEPTH;
 
2799
 
 
2800
  /* The variables used to return semantic value and location from the
 
2801
     action routines.  */
 
2802
  YYSTYPE yyval;
 
2803
  YYLTYPE yyloc;
 
2804
 
 
2805
  /* The number of symbols on the RHS of the reduced rule.
 
2806
     Keep to zero when no symbol should be popped.  */
 
2807
  int yylen = 0;
 
2808
 
 
2809
  YYDPRINTF ((stderr, "Starting parse\n"));
 
2810
 
 
2811
  yystate = 0;
 
2812
  yyerrstatus = 0;
 
2813
  yynerrs = 0;
 
2814
  yychar = YYEMPTY;             /* Cause a token to be read.  */
 
2815
 
 
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.  */
 
2820
 
 
2821
  yyssp = yyss;
 
2822
  yyvsp = yyvs;
 
2823
  yylsp = yyls;
 
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;
 
2828
#endif
 
2829
 
 
2830
  goto yysetstate;
 
2831
 
 
2832
/*------------------------------------------------------------.
 
2833
| yynewstate -- Push a new state, which is found in yystate.  |
 
2834
`------------------------------------------------------------*/
 
2835
 yynewstate:
 
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.  */
 
2838
  yyssp++;
 
2839
 
 
2840
 yysetstate:
 
2841
  *yyssp = yystate;
 
2842
 
 
2843
  if (yyss + yystacksize - 1 <= yyssp)
 
2844
    {
 
2845
      /* Get the current used size of the three stacks, in elements.  */
 
2846
      YYSIZE_T yysize = yyssp - yyss + 1;
 
2847
 
 
2848
#ifdef yyoverflow
 
2849
      {
 
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
 
2852
           memory.  */
 
2853
        YYSTYPE *yyvs1 = yyvs;
 
2854
        yytype_int16 *yyss1 = yyss;
 
2855
        YYLTYPE *yyls1 = yyls;
 
2856
 
 
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),
 
2865
                    &yystacksize);
 
2866
        yyls = yyls1;
 
2867
        yyss = yyss1;
 
2868
        yyvs = yyvs1;
 
2869
      }
 
2870
#else /* no yyoverflow */
 
2871
# ifndef YYSTACK_RELOCATE
 
2872
      goto yyexhaustedlab;
 
2873
# else
 
2874
      /* Extend the stack our own way.  */
 
2875
      if (YYMAXDEPTH <= yystacksize)
 
2876
        goto yyexhaustedlab;
 
2877
      yystacksize *= 2;
 
2878
      if (YYMAXDEPTH < yystacksize)
 
2879
        yystacksize = YYMAXDEPTH;
 
2880
 
 
2881
      {
 
2882
        yytype_int16 *yyss1 = yyss;
 
2883
        union yyalloc *yyptr =
 
2884
          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
 
2885
        if (! yyptr)
 
2886
          goto yyexhaustedlab;
 
2887
        YYSTACK_RELOCATE (yyss);
 
2888
        YYSTACK_RELOCATE (yyvs);
 
2889
        YYSTACK_RELOCATE (yyls);
 
2890
#  undef YYSTACK_RELOCATE
 
2891
        if (yyss1 != yyssa)
 
2892
          YYSTACK_FREE (yyss1);
 
2893
      }
 
2894
# endif
 
2895
#endif /* no yyoverflow */
 
2896
 
 
2897
      yyssp = yyss + yysize - 1;
 
2898
      yyvsp = yyvs + yysize - 1;
 
2899
      yylsp = yyls + yysize - 1;
 
2900
 
 
2901
      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
 
2902
                  (unsigned long int) yystacksize));
 
2903
 
 
2904
      if (yyss + yystacksize - 1 <= yyssp)
 
2905
        YYABORT;
 
2906
    }
 
2907
 
 
2908
  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
 
2909
 
 
2910
  goto yybackup;
 
2911
 
 
2912
/*-----------.
 
2913
| yybackup.  |
 
2914
`-----------*/
 
2915
yybackup:
 
2916
 
 
2917
  /* Do appropriate processing given the current state.  Read a
 
2918
     look-ahead token if we need one and don't already have one.  */
 
2919
 
 
2920
  /* First try to decide what to do without reference to look-ahead token.  */
 
2921
  yyn = yypact[yystate];
 
2922
  if (yyn == YYPACT_NINF)
 
2923
    goto yydefault;
 
2924
 
 
2925
  /* Not known => get a look-ahead token if don't already have one.  */
 
2926
 
 
2927
  /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol.  */
 
2928
  if (yychar == YYEMPTY)
 
2929
    {
 
2930
      YYDPRINTF ((stderr, "Reading a token: "));
 
2931
      yychar = YYLEX;
 
2932
    }
 
2933
 
 
2934
  if (yychar <= YYEOF)
 
2935
    {
 
2936
      yychar = yytoken = YYEOF;
 
2937
      YYDPRINTF ((stderr, "Now at end of input.\n"));
 
2938
    }
 
2939
  else
 
2940
    {
 
2941
      yytoken = YYTRANSLATE (yychar);
 
2942
      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
 
2943
    }
 
2944
 
 
2945
  /* If the proper action on seeing token YYTOKEN is to reduce or to
 
2946
     detect an error, take that action.  */
 
2947
  yyn += yytoken;
 
2948
  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
 
2949
    goto yydefault;
 
2950
  yyn = yytable[yyn];
 
2951
  if (yyn <= 0)
 
2952
    {
 
2953
      if (yyn == 0 || yyn == YYTABLE_NINF)
 
2954
        goto yyerrlab;
 
2955
      yyn = -yyn;
 
2956
      goto yyreduce;
 
2957
    }
 
2958
 
 
2959
  if (yyn == YYFINAL)
 
2960
    YYACCEPT;
 
2961
 
 
2962
  /* Count tokens shifted since error; after three, turn off error
 
2963
     status.  */
 
2964
  if (yyerrstatus)
 
2965
    yyerrstatus--;
 
2966
 
 
2967
  /* Shift the look-ahead token.  */
 
2968
  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
 
2969
 
 
2970
  /* Discard the shifted token unless it is eof.  */
 
2971
  if (yychar != YYEOF)
 
2972
    yychar = YYEMPTY;
 
2973
 
 
2974
  yystate = yyn;
 
2975
  *++yyvsp = yylval;
 
2976
  *++yylsp = yylloc;
 
2977
  goto yynewstate;
 
2978
 
 
2979
 
 
2980
/*-----------------------------------------------------------.
 
2981
| yydefault -- do the default action for the current state.  |
 
2982
`-----------------------------------------------------------*/
 
2983
yydefault:
 
2984
  yyn = yydefact[yystate];
 
2985
  if (yyn == 0)
 
2986
    goto yyerrlab;
 
2987
  goto yyreduce;
 
2988
 
 
2989
 
 
2990
/*-----------------------------.
 
2991
| yyreduce -- Do a reduction.  |
 
2992
`-----------------------------*/
 
2993
yyreduce:
 
2994
  /* yyn is the number of a rule to reduce with.  */
 
2995
  yylen = yyr2[yyn];
 
2996
 
 
2997
  /* If YYLEN is nonzero, implement the default value of the action:
 
2998
     `$$ = $1'.
 
2999
 
 
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];
 
3006
 
 
3007
  /* Default location.  */
 
3008
  YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
 
3009
  YY_REDUCE_PRINT (yyn);
 
3010
  switch (yyn)
 
3011
    {
 
3012
        case 2:
 
3013
#line 293 "../parser/Grammar.y"
 
3014
    { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) NullNode(GLOBAL_DATA), 0, 1); ;}
 
3015
    break;
 
3016
 
 
3017
  case 3:
 
3018
#line 294 "../parser/Grammar.y"
 
3019
    { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) BooleanNode(GLOBAL_DATA, true), 0, 1); ;}
 
3020
    break;
 
3021
 
 
3022
  case 4:
 
3023
#line 295 "../parser/Grammar.y"
 
3024
    { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) BooleanNode(GLOBAL_DATA, false), 0, 1); ;}
 
3025
    break;
 
3026
 
 
3027
  case 5:
 
3028
#line 296 "../parser/Grammar.y"
 
3029
    { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(makeNumberNode(GLOBAL_DATA, (yyvsp[(1) - (1)].doubleValue)), 0, 1); ;}
 
3030
    break;
 
3031
 
 
3032
  case 6:
 
3033
#line 297 "../parser/Grammar.y"
 
3034
    { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) StringNode(GLOBAL_DATA, *(yyvsp[(1) - (1)].ident)), 0, 1); ;}
 
3035
    break;
 
3036
 
 
3037
  case 7:
 
3038
#line 298 "../parser/Grammar.y"
 
3039
    {
 
3040
                                            Lexer& l = *GLOBAL_DATA->lexer;
 
3041
                                            const Identifier* pattern;
 
3042
                                            const Identifier* flags;
 
3043
                                            if (!l.scanRegExp(pattern, flags))
 
3044
                                                YYABORT;
 
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);
 
3049
                                        ;}
 
3050
    break;
 
3051
 
 
3052
  case 8:
 
3053
#line 309 "../parser/Grammar.y"
 
3054
    {
 
3055
                                            Lexer& l = *GLOBAL_DATA->lexer;
 
3056
                                            const Identifier* pattern;
 
3057
                                            const Identifier* flags;
 
3058
                                            if (!l.scanRegExp(pattern, flags, '='))
 
3059
                                                YYABORT;
 
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);
 
3064
                                        ;}
 
3065
    break;
 
3066
 
 
3067
  case 9:
 
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); ;}
 
3070
    break;
 
3071
 
 
3072
  case 10:
 
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); ;}
 
3075
    break;
 
3076
 
 
3077
  case 11:
 
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); ;}
 
3080
    break;
 
3081
 
 
3082
  case 12:
 
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; ;}
 
3085
    break;
 
3086
 
 
3087
  case 13:
 
3088
#line 328 "../parser/Grammar.y"
 
3089
    {
 
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) 
 
3095
                                                                     YYABORT; 
 
3096
                                                             ;}
 
3097
    break;
 
3098
 
 
3099
  case 14:
 
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; ;}
 
3105
    break;
 
3106
 
 
3107
  case 15:
 
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; ;}
 
3113
    break;
 
3114
 
 
3115
  case 17:
 
3116
#line 351 "../parser/Grammar.y"
 
3117
    { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) ObjectLiteralNode(GLOBAL_DATA), 0, 0); ;}
 
3118
    break;
 
3119
 
 
3120
  case 18:
 
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); ;}
 
3123
    break;
 
3124
 
 
3125
  case 19:
 
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); ;}
 
3128
    break;
 
3129
 
 
3130
  case 20:
 
3131
#line 358 "../parser/Grammar.y"
 
3132
    { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(new (GLOBAL_DATA) ThisNode(GLOBAL_DATA), ThisFeature, 0); ;}
 
3133
    break;
 
3134
 
 
3135
  case 23:
 
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); ;}
 
3138
    break;
 
3139
 
 
3140
  case 24:
 
3141
#line 362 "../parser/Grammar.y"
 
3142
    { (yyval.expressionNode) = (yyvsp[(2) - (3)].expressionNode); ;}
 
3143
    break;
 
3144
 
 
3145
  case 25:
 
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); ;}
 
3148
    break;
 
3149
 
 
3150
  case 26:
 
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); ;}
 
3153
    break;
 
3154
 
 
3155
  case 27:
 
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); ;}
 
3158
    break;
 
3159
 
 
3160
  case 28:
 
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; ;}
 
3166
    break;
 
3167
 
 
3168
  case 29:
 
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; ;}
 
3174
    break;
 
3175
 
 
3176
  case 30:
 
3177
#line 384 "../parser/Grammar.y"
 
3178
    { (yyval.intValue) = 0; ;}
 
3179
    break;
 
3180
 
 
3181
  case 32:
 
3182
#line 389 "../parser/Grammar.y"
 
3183
    { (yyval.intValue) = 1; ;}
 
3184
    break;
 
3185
 
 
3186
  case 33:
 
3187
#line 390 "../parser/Grammar.y"
 
3188
    { (yyval.intValue) = (yyvsp[(1) - (2)].intValue) + 1; ;}
 
3189
    break;
 
3190
 
 
3191
  case 35:
 
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); ;}
 
3194
    break;
 
3195
 
 
3196
  case 36:
 
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); 
 
3201
                                        ;}
 
3202
    break;
 
3203
 
 
3204
  case 37:
 
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);
 
3209
                                        ;}
 
3210
    break;
 
3211
 
 
3212
  case 38:
 
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);
 
3217
                                        ;}
 
3218
    break;
 
3219
 
 
3220
  case 40:
 
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); 
 
3225
                                        ;}
 
3226
    break;
 
3227
 
 
3228
  case 41:
 
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);
 
3233
                                        ;}
 
3234
    break;
 
3235
 
 
3236
  case 42:
 
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);
 
3241
                                        ;}
 
3242
    break;
 
3243
 
 
3244
  case 44:
 
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); 
 
3249
                                        ;}
 
3250
    break;
 
3251
 
 
3252
  case 46:
 
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);
 
3257
                                        ;}
 
3258
    break;
 
3259
 
 
3260
  case 47:
 
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); ;}
 
3263
    break;
 
3264
 
 
3265
  case 48:
 
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); ;}
 
3268
    break;
 
3269
 
 
3270
  case 49:
 
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); 
 
3275
                                        ;}
 
3276
    break;
 
3277
 
 
3278
  case 50:
 
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); ;}
 
3283
    break;
 
3284
 
 
3285
  case 51:
 
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); ;}
 
3288
    break;
 
3289
 
 
3290
  case 52:
 
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); ;}
 
3293
    break;
 
3294
 
 
3295
  case 53:
 
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); 
 
3300
                                        ;}
 
3301
    break;
 
3302
 
 
3303
  case 54:
 
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); 
 
3308
                                        ;}
 
3309
    break;
 
3310
 
 
3311
  case 55:
 
3312
#line 468 "../parser/Grammar.y"
 
3313
    { (yyval.argumentsNode) = createNodeInfo<ArgumentsNode*>(new (GLOBAL_DATA) ArgumentsNode(GLOBAL_DATA), 0, 0); ;}
 
3314
    break;
 
3315
 
 
3316
  case 56:
 
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); ;}
 
3319
    break;
 
3320
 
 
3321
  case 57:
 
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; ;}
 
3327
    break;
 
3328
 
 
3329
  case 58:
 
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; ;}
 
3335
    break;
 
3336
 
 
3337
  case 64:
 
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); ;}
 
3340
    break;
 
3341
 
 
3342
  case 65:
 
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); ;}
 
3345
    break;
 
3346
 
 
3347
  case 67:
 
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); ;}
 
3350
    break;
 
3351
 
 
3352
  case 68:
 
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); ;}
 
3355
    break;
 
3356
 
 
3357
  case 69:
 
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); ;}
 
3360
    break;
 
3361
 
 
3362
  case 70:
 
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); ;}
 
3365
    break;
 
3366
 
 
3367
  case 71:
 
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); ;}
 
3370
    break;
 
3371
 
 
3372
  case 72:
 
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); ;}
 
3375
    break;
 
3376
 
 
3377
  case 73:
 
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); ;}
 
3380
    break;
 
3381
 
 
3382
  case 74:
 
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); ;}
 
3385
    break;
 
3386
 
 
3387
  case 75:
 
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); ;}
 
3390
    break;
 
3391
 
 
3392
  case 76:
 
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); ;}
 
3395
    break;
 
3396
 
 
3397
  case 77:
 
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); ;}
 
3400
    break;
 
3401
 
 
3402
  case 78:
 
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); ;}
 
3405
    break;
 
3406
 
 
3407
  case 79:
 
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); ;}
 
3410
    break;
 
3411
 
 
3412
  case 85:
 
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); ;}
 
3415
    break;
 
3416
 
 
3417
  case 86:
 
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); ;}
 
3420
    break;
 
3421
 
 
3422
  case 87:
 
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); ;}
 
3425
    break;
 
3426
 
 
3427
  case 89:
 
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); ;}
 
3430
    break;
 
3431
 
 
3432
  case 90:
 
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); ;}
 
3435
    break;
 
3436
 
 
3437
  case 91:
 
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); ;}
 
3440
    break;
 
3441
 
 
3442
  case 93:
 
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); ;}
 
3445
    break;
 
3446
 
 
3447
  case 94:
 
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); ;}
 
3450
    break;
 
3451
 
 
3452
  case 96:
 
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); ;}
 
3455
    break;
 
3456
 
 
3457
  case 97:
 
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); ;}
 
3460
    break;
 
3461
 
 
3462
  case 99:
 
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); ;}
 
3465
    break;
 
3466
 
 
3467
  case 100:
 
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); ;}
 
3470
    break;
 
3471
 
 
3472
  case 101:
 
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); ;}
 
3475
    break;
 
3476
 
 
3477
  case 103:
 
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); ;}
 
3480
    break;
 
3481
 
 
3482
  case 104:
 
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); ;}
 
3485
    break;
 
3486
 
 
3487
  case 105:
 
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); ;}
 
3490
    break;
 
3491
 
 
3492
  case 107:
 
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); ;}
 
3495
    break;
 
3496
 
 
3497
  case 108:
 
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); ;}
 
3500
    break;
 
3501
 
 
3502
  case 109:
 
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); ;}
 
3505
    break;
 
3506
 
 
3507
  case 110:
 
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); ;}
 
3510
    break;
 
3511
 
 
3512
  case 111:
 
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); ;}
 
3517
    break;
 
3518
 
 
3519
  case 112:
 
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); ;}
 
3524
    break;
 
3525
 
 
3526
  case 114:
 
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); ;}
 
3529
    break;
 
3530
 
 
3531
  case 115:
 
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); ;}
 
3534
    break;
 
3535
 
 
3536
  case 116:
 
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); ;}
 
3539
    break;
 
3540
 
 
3541
  case 117:
 
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); ;}
 
3544
    break;
 
3545
 
 
3546
  case 118:
 
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); ;}
 
3551
    break;
 
3552
 
 
3553
  case 120:
 
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); ;}
 
3556
    break;
 
3557
 
 
3558
  case 121:
 
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); ;}
 
3561
    break;
 
3562
 
 
3563
  case 122:
 
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); ;}
 
3566
    break;
 
3567
 
 
3568
  case 123:
 
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); ;}
 
3571
    break;
 
3572
 
 
3573
  case 124:
 
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); ;}
 
3578
    break;
 
3579
 
 
3580
  case 125:
 
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); ;}
 
3585
    break;
 
3586
 
 
3587
  case 127:
 
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); ;}
 
3590
    break;
 
3591
 
 
3592
  case 128:
 
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); ;}
 
3595
    break;
 
3596
 
 
3597
  case 129:
 
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); ;}
 
3600
    break;
 
3601
 
 
3602
  case 130:
 
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); ;}
 
3605
    break;
 
3606
 
 
3607
  case 132:
 
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); ;}
 
3610
    break;
 
3611
 
 
3612
  case 133:
 
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); ;}
 
3615
    break;
 
3616
 
 
3617
  case 134:
 
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); ;}
 
3620
    break;
 
3621
 
 
3622
  case 135:
 
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); ;}
 
3625
    break;
 
3626
 
 
3627
  case 137:
 
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); ;}
 
3630
    break;
 
3631
 
 
3632
  case 138:
 
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); ;}
 
3635
    break;
 
3636
 
 
3637
  case 139:
 
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); ;}
 
3640
    break;
 
3641
 
 
3642
  case 140:
 
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); ;}
 
3645
    break;
 
3646
 
 
3647
  case 142:
 
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); ;}
 
3650
    break;
 
3651
 
 
3652
  case 144:
 
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); ;}
 
3655
    break;
 
3656
 
 
3657
  case 146:
 
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); ;}
 
3660
    break;
 
3661
 
 
3662
  case 148:
 
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); ;}
 
3665
    break;
 
3666
 
 
3667
  case 150:
 
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); ;}
 
3670
    break;
 
3671
 
 
3672
  case 152:
 
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); ;}
 
3675
    break;
 
3676
 
 
3677
  case 154:
 
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); ;}
 
3680
    break;
 
3681
 
 
3682
  case 156:
 
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); ;}
 
3685
    break;
 
3686
 
 
3687
  case 158:
 
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); ;}
 
3690
    break;
 
3691
 
 
3692
  case 160:
 
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); ;}
 
3695
    break;
 
3696
 
 
3697
  case 162:
 
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); ;}
 
3700
    break;
 
3701
 
 
3702
  case 164:
 
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); ;}
 
3705
    break;
 
3706
 
 
3707
  case 166:
 
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); ;}
 
3710
    break;
 
3711
 
 
3712
  case 168:
 
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); ;}
 
3715
    break;
 
3716
 
 
3717
  case 170:
 
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); ;}
 
3720
    break;
 
3721
 
 
3722
  case 172:
 
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); ;}
 
3725
    break;
 
3726
 
 
3727
  case 174:
 
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); ;}
 
3730
    break;
 
3731
 
 
3732
  case 176:
 
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); ;}
 
3735
    break;
 
3736
 
 
3737
  case 178:
 
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); 
 
3741
                                        ;}
 
3742
    break;
 
3743
 
 
3744
  case 180:
 
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);
 
3748
                                        ;}
 
3749
    break;
 
3750
 
 
3751
  case 182:
 
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); 
 
3755
                                        ;}
 
3756
    break;
 
3757
 
 
3758
  case 183:
 
3759
#line 772 "../parser/Grammar.y"
 
3760
    { (yyval.op) = OpEqual; ;}
 
3761
    break;
 
3762
 
 
3763
  case 184:
 
3764
#line 773 "../parser/Grammar.y"
 
3765
    { (yyval.op) = OpPlusEq; ;}
 
3766
    break;
 
3767
 
 
3768
  case 185:
 
3769
#line 774 "../parser/Grammar.y"
 
3770
    { (yyval.op) = OpMinusEq; ;}
 
3771
    break;
 
3772
 
 
3773
  case 186:
 
3774
#line 775 "../parser/Grammar.y"
 
3775
    { (yyval.op) = OpMultEq; ;}
 
3776
    break;
 
3777
 
 
3778
  case 187:
 
3779
#line 776 "../parser/Grammar.y"
 
3780
    { (yyval.op) = OpDivEq; ;}
 
3781
    break;
 
3782
 
 
3783
  case 188:
 
3784
#line 777 "../parser/Grammar.y"
 
3785
    { (yyval.op) = OpLShift; ;}
 
3786
    break;
 
3787
 
 
3788
  case 189:
 
3789
#line 778 "../parser/Grammar.y"
 
3790
    { (yyval.op) = OpRShift; ;}
 
3791
    break;
 
3792
 
 
3793
  case 190:
 
3794
#line 779 "../parser/Grammar.y"
 
3795
    { (yyval.op) = OpURShift; ;}
 
3796
    break;
 
3797
 
 
3798
  case 191:
 
3799
#line 780 "../parser/Grammar.y"
 
3800
    { (yyval.op) = OpAndEq; ;}
 
3801
    break;
 
3802
 
 
3803
  case 192:
 
3804
#line 781 "../parser/Grammar.y"
 
3805
    { (yyval.op) = OpXOrEq; ;}
 
3806
    break;
 
3807
 
 
3808
  case 193:
 
3809
#line 782 "../parser/Grammar.y"
 
3810
    { (yyval.op) = OpOrEq; ;}
 
3811
    break;
 
3812
 
 
3813
  case 194:
 
3814
#line 783 "../parser/Grammar.y"
 
3815
    { (yyval.op) = OpModEq; ;}
 
3816
    break;
 
3817
 
 
3818
  case 196:
 
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); ;}
 
3821
    break;
 
3822
 
 
3823
  case 198:
 
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); ;}
 
3826
    break;
 
3827
 
 
3828
  case 200:
 
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); ;}
 
3831
    break;
 
3832
 
 
3833
  case 218:
 
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)])); ;}
 
3837
    break;
 
3838
 
 
3839
  case 219:
 
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)])); ;}
 
3843
    break;
 
3844
 
 
3845
  case 220:
 
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)])); ;}
 
3849
    break;
 
3850
 
 
3851
  case 221:
 
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)]));
 
3855
                                          AUTO_SEMICOLON; ;}
 
3856
    break;
 
3857
 
 
3858
  case 222:
 
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;
 
3866
                                        ;}
 
3867
    break;
 
3868
 
 
3869
  case 223:
 
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;
 
3879
                                        ;}
 
3880
    break;
 
3881
 
 
3882
  case 224:
 
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;
 
3890
                                        ;}
 
3891
    break;
 
3892
 
 
3893
  case 225:
 
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;
 
3903
                                        ;}
 
3904
    break;
 
3905
 
 
3906
  case 226:
 
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;
 
3914
                                        ;}
 
3915
    break;
 
3916
 
 
3917
  case 227:
 
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;
 
3927
                                        ;}
 
3928
    break;
 
3929
 
 
3930
  case 228:
 
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;
 
3938
                                        ;}
 
3939
    break;
 
3940
 
 
3941
  case 229:
 
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;
 
3951
                                        ;}
 
3952
    break;
 
3953
 
 
3954
  case 230:
 
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)])); ;}
 
3958
    break;
 
3959
 
 
3960
  case 231:
 
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; ;}
 
3964
    break;
 
3965
 
 
3966
  case 232:
 
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;
 
3975
    ;}
 
3976
    break;
 
3977
 
 
3978
  case 233:
 
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; ;}
 
3988
    break;
 
3989
 
 
3990
  case 234:
 
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); ;}
 
3993
    break;
 
3994
 
 
3995
  case 235:
 
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); ;}
 
3998
    break;
 
3999
 
 
4000
  case 236:
 
4001
#line 944 "../parser/Grammar.y"
 
4002
    { (yyval.expressionNode) = (yyvsp[(2) - (2)].expressionNode); ;}
 
4003
    break;
 
4004
 
 
4005
  case 237:
 
4006
#line 948 "../parser/Grammar.y"
 
4007
    { (yyval.expressionNode) = (yyvsp[(2) - (2)].expressionNode); ;}
 
4008
    break;
 
4009
 
 
4010
  case 238:
 
4011
#line 952 "../parser/Grammar.y"
 
4012
    { (yyval.statementNode) = createNodeDeclarationInfo<StatementNode*>(new (GLOBAL_DATA) EmptyStatementNode(GLOBAL_DATA), 0, 0, 0, 0); ;}
 
4013
    break;
 
4014
 
 
4015
  case 239:
 
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)])); ;}
 
4019
    break;
 
4020
 
 
4021
  case 240:
 
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; ;}
 
4025
    break;
 
4026
 
 
4027
  case 241:
 
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)])); ;}
 
4031
    break;
 
4032
 
 
4033
  case 242:
 
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)])); ;}
 
4041
    break;
 
4042
 
 
4043
  case 243:
 
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)])); ;}
 
4047
    break;
 
4048
 
 
4049
  case 244:
 
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)])); ;}
 
4053
    break;
 
4054
 
 
4055
  case 245:
 
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)])); ;}
 
4059
    break;
 
4060
 
 
4061
  case 246:
 
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)])); 
 
4067
                                        ;}
 
4068
    break;
 
4069
 
 
4070
  case 247:
 
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)])); ;}
 
4078
    break;
 
4079
 
 
4080
  case 248:
 
4081
#line 996 "../parser/Grammar.y"
 
4082
    {
 
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)]));
 
4089
                                        ;}
 
4090
    break;
 
4091
 
 
4092
  case 249:
 
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)])); ;}
 
4099
    break;
 
4100
 
 
4101
  case 250:
 
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)])); ;}
 
4110
    break;
 
4111
 
 
4112
  case 251:
 
4113
#line 1021 "../parser/Grammar.y"
 
4114
    { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(0, 0, 0); ;}
 
4115
    break;
 
4116
 
 
4117
  case 253:
 
4118
#line 1026 "../parser/Grammar.y"
 
4119
    { (yyval.expressionNode) = createNodeInfo<ExpressionNode*>(0, 0, 0); ;}
 
4120
    break;
 
4121
 
 
4122
  case 255:
 
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)])); ;}
 
4128
    break;
 
4129
 
 
4130
  case 256:
 
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; ;}
 
4136
    break;
 
4137
 
 
4138
  case 257:
 
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)])); ;}
 
4144
    break;
 
4145
 
 
4146
  case 258:
 
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; ;}
 
4152
    break;
 
4153
 
 
4154
  case 259:
 
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)])); ;}
 
4159
    break;
 
4160
 
 
4161
  case 260:
 
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; ;}
 
4166
    break;
 
4167
 
 
4168
  case 261:
 
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)])); ;}
 
4173
    break;
 
4174
 
 
4175
  case 262:
 
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; ;}
 
4180
    break;
 
4181
 
 
4182
  case 263:
 
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)])); ;}
 
4187
    break;
 
4188
 
 
4189
  case 264:
 
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; ;}
 
4194
    break;
 
4195
 
 
4196
  case 265:
 
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)])); ;}
 
4201
    break;
 
4202
 
 
4203
  case 266:
 
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; ;}
 
4208
    break;
 
4209
 
 
4210
  case 267:
 
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)])); ;}
 
4215
    break;
 
4216
 
 
4217
  case 268:
 
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)])); ;}
 
4222
    break;
 
4223
 
 
4224
  case 269:
 
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); ;}
 
4227
    break;
 
4228
 
 
4229
  case 270:
 
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); ;}
 
4236
    break;
 
4237
 
 
4238
  case 271:
 
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; ;}
 
4241
    break;
 
4242
 
 
4243
  case 273:
 
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; ;}
 
4251
    break;
 
4252
 
 
4253
  case 274:
 
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;
 
4261
                                        ;}
 
4262
    break;
 
4263
 
 
4264
  case 275:
 
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); ;}
 
4267
    break;
 
4268
 
 
4269
  case 276:
 
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); ;}
 
4272
    break;
 
4273
 
 
4274
  case 277:
 
4275
#line 1128 "../parser/Grammar.y"
 
4276
    { (yyval.caseClauseNode) = createNodeDeclarationInfo<CaseClauseNode*>(new (GLOBAL_DATA) CaseClauseNode(GLOBAL_DATA, 0), 0, 0, 0, 0); ;}
 
4277
    break;
 
4278
 
 
4279
  case 278:
 
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); ;}
 
4282
    break;
 
4283
 
 
4284
  case 279:
 
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); ;}
 
4289
    break;
 
4290
 
 
4291
  case 280:
 
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)]));
 
4296
                                        ;}
 
4297
    break;
 
4298
 
 
4299
  case 281:
 
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; 
 
4304
                                        ;}
 
4305
    break;
 
4306
 
 
4307
  case 282:
 
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)])); ;}
 
4315
    break;
 
4316
 
 
4317
  case 283:
 
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)])); ;}
 
4325
    break;
 
4326
 
 
4327
  case 284:
 
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)])); ;}
 
4335
    break;
 
4336
 
 
4337
  case 285:
 
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)])); ;}
 
4341
    break;
 
4342
 
 
4343
  case 286:
 
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; ;}
 
4347
    break;
 
4348
 
 
4349
  case 287:
 
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()); ;}
 
4352
    break;
 
4353
 
 
4354
  case 288:
 
4355
#line 1181 "../parser/Grammar.y"
 
4356
    {
 
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());
 
4362
      ;}
 
4363
    break;
 
4364
 
 
4365
  case 289:
 
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)])); ;}
 
4368
    break;
 
4369
 
 
4370
  case 290:
 
4371
#line 1193 "../parser/Grammar.y"
 
4372
    {
 
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)]));
 
4377
      ;}
 
4378
    break;
 
4379
 
 
4380
  case 291:
 
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)])); ;}
 
4383
    break;
 
4384
 
 
4385
  case 292:
 
4386
#line 1201 "../parser/Grammar.y"
 
4387
    {
 
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)]));
 
4392
      ;}
 
4393
    break;
 
4394
 
 
4395
  case 293:
 
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; ;}
 
4400
    break;
 
4401
 
 
4402
  case 294:
 
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));  ;}
 
4407
    break;
 
4408
 
 
4409
  case 295:
 
4410
#line 1219 "../parser/Grammar.y"
 
4411
    { (yyval.functionBodyNode) = FunctionBodyNode::create(GLOBAL_DATA); ;}
 
4412
    break;
 
4413
 
 
4414
  case 296:
 
4415
#line 1220 "../parser/Grammar.y"
 
4416
    { (yyval.functionBodyNode) = FunctionBodyNode::create(GLOBAL_DATA); ;}
 
4417
    break;
 
4418
 
 
4419
  case 297:
 
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); ;}
 
4422
    break;
 
4423
 
 
4424
  case 298:
 
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); ;}
 
4428
    break;
 
4429
 
 
4430
  case 299:
 
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;
 
4438
                                        ;}
 
4439
    break;
 
4440
 
 
4441
  case 300:
 
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;
 
4448
                                        ;}
 
4449
    break;
 
4450
 
 
4451
  case 304:
 
4452
#line 1251 "../parser/Grammar.y"
 
4453
    { ;}
 
4454
    break;
 
4455
 
 
4456
  case 305:
 
4457
#line 1252 "../parser/Grammar.y"
 
4458
    { ;}
 
4459
    break;
 
4460
 
 
4461
  case 306:
 
4462
#line 1253 "../parser/Grammar.y"
 
4463
    { if (!GLOBAL_DATA->lexer->skipRegExp()) YYABORT; ;}
 
4464
    break;
 
4465
 
 
4466
  case 307:
 
4467
#line 1254 "../parser/Grammar.y"
 
4468
    { if (!GLOBAL_DATA->lexer->skipRegExp()) YYABORT; ;}
 
4469
    break;
 
4470
 
 
4471
  case 308:
 
4472
#line 1258 "../parser/Grammar.y"
 
4473
    { ;}
 
4474
    break;
 
4475
 
 
4476
  case 309:
 
4477
#line 1259 "../parser/Grammar.y"
 
4478
    { ;}
 
4479
    break;
 
4480
 
 
4481
  case 310:
 
4482
#line 1260 "../parser/Grammar.y"
 
4483
    { ;}
 
4484
    break;
 
4485
 
 
4486
  case 311:
 
4487
#line 1261 "../parser/Grammar.y"
 
4488
    { if (*(yyvsp[(1) - (7)].ident) != "get" && *(yyvsp[(1) - (7)].ident) != "set") YYABORT; ;}
 
4489
    break;
 
4490
 
 
4491
  case 312:
 
4492
#line 1262 "../parser/Grammar.y"
 
4493
    { if (*(yyvsp[(1) - (8)].ident) != "get" && *(yyvsp[(1) - (8)].ident) != "set") YYABORT; ;}
 
4494
    break;
 
4495
 
 
4496
  case 316:
 
4497
#line 1272 "../parser/Grammar.y"
 
4498
    { ;}
 
4499
    break;
 
4500
 
 
4501
  case 317:
 
4502
#line 1273 "../parser/Grammar.y"
 
4503
    { ;}
 
4504
    break;
 
4505
 
 
4506
  case 318:
 
4507
#line 1275 "../parser/Grammar.y"
 
4508
    { ;}
 
4509
    break;
 
4510
 
 
4511
  case 322:
 
4512
#line 1282 "../parser/Grammar.y"
 
4513
    { ;}
 
4514
    break;
 
4515
 
 
4516
  case 517:
 
4517
#line 1650 "../parser/Grammar.y"
 
4518
    { ;}
 
4519
    break;
 
4520
 
 
4521
  case 518:
 
4522
#line 1651 "../parser/Grammar.y"
 
4523
    { ;}
 
4524
    break;
 
4525
 
 
4526
  case 520:
 
4527
#line 1656 "../parser/Grammar.y"
 
4528
    { AUTO_SEMICOLON; ;}
 
4529
    break;
 
4530
 
 
4531
  case 521:
 
4532
#line 1660 "../parser/Grammar.y"
 
4533
    { ;}
 
4534
    break;
 
4535
 
 
4536
  case 522:
 
4537
#line 1661 "../parser/Grammar.y"
 
4538
    { ;}
 
4539
    break;
 
4540
 
 
4541
  case 525:
 
4542
#line 1667 "../parser/Grammar.y"
 
4543
    { ;}
 
4544
    break;
 
4545
 
 
4546
  case 526:
 
4547
#line 1668 "../parser/Grammar.y"
 
4548
    { ;}
 
4549
    break;
 
4550
 
 
4551
  case 530:
 
4552
#line 1675 "../parser/Grammar.y"
 
4553
    { AUTO_SEMICOLON; ;}
 
4554
    break;
 
4555
 
 
4556
  case 533:
 
4557
#line 1684 "../parser/Grammar.y"
 
4558
    { ;}
 
4559
    break;
 
4560
 
 
4561
  case 534:
 
4562
#line 1685 "../parser/Grammar.y"
 
4563
    { ;}
 
4564
    break;
 
4565
 
 
4566
  case 539:
 
4567
#line 1702 "../parser/Grammar.y"
 
4568
    { AUTO_SEMICOLON; ;}
 
4569
    break;
 
4570
 
 
4571
  case 555:
 
4572
#line 1733 "../parser/Grammar.y"
 
4573
    { AUTO_SEMICOLON; ;}
 
4574
    break;
 
4575
 
 
4576
  case 557:
 
4577
#line 1735 "../parser/Grammar.y"
 
4578
    { AUTO_SEMICOLON; ;}
 
4579
    break;
 
4580
 
 
4581
  case 559:
 
4582
#line 1740 "../parser/Grammar.y"
 
4583
    { AUTO_SEMICOLON; ;}
 
4584
    break;
 
4585
 
 
4586
  case 561:
 
4587
#line 1742 "../parser/Grammar.y"
 
4588
    { AUTO_SEMICOLON; ;}
 
4589
    break;
 
4590
 
 
4591
  case 563:
 
4592
#line 1747 "../parser/Grammar.y"
 
4593
    { AUTO_SEMICOLON; ;}
 
4594
    break;
 
4595
 
 
4596
  case 565:
 
4597
#line 1749 "../parser/Grammar.y"
 
4598
    { AUTO_SEMICOLON; ;}
 
4599
    break;
 
4600
 
 
4601
  case 568:
 
4602
#line 1761 "../parser/Grammar.y"
 
4603
    { ;}
 
4604
    break;
 
4605
 
 
4606
  case 569:
 
4607
#line 1762 "../parser/Grammar.y"
 
4608
    { ;}
 
4609
    break;
 
4610
 
 
4611
  case 578:
 
4612
#line 1786 "../parser/Grammar.y"
 
4613
    { ;}
 
4614
    break;
 
4615
 
 
4616
  case 580:
 
4617
#line 1791 "../parser/Grammar.y"
 
4618
    { AUTO_SEMICOLON; ;}
 
4619
    break;
 
4620
 
 
4621
  case 585:
 
4622
#line 1802 "../parser/Grammar.y"
 
4623
    { AUTO_SEMICOLON; ;}
 
4624
    break;
 
4625
 
 
4626
  case 592:
 
4627
#line 1818 "../parser/Grammar.y"
 
4628
    { ;}
 
4629
    break;
 
4630
 
 
4631
 
 
4632
/* Line 1267 of yacc.c.  */
 
4633
#line 4634 "JavaScriptCore/tmp/../generated/Grammar.tab.c"
 
4634
      default: break;
 
4635
    }
 
4636
  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
 
4637
 
 
4638
  YYPOPSTACK (yylen);
 
4639
  yylen = 0;
 
4640
  YY_STACK_PRINT (yyss, yyssp);
 
4641
 
 
4642
  *++yyvsp = yyval;
 
4643
  *++yylsp = yyloc;
 
4644
 
 
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.  */
 
4648
 
 
4649
  yyn = yyr1[yyn];
 
4650
 
 
4651
  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
 
4652
  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
 
4653
    yystate = yytable[yystate];
 
4654
  else
 
4655
    yystate = yydefgoto[yyn - YYNTOKENS];
 
4656
 
 
4657
  goto yynewstate;
 
4658
 
 
4659
 
 
4660
/*------------------------------------.
 
4661
| yyerrlab -- here on detecting error |
 
4662
`------------------------------------*/
 
4663
yyerrlab:
 
4664
  /* If not already recovering from an error, report this error.  */
 
4665
  if (!yyerrstatus)
 
4666
    {
 
4667
      ++yynerrs;
 
4668
#if ! YYERROR_VERBOSE
 
4669
      yyerror (YY_("syntax error"));
 
4670
#else
 
4671
      {
 
4672
        YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
 
4673
        if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
 
4674
          {
 
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);
 
4681
            if (yymsg)
 
4682
              yymsg_alloc = yyalloc;
 
4683
            else
 
4684
              {
 
4685
                yymsg = yymsgbuf;
 
4686
                yymsg_alloc = sizeof yymsgbuf;
 
4687
              }
 
4688
          }
 
4689
 
 
4690
        if (0 < yysize && yysize <= yymsg_alloc)
 
4691
          {
 
4692
            (void) yysyntax_error (yymsg, yystate, yychar);
 
4693
            yyerror (yymsg);
 
4694
          }
 
4695
        else
 
4696
          {
 
4697
            yyerror (YY_("syntax error"));
 
4698
            if (yysize != 0)
 
4699
              goto yyexhaustedlab;
 
4700
          }
 
4701
      }
 
4702
#endif
 
4703
    }
 
4704
 
 
4705
  yyerror_range[0] = yylloc;
 
4706
 
 
4707
  if (yyerrstatus == 3)
 
4708
    {
 
4709
      /* If just tried and failed to reuse look-ahead token after an
 
4710
         error, discard it.  */
 
4711
 
 
4712
      if (yychar <= YYEOF)
 
4713
        {
 
4714
          /* Return failure if at end of input.  */
 
4715
          if (yychar == YYEOF)
 
4716
            YYABORT;
 
4717
        }
 
4718
      else
 
4719
        {
 
4720
          yydestruct ("Error: discarding",
 
4721
                      yytoken, &yylval, &yylloc);
 
4722
          yychar = YYEMPTY;
 
4723
        }
 
4724
    }
 
4725
 
 
4726
  /* Else will try to reuse look-ahead token after shifting the error
 
4727
     token.  */
 
4728
  goto yyerrlab1;
 
4729
 
 
4730
 
 
4731
/*---------------------------------------------------.
 
4732
| yyerrorlab -- error raised explicitly by YYERROR.  |
 
4733
`---------------------------------------------------*/
 
4734
yyerrorlab:
 
4735
 
 
4736
  /* Pacify compilers like GCC when the user code never invokes
 
4737
     YYERROR and the label yyerrorlab therefore never appears in user
 
4738
     code.  */
 
4739
  if (/*CONSTCOND*/ 0)
 
4740
     goto yyerrorlab;
 
4741
 
 
4742
  yyerror_range[0] = yylsp[1-yylen];
 
4743
  /* Do not reclaim the symbols of the rule which action triggered
 
4744
     this YYERROR.  */
 
4745
  YYPOPSTACK (yylen);
 
4746
  yylen = 0;
 
4747
  YY_STACK_PRINT (yyss, yyssp);
 
4748
  yystate = *yyssp;
 
4749
  goto yyerrlab1;
 
4750
 
 
4751
 
 
4752
/*-------------------------------------------------------------.
 
4753
| yyerrlab1 -- common code for both syntax error and YYERROR.  |
 
4754
`-------------------------------------------------------------*/
 
4755
yyerrlab1:
 
4756
  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
 
4757
 
 
4758
  for (;;)
 
4759
    {
 
4760
      yyn = yypact[yystate];
 
4761
      if (yyn != YYPACT_NINF)
 
4762
        {
 
4763
          yyn += YYTERROR;
 
4764
          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
 
4765
            {
 
4766
              yyn = yytable[yyn];
 
4767
              if (0 < yyn)
 
4768
                break;
 
4769
            }
 
4770
        }
 
4771
 
 
4772
      /* Pop the current state because it cannot handle the error token.  */
 
4773
      if (yyssp == yyss)
 
4774
        YYABORT;
 
4775
 
 
4776
      yyerror_range[0] = *yylsp;
 
4777
      yydestruct ("Error: popping",
 
4778
                  yystos[yystate], yyvsp, yylsp);
 
4779
      YYPOPSTACK (1);
 
4780
      yystate = *yyssp;
 
4781
      YY_STACK_PRINT (yyss, yyssp);
 
4782
    }
 
4783
 
 
4784
  if (yyn == YYFINAL)
 
4785
    YYACCEPT;
 
4786
 
 
4787
  *++yyvsp = yylval;
 
4788
 
 
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);
 
4793
  *++yylsp = yyloc;
 
4794
 
 
4795
  /* Shift the error token.  */
 
4796
  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
 
4797
 
 
4798
  yystate = yyn;
 
4799
  goto yynewstate;
 
4800
 
 
4801
 
 
4802
/*-------------------------------------.
 
4803
| yyacceptlab -- YYACCEPT comes here.  |
 
4804
`-------------------------------------*/
 
4805
yyacceptlab:
 
4806
  yyresult = 0;
 
4807
  goto yyreturn;
 
4808
 
 
4809
/*-----------------------------------.
 
4810
| yyabortlab -- YYABORT comes here.  |
 
4811
`-----------------------------------*/
 
4812
yyabortlab:
 
4813
  yyresult = 1;
 
4814
  goto yyreturn;
 
4815
 
 
4816
#ifndef yyoverflow
 
4817
/*-------------------------------------------------.
 
4818
| yyexhaustedlab -- memory exhaustion comes here.  |
 
4819
`-------------------------------------------------*/
 
4820
yyexhaustedlab:
 
4821
  yyerror (YY_("memory exhausted"));
 
4822
  yyresult = 2;
 
4823
  /* Fall through.  */
 
4824
#endif
 
4825
 
 
4826
yyreturn:
 
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.  */
 
4832
  YYPOPSTACK (yylen);
 
4833
  YY_STACK_PRINT (yyss, yyssp);
 
4834
  while (yyssp != yyss)
 
4835
    {
 
4836
      yydestruct ("Cleanup: popping",
 
4837
                  yystos[*yyssp], yyvsp, yylsp);
 
4838
      YYPOPSTACK (1);
 
4839
    }
 
4840
#ifndef yyoverflow
 
4841
  if (yyss != yyssa)
 
4842
    YYSTACK_FREE (yyss);
 
4843
#endif
 
4844
#if YYERROR_VERBOSE
 
4845
  if (yymsg != yymsgbuf)
 
4846
    YYSTACK_FREE (yymsg);
 
4847
#endif
 
4848
  /* Make sure YYID is used.  */
 
4849
  return YYID (yyresult);
 
4850
}
 
4851
 
 
4852
 
 
4853
#line 1834 "../parser/Grammar.y"
 
4854
 
 
4855
 
 
4856
#undef GLOBAL_DATA
 
4857
 
 
4858
static ExpressionNode* makeAssignNode(JSGlobalData* globalData, ExpressionNode* loc, Operator op, ExpressionNode* expr, bool locHasAssignments, bool exprHasAssignments, int start, int divot, int end)
 
4859
{
 
4860
    if (!loc->isLocation())
 
4861
        return new (globalData) AssignErrorNode(globalData, loc, op, expr, divot, divot - start, end - divot);
 
4862
 
 
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);
 
4868
            return node;
 
4869
        } else
 
4870
            return new (globalData) ReadModifyResolveNode(globalData, resolve->identifier(), op, expr, exprHasAssignments, divot, divot - start, end - divot);
 
4871
    }
 
4872
    if (loc->isBracketAccessorNode()) {
 
4873
        BracketAccessorNode* bracket = static_cast<BracketAccessorNode*>(loc);
 
4874
        if (op == OpEqual)
 
4875
            return new (globalData) AssignBracketNode(globalData, bracket->base(), bracket->subscript(), expr, locHasAssignments, exprHasAssignments, bracket->divot(), bracket->divot() - start, end - bracket->divot());
 
4876
        else {
 
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());
 
4879
            return node;
 
4880
        }
 
4881
    }
 
4882
    ASSERT(loc->isDotAccessorNode());
 
4883
    DotAccessorNode* dot = static_cast<DotAccessorNode*>(loc);
 
4884
    if (op == OpEqual)
 
4885
        return new (globalData) AssignDotNode(globalData, dot->base(), dot->identifier(), expr, exprHasAssignments, dot->divot(), dot->divot() - start, end - dot->divot());
 
4886
 
 
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());
 
4889
    return node;
 
4890
}
 
4891
 
 
4892
static ExpressionNode* makePrefixNode(JSGlobalData* globalData, ExpressionNode* expr, Operator op, int start, int divot, int end)
 
4893
{
 
4894
    if (!expr->isLocation())
 
4895
        return new (globalData) PrefixErrorNode(globalData, expr, op, divot, divot - start, end - divot);
 
4896
    
 
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);
 
4900
    }
 
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());
 
4905
        return node;
 
4906
    }
 
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());
 
4911
    return node;
 
4912
}
 
4913
 
 
4914
static ExpressionNode* makePostfixNode(JSGlobalData* globalData, ExpressionNode* expr, Operator op, int start, int divot, int end)
 
4915
 
4916
    if (!expr->isLocation())
 
4917
        return new (globalData) PostfixErrorNode(globalData, expr, op, divot, divot - start, end - divot);
 
4918
    
 
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);
 
4922
    }
 
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());
 
4927
        return node;
 
4928
        
 
4929
    }
 
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());
 
4934
    return node;
 
4935
}
 
4936
 
 
4937
static ExpressionNodeInfo makeFunctionCallNode(JSGlobalData* globalData, ExpressionNodeInfo func, ArgumentsNodeInfo args, int start, int divot, int end)
 
4938
{
 
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);
 
4949
    }
 
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);
 
4955
    }
 
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);
 
4963
    else
 
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);
 
4967
}
 
4968
 
 
4969
static ExpressionNode* makeTypeOfNode(JSGlobalData* globalData, ExpressionNode* expr)
 
4970
{
 
4971
    if (expr->isResolveNode()) {
 
4972
        ResolveNode* resolve = static_cast<ResolveNode*>(expr);
 
4973
        return new (globalData) TypeOfResolveNode(globalData, resolve->identifier());
 
4974
    }
 
4975
    return new (globalData) TypeOfValueNode(globalData, expr);
 
4976
}
 
4977
 
 
4978
static ExpressionNode* makeDeleteNode(JSGlobalData* globalData, ExpressionNode* expr, int start, int divot, int end)
 
4979
{
 
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);
 
4985
    }
 
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);
 
4989
    }
 
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);
 
4993
}
 
4994
 
 
4995
static PropertyNode* makeGetterOrSetterPropertyNode(JSGlobalData* globalData, const Identifier& getOrSet, const Identifier& name, ParameterNode* params, FunctionBodyNode* body, const SourceCode& source)
 
4996
{
 
4997
    PropertyNode::Type type;
 
4998
    if (getOrSet == "get")
 
4999
        type = PropertyNode::Getter;
 
5000
    else if (getOrSet == "set")
 
5001
        type = PropertyNode::Setter;
 
5002
    else
 
5003
        return 0;
 
5004
    return new (globalData) PropertyNode(globalData, name, new (globalData) FuncExprNode(globalData, globalData->propertyNames->nullIdentifier, body, source, params), type);
 
5005
}
 
5006
 
 
5007
static ExpressionNode* makeNegateNode(JSGlobalData* globalData, ExpressionNode* n)
 
5008
{
 
5009
    if (n->isNumber()) {
 
5010
        NumberNode* number = static_cast<NumberNode*>(n);
 
5011
 
 
5012
        if (number->value() > 0.0) {
 
5013
            number->setValue(-number->value());
 
5014
            return number;
 
5015
        }
 
5016
    }
 
5017
 
 
5018
    return new (globalData) NegateNode(globalData, n);
 
5019
}
 
5020
 
 
5021
static NumberNode* makeNumberNode(JSGlobalData* globalData, double d)
 
5022
{
 
5023
    return new (globalData) NumberNode(globalData, d);
 
5024
}
 
5025
 
 
5026
static ExpressionNode* makeBitwiseNotNode(JSGlobalData* globalData, ExpressionNode* expr)
 
5027
{
 
5028
    if (expr->isNumber())
 
5029
        return makeNumberNode(globalData, ~toInt32(static_cast<NumberNode*>(expr)->value()));
 
5030
    return new (globalData) BitwiseNotNode(globalData, expr);
 
5031
}
 
5032
 
 
5033
static ExpressionNode* makeMultNode(JSGlobalData* globalData, ExpressionNode* expr1, ExpressionNode* expr2, bool rightHasAssignments)
 
5034
{
 
5035
    expr1 = expr1->stripUnaryPlus();
 
5036
    expr2 = expr2->stripUnaryPlus();
 
5037
 
 
5038
    if (expr1->isNumber() && expr2->isNumber())
 
5039
        return makeNumberNode(globalData, static_cast<NumberNode*>(expr1)->value() * static_cast<NumberNode*>(expr2)->value());
 
5040
 
 
5041
    if (expr1->isNumber() && static_cast<NumberNode*>(expr1)->value() == 1)
 
5042
        return new (globalData) UnaryPlusNode(globalData, expr2);
 
5043
 
 
5044
    if (expr2->isNumber() && static_cast<NumberNode*>(expr2)->value() == 1)
 
5045
        return new (globalData) UnaryPlusNode(globalData, expr1);
 
5046
 
 
5047
    return new (globalData) MultNode(globalData, expr1, expr2, rightHasAssignments);
 
5048
}
 
5049
 
 
5050
static ExpressionNode* makeDivNode(JSGlobalData* globalData, ExpressionNode* expr1, ExpressionNode* expr2, bool rightHasAssignments)
 
5051
{
 
5052
    expr1 = expr1->stripUnaryPlus();
 
5053
    expr2 = expr2->stripUnaryPlus();
 
5054
 
 
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);
 
5058
}
 
5059
 
 
5060
static ExpressionNode* makeAddNode(JSGlobalData* globalData, ExpressionNode* expr1, ExpressionNode* expr2, bool rightHasAssignments)
 
5061
{
 
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);
 
5065
}
 
5066
 
 
5067
static ExpressionNode* makeSubNode(JSGlobalData* globalData, ExpressionNode* expr1, ExpressionNode* expr2, bool rightHasAssignments)
 
5068
{
 
5069
    expr1 = expr1->stripUnaryPlus();
 
5070
    expr2 = expr2->stripUnaryPlus();
 
5071
 
 
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);
 
5075
}
 
5076
 
 
5077
static ExpressionNode* makeLeftShiftNode(JSGlobalData* globalData, ExpressionNode* expr1, ExpressionNode* expr2, bool rightHasAssignments)
 
5078
{
 
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);
 
5082
}
 
5083
 
 
5084
static ExpressionNode* makeRightShiftNode(JSGlobalData* globalData, ExpressionNode* expr1, ExpressionNode* expr2, bool rightHasAssignments)
 
5085
{
 
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);
 
5089
}
 
5090
 
 
5091
// Called by yyparse on error.
 
5092
int yyerror(const char*)
 
5093
{
 
5094
    return 1;
 
5095
}
 
5096
 
 
5097
// May we automatically insert a semicolon?
 
5098
static bool allowAutomaticSemicolon(Lexer& lexer, int yychar)
 
5099
{
 
5100
    return yychar == CLOSEBRACE || yychar == 0 || lexer.prevTerminator();
 
5101
}
 
5102
 
 
5103
static ExpressionNode* combineCommaNodes(JSGlobalData* globalData, ExpressionNode* list, ExpressionNode* init)
 
5104
{
 
5105
    if (!list)
 
5106
        return init;
 
5107
    if (list->isCommaNode()) {
 
5108
        static_cast<CommaNode*>(list)->append(init);
 
5109
        return list;
 
5110
    }
 
5111
    return new (globalData) CommaNode(globalData, list, init);
 
5112
}
 
5113
 
 
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)
 
5118
{
 
5119
    if (!expr)
 
5120
        return new (globalData) EmptyStatementNode(globalData);
 
5121
    return new (globalData) VarStatementNode(globalData, expr);
 
5122
}
 
5123