4 typedef struct tree_s
*tree_ptr
;
5 tree_ptr
tree_new_z(const char* s
);
6 tree_ptr
tree_new_empty_stmt_list(void);
7 tree_ptr
tree_new_empty_parms(void);
8 tree_ptr
tree_new_define(tree_ptr id
, tree_ptr parm
, tree_ptr body
);
9 tree_ptr
tree_new_list(tree_ptr t
);
10 tree_ptr
tree_new_id(const char* s
);
11 tree_ptr
tree_new_assign(tree_ptr l
, tree_ptr r
);
12 tree_ptr
tree_new_funcall(void);
13 void tree_append(tree_ptr f
, tree_ptr p
);
14 void tree_set_fun(tree_ptr dst
, tree_ptr src
);
15 void tree_eval_stmt(tree_ptr t
);
17 tree_ptr
tree_new_neg(tree_ptr t
);
18 tree_ptr
tree_new_add(tree_ptr x
, tree_ptr y
);
19 tree_ptr
tree_new_sub(tree_ptr x
, tree_ptr y
);
20 tree_ptr
tree_new_mul(tree_ptr x
, tree_ptr y
);
21 tree_ptr
tree_new_div(tree_ptr x
, tree_ptr y
);
22 tree_ptr
tree_new_pow(tree_ptr x
, tree_ptr y
);
23 tree_ptr
tree_new_eq(tree_ptr x
, tree_ptr y
);
24 tree_ptr
tree_new_ne(tree_ptr x
, tree_ptr y
);
25 tree_ptr
tree_new_le(tree_ptr x
, tree_ptr y
);
26 tree_ptr
tree_new_ge(tree_ptr x
, tree_ptr y
);
27 tree_ptr
tree_new_lt(tree_ptr x
, tree_ptr y
);
28 tree_ptr
tree_new_gt(tree_ptr x
, tree_ptr y
);
29 tree_ptr
tree_new_ternary(tree_ptr cond
, tree_ptr t1
, tree_ptr t2
);
30 tree_ptr
tree_new_item(tree_ptr x
, tree_ptr y
);