summaryrefslogtreecommitdiff
path: root/src/shared/cplusplus/Parser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/shared/cplusplus/Parser.cpp')
-rw-r--r--src/shared/cplusplus/Parser.cpp26
1 files changed, 11 insertions, 15 deletions
diff --git a/src/shared/cplusplus/Parser.cpp b/src/shared/cplusplus/Parser.cpp
index fd2efcf978..845fabcfe5 100644
--- a/src/shared/cplusplus/Parser.cpp
+++ b/src/shared/cplusplus/Parser.cpp
@@ -1806,34 +1806,30 @@ bool Parser::parseQtPropertyDeclaration(DeclarationAST *&node)
case Token_READ:
case Token_WRITE:
case Token_RESET:
- case Token_NOTIFY: {
- QtPropertyDeclarationNamingItemAST *nItem = new (_pool) QtPropertyDeclarationNamingItemAST;
- nItem->item_name_token = consumeToken();
- nItem->name_value = new (_pool) SimpleNameAST;
- match(T_IDENTIFIER, &nItem->name_value->identifier_token);
- item = nItem;
- break;
- }
-
+ case Token_NOTIFY:
case Token_DESIGNABLE:
case Token_SCRIPTABLE:
case Token_STORED:
case Token_USER: {
- QtPropertyDeclarationBoolItemAST *bItem = new (_pool) QtPropertyDeclarationBoolItemAST;
- bItem->item_name_token = consumeToken();
+ unsigned item_name_token = consumeToken();
ExpressionAST *expr = 0;
- if (parseBoolLiteral(expr)) {
- bItem->bool_value = expr->asBoolLiteral();
+ if (parsePostfixExpression(expr)) {
+ QtPropertyDeclarationItemAST *bItem =
+ new (_pool) QtPropertyDeclarationItemAST;
+ bItem->item_name_token = item_name_token;
+ bItem->expression = expr;
item = bItem;
} else {
- _translationUnit->error(cursor(), "expected `true' or `false' before `%s'", tok().spell());
+ _translationUnit->error(cursor(),
+ "expected expression before `%s'",
+ tok().spell());
}
break;
}
case Token_CONSTANT:
case Token_FINAL: {
- QtPropertyDeclarationFlaggingItemAST *fItem = new (_pool) QtPropertyDeclarationFlaggingItemAST;
+ QtPropertyDeclarationItemAST *fItem = new (_pool) QtPropertyDeclarationItemAST;
fItem->item_name_token = consumeToken();
item = fItem;
break;