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