diff options
Diffstat (limited to 'clox/src/value.c')
-rw-r--r-- | clox/src/value.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/clox/src/value.c b/clox/src/value.c index 34e55b8..a5f8540 100644 --- a/clox/src/value.c +++ b/clox/src/value.c @@ -1,6 +1,8 @@ #include <stdio.h> +#include <string.h> #include "memory.h" +#include "object.h" #include "value.h" void initValueArray(ValueArray *array) { @@ -37,6 +39,9 @@ void printValue(Value value) { case VAL_NUMBER: printf("%g", AS_NUMBER(value)); break; + case VAL_OBJ: + printObject(value); + break; } } @@ -50,6 +55,12 @@ bool valuesEqual(Value a, Value b) { return true; case VAL_NUMBER: return AS_NUMBER(a) == AS_NUMBER(b); + case VAL_OBJ: { + ObjString *aString = AS_STRING(a); + ObjString *bString = AS_STRING(b); + return aString->length == bString->length && + memcmp(aString->chars, bString->chars, aString->length) == 0; + } default: return false; /* Unreachable */ } |