diff options
Diffstat (limited to 'clox/src/vm.c')
-rw-r--r-- | clox/src/vm.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/clox/src/vm.c b/clox/src/vm.c index d9e5248..eb79661 100644 --- a/clox/src/vm.c +++ b/clox/src/vm.c @@ -81,6 +81,19 @@ static InterpretResult run() { } InterpretResult interpret(const char *source) { - compile(source); - return INTERPRET_OK; + Chunk chunk; + initChunk(&chunk); + + if (!compile(source, &chunk)) { + freeChunk(&chunk); + return INTERPRET_COMPILE_ERROR; + } + + vm.chunk = &chunk; + vm.ip = vm.chunk->code; + + InterpretResult result = run(); + + freeChunk(&chunk); + return result; } |