#include #include #include #include #include "Tree.hpp" #include "Serialize.hpp" tree_node::tree_node() { } tree::tree() : tptr(new tree_node()) { } tree::tree(const Token& tok) { tree_node* dp = new tree_node; dp->node = tok; tptr = dp; } void tree_node::Rename(byte a) { node.SetValue(a); } bool tree::operator==(const tree ©) { return (tptr == copy.tptr); } //void tree::operator=(const tree ©) { // FreeTreeNode(tptr); // tptr = NULL; // if (copy.tptr) // tptr = copy.tptr->getCopy(); //} void tree::print() const { if (valid()) tptr->print(); cout.flush(); } static int indentlevel = 0; void tree_node::print() const { for (int i=0;iputBool(false); return; } else { s->putBool(true); } FreezeToken(root.node(),s); s->putInt(root.numchildren()); for (int i=0;igetBool(); if (!ValidTree) return tree(); Token tok(ThawToken(s)); tree root(mkLeaf(tok)); int numchildren = s->getInt(); for (int i=0;i