tlang-c/libtlang/src/getvariablenode.c

35 lines
818 B
C

#include "tlang.h"
tobject_t* __node_getvariable_execute(node_t* n,scope_t* s)
{
char* vn = string_dupp(n->data.variable_node.name);
tobject_t* o = s->getvariable(s,vn);
free(vn);
return o;
}
void __node_setvariable(node_t* n,tobject_t* o,scope_t* s)
{
char* vn = string_dupp(n->data.variable_node.name);
s->setvariable(s,vn,o);
free(vn);
}
void __node_getvariable_free(node_t* node)
{
string_free(node->data.variable_node.name);
}
node_t* node_getvariable_create(string_t* name)
{
node_t* n = (node_t*)malloc(sizeof(node_t));
n->type = getvariablenode;
n->execute = __node_getvariable_execute;
n->free = __node_getvariable_free;
n->data.variable_node.name = string_dups(name);
n->data.variable_node.set = __node_setvariable;
return n;
}