From 64100fe0f4309160c0211581fb3c21fb9dbc4ec3 Mon Sep 17 00:00:00 2001 From: Nathan Lebrun Date: Wed, 29 Jan 2025 11:40:30 +0100 Subject: [PATCH] cleenup --- Makefile | 6 +- parser | Bin 0 -> 158296 bytes {tests => test}/ast/ast.c | 11 ++-- {tests => test}/ast/ast.h | 3 +- {tests => test}/drawio/drawio.h | 0 {tests => test}/drawio/drawio_ast.c | 0 {tests => test}/drawio/drawio_ast_utils.c | 0 {tests => test}/drawio/drawio_linklist.c | 0 {tests => test}/drawio/drawio_print_ast.c | 0 {tests => test}/drawio/drawio_utils.c | 0 {tests => test}/parsing.h | 4 +- {tests => test}/test.c | 32 ++++----- {tests => test}/tmp_env.c | 0 {tests => test}/tokenizer/linked_list.c | 62 ------------------ {tests => test}/tokenizer/token_and_pres.c | 0 {tests => test}/tokenizer/tokenizer.c | 0 {tests => test}/tokenizer/tokenizer.h | 2 +- {tests => test}/tokenizer/tokenizer_utils.c | 0 .../tokenizer/unstick_node_utils.c | 0 19 files changed, 29 insertions(+), 91 deletions(-) create mode 100755 parser rename {tests => test}/ast/ast.c (98%) rename {tests => test}/ast/ast.h (95%) rename {tests => test}/drawio/drawio.h (100%) rename {tests => test}/drawio/drawio_ast.c (100%) rename {tests => test}/drawio/drawio_ast_utils.c (100%) rename {tests => test}/drawio/drawio_linklist.c (100%) rename {tests => test}/drawio/drawio_print_ast.c (100%) rename {tests => test}/drawio/drawio_utils.c (100%) rename {tests => test}/parsing.h (98%) rename {tests => test}/test.c (78%) rename {tests => test}/tmp_env.c (100%) rename {tests => test}/tokenizer/linked_list.c (52%) rename {tests => test}/tokenizer/token_and_pres.c (100%) rename {tests => test}/tokenizer/tokenizer.c (100%) rename {tests => test}/tokenizer/tokenizer.h (98%) rename {tests => test}/tokenizer/tokenizer_utils.c (100%) rename {tests => test}/tokenizer/unstick_node_utils.c (100%) diff --git a/Makefile b/Makefile index 95000b1..63ed900 100644 --- a/Makefile +++ b/Makefile @@ -36,7 +36,7 @@ $(NAME): $(LIBFT) $(OBJS) # test part -TEST_SRCDIR = tests +TEST_SRCDIR = test TEST_OBJDIR = .TEST_objs TEST_SRCS = $(shell find $(TEST_SRCDIR) -name "*.c") TEST_OBJS = $(patsubst $(TEST_SRCDIR)/%.c, $(TEST_OBJDIR)/%.o, $(TEST_SRCS)) @@ -46,8 +46,8 @@ $(TEST_OBJDIR)/%.o: $(TEST_SRCDIR)/%.c @mkdir -p $(dir $@) @$(CC) $(WFLAGS) -MMD -MP -I$(INCDIR) -c $< -g3 -ggdb -o $@ $(LINK) -tests: $(LIBFT) $(TEST_OBJS) - @$(CC) $(WFLAGS) $(TEST_OBJS) $(LIBFT) -o test $(LINK) +parser: $(LIBFT) $(TEST_OBJS) + @$(CC) $(WFLAGS) $(TEST_OBJS) $(LIBFT) -o parser $(LINK) @echo "$(CYAN)Test build completed: test$(RESET)" # test part end diff --git a/parser b/parser new file mode 100755 index 0000000000000000000000000000000000000000..0b98a551136653eefb3184a8a3d874a05cc29f16 GIT binary patch literal 158296 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 literal 0 HcmV?d00001 diff --git a/tests/ast/ast.c b/test/ast/ast.c similarity index 98% rename from tests/ast/ast.c rename to test/ast/ast.c index 2b9f111..d96d73e 100644 --- a/tests/ast/ast.c +++ b/test/ast/ast.c @@ -47,10 +47,11 @@ void setup_cmd(t_ast_n *node, char *cmd, char *args) node->args = ft_split(args, " "); } -t_ast_n *return_hardcode_ast(char **envp) +t_ast_n *get_ast(char **envp, t_node *lst) { t_ast_n *head; + (void)lst; // head head = created_ast_n(_AND, NULL, NULL); head->env = init_env(envp); @@ -72,7 +73,7 @@ t_ast_n *return_hardcode_ast(char **envp) // right head->left->right->right = created_ast_n(_CMD, head->left->right, head); setup_cmd(head->left->right->right, "echo", "echo coucou"); - + // right head->right = created_ast_n(_PLINE, head, head); head->right->pline = malloc(sizeof(t_ast_n *) * 4); @@ -81,11 +82,11 @@ t_ast_n *return_hardcode_ast(char **envp) setup_cmd(head->right->pline[0], "ls", "ls"); // ===1=== head->right->pline[1] = created_ast_n(_AND, head->right, head); - + // left head->right->pline[1]->left = created_ast_n(_CMD, head->right->pline[1], head); setup_cmd(head->right->pline[1]->left, "echo", "echo coucou"); - + // right head->right->pline[1]->right = created_ast_n(_CMD, head->right->pline[1], head); setup_cmd(head->right->pline[1]->right, "echo", "echo coucou"); @@ -93,7 +94,7 @@ t_ast_n *return_hardcode_ast(char **envp) // ===2=== head->right->pline[2] = created_ast_n(_CMD, head->right, head); setup_cmd(head->right->pline[2], "cat", "cat -e"); - + // ===NULL=== head->right->pline[3] = NULL; diff --git a/tests/ast/ast.h b/test/ast/ast.h similarity index 95% rename from tests/ast/ast.h rename to test/ast/ast.h index 3e964c0..accffc0 100644 --- a/tests/ast/ast.h +++ b/test/ast/ast.h @@ -15,6 +15,7 @@ /*# include "../../includes/env.h"*/ # include "../../lib/libft/libft.h" +# include "../tokenizer/tokenizer.h" typedef enum e_state { @@ -54,7 +55,7 @@ typedef struct s_ast_n char **env; } t_ast_n; -t_ast_n *return_hardcode_ast(char **envp); +t_ast_n *get_ast(char **envp, t_node *lst); // env TMP char **init_env(char **envp); diff --git a/tests/drawio/drawio.h b/test/drawio/drawio.h similarity index 100% rename from tests/drawio/drawio.h rename to test/drawio/drawio.h diff --git a/tests/drawio/drawio_ast.c b/test/drawio/drawio_ast.c similarity index 100% rename from tests/drawio/drawio_ast.c rename to test/drawio/drawio_ast.c diff --git a/tests/drawio/drawio_ast_utils.c b/test/drawio/drawio_ast_utils.c similarity index 100% rename from tests/drawio/drawio_ast_utils.c rename to test/drawio/drawio_ast_utils.c diff --git a/tests/drawio/drawio_linklist.c b/test/drawio/drawio_linklist.c similarity index 100% rename from tests/drawio/drawio_linklist.c rename to test/drawio/drawio_linklist.c diff --git a/tests/drawio/drawio_print_ast.c b/test/drawio/drawio_print_ast.c similarity index 100% rename from tests/drawio/drawio_print_ast.c rename to test/drawio/drawio_print_ast.c diff --git a/tests/drawio/drawio_utils.c b/test/drawio/drawio_utils.c similarity index 100% rename from tests/drawio/drawio_utils.c rename to test/drawio/drawio_utils.c diff --git a/tests/parsing.h b/test/parsing.h similarity index 98% rename from tests/parsing.h rename to test/parsing.h index ddb328f..c602430 100644 --- a/tests/parsing.h +++ b/test/parsing.h @@ -13,11 +13,13 @@ #ifndef PARSING_H # define PARSING_H +# define DEBUG 1 + # include "tokenizer/tokenizer.h" # include "ast/ast.h" -# include "drawio/drawio.h" // drawio +# include "drawio/drawio.h" // tmp_env char **init_env(char **envp); diff --git a/tests/test.c b/test/test.c similarity index 78% rename from tests/test.c rename to test/test.c index 6b9190b..97ce4ac 100644 --- a/tests/test.c +++ b/test/test.c @@ -11,7 +11,6 @@ /* ************************************************************************** */ #include "parsing.h" -/*#include "../includes/env.h"*/ void truncate_comment(char *str) { @@ -37,37 +36,34 @@ void truncate_comment(char *str) } } -/*static t_data *init_data(char **envp)*/ -/*{*/ -/* t_data *data;*/ -/**/ -/* data = malloc (sizeof(t_data));*/ -/* data->env = init_env(envp);*/ -/* return (data);*/ -/*}*/ - int main(int ac, char **av, char **envp) { t_node *lst; t_ast_n *ast; int dio; - /*t_data data;*/ if (ac != 3) { ft_error("./test drawio_file command_str\n"); return (1); } - /*data = init_data(envp);*/ truncate_comment(av[1]); lst = tokenize(av[2]); if (!lst) return (1); - dio = drawio_init(av[1]); - gen_dio_linked_list(lst, dio); - /*debug_linked_list(lst, "ff");*/ - ast = return_hardcode_ast(envp); - gen_dio_ast(ast, dio); - drawio_end_file(dio); + if (DEBUG) + { + dio = drawio_init(av[1]); + gen_dio_linked_list(lst, dio); + } + ast = get_ast(envp, lst); + if (!ast) + return (1); + if (DEBUG) + { + gen_dio_ast(ast, dio); + drawio_end_file(dio); + ft_debug(" draw.io file generated !\n"); + } free_linked_list(lst); } diff --git a/tests/tmp_env.c b/test/tmp_env.c similarity index 100% rename from tests/tmp_env.c rename to test/tmp_env.c diff --git a/tests/tokenizer/linked_list.c b/test/tokenizer/linked_list.c similarity index 52% rename from tests/tokenizer/linked_list.c rename to test/tokenizer/linked_list.c index 5e37760..35df924 100644 --- a/tests/tokenizer/linked_list.c +++ b/test/tokenizer/linked_list.c @@ -81,65 +81,3 @@ int merge_with_next_node(t_node *node) node->next = tmp_next; return (1); } - -// have to be deleted after -void debug_linked_list(t_node *head, char *msg) -{ - t_node *current; - char *token; - char *pres; - - current = head; - printf("----------------------------------------------------------{%s} \n", - msg); - while (current != NULL) - { - // set val for base token - if (current->token == OPERATOR) - token = ft_strdup("OPERATOR"); - else if (current->token == WORD) - token = ft_strdup(" WORD"); - else if (current->token == UNSET) - token = ft_strdup(" UNSET"); - else - token = ft_strdup(" ???"); - - // set vals for pressision token - if (current->pressision == COMMAND) - pres = ft_strdup("COMMAND "); - else if (current->pressision == UNDEFINED) - pres = ft_strdup("UNDEF "); - else if (current->pressision == AND) - pres = ft_strdup("AND "); - else if (current->pressision == OR) - pres = ft_strdup("OR "); - else if (current->pressision == PIPE) - pres = ft_strdup("PIPE "); - else if (current->pressision == SUBSH_S) - pres = ft_strdup("SUBSH_S "); - else if (current->pressision == SUBSH_E) - pres = ft_strdup("SUBSH_E "); - else if (current->pressision == RED_L) - pres = ft_strdup("RED_L "); - else if (current->pressision == RED_R) - pres = ft_strdup("RED_R "); - else if (current->pressision == HEREDOC) - pres = ft_strdup("HEREDOC "); - else if (current->pressision == D_RED_R) - pres = ft_strdup("D_RED_R "); - else if (current->pressision == PARAMETER) - pres = ft_strdup("PARAMETER"); - else if (current->pressision == RED_FILE) - pres = ft_strdup("RED_FILE "); - else if (current->pressision == LIM) - pres = ft_strdup("LIM "); - else - pres = ft_strdup("??? "); - - printf("| Node - TOKEN: %s.%s -> val: |%s|\n", token, pres, current->val); - free(token); - free(pres); - current = current->next; - } - printf("----------------------------------------------------------\n\n"); -} diff --git a/tests/tokenizer/token_and_pres.c b/test/tokenizer/token_and_pres.c similarity index 100% rename from tests/tokenizer/token_and_pres.c rename to test/tokenizer/token_and_pres.c diff --git a/tests/tokenizer/tokenizer.c b/test/tokenizer/tokenizer.c similarity index 100% rename from tests/tokenizer/tokenizer.c rename to test/tokenizer/tokenizer.c diff --git a/tests/tokenizer/tokenizer.h b/test/tokenizer/tokenizer.h similarity index 98% rename from tests/tokenizer/tokenizer.h rename to test/tokenizer/tokenizer.h index 42e1fd7..1b15bd9 100644 --- a/tests/tokenizer/tokenizer.h +++ b/test/tokenizer/tokenizer.h @@ -13,7 +13,7 @@ #ifndef TOKENIZER_H # define TOKENIZER_H -# include "../includes/minishell.h" +# include "../../lib/libft/libft.h" typedef enum e_token { diff --git a/tests/tokenizer/tokenizer_utils.c b/test/tokenizer/tokenizer_utils.c similarity index 100% rename from tests/tokenizer/tokenizer_utils.c rename to test/tokenizer/tokenizer_utils.c diff --git a/tests/tokenizer/unstick_node_utils.c b/test/tokenizer/unstick_node_utils.c similarity index 100% rename from tests/tokenizer/unstick_node_utils.c rename to test/tokenizer/unstick_node_utils.c