#include <sys/cdefs.h>
#ifndef lint
#if 0
static char yysccsid[] = "@(#)yaccpar 1.9 (Berkeley) 02/21/93";
#else
__IDSTRING(yyrcsid, "$NetBSD: skeleton.c,v 1.14 1997/10/20 03:41:16 lukem Exp $");
#endif
#endif
#include <stdlib.h>
#define YYBYACC 1
#define YYMAJOR 1
#define YYMINOR 9
#define YYLEX yylex()
#define YYEMPTY -1
#define yyclearin (yychar=(YYEMPTY))
#define yyerrok (yyerrflag=0)
#define YYRECOVERING (yyerrflag!=0)
#define YYPREFIX "yy"
#line 75 "awk.g.y"
#include <inttypes.h>
typedef void *YYSTYPE;
#define YYSTYPE YYSTYPE
#line 115 "awk.g.y"
/* from 4.4BSD /usr/src/old/awk/awk.g.y 4.4 (Berkeley) 4/27/91 */
/* Sccsid @(#)awk.g.y 1.5 (gritter) 7/24/03> */
#include "awk.def"
#ifndef DEBUG
# define PUTS(x)
#endif
#line 32 "y.tab.c"
#define FIRSTTOKEN 257
#define FINAL 258
#define FATAL 259
#define LT 260
#define LE 261
#define GT 262
#define GE 263
#define EQ 264
#define NE 265
#define MATCH 266
#define NOTMATCH 267
#define APPEND 268
#define ADD 269
#define MINUS 270
#define MULT 271
#define DIVIDE 272
#define MOD 273
#define UMINUS 274
#define ASSIGN 275
#define ADDEQ 276
#define SUBEQ 277
#define MULTEQ 278
#define DIVEQ 279
#define MODEQ 280
#define JUMP 281
#define XBEGIN 282
#define XEND 283
#define NL 284
#define PRINT 285
#define PRINTF 286
#define SPRINTF 287
#define SPLIT 288
#define IF 289
#define ELSE 290
#define WHILE 291
#define FOR 292
#define IN 293
#define NEXT 294
#define EXIT 295
#define BREAK 296
#define CONTINUE 297
#define PROGRAM 298
#define PASTAT 299
#define PASTAT2 300
#define REGEXPR 301
#define ASGNOP 302
#define BOR 303
#define AND 304
#define NOT 305
#define NUMBER 306
#define VAR 307
#define ARRAY 308
#define FNCN 309
#define SUBSTR 310
#define LSUBSTR 311
#define INDEX 312
#define GETLINE 313
#define RELOP 314
#define MATCHOP 315
#define OR 316
#define STRING 317
#define DOT 318
#define CCL 319
#define NCCL 320
#define CHAR 321
#define CAT 322
#define STAR 323
#define PLUS 324
#define QUEST 325
#define POSTINCR 326
#define PREINCR 327
#define POSTDECR 328
#define PREDECR 329
#define INCR 330
#define DECR 331
#define FIELD 332
#define INDIRECT 333
#define LASTTOKEN 334
#define YYERRCODE 256
short yylhs[] = { -1,
0, 0, 1, 1, 1, 3, 3, 3, 5, 5,
5, 5, 7, 7, 7, 7, 6, 6, 6, 6,
12, 14, 14, 16, 11, 11, 18, 18, 18, 18,
18, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 9, 9, 9, 13, 13, 20,
20, 20, 20, 20, 2, 2, 2, 8, 8, 8,
8, 19, 19, 19, 22, 22, 22, 23, 23, 24,
17, 10, 10, 21, 21, 25, 25, 25, 25, 25,
25, 25, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 4, 4, 27, 28, 28, 28,
};
short yylen[] = { 2,
3, 1, 4, 2, 0, 4, 2, 0, 3, 3,
2, 3, 3, 3, 2, 3, 1, 1, 1, 1,
2, 1, 2, 5, 3, 3, 1, 1, 1, 4,
1, 1, 1, 1, 3, 4, 2, 8, 6, 8,
6, 6, 3, 3, 3, 3, 3, 3, 2, 2,
2, 2, 2, 2, 1, 2, 3, 1, 0, 1,
4, 3, 6, 3, 3, 0, 2, 1, 1, 1,
1, 1, 1, 0, 3, 3, 3, 1, 1, 0,
4, 3, 3, 1, 1, 4, 2, 4, 2, 1,
0, 1, 2, 2, 4, 2, 1, 2, 2, 3,
2, 2, 3, 2, 0, 5, 10, 9, 8,
};
short yydefred[] = { 0,
2, 0, 0, 0, 105, 4, 0, 0, 0, 0,
0, 0, 27, 0, 0, 0, 0, 33, 28, 0,
0, 0, 80, 0, 0, 22, 0, 105, 0, 71,
0, 0, 69, 70, 31, 0, 68, 0, 0, 92,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
105, 3, 0, 0, 0, 104, 0, 97, 105, 0,
0, 37, 0, 0, 15, 0, 0, 0, 0, 0,
0, 0, 0, 0, 50, 0, 49, 0, 51, 52,
23, 0, 7, 0, 0, 105, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 53, 54, 84, 85,
65, 0, 0, 0, 0, 0, 98, 0, 99, 101,
102, 0, 0, 0, 93, 96, 0, 0, 0, 0,
0, 0, 0, 35, 0, 0, 0, 16, 43, 83,
26, 0, 64, 0, 14, 0, 0, 0, 25, 0,
0, 46, 47, 48, 0, 78, 79, 0, 0, 0,
0, 20, 0, 0, 18, 19, 0, 0, 0, 100,
103, 0, 0, 6, 77, 0, 0, 0, 30, 36,
0, 0, 81, 61, 105, 0, 0, 11, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 58,
21, 95, 0, 0, 0, 0, 12, 0, 10, 24,
106, 0, 0, 0, 41, 0, 39, 0, 42, 63,
0, 0, 0, 0, 0, 0, 0, 0, 40, 38,
109, 0, 0, 108, 0, 107,
};
short yydgoto[] = { 3,
4, 7, 29, 8, 152, 153, 30, 31, 53, 155,
156, 163, 191, 35, 36, 54, 37, 38, 62, 39,
101, 63, 148, 78, 55, 56, 57, 58,
};
short yysindex[] = { -217,
0, -100, 0, -226, 0, 0, 455, 1214, -57, 2356,
32, 1802, 0, -4, 49, 65, 67, 0, 0, 1802,
2396, 2396, 0, -127, -127, 0, 2396, 0, -169, 0,
-33, 285, 0, 0, 0, 200, 0, -262, -52, 0,
2356, 2356, 77, 88, 93, -52, 1836, -52, -52, 2396,
0, 0, 2396, 1631, -52, 0, 1631, 0, 0, 2356,
2001, 0, 91, 2396, 0, 2396, 2010, 2396, 2396, 99,
-229, 1667, 101, 116, 0, -245, 0, -143, 0, 0,
0, 1293, 0, 1802, 1802, 0, 1802, 2396, 114, 200,
2396, 2396, 2396, 2396, 2396, 2396, 0, 0, 0, 0,
0, -104, -104, 2048, 2048, 1703, 0, 1836, 0, 0,
0, 2057, 1351, -123, 0, 0, 1409, 1870, -19, 2396,
2396, 2085, 2116, 0, 2165, 2177, 2212, 0, 0, 0,
0, 122, 0, -141, 0, 1472, -102, -37, 0, 56,
56, 0, 0, 0, 2396, 0, 0, 2396, 2396, 2048,
2048, 0, -36, 285, 0, 0, -13, -81, 118, 0,
0, -112, 1631, 0, 0, 2396, 2396, -120, 0, 0,
2396, 2396, 0, 0, 0, 2396, 2396, 0, 148, -207,
1667, 101, 116, 2048, 2048, -112, -112, -116, 1906, 0,
0, 0, 12, 1961, 2240, 1527, 0, -111, 0, 0,
0, 151, 1752, -55, 0, 2396, 0, 2396, 0, 0,
-112, 155, 1752, 2306, 2365, 1631, -112, 156, 0, 0,
0, 1631, -112, 0, 1631, 0,
};
short yyrindex[] = { 387,
0, 0, 0, 712, 0, 0, 2, -40, 0, 930,
0, 0, 0, 1, 36, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 203, 0,
619, 0, 0, 0, 0, 511, 0, 141, 763, 0,
-32, -32, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, -29, -40, 0, 0, -40, 0, 0, 0,
1078, 0, 71, 0, 0, 0, 0, 0, 0, -204,
0, 0, -194, -184, 0, 106, 0, 0, 0, 0,
0, -40, 0, 0, 0, 0, 0, 0, 0, 549,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, -27, -26, 0, 0, 145, 0, 0, 0, 0,
0, 0, -40, 1150, 0, 0, -40, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 584, 0, -40, 681, 1008, 0, 176,
233, 0, 0, 0, 938, 0, 0, 0, 0, 0,
0, 0, 0, -41, 0, 0, 0, 1098, 0, 0,
0, 1576, -40, 0, 0, 1040, 1063, 0, 0, 0,
0, 0, 0, 0, 0, -25, -24, 0, -182, 0,
-177, -165, -159, 0, 0, 1576, 1576, 0, 0, 0,
0, 0, 0, 0, 0, -40, 0, -28, 0, 0,
0, 0, 166, 0, 0, 0, 0, 0, 0, 0,
1576, 0, 166, 0, 0, -40, 1576, 0, 0, 0,
0, -40, 1576, 0, -40, 0,
};
short yygindex[] = { 0,
0, 0, 0, -2, 57, -14, 191, 154, 2700, 17,
47, 0, -135, 0, 2880, 0, 124, 2801, 113, 0,
15, 162, 111, 0, -51, -7, 0, 0,
};
#define YYTABLESIZE 3095
short yytable[] = { 17,
29, 8, 50, 213, 186, 21, 100, 22, 74, 66,
87, 90, 9, 87, 89, 86, 88, 17, 91, 147,
175, 165, 5, 33, 121, 82, 74, 187, 33, 90,
9, 87, 89, 86, 88, 34, 73, 29, 1, 96,
29, 29, 29, 29, 29, 29, 114, 29, 113, 116,
200, 201, 205, 34, 159, 206, 117, 6, 34, 29,
107, 109, 110, 111, 2, 59, 74, 97, 98, 115,
73, 64, 34, 84, 85, 216, 34, 34, 34, 34,
34, 222, 34, 136, 97, 98, 66, 225, 67, 86,
157, 74, 95, 29, 34, 184, 185, 93, 71, 71,
33, 33, 94, 33, 68, 32, 69, 73, 69, 69,
73, 73, 73, 73, 83, 73, 104, 73, 70, 70,
20, 20, 160, 29, 29, 17, 17, 105, 34, 73,
34, 34, 106, 34, 121, 178, 180, 18, 18, 128,
32, 130, 32, 19, 19, 32, 32, 32, 32, 32,
32, 212, 32, 102, 103, 192, 131, 132, 34, 34,
23, 218, 85, 73, 32, 65, 162, 182, 173, 198,
199, 190, 196, 71, 204, 44, 189, 32, 13, 14,
32, 32, 32, 32, 32, 32, 193, 32, 197, 19,
202, 211, 185, 73, 73, 217, 223, 183, 32, 32,
84, 85, 1, 91, 26, 27, 91, 179, 221, 146,
70, 188, 139, 149, 224, 44, 44, 226, 44, 44,
44, 119, 0, 0, 0, 0, 0, 0, 32, 32,
0, 99, 45, 32, 44, 0, 95, 134, 135, 0,
137, 93, 91, 91, 92, 0, 94, 184, 185, 10,
11, 74, 0, 0, 90, 0, 87, 89, 86, 88,
0, 17, 17, 32, 32, 0, 184, 185, 44, 84,
85, 0, 45, 45, 9, 45, 45, 45, 0, 19,
0, 74, 0, 29, 29, 8, 0, 29, 29, 184,
185, 45, 24, 25, 26, 27, 0, 0, 44, 44,
0, 0, 29, 29, 29, 29, 29, 29, 0, 29,
29, 0, 29, 29, 29, 29, 0, 29, 34, 34,
0, 0, 34, 34, 50, 45, 0, 21, 0, 22,
29, 29, 29, 29, 0, 0, 0, 34, 34, 34,
34, 34, 34, 0, 34, 34, 0, 34, 34, 34,
34, 0, 34, 73, 73, 45, 45, 73, 73, 0,
0, 0, 0, 0, 0, 34, 34, 34, 34, 0,
0, 0, 73, 73, 73, 73, 73, 73, 0, 73,
73, 0, 73, 73, 73, 73, 5, 73, 32, 32,
0, 0, 32, 32, 0, 0, 0, 0, 0, 0,
73, 73, 73, 73, 0, 0, 0, 32, 32, 32,
32, 32, 32, 0, 32, 32, 0, 32, 32, 32,
32, 0, 32, 32, 32, 0, 5, 32, 32, 5,
0, 5, 0, 5, 0, 0, 0, 32, 32, 0,
0, 0, 0, 32, 32, 32, 32, 32, 0, 32,
32, 0, 32, 32, 32, 32, 0, 32, 44, 44,
0, 0, 44, 44, 0, 0, 0, 0, 0, 0,
0, 0, 32, 32, 0, 0, 0, 44, 44, 44,
44, 44, 44, 0, 44, 44, 0, 44, 44, 44,
44, 0, 44, 0, 20, 0, 0, 21, 0, 22,
0, 23, 0, 0, 0, 44, 44, 44, 44, 5,
55, 0, 0, 0, 0, 45, 45, 0, 0, 45,
45, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 45, 45, 45, 45, 45, 45,
0, 45, 45, 0, 45, 45, 45, 45, 56, 45,
55, 55, 0, 0, 55, 0, 0, 0, 0, 0,
0, 0, 45, 45, 45, 45, 0, 0, 0, 55,
0, 10, 11, 0, 0, 0, 0, 28, 0, 0,
0, 0, 0, 13, 0, 0, 0, 0, 56, 56,
13, 14, 56, 15, 16, 0, 17, 18, 88, 89,
0, 19, 0, 55, 0, 0, 0, 56, 0, 0,
0, 0, 0, 0, 24, 25, 26, 27, 60, 0,
0, 0, 0, 13, 13, 0, 13, 13, 13, 0,
13, 0, 0, 55, 55, 0, 0, 0, 0, 0,
0, 56, 13, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 60, 0,
0, 60, 0, 60, 0, 60, 0, 0, 0, 5,
5, 56, 56, 5, 5, 0, 0, 60, 0, 0,
62, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 5, 5, 5, 0, 5, 5, 0, 5, 5,
0, 0, 0, 5, 0, 0, 13, 0, 0, 0,
0, 66, 0, 0, 0, 0, 5, 5, 5, 5,
62, 0, 0, 62, 0, 62, 0, 62, 0, 0,
0, 0, 0, 0, 0, 0, 0, 9, 0, 62,
0, 10, 11, 0, 0, 0, 0, 0, 0, 0,
0, 66, 0, 0, 66, 0, 66, 0, 66, 12,
13, 14, 67, 15, 16, 0, 17, 18, 0, 0,
0, 19, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 24, 25, 26, 27, 0, 0,
0, 0, 0, 55, 55, 0, 0, 55, 55, 0,
0, 0, 67, 0, 0, 67, 0, 67, 0, 67,
0, 0, 55, 55, 55, 55, 55, 55, 0, 55,
55, 0, 55, 55, 55, 55, 0, 55, 0, 0,
0, 56, 56, 0, 66, 56, 56, 0, 0, 0,
55, 55, 55, 55, 0, 0, 0, 0, 0, 0,
56, 56, 56, 56, 56, 56, 0, 56, 56, 0,
56, 56, 56, 56, 0, 56, 13, 13, 0, 0,
13, 13, 0, 0, 0, 0, 0, 0, 56, 56,
56, 56, 0, 0, 0, 67, 13, 0, 13, 13,
13, 0, 13, 13, 0, 13, 13, 0, 0, 0,
13, 60, 60, 0, 0, 60, 60, 0, 0, 0,
0, 0, 0, 13, 13, 13, 13, 0, 0, 0,
0, 0, 0, 60, 60, 60, 0, 60, 60, 74,
60, 60, 0, 0, 0, 60, 0, 57, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 60, 60,
60, 60, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 62, 62, 0, 74, 62, 62, 0,
74, 74, 0, 74, 57, 0, 74, 0, 57, 57,
0, 57, 0, 0, 57, 62, 62, 62, 74, 62,
62, 0, 62, 62, 66, 0, 57, 62, 66, 66,
0, 0, 0, 0, 0, 0, 0, 82, 0, 0,
62, 62, 62, 62, 0, 0, 66, 66, 66, 0,
66, 66, 74, 66, 66, 0, 0, 0, 66, 0,
57, 0, 0, 0, 0, 0, 0, 0, 0, 75,
0, 66, 66, 66, 66, 67, 0, 0, 82, 67,
67, 82, 74, 74, 82, 0, 0, 0, 0, 0,
57, 57, 76, 0, 0, 0, 82, 67, 67, 67,
0, 67, 67, 0, 67, 67, 75, 72, 0, 67,
75, 75, 0, 75, 0, 0, 75, 0, 0, 0,
0, 0, 67, 67, 67, 67, 0, 0, 75, 76,
0, 0, 0, 76, 76, 0, 76, 0, 0, 76,
0, 0, 0, 0, 72, 0, 0, 0, 72, 72,
0, 76, 0, 0, 72, 0, 0, 0, 0, 0,
82, 0, 75, 0, 29, 0, 72, 29, 0, 29,
29, 0, 29, 0, 29, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 76, 29, 0, 0, 0,
0, 0, 75, 75, 0, 0, 0, 0, 0, 0,
72, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 76, 76, 0, 0, 94,
0, 0, 94, 0, 94, 0, 0, 0, 0, 0,
72, 72, 0, 0, 0, 0, 0, 0, 94, 0,
0, 0, 74, 74, 0, 0, 0, 0, 0, 0,
57, 57, 0, 0, 0, 0, 0, 0, 0, 0,
0, 74, 74, 74, 74, 0, 0, 0, 0, 57,
57, 57, 57, 74, 74, 0, 0, 0, 0, 0,
0, 57, 57, 50, 0, 0, 21, 0, 22, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 94, 0, 94, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
82, 82, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
82, 82, 82, 82, 82, 0, 82, 82, 0, 82,
82, 0, 75, 75, 0, 0, 0, 0, 0, 0,
0, 0, 50, 0, 0, 21, 51, 22, 52, 0,
0, 75, 75, 75, 75, 76, 76, 0, 0, 0,
0, 0, 0, 75, 75, 0, 0, 0, 0, 0,
72, 72, 0, 0, 76, 76, 76, 76, 0, 0,
0, 0, 0, 0, 0, 0, 76, 76, 0, 72,
72, 72, 72, 0, 29, 29, 0, 0, 0, 0,
50, 72, 72, 21, 0, 22, 0, 0, 0, 29,
0, 0, 0, 29, 29, 94, 29, 29, 0, 29,
29, 0, 0, 0, 29, 51, 0, 133, 0, 0,
0, 0, 0, 0, 0, 0, 0, 29, 29, 29,
29, 0, 0, 94, 94, 94, 94, 94, 94, 0,
94, 94, 0, 94, 94, 94, 94, 0, 50, 0,
0, 21, 0, 22, 0, 94, 94, 0, 94, 94,
0, 94, 94, 0, 0, 0, 94, 0, 0, 40,
0, 0, 0, 51, 0, 161, 0, 0, 0, 94,
94, 94, 94, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 41, 42,
10, 11, 43, 0, 44, 45, 0, 46, 47, 48,
49, 50, 0, 0, 21, 0, 22, 0, 0, 13,
14, 0, 15, 16, 0, 17, 18, 0, 0, 0,
19, 51, 0, 164, 0, 0, 0, 0, 0, 0,
0, 0, 0, 24, 25, 26, 27, 0, 40, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 50, 0, 0, 21,
0, 22, 0, 0, 0, 0, 0, 41, 42, 10,
11, 43, 0, 44, 45, 0, 46, 47, 48, 49,
0, 0, 0, 0, 51, 0, 174, 0, 13, 14,
0, 15, 16, 0, 17, 18, 40, 0, 0, 19,
0, 0, 0, 0, 0, 59, 0, 0, 59, 0,
59, 0, 24, 25, 26, 27, 0, 0, 0, 0,
0, 0, 0, 0, 59, 41, 42, 10, 11, 43,
0, 44, 45, 0, 46, 47, 48, 49, 0, 51,
0, 210, 0, 0, 0, 0, 13, 14, 0, 15,
16, 0, 17, 18, 40, 0, 0, 19, 0, 0,
50, 0, 0, 21, 0, 22, 0, 0, 0, 0,
24, 25, 26, 27, 0, 0, 0, 0, 0, 0,
0, 0, 0, 41, 42, 10, 11, 43, 59, 44,
45, 0, 46, 47, 48, 49, 50, 129, 0, 21,
0, 22, 0, 0, 13, 14, 0, 15, 16, 0,
17, 18, 0, 0, 0, 19, 0, 40, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 24, 25,
26, 27, 50, 0, 0, 21, 0, 22, 0, 0,
0, 0, 0, 51, 0, 0, 41, 42, 10, 11,
43, 0, 44, 45, 0, 46, 47, 48, 49, 0,
0, 0, 0, 0, 0, 0, 0, 13, 14, 0,
15, 16, 40, 17, 18, 0, 0, 0, 19, 0,
0, 50, 0, 0, 21, 0, 22, 0, 0, 0,
0, 24, 25, 26, 27, 0, 0, 0, 0, 0,
0, 41, 42, 10, 11, 43, 0, 44, 45, 0,
46, 47, 48, 49, 0, 0, 0, 0, 0, 0,
0, 59, 13, 14, 0, 15, 16, 0, 17, 18,
0, 20, 0, 19, 21, 0, 22, 0, 23, 0,
0, 0, 0, 0, 0, 0, 24, 25, 26, 27,
59, 59, 59, 59, 59, 0, 59, 59, 0, 59,
59, 59, 59, 0, 0, 50, 0, 0, 21, 0,
22, 59, 59, 0, 59, 59, 40, 59, 59, 0,
0, 0, 59, 0, 100, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 59, 59, 59, 59, 50,
129, 0, 21, 120, 22, 41, 42, 10, 11, 43,
0, 44, 45, 0, 46, 47, 48, 49, 0, 0,
0, 0, 0, 0, 0, 0, 13, 14, 0, 15,
16, 0, 17, 18, 0, 151, 0, 19, 21, 0,
22, 0, 0, 10, 11, 0, 0, 0, 40, 0,
24, 25, 26, 27, 203, 0, 0, 0, 0, 0,
0, 0, 13, 14, 0, 15, 16, 0, 17, 18,
88, 89, 0, 19, 0, 0, 0, 41, 42, 10,
11, 0, 0, 0, 0, 0, 24, 25, 26, 27,
50, 207, 0, 21, 208, 22, 0, 40, 13, 158,
0, 15, 16, 0, 17, 18, 0, 0, 0, 19,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 24, 25, 26, 27, 41, 42, 10, 11,
50, 0, 0, 21, 120, 22, 0, 0, 0, 50,
124, 0, 21, 0, 22, 0, 0, 13, 14, 0,
15, 16, 0, 17, 18, 0, 0, 0, 19, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 24, 25, 26, 27, 0, 0, 151, 10, 11,
21, 0, 22, 0, 0, 0, 50, 129, 0, 21,
0, 22, 0, 0, 0, 0, 12, 13, 14, 0,
15, 16, 0, 17, 18, 0, 0, 0, 19, 99,
0, 0, 10, 11, 50, 0, 0, 21, 168, 22,
0, 24, 25, 26, 27, 0, 0, 0, 0, 0,
0, 13, 14, 0, 15, 16, 0, 17, 18, 0,
0, 0, 19, 0, 0, 50, 10, 11, 21, 0,
22, 0, 0, 0, 0, 24, 25, 26, 27, 0,
0, 0, 0, 0, 0, 13, 14, 0, 15, 16,
0, 17, 18, 0, 0, 0, 19, 0, 0, 0,
0, 0, 10, 11, 0, 0, 0, 0, 0, 24,
25, 26, 27, 0, 50, 170, 0, 21, 169, 22,
150, 13, 14, 0, 15, 16, 50, 17, 18, 21,
171, 22, 19, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 24, 25, 26, 27, 0,
0, 0, 0, 0, 0, 0, 0, 10, 11, 0,
0, 50, 0, 0, 21, 172, 22, 0, 0, 0,
0, 0, 0, 0, 0, 0, 13, 14, 0, 15,
16, 0, 17, 18, 0, 0, 0, 19, 0, 50,
209, 0, 21, 0, 22, 0, 0, 10, 11, 0,
24, 25, 26, 27, 0, 0, 10, 11, 0, 0,
0, 0, 0, 0, 0, 0, 13, 14, 0, 15,
16, 0, 17, 18, 0, 13, 14, 19, 15, 16,
0, 17, 18, 0, 0, 0, 19, 0, 0, 0,
24, 25, 26, 27, 10, 11, 0, 0, 0, 24,
25, 26, 27, 10, 11, 50, 219, 0, 21, 0,
22, 0, 150, 13, 14, 0, 15, 16, 0, 17,
18, 0, 13, 14, 19, 15, 16, 0, 17, 18,
0, 10, 11, 19, 0, 0, 0, 24, 25, 26,
27, 0, 0, 0, 0, 0, 24, 25, 26, 27,
13, 14, 0, 15, 16, 60, 17, 18, 21, 0,
22, 19, 10, 11, 50, 220, 0, 21, 0, 22,
0, 0, 0, 0, 24, 25, 26, 27, 0, 0,
0, 13, 14, 0, 15, 16, 0, 17, 18, 0,
0, 0, 19, 0, 0, 50, 0, 0, 21, 0,
22, 0, 0, 0, 0, 24, 25, 26, 27, 0,
0, 10, 11, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 10, 11, 0, 0, 0, 0, 0,
13, 14, 0, 15, 16, 0, 17, 18, 0, 0,
0, 19, 13, 14, 0, 15, 16, 0, 17, 18,
0, 0, 0, 19, 24, 25, 26, 27, 10, 11,
0, 0, 0, 0, 0, 0, 24, 25, 26, 27,
0, 0, 0, 0, 0, 0, 0, 13, 14, 0,
15, 16, 0, 17, 18, 0, 10, 11, 19, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 24, 25, 26, 27, 13, 14, 0, 15, 16,
0, 17, 18, 0, 0, 0, 19, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 24,
25, 26, 27, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 10, 11, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 13, 14, 0, 15, 16, 0, 17, 18, 0,
0, 0, 19, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 24, 25, 26, 27, 0,
0, 0, 10, 11, 0, 0, 0, 0, 0, 0,
0, 10, 11, 0, 0, 0, 0, 0, 0, 0,
0, 13, 14, 0, 15, 16, 0, 17, 18, 0,
13, 14, 19, 15, 16, 0, 17, 18, 0, 0,
0, 19, 10, 11, 0, 24, 25, 26, 27, 0,
0, 0, 0, 0, 24, 25, 26, 27, 0, 0,
0, 13, 14, 0, 15, 16, 32, 17, 18, 61,
0, 32, 19, 0, 0, 0, 0, 0, 0, 72,
0, 0, 0, 0, 0, 24, 25, 26, 27, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
61, 61, 0, 0, 0, 0, 108, 0, 0, 112,
0, 0, 0, 0, 0, 0, 0, 0, 0, 118,
0, 0, 0, 122, 0, 123, 125, 126, 127, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 32, 32, 0, 32, 138, 0, 0,
0, 0, 0, 0, 0, 145, 0, 0, 0, 0,
0, 0, 0, 154, 154, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 166,
167, 76, 76, 0, 79, 80, 0, 76, 0, 0,
0, 0, 76, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 176, 177, 154,
181, 0, 0, 76, 0, 0, 0, 0, 0, 0,
0, 76, 0, 0, 0, 0, 0, 0, 0, 0,
194, 195, 76, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 154, 154, 0, 0, 0, 154, 0,
0, 76, 76, 76, 76, 76, 0, 0, 0, 0,
75, 77, 0, 0, 0, 214, 81, 215, 76, 0,
0, 90, 76, 0, 0, 0, 0, 0, 76, 0,
0, 0, 76, 76, 0, 76, 76, 76, 0, 0,
0, 0, 90, 0, 0, 0, 0, 0, 76, 0,
90, 0, 0, 0, 0, 76, 0, 0, 0, 0,
0, 90, 0, 0, 76, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 76, 76, 0, 0,
140, 141, 142, 143, 144, 0, 76, 76, 0, 0,
0, 76, 0, 0, 0, 0, 0, 90, 0, 0,
0, 90, 0, 0, 76, 76, 0, 90, 0, 0,
0, 90, 90, 0, 90, 90, 90, 0, 0, 0,
0, 0, 0, 0, 76, 76, 0, 90, 0, 0,
0, 0, 0, 0, 90, 0, 0, 0, 0, 0,
0, 0, 0, 90, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 90, 90, 0, 0, 0,
0, 0, 0, 0, 0, 90, 90, 0, 0, 0,
90, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 90, 90, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 90, 90,
};
short yycheck[] = { 41,
0, 0, 40, 59, 41, 43, 59, 45, 41, 91,
44, 41, 41, 41, 41, 41, 41, 59, 59, 124,
123, 41, 123, 7, 44, 28, 59, 41, 12, 59,
59, 59, 59, 59, 59, 0, 20, 37, 256, 302,
40, 41, 42, 43, 44, 45, 54, 47, 51, 57,
186, 187, 41, 7, 106, 44, 59, 284, 12, 59,
46, 47, 48, 49, 282, 123, 20, 330, 331, 55,
0, 40, 37, 303, 304, 211, 41, 42, 43, 44,
45, 217, 47, 86, 330, 331, 91, 223, 40, 123,
105, 124, 37, 93, 59, 303, 304, 42, 303, 304,
84, 85, 47, 87, 40, 0, 40, 37, 303, 304,
40, 41, 42, 43, 284, 45, 40, 47, 303, 304,
303, 304, 108, 123, 124, 303, 304, 40, 93, 59,
84, 85, 40, 87, 44, 150, 151, 303, 304, 41,
0, 41, 37, 303, 304, 40, 41, 42, 43, 44,
45, 203, 47, 41, 42, 163, 41, 301, 123, 124,
47, 213, 304, 93, 59, 12, 290, 151, 47, 184,
185, 284, 175, 20, 189, 0, 59, 37, 306, 307,
40, 41, 42, 43, 44, 45, 307, 47, 41, 317,
307, 41, 304, 123, 124, 41, 41, 151, 93, 59,
303, 304, 0, 59, 332, 333, 41, 151, 216, 314,
20, 293, 89, 103, 222, 40, 41, 225, 43, 44,
45, 60, -1, -1, -1, -1, -1, -1, 123, 124,
-1, 284, 0, 93, 59, -1, 37, 84, 85, -1,
87, 42, 43, 284, 45, -1, 47, 303, 304, 287,
288, 284, -1, -1, 284, -1, 284, 284, 284, 284,
-1, 303, 304, 123, 124, -1, 303, 304, 93, 303,
304, -1, 40, 41, 303, 43, 44, 45, -1, 317,
-1, 314, -1, 283, 284, 284, -1, 287, 288, 303,
304, 59, 330, 331, 332, 333, -1, -1, 123, 124,
-1, -1, 302, 303, 304, 305, 306, 307, -1, 309,
310, -1, 312, 313, 314, 315, -1, 317, 283, 284,
-1, -1, 287, 288, 40, 93, -1, 43, -1, 45,
330, 331, 332, 333, -1, -1, -1, 302, 303, 304,
305, 306, 307, -1, 309, 310, -1, 312, 313, 314,
315, -1, 317, 283, 284, 123, 124, 287, 288, -1,
-1, -1, -1, -1, -1, 330, 331, 332, 333, -1,
-1, -1, 302, 303, 304, 305, 306, 307, -1, 309,
310, -1, 312, 313, 314, 315, 0, 317, 283, 284,
-1, -1, 287, 288, -1, -1, -1, -1, -1, -1,
330, 331, 332, 333, -1, -1, -1, 302, 303, 304,
305, 306, 307, -1, 309, 310, -1, 312, 313, 314,
315, -1, 317, 283, 284, -1, 40, 287, 288, 43,
-1, 45, -1, 47, -1, -1, -1, 332, 333, -1,
-1, -1, -1, 303, 304, 305, 306, 307, -1, 309,
310, -1, 312, 313, 314, 315, -1, 317, 283, 284,
-1, -1, 287, 288, -1, -1, -1, -1, -1, -1,
-1, -1, 332, 333, -1, -1, -1, 302, 303, 304,
305, 306, 307, -1, 309, 310, -1, 312, 313, 314,
315, -1, 317, -1, 40, -1, -1, 43, -1, 45,
-1, 47, -1, -1, -1, 330, 331, 332, 333, 123,
0, -1, -1, -1, -1, 283, 284, -1, -1, 287,
288, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 302, 303, 304, 305, 306, 307,
-1, 309, 310, -1, 312, 313, 314, 315, 0, 317,
40, 41, -1, -1, 44, -1, -1, -1, -1, -1,
-1, -1, 330, 331, 332, 333, -1, -1, -1, 59,
-1, 287, 288, -1, -1, -1, -1, 123, -1, -1,
-1, -1, -1, 0, -1, -1, -1, -1, 40, 41,
306, 307, 44, 309, 310, -1, 312, 313, 314, 315,
-1, 317, -1, 93, -1, -1, -1, 59, -1, -1,
-1, -1, -1, -1, 330, 331, 332, 333, 0, -1,
-1, -1, -1, 40, 41, -1, 43, 44, 45, -1,
47, -1, -1, 123, 124, -1, -1, -1, -1, -1,
-1, 93, 59, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 40, -1,
-1, 43, -1, 45, -1, 47, -1, -1, -1, 283,
284, 123, 124, 287, 288, -1, -1, 59, -1, -1,
0, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 305, 306, 307, -1, 309, 310, -1, 312, 313,
-1, -1, -1, 317, -1, -1, 123, -1, -1, -1,
-1, 0, -1, -1, -1, -1, 330, 331, 332, 333,
40, -1, -1, 43, -1, 45, -1, 47, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 283, -1, 59,
-1, 287, 288, -1, -1, -1, -1, -1, -1, -1,
-1, 40, -1, -1, 43, -1, 45, -1, 47, 305,
306, 307, 0, 309, 310, -1, 312, 313, -1, -1,
-1, 317, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 330, 331, 332, 333, -1, -1,
-1, -1, -1, 283, 284, -1, -1, 287, 288, -1,
-1, -1, 40, -1, -1, 43, -1, 45, -1, 47,
-1, -1, 302, 303, 304, 305, 306, 307, -1, 309,
310, -1, 312, 313, 314, 315, -1, 317, -1, -1,
-1, 283, 284, -1, 123, 287, 288, -1, -1, -1,
330, 331, 332, 333, -1, -1, -1, -1, -1, -1,
302, 303, 304, 305, 306, 307, -1, 309, 310, -1,
312, 313, 314, 315, -1, 317, 283, 284, -1, -1,
287, 288, -1, -1, -1, -1, -1, -1, 330, 331,
332, 333, -1, -1, -1, 123, 303, -1, 305, 306,
307, -1, 309, 310, -1, 312, 313, -1, -1, -1,
317, 283, 284, -1, -1, 287, 288, -1, -1, -1,
-1, -1, -1, 330, 331, 332, 333, -1, -1, -1,
-1, -1, -1, 305, 306, 307, -1, 309, 310, 0,
312, 313, -1, -1, -1, 317, -1, 0, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 330, 331,
332, 333, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 283, 284, -1, 37, 287, 288, -1,
41, 42, -1, 44, 37, -1, 47, -1, 41, 42,
-1, 44, -1, -1, 47, 305, 306, 307, 59, 309,
310, -1, 312, 313, 283, -1, 59, 317, 287, 288,
-1, -1, -1, -1, -1, -1, -1, 0, -1, -1,
330, 331, 332, 333, -1, -1, 305, 306, 307, -1,
309, 310, 93, 312, 313, -1, -1, -1, 317, -1,
93, -1, -1, -1, -1, -1, -1, -1, -1, 0,
-1, 330, 331, 332, 333, 283, -1, -1, 41, 287,
288, 44, 123, 124, 47, -1, -1, -1, -1, -1,
123, 124, 0, -1, -1, -1, 59, 305, 306, 307,
-1, 309, 310, -1, 312, 313, 37, 0, -1, 317,
41, 42, -1, 44, -1, -1, 47, -1, -1, -1,
-1, -1, 330, 331, 332, 333, -1, -1, 59, 37,
-1, -1, -1, 41, 42, -1, 44, -1, -1, 47,
-1, -1, -1, -1, 37, -1, -1, -1, 41, 42,
-1, 59, -1, -1, 47, -1, -1, -1, -1, -1,
123, -1, 93, -1, 37, -1, 59, 40, -1, 42,
43, -1, 45, -1, 47, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 93, 59, -1, -1, -1,
-1, -1, 123, 124, -1, -1, -1, -1, -1, -1,
93, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 123, 124, -1, -1, 40,
-1, -1, 43, -1, 45, -1, -1, -1, -1, -1,
123, 124, -1, -1, -1, -1, -1, -1, 59, -1,
-1, -1, 283, 284, -1, -1, -1, -1, -1, -1,
283, 284, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 302, 303, 304, 305, -1, -1, -1, -1, 302,
303, 304, 305, 314, 315, -1, -1, -1, -1, -1,
-1, 314, 315, 40, -1, -1, 43, -1, 45, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 123, -1, 125, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
283, 284, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
303, 304, 305, 306, 307, -1, 309, 310, -1, 312,
313, -1, 283, 284, -1, -1, -1, -1, -1, -1,
-1, -1, 40, -1, -1, 43, 123, 45, 125, -1,
-1, 302, 303, 304, 305, 283, 284, -1, -1, -1,
-1, -1, -1, 314, 315, -1, -1, -1, -1, -1,
283, 284, -1, -1, 302, 303, 304, 305, -1, -1,
-1, -1, -1, -1, -1, -1, 314, 315, -1, 302,
303, 304, 305, -1, 287, 288, -1, -1, -1, -1,
40, 314, 315, 43, -1, 45, -1, -1, -1, 302,
-1, -1, -1, 306, 307, 256, 309, 310, -1, 312,
313, -1, -1, -1, 317, 123, -1, 125, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 330, 331, 332,
333, -1, -1, 284, 285, 286, 287, 288, 289, -1,
291, 292, -1, 294, 295, 296, 297, -1, 40, -1,
-1, 43, -1, 45, -1, 306, 307, -1, 309, 310,
-1, 312, 313, -1, -1, -1, 317, -1, -1, 256,
-1, -1, -1, 123, -1, 125, -1, -1, -1, 330,
331, 332, 333, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 285, 286,
287, 288, 289, -1, 291, 292, -1, 294, 295, 296,
297, 40, -1, -1, 43, -1, 45, -1, -1, 306,
307, -1, 309, 310, -1, 312, 313, -1, -1, -1,
317, 123, -1, 125, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 330, 331, 332, 333, -1, 256, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 40, -1, -1, 43,
-1, 45, -1, -1, -1, -1, -1, 285, 286, 287,
288, 289, -1, 291, 292, -1, 294, 295, 296, 297,
-1, -1, -1, -1, 123, -1, 125, -1, 306, 307,
-1, 309, 310, -1, 312, 313, 256, -1, -1, 317,
-1, -1, -1, -1, -1, 40, -1, -1, 43, -1,
45, -1, 330, 331, 332, 333, -1, -1, -1, -1,
-1, -1, -1, -1, 59, 285, 286, 287, 288, 289,
-1, 291, 292, -1, 294, 295, 296, 297, -1, 123,
-1, 125, -1, -1, -1, -1, 306, 307, -1, 309,
310, -1, 312, 313, 256, -1, -1, 317, -1, -1,
40, -1, -1, 43, -1, 45, -1, -1, -1, -1,
330, 331, 332, 333, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 285, 286, 287, 288, 289, 123, 291,
292, -1, 294, 295, 296, 297, 40, 41, -1, 43,
-1, 45, -1, -1, 306, 307, -1, 309, 310, -1,
312, 313, -1, -1, -1, 317, -1, 256, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 330, 331,
332, 333, 40, -1, -1, 43, -1, 45, -1, -1,
-1, -1, -1, 123, -1, -1, 285, 286, 287, 288,
289, -1, 291, 292, -1, 294, 295, 296, 297, -1,
-1, -1, -1, -1, -1, -1, -1, 306, 307, -1,
309, 310, 256, 312, 313, -1, -1, -1, 317, -1,
-1, 40, -1, -1, 43, -1, 45, -1, -1, -1,
-1, 330, 331, 332, 333, -1, -1, -1, -1, -1,
-1, 285, 286, 287, 288, 289, -1, 291, 292, -1,
294, 295, 296, 297, -1, -1, -1, -1, -1, -1,
-1, 256, 306, 307, -1, 309, 310, -1, 312, 313,
-1, 40, -1, 317, 43, -1, 45, -1, 47, -1,
-1, -1, -1, -1, -1, -1, 330, 331, 332, 333,
285, 286, 287, 288, 289, -1, 291, 292, -1, 294,
295, 296, 297, -1, -1, 40, -1, -1, 43, -1,
45, 306, 307, -1, 309, 310, 256, 312, 313, -1,
-1, -1, 317, -1, 59, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 330, 331, 332, 333, 40,
41, -1, 43, 44, 45, 285, 286, 287, 288, 289,
-1, 291, 292, -1, 294, 295, 296, 297, -1, -1,
-1, -1, -1, -1, -1, -1, 306, 307, -1, 309,
310, -1, 312, 313, -1, 40, -1, 317, 43, -1,
45, -1, -1, 287, 288, -1, -1, -1, 256, -1,
330, 331, 332, 333, 59, -1, -1, -1, -1, -1,
-1, -1, 306, 307, -1, 309, 310, -1, 312, 313,
314, 315, -1, 317, -1, -1, -1, 285, 286, 287,
288, -1, -1, -1, -1, -1, 330, 331, 332, 333,
40, 41, -1, 43, 44, 45, -1, 256, 306, 307,
-1, 309, 310, -1, 312, 313, -1, -1, -1, 317,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 330, 331, 332, 333, 285, 286, 287, 288,
40, -1, -1, 43, 44, 45, -1, -1, -1, 40,
41, -1, 43, -1, 45, -1, -1, 306, 307, -1,
309, 310, -1, 312, 313, -1, -1, -1, 317, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 330, 331, 332, 333, -1, -1, 40, 287, 288,
43, -1, 45, -1, -1, -1, 40, 41, -1, 43,
-1, 45, -1, -1, -1, -1, 305, 306, 307, -1,
309, 310, -1, 312, 313, -1, -1, -1, 317, 284,
-1, -1, 287, 288, 40, -1, -1, 43, 44, 45,
-1, 330, 331, 332, 333, -1, -1, -1, -1, -1,
-1, 306, 307, -1, 309, 310, -1, 312, 313, -1,
-1, -1, 317, -1, -1, 40, 287, 288, 43, -1,
45, -1, -1, -1, -1, 330, 331, 332, 333, -1,
-1, -1, -1, -1, -1, 306, 307, -1, 309, 310,
-1, 312, 313, -1, -1, -1, 317, -1, -1, -1,
-1, -1, 287, 288, -1, -1, -1, -1, -1, 330,
331, 332, 333, -1, 40, 41, -1, 43, 93, 45,
305, 306, 307, -1, 309, 310, 40, 312, 313, 43,
44, 45, 317, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 330, 331, 332, 333, -1,
-1, -1, -1, -1, -1, -1, -1, 287, 288, -1,
-1, 40, -1, -1, 43, 44, 45, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 306, 307, -1, 309,
310, -1, 312, 313, -1, -1, -1, 317, -1, 40,
41, -1, 43, -1, 45, -1, -1, 287, 288, -1,
330, 331, 332, 333, -1, -1, 287, 288, -1, -1,
-1, -1, -1, -1, -1, -1, 306, 307, -1, 309,
310, -1, 312, 313, -1, 306, 307, 317, 309, 310,
-1, 312, 313, -1, -1, -1, 317, -1, -1, -1,
330, 331, 332, 333, 287, 288, -1, -1, -1, 330,
331, 332, 333, 287, 288, 40, 41, -1, 43, -1,
45, -1, 305, 306, 307, -1, 309, 310, -1, 312,
313, -1, 306, 307, 317, 309, 310, -1, 312, 313,
-1, 287, 288, 317, -1, -1, -1, 330, 331, 332,
333, -1, -1, -1, -1, -1, 330, 331, 332, 333,
306, 307, -1, 309, 310, 40, 312, 313, 43, -1,
45, 317, 287, 288, 40, 41, -1, 43, -1, 45,
-1, -1, -1, -1, 330, 331, 332, 333, -1, -1,
-1, 306, 307, -1, 309, 310, -1, 312, 313, -1,
-1, -1, 317, -1, -1, 40, -1, -1, 43, -1,
45, -1, -1, -1, -1, 330, 331, 332, 333, -1,
-1, 287, 288, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 287, 288, -1, -1, -1, -1, -1,
306, 307, -1, 309, 310, -1, 312, 313, -1, -1,
-1, 317, 306, 307, -1, 309, 310, -1, 312, 313,
-1, -1, -1, 317, 330, 331, 332, 333, 287, 288,
-1, -1, -1, -1, -1, -1, 330, 331, 332, 333,
-1, -1, -1, -1, -1, -1, -1, 306, 307, -1,
309, 310, -1, 312, 313, -1, 287, 288, 317, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 330, 331, 332, 333, 306, 307, -1, 309, 310,
-1, 312, 313, -1, -1, -1, 317, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 330,
331, 332, 333, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 287, 288, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 306, 307, -1, 309, 310, -1, 312, 313, -1,
-1, -1, 317, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 330, 331, 332, 333, -1,
-1, -1, 287, 288, -1, -1, -1, -1, -1, -1,
-1, 287, 288, -1, -1, -1, -1, -1, -1, -1,
-1, 306, 307, -1, 309, 310, -1, 312, 313, -1,
306, 307, 317, 309, 310, -1, 312, 313, -1, -1,
-1, 317, 287, 288, -1, 330, 331, 332, 333, -1,
-1, -1, -1, -1, 330, 331, 332, 333, -1, -1,
-1, 306, 307, -1, 309, 310, 7, 312, 313, 10,
-1, 12, 317, -1, -1, -1, -1, -1, -1, 20,
-1, -1, -1, -1, -1, 330, 331, 332, 333, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
41, 42, -1, -1, -1, -1, 47, -1, -1, 50,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 60,
-1, -1, -1, 64, -1, 66, 67, 68, 69, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 84, 85, -1, 87, 88, -1, -1,
-1, -1, -1, -1, -1, 96, -1, -1, -1, -1,
-1, -1, -1, 104, 105, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 120,
121, 21, 22, -1, 24, 25, -1, 27, -1, -1,
-1, -1, 32, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 148, 149, 150,
151, -1, -1, 53, -1, -1, -1, -1, -1, -1,
-1, 61, -1, -1, -1, -1, -1, -1, -1, -1,
171, 172, 72, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 184, 185, -1, -1, -1, 189, -1,
-1, 91, 92, 93, 94, 95, -1, -1, -1, -1,
21, 22, -1, -1, -1, 206, 27, 208, 108, -1,
-1, 32, 112, -1, -1, -1, -1, -1, 118, -1,
-1, -1, 122, 123, -1, 125, 126, 127, -1, -1,
-1, -1, 53, -1, -1, -1, -1, -1, 138, -1,
61, -1, -1, -1, -1, 145, -1, -1, -1, -1,
-1, 72, -1, -1, 154, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 166, 167, -1, -1,
91, 92, 93, 94, 95, -1, 176, 177, -1, -1,
-1, 181, -1, -1, -1, -1, -1, 108, -1, -1,
-1, 112, -1, -1, 194, 195, -1, 118, -1, -1,
-1, 122, 123, -1, 125, 126, 127, -1, -1, -1,
-1, -1, -1, -1, 214, 215, -1, 138, -1, -1,
-1, -1, -1, -1, 145, -1, -1, -1, -1, -1,
-1, -1, -1, 154, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 166, 167, -1, -1, -1,
-1, -1, -1, -1, -1, 176, 177, -1, -1, -1,
181, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 194, 195, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 214, 215,
};
#define YYFINAL 3
#ifndef YYDEBUG
#define YYDEBUG 0
#endif
#define YYMAXTOKEN 334
#if YYDEBUG
char *yyname[] = {
"end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,"'$'","'%'",0,0,"'('","')'","'*'","'+'","','","'-'",0,"'/'",0,0,0,0,0,0,0,0,
0,0,0,"';'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"'['",
0,"']'","'^'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"'{'",
"'|'","'}'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"FIRSTTOKEN","FINAL","FATAL","LT","LE","GT",
"GE","EQ","NE","MATCH","NOTMATCH","APPEND","ADD","MINUS","MULT","DIVIDE","MOD",
"UMINUS","ASSIGN","ADDEQ","SUBEQ","MULTEQ","DIVEQ","MODEQ","JUMP","XBEGIN",
"XEND","NL","PRINT","PRINTF","SPRINTF","SPLIT","IF","ELSE","WHILE","FOR","IN",
"NEXT","EXIT","BREAK","CONTINUE","PROGRAM","PASTAT","PASTAT2","REGEXPR",
"ASGNOP","BOR","AND","NOT","NUMBER","VAR","ARRAY","FNCN","SUBSTR","LSUBSTR",
"INDEX","GETLINE","RELOP","MATCHOP","OR","STRING","DOT","CCL","NCCL","CHAR",
"CAT","STAR","PLUS","QUEST","POSTINCR","PREINCR","POSTDECR","PREDECR","INCR",
"DECR","FIELD","INDIRECT","LASTTOKEN",
};
char *yyrule[] = {
"$accept : program",
"program : begin pa_stats end",
"program : error",
"begin : XBEGIN '{' stat_list '}'",
"begin : begin NL",
"begin :",
"end : XEND '{' stat_list '}'",
"end : end NL",
"end :",
"compound_conditional : conditional BOR conditional",
"compound_conditional : conditional AND conditional",
"compound_conditional : NOT conditional",
"compound_conditional : '(' compound_conditional ')'",
"compound_pattern : pattern BOR pattern",
"compound_pattern : pattern AND pattern",
"compound_pattern : NOT pattern",
"compound_pattern : '(' compound_pattern ')'",
"conditional : expr",
"conditional : rel_expr",
"conditional : lex_expr",
"conditional : compound_conditional",
"else : ELSE optNL",
"field : FIELD",
"field : INDIRECT term",
"if : IF '(' conditional ')' optNL",
"lex_expr : expr MATCHOP regular_expr",
"lex_expr : '(' lex_expr ')'",
"var : NUMBER",
"var : STRING",
"var : VAR",
"var : VAR '[' expr ']'",
"var : field",
"term : var",
"term : GETLINE",
"term : FNCN",
"term : FNCN '(' ')'",
"term : FNCN '(' expr ')'",
"term : SPRINTF print_list",
"term : SUBSTR '(' expr ',' expr ',' expr ')'",
"term : SUBSTR '(' expr ',' expr ')'",
"term : SPLIT '(' expr ',' VAR ',' expr ')'",
"term : SPLIT '(' expr ',' VAR ')'",
"term : INDEX '(' expr ',' expr ')'",
"term : '(' expr ')'",
"term : term '+' term",
"term : term '-' term",
"term : term '*' term",
"term : term '/' term",
"term : term '%' term",
"term : '-' term",
"term : '+' term",
"term : INCR var",
"term : DECR var",
"term : var INCR",
"term : var DECR",
"expr : term",
"expr : expr term",
"expr : var ASGNOP expr",
"optNL : NL",
"optNL :",
"pa_stat : pattern",
"pa_stat : pattern '{' stat_list '}'",
"pa_stat : pattern ',' pattern",
"pa_stat : pattern ',' pattern '{' stat_list '}'",
"pa_stat : '{' stat_list '}'",
"pa_stats : pa_stats pa_stat st",
"pa_stats :",
"pa_stats : pa_stats pa_stat",
"pattern : regular_expr",
"pattern : rel_expr",
"pattern : lex_expr",
"pattern : compound_pattern",
"print_list : expr",
"print_list : pe_list",
"print_list :",
"pe_list : expr ',' expr",
"pe_list : pe_list ',' expr",
"pe_list : '(' pe_list ')'",
"redir : RELOP",
"redir : '|'",
"$$1 :",
"regular_expr : '/' $$1 REGEXPR '/'",
"rel_expr : expr RELOP expr",
"rel_expr : '(' rel_expr ')'",
"st : NL",
"st : ';'",
"simple_stat : PRINT print_list redir expr",
"simple_stat : PRINT print_list",
"simple_stat : PRINTF print_list redir expr",
"simple_stat : PRINTF print_list",
"simple_stat : expr",
"simple_stat :",
"simple_stat : error",
"statement : simple_stat st",
"statement : if statement",
"statement : if statement else statement",
"statement : while statement",
"statement : for",
"statement : NEXT st",
"statement : EXIT st",
"statement : EXIT expr st",
"statement : BREAK st",
"statement : CONTINUE st",
"statement : '{' stat_list '}'",
"stat_list : stat_list statement",
"stat_list :",
"while : WHILE '(' conditional ')' optNL",
"for : FOR '(' simple_stat ';' conditional ';' simple_stat ')' optNL statement",
"for : FOR '(' simple_stat ';' ';' simple_stat ')' optNL statement",
"for : FOR '(' VAR IN VAR ')' optNL statement",
};
#endif
#ifndef YYSTYPE
typedef int YYSTYPE;
#endif
#ifdef YYSTACKSIZE
#undef YYMAXDEPTH
#define YYMAXDEPTH YYSTACKSIZE
#else
#ifdef YYMAXDEPTH
#define YYSTACKSIZE YYMAXDEPTH
#else
#define YYSTACKSIZE 10000
#define YYMAXDEPTH 10000
#endif
#endif
#define YYINITSTACKSIZE 200
int yydebug;
int yynerrs;
int yyerrflag;
int yychar;
short *yyssp;
YYSTYPE *yyvsp;
YYSTYPE yyval;
YYSTYPE yylval;
short *yyss;
short *yysslim;
YYSTYPE *yyvs;
int yystacksize;
/* allocate initial stack or double stack size, up to YYMAXDEPTH */
int yyparse __P((void));
static int yygrowstack __P((void));
static int yygrowstack()
{
int newsize, i;
short *newss;
YYSTYPE *newvs;
if ((newsize = yystacksize) == 0)
newsize = YYINITSTACKSIZE;
else if (newsize >= YYMAXDEPTH)
return -1;
else if ((newsize *= 2) > YYMAXDEPTH)
newsize = YYMAXDEPTH;
i = yyssp - yyss;
if ((newss = (short *)realloc(yyss, newsize * sizeof *newss)) == NULL)
return -1;
yyss = newss;
yyssp = newss + i;
if ((newvs = (YYSTYPE *)realloc(yyvs, newsize * sizeof *newvs)) == NULL)
return -1;
yyvs = newvs;
yyvsp = newvs + i;
yystacksize = newsize;
yysslim = yyss + newsize - 1;
return 0;
}
#define YYABORT goto yyabort
#define YYREJECT goto yyabort
#define YYACCEPT goto yyaccept
#define YYERROR goto yyerrlab
int
yyparse()
{
int yym, yyn, yystate;
#if YYDEBUG
char *yys;
if ((yys = getenv("YYDEBUG")) != NULL)
{
yyn = *yys;
if (yyn >= '0' && yyn <= '9')
yydebug = yyn - '0';
}
#endif
yynerrs = 0;
yyerrflag = 0;
yychar = (-1);
if (yyss == NULL && yygrowstack()) goto yyoverflow;
yyssp = yyss;
yyvsp = yyvs;
*yyssp = yystate = 0;
yyloop:
if ((yyn = yydefred[yystate]) != 0) goto yyreduce;
if (yychar < 0)
{
if ((yychar = yylex()) < 0) yychar = 0;
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX, yystate, yychar, yys);
}
#endif
}
if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
{
#if YYDEBUG
if (yydebug)
printf("%sdebug: state %d, shifting to state %d\n",
YYPREFIX, yystate, yytable[yyn]);
#endif
if (yyssp >= yysslim && yygrowstack())
{
goto yyoverflow;
}
*++yyssp = yystate = yytable[yyn];
*++yyvsp = yylval;
yychar = (-1);
if (yyerrflag > 0) --yyerrflag;
goto yyloop;
}
if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
{
yyn = yytable[yyn];
goto yyreduce;
}
if (yyerrflag) goto yyinrecovery;
goto yynewerror;
yynewerror:
yyerror("syntax error");
goto yyerrlab;
yyerrlab:
++yynerrs;
yyinrecovery:
if (yyerrflag < 3)
{
yyerrflag = 3;
for (;;)
{
if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
{
#if YYDEBUG
if (yydebug)
printf("%sdebug: state %d, error recovery shifting\
to state %d\n", YYPREFIX, *yyssp, yytable[yyn]);
#endif
if (yyssp >= yysslim && yygrowstack())
{
goto yyoverflow;
}
*++yyssp = yystate = yytable[yyn];
*++yyvsp = yylval;
goto yyloop;
}
else
{
#if YYDEBUG
if (yydebug)
printf("%sdebug: error recovery discarding state %d\n",
YYPREFIX, *yyssp);
#endif
if (yyssp <= yyss) goto yyabort;
--yyssp;
--yyvsp;
}
}
}
else
{
if (yychar == 0) goto yyabort;
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
YYPREFIX, yystate, yychar, yys);
}
#endif
yychar = (-1);
goto yyloop;
}
yyreduce:
#if YYDEBUG
if (yydebug)
printf("%sdebug: state %d, reducing by rule %d (%s)\n",
YYPREFIX, yystate, yyn, yyrule[yyn]);
#endif
yym = yylen[yyn];
yyval = yyvsp[1-yym];
switch (yyn)
{
case 1:
#line 126 "awk.g.y"
{ if (errorflag==0) winner = (node *)stat3(PROGRAM, yyvsp[-2], yyvsp[-1], yyvsp[0]); }
break;
case 2:
#line 127 "awk.g.y"
{ yyclearin; yyerror("bailing out"); }
break;
case 3:
#line 131 "awk.g.y"
{ PUTS("XBEGIN list"); yyval = yyvsp[-1]; }
break;
case 5:
#line 133 "awk.g.y"
{ PUTS("empty XBEGIN"); yyval = nullstat; }
break;
case 6:
#line 137 "awk.g.y"
{ PUTS("XEND list"); yyval = yyvsp[-1]; }
break;
case 8:
#line 139 "awk.g.y"
{ PUTS("empty END"); yyval = nullstat; }
break;
case 9:
#line 143 "awk.g.y"
{ PUTS("cond||cond"); yyval = op2(BOR, yyvsp[-2], yyvsp[0]); }
break;
case 10:
#line 144 "awk.g.y"
{ PUTS("cond&&cond"); yyval = op2(AND, yyvsp[-2], yyvsp[0]); }
break;
case 11:
#line 145 "awk.g.y"
{ PUTS("!cond"); yyval = op1(NOT, yyvsp[0]); }
break;
case 12:
#line 146 "awk.g.y"
{ yyval = yyvsp[-1]; }
break;
case 13:
#line 150 "awk.g.y"
{ PUTS("pat||pat"); yyval = op2(BOR, yyvsp[-2], yyvsp[0]); }
break;
case 14:
#line 151 "awk.g.y"
{ PUTS("pat&&pat"); yyval = op2(AND, yyvsp[-2], yyvsp[0]); }
break;
case 15:
#line 152 "awk.g.y"
{ PUTS("!pat"); yyval = op1(NOT, yyvsp[0]); }
break;
case 16:
#line 153 "awk.g.y"
{ yyval = yyvsp[-1]; }
break;
case 17:
#line 157 "awk.g.y"
{ PUTS("expr"); yyval = op2(NE, yyvsp[0], valtonode(lookup("$zero&null", symtab, 0), CCON)); }
break;
case 18:
#line 158 "awk.g.y"
{ PUTS("relexpr"); }
break;
case 19:
#line 159 "awk.g.y"
{ PUTS("lexexpr"); }
break;
case 20:
#line 160 "awk.g.y"
{ PUTS("compcond"); }
break;
case 21:
#line 164 "awk.g.y"
{ PUTS("else"); }
break;
case 22:
#line 168 "awk.g.y"
{ PUTS("field"); yyval = valtonode(yyvsp[0], CFLD); }
break;
case 23:
#line 169 "awk.g.y"
{ PUTS("ind field"); yyval = op1(INDIRECT, yyvsp[0]); }
break;
case 24:
#line 173 "awk.g.y"
{ PUTS("if(cond)"); yyval = yyvsp[-2]; }
break;
case 25:
#line 177 "awk.g.y"
{ PUTS("expr~re"); yyval = op2((intptr_t)yyvsp[-1], yyvsp[-2], (void *)makedfa(yyvsp[0])); }
break;
case 26:
#line 178 "awk.g.y"
{ PUTS("(lex_expr)"); yyval = yyvsp[-1]; }
break;
case 27:
#line 182 "awk.g.y"
{PUTS("number"); yyval = valtonode(yyvsp[0], CCON); }
break;
case 28:
#line 183 "awk.g.y"
{ PUTS("string"); yyval = valtonode(yyvsp[0], CCON); }
break;
case 29:
#line 184 "awk.g.y"
{ PUTS("var"); yyval = valtonode(yyvsp[0], CVAR); }
break;
case 30:
#line 185 "awk.g.y"
{ PUTS("array[]"); yyval = op2(ARRAY, yyvsp[-3], yyvsp[-1]); }
break;
case 33:
#line 190 "awk.g.y"
{ PUTS("getline"); yyval = op1(GETLINE, 0); }
break;
case 34:
#line 191 "awk.g.y"
{ PUTS("func");
yyval = op2(FNCN, yyvsp[0], valtonode(lookup("$record", symtab, 0), CFLD));
}
break;
case 35:
#line 194 "awk.g.y"
{ PUTS("func()");
yyval = op2(FNCN, yyvsp[-2], valtonode(lookup("$record", symtab, 0), CFLD));
}
break;
case 36:
#line 197 "awk.g.y"
{ PUTS("func(expr)"); yyval = op2(FNCN, yyvsp[-3], yyvsp[-1]); }
break;
case 37:
#line 198 "awk.g.y"
{ PUTS("sprintf"); yyval = op1((intptr_t)yyvsp[-1], yyvsp[0]); }
break;
case 38:
#line 200 "awk.g.y"
{ PUTS("substr(e,e,e)"); yyval = op3(SUBSTR, yyvsp[-5], yyvsp[-3], yyvsp[-1]); }
break;
case 39:
#line 202 "awk.g.y"
{ PUTS("substr(e,e,e)"); yyval = op3(SUBSTR, yyvsp[-3], yyvsp[-1], nullstat); }
break;
case 40:
#line 204 "awk.g.y"
{ PUTS("split(e,e,e)"); yyval = op3(SPLIT, yyvsp[-5], yyvsp[-3], yyvsp[-1]); }
break;
case 41:
#line 206 "awk.g.y"
{ PUTS("split(e,e,e)"); yyval = op3(SPLIT, yyvsp[-3], yyvsp[-1], nullstat); }
break;
case 42:
#line 208 "awk.g.y"
{ PUTS("index(e,e)"); yyval = op2(INDEX, yyvsp[-3], yyvsp[-1]); }
break;
case 43:
#line 209 "awk.g.y"
{PUTS("(expr)"); yyval = yyvsp[-1]; }
break;
case 44:
#line 210 "awk.g.y"
{ PUTS("t+t"); yyval = op2(ADD, yyvsp[-2], yyvsp[0]); }
break;
case 45:
#line 211 "awk.g.y"
{ PUTS("t-t"); yyval = op2(MINUS, yyvsp[-2], yyvsp[0]); }
break;
case 46:
#line 212 "awk.g.y"
{ PUTS("t*t"); yyval = op2(MULT, yyvsp[-2], yyvsp[0]); }
break;
case 47:
#line 213 "awk.g.y"
{ PUTS("t/t"); yyval = op2(DIVIDE, yyvsp[-2], yyvsp[0]); }
break;
case 48:
#line 214 "awk.g.y"
{ PUTS("t%t"); yyval = op2(MOD, yyvsp[-2], yyvsp[0]); }
break;
case 49:
#line 215 "awk.g.y"
{ PUTS("-term"); yyval = op1(UMINUS, yyvsp[0]); }
break;
case 50:
#line 216 "awk.g.y"
{ PUTS("+term"); yyval = yyvsp[0]; }
break;
case 51:
#line 217 "awk.g.y"
{ PUTS("++var"); yyval = op1(PREINCR, yyvsp[0]); }
break;
case 52:
#line 218 "awk.g.y"
{ PUTS("--var"); yyval = op1(PREDECR, yyvsp[0]); }
break;
case 53:
#line 219 "awk.g.y"
{ PUTS("var++"); yyval= op1(POSTINCR, yyvsp[-1]); }
break;
case 54:
#line 220 "awk.g.y"
{ PUTS("var--"); yyval= op1(POSTDECR, yyvsp[-1]); }
break;
case 55:
#line 224 "awk.g.y"
{ PUTS("term"); }
break;
case 56:
#line 225 "awk.g.y"
{ PUTS("expr term"); yyval = op2(CAT, yyvsp[-1], yyvsp[0]); }
break;
case 57:
#line 226 "awk.g.y"
{ PUTS("var=expr"); yyval = stat2((intptr_t)yyvsp[-1], yyvsp[-2], yyvsp[0]); }
break;
case 60:
#line 235 "awk.g.y"
{ PUTS("pattern"); yyval = stat2(PASTAT, yyvsp[0], genprint()); }
break;
case 61:
#line 236 "awk.g.y"
{ PUTS("pattern {...}"); yyval = stat2(PASTAT, yyvsp[-3], yyvsp[-1]); }
break;
case 62:
#line 237 "awk.g.y"
{ PUTS("srch,srch"); yyval = pa2stat(yyvsp[-2], yyvsp[0], genprint()); }
break;
case 63:
#line 239 "awk.g.y"
{ PUTS("srch, srch {...}"); yyval = pa2stat(yyvsp[-5], yyvsp[-3], yyvsp[-1]); }
break;
case 64:
#line 240 "awk.g.y"
{ PUTS("null pattern {...}"); yyval = stat2(PASTAT, nullstat, yyvsp[-1]); }
break;
case 65:
#line 244 "awk.g.y"
{ PUTS("pa_stats pa_stat"); yyval = linkum(yyvsp[-2], yyvsp[-1]); }
break;
case 66:
#line 245 "awk.g.y"
{ PUTS("null pa_stat"); yyval = nullstat; }
break;
case 67:
#line 246 "awk.g.y"
{PUTS("pa_stats pa_stat"); yyval = linkum(yyvsp[-1], yyvsp[0]); }
break;
case 68:
#line 250 "awk.g.y"
{ PUTS("regex");
yyval = op2(MATCH, valtonode(lookup("$record", symtab, 0), CFLD), (void *)makedfa(yyvsp[0]));
}
break;
case 69:
#line 253 "awk.g.y"
{ PUTS("relexpr"); }
break;
case 70:
#line 254 "awk.g.y"
{ PUTS("lexexpr"); }
break;
case 71:
#line 255 "awk.g.y"
{ PUTS("comp pat"); }
break;
case 72:
#line 259 "awk.g.y"
{ PUTS("expr"); }
break;
case 73:
#line 260 "awk.g.y"
{ PUTS("pe_list"); }
break;
case 74:
#line 261 "awk.g.y"
{ PUTS("null print_list"); yyval = valtonode(lookup("$record", symtab, 0), CFLD); }
break;
case 75:
#line 265 "awk.g.y"
{yyval = linkum(yyvsp[-2], yyvsp[0]); }
break;
case 76:
#line 266 "awk.g.y"
{yyval = linkum(yyvsp[-2], yyvsp[0]); }
break;
case 77:
#line 267 "awk.g.y"
{yyval = yyvsp[-1]; }
break;
case 80:
#line 276 "awk.g.y"
{ startreg(); }
break;
case 81:
#line 278 "awk.g.y"
{ PUTS("/r/"); yyval = yyvsp[-1]; }
break;
case 82:
#line 283 "awk.g.y"
{ PUTS("expr relop expr"); yyval = op2((intptr_t)yyvsp[-1], yyvsp[-2], yyvsp[0]); }
break;
case 83:
#line 285 "awk.g.y"
{ PUTS("(relexpr)"); yyval = yyvsp[-1]; }
break;
case 86:
#line 295 "awk.g.y"
{ PUTS("print>stat"); yyval = stat3((intptr_t)yyvsp[-3], yyvsp[-2], yyvsp[-1], yyvsp[0]); }
break;
case 87:
#line 297 "awk.g.y"
{ PUTS("print list"); yyval = stat3((intptr_t)yyvsp[-1], yyvsp[0], nullstat, nullstat); }
break;
case 88:
#line 299 "awk.g.y"
{ PUTS("printf>stat"); yyval = stat3((intptr_t)yyvsp[-3], yyvsp[-2], yyvsp[-1], yyvsp[0]); }
break;
case 89:
#line 301 "awk.g.y"
{ PUTS("printf list"); yyval = stat3((intptr_t)yyvsp[-1], yyvsp[0], nullstat, nullstat); }
break;
case 90:
#line 302 "awk.g.y"
{ PUTS("expr"); yyval = exptostat(yyvsp[0]); }
break;
case 91:
#line 303 "awk.g.y"
{ PUTS("null simple statement"); yyval = nullstat; }
break;
case 92:
#line 304 "awk.g.y"
{ yyclearin; yyerror("illegal statement"); yyval = nullstat; }
break;
case 93:
#line 308 "awk.g.y"
{ PUTS("simple stat"); }
break;
case 94:
#line 309 "awk.g.y"
{ PUTS("if stat"); yyval = stat3(IF, yyvsp[-1], yyvsp[0], nullstat); }
break;
case 95:
#line 311 "awk.g.y"
{ PUTS("if-else stat"); yyval = stat3(IF, yyvsp[-3], yyvsp[-2], yyvsp[0]); }
break;
case 96:
#line 312 "awk.g.y"
{ PUTS("while stat"); yyval = stat2(WHILE, yyvsp[-1], yyvsp[0]); }
break;
case 97:
#line 313 "awk.g.y"
{ PUTS("for stat"); }
break;
case 98:
#line 314 "awk.g.y"
{ PUTS("next"); yyval = stat1(NEXT, 0); }
break;
case 99:
#line 315 "awk.g.y"
{ PUTS("exit"); yyval = stat1(EXIT, 0); }
break;
case 100:
#line 316 "awk.g.y"
{ PUTS("exit"); yyval = stat1(EXIT, yyvsp[-1]); }
break;
case 101:
#line 317 "awk.g.y"
{ PUTS("break"); yyval = stat1(BREAK, 0); }
break;
case 102:
#line 318 "awk.g.y"
{ PUTS("continue"); yyval = stat1(CONTINUE, 0); }
break;
case 103:
#line 319 "awk.g.y"
{ PUTS("{statlist}"); yyval = yyvsp[-1]; }
break;
case 104:
#line 323 "awk.g.y"
{ PUTS("stat_list stat"); yyval = linkum(yyvsp[-1], yyvsp[0]); }
break;
case 105:
#line 324 "awk.g.y"
{ PUTS("null stat list"); yyval = nullstat; }
break;
case 106:
#line 328 "awk.g.y"
{ PUTS("while(cond)"); yyval = yyvsp[-2]; }
break;
case 107:
#line 333 "awk.g.y"
{ PUTS("for(e;e;e)"); yyval = stat4(FOR, yyvsp[-7], yyvsp[-5], yyvsp[-3], yyvsp[0]); }
break;
case 108:
#line 335 "awk.g.y"
{ PUTS("for(e;e;e)"); yyval = stat4(FOR, yyvsp[-6], nullstat, yyvsp[-3], yyvsp[0]); }
break;
case 109:
#line 337 "awk.g.y"
{ PUTS("for(v in v)"); yyval = stat3(IN, yyvsp[-5], yyvsp[-3], yyvsp[0]); }
break;
#line 1579 "y.tab.c"
}
yyssp -= yym;
yystate = *yyssp;
yyvsp -= yym;
yym = yylhs[yyn];
if (yystate == 0 && yym == 0)
{
#if YYDEBUG
if (yydebug)
printf("%sdebug: after reduction, shifting from state 0 to\
state %d\n", YYPREFIX, YYFINAL);
#endif
yystate = YYFINAL;
*++yyssp = YYFINAL;
*++yyvsp = yyval;
if (yychar < 0)
{
if ((yychar = yylex()) < 0) yychar = 0;
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX, YYFINAL, yychar, yys);
}
#endif
}
if (yychar == 0) goto yyaccept;
goto yyloop;
}
if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
yystate = yytable[yyn];
else
yystate = yydgoto[yym];
#if YYDEBUG
if (yydebug)
printf("%sdebug: after reduction, shifting from state %d \
to state %d\n", YYPREFIX, *yyssp, yystate);
#endif
if (yyssp >= yysslim && yygrowstack())
{
goto yyoverflow;
}
*++yyssp = yystate;
*++yyvsp = yyval;
goto yyloop;
yyoverflow:
yyerror("yacc stack overflow");
yyabort:
return (1);
yyaccept:
return (0);
}
syntax highlighted by Code2HTML, v. 0.9.1