diff options
| author | Johnny Richard <johnny@johnnyrichard.com> | 2025-04-14 23:22:57 +0200 |
|---|---|---|
| committer | Johnny Richard <johnny@johnnyrichard.com> | 2025-04-14 23:22:57 +0200 |
| commit | b3bd068f614a46580ee3e5688dd9cfd40694d75b (patch) | |
| tree | 45183f99a8373527caa03ff473c4e40fe07cd459 /src/lexer.h | |
| parent | 63104d34e1c1772131f6366f825e67f38d027dba (diff) | |
Signed-off-by: Johnny Richard <johnny@johnnyrichard.com>
Diffstat (limited to 'src/lexer.h')
| -rw-r--r-- | src/lexer.h | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/src/lexer.h b/src/lexer.h index b9c5b48..d03e621 100644 --- a/src/lexer.h +++ b/src/lexer.h @@ -18,8 +18,8 @@ #define LEXER_H #include "string_view.h" - -typedef enum token_kind { +typedef enum token_kind +{ TOKEN_KW_PUSH, TOKEN_KW_DUP, TOKEN_KW_COPY, @@ -51,40 +51,43 @@ typedef enum token_kind { TOKEN_EOF } token_kind_t; -typedef struct lex_loc { +typedef struct lex_loc +{ size_t offset; size_t lineoffset; size_t lineno; } lex_loc_t; -typedef struct token { +typedef struct token +{ token_kind_t kind; string_view_t value; lex_loc_t loc; } token_t; -typedef struct lexer { - char *file_name; +typedef struct lexer +{ + char* file_name; string_view_t source; lex_loc_t loc; } lexer_t; void -lexer_init(lexer_t *lexer, char *file_name); +lexer_init(lexer_t* lexer, char* file_name); bool -lexer_is_eof(lexer_t *lexer); +lexer_is_eof(lexer_t* lexer); char -lexer_current_char(lexer_t *lexer); +lexer_current_char(lexer_t* lexer); char -lexer_next_char(lexer_t *lexer); +lexer_next_char(lexer_t* lexer); void -lexer_next_token(lexer_t *lexer, token_t *token); +lexer_next_token(lexer_t* lexer, token_t* token); -char * +char* token_to_cstr(token_kind_t kind); #endif /* LEXER_H */ |
