From f4185577e56a893b9375bc94d71bef5f9eb51891 Mon Sep 17 00:00:00 2001 From: Tom Willemse Date: Fri, 12 Aug 2022 23:18:02 -0700 Subject: Chapter 27.3 --- clox/src/object.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'clox/src/object.c') diff --git a/clox/src/object.c b/clox/src/object.c index 935a258..a431314 100644 --- a/clox/src/object.c +++ b/clox/src/object.c @@ -53,6 +53,13 @@ ObjFunction *newFunction() { return function; } +ObjInstance *newInstance(ObjClass *klass) { + ObjInstance *instance = ALLOCATE_OBJ(ObjInstance, OBJ_INSTANCE); + instance->klass = klass; + initTable(&instance->fields); + return instance; +} + ObjNative *newNative(NativeFn function) { ObjNative *native = ALLOCATE_OBJ(ObjNative, OBJ_NATIVE); native->function = function; @@ -131,6 +138,9 @@ void printObject(Value value) { case OBJ_FUNCTION: printFunction(AS_FUNCTION(value)); break; + case OBJ_INSTANCE: + printf("%s instance", AS_INSTANCE(value)->klass->name->chars); + break; case OBJ_NATIVE: printf(""); break; -- cgit v1.2.3-54-g00ecf