aboutsummaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2020-06-18 13:44:38 +0200
committerCharles <sircharlesaze@gmail.com>2020-06-18 13:44:38 +0200
commitabd0785ea2734201251609275b361557abc04553 (patch)
tree0cd1ca8c45c8669a3f882207c642d9da2f7ed8d1 /src/main.c
parent9aab4ace12a04d0c5477909e54bb43fefcd19f9c (diff)
parent4d5e2f861331989f8de16e3b0458e45b34bd0b6f (diff)
downloadminishell-abd0785ea2734201251609275b361557abc04553.tar.gz
minishell-abd0785ea2734201251609275b361557abc04553.tar.bz2
minishell-abd0785ea2734201251609275b361557abc04553.zip
Merge branch 'parse_cmd'
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c51
1 files changed, 49 insertions, 2 deletions
diff --git a/src/main.c b/src/main.c
index f6555ad..76caea7 100644
--- a/src/main.c
+++ b/src/main.c
@@ -3,10 +3,10 @@
/* ::: :::::::: */
/* main.c :+: :+: :+: */
/* +:+ +:+ +:+ */
-/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
+/* By: cacharle <cacharle@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/02/28 11:45:44 by cacharle #+# #+# */
-/* Updated: 2020/06/17 17:10:08 by charles ### ########.fr */
+/* Updated: 2020/06/18 13:43:58 by charles ### ########.fr */
/* */
/* ************************************************************************** */
@@ -62,6 +62,53 @@
/* return (0); */
/* } */
+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);
+ 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("{\n");
+
+ 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);
+
+ printf("\n");
+ print_level(level);
+ printf("}\n");
+ }
+}
+
int main(int argc, char **argv, char **envp)
{
(void)argc;