fixed problem with redirection lexing
This commit is contained in:
parent
703f8a4cd4
commit
ca1e060463
5 changed files with 12 additions and 16 deletions
|
|
@ -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] == '&')
|
||||
|
|
|
|||
|
|
@ -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] == '&')
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
|
|
|
|||
|
|
@ -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++;
|
||||
|
|
|
|||
|
|
@ -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 ? <oken : &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);
|
||||
|
|
|
|||
Loading…
Reference in a new issue