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

📄 awk.def

📁 unix v7是最后一个广泛发布的研究型UNIX版本
💻 DEF
字号:
#define	xfree(a)	{ if(a!=NULL) yfree(a); a=NULL;}#define yfree free#ifdef	DEBUG#	define	dprintf	if(dbg)printf#else#	define	dprintf(x1, x2, x3, x4)#endiftypedef	double	awkfloat;extern char	**FS;extern char	**RS;extern char	**ORS;extern char	**OFS;extern char	**OFMT;extern awkfloat *NR;extern awkfloat *NF;extern char	**FILENAME;extern char	record[];extern int	dbg;extern int	lineno;extern int	errorflag;extern int	donefld;	/* 1 if record broken into fields */extern int	donerec;	/* 1 if record is valid (no fld has changed */typedef struct val {	/* general value during processing */	char	*nval;	/* name, for variables only */	char	*sval;	/* string value */	awkfloat	fval;	/* value as number */	unsigned	tval;	/* type info */	struct val	*nextval;	/* ptr to next if chained */} cell;extern cell *symtab[];cell	*setsymtab(), *lookup(), **makesymtab();extern cell	*recloc;	/* location of input record */extern cell	*nrloc;		/* NR */extern cell	*nfloc;		/* NF */#define	STR	01	/* string value is valid */#define	NUM	02	/* number value is valid */#define FLD	04	/* FLD means don't free string space */#define	CON	010	/* this is a constant */#define	ARR	020	/* this is an array */awkfloat setfval(), getfval();char	*setsval(), *getsval();char	*tostring(), *tokname(), *malloc();double	log(), sqrt(), exp(), atof();/* function types */#define	FLENGTH	1#define	FSQRT	2#define	FEXP	3#define	FLOG	4#define	FINT	5typedef struct {	char otype;	char osub;	cell *optr;} obj;#define BOTCH	1struct nd {	char ntype;	char subtype;	struct nd *nnext;	int nobj;	struct nd *narg[BOTCH];	/* C won't take a zero length array */};typedef struct nd node;extern node	*winner;extern node	*nullstat;/* otypes */#define OCELL	0#define OEXPR	1#define OBOOL	2#define OJUMP	3/* cell subtypes */#define CTEMP	4#define CNAME	3 #define CVAR	2#define CFLD	1#define CCON	0/* bool subtypes */#define BTRUE	1#define BFALSE	2/* jump subtypes */#define JEXIT	1#define JNEXT	2#define	JBREAK	3#define	JCONT	4/* node types */#define NVALUE	1#define NSTAT	2#define NEXPR	3#define NPA2	4extern obj	(*proctab[])();extern obj	true, false;extern int	pairstack[], paircnt;#define cantexec(n)	(n->ntype == NVALUE)#define notlegal(n)	(n <= FIRSTTOKEN || n >= LASTTOKEN || proctab[n-FIRSTTOKEN]== nullproc)#define isexpr(n)	(n->ntype == NEXPR)#define isjump(n)	(n.otype == OJUMP)#define isexit(n)	(n.otype == OJUMP && n.osub == JEXIT)#define	isbreak(n)	(n.otype == OJUMP && n.osub == JBREAK)#define	iscont(n)	(n.otype == OJUMP && n.osub == JCONT)#define	isnext(n)	(n.otype == OJUMP && n.osub == JNEXT)#define isstr(n)	(n.optr->tval & STR)#define istrue(n)	(n.otype == OBOOL && n.osub == BTRUE)#define istemp(n)	(n.otype == OCELL && n.osub == CTEMP)#define isfld(n)	(!donefld && n.osub==CFLD && n.otype==OCELL && n.optr->nval==0)#define isrec(n)	(donefld && n.osub==CFLD && n.otype==OCELL && n.optr->nval!=0)obj	nullproc();obj	relop();#define MAXSYM	16#define	HAT	0177	/* matches ^ in regular expr */			/* watch out for mach dep */

⌨️ 快捷键说明

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