summaryrefslogtreecommitdiff
path: root/src/shared/cplusplus
diff options
context:
space:
mode:
Diffstat (limited to 'src/shared/cplusplus')
-rw-r--r--src/shared/cplusplus/Parser.cpp30
-rw-r--r--src/shared/cplusplus/Parser.h1
2 files changed, 31 insertions, 0 deletions
diff --git a/src/shared/cplusplus/Parser.cpp b/src/shared/cplusplus/Parser.cpp
index 572c9f6665..8f6cc63f68 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 d99d8d27fc..9a12d7e845 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);