1 |
/* |
2 |
* Definitions etc. for regexp(3) routines. |
3 |
* |
4 |
* Caveat: this is V8 regexp(3) [actually, a reimplementation thereof], |
5 |
* not the System V one. |
6 |
*/ |
7 |
|
8 |
#ifndef _REGEXP |
9 |
#define _REGEXP 1 |
10 |
|
11 |
#define NSUBEXP 10 |
12 |
typedef struct regexp { |
13 |
char *startp[NSUBEXP]; |
14 |
char *endp[NSUBEXP]; |
15 |
char regstart; /* Internal use only. */ |
16 |
char reganch; /* Internal use only. */ |
17 |
char *regmust; /* Internal use only. */ |
18 |
int regmlen; /* Internal use only. */ |
19 |
char program[1]; /* Unwarranted chumminess with compiler. */ |
20 |
} regexp; |
21 |
|
22 |
#if defined(__STDC__) || defined(__cplusplus) |
23 |
# define _ANSI_ARGS_(x) x |
24 |
#else |
25 |
# define _ANSI_ARGS_(x) () |
26 |
#endif |
27 |
|
28 |
extern regexp *regcomp _ANSI_ARGS_((char *exp)); |
29 |
extern int regexec _ANSI_ARGS_((regexp *prog, char *string)); |
30 |
extern int regexec2 _ANSI_ARGS_((regexp *prog, char *string, int notbol)); |
31 |
extern void regsub _ANSI_ARGS_((regexp *prog, char *source, char *dest)); |
32 |
extern void regerror _ANSI_ARGS_((char *msg)); |
33 |
|
34 |
#endif /* REGEXP */ |