diff options
Diffstat (limited to 'docs/application/type.md')
| -rw-r--r-- | docs/application/type.md | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/docs/application/type.md b/docs/application/type.md index 40546c1..793fb14 100644 --- a/docs/application/type.md +++ b/docs/application/type.md @@ -9,28 +9,33 @@ typedef enum : uint8_t { // ... } kpl_type_template; -typedef enum { +typedef enum : uint8_t { CONST = 1 << 0, EMPTY = 1 << 1, REF = 1 << 2, - SHARED = 1 << 3 + SHARED = 1 << 3, + RETURN = 1 << 4 } kpl_type_qualifiers; typedef union { // 64 Bytes Max } kpl_type_body; -typedef struct { +typedef struct _kpl_type { kpl_type_template template; uint8_t qualifiers; uint16_t modifiers; - uint16_t token_length, token_line; - uint32_t token_position; - _Atomic int32_t ref_count; - kpl_ptr self, prev, next; - kpl_namespace_module *module; + union { + struct { + uint16_t length, line; + uint32_t position, module_id; + } token; + struct { + int32_t id, tree_weight; + } var; + } meta; + _Atomic ssize_t ref_count; + struct _kpl_type *prev, *next; kpl_type_body body; } kpl_type; - -// TODO SLAB WITH POOL ``` |
