Newer
Older
/*
** ast_funcdec.c for 42sh
**
** Made by Seblu
** Login <seblu@epita.fr>
**
** Started on Thu Aug 3 02:41:37 2006 Seblu
s_ast_node *ast_funcdec_create(char *name, s_ast_node *body)
node->type = T_FUNCDEC;
node->body.child_funcdec.name = name;
node->body.child_funcdec.body = body;
return node;
}
void ast_funcdec_print(s_ast_node *node, FILE *fs, unsigned *node_id)
{
unsigned int lhs_id, cur_id;
if (node->type != T_FUNCDEC)
return;
cur_id = *node_id, node->body.child_funcdec.name);
lhs_id = ++*node_id;
ast_print_node(node->body.child_funcdec.body, fs, node_id);
fprintf(fs, "%u -> %u\n", cur_id, lhs_id);
}
void ast_funcdec_destruct_node(s_ast_node *node)
{
if (node->type != T_FUNCDEC)
return;
if (node->body.child_funcdec.name)
free(node->body.child_funcdec.name);
if (node->body.child_funcdec.name)
free(node->body.child_funcdec.name);
if (node->body.child_funcdec.body)
ast_destruct(node->body.child_funcdec.body);