/* By: ljiriste <ljiriste@student.42prague.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/05/20 20:51:36 by ljiriste #+# #+# */
-/* Updated: 2024/06/21 10:56:32 by ljiriste ### ########.fr */
+/* Updated: 2024/06/21 11:21:24 by ljiriste ### ########.fr */
/* */
/* ************************************************************************** */
#include "libft.h"
#include <stdlib.h>
-void ft_parse_tree_free(void *v_node)
+static void parse_tree_free_children(void *v_node)
{
t_parse_tree_node *node;
node = v_node;
if (!node)
return ;
- ft_vec_free(&node->children, ft_parse_tree_free);
+ ft_vec_free(&node->children, parse_tree_free_children);
free_token(&node->token);
+}
+
+void ft_parse_tree_free(void *node)
+{
+ parse_tree_free_children(node);
+ free(node);
return ;
}
ft_parse_tree_free(node);
return (1);
}
+ free(node);
}
element.state_num = goto_state(((t_parser_stack_element *)ft_stack_top(stack))->state_num, table, rule->result);
return (ft_stack_push(stack, &element) != success || element.state_num < 0);