From 9f1f2ff307bb3da8bfc6809ae05be589e1e37ed9 Mon Sep 17 00:00:00 2001 From: Bad Diode Date: Tue, 26 Oct 2021 08:55:12 +0200 Subject: Add OP_DROP and improve error reporting --- src/bytecode/vm.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/bytecode/vm.h') diff --git a/src/bytecode/vm.h b/src/bytecode/vm.h index 63eedfa..d654e2c 100755 --- a/src/bytecode/vm.h +++ b/src/bytecode/vm.h @@ -64,7 +64,8 @@ vm_reset(VM *vm) { .value = ERR_WRONG_ARG_TYPE, \ .line = frame->chunk->lines[vm->pc - frame->chunk->code - 1].line, \ .col = frame->chunk->lines[vm->pc - frame->chunk->code - 1].col, \ - }) + }); \ + return #define SYMBOL_NOT_FOUND_ERR() \ error_push((Error){ \ @@ -268,6 +269,9 @@ vm_interpret(VM *vm) { array_head(vm->frames)->size--; frame = &vm->frames[array_size(vm->frames) - 1]; } break; + case OP_DROP: { + array_head(vm->stack)->size = 0; + } break; default: { error_push((Error){ .type = ERR_TYPE_RUNTIME, -- cgit v1.2.1