]> git.dkaiser.de - 42/minishell.git/commitdiff
Remove assigns
authorDominik Kaiser <dkaiser@2-C-5.42heilbronn.de>
Sun, 11 Aug 2024 10:27:02 +0000 (12:27 +0200)
committerDominik Kaiser <dkaiser@2-C-5.42heilbronn.de>
Sun, 11 Aug 2024 10:27:02 +0000 (12:27 +0200)
I found out that there's a difference between shell variables and env
variables.
We don't have to implement shell variables, so I removed all code that
handles them.

Makefile
include/ast.h
include/minishell.h
src/collect_assigns.c [deleted file]
src/free_node.c
src/new_node.c
src/parse_cmd.c
src/print_ast.c

index d4778bf06b51277a314e0f6bc6d47f357d7f152b..827c317214e23f6d99c8d644f9110f91e1f11597 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -13,7 +13,7 @@ HEADERS =  -I include -I $(LIB_DIR)/libft
 VPATH   := src
 SRC     := main.c debug_tools.c init.c signal_handling.c repl.c new_token.c \
            free_token.c new_node.c free_node.c tokenizer.c parser.c \
-           parse_cmd.c collect_assigns.c collect_redirs.c print_ast.c
+           parse_cmd.c collect_redirs.c print_ast.c
 
 OBJ_DIR := _obj
 OBJ     := $(addprefix $(OBJ_DIR)/, $(SRC:%.c=%.o))
index bf190838ddeb40b66c8eae801dfae59a4e66be4e..cd2f9c9eff893a1c1506a503043e20d0071af83c 100644 (file)
@@ -6,7 +6,7 @@
 /*   By: dkaiser <dkaiser@student.42heilbronn.de    +#+  +:+       +#+        */
 /*                                                +#+#+#+#+#+   +#+           */
 /*   Created: 2024/06/27 11:48:27 by dkaiser           #+#    #+#             */
-/*   Updated: 2024/07/10 12:31:39 by dkaiser          ###   ########.fr       */
+/*   Updated: 2024/08/11 12:20:56 by dkaiser          ###   ########.fr       */
 /*                                                                            */
 /* ************************************************************************** */
 
@@ -20,12 +20,6 @@ enum                                         e_node_type
        STRING_NODE
 };
 
