diff options
author | Ash Wolf <ninji@wuffs.org> | 2022-11-07 03:06:21 +0000 |
---|---|---|
committer | Ash Wolf <ninji@wuffs.org> | 2022-11-07 03:06:21 +0000 |
commit | 9a46dd0e2e80790d9848c0bbd718932a27c23269 (patch) | |
tree | e7a8e976c7138d50a69ff4778c4e8572efd94452 /includes/compiler/objects.h | |
parent | d0b9848c54e6f85ab713f059dcd1ddef7e57caa6 (diff) | |
download | MWCC-9a46dd0e2e80790d9848c0bbd718932a27c23269.tar.gz MWCC-9a46dd0e2e80790d9848c0bbd718932a27c23269.zip |
honk
Diffstat (limited to '')
-rw-r--r-- | includes/compiler/objects.h | 45 |
1 files changed, 43 insertions, 2 deletions
diff --git a/includes/compiler/objects.h b/includes/compiler/objects.h index 32552ec..5f01d26 100644 --- a/includes/compiler/objects.h +++ b/includes/compiler/objects.h @@ -47,7 +47,7 @@ struct ObjType { ObjectType otype; AccessType access; Type *type; - void *unk6; + UInt32 qual; }; @@ -184,6 +184,25 @@ struct Object { } u; }; +enum { + OBJECT_FLAGS_UNUSED = 1, + OBJECT_FLAGS_2 = 2, + OBJECT_FLAGS_4 = 4, + OBJECT_FLAGS_8 = 8, + OBJECT_FLAGS_10 = 0x10, // internal + OBJECT_FLAGS_20 = 0x20, // import + OBJECT_FLAGS_40 = 0x40, // export + OBJECT_FLAGS_60 = 0x60 // lib export +}; + +enum { + OBJECT_SCLASS_101 = 0x101, + OBJECT_SCLASS_102 = 0x102, + OBJECT_SCLASS_103 = 0x103, + OBJECT_SCLASS_104 = 0x104, + OBJECT_SCLASS_12B = 0x12B +}; + #define OBJ_BASE(obj) ((ObjBase *) (obj)) #define OBJ_ENUM_CONST(obj) ((ObjEnumConst *) (obj)) #define OBJ_TYPE(obj) ((ObjType *) (obj)) @@ -193,8 +212,30 @@ struct Object { #define OBJ_MEMBER_VAR_PATH(obj) ((ObjMemberVarPath *) (obj)) #define OBJECT(obj) ((Object *) (obj)) -#endif + +struct VarInfo { // OK! + Object *func; + SInt32 usage; + TStreamElement deftoken; + SInt16 varnumber; + Boolean noregister; + Boolean used; + UInt8 flags; + UInt8 rclass; + SInt16 reg; + SInt16 regHi; +}; + +enum { + VarInfoFlag1 = 1, // is parameter? + VarInfoFlag2 = 2, + VarInfoFlag4 = 4, + VarInfoFlag40 = 0x40, + VarInfoFlag80 = 0x80 +}; #ifdef __MWERKS__ #pragma options align=reset #endif + +#endif |