From b16b70fd40ffc72ff861afe0517cba0e37ba1145 Mon Sep 17 00:00:00 2001 From: Mel Date: Wed, 6 Jul 2022 14:06:20 +0200 Subject: Implement most of the binary operations --- pkg/lang/vm/vm.go | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'pkg/lang/vm/vm.go') diff --git a/pkg/lang/vm/vm.go b/pkg/lang/vm/vm.go index 3f0703a..54fd8ee 100644 --- a/pkg/lang/vm/vm.go +++ b/pkg/lang/vm/vm.go @@ -164,14 +164,25 @@ func (vm *VM) step(op code.Op) (stepDecision, error) { err = vm.execAdd() case code.OpSub: err = vm.execSub() + case code.OpMul: + err = vm.execMul() + case code.OpDiv: + err = vm.execDiv() case code.OpMod: err = vm.execMod() - case code.OpIndex: - err = vm.execIndex() + case code.OpEq: + err = vm.execEq() case code.OpLt: err = vm.execLt() + case code.OpGt: + err = vm.execGt() case code.OpLte: err = vm.execLte() + case code.OpGte: + err = vm.execGte() + + case code.OpIndex: + err = vm.execIndex() case code.OpCall: argCount, advance := vm.code.GetUint(vm.pc) vm.pc += advance -- cgit 1.4.1