aboutsummaryrefslogtreecommitdiff
path: root/src/parser.c
diff options
context:
space:
mode:
authorChristopher Uhlig2025-01-13 11:06:54 +0100
committerChristopher Uhlig2025-01-13 11:06:54 +0100
commit78dc50a2bce3c6e31405437189e2990d8fc720ac (patch)
treed61d9f0d279e191c1bfb34929908f412cf58c02d /src/parser.c
parentae5512ea0d6d8be833ca3a9b39f93239109f45b4 (diff)
downloadminishell-78dc50a2bce3c6e31405437189e2990d8fc720ac.tar.gz
minishell-78dc50a2bce3c6e31405437189e2990d8fc720ac.zip
here
Diffstat (limited to 'src/parser.c')
-rw-r--r--src/parser.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/src/parser.c b/src/parser.c
index 06c1df7..1375954 100644
--- a/src/parser.c
+++ b/src/parser.c
@@ -3,35 +3,36 @@
/* ::: :::::::: */
/* parser.c :+: :+: :+: */
/* +:+ +:+ +:+ */
-/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
+/* By: chuhlig <chuhlig@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/06/29 15:53:29 by dkaiser #+# #+# */
-/* Updated: 2024/09/17 19:03:48 by dkaiser ### ########.fr */
+/* Updated: 2025/01/11 16:06:54 by chuhlig ### ########.fr */
/* */
/* ************************************************************************** */
#include "libft.h"
#include "minishell.h"
#include "token.h"
+#include "env.h"
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 t_node *parse_statement(t_token *tokens, t_env **env);
-t_list *parse(t_token *tokens)
+t_list *parse(t_token *tokens, t_env **env)
{
t_node *result;
if ((*tokens).type == PIPE_TOKEN)
result = NULL;
else
- result = parse_statement(tokens);
+ result = parse_statement(tokens, env);
if (result == NULL)
printf("Parsing error.\n");
return (ft_lstnew(result));
}
-static t_node *parse_statement(t_token *tokens)
+static t_node *parse_statement(t_token *tokens, t_env **env)
{
t_token *left_side_tokens;
@@ -43,12 +44,12 @@ static t_node *parse_statement(t_token *tokens)
}
else if (tokens != NULL)
{
- return (new_pipe_node(parse_cmd(left_side_tokens),
- parse_statement(tokens)));
+ return (new_pipe_node(parse_cmd(left_side_tokens, env),
+ parse_statement(tokens, env)));
}
else
{
- return (parse_cmd(left_side_tokens));
+ return (parse_cmd(left_side_tokens, env));
}
}