aboutsummaryrefslogtreecommitdiff
path: root/test_mini/lexer_utils.c
diff options
context:
space:
mode:
Diffstat (limited to 'test_mini/lexer_utils.c')
-rw-r--r--test_mini/lexer_utils.c81
1 files changed, 81 insertions, 0 deletions
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);
+}