From 2c007a8f94d65dc40f638b284db7e374a58b632f Mon Sep 17 00:00:00 2001 From: Tom Willemse Date: Thu, 8 Jul 2021 02:24:24 -0700 Subject: Chapter 14.1-6 --- clox/src/value.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 clox/src/value.c (limited to 'clox/src/value.c') diff --git a/clox/src/value.c b/clox/src/value.c new file mode 100644 index 0000000..9a27034 --- /dev/null +++ b/clox/src/value.c @@ -0,0 +1,30 @@ +#include + +#include "memory.h" +#include "value.h" + +void initValueArray(ValueArray* array) { + array->values = NULL; + array->capacity = 0; + array->count = 0; +} + +void writeValueArray(ValueArray* array, Value value) { + if (array->capacity < array->count + 1) { + int oldCapacity = array->capacity; + array->capacity = GROW_CAPACITY(oldCapacity); + array->values = GROW_ARRAY(Value, array->values, oldCapacity, array->capacity); + } + + array->values[array->count] = value; + array->count++; +} + +void freeValueArray(ValueArray* array) { + FREE_ARRAY(Value, array->values, array->capacity); + initValueArray(array); +} + +void printValue(Value value) { + printf("%g", value); +} -- cgit v1.2.3-54-g00ecf