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.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/shared/cplusplus/Parser.cpp b/src/shared/cplusplus/Parser.cpp
index 8f6cc63f68..89d540b6d1 100644
--- a/src/shared/cplusplus/Parser.cpp
+++ b/src/shared/cplusplus/Parser.cpp
@@ -2580,7 +2580,7 @@ bool Parser::parseObjCExpression(ExpressionAST *&node)
{
switch (LA()) {
case T_AT_ENCODE:
- break;
+ return parseObjCEncodeExpression(node);
case T_AT_PROTOCOL:
break;
@@ -2600,6 +2600,16 @@ bool Parser::parseObjCExpression(ExpressionAST *&node)
return false;
}
+bool Parser::parseObjCEncodeExpression(ExpressionAST *&)
+{
+ if (LA() != T_AT_ENCODE)
+ return false;
+
+ /*unsigned encode_token = */ consumeToken();
+ parseObjCTypeName();
+ return true;
+}
+
bool Parser::parseNameId(NameAST *&name)
{
unsigned start = cursor();