From 6068db6918e2c2c0e34b88014c9ac6d472674e50 Mon Sep 17 00:00:00 2001 From: Ben Winston Date: Tue, 23 May 2023 18:12:42 -0400 Subject: more logic, runtime typechecking --- vm.d | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'vm.d') diff --git a/vm.d b/vm.d index ea6a1ae..2f6de06 100644 --- a/vm.d +++ b/vm.d @@ -351,6 +351,18 @@ class VM { double anum = asNumber(a); pushA(makeNumberValue(anum - bnum)); break; + case OpCode.OP_NOT: + Value val = popA(); + bool bval = asBoolean(val); + pushA(makeBooleanValue(!bval)); + break; + case OpCode.OP_GREATER: + Value b = popA(); + Value a = popA(); + double bnum = asNumber(b); + double anum = asNumber(a); + pushA(makeBooleanValue(anum > bnum)); + break; case OpCode.OP_LESS: Value b = popA(); /* -- cgit v1.2.3