get_type_info

This commit is contained in:
Krzosa Karol
2022-06-18 23:39:46 +02:00
parent 071a8de6a4
commit 523760dc0a
3 changed files with 37 additions and 28 deletions

View File

@@ -16,32 +16,32 @@ Any :: struct
Type_ID :: S32
Type_Info_Kind :: enum
TYPE_NONE
TYPE_S64 :: 7 // FIRST_NUMERIC
TYPE_S32
TYPE_S16
TYPE_S8
TYPE_INT
TYPE_CHAR
TYPE_U64
TYPE_U32
TYPE_U16
TYPE_U8
TYPE_F32
TYPE_F64
TYPE_POINTER
TYPE_BOOL // LAST_NUMERIC
TYPE_STRING
TYPE_VOID
TYPE_ARRAY
TYPE_LAMBDA
TYPE_STRUCT
TYPE_UNION
TYPE_ENUM
TYPE_TYPE
TYPE_SLICE
TYPE_TUPLE
TYPE_ANY
NONE
S64 :: 7 // FIRST_NUMERIC
S32
S16
S8
INT
CHAR
U64
U32
U16
U8
F32
F64
POINTER
BOOL // LAST_NUMERIC
STRING
VOID
ARRAY
LAMBDA
STRUCT
UNION
ENUM
TYPE
SLICE
TUPLE
ANY
Type_Info_Struct_Member :: struct
name: String
@@ -63,5 +63,10 @@ Type_Info :: struct
lambda_arguments: *Type_Info
lambda_return: Type_ID
type_infos_len: U32 #foreign
type_infos_len: S32 #foreign
type_infos : *Type_Info #foreign
get_type_info :: (id: Type_ID): *Type_Info
if id >= type_infos_len
return 0
return type_infos + id