##
indent with tabs || newline before || etc.
####
sub prepareOutput {
my $self = shift;
my ($node) = @_;
my $writer = $self->create_nodewriter($node);
$self->[OUTPUT] .= $writer->write_output($node);
}
sub create_nodewriter {
my $self = shift;
my ($node) = @_;
$subtype = $node->parent? 'HasParent':'NoParent';
$tagtype = ucfirst $node->tag;
$class = "NodeWriter::$subtype" . "::$tagtype";
return $class->new();
}