diff --git a/src/shared/cplusplus/Parser.cpp b/src/shared/cplusplus/Parser.cpp index 572c9f6665b41ba8b3366a453d97a286a0cffc57..8f6cc63f68a8f519b8a447a67220617a1a8ae42a 100644 --- a/src/shared/cplusplus/Parser.cpp +++ b/src/shared/cplusplus/Parser.cpp @@ -2556,6 +2556,12 @@ bool Parser::parsePrimaryExpression(ExpressionAST *&node) case T_SLOT: return parseQtMethod(node); + case T_AT_STRING_LITERAL: + case T_AT_ENCODE: + case T_AT_PROTOCOL: + case T_AT_SELECTOR: + return parseObjCExpression(node); + default: { NameAST *name = 0; if (parseNameId(name)) { @@ -2570,6 +2576,30 @@ bool Parser::parsePrimaryExpression(ExpressionAST *&node) return false; } +bool Parser::parseObjCExpression(ExpressionAST *&node) +{ + switch (LA()) { + case T_AT_ENCODE: + break; + + case T_AT_PROTOCOL: + break; + + case T_AT_SELECTOR: + break; + + case T_LBRACKET: + break; + + case T_AT_STRING_LITERAL: + break; + + default: + break; + } // switch + return false; +} + bool Parser::parseNameId(NameAST *&name) { unsigned start = cursor(); diff --git a/src/shared/cplusplus/Parser.h b/src/shared/cplusplus/Parser.h index d99d8d27fc0a395344cb6287138d986561b24f13..9a12d7e845ce0a963a8fd20fc4c306c7967c692e 100644 --- a/src/shared/cplusplus/Parser.h +++ b/src/shared/cplusplus/Parser.h @@ -211,6 +211,7 @@ public: bool parseQtMethod(ExpressionAST *&node); // ObjC++ + bool parseObjCExpression(ExpressionAST *&node); bool parseObjCClassDeclaration(DeclarationAST *&node); bool parseObjCInterface(DeclarationAST *&node, SpecifierAST *attributes = 0);