manifest.h

来自「<B>Digital的Unix操作系统VAX 4.2源码</B>」· C头文件 代码 · 共 164 行

H
164
字号
/**	@(#)manifest.h	4.1	(ULTRIX)	7/17/90*//************************************************************************ *									* *			Copyright (c) 1986 by				* *		Digital Equipment Corporation, Maynard, MA		* *			All rights reserved.				* *									* *   This software is furnished under a license and may be used and	* *   copied  only  in accordance with the terms of such license and	* *   with the  inclusion  of  the  above  copyright  notice.   This	* *   software  or  any  other copies thereof may not be provided or	* *   otherwise made available to any other person.  No title to and	* *   ownership of the software is hereby transferred.			* *									* *   This software is  derived  from  software  received  from  the	* *   University    of   California,   Berkeley,   and   from   Bell	* *   Laboratories.  Use, duplication, or disclosure is  subject  to	* *   restrictions  under  license  agreements  with  University  of	* *   California and with AT&T.						* *									* *   The information in this software is subject to change  without	* *   notice  and should not be construed as a commitment by Digital	* *   Equipment Corporation.						* *									* *   Digital assumes no responsibility for the use  or  reliability	* *   of its software on equipment which is not supplied by Digital.	* *									* ************************************************************************//**************************************************************************			Modification History**	David Metsky		15-Jan-86** 001	Added from BSD 4.3 version as part of upgrade.**	Based on:	manifest.h	4.1		85/03/19**************************************************************************/#ifndef _MANIFEST_#define	_MANIFEST_#include <stdio.h>#include "pcclocal.h"#include "config.h"#define DSIZE	(MAXOP+1)	/* DSIZE is the size of the dope array */#define NOLAB	(-1)		/* no label with constant *//* * Node types */#define LTYPE	02		/* leaf */#define UTYPE	04		/* unary */#define BITYPE	010		/* binary *//* * Bogus type values */#define TNULL	PTR		/* pointer to UNDEF */#define TVOID	FTN		/* function returning UNDEF (for void) *//* * Type packing constants */#define TMASK	060		/* mask for 1st component of compound type */#define TMASK1	0300		/* mask for 2nd component of compound type */#define TMASK2	0360		/* mask for 3rd component of compound type */#define BTMASK	017		/* basic type mask */#define BTSHIFT	4		/* basic type shift */#define TSHIFT	2		/* shift count to get next type component *//* * Type manipulation macros */#define MODTYPE(x,y)	x = ((x)&(~BTMASK))|(y)	/* set basic type of x to y */#define BTYPE(x)	((x)&BTMASK)		/* basic type of x */#define ISUNSIGNED(x)	((x)<=ULONG&&(x)>=UCHAR)#define UNSIGNABLE(x)	((x)<=LONG&&(x)>=CHAR)#define ENUNSIGN(x)	((x)+(UNSIGNED-INT))#define DEUNSIGN(x)	((x)+(INT-UNSIGNED))#define ISPTR(x)	(((x)&TMASK)==PTR)#define ISFTN(x)	(((x)&TMASK)==FTN)	/* is x a function type */#define ISARY(x)	(((x)&TMASK)==ARY)	/* is x an array type */#define INCREF(x)	((((x)&~BTMASK)<<TSHIFT)|PTR|((x)&BTMASK))#define DECREF(x)	((((x)>>TSHIFT)&~BTMASK)|( (x)&BTMASK))/* advance x to a multiple of y */#define SETOFF(x,y)	if ((x)%(y) != 0) (x) = (((x)/(y) + 1) * (y))/* can y bits be added to x without overflowing z */#define NOFIT(x,y,z)	(((x)%(z) + (y)) > (z))/* * Pack and unpack field descriptors (size and offset) */#define PKFIELD(s,o)	(((o)<<6)| (s))#define UPKFSZ(v)	((v) &077)#define UPKFOFF(v)	((v)>>6)/* * Operator information */#define TYFLG	016#define ASGFLG	01#define LOGFLG	020#define SIMPFLG	040#define COMMFLG	0100#define DIVFLG	0200#define FLOFLG	0400#define LTYFLG	01000#define CALLFLG	02000#define MULFLG	04000#define SHFFLG	010000#define ASGOPFLG 020000#define SPFLG	040000#define optype(o)	(dope[o]&TYFLG)#define asgop(o)	(dope[o]&ASGFLG)#define logop(o)	(dope[o]&LOGFLG)#define callop(o)	(dope[o]&CALLFLG)/* * External declarations, typedefs and the like */#ifdef FLEXNAMESchar	*hash();char	*savestr();char	*tstr();extern	int tstrused;extern	char *tstrbuf[];extern	char **curtstr;#define	freetstr()	curtstr = tstrbuf, tstrused = 0#endifextern	int nerrors;		/* number of errors seen so far */extern	int dope[];		/* a vector containing operator information */extern	char *opst[];		/* a vector containing names for ops */typedef	union ndu NODE;typedef	unsigned int TWORD;#define NIL	(NODE *)0#ifndef ONEPASS#ifndef EXPR#define EXPR '.'#endif#ifndef BBEG#define BBEG '['#endif#ifndef BEND#define BEND ']'#endif#else#include "onepass.h"#endif#endif

⌨️ 快捷键说明

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