1*50fd1a87SAdrian Prantl // -*- ObjC -*- 242ce2d3bSAdrian Prantl @class FwdDecl; 342ce2d3bSAdrian Prantl 4748a6cd1SAdrian Prantl @interface ObjCClass { 5748a6cd1SAdrian Prantl int ivar; 6748a6cd1SAdrian Prantl } 7748a6cd1SAdrian Prantl + classMethod; 8748a6cd1SAdrian Prantl - instanceMethodWithInt:(int)i; 9335f5c7eSAdrian Prantl - (struct OpaqueData*) getSomethingOpaque; 10748a6cd1SAdrian Prantl @property int property; 11748a6cd1SAdrian Prantl @end 12748a6cd1SAdrian Prantl 13*50fd1a87SAdrian Prantl @interface ObjCClassWithPrivateIVars { 14*50fd1a87SAdrian Prantl int public_ivar; 15*50fd1a87SAdrian Prantl } 16*50fd1a87SAdrian Prantl @end 17*50fd1a87SAdrian Prantl 18748a6cd1SAdrian Prantl @interface ObjCClass (Category) 19748a6cd1SAdrian Prantl - categoryMethod; 20748a6cd1SAdrian Prantl @end 21d43fe0bdSAdrian Prantl 22d43fe0bdSAdrian Prantl @protocol ObjCProtocol 23d43fe0bdSAdrian Prantl 24d43fe0bdSAdrian Prantl typedef enum { 25d43fe0bdSAdrian Prantl e0 = 0 26d43fe0bdSAdrian Prantl } InnerEnum; 27d43fe0bdSAdrian Prantl 28d43fe0bdSAdrian Prantl + (InnerEnum)protocolMethod; 29d43fe0bdSAdrian Prantl 30d43fe0bdSAdrian Prantl @end 318c0e5051SAdrian Prantl 328c0e5051SAdrian Prantl struct FwdDeclared; 338c0e5051SAdrian Prantl struct FwdDeclared { 348c0e5051SAdrian Prantl int i; 358c0e5051SAdrian Prantl }; 368c0e5051SAdrian Prantl struct PureForwardDecl; 378c0e5051SAdrian Prantl 388c0e5051SAdrian Prantl typedef union { int i; } TypedefUnion; 398c0e5051SAdrian Prantl typedef enum { e1 = 1 } TypedefEnum; 408c0e5051SAdrian Prantl typedef struct { int i; } TypedefStruct; 418c0e5051SAdrian Prantl 428c0e5051SAdrian Prantl union { int i; } GlobalUnion; 438c0e5051SAdrian Prantl struct { int i; } GlobalStruct; 448c0e5051SAdrian Prantl enum { e2 = 2 } GlobalEnum; 45