28 lines
822 B
C
28 lines
822 B
C
#include "tlang.h"
|
|
extern bool __loop_bool(node_t* n,scope_t* s);
|
|
tobject_t* __if_exec(node_t* n,scope_t* s,retarg_t* retArg)
|
|
{
|
|
if(__loop_bool(n->data.if_node.condition,s))
|
|
{
|
|
return n->data.if_node.yes->execute(n->data.if_node.yes,s,retArg);
|
|
} else {
|
|
return n->data.if_node.no->execute(n->data.if_node.no,s,retArg);
|
|
}
|
|
}
|
|
void __if_free(node_t* n)
|
|
{
|
|
node_free(n->data.if_node.condition);
|
|
node_free(n->data.if_node.yes);
|
|
node_free(n->data.if_node.no);
|
|
}
|
|
node_t* node_if_create(node_t* condition,node_t* y,node_t* n)
|
|
{
|
|
node_t* node = (node_t*)malloc(sizeof(node_t));
|
|
node->type = ifnode;
|
|
node->data.if_node.condition = condition;
|
|
node->data.if_node.yes = y;
|
|
node->data.if_node.no = n;
|
|
node->execute = __if_exec;
|
|
node->free = __if_free;
|
|
return node;
|
|
} |