aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authornass1pro <nass1pro@gmail.com>2020-06-15 20:05:36 +0200
committernass1pro <nass1pro@gmail.com>2020-06-15 20:05:36 +0200
commit25ba3ac2ccef9ba8295c3975a1681baa033c5ee6 (patch)
tree2f46312fe87de561c6f30b929e5791e42d78c380 /src
parent209c15cee6e0c3604d34a1d1d656e045e71b1c9d (diff)
downloadminishell-25ba3ac2ccef9ba8295c3975a1681baa033c5ee6.tar.gz
minishell-25ba3ac2ccef9ba8295c3975a1681baa033c5ee6.tar.bz2
minishell-25ba3ac2ccef9ba8295c3975a1681baa033c5ee6.zip
Add redir parse
Diffstat (limited to 'src')
-rw-r--r--src/main.c2
-rwxr-xr-xsrc/parse/parse.c40
2 files changed, 21 insertions, 21 deletions
diff --git a/src/main.c b/src/main.c
index 26db59f..6ea9a51 100644
--- a/src/main.c
+++ b/src/main.c
@@ -44,7 +44,7 @@ int main(int argc, char **argv, char **envp)
ft_lstiter(lex_out, token_debug);
- //t_ret *parser_out = parse(lex_out);
+ t_ret *parser_out = parse(lex_out);
// printf("%s\n", ((t_token *)parser_out->ast->cmd_argv->data)->content);
// printf("%s\n", ((t_token *)parser_out->ast->redirs->data)->content);
diff --git a/src/parse/parse.c b/src/parse/parse.c
index ff8dbc1..1129696 100755
--- a/src/parse/parse.c
+++ b/src/parse/parse.c
@@ -15,7 +15,6 @@ t_ret *parse(t_ftlst *input)
t_ret *ret;
t_ret *first;
enum e_token_tag tag;
- int i = 0;
if(!(ret = malloc(sizeof(t_ret) * 1)))
return(NULL);
@@ -37,27 +36,28 @@ t_ret *parse(t_ftlst *input)
{
ret->ast = push_redir(ret->ast, ret->rest);
ret->rest = ret->rest->next;
- if (ret->rest != NULL)
+ while(ret->rest != NULL)
+ {
ret->ast = push_redir(ret->ast, ret->rest);
- tag = ((t_token *)ret->rest->data)->tag;
- //while(tag & TAG_IS_STR && tag & TAG_STICK)
+ tag = ((t_token *)ret->rest->data)->tag;
+ if (tag & TAG_IS_STR && tag & TAG_STICK)
+ ret->rest = ret->rest->next;
+ else
+ break;
+ }
}
}
- 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)
- {
- if (i == 0)
- {
- i++;
- }
- 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);
+ // 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);
return first;
}