summaryrefslogtreecommitdiff
path: root/docs/application/type.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/application/type.md')
-rw-r--r--docs/application/type.md25
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
```