2022-11-20 05:07:22 +00:00
|
|
|
#ifndef COMPILER_CSOM_H
|
|
|
|
#define COMPILER_CSOM_H
|
|
|
|
|
|
|
|
#include "compiler/common.h"
|
2022-12-29 12:32:55 +00:00
|
|
|
#include "compiler/som.h"
|
|
|
|
|
|
|
|
#ifdef __MWERKS__
|
|
|
|
#pragma options align=mac68k
|
|
|
|
#endif
|
|
|
|
typedef struct CSOMStub {
|
|
|
|
struct CSOMStub *next;
|
|
|
|
Object *object;
|
|
|
|
TypeClass *tclass;
|
|
|
|
SInt32 offset;
|
|
|
|
UInt8 x10;
|
|
|
|
} CSOMStub;
|
|
|
|
#ifdef __MWERKS__
|
|
|
|
#pragma options align=reset
|
|
|
|
#endif
|
|
|
|
|
|
|
|
extern CSOMStub *csom_stubs;
|
|
|
|
|
|
|
|
extern void CSOM_Setup(Boolean flag);
|
|
|
|
extern void CSOM_Cleanup(void);
|
|
|
|
extern void CSOM_CheckFuncType(TypeFunc *tfunc);
|
|
|
|
extern void CSOM_MakeSOMClass(TypeClass *tclass);
|
|
|
|
extern void CSOM_ClassComplete(TypeClass *tclass);
|
|
|
|
extern void CSOM_GenerateClassStructures(TypeClass *tclass);
|
|
|
|
extern void CSOM_PragmaReleaseOrder(void);
|
|
|
|
extern void CSOM_PragmaClassVersion(void);
|
|
|
|
extern void CSOM_PragmaMetaClass(void);
|
|
|
|
extern void CSOM_PragmaCallStyle(void);
|
|
|
|
extern void CSOM_FixNewDeleteFunctype(TypeFunc *tfunc);
|
|
|
|
extern ENode *CSOM_New(TypeClass *tclass);
|
|
|
|
extern ENode *CSOM_Delete(TypeClass *tclass, ENode *objExpr);
|
|
|
|
extern void CSOM_InitAutoClass(Object *object);
|
|
|
|
extern ENode *CSOM_SOMSelfObjectExpr(TypeClass *tclass);
|
|
|
|
extern void CSOM_InitSOMSelf(TypeClass *tclass, Statement *stmt);
|
|
|
|
extern ENode *CSOM_EnvCheck(ENode *funccall, ENodeList *checkArg);
|
|
|
|
extern ENode *CSOM_MemberVarAccess(BClassList *path, ObjMemberVar *ivar, ENode *thisExpr);
|
|
|
|
extern ENode *CSOM_MethodAccess(BClassList *path, Object *func, Boolean flag);
|
2022-11-20 05:07:22 +00:00
|
|
|
|
|
|
|
#endif
|