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

📄 manifest

📁 <B>Digital的Unix操作系统VAX 4.2源码</B>
💻
字号:
/*static	char *sccsid = "@(#)manifest	4.2 (ULTRIX) 4/27/88"; *//************************************************************************ *									* *			Copyright (c) 1984 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 * *	Jon Reeves, 21-Apr-88 * 008	Increased TREESZ to 1000 in all cases. * *	David Metsky, 2-Jul-87 * 007	Changed the token numbers for const and volatile from 114 and *	115 to 128 and 129 respectively. * *	Victoria Holt, 14-Apr-86 * 006	Added BCONST_PTR and BVOLATILE_PTR to fix bug with constant *	pointers. * *	Lu Anne Van de Pas, 02-Mar-86 * 005  Added support for f floating constants (DCON and dpn in udu struct) * *	Victoria Holt, 26-Feb-86 * 004	Added support for const and volatile (new masks, bit fields, *	and macros). * *	Rich Phillips, 13-Sept-84 * 003-	Back out of 001. * *	Rich Phillips, 16-Aug-84 * 002- Define ASM so scan can communicate with the parser. Also, define * 	a pointer in the node to asm information for UNARY CALL nodes set *	up for asm directives. * *	Rich Phillips, 20-July-84 * 001-	Define a flag word (nflags) in the node structures for the *	flag NWASREG (see mfile1). * ********************************************************************/# include <stdio.h>/*	manifest constant file for the lex/yacc interface */# define ERROR 1# define NAME 2# define STRING 3# define ICON 4# define DCON 113# define FCON 5# define PLUS 6# define MINUS 8# define MUL 11# define AND 14# define OR 17# define ER 19# define QUEST 21# define COLON 22# define ANDAND 23# define OROR 24/* the defines for ASOP, RELOP, EQUOP, DIVOP,   SHIFTOP, ICOP, UNOP, and STROP have been   moved to mfile1				*//*	reserved words, etc */# define TYPE 33# define CLASS 34# define STRUCT 35# define RETURN 36# define GOTO 37# define IF 38# define ELSE 39# define SWITCH 40# define BREAK 41# define CONTINUE 42# define WHILE 43# define DO 44# define FOR 45# define DEFAULT 46# define CASE 47# define SIZEOF 48# define ENUM 49/*	little symbols, etc. *//*	namely,	LP	(	RP	)	LC	{	RC	}	LB	[	RB	]	CM	,	SM	;	*//*  These defines are being moved to mfile1    to alleviate preprocessor problems with    second pass files.  # define LP 50# define RP 51# define LC 52# define RC 53*/# define LB 54# define RB 55# define CM 56# define SM 57# define ASSIGN 58# define ASM 59/* Type attributes *//* 007 - dnm */# define CONST 128# define VOLATILE 129/*	END OF YACC *//*	left over tree building operators */# define COMOP 59# define DIV 60# define MOD 62# define LS 64# define RS 66# define DOT 68# define STREF 69# define CALL 70# define FORTCALL 73# define NOT 76# define COMPL 77# define INCR 78# define DECR 79# define EQ 80# define NE 81# define LE 82# define LT 83# define GE 84# define GT 85# define ULE 86# define ULT 87# define UGE 88# define UGT 89# define SETBIT 90# define TESTBIT 91# define RESETBIT 92# define ARS 93# define REG 94# define OREG 95# define CCODES 96# define FREE 97# define STASG 98# define STARG 99# define STCALL 100/*	some conversion operators */# define FLD 103# define SCONV 104# define PCONV 105# define PMCONV 106# define PVCONV 107/*	special node operators, used for special contexts */# define FORCE 108# define CBRANCH 109# define INIT 110# define CAST 111# define INITASSIGN 112/*	node types */# define LTYPE 02# define UTYPE 04# define BITYPE 010	/* DSIZE is the size of the dope array - vdp005	*/# define DSIZE VOLATILE+1/*	type names, used in symbol table building */# define TNULL PTR    /* pointer to UNDEF */# define TVOID FTN	/* function returning UNDEF (for void) */# define UNDEF 0# define FARG 1# define CHAR 2# define SHORT 3# define INT 4# define LONG 5# define FLOAT 6# define DOUBLE 7# define STRTY 8# define UNIONTY 9# define ENUMTY 10# define MOETY 11# define UCHAR 12# define USHORT 13# define UNSIGNED 14# define ULONG 15# define CONST_PTR 17# define VOLATILE_PTR 19# define ASG 1+# define UNARY 2+# define NOASG (-1)+# define NOUNARY (-2)+/*	various flags */# define NOLAB (-1)/* type modifiers */# define PTR  020# define FTN  040# define ARY  060/* bits for the typattr field in ndu.in */# define BCONST 01# define BCONST_PTR 04# define BVOLATILE 02# define BVOLATILE_PTR 010/* type packing constants */# define TMASK 060# define TMASK1 0300# define TMASK2  0360# define CVMASK 03# define BTMASK 017# define BTSHIFT 4# define TSHIFT 2/*	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 ISCONST(x) ((x)&BCONST)# define ISCONST_PTR(x)  ((x)&BCONST_PTR)# define ISRODATA(typattr, typ) \    ((ISCONST_PTR(typattr) && ISPTR(typ)) || \    (ISCONST(typattr) && !ISPTR(typ)))# define INCTYPE(x,t) \    ((x) | ((t) << TSHIFT))# define INCREF(x) \    ((((x) & ~BTMASK) << TSHIFT) | PTR | ((x) & BTMASK))# define INCATTR(x) \    ((((x) & ~CVMASK) << TSHIFT) | ((x) & CVMASK))# define DECATTR(x) \    ((((x) >> TSHIFT) & ~CVMASK) | ((x) & CVMASK))# define DECREF(x) \	((((x) >> TSHIFT) & ~BTMASK) | ((x) & BTMASK))# define SETOFF(x,y)   if( (x)%(y) != 0 ) (x) = ( ((x)/(y) + 1) * (y))		/* advance x to a multiple of y */# define NOFIT(x,y,z)   ( ( (x)%(z) + (y) ) > (z) )		/* can y bits be added to x without overflowing 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)/*	table sizes	*/# define TREESZ 1000 /* space for building parse tree */#ifndef FLEXNAMES# define NCHNAM 8  /* number of characters in a name */#elsechar *hash();char *savestr();char *tstr();extern char *asmptr;extern int tstrused;extern char *tstrbuf[], **curtstr;#define	freetstr()	curtstr = tstrbuf, tstrused = 0#endif/*	common defined variables */extern int nerrors;  /* number of errors seen so far */typedef union ndu NODE;typedef unsigned int TWORD;# define NIL (NODE *)0extern int dope[];  /* a vector containing operator information */extern char *opst[];  /* a vector containing names for ops */# ifdef ONEPASS	/* in one-pass operation, define the tree nodes */union ndu {	struct {		int op;		int rall;		TWORD type;		int su;#ifndef FLEXNAMES		char name[NCHNAM];#else		char *name;		int stalign;#endif		NODE *left;		NODE *right;		char *asminfo; /* RAP002 */		int typattr;   /* additional type attributes, eg. CONST */		}in; /* interior node */		struct {		int op;		int rall;		TWORD type;		int su;#ifndef FLEXNAMES		char name[NCHNAM];#else		char *name;		int stalign;#endif		CONSZ lval;		int rval;		}tn; /* terminal node */		struct {		int op;		int rall;		TWORD type;		int su;		int label;  /* for use with branching */		}bn; /* branch node */	struct {		int op;		int  rall;		TWORD type;		int su;		int stsize;  /* sizes of structure objects */		int stalign;  /* alignment of structure objects */		}stn; /* structure node */	struct {		int op;		int cdim;		TWORD type;		int csiz;		}fn; /* front node */		struct {		/* this structure is used when a 		 * floating point constant is being computed		 * vdp005 - this is only used for single 		 * precision constants now 		 */		int op;		int cdim;		TWORD type;		int csiz;		float fval;		}fpn; 	struct {		/*vdp005 this structure is used when a double (d float)  		 * constant is being computed - DCON 		 */ 		int op;		int cdim;		TWORD type;		int csiz;		double dval;		}dpn; 	};# endif# ifdef BUG2# define BUG1# endif# ifdef BUG3# define BUG2# define BUG1# endif# ifdef BUG4# define BUG1# define BUG2# define BUG3# endif# ifndef ONEPASS# ifndef EXPR# define EXPR '.'# endif# ifndef BBEG# define BBEG '['# endif# ifndef BEND# define BEND ']'# endif# endif

⌨️ 快捷键说明

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