#ifndef regexp_h#define regexp_h #define regcompx js_regcompx#define regfreex js_regfreex#define regcomp js_regcomp#define regexec js_regexec#define regfree js_regfree typedef struct Reprog Reprog;#pragma incomplete Reprogtypedef struct Resub Resub; Reprog *regcompx(void *(*alloc)(void *ctx, void *p, int n), void *ctx, const char *pattern, int cflags, const char **errorp);void regfreex(void *(*alloc)(void *ctx, void *p, int n), void *ctx, Reprog *prog); Reprog *regcomp(const char *pattern, int cflags, const char **errorp);int regexec(Reprog *prog, const char *string, Resub *sub, int eflags);void regfree(Reprog *prog); enum { /* regcomp flags */ REG_ICASE = 1, REG_NEWLINE = 2, /* regexec flags */ REG_NOTBOL = 4,}; /* If you redefine REG_MAXSUB, you must make sure both the calling * code and the regexp.c compilation unit use the same value! */#ifndef REG_MAXSUB#define REG_MAXSUB 10#endif struct Resub { int nsub; struct { const char *sp; const char *ep; } sub[REG_MAXSUB];}; #endif
#ifndef regexp_h
#define regexp_h
#define regcompx js_regcompx
#define regfreex js_regfreex
#define regcomp js_regcomp
#define regexec js_regexec
#define regfree js_regfree
typedef struct Reprog Reprog;
#pragma incomplete Reprog
typedef struct Resub Resub;
Reprog *regcompx(void *(*alloc)(void *ctx, void *p, int n), void *ctx,
const char *pattern, int cflags, const char **errorp);
void regfreex(void *(*alloc)(void *ctx, void *p, int n), void *ctx,
Reprog *prog);
Reprog *regcomp(const char *pattern, int cflags, const char **errorp);
int regexec(Reprog *prog, const char *string, Resub *sub, int eflags);
void regfree(Reprog *prog);
enum {
/* regcomp flags */
REG_ICASE = 1,
REG_NEWLINE = 2,
/* regexec flags */
REG_NOTBOL = 4,
};
/* If you redefine REG_MAXSUB, you must make sure both the calling
* code and the regexp.c compilation unit use the same value!
*/
#ifndef REG_MAXSUB
#define REG_MAXSUB 10
#endif
struct Resub {
int nsub;
struct {
const char *sp;
const char *ep;
} sub[REG_MAXSUB];
};
#endif