xref: /csrg-svn/usr.bin/pascal/src/tree_ty.h (revision 13785)
1*13785Sthien struct tnode
2*13785Sthien {
3*13785Sthien     int tag;
4*13785Sthien     union
5*13785Sthien     {
6*13785Sthien 	struct FOR_NODE
7*13785Sthien 	{
8*13785Sthien 	    int		line_no; 	/* line number of for */
9*13785Sthien 	    struct	tnode	*init_asg;	/* initialization */
10*13785Sthien 	    struct	tnode	*term_expr;	/* termination expresssion */
11*13785Sthien 	    struct	tnode	*for_stmnt;	/* for statement */
12*13785Sthien 	} for_node;
13*13785Sthien 	struct ASG_NODE
14*13785Sthien 	{
15*13785Sthien 	    int		line_no;	/* line number of := */
16*13785Sthien 	    struct	tnode	*lhs_var;
17*13785Sthien 	    struct	tnode	*rhs_expr;
18*13785Sthien 	} asg_node;
19*13785Sthien 	struct VAR_NODE
20*13785Sthien 	{
21*13785Sthien 	    int 	line_no;
22*13785Sthien 	    char	*cptr;
23*13785Sthien 	    struct	tnode	*qual;
24*13785Sthien 	    struct	tnode	*fields;
25*13785Sthien 	} var_node;
26*13785Sthien 	struct EXPR_NODE
27*13785Sthien 	{
28*13785Sthien 	    int		const_tag;
29*13785Sthien 	    struct	tnode	*lhs;
30*13785Sthien 	    struct	tnode	*rhs;
31*13785Sthien 	} expr_node;
32*13785Sthien     } tree_ele;
33*13785Sthien };
34