xref: /original-bsd/old/pcc/mip/ndu.h (revision a910c8b7)
1 /*	ndu.h	4.1	85/03/19	*/
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 		TWORD	type;
64 		int	cdim;
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 		TWORD	type;
75 		int	cdim;
76 		int	csiz;
77 		float	fval;
78 	} fpn;
79 };
80