summaryrefslogtreecommitdiff
path: root/includes/compiler/CSOM.h
diff options
context:
space:
mode:
authorAsh Wolf <ninji@wuffs.org>2022-12-29 12:32:55 +0000
committerAsh Wolf <ninji@wuffs.org>2022-12-29 12:32:55 +0000
commitfcfbafff31869ed808bff0639532db1828660e92 (patch)
tree7425b346b031c4cb47a06250b3f6f950374d44ae /includes/compiler/CSOM.h
parentbc1321735c15104ffad195e1509cab5f3a044260 (diff)
downloadMWCC-fcfbafff31869ed808bff0639532db1828660e92.tar.gz
MWCC-fcfbafff31869ed808bff0639532db1828660e92.zip
dump lots more code
Diffstat (limited to '')
-rw-r--r--includes/compiler/CSOM.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/includes/compiler/CSOM.h b/includes/compiler/CSOM.h
index 560993b..36c3ae7 100644
--- a/includes/compiler/CSOM.h
+++ b/includes/compiler/CSOM.h
@@ -2,5 +2,42 @@
#define COMPILER_CSOM_H
#include "compiler/common.h"
+#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);
#endif