Subversion Repositories planix.SVN

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
105 7u83 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