From a56e2d453b9bbc811a8926dfcc8d406a46bfc03b Mon Sep 17 00:00:00 2001 From: s-over-4 Date: Mon, 12 Jun 2023 16:02:38 -0400 Subject: yes --- src/include/token.h | 17 +++++++++-------- src/lexer.c | 13 +++---------- src/token.c | 1 - 3 files changed, 12 insertions(+), 19 deletions(-) diff --git a/src/include/token.h b/src/include/token.h index b58233d..865ba4e 100644 --- a/src/include/token.h +++ b/src/include/token.h @@ -1,20 +1,21 @@ #ifndef TOKEN_H #define TOKEN_H -#define TOKEN_DEFNAME_FIRST_CHAR_ALLOWED_CHARS "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_" -#define TOKEN_DEFNAME_FIRST_CHAR_ALLOWED_CHARS_LEN 53 -#define TOKEN_DEFNAME_SPLIT_CHAR_ALLOWED_CHARS "1234567890_-" -#define TOKEN_DEFNAME_SPLIT_CHAR_ALLOWED_CHARS_LEN 12 -#define TOKEN_CHAR_IGNORE " \t\n\r" -#define TOKEN_CHAR_IGNORE_LEN 4 -#define TOKEN_CHAR_FIRST_CHAR_INT "0123456789" +#define TOKEN_DEFNAME_FIRST_CHAR_ALLOWED_CHARS "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_" +#define TOKEN_DEFNAME_FIRST_CHAR_ALLOWED_CHARS_LEN 53 +#define TOKEN_DEFNAME_SPLIT_CHAR_ALLOWED_CHARS "1234567890_-" +#define TOKEN_DEFNAME_SPLIT_CHAR_ALLOWED_CHARS_LEN 12 +#define TOKEN_CHAR_IGNORE " \t\n\r" +#define TOKEN_CHAR_IGNORE_LEN 4 +#define TOKEN_CHAR_FIRST_CHAR_INT "0123456789" + typedef struct TOKEN_STRUC { enum TOKEN_ENUM { TOKEN_KEYWORD, // keyword TOKEN_PRIM_STR_DELIM, // ' TOKEN_PRIM_STR, // 'string' - TOKEN_PRIM_INT, // 'string' + TOKEN_PRIM_INT, // 42 TOKEN_COMM_DELIM, // ` TOKEN_COMM, // `comment` TOKEN_EXPR_END, // ; diff --git a/src/lexer.c b/src/lexer.c index d137a07..5a0a6e9 100644 --- a/src/lexer.c +++ b/src/lexer.c @@ -3,7 +3,6 @@ #include #include - #include "include/log.h" #include "include/lexer.h" @@ -150,7 +149,6 @@ token_t* lexer_get_next_token(lexer_t* lexer) { token_t* lexer_next_token(lexer_t* lexer, token_t* token) { lexer_next(lexer); - return token; } @@ -165,9 +163,7 @@ char* lexer_get_c_as_string(lexer_t* lexer) { // fskip: skip first char? // lskip: skip last char? token_t* lexer_collect(lexer_t* lexer, char end_char, int fskip, int lskip, int type) { - if (fskip) { - lexer_next(lexer); // skip over starting character, e.g. opening quote or grave - } + if (fskip) { lexer_next(lexer); } size_t len = 0; // length of collected token so far char* token = calloc(len, sizeof(char)); @@ -175,7 +171,7 @@ token_t* lexer_collect(lexer_t* lexer, char end_char, int fskip, int lskip, int while (lexer->c != end_char) { char* current = lexer_get_c_as_string(lexer); - printf("[%p, %ld]\n", token, (strlen(token) + strlen(current) * sizeof(char))); + // printf("[%p, %ld]\n", token, (strlen(token) + strlen(current) * sizeof(char))); token = realloc( token, (len + strlen(current) * sizeof(char)) @@ -186,10 +182,7 @@ token_t* lexer_collect(lexer_t* lexer, char end_char, int fskip, int lskip, int lexer_next(lexer); } - if (lskip) { - lexer_next(lexer); - } - + if (lskip) { lexer_next(lexer); } token[len] = '\0'; // null terminate return token_init(type, token); diff --git a/src/token.c b/src/token.c index 432d44f..6bba2b9 100644 --- a/src/token.c +++ b/src/token.c @@ -1,6 +1,5 @@ #include - #include "include/token.h" -- cgit v1.2.3