Tokenizer::simplifyTypedef: 'tokAt(offset)=>tokOffset': finished.
This commit is contained in:
parent
67d095a10e
commit
7cd36f44b6
|
@ -984,7 +984,6 @@ void Tokenizer::simplifyTypedef()
|
||||||
Token *argFuncRetEnd = 0;
|
Token *argFuncRetEnd = 0;
|
||||||
Token *funcStart = 0;
|
Token *funcStart = 0;
|
||||||
Token *funcEnd = 0;
|
Token *funcEnd = 0;
|
||||||
unsigned int offset = 1;
|
|
||||||
Token *tokOffset = tok->next();
|
Token *tokOffset = tok->next();
|
||||||
bool function = false;
|
bool function = false;
|
||||||
bool functionPtr = false;
|
bool functionPtr = false;
|
||||||
|
@ -1008,30 +1007,24 @@ void Tokenizer::simplifyTypedef()
|
||||||
typeStart = tok->next();
|
typeStart = tok->next();
|
||||||
|
|
||||||
while (Token::Match(tokOffset, "const|signed|unsigned|struct|enum %type%") ||
|
while (Token::Match(tokOffset, "const|signed|unsigned|struct|enum %type%") ||
|
||||||
(tokOffset->next() && tokOffset->next()->isStandardType())) {
|
(tokOffset->next() && tokOffset->next()->isStandardType()))
|
||||||
++offset;
|
|
||||||
tokOffset = tokOffset->next();
|
tokOffset = tokOffset->next();
|
||||||
}
|
|
||||||
|
|
||||||
++offset;
|
|
||||||
typeEnd = tokOffset;
|
typeEnd = tokOffset;
|
||||||
tokOffset = tokOffset->next();
|
tokOffset = tokOffset->next();
|
||||||
|
|
||||||
bool atEnd = false;
|
bool atEnd = false;
|
||||||
while (!atEnd) {
|
while (!atEnd) {
|
||||||
if (tokOffset && tokOffset->str() == "::") {
|
if (tokOffset && tokOffset->str() == "::") {
|
||||||
++offset;
|
|
||||||
typeEnd = tokOffset;
|
typeEnd = tokOffset;
|
||||||
tokOffset = tokOffset->next();
|
tokOffset = tokOffset->next();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Token::Match(tokOffset, "%type%") &&
|
if (Token::Match(tokOffset, "%type%") &&
|
||||||
tokOffset->next() && !Token::Match(tokOffset->next(), "[|;|,|(")) {
|
tokOffset->next() && !Token::Match(tokOffset->next(), "[|;|,|(")) {
|
||||||
++offset;
|
|
||||||
typeEnd = tokOffset;
|
typeEnd = tokOffset;
|
||||||
tokOffset = tokOffset->next();
|
tokOffset = tokOffset->next();
|
||||||
} else if (Token::simpleMatch(tokOffset, "const (")) {
|
} else if (Token::simpleMatch(tokOffset, "const (")) {
|
||||||
++offset;
|
|
||||||
typeEnd = tokOffset;
|
typeEnd = tokOffset;
|
||||||
tokOffset = tokOffset->next();
|
tokOffset = tokOffset->next();
|
||||||
atEnd = true;
|
atEnd = true;
|
||||||
|
@ -1077,14 +1070,12 @@ void Tokenizer::simplifyTypedef()
|
||||||
typeEnd = typeEnd->next();
|
typeEnd = typeEnd->next();
|
||||||
|
|
||||||
tok = typeEnd;
|
tok = typeEnd;
|
||||||
offset = 1;
|
|
||||||
tokOffset = tok->next();
|
tokOffset = tok->next();
|
||||||
}
|
}
|
||||||
|
|
||||||
// check for pointers and references
|
// check for pointers and references
|
||||||
while (Token::Match(tokOffset, "*|&|const")) {
|
while (Token::Match(tokOffset, "*|&|const")) {
|
||||||
pointers.push_back(tokOffset->str());
|
pointers.push_back(tokOffset->str());
|
||||||
++offset;
|
|
||||||
tokOffset = tokOffset->next();
|
tokOffset = tokOffset->next();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1096,7 +1087,6 @@ void Tokenizer::simplifyTypedef()
|
||||||
|
|
||||||
if (Token::Match(tokOffset, "%type%")) {
|
if (Token::Match(tokOffset, "%type%")) {
|
||||||
// found the type name
|
// found the type name
|
||||||
++offset;
|
|
||||||
typeName = tokOffset;
|
typeName = tokOffset;
|
||||||
tokOffset = tokOffset->next();
|
tokOffset = tokOffset->next();
|
||||||
|
|
||||||
|
@ -1107,7 +1097,6 @@ void Tokenizer::simplifyTypedef()
|
||||||
bool atEnd = false;
|
bool atEnd = false;
|
||||||
while (!atEnd) {
|
while (!atEnd) {
|
||||||
while (tokOffset->next() && !Token::Match(tokOffset->next(), ";|,")) {
|
while (tokOffset->next() && !Token::Match(tokOffset->next(), ";|,")) {
|
||||||
++offset;
|
|
||||||
tokOffset = tokOffset->next();
|
tokOffset = tokOffset->next();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1117,13 +1106,10 @@ void Tokenizer::simplifyTypedef()
|
||||||
atEnd = true;
|
atEnd = true;
|
||||||
else if (tokOffset->str() == "]")
|
else if (tokOffset->str() == "]")
|
||||||
atEnd = true;
|
atEnd = true;
|
||||||
else {
|
else
|
||||||
++offset;
|
|
||||||
tokOffset = tokOffset->next();
|
tokOffset = tokOffset->next();
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
++offset;
|
|
||||||
arrayEnd = tokOffset;
|
arrayEnd = tokOffset;
|
||||||
tokOffset = tokOffset->next();
|
tokOffset = tokOffset->next();
|
||||||
}
|
}
|
||||||
|
@ -1223,13 +1209,10 @@ void Tokenizer::simplifyTypedef()
|
||||||
(Token::simpleMatch(tokOffset, "( * (") &&
|
(Token::simpleMatch(tokOffset, "( * (") &&
|
||||||
Token::Match(tokOffset->linkAt(2)->previous(), "%type% ) (") &&
|
Token::Match(tokOffset->linkAt(2)->previous(), "%type% ) (") &&
|
||||||
Token::Match(tokOffset->linkAt(2)->next()->link(), ") const|volatile| ) ;|,"))) {
|
Token::Match(tokOffset->linkAt(2)->next()->link(), ") const|volatile| ) ;|,"))) {
|
||||||
if (tokOffset->next()->str() == "(") {
|
if (tokOffset->next()->str() == "(")
|
||||||
++offset;
|
|
||||||
tokOffset = tokOffset->next();
|
tokOffset = tokOffset->next();
|
||||||
} else if (Token::simpleMatch(tokOffset, "( * (")) {
|
else if (Token::simpleMatch(tokOffset, "( * (")) {
|
||||||
++offset;
|
|
||||||
pointers.push_back("*");
|
pointers.push_back("*");
|
||||||
++offset;
|
|
||||||
tokOffset = tokOffset->tokAt(2);
|
tokOffset = tokOffset->tokAt(2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1813,38 +1796,42 @@ void Tokenizer::simplifyTypedef()
|
||||||
else if (tok->str() == ",") {
|
else if (tok->str() == ",") {
|
||||||
arrayStart = 0;
|
arrayStart = 0;
|
||||||
arrayEnd = 0;
|
arrayEnd = 0;
|
||||||
offset = 1;
|
tokOffset = tok->next();
|
||||||
pointers.clear();
|
pointers.clear();
|
||||||
|
|
||||||
while (Token::Match(tok->tokAt(offset), "*|&"))
|
while (Token::Match(tokOffset, "*|&")) {
|
||||||
pointers.push_back(tok->strAt(offset++));
|
pointers.push_back(tokOffset->str());
|
||||||
|
tokOffset = tokOffset->next();
|
||||||
|
}
|
||||||
|
|
||||||
if (Token::Match(tok->tokAt(offset), "%type%")) {
|
if (Token::Match(tokOffset, "%type%")) {
|
||||||
typeName = tok->tokAt(offset++);
|
typeName = tokOffset;
|
||||||
|
tokOffset = tokOffset->next();
|
||||||
|
|
||||||
if (tok->tokAt(offset) && tok->strAt(offset) == "[") {
|
if (tokOffset && tokOffset->str() == "[") {
|
||||||
arrayStart = tok->tokAt(offset);
|
arrayStart = tokOffset;
|
||||||
|
|
||||||
bool atEnd = false;
|
bool atEnd = false;
|
||||||
while (!atEnd) {
|
while (!atEnd) {
|
||||||
while (tok->tokAt(offset + 1) && !Token::Match(tok->tokAt(offset + 1), ";|,"))
|
while (tokOffset->next() && !Token::Match(tokOffset->next(), ";|,"))
|
||||||
++offset;
|
tokOffset = tokOffset->next();
|
||||||
|
|
||||||
if (!tok->tokAt(offset + 1))
|
if (!tokOffset->next())
|
||||||
return; // invalid input
|
return; // invalid input
|
||||||
else if (tok->strAt(offset + 1) == ";")
|
else if (tokOffset->next()->str() == ";")
|
||||||
atEnd = true;
|
atEnd = true;
|
||||||
else if (tok->strAt(offset) == "]")
|
else if (tokOffset->str() == "]")
|
||||||
atEnd = true;
|
atEnd = true;
|
||||||
else
|
else
|
||||||
++offset;
|
tokOffset = tokOffset->next();
|
||||||
}
|
}
|
||||||
|
|
||||||
arrayEnd = tok->tokAt(offset++);
|
arrayEnd = tokOffset;
|
||||||
|
tokOffset = tokOffset->next();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Token::Match(tok->tokAt(offset), ";|,"))
|
if (Token::Match(tokOffset, ";|,"))
|
||||||
tok = tok->tokAt(offset);
|
tok = tokOffset;
|
||||||
else {
|
else {
|
||||||
// we encountered a typedef we don't support yet so just continue
|
// we encountered a typedef we don't support yet so just continue
|
||||||
done = true;
|
done = true;
|
||||||
|
|
Loading…
Reference in New Issue