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