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