/* ************************************************************************** */ /* */ /* :::::::: */ /* typedef.h :+: :+: */ /* +:+ */ /* By: qmennen +#+ */ /* +#+ */ /* Created: 2025/02/05 12:36:08 by whaffman #+# #+# */ /* Updated: 2025/03/19 13:46:51 by whaffman ######## odam.nl */ /* */ /* ************************************************************************** */ #ifndef TYPEDEF_H # define TYPEDEF_H typedef enum e_token_type { T_WORD, T_DQWORD, T_SQWORD, T_PIPE, T_REDIRECT_IN, T_REDIRECT_OUT, T_AND, T_OR, T_APPEND_OUT, T_HEREDOC, T_EOF, T_ERROR } t_token_type; typedef struct s_environment { char *name; char *value; } t_environment; typedef struct s_token { t_token_type type; char *value; int position; } t_token; typedef struct s_lexer { char *input; int pos; int n_pos; char current_char; } t_lexer; typedef struct s_redirect { enum e_token_type type; char *value; } t_redirect; typedef struct s_command { //char *command; char **args; // t_list *environment; t_list *redirect_in; t_list *redirect_out; int fd_in; int fd_out; int n_fds; int pid; int exit_status; } t_command; typedef struct s_minishell { t_list *environment; char *line; t_lexer *lexer; t_list *tokens; t_list *commands; t_list *freelist; int exit_status; } t_minishell; typedef int (*t_builtin_fn)(t_minishell *, t_command *); #endif // TYPEDEF_H