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