ack/util/ego/ic/ic.h
1984-11-26 13:43:22 +00:00

43 lines
1.4 KiB
C

/* I N T E R M E D I A T E C O D E
*
* G L O B A L C O N S T A N T S & V A R I A B L E S
*/
/* macros used by ic_lib.c and ic_io.c: */
#define ARCHIVE 0
#define NO_ARCHIVE 1
/*
* The next constants are close to sp_cend for fast switches
*/
#define INST 256 /* instruction: number in tabval */
#define PSEU 257 /* pseudo: number in tabval */
#define ILBX 258 /* label: number in tabval */
#define DLBX 259 /* symbol: name in string[] */
#define CSTX1 260 /* short constant: stored in tabval */
#define CSTX2 261 /* offset: value in tabval2 */
#define VALX1 262 /* symbol+short: in string[] and tabval */
#define VALX2 263 /* symbol+offset: in string[] and tabval2 */
#define ATEOF 264 /* bumped into end of file */
/* Global variables */
extern dblock_p db;
extern dblock_p curhol; /* hol block in current scope */
extern dblock_p ldblock; /* last dblock processed so far */
extern proc_p lproc; /* last proc processed so far */
extern short tabval; /* used by table1, table2 and table3 */
extern offset tabval2;
extern char string[];
extern line_p lastline; /* last line read */
extern int labelcount; /* # labels in current procedure */
extern obj_id lastoid; /* last object identifier used */
extern proc_id lastpid; /* last proc identifier used */
extern lab_id lastlid; /* last label identifier used */
extern dblock_id lastdid; /* last dblock identifier used */
extern byte em_flag[];