finnish the parsing

This commit is contained in:
Maoake Teriierooiterai
2026-01-08 15:04:02 +01:00
parent 9bc53094a9
commit 4af87fa98a
4 changed files with 32 additions and 12 deletions

View File

@@ -54,7 +54,7 @@ static size_t len_word(size_t i, char const *s, char c)
return (len);
}
static void free_tab(char **tab)
void free_tab(char **tab)
{
int i;

View File

@@ -16,9 +16,23 @@
static int wich_mod(int mod)
{
if (mod == 0 || mod == 3)
if (mod == 0)
return (1);
return (2);
else if (mod == 1)
return (2);
else if (mod == 2)
return (3);
return (0);
}
static int len_split(char **tab)
{
int i;
i = 0;
while (tab[i])
i++;
return (i);
}
static t_stack *parsing(int argc, char **argv, int mod)
@@ -47,19 +61,21 @@ static t_stack *parsing(int argc, char **argv, int mod)
return (first);
}
static t_stack *special_parsing(int argc, char **argv, int mod)
static t_stack *special_parsing(char **argv, int mod)
{
t_stacks *piles;
t_stack *first;
t_stack *new;
t_stack *a;
char **split_tab;
int len;
int i;
i = 0;
split_tab = ft_split(arv[wich_mod(mod)]);
i = mod % 3 + 1;
split_tab = ft_split(argv[i], ' ');
if (!split_tab)
return (NULL);
while ()
len = len_split(split_tab);
a = parsing(len, split_tab, mod);
free_tab(split_tab);
return (a);
}
t_stacks *init_piles(int argc, char **argv, int mod)
@@ -72,7 +88,10 @@ t_stacks *init_piles(int argc, char **argv, int mod)
stacks->b = NULL;
if (!stacks)
return (NULL);
a = parsing(argc, argv, mod);
if (mod == 0 || mod == 1 || mod == 2)
a = parsing(argc, argv, mod);
else
a = special_parsing(argv, mod);
stacks->a = a;
return (stacks);
}