From e5776b16ddbeb4dddff747b4021b801e30e86699 Mon Sep 17 00:00:00 2001 From: Maxwell Jeffress Date: Sat, 11 Apr 2026 13:09:32 +1000 Subject: [PATCH] groundFindVariable function --- include/groundvm.h | 3 ++- src/interface.c | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/include/groundvm.h b/include/groundvm.h index ebe7c1e..505134e 100644 --- a/include/groundvm.h +++ b/include/groundvm.h @@ -20,7 +20,7 @@ typedef enum GroundInstType { } GroundInstType; typedef enum GroundValueType { - INT, DOUBLE, STRING, CHAR, BOOL, LIST, FUNCTION, STRUCTVAL, CUSTOM, ERROR, NONE + INT, DOUBLE, STRING, CHAR, BOOL, LIST, FUNCTION, STRUCTVAL, CUSTOM, ERROR, NONE, ANY } GroundValueType; typedef enum GroundArgType { @@ -209,6 +209,7 @@ GroundStruct groundCreateStruct(); void groundAddFieldToStruct(GroundStruct* gstruct, char* name, GroundValue field); GroundObjectField* groundFindField(GroundObject head, const char *id); +GroundVariable* groundFindVariable(GroundScope* gs, const char *id); // Run function returned by Ground code // Use argc to set count of args, accepts that amount of GroundValue's after diff --git a/src/interface.c b/src/interface.c index 2ff4d01..9c866fd 100644 --- a/src/interface.c +++ b/src/interface.c @@ -221,3 +221,9 @@ GroundObjectField* groundFindField(GroundObject head, const char *id) { HASH_FIND_STR(head.fields, id, s); return s; } + +GroundVariable* groundFindVariable(GroundScope* gs, const char *id) { + GroundVariable* var; + HASH_FIND_STR(*gs->variables, id, var); + return var; +}