From 65cf5580acf23ad4dccbdb03381ff1823fc35e68 Mon Sep 17 00:00:00 2001 From: Maxwell Jeffress Date: Tue, 28 Jul 2026 19:41:32 +1000 Subject: [PATCH] Better stringification of bytecode values --- src/Stringify/BytecodeValue.c | 58 ++++++++++++++++++++++++++++++----- 1 file changed, 51 insertions(+), 7 deletions(-) diff --git a/src/Stringify/BytecodeValue.c b/src/Stringify/BytecodeValue.c index d1b39b7..6496efe 100644 --- a/src/Stringify/BytecodeValue.c +++ b/src/Stringify/BytecodeValue.c @@ -64,6 +64,9 @@ char* _GroundStringifyBytecodeValue(GroundBytecodeValue* value) { Estr str = CREATE_ESTR("as.Struct.size; i++) { char* field = Ground.Stringify.BytecodeValue(&value->as.Struct.values[i]); + if (i != 0) { + APPEND_ESTR(str, ", "); + } APPEND_ESTR(str, field); free(field); } @@ -84,14 +87,55 @@ char* _GroundStringifyBytecodeValue(GroundBytecodeValue* value) { return str.str; } case GroundType_CoreType: { - char* buf = malloc(sizeof("")); - if (buf == NULL) { - Ground.Flags.error = true; - Ground.Log.Error("malloc failed in Ground.Stringify.Value"); - return NULL; + Estr str = CREATE_ESTR("as.CoreType) { + case GroundType_Undefined: { + APPEND_ESTR(str, "Undefined"); + break; + } + case GroundType_Int: { + APPEND_ESTR(str, "Int"); + break; + } + case GroundType_Double: { + APPEND_ESTR(str, "Double"); + break; + } + case GroundType_Char: { + APPEND_ESTR(str, "Char"); + break; + } + case GroundType_Bool: { + APPEND_ESTR(str, "Bool"); + break; + } + case GroundType_String: { + APPEND_ESTR(str, "String"); + break; + } + case GroundType_List: { + APPEND_ESTR(str, "List"); + break; + } + case GroundType_Function: { + APPEND_ESTR(str, "Function"); + break; + } + case GroundType_Struct: { + APPEND_ESTR(str, "Struct"); + break; + } + case GroundType_Object: { + APPEND_ESTR(str, "Object"); + break; + } + case GroundType_CoreType: { + APPEND_ESTR(str, "CoreType"); + break; + } } - sprintf(buf, ""); - return buf; + APPEND_ESTR(str, ">"); + return str.str; } case GroundType_Undefined: { char* buf = malloc(sizeof(""));