42-archive/42sh/src/main/ft_putast.c
2017-03-14 22:49:44 +01:00

100 lines
3 KiB
C

/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* tree_type.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: jhalford <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2016/11/14 18:18:04 by jhalford #+# #+# */
/* Updated: 2017/03/14 22:11:26 by ariard ### ########.fr */
/* */
/* ************************************************************************** */
#include "minishell.h"
char *ft_putast(void *nodein)
{
t_astnode *node;
node = nodein;
if (node->type == TK_BANG)
return ("TK_BANG");
if (node->type == TK_DSEMI)
return ("TK_DSEMI");
if (node->type == WORDLIST)
return ("WORDLIST");
if (node->type == CMD)
return ("CMD");
if (node->type == REDIR)
return ("REDIR");
if (node->type == CLOSE_LIST)
return ("CLOSE_LIST");
if (node->type == FNAME)
return ("FNAME");
if (node->type == TK_LBRACE)
return ("TK_LBRACE");
if (node->type == TK_ASSIGNMENT_WORD)
return ("ASSIGNEMENT_WORD");
if (node->type == SUBSHELL)
return ("SUBSHELL");
if (node->type == TK_NAME)
return ("TK_NAME");
if (node->type == TK_FOR)
return ("TK_FOR");
if (node->type == TK_CASE)
return ("TK_CASE");
else if (node->type == TK_PAREN_OPEN)
return ("TK_OPE");
else if (node->type == TK_PAREN_CLOSE)
return ("TK_CLO");
else if (node->type == TK_IN)
return ("TK_IN");
else if (node->type ==TK_ESAC)
return ("TK_ESAC");
else if (node->type == TK_THEN)
return ("THEN");
else if (node->type == TK_FI)
return ("FI");
else if (node->type == TK_DO)
return ("TK_DO");
else if (node->type == TK_AMP)
return (" & ");
else if (node->type == TK_WORD)
return (" TK_WORD");
else if (node->type == TK_SEMI)
return (" ; ");
else if (node->type == TK_AND_IF)
return (" && ");
else if (node->type == TK_OR_IF)
return (" || ");
else if (node->type == TK_PIPE)
return (" | ");
else if (node->type == TK_COMMAND)
return (" COM ");
else if (node->type == TK_WHILE)
return (" WHILE ");
else if (node->type == TK_IF)
return ("IF");
else if (node->type == TK_ELIF)
return ("ELIF");
else if (node->type == TK_ELSE)
return ("ELSE");
else if (node->type == TK_UNTIL)
return ("UNTIL");
else if (node->type == TK_NEWLINE)
return ("NEW");
else if (node->type == TK_GREAT)
return (" > ");
else if (node->type == TK_LESS)
return (" < ");
else if (node->type == TK_DGREAT)
return (" >> ");
else if (node->type == TK_DLESS)
return (" << ");
else if (node->type == TK_GREATAND)
return (" >& ");
else if (node->type == TK_LESSAND)
return (" <& ");
else
return ("OTHER");
}