From 179898160d7a6c3d0c6032c78c8731a23631c2aa Mon Sep 17 00:00:00 2001 From: nass1pro Date: Tue, 16 Jun 2020 12:37:32 +0200 Subject: Test main.c --- src/parse/parse.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) (limited to 'src/parse/parse.c') diff --git a/src/parse/parse.c b/src/parse/parse.c index 867325b..36e603a 100755 --- a/src/parse/parse.c +++ b/src/parse/parse.c @@ -47,17 +47,19 @@ t_ret *parse(t_ftlst *input) } } } - while(ret->ast->cmd_argv != NULL) - { - printf("[%s]\n", ((t_token *)ret->ast->cmd_argv->data)->content); - ret->ast->cmd_argv = ret->ast->cmd_argv->next; - } - while(ret->ast->redirs != NULL) - { - printf("[%s]\n", ((t_token *)ret->ast->redirs->data)->content); - ret->ast->redirs = ret->ast->redirs->next; - } - ast_destroy(ret->ast); - ft_lstdestroy(&ret->rest, (void (*)(void*))token_destroy); + // printf("===========cmd=============\n"); + // while(ret->ast->cmd_argv != NULL) + // { + // printf("[%s]\n", ((t_token *)ret->ast->cmd_argv->data)->content); + // ret->ast->cmd_argv = ret->ast->cmd_argv->next; + // } + // printf("=========redir============\n"); + // while(ret->ast->redirs != NULL) + // { + // printf("[%s]\n", ((t_token *)ret->ast->redirs->data)->content); + // ret->ast->redirs = ret->ast->redirs->next; + // } + //ast_destroy(ret->ast); + //ft_lstdestroy(&ret->rest, (void (*)(void*))token_destroy); return first; } -- cgit From 904a7c07b31267b2336b144336fc6ff54627f6d0 Mon Sep 17 00:00:00 2001 From: nass1pro Date: Tue, 16 Jun 2020 13:21:57 +0200 Subject: Update parse --- src/parse/parse.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src/parse/parse.c') diff --git a/src/parse/parse.c b/src/parse/parse.c index 36e603a..795afc7 100755 --- a/src/parse/parse.c +++ b/src/parse/parse.c @@ -34,16 +34,19 @@ t_ret *parse(t_ftlst *input) } else if (parse_redir_true_false(tag)) { - ret->ast = push_redir(ret->ast, ret->rest); - ret->rest = ret->rest->next; while(ret->rest != NULL) { + ret->ast = push_redir(ret->ast, ret->rest); + ret->rest = ret->rest->next; ret->ast = push_redir(ret->ast, ret->rest); tag = ((t_token *)ret->rest->data)->tag; - if (tag & TAG_IS_STR && tag & TAG_STICK) + if ((tag & TAG_IS_STR && tag & TAG_STICK) || tag == TAG_IS_REDIR) ret->rest = ret->rest->next; else + { + ret->rest = ret->rest->next; break; + } } } } -- cgit From 0fa76e9e49a70ab9acb128845b3b0b09607133a8 Mon Sep 17 00:00:00 2001 From: nass1pro Date: Tue, 16 Jun 2020 14:35:15 +0200 Subject: Update redire in parse --- src/parse/parse.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'src/parse/parse.c') diff --git a/src/parse/parse.c b/src/parse/parse.c index 795afc7..d1303bc 100755 --- a/src/parse/parse.c +++ b/src/parse/parse.c @@ -29,26 +29,25 @@ t_ret *parse(t_ftlst *input) if (parse_cmd_str_true_false(tag)) { ret->ast = push_cmd(ret->ast, ret->rest); - if (ret->rest != NULL) - ret->rest = ret->rest->next; } else if (parse_redir_true_false(tag)) { while(ret->rest != NULL) { ret->ast = push_redir(ret->ast, ret->rest); - ret->rest = ret->rest->next; - ret->ast = push_redir(ret->ast, ret->rest); - tag = ((t_token *)ret->rest->data)->tag; - if ((tag & TAG_IS_STR && tag & TAG_STICK) || tag == TAG_IS_REDIR) + if (tag & TAG_IS_STR && tag & TAG_STICK) + ret->rest = ret->rest->next; + else if (tag & TAG_IS_REDIR) ret->rest = ret->rest->next; else { - ret->rest = ret->rest->next; + //ret->rest = ret->rest->next; break; } + tag = ((t_token *)ret->rest->data)->tag; } } + ret->rest = ret->rest->next; } // printf("===========cmd=============\n"); // while(ret->ast->cmd_argv != NULL) -- cgit