mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-02-04 18:27:36 +00:00
84 lines
2.1 KiB
C
84 lines
2.1 KiB
C
/* 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__ */
|