BSD 4_3_Reno development
[unix-history] / usr / src / libexec / pcc / mip / ndu.h
/* ndu.h 4.2 87/12/10 */
/*
* This file defines the basic tree node data structure for the PCC.
*/
union ndu {
struct { /* interior node */
int op;
int rall;
TWORD type;
int su;
#ifndef FLEXNAMES
char name[NCHNAM];
#else
char *name;
int stalign;
#endif
NODE *left;
NODE *right;
} in;
struct { /* terminal node */
int op;
int rall;
TWORD type;
int su;
#ifndef FLEXNAMES
char name[NCHNAM];
#else
char *name;
int stalign;
#endif
CONSZ lval;
int rval;
} tn;
struct { /* branch node */
int op;
int rall;
TWORD type;
int su;
int label; /* for use with branching */
} bn;
struct { /* structure node */
int op;
int rall;
TWORD type;
int su;
int stsize; /* sizes of structure objects */
int stalign; /* alignment of structure objects */
} stn;
struct { /* front node */
int op;
int cdim;
TWORD type;
int csiz;
} fn;
/*
* This structure is used when a double precision
* floating point constant is being computed
*/
struct { /* DCON node */
int op;
int cdim;
TWORD type;
int csiz;
double dval;
} dpn;
/*
* This structure is used when a single precision
* floating point constant is being computed
*/
struct { /* FCON node */
int op;
int cdim;
TWORD type;
int csiz;
float fval;
} fpn;
};