#include #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 #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 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); }