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 * 11/04/02 (seiwald) - const-ing for string literals 8 */ 9 10#define NSUBEXP 10 11typedef struct regexp { 12 const char *startp[NSUBEXP]; 13 const 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 21regexp *regcomp( const char *exp ); 22int regexec( regexp *prog, const char *string ); 23void regerror( const char *s ); 24 25/* 26 * The first byte of the regexp internal "program" is actually this magic 27 * number; the start node begins in the second byte. 28 */ 29#define MAGIC 0234 30