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