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