aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormryouse2023-05-25 01:59:59 +0000
committermryouse2023-05-25 01:59:59 +0000
commitb2a3dc3b78dd6ce60b7c5e685fbbb40c84434691 (patch)
tree5bd7d8f03f521f606ac9b490da74f14ccf7ae136
parentcb64344f44cdbcd31f4d775bd1865b1af142bba3 (diff)
add nil value
-rw-r--r--dbg.d2
-rw-r--r--vm.d3
2 files changed, 4 insertions, 1 deletions
diff --git a/dbg.d b/dbg.d
index 19e92b1..e6ec197 100644
--- a/dbg.d
+++ b/dbg.d
@@ -82,6 +82,8 @@ string printableValue(Value val) {
return printableFunction(val.as.obj);
case ValueType.TYPE:
return val.as.type;
+ case ValueType.NIL:
+ return "nil";
default:
return "! unknown value type !";
}
diff --git a/vm.d b/vm.d
index 6fc6df7..ff2eb1d 100644
--- a/vm.d
+++ b/vm.d
@@ -223,7 +223,6 @@ class VM {
InterpretResult run() {
writeln("== VM running ==");
- writefln("> > > framecount: %d", this.frameCount);
while (true) {
if (DEBUG) {
writeln(" Stacks:");
@@ -264,6 +263,8 @@ class VM {
}
Value val = this.popA();
this.globals[asString(name)] = val;
+ Value nil = { ValueType.NIL };
+ this.pushA(nil);
break;
case OpCode.OP_GET_GLOBAL:
Value name = this.current.func.chunk.constants[this.readByte()];