aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/lexer.h2
-rw-r--r--minishell.tar.gzbin0 -> 1517746 bytes
-rw-r--r--src/lexer/lexer.c20
-rw-r--r--src/lexer/token.c5
-rw-r--r--src/lexer/trim.c21
-rw-r--r--src/main.c67
6 files changed, 58 insertions, 57 deletions
diff --git a/include/lexer.h b/include/lexer.h
index b5df79f..827eaca 100644
--- a/include/lexer.h
+++ b/include/lexer.h
@@ -6,7 +6,7 @@
/* By: nahaddac <nahaddac@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/06/19 10:51:26 by nahaddac #+# #+# */
-/* Updated: 2020/06/23 08:55:53 by charles ### ########.fr */
+/* Updated: 2020/07/13 10:08:17 by nahaddac ### ########.fr */
/* */
/* ************************************************************************** */
diff --git a/minishell.tar.gz b/minishell.tar.gz
new file mode 100644
index 0000000..5b45bdd
--- /dev/null
+++ b/minishell.tar.gz
Binary files differ
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));
}
diff --git a/src/main.c b/src/main.c
index b375c16..ee57e0b 100644
--- a/src/main.c
+++ b/src/main.c
@@ -6,7 +6,7 @@
/* By: cacharle <cacharle@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/02/28 11:45:44 by cacharle #+# #+# */
-/* Updated: 2020/06/19 19:12:42 by charles ### ########.fr */
+/* Updated: 2020/07/13 09:58:46 by nahaddac ### ########.fr */
/* */
/* ************************************************************************** */
@@ -42,10 +42,10 @@ int main(int argc, char **argv, char **envp)
if (lex_out == NULL)
return (1);
- /* ft_lstiter(lex_out, token_debug); */
- t_ret *parser_out = parse(lex_out);
+ ft_lstiter(lex_out, token_debug);
+ //t_ret *parser_out = parse(lex_out);
- /* t_ret *parser_out = parse(lex_out); */
+ //t_ret *parser_out = parse(lex_out);
/* if (parser_out == NULL || parser_out->unexpected != NULL) */
/* return (1); */
@@ -59,37 +59,38 @@ int main(int argc, char **argv, char **envp)
/* printf("===redirs===\n"); */
/* ft_lstiter(parser_out->ast->redirs, token_debug); */
- int fds[2] = {MS_NO_FD, MS_NO_FD};
- int eval_out = eval(fds, env, path, parser_out->ast);
- (void)eval_out;
+ //int fds[2] = {MS_NO_FD, MS_NO_FD};
+ //int eval_out = eval(fds, env, path, parser_out->ast);
+ //(void)eval_out;
}
- else
- {
- int ret;
- char *line;
-
- printf("> ");
- fflush(stdout);
- while ((ret = ft_getline(STDOUT_FILENO, &line)) == FTGL_OK)
- {
- t_ftlst *lex_out = lexer(line);
- if (lex_out == NULL)
- return (1);
-
- t_ret *parser_out = parse(lex_out);
-
- int fds[2] = {MS_NO_FD, MS_NO_FD};
- int eval_out = eval(fds, env, path, parser_out->ast);
- (void)eval_out;
- printf("> ");
- fflush(stdout);
- }
- }
-
- ft_htdestroy(path, free);
- ft_vecdestroy(env, free);
- return (0);
}
+// else
+// {
+// int ret;
+// char *line;
+//
+// printf("> ");
+// fflush(stdout);
+// while ((ret = ft_getline(STDOUT_FILENO, &line)) == FTGL_OK)
+// {
+// t_ftlst *lex_out = lexer(line);
+// if (lex_out == NULL)
+// return (1);
+//
+// t_ret *parser_out = parse(lex_out);
+//
+// int fds[2] = {MS_NO_FD, MS_NO_FD};
+// int eval_out = eval(fds, env, path, parser_out->ast);
+// (void)eval_out;
+// printf("> ");
+// fflush(stdout);
+// }
+// }
+//
+// ft_htdestroy(path, free);
+// ft_vecdestroy(env, free);
+// return (0);
+// }