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