3 |
*************************************************/ |
*************************************************/ |
4 |
|
|
5 |
|
|
6 |
#define PCRE_VERSION "1.01 19-Nov-1997" |
#define PCRE_VERSION "1.04 22-Dec-1997" |
7 |
|
|
8 |
|
|
9 |
/* This is a library of functions to support regular expressions whose syntax |
/* This is a library of functions to support regular expressions whose syntax |
38 |
define a macro for memmove() if USE_BCOPY is defined. */ |
define a macro for memmove() if USE_BCOPY is defined. */ |
39 |
|
|
40 |
#ifdef USE_BCOPY |
#ifdef USE_BCOPY |
41 |
|
#undef memmove /* some systems may have a macro */ |
42 |
#define memmove(a, b, c) bcopy(b, a, c) |
#define memmove(a, b, c) bcopy(b, a, c) |
43 |
#endif |
#endif |
44 |
|
|
53 |
#include <string.h> |
#include <string.h> |
54 |
#include "pcre.h" |
#include "pcre.h" |
55 |
|
|
56 |
|
/* In case there is no definition of offsetof() provided - though any proper |
57 |
|
Standard C system should have one. */ |
58 |
|
|
59 |
|
#ifndef offsetof |
60 |
|
#define offsetof(p_type,field) ((size_t)&(((p_type *)0)->field)) |
61 |
|
#endif |
62 |
|
|
63 |
/* Private options flags start at the most significant end of the two bytes. |
/* Private options flags start at the most significant end of the two bytes. |
64 |
The public options defined in pcre.h start at the least significant end. Make |
The public options defined in pcre.h start at the least significant end. Make |
65 |
sure they don't overlap! */ |
sure they don't overlap! */ |
116 |
|
|
117 |
/* Opcode table: OP_BRA must be last, as all values >= it are used for brackets |
/* Opcode table: OP_BRA must be last, as all values >= it are used for brackets |
118 |
that extract substrings. Starting from 1 (i.e. after OP_END), the values up to |
that extract substrings. Starting from 1 (i.e. after OP_END), the values up to |
119 |
OP_EOL must correspond in order to the list of escapes immediately above. */ |
OP_EOD must correspond in order to the list of escapes immediately above. */ |
120 |
|
|
121 |
enum { |
enum { |
122 |
OP_END, /* End of pattern */ |
OP_END, /* End of pattern */ |
133 |
OP_NOT_WORDCHAR, /* \W */ |
OP_NOT_WORDCHAR, /* \W */ |
134 |
OP_WORDCHAR, /* \w */ |
OP_WORDCHAR, /* \w */ |
135 |
OP_CUT, /* The analogue of Prolog's "cut" operation (extension) */ |
OP_CUT, /* The analogue of Prolog's "cut" operation (extension) */ |
136 |
OP_EOD, /* End of data: or \Z. This must always be the last |
OP_EOD, /* End of data: \Z. */ |
|
of the backslashed meta values. */ |
|
137 |
|
|
138 |
OP_CIRC, /* Start of line - varies with multiline switch */ |
OP_CIRC, /* Start of line - varies with multiline switch */ |
139 |
OP_DOLL, /* End of line - varies with multiline switch */ |
OP_DOLL, /* End of line - varies with multiline switch */ |