00001
00002
00003
00004
00005
00006
00007 #ifndef _PCREPOSIX_H
00008 #define _PCREPOSIX_H
00009
00010
00011
00012
00013
00014
00015
00016 #include <stdlib.h>
00017
00018
00019
00020 #ifdef __cplusplus
00021 extern "C" {
00022 #endif
00023
00024
00025
00026 #define REG_ICASE 0x01
00027 #define REG_NEWLINE 0x02
00028 #define REG_NOTBOL 0x04
00029 #define REG_NOTEOL 0x08
00030
00031
00032
00033
00034 #define REG_EXTENDED 0
00035 #define REG_NOSUB 0
00036
00037
00038
00039 enum {
00040 REG_ASSERT = 1,
00041 REG_BADBR,
00042 REG_BADPAT,
00043 REG_BADRPT,
00044 REG_EBRACE,
00045 REG_EBRACK,
00046 REG_ECOLLATE,
00047 REG_ECTYPE,
00048 REG_EESCAPE,
00049 REG_EMPTY,
00050 REG_EPAREN,
00051 REG_ERANGE,
00052 REG_ESIZE,
00053 REG_ESPACE,
00054 REG_ESUBREG,
00055 REG_INVARG,
00056 REG_NOMATCH
00057 };
00058
00059
00060
00061
00062 typedef struct {
00063 void *re_pcre;
00064 size_t re_nsub;
00065 size_t re_erroffset;
00066 } regex_t;
00067
00068
00069
00070 typedef int regoff_t;
00071
00072 typedef struct {
00073 regoff_t rm_so;
00074 regoff_t rm_eo;
00075 } regmatch_t;
00076
00077
00078
00079 extern int regcomp(regex_t *, const char *, int);
00080 extern int regexec(const regex_t *, const char *, size_t, regmatch_t *, int);
00081 extern size_t regerror(int, const regex_t *, char *, size_t);
00082 extern void regfree(regex_t *);
00083
00084 #ifdef __cplusplus
00085 }
00086 #endif
00087
00088 #endif