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.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/shared/cplusplus/Parser.cpp b/src/shared/cplusplus/Parser.cpp
index ba705f9551..6ba6541068 100644
--- a/src/shared/cplusplus/Parser.cpp
+++ b/src/shared/cplusplus/Parser.cpp
@@ -2849,16 +2849,17 @@ bool Parser::parseObjCEncodeExpression(ExpressionAST *&)
return true;
}
-bool Parser::parseObjCProtocolExpression(ExpressionAST *&)
+bool Parser::parseObjCProtocolExpression(ExpressionAST *&node)
{
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);
+ ObjCProtocolExpressionAST *ast = new (_pool) ObjCProtocolExpressionAST;
+ ast->protocol_token = consumeToken();
+ match(T_LPAREN, &(ast->lparen_token));
+ match(T_IDENTIFIER, &(ast->identifier_token));
+ match(T_RPAREN, &(ast->rparen_token));
+ node = ast;
return true;
}