fixed problem with redirection lexing

This commit is contained in:
Jack Halford 2017-02-28 18:53:58 +01:00
parent 703f8a4cd4
commit ca1e060463
5 changed files with 12 additions and 16 deletions

View file

@ -17,8 +17,8 @@ int lexer_great(t_list **alst, t_lexer *lexer)
t_token *token;
token = (*alst)->content;
if (token->type)
return (lexer_lex(&(*alst)->next, lexer));
/* if (token->type) */
/* return (lexer_lex(&(*alst)->next, lexer)); */
token_append(token, lexer, 0, 0);
lexer->pos++;
if (lexer->str[lexer->pos] == '&')

View file

@ -17,8 +17,8 @@ int lexer_less(t_list **alst, t_lexer *lexer)
t_token *token;
token = (*alst)->content;
if (token->type)
return (lexer_lex(&(*alst)->next, lexer));
/* if (token->type) */
/* return (lexer_lex(&(*alst)->next, lexer)); */
token_append(token, lexer, 0, 0);
lexer->pos++;
if (lexer->str[lexer->pos] == '&')

View file

@ -18,12 +18,8 @@ int lexer_number(t_list **alst, t_lexer *lexer)
t_lexstate state;
token = (*alst)->content;
if ((state = get_state_global(lexer)))
{
lexer->state = state;
return (lexer_lex(alst, lexer));
}
else if ((state = get_state_redir(lexer)))
if ((state = get_state_global(lexer))
|| (state = get_state_redir(lexer)))
{
lexer->state = state;
return (lexer_lex(alst, lexer));

View file

@ -27,7 +27,7 @@ int lexer_word(t_list **alst, t_lexer *lexer)
if ((state = get_state_redir(lexer)))
{
lexer->state = state;
return (lexer_lex(alst, lexer));
return (lexer_lex(&(*alst)->next, lexer));
}
token_append(token, lexer, 0, 0);
lexer->pos++;

View file

@ -45,7 +45,7 @@ int non_interactive_shell(char *command)
int interactive_shell()
{
t_list *token;
t_list *ltoken;
t_list *token_tail;
t_lexer lexer;
t_btree *ast;
@ -59,13 +59,13 @@ int interactive_shell()
pop(&lexer.stack);
else if (get_lexer_stack(lexer) == DLESS)
lexer.state = DLESS;
ltoken = ft_lstlast(token);
if (lexer_lex(token ? &ltoken : &token, &lexer))
token_tail = ft_lstlast(token);
/* if (token_tail) */
/* token_tail = token_tail->next; */
if (lexer_lex(token ? &token_tail : &token, &lexer))
return (1);
token_print(token);
} while (get_lexer_stack(lexer));
// if (bquotes_expand(&token))
// return (1);
if (!token)
return (0);
ft_add_str_in_history(lexer.str);