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