expreg.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /*
  2. * File: expreg.h
  3. * Author: Arthur Brandao
  4. *
  5. * Created on 21 décembre 2018
  6. */
  7. #ifndef EXPREG_H
  8. #define EXPREG_H
  9. /* --- Include --- */
  10. #include <regex.h>
  11. #include "constante.h"
  12. /* --- Structure --- */
  13. typedef struct{
  14. char* str; //La chaine à vérifier
  15. int pos; //Position actuel dans la chaine à verifier
  16. regex_t regex;
  17. size_t nmatch;
  18. regmatch_t* pmatch;
  19. }expreg;
  20. /* --- Fonctions --- */
  21. /**
  22. * Initialise la structure de gestion du regex
  23. * @param expreg* La structure de l'expression reguliere
  24. * @param char* La chaine à analyser
  25. * @param char* Le regex
  26. * @return Reussite
  27. */
  28. boolean ini_expreg(expreg*, char*, char*);
  29. /**
  30. * Recupere la prochaine correspondance dans la chaine
  31. * @param expreg* La structure de l'expression reguliere
  32. * @param int* La position de debut de la correspondance
  33. * @param int* La postion de fin de la correspondance
  34. * @return La correspondance ou NULL si il n'y en à plus
  35. */
  36. char* get_match_expreg(expreg*, int*, int*);
  37. /**
  38. * Vide la structure de l'expression reguliere
  39. * @param expreg* La structure de l'expression reguliere
  40. */
  41. void clean_expreg(expreg*);
  42. #endif /* EXPREG_H */