From 5379ad34f292b6e40063f1c9fe97f821a138c855 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kha=C3=AFs=20COLIN?= Date: Tue, 18 Mar 2025 15:46:15 +0100 Subject: [PATCH] cmdlist debug: implement debug func (STUB) I need to actually parse some cmdlists for this to have any meaning further --- Makefile | 1 + src/parser/cmdgroup/cmdgroup.c | 4 ++- src/parser/cmdlist/cmdlist.c | 12 +------ src/parser/cmdlist/cmdlist_debug.c | 52 ++++++++++++++++++++++++++++++ src/treedrawing.h | 10 +++--- 5 files changed, 62 insertions(+), 17 deletions(-) create mode 100644 src/parser/cmdlist/cmdlist_debug.c diff --git a/Makefile b/Makefile index b5edd4f..c1c7655 100644 --- a/Makefile +++ b/Makefile @@ -33,6 +33,7 @@ srcs = \ src/parser/cmdgroup/cmdgroup.c \ src/parser/cmdlist/cmdlist.c \ src/parser/cmdlist/cmdlist_builder.c \ + src/parser/cmdlist/cmdlist_debug.c \ src/parser/cmdlist/cmdlist_item.c \ src/parser/cmdlist/operator.c \ src/parser/matchers/blank.c \ diff --git a/src/parser/cmdgroup/cmdgroup.c b/src/parser/cmdgroup/cmdgroup.c index 2da25cc..6ea8fd9 100644 --- a/src/parser/cmdgroup/cmdgroup.c +++ b/src/parser/cmdgroup/cmdgroup.c @@ -6,7 +6,7 @@ /* By: khais +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/03/11 15:18:02 by khais #+# #+# */ -/* Updated: 2025/03/18 15:32:01 by khais ### ########.fr */ +/* Updated: 2025/03/18 15:54:18 by khais ### ########.fr */ /* */ /* ************************************************************************** */ @@ -36,6 +36,8 @@ void cmdgroup_destroy(t_cmdgroup *cmd) void cmdgroup_debug(t_cmdgroup *cmd, t_buffer **leader, bool is_last) { + if (cmd == NULL) + return ; indent(leader, is_last); ft_printf("%s\n", "t_cmdgroup"); cmdlist_debug(&cmd->item, leader, false); diff --git a/src/parser/cmdlist/cmdlist.c b/src/parser/cmdlist/cmdlist.c index 6f35cf2..9b3f953 100644 --- a/src/parser/cmdlist/cmdlist.c +++ b/src/parser/cmdlist/cmdlist.c @@ -6,17 +6,15 @@ /* By: khais +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/02/24 17:49:46 by khais #+# #+# */ -/* Updated: 2025/03/18 15:31:31 by khais ### ########.fr */ +/* Updated: 2025/03/18 15:52:43 by khais ### ########.fr */ /* */ /* ************************************************************************** */ #include "cmdlist.h" -#include "../../treedrawing.h" #include "cmdlist_item.h" #include "cmdlist_builder.h" #include "cmdlist_item_type.h" #include "operator.h" -#include "libft.h" #include #include @@ -117,11 +115,3 @@ void cmdlist_destroy(t_cmdlist *cmd) free(cmd->operators); free(cmd); } - -void cmdlist_debug(t_cmdlist *cmd, t_buffer **leader, bool is_last) -{ - indent(leader, is_last); - ft_printf("%s\n", "t_cmdlist"); - (void)cmd; // TODO - dedent(leader, is_last); -} diff --git a/src/parser/cmdlist/cmdlist_debug.c b/src/parser/cmdlist/cmdlist_debug.c new file mode 100644 index 0000000..8c7e185 --- /dev/null +++ b/src/parser/cmdlist/cmdlist_debug.c @@ -0,0 +1,52 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* cmdlist_debug.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: khais +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2025/03/18 15:52:28 by khais #+# #+# */ +/* Updated: 2025/03/18 15:52:45 by khais ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "cmdlist.h" +#include "../../treedrawing.h" +#include "libft.h" + +static void cmdlist_array_debug(t_cmdlist *cmd, + int i, t_buffer **leader, bool is_last) +{ + indent(leader, is_last); + ft_printf("cmd[%d]\n", i); + (void)cmd; + /* cmdlist_item_debug(cmd->cmds[i], leader, false); */ + /* operator_debug(cmd->operators[i], leader, true); */ + dedent(leader, is_last); +} + +void cmdlist_debug(t_cmdlist *cmd, t_buffer **leader, bool is_last) +{ + int i; + bool last; + + if (cmd == NULL) + return ; + indent(leader, is_last); + ft_printf("%s\n", "t_cmdlist"); + i = 0; + last = false; + if (cmd->num_cmds == 0) + last = true; + indent(leader, last); + ft_printf("num_cmds = %d\n", cmd->num_cmds); + dedent(leader, last); + while (i < cmd->num_cmds) + { + if (i == cmd->num_cmds - 1) + last = true; + cmdlist_array_debug(cmd, i, leader, last); + i++; + } + dedent(leader, is_last); +} diff --git a/src/treedrawing.h b/src/treedrawing.h index 0c4ab59..44abee2 100644 --- a/src/treedrawing.h +++ b/src/treedrawing.h @@ -6,7 +6,7 @@ /* By: khais +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/03/18 12:24:25 by khais #+# #+# */ -/* Updated: 2025/03/18 15:24:40 by khais ### ########.fr */ +/* Updated: 2025/03/18 15:46:36 by khais ### ########.fr */ /* */ /* ************************************************************************** */ @@ -16,10 +16,10 @@ # include # include "buffer/buffer.h" -# define CROSS " ├─" -# define CORNER " ╰─" -# define VERTICAL " │ " -# define SPACE " " +# define CROSS " ├─ " +# define CORNER " ╰─ " +# define VERTICAL " │ " +# define SPACE " " void indent(t_buffer **indent, bool is_last); void dedent(t_buffer **indent, bool is_last);