This commit is contained in:
gwojda 2017-03-29 16:24:55 +02:00
commit 7147c5956f
5 changed files with 2929 additions and 14 deletions

File diff suppressed because one or more lines are too long

View file

@ -1,3 +1,4 @@
echo "echo hello" >> sample/again.sh
echo hello
echo hello
echo hello

View file

@ -6,7 +6,7 @@
/* By: ariard <ariard@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2017/03/11 15:58:38 by ariard #+# #+# */
/* Updated: 2017/03/29 15:19:50 by ariard ### ########.fr */
/* Updated: 2017/03/29 16:19:14 by ariard ### ########.fr */
/* */
/* ************************************************************************** */
@ -347,6 +347,7 @@ static t_aggrematch g_aggrematch[] =
{AND_OR, CASE_LIST_NS, CASE_LIST_NS, 0},
{AND_OR, COMPLETE_CONDITION, COMPOUND_LIST, 0},
{AND_OR, CONDITION, COMPOUND_LIST, 0},
{AND_OR, COMPLETE_CONDITION, COMPOUND_LIST, 0},
{AND_OR, SEPARATOR_OP, LIST, LIST},
{AND_OR, NEWLINE_LIST, LIST, 0},
{AND_OR, LINEBREAK, LIST, 0},

View file

@ -6,7 +6,7 @@
/* By: ariard <ariard@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2017/03/11 16:11:21 by ariard #+# #+# */
/* Updated: 2017/03/29 15:52:29 by ariard ### ########.fr */
/* Updated: 2017/03/29 16:19:59 by ariard ### ########.fr */
/* */
/* ************************************************************************** */
@ -1249,6 +1249,7 @@ static t_stackmatch g_stackmatch[] =
{AND_OR, TK_WHILE},
{AND_OR, TK_UNTIL},
{AND_OR, TK_IF},
{AND_OR, TK_THEN},
{AND_OR, TK_ELIF},
{AND_OR, TK_ELSE},
{AND_OR, CMD_SUPERIOR},
@ -1257,6 +1258,7 @@ static t_stackmatch g_stackmatch[] =
{AND_OR, PIPE_CLOSE_SEQUENCE},
{AND_OR, CASE_LIST_NS},
{AND_OR, CONDITION},
{AND_OR, COMPLETE_CONDITION},
{AND_OR, LINEBREAK},
{AND_OR, TK_BANG},
{AND_OR, TK_PAREN_OPEN},
@ -1283,6 +1285,7 @@ int eval_sym(t_list **stack, t_sym new_sym)
return (1);
head = (*stack)->content;
i = 0;
DG("eval %s && %s", read_state(*head), read_state(new_sym));
while (g_stackmatch[i].top)
{
if (new_sym == g_stackmatch[i].top && *head == g_stackmatch[i].under)

View file

@ -6,7 +6,7 @@
/* By: ariard <ariard@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2017/02/09 17:58:34 by ariard #+# #+# */
/* Updated: 2017/03/29 14:31:14 by ariard ### ########.fr */
/* Updated: 2017/03/29 16:20:29 by ariard ### ########.fr */
/* */
/* ************************************************************************** */
@ -129,6 +129,8 @@ static t_prodmatch g_prodmatch[] =
{TK_AMP, PIPE_CLOSE_SEQUENCE, SEPARATOR_OP},
{TK_AND_IF, ALL, AND_OR},
{TK_OR_IF, ALL, AND_OR},
{TK_AND_IF, COMPLETE_CONDITION, OTHER},
{TK_OR_IF, COMPLETE_CONDITION, OTHER},
{0, 0, 0},
};
@ -144,6 +146,7 @@ int produce_sym(t_list **stack, t_sym *new_sym, t_list **lst)
head = (*stack)->content;
i = 0;
*new_sym = 0;
DG();
while (g_prodmatch[i].new_sym)
{
if (token->type == g_prodmatch[i].token