USG_PG3/usr/source/lil/common
#define NSIZE 8 /* size of identifier names */
#define NULL 0
#define FALSE 0
#define TRUE 1
#define ERR 2 /* created non-terminal */
#define EOF 0 /* terminals */
#define DECL 3
#define COMMA 4
#define LPAREN 5
#define RPAREN 6
#define QUOTES 7
#define SCOLON 8
#define LBRAK 9
#define RBRAK 10
#define POP 11
#define OP 12
#define ANDOP 13
#define OROP 14
#define ROP 15
#define STRING 16
#define IDENT 17
#define GOTO 18
#define IF 19
#define ELSE 20
#define DO 21
#define BREAK 22
#define WHILE 23
#define KOND 24 /* created address modes */
#define LABEL 25
#define REG 32
#define RDEC 40
#define RINC 48
#define CON 56
#define MEM 64
#define MIDX 72 /* l.s. 3 bits hold index value */
#define IREG 80 /* indirect-> add 48 */
#define IRDEC 88
#define IRINC 96
#define ICON 104
#define IMEM 112
#define IMIDX 120 /* l.s. 3 bits hold index value */
#define I 48
#define R 7
#define CRSF 128 /* created symbol or allocator */
#define SKPF 64 /* skip initiating stack entry */
#define PUBF 32 /* public symbol or used stack entry */
#define DEFF 16 /* defined symbol or immediate stack entry */
#define DCLF 8 /* declared symbol or defining stack entry */
#define BYTF 4 /* byte */
#define BCCF 1 /* bad condition code generated */
#define ATTR 4
#define NOP 0 /* operator values */
#define GOESTO 1
#define PLUS 2
#define MINUS 3
#define NOT 4
#define OR 5
#define AND 6
#define ANDNOT 7
#define XOR 8
#define ROTATE 9
#define SHIFT 10
#define GETSNOT 11
#define GETSMI 12
#define TIMES 13
#define DIVIDE 14
#define TEST 15
#define TESTAND 16
#define GETS 17
#define DSHIFT 18
#define SROTATE 19
#define PUSH 20
#define BYTE 21
#define WORD 23
#define GLOBAL 24
#define LOCAL 25
#define SIZE 26
#define CAT 27
#define MEMOP 30
#define REGOP 31
#define SYS 40
#define JSR 41
#define RTS 42
#define GE 4 /* m.s. 8 bits of conditional branch */
#define GT 6
#define NE 2
#define EQ 3
#define LT 5
#define LE 7
#define HI 0202
#define HIS 0206
#define LO 0207
#define LOS 0203
#define N 0201
#define Z 3
#define V 0205
#define C 0207
struct at {char flags, type;
int value, bias, size;
struct at *prev; };
struct symbol {struct at sat;
char name[NSIZE]; };
struct token {struct at tat;
struct symbol *tbran, *fbran;
int start, sbias, state; };
struct token e; /* protean stack entry */
struct symbol *dot; /* -> table entry for '.' */
struct symbol *elc; /* -> current elc */
struct symbol *tlist; /* -> pending jump targets */
struct symbol *symtab; /* -> bottom of symbol table */
struct symbol *sptop; /* -> top of table */
struct symbol *spsave; /* -> bottom of local frame */
int spused; /* space used in table */
int space; /* allocated space left */
int atime; /* assembly time nesting depth */
int skip; /* TRUE while skipping */
int debug; /* TRUE for trace printouts */
int line; /* source line number */
int fin; /* selected input file */
int fout; /* selected output file */
int fsyms; /* symbol table file */
int fcode; /* code output file */