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