regex.h
上传用户:tsgydb
上传日期:2007-04-14
资源大小:10674k
文件大小: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. /* === regex2.h === */
  8. #ifdef _WIN64
  9. typedef __int64 regoff_t;
  10. #else
  11. typedef off_t regoff_t;
  12. #endif
  13. struct re_guts; /* none of your business :-) */
  14. typedef struct {
  15. int re_magic;
  16. size_t re_nsub; /* number of parenthesized subexpressions */
  17. const char *re_endp; /* end pointer for REG_PEND */
  18. struct re_guts *re_g; /* none of your business :-) */
  19. } regex_t;
  20. typedef struct {
  21. regoff_t rm_so; /* start of match */
  22. regoff_t rm_eo; /* end of match */
  23. } regmatch_t;
  24. /* === regcomp.c === */
  25. extern int regcomp(regex_t *, const char *, int);
  26. #define REG_BASIC 0000
  27. #define REG_EXTENDED 0001
  28. #define REG_ICASE 0002
  29. #define REG_NOSUB 0004
  30. #define REG_NEWLINE 0010
  31. #define REG_NOSPEC 0020
  32. #define REG_PEND 0040
  33. #define REG_DUMP 0200
  34. /* === regerror.c === */
  35. #define REG_NOMATCH  1
  36. #define REG_BADPAT  2
  37. #define REG_ECOLLATE  3
  38. #define REG_ECTYPE  4
  39. #define REG_EESCAPE  5
  40. #define REG_ESUBREG  6
  41. #define REG_EBRACK  7
  42. #define REG_EPAREN  8
  43. #define REG_EBRACE  9
  44. #define REG_BADBR 10
  45. #define REG_ERANGE 11
  46. #define REG_ESPACE 12
  47. #define REG_BADRPT 13
  48. #define REG_EMPTY 14
  49. #define REG_ASSERT 15
  50. #define REG_INVARG 16
  51. #define REG_ATOI 255 /* convert name to number (!) */
  52. #define REG_ITOA 0400 /* convert number to name (!) */
  53. extern size_t regerror(int, const regex_t *, char *, size_t);
  54. /* === regexec.c === */
  55. extern int regexec(const regex_t *, const char *, size_t, regmatch_t [], int);
  56. #define REG_NOTBOL 00001
  57. #define REG_NOTEOL 00002
  58. #define REG_STARTEND 00004
  59. #define REG_TRACE 00400 /* tracing of execution */
  60. #define REG_LARGE 01000 /* force large representation */
  61. #define REG_BACKR 02000 /* force use of backref code */
  62. /* === regfree.c === */
  63. extern void regfree(regex_t *);
  64. /* === reginit.c === */
  65. extern void regex_init(void); /* Should be called for multithread progs */
  66. extern void regex_end(void); /* If one wants a clean end */
  67. #ifdef __cplusplus
  68. }
  69. #endif
  70. /* ========= end header generated by ./mkh ========= */
  71. #endif