refactor: creating commands
This commit is contained in:
parent
859b9c181a
commit
e5569d9b0b
@ -15,7 +15,8 @@
|
||||
|
||||
# include "minishell.h"
|
||||
|
||||
t_command *parser_command_new(t_minishell *msh, char *cmd);
|
||||
t_command *parser_alloc_command(t_minishell *msh, char *cmd);
|
||||
void parser_create_command(t_minishell *msh, t_command *cmd, t_list **l_tkn);
|
||||
char **parser_get_arguments(t_list *list, t_minishell *msh);
|
||||
t_list *parser_get_commands(t_minishell *msh);
|
||||
t_list *parser_get_input_redirects(t_list *list);
|
||||
|
||||
@ -12,7 +12,7 @@
|
||||
|
||||
#include "minishell.h"
|
||||
|
||||
t_command *parser_command_new(t_minishell *msh, char *cmd)
|
||||
t_command *parser_alloc_command(t_minishell *msh, char *cmd)
|
||||
{
|
||||
t_command *command;
|
||||
|
||||
20
src/parser/parser_create_command.c
Normal file
20
src/parser/parser_create_command.c
Normal file
@ -0,0 +1,20 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* parser_create_command.c :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2025/02/27 13:35:02 by qmennen #+# #+# */
|
||||
/* Updated: 2025/02/27 13:36:48 by qmennen ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "minishell.h"
|
||||
|
||||
void parser_create_command(t_minishell *msh, t_command *cmd, t_list **l_tkn)
|
||||
{
|
||||
cmd->args = parser_get_arguments(*l_tkn, msh);
|
||||
cmd->redirect_in = redirect_get_inputs(msh, *l_tkn);
|
||||
cmd->redirect_out = redirect_get_outputs(msh, *l_tkn);
|
||||
}
|
||||
@ -6,12 +6,11 @@
|
||||
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2025/02/11 14:06:02 by qmennen #+# #+# */
|
||||
/* Updated: 2025/02/18 20:36:01 by qmennen ### ########.fr */
|
||||
/* Updated: 2025/02/27 13:38:56 by qmennen ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "minishell.h"
|
||||
#include "utils.h"
|
||||
|
||||
static int is_command_token(t_token *token)
|
||||
{
|
||||
@ -46,14 +45,10 @@ t_list *parser_get_commands(t_minishell *msh)
|
||||
while (current)
|
||||
{
|
||||
token = (t_token *) current->content;
|
||||
command = parser_command_new(msh, ft_strdup_safe(msh, token->value));
|
||||
command->args = parser_get_arguments(current, msh);
|
||||
command->redirect_in = redirect_get_inputs(msh, current);
|
||||
command->redirect_out = redirect_get_outputs(msh, current);
|
||||
if (!validate_redirects(command->redirect_in))
|
||||
{
|
||||
command = parser_alloc_command(msh, ft_strdup_safe(msh, token->value));
|
||||
parser_create_command(msh, command, ¤t);
|
||||
if (!validate_redirects(command->redirect_in) || !validate_redirects(command->redirect_out))
|
||||
break ;
|
||||
}
|
||||
ft_lstadd_back(&command_list, ft_lstnew_safe(msh, command));
|
||||
while (current && is_command_token((t_token *)current->content))
|
||||
current = current->next;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user