source: trunk/third/pcre/pcreposix.h @ 19309

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