diff options
| author | nass1pro <nass1pro@gmail.com> | 2020-06-12 10:12:03 +0200 |
|---|---|---|
| committer | nass1pro <nass1pro@gmail.com> | 2020-06-13 11:41:10 +0200 |
| commit | 3136f59540a8dd29e2f096be5a8943e2ddd28431 (patch) | |
| tree | a09705901c5a090f484845f157066f017c79a873 /test_mini | |
| parent | c4c60ea0f74fc593b0181e1fc8c71c27f0497180 (diff) | |
| download | minishell-3136f59540a8dd29e2f096be5a8943e2ddd28431.tar.gz minishell-3136f59540a8dd29e2f096be5a8943e2ddd28431.tar.bz2 minishell-3136f59540a8dd29e2f096be5a8943e2ddd28431.zip | |
Finking quote resolved
Diffstat (limited to 'test_mini')
| -rwxr-xr-x | test_mini/a.out | bin | 17828 -> 17828 bytes | |||
| -rw-r--r-- | test_mini/cat | 36 | ||||
| -rw-r--r-- | test_mini/lexer.c | 10 | ||||
| -rw-r--r-- | test_mini/lexer.h | 9 | ||||
| -rw-r--r-- | test_mini/lexer_utils.c | 16 | ||||
| -rw-r--r-- | test_mini/main.c | 10 |
6 files changed, 21 insertions, 60 deletions
diff --git a/test_mini/a.out b/test_mini/a.out Binary files differindex 9b7deeb..4047164 100755 --- a/test_mini/a.out +++ b/test_mini/a.out diff --git a/test_mini/cat b/test_mini/cat deleted file mode 100644 index 45dcc70..0000000 --- a/test_mini/cat +++ /dev/null @@ -1,36 +0,0 @@ -ARGV: -[0] ./a.out -[1] echo -[2] salutsalut -[3] parfait - -ENV: -[0] USER=nassimehaddacha -[1] PATH=/Users/nassimehaddacha/miniconda/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/nassimehaddacha/miniconda/bin:/Users/nassimehaddacha/miniconda3/condabin -[2] LOGNAME=nassimehaddacha -[3] SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.VYiVzHotCo/Listeners -[4] HOME=/Users/nassimehaddacha -[5] SHELL=/bin/zsh -[6] __CF_USER_TEXT_ENCODING=0x1F5:0x0:0x62 -[7] TMPDIR=/var/folders/3s/wv71r7ws2hj4d1ss15_3vg4w0000gn/T/ -[8] XPC_SERVICE_NAME=0 -[9] XPC_FLAGS=0x0 -ARGV: -[0] ./a.out -[1] echo -[2] salutsalut -[3] parfait - -ENV: -[0] USER=nassimehaddacha -[1] PATH=/Users/nassimehaddacha/miniconda/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/nassimehaddacha/miniconda/bin:/Users/nassimehaddacha/miniconda3/condabin -[2] LOGNAME=nassimehaddacha -[3] SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.VYiVzHotCo/Listeners -[4] HOME=/Users/nassimehaddacha -[5] SHELL=/bin/zsh -[6] __CF_USER_TEXT_ENCODING=0x1F5:0x0:0x62 -[7] TMPDIR=/var/folders/3s/wv71r7ws2hj4d1ss15_3vg4w0000gn/T/ -[8] XPC_SERVICE_NAME=0 -[9] XPC_FLAGS=0x0 -echo4 -0 diff --git a/test_mini/lexer.c b/test_mini/lexer.c index 7e4fad2..35fd384 100644 --- a/test_mini/lexer.c +++ b/test_mini/lexer.c @@ -1,7 +1,5 @@ #include "lexer.h" -#include "parse/parse.h" - int len_is_not_sep(char *input) { @@ -10,6 +8,9 @@ int len_is_not_sep(char *input) i = -1; while(input[++i]) { + if (input[i] == '\\') + i++; + if (input[i] == '\\' && input[i + 1] == ' ') i += 2; if (lexer_sep(input[i])) @@ -41,6 +42,8 @@ int check_input(char *input) int i; i = 0; + if (input[i] == '\\') + i++; if (lexer_sep(input[i])) { while(input[i] == input[i + 1]) @@ -60,7 +63,6 @@ int check_input(char *input) } - int check_input_out(char *input) { int i; @@ -73,9 +75,7 @@ int check_input_out(char *input) j = 0; j += len_is_not_sep(&input[i]); if (j != 0) - { return(j); - } i += j; j = check_input(&input[i]); return(j); diff --git a/test_mini/lexer.h b/test_mini/lexer.h index 6ae832c..f1098c8 100644 --- a/test_mini/lexer.h +++ b/test_mini/lexer.h @@ -19,6 +19,7 @@ enum e_token_tag LTAG_STR = 1 << 9, LTAG_STR_DOUBLE = 1 << 10, LTAG_STR_SINGLE = 1 << 11, + LTAG_STICK = 1 << 12, }; typedef struct s_token @@ -29,9 +30,9 @@ typedef struct s_token } t_token; t_ftlst *lexer(char *input); -enum e_token_tag ret_token_sep(char *input, int i); +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); +int lexer_sep(char input); +int lexer_verif_entre_cote(char *input, int i); +int lexe_space(char *input); diff --git a/test_mini/lexer_utils.c b/test_mini/lexer_utils.c index d7fe8f4..19a6923 100644 --- a/test_mini/lexer_utils.c +++ b/test_mini/lexer_utils.c @@ -10,7 +10,7 @@ enum e_token_tag ret_token_sep_redir_append(char *input, int i) } -enum e_token_tag ret_token_sep(char *input, int i) +enum e_token_tag ret_token(char *input, int i) { if (input[i] == ';') return(LTAG_AND); @@ -24,7 +24,10 @@ enum e_token_tag ret_token_sep(char *input, int i) return(ret_token_sep_redir_append(input,i)); if (input[i] == '<') return(LTAG_REDIR_IN); - + if (input[i] == '(') + return(LTAG_PARENT_OPEN); + if (input[i] == ')') + return(LTAG_PARENT_CLOSE); return(0); } @@ -66,23 +69,20 @@ static int lex_verif_simple_cote(char *input, int i) break; } if (input[i + 1] == ' ') - while(input[i] == ' ') + while(input[i + 1] == ' ') i++; return(i + 1); } + int lexer_verif_entre_cote(char *input, int 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] == ' ') + while(input[i + 1] == ' ') i++; return(i + 1); } diff --git a/test_mini/main.c b/test_mini/main.c index a0006d5..fe17a10 100644 --- a/test_mini/main.c +++ b/test_mini/main.c @@ -1,20 +1,16 @@ #include "lexer.h" -#include "parse/parse.h" int main(int argc, char **argv) { int i = 0; char *input; - if (!(input = malloc(sizeof(char) * ft_strlen(argv[1]) + 2))) + if (!(input = malloc(sizeof(char) * ft_strlen(argv[1]) + 1))) return(0); ft_strlcpy(input, argv[1], ft_strlen(argv[1]) + 1); - i = ft_strlen(input); - input[i + 1] = '\0'; - printf("%s\n",argv[1] ); - printf("%s\n",input ); - lexer(input); + + lexer(input); free(input); exit(0); return (0); |
