aboutsummaryrefslogtreecommitdiff
path: root/include/lexer.h
diff options
context:
space:
mode:
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