aboutsummaryrefslogtreecommitdiff
path: root/src/lexer
diff options
context:
space:
mode:
Diffstat (limited to 'src/lexer')
-rw-r--r--src/lexer/lexer.c20
-rw-r--r--src/lexer/token.c5
-rw-r--r--src/lexer/trim.c21
3 files changed, 23 insertions, 23 deletions
diff --git a/src/lexer/lexer.c b/src/lexer/lexer.c
index dd34654..8ee7048 100644
--- a/src/lexer/lexer.c
+++ b/src/lexer/lexer.c
@@ -69,25 +69,6 @@ int check_input_out(char *input)
return(0);
}
-/* t_token *lexer_lst_token_str(char *input, int i, int j) */
-/* { */
-/* t_token *lst_token; */
-/* */
-/* if (!(lst_token = malloc(sizeof(t_token) * 1))) */
-/* return (NULL); */
-/* lst_token->tag = 0; */
-/* lst_token->content = NULL; */
-/* if (!(lst_token->content = malloc(sizeof(char) * j + 1))) */
-/* return(0); */
-/* if (!(ft_strlcpy(lst_token->content, &input[i], j + 1))) */
-/* { */
-/* free(lst_token); */
-/* return(0); */
-/* } */
-/* */
-/* return (lst_token); */
-/* } */
-
enum e_token_tag token_verif_stick(t_token *lst_token)
{
int i;
@@ -151,7 +132,6 @@ static t_ftlst *create_token_list(char *input, t_ftlst **lst)
{
j = 0;
j += check_input(&input[i]);
- /* lst_token = lexer_lst_token_str(input,i,j); */
lst_token = token_new_until(0, input + i, j);
lst_token = push_token_enum(lst_token);
new = ft_lstnew(lst_token);
diff --git a/src/lexer/token.c b/src/lexer/token.c
index 5465b6b..f7c1691 100644
--- a/src/lexer/token.c
+++ b/src/lexer/token.c
@@ -3,10 +3,10 @@
/* ::: :::::::: */
/* token.c :+: :+: :+: */
/* +:+ +:+ +:+ */
-/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
+/* By: charles <charles@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/06/09 13:38:08 by charles #+# #+# */
-/* Updated: 2020/06/23 08:55:32 by charles ### ########.fr */
+/* Updated: 2020/07/13 09:58:18 by nahaddac ### ########.fr */
/* */
/* ************************************************************************** */
@@ -16,6 +16,7 @@ t_token *token_new(enum e_token_tag tag, char *content)
{
size_t len;
+ len = 0;
if (content != NULL)
len = ft_strlen(content);
return (token_new_until(tag, content, len));
diff --git a/src/lexer/trim.c b/src/lexer/trim.c
index 6c435d5..f47aa6d 100644
--- a/src/lexer/trim.c
+++ b/src/lexer/trim.c
@@ -1,6 +1,25 @@
#include "lexer.h"
+t_ftlst *stick_parent(t_ftlst *lst)
+{
+ t_ftlst *first;
+ t_token *tk;
+
+ first = lst;
+ while (lst != NULL)
+ {
+ tk = lst->data;
+ if (tk->tag & TAG_PARENT_OPEN || tk->tag & TAG_PARENT_CLOSE)
+ {
+ if (ft_strlen(tk->content) >= 2)
+ tk->tag = tk->tag | TAG_STICK;
+ }
+ lst = lst->next;
+ }
+ return (first);
+}
+
char *del_space(t_token *tk)
{
int i;
@@ -64,5 +83,5 @@ t_ftlst *lexe_trim_out(t_ftlst *lst)
}
lst = lst->next;
}
- return (first);
+ return (stick_parent(first));
}