BSD 4_3_Reno development
[unix-history] / usr / src / old / efl / bigdefs
#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 3
extern 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;
\f
/*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
\f
/* 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