Refactoring the code for the templates handling

This commit is contained in:
Daniel Marjamäki 2009-03-17 18:55:28 +01:00
parent 128215d692
commit 9fe8ae452a
1 changed files with 16 additions and 13 deletions

View File

@ -535,21 +535,24 @@ void Tokenizer::tokenize(std::istream &code, const char FileName[])
int indentlevel = 0; int indentlevel = 0;
for (; tok3; tok3 = tok3->next()) for (; tok3; tok3 = tok3->next())
{ {
for (unsigned int i = 0; i <= type.size(); ++i)
{ {
if (i == type.size()) // search for this token in the type vector
{ unsigned int itype = 0;
if (tok3->str() == name) while (itype < type.size() && type[itype] != tok3->str())
++itype;
// replace type with given type..
if (itype < type.size())
addtoken(types2[itype].c_str(), tok3->linenr(), tok3->fileIndex());
// replace name..
else if (tok3->str() == name)
addtoken(name2.c_str(), tok3->linenr(), tok3->fileIndex()); addtoken(name2.c_str(), tok3->linenr(), tok3->fileIndex());
// copy
else else
addtoken(tok3->str().c_str(), tok3->linenr(), tok3->fileIndex()); addtoken(tok3->str().c_str(), tok3->linenr(), tok3->fileIndex());
} }
else if (tok3->str() == type[i])
{
addtoken(types2[i].c_str(), tok3->linenr(), tok3->fileIndex());
break;
}
}
if (tok3->str() == "{") if (tok3->str() == "{")
++indentlevel; ++indentlevel;