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