From ae510a886b202926b4a5502de02a938054844ad4 Mon Sep 17 00:00:00 2001 From: nass1pro Date: Wed, 17 Jun 2020 19:01:25 +0200 Subject: Update line op --- src/main.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/main.c') diff --git a/src/main.c b/src/main.c index 1dee5b1..9b902b8 100644 --- a/src/main.c +++ b/src/main.c @@ -3,10 +3,10 @@ /* ::: :::::::: */ /* main.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: cacharle +#+ +:+ +#+ */ +/* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/02/28 11:45:44 by cacharle #+# #+# */ -/* Updated: 2020/06/16 14:49:59 by charles ### ########.fr */ +/* Updated: 2020/06/17 15:50:33 by nahaddac ### ########.fr */ /* */ /* ************************************************************************** */ @@ -52,8 +52,8 @@ int main(int argc, char **argv, char **envp) /* printf("===redirs===\n"); */ /* ft_lstiter(parser_out->ast->redirs, token_debug); */ - int eval_out = eval_cmd(env, path, parser_out->ast); - (void)eval_out; + //int eval_out = eval_cmd(env, path, parser_out->ast); + //(void)eval_out; } ft_htdestroy(path, free); -- cgit From 9a11d78abf7dc8fb8c8f3430538e80622a7854d3 Mon Sep 17 00:00:00 2001 From: Charles Date: Wed, 17 Jun 2020 20:47:59 +0200 Subject: Show nass the power of parser combinator --- src/main.c | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) (limited to 'src/main.c') diff --git a/src/main.c b/src/main.c index 9b902b8..4420f9d 100644 --- a/src/main.c +++ b/src/main.c @@ -6,7 +6,7 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/02/28 11:45:44 by cacharle #+# #+# */ -/* Updated: 2020/06/17 15:50:33 by nahaddac ### ########.fr */ +/* Updated: 2020/06/17 20:46:39 by charles ### ########.fr */ /* */ /* ************************************************************************** */ @@ -29,6 +29,43 @@ void token_debug(void *v) printf("[%4d %d] (%s)\n", t->tag, !!(t->tag & TAG_STICK), t->content); } +void token_put(void *v) +{ + t_token *t; + + t= v; + printf("%s ", t->content); +} + +void print_level(int level) +{ + while (level-- > 0) + printf(" "); +} + +void ast_print(int level, t_ast *ast) +{ + if (ast->tag == AST_CMD) + { + print_level(level); + ft_lstiter(ast->cmd_argv, token_put); + } + else + { + print_level(level); + printf("SEP: %d\n", ast->op.sep); + + print_level(level); + printf("left:\n"); + ast_print(level + 1, ast->op.left); + + printf("\n"); + print_level(level); + printf("right:\n"); + ast_print(level + 1, ast->op.right); + } +} + int main(int argc, char **argv, char **envp) { t_path path; @@ -46,6 +83,7 @@ int main(int argc, char **argv, char **envp) //ft_lstiter(lex_out, token_debug); t_ret *parser_out = parse(lex_out); + ast_print(0, parser_out->ast); /* printf("===cmd_argv===\n"); */ /* ft_lstiter(parser_out->ast->cmd_argv, token_debug); */ -- cgit From f4a8ff23a590dad1b43a2e92df5c5c6b8951976a Mon Sep 17 00:00:00 2001 From: Charles Date: Wed, 17 Jun 2020 23:01:07 +0200 Subject: Added parse_expr draft --- src/main.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src/main.c') diff --git a/src/main.c b/src/main.c index 4420f9d..533c9a5 100644 --- a/src/main.c +++ b/src/main.c @@ -6,7 +6,7 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/02/28 11:45:44 by cacharle #+# #+# */ -/* Updated: 2020/06/17 20:46:39 by charles ### ########.fr */ +/* Updated: 2020/06/17 22:11:31 by charles ### ########.fr */ /* */ /* ************************************************************************** */ @@ -48,7 +48,9 @@ void ast_print(int level, t_ast *ast) if (ast->tag == AST_CMD) { print_level(level); + printf("[ "); ft_lstiter(ast->cmd_argv, token_put); + printf(" ]"); } else { @@ -80,7 +82,7 @@ int main(int argc, char **argv, char **envp) //printf("%s\n", argv[2]); t_ftlst *lex_out = lexer(ft_strdup(argv[2])); - //ft_lstiter(lex_out, token_debug); + ft_lstiter(lex_out, token_debug); t_ret *parser_out = parse(lex_out); ast_print(0, parser_out->ast); @@ -90,8 +92,8 @@ int main(int argc, char **argv, char **envp) /* printf("===redirs===\n"); */ /* ft_lstiter(parser_out->ast->redirs, token_debug); */ - //int eval_out = eval_cmd(env, path, parser_out->ast); - //(void)eval_out; + /* int eval_out = eval_cmd(env, path, parser_out->ast); */ + /* (void)eval_out; */ } ft_htdestroy(path, free); -- cgit From 3b21eea3ff3c803aa6f07c3a5bd048795c586b46 Mon Sep 17 00:00:00 2001 From: Charles Date: Thu, 18 Jun 2020 11:29:56 +0200 Subject: Fixing parse_expr and parse_op to work with parenthesis --- src/main.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'src/main.c') diff --git a/src/main.c b/src/main.c index 533c9a5..e3391bf 100644 --- a/src/main.c +++ b/src/main.c @@ -6,7 +6,7 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/02/28 11:45:44 by cacharle #+# #+# */ -/* Updated: 2020/06/17 22:11:31 by charles ### ########.fr */ +/* Updated: 2020/06/18 11:26:02 by charles ### ########.fr */ /* */ /* ************************************************************************** */ @@ -48,23 +48,31 @@ void ast_print(int level, t_ast *ast) if (ast->tag == AST_CMD) { print_level(level); - printf("[ "); + printf("cmd: [ "); ft_lstiter(ast->cmd_argv, token_put); + printf(" ] redirs: ["); + ft_lstiter(ast->redirs, token_put); printf(" ]"); } else { + /* print_level(level); */ + /* printf("SEP: %d\n", ast->op.sep); */ print_level(level); - printf("SEP: %d\n", ast->op.sep); + printf("{\n"); print_level(level); - printf("left:\n"); + printf(" left:\n"); ast_print(level + 1, ast->op.left); printf("\n"); print_level(level); - printf("right:\n"); + printf(" right:\n"); ast_print(level + 1, ast->op.right); + + printf("\n"); + print_level(level); + printf("}\n"); } } @@ -82,7 +90,7 @@ int main(int argc, char **argv, char **envp) //printf("%s\n", argv[2]); t_ftlst *lex_out = lexer(ft_strdup(argv[2])); - ft_lstiter(lex_out, token_debug); + /* ft_lstiter(lex_out, token_debug); */ t_ret *parser_out = parse(lex_out); ast_print(0, parser_out->ast); -- cgit