1 // -*- ObjC -*-
2 @class FwdDecl;
3 
4 @interface ObjCClass {
5   int ivar;
6 }
7 + classMethod;
8 - instanceMethodWithInt:(int)i;
9 - (struct OpaqueData*) getSomethingOpaque;
10 @property int property;
11 @end
12 
13 @interface ObjCClassWithPrivateIVars {
14   int public_ivar;
15 }
16 @end
17 
18 @interface ObjCClass (Category)
19 - categoryMethod;
20 @end
21 
22 @protocol ObjCProtocol
23 
24 typedef enum {
25   e0 = 0
26 }  InnerEnum;
27 
28 + (InnerEnum)protocolMethod;
29 
30 @end
31 
32 struct FwdDeclared;
33 struct FwdDeclared {
34   int i;
35 };
36 struct PureForwardDecl;
37 
38 typedef union { int i; } TypedefUnion;
39 typedef enum { e1 = 1 } TypedefEnum;
40 typedef struct { int i; } TypedefStruct;
41 
42 union { int i; } GlobalUnion;
43 struct { int i; } GlobalStruct;
44 enum { e2 = 2 } GlobalEnum;
45