From cfd7848462aa50e039d73df041eab93f9a48b49f Mon Sep 17 00:00:00 2001 From: A404M Date: Mon, 12 May 2025 01:32:16 +0330 Subject: add type of shape shifter --- src/compiler/lexer.c | 55 ++++++++++++++++++++++++++++++++++------------------ 1 file changed, 36 insertions(+), 19 deletions(-) (limited to 'src/compiler/lexer.c') diff --git a/src/compiler/lexer.c b/src/compiler/lexer.c index edf5805..c540395 100644 --- a/src/compiler/lexer.c +++ b/src/compiler/lexer.c @@ -51,6 +51,7 @@ const char *LEXER_TOKEN_STRINGS[] = { "LEXER_TOKEN_KEYWORD_NULL", "LEXER_TOKEN_KEYWORD_CODE", "LEXER_TOKEN_KEYWORD_NAMESPACE", + "LEXER_TOKEN_KEYWORD_SHAPE_SHIFTER", "LEXER_TOKEN_NUMBER", "LEXER_TOKEN_CHAR", "LEXER_TOKEN_STRING", @@ -161,33 +162,49 @@ static const size_t LEXER_SYMBOL_SIZE = sizeof(LEXER_SYMBOL_TOKENS) / sizeof(*LEXER_SYMBOL_TOKENS); static const char *LEXER_KEYWORD_STRINGS[] = { - "type", "void", "i8", "u8", "i16", "u16", - "i32", "u32", "i64", "u64", + "type", "void", "i8", "u8", "i16", "u16", + "i32", "u32", "i64", "u64", #ifdef FLOAT_16_SUPPORT "f16", #endif - "f32", "f64", "f128", "bool", "putc", "return", - "true", "false", "if", "else", "while", "comptime", - "null", "struct", "undefined", "code", "lazy", "namespace", + "f32", "f64", "f128", "bool", "putc", "return", + "true", "false", "if", "else", "while", "comptime", + "null", "struct", "undefined", "code", "lazy", "namespace", + "shape_shifter", }; static const LexerToken LEXER_KEYWORD_TOKENS[] = { - LEXER_TOKEN_KEYWORD_TYPE, LEXER_TOKEN_KEYWORD_VOID, - LEXER_TOKEN_KEYWORD_I8, LEXER_TOKEN_KEYWORD_U8, - LEXER_TOKEN_KEYWORD_I16, LEXER_TOKEN_KEYWORD_U16, - LEXER_TOKEN_KEYWORD_I32, LEXER_TOKEN_KEYWORD_U32, - LEXER_TOKEN_KEYWORD_I64, LEXER_TOKEN_KEYWORD_U64, + LEXER_TOKEN_KEYWORD_TYPE, + LEXER_TOKEN_KEYWORD_VOID, + LEXER_TOKEN_KEYWORD_I8, + LEXER_TOKEN_KEYWORD_U8, + LEXER_TOKEN_KEYWORD_I16, + LEXER_TOKEN_KEYWORD_U16, + LEXER_TOKEN_KEYWORD_I32, + LEXER_TOKEN_KEYWORD_U32, + LEXER_TOKEN_KEYWORD_I64, + LEXER_TOKEN_KEYWORD_U64, #ifdef FLOAT_16_SUPPORT LEXER_TOKEN_KEYWORD_F16, #endif - LEXER_TOKEN_KEYWORD_F32, LEXER_TOKEN_KEYWORD_F64, - LEXER_TOKEN_KEYWORD_F128, LEXER_TOKEN_KEYWORD_BOOL, - LEXER_TOKEN_KEYWORD_PUTC, LEXER_TOKEN_KEYWORD_RETURN, - LEXER_TOKEN_KEYWORD_TRUE, LEXER_TOKEN_KEYWORD_FALSE, - LEXER_TOKEN_KEYWORD_IF, LEXER_TOKEN_KEYWORD_ELSE, - LEXER_TOKEN_KEYWORD_WHILE, LEXER_TOKEN_KEYWORD_COMPTIME, - LEXER_TOKEN_KEYWORD_NULL, LEXER_TOKEN_KEYWORD_STRUCT, - LEXER_TOKEN_KEYWORD_UNDEFINED, LEXER_TOKEN_KEYWORD_CODE, - LEXER_TOKEN_KEYWORD_LAZY, LEXER_TOKEN_KEYWORD_NAMESPACE, + LEXER_TOKEN_KEYWORD_F32, + LEXER_TOKEN_KEYWORD_F64, + LEXER_TOKEN_KEYWORD_F128, + LEXER_TOKEN_KEYWORD_BOOL, + LEXER_TOKEN_KEYWORD_PUTC, + LEXER_TOKEN_KEYWORD_RETURN, + LEXER_TOKEN_KEYWORD_TRUE, + LEXER_TOKEN_KEYWORD_FALSE, + LEXER_TOKEN_KEYWORD_IF, + LEXER_TOKEN_KEYWORD_ELSE, + LEXER_TOKEN_KEYWORD_WHILE, + LEXER_TOKEN_KEYWORD_COMPTIME, + LEXER_TOKEN_KEYWORD_NULL, + LEXER_TOKEN_KEYWORD_STRUCT, + LEXER_TOKEN_KEYWORD_UNDEFINED, + LEXER_TOKEN_KEYWORD_CODE, + LEXER_TOKEN_KEYWORD_LAZY, + LEXER_TOKEN_KEYWORD_NAMESPACE, + LEXER_TOKEN_KEYWORD_SHAPE_SHIFTER, }; static const size_t LEXER_KEYWORD_SIZE = sizeof(LEXER_KEYWORD_TOKENS) / sizeof(*LEXER_KEYWORD_TOKENS); -- cgit v1.2.3