Skip to content

Commit

Permalink
parser norminette is done 🏁
Browse files Browse the repository at this point in the history
  • Loading branch information
paotsaq committed Oct 25, 2021
1 parent ba9c690 commit 6a63dcc
Show file tree
Hide file tree
Showing 7 changed files with 23 additions and 24 deletions.
4 changes: 2 additions & 2 deletions minishell/srcs/parser/filename_expansion.c
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ static t_list *insert_new_tokens(t_list **tokens, t_list *prev, t_list *curr)
{
t_list **new_tokens;
t_list *new_curr;

new_curr = curr;
new_tokens = calloc_or_exit(1, sizeof(t_list *));
new_tokens = expand_filenames(new_tokens, ((t_token *)curr->content)->str);
Expand Down Expand Up @@ -71,7 +71,7 @@ static t_list **expand_filenames(t_list **new_tokens, char *str)
curr_dir = open_current_dir(curr_dir_str);
if (curr_dir_str)
free((void *)curr_dir_str);
errno = 0; // Necessary to check readdir error result
errno = 0;
curr_dir_entry = readdir(curr_dir);
while (curr_dir_entry)
{
Expand Down
10 changes: 3 additions & 7 deletions minishell/srcs/parser/filename_expansion_util.c
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@

static char *last_consecutive_asterisk(char *str);
static int get_str_to_match_len(char *str);
static char *pos_last_match(char *d_name, char *str_to_match, int match_len);
static char *pos_last_match(char *d_name,
char *str_to_match, int match_len);
static void add_new_word_token(t_list **new_tokens, char *token_str);

void save_expansion_if_match(t_list **new_tokens, char *d_name,
Expand All @@ -27,7 +28,6 @@ void save_expansion_if_match(t_list **new_tokens, char *d_name,
return ;
token_str += 1 + str_to_match_len;
}
DEBUG(printf("%sMATCHED : %s\n%s", CLR_BLUE, original_d_name, CLR_WHITE);)
add_new_word_token(new_tokens, (char *)original_d_name);
}

Expand All @@ -47,7 +47,7 @@ static char *last_consecutive_asterisk(char *str)
static int get_str_to_match_len(char *str)
{
const char *o_str = str;

while (*str && *str != '*')
str++;
return (str - o_str);
Expand All @@ -59,10 +59,6 @@ static char *pos_last_match(char *d_name, char *str_to_match, int match_len)
int nb_possible_matchs;

nb_possible_matchs = ft_strlen(d_name) - match_len + 1;
DEBUG (
printf(" %sd_name:%-14s | str_to_match: %-8.*s | match_len: %d | nb_pos: %d\n%s",
CLR_YELLOW, d_name, match_len, str_to_match, match_len, nb_possible_matchs, CLR_WHITE);
)
curr_match = NULL;
while (nb_possible_matchs > 0)
{
Expand Down
6 changes: 3 additions & 3 deletions minishell/srcs/parser/lexer.c
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
#include "minishell.h"

static t_token *init_token(char *token_start);
static t_token_type get_token_type(char *token_start);
static t_token *init_token(char *token_start);
static t_token_type get_token_type(char *token_start);
static t_operator_type get_operator_type(t_token *token);
static void save_token(t_list **tokens, t_token *curr_token);
static void save_token(t_list **tokens, t_token *curr_token);

t_list **lexer(char *line, t_list **tokens)
{
Expand Down
4 changes: 3 additions & 1 deletion minishell/srcs/parser/parameter_expansion.c
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
static char *par_name_start(char *str);
static int get_len_par_name(char *par_start);

void parameter_expansion(t_list **tokens)
void parameter_expansion(t_list **tokens)
{
t_list *curr;
char *start_par_name;
Expand Down Expand Up @@ -32,12 +32,14 @@ static char *par_name_start(char *str)
while (*str)
{
if (!update_quote_type(get_quote_type(*str), &prev_qt_type))
{
if (prev_qt_type != SINGLE_QUOTES && *str == '$')
{
next_c = *(str + 1);
if (ft_isalpha(next_c) || next_c == '?' || next_c == '_')
return (str);
}
}
str++;
}
return (NULL);
Expand Down
8 changes: 4 additions & 4 deletions minishell/srcs/parser/parameter_expansion_util.c
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

static char *expand_exit_code(char *start_name, t_token *token);
static char *expand_std_parameter(char *start_name, const char *par_name,
t_token *token);
t_token *token);

void expand_parameter(char *start_name, int size_name, t_token *token)
{
Expand Down Expand Up @@ -42,16 +42,16 @@ static char *expand_std_parameter(char *start_name, const char *par_name,

if (par_value == NULL)
{
new_str = calloc_or_exit(1, ft_strlen(token->str)
- par_name_len + 1);
new_str = calloc_or_exit(1,
ft_strlen(token->str) - par_name_len + 1);
ft_strlcat(new_str, token->str, start_name - token->str + 1);
ft_strlcat(new_str, start_name + par_name_len,
ft_strlen(new_str) + ft_strlen(start_name + par_name_len) + 1);
}
else
{
new_str = calloc_or_exit(1, ft_strlen(token->str)
+ ft_strlen(par_value) - par_name_len + 1);
+ ft_strlen(par_value) - par_name_len + 1);
ft_strlcat(new_str, token->str, start_name - token->str + 1);
ft_strlcat(new_str, par_value,
ft_strlen(new_str) + ft_strlen(par_value) + 1);
Expand Down
2 changes: 1 addition & 1 deletion minishell/srcs/parser/perform_expansions.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ void perform_expansions(t_list **tokens)
parameter_expansion(tokens);
filename_expansion(tokens);
quote_removal(*tokens);
}
}
13 changes: 7 additions & 6 deletions minishell/srcs/parser/validate_grammar.c
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
#include <minishell.h>

static void advance_node(t_grammar_vars *grammar);
static void initializes_grammar_vars(t_grammar_vars *grammar, t_list *curr_node);
static void initializes_grammar_vars(t_grammar_vars *grammar,
t_list *curr_node);
static bool check_token(t_grammar_vars *grammar);
static void print_faulty_token(t_grammar_vars *grammar);
static void print_faulty_token(t_grammar_vars *grammar);

void validate_grammar(t_list *curr_node)
{
Expand All @@ -23,9 +24,9 @@ void validate_grammar(t_list *curr_node)
}
}

static void print_faulty_token(t_grammar_vars *grammar)
static void print_faulty_token(t_grammar_vars *grammar)
{
char *token;
char *token;

token = ((t_token *)grammar->curr->content)->str;
write(1, &ERROR_MESSAGE, ft_strlen(ERROR_MESSAGE));
Expand Down Expand Up @@ -58,9 +59,9 @@ static bool check_token(t_grammar_vars *grammar)
{
if (get_token(grammar->curr)->op_type == OP_REDIR
&& (!grammar->next || (get_token(grammar->next)->type != WORD)))
return (false);
return (false);
else if (get_token(grammar->curr)->op_type == OP_LOGIC
|| get_token(grammar->curr)->op_type == OP_PIPE)
|| get_token(grammar->curr)->op_type == OP_PIPE)
{
if (!grammar->prev || !grammar->next
|| (get_token(grammar->prev)->type != WORD
Expand Down

0 comments on commit 6a63dcc

Please sign in to comment.