parse newline
This commit is contained in:
parent
cd2019c0fd
commit
65b6658978
6 changed files with 23 additions and 17 deletions
|
|
@ -1,7 +1,8 @@
|
|||
while ls | cat ; pwd
|
||||
while ls | cat ;
|
||||
do
|
||||
while ls | cat
|
||||
echo hello
|
||||
while ls
|
||||
do
|
||||
echo monde ; cat
|
||||
done
|
||||
echo ; cat
|
||||
done
|
||||
done > file1
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
/* By: jhalford <marvin@42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2016/11/14 18:18:04 by jhalford #+# #+# */
|
||||
/* Updated: 2017/02/03 19:35:03 by ariard ### ########.fr */
|
||||
/* Updated: 2017/02/05 00:32:21 by ariard ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
|
|
@ -34,6 +34,10 @@ char *ft_putast(void *nodein)
|
|||
return (" COM ");
|
||||
else if (node->type == TK_WHILE)
|
||||
return (" WHILE ");
|
||||
else if (node->type == TK_DO)
|
||||
return ("DO");
|
||||
else if (node->type == TK_DONE)
|
||||
return ("DONE");
|
||||
else if (node->type == TK_NEWLINE)
|
||||
return ("NEW");
|
||||
else if (node->type == TK_LIST)
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
/* By: jhalford <jack@crans.org> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2016/11/30 17:14:58 by jhalford #+# #+# */
|
||||
/* Updated: 2017/02/05 00:14:17 by ariard ### ########.fr */
|
||||
/* Updated: 2017/02/05 00:39:31 by ariard ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
|
|
@ -16,6 +16,7 @@ t_parser g_parser[] =
|
|||
{
|
||||
{TK_WHILE, &parse_while},
|
||||
{TK_SEMI, &parse_separator},
|
||||
// {TK_NEWLINE, &parse_newline},
|
||||
{TK_AND_IF | TK_OR_IF, &parse_separator},
|
||||
{TK_AMP, &parse_separator},
|
||||
{TK_PIPE, &parse_separator},
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
/* By: ariard <ariard@student.42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2017/01/26 19:26:41 by ariard #+# #+# */
|
||||
/* Updated: 2017/02/04 20:22:57 by ariard ### ########.fr */
|
||||
/* Updated: 2017/02/05 00:40:14 by ariard ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
|
|
@ -14,17 +14,15 @@
|
|||
|
||||
int parse_newline(t_btree **ast, t_list **start, t_list **lst)
|
||||
{
|
||||
t_list *temp;
|
||||
t_astnode *node;
|
||||
t_token *token;
|
||||
|
||||
(void)start;
|
||||
token = (*lst)->content;
|
||||
node = (*ast)->item;
|
||||
node->type = TK_NEWLINE;
|
||||
temp = (*lst)->next;
|
||||
(*lst)->next = NULL;
|
||||
ft_lst_delif(start, (*lst)->content, &ft_addrcmp, &token_free);
|
||||
ft_parse(ast, start);
|
||||
*start = temp;
|
||||
ft_parse(&(*ast)->right, &(*lst)->next);
|
||||
ft_lstdelone(lst, &token_free);
|
||||
ft_parse(&(*ast)->left, start);
|
||||
return (0);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
/* By: jhalford <jack@crans.org> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2016/11/28 16:21:51 by jhalford #+# #+# */
|
||||
/* Updated: 2017/02/05 00:03:10 by ariard ### ########.fr */
|
||||
/* Updated: 2017/02/05 00:24:54 by ariard ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
/* By: ariard <ariard@student.42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2017/01/30 16:03:28 by ariard #+# #+# */
|
||||
/* Updated: 2017/02/05 00:14:32 by ariard ### ########.fr */
|
||||
/* Updated: 2017/02/05 00:40:21 by ariard ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
|
|
@ -21,11 +21,11 @@ static int delete_all_newline(t_list **lst)
|
|||
{
|
||||
token = (*lst)->content;
|
||||
start = *lst;
|
||||
(*lst) = (*lst)->next;
|
||||
if (token->type & TK_NEWLINE)
|
||||
ft_lst_delif(&start, (*lst)->content, &ft_addrcmp, &token_free);
|
||||
ft_lstdelone(&start, &token_free);
|
||||
else
|
||||
break;
|
||||
(*lst) = (*lst)->next;
|
||||
}
|
||||
return (0);
|
||||
}
|
||||
|
|
@ -78,6 +78,8 @@ int parse_while(t_btree **ast, t_list **start, t_list **lst)
|
|||
ft_lst_delif(start, (*lst)->content, &ft_addrcmp, &token_free);
|
||||
ft_parse(&(temp3)->left, start);
|
||||
|
||||
return (0);
|
||||
|
||||
delete_all_newline(&temp);
|
||||
ft_parse(&(temp3)->right, &temp);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue