From b909668a1a4c4ae99f093366748201ba4ecb8f9f Mon Sep 17 00:00:00 2001 From: Quinten Mennen Date: Wed, 5 Feb 2025 15:52:30 +0100 Subject: [PATCH] refactor: god struct lexer and error message --- src/main.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/main.c b/src/main.c index b824484..2cfa6dd 100644 --- a/src/main.c +++ b/src/main.c @@ -12,6 +12,7 @@ #include "minishell.h" #include "prompt.h" +#include void print_banner(void) { @@ -26,14 +27,18 @@ void print_list(void *content) { t_token *token; token = (t_token *)content; - ft_printf("%s\n", token->value); + if (token->type == T_ERROR) + { + printf("An error occurred near position %i\n", token->position); + } + else + ft_printf("%s\n", token->value); } int main(int argc, char **argv, char **envp) { t_enviroment *enviroment; char *line; - t_lexer *lexer; t_list *list; t_minishell *minishell; @@ -53,8 +58,8 @@ int main(int argc, char **argv, char **envp) line = ft_prompt(minishell); if (line != NULL) add_history(line); - lexer = ft_lexer_new(line); - list = ft_parse_input(lexer); + minishell->lexer = ft_lexer_new(line); + list = ft_parse_input(minishell->lexer); ft_lstiter(list, print_list); free(line); if (list != NULL && ft_strncmp(((t_token *)list->content)->value, "clear\0", 6) == 0) @@ -64,10 +69,10 @@ int main(int argc, char **argv, char **envp) else if (list != NULL && ft_strncmp(((t_token *)list->content)->value, "exit\0", 5) == 0) break; ft_lstclear(&list, ft_clear_tokenlist); - ft_lexer_free(lexer); + ft_lexer_free(minishell->lexer); } ft_lstclear(&list, ft_clear_tokenlist); - ft_lexer_free(lexer); + ft_lexer_free(minishell->lexer); // print_enviroment(enviroment); free_enviroment(enviroment); free(minishell);