2022-11-20 05:07:22 +00:00
|
|
|
#ifndef COMPILER_COBJC_H
|
|
|
|
#define COMPILER_COBJC_H
|
|
|
|
|
|
|
|
#include "compiler/common.h"
|
2022-12-29 12:32:55 +00:00
|
|
|
#include "compiler/objc.h"
|
|
|
|
|
|
|
|
extern Type *cobjc_type_class;
|
|
|
|
extern Type *cobjc_type_id;
|
|
|
|
extern Type *cobjc_type_sel;
|
|
|
|
extern TypeClass *cobjc_currentclass;
|
|
|
|
extern ObjCSelector **cobjc_selhashtable;
|
|
|
|
extern BClassList *cobjc_classdefs;
|
|
|
|
extern ObjCProtocol *cobjc_protocols;
|
|
|
|
extern long cobjc_selrefcount;
|
|
|
|
extern long cobjc_classrefcount;
|
|
|
|
extern long cobjc_stringcount;
|
|
|
|
extern Boolean cobjc_encodemethod;
|
|
|
|
|
|
|
|
extern void CObjC_Setup(void);
|
|
|
|
extern void CObjC_Cleanup(void);
|
|
|
|
extern void CObjC_GenerateModule(void);
|
|
|
|
extern Type *CObjC_GetObjCType_id(Boolean flag);
|
|
|
|
extern Boolean CObjC_IsType_id(Type *type);
|
|
|
|
extern Boolean CObjC_IsCompatibleType(Type *a, Type *b);
|
|
|
|
extern void CObjC_TranslateSelectorToken(void);
|
|
|
|
extern void CObjC_ParseDefs(TypeStruct *tstruct);
|
|
|
|
extern Type *CObjC_ParseID(void);
|
|
|
|
extern Type *CObjC_ParseTypeProtocol(TypeClass *tclass);
|
|
|
|
extern void CObjC_ParseInterface(void);
|
|
|
|
extern void CObjC_ParseImplementation(void);
|
|
|
|
extern void CObjC_ParseProtocol(void);
|
|
|
|
extern void CObjC_ParseClassDeclaration(void);
|
2023-01-11 22:29:53 +00:00
|
|
|
extern void *CObjC_ParseIdentifier(/* unknown args */);
|
2022-12-29 12:32:55 +00:00
|
|
|
extern ENode *CObjC_MakeSendMsgExpr(ENode *objexpr, TypeClass *tclass, ObjCNamedArg *namedArgs, ENodeList *unnamedArgs, UInt8 calltype, Boolean isSuper);
|
|
|
|
extern ENode *CObjC_ParseMessageExpression(void);
|
|
|
|
extern ENode *CObjC_ParseEncodeExpression(void);
|
|
|
|
extern ENode *CObjC_ParseAtExpression(void);
|
|
|
|
extern ENode *CObjC_ParseProtocolExpression(void);
|
|
|
|
extern ENode *CObjC_ParseSelectorExpression(void);
|
2022-11-20 05:07:22 +00:00
|
|
|
|
|
|
|
#endif
|