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