aboutsummaryrefslogtreecommitdiffstats
path: root/clox/src/object.c
diff options
context:
space:
mode:
authorGravatar Tom Willemse2022-03-22 17:15:17 -0700
committerGravatar Tom Willemse2022-03-22 17:15:17 -0700
commit3da4016d5784adef217fff0ad1e3a0ceff76290f (patch)
treeef7c41c0a013b2e9a5212f9f3b74bdfb85e84336 /clox/src/object.c
parentbaedf99f635735c50936bb555e4a77058ec9e2e0 (diff)
downloadcrafting-interpreters-3da4016d5784adef217fff0ad1e3a0ceff76290f.tar.gz
crafting-interpreters-3da4016d5784adef217fff0ad1e3a0ceff76290f.zip
Chapter 24.7
Diffstat (limited to 'clox/src/object.c')
-rw-r--r--clox/src/object.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/clox/src/object.c b/clox/src/object.c
index 2df533e..d4afccc 100644
--- a/clox/src/object.c
+++ b/clox/src/object.c
@@ -27,6 +27,12 @@ ObjFunction *newFunction() {
return function;
}
+ObjNative *newNative(NativeFn function) {
+ ObjNative *native = ALLOCATE_OBJ(ObjNative, OBJ_NATIVE);
+ native->function = function;
+ return native;
+}
+
static ObjString *allocateString(char *chars, int length, uint32_t hash) {
ObjString *string = ALLOCATE_OBJ(ObjString, OBJ_STRING);
string->length = length;
@@ -81,6 +87,9 @@ void printObject(Value value) {
case OBJ_FUNCTION:
printFunction(AS_FUNCTION(value));
break;
+ case OBJ_NATIVE:
+ printf("<native fn>");
+ break;
case OBJ_STRING:
printf("%s", AS_CSTRING(value));
break;