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 #ifndef REGEXP_DWA20011023_H 8 # define REGEXP_DWA20011023_H 9 10 #define NSUBEXP 20 11 typedef struct regexp { 12 char *startp[NSUBEXP]; 13 char *endp[NSUBEXP]; 14 char regstart; /* Internal use only. */ 15 char reganch; /* Internal use only. */ 16 char *regmust; /* Internal use only. */ 17 int regmlen; /* Internal use only. */ 18 char program[1]; /* Unwarranted chumminess with compiler. */ 19 } regexp; 20 21 regexp *regcomp(char *exp); 22 int regexec(regexp * prog, char *string); 23 void regerror(char *s); 24 void regsub(regexp * prog, char *source, char *dest); 25 26 /* 27 * The first byte of the regexp internal "program" is actually this magic 28 * number; the start node begins in the second byte. 29 */ 30 #define MAGIC 0234 31 32 #endif 33