From cc1b57c96cc8c0fdd53e781b54a83bb9c743179a Mon Sep 17 00:00:00 2001 From: Charles Date: Fri, 28 Feb 2020 09:41:52 +0100 Subject: Added environment and state Also dummy files eval.c parse.c --- include/minishell.h | 65 ++++++++++++++++++++++------------------------------- include/ms_parse.h | 58 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 85 insertions(+), 38 deletions(-) create mode 100644 include/ms_parse.h (limited to 'include') diff --git a/include/minishell.h b/include/minishell.h index cc28e10..5e27ffa 100644 --- a/include/minishell.h +++ b/include/minishell.h @@ -6,7 +6,7 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/02/26 15:33:51 by cacharle #+# #+# */ -/* Updated: 2020/02/27 18:07:06 by cacharle ### ########.fr */ +/* Updated: 2020/02/28 12:34:21 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ @@ -27,58 +27,39 @@ # include "libft_lst.h" # include "libft_util.h" -typedef int t_status; +# include "ms_parse.h" -typedef enum -{ - REDIRECTION_OUT, - REDIRECTION_IN, - REDIRECTION_APPEND -} t_redirection_type; +# define MS_PATH_KEY "PATH" typedef struct { - char *filename; - t_redirection_type type; -} t_redirection; + t_ftht *commands; + t_ftlst *dirs; +} t_path; typedef struct { - char *name; - char **argv; - t_ftlst *redirections; -} t_command; + t_path *path; + t_ftht *environment; +} t_state; -typedef enum -{ - SEPARATOR_SEMICOLON, - SEPARATOR_PIPE, - SEPARATOR_AND, - SEPARATOR_OR, -} t_separator; +/* +** state.c +*/ -typedef struct -{ - t_ftlst *commands; - t_ftlst *separators; -} t_parsing; +int ms_state_init(t_state *state, const char **envp); +void ms_state_destroy(t_state *state); /* -** parse/.c +** eval.c */ -t_parsing *ms_parse(char *input); +int ms_eval(t_parsing *parsing); /* ** path.c */ -typedef struct -{ - t_ftht *commands; - t_ftlst *dirs; -} t_path; - t_path *ms_path_update(t_path *path, const char *path_str); void ms_path_destroy(t_path *path); @@ -86,15 +67,17 @@ void ms_path_destroy(t_path *path); ** environment.c */ -// t_ftht *ms_environment_update(t_ftht *environment, char **envp); -// char **ms_environment_(t_ftht *environment, char **envp); +t_ftht *ms_environment_from_array(const char **envp); +char **ms_environment_to_array(t_ftht *environment); +// probably bloat // void ms_environment_destroy(t_ftht *environment); - /* ** builtin*.c */ +typedef int t_status; + typedef t_status (*t_builtin_func)(int argc, char **argv, char **envp); t_builtin_func ms_echo; t_builtin_func ms_cd; @@ -104,4 +87,10 @@ t_builtin_func ms_unset; t_builtin_func ms_env; t_builtin_func ms_exit; +/* +** util.c +*/ + +void ms_ht_del_str_entry(t_ftht_content *content); + #endif diff --git a/include/ms_parse.h b/include/ms_parse.h new file mode 100644 index 0000000..043f065 --- /dev/null +++ b/include/ms_parse.h @@ -0,0 +1,58 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ms_parse.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cacharle +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/02/28 09:00:00 by cacharle #+# #+# */ +/* Updated: 2020/02/28 12:28:59 by cacharle ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#ifndef MS_PARSE_H +# define MS_PARSE_H + +# include "minishell.h" + +typedef enum +{ + REDIRECTION_OUT, + REDIRECTION_IN, + REDIRECTION_APPEND +} t_redirection_type; + +typedef struct +{ + char *filename; + t_redirection_type type; +} t_redirection; + +typedef struct +{ + char *name; + char **argv; + t_ftlst *redirections; +} t_command; + +typedef enum +{ + SEPARATOR_SEMICOLON, + SEPARATOR_PIPE, + SEPARATOR_AND, + SEPARATOR_OR, +} t_separator; + +typedef struct +{ + t_ftlst *commands; + t_ftlst *separators; +} t_parsing; + +/* +** parse.c +*/ + +t_parsing *ms_parse(char *input); + +#endif -- cgit