C:/Users/Dennis/src/lang/Life_start/Life/life-1.02/source/regexp/regexp.c File Reference

#include <stdio.h>
#include <string.h>
#include "regexp.h"
#include "regmagic.h"

Go to the source code of this file.

Defines

#define END   0
#define BOL   1
#define EOL   2
#define ANY   3
#define ANYOF   4
#define ANYBUT   5
#define BRANCH   6
#define BACK   7
#define EXACTLY   8
#define NOTHING   9
#define STAR   10
#define PLUS   11
#define OPEN   20
#define CLOSE   30
#define OP(p)   (*(p))
#define NEXT(p)   (((*((p)+1)&0377)<<8) + (*((p)+2)&0377))
#define OPERAND(p)   ((p) + 3)
#define UCHARAT(p)   ((int)*(unsigned char *)(p))
#define FAIL(m)   { regerror(m); return(NULL); }
#define ISMULT(c)   ((c) == '*' || (c) == '+' || (c) == '?')
#define META   "^$.[()|?+*\\"
#define HASWIDTH   01
#define SIMPLE   02
#define SPSTART   04
#define WORST   0
#define STATIC   static

Functions

STATIC char * reg ()
STATIC char * regbranch ()
STATIC char * regpiece ()
STATIC char * regatom ()
STATIC char * regnode ()
STATIC char * regnext ()
STATIC void regc ()
STATIC void reginsert ()
STATIC void regtail ()
STATIC void regoptail ()
regexpregcomp (char *exp)
static char * reg (int paren, int *flagp)
static char * regbranch (int *flagp)
static char * regpiece (int *flagp)
static char * regatom (int *flagp)
static char * regnode (char op)
static void regc (char b)
static void reginsert (char op, char *opnd)
static void regtail (char *p, char *val)
static void regoptail (char *p, char *val)
STATIC int regtry ()
STATIC int regmatch ()
STATIC int regrepeat ()
int regexec (regexp *prog, char *string)
static int regtry (regexp *prog, char *string)
static int regmatch (char *prog)
static int regrepeat (char *p)
static char * regnext (char *p)
long last_regsize ()

Variables

static char * regparse
static int regnpar
static char regdummy
static char * regcode
static long regsize
static char * reginput
static char * regbol
static char ** regstartp
static char ** regendp


Define Documentation

#define ANY   3

Definition at line 71 of file regexp.c.

Referenced by regatom(), regmatch(), and regrepeat().

#define ANYBUT   5

Definition at line 73 of file regexp.c.

Referenced by regatom(), regmatch(), and regrepeat().

#define ANYOF   4

Definition at line 72 of file regexp.c.

Referenced by regatom(), regmatch(), and regrepeat().

#define BACK   7

Definition at line 75 of file regexp.c.

Referenced by regmatch(), regnext(), regpiece(), and regtail().

#define BOL   1

Definition at line 69 of file regexp.c.

Referenced by regatom(), regcomp(), and regmatch().

#define BRANCH   6

Definition at line 74 of file regexp.c.

Referenced by regbranch(), regmatch(), regoptail(), and regpiece().

#define CLOSE   30

Definition at line 82 of file regexp.c.

Referenced by reg(), and regmatch().

#define END   0

Definition at line 68 of file regexp.c.

Referenced by reg(), regcomp(), and regmatch().

#define EOL   2

Definition at line 70 of file regexp.c.

Referenced by regatom(), and regmatch().

#define EXACTLY   8

Definition at line 76 of file regexp.c.

Referenced by regatom(), regcomp(), regmatch(), and regrepeat().

#define FAIL (  )     { regerror(m); return(NULL); }

Definition at line 133 of file regexp.c.

Referenced by reg(), regatom(), regcomp(), and regpiece().

#define HASWIDTH   01

Definition at line 140 of file regexp.c.

Referenced by reg(), regatom(), regbranch(), and regpiece().

#define ISMULT (  )     ((c) == '*' || (c) == '+' || (c) == '?')

