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