File:  [local] / rpl / rplawk / y.tab.c
Revision 1.3: download - view: text, annotated - select for diffs - revision graph
Mon Oct 10 16:39:00 2011 UTC (12 years, 6 months ago) by bertrand
Branches: MAIN
CVS tags: rpl-4_1_9, rpl-4_1_8, rpl-4_1_7, rpl-4_1_6, rpl-4_1_5, rpl-4_1_4, rpl-4_1_25, rpl-4_1_24, rpl-4_1_23, rpl-4_1_22, rpl-4_1_21, rpl-4_1_20, rpl-4_1_19, rpl-4_1_18, rpl-4_1_17, rpl-4_1_16, rpl-4_1_15, rpl-4_1_14, rpl-4_1_13, rpl-4_1_12, rpl-4_1_11, rpl-4_1_10, HEAD
Cohérence.

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

CVSweb interface <joel.bertrand@systella.fr>