summaryrefslogtreecommitdiffstats
path: root/src/tools
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@digia.com>2014-01-03 14:29:41 +0100
committerSimon Hausmann <simon.hausmann@digia.com>2014-01-03 14:30:21 +0100
commitb5ab7ee0d78a30863e3d11bd2ba10ba5f4854bf5 (patch)
treed4ab3471f9f92e153fe320e0435a5740c794746b /src/tools
parentad9554a7f2d4b8a2af3efabc7bc69b9a0ae3751d (diff)
parentaff3e3c4a20aae52fdafaede8dfcbde2bc990104 (diff)
Merge remote-tracking branch 'origin/stable' into dev
Diffstat (limited to 'src/tools')
-rw-r--r--src/tools/qdoc/cppcodeparser.cpp22
1 files changed, 16 insertions, 6 deletions
diff --git a/src/tools/qdoc/cppcodeparser.cpp b/src/tools/qdoc/cppcodeparser.cpp
index cec042f92b..bb403bd4d9 100644
--- a/src/tools/qdoc/cppcodeparser.cpp
+++ b/src/tools/qdoc/cppcodeparser.cpp
@@ -1916,6 +1916,16 @@ bool CppCodeParser::matchProperty(InnerNode *parent)
QString key = previousLexeme();
QString value;
+ // Keywords with no associated values
+ if (key == "CONSTANT") {
+ property->setConstant();
+ continue;
+ }
+ else if (key == "FINAL") {
+ property->setFinal();
+ continue;
+ }
+
if (match(Tok_Ident) || match(Tok_Number)) {
value = previousLexeme();
}
@@ -1966,7 +1976,7 @@ bool CppCodeParser::matchProperty(InnerNode *parent)
if (ok)
property->setRevision(revision);
else
- parent->doc().location().warning(tr("Invalid revision number: %1").arg(value));
+ location().warning(tr("Invalid revision number: %1").arg(value));
} else if (key == "SCRIPTABLE") {
QString v = value.toLower();
if (v == "true")
@@ -1978,10 +1988,6 @@ bool CppCodeParser::matchProperty(InnerNode *parent)
property->setRuntimeScrFunc(value);
}
}
- else if (key == "CONSTANT")
- property->setConstant();
- else if (key == "FINAL")
- property->setFinal();
}
match(Tok_RightParen);
return true;
@@ -2061,7 +2067,11 @@ bool CppCodeParser::matchDeclList(InnerNode *parent)
case Tok_Q_PROPERTY:
case Tok_Q_PRIVATE_PROPERTY:
case Tok_QDOC_PROPERTY:
- matchProperty(parent);
+ if (!matchProperty(parent)) {
+ location().warning(tr("Failed to parse token %1 in property declaration").arg(lexeme()));
+ skipTo(Tok_RightParen);
+ match(Tok_RightParen);
+ }
break;
case Tok_Q_DECLARE_SEQUENTIAL_ITERATOR:
readToken();