mirror of
https://codeberg.org/la-chouette/minishell.git
synced 2025-12-06 07:28:09 +01:00
wordsplit rules: fix basic norm problems
also make notes for future refactorings
This commit is contained in:
parent
f2469f1600
commit
edf8946fe3
2 changed files with 18 additions and 13 deletions
|
|
@ -6,7 +6,7 @@
|
|||
/* By: jguelen <marvin@42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2025/02/19 13:20:01 by jguelen #+# #+# */
|
||||
/* Updated: 2025/02/20 11:52:28 by khais ### ########.fr */
|
||||
/* Updated: 2025/02/20 12:22:28 by khais ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
|
|
@ -40,7 +40,8 @@ bool rule_eof(t_token_build *builder, char *original)
|
|||
bool rule_combine_operator(t_token_build *builder, char *original)
|
||||
{
|
||||
if (builder->currently_in_operator && builder->quote == '\0'
|
||||
&& is_operator_combo(builder->cur_token->buffer, original[builder->idx]))
|
||||
&& is_operator_combo(builder->cur_token->buffer,
|
||||
original[builder->idx]))
|
||||
{
|
||||
push_char(builder, original[builder->idx]);
|
||||
builder->idx++;
|
||||
|
|
@ -56,14 +57,16 @@ bool rule_combine_operator(t_token_build *builder, char *original)
|
|||
*/
|
||||
bool rule_operator_end(t_token_build *builder, char *original)
|
||||
{
|
||||
if (builder->currently_in_operator && builder->quote == '\0'
|
||||
&& !is_operator_combo(builder->cur_token->buffer, original[builder->idx]))
|
||||
if (builder->currently_in_operator && builder->quote == '\0' // FIXME
|
||||
&& !is_operator_combo(builder->cur_token->buffer,
|
||||
original[builder->idx]))
|
||||
{
|
||||
delimit(builder);
|
||||
return (true);
|
||||
}
|
||||
return (false);
|
||||
}
|
||||
|
||||
/*
|
||||
** 4. If the current character is single-quote, or double-quote and it is not
|
||||
** quoted, it shall affect quoting for subsequent characters up to the end of
|
||||
|
|
@ -75,6 +78,7 @@ bool rule_operator_end(t_token_build *builder, char *original)
|
|||
*/
|
||||
bool rule_quote(t_token_build *builder, char *original)
|
||||
{
|
||||
// FIXME
|
||||
if (original[builder->idx] == '\'' || original[builder->idx] == '"')
|
||||
{
|
||||
quote_flip(builder, original[builder->idx]);
|
||||
|
|
@ -82,7 +86,6 @@ bool rule_quote(t_token_build *builder, char *original)
|
|||
return (true);
|
||||
}
|
||||
return (false);
|
||||
|
||||
}
|
||||
|
||||
bool token_rule_5(t_token_build *builder, char *original);
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
/* By: jguelen <marvin@42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2025/02/19 13:21:18 by jguelen #+# #+# */
|
||||
/* Updated: 2025/02/20 11:52:28 by khais ### ########.fr */
|
||||
/* Updated: 2025/02/20 11:59:57 by khais ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
|
|
@ -27,6 +27,7 @@
|
|||
*/
|
||||
bool rule_new_operator(t_token_build *builder, char *original)
|
||||
{
|
||||
// FIXME: unquoted
|
||||
if (builder->quote == '\0' && is_operator_start(original[builder->idx]))
|
||||
{
|
||||
operator_start(builder, original[builder->idx]);
|
||||
|
|
@ -42,6 +43,7 @@ bool rule_new_operator(t_token_build *builder, char *original)
|
|||
*/
|
||||
bool rule_delimit_blank(t_token_build *builder, char *original)
|
||||
{
|
||||
// FIXME: unquoted
|
||||
if (is_blank(original[builder->idx]) && builder->quote == '\0')
|
||||
{
|
||||
delimit(builder);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue