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