C++ parser: Don't fail on REVISION in Q_PROPERTY.

Change-Id: Ia7407969dc56308fe3eb843e97b93e65eb235186
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
This commit is contained in:
Christian Kamm
2011-10-25 13:42:07 +02:00
parent 1b76f67d76
commit 49fbe56def
4 changed files with 22 additions and 1 deletions

View File

@@ -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);

View File

@@ -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:

View File

@@ -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;
}

View File

@@ -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);