Implementation of AST for @protocol expression.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43075 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/Sema/Sema.h b/Sema/Sema.h
index abe9250..596173d 100644
--- a/Sema/Sema.h
+++ b/Sema/Sema.h
@@ -280,6 +280,9 @@
   /// GetObjcSelType - Getter for the build-in "SEL" type.
   QualType GetObjcSelType(SourceLocation Loc = SourceLocation());
   
+  /// GetObjcSelType - Getter for the build-in "Protocol *" type.
+  QualType GetObjcProtoType(SourceLocation Loc = SourceLocation());
+  
   /// AddInstanceMethodToGlobalPool - All instance methods in a translation
   /// unit are added to a global pool. This allows us to efficiently associate
   /// a selector with a method declaraation for purposes of typechecking
@@ -452,6 +455,13 @@
                                                  SourceLocation LParenLoc,
                                                  SourceLocation RParenLoc);
   
+  // ParseObjCProtocolExpression - Build protocol expression for @protocol
+  virtual ExprResult ParseObjCProtocolExpression(IdentifierInfo * ProtocolName,
+                                                 SourceLocation AtLoc,
+                                                 SourceLocation ProtoLoc,
+                                                 SourceLocation LParenLoc,
+                                                 SourceLocation RParenLoc);
+  
   // Objective-C declarations.
   virtual DeclTy *ActOnStartClassInterface(
 		    SourceLocation AtInterafceLoc,