diff options
Diffstat (limited to 'src/shared/cplusplus/Parser.cpp')
-rw-r--r-- | src/shared/cplusplus/Parser.cpp | 13 |
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; } |