xref: /csrg-svn/old/sed/sed.h (revision 18582)
1*18582Sralph /*	sed.h	4.1	85/04/05	*/
2*18582Sralph 
3*18582Sralph /*
4*18582Sralph  * sed -- stream  editor
5*18582Sralph  */
6*18582Sralph 
7*18582Sralph #define CBRA	1
8*18582Sralph #define	CCHR	2
9*18582Sralph #define	CDOT	4
10*18582Sralph #define	CCL	6
11*18582Sralph #define	CNL	8
12*18582Sralph #define	CDOL	10
13*18582Sralph #define	CEOF	11
14*18582Sralph #define CKET	12
15*18582Sralph #define CNULL	13
16*18582Sralph #define CLNUM	14
17*18582Sralph #define CEND	16
18*18582Sralph #define CDONT	17
19*18582Sralph #define	CBACK	18
20*18582Sralph 
21*18582Sralph #define	STAR	01
22*18582Sralph 
23*18582Sralph #define NLINES	256
24*18582Sralph #define	DEPTH	20
25*18582Sralph #define PTRSIZE	200
26*18582Sralph #define RESIZE	10000
27*18582Sralph #define	ABUFSIZE	20
28*18582Sralph #define	LBSIZE	4000
29*18582Sralph #define	ESIZE	256
30*18582Sralph #define	LABSIZE	50
31*18582Sralph #define NBRA	9
32*18582Sralph 
33*18582Sralph FILE	*fin;
34*18582Sralph union reptr	*abuf[ABUFSIZE];
35*18582Sralph union reptr **aptr;
36*18582Sralph char	*lastre;
37*18582Sralph char	ibuf[BUFSIZ];
38*18582Sralph char	*cbp;
39*18582Sralph char	*ebp;
40*18582Sralph char	genbuf[LBSIZE];
41*18582Sralph char	*loc1;
42*18582Sralph char	*loc2;
43*18582Sralph char	*locs;
44*18582Sralph char	seof;
45*18582Sralph char	*reend;
46*18582Sralph char	*lbend;
47*18582Sralph char	*hend;
48*18582Sralph char	*lcomend;
49*18582Sralph union reptr	*ptrend;
50*18582Sralph int	eflag;
51*18582Sralph int	dolflag;
52*18582Sralph int	sflag;
53*18582Sralph int	jflag;
54*18582Sralph int	numbra;
55*18582Sralph int	delflag;
56*18582Sralph long	lnum;
57*18582Sralph char	linebuf[LBSIZE+1];
58*18582Sralph char	holdsp[LBSIZE+1];
59*18582Sralph char	*spend;
60*18582Sralph char	*hspend;
61*18582Sralph int	nflag;
62*18582Sralph int	gflag;
63*18582Sralph char	*braelist[NBRA];
64*18582Sralph char	*braslist[NBRA];
65*18582Sralph long	tlno[NLINES];
66*18582Sralph int	nlno;
67*18582Sralph char	fname[12][40];
68*18582Sralph FILE	*fcode[12];
69*18582Sralph int	nfiles;
70*18582Sralph 
71*18582Sralph #define ACOM	01
72*18582Sralph #define BCOM	020
73*18582Sralph #define CCOM	02
74*18582Sralph #define	CDCOM	025
75*18582Sralph #define	CNCOM	022
76*18582Sralph #define COCOM	017
77*18582Sralph #define	CPCOM	023
78*18582Sralph #define DCOM	03
79*18582Sralph #define ECOM	015
80*18582Sralph #define EQCOM	013
81*18582Sralph #define FCOM	016
82*18582Sralph #define GCOM	027
83*18582Sralph #define CGCOM	030
84*18582Sralph #define HCOM	031
85*18582Sralph #define CHCOM	032
86*18582Sralph #define ICOM	04
87*18582Sralph #define LCOM	05
88*18582Sralph #define NCOM	012
89*18582Sralph #define PCOM	010
90*18582Sralph #define QCOM	011
91*18582Sralph #define RCOM	06
92*18582Sralph #define SCOM	07
93*18582Sralph #define TCOM	021
94*18582Sralph #define WCOM	014
95*18582Sralph #define	CWCOM	024
96*18582Sralph #define	YCOM	026
97*18582Sralph #define XCOM	033
98*18582Sralph 
99*18582Sralph char	*cp;
100*18582Sralph char	*reend;
101*18582Sralph char	*lbend;
102*18582Sralph 
103*18582Sralph union	reptr {
104*18582Sralph 	struct reptr1 {
105*18582Sralph 		char	*ad1;
106*18582Sralph 		char	*ad2;
107*18582Sralph 		char	*re1;
108*18582Sralph 		char	*rhs;
109*18582Sralph 		FILE	*fcode;
110*18582Sralph 		char	command;
111*18582Sralph 		char	gfl;
112*18582Sralph 		char	pfl;
113*18582Sralph 		char	inar;
114*18582Sralph 		char	negfl;
115*18582Sralph 	} A;
116*18582Sralph 	struct reptr2 {
117*18582Sralph 		char	*ad1;
118*18582Sralph 		char	*ad2;
119*18582Sralph 		union reptr	*lb1;
120*18582Sralph 		char	*rhs;
121*18582Sralph 		FILE	*fcode;
122*18582Sralph 		char	command;
123*18582Sralph 		char	gfl;
124*18582Sralph 		char	pfl;
125*18582Sralph 		char	inar;
126*18582Sralph 		char	negfl;
127*18582Sralph 	} B;
128*18582Sralph } ptrspace[PTRSIZE], *rep;
129*18582Sralph 
130*18582Sralph 
131*18582Sralph char	respace[RESIZE];
132*18582Sralph 
133*18582Sralph struct label {
134*18582Sralph 	char	asc[9];
135*18582Sralph 	union reptr	*chain;
136*18582Sralph 	union reptr	*address;
137*18582Sralph } ltab[LABSIZE];
138*18582Sralph 
139*18582Sralph struct label	*lab;
140*18582Sralph struct label	*labend;
141*18582Sralph 
142*18582Sralph int	f;
143*18582Sralph int	depth;
144*18582Sralph 
145*18582Sralph int	eargc;
146*18582Sralph char	**eargv;
147*18582Sralph 
148*18582Sralph extern	char	bittab[];
149*18582Sralph 
150*18582Sralph union reptr	**cmpend[DEPTH];
151*18582Sralph int	depth;
152*18582Sralph union reptr	*pending;
153*18582Sralph char	*badp;
154*18582Sralph char	bad;
155*18582Sralph char	*compile();
156*18582Sralph char	*ycomp();
157*18582Sralph char	*address();
158*18582Sralph char	*text();
159*18582Sralph char	*compsub();
160*18582Sralph struct label	*search();
161*18582Sralph char	*gline();
162*18582Sralph char	*place();
163*18582Sralph char	compfl;
164