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