~ubuntu-branches/ubuntu/precise/ncbi-tools6/precise

« back to all changes in this revision

Viewing changes to regexp/pcreposix.h

  • Committer: Bazaar Package Importer
  • Author(s): Aaron M. Ucko
  • Date: 2005-03-27 12:00:15 UTC
  • mfrom: (2.1.2 hoary)
  • Revision ID: james.westby@ubuntu.com-20050327120015-embhesp32nj73p9r
Tags: 6.1.20041020-3
* Fix FTBFS under GCC 4.0 caused by inconsistent use of "static" on
  functions.  (Closes: #295110.)
* Add a watch file, now that we can.  (Upstream's layout needs version=3.)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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-
 
11
Compatible Regular Expression library. It defines the things POSIX says should
 
12
be 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
 
21
extern "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
 
32
to 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
 
 
39
enum {
 
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
 
 
62
typedef 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
 
 
70
typedef int regoff_t;
 
71
 
 
72
typedef struct {
 
73
  regoff_t rm_so;
 
74
  regoff_t rm_eo;
 
75
} regmatch_t;
 
76
 
 
77
/* The functions */
 
78
 
 
79
extern int    regcomp(regex_t *, const char *, int);
 
80
extern int    regexec(regex_t *, const char *, size_t, regmatch_t *, int);
 
81
extern size_t regerror(int, const regex_t *, char *, size_t);
 
82
extern void   regfree(regex_t *);
 
83
 
 
84
#ifdef __cplusplus
 
85
}   /* extern "C" */
 
86
#endif
 
87
 
 
88
#endif /* End of pcreposix.h */