IO_NUMBER sur plusieurs digits

This commit is contained in:
william 2017-03-05 16:09:49 +01:00
parent eb6e104812
commit 0e85867fd8

View file

@ -6,7 +6,7 @@
/* By: jhalford <jack@crans.org> +#+ +:+ +#+ */ /* By: jhalford <jack@crans.org> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2016/12/03 12:06:45 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 = (*alst)->content;
token->type = TK_IO_NUMBER; 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; lexer->state = state;
return (lexer_lex(alst, lexer)); 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; lexer->state = state;
return (lexer_lex(alst, lexer)); return (lexer_lex(alst, lexer));
@ -46,3 +75,4 @@ int lexer_number(t_list **alst, t_lexer *lexer)
lexer->state = DEFAULT; lexer->state = DEFAULT;
return (lexer_lex(alst, lexer)); return (lexer_lex(alst, lexer));
} }
*/