-typedef struct s_assign
-{
-       char                                    *var;
-       char                                    *value;
-}                                                      t_assign;
-
 typedef struct s_pipe
 {
        struct s_node                   *left;
@@ -49,7 +43,6 @@ typedef struct s_redirection
 typedef struct s_cmd
 {
        char                                    **args;
-       struct s_assign                 **assigns;
        struct s_redirection    redirs[2];
 }                                                      t_cmd;
 
@@ -68,8 +61,7 @@ typedef struct s_node
 
 t_node                                         *new_node(int type);
 t_node                                         *new_pipe_node(t_node *left, t_node *right);
-t_node                                         *new_cmd_node(char **args, t_assign **assigns,
-                                                               t_redirection redirs[2]);
+t_node                                         *new_cmd_node(char **args, t_redirection redirs[2]);
 t_node                                         *new_string_node(char *string);
 
 void                                           free_node(t_node *node);
index 4f04682738e4cac361787cfdabf6ff56f8697183..6997b15c97ad59265328c300ec9ed2680da68dac 100644 (file)
@@ -6,7 +6,7 @@
 /*   By: dkaiser <dkaiser@student.42heilbronn.de    +#+  +:+       +#+        */
 /*                                                +#+#+#+#+#+   +#+           */
 /*   Created: 2024/06/22 17:14:49 by dkaiser           #+#    #+#             */
-/*   Updated: 2024/08/11 10:59:16 by dkaiser          ###   ########.fr       */
+/*   Updated: 2024/08/11 12:22:07 by dkaiser          ###   ########.fr       */
 /*                                                                            */
 /* ************************************************************************** */
 
@@ -34,7 +34,6 @@ void                  repl(const char *prompt);
 t_list                 *parse(t_token *tokens);
 t_node                 *parse_cmd(t_token *tokens);
 t_redirection  *collect_redirs(t_token **tokens);
-t_assign       **collect_assigns(t_token **tokens);
 
 void                   print_ast(t_node *ast);
 #endif
diff --git a/src/collect_assigns.c b/src/collect_assigns.c
deleted file mode 100644 (file)
index da43503..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-/* ************************************************************************** */
-/*                                                                            */
-/*                                                        :::      ::::::::   */
-/*   collect_assigns.c                                  :+:      :+:    :+:   */
-/*                                                    +:+ +:+         +:+     */
-/*   By: dkaiser <dkaiser@student.42heilbronn.de    +#+  +:+       +#+        */
-/*                                                +#+#+#+#+#+   +#+           */
-/*   Created: 2024/08/02 13:54:36 by dkaiser           #+#    #+#             */
-/*   Updated: 2024/08/02 14:37:41 by dkaiser          ###   ########.fr       */
-/*                                                                            */
-/* ************************************************************************** */
-
-#include "minishell.h"
-#include "token.h"
-
-static t_assign        *to_assign(char *str);
-static int             count_tokens(t_token *tokens);
-static int             is_quote(char c);
-
-t_assign       **collect_assigns(t_token **tokens)
-{
-       t_token         *cur;
-       t_assign        **result;
-       int                     i;
-
-       result = malloc(sizeof(t_assign *) * (count_tokens(*tokens) + 1));
-       if (result == NULL)
-               return (free_tokens(*tokens), NULL);
-       cur = *tokens;
-       i = 0;
-       while (cur != NULL && cur->type == STRING_TOKEN
-               && !is_quote(cur->content.string[0]) && ft_strchr(cur->content.string,
-                       '=') != NULL)
-       {
-               result[i++] = to_assign(cur->content.string);
-               if (cur->next != NULL)
-               {
-                       cur = cur->next;
-                       free_token(cur->previous);
-               }
-               else
-                       free_token(cur);
-       }
-       *tokens = cur;
-       result[i] = NULL;
-       return (result);
-}
-
-static t_assign        *to_assign(char *str)
-{
-       t_assign        *result;
-       char            *split_pos;
-
-       split_pos = ft_strchr(str, '=');
-       *split_pos = '\0';
-       result = malloc(sizeof(t_assign));
-       if (result == NULL)
-       {
-               return (NULL);
-       }
-       result->var = str;
-       result->value = split_pos + 1;
-       return (result);
-}
-
-static int     count_tokens(t_token *tokens)
-{
-       int     len;
-
-       len = 0;
-       while (tokens != NULL && tokens->type == STRING_TOKEN
-               && !is_quote(tokens->content.string[0])
-               && ft_strchr(tokens->content.string, '=') != NULL)
-       {
-               len++;
-               tokens = tokens->next;
-       }
-       return (len);
-}
-
-static int     is_quote(char c)
-{
-       return (c == '"' || c == '\'');
-}
index f387c0aab20aa571d9fdad64b1f280f76927a287..6eae05906d28fbc9cfe29df3ee252802c85e7749 100644 (file)
@@ -6,7 +6,7 @@
 /*   By: dkaiser <dkaiser@student.42heilbronn.de    +#+  +:+       +#+        */
 /*                                                +#+#+#+#+#+   +#+           */
 /*   Created: 2024/06/27 11:41:46 by dkaiser           #+#    #+#             */
-/*   Updated: 2024/08/02 13:28:47 by dkaiser          ###   ########.fr       */
+/*   Updated: 2024/08/11 12:26:20 by dkaiser          ###   ########.fr       */
 /*                                                                            */
 /* ************************************************************************** */
 
@@ -14,7 +14,6 @@
 
 static void    free_pipe_node(t_node *node);
 static void    free_cmd_node(t_node *node);
-static void    free_assigns(t_assign **assigns);
 
 void   free_node(t_node *node)
 {
@@ -46,7 +45,6 @@ static void   free_cmd_node(t_node *node)
                i++;
        }
        free(node->content.cmd.args);
-       free_assigns(node->content.cmd.assigns);
        if (node->content.cmd.redirs[0].type != 0
                && node->content.cmd.redirs[0].specifier != NULL)
                free(node->content.cmd.redirs[0].specifier);
@@ -54,19 +52,3 @@ static void  free_cmd_node(t_node *node)
                && node->content.cmd.redirs[0].specifier != NULL)
                free(node->content.cmd.redirs[1].specifier);
 }
