1*18387Sralph /* ndu.h 4.1 85/03/19 */ 2*18387Sralph 3*18387Sralph /* 4*18387Sralph * This file defines the basic tree node data structure for the PCC. 5*18387Sralph */ 6*18387Sralph 7*18387Sralph union ndu { 8*18387Sralph struct { /* interior node */ 9*18387Sralph int op; 10*18387Sralph int rall; 11*18387Sralph TWORD type; 12*18387Sralph int su; 13*18387Sralph #ifndef FLEXNAMES 14*18387Sralph char name[NCHNAM]; 15*18387Sralph #else 16*18387Sralph char *name; 17*18387Sralph int stalign; 18*18387Sralph #endif 19*18387Sralph NODE *left; 20*18387Sralph NODE *right; 21*18387Sralph } in; 22*18387Sralph struct { /* terminal node */ 23*18387Sralph int op; 24*18387Sralph int rall; 25*18387Sralph TWORD type; 26*18387Sralph int su; 27*18387Sralph #ifndef FLEXNAMES 28*18387Sralph char name[NCHNAM]; 29*18387Sralph #else 30*18387Sralph char *name; 31*18387Sralph int stalign; 32*18387Sralph #endif 33*18387Sralph CONSZ lval; 34*18387Sralph int rval; 35*18387Sralph } tn; 36*18387Sralph struct { /* branch node */ 37*18387Sralph int op; 38*18387Sralph int rall; 39*18387Sralph TWORD type; 40*18387Sralph int su; 41*18387Sralph int label; /* for use with branching */ 42*18387Sralph } bn; 43*18387Sralph struct { /* structure node */ 44*18387Sralph int op; 45*18387Sralph int rall; 46*18387Sralph TWORD type; 47*18387Sralph int su; 48*18387Sralph int stsize; /* sizes of structure objects */ 49*18387Sralph int stalign; /* alignment of structure objects */ 50*18387Sralph } stn; 51*18387Sralph struct { /* front node */ 52*18387Sralph int op; 53*18387Sralph int cdim; 54*18387Sralph TWORD type; 55*18387Sralph int csiz; 56*18387Sralph } fn; 57*18387Sralph /* 58*18387Sralph * This structure is used when a double precision 59*18387Sralph * floating point constant is being computed 60*18387Sralph */ 61*18387Sralph struct { /* DCON node */ 62*18387Sralph int op; 63*18387Sralph TWORD type; 64*18387Sralph int cdim; 65*18387Sralph int csiz; 66*18387Sralph double dval; 67*18387Sralph } dpn; 68*18387Sralph /* 69*18387Sralph * This structure is used when a single precision 70*18387Sralph * floating point constant is being computed 71*18387Sralph */ 72*18387Sralph struct { /* FCON node */ 73*18387Sralph int op; 74*18387Sralph TWORD type; 75*18387Sralph int cdim; 76*18387Sralph int csiz; 77*18387Sralph float fval; 78*18387Sralph } fpn; 79*18387Sralph }; 80