This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Faster File::Compare
[perl5.git] / regexp.h
... / ...
CommitLineData
1/* regexp.h
2 */
3
4/*
5 * Definitions etc. for regexp(3) routines.
6 *
7 * Caveat: this is V8 regexp(3) [actually, a reimplementation thereof],
8 * not the System V one.
9 */
10
11
12typedef struct regexp {
13 char **startp;
14 char **endp;
15 SV *regstart; /* Internal use only. */
16 char *regstclass;
17 SV *regmust; /* Internal use only. */
18 I32 regback; /* Can regmust locate first try? */
19 I32 minlen; /* mininum possible length of $& */
20 I32 prelen; /* length of precomp */
21 U32 nparens; /* number of parentheses */
22 U32 lastparen; /* last paren matched */
23 char *precomp; /* pre-compilation regular expression */
24 char *subbase; /* saved string so \digit works forever */
25 char *subbeg; /* same, but not responsible for allocation */
26 char *subend; /* end of subbase */
27 U16 naughty; /* how exponential is this pattern? */
28 char reganch; /* Internal use only. */
29 char exec_tainted; /* Tainted information used by regexec? */
30 char program[1]; /* Unwarranted chumminess with compiler. */
31} regexp;
32
33#define ROPT_ANCH 3
34#define ROPT_ANCH_BOL 1
35#define ROPT_ANCH_GPOS 2
36#define ROPT_SKIP 4
37#define ROPT_IMPLICIT 8