home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 January / Chip_2001-01_cd1.bin / tema / mysql / mysql-3.23.28g-win-source.exe / regex / regex.h < prev    next >
C/C++ Source or Header  |  2000-08-31  |  2KB  |  84 lines

  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.  
  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. } regex_t;
  21. typedef struct {
  22.     regoff_t rm_so;        /* start of match */
  23.     regoff_t rm_eo;        /* end of match */
  24. } regmatch_t;
  25.  
  26.  
  27. /* === regcomp.c === */
  28. extern int regcomp(regex_t *, const char *, int);
  29. #define    REG_BASIC    0000
  30. #define    REG_EXTENDED    0001
  31. #define    REG_ICASE    0002
  32. #define    REG_NOSUB    0004
  33. #define    REG_NEWLINE    0010
  34. #define    REG_NOSPEC    0020
  35. #define    REG_PEND    0040
  36. #define    REG_DUMP    0200
  37.  
  38.  
  39. /* === regerror.c === */
  40. #define    REG_NOMATCH     1
  41. #define    REG_BADPAT     2
  42. #define    REG_ECOLLATE     3
  43. #define    REG_ECTYPE     4
  44. #define    REG_EESCAPE     5
  45. #define    REG_ESUBREG     6
  46. #define    REG_EBRACK     7
  47. #define    REG_EPAREN     8
  48. #define    REG_EBRACE     9
  49. #define    REG_BADBR    10
  50. #define    REG_ERANGE    11
  51. #define    REG_ESPACE    12
  52. #define    REG_BADRPT    13
  53. #define    REG_EMPTY    14
  54. #define    REG_ASSERT    15
  55. #define    REG_INVARG    16
  56. #define    REG_ATOI    255    /* convert name to number (!) */
  57. #define    REG_ITOA    0400    /* convert number to name (!) */
  58. extern size_t regerror(int, const regex_t *, char *, size_t);
  59.  
  60.  
  61. /* === regexec.c === */
  62. extern int regexec(const regex_t *, const char *, size_t, regmatch_t [], int);
  63. #define    REG_NOTBOL    00001
  64. #define    REG_NOTEOL    00002
  65. #define    REG_STARTEND    00004
  66. #define    REG_TRACE    00400    /* tracing of execution */
  67. #define    REG_LARGE    01000    /* force large representation */
  68. #define    REG_BACKR    02000    /* force use of backref code */
  69.  
  70.  
  71. /* === regfree.c === */
  72. extern void regfree(regex_t *);
  73.  
  74. /* === reginit.c === */
  75.  
  76. extern void regex_init(void);    /* Should be called for multithread progs */
  77. extern void regex_end(void);    /* If one wants a clean end */
  78.  
  79. #ifdef __cplusplus
  80. }
  81. #endif
  82. /* ========= end header generated by ./mkh ========= */
  83. #endif
  84.