modifs execution if
This commit is contained in:
parent
c45cb705b0
commit
7637b2b886
13 changed files with 39 additions and 53 deletions
0
42sh/a
Normal file
0
42sh/a
Normal file
0
42sh/b
Normal file
0
42sh/b
Normal file
25
42sh/c
Normal file
25
42sh/c
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
total 800
|
||||
drwxr-xr-x 24 ariard 2016_paris 816 Mar 15 02:11 .
|
||||
-rw-r--r-- 1 ariard 2016_paris 51102 Mar 15 02:11 STDBUG
|
||||
-rw-r--r-- 1 ariard 2016_paris 0 Mar 15 02:11 a
|
||||
-rw-r--r-- 1 ariard 2016_paris 0 Mar 15 02:11 b
|
||||
-rw-r--r-- 1 ariard 2016_paris 0 Mar 15 02:11 c
|
||||
drwxr-xr-x 17 ariard 2016_paris 578 Mar 15 02:10 .git
|
||||
-rwxr-xr-x 1 ariard 2016_paris 299668 Mar 15 02:10 42sh
|
||||
drwxr-xr-x 16 ariard 2016_paris 544 Mar 15 02:05 includes
|
||||
drwxr-xr-x 12 ariard 2016_paris 408 Mar 15 02:05 libft
|
||||
drwxr-xr-x 13 ariard 2016_paris 442 Mar 15 02:05 objs
|
||||
-rw-r--r-- 1 ariard 2016_paris 9190 Mar 14 22:49 Makefile
|
||||
-rw-r--r-- 1 ariard 2016_paris 113 Mar 14 12:49 main.c
|
||||
drwxr-xr-x 11 ariard 2016_paris 374 Mar 14 11:00 ..
|
||||
-rw-r--r-- 1 ariard 2016_paris 195 Mar 13 14:07 .gitignore
|
||||
drwxr-xr-x 7 ariard 2016_paris 238 Mar 8 23:22 TESTSHELL
|
||||
drwxr-xr-x 30 ariard 2016_paris 1020 Mar 8 23:22 sample
|
||||
-rwxr-xr-x 1 ariard 2016_paris 890 Mar 8 23:22 test_framework.sh
|
||||
drwxr-xr-x 13 ariard 2016_paris 442 Mar 7 19:42 src
|
||||
-rw-r--r-- 1 ariard 2016_paris 75 Mar 4 14:53 .gitmodules
|
||||
-rw-r--r-- 1 ariard 2016_paris 4241 Mar 4 14:53 .tags
|
||||
-rw-r--r-- 1 ariard 2016_paris 92 Mar 4 14:53 .valgrind.supp
|
||||
-rw-r--r-- 1 ariard 2016_paris 4396 Mar 4 14:53 donovan_segaults_06-02
|
||||
drwxr-xr-x 6 ariard 2016_paris 204 Mar 4 14:53 pdf
|
||||
-rwxr-xr-x 1 ariard 2016_paris 690 Mar 4 14:53 update_makefile.sh
|
||||
|
|
@ -104,7 +104,6 @@ int add_cmd(t_btree **ast, t_list **lst);
|
|||
int add_file(t_btree **ast, t_list **lst);
|
||||
int add_loop_cmd(t_btree **ast, t_list **lst);
|
||||
int add_loop_sep(t_btree **ast, t_list **lst);
|
||||
int add_loop_condition(t_btree **ast, t_list **lst);
|
||||
int add_condition_cmd(t_btree **ast, t_list **lst);
|
||||
int add_condition_sep(t_btree **ast, t_list **lst);
|
||||
int add_branch(t_btree **ast, t_list **lst);
|
||||
|
|
@ -127,7 +126,6 @@ int add_bang_sep(t_btree **ast, t_list **lst);
|
|||
int add_if(t_btree **ast, t_list **lst);
|
||||
|
||||
int isloop(t_btree **ast, t_list **lst);
|
||||
int isloop_condition(t_btree **ast, t_list **lst);
|
||||
int iscase(t_btree **ast, t_list **lst);
|
||||
int iscase_pattern(t_btree **ast, t_list **lst);
|
||||
int iscase_branch(t_btree **ast, t_list **lst);
|
||||
|
|
@ -169,7 +167,6 @@ struct s_cmd
|
|||
{
|
||||
t_list *redir;
|
||||
t_ld *token;
|
||||
t_ld *wordlist;
|
||||
};
|
||||
|
||||
union u_astdata
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
/* By: ariard <ariard@student.42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2017/02/06 18:08:53 by ariard #+# #+# */
|
||||
/* Updated: 2017/03/04 17:45:29 by ariard ### ########.fr */
|
||||
/* Updated: 2017/03/15 02:04:57 by ariard ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
/* By: wescande <wescande@student.42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2017/03/07 15:47:30 by wescande #+# #+# */
|
||||
/* Updated: 2017/03/15 01:50:11 by ariard ### ########.fr */
|
||||
/* Updated: 2017/03/15 02:04:30 by ariard ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
/* By: jhalford <jack@crans.org> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2016/11/27 20:30:32 by jhalford #+# #+# */
|
||||
/* Updated: 2017/03/15 01:53:18 by ariard ### ########.fr */
|
||||
/* Updated: 2017/03/15 02:04:38 by ariard ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
/* By: wescande <wescande@student.42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2017/03/08 02:26:31 by wescande #+# #+# */
|
||||
/* Updated: 2017/03/13 22:31:32 by jhalford ### ########.fr */
|
||||
/* Updated: 2017/03/15 02:04:14 by ariard ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
|
|
@ -14,7 +14,6 @@
|
|||
|
||||
int pfree_cond(t_process *p)
|
||||
{
|
||||
btree_del(&p->data.d_while.condition, &ast_free);
|
||||
btree_del(&p->data.d_while.content, &ast_free);
|
||||
return (0);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
/* By: wescande <wescande@student.42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2017/03/07 17:26:53 by wescande #+# #+# */
|
||||
/* Updated: 2017/03/13 20:28:57 by jhalford ### ########.fr */
|
||||
/* Updated: 2017/03/15 02:04:23 by ariard ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
|
|
@ -18,12 +18,7 @@ static int do_if(t_process *p)
|
|||
|
||||
exec = &data_singleton()->exec;
|
||||
exec->attrs &= ~EXEC_IF_BRANCH;
|
||||
ft_exec(&p->data.d_if.condition);
|
||||
if (!(ft_strcmp(ft_getenv(data_singleton()->env, "?"), "0")))
|
||||
{
|
||||
exec->attrs |= EXEC_IF_BRANCH;
|
||||
ft_exec(&p->data.d_if.content);
|
||||
}
|
||||
ft_exec(&p->data.d_if.content);
|
||||
return (ft_atoi(ft_getenv(data_singleton()->env, "?")));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
/* By: wescande <wescande@student.42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2017/03/07 19:19:50 by wescande #+# #+# */
|
||||
/* Updated: 2017/03/13 20:31:21 by jhalford ### ########.fr */
|
||||
/* Updated: 2017/03/15 02:03:19 by ariard ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
|
|
@ -14,7 +14,6 @@
|
|||
|
||||
int pset_if(t_process *p, t_btree *ast)
|
||||
{
|
||||
p->data.d_if.condition = btree_map(ast->left, &node_copy);
|
||||
p->data.d_if.content = btree_map(ast->right, &node_copy);
|
||||
p->type = PROCESS_IF;
|
||||
return (0);
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
/* By: ariard <ariard@student.42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2017/02/15 20:49:15 by ariard #+# #+# */
|
||||
/* Updated: 2017/03/15 01:35:15 by ariard ### ########.fr */
|
||||
/* Updated: 2017/03/15 02:10:08 by ariard ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
|
|
@ -15,8 +15,6 @@
|
|||
t_distrostree g_distrostree[] =
|
||||
{
|
||||
{&superflous_token, &add_null},
|
||||
{&isdir_sep, &add_redir_type},
|
||||
{&isdir_word, &add_redir_word},
|
||||
{&isloop, &add_loop_cmd},
|
||||
{&iscondition_branch, &add_branch},
|
||||
{&iscondition, &add_condition_cmd},
|
||||
|
|
@ -27,6 +25,8 @@ t_distrostree g_distrostree[] =
|
|||
{&isfunc, &add_func_cmd},
|
||||
{&isionumber, &add_ionumber},
|
||||
{&isbang, &add_bang},
|
||||
{&isdir_sep, &add_redir_type},
|
||||
{&isdir_word, &add_redir_word},
|
||||
{&isnull, &add_null},
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
/* By: ariard <ariard@student.42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2017/02/17 22:17:14 by ariard #+# #+# */
|
||||
/* Updated: 2017/03/15 01:45:34 by ariard ### ########.fr */
|
||||
/* Updated: 2017/03/15 01:59:52 by ariard ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
|
|
@ -25,8 +25,8 @@ int isloop(t_btree **ast, t_list **lst)
|
|||
if (node->type == TK_FOR && (token->type == TK_NEWLINE
|
||||
|| token->type == TK_SEMI) && node->pattern == 0)
|
||||
return (1);
|
||||
if (node->type == TK_FOR && (token->type == TK_WORD || token->type == TK_NAME)
|
||||
&& node->pattern == 0)
|
||||
if (node->type == TK_FOR && (token->type == TK_WORD
|
||||
|| token->type == TK_NAME) && node->pattern == 0)
|
||||
return (0);
|
||||
if ((node->type == TK_NEWLINE || node->type == TK_SEMI
|
||||
|| node->type == TK_AMP || node->type == TK_PIPE)
|
||||
|
|
@ -39,23 +39,6 @@ int isloop(t_btree **ast, t_list **lst)
|
|||
return (0);
|
||||
}
|
||||
|
||||
int isloop_condition(t_btree **ast, t_list **lst)
|
||||
{
|
||||
t_astnode *node;
|
||||
t_token *token;
|
||||
|
||||
node = NULL;
|
||||
token = (*lst)->content;
|
||||
if (*ast)
|
||||
{
|
||||
node = (*ast)->item;
|
||||
if (node->type == TK_FOR && (token->type == TK_WORD
|
||||
|| token->type == TK_NAME) && node->pattern == 0)
|
||||
return (1);
|
||||
}
|
||||
return (0);
|
||||
}
|
||||
|
||||
int add_loop_cmd(t_btree **ast, t_list **lst)
|
||||
{
|
||||
t_token *token;
|
||||
|
|
@ -101,15 +84,3 @@ int add_loop_sep(t_btree **ast, t_list **lst)
|
|||
return (add_sep(&(*ast)->right, lst));
|
||||
return (0);
|
||||
}
|
||||
|
||||
int add_loop_condition(t_btree **ast, t_list **lst)
|
||||
{
|
||||
t_astnode *node;
|
||||
t_token *token;
|
||||
|
||||
token = (*lst)->content;
|
||||
node = (*ast)->item;
|
||||
ft_ld_pushback(&node->data.cmd.wordlist,
|
||||
gen_tab(token->data, token->esc, token->esc2, 1));
|
||||
return (0);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
/* By: ariard <ariard@student.42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2017/02/17 16:39:05 by ariard #+# #+# */
|
||||
/* Updated: 2017/03/13 22:39:30 by jhalford ### ########.fr */
|
||||
/* Updated: 2017/03/15 02:09:54 by ariard ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue