henesyinit from p9fce6d0435 years agoHistory
1624 lines · 53.2 KB · C
RawDownload
 #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.