diff options
| author | Charles <sircharlesaze@gmail.com> | 2020-06-17 23:01:07 +0200 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2020-06-17 23:01:07 +0200 |
| commit | f4a8ff23a590dad1b43a2e92df5c5c6b8951976a (patch) | |
| tree | ddf8a3600fda53eeb1700f457b99666aef5db703 /src/parse/parse.c | |
| parent | 9a11d78abf7dc8fb8c8f3430538e80622a7854d3 (diff) | |
| download | minishell-f4a8ff23a590dad1b43a2e92df5c5c6b8951976a.tar.gz minishell-f4a8ff23a590dad1b43a2e92df5c5c6b8951976a.tar.bz2 minishell-f4a8ff23a590dad1b43a2e92df5c5c6b8951976a.zip | |
Added parse_expr draft
Diffstat (limited to 'src/parse/parse.c')
| -rwxr-xr-x | src/parse/parse.c | 29 |
1 files changed, 26 insertions, 3 deletions
diff --git a/src/parse/parse.c b/src/parse/parse.c index 6a80e37..7217fdb 100755 --- a/src/parse/parse.c +++ b/src/parse/parse.c @@ -6,7 +6,7 @@ /* By: nahaddac <nahaddac@student.42.fr> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/06/17 18:09:04 by nahaddac #+# #+# */ -/* Updated: 2020/06/17 20:39:25 by charles ### ########.fr */ +/* Updated: 2020/06/17 23:00:29 by charles ### ########.fr */ /* */ /* ************************************************************************** */ @@ -88,7 +88,7 @@ t_ret *parse_op(t_ftlst *input) left_ret = parse_cmd(input); input = left_ret->rest; - if (input == NULL)//((t_token*)input->data)->tag & TAG_IS_SEP) + if (input == NULL) //((t_token*)input->data)->tag & TAG_IS_SEP) return ret_wrap_ast(left_ret->ast, input); sep_tag = ((t_token*)input->data)->tag; @@ -103,6 +103,29 @@ t_ret *parse_op(t_ftlst *input) return ret_wrap_ast(ast, right_ret->rest); } +t_ret *parse_expr(t_ftlst *input) +{ + t_ret *tmp; + enum e_token_tag tag; + + tag = input->data->tag; + if (tag == TAG_PARENT_OPEN) + { + tmp = parse_expr(input->next); + input = tmp->rest; + tag = input->data->tag; + if (tag != TAG_PARENT_CLOSE) + return (NULL); + input = input->next; + tmp->rest = input; + return tmp; + } + tmp = parse_op(input); + if (tmp->unexpected != NULL) + return tmp; + return parse_cmd(input); +} + t_ret *parse(t_ftlst *input) { return parse_op(input); @@ -143,7 +166,7 @@ t_ret *parse(t_ftlst *input) /* } */ /* return ast; */ /* } */ -/* */ + /* t_ret *parse(t_ftlst *input) */ /* { */ /* t_ret *ret; */ |
