aboutsummaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
authornass1pro <nass1pro@gmail.com>2020-06-14 15:52:25 +0200
committernass1pro <nass1pro@gmail.com>2020-06-14 15:52:25 +0200
commitb5710182b87b17c14cabb5f178f0516ff7676177 (patch)
treed8783a63e43b774e6f2f27f6aa20e5b67718fcc7 /src/main.c
parent26ddbd7146f65a2cf100713f422a9ab5b1890620 (diff)
downloadminishell-b5710182b87b17c14cabb5f178f0516ff7676177.tar.gz
minishell-b5710182b87b17c14cabb5f178f0516ff7676177.tar.bz2
minishell-b5710182b87b17c14cabb5f178f0516ff7676177.zip
Added parse cmd draft
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c195
1 files changed, 100 insertions, 95 deletions
diff --git a/src/main.c b/src/main.c
index 5d3e9d8..14da075 100644
--- a/src/main.c
+++ b/src/main.c
@@ -20,103 +20,108 @@
#include "lexer.h"
#include "parser.h"
-int main(int argc, char **argv, char **envp)
-{
- (void)argc;
- (void)argv;
- /* (void)envp; */
- /* t_path path; */
- t_env env;
- /* char *line; */
- /* int ret; */
- env = env_from_array(envp);
- /* path = path_update(NULL, env_search(env, "PATH")); */
- /* */
- /* t_ast *ast; */
- /* t_line line; */
- /* t_cmd cmd; */
- /* t_eval_state state; */
- /* */
- /* cmd.argv = ft_split("ls -l", ' '); */
- /* cmd.in = NULL; */
- /* cmd.out = NULL; */
- /* cmd.is_append = false; */
- /* */
- /* line.left = ast_new(TAG_CMD, &cmd); */
- /* line.right = NULL; */
- /* line.sep = SEP_END; */
- /* ast = ast_new(TAG_LINE, &line); */
- /* printf("%p\n", ast); */
- /* printf("%d\n", ast->tag); */
- /* printf("%p\n", ast->data.line.left); */
- /* printf("%p\n", ast->data.line.right); */
- /* printf("%d\n", ast->data.line.left->tag); */
- /* printf("%p\n", ast->data.line.left->data.cmd.argv); */
- /* printf("%s\n", ast->data.line.left->data.cmd.argv[0]); */
- /* printf("%s\n", ast->data.line.left->data.cmd.argv[1]); */
- /* state.pipe_in[0] = -1; */
- /* state.pipe_in[1] = -1; */
- /* state.pipe_out[0] = -1; */
- /* state.pipe_out[1] = -1; */
- /* state.path = path; */
- /* state.env = env; */
- /* t_io_frame frame; */
- /* io_frame_init(&frame); */
- /* printf("ret: %d %s\n", eval(&frame,&state, ast), strerror(errno)); */
- /* char buf[2048]; */
- /* printf("%s\n", getcwd(buf, 2048)); */
- /* builtin_env(NULL, state.env); */
- /* ast_destroy(ast); */
- /* while ((ret = ft_next_line(STDIN_FILENO, &line)) == 1) */
- /* { */
- /* if (eval(parse(line)) == -1) */
- /* continue ; // and display error */
- /* free(line); */
- /* } */
- /* free(line); */
- /* ft_htdestroy(path, free); */
- /* ms_glob("src#<{(|"); */
- /* char *j = ms_glob("|)}>#*.c"); */
- /* printf("%s\n", j); */
- /* free(j); */
- t_ftvec *v = ft_vecnew(32);
- ft_vecpush(v, token_new(TAG_STR, "$TERM$LFS$TERM$TERM."));
- ft_vecpush(v, token_new(TAG_STR, "$$LFS$TERM$TERM."));
- ft_vecpush(v, token_new(TAG_STR, "*/*.c$TERM"));
- ft_vecpush(v, token_new(TAG_STR, "src/*.c include/*.h"));
- ft_vecpush(v, token_new(TAG_STR, "$A$B"));
- ft_vecpush(v, token_new(TAG_STR, "\\$TERM"));
- ft_vecpush(v, token_new(TAG_STR, "$TER\\M"));
- ft_vecpush(v, token_new(TAG_STR, "\\\\"));
- ft_vecpush(v, token_new(TAG_STR_SINGLE, "''''$TEST\\TEST"));
- ft_vecpush(v, token_new(TAG_STR_DOUBLE, ",$TEST,$B,"));
- ft_vecpush(v, token_new(TAG_STR_DOUBLE | TAG_STICK, "$TEST"));
- ft_vecpush(v, token_new(TAG_STR_DOUBLE | TAG_STICK, "$TEST"));
- ft_vecpush(v, token_new(TAG_STR_DOUBLE , "$TEST"));
- ft_vecpush(v, token_new(TAG_STR_DOUBLE | TAG_STICK, "$TEST"));
- ft_vecpush(v, token_new(TAG_STR_SINGLE, "$TEST"));
- char **as = preprocess(v, env);
- char **tmp = as;
- while (*as != NULL)
- puts(*as++);
- ft_split_destroy(tmp);
- ft_vecdestroy(env, free);
- return (0);
-}
+// int main(int argc, char **argv, char **envp)
+// {
+// (void)argc;
+// (void)argv;
+// /* (void)envp; */
+// /* t_path path; */
+// t_env env;
+// /* char *line; */
+// /* int ret; */
+// env = env_from_array(envp);
+// /* path = path_update(NULL, env_search(env, "PATH")); */
+// /* */
+// /* t_ast *ast; */
+// /* t_line line; */
+// /* t_cmd cmd; */
+// /* t_eval_state state; */
+// /* */
+// /* cmd.argv = ft_split("ls -l", ' '); */
+// /* cmd.in = NULL; */
+// /* cmd.out = NULL; */
+// /* cmd.is_append = false; */
+// /* */
+// /* line.left = ast_new(TAG_CMD, &cmd); */
+// /* line.right = NULL; */
+// /* line.sep = SEP_END; */
+// /* ast = ast_new(TAG_LINE, &line); */
+// /* printf("%p\n", ast); */
+// /* printf("%d\n", ast->tag); */
+// /* printf("%p\n", ast->data.line.left); */
+// /* printf("%p\n", ast->data.line.right); */
+// /* printf("%d\n", ast->data.line.left->tag); */
+// /* printf("%p\n", ast->data.line.left->data.cmd.argv); */
+// /* printf("%s\n", ast->data.line.left->data.cmd.argv[0]); */
+// /* printf("%s\n", ast->data.line.left->data.cmd.argv[1]); */
+// /* state.pipe_in[0] = -1; */
+// /* state.pipe_in[1] = -1; */
+// /* state.pipe_out[0] = -1; */
+// /* state.pipe_out[1] = -1; */
+// /* state.path = path; */
+// /* state.env = env; */
+// /* t_io_frame frame; */
+// /* io_frame_init(&frame); */
+// /* printf("ret: %d %s\n", eval(&frame,&state, ast), strerror(errno)); */
+// /* char buf[2048]; */
+// /* printf("%s\n", getcwd(buf, 2048)); */
+// /* builtin_env(NULL, state.env); */
+// /* ast_destroy(ast); */
+// /* while ((ret = ft_next_line(STDIN_FILENO, &line)) == 1) */
+// /* { */
+// /* if (eval(parse(line)) == -1) */
+// /* continue ; // and display error */
+// /* free(line); */
+// /* } */
+// /* free(line); */
+// /* ft_htdestroy(path, free); */
+// /* ms_glob("src#<{(|"); */
+// /* char *j = ms_glob("|)}>#*.c"); */
+// /* printf("%s\n", j); */
+// /* free(j); */
+// t_ftvec *v = ft_vecnew(32);
+// ft_vecpush(v, token_new(TAG_STR, "$TERM$LFS$TERM$TERM."));
+// ft_vecpush(v, token_new(TAG_STR, "$$LFS$TERM$TERM."));
+// ft_vecpush(v, token_new(TAG_STR, "*/*.c$TERM"));
+// ft_vecpush(v, token_new(TAG_STR, "src/*.c include/*.h"));
+// ft_vecpush(v, token_new(TAG_STR, "$A$B"));
+// ft_vecpush(v, token_new(TAG_STR, "\\$TERM"));
+// ft_vecpush(v, token_new(TAG_STR, "$TER\\M"));
+// ft_vecpush(v, token_new(TAG_STR, "\\\\"));
+// ft_vecpush(v, token_new(TAG_STR_SINGLE, "''''$TEST\\TEST"));
+// ft_vecpush(v, token_new(TAG_STR_DOUBLE, ",$TEST,$B,"));
+// ft_vecpush(v, token_new(TAG_STR_DOUBLE | TAG_STICK, "$TEST"));
+// ft_vecpush(v, token_new(TAG_STR_DOUBLE | TAG_STICK, "$TEST"));
+// ft_vecpush(v, token_new(TAG_STR_DOUBLE , "$TEST"));
+// ft_vecpush(v, token_new(TAG_STR_DOUBLE | TAG_STICK, "$TEST"));
+// ft_vecpush(v, token_new(TAG_STR_SINGLE, "$TEST"));
+// char **as = preprocess(v, env);
+// char **tmp = as;
+// while (*as != NULL)
+// puts(*as++);
+// ft_split_destroy(tmp);
+// ft_vecdestroy(env, free);
+// return (0);
+// }
/////////////////////////////////////////////////////////////////////////////////////////
// lexer main
/////////////////////////////////////////////////////////////////////////////////////////
-/* int main(void) */
-/* { */
-/* char *input; */
-/* */
-/* if (!(input = malloc(sizeof(char) * ft_strlen(argv[1]) + 1))) */
-/* return(0); */
-/* ft_strlcpy(input, argv[1], ft_strlen(argv[1]) + 1); */
-/* */
-/* lexer(input); */
-/* exit(0); */
-/* return (0); */
-/* } */
+int main(int argc, char **argv)
+{
+ char *input;
+ t_ftlst *lst;
+
+ if (argv[1] == NULL)
+ return (0);
+ if (!(input = malloc(sizeof(char) * ft_strlen(argv[1]) + 1)))
+ return(0);
+ ft_strlcpy(input, argv[1], ft_strlen(argv[1]) + 1);
+
+ lst = lexer(input);
+ parse(lst);
+ free(input);
+ exit(0);
+ return (0);
+}