Improve labels simplification code, remove redundant checking.
This commit is contained in:
parent
9b901b35f3
commit
bf815ac1e4
|
@ -2096,8 +2096,8 @@ bool Tokenizer::tokenize(std::istream &code,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// simplify labels..
|
// simplify labels and 'case|default'-like syntaxes
|
||||||
labels();
|
simplifyLabelsCaseDefault();
|
||||||
|
|
||||||
// simplify '[;{}] * & ( %any% ) =' to '%any% ='
|
// simplify '[;{}] * & ( %any% ) =' to '%any% ='
|
||||||
simplifyMulAndParens();
|
simplifyMulAndParens();
|
||||||
|
@ -2611,9 +2611,9 @@ void Tokenizer::arraySize()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** simplify labels in the code.. add an ";" */
|
/** simplify labels and case|default in the code: add a ";" if not already in.*/
|
||||||
|
|
||||||
void Tokenizer::labels()
|
void Tokenizer::simplifyLabelsCaseDefault()
|
||||||
{
|
{
|
||||||
for (Token *tok = _tokens; tok; tok = tok->next()) {
|
for (Token *tok = _tokens; tok; tok = tok->next()) {
|
||||||
if (Token::Match(tok, ") const| {")) {
|
if (Token::Match(tok, ") const| {")) {
|
||||||
|
@ -2626,30 +2626,20 @@ void Tokenizer::labels()
|
||||||
--indentlevel;
|
--indentlevel;
|
||||||
if (!indentlevel)
|
if (!indentlevel)
|
||||||
break;
|
break;
|
||||||
} else if (tok->str() == "(")
|
} else if (tok->str() == "(" || tok->str() == "[")
|
||||||
tok = tok->link();
|
tok = tok->link();
|
||||||
|
|
||||||
else if (tok->str() == "case") {
|
if (Token::Match(tok, "[;{}] case")) {
|
||||||
while (NULL != (tok = tok->next())) {
|
while (NULL != (tok = tok->next())) {
|
||||||
if (tok->str() == ":")
|
if (tok->str() == ":")
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (tok && (!(tok->next()) || tok->next()->str() != ";")) {
|
if (Token::Match(tok, ": !!;")) {
|
||||||
tok->insertToken(";");
|
tok->insertToken(";");
|
||||||
tok = tok->next();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// simplify label.. except for unhandled macro
|
|
||||||
if (Token::Match(tok, "[;{}] %var% :")
|
|
||||||
&& !Token::Match(tok->next(), "public|protected|private")
|
|
||||||
&& tok->strAt(3) != ";") {
|
|
||||||
for (Token *tok2 = tok->tokAt(3); tok2; tok2 = tok2->next()) {
|
|
||||||
if (Token::Match(tok2, "%var%")) {
|
|
||||||
tok->tokAt(2)->insertToken(";");
|
|
||||||
break;
|
|
||||||
} else if (!Token::Match(tok2, "[(*&{]"))
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
} else if (Token::Match(tok, "[;{}] %var% : !!;")) {
|
||||||
|
tok = tok->tokAt(2);
|
||||||
|
tok->insertToken(";");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -218,8 +218,8 @@ public:
|
||||||
/** Insert array size where it isn't given */
|
/** Insert array size where it isn't given */
|
||||||
void arraySize();
|
void arraySize();
|
||||||
|
|
||||||
/** Simplify labels */
|
/** Simplify labels and 'case|default' syntaxes */
|
||||||
void labels();
|
void simplifyLabelsCaseDefault();
|
||||||
|
|
||||||
/** Remove macros in global scope */
|
/** Remove macros in global scope */
|
||||||
void removeMacrosInGlobalScope();
|
void removeMacrosInGlobalScope();
|
||||||
|
|
Loading…
Reference in New Issue