mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-02-15 22:46:59 +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__ */
|