diff --git a/lib/tokenize.cpp b/lib/tokenize.cpp index 02234059e..7fba23ec6 100644 --- a/lib/tokenize.cpp +++ b/lib/tokenize.cpp @@ -2500,6 +2500,16 @@ bool Tokenizer::tokenize(std::istream &code, tok->next()->deleteNext(); } + // Remove redundant consecutive braces, i.e. '.. { { .. } } ..' -> '.. { .. } ..'. + for (Token *tok = _tokens; tok; ) { + if (Token::simpleMatch(tok, "{ {") && Token::simpleMatch(tok->next()->link(), "} }")) { + //remove internal parentheses + tok->next()->link()->deleteThis(); + tok->deleteNext(); + } else + tok = tok->next(); + } + return validate(); } //--------------------------------------------------------------------------- @@ -4329,16 +4339,13 @@ bool Tokenizer::simplifyTokenList() simplifyFlowControl(); // Remove redundant consecutive braces, i.e. '.. { { .. } } ..' -> '.. { .. } ..'. - { - Token *tok = _tokens; - while (tok) { - if (Token::simpleMatch(tok, "{ {") && Token::simpleMatch(tok->next()->link(), "} }")) { - //remove internal parentheses - tok->next()->link()->deleteThis(); - tok->deleteNext(); - } else - tok = tok->next(); - } + for (Token *tok = _tokens; tok; ) { + if (Token::simpleMatch(tok, "{ {") && Token::simpleMatch(tok->next()->link(), "} }")) { + //remove internal parentheses + tok->next()->link()->deleteThis(); + tok->deleteNext(); + } else + tok = tok->next(); } if (!validate())