diff --git a/srcs/parsing/syntax/syntax.c b/srcs/parsing/syntax/syntax.c index 1f0fdc9..15c7ba2 100644 --- a/srcs/parsing/syntax/syntax.c +++ b/srcs/parsing/syntax/syntax.c @@ -21,7 +21,11 @@ static int parenthesis_error(t_node *cpy) if (!ft_strncmp(cpy->val, ")", 1) && cpy->next && !ft_strncmp(cpy->next->val, "(", 1)) return (syntax_err_mess(cpy->next->val, 0)); - if (is_aop_operator(cpy) && !ft_strncmp(cpy->next->val, ")", 1)) + if (is_aop_operator(cpy) && cpy->next + && !ft_strncmp(cpy->next->val, ")", 1)) + return (syntax_err_mess(cpy->next->val, 0)); + if (cpy->next && !ft_strncmp(cpy->next->val, "(", 1) + && !is_aop_operator(cpy)) return (syntax_err_mess(cpy->next->val, 0)); return (0); } diff --git a/srcs/parsing/syntax/syntax_utils2.c b/srcs/parsing/syntax/syntax_utils2.c index 9a5e220..fa9eceb 100644 --- a/srcs/parsing/syntax/syntax_utils2.c +++ b/srcs/parsing/syntax/syntax_utils2.c @@ -42,9 +42,9 @@ int check_unclosed(char *c, t_node *node) count = 0; while (cpy) { - if (!ft_strncmp(&c[0], cpy->val, 1)) + if (!ft_strncmp(&c[0], cpy->val, 1) && count >= 0) count++; - if (!ft_strncmp(&c[1], cpy->val, 1) && count != 0) + if (!ft_strncmp(&c[1], cpy->val, 1)) count--; cpy = cpy->next; }