diff options
Diffstat (limited to 'include/lexer.h')
| -rw-r--r-- | include/lexer.h | 56 |
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 |
