Refactoring: Combined printOut() and stringifyList() in Token class

This commit is contained in:
Reijo Tomperi 2009-03-03 19:45:58 +00:00
parent ad844aa92a
commit 054518f002
2 changed files with 6 additions and 26 deletions

View File

@ -465,35 +465,15 @@ void Token::linenr(unsigned int linenr)
void Token::printOut(const char *title) const void Token::printOut(const char *title) const
{ {
std::cout << std::endl << "###"; std::cout << stringifyList(true, title) << std::endl;
if (title)
std::cout << " " << title << " ";
else
std::cout << "########";
std::cout << "###" << std::endl;
unsigned int lineNum = 0;
for (const Token *t = this; t; t = t->next())
{
if (lineNum != t->linenr())
{
std::cout << std::endl << t->linenr() << ": ";
lineNum = t->linenr();
}
std::cout << t->str();
if (t->varId())
std::cout << " (" << t->varId() << ")";
std::cout << " ";
}
std::cout << std::endl;
} }
std::string Token::stringifyList(const bool varid, const char *title) const
std::string Token::stringifyList(const bool varid) const
{ {
std::ostringstream ret; std::ostringstream ret;
if (title)
ret << "\n### " << title << " ###\n";
unsigned int linenr = 0; unsigned int linenr = 0;
for (const Token *tok = this; tok; tok = tok->next()) for (const Token *tok = this; tok; tok = tok->next())
{ {

View File

@ -186,7 +186,7 @@ public:
static void replace(Token *replaceThis, Token *start, Token *end); static void replace(Token *replaceThis, Token *start, Token *end);
/** Stringify a token list (with or without varId) */ /** Stringify a token list (with or without varId) */
std::string stringifyList(const bool varid) const; std::string stringifyList(const bool varid = true, const char *title = 0) const;
private: private:
void next(Token *next); void next(Token *next);