Annotation of rpl/rplawk/y.tab.c, revision 1.4

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

CVSweb interface <joel.bertrand@systella.fr>