⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ytabc.bak

📁 著名Awk语言的编译器
💻 BAK
📖 第 1 页 / 共 4 页
字号:
#line	26	"/n/bopp/v7/bwk/temp/awkgram.y"#include <stdio.h>#include <string.h>#include "awk.h"void checkdup(Node *list, Cell *item);int 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 */char	*curfname = 0;	/* current function name */Node	*arglist = 0;	/* list of args for current function */#line	41	"/n/bopp/v7/bwk/temp/awkgram.y"typedef union  {	Node	*p;	Cell	*cp;	int	i;	char	*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	NEXTFILE	57394#define	ADD	57395#define	MINUS	57396#define	MULT	57397#define	DIVIDE	57398#define	MOD	57399#define	ASSIGN	57400#define	ASGNOP	57401#define	ADDEQ	57402#define	SUBEQ	57403#define	MULTEQ	57404#define	DIVEQ	57405#define	MODEQ	57406#define	POWEQ	57407#define	PRINT	57408#define	PRINTF	57409#define	SPRINTF	57410#define	ELSE	57411#define	INTEST	57412#define	CONDEXPR	57413#define	POSTINCR	57414#define	PREINCR	57415#define	POSTDECR	57416#define	PREDECR	57417#define	VAR	57418#define	IVAR	57419#define	VARNF	57420#define	CALL	57421#define	NUMBER	57422#define	STRING	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	445	"/n/bopp/v7/bwk/temp/awkgram.y"void setfname(Cell *p){	if (isarr(p))		SYNTAX("%s is an array, not a function", p->nval);	else if (isfcn(p))		SYNTAX("you can't define function %s more than once", p->nval);	curfname = p->nval;}int constnode(Node *p){	return isvalue(p) && ((Cell *) (p->narg[0]))->csub == CCON;}char *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) {			SYNTAX("duplicate argument %s", s);			break;		}	}}short	yyexca[] ={-1, 0,	1, 28,	8, 28,	9, 28,	12, 28,	13, 28,	16, 28,	45, 28,	46, 28,	48, 28,	54, 28,	55, 28,	56, 28,	58, 28,	60, 28,	78, 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, 157,	15, 30,	-2, 0,-1, 176,	14, 0,	24, 0,	38, 0,	39, 0,	40, 0,	41, 0,	42, 0,	43, 0,	44, 0,	-2, 63,-1, 177,	14, 0,	24, 0,	38, 0,	39, 0,	40, 0,	41, 0,	42, 0,	43, 0,	44, 0,	-2, 64,-1, 178,	14, 0,	24, 0,	38, 0,	39, 0,	40, 0,	41, 0,	42, 0,	43, 0,	44, 0,	-2, 65,-1, 179,	14, 0,	24, 0,	38, 0,	39, 0,	40, 0,	41, 0,	42, 0,	43, 0,	44, 0,	-2, 66,-1, 180,	14, 0,	24, 0,	38, 0,	39, 0,	40, 0,	41, 0,	42, 0,	43, 0,	44, 0,	-2, 67,-1, 181,	14, 0,	24, 0,	38, 0,	39, 0,	40, 0,	41, 0,	42, 0,	43, 0,	44, 0,	-2, 68,-1, 183,	14, 0,	24, 0,	38, 0,	39, 0,	40, 0,	41, 0,	42, 0,	43, 0,	44, 0,	-2, 70,-1, 289,	24, 0,	44, 0,	-2, 53,-1, 333,	17, 30,	-2, 0,-1, 355,	17, 30,	-2, 0,};#define	YYNPROD	185#define	YYPRIVATE 57344#define	YYLAST	4177short	yyact[] ={  17, 277, 138,  66, 243, 228, 253,  54,  24,  43, 125, 112, 200,  43, 103, 104, 100, 139, 102, 155, 308, 185, 215, 249, 100, 253, 100, 100, 100, 107, 105, 100, 122, 123, 124, 223, 107, 206,  43,  82, 162,  43,  83, 103, 104,  10, 113, 314,   9, 252,  42,  22,  44, 244,  42,  22,  44, 103, 104, 134, 142, 113, 146, 190, 278, 352, 149, 150, 152, 153, 148, 276, 316, 163,  23, 100, 351, 350,  23,  42,  62,  44,  42,  22,  44,  11, 156, 168, 169,  85, 253,  51, 321,  79,  80, 232, 190,  86, 135, 133, 100, 318, 182, 320, 269, 258,  23, 100, 100, 100, 100, 100, 100, 100, 108, 109, 110, 111, 233, 275, 112, 234, 190, 110, 111,  43, 100, 112, 335, 190, 190,  11, 203, 205, 190, 324, 278, 190, 190, 212, 284, 190, 211, 265, 260, 190, 100, 259, 221,   3, 141, 188, 100,  16, 226, 140, 331,   6, 156, 141, 219, 230,   7, 100, 310,   6,  42, 170,  44, 167,   7, 158, 100, 157, 100, 131, 100, 100, 100, 100, 100, 100, 100, 130, 100,  48, 251, 100, 100, 129,  49, 128, 236, 127, 100, 126, 120, 119,  52,  16, 190,  19, 100, 312, 141, 274, 218, 100, 143, 100, 100, 100,   4, 154, 100, 100, 217, 271, 144, 132, 317,  50, 347, 361, 364, 270,   1, 115,  72,  40, 224,   5, 100, 100, 100, 100, 163,  58, 163, 163, 163, 163,  20,  67, 163, 222, 100, 293,  61, 288, 294,  60, 238, 248,  81, 100, 100, 292,  96,   8, 239, 159, 160,   2,   0,   0, 114,   0, 116, 117, 118, 300, 301, 121, 164,   0, 282,   0, 285, 286, 287, 289,   0, 100, 291,   0, 100, 100, 100,   0, 100,   0, 100, 156,   0, 309,   0, 100,   0, 100, 100,   0,   0, 100,   0, 100, 100, 100,   0,   0,   0,   0,   0, 334, 313, 165, 163,  96,   0,   0,   0,   0,   0,   0,   0,   0,   0, 341, 156, 342, 333,   0, 340, 100,   0,   0,   0, 230, 100, 346, 100,   0, 116,   0, 100, 100, 348,   0, 356,  96, 194, 195, 196, 197, 198, 199, 337, 359,   0, 230,   0, 360, 362, 156,   0, 355,   0,   0, 207,   0,   0,   0, 238,   0,   0, 238, 238, 238,   0, 238, 239, 238,   0, 239, 239, 239,   0, 239,  96, 239,   0,   0,  21,   0,  96,   0,   0,   0, 338,   0,   0,   0,   0,   0, 257, 242,   0,   0,  55,   0,   0,   0,   0,   0,  96,   0,  96,   0,  96,  96,  96,  96,  96,  96,  96,   0,  96, 238,   0,  96,  96,   0,   0,   0,   0, 239, 256, 164,   0, 164, 164, 164, 164,   0,  96, 164,   0,   0,   0, 261,   0,  96,  96,  96,   0,   0,  96,  96,   0,   0,   0,   0,   0, 137,   0,   0, 166,   0,   0,   0, 147,   0,   0,   0,  96, 279, 280, 281, 165,   0, 165, 165, 165, 165,   0,   0, 165, 184,  96,   0,   0,   0,   0,   0,   0,   0,   0,  96,  96,   0,   0,   0,   0,   0,   0,   0,   0,   0,  74,   0, 189, 191,   0,  15,   0,   0,   0, 164,   0,   0,   0,   0,   0,   0,   0, 242,   0, 106, 242, 242, 242,   0, 242,   0, 242,   0,   0,   0,   0,  96,   0,  96,  96, 137,   0,  96,   0,  96,  96,  96, 229,   0,   0, 220,   0,   0,   0, 137, 165,  15,   0,  15,   0, 227,   0, 235,   0,   0, 145,   0,   0,   0,   0,   0, 151,  96,   0, 137, 137,   0, 242,   0,  96,   0,   0,   0,  96,  96,   0,   0,   0,   0,   0, 171, 173, 175, 176, 177, 178, 179, 180, 181, 183,   0,   0,   0,   0,   0,   0,   0, 186, 187,   0, 262, 263, 264,   0, 266, 267, 268,   0,   0, 201,   0,   0,   0,   0,   0, 201, 201,   0, 273,   0,   0, 290, 208, 209, 210, 201, 213, 214, 189,   0,   0,   0, 297,   0,   0,   0, 101,   0,   0,   0, 295,   0,   0,   0, 303,   0,   0, 240,   0,   0,   0,   0,   0,   0, 231,   0, 311, 106,  98,  97,   0,   0,   0, 245,   0,   0, 137, 241,  43,  28,   0,  30,   0,   0,   0,   0,   0,   0,  46,  47,   0,  34,   0,  35,   0, 254,   0, 255,   0,   0,   0,   0,   0,   0, 336, 323, 326, 328, 329,   0,   0,  38,   0,   0,   0, 189,   0,   0,   0,  42,  22,  44,  29,  36,  39,   0, 237, 315,  33,   0,  37,  41,   0,   0,  27,  26,   0,   0,  99,   0,   0,  31,  32,  23,   0,   0,   0,   0,   0,   0, 201,   0,   0, 357, 137,   0, 296,   0,   0,   0,   0,   0,   0, 298,   0,   0,   0, 363, 299, 302, 365,   0, 304, 305, 306,   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, 358,   0,   0,   0, 332,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 339,   0,   0,   0,   0,   0, 343,   0, 344,  43,  28,  56,  30,  57,  73,  69,  59,  70,   0,  46,  47,  71,  34,   0,  35,  63,  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,  22,  44,  29,  36,  39,   0,   0,   0,  33,  65,  37,  41,  76,   0,  27,  26,   0,   0,  25,   0,   0,  31,  32,  23,   0,   0,   0,  43,  28,  56,  30,  57,  73,  69,  59,  70,   0,  46,  47,  71,  34,   0,  35,  63,  64,   0,   0,   0,   0,   0,   0,  75,   0,   0,   0,   0,   0,   0,  77,  78,  38,  16,  18,   0,  68,  45,   0, 307,  42,  22,  44,  29,  36,  39,   0,   0,   0,  33,  65,  37,  41,  76,   0,  27,  26,   0,   0,  25,   0,   0,  31,  32,  23,   0,  43,  28,  56,  30,  57,  73,  69,  59,  70,   0,  46,  47,  71,  34,   0,  35,  63,  64,   0,   0,   0,   0,   0,   0,   0,   0,  75,   0,   0,   0,   0,  77,  78,  38, 272,   0,  16,  18,   0,  68,  45,  42,  22,  44,  29,  36,  39,   0,   0,   0,  33,  65,  37,  41,  76,   0,  27,  26,   0,   0,  25,   0,   0,  31,  32,  23,   0,   0,   0,  43,  28,  56,  30,  57,  73,  69,  59,  70,   0,  46,  47,  71,  34,   0,  35,  63,  64,   0,   0,   0,   0,   0,   0,

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -