X-Git-Url: https://feistymeow.org/gitweb/?a=blobdiff_plain;f=nucleus%2Flibrary%2Fnodes%2Fsymbol_tree.cpp;h=0cf01c6c5b46d273a06e2d10f795619a67ce675f;hb=d60e7a2467ab8be80a06ba670ccba1819ca7c0e4;hp=a4e455a50629fa892c37e81dbee03aba381b33f5;hpb=3ea085ec301ed1399dfa1e9f3a240312dc95410b;p=feisty_meow.git diff --git a/nucleus/library/nodes/symbol_tree.cpp b/nucleus/library/nodes/symbol_tree.cpp index a4e455a5..0cf01c6c 100644 --- a/nucleus/library/nodes/symbol_tree.cpp +++ b/nucleus/library/nodes/symbol_tree.cpp @@ -22,8 +22,10 @@ //#define DEBUG_SYMBOL_TREE // uncomment for totally noisy version. +#include #undef LOG #define LOG(s) CLASS_EMERGENCY_LOG(program_wide_logger::get(), s) +using namespace loggers; using namespace basis; using namespace structures; @@ -36,6 +38,11 @@ class symbol_tree_associations : public symbol_table public: symbol_tree_associations(int estimated_elements) : symbol_table(estimated_elements) {} + virtual ~symbol_tree_associations() { +// for (int i = 0; i < symbols(); i++) { +// WHACK(use(i)); +// } + } }; ////////////// @@ -49,8 +56,11 @@ symbol_tree::symbol_tree(const astring &node_name, int estimated_elements) symbol_tree::~symbol_tree() { - WHACK(_name); + FUNCDEF("destructor"); +LOG("prior to whacks"); WHACK(_associations); + WHACK(_name); +LOG("after whacks"); } int symbol_tree::children() const { return _associations->symbols(); } @@ -131,7 +141,7 @@ symbol_tree *symbol_tree::find(const astring &to_find, find_methods how, #ifdef DEBUG_SYMBOL_TREE FUNCDEF("find"); #endif - if (comp == NIL) comp = astring_comparator; + if (comp == NULL_POINTER) comp = astring_comparator; #ifdef DEBUG_SYMBOL_TREE LOG(astring("finding node called ") + to_find); #endif @@ -141,7 +151,7 @@ symbol_tree *symbol_tree::find(const astring &to_find, find_methods how, // perform the upward recursion first, since it's pretty simple. if (how == recurse_upward) { symbol_tree *our_parent = dynamic_cast(parent()); - if (!our_parent) return NIL; // done recursing. + if (!our_parent) return NULL_POINTER; // done recursing. return our_parent->find(to_find, how, comp); } @@ -154,7 +164,7 @@ symbol_tree *symbol_tree::find(const astring &to_find, find_methods how, if (!found) { if (how == recurse_downward) { // see if we can't find that name in a sub-node. - symbol_tree *answer = NIL; + symbol_tree *answer = NULL_POINTER; for (int i = 0; i < branches(); i++) { // we will try each branch in turn and see if it has a child named // appropriately. @@ -168,7 +178,7 @@ symbol_tree *symbol_tree::find(const astring &to_find, find_methods how, return answer; } } - return NIL; + return NULL_POINTER; } return *found; }