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/main.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'src/bytecode/main.c') diff --git a/src/bytecode/main.c b/src/bytecode/main.c index d1fbac2..e4cf643 100755 --- a/src/bytecode/main.c +++ b/src/bytecode/main.c @@ -45,22 +45,27 @@ process_source(const StringView *source) { } // Compile chunk. - Chunk *chunk = compile(tokens); + Object main = compile(tokens); if (errors_n != 0) { - chunk_free(chunk); + object_free(main); array_free(tokens); return; } #ifdef DEBUG - disassemble_chunk(chunk); + disassemble_chunk(main.chunk); #endif // Interpret chunk. - vm_interpret(&vm, chunk); + CallFrame frame = (CallFrame){ + .procedure = main, + .pc = main.chunk->code, + }; + array_push(vm.frames, frame); + vm_interpret(&vm); // Free resources. - chunk_free(chunk); + object_free(main); array_free(tokens); } -- cgit v1.2.1