aboutsummaryrefslogtreecommitdiff
path: root/src/tree.cc
diff options
context:
space:
mode:
authorAdrian Kummerländer2013-01-05 23:29:33 +0100
committerAdrian Kummerländer2013-01-05 23:29:33 +0100
commitfc747105077c7ebab15963c5e69e334357c675e7 (patch)
tree2609473ea930f907c74e5f0354cec24e1e41d948 /src/tree.cc
parent39038fddb2032c9944e549be8f1665e028cb68b8 (diff)
downloadSimpleParser-fc747105077c7ebab15963c5e69e334357c675e7.tar
SimpleParser-fc747105077c7ebab15963c5e69e334357c675e7.tar.gz
SimpleParser-fc747105077c7ebab15963c5e69e334357c675e7.tar.bz2
SimpleParser-fc747105077c7ebab15963c5e69e334357c675e7.tar.lz
SimpleParser-fc747105077c7ebab15963c5e69e334357c675e7.tar.xz
SimpleParser-fc747105077c7ebab15963c5e69e334357c675e7.tar.zst
SimpleParser-fc747105077c7ebab15963c5e69e334357c675e7.zip
Made existing Graphviz tree generation available
to the libary user by providing a new plain "exportTree" function
Diffstat (limited to 'src/tree.cc')
-rw-r--r--src/tree.cc30
1 files changed, 24 insertions, 6 deletions
diff --git a/src/tree.cc b/src/tree.cc
index 3755423..0fa41ad 100644
--- a/src/tree.cc
+++ b/src/tree.cc
@@ -38,22 +38,40 @@ std::string Tree::print(std::string term) {
std::stringstream out;
out.precision(std::numeric_limits<double>::digits10);
- out << "digraph \"" << term << "\"" << std::endl
- << "{" << std::endl
- << "node [shape = box];" << std::endl;
+ out << "digraph \""
+ << term
+ << "\""
+ << std::endl;
+ out << "{" << std::endl;
+ out << "node [shape = box];" << std::endl;
int i = 0;
for ( auto it = this->node_collection_.begin(); it != this->node_collection_.end(); ++it ) {
- out << "node" << i << " [ label = \"" << (*it)->print() << "\"];" << std::endl;
+ out << "node"
+ << i
+ << " [ label = \""
+ << (*it)->print()
+ << "\"];"
+ << std::endl;
if ( (*it)->getType() == OPERATOR_NODE ) {
for ( auto iter = this->node_collection_.begin(); iter != this->node_collection_.end(); ++iter ) {
if ( (*iter).get() == (*it)->leftChild ) {
- out << "\"node" << i << "\" -> \"node" << (iter - this->node_collection_.begin()) << "\";" << std::endl;
+ out << "\"node"
+ << i
+ << "\" -> \"node"
+ << (iter - this->node_collection_.begin())
+ << "\";"
+ << std::endl;
}
if ( (*iter).get() == (*it)->rightChild ) {
- out << "\"node" << i << "\" -> \"node" << (iter - this->node_collection_.begin()) << "\";" << std::endl;
+ out << "\"node"
+ << i
+ << "\" -> \"node"
+ << (iter - this->node_collection_.begin())
+ << "\";"
+ << std::endl;
}
}
}