1: /*
2: * Copyright (c) 1980 Regents of the University of California.
3: * All rights reserved. The Berkeley software License Agreement
4: * specifies the terms and conditions for redistribution.
5: *
6: * @(#)ex_re.h 7.3 (Berkeley) 5/31/85
7: */
8:
9: /*
10: * Regular expression definitions.
11: * The regular expressions in ex are similar to those in ed,
12: * with the addition of the word boundaries from Toronto ed
13: * and allowing character classes to have [a-b] as in the shell.
14: * The numbers for the nodes below are spaced further apart then
15: * necessary because I at one time partially put in + and | (one or
16: * more and alternation.)
17: */
18: struct regexp {
19: char Expbuf[ESIZE + 2];
20: bool Circfl;
21: short Nbra;
22: };
23:
24: /*
25: * There are three regular expressions here, the previous (in re),
26: * the previous substitute (in subre) and the previous scanning (in scanre).
27: * It would be possible to get rid of "re" by making it a stack parameter
28: * to the appropriate routines.
29: */
30: var struct regexp re; /* Last re */
31: var struct regexp scanre; /* Last scanning re */
32: var struct regexp subre; /* Last substitute re */
33:
34: /*
35: * Defining circfl and expbuf like this saves us from having to change
36: * old code in the ex_re.c stuff.
37: */
38: #define expbuf re.Expbuf
39: #define circfl re.Circfl
40: #define nbra re.Nbra
41:
42: /*
43: * Since the phototypesetter v7-epsilon
44: * C compiler doesn't have structure assignment...
45: */
46: #define savere(a) copy(&a, &re, sizeof (struct regexp))
47: #define resre(a) copy(&re, &a, sizeof (struct regexp))
48:
49: /*
50: * Definitions for substitute
51: */
52: var char *braslist[NBRA]; /* Starts of \(\)'ed text in lhs */
53: var char *braelist[NBRA]; /* Ends... */
54: var char rhsbuf[RHSSIZE]; /* Rhs of last substitute */
55:
56: /*
57: * Definitions of codes for the compiled re's.
58: * The re algorithm is described in a paper
59: * by K. Thompson in the CACM about 10 years ago
60: * and is the same as in ed.
61: */
62: #define STAR 1
63:
64: #define CBRA 1
65: #define CDOT 4
66: #define CCL 8
67: #define NCCL 12
68: #define CDOL 16
69: #define CEOFC 17
70: #define CKET 18
71: #define CCHR 20
72: #define CBRC 24
73: #define CLET 25
Defined variables
re
defined in line
30; used 6 times
subre
defined in line
32; used 5 times
Defined struct's
Defined macros
CBRA
defined in line
64; used 2 times
CBRC
defined in line
72; used 1 times
CCHR
defined in line
71; used 6 times
CCL
defined in line
66; used 3 times
CDOL
defined in line
68; used 1 times
CDOT
defined in line
65; used 2 times
CEOFC
defined in line
69; used 2 times
CKET
defined in line
70; used 2 times
CLET
defined in line
73; used 1 times
NCCL
defined in line
67; used 2 times
STAR
defined in line
62; used 2 times
nbra
defined in line
40; used 5 times
resre
defined in line
47; used 3 times
Usage of this include