+LttvFilter*
+lttv_filter_clone(LttvFilter* tree) {
+
+ LttvFilter* newtree = lttv_filter_tree_new();
+
+ /*
+ * TODO : Copy tree into new tree
+ */
+
+ return newtree;
+
+}
+
+void
+lttv_filter_tree_add_node(GPtrArray* stack, LttvFilter* subtree, LttvLogicalOp op) {
+
+ LttvFilter* t1 = NULL;
+ LttvFilter* t2 = NULL;
+
+ t1 = (LttvFilter*)g_ptr_array_index(stack,stack->len-1);
+ while(t1->right != LTTV_TREE_IDLE) t1 = t1->r_child.t;
+ t2 = lttv_filter_tree_new();
+ t2->node = op;
+ if(subtree != NULL) {
+ t2->left = LTTV_TREE_NODE;
+ t2->l_child.t = subtree;
+ subtree = NULL;
+ t1->right = LTTV_TREE_NODE;
+ t1->r_child.t = t2;
+ } else {
+// a_simple_expression->value = a_field_component->str;
+// a_field_component = g_string_new("");
+ t2->left = LTTV_TREE_LEAF;
+// t2->l_child.leaf = a_simple_expression;
+// a_simple_expression = g_new(lttv_simple_expression,1);
+ t1->right = LTTV_TREE_NODE;
+ t1->r_child.t = t2;
+ }
+
+}
+