static void AddChildren(Tokens& tok, TreeNode* parent) { TreeNode* cur = 0; while (tok.Good()) { std::string str; tok >> str; if (!tok.Good() || str.at(0) == '}') return; if (str.at(0) == '{') { if (!cur) cur = parent->AddChild(TreeNode::strdup("")); AddChildren(tok, cur); continue; } cur = parent->AddChild(TreeNode::strdup(str)); } }