35 lines
818 B
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;
|
||
|
}
|