2012-12-17 20:15:23 -05:00

84 lines
2.1 KiB
C
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef __REGEXP_H__
#define __REGEXP_H__
/*
* Definitions etc. for regexp(3) routines.
*
* Caveat: this is V8 regexp(3) [actually, a reimplementation thereof],
* not the System V one.
*/
#define NSUBEXP 10
struct regexp_ {
char *startp[NSUBEXP];
char *endp[NSUBEXP];
char regflag; /* Flags used for pattern matching */
char regstart; /* Internal use only. */
char reganch; /* Internal use only. */
char regatom; /* Internal use only. */
char *regmust; /* Internal use only. */
int regmlen; /* Internal use only. */
char program[1]; /* Unwarranted chumminess with compiler. */
};
typedef struct regexp_ regexp;
/*
* The first byte of the regexp internal "program" is actually this magic
* number; the start node begins in the second byte.
*/
#define MAGIC 0234
/*
* The parameters for regflag
*/
#define REG_NOSUB 0x02 /* Don't do sub-string matches */
/* Return Values from regexecstring()
*/
typedef enum {
REG_NO_MATCH = 0,
REG_MATCHED,
REG_MAYBE
} regval;
/***********************************************************************
*
* Externs and Prototypes
*
***********************************************************************/
/*
* regexp.c
*/
extern char *reg(int, int *);
extern char *regatom(int *);
extern char *regbranch(int *);
extern char *regnode(char);
extern char *regpiece(int *);
extern char *regprop(char *);
extern int regexec(regexp *, char *);
extern int regmatch(char *);
extern int regrepeat(char *);
extern int regtry(regexp *, char *);
extern regexp *regcomp(char *, char);
extern void regc(char);
extern void regdump(regexp *);
extern void regerror(char *);
extern void reginsert(char, char *);
extern void regoptail(char *, char *);
extern void regtail(char *, char *);
extern regval regexecstring(regexp *, char *);
/*
* regsub.c
*/
extern int regsub(regexp *, char *, char *, int);
#endif /* __REGEXP_H__ */