From c4c60ea0f74fc593b0181e1fc8c71c27f0497180 Mon Sep 17 00:00:00 2001 From: nass1pro Date: Wed, 10 Jun 2020 18:02:58 +0200 Subject: Fixing quote detection Create token list --- test_mini/lexer_utils.c | 43 +++++++++++++++++++++++++------------------ 1 file changed, 25 insertions(+), 18 deletions(-) (limited to 'test_mini/lexer_utils.c') diff --git a/test_mini/lexer_utils.c b/test_mini/lexer_utils.c index 35050b3..d7fe8f4 100644 --- a/test_mini/lexer_utils.c +++ b/test_mini/lexer_utils.c @@ -56,26 +56,33 @@ int lexe_space(char *input) return(i); } -int simple_cote(char *input, int i) +static int lex_verif_simple_cote(char *input, int i) { - int cote; - - cote = 39; - if (cote == input[i]) - return (1); - return(0); + i++; + while(input[i] != '\0') + { + ++i; + if(input[i] == '\'') + break; + } + if (input[i + 1] == ' ') + while(input[i] == ' ') + i++; + return(i + 1); } - - 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); + if(input[i] == '\'') + return(lex_verif_simple_cote(input, i)); + i++; + while(input[i] != '"' && (input[i] != '\0')) + { + ++i; + if (input[i] == '\'') + break; + } + if (input[i + 1] == ' ') + while(input[i] == ' ') + i++; + return(i + 1); } -- cgit