1*32810Sdonn /* ndu.h 4.2 87/12/10 */ 218387Sralph 318387Sralph /* 418387Sralph * This file defines the basic tree node data structure for the PCC. 518387Sralph */ 618387Sralph 718387Sralph union ndu { 818387Sralph struct { /* interior node */ 918387Sralph int op; 1018387Sralph int rall; 1118387Sralph TWORD type; 1218387Sralph int su; 1318387Sralph #ifndef FLEXNAMES 1418387Sralph char name[NCHNAM]; 1518387Sralph #else 1618387Sralph char *name; 1718387Sralph int stalign; 1818387Sralph #endif 1918387Sralph NODE *left; 2018387Sralph NODE *right; 2118387Sralph } in; 2218387Sralph struct { /* terminal node */ 2318387Sralph int op; 2418387Sralph int rall; 2518387Sralph TWORD type; 2618387Sralph int su; 2718387Sralph #ifndef FLEXNAMES 2818387Sralph char name[NCHNAM]; 2918387Sralph #else 3018387Sralph char *name; 3118387Sralph int stalign; 3218387Sralph #endif 3318387Sralph CONSZ lval; 3418387Sralph int rval; 3518387Sralph } tn; 3618387Sralph struct { /* branch node */ 3718387Sralph int op; 3818387Sralph int rall; 3918387Sralph TWORD type; 4018387Sralph int su; 4118387Sralph int label; /* for use with branching */ 4218387Sralph } bn; 4318387Sralph struct { /* structure node */ 4418387Sralph int op; 4518387Sralph int rall; 4618387Sralph TWORD type; 4718387Sralph int su; 4818387Sralph int stsize; /* sizes of structure objects */ 4918387Sralph int stalign; /* alignment of structure objects */ 5018387Sralph } stn; 5118387Sralph struct { /* front node */ 5218387Sralph int op; 5318387Sralph int cdim; 5418387Sralph TWORD type; 5518387Sralph int csiz; 5618387Sralph } fn; 5718387Sralph /* 5818387Sralph * This structure is used when a double precision 5918387Sralph * floating point constant is being computed 6018387Sralph */ 6118387Sralph struct { /* DCON node */ 6218387Sralph int op; 63*32810Sdonn int cdim; 6418387Sralph TWORD type; 6518387Sralph int csiz; 6618387Sralph double dval; 6718387Sralph } dpn; 6818387Sralph /* 6918387Sralph * This structure is used when a single precision 7018387Sralph * floating point constant is being computed 7118387Sralph */ 7218387Sralph struct { /* FCON node */ 7318387Sralph int op; 74*32810Sdonn int cdim; 7518387Sralph TWORD type; 7618387Sralph int csiz; 7718387Sralph float fval; 7818387Sralph } fpn; 7918387Sralph }; 80