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; +}