40 #define YYBISON_VERSION "2.1"
43 #define YYSKELETON_NAME "yacc.c"
49 #define YYLSP_NEEDED 1
52 #define yyparse kjsyyparse
53 #define yylex kjsyylex
54 #define yyerror kjsyyerror
55 #define yylval kjsyylval
56 #define yychar kjsyychar
57 #define yydebug kjsyydebug
58 #define yynerrs kjsyynerrs
59 #define yylloc kjsyylloc
131 #define NULLTOKEN 258
132 #define TRUETOKEN 259
133 #define FALSETOKEN 260
154 #define INSTANCEOF 281
173 #define MINUSMINUS 300
177 #define PLUSEQUAL 304
178 #define MINUSEQUAL 305
179 #define MULTEQUAL 306
181 #define LSHIFTEQUAL 308
182 #define RSHIFTEQUAL 309
183 #define URSHIFTEQUAL 310
189 #define FUNCEXPRIDENT 316
190 #define AUTOPLUSPLUS 317
191 #define AUTOMINUSMINUS 318
228 #include "interpreter.h"
231 #include "internal.h"
238 #define YYERROR_VERBOSE
239 #define DBG(l, s, e) { l->setLoc(s.first_line, e.last_line, Parser::source); }
242 static int yyerror (
const char *);
243 static bool automatic();
255 #ifdef YYERROR_VERBOSE
256 # undef YYERROR_VERBOSE
257 # define YYERROR_VERBOSE 1
259 # define YYERROR_VERBOSE 0
263 #ifndef YYTOKEN_TABLE
264 # define YYTOKEN_TABLE 0
267 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
269 typedef union YYSTYPE {
276 ParameterNode *param;
277 FunctionBodyNode *body;
279 FunctionBodyNode *prog;
280 AssignExprNode *init;
281 SourceElementsNode *srcs;
284 ArgumentListNode *alist;
286 VarDeclListNode *vlist;
288 ClauseListNode *clist;
292 PropertyValueNode *plist;
298 #line 299 "grammar.tab.c"
299 # define yystype YYSTYPE
300 # define YYSTYPE_IS_DECLARED 1
301 # define YYSTYPE_IS_TRIVIAL 1
304 #if ! defined (YYLTYPE) && ! defined (YYLTYPE_IS_DECLARED)
305 typedef struct YYLTYPE
312 # define yyltype YYLTYPE
313 # define YYLTYPE_IS_DECLARED 1
314 # define YYLTYPE_IS_TRIVIAL 1
322 #line 323 "grammar.tab.c"
324 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
325 # define YYSIZE_T __SIZE_TYPE__
327 #if ! defined (YYSIZE_T) && defined (size_t)
328 # define YYSIZE_T size_t
330 #if ! defined (YYSIZE_T) && (defined (__STDC__) || defined (__cplusplus))
332 # define YYSIZE_T size_t
334 #if ! defined (YYSIZE_T)
335 # define YYSIZE_T unsigned int
341 # include <libintl.h>
342 # define YY_(msgid) dgettext ("bison-runtime", msgid)
346 # define YY_(msgid) msgid
350 #if ! defined (yyoverflow) || YYERROR_VERBOSE
354 # ifdef YYSTACK_USE_ALLOCA
355 # if YYSTACK_USE_ALLOCA
357 # define YYSTACK_ALLOC __builtin_alloca
359 # define YYSTACK_ALLOC alloca
360 # if defined (__STDC__) || defined (__cplusplus)
362 # define YYINCLUDED_STDLIB_H
368 # ifdef YYSTACK_ALLOC
370 # define YYSTACK_FREE(Ptr) do { ; } while (0)
371 # ifndef YYSTACK_ALLOC_MAXIMUM
376 # define YYSTACK_ALLOC_MAXIMUM 4032
379 # define YYSTACK_ALLOC YYMALLOC
380 # define YYSTACK_FREE YYFREE
381 # ifndef YYSTACK_ALLOC_MAXIMUM
382 # define YYSTACK_ALLOC_MAXIMUM ((YYSIZE_T) -1)
388 # define YYMALLOC malloc
389 # if (! defined (malloc) && ! defined (YYINCLUDED_STDLIB_H) \
390 && (defined (__STDC__) || defined (__cplusplus)))
391 void *malloc (YYSIZE_T);
396 # if (! defined (free) && ! defined (YYINCLUDED_STDLIB_H) \
397 && (defined (__STDC__) || defined (__cplusplus)))
408 #if (! defined (yyoverflow) \
409 && (! defined (__cplusplus) \
410 || (defined (YYLTYPE_IS_TRIVIAL) && YYLTYPE_IS_TRIVIAL \
411 && defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
422 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
426 # define YYSTACK_BYTES(N) \
427 ((N) * (sizeof (short int) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
428 + 2 * YYSTACK_GAP_MAXIMUM)
433 # if defined (__GNUC__) && 1 < __GNUC__
434 # define YYCOPY(To, From, Count) \
435 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
437 # define YYCOPY(To, From, Count) \
441 for (yyi = 0; yyi < (Count); yyi++) \
442 (To)[yyi] = (From)[yyi]; \
453 # define YYSTACK_RELOCATE(Stack) \
456 YYSIZE_T yynewbytes; \
457 YYCOPY (&yyptr->Stack, Stack, yysize); \
458 Stack = &yyptr->Stack; \
459 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
460 yyptr += yynewbytes / sizeof (*yyptr); \
466 #if defined (__STDC__) || defined (__cplusplus)
467 typedef signed char yysigned_char;
469 typedef short int yysigned_char;
484 #define YYNSTATES 384
488 #define YYMAXUTOK 318
490 #define YYTRANSLATE(YYX) \
491 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
494 static const unsigned char yytranslate[] =
496 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
497 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
498 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
499 2, 2, 2, 77, 2, 2, 2, 79, 82, 2,
500 65, 66, 78, 74, 69, 75, 73, 64, 2, 2,
501 2, 2, 2, 2, 2, 2, 2, 2, 72, 87,
502 80, 86, 81, 85, 2, 2, 2, 2, 2, 2,
503 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
504 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
505 2, 70, 2, 71, 83, 2, 2, 2, 2, 2,
506 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
507 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
508 2, 2, 2, 67, 84, 68, 76, 2, 2, 2,
509 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
510 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
511 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
512 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
513 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
514 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
515 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
516 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
517 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
518 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
519 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
520 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
521 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
522 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
523 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
524 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
525 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
526 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
527 55, 56, 57, 58, 59, 60, 61, 62, 63
533 static const unsigned short int yyprhs[] =
535 0, 0, 3, 5, 7, 9, 11, 13, 15, 17,
536 19, 21, 23, 25, 29, 32, 36, 41, 45, 49,
537 55, 58, 63, 64, 66, 68, 71, 75, 81, 83,
538 85, 87, 89, 91, 96, 100, 104, 106, 109, 112,
539 115, 120, 124, 127, 131, 133, 137, 139, 141, 143,
540 146, 149, 151, 154, 157, 160, 163, 166, 169, 172,
541 175, 178, 181, 184, 186, 190, 194, 198, 200, 204,
542 208, 210, 214, 218, 222, 224, 228, 232, 236, 240,
543 244, 248, 250, 254, 258, 262, 266, 268, 272, 274,
544 278, 280, 284, 286, 290, 292, 296, 298, 304, 306,
545 310, 312, 314, 316, 318, 320, 322, 324, 326, 328,
546 330, 332, 334, 336, 340, 342, 344, 346, 348, 350,
547 352, 354, 356, 358, 360, 362, 364, 366, 368, 370,
548 372, 375, 379, 381, 384, 388, 392, 394, 398, 400,
549 403, 407, 411, 413, 417, 419, 422, 425, 427, 430,
550 433, 439, 447, 454, 460, 470, 481, 489, 498, 508,
551 509, 511, 514, 517, 521, 525, 528, 531, 535, 539,
552 542, 545, 549, 553, 559, 565, 569, 575, 576, 578,
553 580, 583, 587, 592, 595, 599, 603, 607, 611, 615,
554 619, 624, 627, 630, 636, 639, 641, 644, 650, 657,
555 662, 668, 674, 681, 683, 687, 690, 694, 695, 697,
560 static const short int yyrhs[] =
562 155, 0, -1, 3, -1, 4, -1, 5, -1, 7,
563 -1, 6, -1, 64, -1, 52, -1, 21, -1, 60,
564 -1, 89, -1, 91, -1, 65, 118, 66, -1, 67,
565 68, -1, 67, 95, 68, -1, 67, 95, 69, 68,
566 -1, 70, 93, 71, -1, 70, 92, 71, -1, 70,
567 92, 69, 93, 71, -1, 93, 116, -1, 92, 69,
568 93, 116, -1, -1, 94, -1, 69, -1, 94, 69,
569 -1, 96, 72, 116, -1, 95, 69, 96, 72, 116,
570 -1, 60, -1, 6, -1, 7, -1, 90, -1, 152,
571 -1, 97, 70, 118, 71, -1, 97, 73, 60, -1,
572 12, 97, 100, -1, 97, -1, 12, 98, -1, 97,
573 100, -1, 99, 100, -1, 99, 70, 118, 71, -1,
574 99, 73, 60, -1, 65, 66, -1, 65, 101, 66,
575 -1, 116, -1, 101, 69, 116, -1, 98, -1, 99,
576 -1, 102, -1, 102, 44, -1, 102, 45, -1, 103,
577 -1, 19, 104, -1, 18, 104, -1, 27, 104, -1,
578 44, 104, -1, 62, 104, -1, 45, 104, -1, 63,
579 104, -1, 74, 104, -1, 75, 104, -1, 76, 104,
580 -1, 77, 104, -1, 104, -1, 105, 78, 104, -1,
581 105, 64, 104, -1, 105, 79, 104, -1, 105, -1,
582 106, 74, 105, -1, 106, 75, 105, -1, 106, -1,
583 107, 46, 106, -1, 107, 47, 106, -1, 107, 48,
584 106, -1, 107, -1, 108, 80, 107, -1, 108, 81,
585 107, -1, 108, 40, 107, -1, 108, 41, 107, -1,
586 108, 26, 107, -1, 108, 25, 107, -1, 108, -1,
587 109, 36, 108, -1, 109, 37, 108, -1, 109, 38,
588 108, -1, 109, 39, 108, -1, 109, -1, 110, 82,
589 109, -1, 110, -1, 111, 83, 110, -1, 111, -1,
590 112, 84, 111, -1, 112, -1, 113, 43, 112, -1,
591 113, -1, 114, 42, 113, -1, 114, -1, 114, 85,
592 116, 72, 116, -1, 115, -1, 102, 117, 116, -1,
593 86, -1, 49, -1, 50, -1, 51, -1, 52, -1,
594 53, -1, 54, -1, 55, -1, 56, -1, 58, -1,
595 59, -1, 57, -1, 116, -1, 118, 69, 116, -1,
596 120, -1, 122, -1, 125, -1, 129, -1, 130, -1,
597 131, -1, 132, -1, 134, -1, 135, -1, 136, -1,
598 137, -1, 138, -1, 144, -1, 145, -1, 146, -1,
599 147, -1, 67, 68, -1, 67, 156, 68, -1, 119,
600 -1, 121, 119, -1, 13, 123, 87, -1, 13, 123,
601 1, -1, 124, -1, 123, 69, 124, -1, 60, -1,
602 60, 128, -1, 14, 126, 87, -1, 14, 126, 1,
603 -1, 127, -1, 126, 69, 124, -1, 60, -1, 60,
604 128, -1, 86, 116, -1, 87, -1, 118, 87, -1,
605 118, 1, -1, 20, 65, 118, 66, 119, -1, 20,
606 65, 118, 66, 119, 24, 119, -1, 22, 119, 23,
607 65, 118, 66, -1, 23, 65, 118, 66, 119, -1,
608 11, 65, 133, 87, 133, 87, 133, 66, 119, -1,
609 11, 65, 13, 123, 87, 133, 87, 133, 66, 119,
610 -1, 11, 65, 102, 25, 118, 66, 119, -1, 11,
611 65, 13, 60, 25, 118, 66, 119, -1, 11, 65,
612 13, 60, 128, 25, 118, 66, 119, -1, -1, 118,
613 -1, 15, 87, -1, 15, 1, -1, 15, 60, 87,
614 -1, 15, 60, 1, -1, 8, 87, -1, 8, 1,
615 -1, 8, 60, 87, -1, 8, 60, 1, -1, 17,
616 87, -1, 17, 1, -1, 17, 118, 87, -1, 17,
617 118, 1, -1, 29, 65, 118, 66, 119, -1, 28,
618 65, 118, 66, 139, -1, 67, 140, 68, -1, 67,
619 140, 143, 140, 68, -1, -1, 141, -1, 142, -1,
620 141, 142, -1, 9, 118, 72, -1, 9, 118, 72,
621 121, -1, 10, 72, -1, 10, 72, 121, -1, 60,
622 72, 119, -1, 31, 118, 87, -1, 31, 118, 1,
623 -1, 32, 120, 148, -1, 32, 120, 149, -1, 32,
624 120, 148, 149, -1, 35, 87, -1, 35, 1, -1,
625 33, 65, 60, 66, 120, -1, 34, 120, -1, 151,
626 -1, 18, 151, -1, 16, 60, 65, 66, 154, -1,
627 16, 60, 65, 153, 66, 154, -1, 16, 65, 66,
628 154, -1, 16, 65, 153, 66, 154, -1, 16, 61,
629 65, 66, 154, -1, 16, 61, 65, 153, 66, 154,
630 -1, 60, -1, 153, 69, 60, -1, 67, 68, -1,
631 67, 156, 68, -1, -1, 156, -1, 157, -1, 156,
632 157, -1, 119, -1, 150, -1
636 static const unsigned short int yyrline[] =
638 0, 169, 169, 170, 171, 172, 173, 174, 177, 184,
639 185, 186, 187, 188, 189, 190, 191, 195, 196, 197,
640 201, 202, 207, 208, 212, 213, 217, 218, 223, 224,
641 225, 229, 230, 231, 232, 233, 237, 238, 242, 243,
642 244, 245, 249, 250, 254, 255, 259, 260, 264, 265,
643 266, 270, 271, 272, 273, 274, 275, 276, 277, 278,
644 279, 280, 281, 285, 286, 287, 288, 292, 293, 294,
645 298, 299, 300, 301, 305, 306, 308, 310, 312, 314,
646 316, 321, 322, 323, 324, 325, 329, 330, 334, 335,
647 339, 340, 344, 345, 350, 351, 356, 357, 362, 363,
648 368, 369, 370, 371, 372, 373, 374, 375, 376, 377,
649 378, 379, 383, 384, 388, 389, 390, 391, 392, 393,
650 394, 395, 396, 397, 398, 399, 400, 401, 402, 403,
651 407, 408, 412, 413, 417, 419, 429, 430, 435, 436,
652 440, 442, 452, 453, 458, 459, 463, 467, 471, 473,
653 481, 482, 487, 488, 489, 492, 495, 498, 501, 507,
654 508, 512, 513, 517, 518, 525, 526, 530, 531, 539,
655 540, 544, 545, 553, 558, 563, 564, 569, 570, 574,
656 575, 579, 580, 584, 585, 589, 594, 595, 602, 603,
657 604, 608, 609, 618, 623, 627, 629, 633, 634, 639,
658 641, 643, 645, 650, 651, 655, 657, 662, 665, 670,
663 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
666 static const char *
const yytname[] =
668 "$end",
"error",
"$undefined",
"NULLTOKEN",
"TRUETOKEN",
"FALSETOKEN",
669 "STRING",
"NUMBER",
"BREAK",
"CASE",
"DEFAULT",
"FOR",
"NEW",
"VAR",
670 "CONST",
"CONTINUE",
"FUNCTION",
"RETURN",
"VOID",
"DELETE",
"IF",
671 "THIS",
"DO",
"WHILE",
"ELSE",
"IN",
"INSTANCEOF",
"TYPEOF",
"SWITCH",
672 "WITH",
"RESERVED",
"THROW",
"TRY",
"CATCH",
"FINALLY",
"DEBUGGER",
673 "EQEQ",
"NE",
"STREQ",
"STRNEQ",
"LE",
"GE",
"OR",
"AND",
"PLUSPLUS",
674 "MINUSMINUS",
"LSHIFT",
"RSHIFT",
"URSHIFT",
"PLUSEQUAL",
"MINUSEQUAL",
675 "MULTEQUAL",
"DIVEQUAL",
"LSHIFTEQUAL",
"RSHIFTEQUAL",
"URSHIFTEQUAL",
676 "ANDEQUAL",
"MODEQUAL",
"XOREQUAL",
"OREQUAL",
"IDENT",
"FUNCEXPRIDENT",
677 "AUTOPLUSPLUS",
"AUTOMINUSMINUS",
"'/'",
"'('",
"')'",
"'{'",
"'}'",
678 "','",
"'['",
"']'",
"':'",
"'.'",
"'+'",
"'-'",
"'~'",
"'!'",
"'*'",
679 "'%'",
"'<'",
"'>'",
"'&'",
"'^'",
"'|'",
"'?'",
"'='",
"';'",
"$accept",
680 "Literal",
"PrimaryExpr",
"ArrayLiteral",
"ElementList",
"ElisionOpt",
681 "Elision",
"PropertyNameAndValueList",
"PropertyName",
"MemberExpr",
682 "NewExpr",
"CallExpr",
"Arguments",
"ArgumentList",
"LeftHandSideExpr",
683 "PostfixExpr",
"UnaryExpr",
"MultiplicativeExpr",
"AdditiveExpr",
684 "ShiftExpr",
"RelationalExpr",
"EqualityExpr",
"BitwiseANDExpr",
685 "BitwiseXORExpr",
"BitwiseORExpr",
"LogicalANDExpr",
"LogicalORExpr",
686 "ConditionalExpr",
"AssignmentExpr",
"AssignmentOperator",
"Expr",
687 "Statement",
"Block",
"StatementList",
"VariableStatement",
688 "VariableDeclarationList",
"VariableDeclaration",
"ConstStatement",
689 "ConstDeclarationList",
"ConstDeclaration",
"Initializer",
690 "EmptyStatement",
"ExprStatement",
"IfStatement",
"IterationStatement",
691 "ExprOpt",
"ContinueStatement",
"BreakStatement",
"ReturnStatement",
692 "WithStatement",
"SwitchStatement",
"CaseBlock",
"CaseClausesOpt",
693 "CaseClauses",
"CaseClause",
"DefaultClause",
"LabelledStatement",
694 "ThrowStatement",
"TryStatement",
"DebuggerStatement",
"Catch",
695 "Finally",
"FunctionDeclaration",
"FunctionDeclarationInternal",
696 "FunctionExpr",
"FormalParameterList",
"FunctionBody",
"Program",
697 "SourceElements",
"SourceElement", 0
704 static const unsigned short int yytoknum[] =
706 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
707 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
708 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
709 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
710 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
711 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
712 315, 316, 317, 318, 47, 40, 41, 123, 125, 44,
713 91, 93, 58, 46, 43, 45, 126, 33, 42, 37,
714 60, 62, 38, 94, 124, 63, 61, 59
719 static const unsigned char yyr1[] =
721 0, 88, 89, 89, 89, 89, 89, 89, 89, 90,
722 90, 90, 90, 90, 90, 90, 90, 91, 91, 91,
723 92, 92, 93, 93, 94, 94, 95, 95, 96, 96,
724 96, 97, 97, 97, 97, 97, 98, 98, 99, 99,
725 99, 99, 100, 100, 101, 101, 102, 102, 103, 103,
726 103, 104, 104, 104, 104, 104, 104, 104, 104, 104,
727 104, 104, 104, 105, 105, 105, 105, 106, 106, 106,
728 107, 107, 107, 107, 108, 108, 108, 108, 108, 108,
729 108, 109, 109, 109, 109, 109, 110, 110, 111, 111,
730 112, 112, 113, 113, 114, 114, 115, 115, 116, 116,
731 117, 117, 117, 117, 117, 117, 117, 117, 117, 117,
732 117, 117, 118, 118, 119, 119, 119, 119, 119, 119,
733 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
734 120, 120, 121, 121, 122, 122, 123, 123, 124, 124,
735 125, 125, 126, 126, 127, 127, 128, 129, 130, 130,
736 131, 131, 132, 132, 132, 132, 132, 132, 132, 133,
737 133, 134, 134, 134, 134, 135, 135, 135, 135, 136,
738 136, 136, 136, 137, 138, 139, 139, 140, 140, 141,
739 141, 142, 142, 143, 143, 144, 145, 145, 146, 146,
740 146, 147, 147, 148, 149, 150, 150, 151, 151, 152,
741 152, 152, 152, 153, 153, 154, 154, 155, 155, 156,
746 static const unsigned char yyr2[] =
748 0, 2, 1, 1, 1, 1, 1, 1, 1, 1,
749 1, 1, 1, 3, 2, 3, 4, 3, 3, 5,
750 2, 4, 0, 1, 1, 2, 3, 5, 1, 1,
751 1, 1, 1, 4, 3, 3, 1, 2, 2, 2,
752 4, 3, 2, 3, 1, 3, 1, 1, 1, 2,
753 2, 1, 2, 2, 2, 2, 2, 2, 2, 2,
754 2, 2, 2, 1, 3, 3, 3, 1, 3, 3,
755 1, 3, 3, 3, 1, 3, 3, 3, 3, 3,
756 3, 1, 3, 3, 3, 3, 1, 3, 1, 3,
757 1, 3, 1, 3, 1, 3, 1, 5, 1, 3,
758 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
759 1, 1, 1, 3, 1, 1, 1, 1, 1, 1,
760 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
761 2, 3, 1, 2, 3, 3, 1, 3, 1, 2,
762 3, 3, 1, 3, 1, 2, 2, 1, 2, 2,
763 5, 7, 6, 5, 9, 10, 7, 8, 9, 0,
764 1, 2, 2, 3, 3, 2, 2, 3, 3, 2,
765 2, 3, 3, 5, 5, 3, 5, 0, 1, 1,
766 2, 3, 4, 2, 3, 3, 3, 3, 3, 3,
767 4, 2, 2, 5, 2, 1, 2, 5, 6, 4,
768 5, 5, 6, 1, 3, 2, 3, 0, 1, 1,
775 static const unsigned char yydefact[] =
777 207, 2, 3, 4, 6, 5, 0, 0, 0, 0,
778 0, 0, 0, 0, 0, 0, 0, 9, 0, 0,
779 0, 0, 0, 0, 0, 0, 0, 0, 8, 10,
780 0, 0, 7, 0, 0, 22, 0, 0, 0, 0,
781 147, 11, 31, 12, 36, 46, 47, 48, 51, 63,
782 67, 70, 74, 81, 86, 88, 90, 92, 94, 96,
783 98, 112, 0, 211, 114, 115, 116, 117, 118, 119,
784 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
785 212, 195, 32, 0, 208, 209, 166, 0, 165, 159,
786 0, 10, 0, 36, 37, 138, 0, 136, 144, 0,
787 142, 162, 0, 161, 0, 0, 0, 170, 0, 169,
788 0, 48, 53, 196, 52, 0, 0, 0, 54, 0,
789 0, 0, 0, 0, 192, 191, 55, 57, 0, 56,
790 58, 0, 6, 5, 10, 14, 0, 0, 0, 24,
791 0, 0, 23, 59, 60, 61, 62, 0, 0, 0,
792 38, 0, 0, 39, 49, 50, 101, 102, 103, 104,
793 105, 106, 107, 108, 111, 109, 110, 100, 0, 0,
794 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
795 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
796 0, 0, 0, 149, 0, 148, 1, 210, 168, 167,
797 0, 48, 160, 0, 29, 30, 28, 14, 35, 0,
798 139, 135, 0, 134, 145, 141, 0, 140, 164, 163,
799 0, 0, 203, 0, 0, 172, 171, 0, 0, 0,
800 0, 0, 187, 186, 130, 0, 0, 188, 189, 185,
801 13, 15, 0, 0, 131, 22, 18, 17, 20, 25,
802 42, 0, 44, 0, 34, 0, 41, 99, 65, 64,
803 66, 68, 69, 71, 72, 73, 80, 79, 77, 78,
804 75, 76, 82, 83, 84, 85, 87, 89, 91, 93,
805 95, 0, 113, 138, 0, 0, 159, 146, 137, 143,
806 0, 0, 0, 0, 0, 199, 0, 0, 0, 0,
807 0, 0, 0, 0, 194, 190, 16, 0, 26, 0,
808 43, 0, 33, 40, 0, 0, 139, 159, 0, 0,
809 197, 0, 201, 0, 205, 0, 200, 204, 150, 0,
810 153, 177, 174, 173, 0, 0, 19, 21, 45, 97,
811 0, 0, 0, 0, 159, 198, 202, 206, 0, 152,
812 0, 0, 178, 179, 0, 27, 0, 0, 159, 156,
813 0, 151, 0, 0, 175, 177, 180, 193, 157, 0,
814 0, 0, 181, 183, 0, 158, 0, 154, 132, 182,
819 static const short int yydefgoto[] =
821 -1, 41, 42, 43, 140, 141, 142, 136, 137, 44,
822 45, 46, 150, 251, 47, 48, 49, 50, 51, 52,
823 53, 54, 55, 56, 57, 58, 59, 60, 61, 168,
824 62, 63, 64, 379, 65, 96, 97, 66, 99, 100,
825 210, 67, 68, 69, 70, 203, 71, 72, 73, 74,
826 75, 332, 351, 352, 353, 365, 76, 77, 78, 79,
827 237, 238, 80, 81, 82, 224, 295, 83, 138, 85
832 #define YYPACT_NINF -271
833 static const short int yypact[] =
835 824, -271, -271, -271, -271, -271, 5, -12, 118, 15,
836 45, 8, -6, 362, 1320, 1395, 81, -271, 901, 92,
837 1395, 96, 104, 1395, 106, 13, 1395, 1395, -271, -14,
838 1395, 1395, -271, 1395, 439, 111, 1395, 1395, 1395, 1395,
839 -271, -271, -271, -271, -25, -271, 71, 197, -271, -271,
840 -27, 63, 227, 91, 129, 194, 103, 130, 166, -15,
841 -271, -271, 9, -271, -271, -271, -271, -271, -271, -271,
842 -271, -271, -271, -271, -271, -271, -271, -271, -271, -271,
843 -271, -271, -271, 279, 824, -271, -271, 27, -271, 1020,
844 -19, -271, 29, -25, -271, 208, 11, -271, 208, 17,
845 -271, -271, 32, -271, 216, 230, -17, -271, 1395, -271,
846 21, 195, -271, -271, -271, 1395, 274, 1395, -271, 1395,
847 1395, 33, 516, 252, -271, -271, -271, -271, 901, -271,
848 -271, 37, 226, 228, -14, 986, 219, 229, 593, -271,
849 57, 1095, 233, -271, -271, -271, -271, 1170, 1395, 243,
850 -271, 1395, 244, -271, -271, -271, -271, -271, -271, -271,
851 -271, -271, -271, -271, -271, -271, -271, -271, 1395, 1395,
852 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395,
853 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395, 1395,
854 1395, 1395, 1395, -271, 1395, -271, -271, -271, -271, -271,
855 245, 213, 237, 221, -271, -271, -271, -271, -271, 1395,
856 -271, -271, 15, -271, -271, -271, 15, -271, -271, -271,
857 -10, 3, -271, 246, 49, -271, -271, 76, 247, 90,
858 121, 125, -271, -271, -271, 249, 106, 276, -271, -271,
859 -271, -271, 87, 1395, -271, 111, -271, -271, -271, -271,
860 -271, 126, -271, 141, -271, 174, -271, -271, -271, -271,
861 -271, -27, -27, 63, 63, 63, 227, 227, 227, 227,
862 227, 227, 91, 91, 91, 91, 129, 194, 103, 130,
863 166, 239, -271, 1, -48, 1395, 1395, -271, -271, -271,
864 246, 127, 246, 131, 670, -271, 246, 255, 901, 1395,
865 901, 250, 901, 256, -271, -271, -271, 248, -271, 1245,
866 -271, 1395, -271, -271, 1395, 1395, 293, 1395, 132, 232,
867 -271, 246, -271, 246, -271, 747, -271, -271, 297, 133,
868 -271, 313, -271, -271, 257, 1395, -271, -271, -271, -271,
869 137, 1395, 240, 901, 1395, -271, -271, -271, 901, -271,
870 1395, 31, 313, -271, 106, -271, 901, 138, 1395, -271,
871 258, -271, 139, 254, -271, 313, -271, -271, -271, 901,
872 262, 901, 901, 901, 261, -271, 901, -271, -271, 901,
873 901, -271, -271, -271
877 static const short int yypgoto[] =
879 -271, -271, -271, -271, -271, 89, -271, -271, 93, 324,
880 329, -271, -2, -271, 46, -271, -7, 117, 85, -29,
881 -9, 152, 153, 151, 154, 155, -271, -271, -130, -271,
882 -8, -18, -23, -30, -271, 145, -145, -271, -271, -271,
883 -94, -271, -271, -271, -271, -270, -271, -271, -271, -271,
884 -271, -271, -16, -271, -5, -271, -271, -271, -271, -271,
885 -271, 115, -271, 334, -271, 72, -163, -271, 2, -81
892 #define YYTABLE_NINF -131
893 static const short int yytable[] =
895 116, 123, 84, 197, 214, 110, 86, 112, 114, 101,
896 193, 248, 211, 118, 124, 121, 319, 252, 215, 126,
897 127, 212, 225, 129, 130, 131, 315, 191, 198, 143,
898 144, 145, 146, 218, 232, 204, 205, 169, 257, 317,
899 147, 363, 105, 222, 153, 148, 106, 342, 149, 223,
900 222, 170, 171, 89, 104, 105, 290, 197, 128, 106,
901 111, 111, 281, 222, 282, 87, 111, 288, 102, 292,
902 192, 289, 111, 111, 360, 95, 111, 111, 194, 287,
903 212, 202, 111, 111, 111, 111, 216, 209, 370, 206,
904 194, 208, 88, 204, 205, 103, 195, 207, 213, 364,
905 125, 112, 194, 240, 217, 98, 194, 227, 226, 229,
906 239, 230, 231, 308, 199, 296, 177, 178, 297, 219,
907 233, 1, 2, 3, 4, 5, 245, 320, 246, 322,
908 8, 179, 180, 326, 90, 201, 147, 172, 173, 17,
909 253, 151, 298, 255, 152, 194, 115, 206, 266, 267,
910 268, 269, 270, 271, 111, 306, 300, 117, 345, 194,
911 346, 119, 258, 259, 260, 183, 184, 185, 186, 120,
912 28, 181, 182, 122, 272, 273, 274, 275, 91, 337,
913 139, 338, 32, 33, 339, 92, 188, 301, 35, 316,
914 194, 302, 310, 321, 194, 311, 297, 323, 343, 349,
915 297, 194, 194, 356, 369, 355, 194, 194, 194, 190,
916 194, 372, 312, 304, 189, 111, 111, 111, 111, 111,
917 111, 111, 111, 111, 111, 111, 111, 111, 111, 111,
918 111, 111, 111, 111, 111, 111, 111, 111, 285, 154,
919 155, 154, 155, 194, 197, 313, 156, 157, 158, 159,
920 160, 161, 162, 163, 164, 165, 166, 154, 155, 263,
921 264, 265, 156, 157, 158, 159, 160, 161, 162, 163,
922 164, 165, 166, 174, 175, 176, 187, 318, 202, 196,
923 328, 220, 330, 167, 333, 235, 236, 241, 242, 261,
924 262, 329, 291, 293, 209, 221, 325, 228, -29, 167,
925 -30, 243, 249, 254, 256, 283, 194, 340, 286, 202,
926 236, 314, 299, 294, 303, 327, 334, 331, 341, 344,
927 335, 348, 350, 354, 371, 359, 373, 358, 376, 381,
928 361, 367, 93, 357, 309, 307, 202, 94, 368, 276,
929 278, 277, 362, 380, 279, 284, 280, 366, 113, 374,
930 202, 375, 305, 377, 378, 378, 0, 0, 382, 0,
931 0, 383, 383, 107, 0, 1, 2, 3, 4, 5,
932 0, 0, 0, 0, 8, 0, 0, 0, 90, 0,
933 108, 15, 0, 17, 0, 0, 0, 0, 0, 20,
934 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
935 0, 0, 0, 0, 0, 0, 26, 27, 0, 0,
936 0, 0, 0, 0, 28, 0, 0, 0, 0, 0,
937 0, 0, 91, 0, 30, 31, 32, 33, 0, 92,
938 0, 0, 35, 0, 0, 0, 36, 37, 38, 39,
939 0, 0, 1, 2, 3, 132, 133, 6, 0, 109,
940 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
941 17, 18, 19, 0, 0, 0, 20, 21, 22, 0,
942 23, 24, 0, 0, 25, 0, 0, 0, 0, 0,
943 0, 0, 0, 26, 27, 0, 0, 0, 0, 0,
944 0, 28, 0, 0, 0, 0, 0, 0, 0, 134,
945 0, 30, 31, 32, 33, 0, 34, 135, 0, 35,
946 0, 0, 0, 36, 37, 38, 39, 0, 0, 1,
947 2, 3, 4, 5, 6, 0, 40, 7, 8, 9,
948 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
949 0, 0, 0, 20, 21, 22, 0, 23, 24, 0,
950 0, 25, 0, 0, 0, 0, 0, 0, 0, 0,
951 26, 27, 0, 0, 0, 0, 0, 0, 28, 0,
952 0, 0, 0, 0, 0, 0, 29, 0, 30, 31,
953 32, 33, 0, 34, 234, 0, 35, 0, 0, 0,
954 36, 37, 38, 39, 0, 0, 1, 2, 3, 4,
955 5, 6, 0, 40, 7, 8, 9, 10, 11, 12,
956 13, 14, 15, 16, 17, 18, 19, 0, 0, 0,
957 20, 21, 22, 0, 23, 24, 0, 0, 25, 0,
958 0, 0, 0, 0, 0, 0, 0, 26, 27, 0,
959 0, 0, 0, 0, 0, 28, 0, 0, 0, 0,
960 0, 0, 0, 29, 0, 30, 31, 32, 33, 0,
961 34, 244, 0, 35, 0, 0, 0, 36, 37, 38,
962 39, 0, 0, 1, 2, 3, 4, 5, 6, 0,
963 40, 7, 8, 9, 10, 11, 12, 13, 14, 15,
964 16, 17, 18, 19, 0, 0, 0, 20, 21, 22,
965 0, 23, 24, 0, 0, 25, 0, 0, 0, 0,
966 0, 0, 0, 0, 26, 27, 0, 0, 0, 0,
967 0, 0, 28, 0, 0, 0, 0, 0, 0, 0,
968 29, 0, 30, 31, 32, 33, 0, 34, 324, 0,
969 35, 0, 0, 0, 36, 37, 38, 39, 0, 0,
970 1, 2, 3, 4, 5, 6, 0, 40, 7, 8,
971 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
972 19, 0, 0, 0, 20, 21, 22, 0, 23, 24,
973 0, 0, 25, 0, 0, 0, 0, 0, 0, 0,
974 0, 26, 27, 0, 0, 0, 0, 0, 0, 28,
975 0, 0, 0, 0, 0, 0, 0, 29, 0, 30,
976 31, 32, 33, 0, 34, 347, 0, 35, 0, 0,
977 0, 36, 37, 38, 39, 0, 0, 1, 2, 3,
978 4, 5, 6, 0, 40, 7, 8, 9, 10, 11,
979 12, 13, 14, 15, 16, 17, 18, 19, 0, 0,
980 0, 20, 21, 22, 0, 23, 24, 0, 0, 25,
981 0, 0, 0, 0, 0, 0, 0, 0, 26, 27,
982 0, 0, 0, 0, 0, 0, 28, 0, 0, 0,
983 0, 0, 0, 0, 29, 0, 30, 31, 32, 33,
984 0, 34, 0, 0, 35, 0, 0, 0, 36, 37,
985 38, 39, 0, 0, 1, 2, 3, 4, 5, 6,
986 0, 40, 7, 8, 9, 10, 11, 90, 13, 108,
987 15, 16, 17, 18, 19, 0, 0, 0, 20, 21,
988 22, 0, 23, 24, 0, 0, 25, 0, 0, 0,
989 0, 0, 0, 0, 0, 26, 27, 0, 0, 0,
990 0, 0, 0, 28, 0, 0, 0, 0, 0, 0,
991 0, 29, 0, 30, 31, 32, 33, 0, 34, 0,
992 0, 35, 0, 0, 0, 36, 37, 38, 39, 0,
993 0, 0, 0, 0, 0, 0, -130, 0, 40, -130,
994 -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
995 -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
996 -130, 0, 0, -130, -130, -130, 0, -130, -130, 0,
997 0, -130, 0, 1, 2, 3, 4, 5, 0, 0,
998 0, 0, 8, 200, 0, 0, 90, 0, 108, 15,
999 0, 17, 0, 0, 0, 0, -130, 20, -130, -130,
1000 0, 0, 0, -130, -130, 0, 0, 0, 0, 0,
1001 0, 0, -130, -130, 26, 27, 0, 0, 0, 0,
1002 0, 0, 28, 0, 0, 0, 0, 0, 0, 0,
1003 91, 0, 30, 31, 32, 33, 0, 92, 0, 0,
1004 35, 0, 0, 0, 36, 37, 38, 39, 1, 2,
1005 3, 4, 5, 0, 0, 0, 0, 8, 0, 0,
1006 0, 90, 0, 108, 15, 0, 17, 0, 0, 0,
1007 0, 0, 20, 0, 0, 0, 0, 0, 0, 0,
1008 0, 0, 0, 0, 0, 0, 0, 0, 0, 26,
1009 27, 0, 0, 0, 0, 0, 0, 28, 0, 0,
1010 0, 0, 0, 0, 0, 91, 0, 30, 31, 32,
1011 33, 0, 92, 0, 0, 35, 247, 0, 0, 36,
1012 37, 38, 39, 1, 2, 3, 4, 5, 0, 0,
1013 0, 0, 8, 0, 0, 0, 90, 0, 108, 15,
1014 0, 17, 0, 0, 0, 0, 0, 20, 0, 0,
1015 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1016 0, 0, 0, 0, 26, 27, 0, 0, 0, 0,
1017 0, 0, 28, 0, 0, 0, 0, 0, 0, 0,
1018 91, 0, 30, 31, 32, 33, 250, 92, 0, 0,
1019 35, 0, 0, 0, 36, 37, 38, 39, 1, 2,
1020 3, 4, 5, 0, 0, 0, 0, 8, 0, 0,
1021 0, 90, 0, 108, 15, 0, 17, 0, 0, 0,
1022 0, 0, 20, 0, 0, 0, 0, 0, 0, 0,
1023 0, 0, 0, 0, 0, 0, 0, 0, 0, 26,
1024 27, 0, 0, 0, 0, 0, 0, 28, 0, 0,
1025 0, 0, 0, 0, 0, 91, 0, 30, 31, 32,
1026 33, 0, 92, 0, 0, 35, 336, 0, 0, 36,
1027 37, 38, 39, 1, 2, 3, 4, 5, 0, 0,
1028 0, 0, 8, 0, 0, 0, 12, 0, 108, 15,
1029 0, 17, 0, 0, 0, 0, 0, 20, 0, 0,
1030 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1031 0, 0, 0, 0, 26, 27, 0, 0, 0, 0,
1032 0, 0, 28, 0, 0, 0, 0, 0, 0, 0,
1033 91, 0, 30, 31, 32, 33, 0, 92, 0, 0,
1034 35, 0, 0, 0, 36, 37, 38, 39, 1, 2,
1035 3, 4, 5, 0, 0, 0, 0, 8, 0, 0,
1036 0, 90, 0, 108, 15, 0, 17, 0, 0, 0,
1037 0, 0, 20, 0, 0, 0, 0, 0, 0, 0,
1038 0, 0, 0, 0, 0, 0, 0, 0, 0, 26,
1039 27, 0, 0, 0, 0, 0, 0, 28, 0, 0,
1040 0, 0, 0, 0, 0, 91, 0, 30, 31, 32,
1041 33, 0, 92, 0, 0, 35, 0, 0, 0, 36,
1045 static const short int yycheck[] =
1047 18, 24, 0, 84, 98, 13, 1, 14, 15, 1,
1048 1, 141, 1, 20, 1, 23, 286, 147, 1, 26,
1049 27, 69, 1, 30, 31, 33, 25, 42, 1, 36,
1050 37, 38, 39, 1, 1, 6, 7, 64, 168, 87,
1051 65, 10, 61, 60, 46, 70, 65, 317, 73, 66,
1052 60, 78, 79, 65, 60, 61, 66, 138, 72, 65,
1053 14, 15, 192, 60, 194, 60, 20, 212, 60, 66,
1054 85, 216, 26, 27, 344, 60, 30, 31, 69, 209,
1055 69, 89, 36, 37, 38, 39, 69, 86, 358, 60,
1056 69, 93, 87, 6, 7, 87, 87, 68, 87, 68,
1057 87, 108, 69, 66, 87, 60, 69, 115, 87, 117,
1058 128, 119, 120, 243, 87, 66, 25, 26, 69, 87,
1059 87, 3, 4, 5, 6, 7, 69, 290, 71, 292,
1060 12, 40, 41, 296, 16, 89, 65, 74, 75, 21,
1061 148, 70, 66, 151, 73, 69, 65, 60, 177, 178,
1062 179, 180, 181, 182, 108, 68, 66, 65, 321, 69,
1063 323, 65, 169, 170, 171, 36, 37, 38, 39, 65,
1064 52, 80, 81, 67, 183, 184, 185, 186, 60, 309,
1065 69, 311, 64, 65, 314, 67, 83, 66, 70, 283,
1066 69, 66, 66, 66, 69, 69, 69, 66, 66, 66,
1067 69, 69, 69, 66, 66, 335, 69, 69, 69, 43,
1068 69, 72, 71, 236, 84, 169, 170, 171, 172, 173,
1069 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
1070 184, 185, 186, 187, 188, 189, 190, 191, 25, 44,
1071 45, 44, 45, 69, 325, 71, 49, 50, 51, 52,
1072 53, 54, 55, 56, 57, 58, 59, 44, 45, 174,
1073 175, 176, 49, 50, 51, 52, 53, 54, 55, 56,
1074 57, 58, 59, 46, 47, 48, 82, 285, 286, 0,
1075 298, 65, 300, 86, 302, 33, 34, 68, 69, 172,
1076 173, 299, 220, 221, 86, 65, 294, 23, 72, 86,
1077 72, 72, 69, 60, 60, 60, 69, 315, 87, 317,
1078 34, 72, 65, 67, 65, 60, 60, 67, 25, 87,
1079 72, 24, 9, 66, 66, 343, 72, 87, 66, 68,
1080 348, 354, 8, 341, 245, 242, 344, 8, 356, 187,
1081 189, 188, 350, 373, 190, 200, 191, 352, 14, 365,
1082 358, 369, 237, 371, 372, 373, -1, -1, 376, -1,
1083 -1, 379, 380, 1, -1, 3, 4, 5, 6, 7,
1084 -1, -1, -1, -1, 12, -1, -1, -1, 16, -1,
1085 18, 19, -1, 21, -1, -1, -1, -1, -1, 27,
1086 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1087 -1, -1, -1, -1, -1, -1, 44, 45, -1, -1,
1088 -1, -1, -1, -1, 52, -1, -1, -1, -1, -1,
1089 -1, -1, 60, -1, 62, 63, 64, 65, -1, 67,
1090 -1, -1, 70, -1, -1, -1, 74, 75, 76, 77,
1091 -1, -1, 3, 4, 5, 6, 7, 8, -1, 87,
1092 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
1093 21, 22, 23, -1, -1, -1, 27, 28, 29, -1,
1094 31, 32, -1, -1, 35, -1, -1, -1, -1, -1,
1095 -1, -1, -1, 44, 45, -1, -1, -1, -1, -1,
1096 -1, 52, -1, -1, -1, -1, -1, -1, -1, 60,
1097 -1, 62, 63, 64, 65, -1, 67, 68, -1, 70,
1098 -1, -1, -1, 74, 75, 76, 77, -1, -1, 3,
1099 4, 5, 6, 7, 8, -1, 87, 11, 12, 13,
1100 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1101 -1, -1, -1, 27, 28, 29, -1, 31, 32, -1,
1102 -1, 35, -1, -1, -1, -1, -1, -1, -1, -1,
1103 44, 45, -1, -1, -1, -1, -1, -1, 52, -1,
1104 -1, -1, -1, -1, -1, -1, 60, -1, 62, 63,
1105 64, 65, -1, 67, 68, -1, 70, -1, -1, -1,
1106 74, 75, 76, 77, -1, -1, 3, 4, 5, 6,
1107 7, 8, -1, 87, 11, 12, 13, 14, 15, 16,
1108 17, 18, 19, 20, 21, 22, 23, -1, -1, -1,
1109 27, 28, 29, -1, 31, 32, -1, -1, 35, -1,
1110 -1, -1, -1, -1, -1, -1, -1, 44, 45, -1,
1111 -1, -1, -1, -1, -1, 52, -1, -1, -1, -1,
1112 -1, -1, -1, 60, -1, 62, 63, 64, 65, -1,
1113 67, 68, -1, 70, -1, -1, -1, 74, 75, 76,
1114 77, -1, -1, 3, 4, 5, 6, 7, 8, -1,
1115 87, 11, 12, 13, 14, 15, 16, 17, 18, 19,
1116 20, 21, 22, 23, -1, -1, -1, 27, 28, 29,
1117 -1, 31, 32, -1, -1, 35, -1, -1, -1, -1,
1118 -1, -1, -1, -1, 44, 45, -1, -1, -1, -1,
1119 -1, -1, 52, -1, -1, -1, -1, -1, -1, -1,
1120 60, -1, 62, 63, 64, 65, -1, 67, 68, -1,
1121 70, -1, -1, -1, 74, 75, 76, 77, -1, -1,
1122 3, 4, 5, 6, 7, 8, -1, 87, 11, 12,
1123 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
1124 23, -1, -1, -1, 27, 28, 29, -1, 31, 32,
1125 -1, -1, 35, -1, -1, -1, -1, -1, -1, -1,
1126 -1, 44, 45, -1, -1, -1, -1, -1, -1, 52,
1127 -1, -1, -1, -1, -1, -1, -1, 60, -1, 62,
1128 63, 64, 65, -1, 67, 68, -1, 70, -1, -1,
1129 -1, 74, 75, 76, 77, -1, -1, 3, 4, 5,
1130 6, 7, 8, -1, 87, 11, 12, 13, 14, 15,
1131 16, 17, 18, 19, 20, 21, 22, 23, -1, -1,
1132 -1, 27, 28, 29, -1, 31, 32, -1, -1, 35,
1133 -1, -1, -1, -1, -1, -1, -1, -1, 44, 45,
1134 -1, -1, -1, -1, -1, -1, 52, -1, -1, -1,
1135 -1, -1, -1, -1, 60, -1, 62, 63, 64, 65,
1136 -1, 67, -1, -1, 70, -1, -1, -1, 74, 75,
1137 76, 77, -1, -1, 3, 4, 5, 6, 7, 8,
1138 -1, 87, 11, 12, 13, 14, 15, 16, 17, 18,
1139 19, 20, 21, 22, 23, -1, -1, -1, 27, 28,
1140 29, -1, 31, 32, -1, -1, 35, -1, -1, -1,
1141 -1, -1, -1, -1, -1, 44, 45, -1, -1, -1,
1142 -1, -1, -1, 52, -1, -1, -1, -1, -1, -1,
1143 -1, 60, -1, 62, 63, 64, 65, -1, 67, -1,
1144 -1, 70, -1, -1, -1, 74, 75, 76, 77, -1,
1145 -1, -1, -1, -1, -1, -1, 0, -1, 87, 3,
1146 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
1147 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1148 24, -1, -1, 27, 28, 29, -1, 31, 32, -1,
1149 -1, 35, -1, 3, 4, 5, 6, 7, -1, -1,
1150 -1, -1, 12, 13, -1, -1, 16, -1, 18, 19,
1151 -1, 21, -1, -1, -1, -1, 60, 27, 62, 63,
1152 -1, -1, -1, 67, 68, -1, -1, -1, -1, -1,
1153 -1, -1, 76, 77, 44, 45, -1, -1, -1, -1,
1154 -1, -1, 52, -1, -1, -1, -1, -1, -1, -1,
1155 60, -1, 62, 63, 64, 65, -1, 67, -1, -1,
1156 70, -1, -1, -1, 74, 75, 76, 77, 3, 4,
1157 5, 6, 7, -1, -1, -1, -1, 12, -1, -1,
1158 -1, 16, -1, 18, 19, -1, 21, -1, -1, -1,
1159 -1, -1, 27, -1, -1, -1, -1, -1, -1, -1,
1160 -1, -1, -1, -1, -1, -1, -1, -1, -1, 44,
1161 45, -1, -1, -1, -1, -1, -1, 52, -1, -1,
1162 -1, -1, -1, -1, -1, 60, -1, 62, 63, 64,
1163 65, -1, 67, -1, -1, 70, 71, -1, -1, 74,
1164 75, 76, 77, 3, 4, 5, 6, 7, -1, -1,
1165 -1, -1, 12, -1, -1, -1, 16, -1, 18, 19,
1166 -1, 21, -1, -1, -1, -1, -1, 27, -1, -1,
1167 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1168 -1, -1, -1, -1, 44, 45, -1, -1, -1, -1,
1169 -1, -1, 52, -1, -1, -1, -1, -1, -1, -1,
1170 60, -1, 62, 63, 64, 65, 66, 67, -1, -1,
1171 70, -1, -1, -1, 74, 75, 76, 77, 3, 4,
1172 5, 6, 7, -1, -1, -1, -1, 12, -1, -1,
1173 -1, 16, -1, 18, 19, -1, 21, -1, -1, -1,
1174 -1, -1, 27, -1, -1, -1, -1, -1, -1, -1,
1175 -1, -1, -1, -1, -1, -1, -1, -1, -1, 44,
1176 45, -1, -1, -1, -1, -1, -1, 52, -1, -1,
1177 -1, -1, -1, -1, -1, 60, -1, 62, 63, 64,
1178 65, -1, 67, -1, -1, 70, 71, -1, -1, 74,
1179 75, 76, 77, 3, 4, 5, 6, 7, -1, -1,
1180 -1, -1, 12, -1, -1, -1, 16, -1, 18, 19,
1181 -1, 21, -1, -1, -1, -1, -1, 27, -1, -1,
1182 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1183 -1, -1, -1, -1, 44, 45, -1, -1, -1, -1,
1184 -1, -1, 52, -1, -1, -1, -1, -1, -1, -1,
1185 60, -1, 62, 63, 64, 65, -1, 67, -1, -1,
1186 70, -1, -1, -1, 74, 75, 76, 77, 3, 4,
1187 5, 6, 7, -1, -1, -1, -1, 12, -1, -1,
1188 -1, 16, -1, 18, 19, -1, 21, -1, -1, -1,
1189 -1, -1, 27, -1, -1, -1, -1, -1, -1, -1,
1190 -1, -1, -1, -1, -1, -1, -1, -1, -1, 44,
1191 45, -1, -1, -1, -1, -1, -1, 52, -1, -1,
1192 -1, -1, -1, -1, -1, 60, -1, 62, 63, 64,
1193 65, -1, 67, -1, -1, 70, -1, -1, -1, 74,
1199 static const unsigned char yystos[] =
1201 0, 3, 4, 5, 6, 7, 8, 11, 12, 13,
1202 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1203 27, 28, 29, 31, 32, 35, 44, 45, 52, 60,
1204 62, 63, 64, 65, 67, 70, 74, 75, 76, 77,
1205 87, 89, 90, 91, 97, 98, 99, 102, 103, 104,
1206 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1207 115, 116, 118, 119, 120, 122, 125, 129, 130, 131,
1208 132, 134, 135, 136, 137, 138, 144, 145, 146, 147,
1209 150, 151, 152, 155, 156, 157, 1, 60, 87, 65,
1210 16, 60, 67, 97, 98, 60, 123, 124, 60, 126,
1211 127, 1, 60, 87, 60, 61, 65, 1, 18, 87,
1212 118, 102, 104, 151, 104, 65, 119, 65, 104, 65,
1213 65, 118, 67, 120, 1, 87, 104, 104, 72, 104,
1214 104, 118, 6, 7, 60, 68, 95, 96, 156, 69,
1215 92, 93, 94, 104, 104, 104, 104, 65, 70, 73,
1216 100, 70, 73, 100, 44, 45, 49, 50, 51, 52,
1217 53, 54, 55, 56, 57, 58, 59, 86, 117, 64,
1218 78, 79, 74, 75, 46, 47, 48, 25, 26, 40,
1219 41, 80, 81, 36, 37, 38, 39, 82, 83, 84,
1220 43, 42, 85, 1, 69, 87, 0, 157, 1, 87,
1221 13, 102, 118, 133, 6, 7, 60, 68, 100, 86,
1222 128, 1, 69, 87, 128, 1, 69, 87, 1, 87,
1223 65, 65, 60, 66, 153, 1, 87, 118, 23, 118,
1224 118, 118, 1, 87, 68, 33, 34, 148, 149, 119,
1225 66, 68, 69, 72, 68, 69, 71, 71, 116, 69,
1226 66, 101, 116, 118, 60, 118, 60, 116, 104, 104,
1227 104, 105, 105, 106, 106, 106, 107, 107, 107, 107,
1228 107, 107, 108, 108, 108, 108, 109, 110, 111, 112,
1229 113, 116, 116, 60, 123, 25, 87, 116, 124, 124,
1230 66, 153, 66, 153, 67, 154, 66, 69, 66, 65,
1231 66, 66, 66, 65, 120, 149, 68, 96, 116, 93,
1232 66, 69, 71, 71, 72, 25, 128, 87, 118, 133,
1233 154, 66, 154, 66, 68, 156, 154, 60, 119, 118,
1234 119, 67, 139, 119, 60, 72, 71, 116, 116, 116,
1235 118, 25, 133, 66, 87, 154, 154, 68, 24, 66,
1236 9, 140, 141, 142, 66, 116, 66, 118, 87, 119,
1237 133, 119, 118, 10, 68, 143, 142, 120, 119, 66,
1238 133, 66, 72, 72, 140, 119, 66, 119, 119, 121,
1242 #define yyerrok (yyerrstatus = 0)
1243 #define yyclearin (yychar = YYEMPTY)
1244 #define YYEMPTY (-2)
1247 #define YYACCEPT goto yyacceptlab
1248 #define YYABORT goto yyabortlab
1249 #define YYERROR goto yyerrorlab
1256 #define YYFAIL goto yyerrlab
1258 #define YYRECOVERING() (!!yyerrstatus)
1260 #define YYBACKUP(Token, Value) \
1262 if (yychar == YYEMPTY && yylen == 1) \
1266 yytoken = YYTRANSLATE (yychar); \
1272 yyerror (YY_("syntax error: cannot back up")); \
1279 #define YYERRCODE 256
1286 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
1287 #ifndef YYLLOC_DEFAULT
1288 # define YYLLOC_DEFAULT(Current, Rhs, N) \
1292 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
1293 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
1294 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
1295 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
1299 (Current).first_line = (Current).last_line = \
1300 YYRHSLOC (Rhs, 0).last_line; \
1301 (Current).first_column = (Current).last_column = \
1302 YYRHSLOC (Rhs, 0).last_column; \
1312 #ifndef YY_LOCATION_PRINT
1313 # if YYLTYPE_IS_TRIVIAL
1314 # define YY_LOCATION_PRINT(File, Loc) \
1315 fprintf (File, "%d.%d-%d.%d", \
1316 (Loc).first_line, (Loc).first_column, \
1317 (Loc).last_line, (Loc).last_column)
1319 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1327 # define YYLEX yylex (YYLEX_PARAM)
1329 # define YYLEX yylex ()
1337 # define YYFPRINTF fprintf
1340 # define YYDPRINTF(Args) \
1348 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
1352 YYFPRINTF (stderr, "%s ", Title); \
1353 yysymprint (stderr, \
1354 Type, Value, Location); \
1355 YYFPRINTF (stderr, "\n"); \
1364 #if defined (__STDC__) || defined (__cplusplus)
1366 yy_stack_print (
short int *bottom,
short int *top)
1369 yy_stack_print (bottom, top)
1374 YYFPRINTF (stderr,
"Stack now");
1375 for (; bottom <= top; ++bottom)
1376 YYFPRINTF (stderr,
" %d", *bottom);
1377 YYFPRINTF (stderr,
"\n");
1380 # define YY_STACK_PRINT(Bottom, Top) \
1383 yy_stack_print ((Bottom), (Top)); \
1391 #if defined (__STDC__) || defined (__cplusplus)
1393 yy_reduce_print (
int yyrule)
1396 yy_reduce_print (yyrule)
1401 unsigned long int yylno = yyrline[yyrule];
1402 YYFPRINTF (stderr,
"Reducing stack by rule %d (line %lu), ",
1405 for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
1406 YYFPRINTF (stderr,
"%s ", yytname[yyrhs[yyi]]);
1407 YYFPRINTF (stderr,
"-> %s\n", yytname[yyr1[yyrule]]);
1410 # define YY_REDUCE_PRINT(Rule) \
1413 yy_reduce_print (Rule); \
1420 # define YYDPRINTF(Args)
1421 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1422 # define YY_STACK_PRINT(Bottom, Top)
1423 # define YY_REDUCE_PRINT(Rule)
1429 # define YYINITDEPTH 200
1440 # define YYMAXDEPTH 10000
1448 # if defined (__GLIBC__) && defined (_STRING_H)
1449 # define yystrlen strlen
1453 # if defined (__STDC__) || defined (__cplusplus)
1454 yystrlen (
const char *yystr)
1460 const char *yys = yystr;
1462 while (*yys++ !=
'\0')
1465 return yys - yystr - 1;
1471 # if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
1472 # define yystpcpy stpcpy
1477 # if defined (__STDC__) || defined (__cplusplus)
1478 yystpcpy (
char *yydest,
const char *yysrc)
1480 yystpcpy (yydest, yysrc)
1486 const char *yys = yysrc;
1488 while ((*yyd++ = *yys++) !=
'\0')
1505 yytnamerr (
char *yyres,
const char *yystr)
1510 char const *yyp = yystr;
1517 goto do_not_strip_quotes;
1521 goto do_not_strip_quotes;
1534 do_not_strip_quotes: ;
1538 return yystrlen (yystr);
1540 return yystpcpy (yyres, yystr) - yyres;
1553 #if defined (__STDC__) || defined (__cplusplus)
1555 yysymprint (FILE *yyoutput,
int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp)
1558 yysymprint (yyoutput, yytype, yyvaluep, yylocationp)
1562 YYLTYPE *yylocationp;
1569 if (yytype < YYNTOKENS)
1570 YYFPRINTF (yyoutput,
"token %s (", yytname[yytype]);
1572 YYFPRINTF (yyoutput,
"nterm %s (", yytname[yytype]);
1574 YY_LOCATION_PRINT (yyoutput, *yylocationp);
1575 YYFPRINTF (yyoutput,
": ");
1578 if (yytype < YYNTOKENS)
1579 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
1586 YYFPRINTF (yyoutput,
")");
1594 #if defined (__STDC__) || defined (__cplusplus)
1596 yydestruct (
const char *yymsg,
int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp)
1599 yydestruct (yymsg, yytype, yyvaluep, yylocationp)
1603 YYLTYPE *yylocationp;
1612 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1625 #ifdef YYPARSE_PARAM
1626 # if defined (__STDC__) || defined (__cplusplus)
1627 int yyparse (
void *YYPARSE_PARAM);
1632 #if defined (__STDC__) || defined (__cplusplus)
1658 #ifdef YYPARSE_PARAM
1659 # if defined (__STDC__) || defined (__cplusplus)
1660 int yyparse (
void *YYPARSE_PARAM)
1662 int yyparse (YYPARSE_PARAM)
1663 void *YYPARSE_PARAM;
1666 #if defined (__STDC__) || defined (__cplusplus)
1694 short int yyssa[YYINITDEPTH];
1695 short int *yyss = yyssa;
1699 YYSTYPE yyvsa[YYINITDEPTH];
1700 YYSTYPE *yyvs = yyvsa;
1704 YYLTYPE yylsa[YYINITDEPTH];
1705 YYLTYPE *yyls = yylsa;
1708 YYLTYPE yyerror_range[2];
1710 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
1712 YYSIZE_T yystacksize = YYINITDEPTH;
1723 YYDPRINTF ((stderr,
"Starting parse\n"));
1738 #if YYLTYPE_IS_TRIVIAL
1740 yylloc.first_line = yylloc.last_line = 1;
1741 yylloc.first_column = yylloc.last_column = 0;
1758 if (yyss + yystacksize - 1 <= yyssp)
1761 YYSIZE_T yysize = yyssp - yyss + 1;
1768 YYSTYPE *yyvs1 = yyvs;
1769 short int *yyss1 = yyss;
1770 YYLTYPE *yyls1 = yyls;
1776 yyoverflow (YY_(
"memory exhausted"),
1777 &yyss1, yysize *
sizeof (*yyssp),
1778 &yyvs1, yysize *
sizeof (*yyvsp),
1779 &yyls1, yysize *
sizeof (*yylsp),
1786 # ifndef YYSTACK_RELOCATE
1787 goto yyexhaustedlab;
1790 if (YYMAXDEPTH <= yystacksize)
1791 goto yyexhaustedlab;
1793 if (YYMAXDEPTH < yystacksize)
1794 yystacksize = YYMAXDEPTH;
1797 short int *yyss1 = yyss;
1798 union yyalloc *yyptr =
1799 (
union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1801 goto yyexhaustedlab;
1802 YYSTACK_RELOCATE (yyss);
1803 YYSTACK_RELOCATE (yyvs);
1804 YYSTACK_RELOCATE (yyls);
1805 # undef YYSTACK_RELOCATE
1807 YYSTACK_FREE (yyss1);
1812 yyssp = yyss + yysize - 1;
1813 yyvsp = yyvs + yysize - 1;
1814 yylsp = yyls + yysize - 1;
1816 YYDPRINTF ((stderr,
"Stack size increased to %lu\n",
1817 (
unsigned long int) yystacksize));
1819 if (yyss + yystacksize - 1 <= yyssp)
1823 YYDPRINTF ((stderr,
"Entering state %d\n", yystate));
1838 yyn = yypact[yystate];
1839 if (yyn == YYPACT_NINF)
1845 if (yychar == YYEMPTY)
1847 YYDPRINTF ((stderr,
"Reading a token: "));
1851 if (yychar <= YYEOF)
1853 yychar = yytoken = YYEOF;
1854 YYDPRINTF ((stderr,
"Now at end of input.\n"));
1858 yytoken = YYTRANSLATE (yychar);
1859 YY_SYMBOL_PRINT (
"Next token is", yytoken, &yylval, &yylloc);
1865 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
1870 if (yyn == 0 || yyn == YYTABLE_NINF)
1880 YY_SYMBOL_PRINT (
"Shifting", yytoken, &yylval, &yylloc);
1883 if (yychar != YYEOF)
1902 yyn = yydefact[yystate];
1923 yyval = yyvsp[1-yylen];
1926 YYLLOC_DEFAULT (yyloc, yylsp - yylen, yylen);
1927 YY_REDUCE_PRINT (yyn);
1931 #line 169 "grammar.y"
1932 { (yyval.node) =
new NullNode(); ;}
1936 #line 170 "grammar.y"
1937 { (yyval.node) =
new BooleanNode(
true); ;}
1941 #line 171 "grammar.y"
1942 { (yyval.node) =
new BooleanNode(
false); ;}
1946 #line 172 "grammar.y"
1947 { (yyval.node) =
new NumberNode((yyvsp[0].dval)); ;}
1951 #line 173 "grammar.y"
1952 { (yyval.node) =
new StringNode((yyvsp[0].ustr)); ;}
1956 #line 174 "grammar.y"
1957 { Lexer *l = Lexer::curr();
1958 if (!l->scanRegExp()) YYABORT;
1959 (yyval.node) =
new RegExpNode(l->pattern,l->flags);;}
1963 #line 178 "grammar.y"
1964 { Lexer *l = Lexer::curr();
1965 if (!l->scanRegExp()) YYABORT;
1966 (yyval.node) =
new RegExpNode(
UString(
'=')+l->pattern,l->flags);;}
1970 #line 184 "grammar.y"
1971 { (yyval.node) =
new ThisNode(); ;}
1975 #line 185 "grammar.y"
1976 { (yyval.node) =
new ResolveNode(*(yyvsp[0].ident)); ;}
1980 #line 188 "grammar.y"
1981 { (yyval.node) =
new GroupNode((yyvsp[-1].node)); ;}
1985 #line 189 "grammar.y"
1986 { (yyval.node) =
new ObjectLiteralNode(); ;}
1990 #line 190 "grammar.y"
1991 { (yyval.node) =
new ObjectLiteralNode((yyvsp[-1].plist)); ;}
1995 #line 191 "grammar.y"
1996 { (yyval.node) =
new ObjectLiteralNode((yyvsp[-2].plist)); ;}
2000 #line 195 "grammar.y"
2001 { (yyval.node) =
new ArrayNode((yyvsp[-1].ival)); ;}
2005 #line 196 "grammar.y"
2006 { (yyval.node) =
new ArrayNode((yyvsp[-1].elm)); ;}
2010 #line 197 "grammar.y"
2011 { (yyval.node) =
new ArrayNode((yyvsp[-1].ival), (yyvsp[-3].elm)); ;}
2015 #line 201 "grammar.y"
2016 { (yyval.elm) =
new ElementNode((yyvsp[-1].ival), (yyvsp[0].node)); ;}
2020 #line 203 "grammar.y"
2021 { (yyval.elm) =
new ElementNode((yyvsp[-3].elm), (yyvsp[-1].ival), (yyvsp[0].node)); ;}
2025 #line 207 "grammar.y"
2026 { (yyval.ival) = 0; ;}
2030 #line 212 "grammar.y"
2031 { (yyval.ival) = 1; ;}
2035 #line 213 "grammar.y"
2036 { (yyval.ival) = (yyvsp[-1].ival) + 1; ;}
2040 #line 217 "grammar.y"
2041 { (yyval.plist) =
new PropertyValueNode((yyvsp[-2].pnode), (yyvsp[0].node)); ;}
2045 #line 219 "grammar.y"
2046 { (yyval.plist) =
new PropertyValueNode((yyvsp[-2].pnode), (yyvsp[0].node), (yyvsp[-4].plist)); ;}
2050 #line 223 "grammar.y"
2051 { (yyval.pnode) =
new PropertyNode(*(yyvsp[0].ident)); ;}
2055 #line 224 "grammar.y"
2056 { (yyval.pnode) =
new PropertyNode(
Identifier(*(yyvsp[0].ustr))); ;}
2060 #line 225 "grammar.y"
2061 { (yyval.pnode) =
new PropertyNode((yyvsp[0].dval)); ;}
2065 #line 231 "grammar.y"
2066 { (yyval.node) =
new AccessorNode1((yyvsp[-3].node), (yyvsp[-1].node)); ;}
2070 #line 232 "grammar.y"
2071 { (yyval.node) =
new AccessorNode2((yyvsp[-2].node), *(yyvsp[0].ident)); ;}
2075 #line 233 "grammar.y"
2076 { (yyval.node) =
new NewExprNode((yyvsp[-1].node), (yyvsp[0].args)); ;}
2080 #line 238 "grammar.y"
2081 { (yyval.node) =
new NewExprNode((yyvsp[0].node)); ;}
2085 #line 242 "grammar.y"
2086 { (yyval.node) =
new FunctionCallNode((yyvsp[-1].node), (yyvsp[0].args)); ;}
2090 #line 243 "grammar.y"
2091 { (yyval.node) =
new FunctionCallNode((yyvsp[-1].node), (yyvsp[0].args)); ;}
2095 #line 244 "grammar.y"
2096 { (yyval.node) =
new AccessorNode1((yyvsp[-3].node), (yyvsp[-1].node)); ;}
2100 #line 245 "grammar.y"
2101 { (yyval.node) =
new AccessorNode2((yyvsp[-2].node), *(yyvsp[0].ident)); ;}
2105 #line 249 "grammar.y"
2106 { (yyval.args) =
new ArgumentsNode(); ;}
2110 #line 250 "grammar.y"
2111 { (yyval.args) =
new ArgumentsNode((yyvsp[-1].alist)); ;}
2115 #line 254 "grammar.y"
2116 { (yyval.alist) =
new ArgumentListNode((yyvsp[0].node)); ;}
2120 #line 255 "grammar.y"
2121 { (yyval.alist) =
new ArgumentListNode((yyvsp[-2].alist), (yyvsp[0].node)); ;}
2125 #line 265 "grammar.y"
2126 { (yyval.node) =
new PostfixNode((yyvsp[-1].node), OpPlusPlus); ;}
2130 #line 266 "grammar.y"
2131 { (yyval.node) =
new PostfixNode((yyvsp[-1].node), OpMinusMinus); ;}
2135 #line 271 "grammar.y"
2136 { (yyval.node) =
new DeleteNode((yyvsp[0].node)); ;}
2140 #line 272 "grammar.y"
2141 { (yyval.node) =
new VoidNode((yyvsp[0].node)); ;}
2145 #line 273 "grammar.y"
2146 { (yyval.node) =
new TypeOfNode((yyvsp[0].node)); ;}
2150 #line 274 "grammar.y"
2151 { (yyval.node) =
new PrefixNode(OpPlusPlus, (yyvsp[0].node)); ;}
2155 #line 275 "grammar.y"
2156 { (yyval.node) =
new PrefixNode(OpPlusPlus, (yyvsp[0].node)); ;}
2160 #line 276 "grammar.y"
2161 { (yyval.node) =
new PrefixNode(OpMinusMinus, (yyvsp[0].node)); ;}
2165 #line 277 "grammar.y"
2166 { (yyval.node) =
new PrefixNode(OpMinusMinus, (yyvsp[0].node)); ;}
2170 #line 278 "grammar.y"
2171 { (yyval.node) =
new UnaryPlusNode((yyvsp[0].node)); ;}
2175 #line 279 "grammar.y"
2176 { (yyval.node) =
new NegateNode((yyvsp[0].node)); ;}
2180 #line 280 "grammar.y"
2181 { (yyval.node) =
new BitwiseNotNode((yyvsp[0].node)); ;}
2185 #line 281 "grammar.y"
2186 { (yyval.node) =
new LogicalNotNode((yyvsp[0].node)); ;}
2190 #line 286 "grammar.y"
2191 { (yyval.node) =
new MultNode((yyvsp[-2].node), (yyvsp[0].node),
'*'); ;}
2195 #line 287 "grammar.y"
2196 { (yyval.node) =
new MultNode((yyvsp[-2].node), (yyvsp[0].node),
'/'); ;}
2200 #line 288 "grammar.y"
2201 { (yyval.node) =
new MultNode((yyvsp[-2].node),(yyvsp[0].node),
'%'); ;}
2205 #line 293 "grammar.y"
2206 { (yyval.node) = AddNode::create((yyvsp[-2].node), (yyvsp[0].node),
'+'); ;}
2210 #line 294 "grammar.y"
2211 { (yyval.node) = AddNode::create((yyvsp[-2].node), (yyvsp[0].node),
'-'); ;}
2215 #line 299 "grammar.y"
2216 { (yyval.node) =
new ShiftNode((yyvsp[-2].node), OpLShift, (yyvsp[0].node)); ;}
2220 #line 300 "grammar.y"
2221 { (yyval.node) =
new ShiftNode((yyvsp[-2].node), OpRShift, (yyvsp[0].node)); ;}
2225 #line 301 "grammar.y"
2226 { (yyval.node) =
new ShiftNode((yyvsp[-2].node), OpURShift, (yyvsp[0].node)); ;}
2230 #line 307 "grammar.y"
2231 { (yyval.node) =
new RelationalNode((yyvsp[-2].node), OpLess, (yyvsp[0].node)); ;}
2235 #line 309 "grammar.y"
2236 { (yyval.node) =
new RelationalNode((yyvsp[-2].node), OpGreater, (yyvsp[0].node)); ;}
2240 #line 311 "grammar.y"
2241 { (yyval.node) =
new RelationalNode((yyvsp[-2].node), OpLessEq, (yyvsp[0].node)); ;}
2245 #line 313 "grammar.y"
2246 { (yyval.node) =
new RelationalNode((yyvsp[-2].node), OpGreaterEq, (yyvsp[0].node)); ;}
2250 #line 315 "grammar.y"
2251 { (yyval.node) =
new RelationalNode((yyvsp[-2].node), OpInstanceOf, (yyvsp[0].node)); ;}
2255 #line 317 "grammar.y"
2256 { (yyval.node) =
new RelationalNode((yyvsp[-2].node), OpIn, (yyvsp[0].node)); ;}
2260 #line 322 "grammar.y"
2261 { (yyval.node) =
new EqualNode((yyvsp[-2].node), OpEqEq, (yyvsp[0].node)); ;}
2265 #line 323 "grammar.y"
2266 { (yyval.node) =
new EqualNode((yyvsp[-2].node), OpNotEq, (yyvsp[0].node)); ;}
2270 #line 324 "grammar.y"
2271 { (yyval.node) =
new EqualNode((yyvsp[-2].node), OpStrEq, (yyvsp[0].node)); ;}
2275 #line 325 "grammar.y"
2276 { (yyval.node) =
new EqualNode((yyvsp[-2].node), OpStrNEq, (yyvsp[0].node));;}
2280 #line 330 "grammar.y"
2281 { (yyval.node) =
new BitOperNode((yyvsp[-2].node), OpBitAnd, (yyvsp[0].node)); ;}
2285 #line 335 "grammar.y"
2286 { (yyval.node) =
new BitOperNode((yyvsp[-2].node), OpBitXOr, (yyvsp[0].node)); ;}
2290 #line 340 "grammar.y"
2291 { (yyval.node) =
new BitOperNode((yyvsp[-2].node), OpBitOr, (yyvsp[0].node)); ;}
2295 #line 346 "grammar.y"
2296 { (yyval.node) =
new BinaryLogicalNode((yyvsp[-2].node), OpAnd, (yyvsp[0].node)); ;}
2300 #line 352 "grammar.y"
2301 { (yyval.node) =
new BinaryLogicalNode((yyvsp[-2].node), OpOr, (yyvsp[0].node)); ;}
2305 #line 358 "grammar.y"
2306 { (yyval.node) =
new ConditionalNode((yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); ;}
2310 #line 364 "grammar.y"
2311 { (yyval.node) =
new AssignNode((yyvsp[-2].node), (yyvsp[-1].op), (yyvsp[0].node));;}
2315 #line 368 "grammar.y"
2316 { (yyval.op) = OpEqual; ;}
2320 #line 369 "grammar.y"
2321 { (yyval.op) = OpPlusEq; ;}
2325 #line 370 "grammar.y"
2326 { (yyval.op) = OpMinusEq; ;}
2330 #line 371 "grammar.y"
2331 { (yyval.op) = OpMultEq; ;}
2335 #line 372 "grammar.y"
2336 { (yyval.op) = OpDivEq; ;}
2340 #line 373 "grammar.y"
2341 { (yyval.op) = OpLShift; ;}
2345 #line 374 "grammar.y"
2346 { (yyval.op) = OpRShift; ;}
2350 #line 375 "grammar.y"
2351 { (yyval.op) = OpURShift; ;}
2355 #line 376 "grammar.y"
2356 { (yyval.op) = OpAndEq; ;}
2360 #line 377 "grammar.y"
2361 { (yyval.op) = OpXOrEq; ;}
2365 #line 378 "grammar.y"
2366 { (yyval.op) = OpOrEq; ;}
2370 #line 379 "grammar.y"
2371 { (yyval.op) = OpModEq; ;}
2375 #line 384 "grammar.y"
2376 { (yyval.node) =
new CommaNode((yyvsp[-2].node), (yyvsp[0].node)); ;}
2380 #line 407 "grammar.y"
2381 { (yyval.stat) =
new BlockNode(0); DBG((yyval.stat), (yylsp[0]), (yylsp[0])); ;}
2385 #line 408 "grammar.y"
2386 { (yyval.stat) =
new BlockNode((yyvsp[-1].srcs)); DBG((yyval.stat), (yylsp[0]), (yylsp[0])); ;}
2390 #line 412 "grammar.y"
2391 { (yyval.slist) =
new StatListNode((yyvsp[0].stat)); ;}
2395 #line 413 "grammar.y"
2396 { (yyval.slist) =
new StatListNode((yyvsp[-1].slist), (yyvsp[0].stat)); ;}
2400 #line 417 "grammar.y"
2401 { (yyval.stat) =
new VarStatementNode((yyvsp[-1].vlist));
2402 DBG((yyval.stat), (yylsp[-2]), (yylsp[0])); ;}
2406 #line 419 "grammar.y"
2407 {
if (automatic()) {
2408 (yyval.stat) =
new VarStatementNode((yyvsp[-1].vlist));
2409 DBG((yyval.stat), (yylsp[-2]), (yylsp[-1]));
2417 #line 429 "grammar.y"
2418 { (yyval.vlist) =
new VarDeclListNode((yyvsp[0].decl)); ;}
2422 #line 431 "grammar.y"
2423 { (yyval.vlist) =
new VarDeclListNode((yyvsp[-2].vlist), (yyvsp[0].decl)); ;}
2427 #line 435 "grammar.y"
2428 { (yyval.decl) =
new VarDeclNode(*(yyvsp[0].ident), 0, VarDeclNode::Variable); ;}
2432 #line 436 "grammar.y"
2433 { (yyval.decl) =
new VarDeclNode(*(yyvsp[-1].ident), (yyvsp[0].init), VarDeclNode::Variable); ;}
2437 #line 440 "grammar.y"
2438 { (yyval.stat) =
new VarStatementNode((yyvsp[-1].vlist));
2439 DBG((yyval.stat), (yylsp[-2]), (yylsp[0])); ;}
2443 #line 442 "grammar.y"
2444 {
if (automatic()) {
2445 (yyval.stat) =
new VarStatementNode((yyvsp[-1].vlist));
2446 DBG((yyval.stat), (yylsp[-2]), (yylsp[-1]));
2454 #line 452 "grammar.y"
2455 { (yyval.vlist) =
new VarDeclListNode((yyvsp[0].decl)); ;}
2459 #line 454 "grammar.y"
2460 { (yyval.vlist) =
new VarDeclListNode((yyvsp[-2].vlist), (yyvsp[0].decl)); ;}
2464 #line 458 "grammar.y"
2465 { (yyval.decl) =
new VarDeclNode(*(yyvsp[0].ident), 0, VarDeclNode::Constant); ;}
2469 #line 459 "grammar.y"
2470 { (yyval.decl) =
new VarDeclNode(*(yyvsp[-1].ident), (yyvsp[0].init), VarDeclNode::Constant); ;}
2474 #line 463 "grammar.y"
2475 { (yyval.init) =
new AssignExprNode((yyvsp[0].node)); ;}
2479 #line 467 "grammar.y"
2480 { (yyval.stat) =
new EmptyStatementNode(); DBG((yyval.stat), (yylsp[0]), (yylsp[0])); ;}
2484 #line 471 "grammar.y"
2485 { (yyval.stat) =
new ExprStatementNode((yyvsp[-1].node));
2486 DBG((yyval.stat), (yylsp[-1]), (yylsp[0])); ;}
2490 #line 473 "grammar.y"
2491 {
if (automatic()) {
2492 (yyval.stat) =
new ExprStatementNode((yyvsp[-1].node));
2493 DBG((yyval.stat), (yylsp[-1]), (yylsp[-1]));
2499 #line 481 "grammar.y"
2500 { (yyval.stat) =
new IfNode((yyvsp[-2].node),(yyvsp[0].stat),0);DBG((yyval.stat),(yylsp[-4]),(yylsp[-1])); ;}
2504 #line 483 "grammar.y"
2505 { (yyval.stat) =
new IfNode((yyvsp[-4].node),(yyvsp[-2].stat),(yyvsp[0].stat));DBG((yyval.stat),(yylsp[-6]),(yylsp[-3])); ;}
2509 #line 487 "grammar.y"
2510 { (yyval.stat)=
new DoWhileNode((yyvsp[-4].stat),(yyvsp[-1].node));DBG((yyval.stat),(yylsp[-5]),(yylsp[-3]));;}
2514 #line 488 "grammar.y"
2515 { (yyval.stat) =
new WhileNode((yyvsp[-2].node),(yyvsp[0].stat));DBG((yyval.stat),(yylsp[-4]),(yylsp[-1])); ;}
2519 #line 490 "grammar.y"
2520 { (yyval.stat) =
new ForNode((yyvsp[-6].node),(yyvsp[-4].node),(yyvsp[-2].node),(yyvsp[0].stat));
2521 DBG((yyval.stat),(yylsp[-8]),(yylsp[-1])); ;}
2525 #line 493 "grammar.y"
2526 { (yyval.stat) =
new ForNode((yyvsp[-6].vlist),(yyvsp[-4].node),(yyvsp[-2].node),(yyvsp[0].stat));
2527 DBG((yyval.stat),(yylsp[-9]),(yylsp[-1])); ;}
2531 #line 496 "grammar.y"
2532 { (yyval.stat) =
new ForInNode((yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].stat));
2533 DBG((yyval.stat),(yylsp[-6]),(yylsp[-1])); ;}
2537 #line 499 "grammar.y"
2538 { (yyval.stat) =
new ForInNode(*(yyvsp[-4].ident),0,(yyvsp[-2].node),(yyvsp[0].stat));
2539 DBG((yyval.stat),(yylsp[-7]),(yylsp[-1])); ;}
2543 #line 502 "grammar.y"
2544 { (yyval.stat) =
new ForInNode(*(yyvsp[-5].ident),(yyvsp[-4].init),(yyvsp[-2].node),(yyvsp[0].stat));
2545 DBG((yyval.stat),(yylsp[-8]),(yylsp[-1])); ;}
2549 #line 507 "grammar.y"
2550 { (yyval.node) = 0; ;}
2554 #line 512 "grammar.y"
2555 { (yyval.stat) =
new ContinueNode(); DBG((yyval.stat),(yylsp[-1]),(yylsp[0])); ;}
2559 #line 513 "grammar.y"
2560 {
if (automatic()) {
2561 (yyval.stat) =
new ContinueNode(); DBG((yyval.stat),(yylsp[-1]),(yylsp[0]));
2567 #line 517 "grammar.y"
2568 { (yyval.stat) =
new ContinueNode(*(yyvsp[-1].ident)); DBG((yyval.stat),(yylsp[-2]),(yylsp[0])); ;}
2572 #line 518 "grammar.y"
2573 {
if (automatic()) {
2574 (yyval.stat) =
new ContinueNode(*(yyvsp[-1].ident));DBG((yyval.stat),(yylsp[-2]),(yylsp[-1]));
2580 #line 525 "grammar.y"
2581 { (yyval.stat) =
new BreakNode();DBG((yyval.stat),(yylsp[-1]),(yylsp[0])); ;}
2585 #line 526 "grammar.y"
2586 {
if (automatic()) {
2587 (yyval.stat) =
new BreakNode(); DBG((yyval.stat),(yylsp[-1]),(yylsp[-1]));
2593 #line 530 "grammar.y"
2594 { (yyval.stat) =
new BreakNode(*(yyvsp[-1].ident)); DBG((yyval.stat),(yylsp[-2]),(yylsp[0])); ;}
2598 #line 531 "grammar.y"
2599 {
if (automatic()) {
2600 (yyval.stat) =
new BreakNode(*(yyvsp[-1].ident)); DBG((yyval.stat),(yylsp[-2]),(yylsp[-1]));
2607 #line 539 "grammar.y"
2608 { (yyval.stat) =
new ReturnNode(0); DBG((yyval.stat),(yylsp[-1]),(yylsp[0])); ;}
2612 #line 540 "grammar.y"
2613 {
if (automatic()) {
2614 (yyval.stat) =
new ReturnNode(0); DBG((yyval.stat),(yylsp[-1]),(yylsp[-1]));
2620 #line 544 "grammar.y"
2621 { (yyval.stat) =
new ReturnNode((yyvsp[-1].node)); DBG((yyval.stat),(yylsp[-2]),(yylsp[0])); ;}
2625 #line 545 "grammar.y"
2626 {
if (automatic()) {
2627 (yyval.stat) =
new ReturnNode((yyvsp[-1].node)); DBG((yyval.stat),(yylsp[-2]),(yylsp[-2]));
2634 #line 553 "grammar.y"
2635 { (yyval.stat) =
new WithNode((yyvsp[-2].node),(yyvsp[0].stat));
2636 DBG((yyval.stat), (yylsp[-4]), (yylsp[-1])); ;}
2640 #line 558 "grammar.y"
2641 { (yyval.stat) =
new SwitchNode((yyvsp[-2].node), (yyvsp[0].cblk));
2642 DBG((yyval.stat), (yylsp[-4]), (yylsp[-1])); ;}
2646 #line 563 "grammar.y"
2647 { (yyval.cblk) =
new CaseBlockNode((yyvsp[-1].clist), 0, 0); ;}
2651 #line 565 "grammar.y"
2652 { (yyval.cblk) =
new CaseBlockNode((yyvsp[-3].clist), (yyvsp[-2].ccl), (yyvsp[-1].clist)); ;}
2656 #line 569 "grammar.y"
2657 { (yyval.clist) = 0; ;}
2661 #line 574 "grammar.y"
2662 { (yyval.clist) =
new ClauseListNode((yyvsp[0].ccl)); ;}
2666 #line 575 "grammar.y"
2667 { (yyval.clist) =
new ClauseListNode((yyvsp[-1].clist), (yyvsp[0].ccl)); ;}
2671 #line 579 "grammar.y"
2672 { (yyval.ccl) =
new CaseClauseNode((yyvsp[-1].node)); ;}
2676 #line 580 "grammar.y"
2677 { (yyval.ccl) =
new CaseClauseNode((yyvsp[-2].node), (yyvsp[0].slist)); ;}
2681 #line 584 "grammar.y"
2682 { (yyval.ccl) =
new CaseClauseNode(0); ;}
2686 #line 585 "grammar.y"
2687 { (yyval.ccl) =
new CaseClauseNode(0, (yyvsp[0].slist)); ;}
2691 #line 589 "grammar.y"
2692 { (yyvsp[0].stat)->pushLabel(*(yyvsp[-2].ident));
2693 (yyval.stat) =
new LabelNode(*(yyvsp[-2].ident), (yyvsp[0].stat)); DBG((yyval.stat),(yylsp[-2]),(yylsp[-1])); ;}
2697 #line 594 "grammar.y"
2698 { (yyval.stat) =
new ThrowNode((yyvsp[-1].node)); DBG((yyval.stat),(yylsp[-2]),(yylsp[0])); ;}
2702 #line 595 "grammar.y"
2703 {
if (automatic()) {
2704 (yyval.stat) =
new ThrowNode((yyvsp[-1].node)); DBG((yyval.stat),(yylsp[-2]),(yylsp[-2]));
2710 #line 602 "grammar.y"
2711 { (yyval.stat) =
new TryNode((yyvsp[-1].stat), (yyvsp[0].cnode)); DBG((yyval.stat),(yylsp[-2]),(yylsp[-2])); ;}
2715 #line 603 "grammar.y"
2716 { (yyval.stat) =
new TryNode((yyvsp[-1].stat), (yyvsp[0].fnode)); DBG((yyval.stat),(yylsp[-2]),(yylsp[-2])); ;}
2720 #line 604 "grammar.y"
2721 { (yyval.stat) =
new TryNode((yyvsp[-2].stat), (yyvsp[-1].cnode), (yyvsp[0].fnode)); DBG((yyval.stat),(yylsp[-3]),(yylsp[-3])); ;}
2725 #line 608 "grammar.y"
2726 { (yyval.stat) =
new EmptyStatementNode(); DBG((yyval.stat), (yylsp[-1]), (yylsp[0])); ;}
2730 #line 609 "grammar.y"
2731 {
if (automatic()) {
2732 (yyval.stat) =
new EmptyStatementNode();
2733 DBG((yyval.stat), (yylsp[-1]), (yylsp[-1]));
2739 #line 618 "grammar.y"
2740 { CatchNode *c; (yyval.cnode) = c =
new CatchNode(*(yyvsp[-2].ident), (yyvsp[0].stat));
2741 DBG(c,(yylsp[-4]),(yylsp[-1])); ;}
2745 #line 623 "grammar.y"
2746 { FinallyNode *f; (yyval.fnode) = f =
new FinallyNode((yyvsp[0].stat)); DBG(f,(yylsp[-1]),(yylsp[-1])); ;}
2750 #line 629 "grammar.y"
2751 { (yyval.func) = (yyvsp[0].func); ;}
2755 #line 633 "grammar.y"
2756 { (yyval.func) =
new FuncDeclNode(*(yyvsp[-3].ident), (yyvsp[0].body)); DBG((yyval.func),(yylsp[-4]),(yylsp[-1])); ;}
2760 #line 635 "grammar.y"
2761 { (yyval.func) =
new FuncDeclNode(*(yyvsp[-4].ident), (yyvsp[-2].param), (yyvsp[0].body)); DBG((yyval.func),(yylsp[-5]),(yylsp[-1])); ;}
2765 #line 640 "grammar.y"
2770 #line 642 "grammar.y"
2771 { (yyval.node) =
new FuncExprNode(
Identifier::null(), (yyvsp[-2].param), (yyvsp[0].body)); ;}
2775 #line 644 "grammar.y"
2776 { (yyval.node) =
new FuncExprNode(*(yyvsp[-3].ident), (yyvsp[0].body)); ;}
2780 #line 646 "grammar.y"
2781 { (yyval.node) =
new FuncExprNode(*(yyvsp[-4].ident), (yyvsp[-2].param), (yyvsp[0].body)); ;}
2785 #line 650 "grammar.y"
2786 { (yyval.param) =
new ParameterNode(*(yyvsp[0].ident)); ;}
2790 #line 651 "grammar.y"
2791 { (yyval.param) =
new ParameterNode((yyvsp[-2].param), *(yyvsp[0].ident)); ;}
2795 #line 655 "grammar.y"
2796 { (yyval.body) =
new FunctionBodyNode(0);
2797 DBG((yyval.body), (yylsp[-1]), (yylsp[0]));;}
2801 #line 657 "grammar.y"
2802 { (yyval.body) =
new FunctionBodyNode((yyvsp[-1].srcs));
2803 DBG((yyval.body), (yylsp[-2]), (yylsp[0]));;}
2807 #line 662 "grammar.y"
2808 { (yyval.prog) =
new FunctionBodyNode(0);
2809 (yyval.prog)->setLoc(0, 0, Parser::source);
2810 Parser::progNode = (yyval.prog); ;}
2814 #line 665 "grammar.y"
2815 { (yyval.prog) =
new FunctionBodyNode((yyvsp[0].srcs));
2816 Parser::progNode = (yyval.prog); ;}
2820 #line 670 "grammar.y"
2821 { (yyval.srcs) =
new SourceElementsNode((yyvsp[0].stat)); ;}
2825 #line 671 "grammar.y"
2826 { (yyval.srcs) =
new SourceElementsNode((yyvsp[-1].srcs), (yyvsp[0].stat)); ;}
2830 #line 675 "grammar.y"
2831 { (yyval.stat) = (yyvsp[0].stat); ;}
2835 #line 676 "grammar.y"
2836 { (yyval.stat) = (yyvsp[0].func); ;}
2844 #line 2843 "grammar.tab.c"
2850 YY_STACK_PRINT (yyss, yyssp);
2861 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
2862 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
2863 yystate = yytable[yystate];
2865 yystate = yydefgoto[yyn - YYNTOKENS];
2879 yyn = yypact[yystate];
2881 if (YYPACT_NINF < yyn && yyn < YYLAST)
2883 int yytype = YYTRANSLATE (yychar);
2884 YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
2885 YYSIZE_T yysize = yysize0;
2887 int yysize_overflow = 0;
2889 # define YYERROR_VERBOSE_ARGS_MAXIMUM 5
2890 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2896 YY_(
"syntax error, unexpected %s");
2897 YY_(
"syntax error, unexpected %s, expecting %s");
2898 YY_(
"syntax error, unexpected %s, expecting %s or %s");
2899 YY_(
"syntax error, unexpected %s, expecting %s or %s or %s");
2900 YY_(
"syntax error, unexpected %s, expecting %s or %s or %s or %s");
2904 static char const yyunexpected[] =
"syntax error, unexpected %s";
2905 static char const yyexpecting[] =
", expecting %s";
2906 static char const yyor[] =
" or %s";
2907 char yyformat[
sizeof yyunexpected
2908 +
sizeof yyexpecting - 1
2909 + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
2910 * (
sizeof yyor - 1))];
2911 char const *yyprefix = yyexpecting;
2915 int yyxbegin = yyn < 0 ? -yyn : 0;
2918 int yychecklim = YYLAST - yyn;
2919 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
2922 yyarg[0] = yytname[yytype];
2923 yyfmt = yystpcpy (yyformat, yyunexpected);
2925 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
2926 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
2928 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
2932 yyformat[
sizeof yyunexpected - 1] =
'\0';
2935 yyarg[yycount++] = yytname[yyx];
2936 yysize1 = yysize + yytnamerr (0, yytname[yyx]);
2937 yysize_overflow |= yysize1 < yysize;
2939 yyfmt = yystpcpy (yyfmt, yyprefix);
2943 yyf = YY_(yyformat);
2944 yysize1 = yysize + yystrlen (yyf);
2945 yysize_overflow |= yysize1 < yysize;
2948 if (!yysize_overflow && yysize <= YYSTACK_ALLOC_MAXIMUM)
2949 yymsg = (
char *) YYSTACK_ALLOC (yysize);
2957 while ((*yyp = *yyf))
2959 if (*yyp ==
'%' && yyf[1] ==
's' && yyi < yycount)
2961 yyp += yytnamerr (yyp, yyarg[yyi++]);
2971 YYSTACK_FREE (yymsg);
2975 yyerror (YY_(
"syntax error"));
2976 goto yyexhaustedlab;
2981 yyerror (YY_(
"syntax error"));
2984 yyerror_range[0] = yylloc;
2986 if (yyerrstatus == 3)
2991 if (yychar <= YYEOF)
2994 if (yychar == YYEOF)
2999 yydestruct (
"Error: discarding", yytoken, &yylval, &yylloc);
3020 yyerror_range[0] = yylsp[1-yylen];
3036 yyn = yypact[yystate];
3037 if (yyn != YYPACT_NINF)
3040 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
3052 yyerror_range[0] = *yylsp;
3053 yydestruct (
"Error: popping", yystos[yystate], yyvsp, yylsp);
3056 YY_STACK_PRINT (yyss, yyssp);
3064 yyerror_range[1] = yylloc;
3067 YYLLOC_DEFAULT (yyloc, yyerror_range - 1, 2);
3071 YY_SYMBOL_PRINT (
"Shifting", yystos[yyn], yyvsp, yylsp);
3096 yyerror (YY_(
"memory exhausted"));
3102 if (yychar != YYEOF && yychar != YYEMPTY)
3103 yydestruct (
"Cleanup: discarding lookahead",
3104 yytoken, &yylval, &yylloc);
3105 while (yyssp != yyss)
3107 yydestruct (
"Cleanup: popping",
3108 yystos[*yyssp], yyvsp, yylsp);
3113 YYSTACK_FREE (yyss);
3119 #line 679 "grammar.y"
3122 int yyerror (
const char * )
3132 if (Lexer::curr()->hadError())
3134 if (yychar ==
'}' || yychar == 0)
3136 else if (Lexer::curr()->prevTerminator())
expr1 && expr2, expr1 || expr2
The ternary operator, "logical ? expr1 : expr2".
Represents an Identifier for a Javascript object.
static const Identifier & null()
Creates an empty Identifier.