#line 12 "awk.g.y"#include <stdio.h>#include <string.h>#include "awk.h" void checkdup(Node *list, Cell *item);yywrap(void) { return(1); } Node *beginloc = 0;Node *endloc = 0;int infunc = 0; /* = 1 if in arglist or body of func */int inloop = 0; /* = 1 if in while, for, do */uchar *curfname = 0; /* current function name */Node *arglist = 0; /* list of args for current function */ #line 27 "awk.g.y"typedef union { Node *p; Cell *cp; int i; uchar *s;} YYSTYPE;extern int yyerrflag;#ifndef YYMAXDEPTH#define YYMAXDEPTH 150#endifYYSTYPE yylval;YYSTYPE yyval;#define FIRSTTOKEN 57346#define PROGRAM 57347#define PASTAT 57348#define PASTAT2 57349#define XBEGIN 57350#define XEND 57351#define NL 57352#define ARRAY 57353#define MATCH 57354#define NOTMATCH 57355#define MATCHOP 57356#define FINAL 57357#define DOT 57358#define ALL 57359#define CCL 57360#define NCCL 57361#define CHAR 57362#define OR 57363#define STAR 57364#define QUEST 57365#define PLUS 57366#define AND 57367#define BOR 57368#define APPEND 57369#define EQ 57370#define GE 57371#define GT 57372#define LE 57373#define LT 57374#define NE 57375#define IN 57376#define ARG 57377#define BLTIN 57378#define BREAK 57379#define CLOSE 57380#define CONTINUE 57381#define DELETE 57382#define DO 57383#define EXIT 57384#define FOR 57385#define FUNC 57386#define SUB 57387#define GSUB 57388#define IF 57389#define INDEX 57390#define LSUBSTR 57391#define MATCHFCN 57392#define NEXT 57393#define ADD 57394#define MINUS 57395#define MULT 57396#define DIVIDE 57397#define MOD 57398#define ASSIGN 57399#define ASGNOP 57400#define ADDEQ 57401#define SUBEQ 57402#define MULTEQ 57403#define DIVEQ 57404#define MODEQ 57405#define POWEQ 57406#define PRINT 57407#define PRINTF 57408#define SPRINTF 57409#define ELSE 57410#define INTEST 57411#define CONDEXPR 57412#define POSTINCR 57413#define PREINCR 57414#define POSTDECR 57415#define PREDECR 57416#define VAR 57417#define IVAR 57418#define VARNF 57419#define CALL 57420#define NUMBER 57421#define STRING 57422#define FIELD 57423#define REGEXPR 57424#define GETLINE 57425#define RETURN 57426#define SPLIT 57427#define SUBSTR 57428#define WHILE 57429#define CAT 57430#define NOT 57431#define UMINUS 57432#define POWER 57433#define DECR 57434#define INCR 57435#define INDIRECT 57436#define LASTTOKEN 57437#define YYEOFCODE 1#define YYERRCODE 2 #line 416 "awk.g.y" void setfname(Cell *p){ if (isarr(p)) ERROR "%s is an array, not a function", p->nval SYNTAX; else if (isfunc(p)) ERROR "you can't define function %s more than once", p->nval SYNTAX; curfname = p->nval;} constnode(Node *p){ return isvalue(p) && ((Cell *) (p->narg[0]))->csub == CCON;} uchar *strnode(Node *p){ return ((Cell *)(p->narg[0]))->sval;} Node *notnull(Node *n){ switch (n->nobj) { case LE: case LT: case EQ: case NE: case GT: case GE: case BOR: case AND: case NOT: return n; default: return op2(NE, n, nullnode); }} void checkdup(Node *vl, Cell *cp) /* check if name already in list */{ char *s = cp->nval; for ( ; vl; vl = vl->nnext) { if (strcmp(s, ((Cell *)(vl->narg[0]))->nval) == 0) { ERROR "duplicate argument %s", s SYNTAX; break; } }}short yyexca[] ={-1, 0, 1, 28, 8, 28, 9, 28, 12, 28, 13, 28, 16, 28, 45, 28, 46, 28, 54, 28, 55, 28, 56, 28, 58, 28, 60, 28, 77, 28, 85, 28, 86, 28, 87, 28, 88, 28, 89, 28, 90, 28, 91, 28, 95, 28, 97, 28, 98, 28, 101, 28, 102, 28, 105, 28, 108, 28, 109, 28, 110, 28, -2, 0,-1, 1, 1, -1, -2, 0,-1, 156, 15, 30, -2, 0,-1, 175, 14, 0, 24, 0, 38, 0, 39, 0, 40, 0, 41, 0, 42, 0, 43, 0, 44, 0, -2, 63,-1, 176, 14, 0, 24, 0, 38, 0, 39, 0, 40, 0, 41, 0, 42, 0, 43, 0, 44, 0, -2, 64,-1, 177, 14, 0, 24, 0, 38, 0, 39, 0, 40, 0, 41, 0, 42, 0, 43, 0, 44, 0, -2, 65,-1, 178, 14, 0, 24, 0, 38, 0, 39, 0, 40, 0, 41, 0, 42, 0, 43, 0, 44, 0, -2, 66,-1, 179, 14, 0, 24, 0, 38, 0, 39, 0, 40, 0, 41, 0, 42, 0, 43, 0, 44, 0, -2, 67,-1, 180, 14, 0, 24, 0, 38, 0, 39, 0, 40, 0, 41, 0, 42, 0, 43, 0, 44, 0, -2, 68,-1, 182, 14, 0, 24, 0, 38, 0, 39, 0, 40, 0, 41, 0, 42, 0, 43, 0, 44, 0, -2, 70,-1, 287, 24, 0, 44, 0, -2, 53,-1, 331, 17, 30, -2, 0,-1, 353, 17, 30, -2, 0,};#define YYNPROD 184#define YYPRIVATE 57344#define YYLAST 4324short yyact[] ={ 17, 137, 66, 275, 25, 227, 63, 54, 138, 154, 242, 11, 102, 112, 252, 198, 100, 51, 306, 79, 80, 103, 104, 184, 213, 100, 252, 100, 100, 100, 110, 252, 121, 122, 123, 82, 43, 105, 83, 110, 43, 248, 222, 10, 113, 312, 9, 251, 204, 43, 103, 104, 103, 104, 189, 189, 243, 11, 113, 133, 142, 43, 146, 314, 256, 276, 149, 151, 152, 274, 350, 148, 349, 162, 348, 100, 42, 155, 44, 85, 42, 23, 44, 319, 318, 267, 22, 167, 168, 42, 23, 44, 273, 189, 329, 22, 134, 132, 181, 333, 100, 42, 169, 44, 166, 24, 316, 100, 100, 100, 100, 100, 100, 100, 24, 107, 108, 109, 111, 140, 124, 112, 189, 43, 139, 100, 109, 111, 322, 157, 112, 231, 86, 189, 210, 201, 203, 156, 130, 276, 140, 215, 100, 218, 209, 308, 100, 220, 155, 217, 189, 100, 225, 129, 232, 189, 282, 233, 161, 229, 189, 263, 100, 42, 23, 44, 258, 128, 189, 22, 16, 100, 127, 100, 257, 100, 100, 100, 100, 100, 100, 100, 126, 100, 189, 250, 100, 100, 24, 3, 187, 6, 125, 120, 21, 119, 7, 6, 235, 20, 100, 48, 7, 52, 16, 100, 49, 100, 100, 100, 189, 310, 100, 100, 140, 96, 272, 216, 143, 153, 4, 269, 144, 268, 114, 131, 116, 117, 118, 50, 223, 100, 100, 100, 100, 162, 315, 162, 162, 162, 162, 237, 345, 162, 286, 100, 359, 362, 291, 221, 59, 292, 1, 72, 100, 100, 40, 5, 67, 290, 55, 62, 61, 247, 81, 298, 299, 8, 165, 158, 159, 2, 164, 0, 96, 0, 0, 0, 0, 0, 0, 100, 155, 307, 100, 100, 100, 0, 100, 183, 100, 0, 0, 0, 238, 100, 0, 100, 100, 116, 0, 100, 0, 100, 100, 100, 96, 192, 193, 194, 195, 196, 197, 332, 162, 136, 0, 155, 331, 311, 0, 0, 336, 147, 205, 339, 338, 340, 0, 0, 0, 100, 0, 0, 229, 0, 100, 344, 100, 0, 0, 96, 100, 100, 346, 96, 0, 0, 354, 0, 96, 228, 155, 353, 357, 255, 229, 0, 0, 358, 237, 241, 360, 237, 237, 237, 0, 237, 0, 237, 96, 0, 96, 0, 96, 96, 96, 96, 96, 96, 96, 0, 96, 0, 0, 96, 96, 0, 0, 0, 0, 0, 19, 280, 136, 283, 284, 285, 287, 96, 0, 289, 0, 0, 259, 219, 96, 96, 96, 136, 0, 96, 96, 238, 226, 237, 238, 238, 238, 115, 238, 0, 238, 0, 0, 0, 0, 0, 136, 136, 96, 277, 278, 279, 164, 288, 164, 164, 164, 164, 0, 0, 164, 0, 96, 0, 295, 0, 0, 0, 0, 0, 0, 96, 96, 0, 0, 301, 74, 0, 0, 188, 190, 15, 0, 163, 0, 0, 238, 309, 0, 0, 335, 0, 0, 0, 0, 106, 0, 0, 241, 0, 271, 241, 241, 241, 0, 241, 0, 241, 0, 0, 0, 0, 96, 0, 96, 96, 0, 0, 96, 0, 96, 96, 96, 0, 0, 334, 0, 15, 0, 15, 0, 164, 0, 234, 141, 0, 0, 145, 0, 0, 0, 0, 150, 0, 0, 0, 0, 136, 96, 0, 0, 0, 0, 241, 0, 96, 0, 0, 0, 96, 96, 170, 172, 174, 175, 176, 177, 178, 179, 180, 182, 0, 0, 0, 0, 0, 0, 0, 185, 186, 260, 261, 262, 0, 264, 265, 266, 0, 0, 0, 199, 0, 0, 0, 0, 0, 199, 199, 0, 0, 0, 0, 206, 207, 208, 199, 211, 212, 75, 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 293, 45, 0, 355, 136, 0, 0, 0, 0, 0, 0, 0, 0, 230, 0, 0, 106, 361, 0, 0, 363, 0, 244, 0, 163, 0, 163, 163, 163, 163, 43, 29, 163, 0, 0, 73, 0, 0, 0, 0, 46, 47, 0, 34, 253, 35, 254, 0, 0, 0, 0, 0, 0, 0, 321, 324, 326, 327, 0, 0, 77, 78, 38, 0, 188, 0, 0, 0, 0, 0, 42, 23, 44, 30, 36, 39, 22, 0, 0, 0, 33, 0, 37, 41, 0, 0, 28, 27, 0, 0, 26, 0, 0, 31, 32, 24, 0, 0, 0, 199, 0, 0, 0, 163, 0, 294, 0, 0, 0, 0, 0, 296, 0, 0, 0, 0, 297, 300, 0, 0, 302, 303, 304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 106, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 18, 0, 68, 45, 0, 356, 0, 0, 0, 330, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 337, 0, 0, 0, 0, 0, 341, 0, 342, 43, 29, 56, 57, 58, 73, 69, 60, 70, 0, 46, 47, 71, 34, 0, 35, 64, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 77, 78, 38, 53, 0, 16, 18, 0, 68, 45, 42, 23, 44, 30, 36, 39, 22, 0, 0, 0, 33, 65, 37, 41, 76, 0, 28, 27, 0, 0, 26, 0, 0, 31, 32, 24, 0, 0, 43, 29, 56, 57, 58, 73, 69, 60, 70, 0, 46, 47, 71, 34, 0, 35, 64, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 77, 78, 38, 16, 18, 0, 68, 45, 0, 305, 42, 23, 44, 30, 36, 39, 22, 0, 0, 0, 33, 65, 37, 41, 76, 0, 28, 27, 0, 0, 26, 0, 0, 31, 32, 24, 43, 29, 56, 57, 58, 73, 69, 60, 70, 0, 46, 47, 71, 34, 0, 35, 64, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 77, 78, 38, 270, 0, 16, 18, 0, 68, 45, 42, 23, 44, 30, 36, 39, 22, 0, 0, 0, 33, 65, 37, 41, 76, 0, 28, 27, 0, 0, 26, 0, 0, 31, 32, 24, 0, 0, 43, 29, 56, 57, 58, 73, 69, 60, 70, 0, 46, 47, 71, 34, 0, 35, 64, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 77, 78, 38, 16, 18, 0, 68, 45, 0, 246, 42, 23, 44, 30, 36, 39, 22, 0, 0, 0, 33, 65, 37, 41, 76, 0, 28, 27, 0, 0, 26, 0, 0, 31, 32, 24, 43, 29, 56, 57, 58, 73, 69, 60, 70, 0, 46, 47, 71, 34, 0, 35, 64, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 77, 78, 38, 16, 18, 0, 68, 45, 0, 245, 42, 23, 44, 30, 36, 39, 22, 0, 0, 0, 33, 65, 37, 41, 76, 0, 28, 27, 0, 0, 26, 0, 0, 31, 32, 24, 43, 29, 56, 57, 58, 73, 69, 60, 70, 0, 46, 47, 71, 34, 0, 35, 64, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 77, 78, 38, 16, 18, 0, 68, 45, 0, 224, 42, 23, 44, 30, 36, 39, 22, 0, 0, 0, 33, 65, 37, 41, 76, 0, 28, 27, 0, 0, 26, 0, 0, 31, 32, 24, 43, 29, 56, 57, 58, 73, 69, 60, 70, 0, 46, 47, 71, 34, 0, 35, 64, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 77, 78, 38, 16, 18, 0, 68, 45, 0, 214, 42, 23, 44, 30, 36, 39, 22, 0, 0, 0, 33, 65, 37, 41, 76, 0, 28, 27, 0, 0, 26, 0, 0, 31, 32, 24, 43, 29, 56, 57, 58, 73, 69, 60, 70, 0, 46, 47, 71, 34, 0, 35, 64, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 77, 78, 38, 16, 18, 0, 68, 45, 0, 135, 42, 23, 44, 30, 36, 39, 22, 0, 0, 0, 33, 65, 37, 41, 76, 0, 28, 27, 0, 0, 26, 0, 0, 31, 32, 24, 43, 29, 56, 57, 58, 73, 69, 60, 70, 0, 46, 47, 71, 34, 0, 35, 64, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 77, 78, 38, 16, 18, 0, 68, 45, 0, 0, 42, 23, 44, 30, 36, 39, 22, 0, 0, 0, 33, 65, 37, 41, 76, 0, 28, 27, 0, 0, 26, 0, 0, 31, 32, 24, 43, 29, 56, 57, 58, 73, 69, 60, 70, 0, 46, 47, 71, 34, 0, 35, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 78, 38, 0, 0, 0, 0, 0, 0, 0, 42, 23, 44, 30, 36, 39, 22, 0, 0, 0, 33, 65, 37, 41, 76, 0, 28, 27, 0, 0, 26, 0, 0, 31, 32, 24, 189, 0, 101, 95, 0, 0, 328, 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 98, 97, 0, 87, 88, 89, 90, 91, 92, 94, 43, 29, 0, 0, 0, 0, 0, 0, 0, 0, 46, 47, 0, 34, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 42, 23, 44, 30, 36, 39, 22, 0, 84, 0, 33, 0, 37, 41, 0, 0, 28, 27, 0, 0, 99, 0, 0, 31, 32, 24, 189, 0, 101, 95, 0, 0, 325, 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 98, 97, 0, 87, 88, 89, 90, 91, 92, 94, 43, 29, 0, 0, 0, 0, 0, 0, 0, 0, 46, 47, 0, 34, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 42, 23, 44, 30, 36, 39, 22, 0, 84, 0, 33, 0, 37, 41, 0, 0, 28, 27, 0, 0, 99, 0, 0, 31, 32, 24, 189, 0, 101, 95, 0, 0, 323, 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 98, 97, 0, 87, 88, 89, 90, 91, 92, 94, 43, 29, 0, 0, 0, 0, 0, 0, 0, 0, 46, 47, 0, 34, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 42, 23, 44, 30, 36, 39, 22, 0, 84, 0, 33, 0, 37, 41, 0, 0, 28, 27, 0, 0, 99, 0, 0, 31, 32, 24, 140, 0, 0, 101, 95, 139, 0, 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 98, 97, 0, 87, 88, 89, 90, 91, 92, 94, 43, 29, 0, 0, 0, 0, 0, 0, 0, 0, 46, 47, 0, 34, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 42, 23, 44, 30, 36, 39, 22, 0, 84, 0, 33, 0, 37, 41, 0, 0, 28, 27, 0, 0, 99, 0, 0, 31, 32, 24, 189, 0, 101, 95, 0, 0, 191, 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 98, 97, 0, 87, 88, 89, 90, 91, 92, 94, 43, 29, 0, 0, 0, 0, 0, 0, 0, 0, 46, 47, 0, 34, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 42, 23, 44, 30, 36, 39, 22, 0, 84, 0, 33, 0, 37, 41, 0, 0, 28, 27, 101, 95, 99, 0, 352, 31, 32, 24, 0, 0, 0, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 98, 97, 0, 87, 88, 89, 90, 91, 92, 94, 43, 29, 0, 0, 0, 0, 0, 0, 0, 0, 46, 47, 0, 34, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,Lines 1–500 of 1624. Load more
#line 12 "awk.g.y" #include <stdio.h> #include <string.h> #include "awk.h" void checkdup(Node *list, Cell *item); yywrap(void) { return(1); } Node *beginloc = 0; Node *endloc = 0; int infunc = 0; /* = 1 if in arglist or body of func */ int inloop = 0; /* = 1 if in while, for, do */ uchar *curfname = 0; /* current function name */ Node *arglist = 0; /* list of args for current function */ #line 27 "awk.g.y" typedef union { Node *p; Cell *cp; int i; uchar *s; } YYSTYPE; extern int yyerrflag; #ifndef YYMAXDEPTH #define YYMAXDEPTH 150 #endif YYSTYPE yylval; YYSTYPE yyval; #define FIRSTTOKEN 57346 #define PROGRAM 57347 #define PASTAT 57348 #define PASTAT2 57349 #define XBEGIN 57350 #define XEND 57351 #define NL 57352 #define ARRAY 57353 #define MATCH 57354 #define NOTMATCH 57355 #define MATCHOP 57356 #define FINAL 57357 #define DOT 57358 #define ALL 57359 #define CCL 57360 #define NCCL 57361 #define CHAR 57362 #define OR 57363 #define STAR 57364 #define QUEST 57365 #define PLUS 57366 #define AND 57367 #define BOR 57368 #define APPEND 57369 #define EQ 57370 #define GE 57371 #define GT 57372 #define LE 57373 #define LT 57374 #define NE 57375 #define IN 57376 #define ARG 57377 #define BLTIN 57378 #define BREAK 57379 #define CLOSE 57380 #define CONTINUE 57381 #define DELETE 57382 #define DO 57383 #define EXIT 57384 #define FOR 57385 #define FUNC 57386 #define SUB 57387 #define GSUB 57388 #define IF 57389 #define INDEX 57390 #define LSUBSTR 57391 #define MATCHFCN 57392 #define NEXT 57393 #define ADD 57394 #define MINUS 57395 #define MULT 57396 #define DIVIDE 57397 #define MOD 57398 #define ASSIGN 57399 #define ASGNOP 57400 #define ADDEQ 57401 #define SUBEQ 57402 #define MULTEQ 57403 #define DIVEQ 57404 #define MODEQ 57405 #define POWEQ 57406 #define PRINT 57407 #define PRINTF 57408 #define SPRINTF 57409 #define ELSE 57410 #define INTEST 57411 #define CONDEXPR 57412 #define POSTINCR 57413 #define PREINCR 57414 #define POSTDECR 57415 #define PREDECR 57416 #define VAR 57417 #define IVAR 57418 #define VARNF 57419 #define CALL 57420 #define NUMBER 57421 #define STRING 57422 #define FIELD 57423 #define REGEXPR 57424 #define GETLINE 57425 #define RETURN 57426 #define SPLIT 57427 #define SUBSTR 57428 #define WHILE 57429 #define CAT 57430 #define NOT 57431 #define UMINUS 57432 #define POWER 57433 #define DECR 57434 #define INCR 57435 #define INDIRECT 57436 #define LASTTOKEN 57437 #define YYEOFCODE 1 #define YYERRCODE 2 #line 416 "awk.g.y" void setfname(Cell *p) { if (isarr(p)) ERROR "%s is an array, not a function", p->nval SYNTAX; else if (isfunc(p)) ERROR "you can't define function %s more than once", p->nval SYNTAX; curfname = p->nval; } constnode(Node *p) { return isvalue(p) && ((Cell *) (p->narg[0]))->csub == CCON; } uchar *strnode(Node *p) { return ((Cell *)(p->narg[0]))->sval; } Node *notnull(Node *n) { switch (n->nobj) { case LE: case LT: case EQ: case NE: case GT: case GE: case BOR: case AND: case NOT: return n; default: return op2(NE, n, nullnode); } } void checkdup(Node *vl, Cell *cp) /* check if name already in list */ { char *s = cp->nval; for ( ; vl; vl = vl->nnext) { if (strcmp(s, ((Cell *)(vl->narg[0]))->nval) == 0) { ERROR "duplicate argument %s", s SYNTAX; break; } } } short yyexca[] = {-1, 0, 1, 28, 8, 28, 9, 28, 12, 28, 13, 28, 16, 28, 45, 28, 46, 28, 54, 28, 55, 28, 56, 28, 58, 28, 60, 28, 77, 28, 85, 28, 86, 28, 87, 28, 88, 28, 89, 28, 90, 28, 91, 28, 95, 28, 97, 28, 98, 28, 101, 28, 102, 28, 105, 28, 108, 28, 109, 28, 110, 28, -2, 0, -1, 1, 1, -1, -2, 0, -1, 156, 15, 30, -2, 0, -1, 175, 14, 0, 24, 0, 38, 0, 39, 0, 40, 0, 41, 0, 42, 0, 43, 0, 44, 0, -2, 63, -1, 176, 14, 0, 24, 0, 38, 0, 39, 0, 40, 0, 41, 0, 42, 0, 43, 0, 44, 0, -2, 64, -1, 177, 14, 0, 24, 0, 38, 0, 39, 0, 40, 0, 41, 0, 42, 0, 43, 0, 44, 0, -2, 65, -1, 178, 14, 0, 24, 0, 38, 0, 39, 0, 40, 0, 41, 0, 42, 0, 43, 0, 44, 0, -2, 66, -1, 179, 14, 0, 24, 0, 38, 0, 39, 0, 40, 0, 41, 0, 42, 0, 43, 0, 44, 0, -2, 67, -1, 180, 14, 0, 24, 0, 38, 0, 39, 0, 40, 0, 41, 0, 42, 0, 43, 0, 44, 0, -2, 68, -1, 182, 14, 0, 24, 0, 38, 0, 39, 0, 40, 0, 41, 0, 42, 0, 43, 0, 44, 0, -2, 70, -1, 287, 24, 0, 44, 0, -2, 53, -1, 331, 17, 30, -2, 0, -1, 353, 17, 30, -2, 0, }; #define YYNPROD 184 #define YYPRIVATE 57344 #define YYLAST 4324 short yyact[] = { 17, 137, 66, 275, 25, 227, 63, 54, 138, 154, 242, 11, 102, 112, 252, 198, 100, 51, 306, 79, 80, 103, 104, 184, 213, 100, 252, 100, 100, 100, 110, 252, 121, 122, 123, 82, 43, 105, 83, 110, 43, 248, 222, 10, 113, 312, 9, 251, 204, 43, 103, 104, 103, 104, 189, 189, 243, 11, 113, 133, 142, 43, 146, 314, 256, 276, 149, 151, 152, 274, 350, 148, 349, 162, 348, 100, 42, 155, 44, 85, 42, 23, 44, 319, 318, 267, 22, 167, 168, 42, 23, 44, 273, 189, 329, 22, 134, 132, 181, 333, 100, 42, 169, 44, 166, 24, 316, 100, 100, 100, 100, 100, 100, 100, 24, 107, 108, 109, 111, 140, 124, 112, 189, 43, 139, 100, 109, 111, 322, 157, 112, 231, 86, 189, 210, 201, 203, 156, 130, 276, 140, 215, 100, 218, 209, 308, 100, 220, 155, 217, 189, 100, 225, 129, 232, 189, 282, 233, 161, 229, 189, 263, 100, 42, 23, 44, 258, 128, 189, 22, 16, 100, 127, 100, 257, 100, 100, 100, 100, 100, 100, 100, 126, 100, 189, 250, 100, 100, 24, 3, 187, 6, 125, 120, 21, 119, 7, 6, 235, 20, 100, 48, 7, 52, 16, 100, 49, 100, 100, 100, 189, 310, 100, 100, 140, 96, 272, 216, 143, 153, 4, 269, 144, 268, 114, 131, 116, 117, 118, 50, 223, 100, 100, 100, 100, 162, 315, 162, 162, 162, 162, 237, 345, 162, 286, 100, 359, 362, 291, 221, 59, 292, 1, 72, 100, 100, 40, 5, 67, 290, 55, 62, 61, 247, 81, 298, 299, 8, 165, 158, 159, 2, 164, 0, 96, 0, 0, 0, 0, 0, 0, 100, 155, 307, 100, 100, 100, 0, 100, 183, 100, 0, 0, 0, 238, 100, 0, 100, 100, 116, 0, 100, 0, 100, 100, 100, 96, 192, 193, 194, 195, 196, 197, 332, 162, 136, 0, 155, 331, 311, 0, 0, 336, 147, 205, 339, 338, 340, 0, 0, 0, 100, 0, 0, 229, 0, 100, 344, 100, 0, 0, 96, 100, 100, 346, 96, 0, 0, 354, 0, 96, 228, 155, 353, 357, 255, 229, 0, 0, 358, 237, 241, 360, 237, 237, 237, 0, 237, 0, 237, 96, 0, 96, 0, 96, 96, 96, 96, 96, 96, 96, 0, 96, 0, 0, 96, 96, 0, 0, 0, 0, 0, 19, 280, 136, 283, 284, 285, 287, 96, 0, 289, 0, 0, 259, 219, 96, 96, 96, 136, 0, 96, 96, 238, 226, 237, 238, 238, 238, 115, 238, 0, 238, 0, 0, 0, 0, 0, 136, 136, 96, 277, 278, 279, 164, 288, 164, 164, 164, 164, 0, 0, 164, 0, 96, 0, 295, 0, 0, 0, 0, 0, 0, 96, 96, 0, 0, 301, 74, 0, 0, 188, 190, 15, 0, 163, 0, 0, 238, 309, 0, 0, 335, 0, 0, 0, 0, 106, 0, 0, 241, 0, 271, 241, 241, 241, 0, 241, 0, 241, 0, 0, 0, 0, 96, 0, 96, 96, 0, 0, 96, 0, 96, 96, 96, 0, 0, 334, 0, 15, 0, 15, 0, 164, 0, 234, 141, 0, 0, 145, 0, 0, 0, 0, 150, 0, 0, 0, 0, 136, 96, 0, 0, 0, 0, 241, 0, 96, 0, 0, 0, 96, 96, 170, 172, 174, 175, 176, 177, 178, 179, 180, 182, 0, 0, 0, 0, 0, 0, 0, 185, 186, 260, 261, 262, 0, 264, 265, 266, 0, 0, 0, 199, 0, 0, 0, 0, 0, 199, 199, 0, 0, 0, 0, 206, 207, 208, 199, 211, 212, 75, 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 293, 45, 0, 355, 136, 0, 0, 0, 0, 0, 0, 0, 0, 230, 0, 0, 106, 361, 0, 0, 363, 0, 244, 0, 163, 0, 163, 163, 163, 163, 43, 29, 163, 0, 0, 73, 0, 0, 0, 0, 46, 47, 0, 34, 253, 35, 254, 0, 0, 0, 0, 0, 0, 0, 321, 324, 326, 327, 0, 0, 77, 78, 38, 0, 188, 0, 0, 0, 0, 0, 42, 23, 44, 30, 36, 39, 22, 0, 0, 0, 33, 0, 37, 41, 0, 0, 28, 27, 0, 0, 26, 0, 0, 31, 32, 24, 0, 0, 0, 199, 0, 0, 0, 163, 0, 294, 0, 0, 0, 0, 0, 296, 0, 0, 0, 0, 297, 300, 0, 0, 302, 303, 304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 106, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 18, 0, 68, 45, 0, 356, 0, 0, 0, 330, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 337, 0, 0, 0, 0, 0, 341, 0, 342, 43, 29, 56, 57, 58, 73, 69, 60, 70, 0, 46, 47, 71, 34, 0, 35, 64, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 77, 78, 38, 53, 0, 16, 18, 0, 68, 45, 42, 23, 44, 30, 36, 39, 22, 0, 0, 0, 33, 65, 37, 41, 76, 0, 28, 27, 0, 0, 26, 0, 0, 31, 32, 24, 0, 0, 43, 29, 56, 57, 58, 73, 69, 60, 70, 0, 46, 47, 71, 34, 0, 35, 64, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 77, 78, 38, 16, 18, 0, 68, 45, 0, 305, 42, 23, 44, 30, 36, 39, 22, 0, 0, 0, 33, 65, 37, 41, 76, 0, 28, 27, 0, 0, 26, 0, 0, 31, 32, 24, 43, 29, 56, 57, 58, 73, 69, 60, 70, 0, 46, 47, 71, 34, 0, 35, 64, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 77, 78, 38, 270, 0, 16, 18, 0, 68, 45, 42, 23, 44, 30, 36, 39, 22, 0, 0, 0, 33, 65, 37, 41, 76, 0, 28, 27, 0, 0, 26, 0, 0, 31, 32, 24, 0, 0, 43, 29, 56, 57, 58, 73, 69, 60, 70, 0, 46, 47, 71, 34, 0, 35, 64, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 77, 78, 38, 16, 18, 0, 68, 45, 0, 246, 42, 23, 44, 30, 36, 39, 22, 0, 0, 0, 33, 65, 37, 41, 76, 0, 28, 27, 0, 0, 26, 0, 0, 31, 32, 24, 43, 29, 56, 57, 58, 73, 69, 60, 70, 0, 46, 47, 71, 34, 0, 35, 64, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 77, 78, 38, 16, 18, 0, 68, 45, 0, 245, 42, 23, 44, 30, 36, 39, 22, 0, 0, 0, 33, 65, 37, 41, 76, 0, 28, 27, 0, 0, 26, 0, 0, 31, 32, 24, 43, 29, 56, 57, 58, 73, 69, 60, 70, 0, 46, 47, 71, 34, 0, 35, 64, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 77, 78, 38, 16, 18, 0, 68, 45, 0, 224, 42, 23, 44, 30, 36, 39, 22, 0, 0, 0, 33, 65, 37, 41, 76, 0, 28, 27, 0, 0, 26, 0, 0, 31, 32, 24, 43, 29, 56, 57, 58, 73, 69, 60, 70, 0, 46, 47, 71, 34, 0, 35, 64, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 77, 78, 38, 16, 18, 0, 68, 45, 0, 214, 42, 23, 44, 30, 36, 39, 22, 0, 0, 0, 33, 65, 37, 41, 76, 0, 28, 27, 0, 0, 26, 0, 0, 31, 32, 24, 43, 29, 56, 57, 58, 73, 69, 60, 70, 0, 46, 47, 71, 34, 0, 35, 64, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 77, 78, 38, 16, 18, 0, 68, 45, 0, 135, 42, 23, 44, 30, 36, 39, 22, 0, 0, 0, 33, 65, 37, 41, 76, 0, 28, 27, 0, 0, 26, 0, 0, 31, 32, 24, 43, 29, 56, 57, 58, 73, 69, 60, 70, 0, 46, 47, 71, 34, 0, 35, 64, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 77, 78, 38, 16, 18, 0, 68, 45, 0, 0, 42, 23, 44, 30, 36, 39, 22, 0, 0, 0, 33, 65, 37, 41, 76, 0, 28, 27, 0, 0, 26, 0, 0, 31, 32, 24, 43, 29, 56, 57, 58, 73, 69, 60, 70, 0, 46, 47, 71, 34, 0, 35, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 78, 38, 0, 0, 0, 0, 0, 0, 0, 42, 23, 44, 30, 36, 39, 22, 0, 0, 0, 33, 65, 37, 41, 76, 0, 28, 27, 0, 0, 26, 0, 0, 31, 32, 24, 189, 0, 101, 95, 0, 0, 328, 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 98, 97, 0, 87, 88, 89, 90, 91, 92, 94, 43, 29, 0, 0, 0, 0, 0, 0, 0, 0, 46, 47, 0, 34, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 42, 23, 44, 30, 36, 39, 22, 0, 84, 0, 33, 0, 37, 41, 0, 0, 28, 27, 0, 0, 99, 0, 0, 31, 32, 24, 189, 0, 101, 95, 0, 0, 325, 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 98, 97, 0, 87, 88, 89, 90, 91, 92, 94, 43, 29, 0, 0, 0, 0, 0, 0, 0, 0, 46, 47, 0, 34, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 42, 23, 44, 30, 36, 39, 22, 0, 84, 0, 33, 0, 37, 41, 0, 0, 28, 27, 0, 0, 99, 0, 0, 31, 32, 24, 189, 0, 101, 95, 0, 0, 323, 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 98, 97, 0, 87, 88, 89, 90, 91, 92, 94, 43, 29, 0, 0, 0, 0, 0, 0, 0, 0, 46, 47, 0, 34, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 42, 23, 44, 30, 36, 39, 22, 0, 84, 0, 33, 0, 37, 41, 0, 0, 28, 27, 0, 0, 99, 0, 0, 31, 32, 24, 140, 0, 0, 101, 95, 139, 0, 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 98, 97, 0, 87, 88, 89, 90, 91, 92, 94, 43, 29, 0, 0, 0, 0, 0, 0, 0, 0, 46, 47, 0, 34, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 42, 23, 44, 30, 36, 39, 22, 0, 84, 0, 33, 0, 37, 41, 0, 0, 28, 27, 0, 0, 99, 0, 0, 31, 32, 24, 189, 0, 101, 95, 0, 0, 191, 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 98, 97, 0, 87, 88, 89, 90, 91, 92, 94, 43, 29, 0, 0, 0, 0, 0, 0, 0, 0, 46, 47, 0, 34, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 42, 23, 44, 30, 36, 39, 22, 0, 84, 0, 33, 0, 37, 41, 0, 0, 28, 27, 101, 95, 99, 0, 352, 31, 32, 24, 0, 0, 0, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 98, 97, 0, 87, 88, 89, 90, 91, 92, 94, 43, 29, 0, 0, 0, 0, 0, 0, 0, 0, 46, 47, 0, 34, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,