my_regex.h
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:2k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. #ifndef _REGEX_H_
  2. #define _REGEX_H_ /* never again */
  3. /* ========= begin header generated by ./mkh ========= */
  4. #ifdef __cplusplus
  5. extern "C" {
  6. #endif
  7. #include "m_ctype.h"
  8. /* === regex2.h === */
  9. #ifdef _WIN64
  10. typedef __int64 regoff_t;
  11. #else
  12. typedef off_t regoff_t;
  13. #endif
  14. struct re_guts; /* none of your business :-) */
  15. typedef struct {
  16. int re_magic;
  17. size_t re_nsub; /* number of parenthesized subexpressions */
  18. const char *re_endp; /* end pointer for REG_PEND */
  19. struct re_guts *re_g; /* none of your business :-) */
  20. CHARSET_INFO *charset; /* For ctype things */
  21. } my_regex_t;
  22. typedef struct {
  23. regoff_t rm_so; /* start of match */
  24. regoff_t rm_eo; /* end of match */
  25. } my_regmatch_t;
  26. /* === regcomp.c === */
  27. extern int my_regcomp(my_regex_t *, const char *, int, CHARSET_INFO *charset);
  28. #define REG_BASIC 0000
  29. #define REG_EXTENDED 0001
  30. #define REG_ICASE 0002
  31. #define REG_NOSUB 0004
  32. #define REG_NEWLINE 0010
  33. #define REG_NOSPEC 0020
  34. #define REG_PEND 0040
  35. #define REG_DUMP 0200
  36. /* === regerror.c === */
  37. #define REG_NOMATCH  1
  38. #define REG_BADPAT  2
  39. #define REG_ECOLLATE  3
  40. #define REG_ECTYPE  4
  41. #define REG_EESCAPE  5
  42. #define REG_ESUBREG  6
  43. #define REG_EBRACK  7
  44. #define REG_EPAREN  8
  45. #define REG_EBRACE  9
  46. #define REG_BADBR 10
  47. #define REG_ERANGE 11
  48. #define REG_ESPACE 12
  49. #define REG_BADRPT 13
  50. #define REG_EMPTY 14
  51. #define REG_ASSERT 15
  52. #define REG_INVARG 16
  53. #define REG_ATOI 255 /* convert name to number (!) */
  54. #define REG_ITOA 0400 /* convert number to name (!) */
  55. extern size_t my_regerror(int, const my_regex_t *, char *, size_t);
  56. /* === regexec.c === */
  57. extern int my_regexec(const my_regex_t *, const char *, size_t, my_regmatch_t [], int);
  58. #define REG_NOTBOL 00001
  59. #define REG_NOTEOL 00002
  60. #define REG_STARTEND 00004
  61. #define REG_TRACE 00400 /* tracing of execution */
  62. #define REG_LARGE 01000 /* force large representation */
  63. #define REG_BACKR 02000 /* force use of backref code */
  64. /* === regfree.c === */
  65. extern void my_regfree(my_regex_t *);
  66. /* === reginit.c === */
  67. extern void my_regex_init(CHARSET_INFO *cs); /* Should be called for multithread progs */
  68. extern void my_regex_end(void); /* If one wants a clean end */
  69. #ifdef __cplusplus
  70. }
  71. #endif
  72. /* ========= end header generated by ./mkh ========= */
  73. #endif