1 |
/*************************************************
|
2 |
* Perl-Compatible Regular Expressions *
|
3 |
*************************************************/
|
4 |
|
5 |
/* Copyright (c) 1997-1999 University of Cambridge */
|
6 |
|
7 |
#ifndef _PCRE_H
|
8 |
#define _PCRE_H
|
9 |
|
10 |
#define PCRE_MAJOR 2
|
11 |
#define PCRE_MINOR 08
|
12 |
#define PCRE_DATE 31-Aug-1999
|
13 |
|
14 |
/* Win32 uses DLL by default */
|
15 |
|
16 |
#ifdef _WIN32
|
17 |
# ifdef STATIC
|
18 |
# define PCRE_DL_IMPORT
|
19 |
# else
|
20 |
# define PCRE_DL_IMPORT __declspec(dllimport)
|
21 |
# endif
|
22 |
#else
|
23 |
# define PCRE_DL_IMPORT
|
24 |
#endif
|
25 |
|
26 |
/* Have to include stdlib.h in order to ensure that size_t is defined;
|
27 |
it is needed here for malloc. */
|
28 |
|
29 |
#include <sys/types.h>
|
30 |
#include <stdlib.h>
|
31 |
|
32 |
/* Allow for C++ users */
|
33 |
|
34 |
#ifdef __cplusplus
|
35 |
extern "C" {
|
36 |
#endif
|
37 |
|
38 |
/* Options */
|
39 |
|
40 |
#define PCRE_CASELESS 0x0001
|
41 |
#define PCRE_MULTILINE 0x0002
|
42 |
#define PCRE_DOTALL 0x0004
|
43 |
#define PCRE_EXTENDED 0x0008
|
44 |
#define PCRE_ANCHORED 0x0010
|
45 |
#define PCRE_DOLLAR_ENDONLY 0x0020
|
46 |
#define PCRE_EXTRA 0x0040
|
47 |
#define PCRE_NOTBOL 0x0080
|
48 |
#define PCRE_NOTEOL 0x0100
|
49 |
#define PCRE_UNGREEDY 0x0200
|
50 |
#define PCRE_NOTEMPTY 0x0400
|
51 |
|
52 |
/* Exec-time and get-time error codes */
|
53 |
|
54 |
#define PCRE_ERROR_NOMATCH (-1)
|
55 |
#define PCRE_ERROR_NULL (-2)
|
56 |
#define PCRE_ERROR_BADOPTION (-3)
|
57 |
#define PCRE_ERROR_BADMAGIC (-4)
|
58 |
#define PCRE_ERROR_UNKNOWN_NODE (-5)
|
59 |
#define PCRE_ERROR_NOMEMORY (-6)
|
60 |
#define PCRE_ERROR_NOSUBSTRING (-7)
|
61 |
|
62 |
/* Types */
|
63 |
|
64 |
typedef void pcre;
|
65 |
typedef void pcre_extra;
|
66 |
|
67 |
/* Store get and free functions. These can be set to alternative malloc/free
|
68 |
functions if required. Some magic is required for Win32 DLL; it is null on
|
69 |
other OS. */
|
70 |
|
71 |
PCRE_DL_IMPORT extern void *(*pcre_malloc)(size_t);
|
72 |
PCRE_DL_IMPORT extern void (*pcre_free)(void *);
|
73 |
|
74 |
#undef PCRE_DL_IMPORT
|
75 |
|
76 |
/* Functions */
|
77 |
|
78 |
extern pcre *pcre_compile(const char *, int, const char **, int *,
|
79 |
const unsigned char *);
|
80 |
extern int pcre_copy_substring(const char *, int *, int, int, char *, int);
|
81 |
extern int pcre_exec(const pcre *, const pcre_extra *, const char *,
|
82 |
int, int, int, int *, int);
|
83 |
extern int pcre_get_substring(const char *, int *, int, int, const char **);
|
84 |
extern int pcre_get_substring_list(const char *, int *, int, const char ***);
|
85 |
extern int pcre_info(const pcre *, int *, int *);
|
86 |
extern unsigned const char *pcre_maketables(void);
|
87 |
extern pcre_extra *pcre_study(const pcre *, int, const char **);
|
88 |
extern const char *pcre_version(void);
|
89 |
|
90 |
#ifdef __cplusplus
|
91 |
} /* extern "C" */
|
92 |
#endif
|
93 |
|
94 |
#endif /* End of pcre.h */
|