pcreposix.h
上传用户:yhdzpy8989
上传日期:2007-06-13
资源大小:13604k
文件大小:3k
源码类别:

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: pcreposix.h,v $
  4.  * PRODUCTION Revision 1000.0  2003/10/29 15:35:25  gouriano
  5.  * PRODUCTION PRODUCTION: IMPORTED [ORIGINAL] Dev-tree R1.5
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. /*************************************************
  10. *       Perl-Compatible Regular Expressions      *
  11. *************************************************/
  12. /* Copyright (c) 1997-2001 University of Cambridge */
  13. #ifndef _PCREPOSIX_H
  14. #define _PCREPOSIX_H
  15. /* This is the header for the POSIX wrapper interface to the PCRE Perl-
  16. Compatible Regular Expression library. It defines the things POSIX says should
  17. be there. I hope. */
  18. /* Have to include stdlib.h in order to ensure that size_t is defined. */
  19. #include <stdlib.h>
  20. /* Allow for C++ users */
  21. #ifdef __cplusplus
  22. extern "C" {
  23. #endif
  24. /* Options defined by POSIX. */
  25. #define REG_ICASE     0x01
  26. #define REG_NEWLINE   0x02
  27. #define REG_NOTBOL    0x04
  28. #define REG_NOTEOL    0x08
  29. /* These are not used by PCRE, but by defining them we make it easier
  30. to slot PCRE into existing programs that make POSIX calls. */
  31. #define REG_EXTENDED  0
  32. #define REG_NOSUB     0
  33. /* Error values. Not all these are relevant or used by the wrapper. */
  34. enum {
  35.   REG_ASSERT = 1,  /* internal error ? */
  36.   REG_BADBR,       /* invalid repeat counts in {} */
  37.   REG_BADPAT,      /* pattern error */
  38.   REG_BADRPT,      /* ? * + invalid */
  39.   REG_EBRACE,      /* unbalanced {} */
  40.   REG_EBRACK,      /* unbalanced [] */
  41.   REG_ECOLLATE,    /* collation error - not relevant */
  42.   REG_ECTYPE,      /* bad class */
  43.   REG_EESCAPE,     /* bad escape sequence */
  44.   REG_EMPTY,       /* empty expression */
  45.   REG_EPAREN,      /* unbalanced () */
  46.   REG_ERANGE,      /* bad range inside [] */
  47.   REG_ESIZE,       /* expression too big */
  48.   REG_ESPACE,      /* failed to get memory */
  49.   REG_ESUBREG,     /* bad back reference */
  50.   REG_INVARG,      /* bad argument */
  51.   REG_NOMATCH      /* match failed */
  52. };
  53. /* The structure representing a compiled regular expression. */
  54. typedef struct {
  55.   void *re_pcre;
  56.   size_t re_nsub;
  57.   size_t re_erroffset;
  58. } regex_t;
  59. /* The structure in which a captured offset is returned. */
  60. typedef int regoff_t;
  61. typedef struct {
  62.   regoff_t rm_so;
  63.   regoff_t rm_eo;
  64. } regmatch_t;
  65. /* The functions */
  66. extern int    regcomp(regex_t *, const char *, int);
  67. extern int    regexec(regex_t *, const char *, size_t, regmatch_t *, int);
  68. extern size_t regerror(int, const regex_t *, char *, size_t);
  69. extern void   regfree(regex_t *);
  70. #ifdef __cplusplus
  71. }   /* extern "C" */
  72. #endif
  73. #endif /* End of pcreposix.h */