mrrl

Minimal Reliable Reproducible Linux
git clone https://ccx.te2000.cz/git/mrrl
Log | Files | Refs | Submodules | README

nawk-20250116-awkgram.tab.c (160037B)


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