summaryrefslogtreecommitdiff
path: root/lib/Tree/Template/Declare/DAG_Node.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Tree/Template/Declare/DAG_Node.pm')
-rw-r--r--lib/Tree/Template/Declare/DAG_Node.pm16
1 files changed, 16 insertions, 0 deletions
diff --git a/lib/Tree/Template/Declare/DAG_Node.pm b/lib/Tree/Template/Declare/DAG_Node.pm
index c005752..45321da 100644
--- a/lib/Tree/Template/Declare/DAG_Node.pm
+++ b/lib/Tree/Template/Declare/DAG_Node.pm
@@ -13,6 +13,18 @@ sub new {
return bless {nc=>$node_class},$class;
}
+sub new_tree {
+ my ($self)=@_;
+
+ return bless [],'Tree::Template::Declare::DAG_Node::Tree';
+}
+
+sub finalize_tree {
+ my ($self,$tree)=@_;
+
+ return $tree->[0];
+}
+
sub new_node {
my ($self)=@_;
@@ -22,6 +34,10 @@ sub new_node {
sub add_child_node {
my ($self,$parent,$child)=@_;
+ if ($parent->isa('Tree::Template::Declare::DAG_Node::Tree')) {
+ push @$parent,$child;
+ return $parent;
+ }
return $parent->add_daughter($child);
}