diff --git a/parser/Filelist.parser.mk b/parser/Filelist.parser.mk index c472c5d5..7e63232b 100644 --- a/parser/Filelist.parser.mk +++ b/parser/Filelist.parser.mk @@ -1,12 +1,15 @@ SRC_FILES = \ passes \ passes/double_quote_parsing \ +passes/fold_double_amp \ +passes/fold_double_carret \ +passes/fold_double_pipe \ passes/fold_expansion \ passes/fold_whitespace \ passes/template_file \ -token_lifetime \ tokenizer \ tokenizer_utils \ +token_lifetime \ GEN_FILES = \ \ diff --git a/parser/include/parser/passes.h b/parser/include/parser/passes.h index 1094721f..05d7b888 100644 --- a/parser/include/parser/passes.h +++ b/parser/include/parser/passes.h @@ -6,7 +6,7 @@ /* By: maiboyer +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/10/02 18:43:41 by maiboyer #+# #+# */ -/* Updated: 2024/10/04 18:30:05 by maiboyer ### ########.fr */ +/* Updated: 2024/10/04 19:01:40 by rparodi ### ########.fr */ /* */ /* ************************************************************************** */ @@ -35,9 +35,13 @@ t_error ts_dq_apply_passes(t_vec_token ts, t_vec_token *out); // list passes function here // this is a example one, does absolutly nothing lol -t_error ts_do_fuck_all(t_vec_token input, t_vec_token *output); -t_error ts_fold_expension(t_vec_token input, t_vec_token *output); +t_error ts_double_amp(t_vec_token input, t_vec_token *output); +t_error ts_double_lcarret(t_vec_token input, t_vec_token *output); +t_error ts_double_pipe(t_vec_token input, t_vec_token *output); +t_error ts_double_rcarret(t_vec_token input, t_vec_token *output); t_error ts_double_string_pass(t_vec_token input, t_vec_token *output); t_error ts_fold_whitespace(t_vec_token input, t_vec_token *output); +t_error ts_do_fuck_all(t_vec_token input, t_vec_token *output); +t_error ts_fold_expension(t_vec_token input, t_vec_token *output); #endif /* PASSES_H */ diff --git a/parser/src/passes.c b/parser/src/passes.c index d769d80b..384482b6 100644 --- a/parser/src/passes.c +++ b/parser/src/passes.c @@ -6,7 +6,7 @@ /* By: maiboyer +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/10/02 18:41:16 by maiboyer #+# #+# */ -/* Updated: 2024/10/04 18:32:18 by maiboyer ### ########.fr */ +/* Updated: 2024/10/04 19:06:20 by rparodi ### ########.fr */ /* */ /* ************************************************************************** */ @@ -40,6 +40,10 @@ static const struct s_ts_pass_def g_ts_passes[] = {\ {ts_double_string_pass, "double string parser"}, \ {ts_fold_expension, "fold expansion"}, {ts_fold_whitespace, "fold whitespace"}, + {ts_double_amp, "double amp => and"}, + {ts_double_pipe, "double pipe => or"}, + {ts_double_lcarret, "double lcarret => dlcarret"}, + {ts_double_rcarret, "double rcarrer => drcarret"}, }; t_error ts_apply_passes(t_vec_token ts, t_vec_token *out) diff --git a/parser/src/passes/fold_double_amp.c b/parser/src/passes/fold_double_amp.c index 6d37932f..36e75b91 100644 --- a/parser/src/passes/fold_double_amp.c +++ b/parser/src/passes/fold_double_amp.c @@ -6,7 +6,7 @@ /* By: maiboyer +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/10/02 19:04:32 by maiboyer #+# #+# */ -/* Updated: 2024/10/04 18:55:34 by rparodi ### ########.fr */ +/* Updated: 2024/10/04 19:09:45 by rparodi ### ########.fr */ /* */ /* ************************************************************************** */ @@ -39,7 +39,10 @@ t_error ts_double_amp(t_vec_token input, t_vec_token *output) vec_token_push(&out, token_clone(&input.buffer[i])); else if (input.buffer[i].type == TOK_AMP && input.buffer[i + 1].type == TOK_AMP) + { vec_token_push(&out, token_new(TOK_AND)); + i++; + } else vec_token_push(&out, token_clone(&input.buffer[i])); i++; diff --git a/parser/src/passes/fold_double_lcarret.c b/parser/src/passes/fold_double_carret.c similarity index 93% rename from parser/src/passes/fold_double_lcarret.c rename to parser/src/passes/fold_double_carret.c index ee741037..6181bed2 100644 --- a/parser/src/passes/fold_double_lcarret.c +++ b/parser/src/passes/fold_double_carret.c @@ -1,12 +1,12 @@ /* ************************************************************************** */ /* */ /* ::: :::::::: */ -/* fold_double_lcarret.c :+: :+: :+: */ +/* fold_double_carret.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: maiboyer +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/10/02 19:04:32 by maiboyer #+# #+# */ -/* Updated: 2024/10/04 18:58:16 by rparodi ### ########.fr */ +/* Updated: 2024/10/04 19:09:30 by rparodi ### ########.fr */ /* */ /* ************************************************************************** */ @@ -39,7 +39,10 @@ t_error ts_double_lcarret(t_vec_token input, t_vec_token *output) vec_token_push(&out, token_clone(&input.buffer[i])); else if (input.buffer[i].type == TOK_LCARRET && input.buffer[i + 1].type == TOK_LCARRET) + { vec_token_push(&out, token_new(TOK_DLCARRET)); + i++; + } else vec_token_push(&out, token_clone(&input.buffer[i])); i++; @@ -61,7 +64,10 @@ t_error ts_double_rcarret(t_vec_token input, t_vec_token *output) vec_token_push(&out, token_clone(&input.buffer[i])); else if (input.buffer[i].type == TOK_RCARRET && input.buffer[i + 1].type == TOK_RCARRET) + { vec_token_push(&out, token_new(TOK_DRCARRET)); + i++; + } else vec_token_push(&out, token_clone(&input.buffer[i])); i++; diff --git a/parser/src/passes/fold_double_pipe.c b/parser/src/passes/fold_double_pipe.c index 58e2be58..bfd8abac 100644 --- a/parser/src/passes/fold_double_pipe.c +++ b/parser/src/passes/fold_double_pipe.c @@ -6,7 +6,7 @@ /* By: maiboyer +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/10/02 19:04:32 by maiboyer #+# #+# */ -/* Updated: 2024/10/04 18:47:39 by rparodi ### ########.fr */ +/* Updated: 2024/10/04 19:08:48 by rparodi ### ########.fr */ /* */ /* ************************************************************************** */ @@ -39,7 +39,10 @@ t_error ts_double_pipe(t_vec_token input, t_vec_token *output) vec_token_push(&out, token_clone(&input.buffer[i])); else if (input.buffer[i].type == TOK_PIPE && input.buffer[i + 1].type == TOK_PIPE) + { vec_token_push(&out, token_new(TOK_OR)); + i++; + } else vec_token_push(&out, token_clone(&input.buffer[i])); i++;