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;
|
t_token *token;
|
||||||
|
|
||||||
token = (*alst)->content;
|
token = (*alst)->content;
|
||||||
if (token->type)
|
/* if (token->type) */
|
||||||
return (lexer_lex(&(*alst)->next, lexer));
|
/* return (lexer_lex(&(*alst)->next, lexer)); */
|
||||||
token_append(token, lexer, 0, 0);
|
token_append(token, lexer, 0, 0);
|
||||||
lexer->pos++;
|
lexer->pos++;
|
||||||
if (lexer->str[lexer->pos] == '&')
|
if (lexer->str[lexer->pos] == '&')
|
||||||
|
|
|
||||||
|
|
@ -17,8 +17,8 @@ int lexer_less(t_list **alst, t_lexer *lexer)
|
||||||
t_token *token;
|
t_token *token;
|
||||||
|
|
||||||
token = (*alst)->content;
|
token = (*alst)->content;
|
||||||
if (token->type)
|
/* if (token->type) */
|
||||||
return (lexer_lex(&(*alst)->next, lexer));
|
/* return (lexer_lex(&(*alst)->next, lexer)); */
|
||||||
token_append(token, lexer, 0, 0);
|
token_append(token, lexer, 0, 0);
|
||||||
lexer->pos++;
|
lexer->pos++;
|
||||||
if (lexer->str[lexer->pos] == '&')
|
if (lexer->str[lexer->pos] == '&')
|
||||||
|
|
|
||||||
|
|
@ -18,12 +18,8 @@ int lexer_number(t_list **alst, t_lexer *lexer)
|
||||||
t_lexstate state;
|
t_lexstate state;
|
||||||
|
|
||||||
token = (*alst)->content;
|
token = (*alst)->content;
|
||||||
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)))
|
|
||||||
{
|
{
|
||||||
lexer->state = state;
|
lexer->state = state;
|
||||||
return (lexer_lex(alst, lexer));
|
return (lexer_lex(alst, lexer));
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@ int lexer_word(t_list **alst, t_lexer *lexer)
|
||||||
if ((state = get_state_redir(lexer)))
|
if ((state = get_state_redir(lexer)))
|
||||||
{
|
{
|
||||||
lexer->state = state;
|
lexer->state = state;
|
||||||
return (lexer_lex(alst, lexer));
|
return (lexer_lex(&(*alst)->next, lexer));
|
||||||
}
|
}
|
||||||
token_append(token, lexer, 0, 0);
|
token_append(token, lexer, 0, 0);
|
||||||
lexer->pos++;
|
lexer->pos++;
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,7 @@ int non_interactive_shell(char *command)
|
||||||
int interactive_shell()
|
int interactive_shell()
|
||||||
{
|
{
|
||||||
t_list *token;
|
t_list *token;
|
||||||
t_list *ltoken;
|
t_list *token_tail;
|
||||||
t_lexer lexer;
|
t_lexer lexer;
|
||||||
t_btree *ast;
|
t_btree *ast;
|
||||||
|
|
||||||
|
|
@ -59,13 +59,13 @@ int interactive_shell()
|
||||||
pop(&lexer.stack);
|
pop(&lexer.stack);
|
||||||
else if (get_lexer_stack(lexer) == DLESS)
|
else if (get_lexer_stack(lexer) == DLESS)
|
||||||
lexer.state = DLESS;
|
lexer.state = DLESS;
|
||||||
ltoken = ft_lstlast(token);
|
token_tail = ft_lstlast(token);
|
||||||
if (lexer_lex(token ? <oken : &token, &lexer))
|
/* if (token_tail) */
|
||||||
|
/* token_tail = token_tail->next; */
|
||||||
|
if (lexer_lex(token ? &token_tail : &token, &lexer))
|
||||||
return (1);
|
return (1);
|
||||||
token_print(token);
|
token_print(token);
|
||||||
} while (get_lexer_stack(lexer));
|
} while (get_lexer_stack(lexer));
|
||||||
// if (bquotes_expand(&token))
|
|
||||||
// return (1);
|
|
||||||
if (!token)
|
if (!token)
|
||||||
return (0);
|
return (0);
|
||||||
ft_add_str_in_history(lexer.str);
|
ft_add_str_in_history(lexer.str);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue