diff options
| author | Mel <einebeere@gmail.com> | 2022-07-06 14:06:20 +0200 |
|---|---|---|
| committer | Mel <einebeere@gmail.com> | 2022-07-06 14:06:20 +0200 |
| commit | b16b70fd40ffc72ff861afe0517cba0e37ba1145 (patch) | |
| tree | 1969a77f9c3d00160d53ffbe2f4b6ffa7d408165 /pkg/lang/vm/vm.go | |
| parent | 32ec3e1186b3ed29e910ad60a18f956b823ddc23 (diff) | |
| download | jinx-b16b70fd40ffc72ff861afe0517cba0e37ba1145.tar.zst jinx-b16b70fd40ffc72ff861afe0517cba0e37ba1145.zip | |
Implement most of the binary operations
Diffstat (limited to 'pkg/lang/vm/vm.go')
| -rw-r--r-- | pkg/lang/vm/vm.go | 15 |
1 files changed, 13 insertions, 2 deletions
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 |
