From 579a26f5593039ffbbd1a81e45ecf0ef8797cb5d Mon Sep 17 00:00:00 2001 From: nass1pro Date: Tue, 9 Jun 2020 19:48:34 +0200 Subject: add lexer add single quote --- test_mini/lexer_utils.c | 81 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 test_mini/lexer_utils.c (limited to 'test_mini/lexer_utils.c') diff --git a/test_mini/lexer_utils.c b/test_mini/lexer_utils.c new file mode 100644 index 0000000..35050b3 --- /dev/null +++ b/test_mini/lexer_utils.c @@ -0,0 +1,81 @@ + +#include "lexer.h" + + +enum e_token_tag ret_token_sep_redir_append(char *input, int i) +{ + if (input[i + 1] == '>') + return(LTAG_REDIR_APPEND); + return (LTAG_REDIR_OUT); + +} + +enum e_token_tag ret_token_sep(char *input, int i) +{ + if (input[i] == ';') + return(LTAG_AND); + if (input[i] == '&') + return(LTAG_END); + if (input[i] == '|' && input[i + 1] == '|') + return(LTAG_OR); + if(input[i] == '|') + return(LTAG_PIPE); + if (input[i] == '>') + return(ret_token_sep_redir_append(input,i)); + if (input[i] == '<') + return(LTAG_REDIR_IN); + + return(0); + +} + + +int lexer_sep(char input) +{ + char *sep; + int i; + + i = 0; + sep = ";&|><()"; + while(sep[i] != '\0') + { + if(sep[i] == input) + return(1); + i++; + } + return (0); +} + +int lexe_space(char *input) +{ + int i; + + i=0; + while(input[i] == ' ') + i++; + return(i); +} + +int simple_cote(char *input, int i) +{ + int cote; + + cote = 39; + if (cote == input[i]) + return (1); + return(0); +} + + +int lexer_verif_entre_cote(char *input, int i) +{ + while((input[++i] != '"' || simple_cote(input,i)) && (input[i] != '\0')) + ; + //i++; + //if(input[i] == '"' || simple_cote(input,i)) + // return(lexer_verif_entre_cote(input, i)); + //if (input[i] == ' ') + // while(input[i] == ' ') + // i++; + return(i); +} -- cgit