diff options
Diffstat (limited to 'clox/src/value.c')
-rw-r--r-- | clox/src/value.c | 30 |
1 files changed, 30 insertions, 0 deletions
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 <stdio.h> + +#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); +} |