ref: 63cde7ec0b3cc2c47cf7338ce3cc63b2591b473c
dir: /cc2/cc2.h/
typedef struct { union { struct { char type; char storage; } v; struct { short addr; } l; } u; } Symbol; typedef struct node { char op; char type; int8_t sethi; int8_t addrtype; union { Symbol *sym; int imm; } u; struct node *left, *right; } Node; enum nerrors { EINTNUM, /* too much internal identifiers */ EEXTNUM, /* too much external identifiers */ ENODEOV, /* node overflow */ ESTACKO, /* stack overflow */ ESTACKU, /* stack underflow */ EEXPROV, /* expression overflow */ ETYPERR, /* incorrect type in expression */ EEXPBAL, /* expression not balanced */ ESYNTAX, /* syntax error */ ENUMERR }; #define AUTO 'A' #define REGISTER 'R' #define STATIC 'S' extern void error(unsigned nerror, ...);