Definition at line 134 of file regexp.c.

Referenced by regatom(), and regpiece().

#define META   "^$.[()|?+*\\"

Definition at line 135 of file regexp.c.

Referenced by regatom().

#define NEXT (  )     (((*((p)+1)&0377)<<8) + (*((p)+2)&0377))

Definition at line 117 of file regexp.c.

Referenced by regnext().

#define NOTHING   9

Definition at line 77 of file regexp.c.

Referenced by regbranch(), regmatch(), and regpiece().

#define OP (  )     (*(p))

Definition at line 116 of file regexp.c.

Referenced by regcomp(), regmatch(), regnext(), regoptail(), regrepeat(), and regtail().

#define OPEN   20

Definition at line 80 of file regexp.c.

Referenced by reg(), and regmatch().

#define OPERAND (  )     ((p) + 3)

Definition at line 118 of file regexp.c.

Referenced by regcomp(), regmatch(), regoptail(), and regrepeat().

#define PLUS   11

Definition at line 79 of file regexp.c.

Referenced by regmatch(), and regpiece().

#define SIMPLE   02

Definition at line 141 of file regexp.c.

Referenced by regatom(), and regpiece().

#define SPSTART   04

Definition at line 142 of file regexp.c.

Referenced by reg(), regatom(), regbranch(), regcomp(), and regpiece().

#define STAR   10

Definition at line 78 of file regexp.c.

Referenced by regmatch(), and regpiece().

#define STATIC   static

Definition at line 158 of file regexp.c.

#define UCHARAT (  )     ((int)*(unsigned char *)(p))

Definition at line 129 of file regexp.c.

Referenced by regatom(), regexec(), and regsub().

#define WORST   0

Definition at line 143 of file regexp.c.

Referenced by regatom(), regbranch(), and regpiece().


Function Documentation

long last_regsize (  ) 

Definition at line 1217 of file regexp.c.

References regsize.

Referenced by regexp_compile_internal().

static char* reg ( int  paren,
int *  flagp 
) [static]

Definition at line 278 of file regexp.c.

References CLOSE, END, FAIL, HASWIDTH, NSUBEXP, NULL, OPEN, regbranch(), regnext(), regnode(), regnpar, regoptail(), regparse, regtail(), and SPSTART.

STATIC char* reg (  ) 

Referenced by regatom(), and regcomp().

static char* regatom ( int *  flagp  )  [static]

Definition at line 453 of file regexp.c.

References ANY, ANYBUT, ANYOF, BOL, EOL, EXACTLY, FAIL, HASWIDTH, ISMULT, META, NULL, reg(), regc(), regnode(), regparse, SIMPLE, SPSTART, UCHARAT, and WORST.

STATIC char* regatom (  ) 

Referenced by regpiece().

static char* regbranch ( int *  flagp  )  [static]

Definition at line 350 of file regexp.c.

References BRANCH, HASWIDTH, NOTHING, NULL, regnode(), regparse, regpiece(), regtail(), SPSTART, and WORST.

STATIC char* regbranch (  ) 

Referenced by reg().

static void regc ( char  b  )  [static]

Definition at line 587 of file regexp.c.

References regcode, regdummy, and regsize.

STATIC void regc (  ) 

Referenced by regatom(), and regcomp().

regexp* regcomp ( char *  exp  ) 

Definition at line 190 of file regexp.c.

References BOL, END, EXACTLY, FAIL, MAGIC, NULL, OP, OPERAND, regexp::program, reg(), regexp::reganch, regc(), regcode, regdummy, regexp::regmlen, regexp::regmust, regnext(), regnpar, regparse, regsize, regexp::regstart, and SPSTART.

Referenced by main(), multiple(), regexp_compile_internal(), and try().

int regexec ( regexp prog,
char *  string 
)

Definition at line 702 of file regexp.c.

References MAGIC, NULL, regbol, regerror(), regtry(), and UCHARAT.

Referenced by main(), multiple(), regexp_execute_internal(), and try().

