summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristian Kamm <christian.d.kamm@nokia.com>2011-10-25 13:42:07 +0200
committerChristian Kamm <christian.d.kamm@nokia.com>2011-10-25 14:30:03 +0200
commit49fbe56deff6380884476a74bdb2e4a3e122b611 (patch)
tree87a91789778e5987e334ba3d3dff4d742027b237 /src
parent1b76f67d7671a06a1bc96f05cb5b925f16e82f93 (diff)
downloadqt-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.cpp2
-rw-r--r--src/libs/3rdparty/cplusplus/Parser.cpp1
-rw-r--r--src/libs/3rdparty/cplusplus/QtContextKeywords.cpp17
-rw-r--r--src/libs/3rdparty/cplusplus/QtContextKeywords.h3
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);