diff --git a/src/parser/wordsplit/rule_utils.c b/src/parser/wordsplit/rule_utils.c index c06061d..e9ba196 100644 --- a/src/parser/wordsplit/rule_utils.c +++ b/src/parser/wordsplit/rule_utils.c @@ -6,11 +6,12 @@ /* By: khais +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/02/20 12:01:57 by khais #+# #+# */ -/* Updated: 2025/02/20 12:27:45 by khais ### ########.fr */ +/* Updated: 2025/02/20 13:18:22 by khais ### ########.fr */ /* */ /* ************************************************************************** */ #include "rule_utils.h" +#include "../matchers/operator_combo.h" /* ** return true if we are in an unquoted operator state @@ -27,3 +28,17 @@ bool unquoted(t_token_build *builder) { return (builder->quote == '\0'); } + +/* +** return true if the current char combines with the current token to form an +** operator. +** +** If current token is null, return false +*/ +bool operator_combo(t_token_build *builder, char *original) +{ + if (builder->cur_token == NULL) + return (false); + return (is_operator_combo(builder->cur_token->buffer, + original[builder->idx])); +} diff --git a/src/parser/wordsplit/rule_utils.h b/src/parser/wordsplit/rule_utils.h index 60ecf5e..5326641 100644 --- a/src/parser/wordsplit/rule_utils.h +++ b/src/parser/wordsplit/rule_utils.h @@ -6,7 +6,7 @@ /* By: khais +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/02/20 12:01:31 by khais #+# #+# */ -/* Updated: 2025/02/20 12:27:05 by khais ### ########.fr */ +/* Updated: 2025/02/20 13:16:06 by khais ### ########.fr */ /* */ /* ************************************************************************** */ @@ -18,5 +18,6 @@ bool unquoted_operator(t_token_build *builder); bool unquoted(t_token_build *builder); +bool operator_combo(t_token_build *builder, char *original); #endif diff --git a/src/parser/wordsplit/tokenizing_1_5.c b/src/parser/wordsplit/tokenizing_1_5.c index db07675..8e78299 100644 --- a/src/parser/wordsplit/tokenizing_1_5.c +++ b/src/parser/wordsplit/tokenizing_1_5.c @@ -6,12 +6,11 @@ /* By: khais +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/02/19 13:20:01 by jguelen #+# #+# */ -/* Updated: 2025/02/20 12:23:27 by khais ### ########.fr */ +/* Updated: 2025/02/20 13:22:35 by khais ### ########.fr */ /* */ /* ************************************************************************** */ #include "wordsplit.h" -#include "../matchers/operator_combo.h" #include "rule_utils.h" /* @@ -40,10 +39,7 @@ bool rule_eof(t_token_build *builder, char *original) */ bool rule_combine_operator(t_token_build *builder, char *original) { - // FIXME: operator combo null check - if (unquoted_operator(builder) - && is_operator_combo(builder->cur_token->buffer, - original[builder->idx])) + if (unquoted_operator(builder) && operator_combo(builder, original)) { push_char(builder, original[builder->idx]); builder->idx++; @@ -59,9 +55,7 @@ bool rule_combine_operator(t_token_build *builder, char *original) */ bool rule_operator_end(t_token_build *builder, char *original) { - if (unquoted_operator(builder) - && !is_operator_combo(builder->cur_token->buffer, - original[builder->idx])) + if (unquoted_operator(builder) && !operator_combo(builder, original)) { delimit(builder); return (true);