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

📄 bigdefs

📁 <B>Digital的Unix操作系统VAX 4.2源码</B>
💻
字号:
#include "stdio.h"#define HASHEDTABLE 1#define NFTNTYPES 5#define NEFLTYPES 12#define MEMSIZE 12000#define MAXSTNO 200#define MAXINCLUDEDEPTH 10#define MAXBLOCKDEPTH 30#define MAXINDIFS 100#define MAXFTNAMES 200#define MAXEFLNAMES 401#define EXECPOOL 20#define EXPRPOOL 40#define NAMESPERLINE 6#define LINESPACES 66#define INDENTSPACES 3extern int yylineno;extern int dumpic;extern int memdump;extern int dbgflag;extern int nowarnflag;extern int nocommentflag;extern int verbose;extern int dumpcore;#define TEST if(dbgflag)#define efgetc (efmacp?*efmacp++:getc(yyin))extern char msg[];#define UNIX 1#define GCOS 2#define GCOSBCD 3#define FIELDMAX 32768.typedef *ptr;#define ALLOC(x) intalloc(sizeof(struct x))extern FILE *diagfile;extern FILE *codefile;extern FILE *yyin;extern FILE *fileptrs[];extern char *filenames[];extern int  filelines[];extern int filedepth;extern char *efmacp;extern int filemacs[];extern int pushchars[];extern struct fileblock *iifilep;extern int mem[];extern unsigned int nmemused;extern long int totfreed;extern long int totalloc;extern int nhid[];extern int ndecl[];extern int indifs[];extern int nxtindif;extern int afterif;extern neflnames;extern int nftnch;extern int nftncont;extern char ftnames[MAXFTNAMES][7];extern int nftnames;extern int nftnm0;extern int impltype[];extern int ftnmask[];extern double fieldmax;extern int ftnefl[];extern int eflftn[];extern ptr thisexec;extern ptr thisctl;extern int pushlex;extern int igeol;extern int ateof;extern int eofneed;extern int forcerr;extern int comneed;extern int optneed;extern int defneed;extern int lettneed;extern int prevbg;extern ptr hidlist;extern ptr commonlist;extern ptr tempvarlist;extern ptr temptypelist;extern ptr gonelist;extern int blklevel;extern int ctllevel;extern int dclsect;extern int instruct;extern int inbound;extern int inproc;extern int ncases;extern ptr comments;extern ptr prevcomments;extern ptr genequivs;extern ptr arrays;extern ptr generlist;extern ptr knownlist;extern int graal;extern ptr thisproc;extern ptr thisargs;extern int langopt;extern int dotsopt;extern int dbgopt;extern int dbglevel;extern int stnos[];extern int nxtstno;extern int constno;extern int labno;extern int nerrs;extern int nbad;extern int nwarns;struct headbits	{	int tag:8;	int subtype:8;	int blklevel:8;	};extern struct fileblock	{	FILE *fileptr;	char filename[20];	};extern struct fileblock *ibfile;extern struct fileblock *icfile;extern struct fileblock *idfile;extern struct fileblock *iefile;extern struct chain	{	ptr nextp;	ptr datap;	} ;typedef struct chain *chainp;extern struct comentry	{	struct headbits header;	char comname[7];	long int comleng;	int cominit:2;	chainp comchain;	} ;extern struct stentry	{	struct headbits header;	char *namep;	ptr varp;	int hashval;	};extern struct stentry *hashtab[];extern struct stentry **hashend;extern struct typeblock	{	struct headbits header;	ptr sthead;	ptr strdesc;	int stralign;	int strsize;	int basetypes;	} ;extern struct keyblock	{	struct headbits header;	ptr sthead;	} ;extern struct varblock	{	struct headbits header;	ptr sthead;	ptr vinit;		int vadjdim:1;		int vdcldone:1;		int vdclstart:1;		int vnamedone:1;		int vprec:1;		int vext:1;		int vproc:2;		int needpar:1;		int vtype:4;		int vclass:3;	ptr vtypep;	ptr vdim;	ptr vsubs;	ptr voffset;	int vextbase;	int vbase[NFTNTYPES];	} ;extern struct atblock	{	int atprec;	int attype;	int atext;	int atclass;	ptr attypep;	ptr atcommon;	ptr atdim;	} ;extern struct dimblock	{	ptr nextp;	ptr lowerb;	ptr upperb;	} ;extern struct exprblock	/* must be same size as varblock */	{	struct headbits header;	ptr leftp;	ptr rightp;		int vadjdim:1;		int vdcldone:1;		int vdclstart:1;		int vnamedone:1;		int vprec:1;		int vext:1;		int vproc:2;		int needpar:1;		int vtype:4;		int vclass:3;	ptr vtypep;	ptr vdim;	ptr vsubs;	ptr voffset;	int vextbase;	int vbase[NFTNTYPES];	} ;typedef union { struct varblock ; struct exprblock; } *nodep;extern struct execblock	{	struct headbits header;	ptr temps;	int labelno;		int uniffable:1;		int brnchend:1;		int labeled:1;		int copylab:1;		int labdefined:1;		int labused:1;		int labinacc:1;	ptr execdesc;	ptr prevexec;	int nxtlabno;	int nftnst;	} ;extern struct ctlblock	/* must be same size as execblock */	{	struct headbits header;	ptr loopvar;	ptr loopctl;	ptr prevctl;	int nextlab;	int breaklab;	int xlab;	int indifn;	} ;extern struct caseblock	{	struct headbits header;	ptr nextcase;	int labelno;		int uniffable:1;		int brnchend:1;		int labeled:1;		int copylab:1;		int labdefined:1;		int labused:1;		int labinacc:1;	ptr casexpr;	} ;extern struct labelblock	{	struct headbits header;	ptr sthead;	int labelno;		int uniffable:1;		int brnchend:1;		int labeled:1;		int copylab:1;		int labdefined:1;		int labused:1;		int labinacc:1;	} ;extern struct defblock	{	struct headbits header;	ptr sthead;	char *valp;	} ;extern struct doblock	{	struct headbits header;	ptr dovar;	ptr dopar[3];	} ;extern struct fieldspec	{	struct headbits header;	int flbound;	int frange;	int frshift;	int fanymore;	} ;extern struct genblock	{	struct headbits header;	ptr nextgenf;	char *genname;	char *genfname[NEFLTYPES];	int genftype[NEFLTYPES];	} ;extern struct knownname	{	struct headbits header;	ptr nextfunct;	char *funcname;	int functype;	} ;extern struct iostblock	{	struct headbits header;	ptr leftp;	/* padding */	ptr right;	/* padding */		int vadjdim:1;		int vdcldone:1;		int vdclstart:1;		int vnamedone:1;		int vprec:1;		int vext:1;		int vproc:2;		int needpar:1;		int vtype:4;		int vclass:3;	int iokwd;	ptr iounit;	ptr iolist;	int iojunk[7];	/* padding */	} ;extern struct ioitem	{	struct headbits header;	ptr ioexpr;	char *iofmt;	} ;extern struct tailoring	{	int ftnsys;	int errmode;	int charcomp;	int ftnin;	int ftnout;	int ftncontnu;	char *procheader;	int ftnchwd;	int ftnsize[NFTNTYPES];	int ftnalign[NFTNTYPES];	char *dfltfmt[NEFLTYPES];	int hollincall;	int deltastno;	int dclintrinsics;	}  tailor;/*Block tags */#define TAROP 1#define TASGNOP 2#define TLOGOP 3#define TRELOP 4#define TCALL 5#define TREPOP 6#define TLIST 7#define TCONST 8#define TNAME 9#define TERROR 10#define TCOMMON 11#define TSTRUCT 12#define TSTFUNCT 13#define TEXEC 14#define TTEMP 15#define TDEFINE 16#define TKEYWORD 17#define TLABEL 18#define TCASE 19#define TNOTOP 20#define TNEGOP 21#define TDOBLOCK 22#define TCONTROL 23#define TKNOWNFUNCT 24#define TFIELD 25#define TGENERIC 26#define TIOSTAT 27/* Operator subtypes */#define OPPLUS 1#define OPMINUS 2#define OPSTAR 3#define OPSLASH 4#define OPPOWER 5#define OPNOT 6#define OPAND 7#define OP2AND 8#define OP2OR 9#define OPOR 10#define OPEQ 11#define OPLT 12#define OPGT 13#define OPLE 14#define OPGE 15#define OPNE 16#define OPLPAR 17#define OPRPAR 18#define OPEQUALS 19#define OPCOMMA 20#define OPASGN 0#define OPREL 0/* Simplification types */#define LVAL 1#define RVAL 2#define SUBVAL 3#define IFVAL 4/* Parser return values */#define PARSERR 1#define PARSEOF 2#define PARSOPT 3#define PARSDCL 4#define PARSDEF 5#define PARSPROC 6/* Symbol table types */#define TYUNDEFINED 0#define TYINT 1#define TYREAL 2#define TYLREAL 3#define TYLOG 4#define TYCOMPLEX 5#define TYCHAR 6#define TYSTRUCT 7#define TYLABEL 8#define TYSUBR 9#define TYFIELD 10#define TYHOLLERITH 11/* Fortran types */#define FTNINT 0#define FTNREAL 1#define FTNLOG 2#define FTNCOMPLEX 3#define FTNDOUBLE 4#define FTNCHAR 5/* symbol table classes */#define CLUNDEFINED 0#define CLARG 1#define CLVALUE 2#define CLSTAT 3#define CLAUTO 4#define CLCOMMON 5#define CLMOS 6#define CLEXT 7/* values of vproc */#define PROCUNKNOWN 0#define PROCNO 1#define PROCYES 2#define PROCINTRINSIC 3/* ctlblock subtypes */#define STNULL 1#define STIF 2#define STIFELSE 3#define STREPEAT 4#define STWHILE 5#define STFOR 6#define STDO 7#define STSWITCH 8#define STRETURN 9#define STGOTO 10#define STCALL 11#define STPROC 12/* intermediate code definitions */#define ICEOF 0#define ICBEGIN 1#define ICKEYWORD 2#define ICOP 3#define ICNAME 4#define ICCONST 5#define ICLABEL 6#define ICMARK 7#define ICINDENT 8#define ICCOMMENT 9#define ICINDPTR 10#define ICBLANK 11#define FCONTINUE 2#define FCALL 3#define FDO 4#define FIF1 5#define FIF2 6#define FGOTO 7#define FRETURN 8#define FREAD 9#define FWRITE 10#define FFORMAT 11#define FSTOP 12#define FDATA 13#define FEQUIVALENCE 14

⌨️ 快捷键说明

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