summaryrefslogtreecommitdiff
path: root/src/shared/cplusplus/Parser.cpp
diff options
context:
space:
mode:
authorRoberto Raggi <qtc-committer@nokia.com>2009-02-03 14:33:25 +0100
committerRoberto Raggi <qtc-committer@nokia.com>2009-02-05 14:30:23 +0100
commitdebe2a0d93411a10ed65dce8c160c10ef19999ba (patch)
tree26bfc636083866f367bcfdf5fe6831d9f2ce7bf3 /src/shared/cplusplus/Parser.cpp
parent26560ca9d23c4939239e1c0675912ec0b9564d1a (diff)
downloadqt-creator-debe2a0d93411a10ed65dce8c160c10ef19999ba.tar.gz
Fixes: Parsing of objc protocol expressions.
Diffstat (limited to 'src/shared/cplusplus/Parser.cpp')
-rw-r--r--src/shared/cplusplus/Parser.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/shared/cplusplus/Parser.cpp b/src/shared/cplusplus/Parser.cpp
index 89d540b6d1..fcddd740a6 100644
--- a/src/shared/cplusplus/Parser.cpp
+++ b/src/shared/cplusplus/Parser.cpp
@@ -2583,7 +2583,7 @@ bool Parser::parseObjCExpression(ExpressionAST *&node)
return parseObjCEncodeExpression(node);
case T_AT_PROTOCOL:
- break;
+ return parseObjCProtocolExpression(node);
case T_AT_SELECTOR:
break;
@@ -2610,6 +2610,19 @@ bool Parser::parseObjCEncodeExpression(ExpressionAST *&)
return true;
}
+bool Parser::parseObjCProtocolExpression(ExpressionAST *&)
+{
+ if (LA() != T_AT_PROTOCOL)
+ return false;
+
+ /*unsigned protocol_token = */ consumeToken();
+ unsigned lparen_token = 0, identifier_token = 0, rparen_token = 0;
+ match(T_LPAREN, &lparen_token);
+ match(T_IDENTIFIER, &identifier_token);
+ match(T_RPAREN, &rparen_token);
+ return true;
+}
+
bool Parser::parseNameId(NameAST *&name)
{
unsigned start = cursor();