chore: make it norminette compliant
This commit is contained in:
parent
8170eec2ae
commit
34867c05a3
@ -6,15 +6,15 @@
|
|||||||
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
|
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2025/02/04 18:04:07 by qmennen #+# #+# */
|
/* Created: 2025/02/04 18:04:07 by qmennen #+# #+# */
|
||||||
/* Updated: 2025/02/04 20:40:27 by qmennen ### ########.fr */
|
/* Updated: 2025/02/04 20:50:37 by qmennen ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
#include "minishell.h"
|
#include "minishell.h"
|
||||||
|
|
||||||
t_lexer *ft_lexer_new(const char *input)
|
t_lexer *ft_lexer_new(const char *input)
|
||||||
{
|
{
|
||||||
t_lexer *lexer;
|
t_lexer *lexer;
|
||||||
|
|
||||||
lexer = malloc(sizeof(t_lexer));
|
lexer = malloc(sizeof(t_lexer));
|
||||||
if (!lexer)
|
if (!lexer)
|
||||||
@ -31,12 +31,12 @@ t_lexer *ft_lexer_new(const char *input)
|
|||||||
return (lexer);
|
return (lexer);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ft_lexer_readchar(t_lexer *lexer)
|
void ft_lexer_readchar(t_lexer *lexer)
|
||||||
{
|
{
|
||||||
if ((size_t)lexer->n_pos > ft_strlen(lexer->input))
|
if ((size_t)lexer->n_pos > ft_strlen(lexer->input))
|
||||||
{
|
{
|
||||||
lexer->current_char = '\0';
|
lexer->current_char = '\0';
|
||||||
return;
|
return ;
|
||||||
}
|
}
|
||||||
lexer->current_char = lexer->input[lexer->n_pos];
|
lexer->current_char = lexer->input[lexer->n_pos];
|
||||||
lexer->pos = lexer->n_pos;
|
lexer->pos = lexer->n_pos;
|
||||||
@ -66,26 +66,30 @@ static char *ft_parse_quotes(t_lexer *lexer)
|
|||||||
|
|
||||||
char *ft_lexer_readword(t_lexer *lexer)
|
char *ft_lexer_readword(t_lexer *lexer)
|
||||||
{
|
{
|
||||||
int start;
|
int start;
|
||||||
int len;
|
int len;
|
||||||
char *word;
|
char *word;
|
||||||
|
|
||||||
start = lexer->pos;
|
start = lexer->pos;
|
||||||
if (lexer->current_char == '"' || lexer->current_char == '\'')
|
if (lexer->current_char == '"' || lexer->current_char == '\'')
|
||||||
{
|
{
|
||||||
return (ft_parse_quotes(lexer));
|
return (ft_parse_quotes(lexer));
|
||||||
}
|
}
|
||||||
while (ft_isprint(lexer->current_char) && lexer->current_char != '<' && lexer->current_char != '>' && lexer->current_char != '|' && lexer->current_char != '\0')
|
while (ft_isprint(lexer->current_char) && lexer->current_char != '<'
|
||||||
|
&& lexer->current_char != '>' && lexer->current_char != '|'
|
||||||
|
&& lexer->current_char != '\0')
|
||||||
|
{
|
||||||
ft_lexer_readchar(lexer);
|
ft_lexer_readchar(lexer);
|
||||||
|
}
|
||||||
len = lexer->pos - start;
|
len = lexer->pos - start;
|
||||||
word = malloc(sizeof(char) * len);
|
word = malloc(sizeof(char) * len);
|
||||||
ft_strlcpy(word, lexer->input + start, len + 1);
|
ft_strlcpy(word, lexer->input + start, len + 1);
|
||||||
return (word);
|
return (word);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ft_lexer_free(t_lexer *lexer)
|
void ft_lexer_free(t_lexer *lexer)
|
||||||
{
|
{
|
||||||
if (lexer->input)
|
if (lexer->input)
|
||||||
free(lexer->input);
|
free(lexer->input);
|
||||||
free(lexer);
|
free(lexer);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
|
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2025/02/04 16:07:58 by qmennen #+# #+# */
|
/* Created: 2025/02/04 16:07:58 by qmennen #+# #+# */
|
||||||
/* Updated: 2025/02/04 20:45:45 by qmennen ### ########.fr */
|
/* Updated: 2025/02/04 20:48:17 by qmennen ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -22,18 +22,18 @@ t_list *ft_parse_input(t_lexer *lexer)
|
|||||||
{
|
{
|
||||||
token = ft_token_next(lexer);
|
token = ft_token_next(lexer);
|
||||||
if (token->type == T_EOF || token->type == T_ERROR)
|
if (token->type == T_EOF || token->type == T_ERROR)
|
||||||
break;
|
break ;
|
||||||
ft_lstadd_back(&list, ft_lstnew(token));
|
ft_lstadd_back(&list, ft_lstnew(token));
|
||||||
}
|
}
|
||||||
ft_token_free(token);
|
ft_token_free(token);
|
||||||
return (list);
|
return (list);
|
||||||
}
|
}
|
||||||
|
|
||||||
t_token *ft_token_next(t_lexer *lexer)
|
t_token *ft_token_next(t_lexer *lexer)
|
||||||
{
|
{
|
||||||
t_token *token;
|
t_token *token;
|
||||||
char *word;
|
char *word;
|
||||||
int current_pos;
|
int current_pos;
|
||||||
|
|
||||||
token = NULL;
|
token = NULL;
|
||||||
while (ft_isspace(lexer->current_char))
|
while (ft_isspace(lexer->current_char))
|
||||||
@ -41,7 +41,8 @@ t_token *ft_token_next(t_lexer *lexer)
|
|||||||
current_pos = lexer->pos;
|
current_pos = lexer->pos;
|
||||||
if (lexer->current_char == '\0')
|
if (lexer->current_char == '\0')
|
||||||
token = ft_token_new(T_EOF, NULL, current_pos);
|
token = ft_token_new(T_EOF, NULL, current_pos);
|
||||||
else if (lexer->current_char == '<' || lexer->current_char == '>' || lexer->current_char == '|')
|
else if (lexer->current_char == '<' || lexer->current_char == '>'
|
||||||
|
|| lexer->current_char == '|')
|
||||||
token = ft_parse_token(lexer);
|
token = ft_parse_token(lexer);
|
||||||
else if (ft_isprint(lexer->current_char))
|
else if (ft_isprint(lexer->current_char))
|
||||||
{
|
{
|
||||||
@ -54,10 +55,10 @@ t_token *ft_token_next(t_lexer *lexer)
|
|||||||
return (token);
|
return (token);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ft_clear_tokenlist(void *content)
|
void ft_clear_tokenlist(void *content)
|
||||||
{
|
{
|
||||||
t_token *token;
|
t_token *token;
|
||||||
|
|
||||||
token = (t_token *)content;
|
token = (t_token *)content;
|
||||||
ft_token_free(token);
|
ft_token_free(token);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,16 +6,16 @@
|
|||||||
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
|
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2025/02/04 18:02:56 by qmennen #+# #+# */
|
/* Created: 2025/02/04 18:02:56 by qmennen #+# #+# */
|
||||||
/* Updated: 2025/02/04 20:29:06 by qmennen ### ########.fr */
|
/* Updated: 2025/02/04 20:49:28 by qmennen ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
# include "minishell.h"
|
#include "minishell.h"
|
||||||
|
|
||||||
t_token *ft_parse_token(t_lexer *lexer)
|
t_token *ft_parse_token(t_lexer *lexer)
|
||||||
{
|
{
|
||||||
t_token *token;
|
t_token *token;
|
||||||
|
|
||||||
token = NULL;
|
token = NULL;
|
||||||
if (lexer->current_char == '|')
|
if (lexer->current_char == '|')
|
||||||
{
|
{
|
||||||
@ -26,15 +26,14 @@ t_token *ft_parse_token(t_lexer *lexer)
|
|||||||
token = ft_token_new(T_REDIRECT_IN, "<", lexer->pos);
|
token = ft_token_new(T_REDIRECT_IN, "<", lexer->pos);
|
||||||
}
|
}
|
||||||
else if (lexer->current_char == '>' && lexer->input[lexer->pos + 1] == '>')
|
else if (lexer->current_char == '>' && lexer->input[lexer->pos + 1] == '>')
|
||||||
{
|
{
|
||||||
token = ft_token_new(T_APPEND_OUT, ">>", lexer->pos);
|
token = ft_token_new(T_APPEND_OUT, ">>", lexer->pos);
|
||||||
ft_lexer_readchar(lexer);
|
ft_lexer_readchar(lexer);
|
||||||
}
|
}
|
||||||
else if (lexer->current_char == '>')
|
else if (lexer->current_char == '>')
|
||||||
{
|
{
|
||||||
token = ft_token_new(T_REDIRECT_OUT, ">", lexer->pos);
|
token = ft_token_new(T_REDIRECT_OUT, ">", lexer->pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
ft_lexer_readchar(lexer);
|
ft_lexer_readchar(lexer);
|
||||||
return (token);
|
return (token);
|
||||||
}
|
}
|
||||||
@ -63,4 +62,4 @@ void ft_token_free(t_token *token)
|
|||||||
if (token->value)
|
if (token->value)
|
||||||
free(token->value);
|
free(token->value);
|
||||||
free(token);
|
free(token);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,13 +6,13 @@
|
|||||||
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
|
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2025/02/04 16:31:29 by qmennen #+# #+# */
|
/* Created: 2025/02/04 16:31:29 by qmennen #+# #+# */
|
||||||
/* Updated: 2025/02/04 16:32:08 by qmennen ### ########.fr */
|
/* Updated: 2025/02/04 20:51:04 by qmennen ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
# include "minishell.h"
|
#include "minishell.h"
|
||||||
|
|
||||||
int ft_isspace(const char c)
|
int ft_isspace(const char c)
|
||||||
{
|
{
|
||||||
return (c == ' ' || c == '\t' || c == '\v' || c == '\n' || c == '\v');
|
return (c == ' ' || c == '\t' || c == '\v' || c == '\n' || c == '\v');
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user