summaryrefslogtreecommitdiff
path: root/src/lexer.h
diff options
context:
space:
mode:
authorJohnny Richard <johnny@johnnyrichard.com>2025-04-14 23:22:57 +0200
committerJohnny Richard <johnny@johnnyrichard.com>2025-04-14 23:22:57 +0200
commitb3bd068f614a46580ee3e5688dd9cfd40694d75b (patch)
tree45183f99a8373527caa03ff473c4e40fe07cd459 /src/lexer.h
parent63104d34e1c1772131f6366f825e67f38d027dba (diff)
Define clang-format and .editorconfig settingsHEADmaster
Signed-off-by: Johnny Richard <johnny@johnnyrichard.com>
Diffstat (limited to 'src/lexer.h')
-rw-r--r--src/lexer.h27
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 */