aboutsummaryrefslogtreecommitdiff
path: root/src/parser.c
diff options
context:
space:
mode:
authorDominik Kaiser2024-08-02 15:29:00 +0200
committerGitHub2024-08-02 15:29:00 +0200
commitc7a4494fd97b7e80665cbd47ed96bc37bf5800e5 (patch)
treed2520064c761e00772185dcdb82f83d566634a85 /src/parser.c
parent82c1eed4f7795ef135a586af2fb334145b64b2f6 (diff)
downloadminishell-c7a4494fd97b7e80665cbd47ed96bc37bf5800e5.tar.gz
minishell-c7a4494fd97b7e80665cbd47ed96bc37bf5800e5.zip
Refactor parser
* Fix norme for free_node.c * Uglify parser.c * Merge parser updates into refactor-parser * Outsource collect_assigns and collect_redirs * Make parse_cmd.c norme conform * Make free_tokens() norme conform * Make collect_assigns.c norme conform * Some refactoring of collect_redirs * Refactor collect_redirs
Diffstat (limited to 'src/parser.c')
-rw-r--r--src/parser.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/parser.c b/src/parser.c
index 66c6785..f9484c9 100644
--- a/src/parser.c
+++ b/src/parser.c
@@ -6,7 +6,7 @@
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/06/29 15:53:29 by dkaiser #+# #+# */
-/* Updated: 2024/07/09 11:38:12 by dkaiser ### ########.fr */
+/* Updated: 2024/08/02 13:48:09 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
@@ -14,8 +14,8 @@
static t_token *find_token_by_type(t_token *tokens, int type);
t_token *split_at_first(t_token **tokens, int type);
-
static t_node *parse_statement(t_token *tokens);
+static void free_node_wrapper(void *node);
t_list *parse(t_token *tokens)
{
@@ -38,10 +38,7 @@ t_list *parse(t_token *tokens)
current = current->next;
}
if (current == NULL)
- {
- // Free: ft_lstclear(&result, free_node);
- return (NULL);
- }
+ return (ft_lstclear(&result, free_node_wrapper), NULL);
current_tokens = split_at_first(&tokens, NEWLINE_TOKEN);
}
return (result);
@@ -91,3 +88,8 @@ static t_token *find_token_by_type(t_token *tokens, int type)
}
return (NULL);
}
+
+static void free_node_wrapper(void *node)
+{
+ free_node((t_node *)node);
+}