From 8427ab28bfd1b6c7adc5558ddac14d6e906a9066 Mon Sep 17 00:00:00 2001 From: Jack Halford Date: Fri, 17 Mar 2017 20:22:09 +0100 Subject: [PATCH] lexer_assignment_word factorizating: it doesnt exist anymore... --- 42sh/includes/lexer.h | 3 +- 42sh/src/builtin/is_builtin.c | 2 +- 42sh/src/lexer/get_reserved_words.c | 2 +- 42sh/src/lexer/get_state_global.c | 2 +- 42sh/src/lexer/lexer_assignement_word.c | 37 ------------------------- 42sh/src/lexer/lexer_backslash.c | 4 +-- 42sh/src/lexer/lexer_bquote.c | 4 +-- 42sh/src/lexer/lexer_dquote.c | 4 +-- 42sh/src/lexer/lexer_lex.c | 3 +- 42sh/src/lexer/lexer_quote.c | 4 +-- 42sh/src/lexer/lexer_word.c | 18 ++++++------ 11 files changed, 21 insertions(+), 62 deletions(-) delete mode 100644 42sh/src/lexer/lexer_assignement_word.c diff --git a/42sh/includes/lexer.h b/42sh/includes/lexer.h index de3f86ab..77fabbf9 100644 --- a/42sh/includes/lexer.h +++ b/42sh/includes/lexer.h @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/01 12:15:50 by jhalford #+# #+# */ -/* Updated: 2017/03/17 19:34:31 by jhalford ### ########.fr */ +/* Updated: 2017/03/17 20:19:18 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -36,7 +36,6 @@ enum e_lexstate BQUOTE, BACKSLASH, CURLY_BRACKETS, - ASSIGNEMENT_WORD, END, }; diff --git a/42sh/src/builtin/is_builtin.c b/42sh/src/builtin/is_builtin.c index 876727c7..270c70ef 100644 --- a/42sh/src/builtin/is_builtin.c +++ b/42sh/src/builtin/is_builtin.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/13 13:09:57 by jhalford #+# #+# */ -/* Updated: 2017/03/16 15:54:15 by jhalford ### ########.fr */ +/* Updated: 2017/03/17 19:51:06 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/lexer/get_reserved_words.c b/42sh/src/lexer/get_reserved_words.c index 930d8ea4..42702849 100644 --- a/42sh/src/lexer/get_reserved_words.c +++ b/42sh/src/lexer/get_reserved_words.c @@ -6,7 +6,7 @@ /* By: ariard +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/01/26 00:07:05 by ariard #+# #+# */ -/* Updated: 2017/03/17 19:33:51 by jhalford ### ########.fr */ +/* Updated: 2017/03/17 20:19:59 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/lexer/get_state_global.c b/42sh/src/lexer/get_state_global.c index ba46cae6..3b7fe898 100644 --- a/42sh/src/lexer/get_state_global.c +++ b/42sh/src/lexer/get_state_global.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/09 20:39:06 by jhalford #+# #+# */ -/* Updated: 2017/03/17 00:08:12 by ariard ### ########.fr */ +/* Updated: 2017/03/17 20:02:48 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/42sh/src/lexer/lexer_assignement_word.c b/42sh/src/lexer/lexer_assignement_word.c deleted file mode 100644 index 06d12691..00000000 --- a/42sh/src/lexer/lexer_assignement_word.c +++ /dev/null @@ -1,37 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* lexer_assignement_word.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: ariard +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2017/02/24 20:28:13 by ariard #+# #+# */ -/* Updated: 2017/03/17 19:33:12 by jhalford ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "minishell.h" - -int lexer_assignement_word(t_list **alst, t_lexer *lexer) -{ - t_token *token; - char c; - - token = (*alst)->content; - /* if (token->type != TK_WORD && token->type != TK_ASSIGNMENT_WORD) */ - /* { */ - /* token_append(token, lexer, 0, 0); */ - /* lexer->pos++; */ - /* return (lexer_lex(alst, lexer)); */ - /* } */ - token->type = TK_ASSIGNMENT_WORD; - token_append(token, lexer, 0, 0); - lexer->pos++; - c = lexer->str[lexer->pos]; - if ((lexer->state = get_state_global(lexer))) - return (lexer_lex(alst, lexer)); - if ((lexer->state = get_state_redir(lexer))) - return (lexer_lex(alst, lexer)); - lexer->state = ASSIGNEMENT_WORD; - return(lexer_lex(alst, lexer)); -} diff --git a/42sh/src/lexer/lexer_backslash.c b/42sh/src/lexer/lexer_backslash.c index 71a24964..e998f5a0 100644 --- a/42sh/src/lexer/lexer_backslash.c +++ b/42sh/src/lexer/lexer_backslash.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/03 11:56:49 by jhalford #+# #+# */ -/* Updated: 2017/03/16 22:36:31 by jhalford ### ########.fr */ +/* Updated: 2017/03/17 20:17:41 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,7 +17,7 @@ int lexer_backslash(t_list **alst, t_lexer *lexer) t_token *token; token = (*alst)->content; - token->type = TK_WORD; + token->type = token->type ? token->type : TK_WORD; lexer->pos++; lexer->state = WORD; if (lexer->str[lexer->pos] == 0) diff --git a/42sh/src/lexer/lexer_bquote.c b/42sh/src/lexer/lexer_bquote.c index 9d2e631c..b7236305 100644 --- a/42sh/src/lexer/lexer_bquote.c +++ b/42sh/src/lexer/lexer_bquote.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/09 22:03:48 by jhalford #+# #+# */ -/* Updated: 2017/03/16 22:30:59 by jhalford ### ########.fr */ +/* Updated: 2017/03/17 20:07:57 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -18,7 +18,7 @@ int lexer_bquote(t_list **alst, t_lexer *lexer) int back; token = (*alst)->content; - token->type = TK_WORD; + token->type = token->type ? token->type : TK_WORD; back = 0; if (lexer->str[lexer->pos] == '`') { diff --git a/42sh/src/lexer/lexer_dquote.c b/42sh/src/lexer/lexer_dquote.c index 4e2f1760..f4df5b90 100644 --- a/42sh/src/lexer/lexer_dquote.c +++ b/42sh/src/lexer/lexer_dquote.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/28 18:36:58 by jhalford #+# #+# */ -/* Updated: 2017/03/17 19:27:42 by jhalford ### ########.fr */ +/* Updated: 2017/03/17 20:08:02 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,7 +17,7 @@ int lexer_dquote(t_list **alst, t_lexer *lexer) t_token *token; token = (*alst)->content; - token->type = TK_WORD; + token->type = token->type ? token->type : TK_WORD; if (lexer->str[lexer->pos] == '"') { if (get_lexer_stack(*lexer) == DQUOTE && (lexer->state = WORD)) diff --git a/42sh/src/lexer/lexer_lex.c b/42sh/src/lexer/lexer_lex.c index 8e6a9df3..80f590da 100644 --- a/42sh/src/lexer/lexer_lex.c +++ b/42sh/src/lexer/lexer_lex.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/09 17:08:51 by jhalford #+# #+# */ -/* Updated: 2017/03/17 00:09:05 by ariard ### ########.fr */ +/* Updated: 2017/03/17 20:21:33 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -29,7 +29,6 @@ int (*g_lexer[])(t_list **alst, t_lexer *lexer) = &lexer_bquote, &lexer_backslash, &lexer_curly_braces, - &lexer_assignement_word, &lexer_end, }; diff --git a/42sh/src/lexer/lexer_quote.c b/42sh/src/lexer/lexer_quote.c index 67cbc4c7..f758416f 100644 --- a/42sh/src/lexer/lexer_quote.c +++ b/42sh/src/lexer/lexer_quote.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/03 12:07:08 by jhalford #+# #+# */ -/* Updated: 2017/02/17 15:28:13 by jhalford ### ########.fr */ +/* Updated: 2017/03/17 20:16:30 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,7 +17,7 @@ int lexer_quote(t_list **alst, t_lexer *lexer) t_token *token; token = (*alst)->content; - token->type = TK_WORD; + token->type = token->type ? token->type : TK_WORD; if (lexer->str[lexer->pos] == '\'') { lexer->pos++; diff --git a/42sh/src/lexer/lexer_word.c b/42sh/src/lexer/lexer_word.c index 584eec42..665c0a0a 100644 --- a/42sh/src/lexer/lexer_word.c +++ b/42sh/src/lexer/lexer_word.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/03 12:07:11 by jhalford #+# #+# */ -/* Updated: 2017/03/17 19:33:42 by jhalford ### ########.fr */ +/* Updated: 2017/03/17 20:17:23 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -18,23 +18,21 @@ int lexer_word(t_list **alst, t_lexer *lexer) t_lexstate state; token = (*alst)->content; - token->type = TK_WORD; + token->type = token->type ? token->type : TK_WORD; if ((state = get_state_global(lexer)) || (state = get_state_redir(lexer))) - { lexer->state = state; - return (lexer_lex(alst, lexer)); - } - if (lexer->str[lexer->pos] == '=' + else if (lexer->str[lexer->pos] == '=' && word_is_assignment((char *[]){token->data, (char *)token->esc})) { - lexer->state = ASSIGNEMENT_WORD; - return (lexer_lex(alst, lexer)); + token->type = TK_ASSIGNMENT_WORD; + token_append(token, lexer, 0, 0); + lexer->pos++; } else { - token_append(token, lexer, 0, 0); - lexer->pos++; + token_append(token, lexer, 0, 0); + lexer->pos++; } return (lexer_lex(alst, lexer)); }