aboutsummaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2020-06-14 21:26:36 +0200
committerCharles <sircharlesaze@gmail.com>2020-06-14 21:26:36 +0200
commit91d91b0f54ec9795beaf673f20ff87b894a558c4 (patch)
treebc6e084703bd677fcf4ca3ee82898688fc3e2ee7 /src/main.c
parent47fff4418d3a83ae214429f395232c3536ff03c4 (diff)
downloadminishell-91d91b0f54ec9795beaf673f20ff87b894a558c4.tar.gz
minishell-91d91b0f54ec9795beaf673f20ff87b894a558c4.tar.bz2
minishell-91d91b0f54ec9795beaf673f20ff87b894a558c4.zip
WIP: Added eval cmd with redirection and builtins
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c77
1 files changed, 51 insertions, 26 deletions
diff --git a/src/main.c b/src/main.c
index 0f5b92c..e81c634 100644
--- a/src/main.c
+++ b/src/main.c
@@ -6,7 +6,7 @@
/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/02/28 11:45:44 by cacharle #+# #+# */
-/* Updated: 2020/06/14 16:04:41 by charles ### ########.fr */
+/* Updated: 2020/06/14 21:21:01 by charles ### ########.fr */
/* */
/* ************************************************************************** */
@@ -17,20 +17,21 @@
#include "minishell.h"
#include "ast.h"
-#include "lexer.h"
-#include "parser.h"
+/* #include "lexer.h" */
+/* #include "parser.h" */
+#include "eval.h"
int main(int argc, char **argv, char **envp)
{
(void)argc;
(void)argv;
/* (void)envp; */
- /* t_path path; */
+ t_path path;
t_env env;
/* char *line; */
/* int ret; */
env = env_from_array(envp);
- /* path = path_update(NULL, env_search(env, "PATH")); */
+ path = path_update(NULL, env_search(env, "PATH"));
/* */
/* t_ast *ast; */
/* t_line line; */
@@ -74,34 +75,58 @@ int main(int argc, char **argv, char **envp)
/* free(line); */
/* } */
/* free(line); */
- /* ft_htdestroy(path, free); */
/* ms_glob("src#<{(|"); */
/* char *j = ms_glob("|)}>#*.c"); */
/* printf("%s\n", j); */
/* free(j); */
- t_ftlst *l = NULL;
- ft_lstpush_back(&l, ft_lstnew(token_new(TAG_STR, "$TERM$LFS$TERM$TERM.")));
- ft_lstpush_back(&l, ft_lstnew(token_new(TAG_STR, "$$LFS$TERM$TERM.")));
- ft_lstpush_back(&l, ft_lstnew(token_new(TAG_STR, "*/*.c")));
- ft_lstpush_back(&l, ft_lstnew(token_new(TAG_STR, "src/*.c include/*.h")));
- ft_lstpush_back(&l, ft_lstnew(token_new(TAG_STR, "$A$B")));
- ft_lstpush_back(&l, ft_lstnew(token_new(TAG_STR, "\\$TERM")));
- ft_lstpush_back(&l, ft_lstnew(token_new(TAG_STR, "$TER\\M")));
- ft_lstpush_back(&l, ft_lstnew(token_new(TAG_STR, "\\\\")));
- ft_lstpush_back(&l, ft_lstnew(token_new(TAG_STR_SINGLE, "''''$TEST\\TEST")));
- ft_lstpush_back(&l, ft_lstnew(token_new(TAG_STR_DOUBLE, ",$TEST,$B,")));
- ft_lstpush_back(&l, ft_lstnew(token_new(TAG_STR_DOUBLE | TAG_STICK, "$TEST")));
- ft_lstpush_back(&l, ft_lstnew(token_new(TAG_STR_DOUBLE | TAG_STICK, "$TEST")));
- ft_lstpush_back(&l, ft_lstnew(token_new(TAG_STR_DOUBLE , "$TEST")));
- ft_lstpush_back(&l, ft_lstnew(token_new(TAG_STR_DOUBLE | TAG_STICK, "$TEST")));
- ft_lstpush_back(&l, ft_lstnew(token_new(TAG_STR_SINGLE, "$TEST")));
- char **as = preprocess(l, env);
+
+ t_ftlst *args = NULL;
+ ft_lstpush_back(&args, ft_lstnew(token_new(TAG_STR, "echo")));
+ ft_lstpush_back(&args, ft_lstnew(token_new(TAG_STR, "bonjour")));
+ ft_lstpush_back(&args, ft_lstnew(token_new(TAG_STR, "je")));
+
+ /* ft_lstpush_back(&args, ft_lstnew(token_new(TAG_STR, "cat"))); */
+ /* ft_lstpush_back(&args, ft_lstnew(token_new(TAG_STR, "-e"))); */
+
+ /* ft_lstpush_back(&args, ft_lstnew(token_new(TAG_STR, "ls"))); */
+ /* ft_lstpush_back(&args, ft_lstnew(token_new(TAG_STR, "-a"))); */
+ /* ft_lstpush_back(&args, ft_lstnew(token_new(TAG_STR, "-l"))); */
+ /* ft_lstpush_back(&args, ft_lstnew(token_new(TAG_STR, "$$LFS$TERM$TERM."))); */
+ /* ft_lstpush_back(&args, ft_lstnew(token_new(TAG_STR, "|)}>#*.c"))); */
+ /* ft_lstpush_back(&l, ft_lstnew(token_new(TAG_STR, "src#<{(|.c include#<{(|.h"))); */
+ /* ft_lstpush_back(&l, ft_lstnew(token_new(TAG_STR, "$A$B"))); */
+ /* ft_lstpush_back(&l, ft_lstnew(token_new(TAG_STR, "\\$TERM"))); */
+ /* ft_lstpush_back(&l, ft_lstnew(token_new(TAG_STR, "$TER\\M"))); */
+ /* ft_lstpush_back(&l, ft_lstnew(token_new(TAG_STR, "\\\\"))); */
+ /* ft_lstpush_back(&l, ft_lstnew(token_new(TAG_STR_SINGLE, "''''$TEST\\TEST"))); */
+ /* ft_lstpush_back(&l, ft_lstnew(token_new(TAG_STR_DOUBLE, ",$TEST,$B,"))); */
+ /* ft_lstpush_back(&l, ft_lstnew(token_new(TAG_STR_DOUBLE | TAG_STICK, "$TEST"))); */
+ /* ft_lstpush_back(&l, ft_lstnew(token_new(TAG_STR_DOUBLE | TAG_STICK, "$TEST"))); */
+ /* ft_lstpush_back(&l, ft_lstnew(token_new(TAG_STR_DOUBLE , "$TEST"))); */
+ /* ft_lstpush_back(&l, ft_lstnew(token_new(TAG_STR_DOUBLE | TAG_STICK, "$TEST"))); */
+ /* ft_lstpush_back(&l, ft_lstnew(token_new(TAG_STR_SINGLE, "$TEST"))); */
+
+ t_ftlst *redirs = NULL;
+ /* ft_lstpush_back(&redirs, ft_lstnew(token_new(TAG_REDIR_IN, NULL))); */
+ /* ft_lstpush_back(&redirs, ft_lstnew(token_new(TAG_STR, "bonjour"))); */
+ ft_lstpush_back(&redirs, ft_lstnew(token_new(TAG_REDIR_OUT, NULL)));
+ ft_lstpush_back(&redirs, ft_lstnew(token_new(TAG_STR, "yo")));
+
+ t_ast *ast = ast_new(AST_CMD);
+ ast->cmd_argv = args;
+ ast->redirs = redirs;
+
+ printf("eval %d\n", eval_cmd(env, path, ast));
+
+
+ /* char **as = preprocess(l, env); */
/* printf("%p\n", as); */
/* printf("%p\n", *as); */
- char **tmp = as;
- while (*as != NULL)
- puts(*as++);
+ /* char **tmp = as; */
+ /* while (*as != NULL) */
+ /* puts(*as++); */
/* ft_split_destroy(tmp); */
+ ft_htdestroy(path, free);
ft_vecdestroy(env, free);
return (0);
}