diff options
author | Christian Kamm <christian.d.kamm@nokia.com> | 2011-10-25 13:42:07 +0200 |
---|---|---|
committer | Christian Kamm <christian.d.kamm@nokia.com> | 2011-10-25 14:30:03 +0200 |
commit | 49fbe56deff6380884476a74bdb2e4a3e122b611 (patch) | |
tree | 87a91789778e5987e334ba3d3dff4d742027b237 /src | |
parent | 1b76f67d7671a06a1bc96f05cb5b925f16e82f93 (diff) | |
download | qt-creator-49fbe56deff6380884476a74bdb2e4a3e122b611.tar.gz |
C++ parser: Don't fail on REVISION in Q_PROPERTY.
Change-Id: Ia7407969dc56308fe3eb843e97b93e65eb235186
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/libs/3rdparty/cplusplus/Bind.cpp | 2 | ||||
-rw-r--r-- | src/libs/3rdparty/cplusplus/Parser.cpp | 1 | ||||
-rw-r--r-- | src/libs/3rdparty/cplusplus/QtContextKeywords.cpp | 17 | ||||
-rw-r--r-- | src/libs/3rdparty/cplusplus/QtContextKeywords.h | 3 |
4 files changed, 22 insertions, 1 deletions
diff --git a/src/libs/3rdparty/cplusplus/Bind.cpp b/src/libs/3rdparty/cplusplus/Bind.cpp index 32420271b9..7301686882 100644 --- a/src/libs/3rdparty/cplusplus/Bind.cpp +++ b/src/libs/3rdparty/cplusplus/Bind.cpp @@ -1909,6 +1909,8 @@ bool Bind::visit(QtPropertyDeclarationAST *ast) flags |= QtPropertyDeclaration::ResetFunction; } else if (name == "NOTIFY") { flags |= QtPropertyDeclaration::NotifyFunction; + } else if (name == "REVISION") { + // ### handle REVISION property } else if (name == "DESIGNABLE") { qtPropertyAttribute(translationUnit(), it->value->expression, &flags, QtPropertyDeclaration::DesignableFlag, QtPropertyDeclaration::DesignableFunction); diff --git a/src/libs/3rdparty/cplusplus/Parser.cpp b/src/libs/3rdparty/cplusplus/Parser.cpp index 747491d5cc..d0e9dc7c60 100644 --- a/src/libs/3rdparty/cplusplus/Parser.cpp +++ b/src/libs/3rdparty/cplusplus/Parser.cpp @@ -1999,6 +1999,7 @@ bool Parser::parseQtPropertyDeclaration(DeclarationAST *&node) case Token_WRITE: case Token_RESET: case Token_NOTIFY: + case Token_REVISION: case Token_DESIGNABLE: case Token_SCRIPTABLE: case Token_STORED: diff --git a/src/libs/3rdparty/cplusplus/QtContextKeywords.cpp b/src/libs/3rdparty/cplusplus/QtContextKeywords.cpp index f4f7a7d100..cc4fdff1f1 100644 --- a/src/libs/3rdparty/cplusplus/QtContextKeywords.cpp +++ b/src/libs/3rdparty/cplusplus/QtContextKeywords.cpp @@ -110,6 +110,23 @@ static inline int classify8(const char *s) { } } } + if (s[0] == 'R') { + if (s[1] == 'E') { + if (s[2] == 'V') { + if (s[3] == 'I') { + if (s[4] == 'S') { + if (s[5] == 'I') { + if (s[6] == 'O') { + if (s[7] == 'N') { + return Token_REVISION; + } + } + } + } + } + } + } + } return Token_not_Qt_context_keyword; } diff --git a/src/libs/3rdparty/cplusplus/QtContextKeywords.h b/src/libs/3rdparty/cplusplus/QtContextKeywords.h index f3ea763986..b84ccf6ffc 100644 --- a/src/libs/3rdparty/cplusplus/QtContextKeywords.h +++ b/src/libs/3rdparty/cplusplus/QtContextKeywords.h @@ -17,7 +17,8 @@ enum { Token_STORED, Token_CONSTANT, Token_DESIGNABLE, - Token_SCRIPTABLE + Token_SCRIPTABLE, + Token_REVISION }; CPLUSPLUS_EXPORT int classifyQtContextKeyword(const char *s, int n); |