From 07f691425c95a53323229accd8a907c5dea7e530 Mon Sep 17 00:00:00 2001 From: Tom Willemse Date: Sat, 13 Aug 2022 12:20:00 -0700 Subject: Chapter 28.1 --- clox/src/vm.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'clox/src/vm.c') diff --git a/clox/src/vm.c b/clox/src/vm.c index 1d82dd1..fb359c2 100644 --- a/clox/src/vm.c +++ b/clox/src/vm.c @@ -163,6 +163,13 @@ static void closeUpvalues(Value *last) { } } +static void defineMethod(ObjString *name) { + Value method = peek(0); + ObjClass *klass = AS_CLASS(peek(1)); + tableSet(&klass->methods, name, method); + pop(); +} + static bool isFalsey(Value value) { return IS_NIL(value) || (IS_BOOL(value) && !AS_BOOL(value)); } @@ -422,6 +429,9 @@ static InterpretResult run() { case OP_CLASS: push(OBJ_VAL(newClass(READ_STRING()))); break; + case OP_METHOD: + defineMethod(READ_STRING()); + break; } } -- cgit v1.2.3-54-g00ecf