From ad8c598e84bd1e5469e2487cc3e4d0ea784d0ff3 Mon Sep 17 00:00:00 2001 From: Bad Diode Date: Mon, 25 Oct 2021 14:32:18 +0200 Subject: Add callframe support for the VM --- src/bytecode/compiler.h | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'src/bytecode/compiler.h') diff --git a/src/bytecode/compiler.h b/src/bytecode/compiler.h index 3b68868..4130269 100755 --- a/src/bytecode/compiler.h +++ b/src/bytecode/compiler.h @@ -14,7 +14,7 @@ Token next_token(Compiler *compiler); Token peek_token(const Compiler *compiler); bool has_next_token(const Compiler *compiler); -Chunk * compile(Token *tokens); +Object compile(Token *tokens); Token peek_token(const Compiler *compiler) { @@ -415,20 +415,19 @@ parse_tree(Chunk *chunk, Compiler *compiler) { return; } -Chunk * +Object compile(Token *tokens) { - Chunk *chunk = NULL; - chunk = NEW_CHUNK("main"); + Object main = make_lambda((StringView){"main", sizeof("main")}); Compiler compiler = (Compiler){ .tokens = tokens, .current = 0, }; Token start_tok = peek_token(&compiler); while (has_next_token(&compiler) && peek_token(&compiler).type != TOKEN_EOF) { - parse_tree(chunk, &compiler); + parse_tree(main.chunk, &compiler); } - add_code(chunk, OP_RETURN, start_tok.line, start_tok.column); - return chunk; + add_code(main.chunk, OP_RETURN, start_tok.line, start_tok.column); + return main; } #endif // BDL_COMPILER_H -- cgit v1.2.1