Add Apache License version 2.0.
[pbc.git] / pbc / pbc_tree.h
blob2526ab61c4f24acd11877859bc266888003cea97
1 // Requires:
2 // * field.h
3 struct tree_s;
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);