From f6ae20caf8191f78eea90edfb17f316db8f8c6b5 Mon Sep 17 00:00:00 2001 From: c+1 Date: Thu, 18 May 2023 17:57:56 -0400 Subject: finished the lexer, for real this time --- src/include/lexer.h | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'src/include/lexer.h') diff --git a/src/include/lexer.h b/src/include/lexer.h index 6d9dff8..7364910 100644 --- a/src/include/lexer.h +++ b/src/include/lexer.h @@ -5,6 +5,9 @@ #include "token.h" +#define LEXER_VALID (lexer->c != '\0' && lexer->i < strlen(lexer->content)) + + typedef struct LEXER_STRUC { char c; // current character in content unsigned int i; // index of c @@ -19,8 +22,7 @@ extern void lexer_destroy (lexer_t* lexer); // advance the lexer extern void lexer_next (lexer_t* lexer); extern void lexer_pass (lexer_t* lexer); -extern int lexer_is_valid (lexer_t* lexer); -extern token_t* lexer_get_next_token (lexer_t* lexer); +extern token_t* lexer_get_next_token (lexer_t* lexer); // chars -> tokens extern token_t* lexer_next_token (lexer_t* lexer, token_t* token); extern char* lexer_get_c_as_string (lexer_t* lexer); @@ -29,12 +31,13 @@ extern token_t* lexer_get_array (lexer_t* lexer); extern token_t* lexer_get_string (lexer_t* lexer); extern token_t* lexer_get_comment (lexer_t* lexer); -// def collectors +// special def collectors extern token_t* lexer_get_directive (lexer_t* lexer); extern token_t* lexer_get_keyword (lexer_t* lexer); -extern token_t* lexer_get_def (lexer_t* lexer); +extern token_t* lexer_get_def_var (lexer_t* lexer); // = +/* extern token_t* lexer_get_def (lexer_t* lexer); // get the definition extern token_t* lexer_get_def_mutability (lexer_t* lexer); // look for mut: or immut: (optional, default immut) extern token_t* lexer_get_def_type (lexer_t* lexer); // get the def type (required) @@ -49,6 +52,6 @@ extern token_t* lexer_get_var_value (lexer_t* lexer); // get the var extern token_t* lexer_get_fn_def (lexer_t* lexer); extern token_t* lexer_get_fn_args (lexer_t* lexer); // get the function args (optional, default empty) extern token_t* lexer_get_fn_body (lexer_t* lexer); // get the function body (required) - +*/ #endif -- cgit v1.2.3