diff --git a/shared/cplusplus/Parser.cpp b/shared/cplusplus/Parser.cpp
index 05836e9fca0e8d30fe92cf484c4b97a725d0c886..e863de5a941bfa0dec5db731372fb5d032f999ae 100644
--- a/shared/cplusplus/Parser.cpp
+++ b/shared/cplusplus/Parser.cpp
@@ -395,6 +395,28 @@ bool Parser::parseDeclaration(DeclarationAST *&node)
     case T_EXPORT:
         return parseTemplateDeclaration(node);
 
+    // objc++
+    case T_AT_CLASS:
+        return parseObjCClassDeclaration(node);
+
+    case T_AT_INTERFACE:
+        return parseObjCInterfaceDeclaration(node);
+
+    case T_AT_PROTOCOL:
+        return parseObjCProtocolDeclaration(node);
+
+    case T_AT_END:
+        return parseObjCEndDeclaration(node);
+
+    case T_AT_COMPATIBILITY_ALIAS:
+        return parseObjCAliasDeclaration(node);
+
+    case T_AT_SYNTHESIZE:
+        return parseObjCPropertySynthesize(node);
+
+    case T_AT_DYNAMIC:
+        return parseObjCPropertyDynamic(node);
+
     default:
         if (LA() == T_EXTERN && LA(2) == T_TEMPLATE)
             return parseTemplateDeclaration(node);
@@ -3261,4 +3283,39 @@ bool Parser::parseThrowExpression(ExpressionAST *&node)
     return false;
 }
 
+bool Parser::parseObjCClassDeclaration(DeclarationAST *&node)
+{
+    return false;
+}
+
+bool Parser::parseObjCInterfaceDeclaration(DeclarationAST *&node)
+{
+    return false;
+}
+
+bool Parser::parseObjCProtocolDeclaration(DeclarationAST *&node)
+{
+    return false;
+}
+
+bool Parser::parseObjCEndDeclaration(DeclarationAST *&node)
+{
+    return false;
+}
+
+bool Parser::parseObjCAliasDeclaration(DeclarationAST *&node)
+{
+    return false;
+}
+
+bool Parser::parseObjCPropertySynthesize(DeclarationAST *&node)
+{
+    return false;
+}
+
+bool Parser::parseObjCPropertyDynamic(DeclarationAST *&node)
+{
+    return false;
+}
+
 CPLUSPLUS_END_NAMESPACE
diff --git a/shared/cplusplus/Parser.h b/shared/cplusplus/Parser.h
index 6059aa683753986fef62d7a58dc7d3d0db2e5f56..f0dc3c7a9de63bf95269e4ec170defd3e89affef 100644
--- a/shared/cplusplus/Parser.h
+++ b/shared/cplusplus/Parser.h
@@ -203,6 +203,15 @@ public:
     bool parseUsingDirective(DeclarationAST *&node);
     bool parseWhileStatement(StatementAST *&node);
 
+    // ObjC++
+    bool parseObjCClassDeclaration(DeclarationAST *&node);
+    bool parseObjCInterfaceDeclaration(DeclarationAST *&node);
+    bool parseObjCProtocolDeclaration(DeclarationAST *&node);
+    bool parseObjCEndDeclaration(DeclarationAST *&node);
+    bool parseObjCAliasDeclaration(DeclarationAST *&node);
+    bool parseObjCPropertySynthesize(DeclarationAST *&node);
+    bool parseObjCPropertyDynamic(DeclarationAST *&node);
+
     // Qt MOC run
     bool parseQtMethod(ExpressionAST *&node);