merge
This commit is contained in:
commit
7147c5956f
5 changed files with 2929 additions and 14 deletions
File diff suppressed because one or more lines are too long
|
|
@ -1,3 +1,4 @@
|
||||||
echo "echo hello" >> sample/again.sh
|
echo "echo hello" >> sample/again.sh
|
||||||
echo hello
|
echo hello
|
||||||
echo hello
|
echo hello
|
||||||
|
echo hello
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
/* By: ariard <ariard@student.42.fr> +#+ +:+ +#+ */
|
/* By: ariard <ariard@student.42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2017/03/11 15:58:38 by ariard #+# #+# */
|
/* 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, CASE_LIST_NS, CASE_LIST_NS, 0},
|
||||||
{AND_OR, COMPLETE_CONDITION, COMPOUND_LIST, 0},
|
{AND_OR, COMPLETE_CONDITION, COMPOUND_LIST, 0},
|
||||||
{AND_OR, 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, SEPARATOR_OP, LIST, LIST},
|
||||||
{AND_OR, NEWLINE_LIST, LIST, 0},
|
{AND_OR, NEWLINE_LIST, LIST, 0},
|
||||||
{AND_OR, LINEBREAK, LIST, 0},
|
{AND_OR, LINEBREAK, LIST, 0},
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
/* By: ariard <ariard@student.42.fr> +#+ +:+ +#+ */
|
/* By: ariard <ariard@student.42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2017/03/11 16:11:21 by ariard #+# #+# */
|
/* 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_WHILE},
|
||||||
{AND_OR, TK_UNTIL},
|
{AND_OR, TK_UNTIL},
|
||||||
{AND_OR, TK_IF},
|
{AND_OR, TK_IF},
|
||||||
|
{AND_OR, TK_THEN},
|
||||||
{AND_OR, TK_ELIF},
|
{AND_OR, TK_ELIF},
|
||||||
{AND_OR, TK_ELSE},
|
{AND_OR, TK_ELSE},
|
||||||
{AND_OR, CMD_SUPERIOR},
|
{AND_OR, CMD_SUPERIOR},
|
||||||
|
|
@ -1257,6 +1258,7 @@ static t_stackmatch g_stackmatch[] =
|
||||||
{AND_OR, PIPE_CLOSE_SEQUENCE},
|
{AND_OR, PIPE_CLOSE_SEQUENCE},
|
||||||
{AND_OR, CASE_LIST_NS},
|
{AND_OR, CASE_LIST_NS},
|
||||||
{AND_OR, CONDITION},
|
{AND_OR, CONDITION},
|
||||||
|
{AND_OR, COMPLETE_CONDITION},
|
||||||
{AND_OR, LINEBREAK},
|
{AND_OR, LINEBREAK},
|
||||||
{AND_OR, TK_BANG},
|
{AND_OR, TK_BANG},
|
||||||
{AND_OR, TK_PAREN_OPEN},
|
{AND_OR, TK_PAREN_OPEN},
|
||||||
|
|
@ -1283,6 +1285,7 @@ int eval_sym(t_list **stack, t_sym new_sym)
|
||||||
return (1);
|
return (1);
|
||||||
head = (*stack)->content;
|
head = (*stack)->content;
|
||||||
i = 0;
|
i = 0;
|
||||||
|
DG("eval %s && %s", read_state(*head), read_state(new_sym));
|
||||||
while (g_stackmatch[i].top)
|
while (g_stackmatch[i].top)
|
||||||
{
|
{
|
||||||
if (new_sym == g_stackmatch[i].top && *head == g_stackmatch[i].under)
|
if (new_sym == g_stackmatch[i].top && *head == g_stackmatch[i].under)
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
/* By: ariard <ariard@student.42.fr> +#+ +:+ +#+ */
|
/* By: ariard <ariard@student.42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2017/02/09 17:58:34 by ariard #+# #+# */
|
/* 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_AMP, PIPE_CLOSE_SEQUENCE, SEPARATOR_OP},
|
||||||
{TK_AND_IF, ALL, AND_OR},
|
{TK_AND_IF, ALL, AND_OR},
|
||||||
{TK_OR_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},
|
{0, 0, 0},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -144,6 +146,7 @@ int produce_sym(t_list **stack, t_sym *new_sym, t_list **lst)
|
||||||
head = (*stack)->content;
|
head = (*stack)->content;
|
||||||
i = 0;
|
i = 0;
|
||||||
*new_sym = 0;
|
*new_sym = 0;
|
||||||
|
DG();
|
||||||
while (g_prodmatch[i].new_sym)
|
while (g_prodmatch[i].new_sym)
|
||||||
{
|
{
|
||||||
if (token->type == g_prodmatch[i].token
|
if (token->type == g_prodmatch[i].token
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue