From bea757674b90442eaedfa238ed6a5a6a63767bf9 Mon Sep 17 00:00:00 2001 From: Mustafa Quraish Date: Mon, 31 Jan 2022 01:33:18 -0500 Subject: Make `Lexer_new` return a pointer instead of the object. --- src/lexer.c | 10 +++++----- src/lexer.h | 2 +- src/main.c | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) (limited to 'src') 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 #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 diff --git a/src/main.c b/src/main.c index c94f8d3..60613c8 100644 --- a/src/main.c +++ b/src/main.c @@ -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); -- cgit v1.2.3