mirror of
https://github.com/KeyZox71/ft_minipowershell.git
synced 2025-03-15 03:16:51 +01:00
「📝」 doc: Added doc in .h for parsing and tokenizer
This commit is contained in:
@ -6,7 +6,7 @@
|
||||
/* By: adjoly <adjoly@student.42angouleme.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/04/25 12:20:26 by adjoly #+# #+# */
|
||||
/* Updated: 2024/05/18 20:50:05 by adjoly ### ########.fr */
|
||||
/* Updated: 2024/05/19 13:45:01 by adjoly ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
@ -14,8 +14,7 @@
|
||||
# define PARSING_H
|
||||
|
||||
# include "libft.h"
|
||||
|
||||
# define HEREDOC_FD -2
|
||||
# include "tokenizer.h"
|
||||
|
||||
typedef struct s_cmd
|
||||
{
|
||||
@ -25,7 +24,18 @@ typedef struct s_cmd
|
||||
int outfile;
|
||||
} t_cmd;
|
||||
|
||||
/**
|
||||
* @brief Take the argv of a command a split the argv and the command it self
|
||||
*
|
||||
* @param The full argv of the command
|
||||
*
|
||||
* @return (t_cmd *) cmd and argv splited into a struct
|
||||
*/
|
||||
t_cmd *split_cmd(char *cmd_av);
|
||||
|
||||
/*
|
||||
* @deprecated
|
||||
*/
|
||||
t_list *split_pipe(char *readline);
|
||||
|
||||
#endif
|
||||
|
39
include/prompt.h
Normal file
39
include/prompt.h
Normal file
@ -0,0 +1,39 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* prompt.h :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: adjoly <adjoly@student.42angouleme.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/05/19 13:48:05 by adjoly #+# #+# */
|
||||
/* Updated: 2024/05/19 14:20:45 by adjoly ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#ifndef PROMPT_H
|
||||
# define PROMPT_H
|
||||
|
||||
/**
|
||||
* @brief return the short hostname from /etc/hostname
|
||||
* or return nixos if file doesn't exist or is empty
|
||||
*
|
||||
* @return (char *) The short hostname
|
||||
*/
|
||||
char *get_hostname(void);
|
||||
|
||||
/**
|
||||
* @brief return the pwd (from the env), and if in home put a ~
|
||||
* replacing the home directory
|
||||
*
|
||||
* @return (char *) the pwd
|
||||
*/
|
||||
char *get_pwd(void);
|
||||
|
||||
/**
|
||||
* @brief return the full prompt
|
||||
*
|
||||
* @prompt (char *) the prompt
|
||||
*/
|
||||
char *get_prompt(void);
|
||||
|
||||
#endif
|
68
include/tokenizer.h
Normal file
68
include/tokenizer.h
Normal file
@ -0,0 +1,68 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* tokenizer.h :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: adjoly <adjoly@student.42angouleme.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/05/18 20:14:15 by adjoly #+# #+# */
|
||||
/* Updated: 2024/05/19 14:02:58 by adjoly ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#ifndef TOKENIZER_H
|
||||
# define TOKENIZER_H
|
||||
|
||||
# include "libft.h"
|
||||
# include <stdbool.h>
|
||||
|
||||
typedef enum s_redirection_sign
|
||||
{
|
||||
HEREDOC,
|
||||
INFILE,
|
||||
OUTFILE,
|
||||
OUT_APPEND,
|
||||
} t_redirection_sign;
|
||||
|
||||
typedef struct s_redirection
|
||||
{
|
||||
char *file_name;
|
||||
t_redirection_sign sign;
|
||||
} t_redirection;
|
||||
|
||||
typedef struct s_token
|
||||
{
|
||||
char *argv;
|
||||
t_list *redirection;
|
||||
} t_token;
|
||||
|
||||
/**
|
||||
* @brief Convert the raw command into a t_token that contains the argv of the command an a linked list of redirection
|
||||
*
|
||||
* @param cmd A string that containt the command to tokenize
|
||||
*
|
||||
* @return (t_token *) The tokenized version of the command
|
||||
*
|
||||
*/
|
||||
t_token *__to_token(char *cmd);
|
||||
|
||||
/**
|
||||
* @brief **
|
||||
*
|
||||
* @param
|
||||
*
|
||||
* @return ()
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* @brief Convert the readline output, split all command and put it in linked list of t_token (given by t_token function)
|
||||
*
|
||||
* @param readline The readline output
|
||||
*
|
||||
* @return (t_list *) Linked list of t_token
|
||||
*
|
||||
*/
|
||||
t_list *tokenizer(char *readline);
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user