From 7bfb1fb545a03e3c28d99887904629a36e5e3dde Mon Sep 17 00:00:00 2001 From: Simon Martin Date: Mon, 6 Jul 2015 23:37:16 +0200 Subject: [PATCH] Simplify the code handling C++0x typed enumerations. --- lib/tokenize.cpp | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/lib/tokenize.cpp b/lib/tokenize.cpp index 0863daaf9..e8fe0205f 100644 --- a/lib/tokenize.cpp +++ b/lib/tokenize.cpp @@ -7593,22 +7593,15 @@ void Tokenizer::simplifyEnum() if (tok->next()->str() == ":") { tok = tok->next(); - if (!tok->next() || !tok->next()->isName()) { - syntaxError(tok); - return; // can't recover - } + typeTokenStart = tok->next(); + typeTokenEnd = 0; - tok = tok->next(); - typeTokenStart = tok; - typeTokenEnd = typeTokenStart; - - while (typeTokenEnd->next() && (typeTokenEnd->next()->str() == "::" || - Token::Match(typeTokenEnd->next(), "%type%"))) { - typeTokenEnd = typeTokenEnd->next(); + while (tok->next() && Token::Match(tok->next(), "::|%type%")) { + typeTokenEnd = tok->next(); tok = tok->next(); } - if (!tok->next()) { + if (!tok->next() || !typeTokenEnd) { syntaxError(tok); return; // can't recover }