1/* A Bison parser, made by GNU Bison 3.4.2. */ 2 3/* Bison implementation for Yacc-like parsers in C 4 5 Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation, 6 Inc. 7 8 This program is free software: you can redistribute it and/or modify 9 it under the terms of the GNU General Public License as published by 10 the Free Software Foundation, either version 3 of the License, or 11 (at your option) any later version. 12 13 This program is distributed in the hope that it will be useful, 14 but WITHOUT ANY WARRANTY; without even the implied warranty of 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 GNU General Public License for more details. 17 18 You should have received a copy of the GNU General Public License 19 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 20 21/* As a special exception, you may create a larger work that contains 22 part or all of the Bison parser skeleton and distribute that work 23 under terms of your choice, so long as that work isn't itself a 24 parser generator using the skeleton or a modified version thereof 25 as a parser skeleton. Alternatively, if you modify or redistribute 26 the parser skeleton itself, you may (at your option) remove this 27 special exception, which will cause the skeleton and the resulting 28 Bison output files to be licensed under the GNU General Public 29 License without this special exception. 30 31 This special exception was added by the Free Software Foundation in 32 version 2.2 of Bison. */ 33 34/* C LALR(1) parser skeleton written by Richard Stallman, by 35 simplifying the original so-called "semantic" parser. */ 36 37/* All symbols defined below should begin with yy or YY, to avoid 38 infringing on user name space. This should be done even for local 39 variables, as they might otherwise be expanded by user macros. 40 There are some unavoidable exceptions within include files to 41 define necessary library symbols; they are noted "INFRINGES ON 42 USER NAME SPACE" below. */ 43 44/* Undocumented macros, especially those whose name start with YY_, 45 are private implementation details. Do not rely on them. */ 46 47/* Identify Bison output. */ 48#define YYBISON 1 49 50/* Bison version. */ 51#define YYBISON_VERSION "3.4.2" 52 53/* Skeleton name. */ 54#define YYSKELETON_NAME "yacc.c" 55 56/* Pure parsers. */ 57#define YYPURE 0 58 59/* Push parsers. */ 60#define YYPUSH 0 61 62/* Pull parsers. */ 63#define YYPULL 1 64 65 66 67 68/* First part of user prologue. */ 69#line 25 "awkgram.y" 70 71#if HAVE_NBTOOL_CONFIG_H 72#include "nbtool_config.h" 73#endif 74 75#include <stdio.h> 76#include <string.h> 77#include "awk.h" 78 79void checkdup(Node *list, Cell *item); 80int yywrap(void) { return(1); } 81 82Node *beginloc = 0; 83Node *endloc = 0; 84bool infunc = false; /* = true if in arglist or body of func */ 85int inloop = 0; /* >= 1 if in while, for, do; can't be bool, since loops can next */ 86char *curfname = 0; /* current function name */ 87Node *arglist = 0; /* list of args for current function */ 88 89#line 90 "awkgram.tab.c" 90 91# ifndef YY_NULLPTR 92# if defined __cplusplus 93# if 201103L <= __cplusplus 94# define YY_NULLPTR nullptr 95# else 96# define YY_NULLPTR 0 97# endif 98# else 99# define YY_NULLPTR ((void*)0) 100# endif 101# endif 102 103/* Enabling verbose error messages. */ 104#ifdef YYERROR_VERBOSE 105# undef YYERROR_VERBOSE 106# define YYERROR_VERBOSE 1 107#else 108# define YYERROR_VERBOSE 0 109#endif 110 111/* Use api.header.include to #include this header 112 instead of duplicating it here. */ 113#ifndef YY_YY_AWKGRAM_TAB_H_INCLUDED 114# define YY_YY_AWKGRAM_TAB_H_INCLUDED 115/* Debug traces. */ 116#ifndef YYDEBUG 117# define YYDEBUG 0 118#endif 119#if YYDEBUG 120extern int yydebug; 121#endif 122 123/* Token type. */ 124#ifndef YYTOKENTYPE 125# define YYTOKENTYPE 126 enum yytokentype 127 { 128 FIRSTTOKEN = 258, 129 PROGRAM = 259, 130 PASTAT = 260, 131 PASTAT2 = 261, 132 XBEGIN = 262, 133 XEND = 263, 134 NL = 264, 135 ARRAY = 265, 136 MATCH = 266, 137 NOTMATCH = 267, 138 MATCHOP = 268, 139 FINAL = 269, 140 DOT = 270, 141 ALL = 271, 142 CCL = 272, 143 NCCL = 273, 144 CHAR = 274, 145 OR = 275, 146 STAR = 276, 147 QUEST = 277, 148 PLUS = 278, 149 EMPTYRE = 279, 150 ZERO = 280, 151 AND = 281, 152 BOR = 282, 153 APPEND = 283, 154 EQ = 284, 155 GE = 285, 156 GT = 286, 157 LE = 287, 158 LT = 288, 159 NE = 289, 160 IN = 290, 161 ARG = 291, 162 BLTIN = 292, 163 BREAK = 293, 164 CLOSE = 294, 165 CONTINUE = 295, 166 DELETE = 296, 167 DO = 297, 168 EXIT = 298, 169 FOR = 299, 170 FUNC = 300, 171 GENSUB = 301, 172 SUB = 302, 173 GSUB = 303, 174 IF = 304, 175 INDEX = 305, 176 LSUBSTR = 306, 177 MATCHFCN = 307, 178 NEXT = 308, 179 NEXTFILE = 309, 180 ADD = 310, 181 MINUS = 311, 182 MULT = 312, 183 DIVIDE = 313, 184 MOD = 314, 185 ASSIGN = 315, 186 ASGNOP = 316, 187 ADDEQ = 317, 188 SUBEQ = 318, 189 MULTEQ = 319, 190 DIVEQ = 320, 191 MODEQ = 321, 192 POWEQ = 322, 193 PRINT = 323, 194 PRINTF = 324, 195 SPRINTF = 325, 196 ELSE = 326, 197 INTEST = 327, 198 CONDEXPR = 328, 199 POSTINCR = 329, 200 PREINCR = 330, 201 POSTDECR = 331, 202 PREDECR = 332, 203 VAR = 333, 204 IVAR = 334, 205 VARNF = 335, 206 CALL = 336, 207 NUMBER = 337, 208 STRING = 338, 209 REGEXPR = 339, 210 GETLINE = 340, 211 RETURN = 341, 212 SPLIT = 342, 213 SUBSTR = 343, 214 WHILE = 344, 215 CAT = 345, 216 NOT = 346, 217 UMINUS = 347, 218 UPLUS = 348, 219 POWER = 349, 220 DECR = 350, 221 INCR = 351, 222 INDIRECT = 352, 223 LASTTOKEN = 353 224 }; 225#endif 226 227/* Value type. */ 228#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 229union YYSTYPE 230{ 231#line 45 "awkgram.y" 232 233 Node *p; 234 Cell *cp; 235 int i; 236 char *s; 237 238#line 239 "awkgram.tab.c" 239 240}; 241typedef union YYSTYPE YYSTYPE; 242# define YYSTYPE_IS_TRIVIAL 1 243# define YYSTYPE_IS_DECLARED 1 244#endif 245 246 247extern YYSTYPE yylval; 248 249int yyparse (void); 250 251#endif /* !YY_YY_AWKGRAM_TAB_H_INCLUDED */ 252 253 254 255#ifdef short 256# undef short 257#endif 258 259#ifdef YYTYPE_UINT8 260typedef YYTYPE_UINT8 yytype_uint8; 261#else 262typedef unsigned char yytype_uint8; 263#endif 264 265#ifdef YYTYPE_INT8 266typedef YYTYPE_INT8 yytype_int8; 267#else 268typedef signed char yytype_int8; 269#endif 270 271#ifdef YYTYPE_UINT16 272typedef YYTYPE_UINT16 yytype_uint16; 273#else 274typedef unsigned short yytype_uint16; 275#endif 276 277#ifdef YYTYPE_INT16 278typedef YYTYPE_INT16 yytype_int16; 279#else 280typedef short yytype_int16; 281#endif 282 283#ifndef YYSIZE_T 284# ifdef __SIZE_TYPE__ 285# define YYSIZE_T __SIZE_TYPE__ 286# elif defined size_t 287# define YYSIZE_T size_t 288# elif ! defined YYSIZE_T 289# include <stddef.h> /* INFRINGES ON USER NAME SPACE */ 290# define YYSIZE_T size_t 291# else 292# define YYSIZE_T unsigned 293# endif 294#endif 295 296#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) 297 298#ifndef YY_ 299# if defined YYENABLE_NLS && YYENABLE_NLS 300# if ENABLE_NLS 301# include <libintl.h> /* INFRINGES ON USER NAME SPACE */ 302# define YY_(Msgid) dgettext ("bison-runtime", Msgid) 303# endif 304# endif 305# ifndef YY_ 306# define YY_(Msgid) Msgid 307# endif 308#endif 309 310#ifndef YY_ATTRIBUTE 311# if (defined __GNUC__ \ 312 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ 313 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C 314# define YY_ATTRIBUTE(Spec) __attribute__(Spec) 315# else 316# define YY_ATTRIBUTE(Spec) /* empty */ 317# endif 318#endif 319 320#ifndef YY_ATTRIBUTE_PURE 321# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) 322#endif 323 324#ifndef YY_ATTRIBUTE_UNUSED 325# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) 326#endif 327 328/* Suppress unused-variable warnings by "using" E. */ 329#if ! defined lint || defined __GNUC__ 330# define YYUSE(E) ((void) (E)) 331#else 332# define YYUSE(E) /* empty */ 333#endif 334 335#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ 336/* Suppress an incorrect diagnostic about yylval being uninitialized. */ 337# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ 338 _Pragma ("GCC diagnostic push") \ 339 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ 340 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") 341# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ 342 _Pragma ("GCC diagnostic pop") 343#else 344# define YY_INITIAL_VALUE(Value) Value 345#endif 346#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 347# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 348# define YY_IGNORE_MAYBE_UNINITIALIZED_END 349#endif 350#ifndef YY_INITIAL_VALUE 351# define YY_INITIAL_VALUE(Value) /* Nothing. */ 352#endif 353 354 355#define YY_ASSERT(E) ((void) (0 && (E))) 356 357#if ! defined yyoverflow || YYERROR_VERBOSE 358 359/* The parser invokes alloca or malloc; define the necessary symbols. */ 360 361# ifdef YYSTACK_USE_ALLOCA 362# if YYSTACK_USE_ALLOCA 363# ifdef __GNUC__ 364# define YYSTACK_ALLOC __builtin_alloca 365# elif defined __BUILTIN_VA_ARG_INCR 366# include <alloca.h> /* INFRINGES ON USER NAME SPACE */ 367# elif defined _AIX 368# define YYSTACK_ALLOC __alloca 369# elif defined _MSC_VER 370# include <malloc.h> /* INFRINGES ON USER NAME SPACE */ 371# define alloca _alloca 372# else 373# define YYSTACK_ALLOC alloca 374# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS 375# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 376 /* Use EXIT_SUCCESS as a witness for stdlib.h. */ 377# ifndef EXIT_SUCCESS 378# define EXIT_SUCCESS 0 379# endif 380# endif 381# endif 382# endif 383# endif 384 385# ifdef YYSTACK_ALLOC 386 /* Pacify GCC's 'empty if-body' warning. */ 387# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) 388# ifndef YYSTACK_ALLOC_MAXIMUM 389 /* The OS might guarantee only one guard page at the bottom of the stack, 390 and a page size can be as small as 4096 bytes. So we cannot safely 391 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number 392 to allow for a few compiler-allocated temporary stack slots. */ 393# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ 394# endif 395# else 396# define YYSTACK_ALLOC YYMALLOC 397# define YYSTACK_FREE YYFREE 398# ifndef YYSTACK_ALLOC_MAXIMUM 399# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM 400# endif 401# if (defined __cplusplus && ! defined EXIT_SUCCESS \ 402 && ! ((defined YYMALLOC || defined malloc) \ 403 && (defined YYFREE || defined free))) 404# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 405# ifndef EXIT_SUCCESS 406# define EXIT_SUCCESS 0 407# endif 408# endif 409# ifndef YYMALLOC 410# define YYMALLOC malloc 411# if ! defined malloc && ! defined EXIT_SUCCESS 412void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ 413# endif 414# endif 415# ifndef YYFREE 416# define YYFREE free 417# if ! defined free && ! defined EXIT_SUCCESS 418void free (void *); /* INFRINGES ON USER NAME SPACE */ 419# endif 420# endif 421# endif 422#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ 423 424 425#if (! defined yyoverflow \ 426 && (! defined __cplusplus \ 427 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) 428 429/* A type that is properly aligned for any stack member. */ 430union yyalloc 431{ 432 yytype_int16 yyss_alloc; 433 YYSTYPE yyvs_alloc; 434}; 435 436/* The size of the maximum gap between one aligned stack and the next. */ 437# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) 438 439/* The size of an array large to enough to hold all stacks, each with 440 N elements. */ 441# define YYSTACK_BYTES(N) \ 442 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ 443 + YYSTACK_GAP_MAXIMUM) 444 445# define YYCOPY_NEEDED 1 446 447/* Relocate STACK from its old location to the new one. The 448 local variables YYSIZE and YYSTACKSIZE give the old and new number of 449 elements in the stack, and YYPTR gives the new location of the 450 stack. Advance YYPTR to a properly aligned location for the next 451 stack. */ 452# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ 453 do \ 454 { \ 455 YYSIZE_T yynewbytes; \ 456 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ 457 Stack = &yyptr->Stack_alloc; \ 458 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ 459 yyptr += yynewbytes / sizeof (*yyptr); \ 460 } \ 461 while (0) 462 463#endif 464 465#if defined YYCOPY_NEEDED && YYCOPY_NEEDED 466/* Copy COUNT objects from SRC to DST. The source and destination do 467 not overlap. */ 468# ifndef YYCOPY 469# if defined __GNUC__ && 1 < __GNUC__ 470# define YYCOPY(Dst, Src, Count) \ 471 __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) 472# else 473# define YYCOPY(Dst, Src, Count) \ 474 do \ 475 { \ 476 YYSIZE_T yyi; \ 477 for (yyi = 0; yyi < (Count); yyi++) \ 478 (Dst)[yyi] = (Src)[yyi]; \ 479 } \ 480 while (0) 481# endif 482# endif 483#endif /* !YYCOPY_NEEDED */ 484 485/* YYFINAL -- State number of the termination state. */ 486#define YYFINAL 8 487/* YYLAST -- Last index in YYTABLE. */ 488#define YYLAST 5325 489 490/* YYNTOKENS -- Number of terminals. */ 491#define YYNTOKENS 115 492/* YYNNTS -- Number of nonterminals. */ 493#define YYNNTS 50 494/* YYNRULES -- Number of rules. */ 495#define YYNRULES 191 496/* YYNSTATES -- Number of states. */ 497#define YYNSTATES 390 498 499#define YYUNDEFTOK 2 500#define YYMAXUTOK 353 501 502/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM 503 as returned by yylex, with out-of-bounds checking. */ 504#define YYTRANSLATE(YYX) \ 505 ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) 506 507/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM 508 as returned by yylex. */ 509static const yytype_uint8 yytranslate[] = 510{ 511 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 512 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 513 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 514 2, 2, 2, 2, 2, 2, 2, 106, 2, 2, 515 12, 16, 105, 103, 10, 104, 2, 15, 2, 2, 516 2, 2, 2, 2, 2, 2, 2, 2, 96, 14, 517 2, 2, 2, 95, 2, 2, 2, 2, 2, 2, 518 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 519 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 520 2, 18, 2, 19, 2, 2, 2, 2, 2, 2, 521 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 522 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 523 2, 2, 2, 11, 13, 17, 2, 2, 2, 2, 524 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 525 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 526 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 527 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 528 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 529 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 530 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 531 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 532 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 533 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 534 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 535 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 536 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, 537 5, 6, 7, 8, 9, 20, 21, 22, 23, 24, 538 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 539 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 540 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 541 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 542 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 543 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 544 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 545 97, 98, 99, 100, 101, 102, 107, 108, 109, 110, 546 111, 112, 113, 114 547}; 548 549#if YYDEBUG 550 /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ 551static const yytype_uint16 yyrline[] = 552{ 553 0, 103, 103, 105, 109, 109, 113, 113, 117, 117, 554 121, 121, 125, 125, 129, 129, 131, 131, 133, 133, 555 138, 139, 143, 147, 147, 151, 151, 155, 156, 160, 556 161, 166, 167, 171, 172, 176, 180, 181, 182, 183, 557 184, 185, 187, 189, 189, 194, 195, 199, 200, 204, 558 205, 207, 209, 211, 212, 217, 218, 219, 220, 221, 559 225, 226, 228, 230, 232, 233, 234, 235, 236, 237, 560 238, 239, 244, 245, 246, 249, 252, 253, 254, 258, 561 259, 263, 264, 268, 269, 270, 274, 274, 278, 278, 562 278, 278, 282, 282, 286, 288, 292, 292, 296, 296, 563 300, 303, 306, 309, 310, 311, 312, 313, 317, 318, 564 322, 324, 326, 326, 326, 328, 329, 330, 331, 332, 565 333, 334, 337, 340, 341, 342, 343, 343, 344, 348, 566 349, 353, 353, 357, 358, 362, 363, 364, 365, 366, 567 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 568 377, 378, 379, 380, 381, 382, 384, 390, 392, 398, 569 399, 400, 401, 402, 404, 407, 408, 410, 415, 416, 570 418, 420, 422, 423, 424, 426, 431, 433, 438, 440, 571 442, 446, 447, 448, 449, 453, 454, 455, 461, 462, 572 463, 468 573}; 574#endif 575 576#if YYDEBUG || YYERROR_VERBOSE || 0 577/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. 578 First, the terminals, then, starting at YYNTOKENS, nonterminals. */ 579static const char *const yytname[] = 580{ 581 "$end", "error", "$undefined", "FIRSTTOKEN", "PROGRAM", "PASTAT", 582 "PASTAT2", "XBEGIN", "XEND", "NL", "','", "'{'", "'('", "'|'", "';'", 583 "'/'", "')'", "'}'", "'['", "']'", "ARRAY", "MATCH", "NOTMATCH", 584 "MATCHOP", "FINAL", "DOT", "ALL", "CCL", "NCCL", "CHAR", "OR", "STAR", 585 "QUEST", "PLUS", "EMPTYRE", "ZERO", "AND", "BOR", "APPEND", "EQ", "GE", 586 "GT", "LE", "LT", "NE", "IN", "ARG", "BLTIN", "BREAK", "CLOSE", 587 "CONTINUE", "DELETE", "DO", "EXIT", "FOR", "FUNC", "GENSUB", "SUB", 588 "GSUB", "IF", "INDEX", "LSUBSTR", "MATCHFCN", "NEXT", "NEXTFILE", "ADD", 589 "MINUS", "MULT", "DIVIDE", "MOD", "ASSIGN", "ASGNOP", "ADDEQ", "SUBEQ", 590 "MULTEQ", "DIVEQ", "MODEQ", "POWEQ", "PRINT", "PRINTF", "SPRINTF", 591 "ELSE", "INTEST", "CONDEXPR", "POSTINCR", "PREINCR", "POSTDECR", 592 "PREDECR", "VAR", "IVAR", "VARNF", "CALL", "NUMBER", "STRING", "REGEXPR", 593 "'?'", "':'", "GETLINE", "RETURN", "SPLIT", "SUBSTR", "WHILE", "CAT", 594 "'+'", "'-'", "'*'", "'%'", "NOT", "UMINUS", "UPLUS", "POWER", "DECR", 595 "INCR", "INDIRECT", "LASTTOKEN", "$accept", "program", "and", "bor", 596 "comma", "do", "else", "for", "$@1", "$@2", "$@3", "funcname", "if", 597 "lbrace", "nl", "opt_nl", "opt_pst", "opt_simple_stmt", "pas", "pa_pat", 598 "pa_stat", "$@4", "pa_stats", "patlist", "ppattern", "pattern", "plist", 599 "pplist", "prarg", "print", "pst", "rbrace", "re", "reg_expr", "$@5", 600 "rparen", "simple_stmt", "st", "stmt", "$@6", "$@7", "$@8", "stmtlist", 601 "subop", "string", "term", "var", "varlist", "varname", "while", YY_NULLPTR 602}; 603#endif 604 605# ifdef YYPRINT 606/* YYTOKNUM[NUM] -- (External) token number corresponding to the 607 (internal) symbol number NUM (which must be that of a token). */ 608static const yytype_uint16 yytoknum[] = 609{ 610 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 611 44, 123, 40, 124, 59, 47, 41, 125, 91, 93, 612 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 613 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 614 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 615 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 616 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 617 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 618 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 619 335, 336, 337, 338, 339, 63, 58, 340, 341, 342, 620 343, 344, 345, 43, 45, 42, 37, 346, 347, 348, 621 349, 350, 351, 352, 353 622}; 623# endif 624 625#define YYPACT_NINF -341 626 627#define yypact_value_is_default(Yystate) \ 628 (!!((Yystate) == (-341))) 629 630#define YYTABLE_NINF -32 631 632#define yytable_value_is_error(Yytable_value) \ 633 (!!((Yytable_value) == (-32))) 634 635 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 636 STATE-NUM. */ 637static const yytype_int16 yypact[] = 638{ 639 822, -341, -341, -341, 49, 1756, -341, 2, -341, 40, 640 40, -341, 4836, -341, -341, 41, 5212, -57, 70, -341, 641 -341, 85, 99, 106, -341, -341, -341, 114, -341, -341, 642 -20, 117, 129, 5212, 5212, 4895, 88, 88, 5212, 927, 643 74, -341, 95, 4104, -341, -341, 134, 65, -3, -34, 644 144, -341, -341, 927, 927, 2369, 38, 76, 4647, 4836, 645 5212, -3, 16, -341, -341, 160, 4836, 4836, 4836, 4836, 646 4706, 5212, 147, 4836, 4836, 82, 82, -341, 82, -341, 647 -341, -341, -341, -341, 195, 165, 165, -14, -341, 1911, 648 190, 194, 165, 165, -341, -341, 1911, 208, 198, -341, 649 1559, 927, 4104, 4954, 165, -341, 997, -341, 195, 927, 650 1756, 124, 4836, -341, -341, 4836, 4836, 4836, 4836, 4836, 651 4836, -14, 4836, 1970, 2029, -3, 4836, -341, 5013, 5212, 652 5212, 5212, 5212, 5212, 4836, -341, -341, 4836, 1067, 1137, 653 -341, -341, 2088, 177, 2088, 217, -341, 73, 4104, 3078, 654 135, 2985, 214, 2985, 2985, 132, -341, 139, -3, 5212, 655 2985, 2985, -341, 226, -341, 195, 226, -341, -341, 221, 656 1852, -341, 1628, 4836, -341, -341, 1852, -341, 4836, -341, 657 1559, 163, 1207, 4836, 4515, 214, 118, -341, -3, 28, 658 -341, -341, -341, 1559, 4836, 1277, -341, 88, 4361, -341, 659 4361, 4361, 4361, 4361, 4361, 4361, -341, 3171, -341, 4279, 660 -341, 4197, 2985, 214, 5212, 82, 15, 15, 82, 82, 661 82, 4104, 46, -341, -341, -341, 4104, -14, 4104, -341, 662 -341, 2088, -341, 159, 2088, 2088, 2088, 2088, -341, -341, 663 -3, 20, 2088, -341, -341, 4836, -341, 227, -341, 17, 664 3264, -341, 3264, -341, -341, 1349, -341, 231, 193, 5082, 665 -14, 5082, 2147, 2206, -3, 2265, 5212, 5212, 5212, 5082, 666 -341, 40, -341, -341, 4836, 2088, 2088, -3, -341, -341, 667 4104, -341, 4, 239, 2985, 2985, 3357, 238, 3450, 240, 668 201, 2473, 54, 185, -14, 239, 239, 154, -341, -341, 669 -341, 213, 4836, 5153, -341, -341, 4433, 4777, 4588, 4515, 670 -3, -3, -3, 4515, 927, 4104, 2577, 2681, -341, -341, 671 40, 2088, 2088, -341, -341, -341, -341, -341, 2088, -341, 672 2088, -341, 195, 4836, 244, 250, -14, 209, 5082, 1419, 673 -341, 6, -341, 6, 927, 2785, 2889, 3543, 247, 3636, 674 1697, 3732, 239, 4836, -341, 213, 4515, -341, 255, 257, 675 1489, -341, 2088, -341, 2088, -341, -341, -341, 244, 195, 676 1559, 3825, -341, -341, -341, 3918, 4011, 239, 1697, -341, 677 165, -341, -341, 1559, 244, -341, -341, 239, 1559, -341 678}; 679 680 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. 681 Performed when YYTABLE does not specify something else to do. Zero 682 means the default is an error. */ 683static const yytype_uint8 yydefact[] = 684{ 685 0, 3, 88, 89, 0, 33, 2, 30, 1, 0, 686 0, 23, 0, 96, 189, 147, 0, 0, 0, 131, 687 132, 0, 0, 0, 188, 183, 190, 0, 168, 133, 688 162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 689 36, 45, 29, 35, 77, 94, 0, 173, 78, 180, 690 181, 90, 91, 0, 0, 0, 0, 0, 0, 0, 691 0, 150, 180, 20, 21, 0, 0, 0, 0, 0, 692 0, 0, 161, 0, 0, 143, 142, 95, 144, 151, 693 152, 184, 107, 24, 27, 0, 0, 0, 10, 0, 694 0, 0, 0, 0, 86, 87, 0, 0, 112, 117, 695 0, 0, 106, 83, 0, 129, 0, 126, 27, 0, 696 34, 0, 0, 4, 6, 0, 0, 0, 0, 0, 697 0, 0, 0, 0, 0, 76, 0, 134, 0, 0, 698 0, 0, 0, 0, 0, 153, 154, 0, 0, 0, 699 8, 165, 0, 0, 0, 0, 145, 0, 47, 0, 700 185, 0, 94, 0, 0, 0, 148, 0, 160, 0, 701 0, 0, 25, 28, 128, 27, 108, 110, 111, 105, 702 0, 116, 0, 0, 121, 122, 0, 124, 0, 11, 703 0, 119, 0, 0, 81, 84, 103, 58, 59, 180, 704 125, 40, 130, 0, 0, 0, 46, 75, 71, 70, 705 64, 65, 66, 67, 68, 69, 72, 0, 5, 63, 706 7, 62, 0, 94, 0, 139, 136, 137, 138, 140, 707 141, 60, 0, 41, 42, 9, 79, 0, 80, 97, 708 146, 0, 186, 0, 0, 0, 0, 0, 172, 149, 709 159, 0, 0, 26, 109, 0, 115, 0, 32, 181, 710 0, 123, 0, 113, 12, 0, 92, 120, 0, 0, 711 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 712 127, 38, 37, 74, 0, 0, 0, 135, 182, 73, 713 48, 98, 0, 43, 0, 0, 0, 94, 0, 94, 714 0, 0, 0, 27, 0, 22, 191, 0, 13, 118, 715 93, 85, 0, 54, 53, 55, 0, 52, 51, 82, 716 100, 101, 102, 49, 0, 61, 0, 0, 187, 99, 717 0, 0, 0, 163, 164, 167, 166, 171, 0, 179, 718 0, 104, 27, 0, 0, 0, 0, 0, 0, 0, 719 175, 0, 174, 0, 0, 0, 0, 0, 94, 0, 720 0, 0, 18, 0, 56, 0, 50, 39, 0, 0, 721 0, 156, 0, 155, 0, 169, 170, 178, 0, 27, 722 0, 0, 177, 176, 44, 0, 0, 16, 0, 19, 723 0, 158, 157, 0, 0, 114, 17, 14, 0, 15 724}; 725 726 /* YYPGOTO[NTERM-NUM]. */ 727static const yytype_int16 yypgoto[] = 728{ 729 -341, -341, -156, -142, 411, -341, -341, -341, -341, -341, 730 -341, -341, -341, -4, -75, -67, 224, -340, -341, 80, 731 169, -341, -341, -62, -202, 542, -179, -341, -341, -341, 732 -341, -341, -32, -21, -341, -171, -170, -46, 375, -341, 733 -341, -341, -29, -341, -341, 243, -16, -341, 1, -341 734}; 735 736 /* YYDEFGOTO[NTERM-NUM]. */ 737static const yytype_int16 yydefgoto[] = 738{ 739 -1, 4, 123, 124, 231, 98, 255, 99, 388, 383, 740 370, 65, 100, 101, 166, 164, 5, 247, 6, 40, 741 41, 320, 42, 147, 184, 102, 56, 185, 186, 103, 742 7, 257, 44, 45, 57, 283, 104, 167, 105, 180, 743 297, 193, 106, 46, 47, 48, 49, 233, 50, 107 744}; 745 746 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If 747 positive, shift that token. If negative, reduce the rule whose 748 number is the opposite. If YYTABLE_NINF, syntax error. */ 749static const yytype_int16 yytable[] = 750{ 751 62, 39, 248, 77, 258, 53, 54, 155, 157, 163, 752 368, 51, 128, 225, 72, 225, 52, 62, 62, 62, 753 79, 80, 62, 71, 138, 139, 14, 62, 262, 225, 754 128, 63, 14, 163, 64, 137, 109, 134, 384, 62, 755 168, 194, 263, 171, 62, 152, 174, 175, 140, 8, 756 177, 11, 14, 58, 143, 62, 140, 303, 190, 306, 757 307, 308, 294, 309, 140, 278, 14, 313, 24, 25, 758 26, 187, 182, 331, 24, 222, 26, 135, 136, 295, 759 195, 296, 66, 140, 108, 11, 62, 189, 169, 230, 760 163, 199, 318, 38, 24, 25, 26, 67, 244, 269, 761 129, 130, 131, 132, 2, 213, 39, 133, 24, 3, 762 26, 68, 62, 62, 62, 62, 62, 62, 69, 38, 763 131, 132, 206, 337, 246, 133, 70, 135, 136, 73, 764 251, 266, 62, 62, 14, 62, 356, 62, 62, 135, 765 136, 74, 140, 62, 62, 62, 126, 262, 238, 140, 766 262, 262, 262, 262, 62, 239, 267, 262, 127, 268, 767 62, 263, 137, 352, 263, 263, 263, 263, 62, 140, 768 145, 263, 150, 249, 162, 281, 24, 25, 26, 165, 769 248, 273, 62, 292, 62, 62, 62, 62, 62, 62, 770 159, 62, 133, 62, 162, 62, 62, 377, 62, 332, 771 262, 38, 172, 140, 162, 62, 173, 179, 248, 301, 772 62, 140, 62, 387, 263, 287, 289, 327, 163, 140, 773 178, 197, 227, 232, 140, 355, 333, 187, 279, 187, 774 187, 187, 229, 187, 62, 243, 62, 187, 304, 245, 775 300, 293, 290, 189, 254, 189, 189, 189, 319, 189, 776 62, 62, 62, 189, 324, 335, 326, 163, 336, 61, 777 281, 305, 353, 366, 62, 350, 110, 314, 62, 62, 778 62, 372, 62, 373, 271, 62, 75, 76, 78, 196, 779 0, 81, 0, 0, 0, 339, 125, 62, 0, 0, 780 62, 62, 62, 62, 163, 334, 0, 62, 125, 62, 781 62, 62, 378, 78, 0, 0, 187, 348, 0, 0, 782 0, 0, 0, 0, 158, 360, 344, 0, 0, 0, 783 0, 0, 189, 0, 0, 358, 0, 359, 0, 62, 784 62, 62, 0, 62, 385, 62, 0, 354, 0, 0, 785 62, 0, 0, 0, 0, 125, 188, 0, 0, 0, 786 0, 0, 0, 0, 0, 62, 0, 0, 0, 62, 787 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 788 0, 215, 216, 217, 218, 219, 220, 0, 0, 0, 789 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 790 0, 125, 125, 0, 125, 0, 125, 125, 0, 0, 791 0, 0, 240, 125, 125, 0, 0, 0, 0, 0, 792 0, 0, 0, 125, 0, 0, 0, 0, 0, 125, 793 0, 0, 0, 0, 0, 0, 0, 264, 0, 0, 794 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 795 0, 125, 0, 125, 125, 125, 125, 125, 125, 0, 796 125, 0, 125, 0, 125, 125, 0, 277, 0, 0, 797 0, 0, 0, 0, 125, 0, 142, 144, 0, 125, 798 0, 125, 0, 0, 0, 181, 0, 0, 0, 0, 799 0, 192, 0, 0, 0, 0, 0, 0, 0, 0, 800 0, 0, 0, 125, 0, 125, 0, 0, 0, 0, 801 0, 0, 188, 0, 188, 188, 188, 0, 188, 310, 802 311, 312, 188, 192, 192, 0, 0, 0, 0, 0, 803 0, 0, 0, 125, 0, 0, 0, 125, 125, 125, 804 0, 125, 0, 0, 125, 0, 0, 0, 0, 0, 805 0, 0, 0, 0, 0, 0, 264, 43, 0, 264, 806 264, 264, 264, 0, 55, 253, 264, 192, 125, 125, 807 125, 0, 234, 235, 236, 237, 0, 0, 270, 0, 808 192, 241, 242, 0, 0, 0, 0, 0, 0, 0, 809 0, 188, 0, 0, 0, 0, 0, 0, 125, 125, 810 125, 0, 125, 0, 125, 0, 265, 0, 0, 264, 811 148, 149, 0, 0, 0, 0, 0, 0, 151, 153, 812 154, 148, 148, 0, 125, 160, 161, 0, 125, 125, 813 0, 0, 0, 275, 276, 0, 0, 0, 0, 0, 814 299, 170, 0, 0, 0, 0, 0, 0, 176, 0, 815 0, 0, 0, 0, 282, 0, 0, 0, 0, 0, 816 0, 0, 43, 0, 198, 0, 0, 200, 201, 202, 817 203, 204, 205, 0, 207, 209, 211, 0, 212, 144, 818 0, 0, 0, 0, 0, 0, 221, 0, 0, 148, 819 0, 0, 0, 0, 226, 0, 228, 0, 0, 0, 820 0, 0, 0, 0, 0, 321, 322, 0, 0, 0, 821 0, 328, 330, 0, 0, 0, 0, 0, 0, 0, 822 0, 0, 0, 0, 192, 250, 0, 0, 0, 0, 823 252, 0, 0, 0, 0, 55, 0, 341, 343, 0, 824 0, 0, 0, 0, 0, 192, 43, 0, 0, 0, 825 0, 0, 0, 0, 0, 379, 0, 0, 144, 0, 826 0, 0, 0, 0, 0, 0, 362, 364, 386, 0, 827 0, 0, 0, 389, 0, 0, 0, 0, 0, 0, 828 0, 0, 0, 280, 0, 0, 284, 285, 286, 288, 829 0, 0, 0, 0, 291, 0, 0, 148, 0, 0, 830 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 831 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 832 0, 0, 0, 0, 0, 0, 315, 316, 317, 0, 833 0, 0, -29, 1, 0, 0, 0, 0, 0, -29, 834 -29, 2, 0, -29, -29, 0, 3, -29, 0, 0, 835 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 836 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 837 0, 0, 0, 345, 346, 0, 0, 0, -29, -29, 838 347, -29, 349, 0, 0, 351, 0, -29, -29, -29, 839 -29, 0, -29, 0, -29, 0, 0, 0, 0, 0, 840 0, 0, 0, 0, 0, 371, 0, 0, 0, 0, 841 0, 0, -29, 0, 375, 0, 376, 0, 0, 0, 842 -29, -29, -29, -29, -29, -29, 0, 0, 0, -29, 843 0, -29, -29, 0, 0, -29, -29, 0, 82, -29, 844 0, 0, 0, -29, -29, -29, 83, 0, 11, 12, 845 0, 84, 13, 0, 0, 0, 0, 0, 0, 0, 846 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 847 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 848 0, 0, 0, 14, 15, 85, 16, 86, 87, 88, 849 89, 90, 0, 18, 19, 20, 91, 21, 0, 22, 850 92, 93, 0, 0, 0, 0, 0, 0, 82, 0, 851 0, 0, 0, 0, 0, 94, 95, 23, 11, 12, 852 0, 84, 13, 0, 191, 24, 25, 26, 27, 28, 853 29, 0, 0, 0, 30, 96, 31, 32, 97, 0, 854 33, 34, 0, 0, 35, 0, 0, 0, 36, 37, 855 38, 0, 0, 14, 15, 85, 16, 86, 87, 88, 856 89, 90, 0, 18, 19, 20, 91, 21, 0, 22, 857 92, 93, 0, 0, 0, 0, 0, 0, 82, 0, 858 0, 0, 0, 0, 0, 94, 95, 23, 11, 12, 859 0, 84, 13, 0, 223, 24, 25, 26, 27, 28, 860 29, 0, 0, 0, 30, 96, 31, 32, 97, 0, 861 33, 34, 0, 0, 35, 0, 0, 0, 36, 37, 862 38, 0, 0, 14, 15, 85, 16, 86, 87, 88, 863 89, 90, 0, 18, 19, 20, 91, 21, 0, 22, 864 92, 93, 0, 0, 0, 0, 0, 0, 82, 0, 865 0, 0, 0, 0, 0, 94, 95, 23, 11, 12, 866 0, 84, 13, 0, 224, 24, 25, 26, 27, 28, 867 29, 0, 0, 0, 30, 96, 31, 32, 97, 0, 868 33, 34, 0, 0, 35, 0, 0, 0, 36, 37, 869 38, 0, 0, 14, 15, 85, 16, 86, 87, 88, 870 89, 90, 0, 18, 19, 20, 91, 21, 0, 22, 871 92, 93, 0, 0, 0, 0, 0, 0, 82, 0, 872 0, 0, 0, 0, 0, 94, 95, 23, 11, 12, 873 0, 84, 13, 0, 256, 24, 25, 26, 27, 28, 874 29, 0, 0, 0, 30, 96, 31, 32, 97, 0, 875 33, 34, 0, 0, 35, 0, 0, 0, 36, 37, 876 38, 0, 0, 14, 15, 85, 16, 86, 87, 88, 877 89, 90, 0, 18, 19, 20, 91, 21, 0, 22, 878 92, 93, 0, 0, 0, 0, 0, 0, 82, 0, 879 0, 0, 0, 0, 0, 94, 95, 23, 11, 12, 880 0, 84, 13, 0, 272, 24, 25, 26, 27, 28, 881 29, 0, 0, 0, 30, 96, 31, 32, 97, 0, 882 33, 34, 0, 0, 35, 0, 0, 0, 36, 37, 883 38, 0, 0, 14, 15, 85, 16, 86, 87, 88, 884 89, 90, 0, 18, 19, 20, 91, 21, 0, 22, 885 92, 93, 0, 0, 0, 0, 0, 0, 0, 0, 886 82, 0, 0, 0, 0, 94, 95, 23, 298, 0, 887 11, 12, 0, 84, 13, 24, 25, 26, 27, 28, 888 29, 0, 0, 0, 30, 96, 31, 32, 97, 0, 889 33, 34, 0, 0, 35, 0, 0, 0, 36, 37, 890 38, 0, 0, 0, 0, 14, 15, 85, 16, 86, 891 87, 88, 89, 90, 0, 18, 19, 20, 91, 21, 892 0, 22, 92, 93, 0, 0, 0, 0, 0, 0, 893 82, 0, 0, 0, 0, 0, 0, 94, 95, 23, 894 11, 12, 0, 84, 13, 0, 357, 24, 25, 26, 895 27, 28, 29, 0, 0, 0, 30, 96, 31, 32, 896 97, 0, 33, 34, 0, 0, 35, 0, 0, 0, 897 36, 37, 38, 0, 0, 14, 15, 85, 16, 86, 898 87, 88, 89, 90, 0, 18, 19, 20, 91, 21, 899 0, 22, 92, 93, 0, 0, 0, 0, 0, 0, 900 82, 0, 0, 0, 0, 0, 0, 94, 95, 23, 901 11, 12, 0, 84, 13, 0, 374, 24, 25, 26, 902 27, 28, 29, 0, 0, 0, 30, 96, 31, 32, 903 97, 0, 33, 34, 0, 0, 35, 0, 0, 0, 904 36, 37, 38, 0, 0, 14, 15, 85, 16, 86, 905 87, 88, 89, 90, 0, 18, 19, 20, 91, 21, 906 0, 22, 92, 93, 0, 0, 0, 0, 0, 0, 907 82, 0, 0, 0, 0, 0, 0, 94, 95, 23, 908 11, 12, 0, 84, 13, 0, 0, 24, 25, 26, 909 27, 28, 29, 0, 0, 0, 30, 96, 31, 32, 910 97, 0, 33, 34, 0, 0, 35, 0, 0, 0, 911 36, 37, 38, 0, 0, 14, 15, 85, 16, 86, 912 87, 88, 89, 90, 0, 18, 19, 20, 91, 21, 913 0, 22, 92, 93, 0, 0, 0, 0, 0, 82, 914 0, 0, 0, 0, 0, 0, 0, 94, 95, 23, 915 12, 0, -31, 13, 0, 0, 0, 24, 25, 26, 916 27, 28, 29, 0, 0, 0, 30, 96, 31, 32, 917 97, 0, 33, 34, 0, 0, 35, 0, 0, 0, 918 36, 37, 38, 0, 14, 15, 0, 16, 0, 87, 919 0, 0, 0, 0, 18, 19, 20, 0, 21, 0, 920 22, 0, 0, 0, 0, 0, 0, 0, 82, 0, 921 0, 0, 0, 0, 0, 0, 94, 95, 23, 12, 922 0, 0, 13, -31, 0, 0, 24, 25, 26, 27, 923 28, 29, 0, 0, 0, 30, 0, 31, 32, 0, 924 0, 33, 34, 0, 0, 35, 0, 0, 0, 36, 925 37, 38, 0, 14, 15, 0, 16, 0, 87, 0, 926 0, 0, 0, 18, 19, 20, 0, 21, 0, 22, 927 0, 0, 0, 9, 10, 0, 0, 11, 12, 0, 928 0, 13, 0, 0, 0, 94, 95, 23, 0, 0, 929 0, 0, 0, 0, 0, 24, 25, 26, 27, 28, 930 29, 0, 0, 0, 30, 0, 31, 32, 0, 0, 931 33, 34, 14, 15, 35, 16, 0, 0, 36, 37, 932 38, 17, 18, 19, 20, 0, 21, 0, 22, 0, 933 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 934 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 935 0, 0, 0, 0, 24, 25, 26, 27, 28, 29, 936 0, 0, 0, 30, 0, 31, 32, 0, 0, 33, 937 34, 162, 0, 35, 59, 111, 165, 36, 37, 38, 938 0, 0, 0, 0, 0, 112, 0, 0, 0, 0, 939 0, 0, 0, 0, 0, 0, 0, 0, 113, 114, 940 0, 115, 116, 117, 118, 119, 120, 121, 14, 15, 941 0, 16, 0, 0, 0, 0, 0, 0, 18, 19, 942 20, 0, 21, 0, 22, 0, 0, 0, 0, 0, 943 162, 0, 0, 12, 0, 165, 13, 0, 0, 0, 944 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 945 24, 25, 26, 27, 28, 29, 0, 122, 0, 30, 946 0, 31, 32, 0, 0, 33, 34, 14, 15, 60, 947 16, 0, 0, 36, 37, 38, 0, 18, 19, 20, 948 0, 21, 0, 22, 0, 0, 0, 0, 0, 208, 949 0, 0, 12, 0, 0, 13, 0, 0, 0, 0, 950 0, 23, 0, 0, 0, 0, 0, 0, 0, 24, 951 25, 26, 27, 28, 29, 0, 0, 0, 30, 0, 952 31, 32, 0, 0, 33, 34, 14, 15, 35, 16, 953 0, 0, 36, 37, 38, 0, 18, 19, 20, 0, 954 21, 0, 22, 0, 0, 0, 0, 0, 210, 0, 955 0, 12, 0, 0, 13, 0, 0, 0, 0, 0, 956 23, 0, 0, 0, 0, 0, 0, 0, 24, 25, 957 26, 27, 28, 29, 0, 0, 0, 30, 0, 31, 958 32, 0, 0, 33, 34, 14, 15, 35, 16, 0, 959 0, 36, 37, 38, 0, 18, 19, 20, 0, 21, 960 0, 22, 0, 0, 0, 0, 0, 225, 0, 0, 961 12, 0, 0, 13, 0, 0, 0, 0, 0, 23, 962 0, 0, 0, 0, 0, 0, 0, 24, 25, 26, 963 27, 28, 29, 0, 0, 0, 30, 0, 31, 32, 964 0, 0, 33, 34, 14, 15, 35, 16, 0, 0, 965 36, 37, 38, 0, 18, 19, 20, 0, 21, 0, 966 22, 0, 0, 0, 0, 0, 208, 0, 0, 302, 967 0, 0, 13, 0, 0, 0, 0, 0, 23, 0, 968 0, 0, 0, 0, 0, 0, 24, 25, 26, 27, 969 28, 29, 0, 0, 0, 30, 0, 31, 32, 0, 970 0, 33, 34, 14, 15, 35, 16, 0, 0, 36, 971 37, 38, 0, 18, 19, 20, 0, 21, 0, 22, 972 0, 0, 0, 0, 0, 210, 0, 0, 302, 0, 973 0, 13, 0, 0, 0, 0, 0, 23, 0, 0, 974 0, 0, 0, 0, 0, 24, 25, 26, 27, 28, 975 29, 0, 0, 0, 30, 0, 31, 32, 0, 0, 976 33, 34, 14, 15, 35, 16, 0, 0, 36, 37, 977 38, 0, 18, 19, 20, 0, 21, 0, 22, 0, 978 0, 0, 0, 0, 225, 0, 0, 302, 0, 0, 979 13, 0, 0, 0, 0, 0, 23, 0, 0, 0, 980 0, 0, 0, 0, 24, 25, 26, 27, 28, 29, 981 0, 0, 0, 30, 0, 31, 32, 0, 0, 33, 982 34, 14, 15, 35, 16, 0, 0, 36, 37, 38, 983 0, 18, 19, 20, 0, 21, 0, 22, 0, 0, 984 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 985 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 986 0, 0, 0, 24, 25, 26, 27, 28, 29, 0, 987 0, 0, 30, 0, 31, 32, 0, 0, 33, 34, 988 0, 0, 35, 0, 0, 0, 36, 37, 38, 140, 989 0, 59, 111, 0, 0, 141, 0, 0, 0, 0, 990 0, 0, 112, 0, 0, 0, 0, 0, 0, 0, 991 0, 0, 0, 0, 0, 113, 114, 0, 115, 116, 992 117, 118, 119, 120, 121, 14, 15, 0, 16, 0, 993 0, 0, 0, 0, 0, 18, 19, 20, 0, 21, 994 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 995 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 996 0, 0, 0, 0, 0, 0, 0, 24, 25, 26, 997 27, 28, 29, 0, 122, 0, 30, 0, 31, 32, 998 0, 0, 33, 34, 0, 0, 60, 0, 0, 0, 999 36, 37, 38, 140, 0, 59, 111, 0, 0, 329, 1000 0, 0, 0, 0, 0, 0, 112, 0, 0, 0, 1001 0, 0, 0, 0, 0, 0, 0, 0, 0, 113, 1002 114, 0, 115, 116, 117, 118, 119, 120, 121, 14, 1003 15, 0, 16, 0, 0, 0, 0, 0, 0, 18, 1004 19, 20, 0, 21, 0, 22, 0, 0, 0, 0, 1005 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1006 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 1007 0, 24, 25, 26, 27, 28, 29, 0, 122, 0, 1008 30, 0, 31, 32, 0, 0, 33, 34, 0, 0, 1009 60, 0, 0, 0, 36, 37, 38, 140, 0, 59, 1010 111, 0, 0, 340, 0, 0, 0, 0, 0, 0, 1011 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1012 0, 0, 0, 113, 114, 0, 115, 116, 117, 118, 1013 119, 120, 121, 14, 15, 0, 16, 0, 0, 0, 1014 0, 0, 0, 18, 19, 20, 0, 21, 0, 22, 1015 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1016 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 1017 0, 0, 0, 0, 0, 24, 25, 26, 27, 28, 1018 29, 0, 122, 0, 30, 0, 31, 32, 0, 0, 1019 33, 34, 0, 0, 60, 0, 0, 0, 36, 37, 1020 38, 140, 0, 59, 111, 0, 0, 342, 0, 0, 1021 0, 0, 0, 0, 112, 0, 0, 0, 0, 0, 1022 0, 0, 0, 0, 0, 0, 0, 113, 114, 0, 1023 115, 116, 117, 118, 119, 120, 121, 14, 15, 0, 1024 16, 0, 0, 0, 0, 0, 0, 18, 19, 20, 1025 0, 21, 0, 22, 0, 0, 0, 0, 0, 0, 1026 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1027 0, 23, 0, 0, 0, 0, 0, 0, 0, 24, 1028 25, 26, 27, 28, 29, 0, 122, 0, 30, 0, 1029 31, 32, 0, 0, 33, 34, 0, 0, 60, 0, 1030 0, 0, 36, 37, 38, 140, 0, 59, 111, 0, 1031 0, 361, 0, 0, 0, 0, 0, 0, 112, 0, 1032 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1033 0, 113, 114, 0, 115, 116, 117, 118, 119, 120, 1034 121, 14, 15, 0, 16, 0, 0, 0, 0, 0, 1035 0, 18, 19, 20, 0, 21, 0, 22, 0, 0, 1036 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1037 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 1038 0, 0, 0, 24, 25, 26, 27, 28, 29, 0, 1039 122, 0, 30, 0, 31, 32, 0, 0, 33, 34, 1040 0, 0, 60, 0, 0, 0, 36, 37, 38, 140, 1041 0, 59, 111, 0, 0, 363, 0, 0, 0, 0, 1042 0, 0, 112, 0, 0, 0, 0, 0, 0, 0, 1043 0, 0, 0, 0, 0, 113, 114, 0, 115, 116, 1044 117, 118, 119, 120, 121, 14, 15, 0, 16, 0, 1045 0, 0, 0, 0, 0, 18, 19, 20, 0, 21, 1046 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 1047 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 1048 0, 0, 0, 0, 0, 0, 0, 24, 25, 26, 1049 27, 28, 29, 0, 122, 0, 30, 0, 31, 32, 1050 0, 0, 33, 34, 0, 140, 60, 59, 111, 0, 1051 36, 37, 38, 0, 0, 0, 0, 0, 112, 0, 1052 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1053 0, 113, 114, 0, 115, 116, 117, 118, 119, 120, 1054 121, 14, 15, 0, 16, 0, 0, 0, 0, 0, 1055 0, 18, 19, 20, 0, 21, 0, 22, 0, 0, 1056 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1057 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 1058 0, 0, 0, 24, 25, 26, 27, 28, 29, 0, 1059 122, 0, 30, 0, 31, 32, 0, 0, 33, 34, 1060 59, 111, 60, 0, 141, 0, 36, 37, 38, 0, 1061 0, 112, 0, 0, 0, 0, 0, 0, 0, 0, 1062 0, 0, 0, 0, 113, 114, 0, 115, 116, 117, 1063 118, 119, 120, 121, 14, 15, 0, 16, 0, 0, 1064 0, 0, 0, 0, 18, 19, 20, 0, 21, 0, 1065 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1066 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 1067 0, 0, 0, 0, 0, 0, 24, 25, 26, 27, 1068 28, 29, 0, 122, 0, 30, 0, 31, 32, 0, 1069 0, 33, 34, 59, 111, 60, 0, 0, 0, 36, 1070 37, 38, 0, 0, 112, 0, 0, 0, 0, 0, 1071 0, 0, 0, 0, 0, 0, 0, 113, 114, 0, 1072 115, 116, 117, 118, 119, 120, 121, 14, 15, 0, 1073 16, 0, 0, 0, 0, 0, 0, 18, 19, 20, 1074 0, 21, 0, 22, 0, 0, 0, 0, 0, 0, 1075 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1076 0, 23, 0, 0, 0, 0, 0, 0, 0, 24, 1077 25, 26, 27, 28, 29, 0, 122, 274, 30, 0, 1078 31, 32, 0, 0, 33, 34, 59, 111, 60, 0, 1079 281, 0, 36, 37, 38, 0, 0, 112, 0, 0, 1080 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1081 113, 114, 0, 115, 116, 117, 118, 119, 120, 121, 1082 14, 15, 0, 16, 0, 0, 0, 0, 0, 0, 1083 18, 19, 20, 0, 21, 0, 22, 0, 0, 0, 1084 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1085 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 1086 0, 0, 24, 25, 26, 27, 28, 29, 0, 122, 1087 0, 30, 0, 31, 32, 0, 0, 33, 34, 59, 1088 111, 60, 0, 323, 0, 36, 37, 38, 0, 0, 1089 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1090 0, 0, 0, 113, 114, 0, 115, 116, 117, 118, 1091 119, 120, 121, 14, 15, 0, 16, 0, 0, 0, 1092 0, 0, 0, 18, 19, 20, 0, 21, 0, 22, 1093 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1094 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 1095 0, 0, 0, 0, 0, 24, 25, 26, 27, 28, 1096 29, 0, 122, 0, 30, 0, 31, 32, 0, 0, 1097 33, 34, 59, 111, 60, 0, 325, 0, 36, 37, 1098 38, 0, 0, 112, 0, 0, 0, 0, 0, 0, 1099 0, 0, 0, 0, 0, 0, 113, 114, 0, 115, 1100 116, 117, 118, 119, 120, 121, 14, 15, 0, 16, 1101 0, 0, 0, 0, 0, 0, 18, 19, 20, 0, 1102 21, 0, 22, 0, 0, 0, 0, 0, 0, 0, 1103 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1104 23, 0, 0, 0, 0, 0, 0, 0, 24, 25, 1105 26, 27, 28, 29, 0, 122, 0, 30, 0, 31, 1106 32, 0, 0, 33, 34, 59, 111, 60, 0, 365, 1107 0, 36, 37, 38, 0, 0, 112, 0, 0, 0, 1108 0, 0, 0, 0, 0, 0, 0, 0, 0, 113, 1109 114, 0, 115, 116, 117, 118, 119, 120, 121, 14, 1110 15, 0, 16, 0, 0, 0, 0, 0, 0, 18, 1111 19, 20, 0, 21, 0, 22, 0, 0, 0, 0, 1112 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1113 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 1114 0, 24, 25, 26, 27, 28, 29, 0, 122, 0, 1115 30, 0, 31, 32, 0, 0, 33, 34, 59, 111, 1116 60, 0, 367, 0, 36, 37, 38, 0, 0, 112, 1117 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1118 0, 0, 113, 114, 0, 115, 116, 117, 118, 119, 1119 120, 121, 14, 15, 0, 16, 0, 0, 0, 0, 1120 0, 0, 18, 19, 20, 0, 21, 0, 22, 0, 1121 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1122 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 1123 0, 0, 0, 0, 24, 25, 26, 27, 28, 29, 1124 0, 122, 0, 30, 0, 31, 32, 0, 0, 33, 1125 34, 0, 0, 60, 59, 111, 369, 36, 37, 38, 1126 0, 0, 0, 0, 0, 112, 0, 0, 0, 0, 1127 0, 0, 0, 0, 0, 0, 0, 0, 113, 114, 1128 0, 115, 116, 117, 118, 119, 120, 121, 14, 15, 1129 0, 16, 0, 0, 0, 0, 0, 0, 18, 19, 1130 20, 0, 21, 0, 22, 0, 0, 0, 0, 0, 1131 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1132 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 1133 24, 25, 26, 27, 28, 29, 0, 122, 0, 30, 1134 0, 31, 32, 0, 0, 33, 34, 59, 111, 60, 1135 0, 380, 0, 36, 37, 38, 0, 0, 112, 0, 1136 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1137 0, 113, 114, 0, 115, 116, 117, 118, 119, 120, 1138 121, 14, 15, 0, 16, 0, 0, 0, 0, 0, 1139 0, 18, 19, 20, 0, 21, 0, 22, 0, 0, 1140 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1141 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 1142 0, 0, 0, 24, 25, 26, 27, 28, 29, 0, 1143 122, 0, 30, 0, 31, 32, 0, 0, 33, 34, 1144 59, 111, 60, 0, 381, 0, 36, 37, 38, 0, 1145 0, 112, 0, 0, 0, 0, 0, 0, 0, 0, 1146 0, 0, 0, 0, 113, 114, 0, 115, 116, 117, 1147 118, 119, 120, 121, 14, 15, 0, 16, 0, 0, 1148 0, 0, 0, 0, 18, 19, 20, 0, 21, 0, 1149 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1150 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 1151 0, 0, 0, 0, 0, 0, 24, 25, 26, 27, 1152 28, 29, 0, 122, 0, 30, 0, 31, 32, 0, 1153 0, 33, 34, 59, 111, 60, 0, 382, 0, 36, 1154 37, 38, 0, 0, 112, 0, 0, 0, 0, 0, 1155 0, 0, 0, 0, 0, 0, 0, 113, 114, 0, 1156 115, 116, 117, 118, 119, 120, 121, 14, 15, 0, 1157 16, 0, 0, 0, 0, 0, 0, 18, 19, 20, 1158 0, 21, 0, 22, 0, 0, 0, 0, 0, 0, 1159 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1160 0, 23, 0, 0, 0, 0, 0, 0, 0, 24, 1161 25, 26, 27, 28, 29, 0, 122, 0, 30, 0, 1162 31, 32, 0, 0, 33, 34, 59, 111, 60, 0, 1163 0, 0, 36, 37, 38, 0, 0, 112, 0, 0, 1164 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1165 113, 114, 0, 115, 116, 117, 118, 119, 120, 121, 1166 14, 15, 0, 16, 0, 0, 0, 0, 0, 0, 1167 18, 19, 20, 0, 21, 0, 22, 0, 0, 0, 1168 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1169 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 1170 0, 0, 24, 25, 26, 27, 28, 29, 0, 122, 1171 0, 30, 0, 31, 32, 0, 0, 33, 34, 59, 1172 111, 60, 0, 0, 0, 36, 37, 38, 0, 0, 1173 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1174 0, 0, 0, 113, 0, 0, 115, 116, 117, 118, 1175 119, 120, 121, 14, 15, 0, 16, 0, 0, 0, 1176 0, 0, 0, 18, 19, 20, 0, 21, 0, 22, 1177 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1178 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 1179 0, 0, 0, 0, 0, 24, 25, 26, 27, 28, 1180 29, 59, 111, 0, 30, 0, 31, 32, 0, 0, 1181 33, 34, 112, 0, 60, 0, 0, 0, 36, 37, 1182 38, 0, 0, 0, 0, 0, 0, 0, 115, 116, 1183 117, 118, 119, 120, 121, 14, 15, 0, 16, 0, 1184 0, 0, 0, 0, 0, 18, 19, 20, 0, 21, 1185 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 1186 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 1187 0, 0, 0, 0, 0, 0, 0, 24, 25, 26, 1188 27, 28, 29, 59, -32, 0, 30, 0, 31, 32, 1189 0, 0, 33, 34, -32, 0, 60, 0, 0, 0, 1190 36, 37, 38, 0, 0, 0, 0, 0, 0, 0, 1191 -32, -32, -32, -32, -32, -32, -32, 14, 15, 0, 1192 16, 0, 0, 0, 0, 0, 0, 18, 19, 20, 1193 0, 21, 0, 22, 0, 0, 0, 0, 0, 0, 1194 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1195 0, 23, 0, 0, 0, 59, 0, 0, 0, 24, 1196 25, 26, 27, 28, 29, 0, 259, 0, 0, 0, 1197 31, 32, 0, 0, 33, 34, 0, 0, 60, 113, 1198 114, 0, 36, 37, 38, 0, 0, 0, 260, 14, 1199 15, 0, 16, 0, 0, 0, 0, 0, 0, 18, 1200 19, 20, 0, 21, 0, 22, 0, 0, 0, 0, 1201 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1202 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 1203 0, 24, 25, 26, 27, 28, 29, 59, 261, 338, 1204 30, 0, 31, 32, 0, 0, 33, 34, 259, 0, 1205 60, 0, 0, 0, 36, 37, 38, 0, 0, 0, 1206 0, 113, 114, 0, 0, 0, 0, 0, 0, 0, 1207 260, 14, 15, 0, 16, 0, 0, 0, 0, 0, 1208 0, 18, 19, 20, 0, 21, 0, 22, 0, 0, 1209 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1210 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 1211 59, 0, 0, 24, 25, 26, 27, 28, 29, 0, 1212 261, 259, 30, 0, 31, 32, 0, 0, 33, 34, 1213 0, 0, 60, 0, 113, 0, 36, 37, 38, 0, 1214 0, 0, 0, 260, 14, 15, 0, 16, 0, 0, 1215 0, 0, 0, 0, 18, 19, 20, 0, 21, 0, 1216 22, 0, 0, 0, 0, 0, 0, 0, 0, 12, 1217 0, 0, 13, 146, 0, 0, 0, 0, 23, 0, 1218 0, 0, 0, 0, 0, 0, 24, 25, 26, 27, 1219 28, 29, 0, 0, 0, 30, 0, 31, 32, 0, 1220 0, 33, 34, 14, 15, 60, 16, 0, 0, 36, 1221 37, 38, 0, 18, 19, 20, 0, 21, 0, 22, 1222 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 1223 0, 13, 156, 0, 0, 0, 0, 23, 0, 0, 1224 0, 0, 0, 0, 0, 24, 25, 26, 27, 28, 1225 29, 0, 0, 0, 30, 0, 31, 32, 0, 0, 1226 33, 34, 14, 15, 35, 16, 0, 0, 36, 37, 1227 38, 0, 18, 19, 20, 0, 21, 0, 22, 0, 1228 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1229 0, 0, 0, 0, 0, 0, 23, 0, 0, 59, 1230 0, 0, 0, 0, 24, 25, 26, 27, 28, 29, 1231 259, 0, 0, 30, 0, 31, 32, 0, 0, 33, 1232 34, 0, 0, 35, 0, 0, 0, 36, 37, 38, 1233 0, 0, 260, 14, 15, 0, 16, 0, 0, 0, 1234 0, 0, 0, 18, 19, 20, 0, 21, 0, 22, 1235 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 1236 0, 13, 0, 0, 0, 0, 0, 23, 0, 0, 1237 0, 0, 0, 0, 0, 24, 25, 26, 27, 28, 1238 29, 0, 0, 0, 30, 0, 31, 32, 0, 0, 1239 33, 34, 14, 15, 60, 16, 0, 0, 36, 37, 1240 38, 0, 18, 19, 20, 0, 21, 0, 22, 0, 1241 0, 0, 0, 0, 0, 0, 0, 59, 0, 0, 1242 13, 0, 0, 0, 0, 0, 23, 0, 0, 0, 1243 0, 0, 0, 0, 24, 25, 26, 27, 28, 29, 1244 0, 0, 0, 30, 0, 31, 32, 0, 0, 33, 1245 34, 14, 15, 35, 16, 0, 0, 36, 37, 38, 1246 0, 18, 19, 20, 0, 21, 0, 22, 0, 0, 1247 0, 0, 0, 0, 0, 0, 183, 0, 0, 13, 1248 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 1249 0, 0, 0, 24, 25, 26, 27, 28, 29, 0, 1250 0, 0, 30, 0, 31, 32, 0, 0, 33, 34, 1251 14, 15, 35, 16, 0, 0, 36, 37, 38, 0, 1252 18, 19, 20, 0, 21, 0, 22, 0, 0, 0, 1253 0, 0, 0, 0, 0, 59, 0, 0, 0, 0, 1254 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 1255 0, 0, 24, 25, 26, 27, 28, 29, 0, 0, 1256 0, 30, 0, 31, 32, 0, 0, 33, 34, 14, 1257 15, 35, 16, 0, 0, 36, 37, 38, 0, 18, 1258 19, 20, 0, 21, 0, 22, 0, 0, 0, 0, 1259 0, 0, 0, 0, 214, 0, 0, 0, 0, 0, 1260 0, 0, 0, 23, 302, 0, 0, 13, 0, 0, 1261 0, 24, 25, 26, 27, 28, 29, 0, 0, 0, 1262 30, 0, 31, 32, 0, 0, 33, 34, 0, 0, 1263 60, 0, 0, 0, 36, 37, 38, 0, 14, 15, 1264 0, 16, 0, 0, 0, 0, 0, 0, 18, 19, 1265 20, 0, 21, 0, 22, 0, 0, 0, 0, 0, 1266 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1267 0, 0, 23, 0, 0, 59, 0, 0, 0, 0, 1268 24, 25, 26, 27, 28, 29, -32, 0, 0, 30, 1269 0, 31, 32, 0, 0, 33, 34, 0, 0, 35, 1270 0, 0, 0, 36, 37, 38, 0, 0, -32, 14, 1271 15, 0, 16, 0, 0, 0, 0, 0, 0, 18, 1272 19, 20, 0, 21, 0, 22, 0, 0, 0, 0, 1273 0, 0, 0, 0, 59, 0, 0, 0, 0, 0, 1274 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 1275 0, 24, 25, 26, 27, 28, 29, 0, 0, 0, 1276 0, 0, 31, 32, 0, 0, 33, 34, 14, 15, 1277 60, 16, 0, 0, 36, 37, 38, 0, 18, 19, 1278 20, 0, 21, 0, 22, 0, 0, 0, 0, 0, 1279 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1280 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 1281 24, 25, 26, 27, 28, 29, 0, 0, 0, 30, 1282 0, 31, 32, 0, 0, 33, 34, 0, 0, 60, 1283 0, 0, 0, 36, 37, 38 1284}; 1285 1286static const yytype_int16 yycheck[] = 1287{ 1288 16, 5, 172, 35, 183, 9, 10, 69, 70, 84, 1289 350, 9, 15, 9, 30, 9, 14, 33, 34, 35, 1290 36, 37, 38, 43, 53, 54, 46, 43, 184, 9, 1291 15, 88, 46, 108, 91, 18, 40, 71, 378, 55, 1292 86, 108, 184, 89, 60, 66, 92, 93, 10, 0, 1293 96, 11, 46, 12, 16, 71, 10, 259, 104, 261, 1294 262, 263, 45, 265, 10, 19, 46, 269, 88, 89, 1295 90, 103, 101, 19, 88, 137, 90, 111, 112, 250, 1296 109, 252, 12, 10, 10, 11, 102, 103, 87, 16, 1297 165, 112, 88, 113, 88, 89, 90, 12, 165, 71, 1298 103, 104, 105, 106, 9, 126, 110, 110, 88, 14, 1299 90, 12, 128, 129, 130, 131, 132, 133, 12, 113, 1300 105, 106, 121, 302, 170, 110, 12, 111, 112, 12, 1301 176, 13, 148, 149, 46, 151, 338, 153, 154, 111, 1302 112, 12, 10, 159, 160, 161, 12, 303, 16, 10, 1303 306, 307, 308, 309, 170, 16, 38, 313, 93, 41, 1304 176, 303, 18, 334, 306, 307, 308, 309, 184, 10, 1305 94, 313, 12, 172, 9, 16, 88, 89, 90, 14, 1306 350, 197, 198, 245, 200, 201, 202, 203, 204, 205, 1307 43, 207, 110, 209, 9, 211, 212, 368, 214, 14, 1308 356, 113, 12, 10, 9, 221, 12, 9, 378, 16, 1309 226, 10, 228, 384, 356, 236, 237, 16, 293, 10, 1310 12, 97, 45, 88, 10, 16, 293, 259, 227, 261, 1311 262, 263, 15, 265, 250, 9, 252, 269, 259, 18, 1312 9, 14, 241, 259, 81, 261, 262, 263, 9, 265, 1313 266, 267, 268, 269, 16, 101, 16, 332, 45, 16, 1314 16, 260, 12, 16, 280, 332, 42, 271, 284, 285, 1315 286, 16, 288, 16, 194, 291, 33, 34, 35, 110, 1316 -1, 38, -1, -1, -1, 314, 43, 303, -1, -1, 1317 306, 307, 308, 309, 369, 294, -1, 313, 55, 315, 1318 316, 317, 369, 60, -1, -1, 338, 328, -1, -1, 1319 -1, -1, -1, -1, 71, 344, 320, -1, -1, -1, 1320 -1, -1, 338, -1, -1, 341, -1, 343, -1, 345, 1321 346, 347, -1, 349, 380, 351, -1, 336, -1, -1, 1322 356, -1, -1, -1, -1, 102, 103, -1, -1, -1, 1323 -1, -1, -1, -1, -1, 371, -1, -1, -1, 375, 1324 376, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1325 -1, 128, 129, 130, 131, 132, 133, -1, -1, -1, 1326 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1327 -1, 148, 149, -1, 151, -1, 153, 154, -1, -1, 1328 -1, -1, 159, 160, 161, -1, -1, -1, -1, -1, 1329 -1, -1, -1, 170, -1, -1, -1, -1, -1, 176, 1330 -1, -1, -1, -1, -1, -1, -1, 184, -1, -1, 1331 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1332 -1, 198, -1, 200, 201, 202, 203, 204, 205, -1, 1333 207, -1, 209, -1, 211, 212, -1, 214, -1, -1, 1334 -1, -1, -1, -1, 221, -1, 55, 56, -1, 226, 1335 -1, 228, -1, -1, -1, 100, -1, -1, -1, -1, 1336 -1, 106, -1, -1, -1, -1, -1, -1, -1, -1, 1337 -1, -1, -1, 250, -1, 252, -1, -1, -1, -1, 1338 -1, -1, 259, -1, 261, 262, 263, -1, 265, 266, 1339 267, 268, 269, 138, 139, -1, -1, -1, -1, -1, 1340 -1, -1, -1, 280, -1, -1, -1, 284, 285, 286, 1341 -1, 288, -1, -1, 291, -1, -1, -1, -1, -1, 1342 -1, -1, -1, -1, -1, -1, 303, 5, -1, 306, 1343 307, 308, 309, -1, 12, 180, 313, 182, 315, 316, 1344 317, -1, 151, 152, 153, 154, -1, -1, 193, -1, 1345 195, 160, 161, -1, -1, -1, -1, -1, -1, -1, 1346 -1, 338, -1, -1, -1, -1, -1, -1, 345, 346, 1347 347, -1, 349, -1, 351, -1, 185, -1, -1, 356, 1348 58, 59, -1, -1, -1, -1, -1, -1, 66, 67, 1349 68, 69, 70, -1, 371, 73, 74, -1, 375, 376, 1350 -1, -1, -1, 212, 213, -1, -1, -1, -1, -1, 1351 255, 89, -1, -1, -1, -1, -1, -1, 96, -1, 1352 -1, -1, -1, -1, 233, -1, -1, -1, -1, -1, 1353 -1, -1, 110, -1, 112, -1, -1, 115, 116, 117, 1354 118, 119, 120, -1, 122, 123, 124, -1, 126, 258, 1355 -1, -1, -1, -1, -1, -1, 134, -1, -1, 137, 1356 -1, -1, -1, -1, 142, -1, 144, -1, -1, -1, 1357 -1, -1, -1, -1, -1, 284, 285, -1, -1, -1, 1358 -1, 290, 291, -1, -1, -1, -1, -1, -1, -1, 1359 -1, -1, -1, -1, 339, 173, -1, -1, -1, -1, 1360 178, -1, -1, -1, -1, 183, -1, 316, 317, -1, 1361 -1, -1, -1, -1, -1, 360, 194, -1, -1, -1, 1362 -1, -1, -1, -1, -1, 370, -1, -1, 337, -1, 1363 -1, -1, -1, -1, -1, -1, 345, 346, 383, -1, 1364 -1, -1, -1, 388, -1, -1, -1, -1, -1, -1, 1365 -1, -1, -1, 231, -1, -1, 234, 235, 236, 237, 1366 -1, -1, -1, -1, 242, -1, -1, 245, -1, -1, 1367 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1368 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1369 -1, -1, -1, -1, -1, -1, 274, 275, 276, -1, 1370 -1, -1, 0, 1, -1, -1, -1, -1, -1, 7, 1371 8, 9, -1, 11, 12, -1, 14, 15, -1, -1, 1372 -1, -1, -1, -1, 302, -1, -1, -1, -1, -1, 1373 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1374 -1, -1, -1, 321, 322, -1, -1, -1, 46, 47, 1375 328, 49, 330, -1, -1, 333, -1, 55, 56, 57, 1376 58, -1, 60, -1, 62, -1, -1, -1, -1, -1, 1377 -1, -1, -1, -1, -1, 353, -1, -1, -1, -1, 1378 -1, -1, 80, -1, 362, -1, 364, -1, -1, -1, 1379 88, 89, 90, 91, 92, 93, -1, -1, -1, 97, 1380 -1, 99, 100, -1, -1, 103, 104, -1, 1, 107, 1381 -1, -1, -1, 111, 112, 113, 9, -1, 11, 12, 1382 -1, 14, 15, -1, -1, -1, -1, -1, -1, -1, 1383 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1384 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1385 -1, -1, -1, 46, 47, 48, 49, 50, 51, 52, 1386 53, 54, -1, 56, 57, 58, 59, 60, -1, 62, 1387 63, 64, -1, -1, -1, -1, -1, -1, 1, -1, 1388 -1, -1, -1, -1, -1, 78, 79, 80, 11, 12, 1389 -1, 14, 15, -1, 17, 88, 89, 90, 91, 92, 1390 93, -1, -1, -1, 97, 98, 99, 100, 101, -1, 1391 103, 104, -1, -1, 107, -1, -1, -1, 111, 112, 1392 113, -1, -1, 46, 47, 48, 49, 50, 51, 52, 1393 53, 54, -1, 56, 57, 58, 59, 60, -1, 62, 1394 63, 64, -1, -1, -1, -1, -1, -1, 1, -1, 1395 -1, -1, -1, -1, -1, 78, 79, 80, 11, 12, 1396 -1, 14, 15, -1, 17, 88, 89, 90, 91, 92, 1397 93, -1, -1, -1, 97, 98, 99, 100, 101, -1, 1398 103, 104, -1, -1, 107, -1, -1, -1, 111, 112, 1399 113, -1, -1, 46, 47, 48, 49, 50, 51, 52, 1400 53, 54, -1, 56, 57, 58, 59, 60, -1, 62, 1401 63, 64, -1, -1, -1, -1, -1, -1, 1, -1, 1402 -1, -1, -1, -1, -1, 78, 79, 80, 11, 12, 1403 -1, 14, 15, -1, 17, 88, 89, 90, 91, 92, 1404 93, -1, -1, -1, 97, 98, 99, 100, 101, -1, 1405 103, 104, -1, -1, 107, -1, -1, -1, 111, 112, 1406 113, -1, -1, 46, 47, 48, 49, 50, 51, 52, 1407 53, 54, -1, 56, 57, 58, 59, 60, -1, 62, 1408 63, 64, -1, -1, -1, -1, -1, -1, 1, -1, 1409 -1, -1, -1, -1, -1, 78, 79, 80, 11, 12, 1410 -1, 14, 15, -1, 17, 88, 89, 90, 91, 92, 1411 93, -1, -1, -1, 97, 98, 99, 100, 101, -1, 1412 103, 104, -1, -1, 107, -1, -1, -1, 111, 112, 1413 113, -1, -1, 46, 47, 48, 49, 50, 51, 52, 1414 53, 54, -1, 56, 57, 58, 59, 60, -1, 62, 1415 63, 64, -1, -1, -1, -1, -1, -1, 1, -1, 1416 -1, -1, -1, -1, -1, 78, 79, 80, 11, 12, 1417 -1, 14, 15, -1, 17, 88, 89, 90, 91, 92, 1418 93, -1, -1, -1, 97, 98, 99, 100, 101, -1, 1419 103, 104, -1, -1, 107, -1, -1, -1, 111, 112, 1420 113, -1, -1, 46, 47, 48, 49, 50, 51, 52, 1421 53, 54, -1, 56, 57, 58, 59, 60, -1, 62, 1422 63, 64, -1, -1, -1, -1, -1, -1, -1, -1, 1423 1, -1, -1, -1, -1, 78, 79, 80, 9, -1, 1424 11, 12, -1, 14, 15, 88, 89, 90, 91, 92, 1425 93, -1, -1, -1, 97, 98, 99, 100, 101, -1, 1426 103, 104, -1, -1, 107, -1, -1, -1, 111, 112, 1427 113, -1, -1, -1, -1, 46, 47, 48, 49, 50, 1428 51, 52, 53, 54, -1, 56, 57, 58, 59, 60, 1429 -1, 62, 63, 64, -1, -1, -1, -1, -1, -1, 1430 1, -1, -1, -1, -1, -1, -1, 78, 79, 80, 1431 11, 12, -1, 14, 15, -1, 17, 88, 89, 90, 1432 91, 92, 93, -1, -1, -1, 97, 98, 99, 100, 1433 101, -1, 103, 104, -1, -1, 107, -1, -1, -1, 1434 111, 112, 113, -1, -1, 46, 47, 48, 49, 50, 1435 51, 52, 53, 54, -1, 56, 57, 58, 59, 60, 1436 -1, 62, 63, 64, -1, -1, -1, -1, -1, -1, 1437 1, -1, -1, -1, -1, -1, -1, 78, 79, 80, 1438 11, 12, -1, 14, 15, -1, 17, 88, 89, 90, 1439 91, 92, 93, -1, -1, -1, 97, 98, 99, 100, 1440 101, -1, 103, 104, -1, -1, 107, -1, -1, -1, 1441 111, 112, 113, -1, -1, 46, 47, 48, 49, 50, 1442 51, 52, 53, 54, -1, 56, 57, 58, 59, 60, 1443 -1, 62, 63, 64, -1, -1, -1, -1, -1, -1, 1444 1, -1, -1, -1, -1, -1, -1, 78, 79, 80, 1445 11, 12, -1, 14, 15, -1, -1, 88, 89, 90, 1446 91, 92, 93, -1, -1, -1, 97, 98, 99, 100, 1447 101, -1, 103, 104, -1, -1, 107, -1, -1, -1, 1448 111, 112, 113, -1, -1, 46, 47, 48, 49, 50, 1449 51, 52, 53, 54, -1, 56, 57, 58, 59, 60, 1450 -1, 62, 63, 64, -1, -1, -1, -1, -1, 1, 1451 -1, -1, -1, -1, -1, -1, -1, 78, 79, 80, 1452 12, -1, 14, 15, -1, -1, -1, 88, 89, 90, 1453 91, 92, 93, -1, -1, -1, 97, 98, 99, 100, 1454 101, -1, 103, 104, -1, -1, 107, -1, -1, -1, 1455 111, 112, 113, -1, 46, 47, -1, 49, -1, 51, 1456 -1, -1, -1, -1, 56, 57, 58, -1, 60, -1, 1457 62, -1, -1, -1, -1, -1, -1, -1, 1, -1, 1458 -1, -1, -1, -1, -1, -1, 78, 79, 80, 12, 1459 -1, -1, 15, 16, -1, -1, 88, 89, 90, 91, 1460 92, 93, -1, -1, -1, 97, -1, 99, 100, -1, 1461 -1, 103, 104, -1, -1, 107, -1, -1, -1, 111, 1462 112, 113, -1, 46, 47, -1, 49, -1, 51, -1, 1463 -1, -1, -1, 56, 57, 58, -1, 60, -1, 62, 1464 -1, -1, -1, 7, 8, -1, -1, 11, 12, -1, 1465 -1, 15, -1, -1, -1, 78, 79, 80, -1, -1, 1466 -1, -1, -1, -1, -1, 88, 89, 90, 91, 92, 1467 93, -1, -1, -1, 97, -1, 99, 100, -1, -1, 1468 103, 104, 46, 47, 107, 49, -1, -1, 111, 112, 1469 113, 55, 56, 57, 58, -1, 60, -1, 62, -1, 1470 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1471 -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, 1472 -1, -1, -1, -1, 88, 89, 90, 91, 92, 93, 1473 -1, -1, -1, 97, -1, 99, 100, -1, -1, 103, 1474 104, 9, -1, 107, 12, 13, 14, 111, 112, 113, 1475 -1, -1, -1, -1, -1, 23, -1, -1, -1, -1, 1476 -1, -1, -1, -1, -1, -1, -1, -1, 36, 37, 1477 -1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 1478 -1, 49, -1, -1, -1, -1, -1, -1, 56, 57, 1479 58, -1, 60, -1, 62, -1, -1, -1, -1, -1, 1480 9, -1, -1, 12, -1, 14, 15, -1, -1, -1, 1481 -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, 1482 88, 89, 90, 91, 92, 93, -1, 95, -1, 97, 1483 -1, 99, 100, -1, -1, 103, 104, 46, 47, 107, 1484 49, -1, -1, 111, 112, 113, -1, 56, 57, 58, 1485 -1, 60, -1, 62, -1, -1, -1, -1, -1, 9, 1486 -1, -1, 12, -1, -1, 15, -1, -1, -1, -1, 1487 -1, 80, -1, -1, -1, -1, -1, -1, -1, 88, 1488 89, 90, 91, 92, 93, -1, -1, -1, 97, -1, 1489 99, 100, -1, -1, 103, 104, 46, 47, 107, 49, 1490 -1, -1, 111, 112, 113, -1, 56, 57, 58, -1, 1491 60, -1, 62, -1, -1, -1, -1, -1, 9, -1, 1492 -1, 12, -1, -1, 15, -1, -1, -1, -1, -1, 1493 80, -1, -1, -1, -1, -1, -1, -1, 88, 89, 1494 90, 91, 92, 93, -1, -1, -1, 97, -1, 99, 1495 100, -1, -1, 103, 104, 46, 47, 107, 49, -1, 1496 -1, 111, 112, 113, -1, 56, 57, 58, -1, 60, 1497 -1, 62, -1, -1, -1, -1, -1, 9, -1, -1, 1498 12, -1, -1, 15, -1, -1, -1, -1, -1, 80, 1499 -1, -1, -1, -1, -1, -1, -1, 88, 89, 90, 1500 91, 92, 93, -1, -1, -1, 97, -1, 99, 100, 1501 -1, -1, 103, 104, 46, 47, 107, 49, -1, -1, 1502 111, 112, 113, -1, 56, 57, 58, -1, 60, -1, 1503 62, -1, -1, -1, -1, -1, 9, -1, -1, 12, 1504 -1, -1, 15, -1, -1, -1, -1, -1, 80, -1, 1505 -1, -1, -1, -1, -1, -1, 88, 89, 90, 91, 1506 92, 93, -1, -1, -1, 97, -1, 99, 100, -1, 1507 -1, 103, 104, 46, 47, 107, 49, -1, -1, 111, 1508 112, 113, -1, 56, 57, 58, -1, 60, -1, 62, 1509 -1, -1, -1, -1, -1, 9, -1, -1, 12, -1, 1510 -1, 15, -1, -1, -1, -1, -1, 80, -1, -1, 1511 -1, -1, -1, -1, -1, 88, 89, 90, 91, 92, 1512 93, -1, -1, -1, 97, -1, 99, 100, -1, -1, 1513 103, 104, 46, 47, 107, 49, -1, -1, 111, 112, 1514 113, -1, 56, 57, 58, -1, 60, -1, 62, -1, 1515 -1, -1, -1, -1, 9, -1, -1, 12, -1, -1, 1516 15, -1, -1, -1, -1, -1, 80, -1, -1, -1, 1517 -1, -1, -1, -1, 88, 89, 90, 91, 92, 93, 1518 -1, -1, -1, 97, -1, 99, 100, -1, -1, 103, 1519 104, 46, 47, 107, 49, -1, -1, 111, 112, 113, 1520 -1, 56, 57, 58, -1, 60, -1, 62, -1, -1, 1521 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1522 -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, 1523 -1, -1, -1, 88, 89, 90, 91, 92, 93, -1, 1524 -1, -1, 97, -1, 99, 100, -1, -1, 103, 104, 1525 -1, -1, 107, -1, -1, -1, 111, 112, 113, 10, 1526 -1, 12, 13, -1, -1, 16, -1, -1, -1, -1, 1527 -1, -1, 23, -1, -1, -1, -1, -1, -1, -1, 1528 -1, -1, -1, -1, -1, 36, 37, -1, 39, 40, 1529 41, 42, 43, 44, 45, 46, 47, -1, 49, -1, 1530 -1, -1, -1, -1, -1, 56, 57, 58, -1, 60, 1531 -1, 62, -1, -1, -1, -1, -1, -1, -1, -1, 1532 -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, 1533 -1, -1, -1, -1, -1, -1, -1, 88, 89, 90, 1534 91, 92, 93, -1, 95, -1, 97, -1, 99, 100, 1535 -1, -1, 103, 104, -1, -1, 107, -1, -1, -1, 1536 111, 112, 113, 10, -1, 12, 13, -1, -1, 16, 1537 -1, -1, -1, -1, -1, -1, 23, -1, -1, -1, 1538 -1, -1, -1, -1, -1, -1, -1, -1, -1, 36, 1539 37, -1, 39, 40, 41, 42, 43, 44, 45, 46, 1540 47, -1, 49, -1, -1, -1, -1, -1, -1, 56, 1541 57, 58, -1, 60, -1, 62, -1, -1, -1, -1, 1542 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1543 -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, 1544 -1, 88, 89, 90, 91, 92, 93, -1, 95, -1, 1545 97, -1, 99, 100, -1, -1, 103, 104, -1, -1, 1546 107, -1, -1, -1, 111, 112, 113, 10, -1, 12, 1547 13, -1, -1, 16, -1, -1, -1, -1, -1, -1, 1548 23, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1549 -1, -1, -1, 36, 37, -1, 39, 40, 41, 42, 1550 43, 44, 45, 46, 47, -1, 49, -1, -1, -1, 1551 -1, -1, -1, 56, 57, 58, -1, 60, -1, 62, 1552 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1553 -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, 1554 -1, -1, -1, -1, -1, 88, 89, 90, 91, 92, 1555 93, -1, 95, -1, 97, -1, 99, 100, -1, -1, 1556 103, 104, -1, -1, 107, -1, -1, -1, 111, 112, 1557 113, 10, -1, 12, 13, -1, -1, 16, -1, -1, 1558 -1, -1, -1, -1, 23, -1, -1, -1, -1, -1, 1559 -1, -1, -1, -1, -1, -1, -1, 36, 37, -1, 1560 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, 1561 49, -1, -1, -1, -1, -1, -1, 56, 57, 58, 1562 -1, 60, -1, 62, -1, -1, -1, -1, -1, -1, 1563 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1564 -1, 80, -1, -1, -1, -1, -1, -1, -1, 88, 1565 89, 90, 91, 92, 93, -1, 95, -1, 97, -1, 1566 99, 100, -1, -1, 103, 104, -1, -1, 107, -1, 1567 -1, -1, 111, 112, 113, 10, -1, 12, 13, -1, 1568 -1, 16, -1, -1, -1, -1, -1, -1, 23, -1, 1569 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1570 -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 1571 45, 46, 47, -1, 49, -1, -1, -1, -1, -1, 1572 -1, 56, 57, 58, -1, 60, -1, 62, -1, -1, 1573 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1574 -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, 1575 -1, -1, -1, 88, 89, 90, 91, 92, 93, -1, 1576 95, -1, 97, -1, 99, 100, -1, -1, 103, 104, 1577 -1, -1, 107, -1, -1, -1, 111, 112, 113, 10, 1578 -1, 12, 13, -1, -1, 16, -1, -1, -1, -1, 1579 -1, -1, 23, -1, -1, -1, -1, -1, -1, -1, 1580 -1, -1, -1, -1, -1, 36, 37, -1, 39, 40, 1581 41, 42, 43, 44, 45, 46, 47, -1, 49, -1, 1582 -1, -1, -1, -1, -1, 56, 57, 58, -1, 60, 1583 -1, 62, -1, -1, -1, -1, -1, -1, -1, -1, 1584 -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, 1585 -1, -1, -1, -1, -1, -1, -1, 88, 89, 90, 1586 91, 92, 93, -1, 95, -1, 97, -1, 99, 100, 1587 -1, -1, 103, 104, -1, 10, 107, 12, 13, -1, 1588 111, 112, 113, -1, -1, -1, -1, -1, 23, -1, 1589 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1590 -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 1591 45, 46, 47, -1, 49, -1, -1, -1, -1, -1, 1592 -1, 56, 57, 58, -1, 60, -1, 62, -1, -1, 1593 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1594 -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, 1595 -1, -1, -1, 88, 89, 90, 91, 92, 93, -1, 1596 95, -1, 97, -1, 99, 100, -1, -1, 103, 104, 1597 12, 13, 107, -1, 16, -1, 111, 112, 113, -1, 1598 -1, 23, -1, -1, -1, -1, -1, -1, -1, -1, 1599 -1, -1, -1, -1, 36, 37, -1, 39, 40, 41, 1600 42, 43, 44, 45, 46, 47, -1, 49, -1, -1, 1601 -1, -1, -1, -1, 56, 57, 58, -1, 60, -1, 1602 62, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1603 -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, 1604 -1, -1, -1, -1, -1, -1, 88, 89, 90, 91, 1605 92, 93, -1, 95, -1, 97, -1, 99, 100, -1, 1606 -1, 103, 104, 12, 13, 107, -1, -1, -1, 111, 1607 112, 113, -1, -1, 23, -1, -1, -1, -1, -1, 1608 -1, -1, -1, -1, -1, -1, -1, 36, 37, -1, 1609 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, 1610 49, -1, -1, -1, -1, -1, -1, 56, 57, 58, 1611 -1, 60, -1, 62, -1, -1, -1, -1, -1, -1, 1612 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1613 -1, 80, -1, -1, -1, -1, -1, -1, -1, 88, 1614 89, 90, 91, 92, 93, -1, 95, 96, 97, -1, 1615 99, 100, -1, -1, 103, 104, 12, 13, 107, -1, 1616 16, -1, 111, 112, 113, -1, -1, 23, -1, -1, 1617 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1618 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, 1619 46, 47, -1, 49, -1, -1, -1, -1, -1, -1, 1620 56, 57, 58, -1, 60, -1, 62, -1, -1, -1, 1621 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1622 -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, 1623 -1, -1, 88, 89, 90, 91, 92, 93, -1, 95, 1624 -1, 97, -1, 99, 100, -1, -1, 103, 104, 12, 1625 13, 107, -1, 16, -1, 111, 112, 113, -1, -1, 1626 23, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1627 -1, -1, -1, 36, 37, -1, 39, 40, 41, 42, 1628 43, 44, 45, 46, 47, -1, 49, -1, -1, -1, 1629 -1, -1, -1, 56, 57, 58, -1, 60, -1, 62, 1630 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1631 -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, 1632 -1, -1, -1, -1, -1, 88, 89, 90, 91, 92, 1633 93, -1, 95, -1, 97, -1, 99, 100, -1, -1, 1634 103, 104, 12, 13, 107, -1, 16, -1, 111, 112, 1635 113, -1, -1, 23, -1, -1, -1, -1, -1, -1, 1636 -1, -1, -1, -1, -1, -1, 36, 37, -1, 39, 1637 40, 41, 42, 43, 44, 45, 46, 47, -1, 49, 1638 -1, -1, -1, -1, -1, -1, 56, 57, 58, -1, 1639 60, -1, 62, -1, -1, -1, -1, -1, -1, -1, 1640 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1641 80, -1, -1, -1, -1, -1, -1, -1, 88, 89, 1642 90, 91, 92, 93, -1, 95, -1, 97, -1, 99, 1643 100, -1, -1, 103, 104, 12, 13, 107, -1, 16, 1644 -1, 111, 112, 113, -1, -1, 23, -1, -1, -1, 1645 -1, -1, -1, -1, -1, -1, -1, -1, -1, 36, 1646 37, -1, 39, 40, 41, 42, 43, 44, 45, 46, 1647 47, -1, 49, -1, -1, -1, -1, -1, -1, 56, 1648 57, 58, -1, 60, -1, 62, -1, -1, -1, -1, 1649 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1650 -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, 1651 -1, 88, 89, 90, 91, 92, 93, -1, 95, -1, 1652 97, -1, 99, 100, -1, -1, 103, 104, 12, 13, 1653 107, -1, 16, -1, 111, 112, 113, -1, -1, 23, 1654 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1655 -1, -1, 36, 37, -1, 39, 40, 41, 42, 43, 1656 44, 45, 46, 47, -1, 49, -1, -1, -1, -1, 1657 -1, -1, 56, 57, 58, -1, 60, -1, 62, -1, 1658 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1659 -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, 1660 -1, -1, -1, -1, 88, 89, 90, 91, 92, 93, 1661 -1, 95, -1, 97, -1, 99, 100, -1, -1, 103, 1662 104, -1, -1, 107, 12, 13, 14, 111, 112, 113, 1663 -1, -1, -1, -1, -1, 23, -1, -1, -1, -1, 1664 -1, -1, -1, -1, -1, -1, -1, -1, 36, 37, 1665 -1, 39, 40, 41, 42, 43, 44, 45, 46, 47, 1666 -1, 49, -1, -1, -1, -1, -1, -1, 56, 57, 1667 58, -1, 60, -1, 62, -1, -1, -1, -1, -1, 1668 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1669 -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, 1670 88, 89, 90, 91, 92, 93, -1, 95, -1, 97, 1671 -1, 99, 100, -1, -1, 103, 104, 12, 13, 107, 1672 -1, 16, -1, 111, 112, 113, -1, -1, 23, -1, 1673 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1674 -1, 36, 37, -1, 39, 40, 41, 42, 43, 44, 1675 45, 46, 47, -1, 49, -1, -1, -1, -1, -1, 1676 -1, 56, 57, 58, -1, 60, -1, 62, -1, -1, 1677 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1678 -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, 1679 -1, -1, -1, 88, 89, 90, 91, 92, 93, -1, 1680 95, -1, 97, -1, 99, 100, -1, -1, 103, 104, 1681 12, 13, 107, -1, 16, -1, 111, 112, 113, -1, 1682 -1, 23, -1, -1, -1, -1, -1, -1, -1, -1, 1683 -1, -1, -1, -1, 36, 37, -1, 39, 40, 41, 1684 42, 43, 44, 45, 46, 47, -1, 49, -1, -1, 1685 -1, -1, -1, -1, 56, 57, 58, -1, 60, -1, 1686 62, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1687 -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, 1688 -1, -1, -1, -1, -1, -1, 88, 89, 90, 91, 1689 92, 93, -1, 95, -1, 97, -1, 99, 100, -1, 1690 -1, 103, 104, 12, 13, 107, -1, 16, -1, 111, 1691 112, 113, -1, -1, 23, -1, -1, -1, -1, -1, 1692 -1, -1, -1, -1, -1, -1, -1, 36, 37, -1, 1693 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, 1694 49, -1, -1, -1, -1, -1, -1, 56, 57, 58, 1695 -1, 60, -1, 62, -1, -1, -1, -1, -1, -1, 1696 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1697 -1, 80, -1, -1, -1, -1, -1, -1, -1, 88, 1698 89, 90, 91, 92, 93, -1, 95, -1, 97, -1, 1699 99, 100, -1, -1, 103, 104, 12, 13, 107, -1, 1700 -1, -1, 111, 112, 113, -1, -1, 23, -1, -1, 1701 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1702 36, 37, -1, 39, 40, 41, 42, 43, 44, 45, 1703 46, 47, -1, 49, -1, -1, -1, -1, -1, -1, 1704 56, 57, 58, -1, 60, -1, 62, -1, -1, -1, 1705 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1706 -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, 1707 -1, -1, 88, 89, 90, 91, 92, 93, -1, 95, 1708 -1, 97, -1, 99, 100, -1, -1, 103, 104, 12, 1709 13, 107, -1, -1, -1, 111, 112, 113, -1, -1, 1710 23, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1711 -1, -1, -1, 36, -1, -1, 39, 40, 41, 42, 1712 43, 44, 45, 46, 47, -1, 49, -1, -1, -1, 1713 -1, -1, -1, 56, 57, 58, -1, 60, -1, 62, 1714 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1715 -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, 1716 -1, -1, -1, -1, -1, 88, 89, 90, 91, 92, 1717 93, 12, 13, -1, 97, -1, 99, 100, -1, -1, 1718 103, 104, 23, -1, 107, -1, -1, -1, 111, 112, 1719 113, -1, -1, -1, -1, -1, -1, -1, 39, 40, 1720 41, 42, 43, 44, 45, 46, 47, -1, 49, -1, 1721 -1, -1, -1, -1, -1, 56, 57, 58, -1, 60, 1722 -1, 62, -1, -1, -1, -1, -1, -1, -1, -1, 1723 -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, 1724 -1, -1, -1, -1, -1, -1, -1, 88, 89, 90, 1725 91, 92, 93, 12, 13, -1, 97, -1, 99, 100, 1726 -1, -1, 103, 104, 23, -1, 107, -1, -1, -1, 1727 111, 112, 113, -1, -1, -1, -1, -1, -1, -1, 1728 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, 1729 49, -1, -1, -1, -1, -1, -1, 56, 57, 58, 1730 -1, 60, -1, 62, -1, -1, -1, -1, -1, -1, 1731 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1732 -1, 80, -1, -1, -1, 12, -1, -1, -1, 88, 1733 89, 90, 91, 92, 93, -1, 23, -1, -1, -1, 1734 99, 100, -1, -1, 103, 104, -1, -1, 107, 36, 1735 37, -1, 111, 112, 113, -1, -1, -1, 45, 46, 1736 47, -1, 49, -1, -1, -1, -1, -1, -1, 56, 1737 57, 58, -1, 60, -1, 62, -1, -1, -1, -1, 1738 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1739 -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, 1740 -1, 88, 89, 90, 91, 92, 93, 12, 95, 96, 1741 97, -1, 99, 100, -1, -1, 103, 104, 23, -1, 1742 107, -1, -1, -1, 111, 112, 113, -1, -1, -1, 1743 -1, 36, 37, -1, -1, -1, -1, -1, -1, -1, 1744 45, 46, 47, -1, 49, -1, -1, -1, -1, -1, 1745 -1, 56, 57, 58, -1, 60, -1, 62, -1, -1, 1746 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1747 -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, 1748 12, -1, -1, 88, 89, 90, 91, 92, 93, -1, 1749 95, 23, 97, -1, 99, 100, -1, -1, 103, 104, 1750 -1, -1, 107, -1, 36, -1, 111, 112, 113, -1, 1751 -1, -1, -1, 45, 46, 47, -1, 49, -1, -1, 1752 -1, -1, -1, -1, 56, 57, 58, -1, 60, -1, 1753 62, -1, -1, -1, -1, -1, -1, -1, -1, 12, 1754 -1, -1, 15, 16, -1, -1, -1, -1, 80, -1, 1755 -1, -1, -1, -1, -1, -1, 88, 89, 90, 91, 1756 92, 93, -1, -1, -1, 97, -1, 99, 100, -1, 1757 -1, 103, 104, 46, 47, 107, 49, -1, -1, 111, 1758 112, 113, -1, 56, 57, 58, -1, 60, -1, 62, 1759 -1, -1, -1, -1, -1, -1, -1, -1, 12, -1, 1760 -1, 15, 16, -1, -1, -1, -1, 80, -1, -1, 1761 -1, -1, -1, -1, -1, 88, 89, 90, 91, 92, 1762 93, -1, -1, -1, 97, -1, 99, 100, -1, -1, 1763 103, 104, 46, 47, 107, 49, -1, -1, 111, 112, 1764 113, -1, 56, 57, 58, -1, 60, -1, 62, -1, 1765 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1766 -1, -1, -1, -1, -1, -1, 80, -1, -1, 12, 1767 -1, -1, -1, -1, 88, 89, 90, 91, 92, 93, 1768 23, -1, -1, 97, -1, 99, 100, -1, -1, 103, 1769 104, -1, -1, 107, -1, -1, -1, 111, 112, 113, 1770 -1, -1, 45, 46, 47, -1, 49, -1, -1, -1, 1771 -1, -1, -1, 56, 57, 58, -1, 60, -1, 62, 1772 -1, -1, -1, -1, -1, -1, -1, -1, 12, -1, 1773 -1, 15, -1, -1, -1, -1, -1, 80, -1, -1, 1774 -1, -1, -1, -1, -1, 88, 89, 90, 91, 92, 1775 93, -1, -1, -1, 97, -1, 99, 100, -1, -1, 1776 103, 104, 46, 47, 107, 49, -1, -1, 111, 112, 1777 113, -1, 56, 57, 58, -1, 60, -1, 62, -1, 1778 -1, -1, -1, -1, -1, -1, -1, 12, -1, -1, 1779 15, -1, -1, -1, -1, -1, 80, -1, -1, -1, 1780 -1, -1, -1, -1, 88, 89, 90, 91, 92, 93, 1781 -1, -1, -1, 97, -1, 99, 100, -1, -1, 103, 1782 104, 46, 47, 107, 49, -1, -1, 111, 112, 113, 1783 -1, 56, 57, 58, -1, 60, -1, 62, -1, -1, 1784 -1, -1, -1, -1, -1, -1, 12, -1, -1, 15, 1785 -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, 1786 -1, -1, -1, 88, 89, 90, 91, 92, 93, -1, 1787 -1, -1, 97, -1, 99, 100, -1, -1, 103, 104, 1788 46, 47, 107, 49, -1, -1, 111, 112, 113, -1, 1789 56, 57, 58, -1, 60, -1, 62, -1, -1, -1, 1790 -1, -1, -1, -1, -1, 12, -1, -1, -1, -1, 1791 -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, 1792 -1, -1, 88, 89, 90, 91, 92, 93, -1, -1, 1793 -1, 97, -1, 99, 100, -1, -1, 103, 104, 46, 1794 47, 107, 49, -1, -1, 111, 112, 113, -1, 56, 1795 57, 58, -1, 60, -1, 62, -1, -1, -1, -1, 1796 -1, -1, -1, -1, 71, -1, -1, -1, -1, -1, 1797 -1, -1, -1, 80, 12, -1, -1, 15, -1, -1, 1798 -1, 88, 89, 90, 91, 92, 93, -1, -1, -1, 1799 97, -1, 99, 100, -1, -1, 103, 104, -1, -1, 1800 107, -1, -1, -1, 111, 112, 113, -1, 46, 47, 1801 -1, 49, -1, -1, -1, -1, -1, -1, 56, 57, 1802 58, -1, 60, -1, 62, -1, -1, -1, -1, -1, 1803 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1804 -1, -1, 80, -1, -1, 12, -1, -1, -1, -1, 1805 88, 89, 90, 91, 92, 93, 23, -1, -1, 97, 1806 -1, 99, 100, -1, -1, 103, 104, -1, -1, 107, 1807 -1, -1, -1, 111, 112, 113, -1, -1, 45, 46, 1808 47, -1, 49, -1, -1, -1, -1, -1, -1, 56, 1809 57, 58, -1, 60, -1, 62, -1, -1, -1, -1, 1810 -1, -1, -1, -1, 12, -1, -1, -1, -1, -1, 1811 -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, 1812 -1, 88, 89, 90, 91, 92, 93, -1, -1, -1, 1813 -1, -1, 99, 100, -1, -1, 103, 104, 46, 47, 1814 107, 49, -1, -1, 111, 112, 113, -1, 56, 57, 1815 58, -1, 60, -1, 62, -1, -1, -1, -1, -1, 1816 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1817 -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, 1818 88, 89, 90, 91, 92, 93, -1, -1, -1, 97, 1819 -1, 99, 100, -1, -1, 103, 104, -1, -1, 107, 1820 -1, -1, -1, 111, 112, 113 1821}; 1822 1823 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing 1824 symbol of state STATE-NUM. */ 1825static const yytype_uint8 yystos[] = 1826{ 1827 0, 1, 9, 14, 116, 131, 133, 145, 0, 7, 1828 8, 11, 12, 15, 46, 47, 49, 55, 56, 57, 1829 58, 60, 62, 80, 88, 89, 90, 91, 92, 93, 1830 97, 99, 100, 103, 104, 107, 111, 112, 113, 128, 1831 134, 135, 137, 140, 147, 148, 158, 159, 160, 161, 1832 163, 9, 14, 128, 128, 140, 141, 149, 12, 12, 1833 107, 160, 161, 88, 91, 126, 12, 12, 12, 12, 1834 12, 43, 161, 12, 12, 160, 160, 147, 160, 161, 1835 161, 160, 1, 9, 14, 48, 50, 51, 52, 53, 1836 54, 59, 63, 64, 78, 79, 98, 101, 120, 122, 1837 127, 128, 140, 144, 151, 153, 157, 164, 10, 128, 1838 131, 13, 23, 36, 37, 39, 40, 41, 42, 43, 1839 44, 45, 95, 117, 118, 160, 12, 93, 15, 103, 1840 104, 105, 106, 110, 71, 111, 112, 18, 157, 157, 1841 10, 16, 119, 16, 119, 94, 16, 138, 140, 140, 1842 12, 140, 148, 140, 140, 138, 16, 138, 160, 43, 1843 140, 140, 9, 129, 130, 14, 129, 152, 152, 163, 1844 140, 152, 12, 12, 152, 152, 140, 152, 12, 9, 1845 154, 153, 157, 12, 139, 142, 143, 147, 160, 161, 1846 152, 17, 153, 156, 130, 157, 135, 97, 140, 148, 1847 140, 140, 140, 140, 140, 140, 163, 140, 9, 140, 1848 9, 140, 140, 148, 71, 160, 160, 160, 160, 160, 1849 160, 140, 138, 17, 17, 9, 140, 45, 140, 15, 1850 16, 119, 88, 162, 119, 119, 119, 119, 16, 16, 1851 160, 119, 119, 9, 130, 18, 152, 132, 151, 163, 1852 140, 152, 140, 153, 81, 121, 17, 146, 141, 23, 1853 45, 95, 117, 118, 160, 119, 13, 38, 41, 71, 1854 153, 134, 17, 161, 96, 119, 119, 160, 19, 163, 1855 140, 16, 119, 150, 140, 140, 140, 148, 140, 148, 1856 163, 140, 138, 14, 45, 150, 150, 155, 9, 153, 1857 9, 16, 12, 139, 148, 163, 139, 139, 139, 139, 1858 160, 160, 160, 139, 128, 140, 140, 140, 88, 9, 1859 136, 119, 119, 16, 16, 16, 16, 16, 119, 16, 1860 119, 19, 14, 130, 163, 101, 45, 141, 96, 157, 1861 16, 119, 16, 119, 128, 140, 140, 140, 148, 140, 1862 130, 140, 150, 12, 163, 16, 139, 17, 161, 161, 1863 157, 16, 119, 16, 119, 16, 16, 16, 132, 14, 1864 125, 140, 16, 16, 17, 140, 140, 150, 130, 153, 1865 16, 16, 16, 124, 132, 152, 153, 150, 123, 153 1866}; 1867 1868 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ 1869static const yytype_uint8 yyr1[] = 1870{ 1871 0, 115, 116, 116, 117, 117, 118, 118, 119, 119, 1872 120, 120, 121, 121, 123, 122, 124, 122, 125, 122, 1873 126, 126, 127, 128, 128, 129, 129, 130, 130, 131, 1874 131, 132, 132, 133, 133, 134, 135, 135, 135, 135, 1875 135, 135, 135, 136, 135, 137, 137, 138, 138, 139, 1876 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 1877 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 1878 140, 140, 140, 140, 140, 140, 140, 140, 140, 141, 1879 141, 142, 142, 143, 143, 143, 144, 144, 145, 145, 1880 145, 145, 146, 146, 147, 147, 149, 148, 150, 150, 1881 151, 151, 151, 151, 151, 151, 151, 151, 152, 152, 1882 153, 153, 154, 155, 153, 153, 153, 153, 153, 153, 1883 153, 153, 153, 153, 153, 153, 156, 153, 153, 157, 1884 157, 158, 158, 159, 159, 160, 160, 160, 160, 160, 1885 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 1886 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 1887 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 1888 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 1889 160, 161, 161, 161, 161, 162, 162, 162, 163, 163, 1890 163, 164 1891}; 1892 1893 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ 1894static const yytype_uint8 yyr2[] = 1895{ 1896 0, 2, 1, 1, 1, 2, 1, 2, 1, 2, 1897 1, 2, 1, 2, 0, 12, 0, 10, 0, 8, 1898 1, 1, 4, 1, 2, 1, 2, 0, 1, 0, 1899 1, 0, 1, 1, 3, 1, 1, 4, 4, 7, 1900 3, 4, 4, 0, 9, 1, 3, 1, 3, 3, 1901 5, 3, 3, 3, 3, 3, 5, 2, 1, 1, 1902 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 1903 3, 3, 3, 5, 4, 3, 2, 1, 1, 3, 1904 3, 1, 3, 0, 1, 3, 1, 1, 1, 1, 1905 2, 2, 1, 2, 1, 2, 0, 4, 1, 2, 1906 4, 4, 4, 2, 5, 2, 1, 1, 1, 2, 1907 2, 2, 0, 0, 9, 3, 2, 1, 4, 2, 1908 3, 2, 2, 3, 2, 2, 0, 3, 2, 1, 1909 2, 1, 1, 1, 2, 4, 3, 3, 3, 3, 1910 3, 3, 2, 2, 2, 3, 4, 1, 3, 4, 1911 2, 2, 2, 2, 2, 8, 8, 10, 10, 4, 1912 3, 2, 1, 6, 6, 3, 6, 6, 1, 8, 1913 8, 6, 4, 1, 6, 6, 8, 8, 8, 6, 1914 1, 1, 4, 1, 2, 0, 1, 3, 1, 1, 1915 1, 4 1916}; 1917 1918 1919#define yyerrok (yyerrstatus = 0) 1920#define yyclearin (yychar = YYEMPTY) 1921#define YYEMPTY (-2) 1922#define YYEOF 0 1923 1924#define YYACCEPT goto yyacceptlab 1925#define YYABORT goto yyabortlab 1926#define YYERROR goto yyerrorlab 1927 1928 1929#define YYRECOVERING() (!!yyerrstatus) 1930 1931#define YYBACKUP(Token, Value) \ 1932 do \ 1933 if (yychar == YYEMPTY) \ 1934 { \ 1935 yychar = (Token); \ 1936 yylval = (Value); \ 1937 YYPOPSTACK (yylen); \ 1938 yystate = *yyssp; \ 1939 goto yybackup; \ 1940 } \ 1941 else \ 1942 { \ 1943 yyerror (YY_("syntax error: cannot back up")); \ 1944 YYERROR; \ 1945 } \ 1946 while (0) 1947 1948/* Error token number */ 1949#define YYTERROR 1 1950#define YYERRCODE 256 1951 1952 1953 1954/* Enable debugging if requested. */ 1955#if YYDEBUG 1956 1957# ifndef YYFPRINTF 1958# include <stdio.h> /* INFRINGES ON USER NAME SPACE */ 1959# define YYFPRINTF fprintf 1960# endif 1961 1962# define YYDPRINTF(Args) \ 1963do { \ 1964 if (yydebug) \ 1965 YYFPRINTF Args; \ 1966} while (0) 1967 1968/* This macro is provided for backward compatibility. */ 1969#ifndef YY_LOCATION_PRINT 1970# define YY_LOCATION_PRINT(File, Loc) ((void) 0) 1971#endif 1972 1973 1974# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ 1975do { \ 1976 if (yydebug) \ 1977 { \ 1978 YYFPRINTF (stderr, "%s ", Title); \ 1979 yy_symbol_print (stderr, \ 1980 Type, Value); \ 1981 YYFPRINTF (stderr, "\n"); \ 1982 } \ 1983} while (0) 1984 1985 1986/*-----------------------------------. 1987| Print this symbol's value on YYO. | 1988`-----------------------------------*/ 1989 1990static void 1991yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep) 1992{ 1993 FILE *yyoutput = yyo; 1994 YYUSE (yyoutput); 1995 if (!yyvaluep) 1996 return; 1997# ifdef YYPRINT 1998 if (yytype < YYNTOKENS) 1999 YYPRINT (yyo, yytoknum[yytype], *yyvaluep); 2000# endif 2001 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 2002 YYUSE (yytype); 2003 YY_IGNORE_MAYBE_UNINITIALIZED_END 2004} 2005 2006 2007/*---------------------------. 2008| Print this symbol on YYO. | 2009`---------------------------*/ 2010 2011static void 2012yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep) 2013{ 2014 YYFPRINTF (yyo, "%s %s (", 2015 yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); 2016 2017 yy_symbol_value_print (yyo, yytype, yyvaluep); 2018 YYFPRINTF (yyo, ")"); 2019} 2020 2021/*------------------------------------------------------------------. 2022| yy_stack_print -- Print the state stack from its BOTTOM up to its | 2023| TOP (included). | 2024`------------------------------------------------------------------*/ 2025 2026static void 2027yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) 2028{ 2029 YYFPRINTF (stderr, "Stack now"); 2030 for (; yybottom <= yytop; yybottom++) 2031 { 2032 int yybot = *yybottom; 2033 YYFPRINTF (stderr, " %d", yybot); 2034 } 2035 YYFPRINTF (stderr, "\n"); 2036} 2037 2038# define YY_STACK_PRINT(Bottom, Top) \ 2039do { \ 2040 if (yydebug) \ 2041 yy_stack_print ((Bottom), (Top)); \ 2042} while (0) 2043 2044 2045/*------------------------------------------------. 2046| Report that the YYRULE is going to be reduced. | 2047`------------------------------------------------*/ 2048 2049static void 2050yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule) 2051{ 2052 unsigned long yylno = yyrline[yyrule]; 2053 int yynrhs = yyr2[yyrule]; 2054 int yyi; 2055 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", 2056 yyrule - 1, yylno); 2057 /* The symbols being reduced. */ 2058 for (yyi = 0; yyi < yynrhs; yyi++) 2059 { 2060 YYFPRINTF (stderr, " $%d = ", yyi + 1); 2061 yy_symbol_print (stderr, 2062 yystos[yyssp[yyi + 1 - yynrhs]], 2063 &yyvsp[(yyi + 1) - (yynrhs)] 2064 ); 2065 YYFPRINTF (stderr, "\n"); 2066 } 2067} 2068 2069# define YY_REDUCE_PRINT(Rule) \ 2070do { \ 2071 if (yydebug) \ 2072 yy_reduce_print (yyssp, yyvsp, Rule); \ 2073} while (0) 2074 2075/* Nonzero means print parse trace. It is left uninitialized so that 2076 multiple parsers can coexist. */ 2077int yydebug; 2078#else /* !YYDEBUG */ 2079# define YYDPRINTF(Args) 2080# define YY_SYMBOL_PRINT(Title, Type, Value, Location) 2081# define YY_STACK_PRINT(Bottom, Top) 2082# define YY_REDUCE_PRINT(Rule) 2083#endif /* !YYDEBUG */ 2084 2085 2086/* YYINITDEPTH -- initial size of the parser's stacks. */ 2087#ifndef YYINITDEPTH 2088# define YYINITDEPTH 200 2089#endif 2090 2091/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only 2092 if the built-in stack extension method is used). 2093 2094 Do not make this value too large; the results are undefined if 2095 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) 2096 evaluated with infinite-precision integer arithmetic. */ 2097 2098#ifndef YYMAXDEPTH 2099# define YYMAXDEPTH 10000 2100#endif 2101 2102 2103#if YYERROR_VERBOSE 2104 2105# ifndef yystrlen 2106# if defined __GLIBC__ && defined _STRING_H 2107# define yystrlen strlen 2108# else 2109/* Return the length of YYSTR. */ 2110static YYSIZE_T 2111yystrlen (const char *yystr) 2112{ 2113 YYSIZE_T yylen; 2114 for (yylen = 0; yystr[yylen]; yylen++) 2115 continue; 2116 return yylen; 2117} 2118# endif 2119# endif 2120 2121# ifndef yystpcpy 2122# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE 2123# define yystpcpy stpcpy 2124# else 2125/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in 2126 YYDEST. */ 2127static char * 2128yystpcpy (char *yydest, const char *yysrc) 2129{ 2130 char *yyd = yydest; 2131 const char *yys = yysrc; 2132 2133 while ((*yyd++ = *yys++) != '\0') 2134 continue; 2135 2136 return yyd - 1; 2137} 2138# endif 2139# endif 2140 2141# ifndef yytnamerr 2142/* Copy to YYRES the contents of YYSTR after stripping away unnecessary 2143 quotes and backslashes, so that it's suitable for yyerror. The 2144 heuristic is that double-quoting is unnecessary unless the string 2145 contains an apostrophe, a comma, or backslash (other than 2146 backslash-backslash). YYSTR is taken from yytname. If YYRES is 2147 null, do not copy; instead, return the length of what the result 2148 would have been. */ 2149static YYSIZE_T 2150yytnamerr (char *yyres, const char *yystr) 2151{ 2152 if (*yystr == '"') 2153 { 2154 YYSIZE_T yyn = 0; 2155 char const *yyp = yystr; 2156 2157 for (;;) 2158 switch (*++yyp) 2159 { 2160 case '\'': 2161 case ',': 2162 goto do_not_strip_quotes; 2163 2164 case '\\': 2165 if (*++yyp != '\\') 2166 goto do_not_strip_quotes; 2167 else 2168 goto append; 2169 2170 append: 2171 default: 2172 if (yyres) 2173 yyres[yyn] = *yyp; 2174 yyn++; 2175 break; 2176 2177 case '"': 2178 if (yyres) 2179 yyres[yyn] = '\0'; 2180 return yyn; 2181 } 2182 do_not_strip_quotes: ; 2183 } 2184 2185 if (! yyres) 2186 return yystrlen (yystr); 2187 2188 return (YYSIZE_T) (yystpcpy (yyres, yystr) - yyres); 2189} 2190# endif 2191 2192/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message 2193 about the unexpected token YYTOKEN for the state stack whose top is 2194 YYSSP. 2195 2196 Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is 2197 not large enough to hold the message. In that case, also set 2198 *YYMSG_ALLOC to the required number of bytes. Return 2 if the 2199 required number of bytes is too large to store. */ 2200static int 2201yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, 2202 yytype_int16 *yyssp, int yytoken) 2203{ 2204 YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); 2205 YYSIZE_T yysize = yysize0; 2206 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; 2207 /* Internationalized format string. */ 2208 const char *yyformat = YY_NULLPTR; 2209 /* Arguments of yyformat. */ 2210 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; 2211 /* Number of reported tokens (one for the "unexpected", one per 2212 "expected"). */ 2213 int yycount = 0; 2214 2215 /* There are many possibilities here to consider: 2216 - If this state is a consistent state with a default action, then 2217 the only way this function was invoked is if the default action 2218 is an error action. In that case, don't check for expected 2219 tokens because there are none. 2220 - The only way there can be no lookahead present (in yychar) is if 2221 this state is a consistent state with a default action. Thus, 2222 detecting the absence of a lookahead is sufficient to determine 2223 that there is no unexpected or expected token to report. In that 2224 case, just report a simple "syntax error". 2225 - Don't assume there isn't a lookahead just because this state is a 2226 consistent state with a default action. There might have been a 2227 previous inconsistent state, consistent state with a non-default 2228 action, or user semantic action that manipulated yychar. 2229 - Of course, the expected token list depends on states to have 2230 correct lookahead information, and it depends on the parser not 2231 to perform extra reductions after fetching a lookahead from the 2232 scanner and before detecting a syntax error. Thus, state merging 2233 (from LALR or IELR) and default reductions corrupt the expected 2234 token list. However, the list is correct for canonical LR with 2235 one exception: it will still contain any token that will not be 2236 accepted due to an error action in a later state. 2237 */ 2238 if (yytoken != YYEMPTY) 2239 { 2240 int yyn = yypact[*yyssp]; 2241 yyarg[yycount++] = yytname[yytoken]; 2242 if (!yypact_value_is_default (yyn)) 2243 { 2244 /* Start YYX at -YYN if negative to avoid negative indexes in 2245 YYCHECK. In other words, skip the first -YYN actions for 2246 this state because they are default actions. */ 2247 int yyxbegin = yyn < 0 ? -yyn : 0; 2248 /* Stay within bounds of both yycheck and yytname. */ 2249 int yychecklim = YYLAST - yyn + 1; 2250 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; 2251 int yyx; 2252 2253 for (yyx = yyxbegin; yyx < yyxend; ++yyx) 2254 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR 2255 && !yytable_value_is_error (yytable[yyx + yyn])) 2256 { 2257 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) 2258 { 2259 yycount = 1; 2260 yysize = yysize0; 2261 break; 2262 } 2263 yyarg[yycount++] = yytname[yyx]; 2264 { 2265 YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); 2266 if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) 2267 yysize = yysize1; 2268 else 2269 return 2; 2270 } 2271 } 2272 } 2273 } 2274 2275 switch (yycount) 2276 { 2277# define YYCASE_(N, S) \ 2278 case N: \ 2279 yyformat = S; \ 2280 break 2281 default: /* Avoid compiler warnings. */ 2282 YYCASE_(0, YY_("syntax error")); 2283 YYCASE_(1, YY_("syntax error, unexpected %s")); 2284 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); 2285 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); 2286 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); 2287 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); 2288# undef YYCASE_ 2289 } 2290 2291 { 2292 YYSIZE_T yysize1 = yysize + yystrlen (yyformat); 2293 if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) 2294 yysize = yysize1; 2295 else 2296 return 2; 2297 } 2298 2299 if (*yymsg_alloc < yysize) 2300 { 2301 *yymsg_alloc = 2 * yysize; 2302 if (! (yysize <= *yymsg_alloc 2303 && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) 2304 *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; 2305 return 1; 2306 } 2307 2308 /* Avoid sprintf, as that infringes on the user's name space. 2309 Don't have undefined behavior even if the translation 2310 produced a string with the wrong number of "%s"s. */ 2311 { 2312 char *yyp = *yymsg; 2313 int yyi = 0; 2314 while ((*yyp = *yyformat) != '\0') 2315 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) 2316 { 2317 yyp += yytnamerr (yyp, yyarg[yyi++]); 2318 yyformat += 2; 2319 } 2320 else 2321 { 2322 yyp++; 2323 yyformat++; 2324 } 2325 } 2326 return 0; 2327} 2328#endif /* YYERROR_VERBOSE */ 2329 2330/*-----------------------------------------------. 2331| Release the memory associated to this symbol. | 2332`-----------------------------------------------*/ 2333 2334static void 2335yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) 2336{ 2337 YYUSE (yyvaluep); 2338 if (!yymsg) 2339 yymsg = "Deleting"; 2340 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); 2341 2342 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 2343 YYUSE (yytype); 2344 YY_IGNORE_MAYBE_UNINITIALIZED_END 2345} 2346 2347 2348 2349 2350/* The lookahead symbol. */ 2351int yychar; 2352 2353/* The semantic value of the lookahead symbol. */ 2354YYSTYPE yylval; 2355/* Number of syntax errors so far. */ 2356int yynerrs; 2357 2358 2359/*----------. 2360| yyparse. | 2361`----------*/ 2362 2363int 2364yyparse (void) 2365{ 2366 int yystate; 2367 /* Number of tokens to shift before error messages enabled. */ 2368 int yyerrstatus; 2369 2370 /* The stacks and their tools: 2371 'yyss': related to states. 2372 'yyvs': related to semantic values. 2373 2374 Refer to the stacks through separate pointers, to allow yyoverflow 2375 to reallocate them elsewhere. */ 2376 2377 /* The state stack. */ 2378 yytype_int16 yyssa[YYINITDEPTH]; 2379 yytype_int16 *yyss; 2380 yytype_int16 *yyssp; 2381 2382 /* The semantic value stack. */ 2383 YYSTYPE yyvsa[YYINITDEPTH]; 2384 YYSTYPE *yyvs; 2385 YYSTYPE *yyvsp; 2386 2387 YYSIZE_T yystacksize; 2388 2389 int yyn; 2390 int yyresult; 2391 /* Lookahead token as an internal (translated) token number. */ 2392 int yytoken = 0; 2393 /* The variables used to return semantic value and location from the 2394 action routines. */ 2395 YYSTYPE yyval; 2396 2397#if YYERROR_VERBOSE 2398 /* Buffer for error messages, and its allocated size. */ 2399 char yymsgbuf[128]; 2400 char *yymsg = yymsgbuf; 2401 YYSIZE_T yymsg_alloc = sizeof yymsgbuf; 2402#endif 2403 2404#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) 2405 2406 /* The number of symbols on the RHS of the reduced rule. 2407 Keep to zero when no symbol should be popped. */ 2408 int yylen = 0; 2409 2410 yyssp = yyss = yyssa; 2411 yyvsp = yyvs = yyvsa; 2412 yystacksize = YYINITDEPTH; 2413 2414 YYDPRINTF ((stderr, "Starting parse\n")); 2415 2416 yystate = 0; 2417 yyerrstatus = 0; 2418 yynerrs = 0; 2419 yychar = YYEMPTY; /* Cause a token to be read. */ 2420 goto yysetstate; 2421 2422 2423/*------------------------------------------------------------. 2424| yynewstate -- push a new state, which is found in yystate. | 2425`------------------------------------------------------------*/ 2426yynewstate: 2427 /* In all cases, when you get here, the value and location stacks 2428 have just been pushed. So pushing a state here evens the stacks. */ 2429 yyssp++; 2430 2431 2432/*--------------------------------------------------------------------. 2433| yynewstate -- set current state (the top of the stack) to yystate. | 2434`--------------------------------------------------------------------*/ 2435yysetstate: 2436 YYDPRINTF ((stderr, "Entering state %d\n", yystate)); 2437 YY_ASSERT (0 <= yystate && yystate < YYNSTATES); 2438 *yyssp = (yytype_int16) yystate; 2439 2440 if (yyss + yystacksize - 1 <= yyssp) 2441#if !defined yyoverflow && !defined YYSTACK_RELOCATE 2442 goto yyexhaustedlab; 2443#else 2444 { 2445 /* Get the current used size of the three stacks, in elements. */ 2446 YYSIZE_T yysize = (YYSIZE_T) (yyssp - yyss + 1); 2447 2448# if defined yyoverflow 2449 { 2450 /* Give user a chance to reallocate the stack. Use copies of 2451 these so that the &'s don't force the real ones into 2452 memory. */ 2453 YYSTYPE *yyvs1 = yyvs; 2454 yytype_int16 *yyss1 = yyss; 2455 2456 /* Each stack pointer address is followed by the size of the 2457 data in use in that stack, in bytes. This used to be a 2458 conditional around just the two extra args, but that might 2459 be undefined if yyoverflow is a macro. */ 2460 yyoverflow (YY_("memory exhausted"), 2461 &yyss1, yysize * sizeof (*yyssp), 2462 &yyvs1, yysize * sizeof (*yyvsp), 2463 &yystacksize); 2464 yyss = yyss1; 2465 yyvs = yyvs1; 2466 } 2467# else /* defined YYSTACK_RELOCATE */ 2468 /* Extend the stack our own way. */ 2469 if (YYMAXDEPTH <= yystacksize) 2470 goto yyexhaustedlab; 2471 yystacksize *= 2; 2472 if (YYMAXDEPTH < yystacksize) 2473 yystacksize = YYMAXDEPTH; 2474 2475 { 2476 yytype_int16 *yyss1 = yyss; 2477 union yyalloc *yyptr = 2478 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); 2479 if (! yyptr) 2480 goto yyexhaustedlab; 2481 YYSTACK_RELOCATE (yyss_alloc, yyss); 2482 YYSTACK_RELOCATE (yyvs_alloc, yyvs); 2483# undef YYSTACK_RELOCATE 2484 if (yyss1 != yyssa) 2485 YYSTACK_FREE (yyss1); 2486 } 2487# endif 2488 2489 yyssp = yyss + yysize - 1; 2490 yyvsp = yyvs + yysize - 1; 2491 2492 YYDPRINTF ((stderr, "Stack size increased to %lu\n", 2493 (unsigned long) yystacksize)); 2494 2495 if (yyss + yystacksize - 1 <= yyssp) 2496 YYABORT; 2497 } 2498#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ 2499 2500 if (yystate == YYFINAL) 2501 YYACCEPT; 2502 2503 goto yybackup; 2504 2505 2506/*-----------. 2507| yybackup. | 2508`-----------*/ 2509yybackup: 2510 /* Do appropriate processing given the current state. Read a 2511 lookahead token if we need one and don't already have one. */ 2512 2513 /* First try to decide what to do without reference to lookahead token. */ 2514 yyn = yypact[yystate]; 2515 if (yypact_value_is_default (yyn)) 2516 goto yydefault; 2517 2518 /* Not known => get a lookahead token if don't already have one. */ 2519 2520 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ 2521 if (yychar == YYEMPTY) 2522 { 2523 YYDPRINTF ((stderr, "Reading a token: ")); 2524 yychar = yylex (); 2525 } 2526 2527 if (yychar <= YYEOF) 2528 { 2529 yychar = yytoken = YYEOF; 2530 YYDPRINTF ((stderr, "Now at end of input.\n")); 2531 } 2532 else 2533 { 2534 yytoken = YYTRANSLATE (yychar); 2535 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); 2536 } 2537 2538 /* If the proper action on seeing token YYTOKEN is to reduce or to 2539 detect an error, take that action. */ 2540 yyn += yytoken; 2541 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) 2542 goto yydefault; 2543 yyn = yytable[yyn]; 2544 if (yyn <= 0) 2545 { 2546 if (yytable_value_is_error (yyn)) 2547 goto yyerrlab; 2548 yyn = -yyn; 2549 goto yyreduce; 2550 } 2551 2552 /* Count tokens shifted since error; after three, turn off error 2553 status. */ 2554 if (yyerrstatus) 2555 yyerrstatus--; 2556 2557 /* Shift the lookahead token. */ 2558 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); 2559 2560 /* Discard the shifted token. */ 2561 yychar = YYEMPTY; 2562 2563 yystate = yyn; 2564 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 2565 *++yyvsp = yylval; 2566 YY_IGNORE_MAYBE_UNINITIALIZED_END 2567 goto yynewstate; 2568 2569 2570/*-----------------------------------------------------------. 2571| yydefault -- do the default action for the current state. | 2572`-----------------------------------------------------------*/ 2573yydefault: 2574 yyn = yydefact[yystate]; 2575 if (yyn == 0) 2576 goto yyerrlab; 2577 goto yyreduce; 2578 2579 2580/*-----------------------------. 2581| yyreduce -- do a reduction. | 2582`-----------------------------*/ 2583yyreduce: 2584 /* yyn is the number of a rule to reduce with. */ 2585 yylen = yyr2[yyn]; 2586 2587 /* If YYLEN is nonzero, implement the default value of the action: 2588 '$$ = $1'. 2589 2590 Otherwise, the following line sets YYVAL to garbage. 2591 This behavior is undocumented and Bison 2592 users should not rely upon it. Assigning to YYVAL 2593 unconditionally makes the parser a bit smaller, and it avoids a 2594 GCC warning that YYVAL may be used uninitialized. */ 2595 yyval = yyvsp[1-yylen]; 2596 2597 2598 YY_REDUCE_PRINT (yyn); 2599 switch (yyn) 2600 { 2601 case 2: 2602#line 103 "awkgram.y" 2603 { if (errorflag==0) 2604 winner = (Node *)stat3(PROGRAM, beginloc, (yyvsp[0].p), endloc); } 2605#line 2606 "awkgram.tab.c" 2606 break; 2607 2608 case 3: 2609#line 105 "awkgram.y" 2610 { yyclearin; bracecheck(); SYNTAX("bailing out"); } 2611#line 2612 "awkgram.tab.c" 2612 break; 2613 2614 case 14: 2615#line 129 "awkgram.y" 2616 {inloop++;} 2617#line 2618 "awkgram.tab.c" 2618 break; 2619 2620 case 15: 2621#line 130 "awkgram.y" 2622 { --inloop; (yyval.p) = stat4(FOR, (yyvsp[-9].p), notnull((yyvsp[-6].p)), (yyvsp[-3].p), (yyvsp[0].p)); } 2623#line 2624 "awkgram.tab.c" 2624 break; 2625 2626 case 16: 2627#line 131 "awkgram.y" 2628 {inloop++;} 2629#line 2630 "awkgram.tab.c" 2630 break; 2631 2632 case 17: 2633#line 132 "awkgram.y" 2634 { --inloop; (yyval.p) = stat4(FOR, (yyvsp[-7].p), NIL, (yyvsp[-3].p), (yyvsp[0].p)); } 2635#line 2636 "awkgram.tab.c" 2636 break; 2637 2638 case 18: 2639#line 133 "awkgram.y" 2640 {inloop++;} 2641#line 2642 "awkgram.tab.c" 2642 break; 2643 2644 case 19: 2645#line 134 "awkgram.y" 2646 { --inloop; (yyval.p) = stat3(IN, (yyvsp[-5].p), makearr((yyvsp[-3].p)), (yyvsp[0].p)); } 2647#line 2648 "awkgram.tab.c" 2648 break; 2649 2650 case 20: 2651#line 138 "awkgram.y" 2652 { setfname((yyvsp[0].cp)); } 2653#line 2654 "awkgram.tab.c" 2654 break; 2655 2656 case 21: 2657#line 139 "awkgram.y" 2658 { setfname((yyvsp[0].cp)); } 2659#line 2660 "awkgram.tab.c" 2660 break; 2661 2662 case 22: 2663#line 143 "awkgram.y" 2664 { (yyval.p) = notnull((yyvsp[-1].p)); } 2665#line 2666 "awkgram.tab.c" 2666 break; 2667 2668 case 27: 2669#line 155 "awkgram.y" 2670 { (yyval.i) = 0; } 2671#line 2672 "awkgram.tab.c" 2672 break; 2673 2674 case 29: 2675#line 160 "awkgram.y" 2676 { (yyval.i) = 0; } 2677#line 2678 "awkgram.tab.c" 2678 break; 2679 2680 case 31: 2681#line 166 "awkgram.y" 2682 { (yyval.p) = 0; } 2683#line 2684 "awkgram.tab.c" 2684 break; 2685 2686 case 33: 2687#line 171 "awkgram.y" 2688 { (yyval.p) = 0; } 2689#line 2690 "awkgram.tab.c" 2690 break; 2691 2692 case 34: 2693#line 172 "awkgram.y" 2694 { (yyval.p) = (yyvsp[-1].p); } 2695#line 2696 "awkgram.tab.c" 2696 break; 2697 2698 case 35: 2699#line 176 "awkgram.y" 2700 { (yyval.p) = notnull((yyvsp[0].p)); } 2701#line 2702 "awkgram.tab.c" 2702 break; 2703 2704 case 36: 2705#line 180 "awkgram.y" 2706 { (yyval.p) = stat2(PASTAT, (yyvsp[0].p), stat2(PRINT, rectonode(), NIL)); } 2707#line 2708 "awkgram.tab.c" 2708 break; 2709 2710 case 37: 2711#line 181 "awkgram.y" 2712 { (yyval.p) = stat2(PASTAT, (yyvsp[-3].p), (yyvsp[-1].p)); } 2713#line 2714 "awkgram.tab.c" 2714 break; 2715 2716 case 38: 2717#line 182 "awkgram.y" 2718 { (yyval.p) = pa2stat((yyvsp[-3].p), (yyvsp[0].p), stat2(PRINT, rectonode(), NIL)); } 2719#line 2720 "awkgram.tab.c" 2720 break; 2721 2722 case 39: 2723#line 183 "awkgram.y" 2724 { (yyval.p) = pa2stat((yyvsp[-6].p), (yyvsp[-3].p), (yyvsp[-1].p)); } 2725#line 2726 "awkgram.tab.c" 2726 break; 2727 2728 case 40: 2729#line 184 "awkgram.y" 2730 { (yyval.p) = stat2(PASTAT, NIL, (yyvsp[-1].p)); } 2731#line 2732 "awkgram.tab.c" 2732 break; 2733 2734 case 41: 2735#line 186 "awkgram.y" 2736 { beginloc = linkum(beginloc, (yyvsp[-1].p)); (yyval.p) = 0; } 2737#line 2738 "awkgram.tab.c" 2738 break; 2739 2740 case 42: 2741#line 188 "awkgram.y" 2742 { endloc = linkum(endloc, (yyvsp[-1].p)); (yyval.p) = 0; } 2743#line 2744 "awkgram.tab.c" 2744 break; 2745 2746 case 43: 2747#line 189 "awkgram.y" 2748 {infunc = true;} 2749#line 2750 "awkgram.tab.c" 2750 break; 2751 2752 case 44: 2753#line 190 "awkgram.y" 2754 { infunc = false; curfname=0; defn((Cell *)(yyvsp[-7].p), (yyvsp[-5].p), (yyvsp[-1].p)); (yyval.p) = 0; } 2755#line 2756 "awkgram.tab.c" 2756 break; 2757 2758 case 46: 2759#line 195 "awkgram.y" 2760 { (yyval.p) = linkum((yyvsp[-2].p), (yyvsp[0].p)); } 2761#line 2762 "awkgram.tab.c" 2762 break; 2763 2764 case 48: 2765#line 200 "awkgram.y" 2766 { (yyval.p) = linkum((yyvsp[-2].p), (yyvsp[0].p)); } 2767#line 2768 "awkgram.tab.c" 2768 break; 2769 2770 case 49: 2771#line 204 "awkgram.y" 2772 { (yyval.p) = op2((yyvsp[-1].i), (yyvsp[-2].p), (yyvsp[0].p)); } 2773#line 2774 "awkgram.tab.c" 2774 break; 2775 2776 case 50: 2777#line 206 "awkgram.y" 2778 { (yyval.p) = op3(CONDEXPR, notnull((yyvsp[-4].p)), (yyvsp[-2].p), (yyvsp[0].p)); } 2779#line 2780 "awkgram.tab.c" 2780 break; 2781 2782 case 51: 2783#line 208 "awkgram.y" 2784 { (yyval.p) = op2(BOR, notnull((yyvsp[-2].p)), notnull((yyvsp[0].p))); } 2785#line 2786 "awkgram.tab.c" 2786 break; 2787 2788 case 52: 2789#line 210 "awkgram.y" 2790 { (yyval.p) = op2(AND, notnull((yyvsp[-2].p)), notnull((yyvsp[0].p))); } 2791#line 2792 "awkgram.tab.c" 2792 break; 2793 2794 case 53: 2795#line 211 "awkgram.y" 2796 { (yyval.p) = op3((yyvsp[-1].i), NIL, (yyvsp[-2].p), (Node*)makedfa((yyvsp[0].s), 0)); } 2797#line 2798 "awkgram.tab.c" 2798 break; 2799 2800 case 54: 2801#line 213 "awkgram.y" 2802 { if (constnode((yyvsp[0].p))) 2803 (yyval.p) = op3((yyvsp[-1].i), NIL, (yyvsp[-2].p), (Node*)makedfa(strnode((yyvsp[0].p)), 0)); 2804 else 2805 (yyval.p) = op3((yyvsp[-1].i), (Node *)1, (yyvsp[-2].p), (yyvsp[0].p)); } 2806#line 2807 "awkgram.tab.c" 2807 break; 2808 2809 case 55: 2810#line 217 "awkgram.y" 2811 { (yyval.p) = op2(INTEST, (yyvsp[-2].p), makearr((yyvsp[0].p))); } 2812#line 2813 "awkgram.tab.c" 2813 break; 2814 2815 case 56: 2816#line 218 "awkgram.y" 2817 { (yyval.p) = op2(INTEST, (yyvsp[-3].p), makearr((yyvsp[0].p))); } 2818#line 2819 "awkgram.tab.c" 2819 break; 2820 2821 case 57: 2822#line 219 "awkgram.y" 2823 { (yyval.p) = op2(CAT, (yyvsp[-1].p), (yyvsp[0].p)); } 2824#line 2825 "awkgram.tab.c" 2825 break; 2826 2827 case 60: 2828#line 225 "awkgram.y" 2829 { (yyval.p) = op2((yyvsp[-1].i), (yyvsp[-2].p), (yyvsp[0].p)); } 2830#line 2831 "awkgram.tab.c" 2831 break; 2832 2833 case 61: 2834#line 227 "awkgram.y" 2835 { (yyval.p) = op3(CONDEXPR, notnull((yyvsp[-4].p)), (yyvsp[-2].p), (yyvsp[0].p)); } 2836#line 2837 "awkgram.tab.c" 2837 break; 2838 2839 case 62: 2840#line 229 "awkgram.y" 2841 { (yyval.p) = op2(BOR, notnull((yyvsp[-2].p)), notnull((yyvsp[0].p))); } 2842#line 2843 "awkgram.tab.c" 2843 break; 2844 2845 case 63: 2846#line 231 "awkgram.y" 2847 { (yyval.p) = op2(AND, notnull((yyvsp[-2].p)), notnull((yyvsp[0].p))); } 2848#line 2849 "awkgram.tab.c" 2849 break; 2850 2851 case 64: 2852#line 232 "awkgram.y" 2853 { (yyval.p) = op2((yyvsp[-1].i), (yyvsp[-2].p), (yyvsp[0].p)); } 2854#line 2855 "awkgram.tab.c" 2855 break; 2856 2857 case 65: 2858#line 233 "awkgram.y" 2859 { (yyval.p) = op2((yyvsp[-1].i), (yyvsp[-2].p), (yyvsp[0].p)); } 2860#line 2861 "awkgram.tab.c" 2861 break; 2862 2863 case 66: 2864#line 234 "awkgram.y" 2865 { (yyval.p) = op2((yyvsp[-1].i), (yyvsp[-2].p), (yyvsp[0].p)); } 2866#line 2867 "awkgram.tab.c" 2867 break; 2868 2869 case 67: 2870#line 235 "awkgram.y" 2871 { (yyval.p) = op2((yyvsp[-1].i), (yyvsp[-2].p), (yyvsp[0].p)); } 2872#line 2873 "awkgram.tab.c" 2873 break; 2874 2875 case 68: 2876#line 236 "awkgram.y" 2877 { (yyval.p) = op2((yyvsp[-1].i), (yyvsp[-2].p), (yyvsp[0].p)); } 2878#line 2879 "awkgram.tab.c" 2879 break; 2880 2881 case 69: 2882#line 237 "awkgram.y" 2883 { (yyval.p) = op2((yyvsp[-1].i), (yyvsp[-2].p), (yyvsp[0].p)); } 2884#line 2885 "awkgram.tab.c" 2885 break; 2886 2887 case 70: 2888#line 238 "awkgram.y" 2889 { (yyval.p) = op3((yyvsp[-1].i), NIL, (yyvsp[-2].p), (Node*)makedfa((yyvsp[0].s), 0)); } 2890#line 2891 "awkgram.tab.c" 2891 break; 2892 2893 case 71: 2894#line 240 "awkgram.y" 2895 { if (constnode((yyvsp[0].p))) 2896 (yyval.p) = op3((yyvsp[-1].i), NIL, (yyvsp[-2].p), (Node*)makedfa(strnode((yyvsp[0].p)), 0)); 2897 else 2898 (yyval.p) = op3((yyvsp[-1].i), (Node *)1, (yyvsp[-2].p), (yyvsp[0].p)); } 2899#line 2900 "awkgram.tab.c" 2900 break; 2901 2902 case 72: 2903#line 244 "awkgram.y" 2904 { (yyval.p) = op2(INTEST, (yyvsp[-2].p), makearr((yyvsp[0].p))); } 2905#line 2906 "awkgram.tab.c" 2906 break; 2907 2908 case 73: 2909#line 245 "awkgram.y" 2910 { (yyval.p) = op2(INTEST, (yyvsp[-3].p), makearr((yyvsp[0].p))); } 2911#line 2912 "awkgram.tab.c" 2912 break; 2913 2914 case 74: 2915#line 246 "awkgram.y" 2916 { 2917 if (safe) SYNTAX("cmd | getline is unsafe"); 2918 else (yyval.p) = op3(GETLINE, (yyvsp[0].p), itonp((yyvsp[-2].i)), (yyvsp[-3].p)); } 2919#line 2920 "awkgram.tab.c" 2920 break; 2921 2922 case 75: 2923#line 249 "awkgram.y" 2924 { 2925 if (safe) SYNTAX("cmd | getline is unsafe"); 2926 else (yyval.p) = op3(GETLINE, (Node*)0, itonp((yyvsp[-1].i)), (yyvsp[-2].p)); } 2927#line 2928 "awkgram.tab.c" 2928 break; 2929 2930 case 76: 2931#line 252 "awkgram.y" 2932 { (yyval.p) = op2(CAT, (yyvsp[-1].p), (yyvsp[0].p)); } 2933#line 2934 "awkgram.tab.c" 2934 break; 2935 2936 case 79: 2937#line 258 "awkgram.y" 2938 { (yyval.p) = linkum((yyvsp[-2].p), (yyvsp[0].p)); } 2939#line 2940 "awkgram.tab.c" 2940 break; 2941 2942 case 80: 2943#line 259 "awkgram.y" 2944 { (yyval.p) = linkum((yyvsp[-2].p), (yyvsp[0].p)); } 2945#line 2946 "awkgram.tab.c" 2946 break; 2947 2948 case 82: 2949#line 264 "awkgram.y" 2950 { (yyval.p) = linkum((yyvsp[-2].p), (yyvsp[0].p)); } 2951#line 2952 "awkgram.tab.c" 2952 break; 2953 2954 case 83: 2955#line 268 "awkgram.y" 2956 { (yyval.p) = rectonode(); } 2957#line 2958 "awkgram.tab.c" 2958 break; 2959 2960 case 85: 2961#line 270 "awkgram.y" 2962 { (yyval.p) = (yyvsp[-1].p); } 2963#line 2964 "awkgram.tab.c" 2964 break; 2965 2966 case 94: 2967#line 287 "awkgram.y" 2968 { (yyval.p) = op3(MATCH, NIL, rectonode(), (Node*)makedfa((yyvsp[0].s), 0)); } 2969#line 2970 "awkgram.tab.c" 2970 break; 2971 2972 case 95: 2973#line 288 "awkgram.y" 2974 { (yyval.p) = op1(NOT, notnull((yyvsp[0].p))); } 2975#line 2976 "awkgram.tab.c" 2976 break; 2977 2978 case 96: 2979#line 292 "awkgram.y" 2980 {startreg();} 2981#line 2982 "awkgram.tab.c" 2982 break; 2983 2984 case 97: 2985#line 292 "awkgram.y" 2986 { (yyval.s) = (yyvsp[-1].s); } 2987#line 2988 "awkgram.tab.c" 2988 break; 2989 2990 case 100: 2991#line 300 "awkgram.y" 2992 { 2993 if (safe) SYNTAX("print | is unsafe"); 2994 else (yyval.p) = stat3((yyvsp[-3].i), (yyvsp[-2].p), itonp((yyvsp[-1].i)), (yyvsp[0].p)); } 2995#line 2996 "awkgram.tab.c" 2996 break; 2997 2998 case 101: 2999#line 303 "awkgram.y" 3000 { 3001 if (safe) SYNTAX("print >> is unsafe"); 3002 else (yyval.p) = stat3((yyvsp[-3].i), (yyvsp[-2].p), itonp((yyvsp[-1].i)), (yyvsp[0].p)); } 3003#line 3004 "awkgram.tab.c" 3004 break; 3005 3006 case 102: 3007#line 306 "awkgram.y" 3008 { 3009 if (safe) SYNTAX("print > is unsafe"); 3010 else (yyval.p) = stat3((yyvsp[-3].i), (yyvsp[-2].p), itonp((yyvsp[-1].i)), (yyvsp[0].p)); } 3011#line 3012 "awkgram.tab.c" 3012 break; 3013 3014 case 103: 3015#line 309 "awkgram.y" 3016 { (yyval.p) = stat3((yyvsp[-1].i), (yyvsp[0].p), NIL, NIL); } 3017#line 3018 "awkgram.tab.c" 3018 break; 3019 3020 case 104: 3021#line 310 "awkgram.y" 3022 { (yyval.p) = stat2(DELETE, makearr((yyvsp[-3].p)), (yyvsp[-1].p)); } 3023#line 3024 "awkgram.tab.c" 3024 break; 3025 3026 case 105: 3027#line 311 "awkgram.y" 3028 { (yyval.p) = stat2(DELETE, makearr((yyvsp[0].p)), 0); } 3029#line 3030 "awkgram.tab.c" 3030 break; 3031 3032 case 106: 3033#line 312 "awkgram.y" 3034 { (yyval.p) = exptostat((yyvsp[0].p)); } 3035#line 3036 "awkgram.tab.c" 3036 break; 3037 3038 case 107: 3039#line 313 "awkgram.y" 3040 { yyclearin; SYNTAX("illegal statement"); } 3041#line 3042 "awkgram.tab.c" 3042 break; 3043 3044 case 110: 3045#line 322 "awkgram.y" 3046 { if (!inloop) SYNTAX("break illegal outside of loops"); 3047 (yyval.p) = stat1(BREAK, NIL); } 3048#line 3049 "awkgram.tab.c" 3049 break; 3050 3051 case 111: 3052#line 324 "awkgram.y" 3053 { if (!inloop) SYNTAX("continue illegal outside of loops"); 3054 (yyval.p) = stat1(CONTINUE, NIL); } 3055#line 3056 "awkgram.tab.c" 3056 break; 3057 3058 case 112: 3059#line 326 "awkgram.y" 3060 {inloop++;} 3061#line 3062 "awkgram.tab.c" 3062 break; 3063 3064 case 113: 3065#line 326 "awkgram.y" 3066 {--inloop;} 3067#line 3068 "awkgram.tab.c" 3068 break; 3069 3070 case 114: 3071#line 327 "awkgram.y" 3072 { (yyval.p) = stat2(DO, (yyvsp[-6].p), notnull((yyvsp[-2].p))); } 3073#line 3074 "awkgram.tab.c" 3074 break; 3075 3076 case 115: 3077#line 328 "awkgram.y" 3078 { (yyval.p) = stat1(EXIT, (yyvsp[-1].p)); } 3079#line 3080 "awkgram.tab.c" 3080 break; 3081 3082 case 116: 3083#line 329 "awkgram.y" 3084 { (yyval.p) = stat1(EXIT, NIL); } 3085#line 3086 "awkgram.tab.c" 3086 break; 3087 3088 case 118: 3089#line 331 "awkgram.y" 3090 { (yyval.p) = stat3(IF, (yyvsp[-3].p), (yyvsp[-2].p), (yyvsp[0].p)); } 3091#line 3092 "awkgram.tab.c" 3092 break; 3093 3094 case 119: 3095#line 332 "awkgram.y" 3096 { (yyval.p) = stat3(IF, (yyvsp[-1].p), (yyvsp[0].p), NIL); } 3097#line 3098 "awkgram.tab.c" 3098 break; 3099 3100 case 120: 3101#line 333 "awkgram.y" 3102 { (yyval.p) = (yyvsp[-1].p); } 3103#line 3104 "awkgram.tab.c" 3104 break; 3105 3106 case 121: 3107#line 334 "awkgram.y" 3108 { if (infunc) 3109 SYNTAX("next is illegal inside a function"); 3110 (yyval.p) = stat1(NEXT, NIL); } 3111#line 3112 "awkgram.tab.c" 3112 break; 3113 3114 case 122: 3115#line 337 "awkgram.y" 3116 { if (infunc) 3117 SYNTAX("nextfile is illegal inside a function"); 3118 (yyval.p) = stat1(NEXTFILE, NIL); } 3119#line 3120 "awkgram.tab.c" 3120 break; 3121 3122 case 123: 3123#line 340 "awkgram.y" 3124 { (yyval.p) = stat1(RETURN, (yyvsp[-1].p)); } 3125#line 3126 "awkgram.tab.c" 3126 break; 3127 3128 case 124: 3129#line 341 "awkgram.y" 3130 { (yyval.p) = stat1(RETURN, NIL); } 3131#line 3132 "awkgram.tab.c" 3132 break; 3133 3134 case 126: 3135#line 343 "awkgram.y" 3136 {inloop++;} 3137#line 3138 "awkgram.tab.c" 3138 break; 3139 3140 case 127: 3141#line 343 "awkgram.y" 3142 { --inloop; (yyval.p) = stat2(WHILE, (yyvsp[-2].p), (yyvsp[0].p)); } 3143#line 3144 "awkgram.tab.c" 3144 break; 3145 3146 case 128: 3147#line 344 "awkgram.y" 3148 { (yyval.p) = 0; } 3149#line 3150 "awkgram.tab.c" 3150 break; 3151 3152 case 130: 3153#line 349 "awkgram.y" 3154 { (yyval.p) = linkum((yyvsp[-1].p), (yyvsp[0].p)); } 3155#line 3156 "awkgram.tab.c" 3156 break; 3157 3158 case 134: 3159#line 358 "awkgram.y" 3160 { (yyval.cp) = catstr((yyvsp[-1].cp), (yyvsp[0].cp)); } 3161#line 3162 "awkgram.tab.c" 3162 break; 3163 3164 case 135: 3165#line 362 "awkgram.y" 3166 { (yyval.p) = op2(DIVEQ, (yyvsp[-3].p), (yyvsp[0].p)); } 3167#line 3168 "awkgram.tab.c" 3168 break; 3169 3170 case 136: 3171#line 363 "awkgram.y" 3172 { (yyval.p) = op2(ADD, (yyvsp[-2].p), (yyvsp[0].p)); } 3173#line 3174 "awkgram.tab.c" 3174 break; 3175 3176 case 137: 3177#line 364 "awkgram.y" 3178 { (yyval.p) = op2(MINUS, (yyvsp[-2].p), (yyvsp[0].p)); } 3179#line 3180 "awkgram.tab.c" 3180 break; 3181 3182 case 138: 3183#line 365 "awkgram.y" 3184 { (yyval.p) = op2(MULT, (yyvsp[-2].p), (yyvsp[0].p)); } 3185#line 3186 "awkgram.tab.c" 3186 break; 3187 3188 case 139: 3189#line 366 "awkgram.y" 3190 { (yyval.p) = op2(DIVIDE, (yyvsp[-2].p), (yyvsp[0].p)); } 3191#line 3192 "awkgram.tab.c" 3192 break; 3193 3194 case 140: 3195#line 367 "awkgram.y" 3196 { (yyval.p) = op2(MOD, (yyvsp[-2].p), (yyvsp[0].p)); } 3197#line 3198 "awkgram.tab.c" 3198 break; 3199 3200 case 141: 3201#line 368 "awkgram.y" 3202 { (yyval.p) = op2(POWER, (yyvsp[-2].p), (yyvsp[0].p)); } 3203#line 3204 "awkgram.tab.c" 3204 break; 3205 3206 case 142: 3207#line 369 "awkgram.y" 3208 { (yyval.p) = op1(UMINUS, (yyvsp[0].p)); } 3209#line 3210 "awkgram.tab.c" 3210 break; 3211 3212 case 143: 3213#line 370 "awkgram.y" 3214 { (yyval.p) = op1(UPLUS, (yyvsp[0].p)); } 3215#line 3216 "awkgram.tab.c" 3216 break; 3217 3218 case 144: 3219#line 371 "awkgram.y" 3220 { (yyval.p) = op1(NOT, notnull((yyvsp[0].p))); } 3221#line 3222 "awkgram.tab.c" 3222 break; 3223 3224 case 145: 3225#line 372 "awkgram.y" 3226 { (yyval.p) = op2(BLTIN, itonp((yyvsp[-2].i)), rectonode()); } 3227#line 3228 "awkgram.tab.c" 3228 break; 3229 3230 case 146: 3231#line 373 "awkgram.y" 3232 { (yyval.p) = op2(BLTIN, itonp((yyvsp[-3].i)), (yyvsp[-1].p)); } 3233#line 3234 "awkgram.tab.c" 3234 break; 3235 3236 case 147: 3237#line 374 "awkgram.y" 3238 { (yyval.p) = op2(BLTIN, itonp((yyvsp[0].i)), rectonode()); } 3239#line 3240 "awkgram.tab.c" 3240 break; 3241 3242 case 148: 3243#line 375 "awkgram.y" 3244 { (yyval.p) = op2(CALL, celltonode((yyvsp[-2].cp),CVAR), NIL); } 3245#line 3246 "awkgram.tab.c" 3246 break; 3247 3248 case 149: 3249#line 376 "awkgram.y" 3250 { (yyval.p) = op2(CALL, celltonode((yyvsp[-3].cp),CVAR), (yyvsp[-1].p)); } 3251#line 3252 "awkgram.tab.c" 3252 break; 3253 3254 case 150: 3255#line 377 "awkgram.y" 3256 { (yyval.p) = op1(CLOSE, (yyvsp[0].p)); } 3257#line 3258 "awkgram.tab.c" 3258 break; 3259 3260 case 151: 3261#line 378 "awkgram.y" 3262 { (yyval.p) = op1(PREDECR, (yyvsp[0].p)); } 3263#line 3264 "awkgram.tab.c" 3264 break; 3265 3266 case 152: 3267#line 379 "awkgram.y" 3268 { (yyval.p) = op1(PREINCR, (yyvsp[0].p)); } 3269#line 3270 "awkgram.tab.c" 3270 break; 3271 3272 case 153: 3273#line 380 "awkgram.y" 3274 { (yyval.p) = op1(POSTDECR, (yyvsp[-1].p)); } 3275#line 3276 "awkgram.tab.c" 3276 break; 3277 3278 case 154: 3279#line 381 "awkgram.y" 3280 { (yyval.p) = op1(POSTINCR, (yyvsp[-1].p)); } 3281#line 3282 "awkgram.tab.c" 3282 break; 3283 3284 case 155: 3285#line 383 "awkgram.y" 3286 { (yyval.p) = op5(GENSUB, NIL, (Node*)makedfa((yyvsp[-5].s), 1), (yyvsp[-3].p), (yyvsp[-1].p), rectonode()); } 3287#line 3288 "awkgram.tab.c" 3288 break; 3289 3290 case 156: 3291#line 385 "awkgram.y" 3292 { if (constnode((yyvsp[-5].p))) 3293 (yyval.p) = op5(GENSUB, NIL, (Node *)makedfa(strnode((yyvsp[-5].p)), 1), (yyvsp[-3].p), (yyvsp[-1].p), rectonode()); 3294 else 3295 (yyval.p) = op5(GENSUB, (Node *)1, (yyvsp[-5].p), (yyvsp[-3].p), (yyvsp[-1].p), rectonode()); 3296 } 3297#line 3298 "awkgram.tab.c" 3298 break; 3299 3300 case 157: 3301#line 391 "awkgram.y" 3302 { (yyval.p) = op5(GENSUB, NIL, (Node*)makedfa((yyvsp[-7].s), 1), (yyvsp[-5].p), (yyvsp[-3].p), (yyvsp[-1].p)); } 3303#line 3304 "awkgram.tab.c" 3304 break; 3305 3306 case 158: 3307#line 393 "awkgram.y" 3308 { if (constnode((yyvsp[-7].p))) 3309 (yyval.p) = op5(GENSUB, NIL, (Node *)makedfa(strnode((yyvsp[-7].p)),1), (yyvsp[-5].p),(yyvsp[-3].p),(yyvsp[-1].p)); 3310 else 3311 (yyval.p) = op5(GENSUB, (Node *)1, (yyvsp[-7].p), (yyvsp[-5].p), (yyvsp[-3].p), (yyvsp[-1].p)); 3312 } 3313#line 3314 "awkgram.tab.c" 3314 break; 3315 3316 case 159: 3317#line 398 "awkgram.y" 3318 { (yyval.p) = op3(GETLINE, (yyvsp[-2].p), itonp((yyvsp[-1].i)), (yyvsp[0].p)); } 3319#line 3320 "awkgram.tab.c" 3320 break; 3321 3322 case 160: 3323#line 399 "awkgram.y" 3324 { (yyval.p) = op3(GETLINE, NIL, itonp((yyvsp[-1].i)), (yyvsp[0].p)); } 3325#line 3326 "awkgram.tab.c" 3326 break; 3327 3328 case 161: 3329#line 400 "awkgram.y" 3330 { (yyval.p) = op3(GETLINE, (yyvsp[0].p), NIL, NIL); } 3331#line 3332 "awkgram.tab.c" 3332 break; 3333 3334 case 162: 3335#line 401 "awkgram.y" 3336 { (yyval.p) = op3(GETLINE, NIL, NIL, NIL); } 3337#line 3338 "awkgram.tab.c" 3338 break; 3339 3340 case 163: 3341#line 403 "awkgram.y" 3342 { (yyval.p) = op2(INDEX, (yyvsp[-3].p), (yyvsp[-1].p)); } 3343#line 3344 "awkgram.tab.c" 3344 break; 3345 3346 case 164: 3347#line 405 "awkgram.y" 3348 { SYNTAX("index() doesn't permit regular expressions"); 3349 (yyval.p) = op2(INDEX, (yyvsp[-3].p), (Node*)(yyvsp[-1].s)); } 3350#line 3351 "awkgram.tab.c" 3351 break; 3352 3353 case 165: 3354#line 407 "awkgram.y" 3355 { (yyval.p) = (yyvsp[-1].p); } 3356#line 3357 "awkgram.tab.c" 3357 break; 3358 3359 case 166: 3360#line 409 "awkgram.y" 3361 { (yyval.p) = op3(MATCHFCN, NIL, (yyvsp[-3].p), (Node*)makedfa((yyvsp[-1].s), 1)); } 3362#line 3363 "awkgram.tab.c" 3363 break; 3364 3365 case 167: 3366#line 411 "awkgram.y" 3367 { if (constnode((yyvsp[-1].p))) 3368 (yyval.p) = op3(MATCHFCN, NIL, (yyvsp[-3].p), (Node*)makedfa(strnode((yyvsp[-1].p)), 1)); 3369 else 3370 (yyval.p) = op3(MATCHFCN, (Node *)1, (yyvsp[-3].p), (yyvsp[-1].p)); } 3371#line 3372 "awkgram.tab.c" 3372 break; 3373 3374 case 168: 3375#line 415 "awkgram.y" 3376 { (yyval.p) = celltonode((yyvsp[0].cp), CCON); } 3377#line 3378 "awkgram.tab.c" 3378 break; 3379 3380 case 169: 3381#line 417 "awkgram.y" 3382 { (yyval.p) = op4(SPLIT, (yyvsp[-5].p), makearr((yyvsp[-3].p)), (yyvsp[-1].p), (Node*)STRING); } 3383#line 3384 "awkgram.tab.c" 3384 break; 3385 3386 case 170: 3387#line 419 "awkgram.y" 3388 { (yyval.p) = op4(SPLIT, (yyvsp[-5].p), makearr((yyvsp[-3].p)), (Node*)makedfa((yyvsp[-1].s), 1), (Node *)REGEXPR); } 3389#line 3390 "awkgram.tab.c" 3390 break; 3391 3392 case 171: 3393#line 421 "awkgram.y" 3394 { (yyval.p) = op4(SPLIT, (yyvsp[-3].p), makearr((yyvsp[-1].p)), NIL, (Node*)STRING); } 3395#line 3396 "awkgram.tab.c" 3396 break; 3397 3398 case 172: 3399#line 422 "awkgram.y" 3400 { (yyval.p) = op1((yyvsp[-3].i), (yyvsp[-1].p)); } 3401#line 3402 "awkgram.tab.c" 3402 break; 3403 3404 case 173: 3405#line 423 "awkgram.y" 3406 { (yyval.p) = celltonode((yyvsp[0].cp), CCON); } 3407#line 3408 "awkgram.tab.c" 3408 break; 3409 3410 case 174: 3411#line 425 "awkgram.y" 3412 { (yyval.p) = op4((yyvsp[-5].i), NIL, (Node*)makedfa((yyvsp[-3].s), 1), (yyvsp[-1].p), rectonode()); } 3413#line 3414 "awkgram.tab.c" 3414 break; 3415 3416 case 175: 3417#line 427 "awkgram.y" 3418 { if (constnode((yyvsp[-3].p))) 3419 (yyval.p) = op4((yyvsp[-5].i), NIL, (Node*)makedfa(strnode((yyvsp[-3].p)), 1), (yyvsp[-1].p), rectonode()); 3420 else 3421 (yyval.p) = op4((yyvsp[-5].i), (Node *)1, (yyvsp[-3].p), (yyvsp[-1].p), rectonode()); } 3422#line 3423 "awkgram.tab.c" 3423 break; 3424 3425 case 176: 3426#line 432 "awkgram.y" 3427 { (yyval.p) = op4((yyvsp[-7].i), NIL, (Node*)makedfa((yyvsp[-5].s), 1), (yyvsp[-3].p), (yyvsp[-1].p)); } 3428#line 3429 "awkgram.tab.c" 3429 break; 3430 3431 case 177: 3432#line 434 "awkgram.y" 3433 { if (constnode((yyvsp[-5].p))) 3434 (yyval.p) = op4((yyvsp[-7].i), NIL, (Node*)makedfa(strnode((yyvsp[-5].p)), 1), (yyvsp[-3].p), (yyvsp[-1].p)); 3435 else 3436 (yyval.p) = op4((yyvsp[-7].i), (Node *)1, (yyvsp[-5].p), (yyvsp[-3].p), (yyvsp[-1].p)); } 3437#line 3438 "awkgram.tab.c" 3438 break; 3439 3440 case 178: 3441#line 439 "awkgram.y" 3442 { (yyval.p) = op3(SUBSTR, (yyvsp[-5].p), (yyvsp[-3].p), (yyvsp[-1].p)); } 3443#line 3444 "awkgram.tab.c" 3444 break; 3445 3446 case 179: 3447#line 441 "awkgram.y" 3448 { (yyval.p) = op3(SUBSTR, (yyvsp[-3].p), (yyvsp[-1].p), NIL); } 3449#line 3450 "awkgram.tab.c" 3450 break; 3451 3452 case 182: 3453#line 447 "awkgram.y" 3454 { (yyval.p) = op2(ARRAY, makearr((yyvsp[-3].p)), (yyvsp[-1].p)); } 3455#line 3456 "awkgram.tab.c" 3456 break; 3457 3458 case 183: 3459#line 448 "awkgram.y" 3460 { (yyval.p) = op1(INDIRECT, celltonode((yyvsp[0].cp), CVAR)); } 3461#line 3462 "awkgram.tab.c" 3462 break; 3463 3464 case 184: 3465#line 449 "awkgram.y" 3466 { (yyval.p) = op1(INDIRECT, (yyvsp[0].p)); } 3467#line 3468 "awkgram.tab.c" 3468 break; 3469 3470 case 185: 3471#line 453 "awkgram.y" 3472 { arglist = (yyval.p) = 0; } 3473#line 3474 "awkgram.tab.c" 3474 break; 3475 3476 case 186: 3477#line 454 "awkgram.y" 3478 { arglist = (yyval.p) = celltonode((yyvsp[0].cp),CVAR); } 3479#line 3480 "awkgram.tab.c" 3480 break; 3481 3482 case 187: 3483#line 455 "awkgram.y" 3484 { 3485 checkdup((yyvsp[-2].p), (yyvsp[0].cp)); 3486 arglist = (yyval.p) = linkum((yyvsp[-2].p),celltonode((yyvsp[0].cp),CVAR)); } 3487#line 3488 "awkgram.tab.c" 3488 break; 3489 3490 case 188: 3491#line 461 "awkgram.y" 3492 { (yyval.p) = celltonode((yyvsp[0].cp), CVAR); } 3493#line 3494 "awkgram.tab.c" 3494 break; 3495 3496 case 189: 3497#line 462 "awkgram.y" 3498 { (yyval.p) = op1(ARG, itonp((yyvsp[0].i))); } 3499#line 3500 "awkgram.tab.c" 3500 break; 3501 3502 case 190: 3503#line 463 "awkgram.y" 3504 { (yyval.p) = op1(VARNF, (Node *) (yyvsp[0].cp)); } 3505#line 3506 "awkgram.tab.c" 3506 break; 3507 3508 case 191: 3509#line 468 "awkgram.y" 3510 { (yyval.p) = notnull((yyvsp[-1].p)); } 3511#line 3512 "awkgram.tab.c" 3512 break; 3513 3514 3515#line 3516 "awkgram.tab.c" 3516 3517 default: break; 3518 } 3519 /* User semantic actions sometimes alter yychar, and that requires 3520 that yytoken be updated with the new translation. We take the 3521 approach of translating immediately before every use of yytoken. 3522 One alternative is translating here after every semantic action, 3523 but that translation would be missed if the semantic action invokes 3524 YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or 3525 if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an 3526 incorrect destructor might then be invoked immediately. In the 3527 case of YYERROR or YYBACKUP, subsequent parser actions might lead 3528 to an incorrect destructor call or verbose syntax error message 3529 before the lookahead is translated. */ 3530 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); 3531 3532 YYPOPSTACK (yylen); 3533 yylen = 0; 3534 YY_STACK_PRINT (yyss, yyssp); 3535 3536 *++yyvsp = yyval; 3537 3538 /* Now 'shift' the result of the reduction. Determine what state 3539 that goes to, based on the state we popped back to and the rule 3540 number reduced by. */ 3541 { 3542 const int yylhs = yyr1[yyn] - YYNTOKENS; 3543 const int yyi = yypgoto[yylhs] + *yyssp; 3544 yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp 3545 ? yytable[yyi] 3546 : yydefgoto[yylhs]); 3547 } 3548 3549 goto yynewstate; 3550 3551 3552/*--------------------------------------. 3553| yyerrlab -- here on detecting error. | 3554`--------------------------------------*/ 3555yyerrlab: 3556 /* Make sure we have latest lookahead translation. See comments at 3557 user semantic actions for why this is necessary. */ 3558 yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); 3559 3560 /* If not already recovering from an error, report this error. */ 3561 if (!yyerrstatus) 3562 { 3563 ++yynerrs; 3564#if ! YYERROR_VERBOSE 3565 yyerror (YY_("syntax error")); 3566#else 3567# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ 3568 yyssp, yytoken) 3569 { 3570 char const *yymsgp = YY_("syntax error"); 3571 int yysyntax_error_status; 3572 yysyntax_error_status = YYSYNTAX_ERROR; 3573 if (yysyntax_error_status == 0) 3574 yymsgp = yymsg; 3575 else if (yysyntax_error_status == 1) 3576 { 3577 if (yymsg != yymsgbuf) 3578 YYSTACK_FREE (yymsg); 3579 yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); 3580 if (!yymsg) 3581 { 3582 yymsg = yymsgbuf; 3583 yymsg_alloc = sizeof yymsgbuf; 3584 yysyntax_error_status = 2; 3585 } 3586 else 3587 { 3588 yysyntax_error_status = YYSYNTAX_ERROR; 3589 yymsgp = yymsg; 3590 } 3591 } 3592 yyerror (yymsgp); 3593 if (yysyntax_error_status == 2) 3594 goto yyexhaustedlab; 3595 } 3596# undef YYSYNTAX_ERROR 3597#endif 3598 } 3599 3600 3601 3602 if (yyerrstatus == 3) 3603 { 3604 /* If just tried and failed to reuse lookahead token after an 3605 error, discard it. */ 3606 3607 if (yychar <= YYEOF) 3608 { 3609 /* Return failure if at end of input. */ 3610 if (yychar == YYEOF) 3611 YYABORT; 3612 } 3613 else 3614 { 3615 yydestruct ("Error: discarding", 3616 yytoken, &yylval); 3617 yychar = YYEMPTY; 3618 } 3619 } 3620 3621 /* Else will try to reuse lookahead token after shifting the error 3622 token. */ 3623 goto yyerrlab1; 3624 3625 3626/*---------------------------------------------------. 3627| yyerrorlab -- error raised explicitly by YYERROR. | 3628`---------------------------------------------------*/ 3629yyerrorlab: 3630 /* Pacify compilers when the user code never invokes YYERROR and the 3631 label yyerrorlab therefore never appears in user code. */ 3632 if (0) 3633 YYERROR; 3634 3635 /* Do not reclaim the symbols of the rule whose action triggered 3636 this YYERROR. */ 3637 YYPOPSTACK (yylen); 3638 yylen = 0; 3639 YY_STACK_PRINT (yyss, yyssp); 3640 yystate = *yyssp; 3641 goto yyerrlab1; 3642 3643 3644/*-------------------------------------------------------------. 3645| yyerrlab1 -- common code for both syntax error and YYERROR. | 3646`-------------------------------------------------------------*/ 3647yyerrlab1: 3648 yyerrstatus = 3; /* Each real token shifted decrements this. */ 3649 3650 for (;;) 3651 { 3652 yyn = yypact[yystate]; 3653 if (!yypact_value_is_default (yyn)) 3654 { 3655 yyn += YYTERROR; 3656 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) 3657 { 3658 yyn = yytable[yyn]; 3659 if (0 < yyn) 3660 break; 3661 } 3662 } 3663 3664 /* Pop the current state because it cannot handle the error token. */ 3665 if (yyssp == yyss) 3666 YYABORT; 3667 3668 3669 yydestruct ("Error: popping", 3670 yystos[yystate], yyvsp); 3671 YYPOPSTACK (1); 3672 yystate = *yyssp; 3673 YY_STACK_PRINT (yyss, yyssp); 3674 } 3675 3676 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 3677 *++yyvsp = yylval; 3678 YY_IGNORE_MAYBE_UNINITIALIZED_END 3679 3680 3681 /* Shift the error token. */ 3682 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); 3683 3684 yystate = yyn; 3685 goto yynewstate; 3686 3687 3688/*-------------------------------------. 3689| yyacceptlab -- YYACCEPT comes here. | 3690`-------------------------------------*/ 3691yyacceptlab: 3692 yyresult = 0; 3693 goto yyreturn; 3694 3695 3696/*-----------------------------------. 3697| yyabortlab -- YYABORT comes here. | 3698`-----------------------------------*/ 3699yyabortlab: 3700 yyresult = 1; 3701 goto yyreturn; 3702 3703 3704#if !defined yyoverflow || YYERROR_VERBOSE 3705/*-------------------------------------------------. 3706| yyexhaustedlab -- memory exhaustion comes here. | 3707`-------------------------------------------------*/ 3708yyexhaustedlab: 3709 yyerror (YY_("memory exhausted")); 3710 yyresult = 2; 3711 /* Fall through. */ 3712#endif 3713 3714 3715/*-----------------------------------------------------. 3716| yyreturn -- parsing is finished, return the result. | 3717`-----------------------------------------------------*/ 3718yyreturn: 3719 if (yychar != YYEMPTY) 3720 { 3721 /* Make sure we have latest lookahead translation. See comments at 3722 user semantic actions for why this is necessary. */ 3723 yytoken = YYTRANSLATE (yychar); 3724 yydestruct ("Cleanup: discarding lookahead", 3725 yytoken, &yylval); 3726 } 3727 /* Do not reclaim the symbols of the rule whose action triggered 3728 this YYABORT or YYACCEPT. */ 3729 YYPOPSTACK (yylen); 3730 YY_STACK_PRINT (yyss, yyssp); 3731 while (yyssp != yyss) 3732 { 3733 yydestruct ("Cleanup: popping", 3734 yystos[*yyssp], yyvsp); 3735 YYPOPSTACK (1); 3736 } 3737#ifndef yyoverflow 3738 if (yyss != yyssa) 3739 YYSTACK_FREE (yyss); 3740#endif 3741#if YYERROR_VERBOSE 3742 if (yymsg != yymsgbuf) 3743 YYSTACK_FREE (yymsg); 3744#endif 3745 return yyresult; 3746} 3747#line 471 "awkgram.y" 3748 3749 3750void setfname(Cell *p) 3751{ 3752 if (isarr(p)) 3753 SYNTAX("%s is an array, not a function", p->nval); 3754 else if (isfcn(p)) 3755 SYNTAX("you can't define function %s more than once", p->nval); 3756 curfname = p->nval; 3757} 3758 3759int constnode(Node *p) 3760{ 3761 return isvalue(p) && ((Cell *) (p->narg[0]))->csub == CCON; 3762} 3763 3764char *strnode(Node *p) 3765{ 3766 return ((Cell *)(p->narg[0]))->sval; 3767} 3768 3769Node *notnull(Node *n) 3770{ 3771 switch (n->nobj) { 3772 case LE: case LT: case EQ: case NE: case GT: case GE: 3773 case BOR: case AND: case NOT: 3774 return n; 3775 default: 3776 return op2(NE, n, nullnode); 3777 } 3778} 3779 3780void checkdup(Node *vl, Cell *cp) /* check if name already in list */ 3781{ 3782 char *s = cp->nval; 3783 for ( ; vl; vl = vl->nnext) { 3784 if (strcmp(s, ((Cell *)(vl->narg[0]))->nval) == 0) { 3785 SYNTAX("duplicate argument %s", s); 3786 break; 3787 } 3788 } 3789} 3790