1
/* A Bison parser, made by GNU Bison 2.3. */
3
/* Skeleton implementation for Bison's Yacc-like parsers in C
5
Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
6
Free Software Foundation, Inc.
8
This program is free software; you can redistribute it and/or modify
9
it under the terms of the GNU General Public License as published by
10
the Free Software Foundation; either version 2, or (at your option)
13
This program is distributed in the hope that it will be useful,
14
but WITHOUT ANY WARRANTY; without even the implied warranty of
15
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
GNU General Public License for more details.
18
You should have received a copy of the GNU General Public License
19
along with this program; if not, write to the Free Software
20
Foundation, Inc., 51 Franklin Street, Fifth Floor,
21
Boston, MA 02110-1301, USA. */
23
/* As a special exception, you may create a larger work that contains
24
part or all of the Bison parser skeleton and distribute that work
25
under terms of your choice, so long as that work isn't itself a
26
parser generator using the skeleton or a modified version thereof
27
as a parser skeleton. Alternatively, if you modify or redistribute
28
the parser skeleton itself, you may (at your option) remove this
29
special exception, which will cause the skeleton and the resulting
30
Bison output files to be licensed under the GNU General Public
31
License without this special exception.
33
This special exception was added by the Free Software Foundation in
34
version 2.2 of Bison. */
36
/* C LALR(1) parser skeleton written by Richard Stallman, by
37
simplifying the original so-called "semantic" parser. */
39
/* All symbols defined below should begin with yy or YY, to avoid
40
infringing on user name space. This should be done even for local
41
variables, as they might otherwise be expanded by user macros.
42
There are some unavoidable exceptions within include files to
43
define necessary library symbols; they are noted "INFRINGES ON
44
USER NAME SPACE" below. */
46
/* Identify Bison output. */
50
#define YYBISON_VERSION "2.3"
53
#define YYSKELETON_NAME "yacc.c"
58
/* Using locations. */
59
#define YYLSP_NEEDED 0
66
/* Put the tokens into the symbol table, so that GDB and other debuggers
124
tSTRING_CONTENT = 313,
199
#define kDO_BLOCK 283
211
#define kUNLESS_MOD 295
212
#define kWHILE_MOD 296
213
#define kUNTIL_MOD 297
214
#define kRESCUE_MOD 298
219
#define k__LINE__ 303
220
#define k__FILE__ 304
221
#define tIDENTIFIER 305
225
#define tCONSTANT 309
229
#define tSTRING_CONTENT 313
231
#define tBACK_REF 315
232
#define tREGEXP_END 316
257
#define tLPAREN_ARG 341
261
#define tLBRACE_ARG 345
265
#define tSTRING_BEG 349
266
#define tXSTRING_BEG 350
267
#define tREGEXP_BEG 351
268
#define tWORDS_BEG 352
269
#define tQWORDS_BEG 353
270
#define tSTRING_DBEG 354
271
#define tSTRING_DVAR 355
272
#define tSTRING_END 356
274
#define tUMINUS_NUM 358
275
#define tLAST_TOKEN 359
280
/* Copy the first part of user declarations. */
285
#define YYERROR_VERBOSE 1
286
#ifndef YYSTACK_USE_ALLOCA
287
#define YYSTACK_USE_ALLOCA 0
299
#define YYMALLOC rb_parser_malloc
300
#define YYREALLOC rb_parser_realloc
301
#define YYCALLOC rb_parser_calloc
302
#define YYFREE rb_parser_free
303
#define malloc YYMALLOC
304
#define realloc YYREALLOC
305
#define calloc YYCALLOC
307
static void *rb_parser_malloc _((size_t));
308
static void *rb_parser_realloc _((void *, size_t));
309
static void *rb_parser_calloc _((size_t, size_t));
310
static void rb_parser_free _((void *));
312
#define yyparse ruby_yyparse
313
#define yylex ruby_yylex
314
#define yyerror ruby_yyerror
315
#define yylval ruby_yylval
316
#define yychar ruby_yychar
317
#define yydebug ruby_yydebug
319
#define ID_SCOPE_SHIFT 3
320
#define ID_SCOPE_MASK 0x07
321
#define ID_LOCAL 0x01
322
#define ID_INSTANCE 0x02
323
#define ID_GLOBAL 0x03
324
#define ID_ATTRSET 0x04
325
#define ID_CONST 0x05
326
#define ID_CLASS 0x06
328
#define ID_INTERNAL ID_JUNK
330
#define is_notop_id(id) ((id)>tLAST_TOKEN)
331
#define is_local_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_LOCAL)
332
#define is_global_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_GLOBAL)
333
#define is_instance_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_INSTANCE)
334
#define is_attrset_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_ATTRSET)
335
#define is_const_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_CONST)
336
#define is_class_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_CLASS)
337
#define is_junk_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_JUNK)
339
#define is_asgn_or_id(id) ((is_notop_id(id)) && \
340
(((id)&ID_SCOPE_MASK) == ID_GLOBAL || \
341
((id)&ID_SCOPE_MASK) == ID_INSTANCE || \
342
((id)&ID_SCOPE_MASK) == ID_CLASS))
344
NODE *ruby_eval_tree_begin = 0;
345
NODE *ruby_eval_tree = 0;
347
char *ruby_sourcefile; /* current source file */
348
int ruby_sourceline; /* current line no. */
351
static int yyerror();
353
static enum lex_state {
354
EXPR_BEG, /* ignore newline, +/- is a sign. */
355
EXPR_END, /* newline significant, +/- is an operator. */
356
EXPR_ARG, /* newline significant, +/- is an operator. */
357
EXPR_CMDARG, /* newline significant, +/- is an operator. */
358
EXPR_ENDARG, /* newline significant, +/- is an operator. */
359
EXPR_MID, /* newline significant, +/- is an operator. */
360
EXPR_FNAME, /* ignore newline, no reserved words. */
361
EXPR_DOT, /* right after `.' or `::', no reserved words. */
362
EXPR_CLASS, /* immediate after `class', no here document. */
364
static NODE *lex_strterm;
366
#ifdef HAVE_LONG_LONG
367
typedef unsigned LONG_LONG stack_type;
369
typedef unsigned long stack_type;
372
#define BITSTACK_PUSH(stack, n) (stack = (stack<<1)|((n)&1))
373
#define BITSTACK_POP(stack) (stack >>= 1)
374
#define BITSTACK_LEXPOP(stack) (stack = (stack >> 1) | (stack & 1))
375
#define BITSTACK_SET_P(stack) (stack&1)
377
static stack_type cond_stack = 0;
378
#define COND_PUSH(n) BITSTACK_PUSH(cond_stack, n)
379
#define COND_POP() BITSTACK_POP(cond_stack)
380
#define COND_LEXPOP() BITSTACK_LEXPOP(cond_stack)
381
#define COND_P() BITSTACK_SET_P(cond_stack)
383
static stack_type cmdarg_stack = 0;
384
#define CMDARG_PUSH(n) BITSTACK_PUSH(cmdarg_stack, n)
385
#define CMDARG_POP() BITSTACK_POP(cmdarg_stack)
386
#define CMDARG_LEXPOP() BITSTACK_LEXPOP(cmdarg_stack)
387
#define CMDARG_P() BITSTACK_SET_P(cmdarg_stack)
389
static int class_nest = 0;
390
static int in_single = 0;
391
static int in_def = 0;
392
static int compile_for_eval = 0;
393
static ID cur_mid = 0;
394
static int command_start = Qtrue;
397
static NODE *logop();
398
static int cond_negative();
400
static NODE *newline_node();
401
static void fixpos();
403
static int value_expr0();
404
static void void_expr0();
405
static void void_stmts();
406
static NODE *remove_begin();
407
#define value_expr(node) value_expr0((node) = remove_begin(node))
408
#define void_expr(node) void_expr0((node) = remove_begin(node))
410
static NODE *block_append();
411
static NODE *list_append();
412
static NODE *list_concat();
413
static NODE *arg_concat();
414
static NODE *arg_prepend();
415
static NODE *literal_concat();
416
static NODE *new_evstr();
417
static NODE *evstr2dstr();
418
static NODE *call_op();
419
static int in_defined = 0;
421
static NODE *negate_lit();
422
static NODE *ret_args();
423
static NODE *arg_blk_pass();
424
static NODE *new_call();
425
static NODE *new_fcall();
426
static NODE *new_super();
427
static NODE *new_yield();
429
static NODE *gettable();
430
static NODE *assignable();
431
static NODE *aryset();
432
static NODE *attrset();
433
static void rb_backref_error();
434
static NODE *node_assign();
436
static NODE *match_gen();
437
static void local_push();
438
static void local_pop();
439
static int local_append();
440
static int local_cnt();
441
static int local_id();
442
static ID *local_tbl();
443
static ID internal_id();
445
static struct RVarmap *dyna_push();
446
static void dyna_pop();
447
static int dyna_in_block();
448
static NODE *dyna_init();
450
static void top_local_init();
451
static void top_local_setup();
453
#define RE_OPTION_ONCE 0x80
455
#define NODE_STRTERM NODE_ZARRAY /* nothing to gc */
456
#define NODE_HEREDOC NODE_ARRAY /* 1, 3 to gc */
457
#define SIGN_EXTEND(x,n) (((1<<(n)-1)^((x)&~(~0<<(n))))-(1<<(n)-1))
458
#define nd_func u1.id
459
#if SIZEOF_SHORT == 2
460
#define nd_term(node) ((signed short)(node)->u2.id)
462
#define nd_term(node) SIGN_EXTEND((node)->u2.id, CHAR_BIT*2)
464
#define nd_paren(node) (char)((node)->u2.id >> CHAR_BIT*2)
465
#define nd_nest u3.id
467
/* Older versions of Yacc set YYMAXDEPTH to a very low value by default (150,
468
for instance). This is too low for Ruby to parse some files, such as
469
date/format.rb, therefore bump the value up to at least Bison's default. */
472
#define YYMAXDEPTH 10000
478
/* Enabling traces. */
483
/* Enabling verbose error messages. */
484
#ifdef YYERROR_VERBOSE
485
# undef YYERROR_VERBOSE
486
# define YYERROR_VERBOSE 1
488
# define YYERROR_VERBOSE 0
491
/* Enabling the token table. */
492
#ifndef YYTOKEN_TABLE
493
# define YYTOKEN_TABLE 0
496
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
497
typedef union YYSTYPE
503
struct RVarmap *vars;
505
/* Line 187 of yacc.c. */
508
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
509
# define YYSTYPE_IS_DECLARED 1
510
# define YYSTYPE_IS_TRIVIAL 1
515
/* Copy the second part of user declarations. */
518
/* Line 216 of yacc.c. */
526
typedef YYTYPE_UINT8 yytype_uint8;
528
typedef unsigned char yytype_uint8;
532
typedef YYTYPE_INT8 yytype_int8;
533
#elif (defined __STDC__ || defined __C99__FUNC__ \
534
|| defined __cplusplus || defined _MSC_VER)
535
typedef signed char yytype_int8;
537
typedef short int yytype_int8;
541
typedef YYTYPE_UINT16 yytype_uint16;
543
typedef unsigned short int yytype_uint16;
547
typedef YYTYPE_INT16 yytype_int16;
549
typedef short int yytype_int16;
553
# ifdef __SIZE_TYPE__
554
# define YYSIZE_T __SIZE_TYPE__
555
# elif defined size_t
556
# define YYSIZE_T size_t
557
# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
558
|| defined __cplusplus || defined _MSC_VER)
559
# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
560
# define YYSIZE_T size_t
562
# define YYSIZE_T unsigned int
566
#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
571
# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
572
# define YY_(msgid) dgettext ("bison-runtime", msgid)
576
# define YY_(msgid) msgid
580
/* Suppress unused-variable warnings by "using" E. */
581
#if ! defined lint || defined __GNUC__
582
# define YYUSE(e) ((void) (e))
584
# define YYUSE(e) /* empty */
587
/* Identity function, used to suppress warnings about constant conditions. */
591
#if (defined __STDC__ || defined __C99__FUNC__ \
592
|| defined __cplusplus || defined _MSC_VER)
605
#if ! defined yyoverflow || YYERROR_VERBOSE
607
/* The parser invokes alloca or malloc; define the necessary symbols. */
609
# ifdef YYSTACK_USE_ALLOCA
610
# if YYSTACK_USE_ALLOCA
612
# define YYSTACK_ALLOC __builtin_alloca
613
# elif defined __BUILTIN_VA_ARG_INCR
614
# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
616
# define YYSTACK_ALLOC __alloca
617
# elif defined _MSC_VER
618
# include <malloc.h> /* INFRINGES ON USER NAME SPACE */
619
# define alloca _alloca
621
# define YYSTACK_ALLOC alloca
622
# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
623
|| defined __cplusplus || defined _MSC_VER)
624
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
633
# ifdef YYSTACK_ALLOC
634
/* Pacify GCC's `empty if-body' warning. */
635
# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
636
# ifndef YYSTACK_ALLOC_MAXIMUM
637
/* The OS might guarantee only one guard page at the bottom of the stack,
638
and a page size can be as small as 4096 bytes. So we cannot safely
639
invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
640
to allow for a few compiler-allocated temporary stack slots. */
641
# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
644
# define YYSTACK_ALLOC YYMALLOC
645
# define YYSTACK_FREE YYFREE
646
# ifndef YYSTACK_ALLOC_MAXIMUM
647
# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
649
# if (defined __cplusplus && ! defined _STDLIB_H \
650
&& ! ((defined YYMALLOC || defined malloc) \
651
&& (defined YYFREE || defined free)))
652
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
658
# define YYMALLOC malloc
659
# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
660
|| defined __cplusplus || defined _MSC_VER)
661
void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
666
# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
667
|| defined __cplusplus || defined _MSC_VER)
668
void free (void *); /* INFRINGES ON USER NAME SPACE */
672
#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
675
#if (! defined yyoverflow \
676
&& (! defined __cplusplus \
677
|| (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
679
/* A type that is properly aligned for any stack member. */
686
/* The size of the maximum gap between one aligned stack and the next. */
687
# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
689
/* The size of an array large to enough to hold all stacks, each with
691
# define YYSTACK_BYTES(N) \
692
((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
693
+ YYSTACK_GAP_MAXIMUM)
695
/* Copy COUNT objects from FROM to TO. The source and destination do
698
# if defined __GNUC__ && 1 < __GNUC__
699
# define YYCOPY(To, From, Count) \
700
__builtin_memcpy (To, From, (Count) * sizeof (*(From)))
702
# define YYCOPY(To, From, Count) \
706
for (yyi = 0; yyi < (Count); yyi++) \
707
(To)[yyi] = (From)[yyi]; \
713
/* Relocate STACK from its old location to the new one. The
714
local variables YYSIZE and YYSTACKSIZE give the old and new number of
715
elements in the stack, and YYPTR gives the new location of the
716
stack. Advance YYPTR to a properly aligned location for the next
718
# define YYSTACK_RELOCATE(Stack) \
721
YYSIZE_T yynewbytes; \
722
YYCOPY (&yyptr->Stack, Stack, yysize); \
723
Stack = &yyptr->Stack; \
724
yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
725
yyptr += yynewbytes / sizeof (*yyptr); \
731
/* YYFINAL -- State number of the termination state. */
733
/* YYLAST -- Last index in YYTABLE. */
736
/* YYNTOKENS -- Number of terminals. */
737
#define YYNTOKENS 132
738
/* YYNNTS -- Number of nonterminals. */
740
/* YYNRULES -- Number of rules. */
742
/* YYNRULES -- Number of states. */
743
#define YYNSTATES 895
745
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
747
#define YYMAXUTOK 359
749
#define YYTRANSLATE(YYX) \
750
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
752
/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
753
static const yytype_uint8 yytranslate[] =
755
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
756
130, 2, 2, 2, 2, 2, 2, 2, 2, 2,
757
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
758
2, 2, 129, 117, 2, 2, 2, 115, 110, 2,
759
128, 125, 113, 111, 126, 112, 124, 114, 2, 2,
760
2, 2, 2, 2, 2, 2, 2, 2, 105, 131,
761
107, 103, 106, 104, 2, 2, 2, 2, 2, 2,
762
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
763
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
764
2, 122, 2, 123, 109, 2, 127, 2, 2, 2,
765
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
766
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
767
2, 2, 2, 120, 108, 121, 118, 2, 2, 2,
768
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
769
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
770
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
771
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
772
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
773
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
774
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
775
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
776
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
777
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
778
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
779
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
780
2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
781
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
782
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
783
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
784
35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
785
45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
786
55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
787
65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
788
75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
789
85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
790
95, 96, 97, 98, 99, 100, 101, 102, 116, 119
794
/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
796
static const yytype_uint16 yyprhs[] =
798
0, 0, 3, 4, 7, 12, 15, 17, 19, 23,
799
26, 27, 32, 36, 40, 44, 47, 51, 55, 59,
800
63, 67, 68, 74, 79, 83, 87, 91, 98, 104,
801
110, 116, 120, 124, 128, 132, 134, 136, 140, 144,
802
147, 150, 152, 154, 156, 158, 161, 164, 167, 169,
803
174, 179, 180, 181, 188, 191, 195, 200, 206, 211,
804
217, 220, 223, 225, 229, 231, 235, 237, 240, 244,
805
247, 250, 252, 254, 258, 261, 265, 267, 272, 276,
806
280, 284, 288, 291, 293, 295, 300, 304, 308, 312,
807
316, 319, 321, 323, 325, 328, 330, 334, 336, 338,
808
340, 342, 344, 346, 348, 350, 352, 354, 355, 360,
809
362, 364, 366, 368, 370, 372, 374, 376, 378, 380,
810
382, 384, 386, 388, 390, 392, 394, 396, 398, 400,
811
402, 404, 406, 408, 410, 412, 414, 416, 418, 420,
812
422, 424, 426, 428, 430, 432, 434, 436, 438, 440,
813
442, 444, 446, 448, 450, 452, 454, 456, 458, 460,
814
462, 464, 466, 468, 470, 472, 474, 476, 478, 480,
815
482, 484, 486, 488, 490, 492, 496, 502, 506, 513,
816
519, 525, 531, 537, 542, 546, 550, 554, 558, 562,
817
566, 570, 574, 578, 583, 588, 591, 594, 598, 602,
818
606, 610, 614, 618, 622, 626, 630, 634, 638, 642,
819
646, 649, 652, 656, 660, 664, 668, 669, 674, 680,
820
682, 684, 686, 689, 692, 698, 701, 705, 709, 714,
821
719, 726, 728, 730, 732, 735, 741, 744, 750, 755,
822
763, 767, 769, 774, 778, 784, 792, 795, 801, 806,
823
813, 821, 831, 835, 837, 838, 841, 843, 844, 848,
824
849, 854, 857, 860, 862, 864, 868, 872, 877, 880,
825
882, 884, 886, 888, 890, 892, 894, 896, 898, 899,
826
904, 905, 911, 915, 919, 922, 927, 931, 935, 937,
827
942, 946, 948, 949, 956, 959, 961, 964, 971, 978,
828
979, 980, 988, 989, 990, 998, 1004, 1009, 1015, 1016,
829
1017, 1027, 1028, 1035, 1036, 1037, 1046, 1047, 1053, 1054,
830
1061, 1062, 1063, 1073, 1075, 1077, 1079, 1081, 1083, 1085,
831
1087, 1089, 1092, 1094, 1096, 1098, 1100, 1106, 1108, 1111,
832
1113, 1115, 1117, 1120, 1122, 1126, 1127, 1128, 1135, 1138,
833
1143, 1148, 1151, 1156, 1161, 1165, 1168, 1170, 1171, 1172,
834
1179, 1180, 1181, 1188, 1194, 1196, 1201, 1204, 1206, 1208,
835
1215, 1217, 1219, 1221, 1223, 1226, 1228, 1231, 1233, 1235,
836
1237, 1239, 1241, 1243, 1246, 1250, 1254, 1258, 1262, 1266,
837
1267, 1271, 1273, 1276, 1280, 1284, 1285, 1289, 1290, 1293,
838
1294, 1297, 1299, 1300, 1304, 1305, 1310, 1312, 1314, 1316,
839
1318, 1321, 1323, 1325, 1327, 1329, 1333, 1335, 1337, 1340,
840
1343, 1345, 1347, 1349, 1351, 1353, 1355, 1357, 1359, 1361,
841
1363, 1365, 1367, 1369, 1371, 1373, 1375, 1376, 1381, 1384,
842
1389, 1392, 1399, 1404, 1409, 1412, 1417, 1420, 1423, 1425,
843
1426, 1428, 1430, 1432, 1434, 1436, 1438, 1442, 1446, 1448,
844
1452, 1454, 1456, 1459, 1461, 1463, 1465, 1468, 1471, 1473,
845
1475, 1476, 1482, 1484, 1487, 1490, 1492, 1496, 1500, 1502,
846
1504, 1506, 1508, 1510, 1512, 1514, 1516, 1518, 1520, 1522,
847
1524, 1525, 1527, 1528, 1530, 1531, 1533, 1535, 1537, 1539,
851
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
852
static const yytype_int16 yyrhs[] =
854
133, 0, -1, -1, 134, 136, -1, 136, 219, 203,
855
222, -1, 137, 270, -1, 275, -1, 138, -1, 137,
856
274, 138, -1, 1, 138, -1, -1, 44, 160, 139,
857
160, -1, 44, 52, 52, -1, 44, 52, 60, -1,
858
44, 52, 59, -1, 6, 161, -1, 138, 39, 142,
859
-1, 138, 40, 142, -1, 138, 41, 142, -1, 138,
860
42, 142, -1, 138, 43, 138, -1, -1, 46, 140,
861
120, 136, 121, -1, 47, 120, 136, 121, -1, 155,
862
103, 143, -1, 149, 103, 143, -1, 246, 83, 143,
863
-1, 199, 122, 168, 123, 83, 143, -1, 199, 124,
864
50, 83, 143, -1, 199, 124, 54, 83, 143, -1,
865
199, 81, 50, 83, 143, -1, 247, 83, 143, -1,
866
155, 103, 181, -1, 149, 103, 167, -1, 149, 103,
867
181, -1, 141, -1, 143, -1, 141, 36, 141, -1,
868
141, 37, 141, -1, 38, 141, -1, 117, 143, -1,
869
165, -1, 141, -1, 148, -1, 144, -1, 29, 171,
870
-1, 21, 171, -1, 22, 171, -1, 209, -1, 209,
871
124, 267, 173, -1, 209, 81, 267, 173, -1, -1,
872
-1, 90, 146, 205, 147, 136, 121, -1, 266, 173,
873
-1, 266, 173, 145, -1, 199, 124, 267, 173, -1,
874
199, 124, 267, 173, 145, -1, 199, 81, 267, 173,
875
-1, 199, 81, 267, 173, 145, -1, 31, 173, -1,
876
30, 173, -1, 151, -1, 85, 150, 125, -1, 151,
877
-1, 85, 150, 125, -1, 153, -1, 153, 152, -1,
878
153, 91, 154, -1, 153, 91, -1, 91, 154, -1,
879
91, -1, 154, -1, 85, 150, 125, -1, 152, 126,
880
-1, 153, 152, 126, -1, 244, -1, 199, 122, 168,
881
123, -1, 199, 124, 50, -1, 199, 81, 50, -1,
882
199, 124, 54, -1, 199, 81, 54, -1, 82, 54,
883
-1, 247, -1, 244, -1, 199, 122, 168, 123, -1,
884
199, 124, 50, -1, 199, 81, 50, -1, 199, 124,
885
54, -1, 199, 81, 54, -1, 82, 54, -1, 247,
886
-1, 50, -1, 54, -1, 82, 156, -1, 156, -1,
887
199, 81, 156, -1, 50, -1, 54, -1, 51, -1,
888
163, -1, 164, -1, 158, -1, 240, -1, 159, -1,
889
242, -1, 160, -1, -1, 161, 126, 162, 160, -1,
890
108, -1, 109, -1, 110, -1, 65, -1, 66, -1,
891
67, -1, 73, -1, 106, -1, 69, -1, 107, -1,
892
70, -1, 79, -1, 80, -1, 111, -1, 112, -1,
893
113, -1, 91, -1, 114, -1, 115, -1, 64, -1,
894
118, -1, 62, -1, 63, -1, 77, -1, 78, -1,
895
127, -1, 48, -1, 49, -1, 46, -1, 47, -1,
896
44, -1, 36, -1, 7, -1, 21, -1, 16, -1,
897
3, -1, 5, -1, 45, -1, 26, -1, 15, -1,
898
14, -1, 10, -1, 9, -1, 35, -1, 20, -1,
899
25, -1, 4, -1, 22, -1, 33, -1, 38, -1,
900
37, -1, 23, -1, 8, -1, 24, -1, 29, -1,
901
32, -1, 31, -1, 13, -1, 34, -1, 6, -1,
902
17, -1, 30, -1, 11, -1, 12, -1, 18, -1,
903
19, -1, 155, 103, 165, -1, 155, 103, 165, 43,
904
165, -1, 246, 83, 165, -1, 199, 122, 168, 123,
905
83, 165, -1, 199, 124, 50, 83, 165, -1, 199,
906
124, 54, 83, 165, -1, 199, 81, 50, 83, 165,
907
-1, 199, 81, 54, 83, 165, -1, 82, 54, 83,
908
165, -1, 247, 83, 165, -1, 165, 75, 165, -1,
909
165, 76, 165, -1, 165, 111, 165, -1, 165, 112,
910
165, -1, 165, 113, 165, -1, 165, 114, 165, -1,
911
165, 115, 165, -1, 165, 64, 165, -1, 116, 56,
912
64, 165, -1, 116, 57, 64, 165, -1, 62, 165,
913
-1, 63, 165, -1, 165, 108, 165, -1, 165, 109,
914
165, -1, 165, 110, 165, -1, 165, 65, 165, -1,
915
165, 106, 165, -1, 165, 69, 165, -1, 165, 107,
916
165, -1, 165, 70, 165, -1, 165, 66, 165, -1,
917
165, 67, 165, -1, 165, 68, 165, -1, 165, 73,
918
165, -1, 165, 74, 165, -1, 117, 165, -1, 118,
919
165, -1, 165, 79, 165, -1, 165, 80, 165, -1,
920
165, 71, 165, -1, 165, 72, 165, -1, -1, 45,
921
271, 166, 165, -1, 165, 104, 165, 105, 165, -1,
922
182, -1, 165, -1, 275, -1, 148, 271, -1, 180,
923
272, -1, 180, 126, 91, 165, 271, -1, 264, 272,
924
-1, 91, 165, 271, -1, 128, 275, 125, -1, 128,
925
171, 271, 125, -1, 128, 209, 271, 125, -1, 128,
926
180, 126, 209, 271, 125, -1, 275, -1, 169, -1,
927
148, -1, 180, 179, -1, 180, 126, 91, 167, 179,
928
-1, 264, 179, -1, 264, 126, 91, 167, 179, -1,
929
180, 126, 264, 179, -1, 180, 126, 264, 126, 91,
930
165, 179, -1, 91, 167, 179, -1, 178, -1, 167,
931
126, 180, 179, -1, 167, 126, 178, -1, 167, 126,
932
91, 167, 179, -1, 167, 126, 180, 126, 91, 167,
933
179, -1, 264, 179, -1, 264, 126, 91, 167, 179,
934
-1, 167, 126, 264, 179, -1, 167, 126, 180, 126,
935
264, 179, -1, 167, 126, 264, 126, 91, 167, 179,
936
-1, 167, 126, 180, 126, 264, 126, 91, 167, 179,
937
-1, 91, 167, 179, -1, 178, -1, -1, 174, 175,
938
-1, 171, -1, -1, 86, 176, 125, -1, -1, 86,
939
172, 177, 125, -1, 92, 167, -1, 126, 178, -1,
940
275, -1, 167, -1, 180, 126, 167, -1, 180, 126,
941
167, -1, 180, 126, 91, 167, -1, 91, 167, -1,
942
223, -1, 224, -1, 227, -1, 228, -1, 229, -1,
943
232, -1, 245, -1, 247, -1, 51, -1, -1, 7,
944
183, 135, 10, -1, -1, 86, 141, 184, 271, 125,
945
-1, 85, 136, 125, -1, 199, 81, 54, -1, 82,
946
54, -1, 199, 122, 168, 123, -1, 88, 168, 123,
947
-1, 89, 263, 121, -1, 29, -1, 30, 128, 171,
948
125, -1, 30, 128, 125, -1, 30, -1, -1, 45,
949
271, 128, 185, 141, 125, -1, 266, 211, -1, 210,
950
-1, 210, 211, -1, 11, 142, 200, 136, 202, 10,
951
-1, 12, 142, 200, 136, 203, 10, -1, -1, -1,
952
18, 186, 142, 201, 187, 136, 10, -1, -1, -1,
953
19, 188, 142, 201, 189, 136, 10, -1, 16, 142,
954
270, 216, 10, -1, 16, 270, 216, 10, -1, 16,
955
270, 15, 136, 10, -1, -1, -1, 20, 204, 25,
956
190, 142, 201, 191, 136, 10, -1, -1, 3, 157,
957
248, 192, 135, 10, -1, -1, -1, 3, 79, 141,
958
193, 273, 194, 135, 10, -1, -1, 4, 157, 195,
959
135, 10, -1, -1, 5, 158, 196, 250, 135, 10,
960
-1, -1, -1, 5, 261, 269, 197, 158, 198, 250,
961
135, 10, -1, 21, -1, 22, -1, 23, -1, 24,
962
-1, 182, -1, 273, -1, 105, -1, 13, -1, 273,
963
13, -1, 273, -1, 105, -1, 27, -1, 203, -1,
964
14, 142, 200, 136, 202, -1, 275, -1, 15, 136,
965
-1, 155, -1, 149, -1, 275, -1, 108, 108, -1,
966
72, -1, 108, 204, 108, -1, -1, -1, 28, 207,
967
205, 208, 136, 10, -1, 148, 206, -1, 209, 124,
968
267, 170, -1, 209, 81, 267, 170, -1, 266, 169,
969
-1, 199, 124, 267, 170, -1, 199, 81, 267, 169,
970
-1, 199, 81, 268, -1, 31, 169, -1, 31, -1,
971
-1, -1, 120, 212, 205, 213, 136, 121, -1, -1,
972
-1, 26, 214, 205, 215, 136, 10, -1, 17, 217,
973
200, 136, 218, -1, 180, -1, 180, 126, 91, 167,
974
-1, 91, 167, -1, 203, -1, 216, -1, 8, 220,
975
221, 200, 136, 219, -1, 275, -1, 167, -1, 181,
976
-1, 275, -1, 84, 155, -1, 275, -1, 9, 136,
977
-1, 275, -1, 243, -1, 240, -1, 242, -1, 225,
978
-1, 226, -1, 225, 226, -1, 94, 234, 101, -1,
979
95, 235, 101, -1, 96, 235, 61, -1, 97, 129,
980
101, -1, 97, 230, 101, -1, -1, 230, 231, 129,
981
-1, 236, -1, 231, 236, -1, 98, 129, 101, -1,
982
98, 233, 101, -1, -1, 233, 58, 129, -1, -1,
983
234, 236, -1, -1, 235, 236, -1, 58, -1, -1,
984
100, 237, 239, -1, -1, 99, 238, 136, 121, -1,
985
52, -1, 53, -1, 55, -1, 247, -1, 93, 241,
986
-1, 158, -1, 53, -1, 52, -1, 55, -1, 93,
987
235, 101, -1, 56, -1, 57, -1, 116, 56, -1,
988
116, 57, -1, 50, -1, 53, -1, 52, -1, 54,
989
-1, 55, -1, 33, -1, 32, -1, 34, -1, 35,
990
-1, 49, -1, 48, -1, 244, -1, 244, -1, 59,
991
-1, 60, -1, 273, -1, -1, 107, 249, 142, 273,
992
-1, 1, 273, -1, 128, 251, 271, 125, -1, 251,
993
273, -1, 253, 126, 255, 126, 257, 260, -1, 253,
994
126, 255, 260, -1, 253, 126, 257, 260, -1, 253,
995
260, -1, 255, 126, 257, 260, -1, 255, 260, -1,
996
257, 260, -1, 259, -1, -1, 54, -1, 53, -1,
997
52, -1, 55, -1, 50, -1, 252, -1, 253, 126,
998
252, -1, 50, 103, 167, -1, 254, -1, 255, 126,
999
254, -1, 113, -1, 91, -1, 256, 50, -1, 256,
1000
-1, 110, -1, 92, -1, 258, 50, -1, 126, 259,
1001
-1, 275, -1, 245, -1, -1, 128, 262, 141, 271,
1002
125, -1, 275, -1, 264, 272, -1, 180, 272, -1,
1003
265, -1, 264, 126, 265, -1, 167, 84, 167, -1,
1004
50, -1, 54, -1, 51, -1, 50, -1, 54, -1,
1005
51, -1, 163, -1, 50, -1, 51, -1, 163, -1,
1006
124, -1, 81, -1, -1, 274, -1, -1, 130, -1,
1007
-1, 130, -1, 126, -1, 131, -1, 130, -1, 273,
1008
-1, 274, 131, -1, -1
1011
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
1012
static const yytype_uint16 yyrline[] =
1014
0, 346, 346, 346, 371, 391, 398, 399, 403, 407,
1015
413, 413, 417, 421, 428, 433, 437, 446, 455, 467,
1016
479, 484, 483, 497, 505, 509, 515, 540, 556, 568,
1017
580, 592, 597, 601, 606, 611, 614, 615, 619, 623,
1018
627, 631, 634, 641, 642, 643, 647, 651, 657, 658,
1019
662, 669, 673, 668, 683, 688, 700, 705, 717, 722,
1020
734, 739, 746, 747, 753, 754, 760, 764, 768, 772,
1021
776, 780, 786, 787, 793, 797, 803, 807, 811, 815,
1022
819, 823, 829, 835, 842, 846, 850, 854, 858, 862,
1023
868, 874, 881, 885, 888, 892, 896, 902, 903, 904,
1024
905, 910, 917, 918, 921, 925, 928, 932, 932, 938,
1025
939, 940, 941, 942, 943, 944, 945, 946, 947, 948,
1026
949, 950, 951, 952, 953, 954, 955, 956, 957, 958,
1027
959, 960, 961, 962, 963, 966, 966, 966, 966, 967,
1028
967, 967, 967, 967, 967, 967, 968, 968, 968, 968,
1029
968, 968, 968, 969, 969, 969, 969, 969, 969, 970,
1030
970, 970, 970, 970, 970, 970, 971, 971, 971, 971,
1031
971, 972, 972, 972, 972, 975, 979, 983, 1008, 1024,
1032
1036, 1048, 1060, 1065, 1070, 1075, 1088, 1101, 1105, 1109,
1033
1113, 1117, 1121, 1125, 1129, 1133, 1142, 1146, 1150, 1154,
1034
1158, 1162, 1166, 1170, 1174, 1178, 1182, 1186, 1190, 1194,
1035
1198, 1202, 1206, 1210, 1214, 1218, 1222, 1222, 1227, 1232,
1036
1238, 1245, 1246, 1251, 1255, 1260, 1264, 1271, 1275, 1279,
1037
1284, 1291, 1292, 1295, 1300, 1304, 1309, 1314, 1319, 1324,
1038
1330, 1334, 1337, 1341, 1345, 1350, 1355, 1360, 1365, 1370,
1039
1375, 1380, 1385, 1389, 1392, 1392, 1404, 1405, 1405, 1410,
1040
1410, 1417, 1423, 1427, 1430, 1434, 1440, 1444, 1448, 1454,
1041
1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1467, 1466,
1042
1479, 1479, 1484, 1489, 1493, 1497, 1505, 1514, 1518, 1522,
1043
1526, 1530, 1534, 1534, 1539, 1545, 1546, 1555, 1568, 1581,
1044
1581, 1581, 1591, 1591, 1591, 1601, 1608, 1612, 1616, 1616,
1045
1616, 1624, 1623, 1640, 1645, 1639, 1662, 1661, 1678, 1677,
1046
1695, 1696, 1695, 1710, 1714, 1718, 1722, 1728, 1735, 1736,
1047
1737, 1738, 1741, 1742, 1743, 1746, 1747, 1756, 1757, 1763,
1048
1764, 1767, 1768, 1772, 1776, 1783, 1787, 1782, 1797, 1806,
1049
1810, 1816, 1821, 1826, 1831, 1835, 1839, 1846, 1850, 1845,
1050
1858, 1862, 1857, 1871, 1878, 1879, 1883, 1889, 1890, 1893,
1051
1904, 1907, 1911, 1912, 1915, 1919, 1922, 1930, 1933, 1934,
1052
1938, 1941, 1954, 1955, 1961, 1967, 1990, 2023, 2027, 2034,
1053
2037, 2043, 2044, 2050, 2054, 2061, 2064, 2071, 2074, 2081,
1054
2084, 2090, 2092, 2091, 2103, 2102, 2123, 2124, 2125, 2126,
1055
2129, 2136, 2137, 2138, 2139, 2142, 2175, 2176, 2177, 2181,
1056
2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196,
1057
2197, 2200, 2206, 2212, 2213, 2216, 2221, 2220, 2228, 2231,
1058
2237, 2243, 2247, 2251, 2255, 2259, 2263, 2267, 2271, 2276,
1059
2281, 2285, 2289, 2293, 2297, 2308, 2309, 2315, 2325, 2330,
1060
2336, 2337, 2340, 2349, 2360, 2361, 2364, 2374, 2378, 2381,
1061
2386, 2386, 2411, 2412, 2416, 2425, 2426, 2432, 2438, 2439,
1062
2440, 2443, 2444, 2445, 2446, 2449, 2450, 2451, 2454, 2455,
1063
2458, 2459, 2462, 2463, 2466, 2467, 2468, 2471, 2472, 2475,
1068
#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
1069
/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1070
First, the terminals, then, starting at YYNTOKENS, nonterminals. */
1071
static const char *const yytname[] =
1073
"$end", "error", "$undefined", "kCLASS", "kMODULE", "kDEF", "kUNDEF",
1074
"kBEGIN", "kRESCUE", "kENSURE", "kEND", "kIF", "kUNLESS", "kTHEN",
1075
"kELSIF", "kELSE", "kCASE", "kWHEN", "kWHILE", "kUNTIL", "kFOR",
1076
"kBREAK", "kNEXT", "kREDO", "kRETRY", "kIN", "kDO", "kDO_COND",
1077
"kDO_BLOCK", "kRETURN", "kYIELD", "kSUPER", "kSELF", "kNIL", "kTRUE",
1078
"kFALSE", "kAND", "kOR", "kNOT", "kIF_MOD", "kUNLESS_MOD", "kWHILE_MOD",
1079
"kUNTIL_MOD", "kRESCUE_MOD", "kALIAS", "kDEFINED", "klBEGIN", "klEND",
1080
"k__LINE__", "k__FILE__", "tIDENTIFIER", "tFID", "tGVAR", "tIVAR",
1081
"tCONSTANT", "tCVAR", "tINTEGER", "tFLOAT", "tSTRING_CONTENT",
1082
"tNTH_REF", "tBACK_REF", "tREGEXP_END", "tUPLUS", "tUMINUS", "tPOW",
1083
"tCMP", "tEQ", "tEQQ", "tNEQ", "tGEQ", "tLEQ", "tANDOP", "tOROP",
1084
"tMATCH", "tNMATCH", "tDOT2", "tDOT3", "tAREF", "tASET", "tLSHFT",
1085
"tRSHFT", "tCOLON2", "tCOLON3", "tOP_ASGN", "tASSOC", "tLPAREN",
1086
"tLPAREN_ARG", "tRPAREN", "tLBRACK", "tLBRACE", "tLBRACE_ARG", "tSTAR",
1087
"tAMPER", "tSYMBEG", "tSTRING_BEG", "tXSTRING_BEG", "tREGEXP_BEG",
1088
"tWORDS_BEG", "tQWORDS_BEG", "tSTRING_DBEG", "tSTRING_DVAR",
1089
"tSTRING_END", "tLOWEST", "'='", "'?'", "':'", "'>'", "'<'", "'|'",
1090
"'^'", "'&'", "'+'", "'-'", "'*'", "'/'", "'%'", "tUMINUS_NUM", "'!'",
1091
"'~'", "tLAST_TOKEN", "'{'", "'}'", "'['", "']'", "'.'", "')'", "','",
1092
"'`'", "'('", "' '", "'\\n'", "';'", "$accept", "program", "@1",
1093
"bodystmt", "compstmt", "stmts", "stmt", "@2", "@3", "expr",
1094
"expr_value", "command_call", "block_command", "cmd_brace_block", "@4",
1095
"@5", "command", "mlhs", "mlhs_entry", "mlhs_basic", "mlhs_item",
1096
"mlhs_head", "mlhs_node", "lhs", "cname", "cpath", "fname", "fsym",
1097
"fitem", "undef_list", "@6", "op", "reswords", "arg", "@7", "arg_value",
1098
"aref_args", "paren_args", "opt_paren_args", "call_args", "call_args2",
1099
"command_args", "@8", "open_args", "@9", "@10", "block_arg",
1100
"opt_block_arg", "args", "mrhs", "primary", "@11", "@12", "@13", "@14",
1101
"@15", "@16", "@17", "@18", "@19", "@20", "@21", "@22", "@23", "@24",
1102
"@25", "@26", "primary_value", "then", "do", "if_tail", "opt_else",
1103
"block_var", "opt_block_var", "do_block", "@27", "@28", "block_call",
1104
"method_call", "brace_block", "@29", "@30", "@31", "@32", "case_body",
1105
"when_args", "cases", "opt_rescue", "exc_list", "exc_var", "opt_ensure",
1106
"literal", "strings", "string", "string1", "xstring", "regexp", "words",
1107
"word_list", "word", "qwords", "qword_list", "string_contents",
1108
"xstring_contents", "string_content", "@33", "@34", "string_dvar",
1109
"symbol", "sym", "dsym", "numeric", "variable", "var_ref", "var_lhs",
1110
"backref", "superclass", "@35", "f_arglist", "f_args", "f_norm_arg",
1111
"f_arg", "f_opt", "f_optarg", "restarg_mark", "f_rest_arg",
1112
"blkarg_mark", "f_block_arg", "opt_f_block_arg", "singleton", "@36",
1113
"assoc_list", "assocs", "assoc", "operation", "operation2", "operation3",
1114
"dot_or_colon", "opt_terms", "opt_nl", "trailer", "term", "terms",
1120
/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
1122
static const yytype_uint16 yytoknum[] =
1124
0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1125
265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1126
275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1127
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1128
295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1129
305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1130
315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1131
325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1132
335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1133
345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
1134
355, 356, 357, 61, 63, 58, 62, 60, 124, 94,
1135
38, 43, 45, 42, 47, 37, 358, 33, 126, 359,
1136
123, 125, 91, 93, 46, 41, 44, 96, 40, 32,
1141
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
1142
static const yytype_uint16 yyr1[] =
1144
0, 132, 134, 133, 135, 136, 137, 137, 137, 137,
1145
139, 138, 138, 138, 138, 138, 138, 138, 138, 138,
1146
138, 140, 138, 138, 138, 138, 138, 138, 138, 138,
1147
138, 138, 138, 138, 138, 138, 141, 141, 141, 141,
1148
141, 141, 142, 143, 143, 143, 143, 143, 144, 144,
1149
144, 146, 147, 145, 148, 148, 148, 148, 148, 148,
1150
148, 148, 149, 149, 150, 150, 151, 151, 151, 151,
1151
151, 151, 152, 152, 153, 153, 154, 154, 154, 154,
1152
154, 154, 154, 154, 155, 155, 155, 155, 155, 155,
1153
155, 155, 156, 156, 157, 157, 157, 158, 158, 158,
1154
158, 158, 159, 159, 160, 160, 161, 162, 161, 163,
1155
163, 163, 163, 163, 163, 163, 163, 163, 163, 163,
1156
163, 163, 163, 163, 163, 163, 163, 163, 163, 163,
1157
163, 163, 163, 163, 163, 164, 164, 164, 164, 164,
1158
164, 164, 164, 164, 164, 164, 164, 164, 164, 164,
1159
164, 164, 164, 164, 164, 164, 164, 164, 164, 164,
1160
164, 164, 164, 164, 164, 164, 164, 164, 164, 164,
1161
164, 164, 164, 164, 164, 165, 165, 165, 165, 165,
1162
165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
1163
165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
1164
165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
1165
165, 165, 165, 165, 165, 165, 166, 165, 165, 165,
1166
167, 168, 168, 168, 168, 168, 168, 169, 169, 169,
1167
169, 170, 170, 171, 171, 171, 171, 171, 171, 171,
1168
171, 171, 172, 172, 172, 172, 172, 172, 172, 172,
1169
172, 172, 172, 172, 174, 173, 175, 176, 175, 177,
1170
175, 178, 179, 179, 180, 180, 181, 181, 181, 182,
1171
182, 182, 182, 182, 182, 182, 182, 182, 183, 182,
1172
184, 182, 182, 182, 182, 182, 182, 182, 182, 182,
1173
182, 182, 185, 182, 182, 182, 182, 182, 182, 186,
1174
187, 182, 188, 189, 182, 182, 182, 182, 190, 191,
1175
182, 192, 182, 193, 194, 182, 195, 182, 196, 182,
1176
197, 198, 182, 182, 182, 182, 182, 199, 200, 200,
1177
200, 200, 201, 201, 201, 202, 202, 203, 203, 204,
1178
204, 205, 205, 205, 205, 207, 208, 206, 209, 209,
1179
209, 210, 210, 210, 210, 210, 210, 212, 213, 211,
1180
214, 215, 211, 216, 217, 217, 217, 218, 218, 219,
1181
219, 220, 220, 220, 221, 221, 222, 222, 223, 223,
1182
223, 224, 225, 225, 226, 227, 228, 229, 229, 230,
1183
230, 231, 231, 232, 232, 233, 233, 234, 234, 235,
1184
235, 236, 237, 236, 238, 236, 239, 239, 239, 239,
1185
240, 241, 241, 241, 241, 242, 243, 243, 243, 243,
1186
244, 244, 244, 244, 244, 244, 244, 244, 244, 244,
1187
244, 245, 246, 247, 247, 248, 249, 248, 248, 250,
1188
250, 251, 251, 251, 251, 251, 251, 251, 251, 251,
1189
252, 252, 252, 252, 252, 253, 253, 254, 255, 255,
1190
256, 256, 257, 257, 258, 258, 259, 260, 260, 261,
1191
262, 261, 263, 263, 263, 264, 264, 265, 266, 266,
1192
266, 267, 267, 267, 267, 268, 268, 268, 269, 269,
1193
270, 270, 271, 271, 272, 272, 272, 273, 273, 274,
1197
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
1198
static const yytype_uint8 yyr2[] =
1200
0, 2, 0, 2, 4, 2, 1, 1, 3, 2,
1201
0, 4, 3, 3, 3, 2, 3, 3, 3, 3,
1202
3, 0, 5, 4, 3, 3, 3, 6, 5, 5,
1203
5, 3, 3, 3, 3, 1, 1, 3, 3, 2,
1204
2, 1, 1, 1, 1, 2, 2, 2, 1, 4,
1205
4, 0, 0, 6, 2, 3, 4, 5, 4, 5,
1206
2, 2, 1, 3, 1, 3, 1, 2, 3, 2,
1207
2, 1, 1, 3, 2, 3, 1, 4, 3, 3,
1208
3, 3, 2, 1, 1, 4, 3, 3, 3, 3,
1209
2, 1, 1, 1, 2, 1, 3, 1, 1, 1,
1210
1, 1, 1, 1, 1, 1, 1, 0, 4, 1,
1211
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1212
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1213
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1214
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1215
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1216
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1217
1, 1, 1, 1, 1, 3, 5, 3, 6, 5,
1218
5, 5, 5, 4, 3, 3, 3, 3, 3, 3,
1219
3, 3, 3, 4, 4, 2, 2, 3, 3, 3,
1220
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1221
2, 2, 3, 3, 3, 3, 0, 4, 5, 1,
1222
1, 1, 2, 2, 5, 2, 3, 3, 4, 4,
1223
6, 1, 1, 1, 2, 5, 2, 5, 4, 7,
1224
3, 1, 4, 3, 5, 7, 2, 5, 4, 6,
1225
7, 9, 3, 1, 0, 2, 1, 0, 3, 0,
1226
4, 2, 2, 1, 1, 3, 3, 4, 2, 1,
1227
1, 1, 1, 1, 1, 1, 1, 1, 0, 4,
1228
0, 5, 3, 3, 2, 4, 3, 3, 1, 4,
1229
3, 1, 0, 6, 2, 1, 2, 6, 6, 0,
1230
0, 7, 0, 0, 7, 5, 4, 5, 0, 0,
1231
9, 0, 6, 0, 0, 8, 0, 5, 0, 6,
1232
0, 0, 9, 1, 1, 1, 1, 1, 1, 1,
1233
1, 2, 1, 1, 1, 1, 5, 1, 2, 1,
1234
1, 1, 2, 1, 3, 0, 0, 6, 2, 4,
1235
4, 2, 4, 4, 3, 2, 1, 0, 0, 6,
1236
0, 0, 6, 5, 1, 4, 2, 1, 1, 6,
1237
1, 1, 1, 1, 2, 1, 2, 1, 1, 1,
1238
1, 1, 1, 2, 3, 3, 3, 3, 3, 0,
1239
3, 1, 2, 3, 3, 0, 3, 0, 2, 0,
1240
2, 1, 0, 3, 0, 4, 1, 1, 1, 1,
1241
2, 1, 1, 1, 1, 3, 1, 1, 2, 2,
1242
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1243
1, 1, 1, 1, 1, 1, 0, 4, 2, 4,
1244
2, 6, 4, 4, 2, 4, 2, 2, 1, 0,
1245
1, 1, 1, 1, 1, 1, 3, 3, 1, 3,
1246
1, 1, 2, 1, 1, 1, 2, 2, 1, 1,
1247
0, 5, 1, 2, 2, 1, 3, 3, 1, 1,
1248
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1249
0, 1, 0, 1, 0, 1, 1, 1, 1, 1,
1253
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
1254
STATE-NUM when YYTABLE doesn't specify something else to do. Zero
1255
means the default is an error. */
1256
static const yytype_uint16 yydefact[] =
1258
2, 0, 0, 1, 0, 0, 0, 0, 0, 278,
1259
0, 0, 490, 299, 302, 0, 323, 324, 325, 326,
1260
288, 291, 356, 426, 425, 427, 428, 0, 0, 492,
1261
21, 0, 430, 429, 420, 277, 422, 421, 423, 424,
1262
416, 417, 433, 434, 0, 0, 0, 0, 0, 501,
1263
501, 71, 399, 397, 399, 399, 389, 395, 0, 0,
1264
0, 3, 490, 7, 35, 36, 44, 43, 0, 62,
1265
0, 66, 72, 0, 41, 219, 0, 48, 295, 269,
1266
270, 381, 382, 271, 272, 273, 274, 379, 380, 378,
1267
431, 275, 0, 276, 254, 6, 9, 323, 324, 288,
1268
291, 356, 492, 92, 93, 0, 0, 0, 0, 95,
1269
0, 327, 0, 431, 276, 0, 316, 144, 155, 145,
1270
168, 141, 161, 151, 150, 171, 172, 166, 149, 148,
1271
143, 169, 173, 174, 153, 142, 156, 160, 162, 154,
1272
147, 163, 170, 165, 164, 157, 167, 152, 140, 159,
1273
158, 139, 146, 137, 138, 135, 136, 97, 99, 98,
1274
130, 131, 128, 112, 113, 114, 117, 119, 115, 132,
1275
133, 120, 121, 125, 116, 118, 109, 110, 111, 122,
1276
123, 124, 126, 127, 129, 134, 470, 318, 100, 101,
1277
469, 0, 164, 157, 167, 152, 135, 136, 97, 98,
1278
102, 104, 106, 15, 103, 105, 0, 0, 42, 0,
1279
0, 0, 431, 0, 276, 0, 498, 497, 490, 0,
1280
499, 491, 0, 0, 0, 340, 339, 0, 0, 431,
1281
276, 0, 0, 0, 233, 220, 264, 46, 241, 501,
1282
501, 475, 47, 45, 0, 61, 0, 501, 355, 60,
1283
39, 0, 10, 493, 216, 0, 0, 195, 0, 196,
1284
284, 0, 0, 0, 62, 280, 0, 492, 0, 494,
1285
494, 221, 494, 0, 494, 472, 0, 70, 0, 76,
1286
83, 413, 412, 414, 411, 0, 410, 0, 0, 0,
1287
0, 0, 0, 0, 418, 419, 40, 210, 211, 5,
1288
491, 0, 0, 0, 0, 0, 0, 0, 345, 348,
1289
0, 74, 0, 69, 67, 0, 0, 0, 0, 0,
1290
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1291
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1292
0, 0, 0, 501, 0, 0, 0, 360, 357, 296,
1293
383, 0, 0, 351, 54, 294, 0, 313, 92, 93,
1294
94, 418, 419, 0, 436, 311, 435, 0, 501, 0,
1295
0, 0, 449, 489, 488, 320, 107, 0, 501, 284,
1296
330, 329, 0, 328, 0, 0, 501, 0, 0, 0,
1297
0, 0, 0, 0, 0, 500, 0, 0, 284, 0,
1298
501, 0, 308, 501, 261, 0, 0, 234, 263, 0,
1299
236, 290, 0, 257, 256, 255, 233, 492, 501, 492,
1300
0, 12, 14, 13, 0, 292, 0, 0, 0, 0,
1301
0, 0, 0, 282, 63, 492, 492, 222, 286, 496,
1302
495, 223, 496, 225, 496, 474, 287, 473, 82, 0,
1303
501, 0, 401, 404, 402, 415, 400, 384, 398, 385,
1304
386, 387, 388, 0, 391, 393, 0, 394, 0, 0,
1305
8, 16, 17, 18, 19, 20, 37, 38, 501, 0,
1306
25, 33, 0, 34, 0, 68, 75, 24, 175, 264,
1307
32, 192, 200, 205, 206, 207, 202, 204, 214, 215,
1308
208, 209, 185, 186, 212, 213, 0, 201, 203, 197,
1309
198, 199, 187, 188, 189, 190, 191, 481, 486, 482,
1310
487, 254, 354, 0, 481, 483, 482, 484, 501, 481,
1311
482, 254, 254, 501, 501, 26, 177, 31, 184, 51,
1312
55, 0, 438, 0, 0, 92, 93, 96, 0, 0,
1313
501, 0, 492, 454, 452, 451, 450, 453, 461, 465,
1314
464, 460, 449, 0, 0, 455, 501, 458, 501, 463,
1315
501, 0, 448, 0, 0, 279, 501, 501, 370, 501,
1316
331, 175, 485, 283, 0, 481, 482, 501, 0, 0,
1317
0, 364, 0, 306, 334, 333, 300, 332, 303, 485,
1318
283, 0, 481, 482, 0, 0, 240, 477, 0, 265,
1319
262, 501, 0, 0, 476, 289, 0, 41, 0, 259,
1320
0, 253, 501, 0, 0, 0, 0, 0, 227, 11,
1321
0, 217, 0, 23, 183, 63, 0, 226, 0, 265,
1322
79, 81, 0, 481, 482, 0, 0, 390, 392, 396,
1323
193, 194, 343, 0, 346, 341, 268, 0, 73, 0,
1324
0, 0, 0, 353, 58, 285, 0, 0, 232, 352,
1325
56, 231, 350, 50, 349, 49, 361, 358, 501, 314,
1326
0, 0, 285, 317, 0, 0, 492, 0, 440, 0,
1327
444, 468, 0, 446, 462, 0, 447, 466, 321, 108,
1328
371, 372, 501, 373, 0, 501, 337, 0, 0, 335,
1329
0, 285, 0, 0, 0, 305, 307, 366, 0, 0,
1330
0, 0, 285, 0, 501, 0, 238, 501, 501, 0,
1331
0, 258, 0, 246, 228, 0, 492, 501, 501, 229,
1332
0, 22, 281, 492, 77, 0, 406, 407, 408, 403,
1333
409, 342, 0, 0, 0, 266, 176, 218, 30, 181,
1334
182, 59, 0, 28, 179, 29, 180, 57, 0, 0,
1335
52, 0, 437, 312, 471, 457, 0, 319, 456, 501,
1336
501, 467, 0, 459, 501, 449, 0, 0, 375, 338,
1337
0, 4, 377, 0, 297, 0, 298, 0, 501, 0,
1338
0, 309, 235, 0, 237, 252, 0, 243, 501, 501,
1339
260, 0, 0, 293, 224, 405, 344, 0, 267, 27,
1340
178, 0, 0, 0, 0, 439, 0, 442, 443, 445,
1341
0, 0, 374, 0, 84, 91, 0, 376, 0, 365,
1342
367, 368, 363, 301, 304, 0, 501, 501, 0, 242,
1343
0, 248, 501, 230, 347, 362, 359, 0, 315, 501,
1344
0, 90, 0, 501, 0, 501, 501, 0, 239, 244,
1345
0, 501, 0, 247, 53, 441, 322, 485, 89, 0,
1346
481, 482, 369, 336, 310, 501, 0, 249, 501, 85,
1347
245, 0, 250, 501, 251
1350
/* YYDEFGOTO[NTERM-NUM]. */
1351
static const yytype_int16 yydefgoto[] =
1353
-1, 1, 2, 377, 378, 62, 63, 424, 255, 64,
1354
209, 65, 66, 540, 678, 823, 67, 68, 263, 69,
1355
70, 71, 72, 210, 109, 110, 200, 201, 202, 203,
1356
574, 527, 189, 74, 426, 236, 268, 668, 669, 237,
1357
619, 245, 246, 415, 620, 730, 610, 407, 269, 483,
1358
75, 206, 435, 630, 222, 720, 223, 721, 604, 845,
1359
544, 541, 771, 370, 372, 573, 785, 258, 382, 596,
1360
708, 709, 228, 654, 309, 478, 753, 77, 78, 355,
1361
534, 769, 533, 768, 394, 592, 842, 577, 702, 787,
1362
791, 79, 80, 81, 82, 83, 84, 85, 291, 463,
1363
86, 293, 287, 285, 456, 646, 645, 749, 87, 286,
1364
88, 89, 212, 91, 213, 214, 365, 543, 563, 564,
1365
565, 566, 567, 568, 569, 570, 571, 781, 690, 191,
1366
371, 273, 270, 241, 115, 548, 522, 375, 219, 254,
1370
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1372
#define YYPACT_NINF -654
1373
static const yytype_int16 yypact[] =
1375
-654, 73, 2254, -654, 5471, 7939, 8236, 3906, 5121, -654,
1376
6810, 6810, 3777, -654, -654, 8038, 5677, 5677, -654, -654,
1377
5677, 4436, 4539, -654, -654, -654, -654, 6810, 4996, -44,
1378
-654, -3, -654, -654, 2117, 4024, -654, -654, 4127, -654,
1379
-654, -654, -654, -654, 7634, 7634, 50, 3187, 6810, 6913,
1380
7634, 8335, 4871, -654, -654, -654, -18, -1, 94, 7737,
1381
7634, -654, 124, 757, 249, -654, -654, 104, 74, -654,
1382
57, 8137, -654, 96, 9349, 171, 485, 11, 32, -654,
1383
-654, 120, -654, -654, -654, -654, -654, -654, -654, -654,
1384
10, -654, 64, 38, 42, -654, 757, -654, -654, -654,
1385
99, 111, -44, 129, 140, 6810, 90, 3318, 325, -654,
1386
78, -654, 549, -654, -654, 42, -654, -654, -654, -654,
1387
-654, -654, -654, -654, -654, -654, -654, -654, -654, -654,
1388
-654, -654, -654, -654, -654, -654, -654, -654, -654, -654,
1389
-654, -654, -654, -654, 95, 148, 282, 333, -654, -654,
1390
-654, -654, -654, -654, -654, 336, 337, 465, -654, 473,
1391
-654, -654, -654, -654, -654, -654, -654, -654, -654, -654,
1392
-654, -654, -654, -654, -654, -654, -654, -654, -654, -654,
1393
-654, -654, -654, -654, -654, -654, -654, -654, -654, -654,
1394
-654, 495, -654, -654, -654, -654, -654, -654, -654, -654,
1395
-654, -654, -654, 147, -654, -654, 2615, 225, 249, 48,
1396
188, 558, 31, 213, 258, 48, -654, -654, 124, 88,
1397
-654, 209, 6810, 6810, 288, -654, -654, 559, 324, 66,
1398
245, 7634, 7634, 7634, -654, 9349, 274, -654, -654, 262,
1399
269, -654, -654, -654, 5363, -654, 5780, 5677, -654, -654,
1400
-654, 222, -654, -654, 275, 285, 3449, -654, 571, 366,
1401
476, 3187, 310, 315, 342, 249, 7634, -44, 371, 392,
1402
401, -654, 480, 375, 401, -654, 470, -654, 586, 595,
1403
618, -654, -654, -654, -654, 231, -654, 482, 515, 674,
1404
425, 565, 444, 30, 493, 499, -654, -654, -654, -654,
1405
3674, 6810, 6810, 6810, 6810, 5471, 6810, 6810, -654, -654,
1406
7016, -654, 3187, 8335, 438, 7016, 7634, 7634, 7634, 7634,
1407
7634, 7634, 7634, 7634, 7634, 7634, 7634, 7634, 7634, 7634,
1408
7634, 7634, 7634, 7634, 7634, 7634, 7634, 7634, 7634, 7634,
1409
7634, 7634, 1612, 6913, 8489, 8555, 8555, -654, -654, -654,
1410
-654, 7737, 7737, -654, 501, -654, 275, 249, -654, 623,
1411
-654, -654, -654, 124, -654, -654, -654, 8621, 6913, 8555,
1412
2615, 6810, 419, -654, -654, -654, -654, 583, 596, 283,
1413
-654, -654, 2737, 590, 7634, 8687, 6913, 8753, 7634, 7634,
1414
2981, 601, 3571, 7119, 611, -654, 18, 18, 252, 8819,
1415
6913, 8885, -654, 498, -654, 7634, 5883, -654, -654, 5986,
1416
-654, -654, 503, 5574, -654, -654, 104, -44, 510, 9,
1417
512, -654, -654, -654, 5121, -654, 7634, 3449, 528, 8687,
1418
8753, 7634, 529, -654, 527, -44, 9213, -654, -654, 7222,
1419
-654, -654, 7634, -654, 7634, -654, -654, -654, 623, 8951,
1420
6913, 9017, -654, -654, -654, -654, -654, -654, -654, -654,
1421
-654, -654, -654, 25, -654, -654, 534, -654, 7634, 7634,
1422
757, -654, -654, -654, -654, -654, -654, -654, 37, 7634,
1423
-654, 544, 546, -654, 550, -654, -654, -654, 1775, -654,
1424
-654, 366, 9418, 9418, 9418, 9418, 547, 547, 9435, 1667,
1425
9418, 9418, 9366, 9366, 394, 394, 2464, 547, 547, 714,
1426
714, 437, 43, 43, 366, 366, 366, 2365, 4642, 2484,
1427
4745, 111, -654, 554, 487, -654, 585, -654, 4539, -654,
1428
-654, 1899, 1899, 37, 37, -654, 9349, -654, 9349, -654,
1429
-654, 124, -654, 6810, 2615, 141, 477, -654, 111, 562,
1430
111, 681, 35, 597, -654, -654, -654, -654, -654, -654,
1431
-654, -654, 429, 2615, 124, -654, 575, -654, 577, 655,
1432
588, 665, -654, 5246, 5121, -654, 7325, 703, -654, 398,
1433
-654, 2345, 4230, 4333, 599, 344, 416, 703, 726, 734,
1434
7634, 626, 48, -654, -654, -654, -654, -654, -654, 60,
1435
85, 635, 259, 354, 6810, 657, -654, -654, 7634, 274,
1436
-654, 628, 7634, 274, -654, -654, 7634, 9265, 16, -654,
1437
636, -654, 634, 643, 6089, 8555, 8555, 645, -654, -654,
1438
6810, 9349, 656, -654, 9349, 296, 658, -654, 7634, -654,
1439
141, 477, 661, 340, 351, 3449, 671, -654, -654, -654,
1440
366, 366, -654, 7840, -654, -654, -654, 7428, -654, 7634,
1441
7634, 7737, 7634, -654, 501, 624, 7737, 7737, -654, -654,
1442
501, -654, -654, -654, -654, -654, -654, -654, 37, -654,
1443
124, 776, -654, -654, 663, 7634, -44, 781, -654, 429,
1444
-654, -654, 452, -654, -654, -12, -654, -654, -654, -654,
1445
544, -654, 708, -654, 3084, 792, -654, 6810, 797, -654,
1446
7634, 432, 7634, 7634, 798, -654, -654, -654, 7531, 2859,
1447
3571, 3571, 367, 18, 498, 6192, -654, 498, 498, 6295,
1448
685, -654, 6398, -654, -654, 104, 9, 111, 111, -654,
1449
101, -654, -654, 9213, 631, 690, -654, -654, -654, -654,
1450
-654, -654, 709, 3571, 7634, 692, 9349, 9349, -654, 9349,
1451
9349, -654, 7737, -654, 9349, -654, 9349, -654, 3571, 3449,
1452
-654, 2615, -654, -654, -654, -654, 691, -654, -654, 693,
1453
588, -654, 597, -654, 588, 419, 8434, 48, -654, -654,
1454
3571, -654, -654, 48, -654, 7634, -654, 7634, 165, 810,
1455
812, -654, -654, 7634, -654, -654, 7634, -654, 705, 710,
1456
-654, 7634, 712, -654, -654, -654, -654, 825, -654, -654,
1457
9349, 830, 720, 3449, 832, -654, 452, -654, -654, -654,
1458
2615, 789, -654, 640, 595, 618, 2615, -654, 2737, -654,
1459
-654, -654, -654, -654, -654, 3571, 9286, 498, 6501, -654,
1460
6604, -654, 498, -654, -654, -654, -654, 724, -654, 588,
1461
838, 623, 9083, 6913, 9149, 596, 398, 839, -654, -654,
1462
7634, 727, 7634, -654, -654, -654, -654, 41, 477, 732,
1463
76, 93, -654, -654, -654, 498, 6707, -654, 498, 631,
1464
-654, 7634, -654, 498, -654
1467
/* YYPGOTO[NTERM-NUM]. */
1468
static const yytype_int16 yypgoto[] =
1470
-654, -654, -654, -360, 431, -654, 59, -654, -654, 958,
1471
44, 23, -654, -569, -654, -654, 1, -6, -183, 22,
1472
779, -654, -25, 927, -70, 853, 7, -654, 21, -654,
1473
-654, -5, -654, -16, -654, 1378, -338, -7, -479, 82,
1474
-654, 2, -654, -654, -654, -654, -9, 158, 110, -278,
1475
26, -654, -654, -654, -654, -654, -654, -654, -654, -654,
1476
-654, -654, -654, -654, -654, -654, -654, 185, -209, -372,
1477
0, -520, 208, -458, -654, -654, -654, -228, -654, 785,
1478
-654, -654, -654, -654, -356, -654, -654, 3, -654, -654,
1479
-654, -654, -654, -654, 784, -654, -654, -654, -654, -654,
1480
-654, -654, -654, 458, -217, -654, -654, -654, 12, -654,
1481
14, -654, 627, 860, 1246, 1107, -654, -654, 84, 309,
1482
183, -654, -653, 184, -654, -608, -654, -321, -504, -654,
1483
-654, -654, -4, -382, 755, -226, -654, -654, -24, 20,
1487
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
1488
positive, shift that token. If negative, reduce the rule which
1489
number is the opposite. If zero, do what YYDEFACT says.
1490
If YYTABLE_NINF, syntax error. */
1491
#define YYTABLE_NINF -502
1492
static const yytype_int16 yytable[] =
1494
235, 235, 188, 188, 235, 523, 390, 238, 238, 225,
1495
551, 238, 240, 240, 187, 248, 240, 234, 234, 419,
1496
204, 234, 205, 188, 249, 598, 277, 614, 257, 259,
1497
549, 111, 111, 235, 235, 588, 360, 490, 299, 783,
1498
204, 111, 205, 297, 298, 594, 274, 188, 584, 252,
1499
267, 572, 672, 674, -87, 215, 218, 705, 347, 284,
1500
614, 380, 601, 96, 693, 220, 696, 714, 347, 264,
1501
458, 306, 307, 3, 464, 676, 677, 111, 432, 363,
1502
559, 780, 296, 452, 784, -87, 253, 353, 466, -86,
1503
625, -84, 345, -432, 248, 761, 354, 111, 560, 242,
1504
405, 767, 243, 392, 260, 393, -88, 316, 353, 652,
1505
-89, 290, 642, -84, -432, 220, 521, 256, 528, 531,
1506
532, 352, 356, 595, 453, 454, 239, 239, 292, 484,
1507
239, 467, 308, 626, -84, 346, -76, 306, 307, 253,
1508
358, -91, 729, 550, 359, 653, -87, 351, 216, 217,
1509
294, 295, 348, 381, 647, -478, 339, 340, 341, 521,
1510
272, 528, 348, 366, -83, 253, -479, -485, -87, -481,
1511
247, -87, -87, 783, -84, 550, -426, 310, 216, 217,
1512
704, -86, 393, 311, 681, 364, -79, 76, -481, 76,
1513
112, 112, -76, -89, 391, 211, 211, 211, -88, 315,
1514
227, 211, 211, 687, 550, 211, -86, -86, 216, 217,
1515
-420, -81, 211, -482, 53, 235, 235, 297, 859, -426,
1516
770, -423, -485, -88, -88, 550, 813, 244, 235, -425,
1517
235, 235, 76, 211, 211, 238, 278, 238, 238, 247,
1518
240, 572, 240, 240, 211, 234, 648, 234, 416, -478,
1519
436, -420, -327, -420, 216, 217, 278, -478, 672, 674,
1520
-479, -485, -423, -485, -423, -485, 396, 397, -479, -481,
1521
-91, 220, -425, 376, 421, 827, 828, -90, 840, 379,
1522
829, 422, 423, 264, -86, 306, 307, 437, 485, 452,
1523
211, 384, 76, -327, 235, -327, 388, 547, 701, 488,
1524
491, 492, 493, 494, 495, 496, 497, 498, 499, 500,
1525
501, 502, 503, 504, 505, 506, 507, 508, 509, 510,
1526
511, 512, 513, 514, 515, 516, 412, 235, 414, 417,
1527
453, 454, 455, 480, 264, 536, 538, 520, 487, 111,
1528
395, 389, 398, 614, 267, 471, 472, 473, 474, 402,
1529
614, 801, 235, -91, 239, 875, 239, 418, 405, 470,
1530
-90, -91, 520, -427, 475, -78, 431, -86, 581, 267,
1531
235, -83, 536, 538, 535, 537, -80, 235, -82, -88,
1532
520, 361, 362, 719, 235, -78, -90, 267, 406, 235,
1533
235, 76, -85, 235, 520, 409, 736, 617, 410, 737,
1534
738, 267, 611, 425, 621, 427, -427, 211, 211, 622,
1535
631, 824, 707, 704, -428, 634, 542, -430, -429, 188,
1536
482, -65, -73, 235, 520, 482, 235, 712, 235, 211,
1537
316, 211, 211, 61, 235, 433, 204, 623, 205, 627,
1538
434, 76, 841, -78, 520, 629, 76, -86, -78, 597,
1539
597, 267, 650, 651, -80, 636, 637, -428, 316, -80,
1540
-430, -429, -88, 235, 572, -78, -78, -64, 614, 553,
1541
860, 554, 555, 556, 557, -85, -80, -80, 262, 553,
1542
-80, 554, 555, 556, 557, 76, 211, 211, 211, 211,
1543
76, 211, 211, -77, 438, 211, 446, 76, 278, 713,
1544
211, 316, 782, 591, 614, 337, 338, 339, 340, 341,
1545
558, 559, 288, 289, 663, 795, 329, 330, 439, -88,
1546
558, 559, 440, 664, 448, 879, 461, 442, 211, 560,
1547
670, 440, 561, 673, 675, -85, 211, 211, 262, 560,
1548
452, 663, 561, 558, 559, 465, -420, 562, 337, 338,
1549
339, 340, 341, 211, -423, 76, 211, 468, -283, 431,
1550
235, 606, 560, 469, 486, 561, 342, 76, 188, 188,
1551
666, 211, 684, 452, 235, 76, 373, 76, 836, -90,
1552
698, 453, 454, 457, 838, 211, 204, 680, 205, -420,
1553
-86, 539, 235, 575, 679, 699, 235, -423, 211, -283,
1554
235, -283, -82, 580, 576, -482, 444, 343, 235, 344,
1555
440, 316, 76, -78, 453, 454, 459, 688, 393, 374,
1556
611, 593, 743, 452, 605, 735, 329, 330, 615, 90,
1557
367, 90, 113, 113, 113, 211, 624, 628, 550, 385,
1558
399, 235, 229, 756, 757, 759, 760, 225, 723, 633,
1559
764, 766, 429, -73, 635, 334, 335, 336, 337, 338,
1560
339, 340, 341, 649, 453, 454, 462, 449, 667, 235,
1561
-264, 368, 657, 369, 90, 658, -431, 665, 279, 111,
1562
386, 400, 387, 401, 758, 682, 482, 428, -88, 763,
1563
765, 683, 262, 386, 759, 430, 764, 766, 279, -276,
1564
685, 689, 235, 692, -284, 694, 776, 762, 450, 235,
1565
451, -80, -285, 235, 695, 697, 235, -431, 704, -431,
1566
807, 862, 711, 746, 747, 809, 748, -85, 211, 76,
1567
42, 43, 452, 772, 90, 460, 715, 443, 235, 445,
1568
-276, 447, -276, 262, 716, -284, 820, -284, 76, 232,
1569
-77, 793, 718, -285, 725, -285, 812, 94, 722, 94,
1570
732, 731, 863, 814, 864, 94, 94, 94, 734, 726,
1571
739, 94, 94, 453, 454, 94, 597, 741, 316, 820,
1572
733, 235, 94, 742, 744, 819, 773, 846, 774, 211,
1573
235, 777, 786, 329, 330, 235, 301, 302, 303, 304,
1574
305, 790, 94, 94, 94, 271, 275, 794, 796, 211,
1575
810, 815, 111, 579, 94, 211, 825, 816, -265, 826,
1576
843, 587, 844, 589, 336, 337, 338, 339, 340, 341,
1577
76, 848, 235, 90, 235, 854, 850, 853, 227, 808,
1578
855, 856, 858, 861, 871, 874, 211, 235, 876, 884,
1579
314, 211, 211, 886, 235, 889, 235, 520, 632, 116,
1580
94, 752, 94, 349, 267, 350, 883, 190, 882, 830,
1581
235, 686, 778, 779, 0, 235, 300, 0, 0, 0,
1582
0, 0, 802, 90, 0, 804, 805, 0, 90, 76,
1583
0, 0, 211, 0, 0, 0, 0, 0, 0, 0,
1584
0, 0, 0, 0, 76, 76, 76, 0, 0, 0,
1585
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1586
0, 0, 0, 0, 0, 0, 0, 90, 0, 73,
1587
0, 73, 90, 0, 0, 0, 0, 0, 76, 90,
1588
279, 0, 226, 0, 0, 0, 0, 211, 0, 0,
1589
0, 0, 0, 76, 76, 0, 76, 0, 0, 0,
1590
0, 94, 0, 0, 0, 0, 849, 851, 208, 208,
1591
208, 833, 0, 0, 73, 76, 0, 94, 94, 0,
1592
0, 0, 0, 0, 0, 250, 0, 0, 0, 0,
1593
0, 0, 0, 0, 0, 408, 408, 90, 0, 94,
1594
0, 94, 94, 420, 868, 869, 265, 0, 76, 90,
1595
873, 94, 0, 0, 0, 76, 94, 90, 0, 90,
1596
0, 76, 0, 76, 0, 0, 0, 0, 0, 887,
1597
76, 0, 0, 0, 73, 0, 0, 0, 0, 0,
1598
0, 0, 0, 890, 0, 0, 892, 0, 211, 0,
1599
0, 894, 0, 0, 90, 94, 94, 94, 94, 94,
1600
94, 94, 94, 357, 0, 94, 0, 94, 0, 0,
1601
94, 0, 0, 0, 0, 0, 745, 0, 0, 0,
1602
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1603
0, 0, 0, 0, 0, 0, 0, 0, 94, 271,
1604
0, 0, 0, 0, 0, 0, 94, 94, 0, 93,
1605
0, 93, 114, 114, 0, 0, 0, 0, 0, 0,
1606
0, 0, 230, 94, 271, 94, 94, 0, 0, 0,
1607
0, 0, 0, 73, 578, 789, 0, 94, 0, 0,
1608
0, 94, 271, 0, 0, 94, 0, 94, 0, 0,
1609
798, 799, 800, 0, 93, 94, 271, 0, 280, 408,
1610
0, 0, 0, 0, 0, 0, 0, 0, 94, 0,
1611
0, 90, 0, 0, 408, 0, 0, 0, 280, 0,
1612
208, 208, 94, 73, 817, 0, 0, 0, 73, 0,
1613
90, 0, 0, 0, 0, 0, 0, 0, 0, 821,
1614
822, 0, 0, 0, 0, 94, 271, 0, 0, 0,
1615
0, 0, 0, 0, 93, 0, 0, 0, 0, 0,
1616
0, 837, 0, 0, 0, 0, 0, 73, 0, 0,
1617
0, 0, 73, 0, 655, 0, 0, 0, 0, 73,
1618
0, 0, 0, 0, 0, 0, 0, 0, 92, 0,
1619
92, 0, 0, 0, 857, 0, 0, 0, 0, 208,
1620
208, 208, 208, 0, 476, 477, 0, 865, 0, 866,
1621
0, 0, 90, 0, 0, 0, 867, 0, 0, 0,
1622
229, 0, 0, 0, 671, 0, 0, 671, 671, 655,
1623
655, 0, 0, 92, 0, 0, 0, 73, 94, 94,
1624
0, 0, 0, 0, 0, 0, 671, 0, 0, 73,
1625
0, 0, 0, 93, 0, 0, 0, 73, 94, 73,
1626
0, 0, 691, 0, 691, 0, 691, 0, 0, 552,
1627
0, 90, 703, 706, 0, 706, 0, 0, 0, 0,
1628
0, 0, 0, 706, 0, 0, 90, 90, 90, 0,
1629
0, 0, 0, 92, 73, 0, 0, 0, 0, 94,
1630
0, 0, 0, 93, 0, 0, 0, 408, 93, 0,
1631
0, 265, 0, 0, 0, 0, 0, 0, 408, 94,
1632
90, 0, 0, 0, 0, 94, 0, 0, 0, 0,
1633
0, 0, 0, 0, 0, 90, 90, 0, 90, 0,
1634
94, 0, 0, 0, 0, 0, 0, 93, 0, 0,
1635
0, 0, 93, 834, 0, 0, 94, 90, 0, 93,
1636
280, 94, 94, 0, 0, 0, 0, 0, 0, 0,
1637
0, 0, 0, 0, 655, 0, 0, 0, 0, 0,
1638
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1639
90, 0, 92, 0, 0, 0, 0, 90, 788, 94,
1640
0, 792, 94, 90, 0, 90, 0, 0, 0, 0,
1641
0, 73, 90, 0, 94, 94, 94, 93, 0, 0,
1642
408, 0, 0, 408, 408, 0, 0, 0, 0, 93,
1643
73, 0, 0, 671, 671, 0, 0, 93, 0, 93,
1644
0, 208, 92, 0, 0, 0, 0, 92, 94, 0,
1645
0, 0, 0, 0, 0, 0, 0, 94, 0, 0,
1646
0, 0, 0, 94, 94, 0, 94, 0, 0, 0,
1647
0, 0, 0, 0, 93, 691, 691, 0, 0, 0,
1648
691, 0, 0, 0, 0, 94, 92, 0, 0, 0,
1649
0, 92, 0, 0, 706, 0, 0, 0, 92, 0,
1650
0, 0, 208, 0, 408, 408, 0, 0, 0, 0,
1651
0, 0, 73, 0, 0, 0, 0, 0, 94, 0,
1652
226, 0, 0, 0, 0, 94, 0, 0, 740, 0,
1653
0, 94, 0, 94, 0, 0, 0, 0, 0, 0,
1654
94, 0, 408, 408, 0, 0, 0, 0, 408, 403,
1655
404, 0, 0, 0, 0, 691, 92, 0, 94, 271,
1656
0, 578, 706, 0, 0, 0, 0, 408, 92, 0,
1657
0, 73, 0, 0, 0, 0, 92, 0, 92, 0,
1658
0, 408, 0, 0, 408, 0, 73, 73, 73, 408,
1659
0, 93, 0, 0, 0, 0, 0, 0, 0, 0,
1660
0, 0, 517, 518, 0, 208, 519, 0, 0, 0,
1661
93, 0, 0, 92, 160, 161, 162, 163, 164, 165,
1662
73, 166, 167, 0, 0, 168, 0, 0, 481, 169,
1663
170, 171, 172, 489, 0, 73, 73, 0, 73, 0,
1664
0, 0, 0, 173, 0, 0, 0, 0, 0, 0,
1665
0, 0, 0, 832, 0, 0, 0, 73, 174, 175,
1666
176, 177, 178, 179, 180, 181, 182, 183, 0, 0,
1667
184, 316, 317, 318, 319, 320, 321, 322, 323, 185,
1668
325, 326, 0, 0, 0, 0, 329, 330, 0, 0,
1669
73, 0, 93, 750, 0, 0, 0, 73, 0, 0,
1670
230, 0, 0, 73, 0, 73, 0, 0, 0, 0,
1671
0, 489, 73, 332, 333, 334, 335, 336, 337, 338,
1672
339, 340, 341, 607, 609, 0, 0, 613, 0, 0,
1673
92, 618, 0, 0, 0, 0, 0, 0, 0, 0,
1674
0, 0, 0, 0, 0, 0, 0, 0, 0, 92,
1675
0, 93, 0, 0, 0, 0, 0, 639, 659, 0,
1676
613, 0, 639, 0, 0, 0, 93, 93, 93, 0,
1677
0, 0, 0, 0, 0, 0, 0, 0, 0, 316,
1678
317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
1679
327, 328, 0, 0, 329, 330, 0, 656, 0, 0,
1680
93, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1681
0, 0, 0, 0, 0, 93, 93, 0, 93, 331,
1682
0, 332, 333, 334, 335, 336, 337, 338, 339, 340,
1683
341, 92, 0, 835, 0, 0, 0, 93, 0, -501,
1684
0, -220, 0, 0, 0, 0, 0, -501, -501, -501,
1685
0, 0, -501, -501, -501, 0, -501, 0, 0, 0,
1686
0, 0, 0, 0, 0, 0, -501, 0, 0, 0,
1687
93, 0, 0, 0, 0, -501, -501, 93, -501, -501,
1688
-501, -501, -501, 93, 0, 93, 0, 0, 0, 0,
1689
92, 0, 93, 0, 700, 0, 0, 0, 0, 0,
1690
0, 0, 0, 0, 0, 92, 92, 92, 717, 0,
1691
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1692
-501, 0, 0, 0, 0, 0, 724, 0, 0, 0,
1693
727, 0, 0, 0, 728, 0, 0, 0, 0, 92,
1694
0, 0, 609, 0, -501, 0, 0, 0, 0, 0,
1695
0, 0, 0, 0, 92, 92, 0, 92, 0, 0,
1696
-501, 0, 0, -501, -501, 0, 0, 247, 0, -501,
1697
-501, 0, 0, 0, 0, 755, 92, 0, 0, 0,
1698
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1699
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1700
0, 0, 0, 775, 0, 0, 0, 0, 0, 92,
1701
0, 0, 0, 0, 0, 0, 92, 0, 0, 0,
1702
0, 0, 92, 0, 92, 0, 0, 0, 0, 0,
1703
0, 92, 0, 0, 0, 0, 639, 0, 0, 0,
1704
0, 0, 0, 613, 0, 0, 0, 0, 0, 0,
1705
613, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1706
-478, -478, -478, 0, -478, 0, 0, 0, -478, -478,
1707
0, 0, 818, -478, 0, -478, -478, -478, -478, -478,
1708
-478, -478, 0, -478, 0, 0, -478, -478, -478, -478,
1709
-478, -478, -478, 0, 0, 0, 0, 0, 0, 0,
1710
0, 0, -478, 0, 0, -478, -478, -478, -478, -478,
1711
-478, -478, -478, -478, -478, 839, -478, -478, 0, -478,
1712
-478, 0, 0, 0, 847, 0, 0, 0, 0, 852,
1713
0, 0, 0, 0, 0, 0, 0, 0, 0, -478,
1714
0, 0, -478, -478, 0, -478, -478, 0, -478, -478,
1715
-478, -478, -478, -478, -478, -478, 0, 0, 0, 0,
1716
0, 0, 0, 0, 0, 0, 609, 0, 613, 0,
1717
0, 0, 0, -478, -478, -478, 0, -478, 0, 0,
1718
0, 0, 0, 0, 0, -478, 0, 0, 885, 0,
1719
888, 0, 0, 0, -501, 4, 0, 5, 6, 7,
1720
8, 9, 0, 0, 613, 10, 11, 0, 0, 893,
1721
12, 0, 13, 14, 15, 16, 17, 18, 19, 0,
1722
0, 0, 0, 20, 21, 22, 23, 24, 25, 26,
1723
0, 0, 27, 0, 0, 0, 0, 0, 28, 29,
1724
30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1725
40, 41, 0, 42, 43, 0, 44, 45, 0, 0,
1726
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1727
0, 0, 0, 0, 0, 0, 46, 0, 0, 47,
1728
48, 0, 49, 50, 0, 51, 0, 52, 53, 54,
1729
55, 56, 57, 0, 0, 0, 0, 0, 0, 0,
1730
0, 0, 0, 0, 0, -485, 0, 0, 0, 0,
1731
58, 59, 60, -485, -485, -485, 0, 0, 0, -485,
1732
-485, 0, -485, 0, -501, -501, 0, 0, 659, 0,
1733
0, -485, 0, 0, 0, 0, 0, 0, 0, 0,
1734
0, -485, -485, 0, -485, -485, -485, -485, -485, 316,
1735
317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
1736
327, 328, 0, 0, 329, 330, 0, 0, 0, -485,
1737
-485, -485, -485, -485, -485, -485, -485, -485, -485, -485,
1738
-485, -485, 0, 0, -485, -485, -485, 0, 661, 331,
1739
0, 332, 333, 334, 335, 336, 337, 338, 339, 340,
1740
341, 0, 0, 0, 0, 0, 0, 0, -87, -485,
1741
0, -485, -485, -485, -485, -485, -485, -485, -485, -485,
1742
-485, 0, 0, 0, -283, -485, -485, -485, 0, -485,
1743
-485, -79, -283, -283, -283, -485, -485, 0, -283, -283,
1744
0, -283, 0, 0, 0, 0, 0, 0, 0, 0,
1745
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1746
-283, -283, 0, -283, -283, -283, -283, -283, 316, 317,
1747
318, 319, 320, 321, 322, 323, 324, 325, 326, 327,
1748
328, 0, 0, 329, 330, 0, 0, 0, -283, -283,
1749
-283, -283, -283, -283, -283, -283, -283, -283, -283, -283,
1750
-283, 0, 0, -283, -283, -283, 0, 662, 331, 660,
1751
332, 333, 334, 335, 336, 337, 338, 339, 340, 341,
1752
0, 0, 0, 0, 0, 0, 0, -89, -283, 0,
1753
-283, -283, -283, -283, -283, -283, -283, -283, -283, -283,
1754
0, 0, 0, 0, 0, -283, -283, 0, -283, -283,
1755
-81, 0, 0, 0, -283, -283, 4, 0, 5, 6,
1756
7, 8, 9, -501, -501, -501, 10, 11, 0, 0,
1757
-501, 12, 0, 13, 14, 15, 16, 17, 18, 19,
1758
0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
1759
26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
1760
29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1761
39, 40, 41, 0, 42, 43, 0, 44, 45, 0,
1762
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1763
0, 0, 0, 0, 0, 0, 0, 46, 0, 0,
1764
47, 48, 0, 49, 50, 0, 51, 0, 52, 53,
1765
54, 55, 56, 57, 0, 0, 0, 0, 0, 0,
1766
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1767
0, 58, 59, 60, 0, 0, 0, 0, 4, 0,
1768
5, 6, 7, 8, 9, -501, -501, -501, 10, 11,
1769
0, -501, -501, 12, 0, 13, 14, 15, 16, 17,
1770
18, 19, 0, 0, 0, 0, 20, 21, 22, 23,
1771
24, 25, 26, 0, 0, 27, 0, 0, 0, 0,
1772
0, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1773
37, 38, 39, 40, 41, 0, 42, 43, 0, 44,
1774
45, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1775
0, 0, 0, 0, 0, 0, 0, 0, 0, 46,
1776
0, 0, 47, 48, 0, 49, 50, 0, 51, 0,
1777
52, 53, 54, 55, 56, 57, 0, 0, 0, 0,
1778
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1779
0, 0, 0, 58, 59, 60, 0, 0, 0, 0,
1780
4, 0, 5, 6, 7, 8, 9, -501, -501, -501,
1781
10, 11, 0, 0, -501, 12, -501, 13, 14, 15,
1782
16, 17, 18, 19, 0, 0, 0, 0, 20, 21,
1783
22, 23, 24, 25, 26, 0, 0, 27, 0, 0,
1784
0, 0, 0, 28, 29, 30, 31, 32, 33, 34,
1785
35, 36, 37, 38, 39, 40, 41, 0, 42, 43,
1786
0, 44, 45, 0, 0, 0, 0, 0, 0, 0,
1787
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1788
0, 46, 0, 0, 47, 48, 0, 49, 50, 0,
1789
51, 0, 52, 53, 54, 55, 56, 57, 0, 0,
1790
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1791
0, 0, 0, 0, 0, 58, 59, 60, 0, 0,
1792
0, 0, 4, 0, 5, 6, 7, 8, 9, -501,
1793
-501, -501, 10, 11, 0, 0, -501, 12, 0, 13,
1794
14, 15, 16, 17, 18, 19, 0, 0, 0, 0,
1795
20, 21, 22, 23, 24, 25, 26, 0, 0, 27,
1796
0, 0, 0, 0, 0, 28, 29, 30, 31, 32,
1797
33, 34, 35, 36, 37, 38, 39, 40, 41, 0,
1798
42, 43, 0, 44, 45, 0, 0, 0, 0, 0,
1799
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1800
0, 0, 0, 46, 0, 0, 47, 48, 0, 49,
1801
50, 0, 51, 0, 52, 53, 54, 55, 56, 57,
1802
0, 0, 0, 0, 0, 4, 0, 5, 6, 7,
1803
8, 9, 0, -501, -501, 10, 11, 58, 59, 60,
1804
12, 0, 13, 14, 15, 16, 17, 18, 19, 0,
1805
0, -501, -501, 20, 21, 22, 23, 24, 25, 26,
1806
0, 0, 27, 0, 0, 0, 0, 0, 28, 29,
1807
30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1808
40, 41, 0, 42, 43, 0, 44, 45, 0, 0,
1809
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1810
0, 0, 0, 0, 0, 0, 46, 0, 0, 47,
1811
48, 0, 49, 50, 0, 51, 0, 52, 53, 54,
1812
55, 56, 57, 0, 0, 0, 0, 0, 4, 0,
1813
5, 6, 7, 8, 9, 0, 0, 0, 10, 11,
1814
58, 59, 60, 12, 0, 13, 14, 15, 16, 17,
1815
18, 19, 0, 0, -501, -501, 20, 21, 22, 23,
1816
24, 25, 26, 0, 0, 27, 0, 0, 0, 0,
1817
0, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1818
37, 38, 39, 40, 41, 0, 42, 43, 0, 44,
1819
45, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1820
0, 0, 0, 0, 0, 0, 0, 0, 0, 46,
1821
0, 0, 261, 48, 0, 49, 50, 0, 51, 0,
1822
52, 53, 54, 55, 56, 57, 0, 0, 0, 0,
1823
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1824
0, 0, 0, 58, 59, 60, 0, 0, 0, 0,
1825
0, 0, -501, 0, 0, 0, 0, -501, -501, 4,
1826
0, 5, 6, 7, 8, 9, 0, 0, 0, 10,
1827
11, 0, 0, 0, 12, 0, 13, 14, 15, 16,
1828
17, 18, 19, 0, 0, 0, 0, 20, 21, 22,
1829
23, 24, 25, 26, 0, 0, 27, 0, 0, 0,
1830
0, 0, 28, 29, 30, 31, 32, 33, 34, 35,
1831
36, 37, 38, 39, 40, 41, 0, 42, 43, 0,
1832
44, 45, 0, 0, 0, 0, 0, 0, 0, 0,
1833
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1834
46, 0, 0, 47, 48, 0, 49, 50, 0, 51,
1835
0, 52, 53, 54, 55, 56, 57, 0, 0, 0,
1836
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1837
0, 0, 0, 0, 58, 59, 60, 0, 0, 0,
1838
0, 0, 0, -501, 0, 0, 0, 0, -501, -501,
1839
4, 0, 5, 6, 7, 8, 9, 0, 0, 0,
1840
10, 11, 0, 0, 0, 12, 0, 13, 14, 15,
1841
16, 17, 18, 19, 0, 0, 0, 0, 20, 21,
1842
22, 23, 24, 25, 26, 0, 0, 27, 0, 0,
1843
0, 0, 0, 28, 29, 30, 31, 32, 33, 34,
1844
35, 36, 37, 38, 39, 40, 41, 0, 42, 43,
1845
0, 44, 45, 0, 0, 0, 0, 0, 0, 0,
1846
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1847
0, 46, 0, 0, 47, 48, 0, 49, 50, 0,
1848
51, 0, 52, 53, 54, 55, 56, 57, 0, 0,
1849
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1850
0, 0, 0, 0, 0, 58, 59, 60, 0, 0,
1851
-501, 0, 4, 0, 5, 6, 7, 8, 9, -501,
1852
-501, -501, 10, 11, 0, 0, 0, 12, 0, 13,
1853
14, 15, 16, 17, 18, 19, 0, 0, 0, 0,
1854
20, 21, 22, 23, 24, 25, 26, 0, 0, 27,
1855
0, 0, 0, 0, 0, 28, 29, 30, 31, 32,
1856
33, 34, 35, 36, 37, 38, 39, 40, 41, 0,
1857
42, 43, 0, 44, 45, 0, 0, 0, 0, 0,
1858
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1859
0, 0, 0, 46, 0, 0, 47, 48, 0, 49,
1860
50, 0, 51, 0, 52, 53, 54, 55, 56, 57,
1861
0, 0, 0, 0, 0, 0, 0, 5, 6, 7,
1862
8, 9, 0, 0, 0, 10, 11, 58, 59, 60,
1863
12, 0, 13, 14, 15, 16, 17, 18, 19, 0,
1864
0, -501, -501, 20, 21, 22, 23, 24, 25, 26,
1865
0, 0, 27, 0, 0, 0, 0, 0, 28, 29,
1866
30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1867
40, 41, 0, 42, 43, 0, 44, 45, 0, 0,
1868
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1869
0, 0, 0, 0, 0, 0, 46, 0, 0, 47,
1870
48, 0, 49, 50, 0, 51, 0, 52, 53, 54,
1871
55, 56, 57, 0, 0, 0, 0, 0, 0, 0,
1872
5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
1873
58, 59, 60, 12, 0, 13, 14, 15, 16, 17,
1874
18, 19, 0, 0, 0, 395, 20, 21, 22, 23,
1875
24, 25, 26, 0, 0, 27, 0, 0, 0, 0,
1876
0, 0, 29, 0, 0, 32, 33, 34, 35, 36,
1877
37, 38, 39, 40, 41, 0, 42, 43, 0, 44,
1878
45, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1879
0, 0, 0, 0, 0, 0, 0, 0, 0, 207,
1880
0, 0, 107, 48, 0, 49, 50, 0, 0, 0,
1881
52, 53, 54, 55, 56, 57, 0, 0, 0, 0,
1882
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1883
0, 0, 0, 58, 59, 60, 0, 0, 0, 0,
1884
0, 0, 0, 0, 0, 0, 0, 216, 217, 117,
1885
118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
1886
128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
1887
138, 139, 140, 0, 0, 141, 142, 143, 144, 145,
1888
146, 147, 148, 149, 150, 0, 0, 0, 0, 0,
1889
151, 152, 153, 154, 155, 156, 157, 158, 36, 37,
1890
159, 39, 0, 0, 0, 0, 0, 0, 160, 161,
1891
162, 163, 164, 165, 0, 166, 167, 0, 0, 168,
1892
0, 0, 0, 169, 170, 171, 172, 0, 0, 0,
1893
0, 0, 0, 0, 0, 0, 0, 173, 0, 0,
1894
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1895
0, 0, 174, 175, 176, 177, 178, 179, 180, 181,
1896
182, 183, 0, 0, 184, 0, 0, -480, -480, -480,
1897
0, -480, 0, 185, 186, -480, -480, 0, 0, 0,
1898
-480, 0, -480, -480, -480, -480, -480, -480, -480, 0,
1899
-480, 0, 0, -480, -480, -480, -480, -480, -480, -480,
1900
0, 0, 0, 0, 0, 0, 0, 0, 0, -480,
1901
0, 0, -480, -480, -480, -480, -480, -480, -480, -480,
1902
-480, -480, 0, -480, -480, 0, -480, -480, 0, 0,
1903
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1904
0, 0, 0, 0, 0, 0, -480, 0, 0, -480,
1905
-480, 0, -480, -480, 0, -480, -480, -480, -480, -480,
1906
-480, -480, -480, 0, 0, 0, 0, 0, 0, 0,
1907
-479, -479, -479, 0, -479, 0, 0, 0, -479, -479,
1908
-480, -480, -480, -479, -480, -479, -479, -479, -479, -479,
1909
-479, -479, -480, -479, 0, 0, -479, -479, -479, -479,
1910
-479, -479, -479, 0, 0, 0, 0, 0, 0, 0,
1911
0, 0, -479, 0, 0, -479, -479, -479, -479, -479,
1912
-479, -479, -479, -479, -479, 0, -479, -479, 0, -479,
1913
-479, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1914
0, 0, 0, 0, 0, 0, 0, 0, 0, -479,
1915
0, 0, -479, -479, 0, -479, -479, 0, -479, -479,
1916
-479, -479, -479, -479, -479, -479, 0, 0, 0, 0,
1917
0, 0, 0, -481, -481, -481, 0, -481, 0, 0,
1918
0, -481, -481, -479, -479, -479, -481, -479, -481, -481,
1919
-481, -481, -481, -481, -481, -479, 0, 0, 0, -481,
1920
-481, -481, -481, -481, -481, -481, 0, 0, 0, 0,
1921
0, 0, 0, 0, 0, -481, 0, 0, -481, -481,
1922
-481, -481, -481, -481, -481, -481, -481, -481, 0, -481,
1923
-481, 0, -481, -481, 0, 0, 0, 0, 0, 0,
1924
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1925
0, 0, -481, 710, 0, -481, -481, 0, -481, -481,
1926
0, -481, -481, -481, -481, -481, -481, -481, -481, 0,
1927
0, 0, 0, -87, 0, 0, -482, -482, -482, 0,
1928
-482, 0, 0, 0, -482, -482, -481, -481, -481, -482,
1929
0, -482, -482, -482, -482, -482, -482, -482, -481, 0,
1930
0, 0, -482, -482, -482, -482, -482, -482, -482, 0,
1931
0, 0, 0, 0, 0, 0, 0, 0, -482, 0,
1932
0, -482, -482, -482, -482, -482, -482, -482, -482, -482,
1933
-482, 0, -482, -482, 0, -482, -482, 0, 0, 0,
1934
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1935
0, 0, 0, 0, 0, -482, 662, 0, -482, -482,
1936
0, -482, -482, 0, -482, -482, -482, -482, -482, -482,
1937
-482, -482, 0, 0, 0, 0, -89, 0, 0, -254,
1938
-254, -254, 0, -254, 0, 0, 0, -254, -254, -482,
1939
-482, -482, -254, 0, -254, -254, -254, -254, -254, -254,
1940
-254, -482, 0, 0, 0, -254, -254, -254, -254, -254,
1941
-254, -254, 0, 0, 0, 0, 0, 0, 0, 0,
1942
0, -254, 0, 0, -254, -254, -254, -254, -254, -254,
1943
-254, -254, -254, -254, 0, -254, -254, 0, -254, -254,
1944
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1945
0, 0, 0, 0, 0, 0, 0, 0, -254, 0,
1946
0, -254, -254, 0, -254, -254, 0, -254, -254, -254,
1947
-254, -254, -254, -254, -254, 0, 0, 0, 0, 0,
1948
0, 0, -254, -254, -254, 0, -254, 0, 0, 0,
1949
-254, -254, -254, -254, -254, -254, 0, -254, -254, -254,
1950
-254, -254, -254, -254, 244, 0, 0, 0, -254, -254,
1951
-254, -254, -254, -254, -254, 0, 0, 0, 0, 0,
1952
0, 0, 0, 0, -254, 0, 0, -254, -254, -254,
1953
-254, -254, -254, -254, -254, -254, -254, 0, -254, -254,
1954
0, -254, -254, 0, 0, 0, 0, 0, 0, 0,
1955
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1956
0, -254, 0, 0, -254, -254, 0, -254, -254, 0,
1957
-254, -254, -254, -254, -254, -254, -254, -254, 0, 0,
1958
0, 0, 0, 0, 0, -483, -483, -483, 0, -483,
1959
0, 0, 0, -483, -483, -254, -254, -254, -483, 0,
1960
-483, -483, -483, -483, -483, -483, -483, 247, 0, 0,
1961
0, -483, -483, -483, -483, -483, -483, -483, 0, 0,
1962
0, 0, 0, 0, 0, 0, 0, -483, 0, 0,
1963
-483, -483, -483, -483, -483, -483, -483, -483, -483, -483,
1964
0, -483, -483, 0, -483, -483, 0, 0, 0, 0,
1965
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1966
0, 0, 0, 0, -483, 0, 0, -483, -483, 0,
1967
-483, -483, 0, -483, -483, -483, -483, -483, -483, -483,
1968
-483, 0, 0, 0, 0, 0, 0, 0, -484, -484,
1969
-484, 0, -484, 0, 0, 0, -484, -484, -483, -483,
1970
-483, -484, 0, -484, -484, -484, -484, -484, -484, -484,
1971
-483, 0, 0, 0, -484, -484, -484, -484, -484, -484,
1972
-484, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1973
-484, 0, 0, -484, -484, -484, -484, -484, -484, -484,
1974
-484, -484, -484, 0, -484, -484, 0, -484, -484, 0,
1975
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1976
0, 0, 0, 0, 0, 0, 0, -484, 0, 0,
1977
-484, -484, 0, -484, -484, 0, -484, -484, -484, -484,
1978
-484, -484, -484, -484, 0, 0, 0, 0, 0, 0,
1979
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1980
0, -484, -484, -484, 0, 0, 0, 0, 0, 0,
1981
0, 0, 0, -484, 117, 118, 119, 120, 121, 122,
1982
123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
1983
133, 134, 135, 136, 137, 138, 139, 140, 0, 0,
1984
141, 142, 143, 192, 193, 194, 195, 148, 149, 150,
1985
0, 0, 0, 0, 0, 151, 152, 153, 154, 196,
1986
197, 198, 158, 281, 282, 199, 283, 0, 0, 0,
1987
0, 0, 0, 160, 161, 162, 163, 164, 165, 0,
1988
166, 167, 0, 0, 168, 0, 0, 0, 169, 170,
1989
171, 172, 0, 0, 0, 0, 0, 0, 0, 0,
1990
0, 0, 173, 0, 0, 0, 0, 0, 0, 0,
1991
0, 0, 0, 0, 0, 0, 0, 174, 175, 176,
1992
177, 178, 179, 180, 181, 182, 183, 0, 0, 184,
1993
0, 0, 0, 0, 0, 0, 0, 0, 185, 117,
1994
118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
1995
128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
1996
138, 139, 140, 0, 0, 141, 142, 143, 192, 193,
1997
194, 195, 148, 149, 150, 0, 0, 0, 0, 0,
1998
151, 152, 153, 154, 196, 197, 198, 158, 251, 0,
1999
199, 0, 0, 0, 0, 0, 0, 0, 160, 161,
2000
162, 163, 164, 165, 0, 166, 167, 0, 0, 168,
2001
0, 0, 0, 169, 170, 171, 172, 0, 0, 0,
2002
0, 0, 0, 0, 0, 0, 0, 173, 0, 52,
2003
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2004
0, 0, 174, 175, 176, 177, 178, 179, 180, 181,
2005
182, 183, 0, 0, 184, 0, 0, 0, 0, 0,
2006
0, 0, 0, 185, 117, 118, 119, 120, 121, 122,
2007
123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2008
133, 134, 135, 136, 137, 138, 139, 140, 0, 0,
2009
141, 142, 143, 192, 193, 194, 195, 148, 149, 150,
2010
0, 0, 0, 0, 0, 151, 152, 153, 154, 196,
2011
197, 198, 158, 0, 0, 199, 0, 0, 0, 0,
2012
0, 0, 0, 160, 161, 162, 163, 164, 165, 0,
2013
166, 167, 0, 0, 168, 0, 0, 0, 169, 170,
2014
171, 172, 0, 0, 0, 0, 0, 0, 0, 0,
2015
0, 0, 173, 0, 52, 0, 0, 0, 0, 0,
2016
0, 0, 0, 0, 0, 0, 0, 174, 175, 176,
2017
177, 178, 179, 180, 181, 182, 183, 0, 0, 184,
2018
0, 0, 0, 0, 0, 0, 0, 0, 185, 117,
2019
118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
2020
128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2021
138, 139, 140, 0, 0, 141, 142, 143, 192, 193,
2022
194, 195, 148, 149, 150, 0, 0, 0, 0, 0,
2023
151, 152, 153, 154, 196, 197, 198, 158, 0, 0,
2024
199, 0, 0, 0, 0, 0, 0, 0, 160, 161,
2025
162, 163, 164, 165, 0, 166, 167, 0, 0, 168,
2026
0, 0, 0, 169, 170, 171, 172, 0, 0, 0,
2027
0, 0, 0, 0, 0, 0, 0, 173, 0, 0,
2028
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2029
0, 0, 174, 175, 176, 177, 178, 179, 180, 181,
2030
182, 183, 0, 0, 184, 0, 5, 6, 7, 0,
2031
9, 0, 0, 185, 10, 11, 0, 0, 0, 12,
2032
0, 13, 14, 15, 97, 98, 18, 19, 0, 0,
2033
0, 0, 99, 21, 22, 23, 24, 25, 26, 0,
2034
0, 0, 0, 0, 0, 0, 0, 0, 29, 0,
2035
0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2036
41, 0, 42, 43, 0, 44, 45, 0, 0, 0,
2037
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2038
0, 0, 0, 0, 0, 207, 0, 0, 107, 48,
2039
0, 49, 50, 0, 231, 232, 52, 53, 54, 55,
2040
56, 57, 0, 0, 0, 0, 0, 0, 0, 0,
2041
0, 0, 0, 0, 5, 6, 7, 8, 9, 58,
2042
233, 60, 10, 11, 0, 0, 0, 12, 411, 13,
2043
14, 15, 16, 17, 18, 19, 0, 0, 0, 0,
2044
20, 21, 22, 23, 24, 25, 26, 0, 0, 27,
2045
0, 0, 0, 0, 0, 28, 29, 30, 31, 32,
2046
33, 34, 35, 36, 37, 38, 39, 40, 41, 0,
2047
42, 43, 0, 44, 45, 0, 0, 0, 0, 0,
2048
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2049
0, 0, 0, 46, 0, 0, 47, 48, 0, 49,
2050
50, 0, 51, 0, 52, 53, 54, 55, 56, 57,
2051
0, 0, 0, 0, 0, 0, 0, 5, 6, 7,
2052
0, 9, 0, 0, 0, 10, 11, 58, 59, 60,
2053
12, 0, 13, 14, 15, 16, 17, 18, 19, 0,
2054
0, 0, 0, 20, 21, 22, 23, 24, 25, 26,
2055
0, 0, 27, 0, 0, 0, 0, 0, 0, 29,
2056
0, 0, 32, 33, 34, 35, 36, 37, 38, 39,
2057
40, 41, 0, 42, 43, 0, 44, 45, 0, 0,
2058
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2059
0, 0, 0, 0, 0, 0, 207, 0, 0, 107,
2060
48, 0, 49, 50, 0, 616, 232, 52, 53, 54,
2061
55, 56, 57, 0, 0, 0, 0, 0, 0, 0,
2062
5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
2063
58, 59, 60, 12, 0, 13, 14, 15, 97, 98,
2064
18, 19, 0, 0, 0, 0, 99, 21, 22, 23,
2065
24, 25, 26, 0, 0, 0, 0, 0, 0, 0,
2066
0, 0, 29, 0, 0, 32, 33, 34, 35, 36,
2067
37, 38, 39, 40, 41, 0, 42, 43, 0, 44,
2068
45, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2069
0, 0, 0, 0, 0, 0, 0, 0, 0, 207,
2070
0, 0, 107, 48, 0, 49, 50, 0, 231, 232,
2071
52, 53, 54, 55, 56, 57, 0, 0, 0, 0,
2072
0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
2073
0, 10, 11, 58, 233, 60, 12, 0, 13, 14,
2074
15, 97, 98, 18, 19, 0, 0, 0, 0, 99,
2075
21, 22, 23, 24, 25, 26, 0, 0, 0, 0,
2076
0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
2077
34, 35, 36, 37, 38, 39, 40, 41, 0, 42,
2078
43, 0, 44, 45, 0, 0, 0, 0, 0, 0,
2079
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2080
0, 0, 207, 0, 0, 107, 413, 0, 49, 50,
2081
0, 231, 232, 52, 53, 54, 55, 56, 57, 0,
2082
0, 0, 0, 0, 0, 0, 5, 6, 7, 0,
2083
9, 0, 0, 0, 10, 11, 58, 233, 60, 12,
2084
0, 13, 14, 15, 97, 98, 18, 19, 0, 0,
2085
0, 0, 99, 100, 101, 23, 24, 25, 26, 0,
2086
0, 0, 0, 0, 0, 0, 0, 0, 29, 0,
2087
0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2088
41, 0, 42, 43, 0, 44, 45, 0, 0, 0,
2089
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2090
0, 0, 0, 0, 0, 207, 0, 0, 107, 48,
2091
0, 49, 50, 0, 608, 232, 52, 53, 54, 55,
2092
56, 57, 0, 0, 0, 0, 0, 0, 0, 5,
2093
6, 7, 0, 9, 0, 0, 0, 10, 11, 58,
2094
233, 60, 12, 0, 13, 14, 15, 97, 98, 18,
2095
19, 0, 0, 0, 0, 99, 100, 101, 23, 24,
2096
25, 26, 0, 0, 0, 0, 0, 0, 0, 0,
2097
0, 29, 0, 0, 32, 33, 34, 35, 36, 37,
2098
38, 39, 40, 41, 0, 42, 43, 0, 44, 45,
2099
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2100
0, 0, 0, 0, 0, 0, 0, 0, 207, 0,
2101
0, 107, 48, 0, 49, 50, 0, 612, 232, 52,
2102
53, 54, 55, 56, 57, 0, 0, 0, 0, 0,
2103
0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
2104
10, 11, 58, 233, 60, 12, 0, 13, 14, 15,
2105
97, 98, 18, 19, 0, 0, 0, 0, 99, 21,
2106
22, 23, 24, 25, 26, 0, 0, 0, 0, 0,
2107
0, 0, 0, 0, 29, 0, 0, 32, 33, 34,
2108
35, 36, 37, 38, 39, 40, 41, 0, 42, 43,
2109
0, 44, 45, 0, 0, 0, 0, 0, 0, 0,
2110
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2111
0, 207, 0, 0, 107, 48, 0, 49, 50, 0,
2112
608, 232, 52, 53, 54, 55, 56, 57, 0, 0,
2113
0, 0, 0, 0, 0, 5, 6, 7, 0, 9,
2114
0, 0, 0, 10, 11, 58, 233, 60, 12, 0,
2115
13, 14, 15, 97, 98, 18, 19, 0, 0, 0,
2116
0, 99, 100, 101, 23, 24, 25, 26, 0, 0,
2117
0, 0, 0, 0, 0, 0, 0, 29, 0, 0,
2118
32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
2119
0, 42, 43, 0, 44, 45, 0, 0, 0, 0,
2120
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2121
0, 0, 0, 0, 207, 0, 0, 107, 48, 0,
2122
49, 50, 0, 803, 232, 52, 53, 54, 55, 56,
2123
57, 0, 0, 0, 0, 0, 0, 0, 5, 6,
2124
7, 0, 9, 0, 0, 0, 10, 11, 58, 233,
2125
60, 12, 0, 13, 14, 15, 97, 98, 18, 19,
2126
0, 0, 0, 0, 99, 100, 101, 23, 24, 25,
2127
26, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2128
29, 0, 0, 32, 33, 34, 35, 36, 37, 38,
2129
39, 40, 41, 0, 42, 43, 0, 44, 45, 0,
2130
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2131
0, 0, 0, 0, 0, 0, 0, 207, 0, 0,
2132
107, 48, 0, 49, 50, 0, 806, 232, 52, 53,
2133
54, 55, 56, 57, 0, 0, 0, 0, 0, 0,
2134
0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
2135
11, 58, 233, 60, 12, 0, 13, 14, 15, 97,
2136
98, 18, 19, 0, 0, 0, 0, 99, 100, 101,
2137
23, 24, 25, 26, 0, 0, 0, 0, 0, 0,
2138
0, 0, 0, 29, 0, 0, 32, 33, 34, 35,
2139
36, 37, 38, 39, 40, 41, 0, 42, 43, 0,
2140
44, 45, 0, 0, 0, 0, 0, 0, 0, 0,
2141
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2142
207, 0, 0, 107, 48, 0, 49, 50, 0, 811,
2143
232, 52, 53, 54, 55, 56, 57, 0, 0, 0,
2144
0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
2145
0, 0, 10, 11, 58, 233, 60, 12, 0, 13,
2146
14, 15, 97, 98, 18, 19, 0, 0, 0, 0,
2147
99, 100, 101, 23, 24, 25, 26, 0, 0, 0,
2148
0, 0, 0, 0, 0, 0, 29, 0, 0, 32,
2149
33, 34, 35, 36, 37, 38, 39, 40, 41, 0,
2150
42, 43, 0, 44, 45, 0, 0, 0, 0, 0,
2151
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2152
0, 0, 0, 207, 0, 0, 107, 48, 0, 49,
2153
50, 0, 870, 232, 52, 53, 54, 55, 56, 57,
2154
0, 0, 0, 0, 0, 0, 0, 5, 6, 7,
2155
0, 9, 0, 0, 0, 10, 11, 58, 233, 60,
2156
12, 0, 13, 14, 15, 97, 98, 18, 19, 0,
2157
0, 0, 0, 99, 100, 101, 23, 24, 25, 26,
2158
0, 0, 0, 0, 0, 0, 0, 0, 0, 29,
2159
0, 0, 32, 33, 34, 35, 36, 37, 38, 39,
2160
40, 41, 0, 42, 43, 0, 44, 45, 0, 0,
2161
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2162
0, 0, 0, 0, 0, 0, 207, 0, 0, 107,
2163
48, 0, 49, 50, 0, 872, 232, 52, 53, 54,
2164
55, 56, 57, 0, 0, 0, 0, 0, 0, 0,
2165
5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
2166
58, 233, 60, 12, 0, 13, 14, 15, 97, 98,
2167
18, 19, 0, 0, 0, 0, 99, 100, 101, 23,
2168
24, 25, 26, 0, 0, 0, 0, 0, 0, 0,
2169
0, 0, 29, 0, 0, 32, 33, 34, 35, 36,
2170
37, 38, 39, 40, 41, 0, 42, 43, 0, 44,
2171
45, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2172
0, 0, 0, 0, 0, 0, 0, 0, 0, 207,
2173
0, 0, 107, 48, 0, 49, 50, 0, 891, 232,
2174
52, 53, 54, 55, 56, 57, 0, 0, 0, 0,
2175
0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
2176
0, 10, 11, 58, 233, 60, 12, 0, 13, 14,
2177
15, 16, 17, 18, 19, 0, 0, 0, 0, 20,
2178
21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
2179
0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
2180
34, 35, 36, 37, 38, 39, 40, 41, 0, 42,
2181
43, 0, 44, 45, 0, 0, 0, 0, 0, 0,
2182
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2183
0, 0, 207, 0, 0, 107, 48, 0, 49, 50,
2184
0, 0, 0, 52, 53, 54, 55, 56, 57, 0,
2185
0, 0, 0, 0, 0, 0, 5, 6, 7, 0,
2186
9, 0, 0, 0, 10, 11, 58, 59, 60, 12,
2187
0, 13, 14, 15, 97, 98, 18, 19, 0, 0,
2188
0, 0, 99, 21, 22, 23, 24, 25, 26, 0,
2189
0, 0, 0, 0, 0, 0, 0, 0, 29, 0,
2190
0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2191
41, 0, 42, 43, 0, 44, 45, 0, 0, 0,
2192
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2193
0, 0, 0, 0, 0, 207, 0, 0, 107, 48,
2194
0, 49, 50, 0, 266, 0, 52, 53, 54, 55,
2195
56, 57, 0, 0, 0, 0, 0, 0, 0, 5,
2196
6, 7, 0, 9, 0, 0, 0, 10, 11, 58,
2197
233, 60, 12, 0, 13, 14, 15, 16, 17, 18,
2198
19, 0, 0, 0, 0, 20, 21, 22, 23, 24,
2199
25, 26, 0, 0, 0, 0, 0, 0, 0, 0,
2200
0, 29, 0, 0, 32, 33, 34, 35, 36, 37,
2201
38, 39, 40, 41, 0, 42, 43, 0, 44, 45,
2202
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2203
0, 0, 0, 0, 0, 0, 0, 0, 207, 0,
2204
0, 107, 48, 0, 49, 50, 0, 479, 0, 52,
2205
53, 54, 55, 56, 57, 0, 0, 0, 0, 0,
2206
0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
2207
10, 11, 58, 233, 60, 12, 0, 13, 14, 15,
2208
97, 98, 18, 19, 0, 0, 0, 0, 99, 100,
2209
101, 23, 24, 25, 26, 0, 0, 0, 0, 0,
2210
0, 0, 0, 0, 29, 0, 0, 32, 33, 34,
2211
35, 36, 37, 38, 39, 40, 41, 0, 42, 43,
2212
0, 44, 45, 0, 0, 0, 0, 0, 0, 0,
2213
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2214
0, 207, 0, 0, 107, 48, 0, 49, 50, 0,
2215
590, 0, 52, 53, 54, 55, 56, 57, 0, 0,
2216
0, 0, 0, 0, 0, 5, 6, 7, 0, 9,
2217
0, 0, 0, 10, 11, 58, 233, 60, 12, 0,
2218
13, 14, 15, 97, 98, 18, 19, 0, 0, 0,
2219
0, 99, 100, 101, 23, 24, 25, 26, 0, 0,
2220
0, 0, 0, 0, 0, 0, 0, 29, 0, 0,
2221
32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
2222
0, 42, 43, 0, 44, 45, 0, 0, 0, 0,
2223
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2224
0, 0, 0, 0, 207, 0, 0, 107, 48, 0,
2225
49, 50, 0, 638, 0, 52, 53, 54, 55, 56,
2226
57, 0, 0, 0, 0, 0, 0, 0, 5, 6,
2227
7, 0, 9, 0, 0, 0, 10, 11, 58, 233,
2228
60, 12, 0, 13, 14, 15, 97, 98, 18, 19,
2229
0, 0, 0, 0, 99, 100, 101, 23, 24, 25,
2230
26, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2231
29, 0, 0, 32, 33, 34, 35, 36, 37, 38,
2232
39, 40, 41, 0, 42, 43, 0, 44, 45, 0,
2233
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2234
0, 0, 0, 0, 0, 0, 0, 207, 0, 0,
2235
107, 48, 0, 49, 50, 0, 479, 0, 52, 53,
2236
54, 55, 56, 57, 0, 0, 0, 0, 0, 0,
2237
0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
2238
11, 58, 233, 60, 12, 0, 13, 14, 15, 97,
2239
98, 18, 19, 0, 0, 0, 0, 99, 100, 101,
2240
23, 24, 25, 26, 0, 0, 0, 0, 0, 0,
2241
0, 0, 0, 29, 0, 0, 32, 33, 34, 35,
2242
36, 37, 38, 39, 40, 41, 0, 42, 43, 0,
2243
44, 45, 0, 0, 0, 0, 0, 0, 0, 0,
2244
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2245
207, 0, 0, 107, 48, 0, 49, 50, 0, 754,
2246
0, 52, 53, 54, 55, 56, 57, 0, 0, 0,
2247
0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
2248
0, 0, 10, 11, 58, 233, 60, 12, 0, 13,
2249
14, 15, 97, 98, 18, 19, 0, 0, 0, 0,
2250
99, 100, 101, 23, 24, 25, 26, 0, 0, 0,
2251
0, 0, 0, 0, 0, 0, 29, 0, 0, 32,
2252
33, 34, 35, 36, 37, 38, 39, 40, 41, 0,
2253
42, 43, 0, 44, 45, 0, 0, 0, 0, 0,
2254
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2255
0, 0, 0, 207, 0, 0, 107, 48, 0, 49,
2256
50, 0, 797, 0, 52, 53, 54, 55, 56, 57,
2257
0, 0, 0, 0, 0, 0, 0, 5, 6, 7,
2258
0, 9, 0, 0, 0, 10, 11, 58, 233, 60,
2259
12, 0, 13, 14, 15, 97, 98, 18, 19, 0,
2260
0, 0, 0, 99, 100, 101, 23, 24, 25, 26,
2261
0, 0, 0, 0, 0, 0, 0, 0, 0, 29,
2262
0, 0, 32, 33, 34, 35, 36, 37, 38, 39,
2263
40, 41, 0, 42, 43, 0, 44, 45, 0, 0,
2264
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2265
0, 0, 0, 0, 0, 0, 207, 0, 0, 107,
2266
48, 0, 49, 50, 0, 0, 0, 52, 53, 54,
2267
55, 56, 57, 0, 0, 0, 0, 0, 0, 0,
2268
5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
2269
58, 233, 60, 12, 0, 13, 14, 15, 16, 17,
2270
18, 19, 0, 0, 0, 0, 20, 21, 22, 23,
2271
24, 25, 26, 0, 0, 0, 0, 0, 0, 0,
2272
0, 0, 29, 0, 0, 32, 33, 34, 35, 36,
2273
37, 38, 39, 40, 41, 0, 42, 43, 0, 44,
2274
45, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2275
0, 0, 0, 0, 0, 0, 0, 0, 0, 207,
2276
0, 0, 107, 48, 0, 49, 50, 0, 0, 0,
2277
52, 53, 54, 55, 56, 57, 0, 0, 0, 0,
2278
0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
2279
0, 10, 11, 58, 233, 60, 12, 0, 13, 14,
2280
15, 97, 98, 18, 19, 0, 0, 0, 0, 99,
2281
100, 101, 23, 24, 25, 26, 0, 0, 0, 0,
2282
0, 0, 0, 0, 0, 102, 0, 0, 32, 33,
2283
34, 35, 36, 37, 38, 39, 40, 41, 0, 42,
2284
43, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2285
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2286
0, 0, 224, 0, 0, 47, 48, 0, 49, 50,
2287
0, 51, 0, 52, 53, 54, 55, 56, 57, 0,
2288
0, 0, 5, 6, 7, 0, 9, 0, 751, 0,
2289
10, 11, 0, 0, 0, 12, 108, 13, 14, 15,
2290
97, 98, 18, 19, 0, 0, 0, 0, 99, 100,
2291
101, 23, 24, 25, 26, 0, 0, 0, 0, 0,
2292
0, 0, 0, 0, 102, 0, 0, 32, 33, 103,
2293
35, 36, 37, 104, 39, 40, 41, 0, 42, 43,
2294
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2295
0, 0, 0, 0, 0, 0, 0, 0, 105, 0,
2296
0, 106, 0, 0, 107, 48, 0, 49, 50, 0,
2297
0, 0, 52, 53, 54, 55, 56, 57, 0, 0,
2298
0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
2299
11, 0, 0, 0, 12, 108, 13, 14, 15, 97,
2300
98, 18, 19, 0, 0, 0, 0, 99, 100, 101,
2301
23, 24, 25, 26, 0, 0, 0, 0, 0, 0,
2302
0, 0, 0, 102, 0, 0, 32, 33, 34, 35,
2303
36, 37, 38, 39, 40, 41, 0, 42, 43, 0,
2304
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2305
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2306
224, 0, 0, 47, 48, 0, 49, 50, 0, 51,
2307
0, 52, 53, 54, 55, 56, 57, 0, 0, 0,
2308
5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
2309
0, 0, 0, 12, 108, 13, 14, 15, 97, 98,
2310
18, 19, 0, 0, 0, 0, 99, 100, 101, 23,
2311
24, 25, 26, 0, 0, 0, 0, 0, 0, 0,
2312
0, 0, 102, 0, 0, 32, 33, 34, 35, 36,
2313
37, 38, 39, 40, 41, 0, 42, 43, 0, 0,
2314
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2315
0, 0, 0, 0, 0, 0, 0, 0, 0, 276,
2316
0, 0, 312, 48, 0, 49, 50, 0, 313, 0,
2317
52, 53, 54, 55, 56, 57, 0, 0, 0, 5,
2318
6, 7, 0, 9, 0, 0, 0, 10, 11, 0,
2319
0, 0, 12, 108, 13, 14, 15, 97, 98, 18,
2320
19, 0, 0, 0, 0, 99, 100, 101, 23, 24,
2321
25, 26, 0, 0, 0, 0, 0, 0, 0, 0,
2322
0, 102, 0, 0, 32, 33, 103, 35, 36, 37,
2323
104, 39, 40, 41, 0, 42, 43, 0, 0, 0,
2324
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2325
0, 0, 0, 0, 0, 0, 0, 0, 106, 0,
2326
0, 107, 48, 0, 49, 50, 0, 0, 0, 52,
2327
53, 54, 55, 56, 57, 0, 0, 0, 5, 6,
2328
7, 0, 9, 0, 0, 0, 10, 11, 0, 0,
2329
0, 12, 108, 13, 14, 15, 97, 98, 18, 19,
2330
0, 0, 0, 0, 99, 100, 101, 23, 24, 25,
2331
26, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2332
102, 0, 0, 32, 33, 34, 35, 36, 37, 38,
2333
39, 40, 41, 0, 42, 43, 0, 0, 0, 0,
2334
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2335
0, 0, 0, 0, 0, 0, 0, 276, 0, 0,
2336
107, 48, 0, 49, 50, 0, 0, 0, 52, 53,
2337
54, 55, 56, 57, 0, 0, 0, 5, 6, 7,
2338
0, 9, 0, 0, 0, 10, 11, 0, 0, 0,
2339
12, 108, 13, 14, 15, 97, 98, 18, 19, 0,
2340
0, 0, 0, 99, 100, 101, 23, 24, 25, 26,
2341
0, 0, 0, 0, 0, 0, 0, 0, 0, 102,
2342
0, 0, 32, 33, 34, 35, 36, 37, 38, 39,
2343
40, 41, 0, 42, 43, 0, 0, 0, 0, 0,
2344
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2345
0, 0, 0, 0, 0, 0, 831, 0, 0, 107,
2346
48, 0, 49, 50, 0, 0, 0, 52, 53, 54,
2347
55, 56, 57, 0, 0, 0, 0, 0, 0, 524,
2348
525, 0, 0, 526, 0, 0, 0, 0, 0, 0,
2349
108, 160, 161, 162, 163, 164, 165, 0, 166, 167,
2350
0, 0, 168, 0, 0, 0, 169, 170, 171, 172,
2351
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2352
173, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2353
0, 0, 0, 0, 0, 174, 175, 176, 177, 178,
2354
179, 180, 181, 182, 183, 529, 525, 184, 0, 530,
2355
0, 0, 0, 0, 0, 0, 185, 160, 161, 162,
2356
163, 164, 165, 0, 166, 167, 0, 0, 168, 0,
2357
0, 0, 169, 170, 171, 172, 0, 0, 0, 0,
2358
0, 0, 0, 0, 0, 0, 173, 0, 0, 0,
2359
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2360
0, 174, 175, 176, 177, 178, 179, 180, 181, 182,
2361
183, 545, 518, 184, 0, 546, 0, 0, 0, 0,
2362
0, 0, 185, 160, 161, 162, 163, 164, 165, 0,
2363
166, 167, 0, 0, 168, 0, 0, 0, 169, 170,
2364
171, 172, 0, 0, 0, 0, 0, 0, 0, 0,
2365
0, 0, 173, 0, 0, 0, 0, 0, 0, 0,
2366
0, 0, 0, 0, 0, 0, 0, 174, 175, 176,
2367
177, 178, 179, 180, 181, 182, 183, 582, 518, 184,
2368
0, 583, 0, 0, 0, 0, 0, 0, 185, 160,
2369
161, 162, 163, 164, 165, 0, 166, 167, 0, 0,
2370
168, 0, 0, 0, 169, 170, 171, 172, 0, 0,
2371
0, 0, 0, 0, 0, 0, 0, 0, 173, 0,
2372
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2373
0, 0, 0, 174, 175, 176, 177, 178, 179, 180,
2374
181, 182, 183, 585, 525, 184, 0, 586, 0, 0,
2375
0, 0, 0, 0, 185, 160, 161, 162, 163, 164,
2376
165, 0, 166, 167, 0, 0, 168, 0, 0, 0,
2377
169, 170, 171, 172, 0, 0, 0, 0, 0, 0,
2378
0, 0, 0, 0, 173, 0, 0, 0, 0, 0,
2379
0, 0, 0, 0, 0, 0, 0, 0, 0, 174,
2380
175, 176, 177, 178, 179, 180, 181, 182, 183, 599,
2381
518, 184, 0, 600, 0, 0, 0, 0, 0, 0,
2382
185, 160, 161, 162, 163, 164, 165, 0, 166, 167,
2383
0, 0, 168, 0, 0, 0, 169, 170, 171, 172,
2384
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2385
173, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2386
0, 0, 0, 0, 0, 174, 175, 176, 177, 178,
2387
179, 180, 181, 182, 183, 602, 525, 184, 0, 603,
2388
0, 0, 0, 0, 0, 0, 185, 160, 161, 162,
2389
163, 164, 165, 0, 166, 167, 0, 0, 168, 0,
2390
0, 0, 169, 170, 171, 172, 0, 0, 0, 0,
2391
0, 0, 0, 0, 0, 0, 173, 0, 0, 0,
2392
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2393
0, 174, 175, 176, 177, 178, 179, 180, 181, 182,
2394
183, 640, 518, 184, 0, 641, 0, 0, 0, 0,
2395
0, 0, 185, 160, 161, 162, 163, 164, 165, 0,
2396
166, 167, 0, 0, 168, 0, 0, 0, 169, 170,
2397
171, 172, 0, 0, 0, 0, 0, 0, 0, 0,
2398
0, 0, 173, 0, 0, 0, 0, 0, 0, 0,
2399
0, 0, 0, 0, 0, 0, 0, 174, 175, 176,
2400
177, 178, 179, 180, 181, 182, 183, 643, 525, 184,
2401
0, 644, 0, 0, 0, 0, 0, 0, 185, 160,
2402
161, 162, 163, 164, 165, 0, 166, 167, 0, 0,
2403
168, 0, 0, 0, 169, 170, 171, 172, 0, 0,
2404
0, 0, 0, 0, 0, 0, 0, 0, 173, 0,
2405
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2406
0, 0, 0, 174, 175, 176, 177, 178, 179, 180,
2407
181, 182, 183, 877, 518, 184, 0, 878, 0, 0,
2408
0, 0, 0, 0, 185, 160, 161, 162, 163, 164,
2409
165, 0, 166, 167, 0, 0, 168, 0, 0, 0,
2410
169, 170, 171, 172, 0, 0, 0, 0, 0, 0,
2411
0, 0, 0, 0, 173, 0, 0, 0, 0, 0,
2412
0, 0, 0, 0, 0, 0, 0, 0, 0, 174,
2413
175, 176, 177, 178, 179, 180, 181, 182, 183, 880,
2414
525, 184, 0, 881, 0, 0, 0, 0, 0, 0,
2415
185, 160, 161, 162, 163, 164, 165, 0, 166, 167,
2416
0, 0, 168, 0, 0, 0, 169, 170, 171, 172,
2417
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2418
173, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2419
0, 0, 0, 0, 0, 174, 175, 176, 177, 178,
2420
179, 180, 181, 182, 183, 0, 0, 184, 0, 0,
2421
0, 0, 0, 0, 0, 0, 185, 316, 317, 318,
2422
319, 320, 321, 322, 323, 324, 325, 326, 327, 328,
2423
0, 0, 329, 330, 0, 0, 0, 0, 0, 0,
2424
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2425
0, 0, 0, 0, 0, 0, 0, 331, 0, 332,
2426
333, 334, 335, 336, 337, 338, 339, 340, 341, 316,
2427
317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
2428
327, 328, 0, 253, 329, 330, 0, 0, 0, -220,
2429
316, 317, 318, 319, 320, 321, 322, 323, 324, 325,
2430
326, 327, 328, 0, 0, 329, 330, 0, 0, 331,
2431
0, 332, 333, 334, 335, 336, 337, 338, 339, 340,
2432
341, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2433
331, -220, 332, 333, 334, 335, 336, 337, 338, 339,
2434
340, 341, 0, 0, 0, 0, 0, 0, 0, 0,
2435
0, 0, 605, 316, 317, 318, 319, 320, 321, 322,
2436
323, 324, 325, 326, 327, 328, 0, 0, 329, 330,
2437
316, 317, 318, 319, 320, 321, 322, 323, 324, 325,
2438
326, -502, -502, 0, 0, 329, 330, 0, 0, 0,
2439
0, 0, 0, 331, 0, 332, 333, 334, 335, 336,
2440
337, 338, 339, 340, 341, 0, 0, 0, 0, 0,
2441
0, 0, 332, 333, 334, 335, 336, 337, 338, 339,
2442
340, 341, 316, -502, -502, -502, -502, 321, 322, 0,
2443
0, -502, -502, 0, 0, 0, 0, 329, 330, 316,
2444
317, 318, 319, 320, 321, 322, 0, 0, 325, 326,
2445
0, 0, 0, 0, 329, 330, 0, 0, 0, 0,
2446
0, 0, 0, 0, 332, 333, 334, 335, 336, 337,
2447
338, 339, 340, 341, 0, 0, 0, 0, 0, 0,
2448
0, 332, 333, 334, 335, 336, 337, 338, 339, 340,
2452
static const yytype_int16 yycheck[] =
2454
16, 17, 7, 8, 20, 343, 215, 16, 17, 15,
2455
370, 20, 16, 17, 7, 22, 20, 16, 17, 247,
2456
8, 20, 8, 28, 22, 397, 51, 409, 44, 45,
2457
368, 5, 6, 49, 50, 391, 106, 315, 62, 692,
2458
28, 15, 28, 59, 60, 27, 50, 52, 386, 28,
2459
49, 372, 531, 532, 13, 11, 12, 577, 26, 52,
2460
442, 13, 400, 4, 568, 12, 570, 587, 26, 47,
2461
287, 36, 37, 0, 291, 533, 534, 51, 261, 1,
2462
92, 689, 59, 58, 692, 25, 130, 94, 58, 13,
2463
81, 25, 81, 83, 101, 664, 94, 71, 110, 17,
2464
84, 670, 20, 15, 54, 17, 13, 64, 115, 72,
2465
25, 129, 450, 103, 83, 62, 342, 120, 344, 345,
2466
346, 83, 102, 105, 99, 100, 16, 17, 129, 312,
2467
20, 101, 28, 124, 103, 124, 126, 36, 37, 130,
2468
50, 103, 126, 369, 54, 108, 105, 83, 130, 131,
2469
56, 57, 120, 105, 129, 26, 113, 114, 115, 385,
2470
50, 387, 120, 110, 126, 130, 26, 26, 108, 128,
2471
128, 130, 131, 826, 108, 401, 81, 103, 130, 131,
2472
15, 105, 17, 126, 544, 107, 126, 2, 128, 4,
2473
5, 6, 126, 108, 218, 10, 11, 12, 105, 103,
2474
15, 16, 17, 563, 430, 20, 130, 131, 130, 131,
2475
81, 126, 27, 128, 94, 231, 232, 233, 826, 124,
2476
678, 81, 81, 130, 131, 451, 125, 128, 244, 81,
2477
246, 247, 47, 48, 49, 244, 51, 246, 247, 128,
2478
244, 562, 246, 247, 59, 244, 463, 246, 247, 120,
2479
266, 122, 81, 124, 130, 131, 71, 128, 737, 738,
2480
120, 120, 122, 122, 124, 124, 222, 223, 128, 128,
2481
25, 218, 124, 126, 52, 779, 780, 25, 798, 54,
2482
784, 59, 60, 261, 25, 36, 37, 267, 313, 58,
2483
105, 103, 107, 122, 310, 124, 83, 367, 576, 315,
2484
316, 317, 318, 319, 320, 321, 322, 323, 324, 325,
2485
326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
2486
336, 337, 338, 339, 340, 341, 244, 343, 246, 247,
2487
99, 100, 101, 310, 312, 351, 352, 342, 315, 313,
2488
131, 83, 54, 725, 343, 301, 302, 303, 304, 25,
2489
732, 723, 368, 108, 244, 859, 246, 247, 84, 300,
2490
108, 103, 367, 81, 305, 25, 83, 108, 384, 368,
2491
386, 126, 388, 389, 351, 352, 25, 393, 126, 25,
2492
385, 56, 57, 592, 400, 126, 103, 386, 126, 405,
2493
406, 206, 25, 409, 399, 126, 624, 413, 240, 625,
2494
626, 400, 406, 128, 413, 120, 124, 222, 223, 413,
2495
426, 771, 14, 15, 81, 431, 363, 81, 81, 424,
2496
310, 125, 126, 439, 429, 315, 442, 83, 444, 244,
2497
64, 246, 247, 2, 450, 125, 424, 417, 424, 419,
2498
125, 256, 798, 103, 449, 424, 261, 103, 108, 396,
2499
397, 450, 468, 469, 103, 435, 436, 124, 64, 108,
2500
124, 124, 108, 479, 785, 125, 126, 125, 850, 50,
2501
830, 52, 53, 54, 55, 108, 125, 126, 47, 50,
2502
126, 52, 53, 54, 55, 300, 301, 302, 303, 304,
2503
305, 306, 307, 126, 123, 310, 121, 312, 313, 83,
2504
315, 64, 50, 393, 886, 111, 112, 113, 114, 115,
2505
91, 92, 54, 55, 521, 83, 79, 80, 126, 103,
2506
91, 92, 130, 521, 54, 863, 101, 126, 343, 110,
2507
528, 130, 113, 531, 532, 103, 351, 352, 107, 110,
2508
58, 548, 113, 91, 92, 101, 81, 128, 111, 112,
2509
113, 114, 115, 368, 81, 370, 371, 64, 81, 83,
2510
576, 403, 110, 64, 126, 113, 81, 382, 573, 574,
2511
83, 386, 552, 58, 590, 390, 81, 392, 787, 103,
2512
573, 99, 100, 101, 793, 400, 574, 543, 574, 124,
2513
103, 90, 608, 10, 541, 574, 612, 124, 413, 122,
2514
616, 124, 126, 13, 8, 128, 126, 122, 624, 124,
2515
130, 64, 427, 126, 99, 100, 101, 564, 17, 124,
2516
624, 10, 638, 58, 126, 624, 79, 80, 125, 2,
2517
81, 4, 5, 6, 7, 450, 126, 125, 864, 81,
2518
81, 657, 15, 659, 660, 661, 662, 653, 604, 121,
2519
666, 667, 81, 126, 125, 108, 109, 110, 111, 112,
2520
113, 114, 115, 129, 99, 100, 101, 81, 83, 685,
2521
126, 122, 126, 124, 47, 125, 81, 123, 51, 653,
2522
122, 122, 124, 124, 661, 123, 576, 256, 103, 666,
2523
667, 10, 261, 122, 710, 124, 712, 713, 71, 81,
2524
103, 126, 718, 126, 81, 50, 686, 83, 122, 725,
2525
124, 126, 81, 729, 126, 50, 732, 122, 15, 124,
2526
729, 81, 123, 52, 53, 729, 55, 103, 543, 544,
2527
59, 60, 58, 680, 107, 61, 10, 270, 754, 272,
2528
122, 274, 124, 312, 10, 122, 762, 124, 563, 92,
2529
126, 707, 126, 122, 126, 124, 736, 2, 123, 4,
2530
126, 125, 122, 743, 124, 10, 11, 12, 125, 611,
2531
125, 16, 17, 99, 100, 20, 723, 121, 64, 795,
2532
622, 797, 27, 125, 123, 762, 10, 803, 125, 604,
2533
806, 10, 84, 79, 80, 811, 39, 40, 41, 42,
2534
43, 9, 47, 48, 49, 49, 50, 10, 10, 624,
2535
125, 121, 786, 382, 59, 630, 125, 108, 126, 126,
2536
10, 390, 10, 392, 110, 111, 112, 113, 114, 115,
2537
645, 126, 848, 206, 850, 10, 126, 125, 653, 729,
2538
10, 121, 10, 54, 848, 121, 661, 863, 10, 10,
2539
71, 666, 667, 126, 870, 123, 872, 862, 427, 6,
2540
105, 653, 107, 78, 863, 81, 866, 7, 865, 785,
2541
886, 562, 689, 689, -1, 891, 62, -1, -1, -1,
2542
-1, -1, 724, 256, -1, 727, 728, -1, 261, 704,
2543
-1, -1, 707, -1, -1, -1, -1, -1, -1, -1,
2544
-1, -1, -1, -1, 719, 720, 721, -1, -1, -1,
2545
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2546
-1, -1, -1, -1, -1, -1, -1, 300, -1, 2,
2547
-1, 4, 305, -1, -1, -1, -1, -1, 753, 312,
2548
313, -1, 15, -1, -1, -1, -1, 762, -1, -1,
2549
-1, -1, -1, 768, 769, -1, 771, -1, -1, -1,
2550
-1, 206, -1, -1, -1, -1, 808, 809, 10, 11,
2551
12, 786, -1, -1, 47, 790, -1, 222, 223, -1,
2552
-1, -1, -1, -1, -1, 27, -1, -1, -1, -1,
2553
-1, -1, -1, -1, -1, 239, 240, 370, -1, 244,
2554
-1, 246, 247, 247, 846, 847, 48, -1, 823, 382,
2555
852, 256, -1, -1, -1, 830, 261, 390, -1, 392,
2556
-1, 836, -1, 838, -1, -1, -1, -1, -1, 871,
2557
845, -1, -1, -1, 107, -1, -1, -1, -1, -1,
2558
-1, -1, -1, 885, -1, -1, 888, -1, 863, -1,
2559
-1, 893, -1, -1, 427, 300, 301, 302, 303, 304,
2560
305, 306, 307, 105, -1, 310, -1, 312, -1, -1,
2561
315, -1, -1, -1, -1, -1, 645, -1, -1, -1,
2562
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2563
-1, -1, -1, -1, -1, -1, -1, -1, 343, 343,
2564
-1, -1, -1, -1, -1, -1, 351, 352, -1, 2,
2565
-1, 4, 5, 6, -1, -1, -1, -1, -1, -1,
2566
-1, -1, 15, 368, 368, 370, 371, -1, -1, -1,
2567
-1, -1, -1, 206, 378, 704, -1, 382, -1, -1,
2568
-1, 386, 386, -1, -1, 390, -1, 392, -1, -1,
2569
719, 720, 721, -1, 47, 400, 400, -1, 51, 403,
2570
-1, -1, -1, -1, -1, -1, -1, -1, 413, -1,
2571
-1, 544, -1, -1, 418, -1, -1, -1, 71, -1,
2572
222, 223, 427, 256, 753, -1, -1, -1, 261, -1,
2573
563, -1, -1, -1, -1, -1, -1, -1, -1, 768,
2574
769, -1, -1, -1, -1, 450, 450, -1, -1, -1,
2575
-1, -1, -1, -1, 107, -1, -1, -1, -1, -1,
2576
-1, 790, -1, -1, -1, -1, -1, 300, -1, -1,
2577
-1, -1, 305, -1, 478, -1, -1, -1, -1, 312,
2578
-1, -1, -1, -1, -1, -1, -1, -1, 2, -1,
2579
4, -1, -1, -1, 823, -1, -1, -1, -1, 301,
2580
302, 303, 304, -1, 306, 307, -1, 836, -1, 838,
2581
-1, -1, 645, -1, -1, -1, 845, -1, -1, -1,
2582
653, -1, -1, -1, 528, -1, -1, 531, 532, 533,
2583
534, -1, -1, 47, -1, -1, -1, 370, 543, 544,
2584
-1, -1, -1, -1, -1, -1, 550, -1, -1, 382,
2585
-1, -1, -1, 206, -1, -1, -1, 390, 563, 392,
2586
-1, -1, 566, -1, 568, -1, 570, -1, -1, 371,
2587
-1, 704, 576, 577, -1, 579, -1, -1, -1, -1,
2588
-1, -1, -1, 587, -1, -1, 719, 720, 721, -1,
2589
-1, -1, -1, 107, 427, -1, -1, -1, -1, 604,
2590
-1, -1, -1, 256, -1, -1, -1, 611, 261, -1,
2591
-1, 413, -1, -1, -1, -1, -1, -1, 622, 624,
2592
753, -1, -1, -1, -1, 630, -1, -1, -1, -1,
2593
-1, -1, -1, -1, -1, 768, 769, -1, 771, -1,
2594
645, -1, -1, -1, -1, -1, -1, 300, -1, -1,
2595
-1, -1, 305, 786, -1, -1, 661, 790, -1, 312,
2596
313, 666, 667, -1, -1, -1, -1, -1, -1, -1,
2597
-1, -1, -1, -1, 678, -1, -1, -1, -1, -1,
2598
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2599
823, -1, 206, -1, -1, -1, -1, 830, 702, 704,
2600
-1, 705, 707, 836, -1, 838, -1, -1, -1, -1,
2601
-1, 544, 845, -1, 719, 720, 721, 370, -1, -1,
2602
724, -1, -1, 727, 728, -1, -1, -1, -1, 382,
2603
563, -1, -1, 737, 738, -1, -1, 390, -1, 392,
2604
-1, 543, 256, -1, -1, -1, -1, 261, 753, -1,
2605
-1, -1, -1, -1, -1, -1, -1, 762, -1, -1,
2606
-1, -1, -1, 768, 769, -1, 771, -1, -1, -1,
2607
-1, -1, -1, -1, 427, 779, 780, -1, -1, -1,
2608
784, -1, -1, -1, -1, 790, 300, -1, -1, -1,
2609
-1, 305, -1, -1, 798, -1, -1, -1, 312, -1,
2610
-1, -1, 604, -1, 808, 809, -1, -1, -1, -1,
2611
-1, -1, 645, -1, -1, -1, -1, -1, 823, -1,
2612
653, -1, -1, -1, -1, 830, -1, -1, 630, -1,
2613
-1, 836, -1, 838, -1, -1, -1, -1, -1, -1,
2614
845, -1, 846, 847, -1, -1, -1, -1, 852, 231,
2615
232, -1, -1, -1, -1, 859, 370, -1, 863, 863,
2616
-1, 865, 866, -1, -1, -1, -1, 871, 382, -1,
2617
-1, 704, -1, -1, -1, -1, 390, -1, 392, -1,
2618
-1, 885, -1, -1, 888, -1, 719, 720, 721, 893,
2619
-1, 544, -1, -1, -1, -1, -1, -1, -1, -1,
2620
-1, -1, 50, 51, -1, 707, 54, -1, -1, -1,
2621
563, -1, -1, 427, 62, 63, 64, 65, 66, 67,
2622
753, 69, 70, -1, -1, 73, -1, -1, 310, 77,
2623
78, 79, 80, 315, -1, 768, 769, -1, 771, -1,
2624
-1, -1, -1, 91, -1, -1, -1, -1, -1, -1,
2625
-1, -1, -1, 786, -1, -1, -1, 790, 106, 107,
2626
108, 109, 110, 111, 112, 113, 114, 115, -1, -1,
2627
118, 64, 65, 66, 67, 68, 69, 70, 71, 127,
2628
73, 74, -1, -1, -1, -1, 79, 80, -1, -1,
2629
823, -1, 645, 646, -1, -1, -1, 830, -1, -1,
2630
653, -1, -1, 836, -1, 838, -1, -1, -1, -1,
2631
-1, 393, 845, 106, 107, 108, 109, 110, 111, 112,
2632
113, 114, 115, 405, 406, -1, -1, 409, -1, -1,
2633
544, 413, -1, -1, -1, -1, -1, -1, -1, -1,
2634
-1, -1, -1, -1, -1, -1, -1, -1, -1, 563,
2635
-1, 704, -1, -1, -1, -1, -1, 439, 43, -1,
2636
442, -1, 444, -1, -1, -1, 719, 720, 721, -1,
2637
-1, -1, -1, -1, -1, -1, -1, -1, -1, 64,
2638
65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
2639
75, 76, -1, -1, 79, 80, -1, 479, -1, -1,
2640
753, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2641
-1, -1, -1, -1, -1, 768, 769, -1, 771, 104,
2642
-1, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2643
115, 645, -1, 786, -1, -1, -1, 790, -1, 0,
2644
-1, 126, -1, -1, -1, -1, -1, 8, 9, 10,
2645
-1, -1, 13, 14, 15, -1, 17, -1, -1, -1,
2646
-1, -1, -1, -1, -1, -1, 27, -1, -1, -1,
2647
823, -1, -1, -1, -1, 36, 37, 830, 39, 40,
2648
41, 42, 43, 836, -1, 838, -1, -1, -1, -1,
2649
704, -1, 845, -1, 576, -1, -1, -1, -1, -1,
2650
-1, -1, -1, -1, -1, 719, 720, 721, 590, -1,
2651
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2652
81, -1, -1, -1, -1, -1, 608, -1, -1, -1,
2653
612, -1, -1, -1, 616, -1, -1, -1, -1, 753,
2654
-1, -1, 624, -1, 105, -1, -1, -1, -1, -1,
2655
-1, -1, -1, -1, 768, 769, -1, 771, -1, -1,
2656
121, -1, -1, 124, 125, -1, -1, 128, -1, 130,
2657
131, -1, -1, -1, -1, 657, 790, -1, -1, -1,
2658
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2659
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2660
-1, -1, -1, 685, -1, -1, -1, -1, -1, 823,
2661
-1, -1, -1, -1, -1, -1, 830, -1, -1, -1,
2662
-1, -1, 836, -1, 838, -1, -1, -1, -1, -1,
2663
-1, 845, -1, -1, -1, -1, 718, -1, -1, -1,
2664
-1, -1, -1, 725, -1, -1, -1, -1, -1, -1,
2665
732, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2666
3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
2667
-1, -1, 754, 16, -1, 18, 19, 20, 21, 22,
2668
23, 24, -1, 26, -1, -1, 29, 30, 31, 32,
2669
33, 34, 35, -1, -1, -1, -1, -1, -1, -1,
2670
-1, -1, 45, -1, -1, 48, 49, 50, 51, 52,
2671
53, 54, 55, 56, 57, 797, 59, 60, -1, 62,
2672
63, -1, -1, -1, 806, -1, -1, -1, -1, 811,
2673
-1, -1, -1, -1, -1, -1, -1, -1, -1, 82,
2674
-1, -1, 85, 86, -1, 88, 89, -1, 91, 92,
2675
93, 94, 95, 96, 97, 98, -1, -1, -1, -1,
2676
-1, -1, -1, -1, -1, -1, 848, -1, 850, -1,
2677
-1, -1, -1, 116, 117, 118, -1, 120, -1, -1,
2678
-1, -1, -1, -1, -1, 128, -1, -1, 870, -1,
2679
872, -1, -1, -1, 0, 1, -1, 3, 4, 5,
2680
6, 7, -1, -1, 886, 11, 12, -1, -1, 891,
2681
16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
2682
-1, -1, -1, 29, 30, 31, 32, 33, 34, 35,
2683
-1, -1, 38, -1, -1, -1, -1, -1, 44, 45,
2684
46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
2685
56, 57, -1, 59, 60, -1, 62, 63, -1, -1,
2686
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2687
-1, -1, -1, -1, -1, -1, 82, -1, -1, 85,
2688
86, -1, 88, 89, -1, 91, -1, 93, 94, 95,
2689
96, 97, 98, -1, -1, -1, -1, -1, -1, -1,
2690
-1, -1, -1, -1, -1, 0, -1, -1, -1, -1,
2691
116, 117, 118, 8, 9, 10, -1, -1, -1, 14,
2692
15, -1, 17, -1, 130, 131, -1, -1, 43, -1,
2693
-1, 26, -1, -1, -1, -1, -1, -1, -1, -1,
2694
-1, 36, 37, -1, 39, 40, 41, 42, 43, 64,
2695
65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
2696
75, 76, -1, -1, 79, 80, -1, -1, -1, 64,
2697
65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
2698
75, 76, -1, -1, 79, 80, 81, -1, 83, 104,
2699
-1, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2700
115, -1, -1, -1, -1, -1, -1, -1, 103, 104,
2701
-1, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2702
115, -1, -1, -1, 0, 120, 121, 122, -1, 124,
2703
125, 126, 8, 9, 10, 130, 131, -1, 14, 15,
2704
-1, 17, -1, -1, -1, -1, -1, -1, -1, -1,
2705
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2706
36, 37, -1, 39, 40, 41, 42, 43, 64, 65,
2707
66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
2708
76, -1, -1, 79, 80, -1, -1, -1, 64, 65,
2709
66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
2710
76, -1, -1, 79, 80, 81, -1, 83, 104, 105,
2711
106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
2712
-1, -1, -1, -1, -1, -1, -1, 103, 104, -1,
2713
106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
2714
-1, -1, -1, -1, -1, 121, 122, -1, 124, 125,
2715
126, -1, -1, -1, 130, 131, 1, -1, 3, 4,
2716
5, 6, 7, 8, 9, 10, 11, 12, -1, -1,
2717
15, 16, -1, 18, 19, 20, 21, 22, 23, 24,
2718
-1, -1, -1, -1, 29, 30, 31, 32, 33, 34,
2719
35, -1, -1, 38, -1, -1, -1, -1, -1, 44,
2720
45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2721
55, 56, 57, -1, 59, 60, -1, 62, 63, -1,
2722
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2723
-1, -1, -1, -1, -1, -1, -1, 82, -1, -1,
2724
85, 86, -1, 88, 89, -1, 91, -1, 93, 94,
2725
95, 96, 97, 98, -1, -1, -1, -1, -1, -1,
2726
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2727
-1, 116, 117, 118, -1, -1, -1, -1, 1, -1,
2728
3, 4, 5, 6, 7, 130, 131, 10, 11, 12,
2729
-1, 14, 15, 16, -1, 18, 19, 20, 21, 22,
2730
23, 24, -1, -1, -1, -1, 29, 30, 31, 32,
2731
33, 34, 35, -1, -1, 38, -1, -1, -1, -1,
2732
-1, 44, 45, 46, 47, 48, 49, 50, 51, 52,
2733
53, 54, 55, 56, 57, -1, 59, 60, -1, 62,
2734
63, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2735
-1, -1, -1, -1, -1, -1, -1, -1, -1, 82,
2736
-1, -1, 85, 86, -1, 88, 89, -1, 91, -1,
2737
93, 94, 95, 96, 97, 98, -1, -1, -1, -1,
2738
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2739
-1, -1, -1, 116, 117, 118, -1, -1, -1, -1,
2740
1, -1, 3, 4, 5, 6, 7, 130, 131, 10,
2741
11, 12, -1, -1, 15, 16, 17, 18, 19, 20,
2742
21, 22, 23, 24, -1, -1, -1, -1, 29, 30,
2743
31, 32, 33, 34, 35, -1, -1, 38, -1, -1,
2744
-1, -1, -1, 44, 45, 46, 47, 48, 49, 50,
2745
51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
2746
-1, 62, 63, -1, -1, -1, -1, -1, -1, -1,
2747
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2748
-1, 82, -1, -1, 85, 86, -1, 88, 89, -1,
2749
91, -1, 93, 94, 95, 96, 97, 98, -1, -1,
2750
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2751
-1, -1, -1, -1, -1, 116, 117, 118, -1, -1,
2752
-1, -1, 1, -1, 3, 4, 5, 6, 7, 130,
2753
131, 10, 11, 12, -1, -1, 15, 16, -1, 18,
2754
19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
2755
29, 30, 31, 32, 33, 34, 35, -1, -1, 38,
2756
-1, -1, -1, -1, -1, 44, 45, 46, 47, 48,
2757
49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
2758
59, 60, -1, 62, 63, -1, -1, -1, -1, -1,
2759
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2760
-1, -1, -1, 82, -1, -1, 85, 86, -1, 88,
2761
89, -1, 91, -1, 93, 94, 95, 96, 97, 98,
2762
-1, -1, -1, -1, -1, 1, -1, 3, 4, 5,
2763
6, 7, -1, 9, 10, 11, 12, 116, 117, 118,
2764
16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
2765
-1, 130, 131, 29, 30, 31, 32, 33, 34, 35,
2766
-1, -1, 38, -1, -1, -1, -1, -1, 44, 45,
2767
46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
2768
56, 57, -1, 59, 60, -1, 62, 63, -1, -1,
2769
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2770
-1, -1, -1, -1, -1, -1, 82, -1, -1, 85,
2771
86, -1, 88, 89, -1, 91, -1, 93, 94, 95,
2772
96, 97, 98, -1, -1, -1, -1, -1, 1, -1,
2773
3, 4, 5, 6, 7, -1, -1, -1, 11, 12,
2774
116, 117, 118, 16, -1, 18, 19, 20, 21, 22,
2775
23, 24, -1, -1, 130, 131, 29, 30, 31, 32,
2776
33, 34, 35, -1, -1, 38, -1, -1, -1, -1,
2777
-1, 44, 45, 46, 47, 48, 49, 50, 51, 52,
2778
53, 54, 55, 56, 57, -1, 59, 60, -1, 62,
2779
63, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2780
-1, -1, -1, -1, -1, -1, -1, -1, -1, 82,
2781
-1, -1, 85, 86, -1, 88, 89, -1, 91, -1,
2782
93, 94, 95, 96, 97, 98, -1, -1, -1, -1,
2783
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2784
-1, -1, -1, 116, 117, 118, -1, -1, -1, -1,
2785
-1, -1, 125, -1, -1, -1, -1, 130, 131, 1,
2786
-1, 3, 4, 5, 6, 7, -1, -1, -1, 11,
2787
12, -1, -1, -1, 16, -1, 18, 19, 20, 21,
2788
22, 23, 24, -1, -1, -1, -1, 29, 30, 31,
2789
32, 33, 34, 35, -1, -1, 38, -1, -1, -1,
2790
-1, -1, 44, 45, 46, 47, 48, 49, 50, 51,
2791
52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
2792
62, 63, -1, -1, -1, -1, -1, -1, -1, -1,
2793
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2794
82, -1, -1, 85, 86, -1, 88, 89, -1, 91,
2795
-1, 93, 94, 95, 96, 97, 98, -1, -1, -1,
2796
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2797
-1, -1, -1, -1, 116, 117, 118, -1, -1, -1,
2798
-1, -1, -1, 125, -1, -1, -1, -1, 130, 131,
2799
1, -1, 3, 4, 5, 6, 7, -1, -1, -1,
2800
11, 12, -1, -1, -1, 16, -1, 18, 19, 20,
2801
21, 22, 23, 24, -1, -1, -1, -1, 29, 30,
2802
31, 32, 33, 34, 35, -1, -1, 38, -1, -1,
2803
-1, -1, -1, 44, 45, 46, 47, 48, 49, 50,
2804
51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
2805
-1, 62, 63, -1, -1, -1, -1, -1, -1, -1,
2806
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2807
-1, 82, -1, -1, 85, 86, -1, 88, 89, -1,
2808
91, -1, 93, 94, 95, 96, 97, 98, -1, -1,
2809
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2810
-1, -1, -1, -1, -1, 116, 117, 118, -1, -1,
2811
121, -1, 1, -1, 3, 4, 5, 6, 7, 130,
2812
131, 10, 11, 12, -1, -1, -1, 16, -1, 18,
2813
19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
2814
29, 30, 31, 32, 33, 34, 35, -1, -1, 38,
2815
-1, -1, -1, -1, -1, 44, 45, 46, 47, 48,
2816
49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
2817
59, 60, -1, 62, 63, -1, -1, -1, -1, -1,
2818
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2819
-1, -1, -1, 82, -1, -1, 85, 86, -1, 88,
2820
89, -1, 91, -1, 93, 94, 95, 96, 97, 98,
2821
-1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
2822
6, 7, -1, -1, -1, 11, 12, 116, 117, 118,
2823
16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
2824
-1, 130, 131, 29, 30, 31, 32, 33, 34, 35,
2825
-1, -1, 38, -1, -1, -1, -1, -1, 44, 45,
2826
46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
2827
56, 57, -1, 59, 60, -1, 62, 63, -1, -1,
2828
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2829
-1, -1, -1, -1, -1, -1, 82, -1, -1, 85,
2830
86, -1, 88, 89, -1, 91, -1, 93, 94, 95,
2831
96, 97, 98, -1, -1, -1, -1, -1, -1, -1,
2832
3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
2833
116, 117, 118, 16, -1, 18, 19, 20, 21, 22,
2834
23, 24, -1, -1, -1, 131, 29, 30, 31, 32,
2835
33, 34, 35, -1, -1, 38, -1, -1, -1, -1,
2836
-1, -1, 45, -1, -1, 48, 49, 50, 51, 52,
2837
53, 54, 55, 56, 57, -1, 59, 60, -1, 62,
2838
63, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2839
-1, -1, -1, -1, -1, -1, -1, -1, -1, 82,
2840
-1, -1, 85, 86, -1, 88, 89, -1, -1, -1,
2841
93, 94, 95, 96, 97, 98, -1, -1, -1, -1,
2842
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2843
-1, -1, -1, 116, 117, 118, -1, -1, -1, -1,
2844
-1, -1, -1, -1, -1, -1, -1, 130, 131, 3,
2845
4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
2846
14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
2847
24, 25, 26, -1, -1, 29, 30, 31, 32, 33,
2848
34, 35, 36, 37, 38, -1, -1, -1, -1, -1,
2849
44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
2850
54, 55, -1, -1, -1, -1, -1, -1, 62, 63,
2851
64, 65, 66, 67, -1, 69, 70, -1, -1, 73,
2852
-1, -1, -1, 77, 78, 79, 80, -1, -1, -1,
2853
-1, -1, -1, -1, -1, -1, -1, 91, -1, -1,
2854
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2855
-1, -1, 106, 107, 108, 109, 110, 111, 112, 113,
2856
114, 115, -1, -1, 118, -1, -1, 3, 4, 5,
2857
-1, 7, -1, 127, 128, 11, 12, -1, -1, -1,
2858
16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
2859
26, -1, -1, 29, 30, 31, 32, 33, 34, 35,
2860
-1, -1, -1, -1, -1, -1, -1, -1, -1, 45,
2861
-1, -1, 48, 49, 50, 51, 52, 53, 54, 55,
2862
56, 57, -1, 59, 60, -1, 62, 63, -1, -1,
2863
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2864
-1, -1, -1, -1, -1, -1, 82, -1, -1, 85,
2865
86, -1, 88, 89, -1, 91, 92, 93, 94, 95,
2866
96, 97, 98, -1, -1, -1, -1, -1, -1, -1,
2867
3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
2868
116, 117, 118, 16, 120, 18, 19, 20, 21, 22,
2869
23, 24, 128, 26, -1, -1, 29, 30, 31, 32,
2870
33, 34, 35, -1, -1, -1, -1, -1, -1, -1,
2871
-1, -1, 45, -1, -1, 48, 49, 50, 51, 52,
2872
53, 54, 55, 56, 57, -1, 59, 60, -1, 62,
2873
63, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2874
-1, -1, -1, -1, -1, -1, -1, -1, -1, 82,
2875
-1, -1, 85, 86, -1, 88, 89, -1, 91, 92,
2876
93, 94, 95, 96, 97, 98, -1, -1, -1, -1,
2877
-1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
2878
-1, 11, 12, 116, 117, 118, 16, 120, 18, 19,
2879
20, 21, 22, 23, 24, 128, -1, -1, -1, 29,
2880
30, 31, 32, 33, 34, 35, -1, -1, -1, -1,
2881
-1, -1, -1, -1, -1, 45, -1, -1, 48, 49,
2882
50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
2883
60, -1, 62, 63, -1, -1, -1, -1, -1, -1,
2884
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2885
-1, -1, 82, 83, -1, 85, 86, -1, 88, 89,
2886
-1, 91, 92, 93, 94, 95, 96, 97, 98, -1,
2887
-1, -1, -1, 103, -1, -1, 3, 4, 5, -1,
2888
7, -1, -1, -1, 11, 12, 116, 117, 118, 16,
2889
-1, 18, 19, 20, 21, 22, 23, 24, 128, -1,
2890
-1, -1, 29, 30, 31, 32, 33, 34, 35, -1,
2891
-1, -1, -1, -1, -1, -1, -1, -1, 45, -1,
2892
-1, 48, 49, 50, 51, 52, 53, 54, 55, 56,
2893
57, -1, 59, 60, -1, 62, 63, -1, -1, -1,
2894
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2895
-1, -1, -1, -1, -1, 82, 83, -1, 85, 86,
2896
-1, 88, 89, -1, 91, 92, 93, 94, 95, 96,
2897
97, 98, -1, -1, -1, -1, 103, -1, -1, 3,
2898
4, 5, -1, 7, -1, -1, -1, 11, 12, 116,
2899
117, 118, 16, -1, 18, 19, 20, 21, 22, 23,
2900
24, 128, -1, -1, -1, 29, 30, 31, 32, 33,
2901
34, 35, -1, -1, -1, -1, -1, -1, -1, -1,
2902
-1, 45, -1, -1, 48, 49, 50, 51, 52, 53,
2903
54, 55, 56, 57, -1, 59, 60, -1, 62, 63,
2904
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2905
-1, -1, -1, -1, -1, -1, -1, -1, 82, -1,
2906
-1, 85, 86, -1, 88, 89, -1, 91, 92, 93,
2907
94, 95, 96, 97, 98, -1, -1, -1, -1, -1,
2908
-1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
2909
11, 12, 116, 117, 118, 16, -1, 18, 19, 20,
2910
21, 22, 23, 24, 128, -1, -1, -1, 29, 30,
2911
31, 32, 33, 34, 35, -1, -1, -1, -1, -1,
2912
-1, -1, -1, -1, 45, -1, -1, 48, 49, 50,
2913
51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
2914
-1, 62, 63, -1, -1, -1, -1, -1, -1, -1,
2915
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2916
-1, 82, -1, -1, 85, 86, -1, 88, 89, -1,
2917
91, 92, 93, 94, 95, 96, 97, 98, -1, -1,
2918
-1, -1, -1, -1, -1, 3, 4, 5, -1, 7,
2919
-1, -1, -1, 11, 12, 116, 117, 118, 16, -1,
2920
18, 19, 20, 21, 22, 23, 24, 128, -1, -1,
2921
-1, 29, 30, 31, 32, 33, 34, 35, -1, -1,
2922
-1, -1, -1, -1, -1, -1, -1, 45, -1, -1,
2923
48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
2924
-1, 59, 60, -1, 62, 63, -1, -1, -1, -1,
2925
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2926
-1, -1, -1, -1, 82, -1, -1, 85, 86, -1,
2927
88, 89, -1, 91, 92, 93, 94, 95, 96, 97,
2928
98, -1, -1, -1, -1, -1, -1, -1, 3, 4,
2929
5, -1, 7, -1, -1, -1, 11, 12, 116, 117,
2930
118, 16, -1, 18, 19, 20, 21, 22, 23, 24,
2931
128, -1, -1, -1, 29, 30, 31, 32, 33, 34,
2932
35, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2933
45, -1, -1, 48, 49, 50, 51, 52, 53, 54,
2934
55, 56, 57, -1, 59, 60, -1, 62, 63, -1,
2935
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2936
-1, -1, -1, -1, -1, -1, -1, 82, -1, -1,
2937
85, 86, -1, 88, 89, -1, 91, 92, 93, 94,
2938
95, 96, 97, 98, -1, -1, -1, -1, -1, -1,
2939
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2940
-1, 116, 117, 118, -1, -1, -1, -1, -1, -1,
2941
-1, -1, -1, 128, 3, 4, 5, 6, 7, 8,
2942
9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2943
19, 20, 21, 22, 23, 24, 25, 26, -1, -1,
2944
29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
2945
-1, -1, -1, -1, -1, 44, 45, 46, 47, 48,
2946
49, 50, 51, 52, 53, 54, 55, -1, -1, -1,
2947
-1, -1, -1, 62, 63, 64, 65, 66, 67, -1,
2948
69, 70, -1, -1, 73, -1, -1, -1, 77, 78,
2949
79, 80, -1, -1, -1, -1, -1, -1, -1, -1,
2950
-1, -1, 91, -1, -1, -1, -1, -1, -1, -1,
2951
-1, -1, -1, -1, -1, -1, -1, 106, 107, 108,
2952
109, 110, 111, 112, 113, 114, 115, -1, -1, 118,
2953
-1, -1, -1, -1, -1, -1, -1, -1, 127, 3,
2954
4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
2955
14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
2956
24, 25, 26, -1, -1, 29, 30, 31, 32, 33,
2957
34, 35, 36, 37, 38, -1, -1, -1, -1, -1,
2958
44, 45, 46, 47, 48, 49, 50, 51, 52, -1,
2959
54, -1, -1, -1, -1, -1, -1, -1, 62, 63,
2960
64, 65, 66, 67, -1, 69, 70, -1, -1, 73,
2961
-1, -1, -1, 77, 78, 79, 80, -1, -1, -1,
2962
-1, -1, -1, -1, -1, -1, -1, 91, -1, 93,
2963
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2964
-1, -1, 106, 107, 108, 109, 110, 111, 112, 113,
2965
114, 115, -1, -1, 118, -1, -1, -1, -1, -1,
2966
-1, -1, -1, 127, 3, 4, 5, 6, 7, 8,
2967
9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2968
19, 20, 21, 22, 23, 24, 25, 26, -1, -1,
2969
29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
2970
-1, -1, -1, -1, -1, 44, 45, 46, 47, 48,
2971
49, 50, 51, -1, -1, 54, -1, -1, -1, -1,
2972
-1, -1, -1, 62, 63, 64, 65, 66, 67, -1,
2973
69, 70, -1, -1, 73, -1, -1, -1, 77, 78,
2974
79, 80, -1, -1, -1, -1, -1, -1, -1, -1,
2975
-1, -1, 91, -1, 93, -1, -1, -1, -1, -1,
2976
-1, -1, -1, -1, -1, -1, -1, 106, 107, 108,
2977
109, 110, 111, 112, 113, 114, 115, -1, -1, 118,
2978
-1, -1, -1, -1, -1, -1, -1, -1, 127, 3,
2979
4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
2980
14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
2981
24, 25, 26, -1, -1, 29, 30, 31, 32, 33,
2982
34, 35, 36, 37, 38, -1, -1, -1, -1, -1,
2983
44, 45, 46, 47, 48, 49, 50, 51, -1, -1,
2984
54, -1, -1, -1, -1, -1, -1, -1, 62, 63,
2985
64, 65, 66, 67, -1, 69, 70, -1, -1, 73,
2986
-1, -1, -1, 77, 78, 79, 80, -1, -1, -1,
2987
-1, -1, -1, -1, -1, -1, -1, 91, -1, -1,
2988
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2989
-1, -1, 106, 107, 108, 109, 110, 111, 112, 113,
2990
114, 115, -1, -1, 118, -1, 3, 4, 5, -1,
2991
7, -1, -1, 127, 11, 12, -1, -1, -1, 16,
2992
-1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
2993
-1, -1, 29, 30, 31, 32, 33, 34, 35, -1,
2994
-1, -1, -1, -1, -1, -1, -1, -1, 45, -1,
2995
-1, 48, 49, 50, 51, 52, 53, 54, 55, 56,
2996
57, -1, 59, 60, -1, 62, 63, -1, -1, -1,
2997
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2998
-1, -1, -1, -1, -1, 82, -1, -1, 85, 86,
2999
-1, 88, 89, -1, 91, 92, 93, 94, 95, 96,
3000
97, 98, -1, -1, -1, -1, -1, -1, -1, -1,
3001
-1, -1, -1, -1, 3, 4, 5, 6, 7, 116,
3002
117, 118, 11, 12, -1, -1, -1, 16, 125, 18,
3003
19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3004
29, 30, 31, 32, 33, 34, 35, -1, -1, 38,
3005
-1, -1, -1, -1, -1, 44, 45, 46, 47, 48,
3006
49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3007
59, 60, -1, 62, 63, -1, -1, -1, -1, -1,
3008
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3009
-1, -1, -1, 82, -1, -1, 85, 86, -1, 88,
3010
89, -1, 91, -1, 93, 94, 95, 96, 97, 98,
3011
-1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
3012
-1, 7, -1, -1, -1, 11, 12, 116, 117, 118,
3013
16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
3014
-1, -1, -1, 29, 30, 31, 32, 33, 34, 35,
3015
-1, -1, 38, -1, -1, -1, -1, -1, -1, 45,
3016
-1, -1, 48, 49, 50, 51, 52, 53, 54, 55,
3017
56, 57, -1, 59, 60, -1, 62, 63, -1, -1,
3018
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3019
-1, -1, -1, -1, -1, -1, 82, -1, -1, 85,
3020
86, -1, 88, 89, -1, 91, 92, 93, 94, 95,
3021
96, 97, 98, -1, -1, -1, -1, -1, -1, -1,
3022
3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
3023
116, 117, 118, 16, -1, 18, 19, 20, 21, 22,
3024
23, 24, -1, -1, -1, -1, 29, 30, 31, 32,
3025
33, 34, 35, -1, -1, -1, -1, -1, -1, -1,
3026
-1, -1, 45, -1, -1, 48, 49, 50, 51, 52,
3027
53, 54, 55, 56, 57, -1, 59, 60, -1, 62,
3028
63, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3029
-1, -1, -1, -1, -1, -1, -1, -1, -1, 82,
3030
-1, -1, 85, 86, -1, 88, 89, -1, 91, 92,
3031
93, 94, 95, 96, 97, 98, -1, -1, -1, -1,
3032
-1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
3033
-1, 11, 12, 116, 117, 118, 16, -1, 18, 19,
3034
20, 21, 22, 23, 24, -1, -1, -1, -1, 29,
3035
30, 31, 32, 33, 34, 35, -1, -1, -1, -1,
3036
-1, -1, -1, -1, -1, 45, -1, -1, 48, 49,
3037
50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
3038
60, -1, 62, 63, -1, -1, -1, -1, -1, -1,
3039
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3040
-1, -1, 82, -1, -1, 85, 86, -1, 88, 89,
3041
-1, 91, 92, 93, 94, 95, 96, 97, 98, -1,
3042
-1, -1, -1, -1, -1, -1, 3, 4, 5, -1,
3043
7, -1, -1, -1, 11, 12, 116, 117, 118, 16,
3044
-1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
3045
-1, -1, 29, 30, 31, 32, 33, 34, 35, -1,
3046
-1, -1, -1, -1, -1, -1, -1, -1, 45, -1,
3047
-1, 48, 49, 50, 51, 52, 53, 54, 55, 56,
3048
57, -1, 59, 60, -1, 62, 63, -1, -1, -1,
3049
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3050
-1, -1, -1, -1, -1, 82, -1, -1, 85, 86,
3051
-1, 88, 89, -1, 91, 92, 93, 94, 95, 96,
3052
97, 98, -1, -1, -1, -1, -1, -1, -1, 3,
3053
4, 5, -1, 7, -1, -1, -1, 11, 12, 116,
3054
117, 118, 16, -1, 18, 19, 20, 21, 22, 23,
3055
24, -1, -1, -1, -1, 29, 30, 31, 32, 33,
3056
34, 35, -1, -1, -1, -1, -1, -1, -1, -1,
3057
-1, 45, -1, -1, 48, 49, 50, 51, 52, 53,
3058
54, 55, 56, 57, -1, 59, 60, -1, 62, 63,
3059
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3060
-1, -1, -1, -1, -1, -1, -1, -1, 82, -1,
3061
-1, 85, 86, -1, 88, 89, -1, 91, 92, 93,
3062
94, 95, 96, 97, 98, -1, -1, -1, -1, -1,
3063
-1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
3064
11, 12, 116, 117, 118, 16, -1, 18, 19, 20,
3065
21, 22, 23, 24, -1, -1, -1, -1, 29, 30,
3066
31, 32, 33, 34, 35, -1, -1, -1, -1, -1,
3067
-1, -1, -1, -1, 45, -1, -1, 48, 49, 50,
3068
51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
3069
-1, 62, 63, -1, -1, -1, -1, -1, -1, -1,
3070
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3071
-1, 82, -1, -1, 85, 86, -1, 88, 89, -1,
3072
91, 92, 93, 94, 95, 96, 97, 98, -1, -1,
3073
-1, -1, -1, -1, -1, 3, 4, 5, -1, 7,
3074
-1, -1, -1, 11, 12, 116, 117, 118, 16, -1,
3075
18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
3076
-1, 29, 30, 31, 32, 33, 34, 35, -1, -1,
3077
-1, -1, -1, -1, -1, -1, -1, 45, -1, -1,
3078
48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3079
-1, 59, 60, -1, 62, 63, -1, -1, -1, -1,
3080
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3081
-1, -1, -1, -1, 82, -1, -1, 85, 86, -1,
3082
88, 89, -1, 91, 92, 93, 94, 95, 96, 97,
3083
98, -1, -1, -1, -1, -1, -1, -1, 3, 4,
3084
5, -1, 7, -1, -1, -1, 11, 12, 116, 117,
3085
118, 16, -1, 18, 19, 20, 21, 22, 23, 24,
3086
-1, -1, -1, -1, 29, 30, 31, 32, 33, 34,
3087
35, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3088
45, -1, -1, 48, 49, 50, 51, 52, 53, 54,
3089
55, 56, 57, -1, 59, 60, -1, 62, 63, -1,
3090
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3091
-1, -1, -1, -1, -1, -1, -1, 82, -1, -1,
3092
85, 86, -1, 88, 89, -1, 91, 92, 93, 94,
3093
95, 96, 97, 98, -1, -1, -1, -1, -1, -1,
3094
-1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
3095
12, 116, 117, 118, 16, -1, 18, 19, 20, 21,
3096
22, 23, 24, -1, -1, -1, -1, 29, 30, 31,
3097
32, 33, 34, 35, -1, -1, -1, -1, -1, -1,
3098
-1, -1, -1, 45, -1, -1, 48, 49, 50, 51,
3099
52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
3100
62, 63, -1, -1, -1, -1, -1, -1, -1, -1,
3101
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3102
82, -1, -1, 85, 86, -1, 88, 89, -1, 91,
3103
92, 93, 94, 95, 96, 97, 98, -1, -1, -1,
3104
-1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
3105
-1, -1, 11, 12, 116, 117, 118, 16, -1, 18,
3106
19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3107
29, 30, 31, 32, 33, 34, 35, -1, -1, -1,
3108
-1, -1, -1, -1, -1, -1, 45, -1, -1, 48,
3109
49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3110
59, 60, -1, 62, 63, -1, -1, -1, -1, -1,
3111
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3112
-1, -1, -1, 82, -1, -1, 85, 86, -1, 88,
3113
89, -1, 91, 92, 93, 94, 95, 96, 97, 98,
3114
-1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
3115
-1, 7, -1, -1, -1, 11, 12, 116, 117, 118,
3116
16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
3117
-1, -1, -1, 29, 30, 31, 32, 33, 34, 35,
3118
-1, -1, -1, -1, -1, -1, -1, -1, -1, 45,
3119
-1, -1, 48, 49, 50, 51, 52, 53, 54, 55,
3120
56, 57, -1, 59, 60, -1, 62, 63, -1, -1,
3121
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3122
-1, -1, -1, -1, -1, -1, 82, -1, -1, 85,
3123
86, -1, 88, 89, -1, 91, 92, 93, 94, 95,
3124
96, 97, 98, -1, -1, -1, -1, -1, -1, -1,
3125
3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
3126
116, 117, 118, 16, -1, 18, 19, 20, 21, 22,
3127
23, 24, -1, -1, -1, -1, 29, 30, 31, 32,
3128
33, 34, 35, -1, -1, -1, -1, -1, -1, -1,
3129
-1, -1, 45, -1, -1, 48, 49, 50, 51, 52,
3130
53, 54, 55, 56, 57, -1, 59, 60, -1, 62,
3131
63, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3132
-1, -1, -1, -1, -1, -1, -1, -1, -1, 82,
3133
-1, -1, 85, 86, -1, 88, 89, -1, 91, 92,
3134
93, 94, 95, 96, 97, 98, -1, -1, -1, -1,
3135
-1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
3136
-1, 11, 12, 116, 117, 118, 16, -1, 18, 19,
3137
20, 21, 22, 23, 24, -1, -1, -1, -1, 29,
3138
30, 31, 32, 33, 34, 35, -1, -1, 38, -1,
3139
-1, -1, -1, -1, -1, 45, -1, -1, 48, 49,
3140
50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
3141
60, -1, 62, 63, -1, -1, -1, -1, -1, -1,
3142
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3143
-1, -1, 82, -1, -1, 85, 86, -1, 88, 89,
3144
-1, -1, -1, 93, 94, 95, 96, 97, 98, -1,
3145
-1, -1, -1, -1, -1, -1, 3, 4, 5, -1,
3146
7, -1, -1, -1, 11, 12, 116, 117, 118, 16,
3147
-1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
3148
-1, -1, 29, 30, 31, 32, 33, 34, 35, -1,
3149
-1, -1, -1, -1, -1, -1, -1, -1, 45, -1,
3150
-1, 48, 49, 50, 51, 52, 53, 54, 55, 56,
3151
57, -1, 59, 60, -1, 62, 63, -1, -1, -1,
3152
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3153
-1, -1, -1, -1, -1, 82, -1, -1, 85, 86,
3154
-1, 88, 89, -1, 91, -1, 93, 94, 95, 96,
3155
97, 98, -1, -1, -1, -1, -1, -1, -1, 3,
3156
4, 5, -1, 7, -1, -1, -1, 11, 12, 116,
3157
117, 118, 16, -1, 18, 19, 20, 21, 22, 23,
3158
24, -1, -1, -1, -1, 29, 30, 31, 32, 33,
3159
34, 35, -1, -1, -1, -1, -1, -1, -1, -1,
3160
-1, 45, -1, -1, 48, 49, 50, 51, 52, 53,
3161
54, 55, 56, 57, -1, 59, 60, -1, 62, 63,
3162
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3163
-1, -1, -1, -1, -1, -1, -1, -1, 82, -1,
3164
-1, 85, 86, -1, 88, 89, -1, 91, -1, 93,
3165
94, 95, 96, 97, 98, -1, -1, -1, -1, -1,
3166
-1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
3167
11, 12, 116, 117, 118, 16, -1, 18, 19, 20,
3168
21, 22, 23, 24, -1, -1, -1, -1, 29, 30,
3169
31, 32, 33, 34, 35, -1, -1, -1, -1, -1,
3170
-1, -1, -1, -1, 45, -1, -1, 48, 49, 50,
3171
51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
3172
-1, 62, 63, -1, -1, -1, -1, -1, -1, -1,
3173
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3174
-1, 82, -1, -1, 85, 86, -1, 88, 89, -1,
3175
91, -1, 93, 94, 95, 96, 97, 98, -1, -1,
3176
-1, -1, -1, -1, -1, 3, 4, 5, -1, 7,
3177
-1, -1, -1, 11, 12, 116, 117, 118, 16, -1,
3178
18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
3179
-1, 29, 30, 31, 32, 33, 34, 35, -1, -1,
3180
-1, -1, -1, -1, -1, -1, -1, 45, -1, -1,
3181
48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3182
-1, 59, 60, -1, 62, 63, -1, -1, -1, -1,
3183
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3184
-1, -1, -1, -1, 82, -1, -1, 85, 86, -1,
3185
88, 89, -1, 91, -1, 93, 94, 95, 96, 97,
3186
98, -1, -1, -1, -1, -1, -1, -1, 3, 4,
3187
5, -1, 7, -1, -1, -1, 11, 12, 116, 117,
3188
118, 16, -1, 18, 19, 20, 21, 22, 23, 24,
3189
-1, -1, -1, -1, 29, 30, 31, 32, 33, 34,
3190
35, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3191
45, -1, -1, 48, 49, 50, 51, 52, 53, 54,
3192
55, 56, 57, -1, 59, 60, -1, 62, 63, -1,
3193
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3194
-1, -1, -1, -1, -1, -1, -1, 82, -1, -1,
3195
85, 86, -1, 88, 89, -1, 91, -1, 93, 94,
3196
95, 96, 97, 98, -1, -1, -1, -1, -1, -1,
3197
-1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
3198
12, 116, 117, 118, 16, -1, 18, 19, 20, 21,
3199
22, 23, 24, -1, -1, -1, -1, 29, 30, 31,
3200
32, 33, 34, 35, -1, -1, -1, -1, -1, -1,
3201
-1, -1, -1, 45, -1, -1, 48, 49, 50, 51,
3202
52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
3203
62, 63, -1, -1, -1, -1, -1, -1, -1, -1,
3204
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3205
82, -1, -1, 85, 86, -1, 88, 89, -1, 91,
3206
-1, 93, 94, 95, 96, 97, 98, -1, -1, -1,
3207
-1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
3208
-1, -1, 11, 12, 116, 117, 118, 16, -1, 18,
3209
19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3210
29, 30, 31, 32, 33, 34, 35, -1, -1, -1,
3211
-1, -1, -1, -1, -1, -1, 45, -1, -1, 48,
3212
49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3213
59, 60, -1, 62, 63, -1, -1, -1, -1, -1,
3214
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3215
-1, -1, -1, 82, -1, -1, 85, 86, -1, 88,
3216
89, -1, 91, -1, 93, 94, 95, 96, 97, 98,
3217
-1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
3218
-1, 7, -1, -1, -1, 11, 12, 116, 117, 118,
3219
16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
3220
-1, -1, -1, 29, 30, 31, 32, 33, 34, 35,
3221
-1, -1, -1, -1, -1, -1, -1, -1, -1, 45,
3222
-1, -1, 48, 49, 50, 51, 52, 53, 54, 55,
3223
56, 57, -1, 59, 60, -1, 62, 63, -1, -1,
3224
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3225
-1, -1, -1, -1, -1, -1, 82, -1, -1, 85,
3226
86, -1, 88, 89, -1, -1, -1, 93, 94, 95,
3227
96, 97, 98, -1, -1, -1, -1, -1, -1, -1,
3228
3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
3229
116, 117, 118, 16, -1, 18, 19, 20, 21, 22,
3230
23, 24, -1, -1, -1, -1, 29, 30, 31, 32,
3231
33, 34, 35, -1, -1, -1, -1, -1, -1, -1,
3232
-1, -1, 45, -1, -1, 48, 49, 50, 51, 52,
3233
53, 54, 55, 56, 57, -1, 59, 60, -1, 62,
3234
63, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3235
-1, -1, -1, -1, -1, -1, -1, -1, -1, 82,
3236
-1, -1, 85, 86, -1, 88, 89, -1, -1, -1,
3237
93, 94, 95, 96, 97, 98, -1, -1, -1, -1,
3238
-1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
3239
-1, 11, 12, 116, 117, 118, 16, -1, 18, 19,
3240
20, 21, 22, 23, 24, -1, -1, -1, -1, 29,
3241
30, 31, 32, 33, 34, 35, -1, -1, -1, -1,
3242
-1, -1, -1, -1, -1, 45, -1, -1, 48, 49,
3243
50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
3244
60, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3245
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3246
-1, -1, 82, -1, -1, 85, 86, -1, 88, 89,
3247
-1, 91, -1, 93, 94, 95, 96, 97, 98, -1,
3248
-1, -1, 3, 4, 5, -1, 7, -1, 108, -1,
3249
11, 12, -1, -1, -1, 16, 116, 18, 19, 20,
3250
21, 22, 23, 24, -1, -1, -1, -1, 29, 30,
3251
31, 32, 33, 34, 35, -1, -1, -1, -1, -1,
3252
-1, -1, -1, -1, 45, -1, -1, 48, 49, 50,
3253
51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
3254
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3255
-1, -1, -1, -1, -1, -1, -1, -1, 79, -1,
3256
-1, 82, -1, -1, 85, 86, -1, 88, 89, -1,
3257
-1, -1, 93, 94, 95, 96, 97, 98, -1, -1,
3258
-1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
3259
12, -1, -1, -1, 16, 116, 18, 19, 20, 21,
3260
22, 23, 24, -1, -1, -1, -1, 29, 30, 31,
3261
32, 33, 34, 35, -1, -1, -1, -1, -1, -1,
3262
-1, -1, -1, 45, -1, -1, 48, 49, 50, 51,
3263
52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
3264
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3265
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3266
82, -1, -1, 85, 86, -1, 88, 89, -1, 91,
3267
-1, 93, 94, 95, 96, 97, 98, -1, -1, -1,
3268
3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
3269
-1, -1, -1, 16, 116, 18, 19, 20, 21, 22,
3270
23, 24, -1, -1, -1, -1, 29, 30, 31, 32,
3271
33, 34, 35, -1, -1, -1, -1, -1, -1, -1,
3272
-1, -1, 45, -1, -1, 48, 49, 50, 51, 52,
3273
53, 54, 55, 56, 57, -1, 59, 60, -1, -1,
3274
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3275
-1, -1, -1, -1, -1, -1, -1, -1, -1, 82,
3276
-1, -1, 85, 86, -1, 88, 89, -1, 91, -1,
3277
93, 94, 95, 96, 97, 98, -1, -1, -1, 3,
3278
4, 5, -1, 7, -1, -1, -1, 11, 12, -1,
3279
-1, -1, 16, 116, 18, 19, 20, 21, 22, 23,
3280
24, -1, -1, -1, -1, 29, 30, 31, 32, 33,
3281
34, 35, -1, -1, -1, -1, -1, -1, -1, -1,
3282
-1, 45, -1, -1, 48, 49, 50, 51, 52, 53,
3283
54, 55, 56, 57, -1, 59, 60, -1, -1, -1,
3284
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3285
-1, -1, -1, -1, -1, -1, -1, -1, 82, -1,
3286
-1, 85, 86, -1, 88, 89, -1, -1, -1, 93,
3287
94, 95, 96, 97, 98, -1, -1, -1, 3, 4,
3288
5, -1, 7, -1, -1, -1, 11, 12, -1, -1,
3289
-1, 16, 116, 18, 19, 20, 21, 22, 23, 24,
3290
-1, -1, -1, -1, 29, 30, 31, 32, 33, 34,
3291
35, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3292
45, -1, -1, 48, 49, 50, 51, 52, 53, 54,
3293
55, 56, 57, -1, 59, 60, -1, -1, -1, -1,
3294
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3295
-1, -1, -1, -1, -1, -1, -1, 82, -1, -1,
3296
85, 86, -1, 88, 89, -1, -1, -1, 93, 94,
3297
95, 96, 97, 98, -1, -1, -1, 3, 4, 5,
3298
-1, 7, -1, -1, -1, 11, 12, -1, -1, -1,
3299
16, 116, 18, 19, 20, 21, 22, 23, 24, -1,
3300
-1, -1, -1, 29, 30, 31, 32, 33, 34, 35,
3301
-1, -1, -1, -1, -1, -1, -1, -1, -1, 45,
3302
-1, -1, 48, 49, 50, 51, 52, 53, 54, 55,
3303
56, 57, -1, 59, 60, -1, -1, -1, -1, -1,
3304
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3305
-1, -1, -1, -1, -1, -1, 82, -1, -1, 85,
3306
86, -1, 88, 89, -1, -1, -1, 93, 94, 95,
3307
96, 97, 98, -1, -1, -1, -1, -1, -1, 50,
3308
51, -1, -1, 54, -1, -1, -1, -1, -1, -1,
3309
116, 62, 63, 64, 65, 66, 67, -1, 69, 70,
3310
-1, -1, 73, -1, -1, -1, 77, 78, 79, 80,
3311
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3312
91, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3313
-1, -1, -1, -1, -1, 106, 107, 108, 109, 110,
3314
111, 112, 113, 114, 115, 50, 51, 118, -1, 54,
3315
-1, -1, -1, -1, -1, -1, 127, 62, 63, 64,
3316
65, 66, 67, -1, 69, 70, -1, -1, 73, -1,
3317
-1, -1, 77, 78, 79, 80, -1, -1, -1, -1,
3318
-1, -1, -1, -1, -1, -1, 91, -1, -1, -1,
3319
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3320
-1, 106, 107, 108, 109, 110, 111, 112, 113, 114,
3321
115, 50, 51, 118, -1, 54, -1, -1, -1, -1,
3322
-1, -1, 127, 62, 63, 64, 65, 66, 67, -1,
3323
69, 70, -1, -1, 73, -1, -1, -1, 77, 78,
3324
79, 80, -1, -1, -1, -1, -1, -1, -1, -1,
3325
-1, -1, 91, -1, -1, -1, -1, -1, -1, -1,
3326
-1, -1, -1, -1, -1, -1, -1, 106, 107, 108,
3327
109, 110, 111, 112, 113, 114, 115, 50, 51, 118,
3328
-1, 54, -1, -1, -1, -1, -1, -1, 127, 62,
3329
63, 64, 65, 66, 67, -1, 69, 70, -1, -1,
3330
73, -1, -1, -1, 77, 78, 79, 80, -1, -1,
3331
-1, -1, -1, -1, -1, -1, -1, -1, 91, -1,
3332
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3333
-1, -1, -1, 106, 107, 108, 109, 110, 111, 112,
3334
113, 114, 115, 50, 51, 118, -1, 54, -1, -1,
3335
-1, -1, -1, -1, 127, 62, 63, 64, 65, 66,
3336
67, -1, 69, 70, -1, -1, 73, -1, -1, -1,
3337
77, 78, 79, 80, -1, -1, -1, -1, -1, -1,
3338
-1, -1, -1, -1, 91, -1, -1, -1, -1, -1,
3339
-1, -1, -1, -1, -1, -1, -1, -1, -1, 106,
3340
107, 108, 109, 110, 111, 112, 113, 114, 115, 50,
3341
51, 118, -1, 54, -1, -1, -1, -1, -1, -1,
3342
127, 62, 63, 64, 65, 66, 67, -1, 69, 70,
3343
-1, -1, 73, -1, -1, -1, 77, 78, 79, 80,
3344
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3345
91, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3346
-1, -1, -1, -1, -1, 106, 107, 108, 109, 110,
3347
111, 112, 113, 114, 115, 50, 51, 118, -1, 54,
3348
-1, -1, -1, -1, -1, -1, 127, 62, 63, 64,
3349
65, 66, 67, -1, 69, 70, -1, -1, 73, -1,
3350
-1, -1, 77, 78, 79, 80, -1, -1, -1, -1,
3351
-1, -1, -1, -1, -1, -1, 91, -1, -1, -1,
3352
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3353
-1, 106, 107, 108, 109, 110, 111, 112, 113, 114,
3354
115, 50, 51, 118, -1, 54, -1, -1, -1, -1,
3355
-1, -1, 127, 62, 63, 64, 65, 66, 67, -1,
3356
69, 70, -1, -1, 73, -1, -1, -1, 77, 78,
3357
79, 80, -1, -1, -1, -1, -1, -1, -1, -1,
3358
-1, -1, 91, -1, -1, -1, -1, -1, -1, -1,
3359
-1, -1, -1, -1, -1, -1, -1, 106, 107, 108,
3360
109, 110, 111, 112, 113, 114, 115, 50, 51, 118,
3361
-1, 54, -1, -1, -1, -1, -1, -1, 127, 62,
3362
63, 64, 65, 66, 67, -1, 69, 70, -1, -1,
3363
73, -1, -1, -1, 77, 78, 79, 80, -1, -1,
3364
-1, -1, -1, -1, -1, -1, -1, -1, 91, -1,
3365
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3366
-1, -1, -1, 106, 107, 108, 109, 110, 111, 112,
3367
113, 114, 115, 50, 51, 118, -1, 54, -1, -1,
3368
-1, -1, -1, -1, 127, 62, 63, 64, 65, 66,
3369
67, -1, 69, 70, -1, -1, 73, -1, -1, -1,
3370
77, 78, 79, 80, -1, -1, -1, -1, -1, -1,
3371
-1, -1, -1, -1, 91, -1, -1, -1, -1, -1,
3372
-1, -1, -1, -1, -1, -1, -1, -1, -1, 106,
3373
107, 108, 109, 110, 111, 112, 113, 114, 115, 50,
3374
51, 118, -1, 54, -1, -1, -1, -1, -1, -1,
3375
127, 62, 63, 64, 65, 66, 67, -1, 69, 70,
3376
-1, -1, 73, -1, -1, -1, 77, 78, 79, 80,
3377
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3378
91, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3379
-1, -1, -1, -1, -1, 106, 107, 108, 109, 110,
3380
111, 112, 113, 114, 115, -1, -1, 118, -1, -1,
3381
-1, -1, -1, -1, -1, -1, 127, 64, 65, 66,
3382
67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
3383
-1, -1, 79, 80, -1, -1, -1, -1, -1, -1,
3384
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3385
-1, -1, -1, -1, -1, -1, -1, 104, -1, 106,
3386
107, 108, 109, 110, 111, 112, 113, 114, 115, 64,
3387
65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
3388
75, 76, -1, 130, 79, 80, -1, -1, -1, 84,
3389
64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
3390
74, 75, 76, -1, -1, 79, 80, -1, -1, 104,
3391
-1, 106, 107, 108, 109, 110, 111, 112, 113, 114,
3392
115, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3393
104, 126, 106, 107, 108, 109, 110, 111, 112, 113,
3394
114, 115, -1, -1, -1, -1, -1, -1, -1, -1,
3395
-1, -1, 126, 64, 65, 66, 67, 68, 69, 70,
3396
71, 72, 73, 74, 75, 76, -1, -1, 79, 80,
3397
64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
3398
74, 75, 76, -1, -1, 79, 80, -1, -1, -1,
3399
-1, -1, -1, 104, -1, 106, 107, 108, 109, 110,
3400
111, 112, 113, 114, 115, -1, -1, -1, -1, -1,
3401
-1, -1, 106, 107, 108, 109, 110, 111, 112, 113,
3402
114, 115, 64, 65, 66, 67, 68, 69, 70, -1,
3403
-1, 73, 74, -1, -1, -1, -1, 79, 80, 64,
3404
65, 66, 67, 68, 69, 70, -1, -1, 73, 74,
3405
-1, -1, -1, -1, 79, 80, -1, -1, -1, -1,
3406
-1, -1, -1, -1, 106, 107, 108, 109, 110, 111,
3407
112, 113, 114, 115, -1, -1, -1, -1, -1, -1,
3408
-1, 106, 107, 108, 109, 110, 111, 112, 113, 114,
3412
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
3413
symbol of state STATE-NUM. */
3414
static const yytype_uint16 yystos[] =
3416
0, 133, 134, 0, 1, 3, 4, 5, 6, 7,
3417
11, 12, 16, 18, 19, 20, 21, 22, 23, 24,
3418
29, 30, 31, 32, 33, 34, 35, 38, 44, 45,
3419
46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
3420
56, 57, 59, 60, 62, 63, 82, 85, 86, 88,
3421
89, 91, 93, 94, 95, 96, 97, 98, 116, 117,
3422
118, 136, 137, 138, 141, 143, 144, 148, 149, 151,
3423
152, 153, 154, 155, 165, 182, 199, 209, 210, 223,
3424
224, 225, 226, 227, 228, 229, 232, 240, 242, 243,
3425
244, 245, 246, 247, 266, 275, 138, 21, 22, 29,
3426
30, 31, 45, 50, 54, 79, 82, 85, 116, 156,
3427
157, 182, 199, 244, 247, 266, 157, 3, 4, 5,
3428
6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
3429
16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
3430
26, 29, 30, 31, 32, 33, 34, 35, 36, 37,
3431
38, 44, 45, 46, 47, 48, 49, 50, 51, 54,
3432
62, 63, 64, 65, 66, 67, 69, 70, 73, 77,
3433
78, 79, 80, 91, 106, 107, 108, 109, 110, 111,
3434
112, 113, 114, 115, 118, 127, 128, 158, 163, 164,
3435
245, 261, 32, 33, 34, 35, 48, 49, 50, 54,
3436
158, 159, 160, 161, 240, 242, 183, 82, 141, 142,
3437
155, 199, 244, 246, 247, 142, 130, 131, 142, 270,
3438
273, 274, 186, 188, 82, 149, 155, 199, 204, 244,
3439
247, 91, 92, 117, 148, 165, 167, 171, 178, 180,
3440
264, 265, 171, 171, 128, 173, 174, 128, 169, 173,
3441
141, 52, 160, 130, 271, 140, 120, 165, 199, 165,
3442
54, 85, 136, 150, 151, 141, 91, 148, 168, 180,
3443
264, 275, 180, 263, 264, 275, 82, 154, 199, 244,
3444
247, 52, 53, 55, 158, 235, 241, 234, 235, 235,
3445
129, 230, 129, 233, 56, 57, 143, 165, 165, 270,
3446
274, 39, 40, 41, 42, 43, 36, 37, 28, 206,
3447
103, 126, 85, 91, 152, 103, 64, 65, 66, 67,
3448
68, 69, 70, 71, 72, 73, 74, 75, 76, 79,
3449
80, 104, 106, 107, 108, 109, 110, 111, 112, 113,
3450
114, 115, 81, 122, 124, 81, 124, 26, 120, 211,
3451
226, 83, 83, 169, 173, 211, 271, 141, 50, 54,
3452
156, 56, 57, 1, 107, 248, 273, 81, 122, 124,
3453
195, 262, 196, 81, 124, 269, 126, 135, 136, 54,
3454
13, 105, 200, 273, 103, 81, 122, 124, 83, 83,
3455
200, 270, 15, 17, 216, 131, 142, 142, 54, 81,
3456
122, 124, 25, 167, 167, 84, 126, 179, 275, 126,
3457
179, 125, 171, 86, 171, 175, 148, 171, 180, 209,
3458
275, 52, 59, 60, 139, 128, 166, 120, 136, 81,
3459
124, 83, 150, 125, 125, 184, 165, 271, 123, 126,
3460
130, 272, 126, 272, 126, 272, 121, 272, 54, 81,
3461
122, 124, 58, 99, 100, 101, 236, 101, 236, 101,
3462
61, 101, 101, 231, 236, 101, 58, 101, 64, 64,
3463
138, 142, 142, 142, 142, 138, 141, 141, 207, 91,
3464
143, 167, 180, 181, 150, 154, 126, 143, 165, 167,
3465
181, 165, 165, 165, 165, 165, 165, 165, 165, 165,
3466
165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
3467
165, 165, 165, 165, 165, 165, 165, 50, 51, 54,
3468
163, 267, 268, 168, 50, 51, 54, 163, 267, 50,
3469
54, 267, 267, 214, 212, 143, 165, 143, 165, 90,
3470
145, 193, 273, 249, 192, 50, 54, 156, 267, 168,
3471
267, 135, 141, 50, 52, 53, 54, 55, 91, 92,
3472
110, 113, 128, 250, 251, 252, 253, 254, 255, 256,
3473
257, 258, 259, 197, 162, 10, 8, 219, 275, 136,
3474
13, 165, 50, 54, 168, 50, 54, 136, 216, 136,
3475
91, 180, 217, 10, 27, 105, 201, 273, 201, 50,
3476
54, 168, 50, 54, 190, 126, 179, 167, 91, 167,
3477
178, 264, 91, 167, 265, 125, 91, 165, 167, 172,
3478
176, 178, 264, 271, 126, 81, 124, 271, 125, 160,
3479
185, 165, 136, 121, 165, 125, 271, 271, 91, 167,
3480
50, 54, 168, 50, 54, 238, 237, 129, 236, 129,
3481
165, 165, 72, 108, 205, 275, 167, 126, 125, 43,
3482
105, 83, 83, 169, 173, 123, 83, 83, 169, 170,
3483
173, 275, 170, 173, 170, 173, 205, 205, 146, 273,
3484
142, 135, 123, 10, 271, 103, 251, 135, 273, 126,
3485
260, 275, 126, 260, 50, 126, 260, 50, 158, 160,
3486
167, 181, 220, 275, 15, 203, 275, 14, 202, 203,
3487
83, 123, 83, 83, 203, 10, 10, 167, 126, 200,
3488
187, 189, 123, 142, 167, 126, 179, 167, 167, 126,
3489
177, 125, 126, 179, 125, 148, 209, 267, 267, 125,
3490
141, 121, 125, 165, 123, 136, 52, 53, 55, 239,
3491
247, 108, 204, 208, 91, 167, 165, 165, 143, 165,
3492
165, 145, 83, 143, 165, 143, 165, 145, 215, 213,
3493
205, 194, 273, 10, 125, 167, 271, 10, 252, 255,
3494
257, 259, 50, 254, 257, 198, 84, 221, 275, 136,
3495
9, 222, 275, 142, 10, 83, 10, 91, 136, 136,
3496
136, 201, 179, 91, 179, 179, 91, 178, 180, 264,
3497
125, 91, 271, 125, 271, 121, 108, 136, 167, 143,
3498
165, 136, 136, 147, 135, 125, 126, 260, 260, 260,
3499
250, 82, 155, 199, 244, 247, 200, 136, 200, 167,
3500
203, 216, 218, 10, 10, 191, 165, 167, 126, 179,
3501
126, 179, 167, 125, 10, 10, 121, 136, 10, 257,
3502
135, 54, 81, 122, 124, 136, 136, 136, 179, 179,
3503
91, 264, 91, 179, 121, 260, 10, 50, 54, 168,
3504
50, 54, 219, 202, 10, 167, 126, 179, 167, 123,
3505
179, 91, 179, 167, 179
3508
#define yyerrok (yyerrstatus = 0)
3509
#define yyclearin (yychar = YYEMPTY)
3510
#define YYEMPTY (-2)
3513
#define YYACCEPT goto yyacceptlab
3514
#define YYABORT goto yyabortlab
3515
#define YYERROR goto yyerrorlab
3518
/* Like YYERROR except do call yyerror. This remains here temporarily
3519
to ease the transition to the new meaning of YYERROR, for GCC.
3520
Once GCC version 2 has supplanted version 1, this can go. */
3522
#define YYFAIL goto yyerrlab
3524
#define YYRECOVERING() (!!yyerrstatus)
3526
#define YYBACKUP(Token, Value) \
3528
if (yychar == YYEMPTY && yylen == 1) \
3532
yytoken = YYTRANSLATE (yychar); \
3538
yyerror (YY_("syntax error: cannot back up")); \
3545
#define YYERRCODE 256
3548
/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
3549
If N is 0, then set CURRENT to the empty location which ends
3550
the previous symbol: RHS[0] (always defined). */
3552
#define YYRHSLOC(Rhs, K) ((Rhs)[K])
3553
#ifndef YYLLOC_DEFAULT
3554
# define YYLLOC_DEFAULT(Current, Rhs, N) \
3558
(Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
3559
(Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
3560
(Current).last_line = YYRHSLOC (Rhs, N).last_line; \
3561
(Current).last_column = YYRHSLOC (Rhs, N).last_column; \
3565
(Current).first_line = (Current).last_line = \
3566
YYRHSLOC (Rhs, 0).last_line; \
3567
(Current).first_column = (Current).last_column = \
3568
YYRHSLOC (Rhs, 0).last_column; \
3574
/* YY_LOCATION_PRINT -- Print the location on the stream.
3575
This macro was not mandated originally: define only if we know
3576
we won't break user code: when these are the locations we know. */
3578
#ifndef YY_LOCATION_PRINT
3579
# if YYLTYPE_IS_TRIVIAL
3580
# define YY_LOCATION_PRINT(File, Loc) \
3581
fprintf (File, "%d.%d-%d.%d", \
3582
(Loc).first_line, (Loc).first_column, \
3583
(Loc).last_line, (Loc).last_column)
3585
# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
3590
/* YYLEX -- calling `yylex' with the right arguments. */
3593
# define YYLEX yylex (YYLEX_PARAM)
3595
# define YYLEX yylex ()
3598
/* Enable debugging if requested. */
3602
# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
3603
# define YYFPRINTF fprintf
3606
# define YYDPRINTF(Args) \
3612
# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
3616
YYFPRINTF (stderr, "%s ", Title); \
3617
yy_symbol_print (stderr, \
3619
YYFPRINTF (stderr, "\n"); \
3624
/*--------------------------------.
3625
| Print this symbol on YYOUTPUT. |
3626
`--------------------------------*/
3629
#if (defined __STDC__ || defined __C99__FUNC__ \
3630
|| defined __cplusplus || defined _MSC_VER)
3632
yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
3635
yy_symbol_value_print (yyoutput, yytype, yyvaluep)
3638
YYSTYPE const * const yyvaluep;
3644
if (yytype < YYNTOKENS)
3645
YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
3657
/*--------------------------------.
3658
| Print this symbol on YYOUTPUT. |
3659
`--------------------------------*/
3661
#if (defined __STDC__ || defined __C99__FUNC__ \
3662
|| defined __cplusplus || defined _MSC_VER)
3664
yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
3667
yy_symbol_print (yyoutput, yytype, yyvaluep)
3670
YYSTYPE const * const yyvaluep;
3673
if (yytype < YYNTOKENS)
3674
YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
3676
YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
3678
yy_symbol_value_print (yyoutput, yytype, yyvaluep);
3679
YYFPRINTF (yyoutput, ")");
3682
/*------------------------------------------------------------------.
3683
| yy_stack_print -- Print the state stack from its BOTTOM up to its |
3685
`------------------------------------------------------------------*/
3687
#if (defined __STDC__ || defined __C99__FUNC__ \
3688
|| defined __cplusplus || defined _MSC_VER)
3690
yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
3693
yy_stack_print (bottom, top)
3694
yytype_int16 *bottom;
3698
YYFPRINTF (stderr, "Stack now");
3699
for (; bottom <= top; ++bottom)
3700
YYFPRINTF (stderr, " %d", *bottom);
3701
YYFPRINTF (stderr, "\n");
3704
# define YY_STACK_PRINT(Bottom, Top) \
3707
yy_stack_print ((Bottom), (Top)); \
3711
/*------------------------------------------------.
3712
| Report that the YYRULE is going to be reduced. |
3713
`------------------------------------------------*/
3715
#if (defined __STDC__ || defined __C99__FUNC__ \
3716
|| defined __cplusplus || defined _MSC_VER)
3718
yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
3721
yy_reduce_print (yyvsp, yyrule)
3726
int yynrhs = yyr2[yyrule];
3728
unsigned long int yylno = yyrline[yyrule];
3729
YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
3731
/* The symbols being reduced. */
3732
for (yyi = 0; yyi < yynrhs; yyi++)
3734
fprintf (stderr, " $%d = ", yyi + 1);
3735
yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
3736
&(yyvsp[(yyi + 1) - (yynrhs)])
3738
fprintf (stderr, "\n");
3742
# define YY_REDUCE_PRINT(Rule) \
3745
yy_reduce_print (yyvsp, Rule); \
3748
/* Nonzero means print parse trace. It is left uninitialized so that
3749
multiple parsers can coexist. */
3751
#else /* !YYDEBUG */
3752
# define YYDPRINTF(Args)
3753
# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
3754
# define YY_STACK_PRINT(Bottom, Top)
3755
# define YY_REDUCE_PRINT(Rule)
3756
#endif /* !YYDEBUG */
3759
/* YYINITDEPTH -- initial size of the parser's stacks. */
3761
# define YYINITDEPTH 200
3764
/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
3765
if the built-in stack extension method is used).
3767
Do not make this value too large; the results are undefined if
3768
YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
3769
evaluated with infinite-precision integer arithmetic. */
3772
# define YYMAXDEPTH 10000
3780
# if defined __GLIBC__ && defined _STRING_H
3781
# define yystrlen strlen
3783
/* Return the length of YYSTR. */
3784
#if (defined __STDC__ || defined __C99__FUNC__ \
3785
|| defined __cplusplus || defined _MSC_VER)
3787
yystrlen (const char *yystr)
3795
for (yylen = 0; yystr[yylen]; yylen++)
3803
# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
3804
# define yystpcpy stpcpy
3806
/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
3808
#if (defined __STDC__ || defined __C99__FUNC__ \
3809
|| defined __cplusplus || defined _MSC_VER)
3811
yystpcpy (char *yydest, const char *yysrc)
3814
yystpcpy (yydest, yysrc)
3820
const char *yys = yysrc;
3822
while ((*yyd++ = *yys++) != '\0')
3831
/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
3832
quotes and backslashes, so that it's suitable for yyerror. The
3833
heuristic is that double-quoting is unnecessary unless the string
3834
contains an apostrophe, a comma, or backslash (other than
3835
backslash-backslash). YYSTR is taken from yytname. If YYRES is
3836
null, do not copy; instead, return the length of what the result
3839
yytnamerr (char *yyres, const char *yystr)
3844
char const *yyp = yystr;
3851
goto do_not_strip_quotes;
3855
goto do_not_strip_quotes;
3868
do_not_strip_quotes: ;
3872
return yystrlen (yystr);
3874
return yystpcpy (yyres, yystr) - yyres;
3878
/* Copy into YYRESULT an error message about the unexpected token
3879
YYCHAR while in state YYSTATE. Return the number of bytes copied,
3880
including the terminating null byte. If YYRESULT is null, do not
3881
copy anything; just return the number of bytes that would be
3882
copied. As a special case, return 0 if an ordinary "syntax error"
3883
message will do. Return YYSIZE_MAXIMUM if overflow occurs during
3884
size calculation. */
3886
yysyntax_error (char *yyresult, int yystate, int yychar)
3888
int yyn = yypact[yystate];
3890
if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
3894
int yytype = YYTRANSLATE (yychar);
3895
YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
3896
YYSIZE_T yysize = yysize0;
3898
int yysize_overflow = 0;
3899
enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
3900
char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
3904
/* This is so xgettext sees the translatable formats that are
3905
constructed on the fly. */
3906
YY_("syntax error, unexpected %s");
3907
YY_("syntax error, unexpected %s, expecting %s");
3908
YY_("syntax error, unexpected %s, expecting %s or %s");
3909
YY_("syntax error, unexpected %s, expecting %s or %s or %s");
3910
YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
3914
static char const yyunexpected[] = "syntax error, unexpected %s";
3915
static char const yyexpecting[] = ", expecting %s";
3916
static char const yyor[] = " or %s";
3917
char yyformat[sizeof yyunexpected
3918
+ sizeof yyexpecting - 1
3919
+ ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
3920
* (sizeof yyor - 1))];
3921
char const *yyprefix = yyexpecting;
3923
/* Start YYX at -YYN if negative to avoid negative indexes in
3925
int yyxbegin = yyn < 0 ? -yyn : 0;
3927
/* Stay within bounds of both yycheck and yytname. */
3928
int yychecklim = YYLAST - yyn + 1;
3929
int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
3932
yyarg[0] = yytname[yytype];
3933
yyfmt = yystpcpy (yyformat, yyunexpected);
3935
for (yyx = yyxbegin; yyx < yyxend; ++yyx)
3936
if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
3938
if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
3942
yyformat[sizeof yyunexpected - 1] = '\0';
3945
yyarg[yycount++] = yytname[yyx];
3946
yysize1 = yysize + yytnamerr (0, yytname[yyx]);
3947
yysize_overflow |= (yysize1 < yysize);
3949
yyfmt = yystpcpy (yyfmt, yyprefix);
3953
yyf = YY_(yyformat);
3954
yysize1 = yysize + yystrlen (yyf);
3955
yysize_overflow |= (yysize1 < yysize);
3958
if (yysize_overflow)
3959
return YYSIZE_MAXIMUM;
3963
/* Avoid sprintf, as that infringes on the user's name space.
3964
Don't have undefined behavior even if the translation
3965
produced a string with the wrong number of "%s"s. */
3966
char *yyp = yyresult;
3968
while ((*yyp = *yyf) != '\0')
3970
if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
3972
yyp += yytnamerr (yyp, yyarg[yyi++]);
3985
#endif /* YYERROR_VERBOSE */
3988
/*-----------------------------------------------.
3989
| Release the memory associated to this symbol. |
3990
`-----------------------------------------------*/
3993
#if (defined __STDC__ || defined __C99__FUNC__ \
3994
|| defined __cplusplus || defined _MSC_VER)
3996
yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
3999
yydestruct (yymsg, yytype, yyvaluep)
4009
YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
4020
/* Prevent warnings from -Wmissing-prototypes. */
4022
#ifdef YYPARSE_PARAM
4023
#if defined __STDC__ || defined __cplusplus
4024
int yyparse (void *YYPARSE_PARAM);
4028
#else /* ! YYPARSE_PARAM */
4029
#if defined __STDC__ || defined __cplusplus
4034
#endif /* ! YYPARSE_PARAM */
4038
/* The look-ahead symbol. */
4041
/* The semantic value of the look-ahead symbol. */
4044
/* Number of syntax errors so far. */
4053
#ifdef YYPARSE_PARAM
4054
#if (defined __STDC__ || defined __C99__FUNC__ \
4055
|| defined __cplusplus || defined _MSC_VER)
4057
yyparse (void *YYPARSE_PARAM)
4060
yyparse (YYPARSE_PARAM)
4061
void *YYPARSE_PARAM;
4063
#else /* ! YYPARSE_PARAM */
4064
#if (defined __STDC__ || defined __C99__FUNC__ \
4065
|| defined __cplusplus || defined _MSC_VER)
4079
/* Number of tokens to shift before error messages enabled. */
4081
/* Look-ahead token as an internal (translated) token number. */
4084
/* Buffer for error messages, and its allocated size. */
4086
char *yymsg = yymsgbuf;
4087
YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
4090
/* Three stacks and their tools:
4091
`yyss': related to states,
4092
`yyvs': related to semantic values,
4093
`yyls': related to locations.
4095
Refer to the stacks thru separate pointers, to allow yyoverflow
4096
to reallocate them elsewhere. */
4098
/* The state stack. */
4099
yytype_int16 yyssa[YYINITDEPTH];
4100
yytype_int16 *yyss = yyssa;
4101
yytype_int16 *yyssp;
4103
/* The semantic value stack. */
4104
YYSTYPE yyvsa[YYINITDEPTH];
4105
YYSTYPE *yyvs = yyvsa;
4110
#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
4112
YYSIZE_T yystacksize = YYINITDEPTH;
4114
/* The variables used to return semantic value and location from the
4119
/* The number of symbols on the RHS of the reduced rule.
4120
Keep to zero when no symbol should be popped. */
4123
YYDPRINTF ((stderr, "Starting parse\n"));
4128
yychar = YYEMPTY; /* Cause a token to be read. */
4130
/* Initialize stack pointers.
4131
Waste one element of value and location stack
4132
so that they stay on the same level as the state stack.
4133
The wasted elements are never initialized. */
4140
/*------------------------------------------------------------.
4141
| yynewstate -- Push a new state, which is found in yystate. |
4142
`------------------------------------------------------------*/
4144
/* In all cases, when you get here, the value and location stacks
4145
have just been pushed. So pushing a state here evens the stacks. */
4151
if (yyss + yystacksize - 1 <= yyssp)
4153
/* Get the current used size of the three stacks, in elements. */
4154
YYSIZE_T yysize = yyssp - yyss + 1;
4158
/* Give user a chance to reallocate the stack. Use copies of
4159
these so that the &'s don't force the real ones into
4161
YYSTYPE *yyvs1 = yyvs;
4162
yytype_int16 *yyss1 = yyss;
4165
/* Each stack pointer address is followed by the size of the
4166
data in use in that stack, in bytes. This used to be a
4167
conditional around just the two extra args, but that might
4168
be undefined if yyoverflow is a macro. */
4169
yyoverflow (YY_("memory exhausted"),
4170
&yyss1, yysize * sizeof (*yyssp),
4171
&yyvs1, yysize * sizeof (*yyvsp),
4178
#else /* no yyoverflow */
4179
# ifndef YYSTACK_RELOCATE
4180
goto yyexhaustedlab;
4182
/* Extend the stack our own way. */
4183
if (YYMAXDEPTH <= yystacksize)
4184
goto yyexhaustedlab;
4186
if (YYMAXDEPTH < yystacksize)
4187
yystacksize = YYMAXDEPTH;
4190
yytype_int16 *yyss1 = yyss;
4191
union yyalloc *yyptr =
4192
(union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
4194
goto yyexhaustedlab;
4195
YYSTACK_RELOCATE (yyss);
4196
YYSTACK_RELOCATE (yyvs);
4198
# undef YYSTACK_RELOCATE
4200
YYSTACK_FREE (yyss1);
4203
#endif /* no yyoverflow */
4205
yyssp = yyss + yysize - 1;
4206
yyvsp = yyvs + yysize - 1;
4209
YYDPRINTF ((stderr, "Stack size increased to %lu\n",
4210
(unsigned long int) yystacksize));
4212
if (yyss + yystacksize - 1 <= yyssp)
4216
YYDPRINTF ((stderr, "Entering state %d\n", yystate));
4225
/* Do appropriate processing given the current state. Read a
4226
look-ahead token if we need one and don't already have one. */
4228
/* First try to decide what to do without reference to look-ahead token. */
4229
yyn = yypact[yystate];
4230
if (yyn == YYPACT_NINF)
4233
/* Not known => get a look-ahead token if don't already have one. */
4235
/* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
4236
if (yychar == YYEMPTY)
4238
YYDPRINTF ((stderr, "Reading a token: "));
4242
if (yychar <= YYEOF)
4244
yychar = yytoken = YYEOF;
4245
YYDPRINTF ((stderr, "Now at end of input.\n"));
4249
yytoken = YYTRANSLATE (yychar);
4250
YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
4253
/* If the proper action on seeing token YYTOKEN is to reduce or to
4254
detect an error, take that action. */
4256
if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
4261
if (yyn == 0 || yyn == YYTABLE_NINF)
4270
/* Count tokens shifted since error; after three, turn off error
4275
/* Shift the look-ahead token. */
4276
YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
4278
/* Discard the shifted token unless it is eof. */
4279
if (yychar != YYEOF)
4288
/*-----------------------------------------------------------.
4289
| yydefault -- do the default action for the current state. |
4290
`-----------------------------------------------------------*/
4292
yyn = yydefact[yystate];
4298
/*-----------------------------.
4299
| yyreduce -- Do a reduction. |
4300
`-----------------------------*/
4302
/* yyn is the number of a rule to reduce with. */
4305
/* If YYLEN is nonzero, implement the default value of the action:
4308
Otherwise, the following line sets YYVAL to garbage.
4309
This behavior is undocumented and Bison
4310
users should not rely upon it. Assigning to YYVAL
4311
unconditionally makes the parser a bit smaller, and it avoids a
4312
GCC warning that YYVAL may be used uninitialized. */
4313
yyval = yyvsp[1-yylen];
4316
YY_REDUCE_PRINT (yyn);
4322
lex_state = EXPR_BEG;
4324
if (ruby_class == rb_cObject) class_nest = 0;
4325
else class_nest = 1;
4332
if ((yyvsp[(2) - (2)].node) && !compile_for_eval) {
4333
/* last expression should not be void */
4334
if (nd_type((yyvsp[(2) - (2)].node)) != NODE_BLOCK) void_expr((yyvsp[(2) - (2)].node));
4336
NODE *node = (yyvsp[(2) - (2)].node);
4337
while (node->nd_next) {
4338
node = node->nd_next;
4340
void_expr(node->nd_head);
4343
ruby_eval_tree = block_append(ruby_eval_tree, (yyvsp[(2) - (2)].node));
4352
(yyval.node) = (yyvsp[(1) - (4)].node);
4353
if ((yyvsp[(2) - (4)].node)) {
4354
(yyval.node) = NEW_RESCUE((yyvsp[(1) - (4)].node), (yyvsp[(2) - (4)].node), (yyvsp[(3) - (4)].node));
4356
else if ((yyvsp[(3) - (4)].node)) {
4357
rb_warn("else without rescue is useless");
4358
(yyval.node) = block_append((yyval.node), (yyvsp[(3) - (4)].node));
4360
if ((yyvsp[(4) - (4)].node)) {
4361
(yyval.node) = NEW_ENSURE((yyval.node), (yyvsp[(4) - (4)].node));
4363
fixpos((yyval.node), (yyvsp[(1) - (4)].node));
4370
void_stmts((yyvsp[(1) - (2)].node));
4371
(yyval.node) = (yyvsp[(1) - (2)].node);
4378
(yyval.node) = newline_node((yyvsp[(1) - (1)].node));
4385
(yyval.node) = block_append((yyvsp[(1) - (3)].node), newline_node((yyvsp[(3) - (3)].node)));
4392
(yyval.node) = (yyvsp[(2) - (2)].node);
4398
{lex_state = EXPR_FNAME;}
4404
(yyval.node) = NEW_ALIAS((yyvsp[(2) - (4)].node), (yyvsp[(4) - (4)].node));
4411
(yyval.node) = NEW_VALIAS((yyvsp[(2) - (3)].id), (yyvsp[(3) - (3)].id));
4420
sprintf(buf, "$%c", (char)(yyvsp[(3) - (3)].node)->nd_nth);
4421
(yyval.node) = NEW_VALIAS((yyvsp[(2) - (3)].id), rb_intern(buf));
4428
yyerror("can't make alias for the number variables");
4436
(yyval.node) = (yyvsp[(2) - (2)].node);
4443
(yyval.node) = NEW_IF(cond((yyvsp[(3) - (3)].node)), (yyvsp[(1) - (3)].node), 0);
4444
fixpos((yyval.node), (yyvsp[(3) - (3)].node));
4445
if (cond_negative(&(yyval.node)->nd_cond)) {
4446
(yyval.node)->nd_else = (yyval.node)->nd_body;
4447
(yyval.node)->nd_body = 0;
4455
(yyval.node) = NEW_UNLESS(cond((yyvsp[(3) - (3)].node)), (yyvsp[(1) - (3)].node), 0);
4456
fixpos((yyval.node), (yyvsp[(3) - (3)].node));
4457
if (cond_negative(&(yyval.node)->nd_cond)) {
4458
(yyval.node)->nd_body = (yyval.node)->nd_else;
4459
(yyval.node)->nd_else = 0;
4467
if ((yyvsp[(1) - (3)].node) && nd_type((yyvsp[(1) - (3)].node)) == NODE_BEGIN) {
4468
(yyval.node) = NEW_WHILE(cond((yyvsp[(3) - (3)].node)), (yyvsp[(1) - (3)].node)->nd_body, 0);
4471
(yyval.node) = NEW_WHILE(cond((yyvsp[(3) - (3)].node)), (yyvsp[(1) - (3)].node), 1);
4473
if (cond_negative(&(yyval.node)->nd_cond)) {
4474
nd_set_type((yyval.node), NODE_UNTIL);
4482
if ((yyvsp[(1) - (3)].node) && nd_type((yyvsp[(1) - (3)].node)) == NODE_BEGIN) {
4483
(yyval.node) = NEW_UNTIL(cond((yyvsp[(3) - (3)].node)), (yyvsp[(1) - (3)].node)->nd_body, 0);
4486
(yyval.node) = NEW_UNTIL(cond((yyvsp[(3) - (3)].node)), (yyvsp[(1) - (3)].node), 1);
4488
if (cond_negative(&(yyval.node)->nd_cond)) {
4489
nd_set_type((yyval.node), NODE_WHILE);
4497
(yyval.node) = NEW_RESCUE((yyvsp[(1) - (3)].node), NEW_RESBODY(0,(yyvsp[(3) - (3)].node),0), 0);
4504
if (in_def || in_single) {
4505
yyerror("BEGIN in method");
4514
ruby_eval_tree_begin = block_append(ruby_eval_tree_begin,
4515
NEW_PREEXE((yyvsp[(4) - (5)].node)));
4524
if (in_def || in_single) {
4525
rb_warn("END in method; use at_exit");
4528
(yyval.node) = NEW_ITER(0, NEW_POSTEXE(), (yyvsp[(3) - (4)].node));
4535
(yyval.node) = node_assign((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
4542
value_expr((yyvsp[(3) - (3)].node));
4543
(yyvsp[(1) - (3)].node)->nd_value = ((yyvsp[(1) - (3)].node)->nd_head) ? NEW_TO_ARY((yyvsp[(3) - (3)].node)) : NEW_ARRAY((yyvsp[(3) - (3)].node));
4544
(yyval.node) = (yyvsp[(1) - (3)].node);
4551
value_expr((yyvsp[(3) - (3)].node));
4552
if ((yyvsp[(1) - (3)].node)) {
4553
ID vid = (yyvsp[(1) - (3)].node)->nd_vid;
4554
if ((yyvsp[(2) - (3)].id) == tOROP) {
4555
(yyvsp[(1) - (3)].node)->nd_value = (yyvsp[(3) - (3)].node);
4556
(yyval.node) = NEW_OP_ASGN_OR(gettable(vid), (yyvsp[(1) - (3)].node));
4557
if (is_asgn_or_id(vid)) {
4558
(yyval.node)->nd_aid = vid;
4561
else if ((yyvsp[(2) - (3)].id) == tANDOP) {
4562
(yyvsp[(1) - (3)].node)->nd_value = (yyvsp[(3) - (3)].node);
4563
(yyval.node) = NEW_OP_ASGN_AND(gettable(vid), (yyvsp[(1) - (3)].node));
4566
(yyval.node) = (yyvsp[(1) - (3)].node);
4567
(yyval.node)->nd_value = call_op(gettable(vid),(yyvsp[(2) - (3)].id),1,(yyvsp[(3) - (3)].node));
4581
value_expr((yyvsp[(6) - (6)].node));
4582
if (!(yyvsp[(3) - (6)].node)) (yyvsp[(3) - (6)].node) = NEW_ZARRAY();
4583
args = arg_concat((yyvsp[(6) - (6)].node), (yyvsp[(3) - (6)].node));
4584
if ((yyvsp[(5) - (6)].id) == tOROP) {
4585
(yyvsp[(5) - (6)].id) = 0;
4587
else if ((yyvsp[(5) - (6)].id) == tANDOP) {
4588
(yyvsp[(5) - (6)].id) = 1;
4590
(yyval.node) = NEW_OP_ASGN1((yyvsp[(1) - (6)].node), (yyvsp[(5) - (6)].id), args);
4591
fixpos((yyval.node), (yyvsp[(1) - (6)].node));
4598
value_expr((yyvsp[(5) - (5)].node));
4599
if ((yyvsp[(4) - (5)].id) == tOROP) {
4600
(yyvsp[(4) - (5)].id) = 0;
4602
else if ((yyvsp[(4) - (5)].id) == tANDOP) {
4603
(yyvsp[(4) - (5)].id) = 1;
4605
(yyval.node) = NEW_OP_ASGN2((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].id), (yyvsp[(4) - (5)].id), (yyvsp[(5) - (5)].node));
4606
fixpos((yyval.node), (yyvsp[(1) - (5)].node));
4613
value_expr((yyvsp[(5) - (5)].node));
4614
if ((yyvsp[(4) - (5)].id) == tOROP) {
4615
(yyvsp[(4) - (5)].id) = 0;
4617
else if ((yyvsp[(4) - (5)].id) == tANDOP) {
4618
(yyvsp[(4) - (5)].id) = 1;
4620
(yyval.node) = NEW_OP_ASGN2((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].id), (yyvsp[(4) - (5)].id), (yyvsp[(5) - (5)].node));
4621
fixpos((yyval.node), (yyvsp[(1) - (5)].node));
4628
value_expr((yyvsp[(5) - (5)].node));
4629
if ((yyvsp[(4) - (5)].id) == tOROP) {
4630
(yyvsp[(4) - (5)].id) = 0;
4632
else if ((yyvsp[(4) - (5)].id) == tANDOP) {
4633
(yyvsp[(4) - (5)].id) = 1;
4635
(yyval.node) = NEW_OP_ASGN2((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].id), (yyvsp[(4) - (5)].id), (yyvsp[(5) - (5)].node));
4636
fixpos((yyval.node), (yyvsp[(1) - (5)].node));
4643
rb_backref_error((yyvsp[(1) - (3)].node));
4651
(yyval.node) = node_assign((yyvsp[(1) - (3)].node), NEW_SVALUE((yyvsp[(3) - (3)].node)));
4658
(yyvsp[(1) - (3)].node)->nd_value = ((yyvsp[(1) - (3)].node)->nd_head) ? NEW_TO_ARY((yyvsp[(3) - (3)].node)) : NEW_ARRAY((yyvsp[(3) - (3)].node));
4659
(yyval.node) = (yyvsp[(1) - (3)].node);
4666
(yyvsp[(1) - (3)].node)->nd_value = (yyvsp[(3) - (3)].node);
4667
(yyval.node) = (yyvsp[(1) - (3)].node);
4674
(yyval.node) = logop(NODE_AND, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
4681
(yyval.node) = logop(NODE_OR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
4688
(yyval.node) = NEW_NOT(cond((yyvsp[(2) - (2)].node)));
4695
(yyval.node) = NEW_NOT(cond((yyvsp[(2) - (2)].node)));
4702
value_expr((yyval.node));
4703
(yyval.node) = (yyvsp[(1) - (1)].node);
4710
(yyval.node) = NEW_RETURN(ret_args((yyvsp[(2) - (2)].node)));
4717
(yyval.node) = NEW_BREAK(ret_args((yyvsp[(2) - (2)].node)));
4724
(yyval.node) = NEW_NEXT(ret_args((yyvsp[(2) - (2)].node)));
4731
(yyval.node) = new_call((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].id), (yyvsp[(4) - (4)].node));
4738
(yyval.node) = new_call((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].id), (yyvsp[(4) - (4)].node));
4745
(yyval.vars) = dyna_push();
4746
(yyvsp[(1) - (1)].num) = ruby_sourceline;
4752
{(yyval.vars) = ruby_dyna_vars;}
4758
(yyval.node) = NEW_ITER((yyvsp[(3) - (6)].node), 0, dyna_init((yyvsp[(5) - (6)].node), (yyvsp[(4) - (6)].vars)));
4759
nd_set_line((yyval.node), (yyvsp[(1) - (6)].num));
4760
dyna_pop((yyvsp[(2) - (6)].vars));
4767
(yyval.node) = new_fcall((yyvsp[(1) - (2)].id), (yyvsp[(2) - (2)].node));
4768
fixpos((yyval.node), (yyvsp[(2) - (2)].node));
4775
(yyval.node) = new_fcall((yyvsp[(1) - (3)].id), (yyvsp[(2) - (3)].node));
4776
if ((yyvsp[(3) - (3)].node)) {
4777
if (nd_type((yyval.node)) == NODE_BLOCK_PASS) {
4778
rb_compile_error("both block arg and actual block given");
4780
(yyvsp[(3) - (3)].node)->nd_iter = (yyval.node);
4781
(yyval.node) = (yyvsp[(3) - (3)].node);
4783
fixpos((yyval.node), (yyvsp[(2) - (3)].node));
4790
(yyval.node) = new_call((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].id), (yyvsp[(4) - (4)].node));
4791
fixpos((yyval.node), (yyvsp[(1) - (4)].node));
4798
(yyval.node) = new_call((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].id), (yyvsp[(4) - (5)].node));
4799
if ((yyvsp[(5) - (5)].node)) {
4800
if (nd_type((yyval.node)) == NODE_BLOCK_PASS) {
4801
rb_compile_error("both block arg and actual block given");
4803
(yyvsp[(5) - (5)].node)->nd_iter = (yyval.node);
4804
(yyval.node) = (yyvsp[(5) - (5)].node);
4806
fixpos((yyval.node), (yyvsp[(1) - (5)].node));
4813
(yyval.node) = new_call((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].id), (yyvsp[(4) - (4)].node));
4814
fixpos((yyval.node), (yyvsp[(1) - (4)].node));
4821
(yyval.node) = new_call((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].id), (yyvsp[(4) - (5)].node));
4822
if ((yyvsp[(5) - (5)].node)) {
4823
if (nd_type((yyval.node)) == NODE_BLOCK_PASS) {
4824
rb_compile_error("both block arg and actual block given");
4826
(yyvsp[(5) - (5)].node)->nd_iter = (yyval.node);
4827
(yyval.node) = (yyvsp[(5) - (5)].node);
4829
fixpos((yyval.node), (yyvsp[(1) - (5)].node));
4836
(yyval.node) = new_super((yyvsp[(2) - (2)].node));
4837
fixpos((yyval.node), (yyvsp[(2) - (2)].node));
4844
(yyval.node) = new_yield((yyvsp[(2) - (2)].node));
4845
fixpos((yyval.node), (yyvsp[(2) - (2)].node));
4852
(yyval.node) = (yyvsp[(2) - (3)].node);
4859
(yyval.node) = NEW_MASGN(NEW_LIST((yyvsp[(2) - (3)].node)), 0);
4866
(yyval.node) = NEW_MASGN((yyvsp[(1) - (1)].node), 0);
4873
(yyval.node) = NEW_MASGN(list_append((yyvsp[(1) - (2)].node),(yyvsp[(2) - (2)].node)), 0);
4880
(yyval.node) = NEW_MASGN((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
4887
(yyval.node) = NEW_MASGN((yyvsp[(1) - (2)].node), -1);
4894
(yyval.node) = NEW_MASGN(0, (yyvsp[(2) - (2)].node));
4901
(yyval.node) = NEW_MASGN(0, -1);
4908
(yyval.node) = (yyvsp[(2) - (3)].node);
4915
(yyval.node) = NEW_LIST((yyvsp[(1) - (2)].node));
4922
(yyval.node) = list_append((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].node));
4929
(yyval.node) = assignable((yyvsp[(1) - (1)].id), 0);
4936
(yyval.node) = aryset((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].node));
4943
(yyval.node) = attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].id));
4950
(yyval.node) = attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].id));
4957
(yyval.node) = attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].id));
4964
if (in_def || in_single)
4965
yyerror("dynamic constant assignment");
4966
(yyval.node) = NEW_CDECL(0, 0, NEW_COLON2((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].id)));
4973
if (in_def || in_single)
4974
yyerror("dynamic constant assignment");
4975
(yyval.node) = NEW_CDECL(0, 0, NEW_COLON3((yyvsp[(2) - (2)].id)));
4982
rb_backref_error((yyvsp[(1) - (1)].node));
4990
(yyval.node) = assignable((yyvsp[(1) - (1)].id), 0);
4997
(yyval.node) = aryset((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].node));
5004
(yyval.node) = attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].id));
5011
(yyval.node) = attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].id));
5018
(yyval.node) = attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].id));
5025
if (in_def || in_single)
5026
yyerror("dynamic constant assignment");
5027
(yyval.node) = NEW_CDECL(0, 0, NEW_COLON2((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].id)));
5034
if (in_def || in_single)
5035
yyerror("dynamic constant assignment");
5036
(yyval.node) = NEW_CDECL(0, 0, NEW_COLON3((yyvsp[(2) - (2)].id)));
5043
rb_backref_error((yyvsp[(1) - (1)].node));
5051
yyerror("class/module name must be CONSTANT");
5058
(yyval.node) = NEW_COLON3((yyvsp[(2) - (2)].id));
5065
(yyval.node) = NEW_COLON2(0, (yyval.node));
5072
(yyval.node) = NEW_COLON2((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].id));
5079
lex_state = EXPR_END;
5080
(yyval.id) = (yyvsp[(1) - (1)].id);
5087
lex_state = EXPR_END;
5088
(yyval.id) = (yyvsp[(1) - (1)].id);
5095
(yyval.node) = NEW_LIT(ID2SYM((yyvsp[(1) - (1)].id)));
5102
(yyval.node) = NEW_UNDEF((yyvsp[(1) - (1)].node));
5108
{lex_state = EXPR_FNAME;}
5114
(yyval.node) = block_append((yyvsp[(1) - (4)].node), NEW_UNDEF((yyvsp[(4) - (4)].node)));
5120
{ (yyval.id) = '|'; }
5125
{ (yyval.id) = '^'; }
5130
{ (yyval.id) = '&'; }
5135
{ (yyval.id) = tCMP; }
5140
{ (yyval.id) = tEQ; }
5145
{ (yyval.id) = tEQQ; }
5150
{ (yyval.id) = tMATCH; }
5155
{ (yyval.id) = '>'; }
5160
{ (yyval.id) = tGEQ; }
5165
{ (yyval.id) = '<'; }
5170
{ (yyval.id) = tLEQ; }
5175
{ (yyval.id) = tLSHFT; }
5180
{ (yyval.id) = tRSHFT; }
5185
{ (yyval.id) = '+'; }
5190
{ (yyval.id) = '-'; }
5195
{ (yyval.id) = '*'; }
5200
{ (yyval.id) = '*'; }
5205
{ (yyval.id) = '/'; }
5210
{ (yyval.id) = '%'; }
5215
{ (yyval.id) = tPOW; }
5220
{ (yyval.id) = '~'; }
5225
{ (yyval.id) = tUPLUS; }
5230
{ (yyval.id) = tUMINUS; }
5235
{ (yyval.id) = tAREF; }
5240
{ (yyval.id) = tASET; }
5245
{ (yyval.id) = '`'; }
5251
(yyval.node) = node_assign((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
5258
(yyval.node) = node_assign((yyvsp[(1) - (5)].node), NEW_RESCUE((yyvsp[(3) - (5)].node), NEW_RESBODY(0,(yyvsp[(5) - (5)].node),0), 0));
5265
value_expr((yyvsp[(3) - (3)].node));
5266
if ((yyvsp[(1) - (3)].node)) {
5267
ID vid = (yyvsp[(1) - (3)].node)->nd_vid;
5268
if ((yyvsp[(2) - (3)].id) == tOROP) {
5269
(yyvsp[(1) - (3)].node)->nd_value = (yyvsp[(3) - (3)].node);
5270
(yyval.node) = NEW_OP_ASGN_OR(gettable(vid), (yyvsp[(1) - (3)].node));
5271
if (is_asgn_or_id(vid)) {
5272
(yyval.node)->nd_aid = vid;
5275
else if ((yyvsp[(2) - (3)].id) == tANDOP) {
5276
(yyvsp[(1) - (3)].node)->nd_value = (yyvsp[(3) - (3)].node);
5277
(yyval.node) = NEW_OP_ASGN_AND(gettable(vid), (yyvsp[(1) - (3)].node));
5280
(yyval.node) = (yyvsp[(1) - (3)].node);
5281
(yyval.node)->nd_value = call_op(gettable(vid),(yyvsp[(2) - (3)].id),1,(yyvsp[(3) - (3)].node));
5291
#line 1009 "parse.y"
5295
value_expr((yyvsp[(6) - (6)].node));
5296
if (!(yyvsp[(3) - (6)].node)) (yyvsp[(3) - (6)].node) = NEW_ZARRAY();
5297
args = arg_concat((yyvsp[(6) - (6)].node), (yyvsp[(3) - (6)].node));
5298
if ((yyvsp[(5) - (6)].id) == tOROP) {
5299
(yyvsp[(5) - (6)].id) = 0;
5301
else if ((yyvsp[(5) - (6)].id) == tANDOP) {
5302
(yyvsp[(5) - (6)].id) = 1;
5304
(yyval.node) = NEW_OP_ASGN1((yyvsp[(1) - (6)].node), (yyvsp[(5) - (6)].id), args);
5305
fixpos((yyval.node), (yyvsp[(1) - (6)].node));
5310
#line 1025 "parse.y"
5312
value_expr((yyvsp[(5) - (5)].node));
5313
if ((yyvsp[(4) - (5)].id) == tOROP) {
5314
(yyvsp[(4) - (5)].id) = 0;
5316
else if ((yyvsp[(4) - (5)].id) == tANDOP) {
5317
(yyvsp[(4) - (5)].id) = 1;
5319
(yyval.node) = NEW_OP_ASGN2((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].id), (yyvsp[(4) - (5)].id), (yyvsp[(5) - (5)].node));
5320
fixpos((yyval.node), (yyvsp[(1) - (5)].node));
5325
#line 1037 "parse.y"
5327
value_expr((yyvsp[(5) - (5)].node));
5328
if ((yyvsp[(4) - (5)].id) == tOROP) {
5329
(yyvsp[(4) - (5)].id) = 0;
5331
else if ((yyvsp[(4) - (5)].id) == tANDOP) {
5332
(yyvsp[(4) - (5)].id) = 1;
5334
(yyval.node) = NEW_OP_ASGN2((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].id), (yyvsp[(4) - (5)].id), (yyvsp[(5) - (5)].node));
5335
fixpos((yyval.node), (yyvsp[(1) - (5)].node));
5340
#line 1049 "parse.y"
5342
value_expr((yyvsp[(5) - (5)].node));
5343
if ((yyvsp[(4) - (5)].id) == tOROP) {
5344
(yyvsp[(4) - (5)].id) = 0;
5346
else if ((yyvsp[(4) - (5)].id) == tANDOP) {
5347
(yyvsp[(4) - (5)].id) = 1;
5349
(yyval.node) = NEW_OP_ASGN2((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].id), (yyvsp[(4) - (5)].id), (yyvsp[(5) - (5)].node));
5350
fixpos((yyval.node), (yyvsp[(1) - (5)].node));
5355
#line 1061 "parse.y"
5357
yyerror("constant re-assignment");
5363
#line 1066 "parse.y"
5365
yyerror("constant re-assignment");
5371
#line 1071 "parse.y"
5373
rb_backref_error((yyvsp[(1) - (3)].node));
5379
#line 1076 "parse.y"
5381
value_expr((yyvsp[(1) - (3)].node));
5382
value_expr((yyvsp[(3) - (3)].node));
5383
if (nd_type((yyvsp[(1) - (3)].node)) == NODE_LIT && FIXNUM_P((yyvsp[(1) - (3)].node)->nd_lit) &&
5384
nd_type((yyvsp[(3) - (3)].node)) == NODE_LIT && FIXNUM_P((yyvsp[(3) - (3)].node)->nd_lit)) {
5385
(yyvsp[(1) - (3)].node)->nd_lit = rb_range_new((yyvsp[(1) - (3)].node)->nd_lit, (yyvsp[(3) - (3)].node)->nd_lit, Qfalse);
5386
(yyval.node) = (yyvsp[(1) - (3)].node);
5389
(yyval.node) = NEW_DOT2((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
5395
#line 1089 "parse.y"
5397
value_expr((yyvsp[(1) - (3)].node));
5398
value_expr((yyvsp[(3) - (3)].node));
5399
if (nd_type((yyvsp[(1) - (3)].node)) == NODE_LIT && FIXNUM_P((yyvsp[(1) - (3)].node)->nd_lit) &&
5400
nd_type((yyvsp[(3) - (3)].node)) == NODE_LIT && FIXNUM_P((yyvsp[(3) - (3)].node)->nd_lit)) {
5401
(yyvsp[(1) - (3)].node)->nd_lit = rb_range_new((yyvsp[(1) - (3)].node)->nd_lit, (yyvsp[(3) - (3)].node)->nd_lit, Qtrue);
5402
(yyval.node) = (yyvsp[(1) - (3)].node);
5405
(yyval.node) = NEW_DOT3((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
5411
#line 1102 "parse.y"
5413
(yyval.node) = call_op((yyvsp[(1) - (3)].node), '+', 1, (yyvsp[(3) - (3)].node));
5418
#line 1106 "parse.y"
5420
(yyval.node) = call_op((yyvsp[(1) - (3)].node), '-', 1, (yyvsp[(3) - (3)].node));
5425
#line 1110 "parse.y"
5427
(yyval.node) = call_op((yyvsp[(1) - (3)].node), '*', 1, (yyvsp[(3) - (3)].node));
5432
#line 1114 "parse.y"
5434
(yyval.node) = call_op((yyvsp[(1) - (3)].node), '/', 1, (yyvsp[(3) - (3)].node));
5439
#line 1118 "parse.y"
5441
(yyval.node) = call_op((yyvsp[(1) - (3)].node), '%', 1, (yyvsp[(3) - (3)].node));
5446
#line 1122 "parse.y"
5448
(yyval.node) = call_op((yyvsp[(1) - (3)].node), tPOW, 1, (yyvsp[(3) - (3)].node));
5453
#line 1126 "parse.y"
5455
(yyval.node) = call_op(call_op((yyvsp[(2) - (4)].node), tPOW, 1, (yyvsp[(4) - (4)].node)), tUMINUS, 0, 0);
5460
#line 1130 "parse.y"
5462
(yyval.node) = call_op(call_op((yyvsp[(2) - (4)].node), tPOW, 1, (yyvsp[(4) - (4)].node)), tUMINUS, 0, 0);
5467
#line 1134 "parse.y"
5469
if ((yyvsp[(2) - (2)].node) && nd_type((yyvsp[(2) - (2)].node)) == NODE_LIT) {
5470
(yyval.node) = (yyvsp[(2) - (2)].node);
5473
(yyval.node) = call_op((yyvsp[(2) - (2)].node), tUPLUS, 0, 0);
5479
#line 1143 "parse.y"
5481
(yyval.node) = call_op((yyvsp[(2) - (2)].node), tUMINUS, 0, 0);
5486
#line 1147 "parse.y"
5488
(yyval.node) = call_op((yyvsp[(1) - (3)].node), '|', 1, (yyvsp[(3) - (3)].node));
5493
#line 1151 "parse.y"
5495
(yyval.node) = call_op((yyvsp[(1) - (3)].node), '^', 1, (yyvsp[(3) - (3)].node));
5500
#line 1155 "parse.y"
5502
(yyval.node) = call_op((yyvsp[(1) - (3)].node), '&', 1, (yyvsp[(3) - (3)].node));
5507
#line 1159 "parse.y"
5509
(yyval.node) = call_op((yyvsp[(1) - (3)].node), tCMP, 1, (yyvsp[(3) - (3)].node));
5514
#line 1163 "parse.y"
5516
(yyval.node) = call_op((yyvsp[(1) - (3)].node), '>', 1, (yyvsp[(3) - (3)].node));
5521
#line 1167 "parse.y"
5523
(yyval.node) = call_op((yyvsp[(1) - (3)].node), tGEQ, 1, (yyvsp[(3) - (3)].node));
5528
#line 1171 "parse.y"
5530
(yyval.node) = call_op((yyvsp[(1) - (3)].node), '<', 1, (yyvsp[(3) - (3)].node));
5535
#line 1175 "parse.y"
5537
(yyval.node) = call_op((yyvsp[(1) - (3)].node), tLEQ, 1, (yyvsp[(3) - (3)].node));
5542
#line 1179 "parse.y"
5544
(yyval.node) = call_op((yyvsp[(1) - (3)].node), tEQ, 1, (yyvsp[(3) - (3)].node));
5549
#line 1183 "parse.y"
5551
(yyval.node) = call_op((yyvsp[(1) - (3)].node), tEQQ, 1, (yyvsp[(3) - (3)].node));
5556
#line 1187 "parse.y"
5558
(yyval.node) = NEW_NOT(call_op((yyvsp[(1) - (3)].node), tEQ, 1, (yyvsp[(3) - (3)].node)));
5563
#line 1191 "parse.y"
5565
(yyval.node) = match_gen((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
5570
#line 1195 "parse.y"
5572
(yyval.node) = NEW_NOT(match_gen((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)));
5577
#line 1199 "parse.y"
5579
(yyval.node) = NEW_NOT(cond((yyvsp[(2) - (2)].node)));
5584
#line 1203 "parse.y"
5586
(yyval.node) = call_op((yyvsp[(2) - (2)].node), '~', 0, 0);
5591
#line 1207 "parse.y"
5593
(yyval.node) = call_op((yyvsp[(1) - (3)].node), tLSHFT, 1, (yyvsp[(3) - (3)].node));
5598
#line 1211 "parse.y"
5600
(yyval.node) = call_op((yyvsp[(1) - (3)].node), tRSHFT, 1, (yyvsp[(3) - (3)].node));
5605
#line 1215 "parse.y"
5607
(yyval.node) = logop(NODE_AND, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
5612
#line 1219 "parse.y"
5614
(yyval.node) = logop(NODE_OR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
5619
#line 1222 "parse.y"
5624
#line 1223 "parse.y"
5627
(yyval.node) = NEW_DEFINED((yyvsp[(4) - (4)].node));
5632
#line 1228 "parse.y"
5634
(yyval.node) = NEW_IF(cond((yyvsp[(1) - (5)].node)), (yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node));
5635
fixpos((yyval.node), (yyvsp[(1) - (5)].node));
5640
#line 1233 "parse.y"
5642
(yyval.node) = (yyvsp[(1) - (1)].node);
5647
#line 1239 "parse.y"
5649
value_expr((yyvsp[(1) - (1)].node));
5650
(yyval.node) = (yyvsp[(1) - (1)].node);
5655
#line 1247 "parse.y"
5657
rb_warn("parenthesize argument(s) for future version");
5658
(yyval.node) = NEW_LIST((yyvsp[(1) - (2)].node));
5663
#line 1252 "parse.y"
5665
(yyval.node) = (yyvsp[(1) - (2)].node);
5670
#line 1256 "parse.y"
5672
value_expr((yyvsp[(4) - (5)].node));
5673
(yyval.node) = arg_concat((yyvsp[(1) - (5)].node), (yyvsp[(4) - (5)].node));
5678
#line 1261 "parse.y"
5680
(yyval.node) = NEW_LIST(NEW_HASH((yyvsp[(1) - (2)].node)));
5685
#line 1265 "parse.y"
5687
value_expr((yyvsp[(2) - (3)].node));
5688
(yyval.node) = NEW_NEWLINE(NEW_SPLAT((yyvsp[(2) - (3)].node)));
5693
#line 1272 "parse.y"
5695
(yyval.node) = (yyvsp[(2) - (3)].node);
5700
#line 1276 "parse.y"
5702
(yyval.node) = (yyvsp[(2) - (4)].node);
5707
#line 1280 "parse.y"
5709
rb_warn("parenthesize argument for future version");
5710
(yyval.node) = NEW_LIST((yyvsp[(2) - (4)].node));
5715
#line 1285 "parse.y"
5717
rb_warn("parenthesize argument for future version");
5718
(yyval.node) = list_append((yyvsp[(2) - (6)].node), (yyvsp[(4) - (6)].node));
5723
#line 1296 "parse.y"
5725
rb_warn("parenthesize argument(s) for future version");
5726
(yyval.node) = NEW_LIST((yyvsp[(1) - (1)].node));
5731
#line 1301 "parse.y"
5733
(yyval.node) = arg_blk_pass((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node));
5738
#line 1305 "parse.y"
5740
(yyval.node) = arg_concat((yyvsp[(1) - (5)].node), (yyvsp[(4) - (5)].node));
5741
(yyval.node) = arg_blk_pass((yyval.node), (yyvsp[(5) - (5)].node));
5746
#line 1310 "parse.y"
5748
(yyval.node) = NEW_LIST(NEW_HASH((yyvsp[(1) - (2)].node)));
5749
(yyval.node) = arg_blk_pass((yyval.node), (yyvsp[(2) - (2)].node));
5754
#line 1315 "parse.y"
5756
(yyval.node) = arg_concat(NEW_LIST(NEW_HASH((yyvsp[(1) - (5)].node))), (yyvsp[(4) - (5)].node));
5757
(yyval.node) = arg_blk_pass((yyval.node), (yyvsp[(5) - (5)].node));
5762
#line 1320 "parse.y"
5764
(yyval.node) = list_append((yyvsp[(1) - (4)].node), NEW_HASH((yyvsp[(3) - (4)].node)));
5765
(yyval.node) = arg_blk_pass((yyval.node), (yyvsp[(4) - (4)].node));
5770
#line 1325 "parse.y"
5772
value_expr((yyvsp[(6) - (7)].node));
5773
(yyval.node) = arg_concat(list_append((yyvsp[(1) - (7)].node), NEW_HASH((yyvsp[(3) - (7)].node))), (yyvsp[(6) - (7)].node));
5774
(yyval.node) = arg_blk_pass((yyval.node), (yyvsp[(7) - (7)].node));
5779
#line 1331 "parse.y"
5781
(yyval.node) = arg_blk_pass(NEW_SPLAT((yyvsp[(2) - (3)].node)), (yyvsp[(3) - (3)].node));
5786
#line 1338 "parse.y"
5788
(yyval.node) = arg_blk_pass(list_concat(NEW_LIST((yyvsp[(1) - (4)].node)),(yyvsp[(3) - (4)].node)), (yyvsp[(4) - (4)].node));
5793
#line 1342 "parse.y"
5795
(yyval.node) = arg_blk_pass((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
5800
#line 1346 "parse.y"
5802
(yyval.node) = arg_concat(NEW_LIST((yyvsp[(1) - (5)].node)), (yyvsp[(4) - (5)].node));
5803
(yyval.node) = arg_blk_pass((yyval.node), (yyvsp[(5) - (5)].node));
5808
#line 1351 "parse.y"
5810
(yyval.node) = arg_concat(list_concat(NEW_LIST((yyvsp[(1) - (7)].node)),(yyvsp[(3) - (7)].node)), (yyvsp[(6) - (7)].node));
5811
(yyval.node) = arg_blk_pass((yyval.node), (yyvsp[(7) - (7)].node));
5816
#line 1356 "parse.y"
5818
(yyval.node) = NEW_LIST(NEW_HASH((yyvsp[(1) - (2)].node)));
5819
(yyval.node) = arg_blk_pass((yyval.node), (yyvsp[(2) - (2)].node));
5824
#line 1361 "parse.y"
5826
(yyval.node) = arg_concat(NEW_LIST(NEW_HASH((yyvsp[(1) - (5)].node))), (yyvsp[(4) - (5)].node));
5827
(yyval.node) = arg_blk_pass((yyval.node), (yyvsp[(5) - (5)].node));
5832
#line 1366 "parse.y"
5834
(yyval.node) = list_append(NEW_LIST((yyvsp[(1) - (4)].node)), NEW_HASH((yyvsp[(3) - (4)].node)));
5835
(yyval.node) = arg_blk_pass((yyval.node), (yyvsp[(4) - (4)].node));
5840
#line 1371 "parse.y"
5842
(yyval.node) = list_append(list_concat(NEW_LIST((yyvsp[(1) - (6)].node)),(yyvsp[(3) - (6)].node)), NEW_HASH((yyvsp[(5) - (6)].node)));
5843
(yyval.node) = arg_blk_pass((yyval.node), (yyvsp[(6) - (6)].node));
5848
#line 1376 "parse.y"
5850
(yyval.node) = arg_concat(list_append(NEW_LIST((yyvsp[(1) - (7)].node)), NEW_HASH((yyvsp[(3) - (7)].node))), (yyvsp[(6) - (7)].node));
5851
(yyval.node) = arg_blk_pass((yyval.node), (yyvsp[(7) - (7)].node));
5856
#line 1381 "parse.y"
5858
(yyval.node) = arg_concat(list_append(list_concat(NEW_LIST((yyvsp[(1) - (9)].node)), (yyvsp[(3) - (9)].node)), NEW_HASH((yyvsp[(5) - (9)].node))), (yyvsp[(8) - (9)].node));
5859
(yyval.node) = arg_blk_pass((yyval.node), (yyvsp[(9) - (9)].node));
5864
#line 1386 "parse.y"
5866
(yyval.node) = arg_blk_pass(NEW_SPLAT((yyvsp[(2) - (3)].node)), (yyvsp[(3) - (3)].node));
5871
#line 1392 "parse.y"
5873
(yyval.num) = cmdarg_stack;
5879
#line 1397 "parse.y"
5882
cmdarg_stack = (yyvsp[(1) - (2)].num);
5883
(yyval.node) = (yyvsp[(2) - (2)].node);
5888
#line 1405 "parse.y"
5889
{lex_state = EXPR_ENDARG;}
5893
#line 1406 "parse.y"
5895
rb_warn("don't put space before argument parentheses");
5901
#line 1410 "parse.y"
5902
{lex_state = EXPR_ENDARG;}
5906
#line 1411 "parse.y"
5908
rb_warn("don't put space before argument parentheses");
5909
(yyval.node) = (yyvsp[(2) - (4)].node);
5914
#line 1418 "parse.y"
5916
(yyval.node) = NEW_BLOCK_PASS((yyvsp[(2) - (2)].node));
5921
#line 1424 "parse.y"
5923
(yyval.node) = (yyvsp[(2) - (2)].node);
5928
#line 1431 "parse.y"
5930
(yyval.node) = NEW_LIST((yyvsp[(1) - (1)].node));
5935
#line 1435 "parse.y"
5937
(yyval.node) = list_append((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
5942
#line 1441 "parse.y"
5944
(yyval.node) = list_append((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
5949
#line 1445 "parse.y"
5951
(yyval.node) = arg_concat((yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node));
5956
#line 1449 "parse.y"
5958
(yyval.node) = NEW_SPLAT((yyvsp[(2) - (2)].node));
5963
#line 1463 "parse.y"
5965
(yyval.node) = NEW_FCALL((yyvsp[(1) - (1)].id), 0);
5970
#line 1467 "parse.y"
5972
(yyvsp[(1) - (1)].num) = ruby_sourceline;
5977
#line 1472 "parse.y"
5979
if ((yyvsp[(3) - (4)].node) == NULL)
5980
(yyval.node) = NEW_NIL();
5982
(yyval.node) = NEW_BEGIN((yyvsp[(3) - (4)].node));
5983
nd_set_line((yyval.node), (yyvsp[(1) - (4)].num));
5988
#line 1479 "parse.y"
5989
{lex_state = EXPR_ENDARG;}
5993
#line 1480 "parse.y"
5995
rb_warning("(...) interpreted as grouped expression");
5996
(yyval.node) = (yyvsp[(2) - (5)].node);
6001
#line 1485 "parse.y"
6003
if (!(yyvsp[(2) - (3)].node)) (yyval.node) = NEW_NIL();
6004
else (yyval.node) = (yyvsp[(2) - (3)].node);
6009
#line 1490 "parse.y"
6011
(yyval.node) = NEW_COLON2((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].id));
6016
#line 1494 "parse.y"
6018
(yyval.node) = NEW_COLON3((yyvsp[(2) - (2)].id));
6023
#line 1498 "parse.y"
6025
if ((yyvsp[(1) - (4)].node) && nd_type((yyvsp[(1) - (4)].node)) == NODE_SELF)
6026
(yyval.node) = NEW_FCALL(tAREF, (yyvsp[(3) - (4)].node));
6028
(yyval.node) = NEW_CALL((yyvsp[(1) - (4)].node), tAREF, (yyvsp[(3) - (4)].node));
6029
fixpos((yyval.node), (yyvsp[(1) - (4)].node));
6034
#line 1506 "parse.y"
6036
if ((yyvsp[(2) - (3)].node) == 0) {
6037
(yyval.node) = NEW_ZARRAY(); /* zero length array*/
6040
(yyval.node) = (yyvsp[(2) - (3)].node);
6046
#line 1515 "parse.y"
6048
(yyval.node) = NEW_HASH((yyvsp[(2) - (3)].node));
6053
#line 1519 "parse.y"
6055
(yyval.node) = NEW_RETURN(0);
6060
#line 1523 "parse.y"
6062
(yyval.node) = new_yield((yyvsp[(3) - (4)].node));
6067
#line 1527 "parse.y"
6069
(yyval.node) = NEW_YIELD(0, Qfalse);
6074
#line 1531 "parse.y"
6076
(yyval.node) = NEW_YIELD(0, Qfalse);
6081
#line 1534 "parse.y"
6086
#line 1535 "parse.y"
6089
(yyval.node) = NEW_DEFINED((yyvsp[(5) - (6)].node));
6094
#line 1540 "parse.y"
6096
(yyvsp[(2) - (2)].node)->nd_iter = NEW_FCALL((yyvsp[(1) - (2)].id), 0);
6097
(yyval.node) = (yyvsp[(2) - (2)].node);
6098
fixpos((yyvsp[(2) - (2)].node)->nd_iter, (yyvsp[(2) - (2)].node));
6103
#line 1547 "parse.y"
6105
if ((yyvsp[(1) - (2)].node) && nd_type((yyvsp[(1) - (2)].node)) == NODE_BLOCK_PASS) {
6106
rb_compile_error("both block arg and actual block given");
6108
(yyvsp[(2) - (2)].node)->nd_iter = (yyvsp[(1) - (2)].node);
6109
(yyval.node) = (yyvsp[(2) - (2)].node);
6110
fixpos((yyval.node), (yyvsp[(1) - (2)].node));
6115
#line 1559 "parse.y"
6117
(yyval.node) = NEW_IF(cond((yyvsp[(2) - (6)].node)), (yyvsp[(4) - (6)].node), (yyvsp[(5) - (6)].node));
6118
fixpos((yyval.node), (yyvsp[(2) - (6)].node));
6119
if (cond_negative(&(yyval.node)->nd_cond)) {
6120
NODE *tmp = (yyval.node)->nd_body;
6121
(yyval.node)->nd_body = (yyval.node)->nd_else;
6122
(yyval.node)->nd_else = tmp;
6128
#line 1572 "parse.y"
6130
(yyval.node) = NEW_UNLESS(cond((yyvsp[(2) - (6)].node)), (yyvsp[(4) - (6)].node), (yyvsp[(5) - (6)].node));
6131
fixpos((yyval.node), (yyvsp[(2) - (6)].node));
6132
if (cond_negative(&(yyval.node)->nd_cond)) {
6133
NODE *tmp = (yyval.node)->nd_body;
6134
(yyval.node)->nd_body = (yyval.node)->nd_else;
6135
(yyval.node)->nd_else = tmp;
6141
#line 1581 "parse.y"
6146
#line 1581 "parse.y"
6151
#line 1584 "parse.y"
6153
(yyval.node) = NEW_WHILE(cond((yyvsp[(3) - (7)].node)), (yyvsp[(6) - (7)].node), 1);
6154
fixpos((yyval.node), (yyvsp[(3) - (7)].node));
6155
if (cond_negative(&(yyval.node)->nd_cond)) {
6156
nd_set_type((yyval.node), NODE_UNTIL);
6162
#line 1591 "parse.y"
6167
#line 1591 "parse.y"
6172
#line 1594 "parse.y"
6174
(yyval.node) = NEW_UNTIL(cond((yyvsp[(3) - (7)].node)), (yyvsp[(6) - (7)].node), 1);
6175
fixpos((yyval.node), (yyvsp[(3) - (7)].node));
6176
if (cond_negative(&(yyval.node)->nd_cond)) {
6177
nd_set_type((yyval.node), NODE_WHILE);
6183
#line 1604 "parse.y"
6185
(yyval.node) = NEW_CASE((yyvsp[(2) - (5)].node), (yyvsp[(4) - (5)].node));
6186
fixpos((yyval.node), (yyvsp[(2) - (5)].node));
6191
#line 1609 "parse.y"
6193
(yyval.node) = (yyvsp[(3) - (4)].node);
6198
#line 1613 "parse.y"
6200
(yyval.node) = (yyvsp[(4) - (5)].node);
6205
#line 1616 "parse.y"
6210
#line 1616 "parse.y"
6215
#line 1619 "parse.y"
6217
(yyval.node) = NEW_FOR((yyvsp[(2) - (9)].node), (yyvsp[(5) - (9)].node), (yyvsp[(8) - (9)].node));
6218
fixpos((yyval.node), (yyvsp[(2) - (9)].node));
6223
#line 1624 "parse.y"
6225
if (in_def || in_single)
6226
yyerror("class definition in method body");
6229
(yyval.num) = ruby_sourceline;
6234
#line 1633 "parse.y"
6236
(yyval.node) = NEW_CLASS((yyvsp[(2) - (6)].node), (yyvsp[(5) - (6)].node), (yyvsp[(3) - (6)].node));
6237
nd_set_line((yyval.node), (yyvsp[(4) - (6)].num));
6244
#line 1640 "parse.y"
6246
(yyval.num) = in_def;
6252
#line 1645 "parse.y"
6254
(yyval.num) = in_single;
6262
#line 1653 "parse.y"
6264
(yyval.node) = NEW_SCLASS((yyvsp[(3) - (8)].node), (yyvsp[(7) - (8)].node));
6265
fixpos((yyval.node), (yyvsp[(3) - (8)].node));
6268
in_def = (yyvsp[(4) - (8)].num);
6269
in_single = (yyvsp[(6) - (8)].num);
6274
#line 1662 "parse.y"
6276
if (in_def || in_single)
6277
yyerror("module definition in method body");
6280
(yyval.num) = ruby_sourceline;
6285
#line 1671 "parse.y"
6287
(yyval.node) = NEW_MODULE((yyvsp[(2) - (5)].node), (yyvsp[(4) - (5)].node));
6288
nd_set_line((yyval.node), (yyvsp[(3) - (5)].num));
6295
#line 1678 "parse.y"
6297
(yyval.id) = cur_mid;
6298
cur_mid = (yyvsp[(2) - (2)].id);
6305
#line 1687 "parse.y"
6307
if (!(yyvsp[(5) - (6)].node)) (yyvsp[(5) - (6)].node) = NEW_NIL();
6308
(yyval.node) = NEW_DEFN((yyvsp[(2) - (6)].id), (yyvsp[(4) - (6)].node), (yyvsp[(5) - (6)].node), NOEX_PRIVATE);
6309
fixpos((yyval.node), (yyvsp[(4) - (6)].node));
6312
cur_mid = (yyvsp[(3) - (6)].id);
6317
#line 1695 "parse.y"
6318
{lex_state = EXPR_FNAME;}
6322
#line 1696 "parse.y"
6326
lex_state = EXPR_END; /* force for args */
6331
#line 1704 "parse.y"
6333
(yyval.node) = NEW_DEFS((yyvsp[(2) - (9)].node), (yyvsp[(5) - (9)].id), (yyvsp[(7) - (9)].node), (yyvsp[(8) - (9)].node));
6334
fixpos((yyval.node), (yyvsp[(2) - (9)].node));
6341
#line 1711 "parse.y"
6343
(yyval.node) = NEW_BREAK(0);
6348
#line 1715 "parse.y"
6350
(yyval.node) = NEW_NEXT(0);
6355
#line 1719 "parse.y"
6357
(yyval.node) = NEW_REDO();
6362
#line 1723 "parse.y"
6364
(yyval.node) = NEW_RETRY();
6369
#line 1729 "parse.y"
6371
value_expr((yyvsp[(1) - (1)].node));
6372
(yyval.node) = (yyvsp[(1) - (1)].node);
6377
#line 1750 "parse.y"
6379
(yyval.node) = NEW_IF(cond((yyvsp[(2) - (5)].node)), (yyvsp[(4) - (5)].node), (yyvsp[(5) - (5)].node));
6380
fixpos((yyval.node), (yyvsp[(2) - (5)].node));
6385
#line 1758 "parse.y"
6387
(yyval.node) = (yyvsp[(2) - (2)].node);
6392
#line 1769 "parse.y"
6394
(yyval.node) = (NODE*)1;
6399
#line 1773 "parse.y"
6401
(yyval.node) = (NODE*)1;
6406
#line 1777 "parse.y"
6408
(yyval.node) = (yyvsp[(2) - (3)].node);
6413
#line 1783 "parse.y"
6415
(yyval.vars) = dyna_push();
6416
(yyvsp[(1) - (1)].num) = ruby_sourceline;
6421
#line 1787 "parse.y"
6422
{(yyval.vars) = ruby_dyna_vars;}
6426
#line 1790 "parse.y"
6428
(yyval.node) = NEW_ITER((yyvsp[(3) - (6)].node), 0, dyna_init((yyvsp[(5) - (6)].node), (yyvsp[(4) - (6)].vars)));
6429
nd_set_line((yyval.node), (yyvsp[(1) - (6)].num));
6430
dyna_pop((yyvsp[(2) - (6)].vars));
6435
#line 1798 "parse.y"
6437
if ((yyvsp[(1) - (2)].node) && nd_type((yyvsp[(1) - (2)].node)) == NODE_BLOCK_PASS) {
6438
rb_compile_error("both block arg and actual block given");
6440
(yyvsp[(2) - (2)].node)->nd_iter = (yyvsp[(1) - (2)].node);
6441
(yyval.node) = (yyvsp[(2) - (2)].node);
6442
fixpos((yyval.node), (yyvsp[(1) - (2)].node));
6447
#line 1807 "parse.y"
6449
(yyval.node) = new_call((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].id), (yyvsp[(4) - (4)].node));
6454
#line 1811 "parse.y"
6456
(yyval.node) = new_call((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].id), (yyvsp[(4) - (4)].node));
6461
#line 1817 "parse.y"
6463
(yyval.node) = new_fcall((yyvsp[(1) - (2)].id), (yyvsp[(2) - (2)].node));
6464
fixpos((yyval.node), (yyvsp[(2) - (2)].node));
6469
#line 1822 "parse.y"
6471
(yyval.node) = new_call((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].id), (yyvsp[(4) - (4)].node));
6472
fixpos((yyval.node), (yyvsp[(1) - (4)].node));
6477
#line 1827 "parse.y"
6479
(yyval.node) = new_call((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].id), (yyvsp[(4) - (4)].node));
6480
fixpos((yyval.node), (yyvsp[(1) - (4)].node));
6485
#line 1832 "parse.y"
6487
(yyval.node) = new_call((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].id), 0);
6492
#line 1836 "parse.y"
6494
(yyval.node) = new_super((yyvsp[(2) - (2)].node));
6499
#line 1840 "parse.y"
6501
(yyval.node) = NEW_ZSUPER();
6506
#line 1846 "parse.y"
6508
(yyval.vars) = dyna_push();
6509
(yyvsp[(1) - (1)].num) = ruby_sourceline;
6514
#line 1850 "parse.y"
6515
{(yyval.vars) = ruby_dyna_vars;}
6519
#line 1852 "parse.y"
6521
(yyval.node) = NEW_ITER((yyvsp[(3) - (6)].node), 0, dyna_init((yyvsp[(5) - (6)].node), (yyvsp[(4) - (6)].vars)));
6522
nd_set_line((yyval.node), (yyvsp[(1) - (6)].num));
6523
dyna_pop((yyvsp[(2) - (6)].vars));
6528
#line 1858 "parse.y"
6530
(yyval.vars) = dyna_push();
6531
(yyvsp[(1) - (1)].num) = ruby_sourceline;
6536
#line 1862 "parse.y"
6537
{(yyval.vars) = ruby_dyna_vars;}
6541
#line 1864 "parse.y"
6543
(yyval.node) = NEW_ITER((yyvsp[(3) - (6)].node), 0, dyna_init((yyvsp[(5) - (6)].node), (yyvsp[(4) - (6)].vars)));
6544
nd_set_line((yyval.node), (yyvsp[(1) - (6)].num));
6545
dyna_pop((yyvsp[(2) - (6)].vars));
6550
#line 1874 "parse.y"
6552
(yyval.node) = NEW_WHEN((yyvsp[(2) - (5)].node), (yyvsp[(4) - (5)].node), (yyvsp[(5) - (5)].node));
6557
#line 1880 "parse.y"
6559
(yyval.node) = list_append((yyvsp[(1) - (4)].node), NEW_WHEN((yyvsp[(4) - (4)].node), 0, 0));
6564
#line 1884 "parse.y"
6566
(yyval.node) = NEW_LIST(NEW_WHEN((yyvsp[(2) - (2)].node), 0, 0));
6571
#line 1896 "parse.y"
6573
if ((yyvsp[(3) - (6)].node)) {
6574
(yyvsp[(3) - (6)].node) = node_assign((yyvsp[(3) - (6)].node), NEW_GVAR(rb_intern("$!")));
6575
(yyvsp[(5) - (6)].node) = block_append((yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].node));
6577
(yyval.node) = NEW_RESBODY((yyvsp[(2) - (6)].node), (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].node));
6578
fixpos((yyval.node), (yyvsp[(2) - (6)].node)?(yyvsp[(2) - (6)].node):(yyvsp[(5) - (6)].node));
6583
#line 1908 "parse.y"
6585
(yyval.node) = NEW_LIST((yyvsp[(1) - (1)].node));
6590
#line 1916 "parse.y"
6592
(yyval.node) = (yyvsp[(2) - (2)].node);
6597
#line 1923 "parse.y"
6599
if ((yyvsp[(2) - (2)].node))
6600
(yyval.node) = (yyvsp[(2) - (2)].node);
6603
(yyval.node) = NEW_NIL();
6608
#line 1935 "parse.y"
6610
(yyval.node) = NEW_LIT(ID2SYM((yyvsp[(1) - (1)].id)));
6615
#line 1942 "parse.y"
6617
NODE *node = (yyvsp[(1) - (1)].node);
6619
node = NEW_STR(rb_str_new(0, 0));
6622
node = evstr2dstr(node);
6624
(yyval.node) = node;
6629
#line 1956 "parse.y"
6631
(yyval.node) = literal_concat((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node));
6636
#line 1962 "parse.y"
6638
(yyval.node) = (yyvsp[(2) - (3)].node);
6643
#line 1968 "parse.y"
6645
NODE *node = (yyvsp[(2) - (3)].node);
6647
node = NEW_XSTR(rb_str_new(0, 0));
6650
switch (nd_type(node)) {
6652
nd_set_type(node, NODE_XSTR);
6655
nd_set_type(node, NODE_DXSTR);
6658
node = NEW_NODE(NODE_DXSTR, rb_str_new(0, 0), 1, NEW_LIST(node));
6662
(yyval.node) = node;
6667
#line 1991 "parse.y"
6669
int options = (yyvsp[(3) - (3)].num);
6670
NODE *node = (yyvsp[(2) - (3)].node);
6672
node = NEW_LIT(rb_reg_new("", 0, options & ~RE_OPTION_ONCE));
6674
else switch (nd_type(node)) {
6677
VALUE src = node->nd_lit;
6678
nd_set_type(node, NODE_LIT);
6679
node->nd_lit = rb_reg_new(RSTRING(src)->ptr,
6681
options & ~RE_OPTION_ONCE);
6685
node = NEW_NODE(NODE_DSTR, rb_str_new(0, 0), 1, NEW_LIST(node));
6687
if (options & RE_OPTION_ONCE) {
6688
nd_set_type(node, NODE_DREGX_ONCE);
6691
nd_set_type(node, NODE_DREGX);
6693
node->nd_cflag = options & ~RE_OPTION_ONCE;
6696
(yyval.node) = node;
6701
#line 2024 "parse.y"
6703
(yyval.node) = NEW_ZARRAY();
6708
#line 2028 "parse.y"
6710
(yyval.node) = (yyvsp[(2) - (3)].node);
6715
#line 2034 "parse.y"
6722
#line 2038 "parse.y"
6724
(yyval.node) = list_append((yyvsp[(1) - (3)].node), evstr2dstr((yyvsp[(2) - (3)].node)));
6729
#line 2045 "parse.y"
6731
(yyval.node) = literal_concat((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node));
6736
#line 2051 "parse.y"
6738
(yyval.node) = NEW_ZARRAY();
6743
#line 2055 "parse.y"
6745
(yyval.node) = (yyvsp[(2) - (3)].node);
6750
#line 2061 "parse.y"
6757
#line 2065 "parse.y"
6759
(yyval.node) = list_append((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].node));
6764
#line 2071 "parse.y"
6771
#line 2075 "parse.y"
6773
(yyval.node) = literal_concat((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node));
6778
#line 2081 "parse.y"
6785
#line 2085 "parse.y"
6787
(yyval.node) = literal_concat((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node));
6792
#line 2092 "parse.y"
6794
(yyval.node) = lex_strterm;
6796
lex_state = EXPR_BEG;
6801
#line 2098 "parse.y"
6803
lex_strterm = (yyvsp[(2) - (3)].node);
6804
(yyval.node) = NEW_EVSTR((yyvsp[(3) - (3)].node));
6809
#line 2103 "parse.y"
6811
(yyval.node) = lex_strterm;
6813
lex_state = EXPR_BEG;
6820
#line 2111 "parse.y"
6822
lex_strterm = (yyvsp[(2) - (4)].node);
6825
if (((yyval.node) = (yyvsp[(3) - (4)].node)) && nd_type((yyval.node)) == NODE_NEWLINE) {
6826
(yyval.node) = (yyval.node)->nd_next;
6827
rb_gc_force_recycle((VALUE)(yyvsp[(3) - (4)].node));
6829
(yyval.node) = new_evstr((yyval.node));
6834
#line 2123 "parse.y"
6835
{(yyval.node) = NEW_GVAR((yyvsp[(1) - (1)].id));}
6839
#line 2124 "parse.y"
6840
{(yyval.node) = NEW_IVAR((yyvsp[(1) - (1)].id));}
6844
#line 2125 "parse.y"
6845
{(yyval.node) = NEW_CVAR((yyvsp[(1) - (1)].id));}
6849
#line 2130 "parse.y"
6851
lex_state = EXPR_END;
6852
(yyval.id) = (yyvsp[(2) - (2)].id);
6857
#line 2143 "parse.y"
6859
lex_state = EXPR_END;
6860
if (!((yyval.node) = (yyvsp[(2) - (3)].node))) {
6861
yyerror("empty symbol literal");
6866
switch (nd_type((yyval.node))) {
6868
nd_set_type((yyval.node), NODE_DSYM);
6871
lit = (yyval.node)->nd_lit;
6872
if (RSTRING(lit)->len == 0) {
6873
yyerror("empty symbol literal");
6876
if (strlen(RSTRING(lit)->ptr) == RSTRING(lit)->len) {
6877
(yyval.node)->nd_lit = ID2SYM(rb_intern(RSTRING((yyval.node)->nd_lit)->ptr));
6878
nd_set_type((yyval.node), NODE_LIT);
6883
(yyval.node) = NEW_NODE(NODE_DSYM, rb_str_new(0, 0), 1, NEW_LIST((yyval.node)));
6891
#line 2178 "parse.y"
6893
(yyval.node) = negate_lit((yyvsp[(2) - (2)].node));
6898
#line 2182 "parse.y"
6900
(yyval.node) = negate_lit((yyvsp[(2) - (2)].node));
6905
#line 2192 "parse.y"
6906
{(yyval.id) = kNIL;}
6910
#line 2193 "parse.y"
6911
{(yyval.id) = kSELF;}
6915
#line 2194 "parse.y"
6916
{(yyval.id) = kTRUE;}
6920
#line 2195 "parse.y"
6921
{(yyval.id) = kFALSE;}
6925
#line 2196 "parse.y"
6926
{(yyval.id) = k__FILE__;}
6930
#line 2197 "parse.y"
6931
{(yyval.id) = k__LINE__;}
6935
#line 2201 "parse.y"
6937
(yyval.node) = gettable((yyvsp[(1) - (1)].id));
6942
#line 2207 "parse.y"
6944
(yyval.node) = assignable((yyvsp[(1) - (1)].id), 0);
6949
#line 2217 "parse.y"
6956
#line 2221 "parse.y"
6958
lex_state = EXPR_BEG;
6963
#line 2225 "parse.y"
6965
(yyval.node) = (yyvsp[(3) - (4)].node);
6970
#line 2228 "parse.y"
6971
{yyerrok; (yyval.node) = 0;}
6975
#line 2232 "parse.y"
6977
(yyval.node) = (yyvsp[(2) - (4)].node);
6978
lex_state = EXPR_BEG;
6979
command_start = Qtrue;
6984
#line 2238 "parse.y"
6986
(yyval.node) = (yyvsp[(1) - (2)].node);
6991
#line 2244 "parse.y"
6993
(yyval.node) = block_append(NEW_ARGS((yyvsp[(1) - (6)].num), (yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].node)), (yyvsp[(6) - (6)].node));
6998
#line 2248 "parse.y"
7000
(yyval.node) = block_append(NEW_ARGS((yyvsp[(1) - (4)].num), (yyvsp[(3) - (4)].node), 0), (yyvsp[(4) - (4)].node));
7005
#line 2252 "parse.y"
7007
(yyval.node) = block_append(NEW_ARGS((yyvsp[(1) - (4)].num), 0, (yyvsp[(3) - (4)].node)), (yyvsp[(4) - (4)].node));
7012
#line 2256 "parse.y"
7014
(yyval.node) = block_append(NEW_ARGS((yyvsp[(1) - (2)].num), 0, 0), (yyvsp[(2) - (2)].node));
7019
#line 2260 "parse.y"
7021
(yyval.node) = block_append(NEW_ARGS(0, (yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].node)), (yyvsp[(4) - (4)].node));
7026
#line 2264 "parse.y"
7028
(yyval.node) = block_append(NEW_ARGS(0, (yyvsp[(1) - (2)].node), 0), (yyvsp[(2) - (2)].node));
7033
#line 2268 "parse.y"
7035
(yyval.node) = block_append(NEW_ARGS(0, 0, (yyvsp[(1) - (2)].node)), (yyvsp[(2) - (2)].node));
7040
#line 2272 "parse.y"
7042
(yyval.node) = block_append(NEW_ARGS(0, 0, 0), (yyvsp[(1) - (1)].node));
7047
#line 2276 "parse.y"
7049
(yyval.node) = NEW_ARGS(0, 0, 0);
7054
#line 2282 "parse.y"
7056
yyerror("formal argument cannot be a constant");
7061
#line 2286 "parse.y"
7063
yyerror("formal argument cannot be an instance variable");
7068
#line 2290 "parse.y"
7070
yyerror("formal argument cannot be a global variable");
7075
#line 2294 "parse.y"
7077
yyerror("formal argument cannot be a class variable");
7082
#line 2298 "parse.y"
7084
if (!is_local_id((yyvsp[(1) - (1)].id)))
7085
yyerror("formal argument must be local variable");
7086
else if (local_id((yyvsp[(1) - (1)].id)))
7087
yyerror("duplicate argument name");
7088
local_cnt((yyvsp[(1) - (1)].id));
7094
#line 2310 "parse.y"
7101
#line 2316 "parse.y"
7103
if (!is_local_id((yyvsp[(1) - (3)].id)))
7104
yyerror("formal argument must be local variable");
7105
else if (local_id((yyvsp[(1) - (3)].id)))
7106
yyerror("duplicate optional argument name");
7107
(yyval.node) = assignable((yyvsp[(1) - (3)].id), (yyvsp[(3) - (3)].node));
7112
#line 2326 "parse.y"
7114
(yyval.node) = NEW_BLOCK((yyvsp[(1) - (1)].node));
7115
(yyval.node)->nd_end = (yyval.node);
7120
#line 2331 "parse.y"
7122
(yyval.node) = block_append((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
7127
#line 2341 "parse.y"
7129
if (!is_local_id((yyvsp[(2) - (2)].id)))
7130
yyerror("rest argument must be local variable");
7131
if (dyna_in_block()) {
7132
rb_dvar_push((yyvsp[(2) - (2)].id), Qnil);
7134
(yyval.node) = assignable((yyvsp[(2) - (2)].id), 0);
7139
#line 2350 "parse.y"
7141
if (dyna_in_block()) {
7142
(yyval.node) = NEW_DASGN_CURR(internal_id(), 0);
7145
(yyval.node) = NEW_NODE(NODE_LASGN,0,0,local_append(0));
7151
#line 2365 "parse.y"
7153
if (!is_local_id((yyvsp[(2) - (2)].id)))
7154
yyerror("block argument must be local variable");
7155
else if (local_id((yyvsp[(2) - (2)].id)))
7156
yyerror("duplicate block argument name");
7157
(yyval.node) = NEW_BLOCK_ARG((yyvsp[(2) - (2)].id));
7162
#line 2375 "parse.y"
7164
(yyval.node) = (yyvsp[(2) - (2)].node);
7169
#line 2382 "parse.y"
7171
(yyval.node) = (yyvsp[(1) - (1)].node);
7172
value_expr((yyval.node));
7177
#line 2386 "parse.y"
7178
{lex_state = EXPR_BEG;}
7182
#line 2387 "parse.y"
7184
if ((yyvsp[(3) - (5)].node) == 0) {
7185
yyerror("can't define singleton method for ().");
7188
switch (nd_type((yyvsp[(3) - (5)].node))) {
7197
yyerror("can't define singleton method for literals");
7199
value_expr((yyvsp[(3) - (5)].node));
7203
(yyval.node) = (yyvsp[(3) - (5)].node);
7208
#line 2413 "parse.y"
7210
(yyval.node) = (yyvsp[(1) - (2)].node);
7215
#line 2417 "parse.y"
7217
if ((yyvsp[(1) - (2)].node)->nd_alen%2 != 0) {
7218
yyerror("odd number list for Hash");
7220
(yyval.node) = (yyvsp[(1) - (2)].node);
7225
#line 2427 "parse.y"
7227
(yyval.node) = list_concat((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
7232
#line 2433 "parse.y"
7234
(yyval.node) = list_append(NEW_LIST((yyvsp[(1) - (3)].node)), (yyvsp[(3) - (3)].node));
7239
#line 2471 "parse.y"
7244
#line 2476 "parse.y"
7249
#line 2479 "parse.y"
7254
/* Line 1267 of yacc.c. */
7255
#line 7256 "parse.c"
7258
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
7262
YY_STACK_PRINT (yyss, yyssp);
7267
/* Now `shift' the result of the reduction. Determine what state
7268
that goes to, based on the state we popped back to and the rule
7269
number reduced by. */
7273
yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
7274
if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
7275
yystate = yytable[yystate];
7277
yystate = yydefgoto[yyn - YYNTOKENS];
7282
/*------------------------------------.
7283
| yyerrlab -- here on detecting error |
7284
`------------------------------------*/
7286
/* If not already recovering from an error, report this error. */
7290
#if ! YYERROR_VERBOSE
7291
yyerror (YY_("syntax error"));
7294
YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
7295
if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
7297
YYSIZE_T yyalloc = 2 * yysize;
7298
if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
7299
yyalloc = YYSTACK_ALLOC_MAXIMUM;
7300
if (yymsg != yymsgbuf)
7301
YYSTACK_FREE (yymsg);
7302
yymsg = (char *) YYSTACK_ALLOC (yyalloc);
7304
yymsg_alloc = yyalloc;
7308
yymsg_alloc = sizeof yymsgbuf;
7312
if (0 < yysize && yysize <= yymsg_alloc)
7314
(void) yysyntax_error (yymsg, yystate, yychar);
7319
yyerror (YY_("syntax error"));
7321
goto yyexhaustedlab;
7329
if (yyerrstatus == 3)
7331
/* If just tried and failed to reuse look-ahead token after an
7332
error, discard it. */
7334
if (yychar <= YYEOF)
7336
/* Return failure if at end of input. */
7337
if (yychar == YYEOF)
7342
yydestruct ("Error: discarding",
7348
/* Else will try to reuse look-ahead token after shifting the error
7353
/*---------------------------------------------------.
7354
| yyerrorlab -- error raised explicitly by YYERROR. |
7355
`---------------------------------------------------*/
7358
/* Pacify compilers like GCC when the user code never invokes
7359
YYERROR and the label yyerrorlab therefore never appears in user
7361
if (/*CONSTCOND*/ 0)
7364
/* Do not reclaim the symbols of the rule which action triggered
7368
YY_STACK_PRINT (yyss, yyssp);
7373
/*-------------------------------------------------------------.
7374
| yyerrlab1 -- common code for both syntax error and YYERROR. |
7375
`-------------------------------------------------------------*/
7377
yyerrstatus = 3; /* Each real token shifted decrements this. */
7381
yyn = yypact[yystate];
7382
if (yyn != YYPACT_NINF)
7385
if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
7393
/* Pop the current state because it cannot handle the error token. */
7398
yydestruct ("Error: popping",
7399
yystos[yystate], yyvsp);
7402
YY_STACK_PRINT (yyss, yyssp);
7411
/* Shift the error token. */
7412
YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
7418
/*-------------------------------------.
7419
| yyacceptlab -- YYACCEPT comes here. |
7420
`-------------------------------------*/
7425
/*-----------------------------------.
7426
| yyabortlab -- YYABORT comes here. |
7427
`-----------------------------------*/
7433
/*-------------------------------------------------.
7434
| yyexhaustedlab -- memory exhaustion comes here. |
7435
`-------------------------------------------------*/
7437
yyerror (YY_("memory exhausted"));
7443
if (yychar != YYEOF && yychar != YYEMPTY)
7444
yydestruct ("Cleanup: discarding lookahead",
7446
/* Do not reclaim the symbols of the rule which action triggered
7447
this YYABORT or YYACCEPT. */
7449
YY_STACK_PRINT (yyss, yyssp);
7450
while (yyssp != yyss)
7452
yydestruct ("Cleanup: popping",
7453
yystos[*yyssp], yyvsp);
7458
YYSTACK_FREE (yyss);
7461
if (yymsg != yymsgbuf)
7462
YYSTACK_FREE (yymsg);
7464
/* Make sure YYID is used. */
7465
return YYID (yyresult);
7469
#line 2481 "parse.y"
7478
/* We remove any previous definition of `SIGN_EXTEND_CHAR',
7479
since ours (we hope) works properly with all combinations of
7480
machines, compilers, `char' and `unsigned char' argument types.
7481
(Per Bothner suggested the basic approach.) */
7482
#undef SIGN_EXTEND_CHAR
7484
# define SIGN_EXTEND_CHAR(c) ((signed char)(c))
7485
#else /* not __STDC__ */
7486
/* As in Harbison and Steele. */
7487
# define SIGN_EXTEND_CHAR(c) ((((unsigned char)(c)) ^ 128) - 128)
7489
#define is_identchar(c) (SIGN_EXTEND_CHAR(c)!=-1&&(ISALNUM(c) || (c) == '_' || ismbchar(c)))
7491
static char *tokenbuf = NULL;
7492
static int tokidx, toksiz = 0;
7496
static VALUE (*lex_gets)(); /* gets function */
7497
static VALUE lex_input; /* non-nil if File */
7498
static VALUE lex_lastline; /* gc protect */
7499
static char *lex_pbeg;
7501
static char *lex_pend;
7510
rb_compile_error("%s", msg);
7512
while (lex_pbeg <= p) {
7513
if (*p == '\n') break;
7519
while (pe < lex_pend) {
7520
if (*pe == '\n') break;
7526
buf = ALLOCA_N(char, len+2);
7527
MEMCPY(buf, p, char, len);
7529
rb_compile_error_append("%s", buf);
7532
p = buf; pe = p + len;
7535
if (*p != '\t') *p = ' ';
7540
rb_compile_error_append("%s", buf);
7546
static int heredoc_end;
7548
int ruby_in_compile = 0;
7549
int ruby__end__seen;
7551
static VALUE ruby_debug_lines;
7553
static NODE *parser_heap;
7563
struct RVarmap *vp, *vars = ruby_dyna_vars;
7565
ruby_in_compile = 1;
7566
if (!compile_for_eval && rb_safe_level() == 0 &&
7567
rb_const_defined(rb_cObject, rb_intern("SCRIPT_LINES__"))) {
7570
hash = rb_const_get(rb_cObject, rb_intern("SCRIPT_LINES__"));
7571
if (TYPE(hash) == T_HASH) {
7572
fname = rb_str_new2(f);
7573
ruby_debug_lines = rb_hash_aref(hash, fname);
7574
if (NIL_P(ruby_debug_lines)) {
7575
ruby_debug_lines = rb_ary_new();
7576
rb_hash_aset(hash, fname, ruby_debug_lines);
7580
VALUE str = rb_str_new(0,0);
7582
rb_ary_push(ruby_debug_lines, str);
7588
ruby__end__seen = 0;
7592
ruby_current_node = 0;
7593
ruby_sourcefile = rb_source_filename(f);
7595
ruby_debug_lines = 0;
7596
compile_for_eval = 0;
7597
ruby_in_compile = 0;
7606
vp = ruby_dyna_vars;
7607
ruby_dyna_vars = vars;
7609
while (vp && vp != vars) {
7610
struct RVarmap *tmp = vp;
7612
rb_gc_force_recycle((VALUE)tmp);
7614
if (n == 0) node = ruby_eval_tree;
7615
else ruby_eval_tree_begin = 0;
7619
static int lex_gets_ptr;
7625
char *beg, *end, *pend;
7627
beg = RSTRING(s)->ptr;
7629
if (RSTRING(s)->len == lex_gets_ptr) return Qnil;
7630
beg += lex_gets_ptr;
7632
pend = RSTRING(s)->ptr + RSTRING(s)->len;
7634
while (end < pend) {
7635
if (*end++ == '\n') break;
7637
lex_gets_ptr = end - RSTRING(s)->ptr;
7638
return rb_str_new(beg, end - beg);
7644
VALUE line = (*lex_gets)(lex_input);
7645
if (ruby_debug_lines && !NIL_P(line)) {
7646
rb_ary_push(ruby_debug_lines, line);
7652
rb_compile_string(f, s, line)
7657
lex_gets = lex_get_str;
7660
lex_pbeg = lex_p = lex_pend = 0;
7661
ruby_sourceline = line - 1;
7662
compile_for_eval = ruby_in_eval;
7664
return yycompile(f, line);
7668
rb_compile_cstr(f, s, len, line)
7672
return rb_compile_string(f, rb_str_new(s, len), line);
7676
rb_compile_file(f, file, start)
7681
lex_gets = rb_io_gets;
7683
lex_pbeg = lex_p = lex_pend = 0;
7684
ruby_sourceline = start - 1;
7686
return yycompile(f, start);
7694
if (lex_p == lex_pend) {
7696
VALUE v = lex_getline();
7698
if (NIL_P(v)) return -1;
7699
if (heredoc_end > 0) {
7700
ruby_sourceline = heredoc_end;
7704
lex_pbeg = lex_p = RSTRING(v)->ptr;
7705
lex_pend = lex_p + RSTRING(v)->len;
7713
c = (unsigned char)*lex_p++;
7714
if (c == '\r' && lex_p < lex_pend && *lex_p == '\n') {
7726
if (c == -1) return;
7730
#define was_bol() (lex_p == lex_pbeg + 1)
7731
#define peek(c) (lex_p != lex_pend && (c) == *lex_p)
7733
#define tokfix() (tokenbuf[tokidx]='\0')
7734
#define tok() tokenbuf
7735
#define toklen() tokidx
7736
#define toklast() (tokidx>0?tokenbuf[tokidx-1]:0)
7744
tokenbuf = ALLOC_N(char, 60);
7746
if (toksiz > 4096) {
7748
REALLOC_N(tokenbuf, char, 60);
7757
tokenbuf[tokidx++] = c;
7758
if (tokidx >= toksiz) {
7760
REALLOC_N(tokenbuf, char, toksiz);
7769
switch (c = nextc()) {
7770
case '\\': /* Backslash */
7773
case 'n': /* newline */
7776
case 't': /* horizontal tab */
7779
case 'r': /* carriage-return */
7782
case 'f': /* form-feed */
7785
case 'v': /* vertical tab */
7788
case 'a': /* alarm(bell) */
7791
case 'e': /* escape */
7794
case '0': case '1': case '2': case '3': /* octal constant */
7795
case '4': case '5': case '6': case '7':
7800
c = scan_oct(lex_p, 3, &numlen);
7805
case 'x': /* hex constant */
7809
c = scan_hex(lex_p, 2, &numlen);
7811
yyerror("Invalid escape character syntax");
7818
case 'b': /* backspace */
7821
case 's': /* space */
7825
if ((c = nextc()) != '-') {
7826
yyerror("Invalid escape character syntax");
7830
if ((c = nextc()) == '\\') {
7831
return read_escape() | 0x80;
7833
else if (c == -1) goto eof;
7835
return ((c & 0xff) | 0x80);
7839
if ((c = nextc()) != '-') {
7840
yyerror("Invalid escape character syntax");
7845
if ((c = nextc())== '\\') {
7850
else if (c == -1) goto eof;
7855
yyerror("Invalid escape character syntax");
7869
switch (c = nextc()) {
7871
return 0; /* just ignore */
7873
case '0': case '1': case '2': case '3': /* octal constant */
7874
case '4': case '5': case '6': case '7':
7880
for (i=0; i<2; i++) {
7882
if (c == -1) goto eof;
7883
if (c < '0' || '7' < c) {
7892
case 'x': /* hex constant */
7898
scan_hex(lex_p, 2, &numlen);
7900
yyerror("Invalid escape character syntax");
7909
if ((c = nextc()) != '-') {
7910
yyerror("Invalid escape character syntax");
7914
tokadd('\\'); tokadd('M'); tokadd('-');
7918
if ((c = nextc()) != '-') {
7919
yyerror("Invalid escape character syntax");
7923
tokadd('\\'); tokadd('C'); tokadd('-');
7927
tokadd('\\'); tokadd('c');
7929
if ((c = nextc()) == '\\') {
7930
return tokadd_escape(term);
7932
else if (c == -1) goto eof;
7938
yyerror("Invalid escape character syntax");
7942
if (c != '\\' || c != term)
7957
while (c = nextc(), ISALPHA(c)) {
7960
options |= RE_OPTION_IGNORECASE;
7963
options |= RE_OPTION_EXTENDED;
7966
options |= RE_OPTION_MULTILINE;
7969
options |= RE_OPTION_ONCE;
7991
rb_compile_error("unknown regexp option%s - %s",
7992
toklen() > 1 ? "s" : "", tok());
7994
return options | kcode;
7997
#define STR_FUNC_ESCAPE 0x01
7998
#define STR_FUNC_EXPAND 0x02
7999
#define STR_FUNC_REGEXP 0x04
8000
#define STR_FUNC_QWORDS 0x08
8001
#define STR_FUNC_SYMBOL 0x10
8002
#define STR_FUNC_INDENT 0x20
8006
str_dquote = (STR_FUNC_EXPAND),
8007
str_xquote = (STR_FUNC_EXPAND),
8008
str_regexp = (STR_FUNC_REGEXP|STR_FUNC_ESCAPE|STR_FUNC_EXPAND),
8009
str_sword = (STR_FUNC_QWORDS),
8010
str_dword = (STR_FUNC_QWORDS|STR_FUNC_EXPAND),
8011
str_ssym = (STR_FUNC_SYMBOL),
8012
str_dsym = (STR_FUNC_SYMBOL|STR_FUNC_EXPAND),
8019
xfree(RSTRING(str)->ptr);
8020
rb_gc_force_recycle(str);
8024
tokadd_string(func, term, paren, nest)
8025
int func, term, paren, *nest;
8029
while ((c = nextc()) != -1) {
8030
if (paren && c == paren) {
8033
else if (c == term) {
8034
if (!nest || !*nest) {
8040
else if ((func & STR_FUNC_EXPAND) && c == '#' && lex_p < lex_pend) {
8042
if (c2 == '$' || c2 == '@' || c2 == '{') {
8047
else if (c == '\\') {
8051
if (func & STR_FUNC_QWORDS) break;
8052
if (func & STR_FUNC_EXPAND) continue;
8057
if (func & STR_FUNC_ESCAPE) tokadd(c);
8061
if (func & STR_FUNC_REGEXP) {
8063
if (tokadd_escape(term) < 0)
8067
else if (func & STR_FUNC_EXPAND) {
8069
if (func & STR_FUNC_ESCAPE) tokadd('\\');
8072
else if ((func & STR_FUNC_QWORDS) && ISSPACE(c)) {
8073
/* ignore backslashed spaces in %w */
8075
else if (c != term && !(paren && c == paren)) {
8080
else if (ismbchar(c)) {
8081
int i, len = mbclen(c)-1;
8083
for (i = 0; i < len; i++) {
8088
else if ((func & STR_FUNC_QWORDS) && ISSPACE(c)) {
8092
if (!c && (func & STR_FUNC_SYMBOL)) {
8093
func &= ~STR_FUNC_SYMBOL;
8094
rb_compile_error("symbol cannot contain '\\0'");
8102
#define NEW_STRTERM(func, term, paren) \
8103
rb_node_newnode(NODE_STRTERM, (func), (term) | ((paren) << (CHAR_BIT * 2)), 0)
8109
int func = quote->nd_func;
8110
int term = nd_term(quote);
8111
int paren = nd_paren(quote);
8114
if (func == -1) return tSTRING_END;
8116
if ((func & STR_FUNC_QWORDS) && ISSPACE(c)) {
8117
do {c = nextc();} while (ISSPACE(c));
8120
if (c == term && !quote->nd_nest) {
8121
if (func & STR_FUNC_QWORDS) {
8122
quote->nd_func = -1;
8125
if (!(func & STR_FUNC_REGEXP)) return tSTRING_END;
8126
yylval.num = regx_options();
8134
if ((func & STR_FUNC_EXPAND) && c == '#') {
8135
switch (c = nextc()) {
8139
return tSTRING_DVAR;
8141
return tSTRING_DBEG;
8146
if (tokadd_string(func, term, paren, "e->nd_nest) == -1) {
8147
ruby_sourceline = nd_line(quote);
8148
rb_compile_error("unterminated string meets end of file");
8153
yylval.node = NEW_STR(rb_str_new(tok(), toklen()));
8154
return tSTRING_CONTENT;
8158
heredoc_identifier()
8160
int c = nextc(), term, func = 0, len;
8164
func = STR_FUNC_INDENT;
8168
func |= str_squote; goto quoted;
8170
func |= str_dquote; goto quoted;
8177
while ((c = nextc()) != -1 && c != term) {
8179
do {tokadd(c);} while (--len > 0 && (c = nextc()) != -1);
8182
rb_compile_error("unterminated here document identifier");
8188
if (!is_identchar(c)) {
8190
if (func & STR_FUNC_INDENT) {
8197
tokadd(func |= str_dquote);
8200
do {tokadd(c);} while (--len > 0 && (c = nextc()) != -1);
8201
} while ((c = nextc()) != -1 && is_identchar(c));
8207
len = lex_p - lex_pbeg;
8209
lex_strterm = rb_node_newnode(NODE_HEREDOC,
8210
rb_str_new(tok(), toklen()), /* nd_lit */
8212
lex_lastline); /* nd_orig */
8213
return term == '`' ? tXSTRING_BEG : tSTRING_BEG;
8217
heredoc_restore(here)
8220
VALUE line = here->nd_orig;
8221
lex_lastline = line;
8222
lex_pbeg = RSTRING(line)->ptr;
8223
lex_pend = lex_pbeg + RSTRING(line)->len;
8224
lex_p = lex_pbeg + here->nd_nth;
8225
heredoc_end = ruby_sourceline;
8226
ruby_sourceline = nd_line(here);
8227
dispose_string(here->nd_lit);
8228
rb_gc_force_recycle((VALUE)here);
8232
whole_match_p(eos, len, indent)
8240
while (*p && ISSPACE(*p)) p++;
8242
n= lex_pend - (p + len);
8243
if (n < 0 || (n > 0 && p[len] != '\n' && p[len] != '\r')) return Qfalse;
8244
if (strncmp(eos, p, len) == 0) return Qtrue;
8252
int c, func, indent = 0;
8253
char *eos, *p, *pend;
8257
eos = RSTRING(here->nd_lit)->ptr;
8258
len = RSTRING(here->nd_lit)->len - 1;
8259
indent = (func = *eos++) & STR_FUNC_INDENT;
8261
if ((c = nextc()) == -1) {
8263
rb_compile_error("can't find string \"%s\" anywhere before EOF", eos);
8264
heredoc_restore(lex_strterm);
8268
if (was_bol() && whole_match_p(eos, len, indent)) {
8269
heredoc_restore(lex_strterm);
8273
if (!(func & STR_FUNC_EXPAND)) {
8275
p = RSTRING(lex_lastline)->ptr;
8280
if (--pend == p || pend[-1] != '\r') {
8289
rb_str_cat(str, p, pend - p);
8291
str = rb_str_new(p, pend - p);
8292
if (pend < lex_pend) rb_str_cat(str, "\n", 1);
8294
if (nextc() == -1) {
8295
if (str) dispose_string(str);
8298
} while (!whole_match_p(eos, len, indent));
8303
switch (c = nextc()) {
8307
return tSTRING_DVAR;
8309
return tSTRING_DBEG;
8315
if ((c = tokadd_string(func, '\n', 0, NULL)) == -1) goto error;
8317
yylval.node = NEW_STR(rb_str_new(tok(), toklen()));
8318
return tSTRING_CONTENT;
8321
if ((c = nextc()) == -1) goto error;
8322
} while (!whole_match_p(eos, len, indent));
8323
str = rb_str_new(tok(), toklen());
8325
heredoc_restore(lex_strterm);
8326
lex_strterm = NEW_STRTERM(-1, 0, 0);
8327
yylval.node = NEW_STR(str);
8328
return tSTRING_CONTENT;
8336
rb_warning("ambiguous first argument; put parentheses or even spaces");
8339
#define IS_ARG() (lex_state == EXPR_ARG || lex_state == EXPR_CMDARG)
8347
enum lex_state last_state;
8351
if (nd_type(lex_strterm) == NODE_HEREDOC) {
8352
token = here_document(lex_strterm);
8353
if (token == tSTRING_END) {
8355
lex_state = EXPR_END;
8359
token = parse_string(lex_strterm);
8360
if (token == tSTRING_END || token == tREGEXP_END) {
8361
rb_gc_force_recycle((VALUE)lex_strterm);
8363
lex_state = EXPR_END;
8368
cmd_state = command_start;
8369
command_start = Qfalse;
8371
switch (c = nextc()) {
8372
case '\0': /* NUL */
8373
case '\004': /* ^D */
8374
case '\032': /* ^Z */
8375
case -1: /* end of script. */
8379
case ' ': case '\t': case '\f': case '\r':
8380
case '\13': /* '\v' */
8384
case '#': /* it's a comment */
8385
while ((c = nextc()) != '\n') {
8391
switch (lex_state) {
8400
command_start = Qtrue;
8401
lex_state = EXPR_BEG;
8405
if ((c = nextc()) == '*') {
8406
if ((c = nextc()) == '=') {
8408
lex_state = EXPR_BEG;
8417
lex_state = EXPR_BEG;
8421
if (IS_ARG() && space_seen && !ISSPACE(c)){
8422
rb_warning("`*' interpreted as argument prefix");
8425
else if (lex_state == EXPR_BEG || lex_state == EXPR_MID) {
8432
switch (lex_state) {
8433
case EXPR_FNAME: case EXPR_DOT:
8434
lex_state = EXPR_ARG; break;
8436
lex_state = EXPR_BEG; break;
8441
lex_state = EXPR_BEG;
8442
if ((c = nextc()) == '=') {
8453
/* skip embedded rd document */
8454
if (strncmp(lex_p, "begin", 5) == 0 && ISSPACE(lex_p[5])) {
8459
rb_compile_error("embedded document meets end of file");
8462
if (c != '=') continue;
8463
if (strncmp(lex_p, "end", 3) == 0 &&
8464
(lex_p + 3 == lex_pend || ISSPACE(lex_p[3]))) {
8473
switch (lex_state) {
8474
case EXPR_FNAME: case EXPR_DOT:
8475
lex_state = EXPR_ARG; break;
8477
lex_state = EXPR_BEG; break;
8479
if ((c = nextc()) == '=') {
8480
if ((c = nextc()) == '=') {
8489
else if (c == '>') {
8498
lex_state != EXPR_END &&
8499
lex_state != EXPR_DOT &&
8500
lex_state != EXPR_ENDARG &&
8501
lex_state != EXPR_CLASS &&
8502
(!IS_ARG() || space_seen)) {
8503
int token = heredoc_identifier();
8504
if (token) return token;
8506
switch (lex_state) {
8507
case EXPR_FNAME: case EXPR_DOT:
8508
lex_state = EXPR_ARG; break;
8510
lex_state = EXPR_BEG; break;
8513
if ((c = nextc()) == '>') {
8520
if ((c = nextc()) == '=') {
8522
lex_state = EXPR_BEG;
8532
switch (lex_state) {
8533
case EXPR_FNAME: case EXPR_DOT:
8534
lex_state = EXPR_ARG; break;
8536
lex_state = EXPR_BEG; break;
8538
if ((c = nextc()) == '=') {
8542
if ((c = nextc()) == '=') {
8544
lex_state = EXPR_BEG;
8554
lex_strterm = NEW_STRTERM(str_dquote, '"', 0);
8558
if (lex_state == EXPR_FNAME) {
8559
lex_state = EXPR_END;
8562
if (lex_state == EXPR_DOT) {
8564
lex_state = EXPR_CMDARG;
8566
lex_state = EXPR_ARG;
8569
lex_strterm = NEW_STRTERM(str_xquote, '`', 0);
8570
return tXSTRING_BEG;
8573
lex_strterm = NEW_STRTERM(str_squote, '\'', 0);
8577
if (lex_state == EXPR_END || lex_state == EXPR_ENDARG) {
8578
lex_state = EXPR_BEG;
8583
rb_compile_error("incomplete character syntax");
8610
rb_warn("invalid character syntax; use ?\\%c", c2);
8615
lex_state = EXPR_BEG;
8618
else if (ismbchar(c)) {
8619
rb_warn("multibyte character literal not supported yet; use ?\\%.3o", c);
8622
else if ((ISALNUM(c) || c == '_') && lex_p < lex_pend && is_identchar(*lex_p)) {
8625
else if (c == '\\') {
8629
lex_state = EXPR_END;
8630
yylval.node = NEW_LIT(INT2FIX(c));
8634
if ((c = nextc()) == '&') {
8635
lex_state = EXPR_BEG;
8636
if ((c = nextc()) == '=') {
8638
lex_state = EXPR_BEG;
8644
else if (c == '=') {
8646
lex_state = EXPR_BEG;
8650
if (IS_ARG() && space_seen && !ISSPACE(c)){
8651
rb_warning("`&' interpreted as argument prefix");
8654
else if (lex_state == EXPR_BEG || lex_state == EXPR_MID) {
8660
switch (lex_state) {
8661
case EXPR_FNAME: case EXPR_DOT:
8662
lex_state = EXPR_ARG; break;
8664
lex_state = EXPR_BEG;
8669
if ((c = nextc()) == '|') {
8670
lex_state = EXPR_BEG;
8671
if ((c = nextc()) == '=') {
8673
lex_state = EXPR_BEG;
8681
lex_state = EXPR_BEG;
8684
if (lex_state == EXPR_FNAME || lex_state == EXPR_DOT) {
8685
lex_state = EXPR_ARG;
8688
lex_state = EXPR_BEG;
8695
if (lex_state == EXPR_FNAME || lex_state == EXPR_DOT) {
8696
lex_state = EXPR_ARG;
8705
lex_state = EXPR_BEG;
8708
if (lex_state == EXPR_BEG || lex_state == EXPR_MID ||
8709
(IS_ARG() && space_seen && !ISSPACE(c))) {
8710
if (IS_ARG()) arg_ambiguous();
8711
lex_state = EXPR_BEG;
8719
lex_state = EXPR_BEG;
8725
if (lex_state == EXPR_FNAME || lex_state == EXPR_DOT) {
8726
lex_state = EXPR_ARG;
8735
lex_state = EXPR_BEG;
8738
if (lex_state == EXPR_BEG || lex_state == EXPR_MID ||
8739
(IS_ARG() && space_seen && !ISSPACE(c))) {
8740
if (IS_ARG()) arg_ambiguous();
8741
lex_state = EXPR_BEG;
8748
lex_state = EXPR_BEG;
8753
lex_state = EXPR_BEG;
8754
if ((c = nextc()) == '.') {
8755
if ((c = nextc()) == '.') {
8763
yyerror("no .<digit> floating literal anymore; put 0 before dot");
8765
lex_state = EXPR_DOT;
8769
case '0': case '1': case '2': case '3': case '4':
8770
case '5': case '6': case '7': case '8': case '9':
8772
int is_float, seen_point, seen_e, nondigit;
8774
is_float = seen_point = seen_e = nondigit = 0;
8775
lex_state = EXPR_END;
8777
if (c == '-' || c == '+') {
8782
int start = toklen();
8784
if (c == 'x' || c == 'X') {
8790
if (nondigit) break;
8794
if (!ISXDIGIT(c)) break;
8797
} while ((c = nextc()) != -1);
8801
if (toklen() == start) {
8802
yyerror("numeric literal without digits");
8804
else if (nondigit) goto trailing_uc;
8805
yylval.node = NEW_LIT(rb_cstr_to_inum(tok(), 16, Qfalse));
8808
if (c == 'b' || c == 'B') {
8811
if (c == '0' || c == '1') {
8814
if (nondigit) break;
8818
if (c != '0' && c != '1') break;
8821
} while ((c = nextc()) != -1);
8825
if (toklen() == start) {
8826
yyerror("numeric literal without digits");
8828
else if (nondigit) goto trailing_uc;
8829
yylval.node = NEW_LIT(rb_cstr_to_inum(tok(), 2, Qfalse));
8832
if (c == 'd' || c == 'D') {
8838
if (nondigit) break;
8842
if (!ISDIGIT(c)) break;
8845
} while ((c = nextc()) != -1);
8849
if (toklen() == start) {
8850
yyerror("numeric literal without digits");
8852
else if (nondigit) goto trailing_uc;
8853
yylval.node = NEW_LIT(rb_cstr_to_inum(tok(), 10, Qfalse));
8860
if (c == 'o' || c == 'O') {
8861
/* prefixed octal */
8864
yyerror("numeric literal without digits");
8867
if (c >= '0' && c <= '7') {
8872
if (nondigit) break;
8876
if (c < '0' || c > '7') break;
8879
} while ((c = nextc()) != -1);
8880
if (toklen() > start) {
8883
if (nondigit) goto trailing_uc;
8884
yylval.node = NEW_LIT(rb_cstr_to_inum(tok(), 8, Qfalse));
8892
if (c > '7' && c <= '9') {
8893
yyerror("Illegal octal digit");
8895
else if (c == '.' || c == 'e' || c == 'E') {
8900
yylval.node = NEW_LIT(INT2FIX(0));
8907
case '0': case '1': case '2': case '3': case '4':
8908
case '5': case '6': case '7': case '8': case '9':
8914
if (nondigit) goto trailing_uc;
8915
if (seen_point || seen_e) {
8948
if (c != '-' && c != '+') continue;
8953
case '_': /* `_' in number just ignored */
8954
if (nondigit) goto decode_num;
8970
sprintf(tmp, "trailing `%c' in number", nondigit);
8974
double d = strtod(tok(), 0);
8975
if (errno == ERANGE) {
8976
rb_warn("Float %s out of range", tok());
8979
yylval.node = NEW_LIT(rb_float_new(d));
8982
yylval.node = NEW_LIT(rb_cstr_to_inum(tok(), 10, Qfalse));
8991
lex_state = EXPR_END;
8997
if (lex_state == EXPR_BEG || lex_state == EXPR_MID ||
8998
lex_state == EXPR_CLASS || (IS_ARG() && space_seen)) {
8999
lex_state = EXPR_BEG;
9002
lex_state = EXPR_DOT;
9005
if (lex_state == EXPR_END || lex_state == EXPR_ENDARG || ISSPACE(c)) {
9007
lex_state = EXPR_BEG;
9012
lex_strterm = NEW_STRTERM(str_ssym, c, 0);
9015
lex_strterm = NEW_STRTERM(str_dsym, c, 0);
9021
lex_state = EXPR_FNAME;
9025
if (lex_state == EXPR_BEG || lex_state == EXPR_MID) {
9026
lex_strterm = NEW_STRTERM(str_regexp, '/', 0);
9029
if ((c = nextc()) == '=') {
9031
lex_state = EXPR_BEG;
9035
if (IS_ARG() && space_seen) {
9038
lex_strterm = NEW_STRTERM(str_regexp, '/', 0);
9042
switch (lex_state) {
9043
case EXPR_FNAME: case EXPR_DOT:
9044
lex_state = EXPR_ARG; break;
9046
lex_state = EXPR_BEG; break;
9051
if ((c = nextc()) == '=') {
9053
lex_state = EXPR_BEG;
9056
switch (lex_state) {
9057
case EXPR_FNAME: case EXPR_DOT:
9058
lex_state = EXPR_ARG; break;
9060
lex_state = EXPR_BEG; break;
9066
command_start = Qtrue;
9068
lex_state = EXPR_BEG;
9072
if (lex_state == EXPR_FNAME || lex_state == EXPR_DOT) {
9073
if ((c = nextc()) != '@') {
9077
switch (lex_state) {
9078
case EXPR_FNAME: case EXPR_DOT:
9079
lex_state = EXPR_ARG; break;
9081
lex_state = EXPR_BEG; break;
9086
command_start = Qtrue;
9087
if (lex_state == EXPR_BEG || lex_state == EXPR_MID) {
9090
else if (space_seen) {
9091
if (lex_state == EXPR_CMDARG) {
9094
else if (lex_state == EXPR_ARG) {
9095
rb_warn("don't put space before argument parentheses");
9101
lex_state = EXPR_BEG;
9105
if (lex_state == EXPR_FNAME || lex_state == EXPR_DOT) {
9106
lex_state = EXPR_ARG;
9107
if ((c = nextc()) == ']') {
9108
if ((c = nextc()) == '=') {
9117
else if (lex_state == EXPR_BEG || lex_state == EXPR_MID) {
9120
else if (IS_ARG() && space_seen) {
9123
lex_state = EXPR_BEG;
9129
if (IS_ARG() || lex_state == EXPR_END)
9130
c = '{'; /* block (primary) */
9131
else if (lex_state == EXPR_ENDARG)
9132
c = tLBRACE_ARG; /* block (expr) */
9134
c = tLBRACE; /* hash */
9137
lex_state = EXPR_BEG;
9144
goto retry; /* skip \\n */
9150
if (lex_state == EXPR_BEG || lex_state == EXPR_MID) {
9162
if (ISALNUM(term) || ismbchar(term)) {
9163
yyerror("unknown type of %string");
9167
if (c == -1 || term == -1) {
9168
rb_compile_error("unterminated quoted string meets end of file");
9172
if (term == '(') term = ')';
9173
else if (term == '[') term = ']';
9174
else if (term == '{') term = '}';
9175
else if (term == '<') term = '>';
9180
lex_strterm = NEW_STRTERM(str_dquote, term, paren);
9184
lex_strterm = NEW_STRTERM(str_squote, term, paren);
9188
lex_strterm = NEW_STRTERM(str_dword, term, paren);
9189
do {c = nextc();} while (ISSPACE(c));
9194
lex_strterm = NEW_STRTERM(str_sword, term, paren);
9195
do {c = nextc();} while (ISSPACE(c));
9200
lex_strterm = NEW_STRTERM(str_xquote, term, paren);
9201
return tXSTRING_BEG;
9204
lex_strterm = NEW_STRTERM(str_regexp, term, paren);
9208
lex_strterm = NEW_STRTERM(str_ssym, term, paren);
9209
lex_state = EXPR_FNAME;
9213
yyerror("unknown type of %string");
9217
if ((c = nextc()) == '=') {
9219
lex_state = EXPR_BEG;
9222
if (IS_ARG() && space_seen && !ISSPACE(c)) {
9225
switch (lex_state) {
9226
case EXPR_FNAME: case EXPR_DOT:
9227
lex_state = EXPR_ARG; break;
9229
lex_state = EXPR_BEG; break;
9235
last_state = lex_state;
9236
lex_state = EXPR_END;
9240
case '_': /* $_: last read line string */
9242
if (is_identchar(c)) {
9250
case '~': /* $~: match-data */
9253
case '*': /* $*: argv */
9254
case '$': /* $$: pid */
9255
case '?': /* $?: last status */
9256
case '!': /* $!: error string */
9257
case '@': /* $@: error position */
9258
case '/': /* $/: input record separator */
9259
case '\\': /* $\: output record separator */
9260
case ';': /* $;: field separator */
9261
case ',': /* $,: output field separator */
9262
case '.': /* $.: last read line number */
9263
case '=': /* $=: ignorecase */
9264
case ':': /* $:: load path */
9265
case '<': /* $<: reading filename */
9266
case '>': /* $>: default output handle */
9267
case '\"': /* $": already loaded files */
9271
yylval.id = rb_intern(tok());
9278
if (is_identchar(c)) {
9286
yylval.id = rb_intern(tok());
9287
/* xxx shouldn't check if valid option variable */
9290
case '&': /* $&: last match */
9291
case '`': /* $`: string before last match */
9292
case '\'': /* $': string after last match */
9293
case '+': /* $+: string matches last paren. */
9294
if (last_state == EXPR_FNAME) {
9299
yylval.node = NEW_BACK_REF(c);
9302
case '1': case '2': case '3':
9303
case '4': case '5': case '6':
9304
case '7': case '8': case '9':
9309
} while (ISDIGIT(c));
9311
if (last_state == EXPR_FNAME) goto gvar;
9313
yylval.node = NEW_NTH_REF(atoi(tok()+1));
9317
if (!is_identchar(c)) {
9336
rb_compile_error("`@%c' is not allowed as an instance variable name", c);
9339
rb_compile_error("`@@%c' is not allowed as a class variable name", c);
9342
if (!is_identchar(c)) {
9349
if (was_bol() && whole_match_p("__END__", 7, 0)) {
9350
ruby__end__seen = 1;
9358
if (!is_identchar(c)) {
9359
rb_compile_error("Invalid char `\\%03o' in expression", c);
9370
int i, len = mbclen(c)-1;
9372
for (i = 0; i < len; i++) {
9378
} while (is_identchar(c));
9379
if ((c == '!' || c == '?') && is_identchar(tok()[0]) && !peek('=')) {
9390
last_state = lex_state;
9393
lex_state = EXPR_END;
9397
lex_state = EXPR_END;
9398
if (tok()[1] == '@')
9405
if (toklast() == '!' || toklast() == '?') {
9409
if (lex_state == EXPR_FNAME) {
9410
if ((c = nextc()) == '=' && !peek('~') && !peek('>') &&
9411
(!peek('=') || (lex_p + 1 < lex_pend && lex_p[1] == '>'))) {
9412
result = tIDENTIFIER;
9420
if (result == 0 && ISUPPER(tok()[0])) {
9424
result = tIDENTIFIER;
9428
if (lex_state != EXPR_DOT) {
9431
/* See if it is a reserved word. */
9432
kw = rb_reserved_word(tok(), toklen());
9434
enum lex_state state = lex_state;
9435
lex_state = kw->state;
9436
if (state == EXPR_FNAME) {
9437
yylval.id = rb_intern(kw->name);
9440
if (kw->id[0] == kDO) {
9441
if (COND_P()) return kDO_COND;
9442
if (CMDARG_P() && state != EXPR_CMDARG)
9444
if (state == EXPR_ENDARG)
9448
if (state == EXPR_BEG)
9451
if (kw->id[0] != kw->id[1])
9452
lex_state = EXPR_BEG;
9458
if (lex_state == EXPR_BEG ||
9459
lex_state == EXPR_MID ||
9460
lex_state == EXPR_DOT ||
9461
lex_state == EXPR_ARG ||
9462
lex_state == EXPR_CMDARG) {
9464
lex_state = EXPR_CMDARG;
9467
lex_state = EXPR_ARG;
9471
lex_state = EXPR_END;
9474
yylval.id = rb_intern(tok());
9475
if (is_local_id(yylval.id) &&
9476
last_state != EXPR_DOT &&
9477
((dyna_in_block() && rb_dvar_defined(yylval.id)) || local_id(yylval.id))) {
9478
lex_state = EXPR_END;
9485
rb_node_newnode(type, a0, a1, a2)
9486
enum node_type type;
9489
NODE *n = (NODE*)rb_newobj();
9492
nd_set_type(n, type);
9493
nd_set_line(n, ruby_sourceline);
9494
n->nd_file = ruby_sourcefile;
9503
static enum node_type
9504
nodetype(node) /* for debug */
9507
return (enum node_type)nd_type(node);
9514
return nd_line(node);
9523
if (nd_type(node) == NODE_NEWLINE) return node;
9524
nl = NEW_NEWLINE(node);
9526
nl->nd_nth = nd_line(node);
9537
if (orig == (NODE*)1) return;
9538
node->nd_file = orig->nd_file;
9539
nd_set_line(node, nd_line(orig));
9543
parser_warning(node, mesg)
9547
int line = ruby_sourceline;
9548
ruby_sourceline = nd_line(node);
9549
rb_warning("%s", mesg);
9550
ruby_sourceline = line;
9554
parser_warn(node, mesg)
9558
int line = ruby_sourceline;
9559
ruby_sourceline = nd_line(node);
9560
rb_warn("%s", mesg);
9561
ruby_sourceline = line;
9565
block_append(head, tail)
9568
NODE *end, *h = head;
9570
if (tail == 0) return head;
9573
if (h == 0) return tail;
9574
switch (nd_type(h)) {
9580
parser_warning(h, "unused literal ignored");
9583
h = end = NEW_BLOCK(head);
9593
if (RTEST(ruby_verbose)) {
9594
NODE *nd = end->nd_head;
9596
switch (nd_type(nd)) {
9602
parser_warning(nd, "statement not reached");
9614
if (nd_type(tail) != NODE_BLOCK) {
9615
tail = NEW_BLOCK(tail);
9616
tail->nd_end = tail;
9618
end->nd_next = tail;
9619
h->nd_end = tail->nd_end;
9623
/* append item to the list */
9625
list_append(list, item)
9630
if (list == 0) return NEW_LIST(item);
9631
if (list->nd_next) {
9632
last = list->nd_next->nd_end;
9639
last->nd_next = NEW_LIST(item);
9640
list->nd_next->nd_end = last->nd_next;
9644
/* concat two lists */
9646
list_concat(head, tail)
9651
if (head->nd_next) {
9652
last = head->nd_next->nd_end;
9658
head->nd_alen += tail->nd_alen;
9659
last->nd_next = tail;
9660
if (tail->nd_next) {
9661
head->nd_next->nd_end = tail->nd_next->nd_end;
9664
head->nd_next->nd_end = tail;
9670
/* concat two string literals */
9672
literal_concat(head, tail)
9675
enum node_type htype;
9677
if (!head) return tail;
9678
if (!tail) return head;
9680
htype = nd_type(head);
9681
if (htype == NODE_EVSTR) {
9682
NODE *node = NEW_DSTR(rb_str_new(0, 0));
9683
head = list_append(node, head);
9685
switch (nd_type(tail)) {
9687
if (htype == NODE_STR) {
9688
rb_str_concat(head->nd_lit, tail->nd_lit);
9689
rb_gc_force_recycle((VALUE)tail);
9692
list_append(head, tail);
9697
if (htype == NODE_STR) {
9698
rb_str_concat(head->nd_lit, tail->nd_lit);
9699
tail->nd_lit = head->nd_lit;
9700
rb_gc_force_recycle((VALUE)head);
9704
nd_set_type(tail, NODE_ARRAY);
9705
tail->nd_head = NEW_STR(tail->nd_lit);
9706
list_concat(head, tail);
9711
if (htype == NODE_STR) {
9712
nd_set_type(head, NODE_DSTR);
9715
list_append(head, tail);
9725
if (nd_type(node) == NODE_EVSTR) {
9726
node = list_append(NEW_DSTR(rb_str_new(0, 0)), node);
9739
switch (nd_type(node)) {
9740
case NODE_STR: case NODE_DSTR: case NODE_EVSTR:
9743
node = node->nd_next;
9747
return NEW_EVSTR(head);
9751
call_op(recv, id, narg, arg1)
9760
arg1 = NEW_LIST(arg1);
9765
return NEW_CALL(recv, id, arg1);
9769
match_gen(node1, node2)
9778
switch (nd_type(node1)) {
9780
case NODE_DREGX_ONCE:
9781
return NEW_MATCH2(node1, node2);
9784
if (TYPE(node1->nd_lit) == T_REGEXP) {
9785
return NEW_MATCH2(node1, node2);
9791
switch (nd_type(node2)) {
9793
case NODE_DREGX_ONCE:
9794
return NEW_MATCH3(node2, node1);
9797
if (TYPE(node2->nd_lit) == T_REGEXP) {
9798
return NEW_MATCH3(node2, node1);
9803
return NEW_CALL(node1, tMATCH, NEW_LIST(node2));
9813
else if (id == kNIL) {
9816
else if (id == kTRUE) {
9819
else if (id == kFALSE) {
9822
else if (id == k__FILE__) {
9823
return NEW_STR(rb_str_new2(ruby_sourcefile));
9825
else if (id == k__LINE__) {
9826
return NEW_LIT(INT2FIX(ruby_sourceline));
9828
else if (is_local_id(id)) {
9829
if (dyna_in_block() && rb_dvar_defined(id)) return NEW_DVAR(id);
9830
if (local_id(id)) return NEW_LVAR(id);
9831
/* method call without arguments */
9833
/* Rite will warn this */
9834
rb_warn("ambiguous identifier; %s() or self.%s is better for method call",
9835
rb_id2name(id), rb_id2name(id));
9837
return NEW_VCALL(id);
9839
else if (is_global_id(id)) {
9840
return NEW_GVAR(id);
9842
else if (is_instance_id(id)) {
9843
return NEW_IVAR(id);
9845
else if (is_const_id(id)) {
9846
return NEW_CONST(id);
9848
else if (is_class_id(id)) {
9849
return NEW_CVAR(id);
9851
rb_compile_error("identifier %s is not valid", rb_id2name(id));
9855
static VALUE dyna_var_lookup _((ID id));
9864
yyerror("Can't change the value of self");
9866
else if (id == kNIL) {
9867
yyerror("Can't assign to nil");
9869
else if (id == kTRUE) {
9870
yyerror("Can't assign to true");
9872
else if (id == kFALSE) {
9873
yyerror("Can't assign to false");
9875
else if (id == k__FILE__) {
9876
yyerror("Can't assign to __FILE__");
9878
else if (id == k__LINE__) {
9879
yyerror("Can't assign to __LINE__");
9881
else if (is_local_id(id)) {
9882
if (rb_dvar_curr(id)) {
9883
return NEW_DASGN_CURR(id, val);
9885
else if (dyna_var_lookup(id)) {
9886
return NEW_DASGN(id, val);
9888
else if (local_id(id) || !dyna_in_block()) {
9889
return NEW_LASGN(id, val);
9892
rb_dvar_push(id, Qnil);
9893
return NEW_DASGN_CURR(id, val);
9896
else if (is_global_id(id)) {
9897
return NEW_GASGN(id, val);
9899
else if (is_instance_id(id)) {
9900
return NEW_IASGN(id, val);
9902
else if (is_const_id(id)) {
9903
if (in_def || in_single)
9904
yyerror("dynamic constant assignment");
9905
return NEW_CDECL(id, val, 0);
9907
else if (is_class_id(id)) {
9908
if (in_def || in_single) return NEW_CVASGN(id, val);
9909
return NEW_CVDECL(id, val);
9912
rb_compile_error("identifier %s is not valid", rb_id2name(id));
9921
if (recv && nd_type(recv) == NODE_SELF)
9925
return NEW_ATTRASGN(recv, tASET, idx);
9932
id &= ~ID_SCOPE_MASK;
9942
if (recv && nd_type(recv) == NODE_SELF)
9946
return NEW_ATTRASGN(recv, rb_id_attrset(id), 0);
9950
rb_backref_error(node)
9953
switch (nd_type(node)) {
9955
rb_compile_error("Can't set variable $%d", node->nd_nth);
9958
rb_compile_error("Can't set variable $%c", (int)node->nd_nth);
9964
arg_concat(node1, node2)
9968
if (!node2) return node1;
9969
return NEW_ARGSCAT(node1, node2);
9973
arg_add(node1, node2)
9977
if (!node1) return NEW_LIST(node2);
9978
if (nd_type(node1) == NODE_ARRAY) {
9979
return list_append(node1, node2);
9982
return NEW_ARGSPUSH(node1, node2);
9987
node_assign(lhs, rhs)
9993
switch (nd_type(lhs)) {
9998
case NODE_DASGN_CURR:
10003
lhs->nd_value = rhs;
10006
case NODE_ATTRASGN:
10008
lhs->nd_args = arg_add(lhs->nd_args, rhs);
10012
/* should not happen */
10026
switch (nd_type(node)) {
10029
parser_warning(node, "void value expression");
10037
if (!cond) yyerror("void value expression");
10038
/* or "control never reach"? */
10042
while (node->nd_next) {
10043
node = node->nd_next;
10045
node = node->nd_head;
10049
node = node->nd_body;
10053
if (!value_expr(node->nd_body)) return Qfalse;
10054
node = node->nd_else;
10060
node = node->nd_2nd;
10064
node = node->nd_next;
10081
if (!RTEST(ruby_verbose)) return;
10085
switch (nd_type(node)) {
10087
node = node->nd_next;
10091
switch (node->nd_mid) {
10110
useless = rb_id2name(node->nd_mid);
10121
case NODE_BACK_REF:
10122
useless = "a variable";
10126
useless = "a constant";
10132
case NODE_DREGX_ONCE:
10133
useless = "a literal";
10158
useless = "defined?";
10163
int line = ruby_sourceline;
10165
ruby_sourceline = nd_line(node);
10166
rb_warn("useless use of %s in void context", useless);
10167
ruby_sourceline = line;
10175
if (!RTEST(ruby_verbose)) return;
10177
if (nd_type(node) != NODE_BLOCK) return;
10180
if (!node->nd_next) return;
10181
void_expr(node->nd_head);
10182
node = node->nd_next;
10192
switch (nd_type(*n)) {
10194
n = &(*n)->nd_next;
10197
*n = (*n)->nd_body;
10206
assign_in_cond(node)
10209
switch (nd_type(node)) {
10211
yyerror("multiple assignment in conditional");
10225
switch (nd_type(node->nd_value)) {
10231
/* reports always */
10232
parser_warn(node->nd_value, "found = in conditional, should be ==");
10244
if (assign_in_cond(node->nd_value) == 0) {
10245
parser_warning(node->nd_value, "assignment in condition");
10252
e_option_supplied()
10254
if (strcmp(ruby_sourcefile, "-e") == 0)
10260
warn_unless_e_option(node, str)
10264
if (!e_option_supplied()) parser_warn(node, str);
10268
warning_unless_e_option(node, str)
10272
if (!e_option_supplied()) parser_warning(node, str);
10275
static NODE *cond0();
10281
enum node_type type;
10283
if (!e_option_supplied()) return node;
10284
if (node == 0) return 0;
10287
node = cond0(node);
10288
type = nd_type(node);
10289
if (type == NODE_NEWLINE) {
10290
node = node->nd_next;
10291
type = nd_type(node);
10293
if (type == NODE_LIT && FIXNUM_P(node->nd_lit)) {
10294
warn_unless_e_option(node, "integer literal in conditional range");
10295
return call_op(node,tEQ,1,NEW_GVAR(rb_intern("$.")));
10304
if (!node) return 1; /* same as NODE_NIL */
10305
switch (nd_type(node)) {
10311
case NODE_DREGX_ONCE:
10326
if (node == 0) return 0;
10327
assign_in_cond(node);
10329
switch (nd_type(node)) {
10333
rb_warn("string literal in condition");
10337
case NODE_DREGX_ONCE:
10338
warning_unless_e_option(node, "regex literal in condition");
10341
return NEW_MATCH2(node, NEW_GVAR(rb_intern("$_")));
10345
node->nd_1st = cond0(node->nd_1st);
10346
node->nd_2nd = cond0(node->nd_2nd);
10351
node->nd_beg = range_op(node->nd_beg);
10352
node->nd_end = range_op(node->nd_end);
10353
if (nd_type(node) == NODE_DOT2) nd_set_type(node,NODE_FLIP2);
10354
else if (nd_type(node) == NODE_DOT3) nd_set_type(node, NODE_FLIP3);
10355
node->nd_cnt = local_append(internal_id());
10356
if (!e_option_supplied()) {
10357
int b = literal_node(node->nd_beg);
10358
int e = literal_node(node->nd_end);
10359
if ((b == 1 && e == 1) || (b + e >= 2 && RTEST(ruby_verbose))) {
10360
parser_warn(node, "range literal in condition");
10366
parser_warning(node, "literal in condition");
10370
if (TYPE(node->nd_lit) == T_REGEXP) {
10371
warn_unless_e_option(node, "regex literal in condition");
10372
nd_set_type(node, NODE_MATCH);
10377
parser_warning(node, "literal in condition");
10389
if (node == 0) return 0;
10391
if (nd_type(node) == NODE_NEWLINE){
10392
node->nd_next = cond0(node->nd_next);
10395
return cond0(node);
10399
logop(type, left, right)
10400
enum node_type type;
10401
NODE *left, *right;
10404
if (left && nd_type(left) == type) {
10405
NODE *node = left, *second;
10406
while ((second = node->nd_2nd) != 0 && nd_type(second) == type) {
10409
node->nd_2nd = NEW_NODE(type, second, right, 0);
10412
return NEW_NODE(type, left, right, 0);
10416
cond_negative(nodep)
10422
switch (nd_type(c)) {
10424
*nodep = c->nd_body;
10427
if (c->nd_next && nd_type(c->nd_next) == NODE_NOT) {
10428
c->nd_next = c->nd_next->nd_body;
10439
if (node && nd_type(node) == NODE_BLOCK_PASS) {
10440
rb_compile_error("block argument should not be given");
10450
if (nd_type(node) == NODE_ARRAY && node->nd_next == 0) {
10451
node = node->nd_head;
10453
if (node && nd_type(node) == NODE_SPLAT) {
10454
node = NEW_SVALUE(node);
10464
long state = Qtrue;
10468
if (nd_type(node) == NODE_ARRAY && node->nd_next == 0) {
10469
node = node->nd_head;
10472
if (node && nd_type(node) == NODE_SPLAT) {
10479
return NEW_YIELD(node, state);
10486
switch (TYPE(node->nd_lit)) {
10488
node->nd_lit = LONG2FIX(-FIX2LONG(node->nd_lit));
10491
node->nd_lit = rb_funcall(node->nd_lit,tUMINUS,0,0);
10494
RFLOAT(node->nd_lit)->value = -RFLOAT(node->nd_lit)->value;
10503
arg_blk_pass(node1, node2)
10508
node2->nd_head = node1;
10515
arg_prepend(node1, node2)
10516
NODE *node1, *node2;
10518
switch (nd_type(node2)) {
10520
return list_concat(NEW_LIST(node1), node2);
10523
return arg_concat(node1, node2->nd_head);
10525
case NODE_BLOCK_PASS:
10526
node2->nd_body = arg_prepend(node1, node2->nd_body);
10530
rb_bug("unknown nodetype(%d) for arg_prepend", nd_type(node2));
10532
return 0; /* not reached */
10541
if (a && nd_type(a) == NODE_BLOCK_PASS) {
10542
a->nd_iter = NEW_CALL(r,m,a->nd_head);
10545
return NEW_CALL(r,m,a);
10553
if (a && nd_type(a) == NODE_BLOCK_PASS) {
10554
a->nd_iter = NEW_FCALL(m,a->nd_head);
10557
return NEW_FCALL(m,a);
10564
if (a && nd_type(a) == NODE_BLOCK_PASS) {
10565
a->nd_iter = NEW_SUPER(a->nd_head);
10568
return NEW_SUPER(a);
10571
static struct local_vars {
10576
struct RVarmap* dyna_vars;
10577
struct local_vars *prev;
10584
struct local_vars *local;
10586
local = ALLOC(struct local_vars);
10587
local->prev = lvtbl;
10592
local->dyna_vars = ruby_dyna_vars;
10595
/* preserve reference for GC, but link should be cut. */
10596
rb_dvar_push(0, (VALUE)ruby_dyna_vars);
10597
ruby_dyna_vars->next = 0;
10604
struct local_vars *local = lvtbl->prev;
10607
if (!lvtbl->nofree) xfree(lvtbl->tbl);
10608
else lvtbl->tbl[0] = lvtbl->cnt;
10610
ruby_dyna_vars = lvtbl->dyna_vars;
10626
if (lvtbl->tbl == 0) {
10627
lvtbl->tbl = ALLOC_N(ID, 4);
10629
lvtbl->tbl[1] = '_';
10630
lvtbl->tbl[2] = '~';
10632
if (id == '_') return 0;
10633
if (id == '~') return 1;
10636
REALLOC_N(lvtbl->tbl, ID, lvtbl->cnt+2);
10639
lvtbl->tbl[lvtbl->cnt+1] = id;
10640
return lvtbl->cnt++;
10649
if (id == 0) return lvtbl->cnt;
10651
for (cnt=1, max=lvtbl->cnt+1; cnt<max;cnt++) {
10652
if (lvtbl->tbl[cnt] == id) return cnt-1;
10654
return local_append(id);
10663
if (lvtbl == 0) return Qfalse;
10664
for (i=3, max=lvtbl->cnt+1; i<max; i++) {
10665
if (lvtbl->tbl[i] == id) return Qtrue;
10674
lvtbl->cnt = ruby_scope->local_tbl?ruby_scope->local_tbl[0]:0;
10675
if (lvtbl->cnt > 0) {
10676
lvtbl->tbl = ALLOC_N(ID, lvtbl->cnt+3);
10677
MEMCPY(lvtbl->tbl, ruby_scope->local_tbl, ID, lvtbl->cnt+1);
10682
if (ruby_dyna_vars)
10691
int len = lvtbl->cnt;
10695
i = ruby_scope->local_tbl?ruby_scope->local_tbl[0]:0;
10698
if (i == 0 || (ruby_scope->flags & SCOPE_MALLOC) == 0) {
10699
VALUE *vars = ALLOC_N(VALUE, len+1);
10700
if (ruby_scope->local_vars) {
10701
*vars++ = ruby_scope->local_vars[-1];
10702
MEMCPY(vars, ruby_scope->local_vars, VALUE, i);
10703
rb_mem_clear(vars+i, len-i);
10706
*vars++ = (VALUE)ruby_scope;
10707
rb_mem_clear(vars, len);
10709
ruby_scope->local_vars = vars;
10710
ruby_scope->flags |= SCOPE_MALLOC;
10713
VALUE *vars = ruby_scope->local_vars-1;
10714
REALLOC_N(vars, VALUE, len+1);
10715
ruby_scope->local_vars = vars+1;
10716
rb_mem_clear(ruby_scope->local_vars+i, len-i);
10718
if (ruby_scope->local_tbl && ruby_scope->local_vars[-1] == 0) {
10719
if (!(ruby_scope->flags & SCOPE_CLONE))
10720
xfree(ruby_scope->local_tbl);
10722
ruby_scope->local_tbl = local_tbl();
10728
#define DVAR_USED FL_USER6
10731
dyna_var_lookup(id)
10734
struct RVarmap *vars = ruby_dyna_vars;
10737
if (vars->id == id) {
10738
FL_SET(vars, DVAR_USED);
10746
static struct RVarmap*
10749
struct RVarmap* vars = ruby_dyna_vars;
10751
rb_dvar_push(0, 0);
10758
struct RVarmap* vars;
10761
ruby_dyna_vars = vars;
10767
return (lvtbl->dlev > 0);
10771
dyna_init(node, pre)
10773
struct RVarmap *pre;
10775
struct RVarmap *post = ruby_dyna_vars;
10778
if (!node || !post || pre == post) return node;
10779
for (var = 0; post != pre && post->id; post = post->next) {
10780
if (FL_TEST(post, DVAR_USED)) {
10781
var = NEW_DASGN_CURR(post->id, var);
10784
return block_append(var, node);
10788
ruby_parser_stack_on_heap()
10790
#if defined(YYMALLOC)
10798
rb_gc_mark_parser()
10800
#if defined YYMALLOC
10801
rb_gc_mark((VALUE)parser_heap);
10802
#elif defined yystacksize
10803
if (yyvsp) rb_gc_mark_locations((VALUE *)yyvs, (VALUE *)yyvsp);
10806
if (!ruby_in_compile) return;
10808
rb_gc_mark_maybe((VALUE)yylval.node);
10809
rb_gc_mark(ruby_debug_lines);
10810
rb_gc_mark(lex_lastline);
10811
rb_gc_mark(lex_input);
10812
rb_gc_mark((VALUE)lex_strterm);
10816
rb_parser_append_print()
10819
block_append(ruby_eval_tree,
10820
NEW_FCALL(rb_intern("print"),
10821
NEW_ARRAY(NEW_GVAR(rb_intern("$_")))));
10825
rb_parser_while_loop(chop, split)
10830
block_append(NEW_GASGN(rb_intern("$F"),
10831
NEW_CALL(NEW_GVAR(rb_intern("$_")),
10832
rb_intern("split"), 0)),
10837
block_append(NEW_CALL(NEW_GVAR(rb_intern("$_")),
10838
rb_intern("chop!"), 0), ruby_eval_tree);
10840
ruby_eval_tree = NEW_OPT_N(ruby_eval_tree);
10851
{'+', "+(binary)"},
10852
{'-', "-(binary)"},
10859
{tUPLUS, "+(unary)"},
10860
{tUMINUS, "-(unary)"},
10889
static st_table *sym_tbl;
10890
static st_table *sym_rev_tbl;
10895
sym_tbl = st_init_strtable_with_size(200);
10896
sym_rev_tbl = st_init_numtable_with_size(200);
10899
static ID last_id = tLAST_TOKEN;
10904
return ID_INTERNAL | (++last_id << ID_SCOPE_SHIFT);
10908
is_special_global_name(m)
10912
case '~': case '*': case '$': case '?': case '!': case '@':
10913
case '/': case '\\': case ';': case ',': case '.': case '=':
10914
case ':': case '<': case '>': case '\"':
10915
case '&': case '`': case '\'': case '+':
10921
if (is_identchar(*m)) m += mbclen(*m);
10924
if (!ISDIGIT(*m)) return 0;
10925
do ++m; while (ISDIGIT(*m));
10934
const char *m = name;
10935
int localid = Qfalse;
10937
if (!m) return Qfalse;
10943
if (is_special_global_name(++m)) return Qtrue;
10947
if (*++m == '@') ++m;
10952
case '<': ++m; break;
10953
case '=': if (*++m == '>') ++m; break;
10960
case '>': case '=': ++m; break;
10966
case '~': ++m; break;
10967
case '=': if (*++m == '=') ++m; break;
10968
default: return Qfalse;
10973
if (*++m == '*') ++m;
10976
case '+': case '-':
10977
if (*++m == '@') ++m;
10980
case '|': case '^': case '&': case '/': case '%': case '~': case '`':
10985
if (*++m != ']') return Qfalse;
10986
if (*++m == '=') ++m;
10990
localid = !ISUPPER(*m);
10992
if (*m != '_' && !ISALPHA(*m) && !ismbchar(*m)) return Qfalse;
10993
while (is_identchar(*m)) m += mbclen(*m);
10996
case '!': case '?': case '=': ++m;
11001
return *m ? Qfalse : Qtrue;
11005
rb_sym_interned_p(str)
11010
if (st_lookup(sym_tbl, (st_data_t)RSTRING(str)->ptr, (st_data_t *)&id))
11019
const char *m = name;
11023
if (st_lookup(sym_tbl, (st_data_t)name, (st_data_t *)&id))
11026
last = strlen(name)-1;
11031
if (is_special_global_name(++m)) goto new_id;
11034
if (name[1] == '@') {
11044
if (name[0] != '_' && ISASCII(name[0]) && !ISALNUM(name[0])) {
11048
for (i=0; op_tbl[i].token; i++) {
11049
if (*op_tbl[i].name == *name &&
11050
strcmp(op_tbl[i].name, name) == 0) {
11051
id = op_tbl[i].token;
11057
if (name[last] == '=') {
11058
/* attribute assignment */
11059
char *buf = ALLOCA_N(char,last+1);
11061
strncpy(buf, name, last);
11063
id = rb_intern(buf);
11064
if (id > tLAST_TOKEN && !is_attrset_id(id)) {
11065
id = rb_id_attrset(id);
11070
else if (ISUPPER(name[0])) {
11078
if (!ISDIGIT(*m)) {
11079
while (m <= name + last && is_identchar(*m)) {
11083
if (*m) id = ID_JUNK;
11085
id |= ++last_id << ID_SCOPE_SHIFT;
11087
name = strdup(name);
11088
st_add_direct(sym_tbl, (st_data_t)name, id);
11089
st_add_direct(sym_rev_tbl, id, (st_data_t)name);
11099
if (id < tLAST_TOKEN) {
11102
for (i=0; op_tbl[i].token; i++) {
11103
if (op_tbl[i].token == id)
11104
return op_tbl[i].name;
11108
if (st_lookup(sym_rev_tbl, id, (st_data_t *)&name))
11111
if (is_attrset_id(id)) {
11112
ID id2 = (id & ~ID_SCOPE_MASK) | ID_LOCAL;
11115
name = rb_id2name(id2);
11117
char *buf = ALLOCA_N(char, strlen(name)+2);
11122
return rb_id2name(id);
11124
if (is_local_id(id2)) {
11125
id2 = (id & ~ID_SCOPE_MASK) | ID_CONST;
11133
symbols_i(key, value, ary)
11138
rb_ary_push(ary, ID2SYM(value));
11139
return ST_CONTINUE;
11144
* Symbol.all_symbols => array
11146
* Returns an array of all the symbols currently in Ruby's symbol
11149
* Symbol.all_symbols.size #=> 903
11150
* Symbol.all_symbols[1,20] #=> [:floor, :ARGV, :Binding, :symlink,
11151
* :chown, :EOFError, :$;, :String,
11152
* :LOCK_SH, :"setuid?", :$<,
11153
* :default_proc, :compact, :extend,
11154
* :Tms, :getwd, :$=, :ThreadGroup,
11159
rb_sym_all_symbols()
11161
VALUE ary = rb_ary_new2(sym_tbl->num_entries);
11163
st_foreach(sym_tbl, symbols_i, ary);
11171
if (is_const_id(id)) return Qtrue;
11179
if (is_class_id(id)) return Qtrue;
11184
rb_is_instance_id(id)
11187
if (is_instance_id(id)) return Qtrue;
11195
if (is_local_id(id)) return Qtrue;
11203
if (is_junk_id(id)) return Qtrue;
11208
special_local_set(c, val)
11215
cnt = local_cnt(c);
11217
ruby_scope->local_vars[cnt] = val;
11223
VALUE *var = rb_svar(1);
11231
rb_backref_set(val)
11234
VALUE *var = rb_svar(1);
11239
special_local_set('~', val);
11246
VALUE *var = rb_svar(0);
11254
rb_lastline_set(val)
11257
VALUE *var = rb_svar(0);
11262
special_local_set('_', val);
11267
#define HEAPCNT(n, size) ((n) * (size) / sizeof(YYSTYPE))
11268
#define NEWHEAP() rb_node_newnode(NODE_ALLOCA, 0, (VALUE)parser_heap, 0)
11269
#define ADD2HEAP(n, c, p) ((parser_heap = (n))->u1.node = (p), \
11270
(n)->u3.cnt = (c), (p))
11273
rb_parser_malloc(size)
11276
size_t cnt = HEAPCNT(1, size);
11277
NODE *n = NEWHEAP();
11278
void *ptr = xmalloc(size);
11280
return ADD2HEAP(n, cnt, ptr);
11284
rb_parser_calloc(nelem, size)
11285
size_t nelem, size;
11287
size_t cnt = HEAPCNT(nelem, size);
11288
NODE *n = NEWHEAP();
11289
void *ptr = xcalloc(nelem, size);
11291
return ADD2HEAP(n, cnt, ptr);
11295
rb_parser_realloc(ptr, size)
11300
size_t cnt = HEAPCNT(1, size);
11302
if (ptr && (n = parser_heap) != NULL) {
11304
if (n->u1.node == ptr) {
11305
n->u1.node = ptr = xrealloc(ptr, size);
11306
if (n->u3.cnt) n->u3.cnt = cnt;
11309
} while ((n = n->u2.node) != NULL);
11312
ptr = xrealloc(ptr, size);
11313
return ADD2HEAP(n, cnt, ptr);
11317
rb_parser_free(ptr)
11320
NODE **prev = &parser_heap, *n;
11322
while (n = *prev) {
11323
if (n->u1.node == ptr) {
11324
*prev = n->u2.node;
11325
rb_gc_force_recycle((VALUE)n);
11328
prev = &n->u2.node;