Skip to content

Commit

Permalink
ADD: verry begining of parsing
Browse files Browse the repository at this point in the history
  • Loading branch information
Joan-Cordelier committed Mar 27, 2024
1 parent c1b76a3 commit ac453a3
Show file tree
Hide file tree
Showing 5 changed files with 46 additions and 22 deletions.
5 changes: 3 additions & 2 deletions include/my.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,12 @@
#include "struct.h"

//Chained list
int add(void *data, char *str);
int add(void *data);
int del(void *data);
int disp(void *data);
int disp_r(void *data);
void free_lst(void *data);
void reverse(parsing_t **list);

//Graph
int add_graph(void *data, int value);
Expand All @@ -28,7 +29,7 @@ void connect_links(link_t *link1, link_t *link2);
void free_graph(void *data);

//init
parsing_t *init_parsing(void);
void init_parsing(parsing_t **lab);

//Put
int mini_printf(const char *format, ...);
Expand Down
16 changes: 11 additions & 5 deletions src/lst/add.c
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,20 @@

#include "my.h"

int add(void *data, char *str)
int add(void *data)
{
parsing_t **list = (parsing_t **) data;
parsing_t *new = NULL;
size_t buffsize = 0;
int size = 0;

new = malloc(sizeof(parsing_t));
new->str = my_strdup(str);
new->next = *list;
*list = new;
return 0;
new->str = NULL;
size = getline(&new->str, &buffsize, stdin);
if (size != -1) {
new->str = my_strsub(new->str, '\n');
new->next = *list;
*list = new;
}
return size;
}
5 changes: 3 additions & 2 deletions src/lst/disp.c
Original file line number Diff line number Diff line change
Expand Up @@ -19,18 +19,19 @@ void reverse(parsing_t **list)
previous = current;
current = next;
}
*list = previous->next;
*list = previous;
}

int disp_r(void *data)
{
parsing_t **list = (parsing_t **) data;

reverse(list);
for (parsing_t *temp = *list; temp->next != NULL; temp = temp->next) {
for (parsing_t *temp = (*list)->next; temp != NULL; temp = temp->next) {
my_putstr(temp->str);
my_putstr("\n");
}
reverse(list);
return 0;
}

Expand Down
25 changes: 23 additions & 2 deletions src/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,33 @@ void null_init(link_t *link)
}
}

void print_output(parsing_t **labs)
{
reverse(labs);
(*labs) = (*labs)->next;
mini_printf("#number_of_robots\n%s\n", (*labs)->str);
(*labs) = (*labs)->next;
mini_printf("#rooms\n");
while ((*labs)->str[1] != '-') {
mini_printf("%s\n", (*labs)->str);
(*labs) = (*labs)->next;
}
mini_printf("#tunnels\n");
while ((*labs) != NULL) {
mini_printf("%s\n", (*labs)->str);
(*labs) = (*labs)->next;
}
mini_printf("#moves\n");
reverse(labs);
}

int main(void)
{
parsing_t *lab = NULL;

lab = init_parsing();
disp_r(&lab);
lab = malloc(sizeof(parsing_t));
init_parsing(&lab);
print_output(&lab);
free_lst(&lab);
return 0;
}
17 changes: 6 additions & 11 deletions src/struct_utils.c
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,13 @@

#include "my.h"

parsing_t *init_parsing(void)
void init_parsing(parsing_t **lab)
{
parsing_t *lab = malloc(sizeof(parsing_t));
char *buffer = NULL;
size_t buffsize = 0;
int size = 0;

for (int i = 0; size != -1; i++) {
size = getline(&buffer, &buffsize, stdin);
buffer = my_strsub(buffer, '\n');
add(&lab, buffer);
}
del(&lab);
return lab;
(*lab)->str = NULL;
(*lab)->next = NULL;
for (int i = 0; size != -1; i++)
size = add(lab);
del(lab);
}

0 comments on commit ac453a3

Please sign in to comment.