plan9fox/sys/include/regexp.h

56 lines
822 B
C

#pragma src "/sys/src/libregexp"
#pragma lib "libregexp.a"
enum
{
OANY = 0,
OBOL,
OCLASS,
OEOL,
OJMP,
ONOTNL,
ORUNE,
OSAVE,
OSPLIT,
OUNSAVE,
};
typedef struct Resub Resub;
typedef struct Reinst Reinst;
typedef struct Reprog Reprog;
typedef struct Rethread Rethread;
#pragma incomplete Reinst
#pragma incomplete Rethread
struct Resub
{
union
{
char *sp;
Rune *rsp;
};
union
{
char *ep;
Rune *rep;
};
};
struct Reprog
{
Reinst *startinst;
Rethread *threads;
char *regstr;
int len;
int nthr;
};
Reprog* regcomp(char*);
Reprog* regcomplit(char*);
Reprog* regcompnl(char*);
void regerror(char*);
int regexec(Reprog*, char*, Resub*, int);
void regsub(char*, char*, int, Resub*, int);
int rregexec(Reprog*, Rune*, Resub*, int);
void rregsub(Rune*, Rune*, int, Resub*, int);
int reprogfmt(Fmt *);