diff options
author | A404M <ahmadmahmoudiprogrammer@gmail.com> | 2025-04-15 21:54:04 +0330 |
---|---|---|
committer | A404M <ahmadmahmoudiprogrammer@gmail.com> | 2025-04-15 21:54:04 +0330 |
commit | cc12a3a946303ae89ce2076b3c17d5d35d7e864f (patch) | |
tree | 3429c081fecb65cf538b213e382016416dbca344 /src/compiler/lexer.c | |
parent | 52fac2c9232d39b3fe98438a47c22f985b260f58 (diff) |
add string
Diffstat (limited to 'src/compiler/lexer.c')
-rw-r--r-- | src/compiler/lexer.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/compiler/lexer.c b/src/compiler/lexer.c index 53d9f05..754593a 100644 --- a/src/compiler/lexer.c +++ b/src/compiler/lexer.c @@ -6,7 +6,6 @@ #include <stdint.h> #include <stdio.h> -#include <stdlib.h> const char *LEXER_TOKEN_STRINGS[] = { "LEXER_TOKEN_SYMBOL_CLOSE_CURLY_BRACKET", @@ -37,6 +36,7 @@ const char *LEXER_TOKEN_STRINGS[] = { "LEXER_TOKEN_KEYWORD_NULL", "LEXER_TOKEN_NUMBER", "LEXER_TOKEN_CHAR", + "LEXER_TOKEN_STRING", "LEXER_TOKEN_KEYWORD_UNDEFINED", "LEXER_TOKEN_SYMBOL_FUNCTION_ARROW", @@ -244,6 +244,8 @@ LexerNodeArray lexer(char *str) { LexerToken token; if (opening == '\'') { token = LEXER_TOKEN_CHAR; + } else if (opening == '\"') { + token = LEXER_TOKEN_STRING; } else { UNREACHABLE; } @@ -258,7 +260,7 @@ LexerNodeArray lexer(char *str) { goto RETURN_ERROR; } else if (*iter == '\\') { ++iter; - } else if (*iter == '\'') { + } else if (*iter == opening) { break; } } @@ -357,6 +359,7 @@ void lexerPushClear(LexerNodeArray *array, size_t *array_size, char *iter, case LEXER_TOKEN_KEYWORD_UNDEFINED: case LEXER_TOKEN_NUMBER: case LEXER_TOKEN_CHAR: + case LEXER_TOKEN_STRING: case LEXER_TOKEN_SYMBOL_EOL: case LEXER_TOKEN_SYMBOL_OPEN_PARENTHESIS: case LEXER_TOKEN_SYMBOL_CLOSE_PARENTHESIS: |