Add c types, int is default type

This commit is contained in:
Krzosa Karol
2023-04-16 15:02:25 +02:00
parent a2662d1cd8
commit 7152a710cc
8 changed files with 125 additions and 37 deletions

View File

@@ -125,17 +125,34 @@ for i in meta.token_simple_expr:
pctx->type__untyped_float = {TYPE_UNTYPED_FLOAT, sizeof(double), __alignof(double)};
pctx->type__char = {TYPE_CHAR, sizeof(char), __alignof(char)};
pctx->type__uchar = {TYPE_UCHAR, sizeof(unsigned char), __alignof(unsigned char), true};
pctx->type__int = {TYPE_INT, sizeof(int), __alignof(int)};
pctx->type__uint = {TYPE_UINT, sizeof(unsigned), __alignof(unsigned), true};
pctx->type__long = {TYPE_LONG, sizeof(long), __alignof(long)};
pctx->type__ulong = {TYPE_ULONG, sizeof(unsigned long), __alignof(unsigned long), true};
pctx->type__llong = {TYPE_LLONG, sizeof(long long), __alignof(long long)};
pctx->type__ullong = {TYPE_ULLONG, sizeof(unsigned long long), __alignof(unsigned long long), true};
pctx->type__short = {TYPE_SHORT, sizeof(short), __alignof(short)};
pctx->type__ushort = {TYPE_USHORT, sizeof(unsigned short), __alignof(unsigned short), true};
pctx->type_char = &pctx->type__char;
pctx->type_uchar = &pctx->type__uchar;
pctx->type_int = &pctx->type__int;
pctx->type_uint = &pctx->type__uint;
pctx->type_long = &pctx->type__long;
pctx->type_ulong = &pctx->type__ulong;
pctx->type_llong = &pctx->type__llong;
pctx->type_ullong = &pctx->type__ullong;
pctx->type_short = &pctx->type__short;
pctx->type_ushort = &pctx->type__ushort;
pctx->type_void = &pctx->type__void;
// pctx->type__string = {TYPE_STRING, sizeof(String), __alignof(String)};
// pctx->type_any; // Needs to be inited at runtime
// pctx->type_string = &pctx->type__string;
pctx->type_type = &pctx->type__type;
// pctx->type_string = &pctx->type__string;
pctx->type_bool = &pctx->type__bool;
pctx->type_f32 = &pctx->type__f32;
@@ -373,12 +390,23 @@ GetTypeInfo :: (type: Type): *Type_Info
)"_s;
{
insert_builtin_type_into_scope(module, "char"_s, pctx->type_char);
insert_builtin_type_into_scope(module, "uchar"_s, pctx->type_uchar);
insert_builtin_type_into_scope(module, "int"_s, pctx->type_int);
insert_builtin_type_into_scope(module, "uint"_s, pctx->type_uint);
insert_builtin_type_into_scope(module, "long"_s, pctx->type_long);
insert_builtin_type_into_scope(module, "ulong"_s, pctx->type_ulong);
insert_builtin_type_into_scope(module, "llong"_s, pctx->type_llong);
insert_builtin_type_into_scope(module, "ullong"_s, pctx->type_ullong);
insert_builtin_type_into_scope(module, "short"_s, pctx->type_short);
insert_builtin_type_into_scope(module, "ushort"_s, pctx->type_ushort);
insert_builtin_type_into_scope(module, "S64"_s, pctx->type_s64);
insert_builtin_type_into_scope(module, "S32"_s, pctx->type_s32);
insert_builtin_type_into_scope(module, "S16"_s, pctx->type_s16);
insert_builtin_type_into_scope(module, "S8"_s, pctx->type_s8);
insert_builtin_type_into_scope(module, "int"_s, pctx->type_int);
insert_builtin_type_into_scope(module, "char"_s, pctx->type_char);
insert_builtin_type_into_scope(module, "U64"_s, pctx->type_u64);
insert_builtin_type_into_scope(module, "U32"_s, pctx->type_u32);
insert_builtin_type_into_scope(module, "U16"_s, pctx->type_u16);