void handle_input(char **line, t_vars *vars);
int tokenize(char **line, t_vec *tokens);
-int parse(t_vec *tokens, t_tree *parse_tree);
+int parse(t_vec *tokens, t_tree **parse_tree);
int expand(t_tree *parse_tree, t_vars *vars);
int execute(t_tree *parse_tree, t_vars *vars);
ft_vec_init(&tokens, sizeof(t_token));
parse_tree = NULL;
res = tokenize(input, &tokens);
- res = res || parse(&tokens, parse_tree);
+ res = res || parse(&tokens, &parse_tree);
res = res || expand(parse_tree, vars);
res = res || execute(parse_tree, vars);
ft_vec_free(&tokens, free_token);
#include "libft.h"
// table should be static or loaded at start and passed in as argument
-int parse(t_vec *tokens, t_tree *parse_tree)
+int parse(t_vec *tokens, t_tree **parse_tree)
{
t_parsing_table table;
ft_parsing_table_init(&table);
ft_parsing_table_load(&table, "shell_parsing_table", "shell_rules");
- parse_tree = ft_parse(tokens, &table);
- ft_parse_tree_print(parse_tree);
+ *parse_tree = ft_parse(tokens, &table);
+ ft_parse_tree_print(*parse_tree);
ft_parsing_table_free(&table);
return (0);
}