aboutsummaryrefslogtreecommitdiff
path: root/include/lexer.h
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2020-06-13 12:01:52 +0200
committerCharles <sircharlesaze@gmail.com>2020-06-13 12:01:52 +0200
commitd93d65f4c73332e2b3ac9af368f996d654ece06c (patch)
tree1c32b59fdfec26f65ff09a138a253a5acc82db3e /include/lexer.h
parentf08325f76ba4aac15dc3125b7779045956863a4b (diff)
parent72ec3b700e8e3142eb9e79098a357f01a6085589 (diff)
downloadminishell-d93d65f4c73332e2b3ac9af368f996d654ece06c.tar.gz
minishell-d93d65f4c73332e2b3ac9af368f996d654ece06c.tar.bz2
minishell-d93d65f4c73332e2b3ac9af368f996d654ece06c.zip
Merge remote-tracking branch 'origin/lexer'
Diffstat (limited to 'include/lexer.h')
-rw-r--r--include/lexer.h56
1 files changed, 35 insertions, 21 deletions
diff --git a/include/lexer.h b/include/lexer.h
index c56244f..90f9353 100644
--- a/include/lexer.h
+++ b/include/lexer.h
@@ -1,29 +1,43 @@
-#include "minishell.h"
+#ifndef LEXER_H
+# define LEXER_H
-// just to make iterpolation compile
-//////////////////////////////////////
-enum e_token_tag
+# include <stdlib.h>
+# include "libft_lst.h"
+# include "libft_str.h"
+# include "minishell.h"
+
+enum e_token_tag
{
- LTAG_STR = 1 << 0,
- LTAG_STR_SINGLE = 1 << 1,
- LTAG_STR_DOUBLE = 1 << 2,
- LTAG_STICK = 1 << 3,
+ LTAG_AND = 1 << 0,
+ LTAG_END = 1 << 1,
+ LTAG_OR = 1 << 2,
+ LTAG_PIPE = 1 << 3,
+ LTAG_REDIR_IN = 1 << 4,
+ LTAG_REDIR_OUT = 1 << 5,
+ LTAG_REDIR_APPEND = 1 << 6,
+ LTAG_PARENT_OPEN = 1 << 7,
+ LTAG_PARENT_CLOSE = 1 << 8,
+ LTAG_STR = 1 << 9,
+ LTAG_STR_DOUBLE = 1 << 10,
+ LTAG_STR_SINGLE = 1 << 11,
+ LTAG_STICK = 1 << 12,
};
typedef struct
{
- enum e_token_tag tag;
- char *content;
-} t_token;
+ enum e_token_tag tag;
+ char *content;
+} t_token;
+
+t_ftlst *lexer(char *input);
+enum e_token_tag ret_token(char *input, int i);
+enum e_token_tag ret_token_sep_redir_append(char *input, int i);
+
+int lexer_sep(char input);
+int lexer_verif_entre_cote(char *input, int i);
+int lexe_space(char *input);
-t_token *token_new(enum e_token_tag tag, char *content);
-void token_destroy(t_token *token);
-//////////////////////////////////////
+t_token *token_new(enum e_token_tag tag, char *content);
+void token_destroy(t_token *token);
-char **lexer(char *input);
-int lexer_sep(char input);
-int lexer_verif_entre_cote(char *input, int i);
-int lexer_verif_entre_cote22(char *input, int i);
-int lexer_count_nb_element(char *input);
-int lexer_count_len_element(char *input, int i);
-char **lexer_malloc_len_elem(char *input, int i, char **out);
+#endif