/* * File: global2.h * * Global variable definitions for IMP80 compiler (pass 2 only) * * Bob Eager August 2002 * */ #ifndef EXTERN #define EXTERN extern #endif #define CBSIZE 256 /* Code output buffer size */ /* Type values in 'ptype' */ #define TY_GENERAL 0 #define TY_INTEGER 1 #define TY_REAL 2 #define TY_RECORD 3 #define TY_RECORDFORMAT 4 #define TY_STRING 5 #define TY_LABEL 6 #define TY_UNSET 7 EXTERN INT arr; EXTERN INT ca; /* Current code address */ EXTERN INT cabuf; /* Code address of code buffer */ EXTERN UCHAR code[CBSIZE+15]; /* Code output buffer */ EXTERN INT desads[MAXLEVELS+1]; EXTERN INT diaginf[MAXLEVELS+1]; /* Stack offset of diagnostic info for level */ EXTERN INT flag[MAXLEVELS+1]; /* 'ptype' for level */ EXTERN INT grinf1[MAXREGS]; /* Register use info 1 */ EXTERN INT grinf2[MAXREGS]; /* Register use info 2 */ EXTERN INT gruse[MAXREGS]; /* Nonzero if register in use */ EXTERN INT grat[MAXREGS]; /* Last use of register */ EXTERN INT kform; EXTERN INT l[MAXLEVELS+1]; /* Line numbers for starts of levels */ EXTERN INT label[MAXLEVELS+1]; EXTERN INT lastinst; EXTERN INT litl; EXTERN INT m[MAXLEVELS+1]; /* Dictionary offset for level name */ EXTERN INT n; /* Current local free poINTer */ EXTERN INT nam; EXTERN INT olink[MAXREGS]; EXTERN INT p; EXTERN INT plabs[MAXLEVELS+1]; EXTERN INT plink[MAXLEVELS+1]; EXTERN INT ppcurr; /* Code buffer poINTer */ EXTERN INT prec; EXTERN INT ptype; EXTERN INT registers[MAXREGS]; EXTERN INT rout; EXTERN INT sstl; /* Current SST length */ EXTERN INT stca; /* Current ST address */ EXTERN INT type; EXTERN INT xregister[MAXREGS]; /* Register claim status */ /* Special name tables (declared in sntabs.h) */ extern const USHORT tsname[]; extern const UINT sninfo[]; /* * End of file: global2.h * */