aboutsummaryrefslogtreecommitdiff
path: root/src/parse
diff options
context:
space:
mode:
Diffstat (limited to 'src/parse')
-rwxr-xr-xsrc/parse/cmd_parse.c1
-rwxr-xr-xsrc/parse/parse.c29
2 files changed, 26 insertions, 4 deletions
diff --git a/src/parse/cmd_parse.c b/src/parse/cmd_parse.c
index 15a5054..25802c1 100755
--- a/src/parse/cmd_parse.c
+++ b/src/parse/cmd_parse.c
@@ -2,7 +2,6 @@
#include "parser.h"
-
int parse_cmd_str_true_false(enum e_token_tag tag)
{
if (tag & TAG_STR || tag & TAG_STR_DOUBLE || tag & TAG_STR_SINGLE)
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; */