xref: /csrg-svn/old/sed/sed.h (revision 33075)
1 /*	sed.h	4.3	87/12/21	*/
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 struct reptr	*abuf[ABUFSIZE];
35 struct 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 struct 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];
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 struct	reptr {
104 	char	*ad1;
105 	char	*ad2;
106 	union {
107 		char	*real_re1;
108 		struct reptr	*real_lb1;
109 	} re_lb;
110 #define	re1	re_lb.real_re1
111 #define	lb1	re_lb.real_lb1
112 	char	*rhs;
113 	FILE	*fcode;
114 	char	command;
115 	char	gfl;
116 	char	pfl;
117 	char	inar;
118 	char	negfl;
119 } ptrspace[PTRSIZE], *rep;
120 
121 
122 char	respace[RESIZE];
123 
124 struct label {
125 	char	asc[9];
126 	struct reptr	*chain;
127 	struct reptr	*address;
128 } ltab[LABSIZE];
129 
130 struct label	*lab;
131 struct label	*labend;
132 
133 int	f;
134 int	depth;
135 
136 int	eargc;
137 char	**eargv;
138 
139 extern	char	bittab[];
140 
141 struct reptr	**cmpend[DEPTH];
142 int	depth;
143 struct reptr	*pending;
144 char	*badp;
145 char	bad;
146 char	*compile();
147 char	*ycomp();
148 char	*address();
149 char	*text();
150 char	*compsub();
151 struct label	*search();
152 char	*gline();
153 char	*place();
154 char	compfl;
155