From 6ad8cd2d950fcd7f57c95a962d9fea5ff202eb0b Mon Sep 17 00:00:00 2001 From: Mthandazo Ndhlovu Date: Fri, 26 Apr 2019 13:37:32 +0200 Subject: [PATCH] current parser version ready for breaking.. --- map3 | 14 ++++++++++++ .../{.lm_parser.c.swp => .lm_mem_utils.c.swp} | Bin 12288 -> 16384 bytes srcs/edmonds_karp.c | 5 ++++- srcs/lem_in.c | 11 +++++----- srcs/lm_check_errors.c | 20 ++++++++++++++---- srcs/lm_graph_utils.c | 3 +-- srcs/lm_mem_utils.c | 2 +- srcs/lm_parser.c | 7 +++--- srcs/lm_utils_parser.c | 2 +- 9 files changed, 47 insertions(+), 17 deletions(-) create mode 100644 map3 rename srcs/{.lm_parser.c.swp => .lm_mem_utils.c.swp} (56%) diff --git a/map3 b/map3 new file mode 100644 index 0000000..cff917d --- /dev/null +++ b/map3 @@ -0,0 +1,14 @@ +21 +##start +start 0 0 +##end +end 1 1 +plop 2 2 +lol 4 4 +xd 3 3 +start-plop + +end-plop +start-lol +xd-lol +end-xd diff --git a/srcs/.lm_parser.c.swp b/srcs/.lm_mem_utils.c.swp similarity index 56% rename from srcs/.lm_parser.c.swp rename to srcs/.lm_mem_utils.c.swp index 90f88e8e308c81cf4e020192e87ec84d79b6b138..6f883cf13292bfb72b2c5be789ebc4bbb09a0000 100644 GIT binary patch literal 16384 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 diff --git a/srcs/edmonds_karp.c b/srcs/edmonds_karp.c index 1d885ff..235baf5 100644 --- a/srcs/edmonds_karp.c +++ b/srcs/edmonds_karp.c @@ -6,7 +6,7 @@ /* By: tmaze +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/04/18 09:59:11 by tmaze #+# #+# */ -/* Updated: 2019/04/21 16:11:56 by tmaze ### ########.fr */ +/* Updated: 2019/04/26 12:49:36 by mndhlovu ### ########.fr */ /* */ /* ************************************************************************** */ @@ -109,11 +109,14 @@ t_ind **edmonds_karp(t_lmdata *data, int s_ind, int e_ind) scores[0] = 0; nb_paths = 0; i = 0; + ft_printf("data: %p\ndata->nb_nodes: %d\ndata->adj: %p\n\n", data, data->nb_nodes, data->adj); while (i < data->nb_nodes) tab[i++].old_visited = 0; bfs(data, tab, s_ind, e_ind); + ft_printf("tab[e_ind].parent: %d\n", tab[e_ind].parent); while (tab[e_ind].parent != -1) { + ft_printf("new path\n"); nb_paths++; update_weights(data, tab, s_ind, e_ind); ret[1] = resolve_paths(data, nb_paths, s_ind, e_ind); diff --git a/srcs/lem_in.c b/srcs/lem_in.c index b127c7c..d4d219e 100644 --- a/srcs/lem_in.c +++ b/srcs/lem_in.c @@ -6,7 +6,7 @@ /* By: mndhlovu +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/03/25 06:31:05 by mndhlovu #+# #+# */ -/* Updated: 2019/04/24 18:23:42 by tmaze ### ########.fr */ +/* Updated: 2019/04/26 13:21:09 by mndhlovu ### ########.fr */ /* */ /* ************************************************************************** */ @@ -56,21 +56,22 @@ static void get_nb_paths_max(t_lmdata *data, int start, int end) static int lem_in(t_syntax *synt, t_holder *holder, t_lmdata *lmdata, t_ind ***ret) { - if (!(lm_parser(synt, lmdata, holder))) - return (0); + lm_parser(synt, lmdata, holder); if (!(lm_verify_cmd(synt, holder, lmdata))) return (0); print_map(lmdata); if (!lst_indinit(lmdata)) return (0); - if (!(lm_adj_parser(lmdata, holder))) - return (0); + lm_adj_parser(lmdata, holder); lm_clear_unv(holder); get_nb_paths_max(lmdata, get_node_role(lmdata, 's')->ind , get_node_role(lmdata, 'e')->ind); if ((*ret = edmonds_karp(lmdata, get_node_role(lmdata, 's')->ind , get_node_role(lmdata, 'e')->ind)) == NULL) + { + ft_printf("plop\n"); return (0); + } if (!push_ants(lmdata, *ret, get_nb_paths(*ret))) return (0); tablst_inddel(*ret); diff --git a/srcs/lm_check_errors.c b/srcs/lm_check_errors.c index ba71a70..b36dd28 100644 --- a/srcs/lm_check_errors.c +++ b/srcs/lm_check_errors.c @@ -6,7 +6,7 @@ /* By: mndhlovu +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/04/22 08:55:30 by mndhlovu #+# #+# */ -/* Updated: 2019/04/26 11:50:56 by mndhlovu ### ########.fr */ +/* Updated: 2019/04/26 13:35:05 by mndhlovu ### ########.fr */ /* */ /* ************************************************************************** */ @@ -64,11 +64,23 @@ void lm_clear_unv(t_holder *holder) holder->data = NULL; } +int lm_verify_links(t_holder *data, t_syntax *synt) +{ + if (!synt->l_error || (synt->l_error && data->count > 0)) + { + ft_printf("Bingo\n"); + return (1); + } + return (0); +} + int lm_verify_cmd(t_syntax *synt, t_holder *holder, t_lmdata *data) { - if (synt->s_cmd && synt->e_cmd && !synt->v_error - && !synt->l_error && !synt->e_error && !synt->s_error - && synt->nb_state && (holder->count > 0) + if (synt->s_cmd && synt->e_cmd + && !synt->e_error && !synt->s_error + && !synt->v_error + && synt->nb_state + && lm_verify_links(holder, synt) && (data->nb_nodes > 0)) return (1); lm_clear_unv(holder); diff --git a/srcs/lm_graph_utils.c b/srcs/lm_graph_utils.c index ae1d951..51b061a 100644 --- a/srcs/lm_graph_utils.c +++ b/srcs/lm_graph_utils.c @@ -6,7 +6,7 @@ /* By: mndhlovu +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/03/29 07:17:06 by mndhlovu #+# #+# */ -/* Updated: 2019/04/24 09:43:02 by tmaze ### ########.fr */ +/* Updated: 2019/04/26 12:15:47 by mndhlovu ### ########.fr */ /* */ /* ************************************************************************** */ @@ -41,7 +41,6 @@ int lm_adj_parser(t_lmdata *lmdata, t_holder *holder) { while (data) { - ft_printf("=== link ===\nis_lin_in: %d\n\n", is_link_in(lmdata, data->src_ind, data->dest_ind)); if (!is_link_in(lmdata, data->src_ind, data->dest_ind)) lst_indadd_link(lmdata, data->src_ind, data->dest_ind); data = data->next; diff --git a/srcs/lm_mem_utils.c b/srcs/lm_mem_utils.c index 911d713..3b9435e 100644 --- a/srcs/lm_mem_utils.c +++ b/srcs/lm_mem_utils.c @@ -6,7 +6,7 @@ /* By: mndhlovu +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/03/25 06:31:37 by mndhlovu #+# #+# */ -/* Updated: 2019/04/26 09:33:50 by mndhlovu ### ########.fr */ +/* Updated: 2019/04/26 12:15:05 by mndhlovu ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/srcs/lm_parser.c b/srcs/lm_parser.c index 3ff1f6b..48a8f31 100644 --- a/srcs/lm_parser.c +++ b/srcs/lm_parser.c @@ -6,7 +6,7 @@ /* By: mndhlovu +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/04/20 15:24:51 by mndhlovu #+# #+# */ -/* Updated: 2019/04/26 11:58:52 by mndhlovu ### ########.fr */ +/* Updated: 2019/04/26 13:05:45 by mndhlovu ### ########.fr */ /* */ /* ************************************************************************** */ @@ -78,8 +78,8 @@ int lm_parser(t_syntax *synt, t_lmdata *ldata, int index; index = 0; - while (ft_getline(&raw) > 0) - { + while (ft_getline(&raw) > 0 && raw[0] != '\0') + { ft_printf("%s\n", raw); if (!(lm_get_ant_(index, ldata, synt, raw)) && index == 0) { @@ -95,6 +95,7 @@ int lm_parser(t_syntax *synt, t_lmdata *ldata, ft_strdel(&raw); index++; } + ft_printf("final raw: %s\n", raw); ft_strdel(&raw); ft_putchar('\n'); return (1); diff --git a/srcs/lm_utils_parser.c b/srcs/lm_utils_parser.c index bdccc14..f570f9a 100644 --- a/srcs/lm_utils_parser.c +++ b/srcs/lm_utils_parser.c @@ -6,7 +6,7 @@ /* By: mndhlovu +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/04/04 09:24:45 by mndhlovu #+# #+# */ -/* Updated: 2019/04/26 11:51:12 by mndhlovu ### ########.fr */ +/* Updated: 2019/04/26 13:35:09 by mndhlovu ### ########.fr */ /* */ /* ************************************************************************** */