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 */ 35