Author | Jakob Wakeling <[email protected]> |
Date | 2022-01-25 12:38:41 |
Commit | 092464359b4127320fbed1380200df5f90c3f8b9 |
Parent | 4f9f3f4b1d18755d07b7f6d655ee8c4b21e05ff9 |
symbol: Add a symbol kind for types
Diffstat
M | src/init.c | | | 50 | +++++++++++++++++++++++++------------------------- |
M | src/symbol.h | | | 4 | +++- |
2 files changed, 28 insertions, 26 deletions
diff --git a/src/init.c b/src/init.c index cfc5067..74741f3 100644 --- a/src/init.c +++ b/src/init.c @@ -13,36 +13,35 @@ static sym kwds[] = { /* Boolean Types */ - { 0, 0, 0, 0, "b8", &types[TY_B8], { 0 }, NULL }, - { 0, 0, 0, 0, "b16", &types[TY_B16], { 0 }, NULL }, - { 0, 0, 0, 0, "b32", &types[TY_B32], { 0 }, NULL }, - { 0, 0, 0, 0, "b64", &types[TY_B64], { 0 }, NULL }, - { 0, 0, 0, 0, "bool", &types[TY_B8], { 0 }, NULL }, + { SK_TYPE, 0, 0, 0, "b8", &types[TY_B8], { 0 }, NULL }, + { SK_TYPE, 0, 0, 0, "b16", &types[TY_B16], { 0 }, NULL }, + { SK_TYPE, 0, 0, 0, "b32", &types[TY_B32], { 0 }, NULL }, + { SK_TYPE, 0, 0, 0, "b64", &types[TY_B64], { 0 }, NULL }, + { SK_TYPE, 0, 0, 0, "bool", &types[TY_B8], { 0 }, NULL }, /* Integer Types */ - { 0, 0, 0, 0, "u8", &types[TY_U8], { 0 }, NULL }, - { 0, 0, 0, 0, "u16", &types[TY_U16], { 0 }, NULL }, - { 0, 0, 0, 0, "u32", &types[TY_U32], { 0 }, NULL }, - { 0, 0, 0, 0, "u64", &types[TY_U64], { 0 }, NULL }, - { 0, 0, 0, 0, "u128", &types[TY_U128], { 0 }, NULL }, - { 0, 0, 0, 0, "uint", &types[TY_UINT], { 0 }, NULL }, + { SK_TYPE, 0, 0, 0, "u8", &types[TY_U8], { 0 }, NULL }, + { SK_TYPE, 0, 0, 0, "u16", &types[TY_U16], { 0 }, NULL }, + { SK_TYPE, 0, 0, 0, "u32", &types[TY_U32], { 0 }, NULL }, + { SK_TYPE, 0, 0, 0, "u64", &types[TY_U64], { 0 }, NULL }, + { SK_TYPE, 0, 0, 0, "u128", &types[TY_U128], { 0 }, NULL }, + { SK_TYPE, 0, 0, 0, "uint", &types[TY_UINT], { 0 }, NULL }, - { 0, 0, 0, 0, "s8", &types[TY_S8], { 0 }, NULL }, - { 0, 0, 0, 0, "s16", &types[TY_S16], { 0 }, NULL }, - { 0, 0, 0, 0, "s32", &types[TY_S32], { 0 }, NULL }, - { 0, 0, 0, 0, "s64", &types[TY_S64], { 0 }, NULL }, - { 0, 0, 0, 0, "s128", &types[TY_S128], { 0 }, NULL }, - { 0, 0, 0, 0, "sint", &types[TY_SINT], { 0 }, NULL }, + { SK_TYPE, 0, 0, 0, "s8", &types[TY_S8], { 0 }, NULL }, + { SK_TYPE, 0, 0, 0, "s16", &types[TY_S16], { 0 }, NULL }, + { SK_TYPE, 0, 0, 0, "s32", &types[TY_S32], { 0 }, NULL }, + { SK_TYPE, 0, 0, 0, "s64", &types[TY_S64], { 0 }, NULL }, + { SK_TYPE, 0, 0, 0, "s128", &types[TY_S128], { 0 }, NULL }, + { SK_TYPE, 0, 0, 0, "sint", &types[TY_SINT], { 0 }, NULL }, /* Floating Point Types */ - { 0, 0, 0, 0, "f16", &types[TY_F32], { 0 }, NULL }, - { 0, 0, 0, 0, "f32", &types[TY_F32], { 0 }, NULL }, - { 0, 0, 0, 0, "f64", &types[TY_F64], { 0 }, NULL }, - { 0, 0, 0, 0, "f128", &types[TY_F128], { 0 }, NULL }, + { SK_TYPE, 0, 0, 0, "f16", &types[TY_F32], { 0 }, NULL }, + { SK_TYPE, 0, 0, 0, "f32", &types[TY_F32], { 0 }, NULL }, + { SK_TYPE, 0, 0, 0, "f64", &types[TY_F64], { 0 }, NULL }, + { SK_TYPE, 0, 0, 0, "f128", &types[TY_F128], { 0 }, NULL }, - /* Keywords */ - { 0, 0, 0, 0, "proc", NULL, { 0 }, NULL }, - { 0, 0, 0, 0, "return", NULL, { 0 }, NULL }, + // { SK_NULL, 0, 0, 0, "proc", NULL, { 0 }, NULL }, + // { SK_NULL, 0, 0, 0, "return", NULL, { 0 }, NULL }, { SK_NULL, 0, 0, 0, NULL, NULL, { 0 }, NULL } }; diff --git a/src/symbol.h b/src/symbol.h index f6d3100..121d39b 100644 --- a/src/symbol.h +++ b/src/symbol.h @@ -13,7 +13,9 @@ #include "value.h" typedef enum { - SK_NULL, SK_PROC, + SK_NULL, SK_TYPE, SK_PROC, + + SK_NASS, /* TODO replace SK_NASS with proper kind(s) */ } sym_k; typedef struct ast_s ast;