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

📄 asscan.h

📁 <B>Digital的Unix操作系统VAX 4.2源码</B>
💻 H
字号:
/* *	Copyright (c) 1982 Regents of the University of California *	@(#)asscan.h 4.9 6/30/83 *//* *	The character scanner is called to fill up one token buffer * *	However, once the tokens are filled up by the *	character scanner, they are used in both the first and the second *	pass.  Holes created by .stab removal are replaced *	with 'skip' tokens that direct the second pass to ignore the *	following tokens. */#define TOKBUFLG		4096#define MAXVAX			32		#define SAFETY			16#define AVAILTOKS		TOKBUFLG -\		sizeof(int) -\		sizeof (struct tokbufdesc *) -\		MAXVAX - SAFETYstruct tokbufdesc{	int		tok_count;		/*absolute byte length*/	struct		tokbufdesc *tok_next;	char		toks[AVAILTOKS];	char		bufovf[MAXVAX + SAFETY];};/* *	Definitions for handling tokens in the intermediate file *	buffers. * *	We want to have the compiler produce the efficient auto increment *	instruction for stepping through the buffer of tokens.  We must *	fool the type checker into thinking that a pointer can point *	to various size things. */typedef int inttoktype;typedef char bytetoktype;typedef char *ptrall;			/*all uses will be type cast*/typedef u_short lgtype;			/*for storing length of strings or skiping*//* *	defintions for putting various typed values *	into the intermediate buffers *	ptr will ALWAYS be of type ptrall */#define	pchar(ptr,val)		*ptr++  = val#define	puchar(ptr,val)		*ptr++  = val#define	pshort(ptr,val)		*(short *)ptr=val,	ptr += sizeof(short)#define	plgtype(ptr,val)	*(lgtype *)ptr=val,	ptr += sizeof(lgtype)#define	pushort(ptr,val)	*(u_short *)ptr=val,	ptr += sizeof(short)#define	pint(ptr,val)		*(int *)ptr  = val,	ptr += sizeof(int)#define	puint(ptr,val)		*(u_int int *)ptr=val,	ptr += sizeof(int)#define	plong(ptr,val)		*(long *)ptr  = val,	ptr += sizeof(long)#define	pulong(ptr,val)		*(u_int long *)ptr=val,	ptr += sizeof(long)#define	pnumber(ptr,val)	*(Bignum*)ptr=val,	ptr += sizeof(Bignum)#define	popcode(ptr,val)	*(struct Opcode*)ptr=val,	ptr += sizeof(struct Opcode)#define	pptr(ptr,val)		*(int *)ptr  = (val),	ptr += sizeof(ptrall)#define	ptoken(ptr,val)		*ptr++  = val#define	pskiplg(ptr,val)	*(lgtype *)ptr  = val,	ptr += sizeof(short)#define	gchar(val, ptr)		val = *ptr++#define	guchar(val, ptr)	val = *ptr++#define	gshort(val, ptr)	val = *(short *)ptr , ptr += sizeof (short)#define	glgtype(val, ptr)	val = *(lgtype *)ptr , ptr += sizeof (lgtype)#define	gushort(val, ptr)	val = *(u_short *)ptr , ptr += sizeof (short)#define	gint(val, ptr)		val = *(int *)ptr, ptr += sizeof (int)#define	guint(val, ptr)		val = *(u_int *)ptr, ptr += sizeof (int)#define	glong(val, ptr)		val = *(long *)ptr, ptr += sizeof (long)#define	gulong(val, ptr)	val = *(u_int *)ptr, ptr += sizeof (long)#define	gnumber(val, ptr)	val = *(Bignum *)ptr, ptr += sizeof(Bignum)#define	gopcode(val, ptr)	val = *(struct Opcode *)ptr, ptr += sizeof(struct Opcode)#define	gptr(val, ptr)		val = *(int *)ptr, ptr += sizeof (ptrall)#define	gtoken(val, ptr)	val = *ptr++#define	gskiplg(val, ptr)	val = *(lgtype *)ptr, ptr += sizeof (short)extern	ptrall tokptr;	/*the next token to consume, call by copy*/extern	ptrall tokub;	/*current upper bound in the current buffer*/

⌨️ 快捷键说明

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