diff --git a/42sh/src/lexer/lexer_number.c b/42sh/src/lexer/lexer_number.c index 90562cb1..0bcd4b66 100644 --- a/42sh/src/lexer/lexer_number.c +++ b/42sh/src/lexer/lexer_number.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/03 12:06:45 by jhalford #+# #+# */ -/* Updated: 2017/03/03 17:35:30 by jhalford ### ########.fr */ +/* Updated: 2017/03/05 16:03:31 by wescande ### ########.fr */ /* */ /* ************************************************************************** */ @@ -19,12 +19,41 @@ int lexer_number(t_list **alst, t_lexer *lexer) token = (*alst)->content; token->type = TK_IO_NUMBER; - if ((state = get_state_global(lexer))) + if ((state = get_state_global(lexer)) + || (state = get_state_redir(lexer))) { lexer->state = state; return (lexer_lex(alst, lexer)); } - else if ((state = get_state_redir(lexer))) + else if (ft_isdigit(lexer->str[lexer->pos]) + && (ft_isdigit(lexer->str[lexer->pos + 1]) + || lexer->str[lexer->pos + 1] == '>' + || lexer->str[lexer->pos + 1] == '<')) + { + token_append(token, lexer, 0, 0); + lexer->pos++; + return (lexer_number(alst, lexer)); + } + else + { + token->type = TK_WORD; + token_append(token, lexer, 0, 0); + lexer->pos++; + return (lexer_lex(alst, lexer)); + } + lexer->state = DEFAULT; + return (lexer_lex(alst, lexer)); +} +/* +int lexer_number(t_list **alst, t_lexer *lexer) +{ + t_token *token; + t_lexstate state; + + token = (*alst)->content; + token->type = TK_IO_NUMBER; + if ((state = get_state_global(lexer)) + || (state = get_state_redir(lexer))) { lexer->state = state; return (lexer_lex(alst, lexer)); @@ -46,3 +75,4 @@ int lexer_number(t_list **alst, t_lexer *lexer) lexer->state = DEFAULT; return (lexer_lex(alst, lexer)); } +*/