diff options
Diffstat (limited to 'lib/Tree/Template/Declare/DAG_Node.pm')
-rw-r--r-- | lib/Tree/Template/Declare/DAG_Node.pm | 16 |
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); } |