diff options
| author | nass1pro <nass1pro@gmail.com> | 2020-06-14 09:01:57 +0200 |
|---|---|---|
| committer | nass1pro <nass1pro@gmail.com> | 2020-06-14 09:01:57 +0200 |
| commit | cadd588473f82cdbbfdb7210bddd22262561faf3 (patch) | |
| tree | 751dc7934907ec89412e7e2a2ae9c73d75426007 /src | |
| parent | cfb618b6e385a861db7f62141a5f13f211ca6f48 (diff) | |
| download | minishell-cadd588473f82cdbbfdb7210bddd22262561faf3.tar.gz minishell-cadd588473f82cdbbfdb7210bddd22262561faf3.tar.bz2 minishell-cadd588473f82cdbbfdb7210bddd22262561faf3.zip | |
Add t_ret in ast.h
Diffstat (limited to 'src')
| -rw-r--r-- | src/main.c | 130 | ||||
| -rw-r--r-- | src/parse/lexer.c | 26 | ||||
| -rw-r--r-- | src/parse/parse.c | 12 |
3 files changed, 17 insertions, 151 deletions
@@ -17,129 +17,23 @@ #include "minishell.h" #include "ast.h" -#include "eval.h" -#include "ms_glob.h" #include "lexer.h" - -/* -** \brief Program entrypoint -** \param argc Number of arguments in `argv` -** \param argv Array of string, argument of the program -** \param envp NULL terminated array of string representing the environment -** \return 0 if ok, 1 otherwise -*/ - -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(LTAG_STR, "$TERM$LFS$TERM$TERM.")); - ft_vecpush(v, token_new(LTAG_STR, "$$LFS$TERM$TERM.")); - ft_vecpush(v, token_new(LTAG_STR, "*/*.c$TERM")); - ft_vecpush(v, token_new(LTAG_STR, "src/*.c include/*.h")); - ft_vecpush(v, token_new(LTAG_STR, "$A$B")); - - ft_vecpush(v, token_new(LTAG_STR, "\\$TERM")); - ft_vecpush(v, token_new(LTAG_STR, "$TER\\M")); - ft_vecpush(v, token_new(LTAG_STR, "\\\\")); - ft_vecpush(v, token_new(LTAG_STR_SINGLE, "''''$TEST\\TEST")); - ft_vecpush(v, token_new(LTAG_STR_DOUBLE, ",$TEST,$B,")); - - ft_vecpush(v, token_new(LTAG_STR_DOUBLE | LTAG_STICK, "$TEST")); - ft_vecpush(v, token_new(LTAG_STR_DOUBLE | LTAG_STICK, "$TEST")); - ft_vecpush(v, token_new(LTAG_STR_DOUBLE , "$TEST")); - ft_vecpush(v, token_new(LTAG_STR_DOUBLE | LTAG_STICK, "$TEST")); - ft_vecpush(v, token_new(LTAG_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); -} +#include "parser.h" ///////////////////////////////////////////////////////////////////////////////////////// // lexer main ///////////////////////////////////////////////////////////////////////////////////////// -#include "lexer.h" + 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); -/* int main(void) */ -/* { */ -/* char **out; */ -/* int i = -1; */ -/* */ -/* out = lexer("\"echo\" \"* login_x\"<<AUTHORS; echo && ; salut;\"echo\"\"* login_x\""); */ -/* //out = lexer("echo * login_x << AUTHORS&&cd Desktop"); */ -/* while(out[++i]) */ -/* printf("%s\n", out[i]);; */ -/* exit(0); */ -/* return (0); */ -/* } */ + lexer(input); + exit(0); + return (0); + } */ diff --git a/src/parse/lexer.c b/src/parse/lexer.c deleted file mode 100644 index 2aa8a6f..0000000 --- a/src/parse/lexer.c +++ /dev/null @@ -1,26 +0,0 @@ -/* -** \file lexer.c -** \brief Lexer -*/ - -#include "minishell.h" - -/* static char **lex_len(char *input) */ -/* { */ -/* int i; */ -/* */ -/* i = 0; */ -/* while(input[i] != '\0') */ -/* { */ -/* lex_comp_cmd(input); */ -/* i++; */ -/* } */ -/* } */ - -/* char **lexer(char *input) */ -/* { */ -/* if (!input) */ -/* return (NULL); */ -/* lex_len(input); */ -/* return (NULL); */ -/* } */ diff --git a/src/parse/parse.c b/src/parse/parse.c index a0da5d9..6f9c99b 100644 --- a/src/parse/parse.c +++ b/src/parse/parse.c @@ -4,15 +4,13 @@ */ #include "parse.h" +#include <stdio.h> -t_ast *parse(char **input) +t_ast *parse(t_ftlst *lst) { - /* int i = 0; */ + t_ret *ret; - (void)input; - /* while (input[i] != '\0') */ - /* { */ - /* */ - /* } */ + ret->rest = lst; + ret = return NULL; } |