-
-static void    free_assigns(t_assign **assigns)
-{
-       int     i;
-
-       i = 0;
-       if (assigns == 0)
-               return ;
-       while (assigns[i] != NULL)
-       {
-               free(assigns[i]->var);
-               free(assigns[i]);
-               i++;
-       }
-       free(assigns);
-}
index c2458d0430669e12283c7e30e07dd4fa5cecf640..6da9f9e3cf10bafbdf6f569f5df0aca054afbbff 100644 (file)
@@ -6,7 +6,7 @@
 /*   By: dkaiser <dkaiser@student.42heilbronn.de    +#+  +:+       +#+        */
 /*                                                +#+#+#+#+#+   +#+           */
 /*   Created: 2024/06/27 11:21:03 by dkaiser           #+#    #+#             */
-/*   Updated: 2024/07/22 14:25:03 by dkaiser          ###   ########.fr       */
+/*   Updated: 2024/08/11 12:22:45 by dkaiser          ###   ########.fr       */
 /*                                                                            */
 /* ************************************************************************** */
 
@@ -35,7 +35,7 @@ t_node        *new_pipe_node(t_node *left, t_node *right)
        return (node);
 }
 
-t_node *new_cmd_node(char **args, t_assign **assigns, t_redirection redirs[2])
+t_node *new_cmd_node(char **args, t_redirection redirs[2])
 {
        t_node  *node;
 
@@ -43,7 +43,6 @@ t_node        *new_cmd_node(char **args, t_assign **assigns, t_redirection redirs[2])
        if (node == NULL)
                return (NULL);
        node->content.cmd.args = args;
-       node->content.cmd.assigns = assigns;
        node->content.cmd.redirs[0] = redirs[0];
        node->content.cmd.redirs[1] = redirs[1];
        free(redirs);
index eb70f0df5333ecf78a7c3f05b67fc566a6688d75..2755cae856426e05a99a835d6605a2930a24301d 100644 (file)
@@ -6,7 +6,7 @@
 /*   By: dkaiser <dkaiser@student.42heilbronn.de    +#+  +:+       +#+        */
 /*                                                +#+#+#+#+#+   +#+           */
 /*   Created: 2024/07/08 15:06:25 by dkaiser           #+#    #+#             */
-/*   Updated: 2024/08/11 12:14:11 by dkaiser          ###   ########.fr       */
+/*   Updated: 2024/08/11 12:20:06 by dkaiser          ###   ########.fr       */
 /*                                                                            */
 /* ************************************************************************** */
 
@@ -17,13 +17,11 @@ static char **collect_args(t_token **tokens);
 t_node *parse_cmd(t_token *tokens)
 {
        char                    **args;
-       t_assign                **assigns;
        t_redirection   *redirs;
 
        redirs = collect_redirs(&tokens);
-       assigns = collect_assigns(&tokens);
        args = collect_args(&tokens);
-       return (new_cmd_node(args, assigns, redirs));
+       return (new_cmd_node(args, redirs));
 }
 
 static char    **collect_args(t_token **tokens)
index 94f813f3baf5f169ec176e70b898f1a4d88226bc..a511246d1be5b7666d3d9d14022f4106e782014b 100644 (file)
@@ -6,7 +6,7 @@
 /*   By: dkaiser <dkaiser@student.42heilbronn.de    +#+  +:+       +#+        */
 /*                                                +#+#+#+#+#+   +#+           */
 /*   Created: 2024/07/22 15:16:53 by dkaiser           #+#    #+#             */
-/*   Updated: 2024/08/02 13:18:48 by dkaiser          ###   ########.fr       */
+/*   Updated: 2024/08/11 12:26:00 by dkaiser          ###   ########.fr       */
 /*                                                                            */
 /* ************************************************************************** */
 
@@ -49,14 +49,6 @@ static void  print_cmd_node(t_node *ast, int indent)
                printf(" '%s'", ast->content.cmd.args[i]);
                i++;
        }
-       i = 0;
-       printf("\n%*sASSIGNS:", indent + 2, "");
-       while (ast->content.cmd.assigns[i] != NULL)
-       {
-               printf(" %s=%s", ast->content.cmd.assigns[i]->var,
-                       ast->content.cmd.assigns[i]->value);
-               i++;
-       }
        printf("\n%*sREDIRS:", indent + 2, "");
        printf("\n%*sIN: %d %s", indent + 4, "", ast->content.cmd.redirs[0].type,
                ast->content.cmd.redirs[0].specifier);