blob: fb3815552685d78452033fb6abf604f061c459ed [file] [log] [blame]
Haibo Huang69b38a72020-02-07 20:33:46 -08001/* A Bison parser, made by GNU Bison 3.4.1. */
Elliott Hughes52487fa2019-03-15 03:28:55 +00002
3/* Bison implementation for Yacc-like parsers in C
4
Haibo Huang69b38a72020-02-07 20:33:46 -08005 Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation,
6 Inc.
Elliott Hughes52487fa2019-03-15 03:28:55 +00007
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
Haibo Huang0687bec2019-09-06 17:32:25 -070044/* Undocumented macros, especially those whose name start with YY_,
45 are private implementation details. Do not rely on them. */
46
Elliott Hughes52487fa2019-03-15 03:28:55 +000047/* Identify Bison output. */
48#define YYBISON 1
49
50/* Bison version. */
Haibo Huang69b38a72020-02-07 20:33:46 -080051#define YYBISON_VERSION "3.4.1"
Elliott Hughes52487fa2019-03-15 03:28:55 +000052
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
Haibo Huang0687bec2019-09-06 17:32:25 -070068/* First part of user prologue. */
Haibo Huang69b38a72020-02-07 20:33:46 -080069#line 25 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +000070
71#include <stdio.h>
72#include <string.h>
73#include "awk.h"
74
75void checkdup(Node *list, Cell *item);
76int yywrap(void) { return(1); }
77
78Node *beginloc = 0;
79Node *endloc = 0;
Haibo Huang69b38a72020-02-07 20:33:46 -080080bool infunc = false; /* = true if in arglist or body of func */
81int inloop = 0; /* >= 1 if in while, for, do; can't be bool, since loops can next */
Elliott Hughes52487fa2019-03-15 03:28:55 +000082char *curfname = 0; /* current function name */
83Node *arglist = 0; /* list of args for current function */
84
Haibo Huang69b38a72020-02-07 20:33:46 -080085#line 86 "y.tab.c"
86
Elliott Hughes52487fa2019-03-15 03:28:55 +000087# ifndef YY_NULLPTR
Haibo Huang0687bec2019-09-06 17:32:25 -070088# if defined __cplusplus
89# if 201103L <= __cplusplus
90# define YY_NULLPTR nullptr
91# else
92# define YY_NULLPTR 0
93# endif
Elliott Hughes52487fa2019-03-15 03:28:55 +000094# else
Haibo Huang0687bec2019-09-06 17:32:25 -070095# define YY_NULLPTR ((void*)0)
Elliott Hughes52487fa2019-03-15 03:28:55 +000096# 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
Haibo Huang69b38a72020-02-07 20:33:46 -0800107/* 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
Elliott Hughes52487fa2019-03-15 03:28:55 +0000111/* Debug traces. */
112#ifndef YYDEBUG
113# define YYDEBUG 0
114#endif
115#if YYDEBUG
116extern 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,
Haibo Huang69b38a72020-02-07 20:33:46 -0800146 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
Elliott Hughes52487fa2019-03-15 03:28:55 +0000219 };
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
Haibo Huang69b38a72020-02-07 20:33:46 -0800244#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
Elliott Hughes52487fa2019-03-15 03:28:55 +0000317
318/* Value type. */
319#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
Elliott Hughes52487fa2019-03-15 03:28:55 +0000320union YYSTYPE
321{
Haibo Huang69b38a72020-02-07 20:33:46 -0800322#line 41 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +0000323
324 Node *p;
325 Cell *cp;
326 int i;
327 char *s;
328
Haibo Huang69b38a72020-02-07 20:33:46 -0800329#line 330 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +0000330
Haibo Huang69b38a72020-02-07 20:33:46 -0800331};
Elliott Hughes52487fa2019-03-15 03:28:55 +0000332typedef union YYSTYPE YYSTYPE;
333# define YYSTYPE_IS_TRIVIAL 1
334# define YYSTYPE_IS_DECLARED 1
335#endif
336
337
338extern YYSTYPE yylval;
339
340int yyparse (void);
341
Haibo Huang69b38a72020-02-07 20:33:46 -0800342#endif /* !YY_YY_Y_TAB_H_INCLUDED */
Elliott Hughes52487fa2019-03-15 03:28:55 +0000343
Elliott Hughes52487fa2019-03-15 03:28:55 +0000344
Elliott Hughes52487fa2019-03-15 03:28:55 +0000345
346#ifdef short
347# undef short
348#endif
349
350#ifdef YYTYPE_UINT8
351typedef YYTYPE_UINT8 yytype_uint8;
352#else
353typedef unsigned char yytype_uint8;
354#endif
355
356#ifdef YYTYPE_INT8
357typedef YYTYPE_INT8 yytype_int8;
358#else
359typedef signed char yytype_int8;
360#endif
361
362#ifdef YYTYPE_UINT16
363typedef YYTYPE_UINT16 yytype_uint16;
364#else
Haibo Huang0687bec2019-09-06 17:32:25 -0700365typedef unsigned short yytype_uint16;
Elliott Hughes52487fa2019-03-15 03:28:55 +0000366#endif
367
368#ifdef YYTYPE_INT16
369typedef YYTYPE_INT16 yytype_int16;
370#else
Haibo Huang0687bec2019-09-06 17:32:25 -0700371typedef short yytype_int16;
Elliott Hughes52487fa2019-03-15 03:28:55 +0000372#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
Haibo Huang0687bec2019-09-06 17:32:25 -0700383# define YYSIZE_T unsigned
Elliott Hughes52487fa2019-03-15 03:28:55 +0000384# 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
Elliott Hughes52487fa2019-03-15 03:28:55 +0000419/* 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
Haibo Huang0687bec2019-09-06 17:32:25 -0700426#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
Elliott Hughes52487fa2019-03-15 03:28:55 +0000427/* 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
Haibo Huang69b38a72020-02-07 20:33:46 -0800446#define YY_ASSERT(E) ((void) (0 && (E)))
447
Elliott Hughes52487fa2019-03-15 03:28:55 +0000448#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
503void *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
509void 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. */
521union 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. */
Haibo Huang69b38a72020-02-07 20:33:46 -0800579#define YYLAST 4608
Elliott Hughes52487fa2019-03-15 03:28:55 +0000580
581/* YYNTOKENS -- Number of terminals. */
Haibo Huang69b38a72020-02-07 20:33:46 -0800582#define YYNTOKENS 114
Elliott Hughes52487fa2019-03-15 03:28:55 +0000583/* YYNNTS -- Number of nonterminals. */
Haibo Huang0687bec2019-09-06 17:32:25 -0700584#define YYNNTS 50
Elliott Hughes52487fa2019-03-15 03:28:55 +0000585/* YYNRULES -- Number of rules. */
Haibo Huang0687bec2019-09-06 17:32:25 -0700586#define YYNRULES 187
Elliott Hughes52487fa2019-03-15 03:28:55 +0000587/* YYNSTATES -- Number of states. */
Haibo Huang0687bec2019-09-06 17:32:25 -0700588#define YYNSTATES 370
Elliott Hughes52487fa2019-03-15 03:28:55 +0000589
Elliott Hughes52487fa2019-03-15 03:28:55 +0000590#define YYUNDEFTOK 2
Haibo Huang69b38a72020-02-07 20:33:46 -0800591#define YYMAXUTOK 352
Elliott Hughes52487fa2019-03-15 03:28:55 +0000592
Haibo Huang69b38a72020-02-07 20:33:46 -0800593/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
594 as returned by yylex, with out-of-bounds checking. */
Elliott Hughes52487fa2019-03-15 03:28:55 +0000595#define YYTRANSLATE(YYX) \
Haibo Huang0687bec2019-09-06 17:32:25 -0700596 ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
Elliott Hughes52487fa2019-03-15 03:28:55 +0000597
598/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
Haibo Huang69b38a72020-02-07 20:33:46 -0800599 as returned by yylex. */
Elliott Hughes52487fa2019-03-15 03:28:55 +0000600static 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,
Haibo Huang69b38a72020-02-07 20:33:46 -0800605 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,
Elliott Hughes52487fa2019-03-15 03:28:55 +0000609 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,
Haibo Huang69b38a72020-02-07 20:33:46 -0800635 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
Elliott Hughes52487fa2019-03-15 03:28:55 +0000638};
639
640#if YYDEBUG
641 /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
642static const yytype_uint16 yyrline[] =
643{
Haibo Huang0687bec2019-09-06 17:32:25 -0700644 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
Elliott Hughes52487fa2019-03-15 03:28:55 +0000663};
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. */
669static 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",
Haibo Huang69b38a72020-02-07 20:33:46 -0800675 "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",
Elliott Hughes52487fa2019-03-15 03:28:55 +0000690 "simple_stmt", "st", "stmt", "$@6", "$@7", "$@8", "stmtlist", "subop",
Haibo Huang0687bec2019-09-06 17:32:25 -0700691 "string", "term", "var", "varlist", "varname", "while", YY_NULLPTR
Elliott Hughes52487fa2019-03-15 03:28:55 +0000692};
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). */
698static 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,
Haibo Huang69b38a72020-02-07 20:33:46 -0800709 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
Elliott Hughes52487fa2019-03-15 03:28:55 +0000712};
713# endif
714
Haibo Huang69b38a72020-02-07 20:33:46 -0800715#define YYPACT_NINF -316
Elliott Hughes52487fa2019-03-15 03:28:55 +0000716
717#define yypact_value_is_default(Yystate) \
Haibo Huang69b38a72020-02-07 20:33:46 -0800718 (!!((Yystate) == (-316)))
Elliott Hughes52487fa2019-03-15 03:28:55 +0000719
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. */
727static const yytype_int16 yypact[] =
728{
Haibo Huang69b38a72020-02-07 20:33:46 -0800729 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
Elliott Hughes52487fa2019-03-15 03:28:55 +0000766};
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. */
771static const yytype_uint8 yydefact[] =
772{
773 0, 3, 88, 89, 0, 33, 2, 30, 1, 0,
Haibo Huang0687bec2019-09-06 17:32:25 -0700774 0, 23, 0, 96, 185, 147, 0, 0, 131, 132,
775 0, 0, 0, 184, 179, 186, 0, 164, 133, 158,
Elliott Hughes52487fa2019-03-15 03:28:55 +0000776 0, 0, 0, 0, 0, 0, 0, 0, 0, 36,
Haibo Huang0687bec2019-09-06 17:32:25 -0700777 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
Elliott Hughes52487fa2019-03-15 03:28:55 +0000810};
811
812 /* YYPGOTO[NTERM-NUM]. */
813static const yytype_int16 yypgoto[] =
814{
Haibo Huang69b38a72020-02-07 20:33:46 -0800815 -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
Elliott Hughes52487fa2019-03-15 03:28:55 +0000820};
821
822 /* YYDEFGOTO[NTERM-NUM]. */
823static const yytype_int16 yydefgoto[] =
824{
Haibo Huang0687bec2019-09-06 17:32:25 -0700825 -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
Elliott Hughes52487fa2019-03-15 03:28:55 +0000830};
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. */
835static const yytype_int16 yytable[] =
836{
Haibo Huang69b38a72020-02-07 20:33:46 -0800837 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,
Haibo Huang0687bec2019-09-06 17:32:25 -0700855 61, 61, 61, 61, 61, 61, 259, 61, 165, 61,
Haibo Huang69b38a72020-02-07 20:33:46 -0800856 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,
Haibo Huang0687bec2019-09-06 17:32:25 -0700864 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,
Haibo Huang69b38a72020-02-07 20:33:46 -0800867 256, 0, 0, 0, 256, 154, 0, 14, 334, 348,
Haibo Huang0687bec2019-09-06 17:32:25 -0700868 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,
Haibo Huang69b38a72020-02-07 20:33:46 -0800871 0, 257, 0, 256, 257, 257, 257, 257, 23, 24,
872 25, 257, 0, 0, 0, 0, 0, 297, 0, 0,
Haibo Huang0687bec2019-09-06 17:32:25 -0700873 0, 0, 211, 212, 213, 214, 215, 216, 0, 0,
Haibo Huang69b38a72020-02-07 20:33:46 -0800874 0, 0, 0, 37, 0, 0, 0, 0, 0, 0,
Haibo Huang0687bec2019-09-06 17:32:25 -0700875 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,
Elliott Hughes52487fa2019-03-15 03:28:55 +0000887 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
Haibo Huang0687bec2019-09-06 17:32:25 -0700888 123, 0, 0, 0, 123, 0, 123, 188, 188, 123,
Elliott Hughes52487fa2019-03-15 03:28:55 +0000889 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
Haibo Huang0687bec2019-09-06 17:32:25 -0700890 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,
Haibo Huang69b38a72020-02-07 20:33:46 -0800900 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,
Haibo Huang0687bec2019-09-06 17:32:25 -0700903 0, 54, 0, 0, 0, 0, 0, 0, 0, 0,
904 0, 0, 42, 0, 0, 0, 0, 0, 0, 0,
Haibo Huang69b38a72020-02-07 20:33:46 -0800905 0, -29, -29, 0, -29, 0, 0, 0, 0, 0,
906 -29, -29, -29, 0, -29, 0, -29, 0, 0, 0,
Haibo Huang0687bec2019-09-06 17:32:25 -0700907 0, 0, 0, 0, 0, 0, 0, 0, 0, 274,
Haibo Huang69b38a72020-02-07 20:33:46 -0800908 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,
Haibo Huang0687bec2019-09-06 17:32:25 -0700912 307, 308, 309, 0, 0, 0, 0, 0, 0, 0,
Haibo Huang0687bec2019-09-06 17:32:25 -0700913 0, 0, 0, 0, 80, 0, 0, 0, 0, 0,
Haibo Huang69b38a72020-02-07 20:33:46 -0800914 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,
Haibo Huang0687bec2019-09-06 17:32:25 -0700925 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,
Haibo Huang69b38a72020-02-07 20:33:46 -0800931 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,
Haibo Huang0687bec2019-09-06 17:32:25 -0700939 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,
Haibo Huang69b38a72020-02-07 20:33:46 -0800942 11, 12, 0, 82, 13, 0, 250, 23, 24, 25,
Haibo Huang0687bec2019-09-06 17:32:25 -0700943 26, 27, 28, 0, 0, 0, 29, 94, 30, 31,
944 95, 0, 32, 33, 0, 0, 34, 0, 0, 0,
Haibo Huang69b38a72020-02-07 20:33:46 -0800945 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,
Haibo Huang0687bec2019-09-06 17:32:25 -0700967 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,
Haibo Huang69b38a72020-02-07 20:33:46 -0800970 0, 82, 13, 0, 358, 23, 24, 25, 26, 27,
Haibo Huang0687bec2019-09-06 17:32:25 -0700971 28, 0, 0, 0, 29, 94, 30, 31, 95, 0,
972 32, 33, 0, 0, 34, 0, 0, 0, 35, 36,
Haibo Huang69b38a72020-02-07 20:33:46 -0800973 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,
Haibo Huang0687bec2019-09-06 17:32:25 -0700981 88, 0, 18, 19, 89, 20, 0, 21, 90, 91,
Haibo Huang69b38a72020-02-07 20:33:46 -0800982 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,
Haibo Huang0687bec2019-09-06 17:32:25 -0700985 0, 0, 29, 94, 30, 31, 95, 0, 32, 33,
986 0, 0, 34, 0, 0, 0, 35, 36, 37, 0,
Haibo Huang69b38a72020-02-07 20:33:46 -0800987 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,
Haibo Huang0687bec2019-09-06 17:32:25 -0700993 34, 0, 0, 0, 35, 36, 37, 0, 14, 15,
Haibo Huang69b38a72020-02-07 20:33:46 -0800994 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,
Elliott Hughes52487fa2019-03-15 03:28:55 +0000998 24, 25, 26, 27, 28, 0, 0, 0, 29, 0,
Haibo Huang0687bec2019-09-06 17:32:25 -0700999 30, 31, 0, 0, 32, 33, 14, 15, 34, 16,
Haibo Huang69b38a72020-02-07 20:33:46 -08001000 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,
Haibo Huang0687bec2019-09-06 17:32:25 -07001003 0, 0, 0, 0, 0, 0, 0, 23, 24, 25,
1004 26, 27, 28, 0, 0, 0, 29, 0, 30, 31,
Haibo Huang69b38a72020-02-07 20:33:46 -08001005 0, 0, 32, 33, 158, 0, 34, 58, 109, 161,
1006 35, 36, 37, 0, 0, 0, 0, 0, 110, 0,
Haibo Huang0687bec2019-09-06 17:32:25 -07001007 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
Haibo Huang69b38a72020-02-07 20:33:46 -08001008 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,
Haibo Huang0687bec2019-09-06 17:32:25 -07001058 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,
Haibo Huang69b38a72020-02-07 20:33:46 -08001069 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,
Haibo Huang0687bec2019-09-06 17:32:25 -07001072 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
Haibo Huang69b38a72020-02-07 20:33:46 -08001073 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,
Haibo Huang0687bec2019-09-06 17:32:25 -07001079 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,
Elliott Hughes52487fa2019-03-15 03:28:55 +00001082 0, 21, 0, 0, 0, 0, 0, 0, 0, 0,
1083 0, 0, 0, 0, 0, 0, 0, 0, 0, 22,
Haibo Huang0687bec2019-09-06 17:32:25 -07001084 0, 0, 0, 0, 0, 0, 0, 23, 24, 25,
1085 26, 27, 28, 0, 120, 0, 29, 0, 30, 31,
Haibo Huang69b38a72020-02-07 20:33:46 -08001086 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,
Haibo Huang0687bec2019-09-06 17:32:25 -07001126 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,
Haibo Huang69b38a72020-02-07 20:33:46 -08001134 59, 0, 313, 0, 35, 36, 37, 0, 0, 110,
Haibo Huang0687bec2019-09-06 17:32:25 -07001135 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
Haibo Huang0687bec2019-09-06 17:32:25 -07001136 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,
Haibo Huang69b38a72020-02-07 20:33:46 -08001142 120, 0, 29, 0, 30, 31, 0, 0, 32, 33,
1143 58, 109, 59, 0, 315, 0, 35, 36, 37, 0,
Haibo Huang0687bec2019-09-06 17:32:25 -07001144 0, 110, 0, 0, 0, 0, 0, 0, 0, 0,
Haibo Huang0687bec2019-09-06 17:32:25 -07001145 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,
Haibo Huang69b38a72020-02-07 20:33:46 -08001152 32, 33, 58, 109, 59, 0, 349, 0, 35, 36,
Haibo Huang0687bec2019-09-06 17:32:25 -07001153 37, 0, 0, 110, 0, 0, 0, 0, 0, 0,
Haibo Huang0687bec2019-09-06 17:32:25 -07001154 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,
Haibo Huang69b38a72020-02-07 20:33:46 -08001163 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,
Haibo Huang0687bec2019-09-06 17:32:25 -07001167 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
Haibo Huang69b38a72020-02-07 20:33:46 -08001168 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,
Haibo Huang0687bec2019-09-06 17:32:25 -07001172 110, 0, 0, 0, 0, 0, 0, 0, 0, 0,
Haibo Huang0687bec2019-09-06 17:32:25 -07001173 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,
Haibo Huang69b38a72020-02-07 20:33:46 -08001180 33, 58, 109, 59, 0, 362, 0, 35, 36, 37,
Haibo Huang0687bec2019-09-06 17:32:25 -07001181 0, 0, 110, 0, 0, 0, 0, 0, 0, 0,
Haibo Huang69b38a72020-02-07 20:33:46 -08001182 0, 0, 0, 0, 0, 111, 112, 0, 113, 114,
1183 115, 116, 117, 118, 119, 14, 15, 0, 16, 0,
Haibo Huang0687bec2019-09-06 17:32:25 -07001184 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,
Haibo Huang69b38a72020-02-07 20:33:46 -08001188 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,
Haibo Huang0687bec2019-09-06 17:32:25 -07001263 0, 0, 0, 0, 0, 23, 24, 25, 26, 27,
Haibo Huang69b38a72020-02-07 20:33:46 -08001264 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,
Haibo Huang0687bec2019-09-06 17:32:25 -07001268 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,
Haibo Huang69b38a72020-02-07 20:33:46 -08001271 18, 19, 0, 20, 58, 21, 0, 0, 0, 0,
Haibo Huang0687bec2019-09-06 17:32:25 -07001272 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
Haibo Huang69b38a72020-02-07 20:33:46 -08001273 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,
Haibo Huang0687bec2019-09-06 17:32:25 -07001285 0, 0, 0, 0, 0, 0, 0, 23, 24, 25,
Haibo Huang69b38a72020-02-07 20:33:46 -08001286 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
Elliott Hughes52487fa2019-03-15 03:28:55 +00001298};
1299
1300static const yytype_int16 yycheck[] =
1301{
Haibo Huang69b38a72020-02-07 20:33:46 -08001302 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,
Haibo Huang0687bec2019-09-06 17:32:25 -07001320 196, 197, 198, 199, 200, 201, 181, 203, 85, 205,
Haibo Huang69b38a72020-02-07 20:33:46 -08001321 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,
Haibo Huang0687bec2019-09-06 17:32:25 -07001329 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,
Haibo Huang69b38a72020-02-07 20:33:46 -08001332 301, -1, -1, -1, 305, 69, -1, 46, 312, 334,
Haibo Huang0687bec2019-09-06 17:32:25 -07001333 -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,
Haibo Huang69b38a72020-02-07 20:33:46 -08001336 -1, 295, -1, 344, 298, 299, 300, 301, 87, 88,
1337 89, 305, -1, -1, -1, -1, -1, 254, -1, -1,
Haibo Huang0687bec2019-09-06 17:32:25 -07001338 -1, -1, 126, 127, 128, 129, 130, 131, -1, -1,
Haibo Huang69b38a72020-02-07 20:33:46 -08001339 -1, -1, -1, 112, -1, -1, -1, -1, -1, -1,
Haibo Huang0687bec2019-09-06 17:32:25 -07001340 -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,
Elliott Hughes52487fa2019-03-15 03:28:55 +00001352 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
Haibo Huang0687bec2019-09-06 17:32:25 -07001353 274, -1, -1, -1, 278, -1, 280, 136, 137, 283,
Elliott Hughes52487fa2019-03-15 03:28:55 +00001354 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
Haibo Huang0687bec2019-09-06 17:32:25 -07001355 -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,
Haibo Huang69b38a72020-02-07 20:33:46 -08001365 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,
Haibo Huang0687bec2019-09-06 17:32:25 -07001368 -1, 179, -1, -1, -1, -1, -1, -1, -1, -1,
1369 -1, -1, 190, -1, -1, -1, -1, -1, -1, -1,
Haibo Huang69b38a72020-02-07 20:33:46 -08001370 -1, 46, 47, -1, 49, -1, -1, -1, -1, -1,
1371 55, 56, 57, -1, 59, -1, 61, -1, -1, -1,
Haibo Huang0687bec2019-09-06 17:32:25 -07001372 -1, -1, -1, -1, -1, -1, -1, -1, -1, 227,
Haibo Huang69b38a72020-02-07 20:33:46 -08001373 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,
Haibo Huang0687bec2019-09-06 17:32:25 -07001377 268, 269, 270, -1, -1, -1, -1, -1, -1, -1,
Haibo Huang0687bec2019-09-06 17:32:25 -07001378 -1, -1, -1, -1, 1, -1, -1, -1, -1, -1,
Haibo Huang69b38a72020-02-07 20:33:46 -08001379 -1, -1, 9, -1, 11, 12, 294, 14, 15, -1,
Elliott Hughes52487fa2019-03-15 03:28:55 +00001380 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
Haibo Huang69b38a72020-02-07 20:33:46 -08001381 -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,
Haibo Huang0687bec2019-09-06 17:32:25 -07001482 9, -1, -1, 12, -1, -1, 15, -1, -1, -1,
Haibo Huang69b38a72020-02-07 20:33:46 -08001483 -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,
Haibo Huang0687bec2019-09-06 17:32:25 -07001499 -1, -1, -1, -1, 9, -1, -1, 12, -1, -1,
Haibo Huang69b38a72020-02-07 20:33:46 -08001500 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,
Haibo Huang0687bec2019-09-06 17:32:25 -07001505 -1, -1, 9, -1, -1, 12, -1, -1, 15, -1,
Haibo Huang69b38a72020-02-07 20:33:46 -08001506 -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,
Elliott Hughes52487fa2019-03-15 03:28:55 +00001517 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
Haibo Huang69b38a72020-02-07 20:33:46 -08001518 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,
Haibo Huang0687bec2019-09-06 17:32:25 -07001523 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
Haibo Huang69b38a72020-02-07 20:33:46 -08001524 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,
Haibo Huang0687bec2019-09-06 17:32:25 -07001527 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
Haibo Huang69b38a72020-02-07 20:33:46 -08001528 -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,
Haibo Huang0687bec2019-09-06 17:32:25 -07001532 13, -1, -1, 16, -1, -1, -1, -1, -1, -1,
1533 23, -1, -1, -1, -1, -1, -1, -1, -1, -1,
Haibo Huang69b38a72020-02-07 20:33:46 -08001534 -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,
Haibo Huang0687bec2019-09-06 17:32:25 -07001537 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
Haibo Huang69b38a72020-02-07 20:33:46 -08001538 -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,
Haibo Huang0687bec2019-09-06 17:32:25 -07001558 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
Haibo Huang69b38a72020-02-07 20:33:46 -08001559 -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,
Elliott Hughes52487fa2019-03-15 03:28:55 +00001563 -1, 23, -1, -1, -1, -1, -1, -1, -1, -1,
Haibo Huang69b38a72020-02-07 20:33:46 -08001564 -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,
Elliott Hughes52487fa2019-03-15 03:28:55 +00001567 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
Haibo Huang69b38a72020-02-07 20:33:46 -08001568 -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,
Elliott Hughes52487fa2019-03-15 03:28:55 +00001586 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
Haibo Huang69b38a72020-02-07 20:33:46 -08001587 -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,
Elliott Hughes52487fa2019-03-15 03:28:55 +00001591 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
Haibo Huang69b38a72020-02-07 20:33:46 -08001592 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,
Elliott Hughes52487fa2019-03-15 03:28:55 +00001595 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
Haibo Huang69b38a72020-02-07 20:33:46 -08001596 -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,
Elliott Hughes52487fa2019-03-15 03:28:55 +00001600 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
Haibo Huang69b38a72020-02-07 20:33:46 -08001601 -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,
Elliott Hughes52487fa2019-03-15 03:28:55 +00001604 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
Haibo Huang69b38a72020-02-07 20:33:46 -08001605 -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,
Haibo Huang0687bec2019-09-06 17:32:25 -07001609 -1, 23, -1, -1, -1, -1, -1, -1, -1, -1,
Haibo Huang69b38a72020-02-07 20:33:46 -08001610 -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,
Elliott Hughes52487fa2019-03-15 03:28:55 +00001613 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
Haibo Huang69b38a72020-02-07 20:33:46 -08001614 -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,
Haibo Huang0687bec2019-09-06 17:32:25 -07001646 -1, -1, 23, -1, -1, -1, -1, -1, -1, -1,
Haibo Huang69b38a72020-02-07 20:33:46 -08001647 -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,
Haibo Huang0687bec2019-09-06 17:32:25 -07001660 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
Haibo Huang69b38a72020-02-07 20:33:46 -08001661 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,
Haibo Huang0687bec2019-09-06 17:32:25 -07001669 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
Haibo Huang69b38a72020-02-07 20:33:46 -08001670 -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,
Haibo Huang0687bec2019-09-06 17:32:25 -07001677 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
Haibo Huang69b38a72020-02-07 20:33:46 -08001678 -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,
Haibo Huang0687bec2019-09-06 17:32:25 -07001690 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
Haibo Huang69b38a72020-02-07 20:33:46 -08001691 -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,
Haibo Huang0687bec2019-09-06 17:32:25 -07001698 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
Haibo Huang69b38a72020-02-07 20:33:46 -08001699 -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
Elliott Hughes52487fa2019-03-15 03:28:55 +00001763};
1764
1765 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1766 symbol of state STATE-NUM. */
1767static const yytype_uint8 yystos[] =
1768{
Haibo Huang69b38a72020-02-07 20:33:46 -08001769 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
Elliott Hughes52487fa2019-03-15 03:28:55 +00001806};
1807
1808 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
1809static const yytype_uint8 yyr1[] =
1810{
Haibo Huang69b38a72020-02-07 20:33:46 -08001811 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,
Elliott Hughes52487fa2019-03-15 03:28:55 +00001816 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
Haibo Huang69b38a72020-02-07 20:33:46 -08001817 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
Elliott Hughes52487fa2019-03-15 03:28:55 +00001830};
1831
1832 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
1833static 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,
Haibo Huang0687bec2019-09-06 17:32:25 -07001848 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
Elliott Hughes52487fa2019-03-15 03:28:55 +00001854};
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
Haibo Huang69b38a72020-02-07 20:33:46 -08001869#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)
Elliott Hughes52487fa2019-03-15 03:28:55 +00001885
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) \
1901do { \
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) \
1913do { \
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
Haibo Huang0687bec2019-09-06 17:32:25 -07001924/*-----------------------------------.
1925| Print this symbol's value on YYO. |
1926`-----------------------------------*/
Elliott Hughes52487fa2019-03-15 03:28:55 +00001927
1928static void
Haibo Huang0687bec2019-09-06 17:32:25 -07001929yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep)
Elliott Hughes52487fa2019-03-15 03:28:55 +00001930{
Haibo Huang0687bec2019-09-06 17:32:25 -07001931 FILE *yyoutput = yyo;
1932 YYUSE (yyoutput);
Elliott Hughes52487fa2019-03-15 03:28:55 +00001933 if (!yyvaluep)
1934 return;
1935# ifdef YYPRINT
1936 if (yytype < YYNTOKENS)
Haibo Huang0687bec2019-09-06 17:32:25 -07001937 YYPRINT (yyo, yytoknum[yytype], *yyvaluep);
Elliott Hughes52487fa2019-03-15 03:28:55 +00001938# endif
1939 YYUSE (yytype);
1940}
1941
1942
Haibo Huang0687bec2019-09-06 17:32:25 -07001943/*---------------------------.
1944| Print this symbol on YYO. |
1945`---------------------------*/
Elliott Hughes52487fa2019-03-15 03:28:55 +00001946
1947static void
Haibo Huang0687bec2019-09-06 17:32:25 -07001948yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep)
Elliott Hughes52487fa2019-03-15 03:28:55 +00001949{
Haibo Huang0687bec2019-09-06 17:32:25 -07001950 YYFPRINTF (yyo, "%s %s (",
Elliott Hughes52487fa2019-03-15 03:28:55 +00001951 yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
1952
Haibo Huang0687bec2019-09-06 17:32:25 -07001953 yy_symbol_value_print (yyo, yytype, yyvaluep);
1954 YYFPRINTF (yyo, ")");
Elliott Hughes52487fa2019-03-15 03:28:55 +00001955}
1956
1957/*------------------------------------------------------------------.
1958| yy_stack_print -- Print the state stack from its BOTTOM up to its |
1959| TOP (included). |
1960`------------------------------------------------------------------*/
1961
1962static void
1963yy_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) \
1975do { \
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
1985static void
1986yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
1987{
Haibo Huang0687bec2019-09-06 17:32:25 -07001988 unsigned long yylno = yyrline[yyrule];
Elliott Hughes52487fa2019-03-15 03:28:55 +00001989 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]],
Haibo Huang69b38a72020-02-07 20:33:46 -08001999 &yyvsp[(yyi + 1) - (yynrhs)]
Elliott Hughes52487fa2019-03-15 03:28:55 +00002000 );
2001 YYFPRINTF (stderr, "\n");
2002 }
2003}
2004
2005# define YY_REDUCE_PRINT(Rule) \
2006do { \
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. */
2013int 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. */
2046static YYSIZE_T
2047yystrlen (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. */
2063static char *
2064yystpcpy (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. */
2085static YYSIZE_T
2086yytnamerr (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;
Haibo Huang69b38a72020-02-07 20:33:46 -08002103 else
2104 goto append;
2105
2106 append:
Elliott Hughes52487fa2019-03-15 03:28:55 +00002107 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
Haibo Huang0687bec2019-09-06 17:32:25 -07002124 return (YYSIZE_T) (yystpcpy (yyres, yystr) - yyres);
Elliott Hughes52487fa2019-03-15 03:28:55 +00002125}
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. */
2136static int
2137yysyntax_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]);
Haibo Huang69b38a72020-02-07 20:33:46 -08002202 if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
2203 yysize = yysize1;
2204 else
Elliott Hughes52487fa2019-03-15 03:28:55 +00002205 return 2;
Elliott Hughes52487fa2019-03-15 03:28:55 +00002206 }
2207 }
2208 }
2209 }
2210
2211 switch (yycount)
2212 {
2213# define YYCASE_(N, S) \
2214 case N: \
2215 yyformat = S; \
2216 break
Haibo Huang0687bec2019-09-06 17:32:25 -07002217 default: /* Avoid compiler warnings. */
Elliott Hughes52487fa2019-03-15 03:28:55 +00002218 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);
Haibo Huang69b38a72020-02-07 20:33:46 -08002229 if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
2230 yysize = yysize1;
2231 else
Elliott Hughes52487fa2019-03-15 03:28:55 +00002232 return 2;
Elliott Hughes52487fa2019-03-15 03:28:55 +00002233 }
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
2270static void
2271yydestruct (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. */
2287int yychar;
2288
2289/* The semantic value of the lookahead symbol. */
2290YYSTYPE yylval;
2291/* Number of syntax errors so far. */
2292int yynerrs;
2293
2294
2295/*----------.
2296| yyparse. |
2297`----------*/
2298
2299int
2300yyparse (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
Haibo Huang69b38a72020-02-07 20:33:46 -08002358
Elliott Hughes52487fa2019-03-15 03:28:55 +00002359/*------------------------------------------------------------.
Haibo Huang69b38a72020-02-07 20:33:46 -08002360| yynewstate -- push a new state, which is found in yystate. |
Elliott Hughes52487fa2019-03-15 03:28:55 +00002361`------------------------------------------------------------*/
Haibo Huang69b38a72020-02-07 20:33:46 -08002362yynewstate:
Elliott Hughes52487fa2019-03-15 03:28:55 +00002363 /* 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
Haibo Huang69b38a72020-02-07 20:33:46 -08002367
2368/*--------------------------------------------------------------------.
2369| yynewstate -- set current state (the top of the stack) to yystate. |
2370`--------------------------------------------------------------------*/
2371yysetstate:
2372 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
2373 YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
Haibo Huang0687bec2019-09-06 17:32:25 -07002374 *yyssp = (yytype_int16) yystate;
Elliott Hughes52487fa2019-03-15 03:28:55 +00002375
2376 if (yyss + yystacksize - 1 <= yyssp)
Haibo Huang69b38a72020-02-07 20:33:46 -08002377#if !defined yyoverflow && !defined YYSTACK_RELOCATE
2378 goto yyexhaustedlab;
2379#else
Elliott Hughes52487fa2019-03-15 03:28:55 +00002380 {
2381 /* Get the current used size of the three stacks, in elements. */
Haibo Huang0687bec2019-09-06 17:32:25 -07002382 YYSIZE_T yysize = (YYSIZE_T) (yyssp - yyss + 1);
Elliott Hughes52487fa2019-03-15 03:28:55 +00002383
Haibo Huang69b38a72020-02-07 20:33:46 -08002384# if defined yyoverflow
Elliott Hughes52487fa2019-03-15 03:28:55 +00002385 {
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);
Elliott Hughes52487fa2019-03-15 03:28:55 +00002400 yyss = yyss1;
2401 yyvs = yyvs1;
2402 }
Haibo Huang69b38a72020-02-07 20:33:46 -08002403# else /* defined YYSTACK_RELOCATE */
Elliott Hughes52487fa2019-03-15 03:28:55 +00002404 /* 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);
Haibo Huang69b38a72020-02-07 20:33:46 -08002419# undef YYSTACK_RELOCATE
Elliott Hughes52487fa2019-03-15 03:28:55 +00002420 if (yyss1 != yyssa)
2421 YYSTACK_FREE (yyss1);
2422 }
2423# endif
Elliott Hughes52487fa2019-03-15 03:28:55 +00002424
2425 yyssp = yyss + yysize - 1;
2426 yyvsp = yyvs + yysize - 1;
2427
2428 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
Haibo Huang0687bec2019-09-06 17:32:25 -07002429 (unsigned long) yystacksize));
Elliott Hughes52487fa2019-03-15 03:28:55 +00002430
2431 if (yyss + yystacksize - 1 <= yyssp)
2432 YYABORT;
2433 }
Haibo Huang69b38a72020-02-07 20:33:46 -08002434#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
Elliott Hughes52487fa2019-03-15 03:28:55 +00002435
2436 if (yystate == YYFINAL)
2437 YYACCEPT;
2438
2439 goto yybackup;
2440
Haibo Huang69b38a72020-02-07 20:33:46 -08002441
Elliott Hughes52487fa2019-03-15 03:28:55 +00002442/*-----------.
2443| yybackup. |
2444`-----------*/
2445yybackup:
Elliott Hughes52487fa2019-03-15 03:28:55 +00002446 /* 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
Elliott Hughes52487fa2019-03-15 03:28:55 +00002503 goto yynewstate;
2504
2505
2506/*-----------------------------------------------------------.
2507| yydefault -- do the default action for the current state. |
2508`-----------------------------------------------------------*/
2509yydefault:
2510 yyn = yydefact[yystate];
2511 if (yyn == 0)
2512 goto yyerrlab;
2513 goto yyreduce;
2514
2515
2516/*-----------------------------.
Haibo Huang69b38a72020-02-07 20:33:46 -08002517| yyreduce -- do a reduction. |
Elliott Hughes52487fa2019-03-15 03:28:55 +00002518`-----------------------------*/
2519yyreduce:
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 {
Haibo Huang69b38a72020-02-07 20:33:46 -08002537 case 2:
2538#line 99 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002539 { if (errorflag==0)
2540 winner = (Node *)stat3(PROGRAM, beginloc, (yyvsp[0].p), endloc); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002541#line 2542 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002542 break;
2543
2544 case 3:
Haibo Huang69b38a72020-02-07 20:33:46 -08002545#line 101 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002546 { yyclearin; bracecheck(); SYNTAX("bailing out"); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002547#line 2548 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002548 break;
2549
2550 case 14:
Haibo Huang69b38a72020-02-07 20:33:46 -08002551#line 125 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002552 {inloop++;}
Haibo Huang69b38a72020-02-07 20:33:46 -08002553#line 2554 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002554 break;
2555
2556 case 15:
Haibo Huang69b38a72020-02-07 20:33:46 -08002557#line 126 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002558 { --inloop; (yyval.p) = stat4(FOR, (yyvsp[-9].p), notnull((yyvsp[-6].p)), (yyvsp[-3].p), (yyvsp[0].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002559#line 2560 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002560 break;
2561
2562 case 16:
Haibo Huang69b38a72020-02-07 20:33:46 -08002563#line 127 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002564 {inloop++;}
Haibo Huang69b38a72020-02-07 20:33:46 -08002565#line 2566 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002566 break;
2567
2568 case 17:
Haibo Huang69b38a72020-02-07 20:33:46 -08002569#line 128 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002570 { --inloop; (yyval.p) = stat4(FOR, (yyvsp[-7].p), NIL, (yyvsp[-3].p), (yyvsp[0].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002571#line 2572 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002572 break;
2573
2574 case 18:
Haibo Huang69b38a72020-02-07 20:33:46 -08002575#line 129 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002576 {inloop++;}
Haibo Huang69b38a72020-02-07 20:33:46 -08002577#line 2578 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002578 break;
2579
2580 case 19:
Haibo Huang69b38a72020-02-07 20:33:46 -08002581#line 130 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002582 { --inloop; (yyval.p) = stat3(IN, (yyvsp[-5].p), makearr((yyvsp[-3].p)), (yyvsp[0].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002583#line 2584 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002584 break;
2585
2586 case 20:
Haibo Huang69b38a72020-02-07 20:33:46 -08002587#line 134 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002588 { setfname((yyvsp[0].cp)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002589#line 2590 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002590 break;
2591
2592 case 21:
Haibo Huang69b38a72020-02-07 20:33:46 -08002593#line 135 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002594 { setfname((yyvsp[0].cp)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002595#line 2596 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002596 break;
2597
2598 case 22:
Haibo Huang69b38a72020-02-07 20:33:46 -08002599#line 139 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002600 { (yyval.p) = notnull((yyvsp[-1].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002601#line 2602 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002602 break;
2603
2604 case 27:
Haibo Huang69b38a72020-02-07 20:33:46 -08002605#line 151 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002606 { (yyval.i) = 0; }
Haibo Huang69b38a72020-02-07 20:33:46 -08002607#line 2608 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002608 break;
2609
2610 case 29:
Haibo Huang69b38a72020-02-07 20:33:46 -08002611#line 156 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002612 { (yyval.i) = 0; }
Haibo Huang69b38a72020-02-07 20:33:46 -08002613#line 2614 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002614 break;
2615
2616 case 31:
Haibo Huang69b38a72020-02-07 20:33:46 -08002617#line 162 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002618 { (yyval.p) = 0; }
Haibo Huang69b38a72020-02-07 20:33:46 -08002619#line 2620 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002620 break;
2621
2622 case 33:
Haibo Huang69b38a72020-02-07 20:33:46 -08002623#line 167 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002624 { (yyval.p) = 0; }
Haibo Huang69b38a72020-02-07 20:33:46 -08002625#line 2626 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002626 break;
2627
2628 case 34:
Haibo Huang69b38a72020-02-07 20:33:46 -08002629#line 168 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002630 { (yyval.p) = (yyvsp[-1].p); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002631#line 2632 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002632 break;
2633
2634 case 35:
Haibo Huang69b38a72020-02-07 20:33:46 -08002635#line 172 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002636 { (yyval.p) = notnull((yyvsp[0].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002637#line 2638 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002638 break;
2639
2640 case 36:
Haibo Huang69b38a72020-02-07 20:33:46 -08002641#line 176 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002642 { (yyval.p) = stat2(PASTAT, (yyvsp[0].p), stat2(PRINT, rectonode(), NIL)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002643#line 2644 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002644 break;
2645
2646 case 37:
Haibo Huang69b38a72020-02-07 20:33:46 -08002647#line 177 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002648 { (yyval.p) = stat2(PASTAT, (yyvsp[-3].p), (yyvsp[-1].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002649#line 2650 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002650 break;
2651
2652 case 38:
Haibo Huang69b38a72020-02-07 20:33:46 -08002653#line 178 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002654 { (yyval.p) = pa2stat((yyvsp[-3].p), (yyvsp[0].p), stat2(PRINT, rectonode(), NIL)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002655#line 2656 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002656 break;
2657
2658 case 39:
Haibo Huang69b38a72020-02-07 20:33:46 -08002659#line 179 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002660 { (yyval.p) = pa2stat((yyvsp[-6].p), (yyvsp[-3].p), (yyvsp[-1].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002661#line 2662 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002662 break;
2663
2664 case 40:
Haibo Huang69b38a72020-02-07 20:33:46 -08002665#line 180 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002666 { (yyval.p) = stat2(PASTAT, NIL, (yyvsp[-1].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002667#line 2668 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002668 break;
2669
2670 case 41:
Haibo Huang69b38a72020-02-07 20:33:46 -08002671#line 182 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002672 { beginloc = linkum(beginloc, (yyvsp[-1].p)); (yyval.p) = 0; }
Haibo Huang69b38a72020-02-07 20:33:46 -08002673#line 2674 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002674 break;
2675
2676 case 42:
Haibo Huang69b38a72020-02-07 20:33:46 -08002677#line 184 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002678 { endloc = linkum(endloc, (yyvsp[-1].p)); (yyval.p) = 0; }
Haibo Huang69b38a72020-02-07 20:33:46 -08002679#line 2680 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002680 break;
2681
2682 case 43:
Haibo Huang69b38a72020-02-07 20:33:46 -08002683#line 185 "awkgram.y"
2684 {infunc = true;}
2685#line 2686 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002686 break;
2687
2688 case 44:
Haibo Huang69b38a72020-02-07 20:33:46 -08002689#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"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002692 break;
2693
2694 case 46:
Haibo Huang69b38a72020-02-07 20:33:46 -08002695#line 191 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002696 { (yyval.p) = linkum((yyvsp[-2].p), (yyvsp[0].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002697#line 2698 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002698 break;
2699
2700 case 48:
Haibo Huang69b38a72020-02-07 20:33:46 -08002701#line 196 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002702 { (yyval.p) = linkum((yyvsp[-2].p), (yyvsp[0].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002703#line 2704 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002704 break;
2705
2706 case 49:
Haibo Huang69b38a72020-02-07 20:33:46 -08002707#line 200 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002708 { (yyval.p) = op2((yyvsp[-1].i), (yyvsp[-2].p), (yyvsp[0].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002709#line 2710 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002710 break;
2711
2712 case 50:
Haibo Huang69b38a72020-02-07 20:33:46 -08002713#line 202 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002714 { (yyval.p) = op3(CONDEXPR, notnull((yyvsp[-4].p)), (yyvsp[-2].p), (yyvsp[0].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002715#line 2716 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002716 break;
2717
2718 case 51:
Haibo Huang69b38a72020-02-07 20:33:46 -08002719#line 204 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002720 { (yyval.p) = op2(BOR, notnull((yyvsp[-2].p)), notnull((yyvsp[0].p))); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002721#line 2722 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002722 break;
2723
2724 case 52:
Haibo Huang69b38a72020-02-07 20:33:46 -08002725#line 206 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002726 { (yyval.p) = op2(AND, notnull((yyvsp[-2].p)), notnull((yyvsp[0].p))); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002727#line 2728 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002728 break;
2729
2730 case 53:
Haibo Huang69b38a72020-02-07 20:33:46 -08002731#line 207 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002732 { (yyval.p) = op3((yyvsp[-1].i), NIL, (yyvsp[-2].p), (Node*)makedfa((yyvsp[0].s), 0)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002733#line 2734 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002734 break;
2735
2736 case 54:
Haibo Huang69b38a72020-02-07 20:33:46 -08002737#line 209 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002738 { 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)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002742#line 2743 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002743 break;
2744
2745 case 55:
Haibo Huang69b38a72020-02-07 20:33:46 -08002746#line 213 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002747 { (yyval.p) = op2(INTEST, (yyvsp[-2].p), makearr((yyvsp[0].p))); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002748#line 2749 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002749 break;
2750
2751 case 56:
Haibo Huang69b38a72020-02-07 20:33:46 -08002752#line 214 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002753 { (yyval.p) = op2(INTEST, (yyvsp[-3].p), makearr((yyvsp[0].p))); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002754#line 2755 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002755 break;
2756
2757 case 57:
Haibo Huang69b38a72020-02-07 20:33:46 -08002758#line 215 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002759 { (yyval.p) = op2(CAT, (yyvsp[-1].p), (yyvsp[0].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002760#line 2761 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002761 break;
2762
2763 case 60:
Haibo Huang69b38a72020-02-07 20:33:46 -08002764#line 221 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002765 { (yyval.p) = op2((yyvsp[-1].i), (yyvsp[-2].p), (yyvsp[0].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002766#line 2767 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002767 break;
2768
2769 case 61:
Haibo Huang69b38a72020-02-07 20:33:46 -08002770#line 223 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002771 { (yyval.p) = op3(CONDEXPR, notnull((yyvsp[-4].p)), (yyvsp[-2].p), (yyvsp[0].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002772#line 2773 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002773 break;
2774
2775 case 62:
Haibo Huang69b38a72020-02-07 20:33:46 -08002776#line 225 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002777 { (yyval.p) = op2(BOR, notnull((yyvsp[-2].p)), notnull((yyvsp[0].p))); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002778#line 2779 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002779 break;
2780
2781 case 63:
Haibo Huang69b38a72020-02-07 20:33:46 -08002782#line 227 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002783 { (yyval.p) = op2(AND, notnull((yyvsp[-2].p)), notnull((yyvsp[0].p))); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002784#line 2785 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002785 break;
2786
2787 case 64:
Haibo Huang69b38a72020-02-07 20:33:46 -08002788#line 228 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002789 { (yyval.p) = op2((yyvsp[-1].i), (yyvsp[-2].p), (yyvsp[0].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002790#line 2791 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002791 break;
2792
2793 case 65:
Haibo Huang69b38a72020-02-07 20:33:46 -08002794#line 229 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002795 { (yyval.p) = op2((yyvsp[-1].i), (yyvsp[-2].p), (yyvsp[0].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002796#line 2797 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002797 break;
2798
2799 case 66:
Haibo Huang69b38a72020-02-07 20:33:46 -08002800#line 230 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002801 { (yyval.p) = op2((yyvsp[-1].i), (yyvsp[-2].p), (yyvsp[0].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002802#line 2803 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002803 break;
2804
2805 case 67:
Haibo Huang69b38a72020-02-07 20:33:46 -08002806#line 231 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002807 { (yyval.p) = op2((yyvsp[-1].i), (yyvsp[-2].p), (yyvsp[0].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002808#line 2809 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002809 break;
2810
2811 case 68:
Haibo Huang69b38a72020-02-07 20:33:46 -08002812#line 232 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002813 { (yyval.p) = op2((yyvsp[-1].i), (yyvsp[-2].p), (yyvsp[0].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002814#line 2815 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002815 break;
2816
2817 case 69:
Haibo Huang69b38a72020-02-07 20:33:46 -08002818#line 233 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002819 { (yyval.p) = op2((yyvsp[-1].i), (yyvsp[-2].p), (yyvsp[0].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002820#line 2821 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002821 break;
2822
2823 case 70:
Haibo Huang69b38a72020-02-07 20:33:46 -08002824#line 234 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002825 { (yyval.p) = op3((yyvsp[-1].i), NIL, (yyvsp[-2].p), (Node*)makedfa((yyvsp[0].s), 0)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002826#line 2827 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002827 break;
2828
2829 case 71:
Haibo Huang69b38a72020-02-07 20:33:46 -08002830#line 236 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002831 { 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)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002835#line 2836 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002836 break;
2837
2838 case 72:
Haibo Huang69b38a72020-02-07 20:33:46 -08002839#line 240 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002840 { (yyval.p) = op2(INTEST, (yyvsp[-2].p), makearr((yyvsp[0].p))); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002841#line 2842 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002842 break;
2843
2844 case 73:
Haibo Huang69b38a72020-02-07 20:33:46 -08002845#line 241 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002846 { (yyval.p) = op2(INTEST, (yyvsp[-3].p), makearr((yyvsp[0].p))); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002847#line 2848 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002848 break;
2849
2850 case 74:
Haibo Huang69b38a72020-02-07 20:33:46 -08002851#line 242 "awkgram.y"
Haibo Huang0687bec2019-09-06 17:32:25 -07002852 {
Elliott Hughes52487fa2019-03-15 03:28:55 +00002853 if (safe) SYNTAX("cmd | getline is unsafe");
2854 else (yyval.p) = op3(GETLINE, (yyvsp[0].p), itonp((yyvsp[-2].i)), (yyvsp[-3].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002855#line 2856 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002856 break;
2857
2858 case 75:
Haibo Huang69b38a72020-02-07 20:33:46 -08002859#line 245 "awkgram.y"
Haibo Huang0687bec2019-09-06 17:32:25 -07002860 {
Elliott Hughes52487fa2019-03-15 03:28:55 +00002861 if (safe) SYNTAX("cmd | getline is unsafe");
2862 else (yyval.p) = op3(GETLINE, (Node*)0, itonp((yyvsp[-1].i)), (yyvsp[-2].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002863#line 2864 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002864 break;
2865
2866 case 76:
Haibo Huang69b38a72020-02-07 20:33:46 -08002867#line 248 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002868 { (yyval.p) = op2(CAT, (yyvsp[-1].p), (yyvsp[0].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002869#line 2870 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002870 break;
2871
2872 case 79:
Haibo Huang69b38a72020-02-07 20:33:46 -08002873#line 254 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002874 { (yyval.p) = linkum((yyvsp[-2].p), (yyvsp[0].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002875#line 2876 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002876 break;
2877
2878 case 80:
Haibo Huang69b38a72020-02-07 20:33:46 -08002879#line 255 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002880 { (yyval.p) = linkum((yyvsp[-2].p), (yyvsp[0].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002881#line 2882 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002882 break;
2883
2884 case 82:
Haibo Huang69b38a72020-02-07 20:33:46 -08002885#line 260 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002886 { (yyval.p) = linkum((yyvsp[-2].p), (yyvsp[0].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002887#line 2888 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002888 break;
2889
2890 case 83:
Haibo Huang69b38a72020-02-07 20:33:46 -08002891#line 264 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002892 { (yyval.p) = rectonode(); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002893#line 2894 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002894 break;
2895
2896 case 85:
Haibo Huang69b38a72020-02-07 20:33:46 -08002897#line 266 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002898 { (yyval.p) = (yyvsp[-1].p); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002899#line 2900 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002900 break;
2901
2902 case 94:
Haibo Huang69b38a72020-02-07 20:33:46 -08002903#line 283 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002904 { (yyval.p) = op3(MATCH, NIL, rectonode(), (Node*)makedfa((yyvsp[0].s), 0)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002905#line 2906 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002906 break;
2907
2908 case 95:
Haibo Huang69b38a72020-02-07 20:33:46 -08002909#line 284 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002910 { (yyval.p) = op1(NOT, notnull((yyvsp[0].p))); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002911#line 2912 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002912 break;
2913
2914 case 96:
Haibo Huang69b38a72020-02-07 20:33:46 -08002915#line 288 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002916 {startreg();}
Haibo Huang69b38a72020-02-07 20:33:46 -08002917#line 2918 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002918 break;
2919
2920 case 97:
Haibo Huang69b38a72020-02-07 20:33:46 -08002921#line 288 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002922 { (yyval.s) = (yyvsp[-1].s); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002923#line 2924 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002924 break;
2925
2926 case 100:
Haibo Huang69b38a72020-02-07 20:33:46 -08002927#line 296 "awkgram.y"
Haibo Huang0687bec2019-09-06 17:32:25 -07002928 {
Elliott Hughes52487fa2019-03-15 03:28:55 +00002929 if (safe) SYNTAX("print | is unsafe");
2930 else (yyval.p) = stat3((yyvsp[-3].i), (yyvsp[-2].p), itonp((yyvsp[-1].i)), (yyvsp[0].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002931#line 2932 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002932 break;
2933
2934 case 101:
Haibo Huang69b38a72020-02-07 20:33:46 -08002935#line 299 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002936 {
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)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002939#line 2940 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002940 break;
2941
2942 case 102:
Haibo Huang69b38a72020-02-07 20:33:46 -08002943#line 302 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002944 {
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)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002947#line 2948 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002948 break;
2949
2950 case 103:
Haibo Huang69b38a72020-02-07 20:33:46 -08002951#line 305 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002952 { (yyval.p) = stat3((yyvsp[-1].i), (yyvsp[0].p), NIL, NIL); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002953#line 2954 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002954 break;
2955
2956 case 104:
Haibo Huang69b38a72020-02-07 20:33:46 -08002957#line 306 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002958 { (yyval.p) = stat2(DELETE, makearr((yyvsp[-3].p)), (yyvsp[-1].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002959#line 2960 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002960 break;
2961
2962 case 105:
Haibo Huang69b38a72020-02-07 20:33:46 -08002963#line 307 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002964 { (yyval.p) = stat2(DELETE, makearr((yyvsp[0].p)), 0); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002965#line 2966 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002966 break;
2967
2968 case 106:
Haibo Huang69b38a72020-02-07 20:33:46 -08002969#line 308 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002970 { (yyval.p) = exptostat((yyvsp[0].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002971#line 2972 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002972 break;
2973
2974 case 107:
Haibo Huang69b38a72020-02-07 20:33:46 -08002975#line 309 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002976 { yyclearin; SYNTAX("illegal statement"); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002977#line 2978 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002978 break;
2979
2980 case 110:
Haibo Huang69b38a72020-02-07 20:33:46 -08002981#line 318 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002982 { if (!inloop) SYNTAX("break illegal outside of loops");
2983 (yyval.p) = stat1(BREAK, NIL); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002984#line 2985 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002985 break;
2986
2987 case 111:
Haibo Huang69b38a72020-02-07 20:33:46 -08002988#line 320 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002989 { if (!inloop) SYNTAX("continue illegal outside of loops");
2990 (yyval.p) = stat1(CONTINUE, NIL); }
Haibo Huang69b38a72020-02-07 20:33:46 -08002991#line 2992 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002992 break;
2993
2994 case 112:
Haibo Huang69b38a72020-02-07 20:33:46 -08002995#line 322 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002996 {inloop++;}
Haibo Huang69b38a72020-02-07 20:33:46 -08002997#line 2998 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00002998 break;
2999
3000 case 113:
Haibo Huang69b38a72020-02-07 20:33:46 -08003001#line 322 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003002 {--inloop;}
Haibo Huang69b38a72020-02-07 20:33:46 -08003003#line 3004 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003004 break;
3005
3006 case 114:
Haibo Huang69b38a72020-02-07 20:33:46 -08003007#line 323 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003008 { (yyval.p) = stat2(DO, (yyvsp[-6].p), notnull((yyvsp[-2].p))); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003009#line 3010 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003010 break;
3011
3012 case 115:
Haibo Huang69b38a72020-02-07 20:33:46 -08003013#line 324 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003014 { (yyval.p) = stat1(EXIT, (yyvsp[-1].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003015#line 3016 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003016 break;
3017
3018 case 116:
Haibo Huang69b38a72020-02-07 20:33:46 -08003019#line 325 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003020 { (yyval.p) = stat1(EXIT, NIL); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003021#line 3022 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003022 break;
3023
3024 case 118:
Haibo Huang69b38a72020-02-07 20:33:46 -08003025#line 327 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003026 { (yyval.p) = stat3(IF, (yyvsp[-3].p), (yyvsp[-2].p), (yyvsp[0].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003027#line 3028 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003028 break;
3029
3030 case 119:
Haibo Huang69b38a72020-02-07 20:33:46 -08003031#line 328 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003032 { (yyval.p) = stat3(IF, (yyvsp[-1].p), (yyvsp[0].p), NIL); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003033#line 3034 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003034 break;
3035
3036 case 120:
Haibo Huang69b38a72020-02-07 20:33:46 -08003037#line 329 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003038 { (yyval.p) = (yyvsp[-1].p); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003039#line 3040 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003040 break;
3041
3042 case 121:
Haibo Huang69b38a72020-02-07 20:33:46 -08003043#line 330 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003044 { if (infunc)
3045 SYNTAX("next is illegal inside a function");
3046 (yyval.p) = stat1(NEXT, NIL); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003047#line 3048 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003048 break;
3049
3050 case 122:
Haibo Huang69b38a72020-02-07 20:33:46 -08003051#line 333 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003052 { if (infunc)
3053 SYNTAX("nextfile is illegal inside a function");
3054 (yyval.p) = stat1(NEXTFILE, NIL); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003055#line 3056 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003056 break;
3057
3058 case 123:
Haibo Huang69b38a72020-02-07 20:33:46 -08003059#line 336 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003060 { (yyval.p) = stat1(RETURN, (yyvsp[-1].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003061#line 3062 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003062 break;
3063
3064 case 124:
Haibo Huang69b38a72020-02-07 20:33:46 -08003065#line 337 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003066 { (yyval.p) = stat1(RETURN, NIL); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003067#line 3068 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003068 break;
3069
3070 case 126:
Haibo Huang69b38a72020-02-07 20:33:46 -08003071#line 339 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003072 {inloop++;}
Haibo Huang69b38a72020-02-07 20:33:46 -08003073#line 3074 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003074 break;
3075
3076 case 127:
Haibo Huang69b38a72020-02-07 20:33:46 -08003077#line 339 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003078 { --inloop; (yyval.p) = stat2(WHILE, (yyvsp[-2].p), (yyvsp[0].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003079#line 3080 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003080 break;
3081
3082 case 128:
Haibo Huang69b38a72020-02-07 20:33:46 -08003083#line 340 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003084 { (yyval.p) = 0; }
Haibo Huang69b38a72020-02-07 20:33:46 -08003085#line 3086 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003086 break;
3087
3088 case 130:
Haibo Huang69b38a72020-02-07 20:33:46 -08003089#line 345 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003090 { (yyval.p) = linkum((yyvsp[-1].p), (yyvsp[0].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003091#line 3092 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003092 break;
3093
3094 case 134:
Haibo Huang69b38a72020-02-07 20:33:46 -08003095#line 354 "awkgram.y"
Haibo Huang0687bec2019-09-06 17:32:25 -07003096 { (yyval.cp) = catstr((yyvsp[-1].cp), (yyvsp[0].cp)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003097#line 3098 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003098 break;
3099
3100 case 135:
Haibo Huang69b38a72020-02-07 20:33:46 -08003101#line 358 "awkgram.y"
Haibo Huang0687bec2019-09-06 17:32:25 -07003102 { (yyval.p) = op2(DIVEQ, (yyvsp[-3].p), (yyvsp[0].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003103#line 3104 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003104 break;
3105
3106 case 136:
Haibo Huang69b38a72020-02-07 20:33:46 -08003107#line 359 "awkgram.y"
Haibo Huang0687bec2019-09-06 17:32:25 -07003108 { (yyval.p) = op2(ADD, (yyvsp[-2].p), (yyvsp[0].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003109#line 3110 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003110 break;
3111
3112 case 137:
Haibo Huang69b38a72020-02-07 20:33:46 -08003113#line 360 "awkgram.y"
Haibo Huang0687bec2019-09-06 17:32:25 -07003114 { (yyval.p) = op2(MINUS, (yyvsp[-2].p), (yyvsp[0].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003115#line 3116 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003116 break;
3117
3118 case 138:
Haibo Huang69b38a72020-02-07 20:33:46 -08003119#line 361 "awkgram.y"
Haibo Huang0687bec2019-09-06 17:32:25 -07003120 { (yyval.p) = op2(MULT, (yyvsp[-2].p), (yyvsp[0].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003121#line 3122 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003122 break;
3123
3124 case 139:
Haibo Huang69b38a72020-02-07 20:33:46 -08003125#line 362 "awkgram.y"
Haibo Huang0687bec2019-09-06 17:32:25 -07003126 { (yyval.p) = op2(DIVIDE, (yyvsp[-2].p), (yyvsp[0].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003127#line 3128 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003128 break;
3129
3130 case 140:
Haibo Huang69b38a72020-02-07 20:33:46 -08003131#line 363 "awkgram.y"
Haibo Huang0687bec2019-09-06 17:32:25 -07003132 { (yyval.p) = op2(MOD, (yyvsp[-2].p), (yyvsp[0].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003133#line 3134 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003134 break;
3135
3136 case 141:
Haibo Huang69b38a72020-02-07 20:33:46 -08003137#line 364 "awkgram.y"
Haibo Huang0687bec2019-09-06 17:32:25 -07003138 { (yyval.p) = op2(POWER, (yyvsp[-2].p), (yyvsp[0].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003139#line 3140 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003140 break;
3141
3142 case 142:
Haibo Huang69b38a72020-02-07 20:33:46 -08003143#line 365 "awkgram.y"
Haibo Huang0687bec2019-09-06 17:32:25 -07003144 { (yyval.p) = op1(UMINUS, (yyvsp[0].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003145#line 3146 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003146 break;
3147
3148 case 143:
Haibo Huang69b38a72020-02-07 20:33:46 -08003149#line 366 "awkgram.y"
Haibo Huang0687bec2019-09-06 17:32:25 -07003150 { (yyval.p) = op1(UPLUS, (yyvsp[0].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003151#line 3152 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003152 break;
3153
3154 case 144:
Haibo Huang69b38a72020-02-07 20:33:46 -08003155#line 367 "awkgram.y"
Haibo Huang0687bec2019-09-06 17:32:25 -07003156 { (yyval.p) = op1(NOT, notnull((yyvsp[0].p))); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003157#line 3158 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003158 break;
3159
3160 case 145:
Haibo Huang69b38a72020-02-07 20:33:46 -08003161#line 368 "awkgram.y"
Haibo Huang0687bec2019-09-06 17:32:25 -07003162 { (yyval.p) = op2(BLTIN, itonp((yyvsp[-2].i)), rectonode()); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003163#line 3164 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003164 break;
3165
3166 case 146:
Haibo Huang69b38a72020-02-07 20:33:46 -08003167#line 369 "awkgram.y"
Haibo Huang0687bec2019-09-06 17:32:25 -07003168 { (yyval.p) = op2(BLTIN, itonp((yyvsp[-3].i)), (yyvsp[-1].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003169#line 3170 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003170 break;
3171
3172 case 147:
Haibo Huang69b38a72020-02-07 20:33:46 -08003173#line 370 "awkgram.y"
Haibo Huang0687bec2019-09-06 17:32:25 -07003174 { (yyval.p) = op2(BLTIN, itonp((yyvsp[0].i)), rectonode()); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003175#line 3176 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003176 break;
3177
3178 case 148:
Haibo Huang69b38a72020-02-07 20:33:46 -08003179#line 371 "awkgram.y"
Haibo Huang0687bec2019-09-06 17:32:25 -07003180 { (yyval.p) = op2(CALL, celltonode((yyvsp[-2].cp),CVAR), NIL); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003181#line 3182 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003182 break;
3183
3184 case 149:
Haibo Huang69b38a72020-02-07 20:33:46 -08003185#line 372 "awkgram.y"
Haibo Huang0687bec2019-09-06 17:32:25 -07003186 { (yyval.p) = op2(CALL, celltonode((yyvsp[-3].cp),CVAR), (yyvsp[-1].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003187#line 3188 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003188 break;
3189
3190 case 150:
Haibo Huang69b38a72020-02-07 20:33:46 -08003191#line 373 "awkgram.y"
Haibo Huang0687bec2019-09-06 17:32:25 -07003192 { (yyval.p) = op1(CLOSE, (yyvsp[0].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003193#line 3194 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003194 break;
3195
3196 case 151:
Haibo Huang69b38a72020-02-07 20:33:46 -08003197#line 374 "awkgram.y"
Haibo Huang0687bec2019-09-06 17:32:25 -07003198 { (yyval.p) = op1(PREDECR, (yyvsp[0].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003199#line 3200 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003200 break;
3201
3202 case 152:
Haibo Huang69b38a72020-02-07 20:33:46 -08003203#line 375 "awkgram.y"
Haibo Huang0687bec2019-09-06 17:32:25 -07003204 { (yyval.p) = op1(PREINCR, (yyvsp[0].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003205#line 3206 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003206 break;
3207
3208 case 153:
Haibo Huang69b38a72020-02-07 20:33:46 -08003209#line 376 "awkgram.y"
Haibo Huang0687bec2019-09-06 17:32:25 -07003210 { (yyval.p) = op1(POSTDECR, (yyvsp[-1].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003211#line 3212 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003212 break;
3213
3214 case 154:
Haibo Huang69b38a72020-02-07 20:33:46 -08003215#line 377 "awkgram.y"
Haibo Huang0687bec2019-09-06 17:32:25 -07003216 { (yyval.p) = op1(POSTINCR, (yyvsp[-1].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003217#line 3218 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003218 break;
3219
3220 case 155:
Haibo Huang69b38a72020-02-07 20:33:46 -08003221#line 378 "awkgram.y"
Haibo Huang0687bec2019-09-06 17:32:25 -07003222 { (yyval.p) = op3(GETLINE, (yyvsp[-2].p), itonp((yyvsp[-1].i)), (yyvsp[0].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003223#line 3224 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003224 break;
3225
3226 case 156:
Haibo Huang69b38a72020-02-07 20:33:46 -08003227#line 379 "awkgram.y"
Haibo Huang0687bec2019-09-06 17:32:25 -07003228 { (yyval.p) = op3(GETLINE, NIL, itonp((yyvsp[-1].i)), (yyvsp[0].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003229#line 3230 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003230 break;
3231
3232 case 157:
Haibo Huang69b38a72020-02-07 20:33:46 -08003233#line 380 "awkgram.y"
Haibo Huang0687bec2019-09-06 17:32:25 -07003234 { (yyval.p) = op3(GETLINE, (yyvsp[0].p), NIL, NIL); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003235#line 3236 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003236 break;
3237
3238 case 158:
Haibo Huang69b38a72020-02-07 20:33:46 -08003239#line 381 "awkgram.y"
Haibo Huang0687bec2019-09-06 17:32:25 -07003240 { (yyval.p) = op3(GETLINE, NIL, NIL, NIL); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003241#line 3242 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003242 break;
3243
3244 case 159:
Haibo Huang69b38a72020-02-07 20:33:46 -08003245#line 383 "awkgram.y"
Haibo Huang0687bec2019-09-06 17:32:25 -07003246 { (yyval.p) = op2(INDEX, (yyvsp[-3].p), (yyvsp[-1].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003247#line 3248 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003248 break;
3249
3250 case 160:
Haibo Huang69b38a72020-02-07 20:33:46 -08003251#line 385 "awkgram.y"
Haibo Huang0687bec2019-09-06 17:32:25 -07003252 { SYNTAX("index() doesn't permit regular expressions");
3253 (yyval.p) = op2(INDEX, (yyvsp[-3].p), (Node*)(yyvsp[-1].s)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003254#line 3255 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003255 break;
3256
3257 case 161:
Haibo Huang69b38a72020-02-07 20:33:46 -08003258#line 387 "awkgram.y"
Haibo Huang0687bec2019-09-06 17:32:25 -07003259 { (yyval.p) = (yyvsp[-1].p); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003260#line 3261 "y.tab.c"
Haibo Huang0687bec2019-09-06 17:32:25 -07003261 break;
3262
3263 case 162:
Haibo Huang69b38a72020-02-07 20:33:46 -08003264#line 389 "awkgram.y"
Haibo Huang0687bec2019-09-06 17:32:25 -07003265 { (yyval.p) = op3(MATCHFCN, NIL, (yyvsp[-3].p), (Node*)makedfa((yyvsp[-1].s), 1)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003266#line 3267 "y.tab.c"
Haibo Huang0687bec2019-09-06 17:32:25 -07003267 break;
3268
3269 case 163:
Haibo Huang69b38a72020-02-07 20:33:46 -08003270#line 391 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003271 { 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)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003275#line 3276 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003276 break;
3277
3278 case 164:
Haibo Huang69b38a72020-02-07 20:33:46 -08003279#line 395 "awkgram.y"
Haibo Huang0687bec2019-09-06 17:32:25 -07003280 { (yyval.p) = celltonode((yyvsp[0].cp), CCON); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003281#line 3282 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003282 break;
3283
3284 case 165:
Haibo Huang69b38a72020-02-07 20:33:46 -08003285#line 397 "awkgram.y"
Haibo Huang0687bec2019-09-06 17:32:25 -07003286 { (yyval.p) = op4(SPLIT, (yyvsp[-5].p), makearr((yyvsp[-3].p)), (yyvsp[-1].p), (Node*)STRING); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003287#line 3288 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003288 break;
3289
3290 case 166:
Haibo Huang69b38a72020-02-07 20:33:46 -08003291#line 399 "awkgram.y"
Haibo Huang0687bec2019-09-06 17:32:25 -07003292 { (yyval.p) = op4(SPLIT, (yyvsp[-5].p), makearr((yyvsp[-3].p)), (Node*)makedfa((yyvsp[-1].s), 1), (Node *)REGEXPR); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003293#line 3294 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003294 break;
3295
3296 case 167:
Haibo Huang69b38a72020-02-07 20:33:46 -08003297#line 401 "awkgram.y"
Haibo Huang0687bec2019-09-06 17:32:25 -07003298 { (yyval.p) = op4(SPLIT, (yyvsp[-3].p), makearr((yyvsp[-1].p)), NIL, (Node*)STRING); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003299#line 3300 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003300 break;
3301
3302 case 168:
Haibo Huang69b38a72020-02-07 20:33:46 -08003303#line 402 "awkgram.y"
Haibo Huang0687bec2019-09-06 17:32:25 -07003304 { (yyval.p) = op1((yyvsp[-3].i), (yyvsp[-1].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003305#line 3306 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003306 break;
3307
3308 case 169:
Haibo Huang69b38a72020-02-07 20:33:46 -08003309#line 403 "awkgram.y"
Haibo Huang0687bec2019-09-06 17:32:25 -07003310 { (yyval.p) = celltonode((yyvsp[0].cp), CCON); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003311#line 3312 "y.tab.c"
Haibo Huang0687bec2019-09-06 17:32:25 -07003312 break;
3313
3314 case 170:
Haibo Huang69b38a72020-02-07 20:33:46 -08003315#line 405 "awkgram.y"
Haibo Huang0687bec2019-09-06 17:32:25 -07003316 { (yyval.p) = op4((yyvsp[-5].i), NIL, (Node*)makedfa((yyvsp[-3].s), 1), (yyvsp[-1].p), rectonode()); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003317#line 3318 "y.tab.c"
Haibo Huang0687bec2019-09-06 17:32:25 -07003318 break;
3319
3320 case 171:
Haibo Huang69b38a72020-02-07 20:33:46 -08003321#line 407 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003322 { 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()); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003326#line 3327 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003327 break;
3328
Haibo Huang0687bec2019-09-06 17:32:25 -07003329 case 172:
Haibo Huang69b38a72020-02-07 20:33:46 -08003330#line 412 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003331 { (yyval.p) = op4((yyvsp[-7].i), NIL, (Node*)makedfa((yyvsp[-5].s), 1), (yyvsp[-3].p), (yyvsp[-1].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003332#line 3333 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003333 break;
3334
Haibo Huang0687bec2019-09-06 17:32:25 -07003335 case 173:
Haibo Huang69b38a72020-02-07 20:33:46 -08003336#line 414 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003337 { 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)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003341#line 3342 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003342 break;
3343
Haibo Huang0687bec2019-09-06 17:32:25 -07003344 case 174:
Haibo Huang69b38a72020-02-07 20:33:46 -08003345#line 419 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003346 { (yyval.p) = op3(SUBSTR, (yyvsp[-5].p), (yyvsp[-3].p), (yyvsp[-1].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003347#line 3348 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003348 break;
3349
Haibo Huang0687bec2019-09-06 17:32:25 -07003350 case 175:
Haibo Huang69b38a72020-02-07 20:33:46 -08003351#line 421 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003352 { (yyval.p) = op3(SUBSTR, (yyvsp[-3].p), (yyvsp[-1].p), NIL); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003353#line 3354 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003354 break;
3355
3356 case 178:
Haibo Huang69b38a72020-02-07 20:33:46 -08003357#line 427 "awkgram.y"
Haibo Huang0687bec2019-09-06 17:32:25 -07003358 { (yyval.p) = op2(ARRAY, makearr((yyvsp[-3].p)), (yyvsp[-1].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003359#line 3360 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003360 break;
3361
3362 case 179:
Haibo Huang69b38a72020-02-07 20:33:46 -08003363#line 428 "awkgram.y"
Haibo Huang0687bec2019-09-06 17:32:25 -07003364 { (yyval.p) = op1(INDIRECT, celltonode((yyvsp[0].cp), CVAR)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003365#line 3366 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003366 break;
3367
3368 case 180:
Haibo Huang69b38a72020-02-07 20:33:46 -08003369#line 429 "awkgram.y"
Haibo Huang0687bec2019-09-06 17:32:25 -07003370 { (yyval.p) = op1(INDIRECT, (yyvsp[0].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003371#line 3372 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003372 break;
3373
3374 case 181:
Haibo Huang69b38a72020-02-07 20:33:46 -08003375#line 433 "awkgram.y"
Haibo Huang0687bec2019-09-06 17:32:25 -07003376 { arglist = (yyval.p) = 0; }
Haibo Huang69b38a72020-02-07 20:33:46 -08003377#line 3378 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003378 break;
3379
3380 case 182:
Haibo Huang69b38a72020-02-07 20:33:46 -08003381#line 434 "awkgram.y"
Haibo Huang0687bec2019-09-06 17:32:25 -07003382 { arglist = (yyval.p) = celltonode((yyvsp[0].cp),CVAR); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003383#line 3384 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003384 break;
3385
3386 case 183:
Haibo Huang69b38a72020-02-07 20:33:46 -08003387#line 435 "awkgram.y"
Haibo Huang0687bec2019-09-06 17:32:25 -07003388 {
3389 checkdup((yyvsp[-2].p), (yyvsp[0].cp));
3390 arglist = (yyval.p) = linkum((yyvsp[-2].p),celltonode((yyvsp[0].cp),CVAR)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003391#line 3392 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003392 break;
3393
3394 case 184:
Haibo Huang69b38a72020-02-07 20:33:46 -08003395#line 441 "awkgram.y"
Haibo Huang0687bec2019-09-06 17:32:25 -07003396 { (yyval.p) = celltonode((yyvsp[0].cp), CVAR); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003397#line 3398 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003398 break;
3399
3400 case 185:
Haibo Huang69b38a72020-02-07 20:33:46 -08003401#line 442 "awkgram.y"
Haibo Huang0687bec2019-09-06 17:32:25 -07003402 { (yyval.p) = op1(ARG, itonp((yyvsp[0].i))); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003403#line 3404 "y.tab.c"
Haibo Huang0687bec2019-09-06 17:32:25 -07003404 break;
3405
3406 case 186:
Haibo Huang69b38a72020-02-07 20:33:46 -08003407#line 443 "awkgram.y"
Haibo Huang0687bec2019-09-06 17:32:25 -07003408 { (yyval.p) = op1(VARNF, (Node *) (yyvsp[0].cp)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003409#line 3410 "y.tab.c"
Haibo Huang0687bec2019-09-06 17:32:25 -07003410 break;
3411
3412 case 187:
Haibo Huang69b38a72020-02-07 20:33:46 -08003413#line 448 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003414 { (yyval.p) = notnull((yyvsp[-1].p)); }
Haibo Huang69b38a72020-02-07 20:33:46 -08003415#line 3416 "y.tab.c"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003416 break;
3417
3418
Haibo Huang69b38a72020-02-07 20:33:46 -08003419#line 3420 "y.tab.c"
3420
Elliott Hughes52487fa2019-03-15 03:28:55 +00003421 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. */
Haibo Huang0687bec2019-09-06 17:32:25 -07003445 {
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 }
Elliott Hughes52487fa2019-03-15 03:28:55 +00003452
3453 goto yynewstate;
3454
3455
3456/*--------------------------------------.
3457| yyerrlab -- here on detecting error. |
3458`--------------------------------------*/
3459yyerrlab:
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`---------------------------------------------------*/
3533yyerrorlab:
Haibo Huang69b38a72020-02-07 20:33:46 -08003534 /* 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;
Elliott Hughes52487fa2019-03-15 03:28:55 +00003538
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`-------------------------------------------------------------*/
3551yyerrlab1:
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`-------------------------------------*/
3595yyacceptlab:
3596 yyresult = 0;
3597 goto yyreturn;
3598
Haibo Huang69b38a72020-02-07 20:33:46 -08003599
Elliott Hughes52487fa2019-03-15 03:28:55 +00003600/*-----------------------------------.
3601| yyabortlab -- YYABORT comes here. |
3602`-----------------------------------*/
3603yyabortlab:
3604 yyresult = 1;
3605 goto yyreturn;
3606
Haibo Huang69b38a72020-02-07 20:33:46 -08003607
Elliott Hughes52487fa2019-03-15 03:28:55 +00003608#if !defined yyoverflow || YYERROR_VERBOSE
3609/*-------------------------------------------------.
3610| yyexhaustedlab -- memory exhaustion comes here. |
3611`-------------------------------------------------*/
3612yyexhaustedlab:
3613 yyerror (YY_("memory exhausted"));
3614 yyresult = 2;
3615 /* Fall through. */
3616#endif
3617
Haibo Huang69b38a72020-02-07 20:33:46 -08003618
3619/*-----------------------------------------------------.
3620| yyreturn -- parsing is finished, return the result. |
3621`-----------------------------------------------------*/
Elliott Hughes52487fa2019-03-15 03:28:55 +00003622yyreturn:
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}
Haibo Huang69b38a72020-02-07 20:33:46 -08003651#line 451 "awkgram.y"
Elliott Hughes52487fa2019-03-15 03:28:55 +00003652
3653
3654void 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
3663int constnode(Node *p)
3664{
3665 return isvalue(p) && ((Cell *) (p->narg[0]))->csub == CCON;
3666}
3667
3668char *strnode(Node *p)
3669{
3670 return ((Cell *)(p->narg[0]))->sval;
3671}
3672
3673Node *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
3684void 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}