X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=x2p%2Fa2p.c;h=4186cdf19bb2fc3b00a76ca9de66bbc06a3983aa;hb=20caf59dc5a2137cdf1de6dae458da063417a8d2;hp=41636f0c1761bf6056b0586a527c7cad8f131e51;hpb=79072805bf63abe5b5978b5928ab00d360ea3e7f;p=p5sagit%2Fp5-mst-13.2.git diff --git a/x2p/a2p.c b/x2p/a2p.c index 41636f0..4186cdf 100644 --- a/x2p/a2p.c +++ b/x2p/a2p.c @@ -1,23 +1,24 @@ -extern char *malloc(), *realloc(); - -# line 2 "a2p.y" -/* $RCSfile: a2p.y,v $$Revision: 4.0.1.2 $$Date: 92/06/08 16:13:03 $ +#ifndef lint +static const char yysccsid[] = "@(#)yaccpar 1.9 (Berkeley) 02/21/93"; +#endif +#define YYBYACC 1 +#define YYMAJOR 1 +#define YYMINOR 9 +#define yyclearin (yychar=(-1)) +#define yyerrok (yyerrflag=0) +#define YYRECOVERING (yyerrflag!=0) +extern int yyparse(void); +#define YYPREFIX "yy" +#line 2 "a2p.y" +/* $RCSfile: a2p.y,v $$Revision: 4.1 $$Date: 92/08/07 18:29:12 $ * - * Copyright (c) 1991, Larry Wall + * Copyright (C) 1991, 1992, 1993, 1994, 1996, 1997, 1999, 2000, + * by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. * * $Log: a2p.y,v $ - * Revision 4.0.1.2 92/06/08 16:13:03 lwall - * patch20: in a2p, getline should allow variable to be array element - * - * Revision 4.0.1.1 91/06/07 12:12:41 lwall - * patch4: new copyright notice - * - * Revision 4.0 91/03/20 01:57:21 lwall - * 4.0 baseline. - * */ #include "INTERN.h" @@ -27,1581 +28,2914 @@ int root; int begins = Nullop; int ends = Nullop; -# define BEGIN 257 -# define END 258 -# define REGEX 259 -# define SEMINEW 260 -# define NEWLINE 261 -# define COMMENT 262 -# define FUN1 263 -# define FUNN 264 -# define GRGR 265 -# define PRINT 266 -# define PRINTF 267 -# define SPRINTF 268 -# define SPLIT 269 -# define IF 270 -# define ELSE 271 -# define WHILE 272 -# define FOR 273 -# define IN 274 -# define EXIT 275 -# define NEXT 276 -# define BREAK 277 -# define CONTINUE 278 -# define RET 279 -# define GETLINE 280 -# define DO 281 -# define SUB 282 -# define GSUB 283 -# define MATCH 284 -# define FUNCTION 285 -# define USERFUN 286 -# define DELETE 287 -# define ASGNOP 288 -# define OROR 289 -# define ANDAND 290 -# define NUMBER 291 -# define VAR 292 -# define SUBSTR 293 -# define INDEX 294 -# define MATCHOP 295 -# define RELOP 296 -# define OR 297 -# define STRING 298 -# define UMINUS 299 -# define NOT 300 -# define INCR 301 -# define DECR 302 -# define FIELD 303 -# define VFIELD 304 -#define yyclearin yychar = -1 -#define yyerrok yyerrflag = 0 -extern int yychar; -extern int yyerrflag; -#ifndef YYMAXDEPTH -#define YYMAXDEPTH 150 -#endif -#ifndef YYSTYPE -#define YYSTYPE int -#endif -YYSTYPE yylval, yyval; -# define YYERRCODE 256 - -# line 402 "a2p.y" - -#include "a2py.c" -int yyexca[] ={ --1, 1, - 0, -1, - -2, 0, - }; -# define YYNPROD 137 -# define YYLAST 3142 -int yyact[]={ - - 63, 44, 156, 32, 50, 31, 222, 73, 74, 75, - 210, 53, 45, 46, 124, 49, 86, 307, 104, 158, - 74, 75, 52, 54, 53, 302, 126, 271, 306, 265, - 106, 107, 270, 245, 51, 157, 269, 21, 56, 92, - 2, 131, 55, 20, 48, 72, 19, 90, 69, 132, - 47, 196, 241, 102, 100, 272, 195, 193, 109, 110, - 111, 112, 253, 76, 79, 252, 72, 139, 15, 77, - 237, 68, 78, 311, 236, 160, 66, 64, 309, 65, - 293, 67, 187, 174, 255, 139, 198, 184, 183, 130, - 68, 80, 179, 129, 5, 66, 64, 71, 65, 128, - 67, 68, 286, 214, 199, 212, 66, 211, 105, 103, - 99, 67, 98, 97, 96, 95, 71, 108, 94, 89, - 88, 152, 87, 4, 153, 10, 9, 200, 69, 14, - 177, 178, 239, 140, 13, 3, 136, 137, 127, 1, - 0, 0, 0, 185, 186, 0, 72, 69, 151, 0, - 0, 154, 0, 0, 0, 0, 0, 0, 69, 0, - 0, 0, 0, 204, 205, 72, 0, 106, 107, 0, - 0, 0, 0, 0, 175, 176, 72, 213, 0, 215, - 76, 0, 140, 0, 0, 0, 77, 0, 0, 78, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 230, 231, 232, 233, 234, 235, 0, - 206, 207, 0, 0, 0, 0, 244, 0, 0, 0, - 159, 106, 107, 34, 35, 0, 162, 163, 37, 39, - 170, 0, 171, 173, 248, 166, 165, 164, 167, 168, - 33, 172, 42, 43, 41, 161, 36, 169, 44, 18, - 247, 27, 44, 38, 40, 54, 53, 249, 28, 45, - 46, 29, 30, 45, 46, 54, 53, 54, 53, 0, - 282, 18, 18, 238, 284, 285, 242, 243, 289, 290, - 54, 53, 240, 91, 54, 53, 0, 299, 300, 54, - 53, 0, 304, 0, 0, 6, 7, 8, 18, 0, - 0, 298, 0, 113, 114, 115, 116, 63, 70, 18, - 32, 310, 31, 313, 312, 315, 314, 316, 0, 18, - 0, 0, 303, 0, 247, 0, 158, 70, 201, 202, - 203, 0, 133, 135, 91, 91, 308, 287, 247, 141, - 143, 144, 145, 146, 147, 149, 91, 0, 0, 91, - 0, 301, 0, 0, 0, 18, 18, 0, 0, 0, - 63, 0, 0, 32, 0, 31, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 181, 158, - 0, 0, 0, 0, 0, 0, 0, 0, 141, 0, - 174, 0, 305, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 91, 91, - 63, 0, 208, 32, 209, 31, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 158, - 0, 219, 220, 0, 221, 0, 223, 225, 226, 227, - 228, 229, 0, 174, 0, 274, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 18, 18, 0, - 246, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 63, 0, 0, 32, 0, 31, 0, 0, - 0, 0, 266, 0, 0, 0, 267, 268, 0, 0, - 0, 158, 0, 174, 0, 217, 275, 0, 276, 0, - 0, 0, 0, 0, 278, 0, 279, 0, 280, 0, - 281, 0, 0, 0, 0, 0, 0, 0, 18, 0, - 0, 0, 0, 0, 0, 0, 0, 159, 0, 0, - 34, 35, 18, 162, 163, 37, 39, 170, 0, 171, - 173, 0, 166, 165, 164, 167, 168, 33, 172, 42, - 43, 41, 0, 36, 169, 174, 0, 216, 27, 44, - 38, 40, 0, 0, 0, 28, 0, 0, 29, 30, - 45, 46, 63, 0, 0, 32, 0, 31, 0, 0, - 159, 0, 0, 34, 35, 0, 162, 163, 37, 39, - 170, 0, 171, 173, 0, 166, 165, 164, 167, 168, - 33, 172, 42, 43, 41, 0, 36, 169, 0, 0, - 0, 27, 44, 38, 40, 0, 0, 0, 28, 0, - 0, 29, 30, 45, 46, 0, 25, 0, 0, 32, - 159, 31, 0, 34, 35, 0, 162, 163, 37, 39, - 170, 0, 171, 173, 0, 166, 165, 164, 167, 168, - 33, 172, 42, 43, 41, 0, 36, 169, 0, 0, - 0, 27, 44, 38, 40, 0, 0, 0, 28, 0, - 0, 29, 30, 45, 46, 63, 0, 0, 32, 0, - 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 159, 0, 158, 34, 35, 0, 162, 163, - 37, 39, 170, 0, 171, 173, 0, 166, 165, 164, - 167, 168, 33, 172, 42, 43, 41, 0, 36, 169, - 0, 0, 0, 27, 44, 38, 40, 0, 0, 0, - 28, 0, 0, 29, 30, 45, 46, 63, 0, 0, - 32, 0, 31, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 158, 0, 174, 0, - 197, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 63, 0, 0, 32, 138, 31, 0, 0, - 0, 0, 0, 0, 0, 34, 35, 0, 162, 163, - 37, 39, 59, 0, 58, 0, 0, 166, 165, 164, - 167, 168, 33, 0, 42, 43, 41, 0, 36, 169, - 174, 0, 155, 27, 44, 38, 40, 0, 0, 0, - 28, 0, 0, 29, 30, 45, 46, 0, 0, 0, - 0, 0, 0, 0, 0, 24, 0, 106, 107, 34, - 35, 0, 0, 0, 37, 39, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 33, 0, 42, 43, - 41, 0, 36, 0, 0, 0, 0, 27, 44, 38, - 40, 0, 0, 0, 28, 0, 26, 29, 30, 45, - 46, 0, 0, 0, 0, 159, 0, 0, 34, 35, - 0, 162, 163, 37, 39, 170, 0, 171, 173, 0, - 166, 165, 164, 167, 168, 33, 172, 42, 43, 41, - 63, 36, 169, 32, 0, 31, 27, 44, 38, 40, - 0, 0, 0, 28, 0, 0, 29, 30, 45, 46, - 59, 0, 58, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 159, 0, 0, - 34, 35, 0, 162, 163, 37, 39, 170, 0, 171, - 173, 0, 166, 165, 164, 167, 168, 33, 172, 42, - 43, 41, 0, 36, 169, 23, 0, 0, 27, 44, - 38, 40, 0, 0, 0, 28, 0, 0, 29, 30, - 45, 46, 0, 0, 62, 34, 35, 0, 0, 0, - 37, 39, 0, 0, 0, 81, 82, 62, 62, 85, - 0, 0, 33, 0, 42, 43, 41, 0, 36, 0, - 0, 0, 62, 27, 44, 38, 40, 60, 57, 0, - 28, 0, 0, 29, 30, 45, 46, 0, 0, 0, - 62, 62, 62, 62, 62, 62, 25, 62, 0, 32, - 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, - 62, 62, 62, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 180, 0, 0, 0, 0, 0, 0, 62, - 63, 62, 0, 32, 0, 31, 0, 62, 0, 62, - 62, 62, 62, 62, 0, 62, 0, 0, 0, 12, - 0, 0, 0, 34, 35, 0, 0, 62, 37, 39, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 33, 0, 42, 43, 41, 62, 36, 62, 0, 0, - 0, 27, 44, 38, 40, 60, 57, 0, 28, 0, - 0, 29, 30, 45, 46, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 62, 62, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 62, 62, 62, 0, 62, - 0, 62, 62, 62, 62, 62, 0, 0, 0, 0, - 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, - 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 62, 62, 62, 83, 84, 0, 0, 0, - 0, 62, 62, 0, 62, 62, 62, 62, 0, 0, - 101, 0, 0, 16, 17, 24, 0, 0, 0, 34, - 35, 0, 0, 0, 37, 39, 0, 0, 118, 119, - 120, 121, 122, 123, 0, 125, 33, 0, 42, 43, - 41, 11, 36, 0, 0, 0, 0, 27, 44, 38, - 40, 0, 0, 0, 28, 61, 26, 29, 30, 45, - 46, 0, 25, 0, 0, 32, 0, 31, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 61, 61, 61, - 61, 288, 0, 34, 35, 0, 0, 0, 37, 39, - 0, 0, 0, 0, 0, 0, 0, 61, 0, 61, - 33, 0, 42, 43, 41, 61, 36, 61, 61, 61, - 61, 61, 25, 61, 0, 32, 0, 31, 28, 0, - 0, 29, 30, 45, 46, 61, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 218, 0, 61, 0, 0, 0, 0, - 0, 0, 0, 0, 63, 263, 0, 32, 264, 31, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 61, 61, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 61, 61, 61, 0, 61, 0, 61, - 61, 61, 61, 61, 0, 0, 63, 261, 0, 32, - 262, 31, 0, 0, 0, 0, 0, 0, 0, 0, - 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 61, 61, 61, 0, 0, 0, 0, 0, 0, 61, - 61, 0, 61, 61, 61, 61, 63, 259, 0, 32, - 260, 31, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 24, 0, 0, 0, 34, 35, 0, 0, 0, - 37, 39, 63, 257, 0, 32, 258, 31, 0, 0, - 0, 0, 33, 0, 42, 43, 41, 0, 36, 0, - 0, 0, 0, 27, 44, 38, 40, 0, 0, 0, - 28, 0, 26, 29, 30, 45, 46, 0, 0, 0, - 0, 24, 0, 0, 0, 34, 35, 0, 0, 0, - 37, 39, 63, 251, 0, 32, 250, 31, 0, 0, - 0, 0, 33, 0, 42, 43, 41, 0, 36, 0, - 0, 0, 0, 27, 44, 38, 40, 0, 0, 0, - 28, 0, 26, 29, 30, 45, 46, 34, 35, 0, - 0, 0, 37, 39, 0, 0, 63, 0, 0, 32, - 0, 31, 0, 0, 33, 0, 42, 43, 41, 0, - 36, 0, 0, 0, 0, 27, 44, 38, 40, 0, - 0, 0, 28, 0, 0, 29, 30, 45, 46, 34, - 35, 0, 0, 0, 37, 39, 0, 0, 0, 0, - 0, 0, 142, 0, 0, 32, 33, 31, 42, 43, - 41, 0, 36, 0, 0, 0, 0, 27, 44, 38, - 40, 0, 0, 0, 28, 0, 0, 29, 30, 45, - 46, 0, 0, 0, 0, 0, 0, 0, 0, 34, - 35, 0, 0, 0, 37, 39, 63, 297, 0, 32, - 0, 31, 0, 0, 0, 0, 33, 0, 42, 43, - 41, 0, 36, 0, 0, 0, 0, 27, 44, 38, - 40, 0, 0, 0, 28, 0, 0, 29, 30, 45, - 46, 0, 0, 0, 0, 34, 35, 0, 0, 0, - 37, 39, 63, 296, 0, 32, 0, 31, 0, 0, - 0, 0, 33, 0, 42, 43, 41, 0, 36, 0, - 0, 0, 0, 27, 44, 38, 40, 0, 0, 0, - 28, 0, 0, 29, 30, 45, 46, 0, 0, 0, - 0, 0, 0, 0, 0, 34, 35, 0, 0, 0, - 37, 39, 63, 295, 0, 32, 0, 31, 0, 0, - 0, 0, 33, 0, 42, 43, 41, 0, 36, 0, - 0, 0, 0, 27, 44, 38, 40, 0, 0, 0, - 28, 0, 0, 29, 30, 45, 46, 106, 107, 34, - 35, 0, 0, 0, 37, 39, 63, 294, 0, 32, - 0, 31, 0, 0, 0, 0, 33, 0, 42, 43, - 41, 0, 36, 0, 0, 0, 0, 27, 44, 38, - 40, 0, 0, 0, 28, 0, 0, 29, 30, 45, - 46, 24, 0, 0, 0, 34, 35, 0, 0, 0, - 37, 39, 63, 292, 0, 32, 0, 31, 0, 0, - 0, 0, 33, 0, 42, 43, 41, 0, 36, 0, - 0, 0, 0, 27, 44, 38, 40, 0, 0, 0, - 28, 0, 26, 29, 30, 45, 46, 0, 0, 34, - 35, 0, 0, 0, 37, 39, 63, 291, 0, 32, - 0, 31, 0, 0, 0, 0, 33, 0, 42, 43, - 41, 0, 36, 0, 0, 0, 0, 27, 44, 38, - 40, 0, 0, 0, 28, 0, 0, 29, 30, 45, - 46, 0, 0, 0, 0, 34, 35, 0, 0, 63, - 37, 39, 32, 0, 31, 0, 0, 0, 0, 0, - 0, 0, 33, 0, 42, 43, 41, 0, 36, 0, - 0, 0, 0, 27, 44, 38, 40, 0, 0, 0, - 28, 0, 0, 29, 30, 45, 46, 0, 0, 0, - 0, 0, 0, 0, 0, 34, 35, 0, 0, 0, - 37, 39, 283, 63, 0, 0, 32, 0, 31, 0, - 0, 0, 33, 0, 42, 43, 41, 0, 36, 0, - 0, 0, 0, 27, 44, 38, 40, 0, 0, 0, - 28, 0, 0, 29, 30, 45, 46, 0, 0, 34, - 35, 0, 0, 0, 37, 39, 63, 273, 0, 32, - 0, 31, 0, 0, 0, 0, 33, 0, 42, 43, - 41, 0, 36, 0, 0, 0, 0, 27, 44, 38, - 40, 0, 0, 0, 28, 0, 0, 29, 30, 45, - 46, 0, 0, 0, 0, 34, 35, 0, 0, 0, - 37, 39, 63, 256, 0, 32, 0, 31, 0, 0, - 0, 0, 33, 0, 42, 43, 41, 0, 36, 0, - 0, 0, 0, 27, 44, 38, 40, 0, 0, 0, - 28, 0, 0, 29, 30, 45, 46, 0, 0, 34, - 35, 0, 0, 0, 37, 39, 63, 254, 0, 32, - 0, 31, 0, 0, 0, 0, 33, 0, 42, 43, - 41, 0, 36, 0, 0, 0, 0, 27, 44, 38, - 40, 0, 0, 0, 28, 0, 0, 29, 30, 45, - 46, 0, 34, 35, 0, 0, 0, 37, 39, 0, - 0, 0, 63, 0, 0, 32, 0, 31, 0, 33, - 0, 42, 43, 41, 0, 36, 0, 0, 0, 0, - 27, 44, 38, 40, 0, 0, 0, 28, 0, 0, - 29, 30, 45, 46, 0, 0, 0, 0, 0, 0, - 0, 0, 277, 0, 0, 63, 34, 35, 32, 194, - 31, 37, 39, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 33, 0, 42, 43, 41, 0, 36, - 0, 0, 0, 0, 27, 44, 38, 40, 0, 0, - 0, 28, 0, 0, 29, 30, 45, 46, 63, 34, - 35, 32, 192, 31, 37, 39, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 33, 0, 42, 43, - 41, 0, 36, 0, 0, 0, 0, 27, 44, 38, - 40, 0, 0, 0, 28, 0, 0, 29, 30, 45, - 46, 0, 0, 0, 63, 34, 35, 32, 191, 31, - 37, 39, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 33, 0, 42, 43, 41, 0, 36, 0, - 0, 0, 0, 27, 44, 38, 40, 0, 0, 0, - 28, 0, 0, 29, 30, 45, 46, 0, 63, 34, - 35, 32, 190, 31, 37, 39, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 33, 0, 42, 43, - 41, 0, 36, 0, 0, 0, 0, 27, 44, 38, - 40, 0, 0, 0, 28, 0, 0, 29, 30, 45, - 46, 224, 0, 0, 63, 34, 35, 32, 189, 31, - 37, 39, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 33, 0, 42, 43, 41, 0, 36, 0, - 0, 0, 0, 27, 44, 38, 40, 0, 0, 0, - 28, 0, 0, 29, 30, 45, 46, 63, 34, 35, - 32, 188, 31, 37, 39, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 33, 0, 42, 43, 41, - 0, 36, 0, 0, 0, 0, 27, 44, 38, 40, - 0, 0, 0, 28, 0, 0, 29, 30, 45, 46, - 0, 34, 35, 0, 0, 0, 37, 39, 63, 182, - 0, 32, 0, 31, 0, 0, 0, 0, 33, 0, - 42, 43, 41, 0, 36, 0, 0, 0, 0, 27, - 44, 38, 40, 0, 0, 0, 28, 0, 0, 29, - 30, 45, 46, 0, 0, 0, 0, 34, 35, 0, - 0, 0, 37, 39, 63, 0, 0, 32, 0, 31, - 0, 0, 0, 0, 33, 0, 42, 43, 41, 0, - 36, 0, 0, 0, 0, 27, 44, 38, 40, 0, - 0, 0, 28, 0, 0, 29, 30, 45, 46, 0, - 0, 34, 35, 0, 0, 0, 37, 39, 0, 0, - 63, 0, 0, 32, 0, 31, 0, 0, 33, 0, - 42, 43, 41, 0, 36, 0, 0, 0, 0, 27, - 44, 38, 40, 0, 0, 0, 28, 0, 0, 29, - 30, 45, 46, 0, 0, 0, 0, 34, 35, 0, - 0, 0, 37, 39, 63, 0, 0, 32, 138, 31, - 0, 0, 0, 0, 33, 0, 42, 43, 41, 0, - 36, 0, 0, 0, 0, 27, 44, 38, 40, 0, - 0, 0, 28, 0, 0, 29, 30, 45, 46, 0, - 34, 35, 0, 0, 0, 37, 39, 63, 134, 0, - 32, 0, 31, 0, 0, 0, 0, 33, 0, 42, - 43, 41, 0, 36, 0, 0, 0, 0, 27, 44, - 38, 40, 0, 0, 0, 28, 0, 0, 29, 30, - 45, 46, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 34, 35, 0, 0, 63, 37, 39, 32, 0, - 31, 0, 0, 0, 0, 0, 0, 0, 33, 0, - 42, 43, 41, 0, 36, 0, 0, 0, 0, 27, - 44, 38, 40, 0, 0, 0, 28, 0, 0, 29, - 30, 45, 46, 150, 0, 0, 0, 34, 35, 0, - 0, 63, 37, 39, 32, 0, 31, 0, 0, 0, - 0, 0, 0, 0, 33, 0, 42, 43, 41, 0, - 36, 0, 0, 0, 0, 27, 44, 38, 40, 0, - 0, 0, 28, 0, 0, 29, 30, 45, 46, 148, - 0, 0, 0, 34, 35, 0, 0, 93, 37, 39, - 32, 0, 31, 0, 0, 0, 0, 0, 0, 0, - 33, 0, 42, 43, 41, 0, 36, 0, 0, 0, - 0, 27, 44, 38, 40, 0, 0, 0, 28, 0, - 0, 29, 30, 45, 46, 0, 0, 34, 35, 0, - 0, 0, 37, 39, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 33, 0, 42, 43, 41, 0, - 36, 0, 0, 0, 0, 27, 44, 38, 40, 0, - 0, 0, 28, 0, 0, 29, 30, 45, 46, 0, - 34, 35, 0, 0, 0, 37, 39, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 33, 0, 42, - 43, 41, 0, 36, 0, 0, 0, 0, 27, 44, - 38, 40, 0, 0, 0, 28, 0, 0, 29, 30, - 45, 46, 0, 0, 117, 0, 0, 0, 34, 35, - 0, 0, 0, 37, 39, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 33, 0, 42, 43, 41, - 0, 36, 0, 0, 0, 0, 27, 44, 38, 40, - 0, 0, 0, 28, 0, 0, 29, 30, 45, 46, - 0, 0, 0, 0, 34, 35, 0, 0, 0, 37, - 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 33, 0, 42, 43, 41, 0, 36, 0, 0, - 0, 0, 27, 44, 38, 40, 0, 0, 0, 28, - 0, 0, 29, 30, 45, 46, 0, 0, 0, 0, - 34, 35, 0, 0, 0, 37, 39, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 33, 0, 42, - 43, 41, 0, 36, 0, 0, 0, 0, 27, 44, - 38, 40, 0, 0, 0, 28, 0, 0, 29, 30, - 45, 46 }; -int yypact[]={ - - -1000, -1000, 35, 1016, -1000, -1000, -1000, -1000, -1000, -1000, - -79, -271, -1000, -1000, -227, -22, -81, -85, 880, -1000, - -1000, -1000, 53, -281, -1000, 1332, 1332, -1000, -1000, -291, - -291, 2791, 2791, -44, 82, 80, 79, 2837, 78, 75, - 74, 73, 72, 70, -37, -1000, 2791, 35, -1000, 69, - -231, -1000, 1332, -1000, -1000, -1000, -1000, 2791, 2791, 2791, - 2745, 53, -293, 1332, 2791, 2791, 2791, 2791, 2791, 2791, - -278, 2791, -254, 1332, -1000, -1000, 58, 52, 48, 0, - -1000, -1000, -1000, -46, -46, -11, 2791, 2697, 2837, 2837, - -1000, 2654, 23, 1652, 2791, 2791, 2791, 2791, 2610, 2564, - 2837, -67, -231, 2837, 697, -1000, -1000, -1000, -266, 586, - 586, -231, -231, 1080, 1080, 1080, 1080, -1000, 64, 64, - -46, -46, -46, -46, -1000, 34, -291, -266, -1000, -1000, - -1000, -1000, 2791, 1080, -1000, 2518, 47, 46, -1000, -1000, - 41, 742, 1652, 2467, 2424, 2378, 2334, 2288, 13, 2245, - 12, -42, 635, 45, -1000, -1000, -1000, 68, -1000, -1000, - -1000, 2791, 2837, 2837, -1000, -1000, 2791, -1000, 2791, -282, - 67, 65, -1000, 63, -1000, -1000, -279, 432, 370, 2791, - -1000, 1080, -1000, -1000, -1000, 1606, 1606, -1000, 2791, -286, - 2791, 2202, 2791, 2791, 2791, 2791, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -231, -231, 8, 8, 2791, 2791, - -39, 1332, 1332, -40, 532, -231, -1000, -1000, 53, 2791, - 2791, 1562, 21, 2156, 43, 2112, 1512, 1466, 1416, 1374, - -94, -231, -231, -231, -231, -231, 2791, -1000, -1000, -1000, - 2791, 2791, -5, -9, -245, -4, 2066, -1000, 320, 35, - 2791, -1000, 2023, -1000, -1000, -1000, -1000, -1000, 2791, -1000, - 2791, -1000, 2791, -1000, 2791, -1000, 2791, 2791, 1969, -1000, - -1000, 62, 1282, -1000, -1000, 1926, 1882, 39, 1836, 1792, - 1742, 1696, -231, -1000, -40, -40, 1332, -34, 532, -40, - -231, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 267, -243, - -1000, -24, 532, 37, -1000, -1000, -1000, -1000, 32, -1000, - -40, -1000, -40, -1000, -40, -1000, -1000 }; -int yypgo[]={ - - 0, 139, 40, 135, 134, 4, 18, 129, 126, 125, - 124, 47, 64, 245, 46, 43, 37, 1223, 985, 39, - 123, 108, 104, 2, 35, 75, 33, 74 }; -int yyr1[]={ - - 0, 1, 4, 7, 7, 3, 3, 8, 8, 8, - 8, 8, 8, 10, 9, 9, 12, 12, 12, 12, - 16, 16, 16, 16, 15, 15, 15, 15, 14, 14, - 14, 14, 13, 13, 13, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 18, 18, 18, 18, 11, 11, 11, 19, 19, - 19, 2, 2, 20, 20, 20, 20, 5, 5, 21, - 21, 22, 22, 22, 22, 6, 6, 23, 23, 23, - 23, 26, 26, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 27, 27, 27, 25, - 25, 25, 25, 25, 25, 25, 25 }; -int yyr2[]={ - - 0, 5, 13, 11, 5, 7, 1, 3, 11, 21, - 9, 2, 2, 3, 3, 7, 2, 2, 2, 2, - 7, 9, 9, 5, 7, 7, 7, 7, 7, 7, - 3, 7, 3, 5, 7, 3, 3, 3, 7, 7, - 7, 7, 7, 7, 7, 11, 5, 5, 5, 5, - 5, 5, 7, 3, 5, 7, 9, 7, 9, 3, - 7, 9, 9, 9, 5, 17, 13, 17, 17, 13, - 13, 13, 13, 13, 13, 13, 13, 17, 17, 17, - 17, 3, 9, 3, 5, 2, 2, 1, 9, 9, - 7, 5, 1, 3, 3, 3, 3, 5, 1, 3, - 3, 5, 5, 5, 5, 5, 1, 7, 5, 5, - 2, 2, 1, 2, 9, 5, 9, 5, 3, 3, - 3, 5, 3, 3, 5, 11, 3, 3, 3, 13, - 19, 13, 15, 21, 19, 13, 11 }; -int yychk[]={ - - -1000, -1, -2, -3, -20, 59, 260, 261, 262, -8, - -9, 285, 123, -4, -7, -12, 257, 258, -13, -14, - -15, -16, -17, -18, 259, 40, 300, 291, 298, 301, - 302, 45, 43, 280, 263, 264, 286, 268, 293, 269, - 294, 284, 282, 283, 292, 303, 304, -2, 123, 286, - -5, 261, 44, 290, 289, 123, 123, 296, 62, 60, - 295, -17, -18, 40, 43, 45, 42, 47, 37, 94, - 274, 63, 112, 288, 301, 302, -16, -15, -14, -12, - -12, -18, -18, -17, -17, -18, 60, 40, 40, 40, - -11, -13, -19, 40, 40, 40, 40, 40, 40, 40, - 91, -17, -5, 40, -6, -21, 261, 262, -12, -5, - -5, -5, -5, -13, -13, -13, -13, 259, -17, -17, - -17, -17, -17, -17, 292, -17, 280, -12, 41, 41, - 41, 41, 60, -13, 41, -13, -11, -11, 44, 44, - -19, -13, 40, -13, -13, -13, -13, -13, 259, -13, - 259, -11, -6, -10, -11, 125, -23, -24, 59, 260, - -25, -13, 266, 267, 277, 276, 275, 278, 279, 287, - 270, 272, 281, 273, 123, -12, -12, -6, -6, 58, - -18, -13, 41, 41, 41, -5, -5, 41, 44, 44, - 44, 44, 44, 44, 44, 44, 93, 125, 41, -22, - 59, 260, 261, 262, -5, -5, -11, -11, -13, -13, - 292, 40, 40, -5, 40, -5, 125, 125, -17, -13, - -13, -13, 292, -13, 259, -13, -13, -13, -13, -13, - -5, -5, -5, -5, -5, -5, -27, 62, 265, 124, - -27, 91, -12, -12, -23, -26, -13, -24, -6, -2, - 44, 41, 44, 41, 41, 41, 41, 41, 44, 41, - 44, 41, 44, 41, 44, 123, -13, -13, -13, 41, - 41, 272, 59, 41, 125, -13, -13, 259, -13, -13, - -13, -13, -5, 93, -5, -5, 40, -12, 59, -5, - -5, 41, 41, 41, 41, 41, 41, 41, -6, -23, - -23, -12, 59, -26, -23, 125, 271, 41, -26, 41, - -5, 41, -5, -23, -5, -23, -23 }; -int yydef[]={ - - 92, -2, 6, 1, 91, 93, 94, 95, 96, 92, - 7, 0, 98, 11, 12, 14, 0, 0, 16, 17, - 18, 19, 32, 35, 30, 0, 0, 36, 37, 0, - 0, 0, 0, 53, 59, 0, 0, 87, 0, 0, - 0, 0, 0, 0, 81, 83, 0, 5, 98, 0, - 106, 4, 0, 98, 98, 98, 98, 0, 0, 0, - 0, 33, 35, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 46, 47, 19, 18, 17, 0, - 23, 48, 49, 50, 51, 54, 0, 0, 87, 87, - 64, 85, 86, 0, 0, 0, 0, 0, 0, 0, - 87, 84, 106, 87, 0, 97, 99, 100, 15, 0, - 0, 106, 106, 24, 25, 26, 28, 29, 38, 39, - 40, 41, 42, 43, 44, 0, 57, 34, 20, 27, - 31, 52, 0, 55, 60, 0, 0, 0, 98, 98, - 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 13, 10, 105, 0, 98, 98, - 110, 113, 87, 87, 118, 119, 120, 122, 123, 0, - 0, 0, 98, 0, 98, 21, 22, 0, 0, 0, - 58, 56, 61, 62, 63, 0, 0, 90, 0, 0, - 0, 0, 0, 0, 0, 0, 82, 8, 98, 98, - 98, 98, 98, 98, 108, 109, 115, 117, 121, 124, - 0, 0, 0, 0, 112, 106, 92, 3, 45, 88, - 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 107, 101, 102, 103, 104, 0, 126, 127, 128, - 0, 0, 0, 0, 0, 0, 113, 111, 0, 2, - 0, 66, 0, 69, 70, 71, 72, 73, 0, 74, - 0, 75, 0, 76, 0, 98, 114, 116, 0, 98, - 98, 0, 0, 98, 98, 0, 0, 0, 0, 0, - 0, 0, 106, 125, 0, 0, 0, 0, 112, 0, - 136, 65, 67, 68, 77, 78, 79, 80, 0, 129, - 131, 0, 112, 0, 135, 9, 98, 132, 0, 98, - 0, 98, 0, 130, 0, 134, 133 }; -typedef struct { char *t_name; int t_val; } yytoktype; +#line 32 "y.tab.c" +#define BEGIN 257 +#define END 258 +#define REGEX 259 +#define SEMINEW 260 +#define NEWLINE 261 +#define COMMENT 262 +#define FUN1 263 +#define FUNN 264 +#define GRGR 265 +#define PRINT 266 +#define PRINTF 267 +#define SPRINTF_OLD 268 +#define SPRINTF_NEW 269 +#define SPLIT 270 +#define IF 271 +#define ELSE 272 +#define WHILE 273 +#define FOR 274 +#define IN 275 +#define EXIT 276 +#define NEXT 277 +#define BREAK 278 +#define CONTINUE 279 +#define RET 280 +#define GETLINE 281 +#define DO 282 +#define SUB 283 +#define GSUB 284 +#define MATCH 285 +#define FUNCTION 286 +#define USERFUN 287 +#define DELETE 288 +#define ASGNOP 289 +#define OROR 290 +#define ANDAND 291 +#define NUMBER 292 +#define VAR 293 +#define SUBSTR 294 +#define INDEX 295 +#define MATCHOP 296 +#define RELOP 297 +#define OR 298 +#define STRING 299 +#define UMINUS 300 +#define NOT 301 +#define INCR 302 +#define DECR 303 +#define FIELD 304 +#define VFIELD 305 +#define SVFIELD 306 +#define YYERRCODE 256 +short yylhs[] = { -1, + 0, 3, 6, 6, 2, 2, 7, 7, 7, 7, + 7, 7, 9, 8, 8, 11, 11, 11, 11, 11, + 15, 15, 15, 15, 14, 14, 14, 14, 13, 13, + 13, 13, 12, 12, 12, 12, 18, 18, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 17, 17, 17, 17, 17, 10, + 10, 10, 19, 19, 19, 1, 1, 20, 20, 20, + 20, 4, 4, 21, 21, 22, 22, 22, 22, 5, + 5, 23, 23, 23, 23, 26, 26, 24, 24, 24, + 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, + 27, 27, 27, 25, 25, 25, 25, 25, 25, 25, + 25, +}; +short yylen[] = { 2, + 2, 6, 5, 2, 3, 0, 1, 5, 10, 4, + 1, 1, 1, 1, 3, 1, 1, 1, 1, 5, + 3, 4, 4, 2, 3, 3, 3, 3, 3, 3, + 1, 3, 1, 2, 5, 3, 1, 1, 1, 1, + 1, 3, 3, 3, 3, 3, 3, 3, 2, 2, + 2, 2, 2, 2, 3, 1, 2, 3, 4, 3, + 4, 1, 3, 4, 4, 4, 4, 2, 8, 6, + 8, 8, 6, 6, 6, 6, 6, 6, 6, 6, + 8, 8, 8, 8, 1, 4, 1, 1, 2, 1, + 1, 0, 4, 4, 3, 2, 0, 1, 1, 1, + 1, 2, 0, 1, 1, 2, 2, 2, 2, 2, + 0, 3, 2, 2, 1, 1, 0, 1, 4, 2, + 4, 2, 1, 1, 1, 2, 1, 1, 2, 5, + 1, 1, 1, 6, 9, 6, 7, 10, 9, 6, + 5, +}; +short yydefred[] = { 97, + 0, 0, 99, 100, 101, 98, 0, 96, 0, 0, + 31, 0, 0, 38, 0, 0, 0, 0, 0, 0, + 0, 0, 40, 0, 0, 0, 41, 0, 0, 0, + 0, 0, 87, 0, 88, 103, 0, 11, 0, 97, + 0, 0, 0, 17, 18, 19, 0, 0, 0, 103, + 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, + 51, 52, 0, 0, 0, 0, 0, 0, 4, 0, + 103, 0, 103, 103, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 49, 50, 0, 68, 0, 0, 0, 0, 63, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 104, 105, 0, 102, 55, + 32, 28, 21, 0, 0, 0, 0, 0, 0, 30, + 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 103, 103, 0, 0, + 64, 65, 67, 0, 0, 0, 0, 0, 0, 0, + 0, 13, 66, 86, 0, 0, 103, 0, 0, 0, + 0, 0, 0, 124, 123, 127, 0, 103, 0, 103, + 10, 103, 0, 110, 0, 115, 0, 0, 0, 22, + 0, 61, 95, 0, 0, 97, 3, 0, 0, 0, + 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, + 103, 103, 103, 103, 8, 0, 0, 0, 0, 0, + 73, 0, 78, 0, 77, 0, 80, 0, 79, 0, + 75, 76, 0, 70, 0, 74, 132, 131, 133, 0, + 0, 0, 0, 0, 116, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 103, 0, 0, 0, 103, 103, 103, 0, 0, 0, + 103, 72, 71, 82, 81, 84, 83, 0, 69, 0, + 0, 0, 0, 0, 0, 130, 0, 0, 0, 136, + 140, 0, 0, 0, 9, 103, 103, 0, 137, 0, + 0, 103, 135, 139, 0, 138, +}; +short yydgoto[] = { 1, + 2, 7, 38, 74, 128, 39, 40, 41, 171, 104, + 75, 193, 44, 45, 46, 47, 48, 49, 106, 8, + 129, 234, 194, 195, 196, 266, 260, +}; +short yysindex[] = { 0, + 0, -52, 0, 0, 0, 0, 6281, 0, -83, -65, + 0, 27, 28, 0, 43, 46, 29, 48, 50, 51, + -218, 64, 0, -14, 65, 66, 0, 8153, 8153, 6722, + -176, -176, 0, 8153, 0, 0, 6722, 0, -165, 0, + -38, -13, 6376, 0, 0, 0, -32, -232, 8198, 0, + 0, 7770, 8198, 8198, 8153, 8153, 47, 7835, 7883, 8153, + 69, 8198, 8198, 8153, 8153, 6722, -57, -267, -57, 0, + 0, 0, -2, -210, -41, 79, 80, 85, 0, -52, + 0, 8153, 0, 0, 6722, 8153, 7931, 8153, 8153, 8153, + -32, -166, 8153, 8153, 8153, 8153, 8153, 8153, -150, 6722, + 0, 0, 6770, 0, 3731, 88, -210, -210, 0, 1055, + 93, 94, 6815, 184, 8153, 92, 6892, 96, 6939, 7003, + 8198, 97, 44, 7048, 7094, 0, 0, 5585, 0, 0, + 0, 0, 0, -210, 7172, 2108, 2108, -60, 7216, 0, + 184, 184, 184, 184, 0, 45, 45, -57, -57, -57, + -57, -176, -60, 6770, 6332, 32, 0, 0, 5632, 5700, + 0, 0, 0, -148, 184, 8153, 8153, 8153, 8153, 8001, + 102, 0, 0, 0, 8153, 8153, 0, 8198, 8198, 107, + 121, 127, 8153, 0, 0, 0, 8153, 0, -130, 0, + 0, 0, 8045, 0, -43, 0, 5899, 8153, -119, 0, + 8153, 0, 0, 1434, 1434, 0, 0, 37, 5431, 6447, + 6491, 6548, 134, 7281, 0, 6611, 7327, -210, -45, -45, + 6722, 6722, 2656, 8045, 8045, 4777, 90, -210, -210, 0, + 0, 0, 0, 0, 0, 8045, 8045, 8045, 8045, -52, + 0, 8105, 0, 8153, 0, 8153, 0, 8153, 0, 8153, + 0, 0, -96, 0, 8153, 0, 0, 0, 0, 8153, + 8153, -39, -37, 7371, 0, 124, -89, 8198, 5967, -210, + -210, -210, -210, -210, 144, 7449, 7493, 7560, 7604, 7648, + 0, 7726, 8045, 8045, 0, 0, 0, 6659, 146, 95, + 0, 0, 0, 0, 0, 0, 0, -210, 0, 4777, + 4777, 4777, 2656, -51, 6722, 0, -210, 6014, -85, 0, + 0, 151, 2656, -35, 0, 0, 0, 152, 0, 4777, + 4777, 0, 0, 0, 4777, 0, +}; +short yyrindex[] = { 0, + 0, 2742, 0, 0, 0, 0, 194, 0, 0, 0, + 0, 56, 0, 0, 111, 0, 3174, 0, 0, 0, + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2475, 0, + 2531, 2375, 4311, 0, 0, 0, 2057, 1630, 3897, 0, + 0, 0, 154, 154, 0, 0, 382, 0, 0, 0, + 0, 154, 105, 0, 0, 0, 818, 872, 1143, 0, + 0, 0, 437, 6065, 0, -54, -49, -44, 0, 2798, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2324, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4263, 492, 6065, 6065, 0, 0, + 0, 0, 0, 3222, 0, 0, 0, 0, 0, 0, + 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 6065, 0, 0, 0, 2425, 0, 0, + 3462, 3507, 3552, 3621, 0, 1956, 2007, 1197, 1251, 1522, + 1576, 3119, 1901, 0, -23, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3830, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 504, 504, 0, + 0, 0, 13, 0, 0, 0, 103, 0, 0, 0, + 0, 0, 123, 0, 0, 0, 0, 0, 763, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 4830, 173, 242, + 0, 0, 140, 297, 350, 0, 0, 6065, 4878, 0, + 0, 0, 0, 0, 0, 3945, 4017, 4106, 4208, 2848, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 141, 0, 0, 0, 105, 0, 4952, + 5145, 5219, 5266, 5318, 0, 0, 0, 0, 0, 0, + 0, 0, 398, 484, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 6065, 0, 0, + 0, 0, 161, 0, 0, 0, 5534, 0, 6180, 0, + 0, 0, 161, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, +}; +short yygindex[] = { 0, + -17, 0, 0, 4597, -87, 0, 0, 0, 0, 12, + 23, 4555, -12, -8, -3, 8435, 4752, 0, -70, 0, + 0, 0, -124, -191, 0, -264, -7, +}; +#define YYTABLESIZE 8719 +short yytable[] = { 130, + 85, 285, 82, 286, 97, 319, 6, 313, 17, 95, + 93, 82, 94, 18, 96, 233, 258, 16, 19, 159, + 160, 82, 80, 82, 76, 82, 281, 82, 77, 42, + 85, 265, 156, 78, 101, 102, 98, 85, 312, 50, + 85, 85, 85, 85, 85, 85, 197, 85, 318, 82, + 126, 127, 70, 125, 99, 62, 100, 51, 85, 85, + 85, 98, 85, 85, 111, 112, 52, 53, 61, 101, + 102, 125, 203, 122, 123, 158, 63, 241, 259, 99, + 242, 97, 54, 156, 81, 55, 95, 58, 56, 59, + 60, 96, 62, 85, 85, 79, 62, 62, 62, 62, + 62, 267, 62, 62, 64, 65, 115, 138, 121, 99, + 37, 265, 85, 62, 62, 62, 24, 62, 62, 131, + 132, 265, 153, 85, 85, 133, 145, 33, 34, 35, + 152, 158, 172, 162, 163, 166, 174, 173, 98, 168, + 269, 76, 215, 128, 208, 77, 221, 37, 62, 62, + 78, 37, 37, 37, 37, 37, 99, 37, 199, 200, + 222, 128, 227, 118, 126, 127, 223, 62, 37, 37, + 37, 84, 37, 37, 251, 309, 310, 311, 62, 62, + 268, 118, 288, 289, 292, 305, 316, 306, 240, 219, + 220, 317, 322, 1, 92, 323, 324, 92, 117, 118, + 326, 117, 0, 37, 37, 0, 0, 3, 4, 5, + 308, 0, 261, 120, 0, 0, 230, 231, 232, 257, + 0, 0, 37, 66, 0, 0, 28, 0, 29, 83, + 84, 120, 0, 37, 37, 17, 17, 0, 83, 84, + 18, 18, 92, 262, 263, 19, 19, 0, 83, 84, + 83, 84, 83, 84, 83, 84, 0, 85, 85, 85, + 85, 85, 85, 85, 85, 85, 16, 16, 85, 85, + 85, 0, 125, 125, 125, 85, 83, 84, 0, 290, + 0, 85, 122, 85, 85, 85, 85, 85, 0, 85, + 85, 85, 85, 85, 85, 85, 85, 85, 0, 85, + 122, 85, 85, 85, 85, 85, 85, 0, 0, 0, + 304, 0, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 24, 0, 62, 62, 62, 0, 314, 0, 0, + 62, 0, 33, 34, 35, 0, 62, 126, 62, 62, + 62, 62, 62, 0, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 0, 62, 126, 62, 62, 62, 62, + 62, 62, 128, 128, 128, 0, 0, 37, 37, 37, + 37, 37, 37, 37, 37, 37, 0, 0, 37, 37, + 37, 57, 118, 118, 118, 37, 0, 0, 0, 0, + 129, 37, 0, 37, 37, 37, 37, 37, 0, 37, + 37, 37, 37, 37, 37, 37, 37, 37, 129, 37, + 0, 37, 37, 37, 37, 37, 37, 0, 57, 0, + 0, 57, 57, 57, 57, 57, 57, 0, 57, 0, + 0, 0, 120, 120, 120, 0, 89, 0, 119, 57, + 57, 0, 0, 57, 57, 0, 12, 13, 0, 0, + 0, 14, 15, 16, 0, 0, 119, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 18, 19, 20, 0, + 22, 0, 0, 89, 57, 57, 89, 89, 89, 89, + 89, 89, 27, 89, 0, 31, 32, 33, 34, 35, + 0, 91, 0, 57, 89, 89, 89, 0, 89, 89, + 0, 122, 122, 122, 57, 57, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 121, 0, 0, 0, 91, 89, + 89, 91, 91, 91, 91, 0, 91, 0, 91, 0, + 0, 0, 121, 0, 92, 0, 0, 0, 0, 91, + 91, 91, 0, 91, 91, 0, 126, 126, 126, 89, + 89, 0, 92, 0, 0, 92, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 91, 91, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 91, 0, 0, 0, 0, 0, 129, + 129, 129, 0, 0, 91, 91, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 92, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 0, 0, 57, + 57, 57, 0, 0, 0, 0, 57, 119, 119, 119, + 0, 0, 57, 0, 57, 57, 57, 57, 57, 0, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 0, + 57, 0, 57, 57, 57, 57, 57, 57, 0, 0, + 0, 0, 0, 89, 89, 89, 89, 89, 89, 89, + 89, 89, 0, 0, 89, 89, 89, 0, 0, 0, + 0, 89, 0, 0, 0, 0, 0, 89, 0, 89, + 89, 89, 89, 89, 0, 89, 89, 89, 89, 89, + 89, 89, 89, 89, 0, 89, 0, 89, 89, 89, + 89, 89, 89, 121, 121, 121, 0, 0, 91, 91, + 91, 91, 91, 91, 91, 91, 91, 0, 0, 91, + 91, 91, 23, 92, 92, 92, 91, 0, 92, 0, + 0, 0, 91, 0, 91, 91, 91, 91, 91, 0, + 91, 91, 91, 91, 91, 91, 91, 91, 91, 0, + 91, 0, 91, 91, 91, 91, 91, 91, 0, 23, + 0, 0, 23, 23, 23, 23, 23, 23, 0, 23, + 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, + 23, 23, 23, 0, 23, 23, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 54, 23, 23, 54, 54, 54, + 54, 54, 54, 0, 54, 0, 0, 0, 0, 0, + 0, 39, 0, 0, 23, 54, 54, 54, 0, 54, + 54, 0, 0, 0, 0, 23, 23, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 39, 0, + 54, 39, 39, 39, 39, 39, 39, 0, 39, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, + 39, 39, 0, 39, 39, 0, 0, 0, 0, 0, + 54, 54, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 39, 39, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 39, 39, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, + 23, 23, 23, 23, 23, 23, 23, 23, 0, 0, + 23, 23, 23, 0, 0, 0, 0, 23, 0, 0, + 0, 0, 0, 23, 0, 23, 23, 23, 23, 23, + 0, 23, 23, 0, 23, 23, 23, 23, 23, 23, + 0, 23, 0, 23, 23, 23, 23, 23, 23, 0, + 0, 0, 0, 0, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 0, 0, 54, 54, 54, 0, 0, + 0, 0, 54, 0, 66, 161, 0, 28, 54, 29, + 54, 54, 54, 54, 54, 0, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 0, 54, 86, 54, 54, + 54, 54, 54, 54, 0, 0, 0, 0, 39, 39, + 39, 39, 39, 39, 39, 39, 39, 0, 0, 39, + 39, 39, 53, 0, 0, 0, 39, 0, 0, 0, + 0, 0, 39, 0, 39, 39, 39, 39, 39, 0, + 39, 39, 39, 39, 39, 39, 39, 39, 39, 0, + 39, 0, 39, 0, 0, 39, 39, 39, 0, 53, + 0, 0, 53, 53, 53, 53, 53, 53, 0, 53, + 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, + 53, 53, 53, 0, 53, 53, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 44, 0, 53, 44, 44, 44, 44, + 44, 44, 0, 44, 0, 0, 0, 0, 0, 0, + 45, 0, 0, 0, 44, 44, 44, 0, 44, 44, + 0, 0, 0, 0, 0, 53, 53, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 45, 0, 44, + 45, 45, 45, 45, 45, 45, 0, 45, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 45, 45, + 45, 0, 45, 45, 0, 0, 0, 12, 13, 44, + 44, 0, 14, 15, 16, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 17, 0, 18, 19, 20, + 0, 22, 0, 45, 0, 0, 23, 24, 25, 26, + 0, 0, 0, 27, 0, 0, 31, 32, 33, 34, + 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 45, 45, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, + 53, 53, 53, 53, 53, 53, 53, 53, 0, 0, + 53, 53, 53, 0, 0, 0, 0, 53, 0, 0, + 0, 0, 0, 53, 0, 53, 53, 53, 53, 53, + 0, 53, 53, 53, 53, 53, 53, 53, 53, 53, + 0, 53, 0, 53, 53, 53, 53, 53, 53, 0, + 0, 0, 0, 44, 44, 44, 44, 44, 44, 44, + 44, 44, 0, 0, 44, 44, 44, 0, 0, 0, + 0, 44, 0, 66, 0, 0, 28, 44, 29, 44, + 44, 44, 44, 44, 0, 44, 44, 44, 44, 44, + 44, 44, 44, 44, 0, 44, 0, 44, 44, 44, + 44, 44, 44, 0, 0, 0, 0, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 0, 0, 45, 45, + 45, 46, 0, 0, 0, 45, 0, 0, 0, 0, + 0, 45, 0, 45, 45, 45, 45, 45, 0, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 0, 45, + 0, 45, 45, 45, 45, 45, 45, 0, 46, 0, + 0, 46, 46, 46, 46, 46, 46, 0, 46, 0, + 0, 0, 0, 0, 0, 47, 0, 0, 0, 46, + 46, 46, 0, 46, 46, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 47, 0, 46, 47, 47, 47, 47, 47, + 47, 0, 47, 0, 0, 0, 0, 0, 0, 39, + 0, 0, 0, 47, 47, 47, 0, 47, 47, 0, + 0, 0, 0, 0, 46, 46, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 39, 0, 47, 39, + 39, 39, 39, 39, 39, 0, 39, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 39, 39, 39, + 0, 39, 39, 0, 126, 127, 12, 13, 47, 47, + 0, 14, 15, 16, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 18, 19, 20, 0, + 22, 0, 39, 39, 0, 23, 24, 25, 26, 0, + 0, 0, 27, 0, 0, 31, 32, 33, 34, 35, + 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 39, 39, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 0, 0, 46, + 46, 46, 0, 0, 0, 0, 46, 0, 0, 0, + 0, 0, 46, 0, 46, 46, 46, 46, 46, 0, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 0, + 46, 0, 46, 46, 46, 46, 46, 46, 0, 0, + 0, 0, 47, 47, 47, 47, 47, 47, 47, 47, + 47, 0, 0, 47, 47, 47, 0, 0, 0, 0, + 47, 0, 0, 0, 0, 0, 47, 0, 47, 47, + 47, 47, 47, 0, 47, 47, 47, 47, 47, 47, + 47, 47, 47, 0, 47, 0, 47, 47, 47, 47, + 47, 47, 0, 0, 0, 0, 39, 39, 39, 39, + 39, 39, 39, 39, 39, 0, 0, 39, 39, 39, + 36, 0, 0, 0, 39, 0, 0, 0, 0, 0, + 39, 0, 39, 39, 39, 39, 39, 0, 0, 39, + 39, 39, 39, 39, 39, 39, 39, 0, 39, 0, + 39, 0, 0, 39, 39, 39, 0, 36, 0, 0, + 36, 36, 36, 36, 36, 36, 0, 36, 0, 0, + 0, 0, 0, 0, 0, 42, 0, 0, 36, 36, + 36, 0, 36, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 36, 36, 42, 42, 0, 42, 42, + 42, 0, 0, 0, 0, 0, 43, 0, 0, 0, + 0, 0, 36, 42, 42, 42, 0, 42, 42, 0, + 0, 0, 0, 36, 36, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 43, 43, 42, 43, + 43, 43, 0, 0, 0, 0, 33, 0, 0, 0, + 0, 0, 0, 0, 43, 43, 43, 0, 43, 43, + 0, 0, 0, 0, 0, 0, 0, 0, 42, 42, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 33, 33, 0, 43, + 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 33, 33, 33, 0, 33, 33, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, + 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 37, 0, 33, + 28, 0, 29, 0, 0, 0, 0, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 0, 0, 36, 36, + 36, 0, 0, 0, 0, 36, 0, 0, 0, 33, + 33, 36, 0, 36, 36, 36, 36, 36, 0, 36, + 0, 0, 36, 36, 36, 36, 36, 36, 0, 36, + 0, 36, 36, 36, 36, 36, 36, 0, 0, 0, + 0, 0, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 0, 0, 42, 42, 42, 0, 0, 0, 0, + 42, 0, 0, 0, 0, 0, 42, 0, 42, 42, + 42, 42, 42, 0, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 0, 42, 0, 42, 42, 42, 42, + 42, 42, 0, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 0, 0, 43, 43, 43, 0, 0, 0, + 0, 43, 0, 0, 0, 0, 0, 43, 0, 43, + 43, 43, 43, 43, 0, 43, 43, 43, 43, 43, + 43, 43, 43, 43, 0, 43, 0, 43, 43, 43, + 43, 43, 43, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 0, 34, 33, 33, 33, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 33, 0, 33, + 33, 33, 33, 33, 0, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 0, 33, 0, 33, 33, 33, + 33, 33, 33, 34, 34, 0, 11, 34, 126, 127, + 12, 13, 0, 0, 14, 14, 15, 16, 0, 0, + 0, 34, 34, 34, 0, 34, 34, 0, 17, 0, + 18, 19, 20, 0, 22, 0, 0, 0, 0, 23, + 24, 25, 26, 0, 0, 0, 27, 0, 30, 31, + 32, 33, 34, 35, 14, 0, 34, 14, 0, 14, + 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, + 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 34, 34, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 15, 0, 0, 15, 0, 15, + 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, + 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 12, 0, 0, 12, 0, 12, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 0, 0, 12, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 0, 0, 7, 0, 7, 0, 0, 0, 0, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 7, + 0, 34, 34, 34, 0, 0, 0, 12, 0, 0, + 0, 0, 0, 0, 34, 0, 34, 34, 34, 34, + 34, 0, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 0, 34, 0, 34, 34, 34, 34, 34, 34, + 0, 14, 14, 14, 14, 14, 14, 14, 14, 0, + 0, 0, 14, 14, 14, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 14, 0, 14, 14, 14, + 14, 14, 0, 0, 0, 0, 14, 14, 14, 14, + 0, 0, 0, 14, 0, 14, 14, 14, 14, 14, + 14, 15, 15, 15, 15, 15, 15, 15, 15, 0, + 0, 0, 15, 15, 15, 66, 0, 0, 28, 0, + 29, 0, 0, 0, 0, 15, 0, 15, 15, 15, + 15, 15, 0, 0, 0, 0, 15, 15, 15, 15, + 0, 0, 0, 15, 0, 15, 15, 15, 15, 15, + 15, 12, 12, 12, 12, 0, 12, 12, 12, 0, + 0, 6, 12, 12, 12, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 12, 0, 12, 12, 12, + 12, 12, 0, 0, 0, 0, 12, 12, 12, 12, + 0, 0, 0, 12, 0, 12, 12, 12, 12, 12, + 12, 6, 0, 0, 6, 0, 6, 7, 7, 7, + 7, 7, 7, 7, 7, 0, 0, 5, 7, 7, + 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 7, 0, 7, 7, 7, 7, 7, 0, 0, + 0, 0, 7, 7, 7, 7, 0, 0, 0, 7, + 0, 7, 7, 7, 7, 7, 7, 5, 0, 0, + 5, 0, 5, 0, 0, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, + 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 12, 13, + 5, 178, 179, 14, 15, 16, 0, 0, 0, 0, + 0, 183, 184, 185, 186, 187, 17, 0, 18, 19, + 20, 0, 22, 189, 0, 0, 0, 23, 24, 25, + 26, 0, 0, 0, 27, 0, 0, 31, 32, 33, + 34, 35, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, + 6, 0, 0, 0, 6, 6, 0, 0, 0, 6, + 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 6, 0, 6, 6, 6, 6, 6, 0, + 0, 0, 0, 6, 6, 6, 6, 0, 0, 0, + 6, 0, 6, 6, 6, 6, 6, 6, 0, 0, + 0, 0, 0, 0, 5, 5, 5, 0, 0, 0, + 5, 5, 0, 0, 0, 5, 5, 5, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, + 5, 5, 5, 5, 5, 0, 0, 0, 0, 5, + 5, 5, 5, 0, 0, 0, 5, 0, 5, 5, + 5, 5, 5, 5, 2, 2, 2, 0, 0, 0, + 2, 2, 0, 0, 0, 2, 2, 2, 60, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, + 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, + 2, 2, 2, 0, 0, 0, 2, 0, 2, 2, + 2, 2, 2, 2, 0, 60, 0, 0, 60, 60, + 60, 60, 60, 60, 0, 60, 0, 0, 0, 0, + 0, 0, 0, 56, 0, 0, 60, 60, 60, 0, + 60, 60, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 56, 60, 60, 56, 56, 56, 56, 56, 56, 0, + 56, 58, 0, 0, 0, 0, 0, 0, 0, 0, + 60, 56, 56, 0, 0, 56, 56, 0, 0, 0, + 0, 60, 60, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 58, 0, + 0, 0, 58, 58, 0, 58, 56, 56, 58, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, + 58, 58, 0, 58, 58, 56, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 56, 56, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 58, 58, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 58, 58, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 60, 60, 60, 60, 60, + 60, 60, 60, 60, 0, 0, 60, 60, 60, 0, + 0, 0, 0, 60, 0, 0, 0, 0, 0, 60, + 0, 60, 60, 60, 60, 60, 0, 60, 60, 60, + 60, 0, 60, 60, 60, 60, 0, 60, 0, 60, + 60, 60, 0, 0, 0, 0, 0, 0, 0, 0, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 0, + 0, 56, 56, 56, 0, 0, 0, 0, 56, 0, + 0, 0, 0, 0, 56, 0, 56, 56, 56, 56, + 56, 29, 56, 56, 56, 56, 0, 56, 56, 56, + 56, 0, 56, 0, 56, 56, 56, 0, 58, 58, + 58, 58, 58, 58, 0, 0, 58, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 58, 0, 29, 0, + 0, 0, 29, 29, 0, 29, 25, 58, 29, 0, + 58, 58, 58, 58, 58, 58, 58, 58, 58, 29, + 29, 29, 58, 29, 29, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 25, 0, 0, 0, 25, 25, 0, + 25, 27, 0, 25, 29, 29, 0, 0, 0, 0, + 0, 0, 0, 0, 25, 25, 25, 0, 25, 25, + 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 29, 29, 0, 0, 27, 0, + 0, 0, 27, 27, 0, 27, 0, 0, 27, 25, + 25, 0, 0, 0, 0, 0, 0, 0, 0, 27, + 27, 27, 0, 27, 27, 0, 0, 0, 25, 0, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 25, + 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 27, 27, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, + 0, 26, 26, 27, 26, 0, 0, 26, 0, 0, + 0, 0, 0, 0, 27, 27, 0, 0, 26, 26, + 26, 0, 26, 26, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 26, 26, 0, 0, 0, 29, 29, + 29, 29, 29, 29, 0, 0, 29, 0, 0, 0, + 0, 0, 26, 0, 0, 0, 29, 0, 0, 0, + 0, 0, 0, 26, 26, 0, 0, 29, 0, 0, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 0, + 0, 0, 29, 25, 25, 25, 25, 25, 25, 0, + 66, 25, 0, 28, 157, 29, 0, 0, 0, 0, + 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 25, 86, 0, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 0, 0, 0, 25, 27, 27, + 27, 27, 27, 27, 0, 0, 27, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 27, 0, 0, 59, + 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 0, + 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 59, 0, 0, 0, + 59, 59, 0, 59, 0, 0, 59, 26, 26, 26, + 26, 26, 26, 0, 0, 26, 0, 59, 59, 59, + 0, 59, 59, 0, 0, 26, 92, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 26, 0, 0, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, + 0, 26, 59, 59, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 92, 0, 0, 0, 92, 92, 0, + 92, 59, 0, 92, 20, 0, 0, 0, 0, 0, + 0, 0, 59, 59, 92, 92, 92, 0, 92, 92, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 20, 0, 0, 0, 20, 20, 0, 20, 92, + 92, 20, 0, 12, 13, 0, 0, 0, 14, 15, + 16, 0, 20, 20, 20, 0, 20, 0, 92, 0, + 0, 17, 0, 18, 19, 20, 35, 22, 0, 92, + 92, 0, 23, 24, 25, 26, 0, 0, 0, 27, + 0, 0, 31, 32, 33, 34, 35, 20, 20, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 35, 0, 0, 20, 35, 35, 0, + 35, 0, 0, 35, 0, 0, 0, 20, 20, 0, + 0, 0, 0, 0, 35, 35, 35, 0, 35, 0, + 0, 0, 0, 0, 0, 0, 59, 59, 59, 59, + 59, 59, 0, 0, 59, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 59, 93, 0, 0, 0, 35, + 35, 0, 0, 0, 0, 59, 0, 0, 59, 59, + 59, 59, 59, 59, 59, 59, 59, 0, 35, 0, + 59, 0, 0, 0, 0, 0, 0, 0, 0, 35, + 35, 0, 93, 0, 0, 0, 93, 93, 0, 93, + 0, 0, 93, 92, 92, 92, 92, 92, 92, 0, + 0, 92, 0, 93, 93, 93, 0, 93, 0, 0, + 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 92, 0, 0, 92, 92, 92, 0, 0, + 0, 0, 92, 92, 0, 0, 0, 92, 93, 93, + 0, 20, 20, 20, 20, 20, 20, 94, 0, 20, + 0, 0, 0, 0, 0, 0, 0, 93, 0, 20, + 0, 0, 0, 0, 0, 0, 0, 0, 93, 93, + 20, 0, 0, 20, 20, 20, 0, 0, 0, 0, + 20, 20, 0, 0, 94, 20, 0, 0, 94, 94, + 0, 94, 0, 0, 94, 0, 0, 0, 0, 0, + 0, 0, 90, 0, 0, 94, 94, 94, 0, 94, + 0, 0, 0, 35, 35, 35, 35, 35, 35, 0, + 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 35, 0, 0, 0, 0, 0, 0, 0, 90, + 94, 94, 35, 90, 90, 35, 35, 35, 0, 90, + 16, 0, 35, 35, 0, 0, 0, 35, 0, 94, + 90, 90, 90, 0, 90, 0, 0, 0, 0, 0, + 94, 94, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, + 0, 16, 16, 0, 16, 90, 90, 16, 0, 0, + 0, 0, 93, 93, 93, 93, 93, 93, 16, 16, + 93, 0, 0, 0, 90, 0, 0, 0, 0, 0, + 93, 0, 0, 0, 0, 90, 90, 0, 0, 0, + 0, 93, 0, 0, 93, 93, 93, 0, 0, 0, + 0, 93, 93, 16, 16, 0, 93, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 16, 16, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 94, 94, 94, 94, 94, 94, + 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 94, 0, 0, 94, 94, 94, 0, + 0, 0, 0, 94, 94, 0, 0, 0, 94, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 90, + 90, 90, 90, 90, 90, 0, 0, 90, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 90, 0, + 0, 90, 90, 90, 0, 0, 0, 0, 90, 90, + 0, 43, 0, 90, 0, 0, 0, 16, 16, 16, + 16, 16, 16, 0, 0, 16, 0, 0, 0, 0, + 0, 0, 0, 0, 43, 16, 0, 0, 0, 0, + 0, 43, 0, 0, 0, 0, 16, 0, 0, 16, + 16, 16, 0, 105, 0, 0, 110, 105, 105, 113, + 114, 16, 117, 119, 120, 0, 105, 105, 124, 125, + 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 135, 0, 0, 43, + 139, 141, 142, 143, 144, 0, 107, 108, 0, 0, + 0, 0, 0, 0, 43, 0, 0, 155, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, + 0, 0, 0, 0, 0, 105, 0, 134, 0, 136, + 137, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 43, 43, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 155, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 209, 210, 211, 212, 214, 0, 0, 0, 0, 216, + 217, 0, 105, 105, 0, 0, 0, 224, 0, 0, + 0, 225, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 236, 204, 205, 237, 0, 0, 238, 239, + 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, + 0, 0, 0, 218, 0, 43, 43, 264, 0, 68, + 68, 0, 71, 72, 226, 68, 228, 0, 229, 0, + 0, 0, 0, 0, 68, 0, 276, 0, 277, 0, + 278, 0, 279, 0, 280, 0, 0, 0, 0, 282, + 0, 253, 0, 0, 283, 284, 66, 0, 0, 28, + 0, 29, 105, 0, 0, 0, 270, 271, 272, 273, + 274, 0, 0, 0, 0, 192, 0, 0, 0, 0, + 0, 0, 43, 0, 68, 68, 68, 68, 68, 68, + 0, 0, 0, 0, 0, 0, 68, 0, 0, 43, + 0, 68, 0, 0, 68, 68, 0, 0, 68, 114, + 68, 68, 114, 0, 114, 68, 68, 298, 0, 0, + 0, 300, 301, 302, 0, 0, 68, 307, 114, 0, + 68, 0, 68, 68, 68, 68, 0, 0, 0, 190, + 0, 0, 0, 202, 0, 0, 68, 0, 0, 0, + 0, 0, 320, 321, 0, 0, 68, 113, 325, 0, + 113, 0, 113, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 113, 0, 0, 0, + 0, 0, 0, 0, 68, 0, 0, 0, 0, 0, + 0, 0, 114, 0, 114, 0, 0, 0, 0, 0, + 68, 68, 68, 68, 0, 68, 0, 68, 68, 0, + 0, 0, 0, 0, 0, 68, 68, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 68, 68, 68, + 68, 107, 0, 0, 107, 0, 107, 0, 0, 0, + 113, 0, 113, 0, 0, 0, 0, 0, 0, 0, + 107, 0, 0, 0, 0, 68, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 68, 68, 68, + 68, 68, 0, 68, 68, 68, 177, 126, 127, 12, + 13, 0, 178, 179, 14, 15, 16, 180, 0, 181, + 182, 0, 183, 184, 185, 186, 187, 17, 188, 18, + 19, 20, 0, 22, 189, 0, 0, 0, 23, 24, + 25, 26, 0, 0, 107, 27, 107, 0, 31, 32, + 33, 34, 35, 0, 0, 0, 0, 0, 0, 114, + 0, 0, 114, 114, 0, 114, 114, 114, 114, 114, + 114, 114, 114, 114, 0, 114, 114, 114, 114, 114, + 114, 114, 114, 114, 114, 0, 114, 114, 0, 0, + 0, 114, 114, 114, 114, 0, 0, 0, 114, 0, + 0, 114, 114, 114, 114, 114, 0, 113, 0, 0, + 113, 113, 0, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 0, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 0, 113, 113, 0, 0, 0, 113, + 113, 113, 113, 0, 0, 0, 113, 0, 0, 113, + 113, 113, 113, 113, 108, 0, 0, 108, 0, 108, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, + 0, 107, 0, 0, 107, 107, 0, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 0, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 0, 107, 107, + 0, 0, 0, 107, 107, 107, 107, 0, 0, 0, + 107, 0, 0, 107, 107, 107, 107, 107, 109, 0, + 0, 109, 0, 109, 0, 0, 0, 108, 0, 108, + 0, 0, 0, 0, 0, 0, 0, 109, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 106, 0, 0, 106, 0, + 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 106, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 109, 0, 109, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 112, 0, 0, + 112, 0, 112, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 112, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 106, 0, + 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 108, 0, 0, 108, 108, 0, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 0, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 0, 108, 108, 0, 0, 0, 108, 108, 108, 108, + 112, 0, 112, 108, 0, 0, 108, 108, 108, 108, + 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 66, 243, 0, 28, 244, 29, 0, 0, 109, 0, + 0, 109, 109, 0, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 86, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 0, 109, 109, 0, 0, 0, + 109, 109, 109, 109, 0, 0, 0, 109, 0, 0, + 109, 109, 109, 109, 109, 106, 0, 0, 106, 106, + 0, 106, 106, 106, 106, 106, 106, 106, 106, 106, + 0, 106, 106, 106, 106, 106, 106, 106, 106, 106, + 106, 0, 106, 106, 0, 0, 0, 106, 106, 106, + 106, 0, 0, 0, 106, 0, 0, 106, 106, 106, + 106, 106, 0, 141, 0, 0, 141, 112, 141, 0, + 112, 112, 0, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 141, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 0, 112, 112, 0, 0, 0, 112, + 112, 112, 112, 0, 0, 0, 112, 0, 0, 112, + 112, 112, 112, 112, 66, 0, 0, 28, 0, 29, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 192, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 141, 0, 141, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 66, 0, 0, 28, 0, 29, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 192, 0, 0, 12, 13, 0, 0, 0, 14, 15, + 16, 0, 0, 0, 0, 0, 0, 190, 0, 191, + 0, 17, 0, 18, 19, 20, 0, 22, 0, 0, + 0, 0, 23, 24, 25, 26, 0, 0, 0, 27, + 0, 0, 31, 32, 33, 34, 35, 0, 0, 66, + 0, 0, 28, 0, 29, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 190, 0, 206, 0, 192, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 141, 0, 0, 141, 141, 0, 141, + 141, 141, 141, 141, 141, 141, 141, 141, 0, 141, + 141, 141, 141, 141, 141, 141, 141, 141, 141, 0, + 141, 141, 190, 0, 207, 141, 141, 141, 141, 0, + 0, 0, 141, 0, 0, 141, 141, 141, 141, 141, + 0, 0, 0, 0, 177, 0, 0, 12, 13, 0, + 178, 179, 14, 15, 16, 180, 0, 181, 182, 0, + 183, 184, 185, 186, 187, 17, 188, 18, 19, 20, + 0, 22, 189, 0, 0, 0, 23, 24, 25, 26, + 0, 0, 0, 27, 0, 0, 31, 32, 33, 34, + 35, 177, 0, 0, 12, 13, 0, 178, 179, 14, + 15, 16, 180, 0, 181, 182, 0, 183, 184, 185, + 186, 187, 17, 188, 18, 19, 20, 0, 22, 189, + 0, 0, 0, 23, 24, 25, 26, 0, 0, 0, + 27, 0, 0, 31, 32, 33, 34, 35, 66, 0, + 0, 28, 0, 29, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 192, 0, 177, + 0, 0, 12, 13, 0, 178, 179, 14, 15, 16, + 180, 0, 181, 182, 0, 183, 184, 185, 186, 187, + 17, 188, 18, 19, 20, 0, 22, 189, 0, 0, + 0, 23, 24, 25, 26, 0, 0, 0, 27, 0, + 0, 31, 32, 33, 34, 35, 66, 0, 0, 28, + 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 190, 0, 235, 0, 192, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 66, 0, 0, 28, 0, 29, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 192, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 190, + 0, 291, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 111, 0, 0, 111, 0, 111, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 111, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 190, 0, 315, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, + 0, 12, 13, 0, 178, 179, 14, 15, 16, 180, + 0, 181, 182, 0, 183, 184, 185, 186, 187, 17, + 188, 18, 19, 20, 0, 22, 189, 111, 0, 111, + 23, 24, 25, 26, 0, 0, 0, 27, 0, 0, + 31, 32, 33, 34, 35, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 134, + 0, 0, 134, 0, 134, 0, 177, 0, 0, 12, + 13, 0, 178, 179, 14, 15, 16, 180, 134, 181, + 182, 0, 183, 184, 185, 186, 187, 17, 188, 18, + 19, 20, 0, 22, 189, 0, 0, 0, 23, 24, + 25, 26, 0, 0, 0, 27, 0, 0, 31, 32, + 33, 34, 35, 177, 0, 0, 12, 13, 0, 178, + 179, 14, 15, 16, 180, 0, 181, 182, 0, 183, + 184, 185, 186, 187, 17, 188, 18, 19, 20, 0, + 22, 189, 134, 0, 134, 23, 24, 25, 26, 0, + 0, 0, 27, 0, 0, 31, 32, 33, 34, 35, + 37, 0, 0, 28, 111, 29, 0, 111, 111, 0, + 111, 111, 111, 111, 111, 111, 0, 111, 111, 0, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 0, 111, 111, 0, 0, 0, 111, 111, 111, 111, + 0, 0, 0, 111, 0, 0, 111, 111, 111, 111, + 111, 66, 0, 0, 28, 157, 29, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 89, 0, 90, 86, 0, 0, 0, 0, 0, + 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 66, 0, 0, 28, 0, + 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 89, 0, 90, 86, 134, + 0, 0, 134, 134, 0, 134, 134, 134, 134, 134, + 134, 0, 134, 134, 0, 134, 134, 134, 134, 134, + 134, 134, 134, 134, 134, 0, 134, 134, 0, 0, + 0, 134, 134, 134, 134, 0, 0, 0, 134, 0, + 0, 134, 134, 134, 134, 134, 66, 245, 0, 28, + 246, 29, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 66, 247, 0, 28, 248, 29, 0, 9, 10, 11, + 0, 0, 0, 12, 13, 0, 0, 0, 14, 15, + 16, 0, 0, 86, 0, 0, 0, 0, 0, 0, + 0, 17, 0, 18, 19, 20, 21, 22, 0, 0, + 0, 0, 23, 24, 25, 26, 0, 0, 0, 27, + 0, 30, 31, 32, 33, 34, 35, 66, 249, 0, + 28, 250, 29, 0, 12, 13, 0, 0, 0, 14, + 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, + 86, 0, 17, 0, 18, 19, 20, 0, 22, 0, + 0, 0, 0, 23, 24, 25, 26, 87, 88, 0, + 27, 0, 0, 31, 32, 33, 34, 35, 12, 13, + 0, 0, 0, 14, 15, 16, 0, 0, 0, 0, + 66, 254, 0, 28, 255, 29, 17, 0, 18, 19, + 20, 0, 22, 0, 0, 0, 0, 23, 24, 25, + 26, 87, 88, 86, 27, 0, 0, 31, 32, 33, + 34, 35, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, + 0, 28, 0, 29, 0, 0, 0, 0, 0, 12, + 13, 0, 0, 0, 14, 15, 16, 303, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 17, 0, 18, + 19, 20, 0, 22, 0, 0, 0, 0, 23, 24, + 25, 26, 0, 0, 0, 27, 0, 0, 31, 32, + 33, 34, 35, 12, 13, 0, 0, 0, 14, 15, + 16, 37, 0, 0, 28, 0, 29, 0, 0, 0, + 0, 17, 0, 18, 19, 20, 0, 22, 0, 0, + 0, 0, 23, 24, 25, 26, 0, 0, 0, 27, + 0, 0, 31, 32, 33, 34, 35, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 154, + 12, 13, 28, 0, 29, 14, 15, 16, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, + 18, 19, 20, 0, 22, 0, 0, 0, 0, 23, + 24, 25, 26, 0, 0, 0, 27, 0, 0, 31, + 32, 33, 34, 35, 66, 0, 0, 28, 164, 29, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 12, 13, 0, 0, 86, 14, 15, + 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 17, 0, 18, 19, 20, 0, 22, 0, 0, + 0, 0, 23, 24, 25, 26, 0, 0, 0, 27, + 0, 0, 31, 32, 33, 34, 35, 11, 0, 0, + 0, 12, 13, 0, 0, 0, 14, 15, 16, 0, + 0, 66, 0, 0, 28, 167, 29, 0, 0, 17, + 0, 18, 19, 20, 0, 22, 0, 0, 0, 0, + 23, 24, 25, 26, 86, 0, 0, 27, 0, 30, + 31, 32, 33, 34, 35, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, + 11, 28, 169, 29, 12, 13, 0, 0, 0, 14, + 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 86, 17, 0, 18, 19, 20, 0, 22, 0, + 0, 0, 0, 23, 24, 25, 26, 0, 0, 0, + 27, 0, 30, 31, 32, 33, 34, 35, 11, 0, + 0, 0, 12, 13, 0, 0, 0, 14, 15, 16, + 0, 0, 66, 0, 0, 28, 170, 29, 0, 0, + 17, 0, 18, 19, 20, 0, 22, 0, 0, 0, + 0, 23, 24, 25, 26, 86, 0, 0, 27, 0, + 30, 31, 32, 33, 34, 35, 0, 12, 13, 0, + 0, 0, 14, 15, 16, 0, 0, 66, 0, 0, + 28, 175, 29, 0, 0, 17, 0, 18, 19, 20, + 0, 22, 0, 0, 0, 0, 23, 24, 25, 26, + 86, 0, 0, 27, 0, 0, 31, 32, 33, 34, + 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 66, 0, 0, 28, 176, 29, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 12, 13, 86, 0, 0, 14, + 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 17, 0, 18, 19, 20, 0, 22, 0, + 0, 0, 0, 23, 24, 25, 26, 0, 0, 0, + 27, 0, 0, 31, 32, 33, 34, 35, 0, 0, + 0, 12, 13, 0, 0, 0, 14, 15, 16, 0, + 0, 66, 0, 0, 28, 0, 29, 0, 0, 17, + 0, 18, 19, 20, 0, 22, 0, 0, 0, 198, + 23, 24, 25, 26, 86, 0, 0, 27, 0, 0, + 31, 32, 33, 34, 35, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 66, 0, 0, 28, 0, + 29, 0, 0, 0, 0, 12, 13, 0, 0, 0, + 14, 15, 16, 201, 0, 0, 0, 0, 86, 0, + 0, 0, 0, 17, 0, 18, 19, 20, 0, 22, + 0, 0, 0, 0, 23, 24, 25, 26, 0, 0, + 0, 27, 0, 0, 31, 32, 33, 34, 35, 0, + 12, 13, 0, 0, 0, 14, 15, 16, 0, 0, + 66, 252, 0, 28, 0, 29, 0, 0, 17, 0, + 18, 19, 20, 0, 22, 0, 0, 0, 0, 23, + 24, 25, 26, 86, 0, 0, 27, 0, 0, 31, + 32, 33, 34, 35, 0, 0, 12, 13, 0, 0, + 0, 14, 15, 16, 0, 0, 66, 256, 0, 28, + 0, 29, 0, 0, 17, 0, 18, 19, 20, 0, + 22, 0, 0, 0, 0, 23, 24, 25, 26, 86, + 0, 0, 27, 0, 0, 31, 32, 33, 34, 35, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 66, 287, 0, 28, 0, 29, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 86, 12, 13, 0, 0, 0, 14, + 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 17, 0, 18, 19, 20, 0, 22, 0, + 0, 0, 0, 23, 24, 25, 26, 0, 0, 0, + 27, 0, 0, 31, 32, 33, 34, 35, 12, 13, + 0, 0, 0, 14, 15, 16, 0, 0, 66, 293, + 0, 28, 0, 29, 0, 0, 17, 0, 18, 19, + 20, 0, 22, 0, 0, 0, 0, 23, 24, 25, + 26, 86, 0, 0, 27, 0, 0, 31, 32, 33, + 34, 35, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 66, 294, 0, 28, 0, 29, 0, 0, + 0, 0, 0, 12, 13, 0, 0, 0, 14, 15, + 16, 0, 0, 0, 0, 86, 0, 0, 0, 0, + 0, 17, 0, 18, 19, 20, 0, 22, 0, 0, + 0, 0, 23, 24, 25, 26, 0, 0, 0, 27, + 0, 0, 31, 32, 33, 34, 35, 0, 0, 12, + 13, 0, 0, 0, 14, 15, 16, 0, 0, 66, + 295, 0, 28, 0, 29, 0, 0, 17, 0, 18, + 19, 20, 0, 22, 0, 0, 0, 0, 23, 24, + 25, 26, 86, 0, 0, 27, 0, 0, 31, 32, + 33, 34, 35, 12, 13, 0, 0, 0, 14, 15, + 16, 0, 0, 66, 296, 0, 28, 0, 29, 0, + 0, 17, 0, 18, 19, 20, 0, 22, 0, 0, + 0, 0, 23, 24, 25, 26, 86, 0, 0, 27, + 0, 0, 31, 32, 33, 34, 35, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 66, 297, 0, + 28, 0, 29, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 86, 12, 13, 0, 0, 0, 14, 15, 16, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, + 0, 18, 19, 20, 0, 22, 0, 0, 0, 0, + 23, 24, 25, 26, 0, 0, 0, 27, 0, 0, + 31, 32, 33, 34, 35, 12, 13, 0, 0, 0, + 14, 15, 16, 0, 0, 66, 299, 0, 28, 0, + 29, 0, 0, 17, 0, 18, 19, 20, 0, 22, + 0, 0, 0, 0, 23, 24, 25, 26, 86, 0, + 0, 27, 0, 0, 31, 32, 33, 34, 35, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, + 109, 0, 28, 0, 29, 0, 0, 0, 0, 0, + 0, 0, 12, 13, 0, 0, 0, 14, 15, 16, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 17, 0, 18, 19, 20, 0, 22, 0, 0, 0, + 0, 23, 24, 25, 26, 0, 0, 0, 27, 0, + 0, 31, 32, 33, 34, 35, 12, 13, 0, 0, + 0, 14, 15, 16, 66, 0, 0, 28, 0, 29, + 0, 0, 0, 0, 17, 0, 18, 19, 20, 0, + 22, 0, 0, 0, 0, 23, 24, 25, 26, 0, + 0, 0, 27, 0, 0, 31, 32, 33, 34, 35, + 12, 13, 0, 0, 0, 14, 15, 16, 0, 0, + 0, 0, 66, 0, 0, 28, 0, 29, 17, 0, + 18, 19, 20, 0, 22, 0, 0, 0, 0, 23, + 24, 25, 26, 0, 0, 0, 27, 0, 0, 31, + 32, 33, 34, 35, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 66, 0, 0, 28, 0, 29, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 12, 13, + 0, 0, 0, 14, 15, 16, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 17, 0, 18, 19, + 20, 0, 22, 0, 0, 0, 0, 23, 24, 25, + 26, 0, 0, 0, 27, 0, 0, 31, 32, 33, + 34, 35, 12, 13, 0, 0, 0, 14, 15, 16, + 66, 0, 0, 28, 0, 29, 0, 0, 0, 0, + 17, 0, 18, 19, 20, 0, 22, 0, 0, 0, + 0, 23, 24, 25, 26, 0, 0, 0, 27, 0, + 0, 31, 32, 33, 34, 35, 0, 0, 0, 0, + 0, 0, 0, 0, 66, 0, 0, 28, 0, 29, + 0, 0, 0, 116, 0, 0, 0, 12, 13, 0, + 0, 0, 14, 15, 16, 0, 0, 86, 0, 0, + 0, 0, 0, 0, 0, 17, 0, 18, 19, 20, + 0, 22, 0, 0, 0, 0, 23, 24, 25, 26, + 0, 0, 0, 27, 0, 0, 31, 32, 33, 34, + 35, 118, 0, 0, 66, 12, 13, 28, 0, 29, + 14, 15, 16, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 17, 0, 18, 19, 20, 0, 22, + 0, 0, 0, 0, 23, 24, 25, 26, 0, 0, + 0, 27, 0, 0, 31, 32, 33, 34, 35, 140, + 0, 0, 66, 12, 13, 28, 0, 29, 14, 15, + 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 17, 0, 18, 19, 20, 0, 22, 0, 0, + 0, 0, 23, 24, 25, 26, 0, 0, 0, 27, + 0, 0, 31, 32, 33, 34, 35, 103, 0, 0, + 28, 0, 29, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 213, + 0, 0, 0, 12, 13, 0, 0, 0, 14, 15, + 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 17, 0, 18, 19, 20, 0, 22, 0, 0, + 0, 0, 23, 24, 25, 26, 0, 0, 0, 27, + 0, 0, 31, 32, 33, 34, 35, 12, 13, 0, + 0, 0, 14, 15, 16, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 17, 0, 18, 19, 20, + 0, 22, 0, 0, 0, 0, 23, 24, 25, 26, + 0, 0, 0, 27, 0, 0, 31, 32, 33, 34, + 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 275, 0, 0, 0, 12, 13, 0, + 0, 0, 14, 15, 16, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 17, 0, 18, 19, 20, + 0, 22, 0, 0, 0, 0, 23, 24, 25, 26, + 0, 0, 0, 27, 0, 0, 31, 32, 33, 34, + 35, 0, 0, 0, 0, 12, 13, 0, 0, 0, + 14, 15, 16, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 17, 0, 18, 19, 20, 0, 22, + 0, 0, 0, 0, 23, 24, 25, 26, 0, 0, + 0, 27, 0, 0, 31, 32, 33, 34, 35, 0, + 12, 13, 67, 69, 0, 14, 15, 16, 73, 0, + 0, 0, 0, 0, 0, 0, 0, 91, 17, 0, + 18, 19, 20, 0, 22, 0, 0, 0, 0, 23, + 24, 25, 26, 0, 0, 0, 27, 0, 0, 31, + 32, 33, 34, 35, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 146, 147, 148, + 149, 150, 151, 0, 0, 0, 0, 0, 0, 91, + 0, 0, 0, 0, 91, 0, 0, 91, 91, 0, + 0, 91, 0, 91, 91, 0, 0, 0, 91, 91, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, + 0, 0, 0, 91, 0, 91, 91, 91, 91, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 91, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 91, 91, 91, 91, 0, 91, 0, + 91, 91, 0, 0, 0, 0, 0, 0, 91, 91, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 91, 91, 91, 91, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 91, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 91, 91, 91, 91, 91, 0, 91, 91, 91, +}; +short yycheck[] = { 41, + 0, 41, 63, 41, 37, 41, 59, 59, 63, 42, + 43, 63, 45, 63, 47, 59, 62, 41, 63, 107, + 108, 63, 40, 63, 37, 63, 123, 63, 37, 7, + 44, 223, 103, 37, 302, 303, 94, 37, 303, 123, + 40, 41, 42, 43, 44, 45, 134, 47, 313, 63, + 261, 262, 30, 41, 112, 0, 289, 123, 58, 59, + 60, 94, 62, 63, 53, 54, 40, 40, 287, 302, + 303, 59, 41, 62, 63, 44, 91, 41, 124, 112, + 44, 37, 40, 154, 123, 40, 42, 40, 60, 40, + 40, 47, 37, 93, 94, 261, 41, 42, 43, 44, + 45, 226, 47, 40, 40, 40, 60, 85, 40, 112, + 0, 303, 112, 58, 59, 60, 293, 62, 63, 41, + 41, 313, 100, 123, 124, 41, 293, 304, 305, 306, + 281, 44, 121, 41, 41, 44, 93, 41, 94, 44, + 228, 154, 41, 41, 293, 154, 40, 37, 93, 94, + 154, 41, 42, 43, 44, 45, 112, 47, 136, 137, + 40, 59, 293, 41, 261, 262, 40, 112, 58, 59, + 60, 291, 62, 63, 41, 300, 301, 302, 123, 124, + 91, 59, 59, 273, 41, 40, 272, 93, 206, 178, + 179, 41, 41, 0, 41, 320, 321, 93, 59, 59, + 325, 41, -1, 93, 94, -1, -1, 260, 261, 262, + 298, -1, 220, 41, -1, -1, 260, 261, 262, 265, + -1, -1, 112, 40, -1, -1, 43, -1, 45, 290, + 291, 59, -1, 123, 124, 290, 291, -1, 290, 291, + 290, 291, 275, 221, 222, 290, 291, -1, 290, 291, + 290, 291, 290, 291, 290, 291, -1, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 290, 291, 268, 269, + 270, -1, 260, 261, 262, 275, 290, 291, -1, 268, + -1, 281, 41, 283, 284, 285, 286, 287, -1, 289, + 290, 291, 292, 293, 294, 295, 296, 297, -1, 299, + 59, 301, 302, 303, 304, 305, 306, -1, -1, -1, + 288, -1, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 293, -1, 268, 269, 270, -1, 305, -1, -1, + 275, -1, 304, 305, 306, -1, 281, 41, 283, 284, + 285, 286, 287, -1, 289, 290, 291, 292, 293, 294, + 295, 296, 297, -1, 299, 59, 301, 302, 303, 304, + 305, 306, 260, 261, 262, -1, -1, 257, 258, 259, + 260, 261, 262, 263, 264, 265, -1, -1, 268, 269, + 270, 0, 260, 261, 262, 275, -1, -1, -1, -1, + 41, 281, -1, 283, 284, 285, 286, 287, -1, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 59, 299, + -1, 301, 302, 303, 304, 305, 306, -1, 37, -1, + -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, + -1, -1, 260, 261, 262, -1, 0, -1, 41, 58, + 59, -1, -1, 62, 63, -1, 263, 264, -1, -1, + -1, 268, 269, 270, -1, -1, 59, -1, -1, -1, + -1, -1, -1, -1, 281, -1, 283, 284, 285, -1, + 287, -1, -1, 37, 93, 94, 40, 41, 42, 43, + 44, 45, 299, 47, -1, 302, 303, 304, 305, 306, + -1, 0, -1, 112, 58, 59, 60, -1, 62, 63, + -1, 260, 261, 262, 123, 124, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 41, -1, -1, -1, 37, 93, + 94, 40, 41, 42, 43, -1, 45, -1, 47, -1, + -1, -1, 59, -1, 41, -1, -1, -1, -1, 58, + 59, 60, -1, 62, 63, -1, 260, 261, 262, 123, + 124, -1, 59, -1, -1, 62, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 93, 94, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 112, -1, -1, -1, -1, -1, 260, + 261, 262, -1, -1, 123, 124, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 124, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 257, 258, + 259, 260, 261, 262, 263, 264, 265, -1, -1, 268, + 269, 270, -1, -1, -1, -1, 275, 260, 261, 262, + -1, -1, 281, -1, 283, 284, 285, 286, 287, -1, + 289, 290, 291, 292, 293, 294, 295, 296, 297, -1, + 299, -1, 301, 302, 303, 304, 305, 306, -1, -1, + -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, + 264, 265, -1, -1, 268, 269, 270, -1, -1, -1, + -1, 275, -1, -1, -1, -1, -1, 281, -1, 283, + 284, 285, 286, 287, -1, 289, 290, 291, 292, 293, + 294, 295, 296, 297, -1, 299, -1, 301, 302, 303, + 304, 305, 306, 260, 261, 262, -1, -1, 257, 258, + 259, 260, 261, 262, 263, 264, 265, -1, -1, 268, + 269, 270, 0, 260, 261, 262, 275, -1, 265, -1, + -1, -1, 281, -1, 283, 284, 285, 286, 287, -1, + 289, 290, 291, 292, 293, 294, 295, 296, 297, -1, + 299, -1, 301, 302, 303, 304, 305, 306, -1, 37, + -1, -1, 40, 41, 42, 43, 44, 45, -1, 47, + -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, + 58, 59, 60, -1, 62, 63, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 37, 93, 94, 40, 41, 42, + 43, 44, 45, -1, 47, -1, -1, -1, -1, -1, + -1, 0, -1, -1, 112, 58, 59, 60, -1, 62, + 63, -1, -1, -1, -1, 123, 124, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 37, -1, + 93, 40, 41, 42, 43, 44, 45, -1, 47, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, + 59, 60, -1, 62, 63, -1, -1, -1, -1, -1, + 123, 124, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 93, 94, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 112, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 123, 124, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 257, + 258, 259, 260, 261, 262, 263, 264, 265, -1, -1, + 268, 269, 270, -1, -1, -1, -1, 275, -1, -1, + -1, -1, -1, 281, -1, 283, 284, 285, 286, 287, + -1, 289, 290, -1, 292, 293, 294, 295, 296, 297, + -1, 299, -1, 301, 302, 303, 304, 305, 306, -1, + -1, -1, -1, -1, 257, 258, 259, 260, 261, 262, + 263, 264, 265, -1, -1, 268, 269, 270, -1, -1, + -1, -1, 275, -1, 40, 41, -1, 43, 281, 45, + 283, 284, 285, 286, 287, -1, 289, 290, 291, 292, + 293, 294, 295, 296, 297, -1, 299, 63, 301, 302, + 303, 304, 305, 306, -1, -1, -1, -1, 257, 258, + 259, 260, 261, 262, 263, 264, 265, -1, -1, 268, + 269, 270, 0, -1, -1, -1, 275, -1, -1, -1, + -1, -1, 281, -1, 283, 284, 285, 286, 287, -1, + 289, 290, 291, 292, 293, 294, 295, 296, 297, -1, + 299, -1, 301, -1, -1, 304, 305, 306, -1, 37, + -1, -1, 40, 41, 42, 43, 44, 45, -1, 47, + -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, + 58, 59, 60, -1, 62, 63, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 37, -1, 93, 40, 41, 42, 43, + 44, 45, -1, 47, -1, -1, -1, -1, -1, -1, + 0, -1, -1, -1, 58, 59, 60, -1, 62, 63, + -1, -1, -1, -1, -1, 123, 124, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 37, -1, 93, + 40, 41, 42, 43, 44, 45, -1, 47, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, + 60, -1, 62, 63, -1, -1, -1, 263, 264, 123, + 124, -1, 268, 269, 270, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 281, -1, 283, 284, 285, + -1, 287, -1, 93, -1, -1, 292, 293, 294, 295, + -1, -1, -1, 299, -1, -1, 302, 303, 304, 305, + 306, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 123, 124, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 257, + 258, 259, 260, 261, 262, 263, 264, 265, -1, -1, + 268, 269, 270, -1, -1, -1, -1, 275, -1, -1, + -1, -1, -1, 281, -1, 283, 284, 285, 286, 287, + -1, 289, 290, 291, 292, 293, 294, 295, 296, 297, + -1, 299, -1, 301, 302, 303, 304, 305, 306, -1, + -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, + 264, 265, -1, -1, 268, 269, 270, -1, -1, -1, + -1, 275, -1, 40, -1, -1, 43, 281, 45, 283, + 284, 285, 286, 287, -1, 289, 290, 291, 292, 293, + 294, 295, 296, 297, -1, 299, -1, 301, 302, 303, + 304, 305, 306, -1, -1, -1, -1, 257, 258, 259, + 260, 261, 262, 263, 264, 265, -1, -1, 268, 269, + 270, 0, -1, -1, -1, 275, -1, -1, -1, -1, + -1, 281, -1, 283, 284, 285, 286, 287, -1, 289, + 290, 291, 292, 293, 294, 295, 296, 297, -1, 299, + -1, 301, 302, 303, 304, 305, 306, -1, 37, -1, + -1, 40, 41, 42, 43, 44, 45, -1, 47, -1, + -1, -1, -1, -1, -1, 0, -1, -1, -1, 58, + 59, 60, -1, 62, 63, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 37, -1, 93, 40, 41, 42, 43, 44, + 45, -1, 47, -1, -1, -1, -1, -1, -1, 0, + -1, -1, -1, 58, 59, 60, -1, 62, 63, -1, + -1, -1, -1, -1, 123, 124, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 37, -1, 93, 40, + 41, 42, 43, 44, 45, -1, 47, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, + -1, 62, 63, -1, 261, 262, 263, 264, 123, 124, + -1, 268, 269, 270, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 281, -1, 283, 284, 285, -1, + 287, -1, 93, 94, -1, 292, 293, 294, 295, -1, + -1, -1, 299, -1, -1, 302, 303, 304, 305, 306, + -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 123, 124, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 257, 258, + 259, 260, 261, 262, 263, 264, 265, -1, -1, 268, + 269, 270, -1, -1, -1, -1, 275, -1, -1, -1, + -1, -1, 281, -1, 283, 284, 285, 286, 287, -1, + 289, 290, 291, 292, 293, 294, 295, 296, 297, -1, + 299, -1, 301, 302, 303, 304, 305, 306, -1, -1, + -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, + 265, -1, -1, 268, 269, 270, -1, -1, -1, -1, + 275, -1, -1, -1, -1, -1, 281, -1, 283, 284, + 285, 286, 287, -1, 289, 290, 291, 292, 293, 294, + 295, 296, 297, -1, 299, -1, 301, 302, 303, 304, + 305, 306, -1, -1, -1, -1, 257, 258, 259, 260, + 261, 262, 263, 264, 265, -1, -1, 268, 269, 270, + 0, -1, -1, -1, 275, -1, -1, -1, -1, -1, + 281, -1, 283, 284, 285, 286, 287, -1, -1, 290, + 291, 292, 293, 294, 295, 296, 297, -1, 299, -1, + 301, -1, -1, 304, 305, 306, -1, 37, -1, -1, + 40, 41, 42, 43, 44, 45, -1, 47, -1, -1, + -1, -1, -1, -1, -1, 0, -1, -1, 58, 59, + 60, -1, 62, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 93, 94, 40, 41, -1, 43, 44, + 45, -1, -1, -1, -1, -1, 0, -1, -1, -1, + -1, -1, 112, 58, 59, 60, -1, 62, 63, -1, + -1, -1, -1, 123, 124, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 40, 41, 93, 43, + 44, 45, -1, -1, -1, -1, 0, -1, -1, -1, + -1, -1, -1, -1, 58, 59, 60, -1, 62, 63, + -1, -1, -1, -1, -1, -1, -1, -1, 123, 124, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 40, 41, -1, 93, + 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 58, 59, 60, -1, 62, 63, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, + 124, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 40, -1, 93, + 43, -1, 45, -1, -1, -1, -1, 257, 258, 259, + 260, 261, 262, 263, 264, 265, -1, -1, 268, 269, + 270, -1, -1, -1, -1, 275, -1, -1, -1, 123, + 124, 281, -1, 283, 284, 285, 286, 287, -1, 289, + -1, -1, 292, 293, 294, 295, 296, 297, -1, 299, + -1, 301, 302, 303, 304, 305, 306, -1, -1, -1, + -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, + 265, -1, -1, 268, 269, 270, -1, -1, -1, -1, + 275, -1, -1, -1, -1, -1, 281, -1, 283, 284, + 285, 286, 287, -1, 289, 290, 291, 292, 293, 294, + 295, 296, 297, -1, 299, -1, 301, 302, 303, 304, + 305, 306, -1, 257, 258, 259, 260, 261, 262, 263, + 264, 265, -1, -1, 268, 269, 270, -1, -1, -1, + -1, 275, -1, -1, -1, -1, -1, 281, -1, 283, + 284, 285, 286, 287, -1, 289, 290, 291, 292, 293, + 294, 295, 296, 297, -1, 299, -1, 301, 302, 303, + 304, 305, 306, 257, 258, 259, 260, 261, 262, 263, + 264, 265, -1, 0, 268, 269, 270, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 281, -1, 283, + 284, 285, 286, 287, -1, 289, 290, 291, 292, 293, + 294, 295, 296, 297, -1, 299, -1, 301, 302, 303, + 304, 305, 306, 40, 41, -1, 259, 44, 261, 262, + 263, 264, -1, -1, 0, 268, 269, 270, -1, -1, + -1, 58, 59, 60, -1, 62, 63, -1, 281, -1, + 283, 284, 285, -1, 287, -1, -1, -1, -1, 292, + 293, 294, 295, -1, -1, -1, 299, -1, 301, 302, + 303, 304, 305, 306, 40, -1, 93, 43, -1, 45, + -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, + -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 123, 124, -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, 0, -1, -1, -1, -1, -1, + -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 123, -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, -1, -1, -1, -1, -1, + 0, -1, -1, 59, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 123, -1, -1, + -1, -1, -1, -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, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 59, + -1, 268, 269, 270, -1, -1, -1, 123, -1, -1, + -1, -1, -1, -1, 281, -1, 283, 284, 285, 286, + 287, -1, 289, 290, 291, 292, 293, 294, 295, 296, + 297, -1, 299, -1, 301, 302, 303, 304, 305, 306, + -1, 257, 258, 259, 260, 261, 262, 263, 264, -1, + -1, -1, 268, 269, 270, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 281, -1, 283, 284, 285, + 286, 287, -1, -1, -1, -1, 292, 293, 294, 295, + -1, -1, -1, 299, -1, 301, 302, 303, 304, 305, + 306, 257, 258, 259, 260, 261, 262, 263, 264, -1, + -1, -1, 268, 269, 270, 40, -1, -1, 43, -1, + 45, -1, -1, -1, -1, 281, -1, 283, 284, 285, + 286, 287, -1, -1, -1, -1, 292, 293, 294, 295, + -1, -1, -1, 299, -1, 301, 302, 303, 304, 305, + 306, 257, 258, 259, 260, -1, 262, 263, 264, -1, + -1, 0, 268, 269, 270, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 281, -1, 283, 284, 285, + 286, 287, -1, -1, -1, -1, 292, 293, 294, 295, + -1, -1, -1, 299, -1, 301, 302, 303, 304, 305, + 306, 40, -1, -1, 43, -1, 45, 257, 258, 259, + 260, 261, 262, 263, 264, -1, -1, 0, 268, 269, + 270, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 281, -1, 283, 284, 285, 286, 287, -1, -1, + -1, -1, 292, 293, 294, 295, -1, -1, -1, 299, + -1, 301, 302, 303, 304, 305, 306, 40, -1, -1, + 43, -1, 45, -1, -1, -1, -1, 0, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 123, -1, -1, -1, -1, -1, + -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, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 263, 264, + 123, 266, 267, 268, 269, 270, -1, -1, -1, -1, + -1, 276, 277, 278, 279, 280, 281, -1, 283, 284, + 285, -1, 287, 288, -1, -1, -1, 292, 293, 294, + 295, -1, -1, -1, 299, -1, -1, 302, 303, 304, + 305, 306, -1, -1, -1, -1, -1, -1, -1, -1, + 123, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 257, 258, + 259, -1, -1, -1, 263, 264, -1, -1, -1, 268, + 269, 270, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 281, -1, 283, 284, 285, 286, 287, -1, + -1, -1, -1, 292, 293, 294, 295, -1, -1, -1, + 299, -1, 301, 302, 303, 304, 305, 306, -1, -1, + -1, -1, -1, -1, 257, 258, 259, -1, -1, -1, + 263, 264, -1, -1, -1, 268, 269, 270, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 281, -1, + 283, 284, 285, 286, 287, -1, -1, -1, -1, 292, + 293, 294, 295, -1, -1, -1, 299, -1, 301, 302, + 303, 304, 305, 306, 257, 258, 259, -1, -1, -1, + 263, 264, -1, -1, -1, 268, 269, 270, 0, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 281, -1, + 283, 284, 285, 286, 287, -1, -1, -1, -1, 292, + 293, 294, 295, -1, -1, -1, 299, -1, 301, 302, + 303, 304, 305, 306, -1, 37, -1, -1, 40, 41, + 42, 43, 44, 45, -1, 47, -1, -1, -1, -1, + -1, -1, -1, 0, -1, -1, 58, 59, 60, -1, + 62, 63, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 37, 93, 94, 40, 41, 42, 43, 44, 45, -1, + 47, 0, -1, -1, -1, -1, -1, -1, -1, -1, + 112, 58, 59, -1, -1, 62, 63, -1, -1, -1, + -1, 123, 124, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 37, -1, + -1, -1, 41, 42, -1, 44, 93, 94, 47, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, + 59, 60, -1, 62, 63, 112, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 123, 124, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 93, 94, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 112, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 123, 124, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 257, 258, 259, 260, 261, + 262, 263, 264, 265, -1, -1, 268, 269, 270, -1, + -1, -1, -1, 275, -1, -1, -1, -1, -1, 281, + -1, 283, 284, 285, 286, 287, -1, 289, 290, 291, + 292, -1, 294, 295, 296, 297, -1, 299, -1, 301, + 302, 303, -1, -1, -1, -1, -1, -1, -1, -1, + 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, + -1, 268, 269, 270, -1, -1, -1, -1, 275, -1, + -1, -1, -1, -1, 281, -1, 283, 284, 285, 286, + 287, 0, 289, 290, 291, 292, -1, 294, 295, 296, + 297, -1, 299, -1, 301, 302, 303, -1, 257, 258, + 259, 260, 261, 262, -1, -1, 265, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 275, -1, 37, -1, + -1, -1, 41, 42, -1, 44, 0, 286, 47, -1, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 58, + 59, 60, 301, 62, 63, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 37, -1, -1, -1, 41, 42, -1, + 44, 0, -1, 47, 93, 94, -1, -1, -1, -1, + -1, -1, -1, -1, 58, 59, 60, -1, 62, 63, + -1, -1, -1, 112, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 123, 124, -1, -1, 37, -1, + -1, -1, 41, 42, -1, 44, -1, -1, 47, 93, + 94, -1, -1, -1, -1, -1, -1, -1, -1, 58, + 59, 60, -1, 62, 63, -1, -1, -1, 112, -1, + 0, -1, -1, -1, -1, -1, -1, -1, -1, 123, + 124, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 93, 94, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 37, -1, -1, + -1, 41, 42, 112, 44, -1, -1, 47, -1, -1, + -1, -1, -1, -1, 123, 124, -1, -1, 58, 59, + 60, -1, 62, 63, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 93, 94, -1, -1, -1, 257, 258, + 259, 260, 261, 262, -1, -1, 265, -1, -1, -1, + -1, -1, 112, -1, -1, -1, 275, -1, -1, -1, + -1, -1, -1, 123, 124, -1, -1, 286, -1, -1, + 289, 290, 291, 292, 293, 294, 295, 296, 297, -1, + -1, -1, 301, 257, 258, 259, 260, 261, 262, -1, + 40, 265, -1, 43, 44, 45, -1, -1, -1, -1, + -1, 275, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 286, 63, -1, 289, 290, 291, 292, 293, + 294, 295, 296, 297, -1, -1, -1, 301, 257, 258, + 259, 260, 261, 262, -1, -1, 265, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 275, -1, -1, 0, + -1, -1, -1, -1, -1, -1, -1, 286, -1, -1, + 289, 290, 291, 292, 293, 294, 295, 296, 297, -1, + -1, -1, 301, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 37, -1, -1, -1, + 41, 42, -1, 44, -1, -1, 47, 257, 258, 259, + 260, 261, 262, -1, -1, 265, -1, 58, 59, 60, + -1, 62, 63, -1, -1, 275, 0, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 286, -1, -1, 289, + 290, 291, 292, 293, 294, 295, 296, 297, -1, -1, + -1, 301, 93, 94, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 37, -1, -1, -1, 41, 42, -1, + 44, 112, -1, 47, 0, -1, -1, -1, -1, -1, + -1, -1, 123, 124, 58, 59, 60, -1, 62, 63, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 37, -1, -1, -1, 41, 42, -1, 44, 93, + 94, 47, -1, 263, 264, -1, -1, -1, 268, 269, + 270, -1, 58, 59, 60, -1, 62, -1, 112, -1, + -1, 281, -1, 283, 284, 285, 0, 287, -1, 123, + 124, -1, 292, 293, 294, 295, -1, -1, -1, 299, + -1, -1, 302, 303, 304, 305, 306, 93, 94, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 37, -1, -1, 112, 41, 42, -1, + 44, -1, -1, 47, -1, -1, -1, 123, 124, -1, + -1, -1, -1, -1, 58, 59, 60, -1, 62, -1, + -1, -1, -1, -1, -1, -1, 257, 258, 259, 260, + 261, 262, -1, -1, 265, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 275, 0, -1, -1, -1, 93, + 94, -1, -1, -1, -1, 286, -1, -1, 289, 290, + 291, 292, 293, 294, 295, 296, 297, -1, 112, -1, + 301, -1, -1, -1, -1, -1, -1, -1, -1, 123, + 124, -1, 37, -1, -1, -1, 41, 42, -1, 44, + -1, -1, 47, 257, 258, 259, 260, 261, 262, -1, + -1, 265, -1, 58, 59, 60, -1, 62, -1, -1, + -1, 275, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 286, -1, -1, 289, 290, 291, -1, -1, + -1, -1, 296, 297, -1, -1, -1, 301, 93, 94, + -1, 257, 258, 259, 260, 261, 262, 0, -1, 265, + -1, -1, -1, -1, -1, -1, -1, 112, -1, 275, + -1, -1, -1, -1, -1, -1, -1, -1, 123, 124, + 286, -1, -1, 289, 290, 291, -1, -1, -1, -1, + 296, 297, -1, -1, 37, 301, -1, -1, 41, 42, + -1, 44, -1, -1, 47, -1, -1, -1, -1, -1, + -1, -1, 0, -1, -1, 58, 59, 60, -1, 62, + -1, -1, -1, 257, 258, 259, 260, 261, 262, -1, + -1, 265, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 275, -1, -1, -1, -1, -1, -1, -1, 37, + 93, 94, 286, 41, 42, 289, 290, 291, -1, 47, + 0, -1, 296, 297, -1, -1, -1, 301, -1, 112, + 58, 59, 60, -1, 62, -1, -1, -1, -1, -1, + 123, 124, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 37, -1, -1, + -1, 41, 42, -1, 44, 93, 94, 47, -1, -1, + -1, -1, 257, 258, 259, 260, 261, 262, 58, 59, + 265, -1, -1, -1, 112, -1, -1, -1, -1, -1, + 275, -1, -1, -1, -1, 123, 124, -1, -1, -1, + -1, 286, -1, -1, 289, 290, 291, -1, -1, -1, + -1, 296, 297, 93, 94, -1, 301, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 112, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 123, 124, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 257, 258, 259, 260, 261, 262, + -1, -1, 265, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 275, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 286, -1, -1, 289, 290, 291, -1, + -1, -1, -1, 296, 297, -1, -1, -1, 301, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 257, + 258, 259, 260, 261, 262, -1, -1, 265, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 275, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 286, -1, + -1, 289, 290, 291, -1, -1, -1, -1, 296, 297, + -1, 7, -1, 301, -1, -1, -1, 257, 258, 259, + 260, 261, 262, -1, -1, 265, -1, -1, -1, -1, + -1, -1, -1, -1, 30, 275, -1, -1, -1, -1, + -1, 37, -1, -1, -1, -1, 286, -1, -1, 289, + 290, 291, -1, 49, -1, -1, 52, 53, 54, 55, + 56, 301, 58, 59, 60, -1, 62, 63, 64, 65, + 66, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 82, -1, -1, 85, + 86, 87, 88, 89, 90, -1, 50, 51, -1, -1, + -1, -1, -1, -1, 100, -1, -1, 103, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 115, + -1, -1, -1, -1, -1, 121, -1, 81, -1, 83, + 84, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 136, 137, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 154, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 166, 167, 168, 169, 170, -1, -1, -1, -1, 175, + 176, -1, 178, 179, -1, -1, -1, 183, -1, -1, + -1, 187, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 198, 157, 158, 201, -1, -1, 204, 205, + -1, -1, -1, -1, -1, -1, -1, -1, 17, -1, + -1, -1, -1, 177, -1, 221, 222, 223, -1, 28, + 29, -1, 31, 32, 188, 34, 190, -1, 192, -1, + -1, -1, -1, -1, 43, -1, 242, -1, 244, -1, + 246, -1, 248, -1, 250, -1, -1, -1, -1, 255, + -1, 215, -1, -1, 260, 261, 40, -1, -1, 43, + -1, 45, 268, -1, -1, -1, 230, 231, 232, 233, + 234, -1, -1, -1, -1, 59, -1, -1, -1, -1, + -1, -1, 288, -1, 93, 94, 95, 96, 97, 98, + -1, -1, -1, -1, -1, -1, 105, -1, -1, 305, + -1, 110, -1, -1, 113, 114, -1, -1, 117, 40, + 119, 120, 43, -1, 45, 124, 125, 281, -1, -1, + -1, 285, 286, 287, -1, -1, 135, 291, 59, -1, + 139, -1, 141, 142, 143, 144, -1, -1, -1, 123, + -1, -1, -1, 152, -1, -1, 155, -1, -1, -1, + -1, -1, 316, 317, -1, -1, 165, 40, 322, -1, + 43, -1, 45, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, + -1, -1, -1, -1, 193, -1, -1, -1, -1, -1, + -1, -1, 123, -1, 125, -1, -1, -1, -1, -1, + 209, 210, 211, 212, -1, 214, -1, 216, 217, -1, + -1, -1, -1, -1, -1, 224, 225, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 236, 237, 238, + 239, 40, -1, -1, 43, -1, 45, -1, -1, -1, + 123, -1, 125, -1, -1, -1, -1, -1, -1, -1, + 59, -1, -1, -1, -1, 264, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 276, 277, 278, + 279, 280, -1, 282, 283, 284, 260, 261, 262, 263, + 264, -1, 266, 267, 268, 269, 270, 271, -1, 273, + 274, -1, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, -1, 287, 288, -1, -1, -1, 292, 293, + 294, 295, -1, -1, 123, 299, 125, -1, 302, 303, + 304, 305, 306, -1, -1, -1, -1, -1, -1, 260, + -1, -1, 263, 264, -1, 266, 267, 268, 269, 270, + 271, 272, 273, 274, -1, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, -1, 287, 288, -1, -1, + -1, 292, 293, 294, 295, -1, -1, -1, 299, -1, + -1, 302, 303, 304, 305, 306, -1, 260, -1, -1, + 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, + 273, 274, -1, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, -1, 287, 288, -1, -1, -1, 292, + 293, 294, 295, -1, -1, -1, 299, -1, -1, 302, + 303, 304, 305, 306, 40, -1, -1, 43, -1, 45, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, + -1, 260, -1, -1, 263, 264, -1, 266, 267, 268, + 269, 270, 271, 272, 273, 274, -1, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, + -1, -1, -1, 292, 293, 294, 295, -1, -1, -1, + 299, -1, -1, 302, 303, 304, 305, 306, 40, -1, + -1, 43, -1, 45, -1, -1, -1, 123, -1, 125, + -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -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, -1, -1, -1, -1, + -1, -1, -1, -1, 59, -1, -1, -1, -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, 40, -1, -1, + 43, -1, 45, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 59, -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, 260, -1, -1, 263, 264, -1, + 266, 267, 268, 269, 270, 271, 272, 273, 274, -1, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + -1, 287, 288, -1, -1, -1, 292, 293, 294, 295, + 123, -1, 125, 299, -1, -1, 302, 303, 304, 305, + 306, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 40, 41, -1, 43, 44, 45, -1, -1, 260, -1, + -1, 263, 264, -1, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 63, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, -1, 287, 288, -1, -1, -1, + 292, 293, 294, 295, -1, -1, -1, 299, -1, -1, + 302, 303, 304, 305, 306, 260, -1, -1, 263, 264, + -1, 266, 267, 268, 269, 270, 271, 272, 273, 274, + -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, -1, 287, 288, -1, -1, -1, 292, 293, 294, + 295, -1, -1, -1, 299, -1, -1, 302, 303, 304, + 305, 306, -1, 40, -1, -1, 43, 260, 45, -1, + 263, 264, -1, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 59, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, -1, 287, 288, -1, -1, -1, 292, + 293, 294, 295, -1, -1, -1, 299, -1, -1, 302, + 303, 304, 305, 306, 40, -1, -1, 43, -1, 45, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 59, -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, 40, -1, -1, 43, -1, 45, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 59, -1, -1, 263, 264, -1, -1, -1, 268, 269, + 270, -1, -1, -1, -1, -1, -1, 123, -1, 125, + -1, 281, -1, 283, 284, 285, -1, 287, -1, -1, + -1, -1, 292, 293, 294, 295, -1, -1, -1, 299, + -1, -1, 302, 303, 304, 305, 306, -1, -1, 40, + -1, -1, 43, -1, 45, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 123, -1, 125, -1, 59, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 260, -1, -1, 263, 264, -1, 266, + 267, 268, 269, 270, 271, 272, 273, 274, -1, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, + 287, 288, 123, -1, 125, 292, 293, 294, 295, -1, + -1, -1, 299, -1, -1, 302, 303, 304, 305, 306, + -1, -1, -1, -1, 260, -1, -1, 263, 264, -1, + 266, 267, 268, 269, 270, 271, -1, 273, 274, -1, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + -1, 287, 288, -1, -1, -1, 292, 293, 294, 295, + -1, -1, -1, 299, -1, -1, 302, 303, 304, 305, + 306, 260, -1, -1, 263, 264, -1, 266, 267, 268, + 269, 270, 271, -1, 273, 274, -1, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, -1, 287, 288, + -1, -1, -1, 292, 293, 294, 295, -1, -1, -1, + 299, -1, -1, 302, 303, 304, 305, 306, 40, -1, + -1, 43, -1, 45, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 59, -1, 260, + -1, -1, 263, 264, -1, 266, 267, 268, 269, 270, + 271, -1, 273, 274, -1, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, -1, 287, 288, -1, -1, + -1, 292, 293, 294, 295, -1, -1, -1, 299, -1, + -1, 302, 303, 304, 305, 306, 40, -1, -1, 43, + -1, 45, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 123, -1, 125, -1, 59, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -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, -1, -1, -1, -1, -1, -1, + -1, -1, 59, -1, -1, -1, -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, 40, -1, -1, 43, -1, 45, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 59, -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, -1, -1, -1, -1, 260, -1, + -1, 263, 264, -1, 266, 267, 268, 269, 270, 271, + -1, 273, 274, -1, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, -1, 287, 288, 123, -1, 125, + 292, 293, 294, 295, -1, -1, -1, 299, -1, -1, + 302, 303, 304, 305, 306, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 40, + -1, -1, 43, -1, 45, -1, 260, -1, -1, 263, + 264, -1, 266, 267, 268, 269, 270, 271, 59, 273, + 274, -1, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, -1, 287, 288, -1, -1, -1, 292, 293, + 294, 295, -1, -1, -1, 299, -1, -1, 302, 303, + 304, 305, 306, 260, -1, -1, 263, 264, -1, 266, + 267, 268, 269, 270, 271, -1, 273, 274, -1, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, -1, + 287, 288, 123, -1, 125, 292, 293, 294, 295, -1, + -1, -1, 299, -1, -1, 302, 303, 304, 305, 306, + 40, -1, -1, 43, 260, 45, -1, 263, 264, -1, + 266, 267, 268, 269, 270, 271, -1, 273, 274, -1, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + -1, 287, 288, -1, -1, -1, 292, 293, 294, 295, + -1, -1, -1, 299, -1, -1, 302, 303, 304, 305, + 306, 40, -1, -1, 43, 44, 45, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 60, -1, 62, 63, -1, -1, -1, -1, -1, + -1, -1, -1, 123, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 40, -1, -1, 43, -1, + 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 60, -1, 62, 63, 260, + -1, -1, 263, 264, -1, 266, 267, 268, 269, 270, + 271, -1, 273, 274, -1, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, -1, 287, 288, -1, -1, + -1, 292, 293, 294, 295, -1, -1, -1, 299, -1, + -1, 302, 303, 304, 305, 306, 40, 41, -1, 43, + 44, 45, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 63, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 40, 41, -1, 43, 44, 45, -1, 257, 258, 259, + -1, -1, -1, 263, 264, -1, -1, -1, 268, 269, + 270, -1, -1, 63, -1, -1, -1, -1, -1, -1, + -1, 281, -1, 283, 284, 285, 286, 287, -1, -1, + -1, -1, 292, 293, 294, 295, -1, -1, -1, 299, + -1, 301, 302, 303, 304, 305, 306, 40, 41, -1, + 43, 44, 45, -1, 263, 264, -1, -1, -1, 268, + 269, 270, -1, -1, -1, -1, -1, -1, -1, -1, + 63, -1, 281, -1, 283, 284, 285, -1, 287, -1, + -1, -1, -1, 292, 293, 294, 295, 296, 297, -1, + 299, -1, -1, 302, 303, 304, 305, 306, 263, 264, + -1, -1, -1, 268, 269, 270, -1, -1, -1, -1, + 40, 41, -1, 43, 44, 45, 281, -1, 283, 284, + 285, -1, 287, -1, -1, -1, -1, 292, 293, 294, + 295, 296, 297, 63, 299, -1, -1, 302, 303, 304, + 305, 306, -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, 263, + 264, -1, -1, -1, 268, 269, 270, 59, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 281, -1, 283, + 284, 285, -1, 287, -1, -1, -1, -1, 292, 293, + 294, 295, -1, -1, -1, 299, -1, -1, 302, 303, + 304, 305, 306, 263, 264, -1, -1, -1, 268, 269, + 270, 40, -1, -1, 43, -1, 45, -1, -1, -1, + -1, 281, -1, 283, 284, 285, -1, 287, -1, -1, + -1, -1, 292, 293, 294, 295, -1, -1, -1, 299, + -1, -1, 302, 303, 304, 305, 306, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 40, + 263, 264, 43, -1, 45, 268, 269, 270, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 281, -1, + 283, 284, 285, -1, 287, -1, -1, -1, -1, 292, + 293, 294, 295, -1, -1, -1, 299, -1, -1, 302, + 303, 304, 305, 306, 40, -1, -1, 43, 44, 45, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 263, 264, -1, -1, 63, 268, 269, + 270, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 281, -1, 283, 284, 285, -1, 287, -1, -1, + -1, -1, 292, 293, 294, 295, -1, -1, -1, 299, + -1, -1, 302, 303, 304, 305, 306, 259, -1, -1, + -1, 263, 264, -1, -1, -1, 268, 269, 270, -1, + -1, 40, -1, -1, 43, 44, 45, -1, -1, 281, + -1, 283, 284, 285, -1, 287, -1, -1, -1, -1, + 292, 293, 294, 295, 63, -1, -1, 299, -1, 301, + 302, 303, 304, 305, 306, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 40, -1, + 259, 43, 44, 45, 263, 264, -1, -1, -1, 268, + 269, 270, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 63, 281, -1, 283, 284, 285, -1, 287, -1, + -1, -1, -1, 292, 293, 294, 295, -1, -1, -1, + 299, -1, 301, 302, 303, 304, 305, 306, 259, -1, + -1, -1, 263, 264, -1, -1, -1, 268, 269, 270, + -1, -1, 40, -1, -1, 43, 44, 45, -1, -1, + 281, -1, 283, 284, 285, -1, 287, -1, -1, -1, + -1, 292, 293, 294, 295, 63, -1, -1, 299, -1, + 301, 302, 303, 304, 305, 306, -1, 263, 264, -1, + -1, -1, 268, 269, 270, -1, -1, 40, -1, -1, + 43, 44, 45, -1, -1, 281, -1, 283, 284, 285, + -1, 287, -1, -1, -1, -1, 292, 293, 294, 295, + 63, -1, -1, 299, -1, -1, 302, 303, 304, 305, + 306, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 40, -1, -1, 43, 44, 45, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 263, 264, 63, -1, -1, 268, + 269, 270, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 281, -1, 283, 284, 285, -1, 287, -1, + -1, -1, -1, 292, 293, 294, 295, -1, -1, -1, + 299, -1, -1, 302, 303, 304, 305, 306, -1, -1, + -1, 263, 264, -1, -1, -1, 268, 269, 270, -1, + -1, 40, -1, -1, 43, -1, 45, -1, -1, 281, + -1, 283, 284, 285, -1, 287, -1, -1, -1, 58, + 292, 293, 294, 295, 63, -1, -1, 299, -1, -1, + 302, 303, 304, 305, 306, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 40, -1, -1, 43, -1, + 45, -1, -1, -1, -1, 263, 264, -1, -1, -1, + 268, 269, 270, 58, -1, -1, -1, -1, 63, -1, + -1, -1, -1, 281, -1, 283, 284, 285, -1, 287, + -1, -1, -1, -1, 292, 293, 294, 295, -1, -1, + -1, 299, -1, -1, 302, 303, 304, 305, 306, -1, + 263, 264, -1, -1, -1, 268, 269, 270, -1, -1, + 40, 41, -1, 43, -1, 45, -1, -1, 281, -1, + 283, 284, 285, -1, 287, -1, -1, -1, -1, 292, + 293, 294, 295, 63, -1, -1, 299, -1, -1, 302, + 303, 304, 305, 306, -1, -1, 263, 264, -1, -1, + -1, 268, 269, 270, -1, -1, 40, 41, -1, 43, + -1, 45, -1, -1, 281, -1, 283, 284, 285, -1, + 287, -1, -1, -1, -1, 292, 293, 294, 295, 63, + -1, -1, 299, -1, -1, 302, 303, 304, 305, 306, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 40, 41, -1, 43, -1, 45, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 63, 263, 264, -1, -1, -1, 268, + 269, 270, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 281, -1, 283, 284, 285, -1, 287, -1, + -1, -1, -1, 292, 293, 294, 295, -1, -1, -1, + 299, -1, -1, 302, 303, 304, 305, 306, 263, 264, + -1, -1, -1, 268, 269, 270, -1, -1, 40, 41, + -1, 43, -1, 45, -1, -1, 281, -1, 283, 284, + 285, -1, 287, -1, -1, -1, -1, 292, 293, 294, + 295, 63, -1, -1, 299, -1, -1, 302, 303, 304, + 305, 306, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 40, 41, -1, 43, -1, 45, -1, -1, + -1, -1, -1, 263, 264, -1, -1, -1, 268, 269, + 270, -1, -1, -1, -1, 63, -1, -1, -1, -1, + -1, 281, -1, 283, 284, 285, -1, 287, -1, -1, + -1, -1, 292, 293, 294, 295, -1, -1, -1, 299, + -1, -1, 302, 303, 304, 305, 306, -1, -1, 263, + 264, -1, -1, -1, 268, 269, 270, -1, -1, 40, + 41, -1, 43, -1, 45, -1, -1, 281, -1, 283, + 284, 285, -1, 287, -1, -1, -1, -1, 292, 293, + 294, 295, 63, -1, -1, 299, -1, -1, 302, 303, + 304, 305, 306, 263, 264, -1, -1, -1, 268, 269, + 270, -1, -1, 40, 41, -1, 43, -1, 45, -1, + -1, 281, -1, 283, 284, 285, -1, 287, -1, -1, + -1, -1, 292, 293, 294, 295, 63, -1, -1, 299, + -1, -1, 302, 303, 304, 305, 306, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 40, 41, -1, + 43, -1, 45, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 63, 263, 264, -1, -1, -1, 268, 269, 270, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 281, + -1, 283, 284, 285, -1, 287, -1, -1, -1, -1, + 292, 293, 294, 295, -1, -1, -1, 299, -1, -1, + 302, 303, 304, 305, 306, 263, 264, -1, -1, -1, + 268, 269, 270, -1, -1, 40, 41, -1, 43, -1, + 45, -1, -1, 281, -1, 283, 284, 285, -1, 287, + -1, -1, -1, -1, 292, 293, 294, 295, 63, -1, + -1, 299, -1, -1, 302, 303, 304, 305, 306, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 40, + 41, -1, 43, -1, 45, -1, -1, -1, -1, -1, + -1, -1, 263, 264, -1, -1, -1, 268, 269, 270, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 281, -1, 283, 284, 285, -1, 287, -1, -1, -1, + -1, 292, 293, 294, 295, -1, -1, -1, 299, -1, + -1, 302, 303, 304, 305, 306, 263, 264, -1, -1, + -1, 268, 269, 270, 40, -1, -1, 43, -1, 45, + -1, -1, -1, -1, 281, -1, 283, 284, 285, -1, + 287, -1, -1, -1, -1, 292, 293, 294, 295, -1, + -1, -1, 299, -1, -1, 302, 303, 304, 305, 306, + 263, 264, -1, -1, -1, 268, 269, 270, -1, -1, + -1, -1, 40, -1, -1, 43, -1, 45, 281, -1, + 283, 284, 285, -1, 287, -1, -1, -1, -1, 292, + 293, 294, 295, -1, -1, -1, 299, -1, -1, 302, + 303, 304, 305, 306, -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, -1, -1, -1, -1, -1, -1, -1, 263, 264, + -1, -1, -1, 268, 269, 270, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 281, -1, 283, 284, + 285, -1, 287, -1, -1, -1, -1, 292, 293, 294, + 295, -1, -1, -1, 299, -1, -1, 302, 303, 304, + 305, 306, 263, 264, -1, -1, -1, 268, 269, 270, + 40, -1, -1, 43, -1, 45, -1, -1, -1, -1, + 281, -1, 283, 284, 285, -1, 287, -1, -1, -1, + -1, 292, 293, 294, 295, -1, -1, -1, 299, -1, + -1, 302, 303, 304, 305, 306, -1, -1, -1, -1, + -1, -1, -1, -1, 40, -1, -1, 43, -1, 45, + -1, -1, -1, 259, -1, -1, -1, 263, 264, -1, + -1, -1, 268, 269, 270, -1, -1, 63, -1, -1, + -1, -1, -1, -1, -1, 281, -1, 283, 284, 285, + -1, 287, -1, -1, -1, -1, 292, 293, 294, 295, + -1, -1, -1, 299, -1, -1, 302, 303, 304, 305, + 306, 259, -1, -1, 40, 263, 264, 43, -1, 45, + 268, 269, 270, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 281, -1, 283, 284, 285, -1, 287, + -1, -1, -1, -1, 292, 293, 294, 295, -1, -1, + -1, 299, -1, -1, 302, 303, 304, 305, 306, 259, + -1, -1, 40, 263, 264, 43, -1, 45, 268, 269, + 270, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 281, -1, 283, 284, 285, -1, 287, -1, -1, + -1, -1, 292, 293, 294, 295, -1, -1, -1, 299, + -1, -1, 302, 303, 304, 305, 306, 40, -1, -1, + 43, -1, 45, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 259, + -1, -1, -1, 263, 264, -1, -1, -1, 268, 269, + 270, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 281, -1, 283, 284, 285, -1, 287, -1, -1, + -1, -1, 292, 293, 294, 295, -1, -1, -1, 299, + -1, -1, 302, 303, 304, 305, 306, 263, 264, -1, + -1, -1, 268, 269, 270, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 281, -1, 283, 284, 285, + -1, 287, -1, -1, -1, -1, 292, 293, 294, 295, + -1, -1, -1, 299, -1, -1, 302, 303, 304, 305, + 306, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 259, -1, -1, -1, 263, 264, -1, + -1, -1, 268, 269, 270, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 281, -1, 283, 284, 285, + -1, 287, -1, -1, -1, -1, 292, 293, 294, 295, + -1, -1, -1, 299, -1, -1, 302, 303, 304, 305, + 306, -1, -1, -1, -1, 263, 264, -1, -1, -1, + 268, 269, 270, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 281, -1, 283, 284, 285, -1, 287, + -1, -1, -1, -1, 292, 293, 294, 295, -1, -1, + -1, 299, -1, -1, 302, 303, 304, 305, 306, -1, + 263, 264, 28, 29, -1, 268, 269, 270, 34, -1, + -1, -1, -1, -1, -1, -1, -1, 43, 281, -1, + 283, 284, 285, -1, 287, -1, -1, -1, -1, 292, + 293, 294, 295, -1, -1, -1, 299, -1, -1, 302, + 303, 304, 305, 306, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 93, 94, 95, + 96, 97, 98, -1, -1, -1, -1, -1, -1, 105, + -1, -1, -1, -1, 110, -1, -1, 113, 114, -1, + -1, 117, -1, 119, 120, -1, -1, -1, 124, 125, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, + -1, -1, -1, 139, -1, 141, 142, 143, 144, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 155, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 165, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 193, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 209, 210, 211, 212, -1, 214, -1, + 216, 217, -1, -1, -1, -1, -1, -1, 224, 225, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 236, 237, 238, 239, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 264, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 276, 277, 278, 279, 280, -1, 282, 283, 284, +}; +#define YYFINAL 1 #ifndef YYDEBUG -# define YYDEBUG 0 /* don't allow debugging */ +#define YYDEBUG 0 #endif - +#define YYMAXTOKEN 306 #if YYDEBUG - -yytoktype yytoks[] = -{ - "BEGIN", 257, - "END", 258, - "REGEX", 259, - "SEMINEW", 260, - "NEWLINE", 261, - "COMMENT", 262, - "FUN1", 263, - "FUNN", 264, - "GRGR", 265, - "PRINT", 266, - "PRINTF", 267, - "SPRINTF", 268, - "SPLIT", 269, - "IF", 270, - "ELSE", 271, - "WHILE", 272, - "FOR", 273, - "IN", 274, - "EXIT", 275, - "NEXT", 276, - "BREAK", 277, - "CONTINUE", 278, - "RET", 279, - "GETLINE", 280, - "DO", 281, - "SUB", 282, - "GSUB", 283, - "MATCH", 284, - "FUNCTION", 285, - "USERFUN", 286, - "DELETE", 287, - "ASGNOP", 288, - "?", 63, - ":", 58, - "OROR", 289, - "ANDAND", 290, - "NUMBER", 291, - "VAR", 292, - "SUBSTR", 293, - "INDEX", 294, - "MATCHOP", 295, - "RELOP", 296, - "<", 60, - ">", 62, - "OR", 297, - "STRING", 298, - "+", 43, - "-", 45, - "*", 42, - "/", 47, - "%", 37, - "UMINUS", 299, - "NOT", 300, - "^", 94, - "INCR", 301, - "DECR", 302, - "FIELD", 303, - "VFIELD", 304, - "-unknown-", -1 /* ends search */ +const 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,"'p'",0,0,0,0,0,0,0, +0,0,0,"'{'","'|'","'}'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"BEGIN","END","REGEX","SEMINEW", +"NEWLINE","COMMENT","FUN1","FUNN","GRGR","PRINT","PRINTF","SPRINTF_OLD", +"SPRINTF_NEW","SPLIT","IF","ELSE","WHILE","FOR","IN","EXIT","NEXT","BREAK", +"CONTINUE","RET","GETLINE","DO","SUB","GSUB","MATCH","FUNCTION","USERFUN", +"DELETE","ASGNOP","OROR","ANDAND","NUMBER","VAR","SUBSTR","INDEX","MATCHOP", +"RELOP","OR","STRING","UMINUS","NOT","INCR","DECR","FIELD","VFIELD","SVFIELD", }; - -char * yyreds[] = -{ - "-no such reduction-", - "program : junk hunks", - "begin : BEGIN '{' maybe states '}' junk", - "end : END '{' maybe states '}'", - "end : end NEWLINE", - "hunks : hunks hunk junk", - "hunks : /* empty */", - "hunk : patpat", - "hunk : patpat '{' maybe states '}'", - "hunk : FUNCTION USERFUN '(' arg_list ')' maybe '{' maybe states '}'", - "hunk : '{' maybe states '}'", - "hunk : begin", - "hunk : end", - "arg_list : expr_list", - "patpat : cond", - "patpat : cond ',' cond", - "cond : expr", - "cond : match", - "cond : rel", - "cond : compound_cond", - "compound_cond : '(' compound_cond ')'", - "compound_cond : cond ANDAND maybe cond", - "compound_cond : cond OROR maybe cond", - "compound_cond : NOT cond", - "rel : expr RELOP expr", - "rel : expr '>' expr", - "rel : expr '<' expr", - "rel : '(' rel ')'", - "match : expr MATCHOP expr", - "match : expr MATCHOP REGEX", - "match : REGEX", - "match : '(' match ')'", - "expr : term", - "expr : expr term", - "expr : variable ASGNOP cond", - "term : variable", - "term : NUMBER", - "term : STRING", - "term : term '+' term", - "term : term '-' term", - "term : term '*' term", - "term : term '/' term", - "term : term '%' term", - "term : term '^' term", - "term : term IN VAR", - "term : term '?' term ':' term", - "term : variable INCR", - "term : variable DECR", - "term : INCR variable", - "term : DECR variable", - "term : '-' term", - "term : '+' term", - "term : '(' cond ')'", - "term : GETLINE", - "term : GETLINE variable", - "term : GETLINE '<' expr", - "term : GETLINE variable '<' expr", - "term : term 'p' GETLINE", - "term : term 'p' GETLINE variable", - "term : FUN1", - "term : FUN1 '(' ')'", - "term : FUN1 '(' expr ')'", - "term : FUNN '(' expr_list ')'", - "term : USERFUN '(' expr_list ')'", - "term : SPRINTF expr_list", - "term : SUBSTR '(' expr ',' expr ',' expr ')'", - "term : SUBSTR '(' expr ',' expr ')'", - "term : SPLIT '(' expr ',' VAR ',' expr ')'", - "term : SPLIT '(' expr ',' VAR ',' REGEX ')'", - "term : SPLIT '(' expr ',' VAR ')'", - "term : INDEX '(' expr ',' expr ')'", - "term : MATCH '(' expr ',' REGEX ')'", - "term : MATCH '(' expr ',' expr ')'", - "term : SUB '(' expr ',' expr ')'", - "term : SUB '(' REGEX ',' expr ')'", - "term : GSUB '(' expr ',' expr ')'", - "term : GSUB '(' REGEX ',' expr ')'", - "term : SUB '(' expr ',' expr ',' expr ')'", - "term : SUB '(' REGEX ',' expr ',' expr ')'", - "term : GSUB '(' expr ',' expr ',' expr ')'", - "term : GSUB '(' REGEX ',' expr ',' expr ')'", - "variable : VAR", - "variable : VAR '[' expr_list ']'", - "variable : FIELD", - "variable : VFIELD term", - "expr_list : expr", - "expr_list : clist", - "expr_list : /* empty */", - "clist : expr ',' maybe expr", - "clist : clist ',' maybe expr", - "clist : '(' clist ')'", - "junk : junk hunksep", - "junk : /* empty */", - "hunksep : ';'", - "hunksep : SEMINEW", - "hunksep : NEWLINE", - "hunksep : COMMENT", - "maybe : maybe nlstuff", - "maybe : /* empty */", - "nlstuff : NEWLINE", - "nlstuff : COMMENT", - "separator : ';' maybe", - "separator : SEMINEW maybe", - "separator : NEWLINE maybe", - "separator : COMMENT maybe", - "states : states statement", - "states : /* empty */", - "statement : simple separator maybe", - "statement : ';' maybe", - "statement : SEMINEW maybe", - "statement : compound", - "simpnull : simple", - "simpnull : /* empty */", - "simple : expr", - "simple : PRINT expr_list redir expr", - "simple : PRINT expr_list", - "simple : PRINTF expr_list redir expr", - "simple : PRINTF expr_list", - "simple : BREAK", - "simple : NEXT", - "simple : EXIT", - "simple : EXIT expr", - "simple : CONTINUE", - "simple : RET", - "simple : RET expr", - "simple : DELETE VAR '[' expr ']'", - "redir : '>'", - "redir : GRGR", - "redir : '|'", - "compound : IF '(' cond ')' maybe statement", - "compound : IF '(' cond ')' maybe statement ELSE maybe statement", - "compound : WHILE '(' cond ')' maybe statement", - "compound : DO maybe statement WHILE '(' cond ')'", - "compound : FOR '(' simpnull ';' cond ';' simpnull ')' maybe statement", - "compound : FOR '(' simpnull ';' ';' simpnull ')' maybe statement", - "compound : FOR '(' expr ')' maybe statement", - "compound : '{' maybe states '}' maybe", +const char *yyrule[] = { +"$accept : program", +"program : junk hunks", +"begin : BEGIN '{' maybe states '}' junk", +"end : END '{' maybe states '}'", +"end : end NEWLINE", +"hunks : hunks hunk junk", +"hunks :", +"hunk : patpat", +"hunk : patpat '{' maybe states '}'", +"hunk : FUNCTION USERFUN '(' arg_list ')' maybe '{' maybe states '}'", +"hunk : '{' maybe states '}'", +"hunk : begin", +"hunk : end", +"arg_list : expr_list", +"patpat : cond", +"patpat : cond ',' cond", +"cond : expr", +"cond : match", +"cond : rel", +"cond : compound_cond", +"cond : cond '?' expr ':' expr", +"compound_cond : '(' compound_cond ')'", +"compound_cond : cond ANDAND maybe cond", +"compound_cond : cond OROR maybe cond", +"compound_cond : NOT cond", +"rel : expr RELOP expr", +"rel : expr '>' expr", +"rel : expr '<' expr", +"rel : '(' rel ')'", +"match : expr MATCHOP expr", +"match : expr MATCHOP REGEX", +"match : REGEX", +"match : '(' match ')'", +"expr : term", +"expr : expr term", +"expr : expr '?' expr ':' expr", +"expr : variable ASGNOP cond", +"sprintf : SPRINTF_NEW", +"sprintf : SPRINTF_OLD", +"term : variable", +"term : NUMBER", +"term : STRING", +"term : term '+' term", +"term : term '-' term", +"term : term '*' term", +"term : term '/' term", +"term : term '%' term", +"term : term '^' term", +"term : term IN VAR", +"term : variable INCR", +"term : variable DECR", +"term : INCR variable", +"term : DECR variable", +"term : '-' term", +"term : '+' term", +"term : '(' cond ')'", +"term : GETLINE", +"term : GETLINE variable", +"term : GETLINE '<' expr", +"term : GETLINE variable '<' expr", +"term : term 'p' GETLINE", +"term : term 'p' GETLINE variable", +"term : FUN1", +"term : FUN1 '(' ')'", +"term : FUN1 '(' expr ')'", +"term : FUNN '(' expr_list ')'", +"term : USERFUN '(' expr_list ')'", +"term : SPRINTF_NEW '(' expr_list ')'", +"term : sprintf expr_list", +"term : SUBSTR '(' expr ',' expr ',' expr ')'", +"term : SUBSTR '(' expr ',' expr ')'", +"term : SPLIT '(' expr ',' VAR ',' expr ')'", +"term : SPLIT '(' expr ',' VAR ',' REGEX ')'", +"term : SPLIT '(' expr ',' VAR ')'", +"term : INDEX '(' expr ',' expr ')'", +"term : MATCH '(' expr ',' REGEX ')'", +"term : MATCH '(' expr ',' expr ')'", +"term : SUB '(' expr ',' expr ')'", +"term : SUB '(' REGEX ',' expr ')'", +"term : GSUB '(' expr ',' expr ')'", +"term : GSUB '(' REGEX ',' expr ')'", +"term : SUB '(' expr ',' expr ',' expr ')'", +"term : SUB '(' REGEX ',' expr ',' expr ')'", +"term : GSUB '(' expr ',' expr ',' expr ')'", +"term : GSUB '(' REGEX ',' expr ',' expr ')'", +"variable : VAR", +"variable : VAR '[' expr_list ']'", +"variable : FIELD", +"variable : SVFIELD", +"variable : VFIELD term", +"expr_list : expr", +"expr_list : clist", +"expr_list :", +"clist : expr ',' maybe expr", +"clist : clist ',' maybe expr", +"clist : '(' clist ')'", +"junk : junk hunksep", +"junk :", +"hunksep : ';'", +"hunksep : SEMINEW", +"hunksep : NEWLINE", +"hunksep : COMMENT", +"maybe : maybe nlstuff", +"maybe :", +"nlstuff : NEWLINE", +"nlstuff : COMMENT", +"separator : ';' maybe", +"separator : SEMINEW maybe", +"separator : NEWLINE maybe", +"separator : COMMENT maybe", +"states : states statement", +"states :", +"statement : simple separator maybe", +"statement : ';' maybe", +"statement : SEMINEW maybe", +"statement : compound", +"simpnull : simple", +"simpnull :", +"simple : expr", +"simple : PRINT expr_list redir expr", +"simple : PRINT expr_list", +"simple : PRINTF expr_list redir expr", +"simple : PRINTF expr_list", +"simple : BREAK", +"simple : NEXT", +"simple : EXIT", +"simple : EXIT expr", +"simple : CONTINUE", +"simple : RET", +"simple : RET expr", +"simple : DELETE VAR '[' expr_list ']'", +"redir : '>'", +"redir : GRGR", +"redir : '|'", +"compound : IF '(' cond ')' maybe statement", +"compound : IF '(' cond ')' maybe statement ELSE maybe statement", +"compound : WHILE '(' cond ')' maybe statement", +"compound : DO maybe statement WHILE '(' cond ')'", +"compound : FOR '(' simpnull ';' cond ';' simpnull ')' maybe statement", +"compound : FOR '(' simpnull ';' ';' simpnull ')' maybe statement", +"compound : FOR '(' expr ')' maybe statement", +"compound : '{' maybe states '}' maybe", }; -#endif /* YYDEBUG */ -#line 1 "/usr/lib/yaccpar" -/* @(#)yaccpar 1.10 89/04/04 SMI; from S5R3 1.10 */ - -/* -** Skeleton parser driver for yacc output -*/ - -/* -** yacc user known macros and defines -*/ -#define YYERROR goto yyerrlab -#define YYACCEPT { free(yys); free(yyv); return(0); } -#define YYABORT { free(yys); free(yyv); return(1); } -#define YYBACKUP( newtoken, newvalue )\ -{\ - if ( yychar >= 0 || ( yyr2[ yytmp ] >> 1 ) != 1 )\ - {\ - yyerror( "syntax error - cannot backup" );\ - goto yyerrlab;\ - }\ - yychar = newtoken;\ - yystate = *yyps;\ - yylval = newvalue;\ - goto yynewstate;\ -} -#define YYRECOVERING() (!!yyerrflag) -#ifndef YYDEBUG -# define YYDEBUG 1 /* make debugging available */ #endif +#ifndef YYSTYPE +typedef int YYSTYPE; +#endif +#ifdef YYSTACKSIZE +#undef YYMAXDEPTH +#define YYMAXDEPTH YYSTACKSIZE +#else +#ifdef YYMAXDEPTH +#define YYSTACKSIZE YYMAXDEPTH +#else +#define YYSTACKSIZE 500 +#define YYMAXDEPTH 500 +#endif +#endif +int yydebug; +int yynerrs; +int yyerrflag; +int yychar; +short *yyssp; +YYSTYPE *yyvsp; +YYSTYPE yyval; +YYSTYPE yylval; +short yyss[YYSTACKSIZE]; +YYSTYPE yyvs[YYSTACKSIZE]; +#define yystacksize YYSTACKSIZE +#line 429 "a2p.y" -/* -** user known globals -*/ -int yydebug; /* set to 1 to get debugging */ - -/* -** driver internal defines -*/ -#define YYFLAG (-1000) - -/* -** static variables used by the parser -*/ -static YYSTYPE *yyv; /* value stack */ -static int *yys; /* state stack */ - -static YYSTYPE *yypv; /* top of value stack */ -static int *yyps; /* top of state stack */ - -static int yystate; /* current state */ -static int yytmp; /* extra var (lasts between blocks) */ - -int yynerrs; /* number of errors */ +int yyparse (void); -int yyerrflag; /* error recovery flag */ -int yychar; /* current input token number */ +#include "a2py.c" +#line 2178 "y.tab.c" +#define YYABORT goto yyabort +#define YYREJECT goto yyabort +#define YYACCEPT goto yyaccept +#define YYERROR goto yyerrlab +#if YYDEBUG +# if defined(WIN32) && !defined(__BORLANDC__) +EXTERN_C _CRTIMP char *getenv(const char *); +# else +EXTERN_C char *getenv(const char *); +# endif +#endif -/* -** yyparse - return 0 if worked, 1 if syntax error not recovered from -*/ int -yyparse() +yyparse(void) { - register YYSTYPE *yypvt; /* top of value stack for $vars */ - unsigned yymaxdepth = YYMAXDEPTH; - - /* - ** Initialize externals - yyparse may be called more than once - */ - yyv = (YYSTYPE*)malloc(yymaxdepth*sizeof(YYSTYPE)); - yys = (int*)malloc(yymaxdepth*sizeof(int)); - if (!yyv || !yys) - { - yyerror( "out of memory" ); - return(1); - } - yypv = &yyv[-1]; - yyps = &yys[-1]; - yystate = 0; - yytmp = 0; - yynerrs = 0; - yyerrflag = 0; - yychar = -1; - - goto yystack; - { - register YYSTYPE *yy_pv; /* top of value stack */ - register int *yy_ps; /* top of state stack */ - register int yy_state; /* current state */ - register int yy_n; /* internal state number info */ - - /* - ** get globals into registers. - ** branch to here only if YYBACKUP was called. - */ - yynewstate: - yy_pv = yypv; - yy_ps = yyps; - yy_state = yystate; - goto yy_newstate; + register int yym, yyn, yystate; +#if YYDEBUG + register const char *yys; - /* - ** get globals into registers. - ** either we just started, or we just finished a reduction - */ - yystack: - yy_pv = yypv; - yy_ps = yyps; - yy_state = yystate; + if ((yys = getenv("YYDEBUG"))) + { + yyn = *yys; + if (yyn >= '0' && yyn <= '9') + yydebug = yyn - '0'; + } +#endif - /* - ** top of for (;;) loop while no reductions done - */ - yy_stack: - /* - ** put a state and value onto the stacks - */ -#if YYDEBUG - /* - ** if debugging, look up token value in list of value vs. - ** name pairs. 0 and negative (-1) are special values. - ** Note: linear search is used since time is not a real - ** consideration while debugging. - */ - if ( yydebug ) - { - register int yy_i; + yynerrs = 0; + yyerrflag = 0; + yychar = (-1); - (void)printf( "State %d, token ", yy_state ); - if ( yychar == 0 ) - (void)printf( "end-of-file\n" ); - else if ( yychar < 0 ) - (void)printf( "-none-\n" ); - else - { - for ( yy_i = 0; yytoks[yy_i].t_val >= 0; - yy_i++ ) - { - if ( yytoks[yy_i].t_val == yychar ) - break; - } - (void)printf( "%s\n", yytoks[yy_i].t_name ); - } - } -#endif /* YYDEBUG */ - if ( ++yy_ps >= &yys[ yymaxdepth ] ) /* room on stack? */ - { - /* - ** reallocate and recover. Note that pointers - ** have to be reset, or bad things will happen - */ - int yyps_index = (yy_ps - yys); - int yypv_index = (yy_pv - yyv); - int yypvt_index = (yypvt - yyv); - yymaxdepth += YYMAXDEPTH; - yyv = (YYSTYPE*)realloc((char*)yyv, - yymaxdepth * sizeof(YYSTYPE)); - yys = (int*)realloc((char*)yys, - yymaxdepth * sizeof(int)); - if (!yyv || !yys) - { - yyerror( "yacc stack overflow" ); - return(1); - } - yy_ps = yys + yyps_index; - yy_pv = yyv + yypv_index; - yypvt = yyv + yypvt_index; - } - *yy_ps = yy_state; - *++yy_pv = yyval; + yyssp = yyss; + yyvsp = yyvs; + *yyssp = yystate = 0; - /* - ** we have a new state - find out what to do - */ - yy_newstate: - if ( ( yy_n = yypact[ yy_state ] ) <= YYFLAG ) - goto yydefault; /* simple state */ +yyloop: + if (((yyn = yydefred[yystate])) != 0) goto yyreduce; + if (yychar < 0) + { + if ((yychar = yylex()) < 0) yychar = 0; #if YYDEBUG - /* - ** if debugging, need to mark whether new token grabbed - */ - yytmp = yychar < 0; + 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 ( ( yychar < 0 ) && ( ( yychar = yylex() ) < 0 ) ) - yychar = 0; /* reached EOF */ + } + if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 && + yyn <= YYTABLESIZE && yycheck[yyn] == yychar) + { #if YYDEBUG - if ( yydebug && yytmp ) - { - register int yy_i; - - (void)printf( "Received token " ); - if ( yychar == 0 ) - (void)printf( "end-of-file\n" ); - else if ( yychar < 0 ) - (void)printf( "-none-\n" ); - else - { - for ( yy_i = 0; yytoks[yy_i].t_val >= 0; - yy_i++ ) - { - if ( yytoks[yy_i].t_val == yychar ) - break; - } - (void)printf( "%s\n", yytoks[yy_i].t_name ); - } - } -#endif /* YYDEBUG */ - if ( ( ( yy_n += yychar ) < 0 ) || ( yy_n >= YYLAST ) ) - goto yydefault; - if ( yychk[ yy_n = yyact[ yy_n ] ] == yychar ) /*valid shift*/ - { - yychar = -1; - yyval = yylval; - yy_state = yy_n; - if ( yyerrflag > 0 ) - yyerrflag--; - goto yy_stack; - } + if (yydebug) + printf("%sdebug: state %d, shifting to state %d\n", + YYPREFIX, yystate, yytable[yyn]); +#endif + if (yyssp >= yyss + yystacksize - 1) + { + 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; +#ifdef lint - yydefault: - if ( ( yy_n = yydef[ yy_state ] ) == -2 ) - { -#if YYDEBUG - yytmp = yychar < 0; #endif - if ( ( yychar < 0 ) && ( ( yychar = yylex() ) < 0 ) ) - yychar = 0; /* reached EOF */ -#if YYDEBUG - if ( yydebug && yytmp ) - { - register int yy_i; - (void)printf( "Received token " ); - if ( yychar == 0 ) - (void)printf( "end-of-file\n" ); - else if ( yychar < 0 ) - (void)printf( "-none-\n" ); - else - { - for ( yy_i = 0; - yytoks[yy_i].t_val >= 0; - yy_i++ ) - { - if ( yytoks[yy_i].t_val - == yychar ) - { - break; - } - } - (void)printf( "%s\n", yytoks[yy_i].t_name ); - } - } -#endif /* YYDEBUG */ - /* - ** look through exception table - */ - { - register int *yyxi = yyexca; + yyerror("syntax error"); +#ifdef lint - while ( ( *yyxi != -1 ) || - ( yyxi[1] != yy_state ) ) - { - yyxi += 2; - } - while ( ( *(yyxi += 2) >= 0 ) && - ( *yyxi != yychar ) ) - ; - if ( ( yy_n = yyxi[1] ) < 0 ) - YYACCEPT; - } - } +#endif - /* - ** check for syntax error - */ - if ( yy_n == 0 ) /* have an error */ - { - /* no worry about speed here! */ - switch ( yyerrflag ) - { - case 0: /* new error */ - yyerror( "syntax error" ); - goto skip_init; - yyerrlab: - /* - ** get globals into registers. - ** we have a user generated syntax type error - */ - yy_pv = yypv; - yy_ps = yyps; - yy_state = yystate; - yynerrs++; - skip_init: - case 1: - case 2: /* incompletely recovered error */ - /* try again... */ - yyerrflag = 3; - /* - ** find state where "error" is a legal - ** shift action - */ - while ( yy_ps >= yys ) - { - yy_n = yypact[ *yy_ps ] + YYERRCODE; - if ( yy_n >= 0 && yy_n < YYLAST && - yychk[yyact[yy_n]] == YYERRCODE) { - /* - ** simulate shift of "error" - */ - yy_state = yyact[ yy_n ]; - goto yy_stack; - } - /* - ** current state has no shift on - ** "error", pop stack - */ + ++yynerrs; +yyinrecovery: + if (yyerrflag < 3) + { + yyerrflag = 3; + for (;;) + { + if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 && + yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE) + { #if YYDEBUG -# define _POP_ "Error recovery pops state %d, uncovers state %d\n" - if ( yydebug ) - (void)printf( _POP_, *yy_ps, - yy_ps[-1] ); -# undef _POP_ + if (yydebug) + printf("%sdebug: state %d, error recovery shifting\ + to state %d\n", YYPREFIX, *yyssp, yytable[yyn]); #endif - yy_ps--; - yy_pv--; - } - /* - ** there is no state on stack with "error" as - ** a valid shift. give up. - */ - YYABORT; - case 3: /* no shift yet; eat a token */ + if (yyssp >= yyss + yystacksize - 1) + { + goto yyoverflow; + } + *++yyssp = yystate = yytable[yyn]; + *++yyvsp = yylval; + goto yyloop; + } + else + { #if YYDEBUG - /* - ** if debugging, look up token in list of - ** pairs. 0 and negative shouldn't occur, - ** but since timing doesn't matter when - ** debugging, it doesn't hurt to leave the - ** tests here. - */ - if ( yydebug ) - { - register int yy_i; - - (void)printf( "Error recovery discards " ); - if ( yychar == 0 ) - (void)printf( "token end-of-file\n" ); - else if ( yychar < 0 ) - (void)printf( "token -none-\n" ); - else - { - for ( yy_i = 0; - yytoks[yy_i].t_val >= 0; - yy_i++ ) - { - if ( yytoks[yy_i].t_val - == yychar ) - { - break; - } - } - (void)printf( "token %s\n", - yytoks[yy_i].t_name ); - } - } -#endif /* YYDEBUG */ - if ( yychar == 0 ) /* reached EOF. quit */ - YYABORT; - yychar = -1; - goto yy_newstate; - } - }/* end if ( yy_n == 0 ) */ - /* - ** reduction by production yy_n - ** put stack tops, etc. so things right after switch - */ + 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 debugging, print the string that is the user's - ** specification of the reduction which is just about - ** to be done. - */ - if ( yydebug ) - (void)printf( "Reduce by (%d) \"%s\"\n", - yy_n, yyreds[ yy_n ] ); + 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 - yytmp = yy_n; /* value to switch over */ - yypvt = yy_pv; /* $vars top of value stack */ - /* - ** Look in goto table for next state - ** Sorry about using yy_state here as temporary - ** register variable, but why not, if it works... - ** If yyr2[ yy_n ] doesn't have the low order bit - ** set, then there is no action to be done for - ** this reduction. So, no saving & unsaving of - ** registers done. The only difference between the - ** code just after the if and the body of the if is - ** the goto yy_stack in the body. This way the test - ** can be made before the choice of what to do is needed. - */ - { - /* length of production doubled with extra bit */ - register int yy_len = yyr2[ yy_n ]; - - if ( !( yy_len & 01 ) ) - { - yy_len >>= 1; - yyval = ( yy_pv -= yy_len )[1]; /* $$ = $1 */ - yy_state = yypgo[ yy_n = yyr1[ yy_n ] ] + - *( yy_ps -= yy_len ) + 1; - if ( yy_state >= YYLAST || - yychk[ yy_state = - yyact[ yy_state ] ] != -yy_n ) - { - yy_state = yyact[ yypgo[ yy_n ] ]; - } - goto yy_stack; - } - yy_len >>= 1; - yyval = ( yy_pv -= yy_len )[1]; /* $$ = $1 */ - yy_state = yypgo[ yy_n = yyr1[ yy_n ] ] + - *( yy_ps -= yy_len ) + 1; - if ( yy_state >= YYLAST || - yychk[ yy_state = yyact[ yy_state ] ] != -yy_n ) - { - yy_state = yyact[ yypgo[ yy_n ] ]; - } - } - /* save until reenter driver code */ - yystate = yy_state; - yyps = yy_ps; - yypv = yy_pv; - } - /* - ** code supplied by user is placed in this switch - */ - switch( yytmp ) - { - + 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 60 "a2p.y" -{ root = oper4(OPROG,yypvt[-1],begins,yypvt[-0],ends); } break; +#line 52 "a2p.y" +{ root = oper4(OPROG,yyvsp[-1],begins,yyvsp[0],ends); } +break; case 2: -# line 64 "a2p.y" -{ begins = oper4(OJUNK,begins,yypvt[-3],yypvt[-2],yypvt[-0]); in_begin = FALSE; - yyval = Nullop; } break; +#line 56 "a2p.y" +{ begins = oper4(OJUNK,begins,yyvsp[-3],yyvsp[-2],yyvsp[0]); in_begin = FALSE; + yyval = Nullop; } +break; case 3: -# line 69 "a2p.y" -{ ends = oper3(OJUNK,ends,yypvt[-2],yypvt[-1]); yyval = Nullop; } break; +#line 61 "a2p.y" +{ ends = oper3(OJUNK,ends,yyvsp[-2],yyvsp[-1]); yyval = Nullop; } +break; case 4: -# line 71 "a2p.y" -{ yyval = yypvt[-1]; } break; +#line 63 "a2p.y" +{ yyval = yyvsp[-1]; } +break; case 5: -# line 75 "a2p.y" -{ yyval = oper3(OHUNKS,yypvt[-2],yypvt[-1],yypvt[-0]); } break; +#line 67 "a2p.y" +{ yyval = oper3(OHUNKS,yyvsp[-2],yyvsp[-1],yyvsp[0]); } +break; case 6: -# line 77 "a2p.y" -{ yyval = Nullop; } break; +#line 69 "a2p.y" +{ yyval = Nullop; } +break; case 7: -# line 81 "a2p.y" -{ yyval = oper1(OHUNK,yypvt[-0]); need_entire = TRUE; } break; +#line 73 "a2p.y" +{ yyval = oper1(OHUNK,yyvsp[0]); need_entire = TRUE; } +break; case 8: -# line 83 "a2p.y" -{ yyval = oper2(OHUNK,yypvt[-4],oper2(OJUNK,yypvt[-2],yypvt[-1])); } break; +#line 75 "a2p.y" +{ yyval = oper2(OHUNK,yyvsp[-4],oper2(OJUNK,yyvsp[-2],yyvsp[-1])); } +break; case 9: -# line 85 "a2p.y" -{ fixfargs(yypvt[-8],yypvt[-6],0); yyval = oper5(OUSERDEF,yypvt[-8],yypvt[-6],yypvt[-4],yypvt[-2],yypvt[-1]); } break; +#line 77 "a2p.y" +{ fixfargs(yyvsp[-8],yyvsp[-6],0); yyval = oper5(OUSERDEF,yyvsp[-8],yyvsp[-6],yyvsp[-4],yyvsp[-2],yyvsp[-1]); } +break; case 10: -# line 87 "a2p.y" -{ yyval = oper2(OHUNK,Nullop,oper2(OJUNK,yypvt[-2],yypvt[-1])); } break; +#line 79 "a2p.y" +{ yyval = oper2(OHUNK,Nullop,oper2(OJUNK,yyvsp[-2],yyvsp[-1])); } +break; case 13: -# line 93 "a2p.y" -{ yyval = rememberargs(yyval); } break; +#line 85 "a2p.y" +{ yyval = rememberargs(yyval); } +break; case 14: -# line 97 "a2p.y" -{ yyval = oper1(OPAT,yypvt[-0]); } break; +#line 89 "a2p.y" +{ yyval = oper1(OPAT,yyvsp[0]); } +break; case 15: -# line 99 "a2p.y" -{ yyval = oper2(ORANGE,yypvt[-2],yypvt[-0]); } break; +#line 91 "a2p.y" +{ yyval = oper2(ORANGE,yyvsp[-2],yyvsp[0]); } +break; case 20: -# line 110 "a2p.y" -{ yyval = oper1(OCPAREN,yypvt[-1]); } break; +#line 99 "a2p.y" +{ yyval = oper3(OCOND,yyvsp[-4],yyvsp[-2],yyvsp[0]); } +break; case 21: -# line 112 "a2p.y" -{ yyval = oper3(OCANDAND,yypvt[-3],yypvt[-1],yypvt[-0]); } break; +#line 104 "a2p.y" +{ yyval = oper1(OCPAREN,yyvsp[-1]); } +break; case 22: -# line 114 "a2p.y" -{ yyval = oper3(OCOROR,yypvt[-3],yypvt[-1],yypvt[-0]); } break; +#line 106 "a2p.y" +{ yyval = oper3(OCANDAND,yyvsp[-3],yyvsp[-1],yyvsp[0]); } +break; case 23: -# line 116 "a2p.y" -{ yyval = oper1(OCNOT,yypvt[-0]); } break; +#line 108 "a2p.y" +{ yyval = oper3(OCOROR,yyvsp[-3],yyvsp[-1],yyvsp[0]); } +break; case 24: -# line 120 "a2p.y" -{ yyval = oper3(ORELOP,yypvt[-1],yypvt[-2],yypvt[-0]); } break; +#line 110 "a2p.y" +{ yyval = oper1(OCNOT,yyvsp[0]); } +break; case 25: -# line 122 "a2p.y" -{ yyval = oper3(ORELOP,string(">",1),yypvt[-2],yypvt[-0]); } break; +#line 114 "a2p.y" +{ yyval = oper3(ORELOP,yyvsp[-1],yyvsp[-2],yyvsp[0]); } +break; case 26: -# line 124 "a2p.y" -{ yyval = oper3(ORELOP,string("<",1),yypvt[-2],yypvt[-0]); } break; +#line 116 "a2p.y" +{ yyval = oper3(ORELOP,string(">",1),yyvsp[-2],yyvsp[0]); } +break; case 27: -# line 126 "a2p.y" -{ yyval = oper1(ORPAREN,yypvt[-1]); } break; +#line 118 "a2p.y" +{ yyval = oper3(ORELOP,string("<",1),yyvsp[-2],yyvsp[0]); } +break; case 28: -# line 130 "a2p.y" -{ yyval = oper3(OMATCHOP,yypvt[-1],yypvt[-2],yypvt[-0]); } break; +#line 120 "a2p.y" +{ yyval = oper1(ORPAREN,yyvsp[-1]); } +break; case 29: -# line 132 "a2p.y" -{ yyval = oper3(OMATCHOP,yypvt[-1],yypvt[-2],oper1(OREGEX,yypvt[-0])); } break; +#line 124 "a2p.y" +{ yyval = oper3(OMATCHOP,yyvsp[-1],yyvsp[-2],yyvsp[0]); } +break; case 30: -# line 134 "a2p.y" -{ yyval = oper1(OREGEX,yypvt[-0]); } break; +#line 126 "a2p.y" +{ yyval = oper3(OMATCHOP,yyvsp[-1],yyvsp[-2],oper1(OREGEX,yyvsp[0])); } +break; case 31: -# line 136 "a2p.y" -{ yyval = oper1(OMPAREN,yypvt[-1]); } break; +#line 128 "a2p.y" +{ yyval = oper1(OREGEX,yyvsp[0]); } +break; case 32: -# line 140 "a2p.y" -{ yyval = yypvt[-0]; } break; +#line 130 "a2p.y" +{ yyval = oper1(OMPAREN,yyvsp[-1]); } +break; case 33: -# line 142 "a2p.y" -{ yyval = oper2(OCONCAT,yypvt[-1],yypvt[-0]); } break; +#line 134 "a2p.y" +{ yyval = yyvsp[0]; } +break; case 34: -# line 144 "a2p.y" -{ yyval = oper3(OASSIGN,yypvt[-1],yypvt[-2],yypvt[-0]); - if ((ops[yypvt[-2]].ival & 255) == OFLD) - lval_field = TRUE; - if ((ops[yypvt[-2]].ival & 255) == OVFLD) - lval_field = TRUE; - } break; +#line 136 "a2p.y" +{ yyval = oper2(OCONCAT,yyvsp[-1],yyvsp[0]); } +break; case 35: -# line 153 "a2p.y" -{ yyval = yypvt[-0]; } break; +#line 138 "a2p.y" +{ yyval = oper3(OCOND,yyvsp[-4],yyvsp[-2],yyvsp[0]); } +break; case 36: -# line 155 "a2p.y" -{ yyval = oper1(ONUM,yypvt[-0]); } break; -case 37: -# line 157 "a2p.y" -{ yyval = oper1(OSTR,yypvt[-0]); } break; -case 38: -# line 159 "a2p.y" -{ yyval = oper2(OADD,yypvt[-2],yypvt[-0]); } break; +#line 140 "a2p.y" +{ + yyval = oper3(OASSIGN,yyvsp[-1],yyvsp[-2],yyvsp[0]); + if ((ops[yyvsp[-2]].ival & 255) == OFLD) + lval_field = TRUE; + else if ((ops[yyvsp[-2]].ival & 255) == OVFLD) + lval_field = TRUE; + } +break; case 39: -# line 161 "a2p.y" -{ yyval = oper2(OSUBTRACT,yypvt[-2],yypvt[-0]); } break; +#line 153 "a2p.y" +{ yyval = yyvsp[0]; } +break; case 40: -# line 163 "a2p.y" -{ yyval = oper2(OMULT,yypvt[-2],yypvt[-0]); } break; +#line 155 "a2p.y" +{ yyval = oper1(ONUM,yyvsp[0]); } +break; case 41: -# line 165 "a2p.y" -{ yyval = oper2(ODIV,yypvt[-2],yypvt[-0]); } break; +#line 157 "a2p.y" +{ yyval = oper1(OSTR,yyvsp[0]); } +break; case 42: -# line 167 "a2p.y" -{ yyval = oper2(OMOD,yypvt[-2],yypvt[-0]); } break; +#line 159 "a2p.y" +{ yyval = oper2(OADD,yyvsp[-2],yyvsp[0]); } +break; case 43: -# line 169 "a2p.y" -{ yyval = oper2(OPOW,yypvt[-2],yypvt[-0]); } break; +#line 161 "a2p.y" +{ yyval = oper2(OSUBTRACT,yyvsp[-2],yyvsp[0]); } +break; case 44: -# line 171 "a2p.y" -{ yyval = oper2(ODEFINED,aryrefarg(yypvt[-0]),yypvt[-2]); } break; +#line 163 "a2p.y" +{ yyval = oper2(OMULT,yyvsp[-2],yyvsp[0]); } +break; case 45: -# line 173 "a2p.y" -{ yyval = oper3(OCOND,yypvt[-4],yypvt[-2],yypvt[-0]); } break; +#line 165 "a2p.y" +{ yyval = oper2(ODIV,yyvsp[-2],yyvsp[0]); } +break; case 46: -# line 175 "a2p.y" -{ yyval = oper1(OPOSTINCR,yypvt[-1]); } break; +#line 167 "a2p.y" +{ yyval = oper2(OMOD,yyvsp[-2],yyvsp[0]); } +break; case 47: -# line 177 "a2p.y" -{ yyval = oper1(OPOSTDECR,yypvt[-1]); } break; +#line 169 "a2p.y" +{ yyval = oper2(OPOW,yyvsp[-2],yyvsp[0]); } +break; case 48: -# line 179 "a2p.y" -{ yyval = oper1(OPREINCR,yypvt[-0]); } break; +#line 171 "a2p.y" +{ yyval = oper2(ODEFINED,aryrefarg(yyvsp[0]),yyvsp[-2]); } +break; case 49: -# line 181 "a2p.y" -{ yyval = oper1(OPREDECR,yypvt[-0]); } break; +#line 173 "a2p.y" +{ + yyval = oper1(OPOSTINCR,yyvsp[-1]); + if ((ops[yyvsp[-1]].ival & 255) == OFLD) + lval_field = TRUE; + else if ((ops[yyvsp[-1]].ival & 255) == OVFLD) + lval_field = TRUE; + } +break; case 50: -# line 183 "a2p.y" -{ yyval = oper1(OUMINUS,yypvt[-0]); } break; +#line 181 "a2p.y" +{ + yyval = oper1(OPOSTDECR,yyvsp[-1]); + if ((ops[yyvsp[-1]].ival & 255) == OFLD) + lval_field = TRUE; + else if ((ops[yyvsp[-1]].ival & 255) == OVFLD) + lval_field = TRUE; + } +break; case 51: -# line 185 "a2p.y" -{ yyval = oper1(OUPLUS,yypvt[-0]); } break; +#line 189 "a2p.y" +{ + yyval = oper1(OPREINCR,yyvsp[0]); + if ((ops[yyvsp[0]].ival & 255) == OFLD) + lval_field = TRUE; + else if ((ops[yyvsp[0]].ival & 255) == OVFLD) + lval_field = TRUE; + } +break; case 52: -# line 187 "a2p.y" -{ yyval = oper1(OPAREN,yypvt[-1]); } break; +#line 197 "a2p.y" +{ + yyval = oper1(OPREDECR,yyvsp[0]); + if ((ops[yyvsp[0]].ival & 255) == OFLD) + lval_field = TRUE; + else if ((ops[yyvsp[0]].ival & 255) == OVFLD) + lval_field = TRUE; + } +break; case 53: -# line 189 "a2p.y" -{ yyval = oper0(OGETLINE); } break; +#line 205 "a2p.y" +{ yyval = oper1(OUMINUS,yyvsp[0]); } +break; case 54: -# line 191 "a2p.y" -{ yyval = oper1(OGETLINE,yypvt[-0]); } break; +#line 207 "a2p.y" +{ yyval = oper1(OUPLUS,yyvsp[0]); } +break; case 55: -# line 193 "a2p.y" -{ yyval = oper3(OGETLINE,Nullop,string("<",1),yypvt[-0]); - if (ops[yypvt[-0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; } break; +#line 209 "a2p.y" +{ yyval = oper1(OPAREN,yyvsp[-1]); } +break; case 56: -# line 196 "a2p.y" -{ yyval = oper3(OGETLINE,yypvt[-2],string("<",1),yypvt[-0]); - if (ops[yypvt[-0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; } break; +#line 211 "a2p.y" +{ yyval = oper0(OGETLINE); } +break; case 57: -# line 199 "a2p.y" -{ yyval = oper3(OGETLINE,Nullop,string("|",1),yypvt[-2]); - if (ops[yypvt[-2]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; } break; +#line 213 "a2p.y" +{ yyval = oper1(OGETLINE,yyvsp[0]); } +break; case 58: -# line 202 "a2p.y" -{ yyval = oper3(OGETLINE,yypvt[-0],string("|",1),yypvt[-3]); - if (ops[yypvt[-3]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; } break; +#line 215 "a2p.y" +{ yyval = oper3(OGETLINE,Nullop,string("<",1),yyvsp[0]); + if (ops[yyvsp[0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; } +break; case 59: -# line 205 "a2p.y" -{ yyval = oper0(yypvt[-0]); need_entire = do_chop = TRUE; } break; +#line 218 "a2p.y" +{ yyval = oper3(OGETLINE,yyvsp[-2],string("<",1),yyvsp[0]); + if (ops[yyvsp[0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; } +break; case 60: -# line 207 "a2p.y" -{ yyval = oper1(yypvt[-2],Nullop); need_entire = do_chop = TRUE; } break; +#line 221 "a2p.y" +{ yyval = oper3(OGETLINE,Nullop,string("|",1),yyvsp[-2]); + if (ops[yyvsp[-2]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; } +break; case 61: -# line 209 "a2p.y" -{ yyval = oper1(yypvt[-3],yypvt[-1]); } break; +#line 224 "a2p.y" +{ yyval = oper3(OGETLINE,yyvsp[0],string("|",1),yyvsp[-3]); + if (ops[yyvsp[-3]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; } +break; case 62: -# line 211 "a2p.y" -{ yyval = oper1(yypvt[-3],yypvt[-1]); } break; +#line 227 "a2p.y" +{ yyval = oper0(yyvsp[0]); need_entire = do_chop = TRUE; } +break; case 63: -# line 213 "a2p.y" -{ yyval = oper2(OUSERFUN,yypvt[-3],yypvt[-1]); } break; +#line 229 "a2p.y" +{ yyval = oper1(yyvsp[-2],Nullop); need_entire = do_chop = TRUE; } +break; case 64: -# line 215 "a2p.y" -{ yyval = oper1(OSPRINTF,yypvt[-0]); } break; +#line 231 "a2p.y" +{ yyval = oper1(yyvsp[-3],yyvsp[-1]); } +break; case 65: -# line 217 "a2p.y" -{ yyval = oper3(OSUBSTR,yypvt[-5],yypvt[-3],yypvt[-1]); } break; +#line 233 "a2p.y" +{ yyval = oper1(yyvsp[-3],yyvsp[-1]); } +break; case 66: -# line 219 "a2p.y" -{ yyval = oper2(OSUBSTR,yypvt[-3],yypvt[-1]); } break; +#line 235 "a2p.y" +{ yyval = oper2(OUSERFUN,yyvsp[-3],yyvsp[-1]); } +break; case 67: -# line 221 "a2p.y" -{ yyval = oper3(OSPLIT,yypvt[-5],aryrefarg(numary(yypvt[-3])),yypvt[-1]); } break; +#line 237 "a2p.y" +{ yyval = oper1(OSPRINTF,yyvsp[-1]); } +break; case 68: -# line 223 "a2p.y" -{ yyval = oper3(OSPLIT,yypvt[-5],aryrefarg(numary(yypvt[-3])),oper1(OREGEX,yypvt[-1]));} break; +#line 239 "a2p.y" +{ yyval = oper1(OSPRINTF,yyvsp[0]); } +break; case 69: -# line 225 "a2p.y" -{ yyval = oper2(OSPLIT,yypvt[-3],aryrefarg(numary(yypvt[-1]))); } break; +#line 241 "a2p.y" +{ yyval = oper3(OSUBSTR,yyvsp[-5],yyvsp[-3],yyvsp[-1]); } +break; case 70: -# line 227 "a2p.y" -{ yyval = oper2(OINDEX,yypvt[-3],yypvt[-1]); } break; +#line 243 "a2p.y" +{ yyval = oper2(OSUBSTR,yyvsp[-3],yyvsp[-1]); } +break; case 71: -# line 229 "a2p.y" -{ yyval = oper2(OMATCH,yypvt[-3],oper1(OREGEX,yypvt[-1])); } break; +#line 245 "a2p.y" +{ yyval = oper3(OSPLIT,yyvsp[-5],aryrefarg(numary(yyvsp[-3])),yyvsp[-1]); } +break; case 72: -# line 231 "a2p.y" -{ yyval = oper2(OMATCH,yypvt[-3],yypvt[-1]); } break; +#line 247 "a2p.y" +{ yyval = oper3(OSPLIT,yyvsp[-5],aryrefarg(numary(yyvsp[-3])),oper1(OREGEX,yyvsp[-1]));} +break; case 73: -# line 233 "a2p.y" -{ yyval = oper2(OSUB,yypvt[-3],yypvt[-1]); } break; +#line 249 "a2p.y" +{ yyval = oper2(OSPLIT,yyvsp[-3],aryrefarg(numary(yyvsp[-1]))); } +break; case 74: -# line 235 "a2p.y" -{ yyval = oper2(OSUB,oper1(OREGEX,yypvt[-3]),yypvt[-1]); } break; +#line 251 "a2p.y" +{ yyval = oper2(OINDEX,yyvsp[-3],yyvsp[-1]); } +break; case 75: -# line 237 "a2p.y" -{ yyval = oper2(OGSUB,yypvt[-3],yypvt[-1]); } break; +#line 253 "a2p.y" +{ yyval = oper2(OMATCH,yyvsp[-3],oper1(OREGEX,yyvsp[-1])); } +break; case 76: -# line 239 "a2p.y" -{ yyval = oper2(OGSUB,oper1(OREGEX,yypvt[-3]),yypvt[-1]); } break; +#line 255 "a2p.y" +{ yyval = oper2(OMATCH,yyvsp[-3],yyvsp[-1]); } +break; case 77: -# line 241 "a2p.y" -{ yyval = oper3(OSUB,yypvt[-5],yypvt[-3],yypvt[-1]); } break; +#line 257 "a2p.y" +{ yyval = oper2(OSUB,yyvsp[-3],yyvsp[-1]); } +break; case 78: -# line 243 "a2p.y" -{ yyval = oper3(OSUB,oper1(OREGEX,yypvt[-5]),yypvt[-3],yypvt[-1]); } break; +#line 259 "a2p.y" +{ yyval = oper2(OSUB,oper1(OREGEX,yyvsp[-3]),yyvsp[-1]); } +break; case 79: -# line 245 "a2p.y" -{ yyval = oper3(OGSUB,yypvt[-5],yypvt[-3],yypvt[-1]); } break; +#line 261 "a2p.y" +{ yyval = oper2(OGSUB,yyvsp[-3],yyvsp[-1]); } +break; case 80: -# line 247 "a2p.y" -{ yyval = oper3(OGSUB,oper1(OREGEX,yypvt[-5]),yypvt[-3],yypvt[-1]); } break; +#line 263 "a2p.y" +{ yyval = oper2(OGSUB,oper1(OREGEX,yyvsp[-3]),yyvsp[-1]); } +break; case 81: -# line 251 "a2p.y" -{ yyval = oper1(OVAR,yypvt[-0]); } break; +#line 265 "a2p.y" +{ yyval = oper3(OSUB,yyvsp[-5],yyvsp[-3],yyvsp[-1]); } +break; case 82: -# line 253 "a2p.y" -{ yyval = oper2(OVAR,aryrefarg(yypvt[-3]),yypvt[-1]); } break; +#line 267 "a2p.y" +{ yyval = oper3(OSUB,oper1(OREGEX,yyvsp[-5]),yyvsp[-3],yyvsp[-1]); } +break; case 83: -# line 255 "a2p.y" -{ yyval = oper1(OFLD,yypvt[-0]); } break; +#line 269 "a2p.y" +{ yyval = oper3(OGSUB,yyvsp[-5],yyvsp[-3],yyvsp[-1]); } +break; case 84: -# line 257 "a2p.y" -{ yyval = oper1(OVFLD,yypvt[-0]); } break; +#line 271 "a2p.y" +{ yyval = oper3(OGSUB,oper1(OREGEX,yyvsp[-5]),yyvsp[-3],yyvsp[-1]); } +break; +case 85: +#line 275 "a2p.y" +{ yyval = oper1(OVAR,yyvsp[0]); } +break; +case 86: +#line 277 "a2p.y" +{ yyval = oper2(OVAR,aryrefarg(yyvsp[-3]),yyvsp[-1]); } +break; case 87: -# line 264 "a2p.y" -{ yyval = Nullop; } break; +#line 279 "a2p.y" +{ yyval = oper1(OFLD,yyvsp[0]); } +break; case 88: -# line 268 "a2p.y" -{ yyval = oper3(OCOMMA,yypvt[-3],yypvt[-1],yypvt[-0]); } break; +#line 281 "a2p.y" +{ yyval = oper1(OVFLD,oper1(OVAR,yyvsp[0])); } +break; case 89: -# line 270 "a2p.y" -{ yyval = oper3(OCOMMA,yypvt[-3],yypvt[-1],yypvt[-0]); } break; -case 90: -# line 272 "a2p.y" -{ yyval = yypvt[-1]; } break; -case 91: -# line 276 "a2p.y" -{ yyval = oper2(OJUNK,yypvt[-1],yypvt[-0]); } break; +#line 283 "a2p.y" +{ yyval = oper1(OVFLD,yyvsp[0]); } +break; case 92: -# line 278 "a2p.y" -{ yyval = Nullop; } break; +#line 290 "a2p.y" +{ yyval = Nullop; } +break; case 93: -# line 282 "a2p.y" -{ yyval = oper2(OJUNK,oper0(OSEMICOLON),oper0(ONEWLINE)); } break; +#line 294 "a2p.y" +{ yyval = oper3(OCOMMA,yyvsp[-3],yyvsp[-1],yyvsp[0]); } +break; case 94: -# line 284 "a2p.y" -{ yyval = oper2(OJUNK,oper0(OSEMICOLON),oper0(ONEWLINE)); } break; +#line 296 "a2p.y" +{ yyval = oper3(OCOMMA,yyvsp[-3],yyvsp[-1],yyvsp[0]); } +break; case 95: -# line 286 "a2p.y" -{ yyval = oper0(ONEWLINE); } break; +#line 298 "a2p.y" +{ yyval = yyvsp[-1]; } +break; case 96: -# line 288 "a2p.y" -{ yyval = oper1(OCOMMENT,yypvt[-0]); } break; +#line 302 "a2p.y" +{ yyval = oper2(OJUNK,yyvsp[-1],yyvsp[0]); } +break; case 97: -# line 292 "a2p.y" -{ yyval = oper2(OJUNK,yypvt[-1],yypvt[-0]); } break; +#line 304 "a2p.y" +{ yyval = Nullop; } +break; case 98: -# line 294 "a2p.y" -{ yyval = Nullop; } break; +#line 308 "a2p.y" +{ yyval = oper2(OJUNK,oper0(OSEMICOLON),oper0(ONEWLINE)); } +break; case 99: -# line 298 "a2p.y" -{ yyval = oper0(ONEWLINE); } break; +#line 310 "a2p.y" +{ yyval = oper2(OJUNK,oper0(OSEMICOLON),oper0(ONEWLINE)); } +break; case 100: -# line 300 "a2p.y" -{ yyval = oper1(OCOMMENT,yypvt[-0]); } break; +#line 312 "a2p.y" +{ yyval = oper0(ONEWLINE); } +break; case 101: -# line 305 "a2p.y" -{ yyval = oper2(OJUNK,oper0(OSEMICOLON),yypvt[-0]); } break; +#line 314 "a2p.y" +{ yyval = oper1(OCOMMENT,yyvsp[0]); } +break; case 102: -# line 307 "a2p.y" -{ yyval = oper2(OJUNK,oper0(OSNEWLINE),yypvt[-0]); } break; +#line 318 "a2p.y" +{ yyval = oper2(OJUNK,yyvsp[-1],yyvsp[0]); } +break; case 103: -# line 309 "a2p.y" -{ yyval = oper2(OJUNK,oper0(OSNEWLINE),yypvt[-0]); } break; +#line 320 "a2p.y" +{ yyval = Nullop; } +break; case 104: -# line 311 "a2p.y" -{ yyval = oper2(OJUNK,oper1(OSCOMMENT,yypvt[-1]),yypvt[-0]); } break; +#line 324 "a2p.y" +{ yyval = oper0(ONEWLINE); } +break; case 105: -# line 315 "a2p.y" -{ yyval = oper2(OSTATES,yypvt[-1],yypvt[-0]); } break; +#line 326 "a2p.y" +{ yyval = oper1(OCOMMENT,yyvsp[0]); } +break; case 106: -# line 317 "a2p.y" -{ yyval = Nullop; } break; +#line 331 "a2p.y" +{ yyval = oper2(OJUNK,oper0(OSEMICOLON),yyvsp[0]); } +break; case 107: -# line 322 "a2p.y" -{ yyval = oper2(OJUNK,oper2(OSTATE,yypvt[-2],yypvt[-1]),yypvt[-0]); } break; +#line 333 "a2p.y" +{ yyval = oper2(OJUNK,oper0(OSNEWLINE),yyvsp[0]); } +break; case 108: -# line 324 "a2p.y" -{ yyval = oper2(OSTATE,Nullop,oper2(OJUNK,oper0(OSEMICOLON),yypvt[-0])); } break; +#line 335 "a2p.y" +{ yyval = oper2(OJUNK,oper0(OSNEWLINE),yyvsp[0]); } +break; case 109: -# line 326 "a2p.y" -{ yyval = oper2(OSTATE,Nullop,oper2(OJUNK,oper0(OSNEWLINE),yypvt[-0])); } break; +#line 337 "a2p.y" +{ yyval = oper2(OJUNK,oper1(OSCOMMENT,yyvsp[-1]),yyvsp[0]); } +break; +case 110: +#line 341 "a2p.y" +{ yyval = oper2(OSTATES,yyvsp[-1],yyvsp[0]); } +break; +case 111: +#line 343 "a2p.y" +{ yyval = Nullop; } +break; case 112: -# line 332 "a2p.y" -{ yyval = Nullop; } break; +#line 348 "a2p.y" +{ yyval = oper2(OJUNK,oper2(OSTATE,yyvsp[-2],yyvsp[-1]),yyvsp[0]); } +break; +case 113: +#line 350 "a2p.y" +{ yyval = oper2(OSTATE,Nullop,oper2(OJUNK,oper0(OSEMICOLON),yyvsp[0])); } +break; case 114: -# line 338 "a2p.y" -{ yyval = oper3(OPRINT,yypvt[-2],yypvt[-1],yypvt[-0]); - do_opens = TRUE; - saw_ORS = saw_OFS = TRUE; - if (!yypvt[-2]) need_entire = TRUE; - if (ops[yypvt[-0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; } break; -case 115: -# line 344 "a2p.y" -{ yyval = oper1(OPRINT,yypvt[-0]); - if (!yypvt[-0]) need_entire = TRUE; - saw_ORS = saw_OFS = TRUE; - } break; -case 116: -# line 349 "a2p.y" -{ yyval = oper3(OPRINTF,yypvt[-2],yypvt[-1],yypvt[-0]); - do_opens = TRUE; - if (!yypvt[-2]) need_entire = TRUE; - if (ops[yypvt[-0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; } break; +#line 352 "a2p.y" +{ yyval = oper2(OSTATE,Nullop,oper2(OJUNK,oper0(OSNEWLINE),yyvsp[0])); } +break; case 117: -# line 354 "a2p.y" -{ yyval = oper1(OPRINTF,yypvt[-0]); - if (!yypvt[-0]) need_entire = TRUE; - } break; -case 118: -# line 358 "a2p.y" -{ yyval = oper0(OBREAK); } break; +#line 358 "a2p.y" +{ yyval = Nullop; } +break; case 119: -# line 360 "a2p.y" -{ yyval = oper0(ONEXT); } break; +#line 364 "a2p.y" +{ yyval = oper3(OPRINT,yyvsp[-2],yyvsp[-1],yyvsp[0]); + do_opens = TRUE; + saw_ORS = saw_OFS = TRUE; + if (!yyvsp[-2]) need_entire = TRUE; + if (ops[yyvsp[0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; } +break; case 120: -# line 362 "a2p.y" -{ yyval = oper0(OEXIT); } break; +#line 370 "a2p.y" +{ yyval = oper1(OPRINT,yyvsp[0]); + if (!yyvsp[0]) need_entire = TRUE; + saw_ORS = saw_OFS = TRUE; + } +break; case 121: -# line 364 "a2p.y" -{ yyval = oper1(OEXIT,yypvt[-0]); } break; +#line 375 "a2p.y" +{ yyval = oper3(OPRINTF,yyvsp[-2],yyvsp[-1],yyvsp[0]); + do_opens = TRUE; + if (!yyvsp[-2]) need_entire = TRUE; + if (ops[yyvsp[0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; } +break; case 122: -# line 366 "a2p.y" -{ yyval = oper0(OCONTINUE); } break; +#line 380 "a2p.y" +{ yyval = oper1(OPRINTF,yyvsp[0]); + if (!yyvsp[0]) need_entire = TRUE; + } +break; case 123: -# line 368 "a2p.y" -{ yyval = oper0(ORETURN); } break; +#line 384 "a2p.y" +{ yyval = oper0(OBREAK); } +break; case 124: -# line 370 "a2p.y" -{ yyval = oper1(ORETURN,yypvt[-0]); } break; +#line 386 "a2p.y" +{ yyval = oper0(ONEXT); } +break; case 125: -# line 372 "a2p.y" -{ yyval = oper2(ODELETE,aryrefarg(yypvt[-3]),yypvt[-1]); } break; +#line 388 "a2p.y" +{ yyval = oper0(OEXIT); } +break; case 126: -# line 376 "a2p.y" -{ yyval = oper1(OREDIR,string(">",1)); } break; +#line 390 "a2p.y" +{ yyval = oper1(OEXIT,yyvsp[0]); } +break; case 127: -# line 378 "a2p.y" -{ yyval = oper1(OREDIR,string(">>",2)); } break; +#line 392 "a2p.y" +{ yyval = oper0(OCONTINUE); } +break; case 128: -# line 380 "a2p.y" -{ yyval = oper1(OREDIR,string("|",1)); } break; +#line 394 "a2p.y" +{ yyval = oper0(ORETURN); } +break; case 129: -# line 385 "a2p.y" -{ yyval = oper2(OIF,yypvt[-3],bl(yypvt[-0],yypvt[-1])); } break; +#line 396 "a2p.y" +{ yyval = oper1(ORETURN,yyvsp[0]); } +break; case 130: -# line 387 "a2p.y" -{ yyval = oper3(OIF,yypvt[-6],bl(yypvt[-3],yypvt[-4]),bl(yypvt[-0],yypvt[-1])); } break; +#line 398 "a2p.y" +{ yyval = oper2(ODELETE,aryrefarg(yyvsp[-3]),yyvsp[-1]); } +break; case 131: -# line 389 "a2p.y" -{ yyval = oper2(OWHILE,yypvt[-3],bl(yypvt[-0],yypvt[-1])); } break; +#line 402 "a2p.y" +{ yyval = oper1(OREDIR,string(">",1)); } +break; case 132: -# line 391 "a2p.y" -{ yyval = oper2(ODO,bl(yypvt[-4],yypvt[-5]),yypvt[-1]); } break; +#line 404 "a2p.y" +{ yyval = oper1(OREDIR,string(">>",2)); } +break; case 133: -# line 393 "a2p.y" -{ yyval = oper4(OFOR,yypvt[-7],yypvt[-5],yypvt[-3],bl(yypvt[-0],yypvt[-1])); } break; +#line 406 "a2p.y" +{ yyval = oper1(OREDIR,string("|",1)); } +break; case 134: -# line 395 "a2p.y" -{ yyval = oper4(OFOR,yypvt[-6],string("",0),yypvt[-3],bl(yypvt[-0],yypvt[-1])); } break; +#line 411 "a2p.y" +{ yyval = oper2(OIF,yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); } +break; case 135: -# line 397 "a2p.y" -{ yyval = oper2(OFORIN,yypvt[-3],bl(yypvt[-0],yypvt[-1])); } break; +#line 413 "a2p.y" +{ yyval = oper3(OIF,yyvsp[-6],bl(yyvsp[-3],yyvsp[-4]),bl(yyvsp[0],yyvsp[-1])); } +break; case 136: -# line 399 "a2p.y" -{ yyval = oper3(OBLOCK,oper2(OJUNK,yypvt[-3],yypvt[-2]),Nullop,yypvt[-0]); } break; - } - goto yystack; /* reset registers in driver code */ +#line 415 "a2p.y" +{ yyval = oper2(OWHILE,yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); } +break; +case 137: +#line 417 "a2p.y" +{ yyval = oper2(ODO,bl(yyvsp[-4],yyvsp[-5]),yyvsp[-1]); } +break; +case 138: +#line 419 "a2p.y" +{ yyval = oper4(OFOR,yyvsp[-7],yyvsp[-5],yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); } +break; +case 139: +#line 421 "a2p.y" +{ yyval = oper4(OFOR,yyvsp[-6],string("",0),yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); } +break; +case 140: +#line 423 "a2p.y" +{ yyval = oper2(OFORIN,yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); } +break; +case 141: +#line 425 "a2p.y" +{ yyval = oper3(OBLOCK,oper2(OJUNK,yyvsp[-3],yyvsp[-2]),Nullop,yyvsp[0]); } +break; +#line 2878 "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 >= yyss + yystacksize - 1) + { + goto yyoverflow; + } + *++yyssp = yystate; + *++yyvsp = yyval; + goto yyloop; +yyoverflow: + yyerror("yacc stack overflow"); +yyabort: + return (1); +yyaccept: + return (0); }