diff options
Diffstat (limited to 'src/Tree.h')
-rw-r--r-- | src/Tree.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/Tree.h b/src/Tree.h new file mode 100644 index 0000000..2c3f0b8 --- /dev/null +++ b/src/Tree.h @@ -0,0 +1,31 @@ +#ifndef TREE_H_ +#define TREE_H_ + +#include "nodecache.h" + +using std::string; + +/*! + For now, just an abstraction of the node tree which keeps a dump + cache based on node indices around. + + Note that since node trees don't survive a recompilation, the tree cannot either. + */ +class Tree +{ +public: + Tree(const AbstractNode *root = NULL) : root_node(root) {} + ~Tree() {} + + void setRoot(const AbstractNode *root); + const AbstractNode *root() const { return this->root_node; } + + // FIXME: Really return a reference? + const string &getString(const AbstractNode &node) const; + +private: + const AbstractNode *root_node; + mutable NodeCache nodecache; +}; + +#endif |