From b2df9bddec0b11180f196abb1485a1ca913591c7 Mon Sep 17 00:00:00 2001 From: Roberto Raggi <roberto.raggi@nokia.com> Date: Fri, 3 Jul 2009 11:00:36 +0200 Subject: [PATCH] Made foreach a keyword when parsing with qtMocRun --- src/libs/cplusplus/pp-engine.cpp | 2 ++ src/shared/cplusplus/Keywords.cpp | 15 +++++++++++++++ src/shared/cplusplus/Token.cpp | 2 +- 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/libs/cplusplus/pp-engine.cpp b/src/libs/cplusplus/pp-engine.cpp index c614daf45eb..c7688c986bd 100644 --- a/src/libs/cplusplus/pp-engine.cpp +++ b/src/libs/cplusplus/pp-engine.cpp @@ -1435,6 +1435,8 @@ bool Preprocessor::isQtReservedWord(const QByteArray ¯oId) const return true; else if (size == 7 && macroId.at(0) == 's' && macroId == "signals") return true; + else if (size == 7 && macroId.at(0) == 'f' && macroId == "foreach") + return true; else if (size == 5 && macroId.at(0) == 's' && macroId == "slots") return true; return false; diff --git a/src/shared/cplusplus/Keywords.cpp b/src/shared/cplusplus/Keywords.cpp index e26244a0af7..3d8fc434f5e 100644 --- a/src/shared/cplusplus/Keywords.cpp +++ b/src/shared/cplusplus/Keywords.cpp @@ -620,6 +620,21 @@ static inline int classify7(const char *s, bool q) { } } } + else if (q && s[0] == 'f') { + if (s[1] == 'o') { + if (s[2] == 'r') { + if (s[3] == 'e') { + if (s[4] == 'a') { + if (s[5] == 'c') { + if (s[6] == 'h') { + return T_Q_FOREACH; + } + } + } + } + } + } + } else if (q && s[0] == 's') { if (s[1] == 'i') { if (s[2] == 'g') { diff --git a/src/shared/cplusplus/Token.cpp b/src/shared/cplusplus/Token.cpp index 6e5e428c2db..37a95d6cd77 100644 --- a/src/shared/cplusplus/Token.cpp +++ b/src/shared/cplusplus/Token.cpp @@ -90,7 +90,7 @@ static const char *token_names[] = { ("@protected"), ("@protocol"), ("@public"), ("@required"), ("@selector"), ("@synchronized"), ("@synthesize"), ("@throw"), ("@try"), - ("SIGNAL"), ("SLOT"), ("Q_SIGNAL"), ("Q_SLOT"), ("signals"), ("slots") + ("SIGNAL"), ("SLOT"), ("Q_SIGNAL"), ("Q_SLOT"), ("signals"), ("slots"), ("Q_FOREACH") }; Token::Token() : -- GitLab