From 054af1631c402650205b72434b26f41ae8e0f6fa Mon Sep 17 00:00:00 2001 From: Maxwell Jeffress Date: Mon, 19 Jan 2026 19:29:14 +1100 Subject: [PATCH] I forgot to push header file --- include/groundext.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/include/groundext.h b/include/groundext.h index e8c35ac..735b9b7 100644 --- a/include/groundext.h +++ b/include/groundext.h @@ -7,10 +7,30 @@ extern "C" { #endif +// Macro for easily returning errors +#define ERROR(what, type) return createErrorGroundValue(createGroundError(what, type, NULL, NULL)) + // Forward declaration of the scope structure used in interpreter struct GroundScope; typedef struct GroundScope GroundScope; +/* + * Stores data associated with an error thrown during Ground execution. + */ +typedef struct GroundError { + char* what; + char* type; + struct GroundInstruction* where; + size_t line; + bool hasLine; +} GroundError; + +// Creates a GroundValue containing (in), with type ERROR. +GroundValue createErrorGroundValue(GroundError in); + +// Creates a GroundError. +GroundError createGroundError(char* what, char* type, GroundInstruction* where, size_t* line); + /* * Function pointer type for native functions. * scope: The current execution scope (opaque).