tlang-c/libtlang/src/returnnode.c

22 lines
533 B
C
Raw Normal View History

2023-05-06 04:03:12 +00:00
#include "tlang.h"
extern void __node_single_free(node_t*);
tobject_t* __return_node_exec(node_t* n,scope_t* sc,retarg_t* retArg)
{
node_t* left = n->data.single_node_node;
tobject_t* l=left->execute(left,sc,retArg);
retArg->isReturning=true;
return l;
}
node_t* node_return_create(node_t* arg)
{
node_t* node = (node_t*)malloc(sizeof(node_t));
node->type = returnnode;
node->data.single_node_node = arg;
node->execute = __return_node_exec;
node->free = __node_single_free;
return node;
}