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, ...);