diff options
| -rw-r--r-- | src/lexer.c | 10 | ||||
| -rw-r--r-- | src/lexer.h | 2 | ||||
| -rw-r--r-- | src/main.c | 4 |
3 files changed, 8 insertions, 8 deletions
diff --git a/src/lexer.c b/src/lexer.c index 699e960..524e87f 100644 --- a/src/lexer.c +++ b/src/lexer.c @@ -5,12 +5,12 @@ #include <stdio.h> #include "utils.h" -Lexer Lexer_new(char *filename, char *src, i64 len) +Lexer *Lexer_new(char *filename, char *src, i64 len) { - Lexer self = {0}; - self.src = src; - self.len = len; - self.filename = filename; + Lexer *self = calloc(1, sizeof(Lexer)); + self->src = src; + self->len = len; + self->filename = filename; return self; } diff --git a/src/lexer.h b/src/lexer.h index f710d3d..b7f3db2 100644 --- a/src/lexer.h +++ b/src/lexer.h @@ -13,7 +13,7 @@ typedef struct { i64 col; } Lexer; -Lexer Lexer_new(char *filename, char *src, i64 len); +Lexer *Lexer_new(char *filename, char *src, i64 len); Token Lexer_next(Lexer *lexer); Token Lexer_peek(Lexer *lexer);
\ No newline at end of file @@ -74,8 +74,8 @@ void parse_args(int argc, char **argv) int main(int argc, char**argv) { parse_args(argc, argv); - Lexer lexer = Lexer_new(filename, source, source_len); - Node *ast = parse_program(&lexer); + Lexer *lexer = Lexer_new(filename, source, source_len); + Node *ast = parse_program(lexer); if (dump_ast) print_ast(ast); |