+/* 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;
+};