#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