static void reginsert ( char  op,
char *  opnd 
) [static]

Definition at line 602 of file regexp.c.

References regcode, regdummy, and regsize.

STATIC void reginsert (  ) 

Referenced by regpiece().

static int regmatch ( char *  prog  )  [static]

Definition at line 801 of file regexp.c.

References ANY, ANYBUT, ANYOF, BACK, BOL, BRANCH, CLOSE, END, EOL, EXACTLY, NOTHING, NULL, OP, OPEN, OPERAND, PLUS, regbol, regendp, regerror(), reginput, regmatch(), regnext(), regrepeat(), regstartp, and STAR.

STATIC int regmatch (  ) 

Referenced by regmatch(), and regtry().

static char* regnext ( char *  p  )  [static]

Definition at line 1035 of file regexp.c.

References BACK, NEXT, NULL, OP, and regdummy.

STATIC char* regnext (  ) 

Referenced by reg(), regcomp(), regmatch(), and regtail().

static char* regnode ( char  op  )  [static]

Definition at line 562 of file regexp.c.

References regcode, regdummy, and regsize.

STATIC char* regnode (  ) 

Referenced by reg(), regatom(), regbranch(), and regpiece().

static void regoptail ( char *  p,
char *  val 
) [static]

Definition at line 663 of file regexp.c.

References BRANCH, NULL, OP, OPERAND, regdummy, and regtail().

STATIC void regoptail (  ) 

Referenced by reg(), and regpiece().

static char* regpiece ( int *  flagp  )  [static]

Definition at line 389 of file regexp.c.

References BACK, BRANCH, FAIL, HASWIDTH, ISMULT, NOTHING, NULL, PLUS, regatom(), reginsert(), regnode(), regoptail(), regparse, regtail(), SIMPLE, SPSTART, STAR, and WORST.

STATIC char* regpiece (  ) 

Referenced by regbranch().

static int regrepeat ( char *  p  )  [static]

Definition at line 989 of file regexp.c.

References ANY, ANYBUT, ANYOF, EXACTLY, NULL, OP, OPERAND, regerror(), and reginput.

STATIC int regrepeat (  ) 

Referenced by regmatch().

static void regtail ( char *  p,
char *  val 
) [static]

Definition at line 631 of file regexp.c.

References BACK, NULL, OP, regdummy, and regnext().

STATIC void regtail (  ) 

Referenced by reg(), regbranch(), regoptail(), and regpiece().

static int regtry ( regexp prog,
char *  string 
) [static]

Definition at line 764 of file regexp.c.

References NSUBEXP, NULL, regendp, reginput, regmatch(), and regstartp.

STATIC int regtry (  ) 

Referenced by regexec().


Variable Documentation

char* regbol [static]

Definition at line 681 of file regexp.c.

Referenced by regexec(), and regmatch().

char* regcode [static]

Definition at line 151 of file regexp.c.

Referenced by regc(), regcomp(), reginsert(), and regnode().

char regdummy [static]

Definition at line 150 of file regexp.c.

Referenced by regc(), regcomp(), reginsert(), regnext(), regnode(), regoptail(), and regtail().

char** regendp [static]

Definition at line 683 of file regexp.c.

Referenced by regmatch(), and regtry().

char* reginput [static]

Definition at line 680 of file regexp.c.

Referenced by regmatch(), regrepeat(), and regtry().

int regnpar [static]

Definition at line 149 of file regexp.c.

Referenced by reg(), and regcomp().

char* regparse [static]

Definition at line 148 of file regexp.c.

Referenced by reg(), regatom(), regbranch(), regcomp(), and regpiece().

long regsize [static]

Definition at line 152 of file regexp.c.

Referenced by last_regsize(), regc(), regcomp(), reginsert(), and regnode().

char** regstartp [static]

Definition at line 682 of file regexp.c.

Referenced by regmatch(), and regtry().


Generated on Sat Jan 26 08:48:09 2008 for WildLife by  doxygen 1.5.4