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