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