From c0e88f5c6f3ad07e7e3a95966482715268ef2bf7 Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Wed, 19 May 2010 12:20:50 -0400 Subject: [PATCH] changed token list to a STL list instead of a vector --- Parser.cc | 14 ++++++++------ Parser.h | 3 ++- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/Parser.cc b/Parser.cc index 0ac0841..d15e0a4 100644 --- a/Parser.cc +++ b/Parser.cc @@ -65,14 +65,16 @@ bool Parser::write(const string & fname) refptr Parser::buildTokenList() { refptr tokenlist = new string(); - for (int i = 0; i < m_tokens.size(); i++) + for (list::const_iterator t = m_tokens.begin(); + t != m_tokens.end(); + t++) { - if (i > 0) + if (t != m_tokens.begin()) *tokenlist += " "; - *tokenlist += "{ \"" + m_tokens[i]->getName() + "\", \"" - + m_tokens[i]->getCString() + "\", " - + (m_tokens[i]->getProcessFlag() ? "true" : "false") + " }"; - if (i < m_tokens.size() - 1) + *tokenlist += "{ \"" + (*t)->getName() + "\", \"" + + (*t)->getCString() + "\", " + + ((*t)->getProcessFlag() ? "true" : "false") + " }"; + if (({typeof(t) tmp = t; ++tmp;}) != m_tokens.end()) *tokenlist += ", \\\n"; } return tokenlist; diff --git a/Parser.h b/Parser.h index b73ac9b..16bb0d4 100644 --- a/Parser.h +++ b/Parser.h @@ -4,6 +4,7 @@ #include #include +#include #include "refptr.h" #include "TokenDefinition.h" @@ -36,7 +37,7 @@ class Parser protected: refptr buildTokenList(); - std::vector< refptr< TokenDefinition > > m_tokens; + std::list m_tokens; std::vector< refptr< RuleDefinition > > m_rules; std::string m_classname; std::string m_namespace;